From d7d54ae68a66b970501f2c5d1051b57305a18d9b Mon Sep 17 00:00:00 2001 From: Joe Hoyle Date: Mon, 15 Jun 2015 18:03:55 -0700 Subject: [PATCH] AWS SDK 3.0 --- lib/aws-sdk/Aws/Api/AbstractModel.php | 67 + lib/aws-sdk/Aws/Api/ApiProvider.php | 243 + lib/aws-sdk/Aws/Api/DateTimeResult.php | 41 + lib/aws-sdk/Aws/Api/DocModel.php | 128 + .../Aws/Api/ErrorParser/JsonParserTrait.php | 23 + .../Api/ErrorParser/JsonRpcErrorParser.php | 31 + .../Api/ErrorParser/RestJsonErrorParser.php | 35 + .../Aws/Api/ErrorParser/XmlErrorParser.php | 79 + lib/aws-sdk/Aws/Api/ListShape.php | 35 + lib/aws-sdk/Aws/Api/MapShape.php | 54 + lib/aws-sdk/Aws/Api/Operation.php | 97 + lib/aws-sdk/Aws/Api/Parser/AbstractParser.php | 35 + .../Aws/Api/Parser/AbstractRestParser.php | 142 + .../Aws/Api/Parser/Crc32ValidatingParser.php | 47 + lib/aws-sdk/Aws/Api/Parser/JsonParser.php | 54 + lib/aws-sdk/Aws/Api/Parser/JsonRpcParser.php | 37 + lib/aws-sdk/Aws/Api/Parser/QueryParser.php | 50 + lib/aws-sdk/Aws/Api/Parser/RestJsonParser.php | 37 + lib/aws-sdk/Aws/Api/Parser/RestXmlParser.php | 34 + lib/aws-sdk/Aws/Api/Parser/XmlParser.php | 130 + .../Aws/Api/Serializer/Ec2ParamBuilder.php | 40 + lib/aws-sdk/Aws/Api/Serializer/JsonBody.php | 91 + .../Aws/Api/Serializer/JsonRpcSerializer.php | 69 + .../Aws/Api/Serializer/QueryParamBuilder.php | 141 + .../Aws/Api/Serializer/QuerySerializer.php | 69 + .../Aws/Api/Serializer/RestJsonSerializer.php | 39 + .../Aws/Api/Serializer/RestSerializer.php | 188 + .../Aws/Api/Serializer/RestXmlSerializer.php | 34 + lib/aws-sdk/Aws/Api/Serializer/XmlBody.php | 169 + lib/aws-sdk/Aws/Api/Service.php | 404 + lib/aws-sdk/Aws/Api/Shape.php | 69 + lib/aws-sdk/Aws/Api/ShapeMap.php | 66 + lib/aws-sdk/Aws/Api/StructureShape.php | 63 + lib/aws-sdk/Aws/Api/TimestampShape.php | 48 + lib/aws-sdk/Aws/Api/Validator.php | 194 + .../Aws/AutoScaling/AutoScalingClient.php | 108 +- .../Aws/AutoScaling/Enum/LifecycleState.php | 31 - .../Enum/ScalingActivityStatusCode.php | 34 - .../Exception/AlreadyExistsException.php | 22 - .../Exception/AutoScalingException.php | 21 +- .../Exception/InvalidNextTokenException.php | 22 - .../Exception/LimitExceededException.php | 22 - .../Exception/ResourceInUseException.php | 22 - .../ScalingActivityInProgressException.php | 22 - .../Resources/autoscaling-2011-01-01.php | 3609 --- lib/aws-sdk/Aws/AwsClient.php | 350 + lib/aws-sdk/Aws/AwsClientInterface.php | 169 + lib/aws-sdk/Aws/CacheInterface.php | 34 + lib/aws-sdk/Aws/ClientResolver.php | 498 + .../CloudFormation/CloudFormationClient.php | 74 +- .../Aws/CloudFormation/Enum/Capability.php | 27 - .../Aws/CloudFormation/Enum/OnFailure.php | 29 - .../CloudFormation/Enum/ResourceStatus.php | 35 - .../Aws/CloudFormation/Enum/StackStatus.php | 42 - .../Exception/AlreadyExistsException.php | 22 - .../Exception/CloudFormationException.php | 21 +- .../InsufficientCapabilitiesException.php | 22 - .../Exception/LimitExceededException.php | 22 - .../Resources/cloudformation-2010-05-15.php | 1329 -- .../Aws/CloudFront/CloudFrontClient.php | 244 +- .../Aws/CloudFront/CloudFrontSignature.php | 61 - .../CloudFront/Enum/GeoRestrictionType.php | 29 - .../Aws/CloudFront/Enum/ItemSelection.php | 29 - lib/aws-sdk/Aws/CloudFront/Enum/Method.php | 33 - .../CloudFront/Enum/OriginProtocolPolicy.php | 28 - .../Aws/CloudFront/Enum/PriceClass.php | 29 - .../Aws/CloudFront/Enum/SSLSupportMethod.php | 28 - .../CloudFront/Enum/ViewerProtocolPolicy.php | 29 - .../Exception/AccessDeniedException.php | 22 - .../Exception/BatchTooLargeException.php | 22 - .../Exception/CNAMEAlreadyExistsException.php | 22 - .../Exception/CloudFrontException.php | 21 +- ...inAccessIdentityAlreadyExistsException.php | 22 - ...rontOriginAccessIdentityInUseException.php | 22 - .../DistributionAlreadyExistsException.php | 22 - .../DistributionNotDisabledException.php | 22 - .../Aws/CloudFront/Exception/Exception.php | 24 - .../Exception/IllegalUpdateException.php | 22 - .../InconsistentQuantitiesException.php | 22 - .../Exception/InvalidArgumentException.php | 22 - .../InvalidDefaultRootObjectException.php | 22 - .../Exception/InvalidErrorCodeException.php | 22 - .../InvalidForwardCookiesException.php | 22 - ...nvalidGeoRestrictionParameterException.php | 22 - .../InvalidIfMatchVersionException.php | 22 - .../InvalidLocationCodeException.php | 22 - .../InvalidOriginAccessIdentityException.php | 22 - .../Exception/InvalidOriginException.php | 22 - .../InvalidRelativePathException.php | 22 - .../InvalidRequiredProtocolException.php | 22 - .../InvalidResponseCodeException.php | 22 - .../InvalidViewerCertificateException.php | 22 - .../Exception/MissingBodyException.php | 22 - ...loudFrontOriginAccessIdentityException.php | 22 - .../Exception/NoSuchDistributionException.php | 22 - .../Exception/NoSuchInvalidationException.php | 22 - .../Exception/NoSuchOriginException.php | 22 - .../NoSuchStreamingDistributionException.php | 22 - .../Exception/PreconditionFailedException.php | 22 - ...mingDistributionAlreadyExistsException.php | 22 - ...eamingDistributionNotDisabledException.php | 22 - .../TooManyCacheBehaviorsException.php | 22 - .../TooManyCertificatesException.php | 22 - ...udFrontOriginAccessIdentitiesException.php | 22 - ...TooManyCookieNamesInWhiteListException.php | 22 - .../TooManyDistributionCNAMEsException.php | 22 - .../TooManyDistributionsException.php | 22 - ...ooManyInvalidationsInProgressException.php | 22 - .../Exception/TooManyOriginsException.php | 22 - ...nyStreamingDistributionCNAMEsException.php | 22 - ...TooManyStreamingDistributionsException.php | 22 - .../TooManyTrustedSignersException.php | 22 - .../TrustedSignerDoesNotExistException.php | 22 - .../Resources/cloudfront-2012-05-05.php | 4609 ---- .../Resources/cloudfront-2014-11-06.php | 5744 ----- lib/aws-sdk/Aws/CloudFront/UrlSigner.php | 183 + lib/aws-sdk/Aws/CloudHsm/CloudHsmClient.php | 72 +- .../CloudHsm/Exception/CloudHsmException.php | 21 +- .../Resources/cloudhsm-2014-05-30.php | 1179 - .../Aws/CloudSearch/CloudSearchClient.php | 102 +- .../Aws/CloudSearch/Enum/IndexFieldType.php | 38 - .../Aws/CloudSearch/Enum/OptionState.php | 30 - .../CloudSearch/Enum/SearchInstanceType.php | 30 - .../CloudSearch/Enum/SourceDataFunction.php | 29 - .../CloudSearch/Exception/BaseException.php | 22 - .../Exception/CloudSearchException.php | 21 +- .../Exception/InternalException.php | 22 - .../Exception/InvalidTypeException.php | 22 - .../Exception/LimitExceededException.php | 22 - .../Exception/ResourceNotFoundException.php | 22 - .../Resources/cloudsearch-2011-02-01.php | 2346 -- .../Resources/cloudsearch-2013-01-01.php | 3497 --- .../CloudSearchDomainClient.php | 56 +- .../CloudSearchDomainClientBuilder.php | 122 - .../Exception/CloudSearchDomainException.php | 7 +- .../cloudsearchdomain-2013-01-01.php | 317 - .../Aws/CloudTrail/CloudTrailClient.php | 63 +- .../Exception/CloudTrailException.php | 21 +- .../InsufficientS3BucketPolicyException.php | 22 - .../InsufficientSnsTopicPolicyException.php | 22 - .../Exception/InternalErrorException.php | 22 - .../InvalidS3BucketNameException.php | 22 - .../Exception/InvalidS3PrefixException.php | 22 - .../InvalidSnsTopicNameException.php | 22 - .../Exception/InvalidTrailNameException.php | 22 - ...MaximumNumberOfTrailsExceededException.php | 22 - .../S3BucketDoesNotExistException.php | 22 - .../Exception/TrailAlreadyExistsException.php | 22 - .../Exception/TrailNotFoundException.php | 22 - .../Exception/TrailNotProvidedException.php | 22 - .../Aws/CloudTrail/LogFileIterator.php | 236 +- lib/aws-sdk/Aws/CloudTrail/LogFileReader.php | 41 +- .../Aws/CloudTrail/LogRecordIterator.php | 121 +- .../Resources/cloudtrail-2013-11-01.php | 752 - .../Aws/CloudWatch/CloudWatchClient.php | 67 +- .../CloudWatch/Enum/ComparisonOperator.php | 30 - .../Aws/CloudWatch/Enum/HistoryItemType.php | 29 - .../Aws/CloudWatch/Enum/StateValue.php | 29 - lib/aws-sdk/Aws/CloudWatch/Enum/Statistic.php | 31 - lib/aws-sdk/Aws/CloudWatch/Enum/Unit.php | 53 - .../Exception/CloudWatchException.php | 21 +- .../Exception/InternalServiceException.php | 22 - .../Exception/InvalidFormatException.php | 22 - .../Exception/InvalidNextTokenException.php | 22 - .../InvalidParameterCombinationException.php | 22 - .../InvalidParameterValueException.php | 22 - .../Exception/LimitExceededException.php | 22 - .../MissingRequiredParameterException.php | 22 - .../Exception/ResourceNotFoundException.php | 22 - .../Resources/cloudwatch-2010-08-01.php | 1251 - .../CloudWatchLogs/CloudWatchLogsClient.php | 63 +- .../Exception/CloudWatchLogsException.php | 7 +- .../Resources/cloudwatchlogs-2014-03-28.php | 1489 -- .../Aws/CodeDeploy/CodeDeployClient.php | 87 +- .../Exception/CodeDeployException.php | 7 +- .../Resources/codedeploy-2014-10-06.php | 3071 --- .../CognitoIdentity/CognitoIdentityClient.php | 81 +- .../Exception/CognitoIdentityException.php | 7 +- .../Resources/cognitoidentity-2014-06-30.php | 1580 -- .../Aws/CognitoSync/CognitoSyncClient.php | 57 +- .../Exception/CognitoSyncException.php | 7 +- .../Resources/cognitosync-2014-06-30.php | 1405 -- lib/aws-sdk/Aws/Command.php | 57 + lib/aws-sdk/Aws/CommandInterface.php | 42 + lib/aws-sdk/Aws/CommandPool.php | 144 + lib/aws-sdk/Aws/Common/Aws.php | 106 - .../Aws/Common/Client/AbstractClient.php | 283 - .../Aws/Common/Client/AwsClientInterface.php | 118 - .../Aws/Common/Client/ClientBuilder.php | 526 - .../Aws/Common/Client/DefaultClient.php | 67 - .../Client/ExpiredCredentialsChecker.php | 80 - .../Common/Client/ThrottlingErrorChecker.php | 75 - .../Aws/Common/Client/UploadBodyListener.php | 95 - .../Aws/Common/Client/UserAgentListener.php | 61 - .../Aws/Common/Command/AwsQueryVisitor.php | 117 - .../Aws/Common/Command/JsonCommand.php | 47 - .../Aws/Common/Command/QueryCommand.php | 53 - .../Command/XmlResponseLocationVisitor.php | 74 - .../AbstractCredentialsDecorator.php | 136 - .../AbstractRefreshableCredentials.php | 76 - .../Credentials/CacheableCredentials.php | 73 - .../Aws/Common/Credentials/Credentials.php | 336 - .../Credentials/CredentialsInterface.php | 96 - .../Common/Credentials/NullCredentials.php | 68 - .../RefreshableInstanceProfileCredentials.php | 59 - lib/aws-sdk/Aws/Common/Enum.php | 55 - lib/aws-sdk/Aws/Common/Enum/ClientOptions.php | 162 - lib/aws-sdk/Aws/Common/Enum/DateFormat.php | 31 - lib/aws-sdk/Aws/Common/Enum/Region.php | 63 - lib/aws-sdk/Aws/Common/Enum/Size.php | 53 - lib/aws-sdk/Aws/Common/Enum/Time.php | 46 - lib/aws-sdk/Aws/Common/Enum/UaString.php | 55 - .../Exception/AwsExceptionInterface.php | 30 - .../Exception/BadMethodCallException.php | 22 - .../Aws/Common/Exception/DomainException.php | 22 - .../Exception/ExceptionFactoryInterface.php | 36 - .../Common/Exception/ExceptionListener.php | 59 - .../InstanceProfileCredentialsException.php | 50 - .../Exception/InvalidArgumentException.php | 22 - .../Aws/Common/Exception/LogicException.php | 22 - .../Exception/MultipartUploadException.php | 55 - .../Exception/NamespaceExceptionFactory.php | 103 - .../Common/Exception/OutOfBoundsException.php | 22 - .../Common/Exception/OverflowException.php | 22 - .../Parser/AbstractJsonExceptionParser.php | 66 - .../Parser/DefaultXmlExceptionParser.php | 109 - .../Parser/ExceptionParserInterface.php | 42 - .../Parser/JsonQueryExceptionParser.php | 41 - .../Parser/JsonRestExceptionParser.php | 48 - .../RequiredExtensionNotLoadedException.php | 22 - .../Aws/Common/Exception/RuntimeException.php | 22 - .../Exception/ServiceResponseException.php | 221 - .../Common/Exception/TransferException.php | 24 - .../Exception/UnexpectedValueException.php | 22 - lib/aws-sdk/Aws/Common/Facade/Facade.php | 69 - .../Aws/Common/Facade/FacadeInterface.php | 34 - .../Aws/Common/Facade/facade-classes.php | 283 - lib/aws-sdk/Aws/Common/Hash/ChunkHash.php | 87 - .../Aws/Common/Hash/ChunkHashInterface.php | 52 - lib/aws-sdk/Aws/Common/Hash/HashUtils.php | 76 - lib/aws-sdk/Aws/Common/Hash/TreeHash.php | 195 - lib/aws-sdk/Aws/Common/HostNameUtils.php | 85 - .../InstanceMetadataClient.php | 102 - .../Waiter/ServiceAvailable.php | 50 - .../Common/Iterator/AwsResourceIterator.php | 169 - .../Iterator/AwsResourceIteratorFactory.php | 106 - .../MultipartUpload/AbstractTransfer.php | 270 - .../MultipartUpload/AbstractTransferState.php | 164 - .../MultipartUpload/AbstractUploadBuilder.php | 148 - .../MultipartUpload/AbstractUploadId.php | 89 - .../MultipartUpload/AbstractUploadPart.php | 101 - .../MultipartUpload/TransferInterface.php | 66 - .../TransferStateInterface.php | 92 - .../MultipartUpload/UploadIdInterface.php | 39 - .../MultipartUpload/UploadPartInterface.php | 46 - .../Aws/Common/Resources/aws-config.php | 338 - .../Aws/Common/Resources/public-endpoints.php | 79 - .../Aws/Common/Resources/sdk1-config.php | 138 - .../Aws/Common/RulesEndpointProvider.php | 67 - .../Common/Signature/AbstractSignature.php | 44 - .../Signature/EndpointSignatureInterface.php | 42 - .../Common/Signature/SignatureInterface.php | 52 - .../Common/Signature/SignatureListener.php | 83 - .../Aws/Common/Signature/SignatureV2.php | 109 - .../Aws/Common/Signature/SignatureV3Https.php | 52 - .../Aws/Common/Signature/SignatureV4.php | 477 - .../Common/Waiter/AbstractResourceWaiter.php | 53 - .../Aws/Common/Waiter/AbstractWaiter.php | 146 - .../Aws/Common/Waiter/CallableWaiter.php | 82 - .../Common/Waiter/CompositeWaiterFactory.php | 90 - .../Common/Waiter/ConfigResourceWaiter.php | 225 - .../Common/Waiter/ResourceWaiterInterface.php | 34 - .../Aws/Common/Waiter/WaiterClassFactory.php | 106 - .../Aws/Common/Waiter/WaiterConfig.php | 67 - .../Aws/Common/Waiter/WaiterConfigFactory.php | 98 - .../Common/Waiter/WaiterFactoryInterface.php | 41 - .../Aws/Common/Waiter/WaiterInterface.php | 60 - .../Aws/ConfigService/ConfigServiceClient.php | 68 +- .../Exception/ConfigServiceException.php | 7 +- .../Resources/configservice-2014-11-12.php | 838 - .../Aws/Credentials/CredentialProvider.php | 263 + lib/aws-sdk/Aws/Credentials/Credentials.php | 66 + .../Aws/Credentials/CredentialsInterface.php | 52 + .../Credentials/InstanceProfileProvider.php | 102 + .../Aws/DataPipeline/DataPipelineClient.php | 80 +- .../Aws/DataPipeline/Enum/WorkStatus.php | 29 - .../Exception/DataPipelineException.php | 21 +- .../InternalServiceErrorException.php | 22 - .../Exception/InvalidRequestException.php | 22 - .../Exception/PipelineDeletedException.php | 22 - .../Exception/PipelineNotFoundException.php | 22 - .../Exception/TaskNotFoundException.php | 22 - .../Resources/datapipeline-2012-10-29.php | 1899 -- .../Aws/DirectConnect/DirectConnectClient.php | 79 +- .../DirectConnect/Enum/ConnectionState.php | 34 - .../DirectConnect/Enum/InterconnectState.php | 32 - .../Aws/DirectConnect/Enum/StepState.php | 28 - .../Enum/VirtualInterfaceState.php | 33 - .../DirectConnectClientException.php | 22 - .../Exception/DirectConnectException.php | 21 +- .../DirectConnectServerException.php | 22 - .../Resources/directconnect-2012-10-25.php | 1394 -- .../DirectoryServiceClient.php | 58 +- .../Exception/DirectoryServiceException.php | 7 +- .../Resources/directoryservice-2015-04-16.php | 1455 -- lib/aws-sdk/Aws/DynamoDb/BinaryValue.php | 36 + .../Aws/DynamoDb/Crc32ErrorChecker.php | 66 - lib/aws-sdk/Aws/DynamoDb/DynamoDbClient.php | 210 +- lib/aws-sdk/Aws/DynamoDb/DynamoDbCommand.php | 100 - .../Aws/DynamoDb/Enum/AttributeAction.php | 29 - .../Aws/DynamoDb/Enum/AttributeType.php | 29 - .../Aws/DynamoDb/Enum/ComparisonOperator.php | 39 - lib/aws-sdk/Aws/DynamoDb/Enum/IndexStatus.php | 30 - lib/aws-sdk/Aws/DynamoDb/Enum/KeyType.php | 28 - .../Aws/DynamoDb/Enum/ProjectionType.php | 29 - .../DynamoDb/Enum/ReturnConsumedCapacity.php | 29 - .../Enum/ReturnItemCollectionMetrics.php | 28 - lib/aws-sdk/Aws/DynamoDb/Enum/ReturnValue.php | 31 - .../Aws/DynamoDb/Enum/ScalarAttributeType.php | 29 - lib/aws-sdk/Aws/DynamoDb/Enum/Select.php | 30 - lib/aws-sdk/Aws/DynamoDb/Enum/TableStatus.php | 30 - lib/aws-sdk/Aws/DynamoDb/Enum/Type.php | 41 - .../Exception/AccessDeniedException.php | 22 - .../ConditionalCheckFailedException.php | 22 - .../DynamoDb/Exception/DynamoDbException.php | 21 +- .../IncompleteSignatureException.php | 22 - .../Exception/InternalFailureException.php | 22 - .../InternalServerErrorException.php | 22 - ...emCollectionSizeLimitExceededException.php | 22 - .../Exception/LimitExceededException.php | 22 - .../MissingAuthenticationTokenException.php | 22 - ...ProvisionedThroughputExceededException.php | 22 - .../Exception/ResourceInUseException.php | 22 - .../Exception/ResourceNotFoundException.php | 22 - .../Exception/ServiceUnavailableException.php | 22 - .../Exception/ThrottlingException.php | 22 - .../UnprocessedWriteRequestsException.php | 78 - .../Exception/UnrecognizedClientException.php | 22 - .../Exception/ValidationException.php | 22 - .../Aws/DynamoDb/Iterator/ItemIterator.php | 119 - .../Aws/DynamoDb/Iterator/ScanIterator.php | 57 - .../Aws/DynamoDb/LockingSessionConnection.php | 62 + lib/aws-sdk/Aws/DynamoDb/Marshaler.php | 256 +- lib/aws-sdk/Aws/DynamoDb/Model/Attribute.php | 248 - .../BatchRequest/AbstractWriteRequest.php | 36 - .../Model/BatchRequest/DeleteRequest.php | 94 - .../Model/BatchRequest/PutRequest.php | 100 - .../Model/BatchRequest/UnprocessedRequest.php | 48 - .../Model/BatchRequest/WriteRequestBatch.php | 120 - .../WriteRequestBatchTransfer.php | 252 - .../BatchRequest/WriteRequestInterface.php | 32 - lib/aws-sdk/Aws/DynamoDb/Model/Item.php | 261 - lib/aws-sdk/Aws/DynamoDb/NumberValue.php | 29 + .../Resources/dynamodb-2011-12-05.php | 3546 --- .../Resources/dynamodb-2012-08-10.php | 499 - .../AbstractLockingStrategy.php | 129 - .../LockingStrategyFactory.php | 85 - .../LockingStrategyFactoryInterface.php | 36 - .../LockingStrategyInterface.php | 52 - .../LockingStrategy/NullLockingStrategy.php | 65 - .../PessimisticLockingStrategy.php | 118 - .../Aws/DynamoDb/Session/SessionHandler.php | 460 - .../DynamoDb/Session/SessionHandlerConfig.php | 86 - .../Session/SessionHandlerInterface.php | 20 - .../DynamoDb/SessionConnectionInterface.php | 45 + lib/aws-sdk/Aws/DynamoDb/SessionHandler.php | 226 + lib/aws-sdk/Aws/DynamoDb/SetValue.php | 44 + .../DynamoDb/StandardSessionConnection.php | 137 + .../Aws/DynamoDb/WriteRequestBatch.php | 269 + lib/aws-sdk/Aws/Ec2/CopySnapshotListener.php | 82 - .../Aws/Ec2/CopySnapshotMiddleware.php | 78 + lib/aws-sdk/Aws/Ec2/Ec2Client.php | 313 +- lib/aws-sdk/Aws/Ec2/Enum/ContainerFormat.php | 27 - lib/aws-sdk/Aws/Ec2/Enum/DiskImageFormat.php | 29 - lib/aws-sdk/Aws/Ec2/Enum/DomainType.php | 28 - .../Aws/Ec2/Enum/ExportEnvironment.php | 29 - lib/aws-sdk/Aws/Ec2/Enum/HypervisorType.php | 28 - lib/aws-sdk/Aws/Ec2/Enum/ImageState.php | 28 - .../Aws/Ec2/Enum/InstanceAttributeName.php | 38 - .../Aws/Ec2/Enum/InstanceStateName.php | 32 - lib/aws-sdk/Aws/Ec2/Enum/InstanceType.php | 64 - .../Aws/Ec2/Enum/PlacementGroupState.php | 30 - .../Aws/Ec2/Enum/PlacementStrategy.php | 27 - lib/aws-sdk/Aws/Ec2/Enum/ResourceType.php | 43 - lib/aws-sdk/Aws/Ec2/Enum/RouteOrigin.php | 29 - lib/aws-sdk/Aws/Ec2/Enum/RuleAction.php | 28 - .../Aws/Ec2/Enum/SnapshotAttributeName.php | 28 - lib/aws-sdk/Aws/Ec2/Enum/SnapshotState.php | 29 - lib/aws-sdk/Aws/Ec2/Enum/SpotInstanceType.php | 28 - .../Aws/Ec2/Enum/VirtualizationType.php | 28 - .../Aws/Ec2/Enum/VolumeAttachmentState.php | 30 - .../Aws/Ec2/Enum/VolumeAttributeName.php | 28 - lib/aws-sdk/Aws/Ec2/Enum/VolumeState.php | 32 - lib/aws-sdk/Aws/Ec2/Enum/VolumeType.php | 28 - lib/aws-sdk/Aws/Ec2/Enum/VpcAttributeName.php | 28 - .../Aws/Ec2/Exception/Ec2Exception.php | 21 +- .../Iterator/DescribeInstancesIterator.php | 48 - .../Aws/Ec2/Resources/ec2-2015-04-15.php | 19082 ---------------- lib/aws-sdk/Aws/Ecs/EcsClient.php | 88 +- .../Aws/Ecs/Exception/EcsException.php | 6 +- .../Aws/Ecs/Resources/ecs-2014-11-13.php | 3687 --- lib/aws-sdk/Aws/Efs/EfsClient.php | 49 +- .../Aws/Efs/Exception/EfsException.php | 6 +- .../elasticfilesystem-2015-02-01.php | 723 - .../Aws/ElastiCache/ElastiCacheClient.php | 101 +- .../Aws/ElastiCache/Enum/SourceType.php | 30 - .../AuthorizationAlreadyExistsException.php | 22 - .../AuthorizationNotFoundException.php | 22 - .../CacheClusterAlreadyExistsException.php | 22 - .../CacheClusterNotFoundException.php | 22 - ...heParameterGroupAlreadyExistsException.php | 22 - .../CacheParameterGroupNotFoundException.php | 22 - ...heParameterGroupQuotaExceededException.php | 22 - ...cheSecurityGroupAlreadyExistsException.php | 22 - .../CacheSecurityGroupNotFoundException.php | 22 - ...cheSecurityGroupQuotaExceededException.php | 22 - ...CacheSubnetGroupAlreadyExistsException.php | 22 - .../CacheSubnetGroupInUseException.php | 22 - .../CacheSubnetGroupNotFoundException.php | 22 - ...CacheSubnetGroupQuotaExceededException.php | 22 - .../CacheSubnetQuotaExceededException.php | 22 - ...usterQuotaForCustomerExceededException.php | 22 - .../Exception/ElastiCacheException.php | 21 +- ...ufficientCacheClusterCapacityException.php | 22 - .../InvalidCacheClusterStateException.php | 22 - ...validCacheParameterGroupStateException.php | 22 - ...nvalidCacheSecurityGroupStateException.php | 22 - .../InvalidParameterCombinationException.php | 22 - .../InvalidParameterValueException.php | 22 - .../InvalidReplicationGroupStateException.php | 22 - .../Exception/InvalidSubnetException.php | 22 - .../InvalidVPCNetworkStateException.php | 22 - .../NodeQuotaForClusterExceededException.php | 22 - .../NodeQuotaForCustomerExceededException.php | 22 - ...ReplicationGroupAlreadyExistsException.php | 22 - .../ReplicationGroupNotFoundException.php | 22 - ...eservedCacheNodeAlreadyExistsException.php | 22 - .../ReservedCacheNodeNotFoundException.php | 22 - ...eservedCacheNodeQuotaExceededException.php | 22 - ...vedCacheNodesOfferingNotFoundException.php | 22 - .../Exception/SubnetInUseException.php | 22 - .../Resources/elasticache-2015-02-02.php | 4099 ---- .../ElasticBeanstalkClient.php | 90 +- .../Enum/ConfigurationDeploymentStatus.php | 29 - .../Enum/ConfigurationOptionValueType.php | 28 - .../Enum/EnvironmentHealth.php | 30 - .../Enum/EnvironmentInfoType.php | 27 - .../Enum/EnvironmentStatus.php | 31 - .../ElasticBeanstalk/Enum/EventSeverity.php | 32 - .../Enum/ValidationSeverity.php | 28 - .../Exception/ElasticBeanstalkException.php | 21 +- .../InsufficientPrivilegesException.php | 22 - .../OperationInProgressException.php | 22 - .../S3LocationNotInServiceRegionException.php | 22 - .../S3SubscriptionRequiredException.php | 22 - .../SourceBundleDeletionException.php | 22 - .../TooManyApplicationVersionsException.php | 22 - .../TooManyApplicationsException.php | 22 - .../Exception/TooManyBucketsException.php | 22 - ...TooManyConfigurationTemplatesException.php | 22 - .../TooManyEnvironmentsException.php | 22 - .../Resources/elasticbeanstalk-2010-12-01.php | 2511 -- .../ElasticLoadBalancingClient.php | 84 +- .../AccessPointNotFoundException.php | 22 - .../CertificateNotFoundException.php | 22 - .../DuplicateAccessPointNameException.php | 22 - .../Exception/DuplicateListenerException.php | 22 - .../DuplicatePolicyNameException.php | 22 - .../ElasticLoadBalancingException.php | 21 +- .../InvalidConfigurationRequestException.php | 22 - .../Exception/InvalidEndPointException.php | 22 - .../Exception/InvalidSchemeException.php | 22 - .../InvalidSecurityGroupException.php | 22 - .../Exception/InvalidSubnetException.php | 22 - .../Exception/ListenerNotFoundException.php | 22 - ...LoadBalancerAttributeNotFoundException.php | 22 - .../Exception/PolicyNotFoundException.php | 22 - .../Exception/PolicyTypeNotFoundException.php | 22 - .../Exception/SubnetNotFoundException.php | 22 - .../TooManyAccessPointsException.php | 22 - .../Exception/TooManyPoliciesException.php | 22 - .../elasticloadbalancing-2012-06-01.php | 2299 -- .../ElasticTranscoderClient.php | 75 +- .../Exception/AccessDeniedException.php | 22 - .../Exception/ElasticTranscoderException.php | 21 +- .../IncompatibleVersionException.php | 22 - .../Exception/InternalServiceException.php | 22 - .../Exception/LimitExceededException.php | 22 - .../Exception/ResourceInUseException.php | 22 - .../Exception/ResourceNotFoundException.php | 22 - .../Exception/ValidationException.php | 22 - .../elastictranscoder-2012-09-25.php | 6095 ----- lib/aws-sdk/Aws/Emr/EmrClient.php | 77 +- lib/aws-sdk/Aws/Emr/Enum/ActionOnFailure.php | 30 - lib/aws-sdk/Aws/Emr/Enum/ClusterState.php | 33 - .../Emr/Enum/ClusterStateChangeReasonCode.php | 33 - .../Aws/Emr/Enum/InstanceGroupState.php | 36 - .../InstanceGroupStateChangeReasonCode.php | 30 - .../Aws/Emr/Enum/InstanceGroupType.php | 29 - lib/aws-sdk/Aws/Emr/Enum/InstanceRoleType.php | 29 - lib/aws-sdk/Aws/Emr/Enum/InstanceState.php | 31 - .../Enum/InstanceStateChangeReasonCode.php | 31 - .../Aws/Emr/Enum/JobFlowExecutionState.php | 34 - lib/aws-sdk/Aws/Emr/Enum/MarketType.php | 28 - .../Aws/Emr/Enum/StepExecutionState.php | 33 - lib/aws-sdk/Aws/Emr/Enum/StepState.php | 32 - .../Emr/Enum/StepStateChangeReasonCode.php | 27 - .../Aws/Emr/Exception/EmrException.php | 21 +- .../InternalServerErrorException.php | 22 - .../Emr/Exception/InternalServerException.php | 22 - .../Emr/Exception/InvalidRequestException.php | 22 - .../Aws/Emr/Resources/emr-2009-03-31.php | 2161 -- lib/aws-sdk/Aws/Endpoint/EndpointProvider.php | 96 + .../Aws/Endpoint/PatternEndpointProvider.php | 51 + lib/aws-sdk/Aws/Exception/AwsException.php | 160 + .../CouldNotCreateChecksumException.php | 19 + .../Aws/Exception/CredentialsException.php | 4 + .../Exception/MultipartUploadException.php | 57 + .../Aws/Exception/UnresolvedApiException.php | 4 + .../Exception/UnresolvedEndpointException.php | 4 + .../UnresolvedSignatureException.php | 4 + lib/aws-sdk/Aws/Glacier/Enum/Action.php | 29 - lib/aws-sdk/Aws/Glacier/Enum/ActionCode.php | 28 - lib/aws-sdk/Aws/Glacier/Enum/StatusCode.php | 29 - .../Glacier/Exception/GlacierException.php | 21 +- .../InvalidParameterValueException.php | 22 - .../Exception/LimitExceededException.php | 22 - .../MissingParameterValueException.php | 22 - .../Exception/RequestTimeoutException.php | 22 - .../Exception/ResourceNotFoundException.php | 22 - .../Exception/ServiceUnavailableException.php | 22 - lib/aws-sdk/Aws/Glacier/GlacierClient.php | 237 +- .../Aws/Glacier/GlacierUploadListener.php | 63 - .../MultipartUpload/AbstractTransfer.php | 105 - .../MultipartUpload/ParallelTransfer.php | 75 - .../Model/MultipartUpload/SerialTransfer.php | 52 - .../Model/MultipartUpload/TransferState.php | 79 - .../Model/MultipartUpload/UploadBuilder.php | 216 - .../Model/MultipartUpload/UploadId.php | 35 - .../Model/MultipartUpload/UploadPart.php | 110 - .../MultipartUpload/UploadPartContext.php | 138 - .../MultipartUpload/UploadPartGenerator.php | 279 - lib/aws-sdk/Aws/Glacier/MultipartUploader.php | 281 + .../Glacier/Resources/glacier-2012-06-01.php | 1713 -- lib/aws-sdk/Aws/Glacier/TreeHash.php | 118 + .../Aws/Handler/GuzzleV5/GuzzleHandler.php | 179 + .../Aws/Handler/GuzzleV5/GuzzleStream.php | 24 + .../Aws/Handler/GuzzleV5/PsrStream.php | 34 + .../Aws/Handler/GuzzleV6/GuzzleHandler.php | 58 + lib/aws-sdk/Aws/HandlerList.php | 424 + lib/aws-sdk/Aws/HasDataTrait.php | 60 + lib/aws-sdk/Aws/HashInterface.php | 27 + lib/aws-sdk/Aws/HashingStream.php | 60 + lib/aws-sdk/Aws/History.php | 152 + .../Aws/Iam/Enum/AssignmentStatusType.php | 29 - lib/aws-sdk/Aws/Iam/Enum/StatusType.php | 28 - .../Iam/Exception/DeleteConflictException.php | 22 - .../DuplicateCertificateException.php | 22 - .../EntityAlreadyExistsException.php | 22 - ...EntityTemporarilyUnmodifiableException.php | 22 - .../Aws/Iam/Exception/IamException.php | 21 +- .../InvalidAuthenticationCodeException.php | 22 - .../Exception/InvalidCertificateException.php | 22 - .../Iam/Exception/InvalidInputException.php | 22 - .../Exception/InvalidUserTypeException.php | 22 - .../Exception/KeyPairMismatchException.php | 22 - .../Iam/Exception/LimitExceededException.php | 22 - .../MalformedCertificateException.php | 22 - .../MalformedPolicyDocumentException.php | 22 - .../Iam/Exception/NoSuchEntityException.php | 22 - .../PasswordPolicyViolationException.php | 22 - lib/aws-sdk/Aws/Iam/IamClient.php | 174 +- .../Aws/Iam/Resources/iam-2010-05-08.php | 7357 ------ lib/aws-sdk/Aws/ImportExport/Enum/JobType.php | 28 - .../Exception/BucketPermissionException.php | 22 - .../Exception/CanceledJobIdException.php | 22 - .../Exception/ExpiredJobIdException.php | 22 - .../Exception/ImportExportException.php | 24 - .../Exception/InvalidAccessKeyIdException.php | 22 - .../Exception/InvalidAddressException.php | 22 - .../Exception/InvalidCustomsException.php | 22 - .../Exception/InvalidFileSystemException.php | 22 - .../Exception/InvalidJobIdException.php | 22 - .../InvalidManifestFieldException.php | 22 - .../Exception/InvalidParameterException.php | 22 - .../Exception/MalformedManifestException.php | 22 - .../Exception/MissingCustomsException.php | 22 - .../MissingManifestFieldException.php | 22 - .../Exception/MissingParameterException.php | 22 - .../Exception/MultipleRegionsException.php | 22 - .../Exception/NoSuchBucketException.php | 22 - .../UnableToCancelJobIdException.php | 22 - .../Aws/ImportExport/ImportExportClient.php | 70 - .../Aws/ImportExport/JobManifestListener.php | 51 - .../Resources/importexport-2010-06-01.php | 774 - lib/aws-sdk/Aws/JsonCompiler.php | 158 + .../Aws/Kinesis/Enum/ShardIteratorType.php | 30 - lib/aws-sdk/Aws/Kinesis/Enum/StreamStatus.php | 30 - .../Exception/ExpiredIteratorException.php | 22 - .../Exception/InvalidArgumentException.php | 22 - .../Kinesis/Exception/KinesisException.php | 21 +- .../Exception/LimitExceededException.php | 22 - ...ProvisionedThroughputExceededException.php | 22 - .../Exception/ResourceInUseException.php | 22 - .../Exception/ResourceNotFoundException.php | 22 - lib/aws-sdk/Aws/Kinesis/KinesisClient.php | 80 +- .../Kinesis/Resources/kinesis-2013-12-02.php | 1019 - .../Aws/Kms/Exception/KmsException.php | 7 +- lib/aws-sdk/Aws/Kms/KmsClient.php | 81 +- .../Aws/Kms/Resources/kms-2014-11-01.php | 2037 -- .../Aws/Lambda/Exception/LambdaException.php | 7 +- lib/aws-sdk/Aws/Lambda/LambdaClient.php | 75 +- .../Lambda/Resources/lambda-2014-11-11.php | 742 - .../Lambda/Resources/lambda-2015-03-31.php | 1111 - lib/aws-sdk/Aws/LruArrayCache.php | 74 + .../Exception/MachineLearningException.php | 7 +- .../MachineLearning/MachineLearningClient.php | 86 +- .../PredictEndpointListener.php | 35 - .../Resources/machinelearning-2014-12-12.php | 2548 --- lib/aws-sdk/Aws/Middleware.php | 308 + lib/aws-sdk/Aws/MockHandler.php | 131 + .../Aws/Multipart/AbstractUploader.php | 398 + lib/aws-sdk/Aws/Multipart/UploadState.php | 145 + lib/aws-sdk/Aws/OpsWorks/Enum/AppType.php | 31 - .../Aws/OpsWorks/Enum/Architecture.php | 28 - .../Aws/OpsWorks/Enum/AutoScalingType.php | 28 - .../OpsWorks/Enum/DeploymentCommandName.php | 36 - lib/aws-sdk/Aws/OpsWorks/Enum/LayerType.php | 35 - .../Aws/OpsWorks/Enum/PermissionLevel.php | 30 - .../Aws/OpsWorks/Enum/RootDeviceType.php | 28 - lib/aws-sdk/Aws/OpsWorks/Enum/SourceType.php | 30 - .../OpsWorks/Exception/OpsWorksException.php | 21 +- .../Exception/ResourceNotFoundException.php | 22 - .../Exception/ValidationException.php | 22 - lib/aws-sdk/Aws/OpsWorks/OpsWorksClient.php | 135 +- .../Resources/opsworks-2013-02-18.php | 5591 ----- lib/aws-sdk/Aws/PhpHash.php | 81 + lib/aws-sdk/Aws/Rds/Enum/ApplyMethod.php | 28 - lib/aws-sdk/Aws/Rds/Enum/SourceType.php | 30 - .../AuthorizationAlreadyExistsException.php | 22 - .../AuthorizationNotFoundException.php | 22 - .../AuthorizationQuotaExceededException.php | 22 - .../DBInstanceAlreadyExistsException.php | 22 - .../Exception/DBInstanceNotFoundException.php | 22 - ...DBParameterGroupAlreadyExistsException.php | 22 - .../DBParameterGroupNotFoundException.php | 22 - ...DBParameterGroupQuotaExceededException.php | 22 - .../DBSecurityGroupAlreadyExistsException.php | 22 - .../DBSecurityGroupNotFoundException.php | 22 - .../DBSecurityGroupNotSupportedException.php | 22 - .../DBSecurityGroupQuotaExceededException.php | 22 - .../DBSnapshotAlreadyExistsException.php | 22 - .../Exception/DBSnapshotNotFoundException.php | 22 - .../DBSubnetGroupAlreadyExistsException.php | 22 - ...netGroupDoesNotCoverEnoughAZsException.php | 22 - .../DBSubnetGroupNotAllowedException.php | 22 - .../DBSubnetGroupNotFoundException.php | 22 - .../DBSubnetGroupQuotaExceededException.php | 22 - .../DBSubnetQuotaExceededException.php | 22 - .../DBUpgradeDependencyFailureException.php | 22 - ...ventSubscriptionQuotaExceededException.php | 22 - .../InstanceQuotaExceededException.php | 22 - ...nsufficientDBInstanceCapacityException.php | 22 - .../InvalidDBInstanceStateException.php | 22 - .../InvalidDBParameterGroupStateException.php | 22 - .../InvalidDBSecurityGroupStateException.php | 22 - .../InvalidDBSnapshotStateException.php | 22 - .../InvalidDBSubnetGroupException.php | 22 - .../InvalidDBSubnetGroupStateException.php | 22 - .../InvalidDBSubnetStateException.php | 22 - ...InvalidEventSubscriptionStateException.php | 22 - .../InvalidOptionGroupStateException.php | 22 - .../Rds/Exception/InvalidRestoreException.php | 22 - .../Rds/Exception/InvalidSubnetException.php | 22 - .../InvalidVPCNetworkStateException.php | 22 - .../OptionGroupAlreadyExistsException.php | 22 - .../OptionGroupNotFoundException.php | 22 - .../OptionGroupQuotaExceededException.php | 22 - .../PointInTimeRestoreNotEnabledException.php | 22 - ...ovisionedIopsNotAvailableInAZException.php | 22 - .../Aws/Rds/Exception/RdsException.php | 21 +- ...servedDBInstanceAlreadyExistsException.php | 22 - .../ReservedDBInstanceNotFoundException.php | 22 - ...servedDBInstanceQuotaExceededException.php | 22 - ...edDBInstancesOfferingNotFoundException.php | 22 - .../Exception/SNSInvalidTopicException.php | 22 - .../Exception/SNSNoAuthorizationException.php | 22 - .../SNSTopicArnNotFoundException.php | 22 - .../SnapshotQuotaExceededException.php | 22 - .../Rds/Exception/SourceNotFoundException.php | 22 - .../StorageQuotaExceededException.php | 22 - .../Exception/SubnetAlreadyInUseException.php | 22 - .../SubscriptionAlreadyExistException.php | 22 - .../SubscriptionCategoryNotFoundException.php | 22 - .../SubscriptionNotFoundException.php | 22 - lib/aws-sdk/Aws/Rds/RdsClient.php | 129 +- .../Aws/Rds/Resources/rds-2014-10-31.php | 6479 ------ lib/aws-sdk/Aws/Redshift/Enum/SourceType.php | 30 - .../AccessToSnapshotDeniedException.php | 22 - .../AuthorizationAlreadyExistsException.php | 22 - .../AuthorizationNotFoundException.php | 22 - .../AuthorizationQuotaExceededException.php | 22 - .../Exception/BucketNotFoundException.php | 22 - .../ClusterAlreadyExistsException.php | 22 - .../Exception/ClusterNotFoundException.php | 22 - ...erParameterGroupAlreadyExistsException.php | 22 - ...ClusterParameterGroupNotFoundException.php | 22 - ...erParameterGroupQuotaExceededException.php | 22 - .../ClusterQuotaExceededException.php | 22 - ...terSecurityGroupAlreadyExistsException.php | 22 - .../ClusterSecurityGroupNotFoundException.php | 22 - ...terSecurityGroupQuotaExceededException.php | 22 - .../ClusterSnapshotAlreadyExistsException.php | 22 - .../ClusterSnapshotNotFoundException.php | 22 - .../ClusterSnapshotQuotaExceededException.php | 22 - ...usterSubnetGroupAlreadyExistsException.php | 22 - .../ClusterSubnetGroupNotFoundException.php | 22 - ...usterSubnetGroupQuotaExceededException.php | 22 - .../ClusterSubnetQuotaExceededException.php | 22 - .../CopyToRegionDisabledException.php | 22 - ...ventSubscriptionQuotaExceededException.php | 22 - ...lientCertificateAlreadyExistsException.php | 22 - .../HsmClientCertificateNotFoundException.php | 22 - ...lientCertificateQuotaExceededException.php | 22 - ...HsmConfigurationAlreadyExistsException.php | 22 - .../HsmConfigurationNotFoundException.php | 22 - ...HsmConfigurationQuotaExceededException.php | 22 - .../IncompatibleOrderableOptionsException.php | 22 - .../InsufficientClusterCapacityException.php | 22 - ...sufficientS3BucketPolicyFaultException.php | 22 - ...lidClusterParameterGroupStateException.php | 22 - ...alidClusterSecurityGroupStateException.php | 22 - .../InvalidClusterSnapshotStateException.php | 22 - .../InvalidClusterStateException.php | 22 - ...nvalidClusterSubnetGroupStateException.php | 22 - .../InvalidClusterSubnetStateException.php | 22 - .../Exception/InvalidElasticIpException.php | 22 - ...alidHsmClientCertificateStateException.php | 22 - .../InvalidHsmConfigurationStateException.php | 22 - .../Exception/InvalidRestoreException.php | 22 - .../InvalidS3BucketNameFaultException.php | 22 - .../InvalidS3KeyPrefixFaultException.php | 22 - .../Exception/InvalidSubnetException.php | 22 - .../InvalidVPCNetworkStateException.php | 22 - ...fNodesPerClusterLimitExceededException.php | 22 - .../NumberOfNodesQuotaExceededException.php | 22 - .../Redshift/Exception/RedshiftException.php | 21 +- .../ReservedNodeAlreadyExistsException.php | 22 - .../ReservedNodeNotFoundException.php | 22 - .../ReservedNodeOfferingNotFoundException.php | 22 - .../ReservedNodeQuotaExceededException.php | 22 - .../Exception/ResizeNotFoundException.php | 22 - .../Exception/SNSInvalidTopicException.php | 22 - .../Exception/SNSNoAuthorizationException.php | 22 - .../SNSTopicArnNotFoundException.php | 22 - .../SnapshotCopyAlreadyDisabledException.php | 22 - .../SnapshotCopyAlreadyEnabledException.php | 22 - .../SnapshotCopyDisabledException.php | 22 - .../Exception/SourceNotFoundException.php | 22 - .../Exception/SubnetAlreadyInUseException.php | 22 - .../SubscriptionAlreadyExistException.php | 22 - .../SubscriptionCategoryNotFoundException.php | 22 - .../SubscriptionEventIdNotFoundException.php | 22 - .../SubscriptionNotFoundException.php | 22 - .../SubscriptionSeverityNotFoundException.php | 22 - .../UnauthorizedOperationException.php | 22 - .../UnknownSnapshotCopyRegionException.php | 22 - .../Exception/UnsupportedOptionException.php | 22 - lib/aws-sdk/Aws/Redshift/RedshiftClient.php | 126 +- .../Resources/redshift-2012-12-01.php | 5593 ----- lib/aws-sdk/Aws/Result.php | 56 + lib/aws-sdk/Aws/ResultInterface.php | 54 + lib/aws-sdk/Aws/ResultPaginator.php | 179 + lib/aws-sdk/Aws/RetryMiddleware.php | 120 + lib/aws-sdk/Aws/Route53/Enum/Action.php | 29 - .../Aws/Route53/Enum/HealthCheckType.php | 31 - lib/aws-sdk/Aws/Route53/Enum/RecordType.php | 36 - .../Enum/ResourceRecordSetFailover.php | 28 - lib/aws-sdk/Aws/Route53/Enum/Status.php | 28 - .../DelegationSetNotAvailableException.php | 22 - .../HealthCheckAlreadyExistsException.php | 22 - .../Exception/HealthCheckInUseException.php | 22 - .../HostedZoneAlreadyExistsException.php | 22 - .../Exception/HostedZoneNotEmptyException.php | 22 - .../IncompatibleVersionException.php | 22 - .../Exception/InvalidChangeBatchException.php | 22 - .../Exception/InvalidDomainNameException.php | 22 - .../Exception/InvalidInputException.php | 22 - .../Exception/NoSuchChangeException.php | 22 - .../Exception/NoSuchHealthCheckException.php | 22 - .../Exception/NoSuchHostedZoneException.php | 22 - .../PriorRequestNotCompleteException.php | 22 - .../Route53/Exception/Route53Exception.php | 21 +- .../TooManyHealthChecksException.php | 22 - .../Exception/TooManyHostedZonesException.php | 22 - .../Route53/Resources/route53-2013-04-01.php | 2834 --- lib/aws-sdk/Aws/Route53/Route53Client.php | 131 +- .../Exception/Route53DomainsException.php | 7 +- .../Resources/route53domains-2014-05-15.php | 2178 -- .../Route53Domains/Route53DomainsClient.php | 45 +- lib/aws-sdk/Aws/S3/AcpListener.php | 75 - lib/aws-sdk/Aws/S3/ApplyMd5Middleware.php | 64 + lib/aws-sdk/Aws/S3/BatchDelete.php | 235 + .../Aws/S3/BucketEndpointMiddleware.php | 75 + lib/aws-sdk/Aws/S3/BucketStyleListener.php | 89 - lib/aws-sdk/Aws/S3/Command/S3Command.php | 65 - lib/aws-sdk/Aws/S3/Enum/CannedAcl.php | 32 - lib/aws-sdk/Aws/S3/Enum/EncodingType.php | 27 - lib/aws-sdk/Aws/S3/Enum/Event.php | 27 - lib/aws-sdk/Aws/S3/Enum/GranteeType.php | 29 - lib/aws-sdk/Aws/S3/Enum/Group.php | 29 - lib/aws-sdk/Aws/S3/Enum/MFADelete.php | 28 - lib/aws-sdk/Aws/S3/Enum/MetadataDirective.php | 28 - lib/aws-sdk/Aws/S3/Enum/Payer.php | 28 - lib/aws-sdk/Aws/S3/Enum/Permission.php | 31 - lib/aws-sdk/Aws/S3/Enum/Protocol.php | 28 - .../Aws/S3/Enum/ServerSideEncryption.php | 27 - lib/aws-sdk/Aws/S3/Enum/Status.php | 28 - lib/aws-sdk/Aws/S3/Enum/Storage.php | 29 - lib/aws-sdk/Aws/S3/Enum/StorageClass.php | 28 - .../S3/Exception/AccessDeniedException.php | 22 - .../S3/Exception/AccountProblemException.php | 22 - .../AmbiguousGrantByEmailAddressException.php | 22 - .../Aws/S3/Exception/BadDigestException.php | 22 - .../BucketAlreadyExistsException.php | 22 - .../BucketAlreadyOwnedByYouException.php | 22 - .../S3/Exception/BucketNotEmptyException.php | 22 - .../CredentialsNotSupportedException.php | 22 - ...rossLocationLoggingProhibitedException.php | 22 - .../DeleteMultipleObjectsException.php | 60 +- .../S3/Exception/EntityTooLargeException.php | 22 - .../S3/Exception/EntityTooSmallException.php | 22 - .../S3/Exception/ExpiredTokenException.php | 22 - ...llegalVersioningConfigurationException.php | 22 - .../S3/Exception/IncompleteBodyException.php | 22 - ...ectNumberOfFilesInPostRequestException.php | 22 - .../Exception/InlineDataTooLargeException.php | 22 - .../S3/Exception/InternalErrorException.php | 22 - .../Exception/InvalidAccessKeyIdException.php | 22 - .../InvalidAddressingHeaderException.php | 22 - .../S3/Exception/InvalidArgumentException.php | 22 - .../Exception/InvalidBucketNameException.php | 22 - .../Exception/InvalidBucketStateException.php | 22 - .../S3/Exception/InvalidDigestException.php | 22 - .../InvalidLocationConstraintException.php | 22 - .../Aws/S3/Exception/InvalidPartException.php | 22 - .../Exception/InvalidPartOrderException.php | 22 - .../S3/Exception/InvalidPayerException.php | 22 - .../InvalidPolicyDocumentException.php | 22 - .../S3/Exception/InvalidRangeException.php | 22 - .../S3/Exception/InvalidRequestException.php | 22 - .../Exception/InvalidSOAPRequestException.php | 22 - .../S3/Exception/InvalidSecurityException.php | 22 - .../InvalidStorageClassException.php | 22 - .../S3/Exception/InvalidTagErrorException.php | 23 - ...InvalidTargetBucketForLoggingException.php | 22 - .../S3/Exception/InvalidTokenException.php | 22 - .../Aws/S3/Exception/InvalidURIException.php | 22 - .../Aws/S3/Exception/KeyTooLongException.php | 22 - .../Exception/MalformedACLErrorException.php | 22 - .../MalformedPOSTRequestException.php | 22 - .../S3/Exception/MalformedXMLException.php | 22 - .../MaxMessageLengthExceededException.php | 22 - ...ostPreDataLengthExceededErrorException.php | 22 - .../Exception/MetadataTooLargeException.php | 22 - .../Exception/MethodNotAllowedException.php | 22 - .../Exception/MissingAttachmentException.php | 22 - .../MissingContentLengthException.php | 22 - .../MissingRequestBodyErrorException.php | 22 - .../MissingSecurityElementException.php | 22 - .../MissingSecurityHeaderException.php | 22 - .../NoLoggingStatusForKeyException.php | 22 - .../S3/Exception/NoSuchBucketException.php | 22 - .../Exception/NoSuchBucketPolicyException.php | 22 - .../NoSuchCORSConfigurationException.php | 22 - .../Aws/S3/Exception/NoSuchKeyException.php | 22 - .../NoSuchLifecycleConfigurationException.php | 22 - .../S3/Exception/NoSuchTagSetException.php | 22 - .../S3/Exception/NoSuchUploadException.php | 22 - .../S3/Exception/NoSuchVersionException.php | 22 - .../NoSuchWebsiteConfigurationException.php | 22 - .../S3/Exception/NotImplementedException.php | 22 - .../Aws/S3/Exception/NotSignedUpException.php | 22 - .../NotSuchBucketPolicyException.php | 22 - ...bjectAlreadyInActiveTierErrorException.php | 22 - .../ObjectNotInActiveTierErrorException.php | 22 - .../Exception/OperationAbortedException.php | 22 - .../S3/Exception/Parser/S3ExceptionParser.php | 72 - .../Exception/PermanentRedirectException.php | 18 - .../Exception/PreconditionFailedException.php | 22 - .../Aws/S3/Exception/RedirectException.php | 22 - .../RequestIsNotMultiPartContentException.php | 22 - .../RequestTimeTooSkewedException.php | 22 - .../S3/Exception/RequestTimeoutException.php | 22 - .../RequestTorrentOfBucketErrorException.php | 22 - lib/aws-sdk/Aws/S3/Exception/S3Exception.php | 21 +- .../Exception/ServiceUnavailableException.php | 22 - .../SignatureDoesNotMatchException.php | 22 - .../Aws/S3/Exception/SlowDownException.php | 22 - .../Exception/TemporaryRedirectException.php | 22 - .../TokenRefreshRequiredException.php | 22 - .../S3/Exception/TooManyBucketsException.php | 22 - .../Exception/UnexpectedContentException.php | 22 - ...resolvableGrantByEmailAddressException.php | 22 - .../UserKeyMustBeSpecifiedException.php | 22 - .../Aws/S3/GetBucketLocationParser.php | 42 + .../S3/IncompleteMultipartUploadChecker.php | 56 - .../Aws/S3/Iterator/ListBucketsIterator.php | 48 - .../Iterator/ListMultipartUploadsIterator.php | 46 - .../Iterator/ListObjectVersionsIterator.php | 48 - .../Aws/S3/Iterator/ListObjectsIterator.php | 68 - .../Aws/S3/Iterator/OpendirIterator.php | 86 - lib/aws-sdk/Aws/S3/Model/Acp.php | 243 - lib/aws-sdk/Aws/S3/Model/AcpBuilder.php | 134 - lib/aws-sdk/Aws/S3/Model/ClearBucket.php | 189 - .../Aws/S3/Model/DeleteObjectsBatch.php | 87 - .../Aws/S3/Model/DeleteObjectsTransfer.php | 133 - lib/aws-sdk/Aws/S3/Model/Grant.php | 139 - lib/aws-sdk/Aws/S3/Model/Grantee.php | 245 - .../MultipartUpload/AbstractTransfer.php | 103 - .../MultipartUpload/ParallelTransfer.php | 124 - .../Model/MultipartUpload/SerialTransfer.php | 86 - .../Model/MultipartUpload/TransferState.php | 41 - .../Model/MultipartUpload/UploadBuilder.php | 297 - .../Aws/S3/Model/MultipartUpload/UploadId.php | 35 - .../S3/Model/MultipartUpload/UploadPart.php | 74 - lib/aws-sdk/Aws/S3/Model/PostObject.php | 275 - lib/aws-sdk/Aws/S3/MultipartUploader.php | 222 + .../Aws/S3/PermanentRedirectMiddleware.php | 62 + lib/aws-sdk/Aws/S3/PostObject.php | 159 + lib/aws-sdk/Aws/S3/PutObjectUrlMiddleware.php | 57 + .../Aws/S3/Resources/s3-2006-03-01.php | 5292 ----- lib/aws-sdk/Aws/S3/ResumableDownload.php | 176 - lib/aws-sdk/Aws/S3/S3Client.php | 909 +- lib/aws-sdk/Aws/S3/S3Md5Listener.php | 73 - lib/aws-sdk/Aws/S3/S3Signature.php | 266 - lib/aws-sdk/Aws/S3/S3SignatureInterface.php | 24 - lib/aws-sdk/Aws/S3/S3SignatureV4.php | 60 - lib/aws-sdk/Aws/S3/S3UriParser.php | 110 + lib/aws-sdk/Aws/S3/SSECMiddleware.php | 75 + lib/aws-sdk/Aws/S3/SocketTimeoutChecker.php | 71 - lib/aws-sdk/Aws/S3/SseCpkListener.php | 68 - lib/aws-sdk/Aws/S3/StreamWrapper.php | 989 +- lib/aws-sdk/Aws/S3/Sync/AbstractSync.php | 127 - .../Aws/S3/Sync/AbstractSyncBuilder.php | 434 - .../Aws/S3/Sync/ChangedFilesIterator.php | 130 - lib/aws-sdk/Aws/S3/Sync/DownloadSync.php | 95 - .../Aws/S3/Sync/DownloadSyncBuilder.php | 129 - .../S3/Sync/FilenameConverterInterface.php | 32 - lib/aws-sdk/Aws/S3/Sync/KeyConverter.php | 67 - lib/aws-sdk/Aws/S3/Sync/UploadSync.php | 86 - lib/aws-sdk/Aws/S3/Sync/UploadSyncBuilder.php | 190 - lib/aws-sdk/Aws/S3/Transfer.php | 378 + lib/aws-sdk/Aws/Sdk.php | 149 + lib/aws-sdk/Aws/Ses/Enum/IdentityType.php | 28 - lib/aws-sdk/Aws/Ses/Enum/MailboxSimulator.php | 32 - lib/aws-sdk/Aws/Ses/Enum/NotificationType.php | 28 - .../Aws/Ses/Enum/VerificationStatus.php | 31 - .../Exception/MessageRejectedException.php | 22 - .../Aws/Ses/Exception/SesException.php | 21 +- .../Aws/Ses/Resources/ses-2010-12-01.php | 937 - lib/aws-sdk/Aws/Ses/SesClient.php | 74 +- .../Aws/Signature/AnonymousSignature.php | 26 + lib/aws-sdk/Aws/Signature/S3SignatureV4.php | 37 + .../Aws/Signature/SignatureInterface.php | 44 + .../Aws/Signature/SignatureProvider.php | 123 + lib/aws-sdk/Aws/Signature/SignatureV4.php | 361 + .../AttributeDoesNotExistException.php | 22 - .../Exception/DuplicateItemNameException.php | 22 - .../Exception/InvalidNextTokenException.php | 22 - .../InvalidNumberPredicatesException.php | 22 - .../InvalidNumberValueTestsException.php | 22 - .../InvalidParameterValueException.php | 22 - .../InvalidQueryExpressionException.php | 22 - .../Exception/MissingParameterException.php | 22 - .../Exception/NoSuchDomainException.php | 22 - ...umberDomainAttributesExceededException.php | 22 - .../NumberDomainBytesExceededException.php | 22 - .../NumberDomainsExceededException.php | 22 - .../NumberItemAttributesExceededException.php | 22 - ...erSubmittedAttributesExceededException.php | 22 - .../NumberSubmittedItemsExceededException.php | 22 - .../Exception/RequestTimeoutException.php | 22 - .../SimpleDb/Exception/SimpleDbException.php | 24 - .../TooManyRequestedAttributesException.php | 22 - .../Resources/simpledb-2009-04-15.php | 854 - lib/aws-sdk/Aws/SimpleDb/SimpleDbClient.php | 67 - .../Exception/AuthorizationErrorException.php | 22 - .../Exception/EndpointDisabledException.php | 22 - .../Sns/Exception/InternalErrorException.php | 22 - .../Exception/InvalidParameterException.php | 22 - .../Exception/MessageValidatorException.php | 7 + .../Aws/Sns/Exception/NotFoundException.php | 22 - .../PlatformApplicationDisabledException.php | 22 - .../Aws/Sns/Exception/SnsException.php | 21 +- .../SubscriptionLimitExceededException.php | 22 - .../Exception/TopicLimitExceededException.php | 22 - ...otGetPublicKeyFromCertificateException.php | 24 - ...ificateFromUnrecognizedSourceException.php | 24 - .../InvalidMessageSignatureException.php | 24 - .../SnsMessageValidatorException.php | 24 - .../Aws/Sns/MessageValidator/Message.php | 111 +- .../Sns/MessageValidator/MessageValidator.php | 125 +- .../Aws/Sns/Resources/sns-2010-03-31.php | 1740 -- lib/aws-sdk/Aws/Sns/SnsClient.php | 82 +- lib/aws-sdk/Aws/Sqs/Enum/MessageAttribute.php | 31 - lib/aws-sdk/Aws/Sqs/Enum/QueueAttribute.php | 40 - .../Aws/Sqs/Exception/SqsException.php | 21 +- lib/aws-sdk/Aws/Sqs/Md5ValidatorListener.php | 54 - lib/aws-sdk/Aws/Sqs/QueueUrlListener.php | 52 - .../Aws/Sqs/Resources/sqs-2012-11-05.php | 1370 -- lib/aws-sdk/Aws/Sqs/SqsClient.php | 148 +- .../Aws/Ssm/Exception/SsmException.php | 21 +- .../Aws/Ssm/Resources/ssm-2014-11-06.php | 973 - lib/aws-sdk/Aws/Ssm/SsmClient.php | 66 +- .../Aws/StorageGateway/Enum/BandwidthType.php | 29 - .../Enum/DiskAllocationType.php | 31 - .../Aws/StorageGateway/Enum/ErrorCode.php | 87 - .../Aws/StorageGateway/Enum/GatewayState.php | 28 - .../StorageGateway/Enum/GatewayTimezone.php | 57 - .../Aws/StorageGateway/Enum/GatewayType.php | 28 - .../Aws/StorageGateway/Enum/VolumeStatus.php | 36 - .../Aws/StorageGateway/Enum/VolumeType.php | 28 - .../InternalServerErrorException.php | 22 - .../InvalidGatewayRequestException.php | 22 - .../Exception/StorageGatewayException.php | 21 +- .../Resources/storagegateway-2013-06-30.php | 3539 --- .../StorageGateway/StorageGatewayClient.php | 114 +- .../Sts/Exception/ExpiredTokenException.php | 22 - .../IDPCommunicationErrorException.php | 22 - .../Exception/IDPRejectedClaimException.php | 22 - .../IncompleteSignatureException.php | 22 - .../Exception/InternalFailureException.php | 22 - .../Sts/Exception/InvalidActionException.php | 22 - .../InvalidAuthorizationMessageException.php | 22 - .../InvalidClientTokenIdException.php | 22 - .../InvalidIdentityTokenException.php | 22 - .../InvalidParameterCombinationException.php | 22 - .../InvalidParameterValueException.php | 22 - .../InvalidQueryParameterException.php | 22 - .../MalformedPolicyDocumentException.php | 22 - .../MalformedQueryStringException.php | 22 - .../Sts/Exception/MissingActionException.php | 22 - .../MissingAuthenticationTokenException.php | 22 - .../Exception/MissingParameterException.php | 22 - .../Sts/Exception/OptInRequiredException.php | 22 - .../PackedPolicyTooLargeException.php | 22 - .../Sts/Exception/RequestExpiredException.php | 23 - .../Exception/ServiceUnavailableException.php | 22 - .../Aws/Sts/Exception/StsException.php | 21 +- .../Aws/Sts/Exception/ThrottlingException.php | 22 - .../Aws/Sts/Resources/sts-2011-06-15.php | 657 - lib/aws-sdk/Aws/Sts/StsClient.php | 111 +- .../CaseCreationLimitExceededException.php | 22 - .../Exception/CaseIdNotFoundException.php | 22 - .../InternalServerErrorException.php | 22 - .../Support/Exception/SupportException.php | 21 +- .../Support/Resources/support-2013-04-15.php | 1256 - lib/aws-sdk/Aws/Support/SupportClient.php | 75 +- .../Aws/Swf/Enum/ActivityTaskTimeoutType.php | 30 - lib/aws-sdk/Aws/Swf/Enum/ChildPolicy.php | 29 - lib/aws-sdk/Aws/Swf/Enum/CloseStatus.php | 32 - .../Aws/Swf/Enum/DecisionTaskTimeoutType.php | 27 - lib/aws-sdk/Aws/Swf/Enum/DecisionType.php | 38 - lib/aws-sdk/Aws/Swf/Enum/EventType.php | 73 - lib/aws-sdk/Aws/Swf/Enum/ExecutionStatus.php | 28 - .../Aws/Swf/Enum/RegistrationStatus.php | 28 - .../Swf/Enum/WorkflowExecutionTimeoutType.php | 27 - .../Exception/DefaultUndefinedException.php | 22 - .../DomainAlreadyExistsException.php | 22 - .../Exception/DomainDeprecatedException.php | 22 - .../Swf/Exception/LimitExceededException.php | 22 - .../OperationNotPermittedException.php | 22 - .../Aws/Swf/Exception/SwfException.php | 21 +- .../Exception/TypeAlreadyExistsException.php | 22 - .../Swf/Exception/TypeDeprecatedException.php | 22 - .../Exception/UnknownResourceException.php | 22 - ...rkflowExecutionAlreadyStartedException.php | 22 - .../Aws/Swf/Resources/swf-2012-01-25.php | 5367 ----- lib/aws-sdk/Aws/Swf/SwfClient.php | 92 +- lib/aws-sdk/Aws/TraceMiddleware.php | 268 + lib/aws-sdk/Aws/Waiter.php | 263 + .../Exception/WorkSpacesException.php | 7 +- .../Resources/workspaces-2015-04-08.php | 679 - .../Aws/WorkSpaces/WorkSpacesClient.php | 48 +- lib/aws-sdk/Aws/WrappedHttpHandler.php | 164 + .../data/autoscaling/2011-01-01/api-2.json | 2554 +++ .../data/autoscaling/2011-01-01/docs-2.json | 1308 ++ .../autoscaling/2011-01-01/paginators-1.json | 52 + .../data/cloudformation/2010-05-15/api-2.json | 886 + .../cloudformation/2010-05-15/docs-2.json | 725 + .../2010-05-15/paginators-1.json | 27 + .../cloudformation/2010-05-15/waiters-1.json | 70 + .../cloudformation/2010-05-15/waiters-2.json | 70 + .../Aws/data/cloudfront/2014-11-06/api-2.json | 2611 +++ .../data/cloudfront/2014-11-06/docs-2.json | 1125 + .../cloudfront/2014-11-06/paginators-1.json | 32 + .../data/cloudfront/2014-11-06/waiters-2.json | 47 + .../Aws/data/cloudhsm/2014-05-30/api-2.json | 928 + .../Aws/data/cloudhsm/2014-05-30/docs-2.json | 473 + .../data/cloudsearch/2013-01-01/api-2.json | 2001 ++ .../data/cloudsearch/2013-01-01/docs-2.json | 865 + .../cloudsearch/2013-01-01/paginators-1.json | 20 + .../cloudsearchdomain/2013-01-01/api-2.json | 356 + .../cloudsearchdomain/2013-01-01/docs-2.json | 311 + .../Aws/data/cloudtrail/2013-11-01/api-2.json | 824 + .../data/cloudtrail/2013-11-01/docs-2.json | 328 + .../cloudtrail/2013-11-01/paginators-1.json | 7 + .../Aws/data/codedeploy/2014-10-06/api-2.json | 2250 ++ .../data/codedeploy/2014-10-06/docs-2.json | 1261 + .../codedeploy/2014-10-06/paginators-1.json | 34 + .../cognito-identity/2014-06-30/api-2.json | 1252 + .../cognito-identity/2014-06-30/docs-2.json | 506 + .../data/cognito-sync/2014-06-30/api-2.json | 1852 ++ .../data/cognito-sync/2014-06-30/docs-2.json | 582 + .../Aws/data/config/2014-10-17/api-2.json | 694 + .../Aws/data/config/2014-10-17/docs-2.json | 513 + .../data/config/2014-10-17/paginators-1.json | 10 + .../Aws/data/config/2014-11-12/api-2.json | 696 + .../Aws/data/config/2014-11-12/docs-2.json | 514 + .../data/config/2014-11-12/paginators-1.json | 10 + .../data/datapipeline/2012-10-29/api-2.json | 1167 + .../data/datapipeline/2012-10-29/docs-2.json | 607 + .../datapipeline/2012-10-29/paginators-1.json | 26 + .../data/directconnect/2012-10-25/api-2.json | 833 + .../data/directconnect/2012-10-25/docs-2.json | 494 + .../2012-10-25/paginators-1.json | 22 + lib/aws-sdk/Aws/data/ds/2015-04-16/api-2.json | 1260 + .../Aws/data/ds/2015-04-16/docs-2.json | 753 + .../Aws/data/dynamodb/2012-08-10/api-2.json | 1290 ++ .../Aws/data/dynamodb/2012-08-10/docs-2.json | 977 + .../dynamodb/2012-08-10/paginators-1.json | 25 + .../data/dynamodb/2012-08-10/waiters-2.json | 35 + .../Aws/data/ec2/2015-03-01/api-2.json | 10722 +++++++++ .../Aws/data/ec2/2015-03-01/docs-2.json | 4909 ++++ .../Aws/data/ec2/2015-03-01/paginators-1.json | 125 + .../Aws/data/ec2/2015-03-01/waiters-2.json | 453 + .../Aws/data/ec2/2015-04-15/api-2.json | 11922 ++++++++++ .../Aws/data/ec2/2015-04-15/docs-2.json | 5448 +++++ .../Aws/data/ec2/2015-04-15/paginators-1.json | 125 + .../Aws/data/ec2/2015-04-15/waiters-2.json | 494 + .../Aws/data/ecs/2014-11-13/api-2.json | 1562 ++ .../Aws/data/ecs/2014-11-13/docs-2.json | 872 + .../Aws/data/ecs/2014-11-13/paginators-1.json | 40 + .../Aws/data/ecs/2014-11-13/waiters-2.json | 93 + .../data/elasticache/2015-02-02/api-2.json | 3807 +++ .../data/elasticache/2015-02-02/docs-2.json | 1390 ++ .../elasticache/2015-02-02/paginators-1.json | 76 + .../elasticache/2015-02-02/waiters-2.json | 143 + .../elasticbeanstalk/2010-12-01/api-2.json | 1580 ++ .../elasticbeanstalk/2010-12-01/docs-2.json | 1114 + .../2010-12-01/paginators-1.json | 25 + .../elasticfilesystem/2015-02-01/api-2.json | 917 + .../elasticfilesystem/2015-02-01/docs-2.json | 414 + .../2012-06-01/api-2.json | 2145 ++ .../2012-06-01/docs-2.json | 1078 + .../2012-06-01/paginators-1.json | 18 + .../2012-06-01/waiters-2.json | 31 + .../elasticmapreduce/2009-03-31/api-2.json | 1357 ++ .../elasticmapreduce/2009-03-31/docs-2.json | 969 + .../2009-03-31/paginators-1.json | 32 + .../2009-03-31/waiters-2.json | 67 + .../elastictranscoder/2012-09-25/api-2.json | 1807 ++ .../elastictranscoder/2012-09-25/docs-2.json | 1152 + .../2012-09-25/paginators-1.json | 24 + .../2012-09-25/waiters-2.json | 30 + .../Aws/data/email/2010-12-01/api-2.json | 645 + .../Aws/data/email/2010-12-01/docs-2.json | 441 + .../data/email/2010-12-01/paginators-1.json | 13 + .../Aws/data/email/2010-12-01/waiters-2.json | 18 + lib/aws-sdk/Aws/data/endpoints.json | 63 + .../Aws/data/glacier/2012-06-01/api-2.json | 1736 ++ .../Aws/data/glacier/2012-06-01/docs-2.json | 575 + .../data/glacier/2012-06-01/paginators-1.json | 28 + .../data/glacier/2012-06-01/waiters-2.json | 39 + .../Aws/data/iam/2010-05-08/api-2.json | 6455 ++++++ .../Aws/data/iam/2010-05-08/docs-2.json | 2138 ++ .../Aws/data/iam/2010-05-08/paginators-1.json | 132 + .../Aws/data/kinesis/2013-12-02/api-2.json | 788 + .../Aws/data/kinesis/2013-12-02/docs-2.json | 424 + .../data/kinesis/2013-12-02/paginators-1.json | 18 + .../data/kinesis/2013-12-02/waiters-2.json | 18 + .../Aws/data/kms/2014-11-01/api-2.json | 2120 ++ .../Aws/data/kms/2014-11-01/docs-2.json | 628 + .../Aws/data/kms/2014-11-01/paginators-1.json | 32 + .../Aws/data/lambda/2015-03-31/api-2.json | 1159 + .../Aws/data/lambda/2015-03-31/docs-2.json | 490 + .../data/lambda/2015-03-31/paginators-1.json | 16 + .../Aws/data/logs/2014-03-28/api-2.json | 1069 + .../Aws/data/logs/2014-03-28/docs-2.json | 599 + .../data/logs/2014-03-28/paginators-1.json | 28 + .../machinelearning/2014-12-12/api-2.json | 1749 ++ .../machinelearning/2014-12-12/docs-2.json | 1034 + .../2014-12-12/paginators-1.json | 28 + lib/aws-sdk/Aws/data/manifest.json | 324 + .../Aws/data/monitoring/2010-08-01/api-2.json | 917 + .../data/monitoring/2010-08-01/docs-2.json | 514 + .../monitoring/2010-08-01/paginators-1.json | 24 + .../Aws/data/opsworks/2013-02-18/api-2.json | 2832 +++ .../Aws/data/opsworks/2013-02-18/docs-2.json | 1592 ++ .../opsworks/2013-02-18/paginators-1.json | 49 + .../data/opsworks/2013-02-18/waiters-2.json | 190 + .../Aws/data/rds/2014-10-31/api-2.json | 5019 ++++ .../Aws/data/rds/2014-10-31/docs-2.json | 2074 ++ .../Aws/data/rds/2014-10-31/paginators-1.json | 110 + .../Aws/data/rds/2014-10-31/waiters-2.json | 96 + .../Aws/data/redshift/2012-12-01/api-2.json | 4857 ++++ .../Aws/data/redshift/2012-12-01/docs-2.json | 1890 ++ .../redshift/2012-12-01/paginators-1.json | 94 + .../data/redshift/2012-12-01/waiters-2.json | 68 + .../Aws/data/route53/2013-04-01/api-2.json | 2314 ++ .../Aws/data/route53/2013-04-01/docs-2.json | 1159 + .../data/route53/2013-04-01/paginators-1.json | 33 + .../data/route53domains/2014-05-15/api-2.json | 1374 ++ .../route53domains/2014-05-15/docs-2.json | 620 + .../2014-05-15/paginators-1.json | 17 + lib/aws-sdk/Aws/data/s3/2006-03-01/api-2.json | 4165 ++++ .../Aws/data/s3/2006-03-01/docs-2.json | 2213 ++ .../Aws/data/s3/2006-03-01/paginators-1.json | 57 + .../Aws/data/s3/2006-03-01/waiters-2.json | 73 + .../Aws/data/sns/2010-03-31/api-2.json | 1760 ++ .../Aws/data/sns/2010-03-31/docs-2.json | 564 + .../Aws/data/sns/2010-03-31/paginators-1.json | 29 + .../Aws/data/sqs/2012-11-05/api-2.json | 1159 + .../Aws/data/sqs/2012-11-05/docs-2.json | 503 + .../Aws/data/sqs/2012-11-05/paginators-1.json | 7 + .../Aws/data/ssm/2014-11-06/api-2.json | 1047 + .../Aws/data/ssm/2014-11-06/docs-2.json | 440 + .../data/storagegateway/2013-06-30/api-2.json | 2435 ++ .../storagegateway/2013-06-30/docs-2.json | 1331 ++ .../2013-06-30/paginators-1.json | 52 + .../Aws/data/sts/2011-06-15/api-2.json | 595 + .../Aws/data/sts/2011-06-15/docs-2.json | 351 + .../Aws/data/support/2013-04-15/api-2.json | 869 + .../Aws/data/support/2013-04-15/docs-2.json | 680 + .../data/support/2013-04-15/paginators-1.json | 25 + .../Aws/data/swf/2012-01-25/api-2.json | 2675 +++ .../Aws/data/swf/2012-01-25/docs-2.json | 1569 ++ .../Aws/data/swf/2012-01-25/paginators-1.json | 46 + .../Aws/data/workspaces/2015-04-08/api-2.json | 519 + .../data/workspaces/2015-04-08/docs-2.json | 457 + .../workspaces/2015-04-08/paginators-1.json | 20 + lib/aws-sdk/Aws/functions.php | 311 + lib/aws-sdk/CHANGELOG.md | 63 +- .../Doctrine/Common/Cache/ApcCache.php | 106 - .../Doctrine/Common/Cache/ArrayCache.php | 94 - lib/aws-sdk/Doctrine/Common/Cache/Cache.php | 112 - .../Doctrine/Common/Cache/CacheProvider.php | 277 - .../Doctrine/Common/Cache/ChainCache.php | 147 - .../Doctrine/Common/Cache/ClearableCache.php | 37 - .../Doctrine/Common/Cache/CouchbaseCache.php | 121 - .../Doctrine/Common/Cache/FileCache.php | 223 - .../Doctrine/Common/Cache/FilesystemCache.php | 111 - .../Doctrine/Common/Cache/FlushableCache.php | 37 - .../Doctrine/Common/Cache/MemcacheCache.php | 125 - .../Doctrine/Common/Cache/MemcachedCache.php | 132 - .../Doctrine/Common/Cache/MongoDBCache.php | 191 - .../Doctrine/Common/Cache/MultiGetCache.php | 39 - .../Doctrine/Common/Cache/PhpFileCache.php | 120 - .../Doctrine/Common/Cache/PredisCache.php | 106 - .../Doctrine/Common/Cache/RedisCache.php | 150 - .../Doctrine/Common/Cache/RiakCache.php | 250 - .../Doctrine/Common/Cache/SQLite3Cache.php | 219 - lib/aws-sdk/Doctrine/Common/Cache/Version.php | 25 - .../Doctrine/Common/Cache/VoidCache.php | 78 - .../Doctrine/Common/Cache/WinCacheCache.php | 91 - .../Doctrine/Common/Cache/XcacheCache.php | 112 - .../Doctrine/Common/Cache/ZendDataCache.php | 83 - .../Guzzle/Batch/AbstractBatchDecorator.php | 66 - lib/aws-sdk/Guzzle/Batch/Batch.php | 92 - lib/aws-sdk/Guzzle/Batch/BatchBuilder.php | 199 - .../Guzzle/Batch/BatchClosureDivisor.php | 39 - .../Guzzle/Batch/BatchClosureTransfer.php | 40 - .../Guzzle/Batch/BatchCommandTransfer.php | 75 - .../Guzzle/Batch/BatchDivisorInterface.php | 18 - lib/aws-sdk/Guzzle/Batch/BatchInterface.php | 32 - .../Guzzle/Batch/BatchRequestTransfer.php | 65 - lib/aws-sdk/Guzzle/Batch/BatchSizeDivisor.php | 47 - .../Guzzle/Batch/BatchTransferInterface.php | 16 - .../Exception/BatchTransferException.php | 90 - .../Guzzle/Batch/ExceptionBufferingBatch.php | 50 - lib/aws-sdk/Guzzle/Batch/FlushingBatch.php | 60 - lib/aws-sdk/Guzzle/Batch/HistoryBatch.php | 39 - lib/aws-sdk/Guzzle/Batch/NotifyingBatch.php | 38 - .../Guzzle/Cache/AbstractCacheAdapter.php | 21 - .../Guzzle/Cache/CacheAdapterFactory.php | 117 - .../Guzzle/Cache/CacheAdapterInterface.php | 55 - .../Guzzle/Cache/ClosureCacheAdapter.php | 57 - .../Guzzle/Cache/DoctrineCacheAdapter.php | 41 - lib/aws-sdk/Guzzle/Cache/NullCacheAdapter.php | 31 - lib/aws-sdk/Guzzle/Cache/Zf1CacheAdapter.php | 44 - lib/aws-sdk/Guzzle/Cache/Zf2CacheAdapter.php | 41 - .../Guzzle/Common/AbstractHasDispatcher.php | 49 - lib/aws-sdk/Guzzle/Common/Collection.php | 403 - lib/aws-sdk/Guzzle/Common/Event.php | 52 - .../Exception/BadMethodCallException.php | 5 - .../Common/Exception/ExceptionCollection.php | 108 - .../Common/Exception/GuzzleException.php | 8 - .../Exception/InvalidArgumentException.php | 5 - .../Common/Exception/RuntimeException.php | 5 - .../Exception/UnexpectedValueException.php | 5 - .../Guzzle/Common/FromConfigInterface.php | 18 - .../Guzzle/Common/HasDispatcherInterface.php | 54 - .../Guzzle/Common/ToArrayInterface.php | 16 - lib/aws-sdk/Guzzle/Common/Version.php | 29 - .../Http/AbstractEntityBodyDecorator.php | 221 - lib/aws-sdk/Guzzle/Http/CachingEntityBody.php | 229 - lib/aws-sdk/Guzzle/Http/Client.php | 524 - lib/aws-sdk/Guzzle/Http/ClientInterface.php | 223 - lib/aws-sdk/Guzzle/Http/Curl/CurlHandle.php | 464 - lib/aws-sdk/Guzzle/Http/Curl/CurlMulti.php | 423 - .../Guzzle/Http/Curl/CurlMultiInterface.php | 58 - .../Guzzle/Http/Curl/CurlMultiProxy.php | 150 - lib/aws-sdk/Guzzle/Http/Curl/CurlVersion.php | 66 - .../Guzzle/Http/Curl/RequestMediator.php | 147 - lib/aws-sdk/Guzzle/Http/EntityBody.php | 201 - .../Guzzle/Http/EntityBodyInterface.php | 73 - .../Http/Exception/BadResponseException.php | 69 - .../ClientErrorResponseException.php | 8 - .../CouldNotRewindStreamException.php | 7 - .../Guzzle/Http/Exception/CurlException.php | 101 - .../Guzzle/Http/Exception/HttpException.php | 10 - .../Http/Exception/MultiTransferException.php | 145 - .../Http/Exception/RequestException.php | 39 - .../ServerErrorResponseException.php | 8 - .../Exception/TooManyRedirectsException.php | 5 - .../Guzzle/Http/IoEmittingEntityBody.php | 83 - .../Guzzle/Http/Message/AbstractMessage.php | 220 - .../Http/Message/EntityEnclosingRequest.php | 247 - .../EntityEnclosingRequestInterface.php | 137 - lib/aws-sdk/Guzzle/Http/Message/Header.php | 182 - .../Http/Message/Header/CacheControl.php | 121 - .../Http/Message/Header/HeaderCollection.php | 108 - .../Http/Message/Header/HeaderFactory.php | 26 - .../Message/Header/HeaderFactoryInterface.php | 19 - .../Http/Message/Header/HeaderInterface.php | 83 - .../Guzzle/Http/Message/Header/Link.php | 93 - .../Guzzle/Http/Message/MessageInterface.php | 102 - lib/aws-sdk/Guzzle/Http/Message/PostFile.php | 124 - .../Guzzle/Http/Message/PostFileInterface.php | 83 - lib/aws-sdk/Guzzle/Http/Message/Request.php | 638 - .../Guzzle/Http/Message/RequestFactory.php | 359 - .../Http/Message/RequestFactoryInterface.php | 105 - .../Guzzle/Http/Message/RequestInterface.php | 318 - lib/aws-sdk/Guzzle/Http/Message/Response.php | 968 - lib/aws-sdk/Guzzle/Http/Mimetypes.php | 962 - .../Http/QueryAggregator/CommaAggregator.php | 20 - .../QueryAggregator/DuplicateAggregator.php | 22 - .../Http/QueryAggregator/PhpAggregator.php | 27 - .../QueryAggregatorInterface.php | 22 - lib/aws-sdk/Guzzle/Http/QueryString.php | 297 - .../Guzzle/Http/ReadLimitEntityBody.php | 122 - lib/aws-sdk/Guzzle/Http/RedirectPlugin.php | 250 - lib/aws-sdk/Guzzle/Http/Resources/cacert.pem | 3870 ---- lib/aws-sdk/Guzzle/Http/StaticClient.php | 157 - lib/aws-sdk/Guzzle/Http/Url.php | 554 - lib/aws-sdk/Guzzle/Inflection/Inflector.php | 38 - .../Guzzle/Inflection/InflectorInterface.php | 27 - .../Guzzle/Inflection/MemoizingInflector.php | 70 - .../Inflection/PreComputedInflector.php | 59 - .../Guzzle/Iterator/AppendIterator.php | 19 - .../Guzzle/Iterator/ChunkedIterator.php | 56 - .../Guzzle/Iterator/FilterIterator.php | 36 - lib/aws-sdk/Guzzle/Iterator/MapIterator.php | 34 - .../Guzzle/Iterator/MethodProxyIterator.php | 27 - lib/aws-sdk/Guzzle/Log/AbstractLogAdapter.php | 16 - lib/aws-sdk/Guzzle/Log/ArrayLogAdapter.php | 34 - lib/aws-sdk/Guzzle/Log/ClosureLogAdapter.php | 23 - .../Guzzle/Log/LogAdapterInterface.php | 18 - lib/aws-sdk/Guzzle/Log/MessageFormatter.php | 179 - lib/aws-sdk/Guzzle/Log/MonologLogAdapter.php | 34 - lib/aws-sdk/Guzzle/Log/PsrLogAdapter.php | 36 - lib/aws-sdk/Guzzle/Log/Zf1LogAdapter.php | 24 - lib/aws-sdk/Guzzle/Log/Zf2LogAdapter.php | 21 - .../Guzzle/Parser/Cookie/CookieParser.php | 131 - .../Parser/Cookie/CookieParserInterface.php | 33 - .../Parser/Message/AbstractMessageParser.php | 58 - .../Guzzle/Parser/Message/MessageParser.php | 110 - .../Parser/Message/MessageParserInterface.php | 27 - .../Parser/Message/PeclHttpMessageParser.php | 48 - lib/aws-sdk/Guzzle/Parser/ParserRegistry.php | 75 - .../Parser/UriTemplate/PeclUriTemplate.php | 26 - .../UriTemplate/UriTemplateInterface.php | 21 - lib/aws-sdk/Guzzle/Parser/Url/UrlParser.php | 48 - .../Guzzle/Parser/Url/UrlParserInterface.php | 19 - .../Guzzle/Plugin/Async/AsyncPlugin.php | 84 - .../Backoff/AbstractBackoffStrategy.php | 91 - .../AbstractErrorCodeBackoffStrategy.php | 40 - .../Guzzle/Plugin/Backoff/BackoffLogger.php | 76 - .../Guzzle/Plugin/Backoff/BackoffPlugin.php | 126 - .../Backoff/BackoffStrategyInterface.php | 30 - .../Backoff/CallbackBackoffStrategy.php | 47 - .../Backoff/ConstantBackoffStrategy.php | 34 - .../Plugin/Backoff/CurlBackoffStrategy.php | 28 - .../Backoff/ExponentialBackoffStrategy.php | 25 - .../Plugin/Backoff/HttpBackoffStrategy.php | 30 - .../Plugin/Backoff/LinearBackoffStrategy.php | 36 - .../Backoff/ReasonPhraseBackoffStrategy.php | 25 - .../Backoff/TruncatedBackoffStrategy.php | 36 - .../Cache/CacheKeyProviderInterface.php | 11 - .../Guzzle/Plugin/Cache/CachePlugin.php | 353 - .../Plugin/Cache/CacheStorageInterface.php | 43 - .../Plugin/Cache/CallbackCanCacheStrategy.php | 53 - .../Cache/CanCacheStrategyInterface.php | 30 - .../Plugin/Cache/DefaultCacheKeyProvider.php | 46 - .../Plugin/Cache/DefaultCacheStorage.php | 266 - .../Plugin/Cache/DefaultCanCacheStrategy.php | 32 - .../Plugin/Cache/DefaultRevalidation.php | 174 - .../Guzzle/Plugin/Cache/DenyRevalidation.php | 19 - .../Plugin/Cache/RevalidationInterface.php | 32 - .../Guzzle/Plugin/Cache/SkipRevalidation.php | 19 - lib/aws-sdk/Guzzle/Plugin/Cookie/Cookie.php | 538 - .../Cookie/CookieJar/ArrayCookieJar.php | 237 - .../Cookie/CookieJar/CookieJarInterface.php | 85 - .../Plugin/Cookie/CookieJar/FileCookieJar.php | 65 - .../Guzzle/Plugin/Cookie/CookiePlugin.php | 70 - .../Exception/InvalidCookieException.php | 7 - .../Guzzle/Plugin/CurlAuth/CurlAuthPlugin.php | 46 - .../ErrorResponseExceptionInterface.php | 22 - .../ErrorResponse/ErrorResponsePlugin.php | 72 - .../Exception/ErrorResponseException.php | 7 - .../Guzzle/Plugin/History/HistoryPlugin.php | 163 - lib/aws-sdk/Guzzle/Plugin/Log/LogPlugin.php | 161 - .../Plugin/Md5/CommandContentMd5Plugin.php | 57 - .../Guzzle/Plugin/Md5/Md5ValidatorPlugin.php | 88 - lib/aws-sdk/Guzzle/Plugin/Mock/MockPlugin.php | 245 - .../Guzzle/Plugin/Oauth/OauthPlugin.php | 306 - .../Guzzle/Service/AbstractConfigLoader.php | 177 - .../Guzzle/Service/Builder/ServiceBuilder.php | 189 - .../Builder/ServiceBuilderInterface.php | 40 - .../Service/Builder/ServiceBuilderLoader.php | 89 - .../Guzzle/Service/CachingConfigLoader.php | 46 - lib/aws-sdk/Guzzle/Service/Client.php | 297 - .../Guzzle/Service/ClientInterface.php | 68 - .../Service/Command/AbstractCommand.php | 390 - .../Guzzle/Service/Command/ClosureCommand.php | 41 - .../Service/Command/CommandInterface.php | 128 - .../Command/CreateResponseClassEvent.php | 32 - .../Command/DefaultRequestSerializer.php | 169 - .../Service/Command/DefaultResponseParser.php | 55 - .../Service/Command/Factory/AliasFactory.php | 39 - .../Command/Factory/CompositeFactory.php | 154 - .../Command/Factory/ConcreteClassFactory.php | 47 - .../Command/Factory/FactoryInterface.php | 21 - .../Service/Command/Factory/MapFactory.php | 27 - .../Factory/ServiceDescriptionFactory.php | 71 - .../Request/AbstractRequestVisitor.php | 69 - .../LocationVisitor/Request/BodyVisitor.php | 58 - .../LocationVisitor/Request/HeaderVisitor.php | 44 - .../LocationVisitor/Request/JsonVisitor.php | 63 - .../Request/PostFieldVisitor.php | 18 - .../Request/PostFileVisitor.php | 24 - .../LocationVisitor/Request/QueryVisitor.php | 18 - .../Request/RequestVisitorInterface.php | 31 - .../Request/ResponseBodyVisitor.php | 18 - .../LocationVisitor/Request/XmlVisitor.php | 252 - .../Response/AbstractResponseVisitor.php | 26 - .../LocationVisitor/Response/BodyVisitor.php | 23 - .../Response/HeaderVisitor.php | 50 - .../LocationVisitor/Response/JsonVisitor.php | 93 - .../Response/ReasonPhraseVisitor.php | 23 - .../Response/ResponseVisitorInterface.php | 46 - .../Response/StatusCodeVisitor.php | 23 - .../LocationVisitor/Response/XmlVisitor.php | 151 - .../LocationVisitor/VisitorFlyweight.php | 138 - .../Service/Command/OperationCommand.php | 89 - .../Command/OperationResponseParser.php | 195 - .../Command/RequestSerializerInterface.php | 21 - .../Command/ResponseClassInterface.php | 18 - .../Command/ResponseParserInterface.php | 18 - .../Guzzle/Service/ConfigLoaderInterface.php | 22 - .../Guzzle/Service/Description/Operation.php | 547 - .../Description/OperationInterface.php | 159 - .../Guzzle/Service/Description/Parameter.php | 925 - .../Service/Description/SchemaFormatter.php | 156 - .../Service/Description/SchemaValidator.php | 291 - .../Description/ServiceDescription.php | 271 - .../ServiceDescriptionInterface.php | 106 - .../Description/ServiceDescriptionLoader.php | 64 - .../Description/ValidatorInterface.php | 28 - .../Service/Exception/CommandException.php | 7 - .../Exception/CommandTransferException.php | 119 - .../Exception/DescriptionBuilderException.php | 7 - .../InconsistentClientTransferException.php | 38 - .../Exception/ResponseClassException.php | 9 - .../Exception/ServiceBuilderException.php | 7 - .../Exception/ServiceNotFoundException.php | 5 - .../Service/Exception/ValidationException.php | 30 - .../AbstractResourceIteratorFactory.php | 37 - .../CompositeResourceIteratorFactory.php | 67 - .../Resource/MapResourceIteratorFactory.php | 34 - lib/aws-sdk/Guzzle/Service/Resource/Model.php | 64 - .../Service/Resource/ResourceIterator.php | 254 - .../Resource/ResourceIteratorApplyBatched.php | 111 - .../Resource/ResourceIteratorClassFactory.php | 60 - .../ResourceIteratorFactoryInterface.php | 30 - .../Resource/ResourceIteratorInterface.php | 61 - .../Guzzle/Stream/PhpStreamRequestFactory.php | 284 - lib/aws-sdk/Guzzle/Stream/Stream.php | 289 - lib/aws-sdk/Guzzle/Stream/StreamInterface.php | 218 - .../Stream/StreamRequestFactoryInterface.php | 24 - lib/aws-sdk/GuzzleHttp/Client.php | 386 + lib/aws-sdk/GuzzleHttp/ClientInterface.php | 84 + lib/aws-sdk/GuzzleHttp/Cookie/CookieJar.php | 248 + .../GuzzleHttp/Cookie/CookieJarInterface.php | 84 + .../GuzzleHttp/Cookie/FileCookieJar.php | 81 + .../GuzzleHttp/Cookie/SessionCookieJar.php | 65 + lib/aws-sdk/GuzzleHttp/Cookie/SetCookie.php | 371 + .../Exception/BadResponseException.php | 7 + .../GuzzleHttp/Exception/ClientException.php | 7 + .../GuzzleHttp/Exception/ConnectException.php | 37 + .../GuzzleHttp/Exception/GuzzleException.php | 4 + .../GuzzleHttp/Exception/RequestException.php | 143 + .../GuzzleHttp/Exception/SeekException.php | 27 + .../GuzzleHttp/Exception/ServerException.php | 7 + .../Exception/TooManyRedirectsException.php | 4 + .../Exception/TransferException.php | 4 + .../GuzzleHttp/Handler/CurlFactory.php | 497 + .../Handler/CurlFactoryInterface.php | 27 + .../GuzzleHttp/Handler/CurlHandler.php | 45 + .../GuzzleHttp/Handler/CurlMultiHandler.php | 197 + lib/aws-sdk/GuzzleHttp/Handler/EasyHandle.php | 71 + .../GuzzleHttp/Handler/MockHandler.php | 133 + lib/aws-sdk/GuzzleHttp/Handler/Proxy.php | 54 + .../GuzzleHttp/Handler/StreamHandler.php | 398 + lib/aws-sdk/GuzzleHttp/HandlerStack.php | 272 + lib/aws-sdk/GuzzleHttp/MessageFormatter.php | 176 + lib/aws-sdk/GuzzleHttp/Middleware.php | 251 + lib/aws-sdk/GuzzleHttp/Pool.php | 123 + .../GuzzleHttp/PrepareBodyMiddleware.php | 112 + .../GuzzleHttp/Promise/AggregateException.php | 16 + .../Promise/CancellationException.php | 9 + .../GuzzleHttp/Promise/EachPromise.php | 185 + .../GuzzleHttp/Promise/FulfilledPromise.php | 80 + lib/aws-sdk/GuzzleHttp/Promise/Promise.php | 268 + .../GuzzleHttp/Promise/PromiseInterface.php | 93 + .../GuzzleHttp/Promise/PromisorInterface.php | 15 + .../GuzzleHttp/Promise/RejectedPromise.php | 84 + .../GuzzleHttp/Promise/RejectionException.php | 47 + lib/aws-sdk/GuzzleHttp/Promise/TaskQueue.php | 79 + lib/aws-sdk/GuzzleHttp/Promise/functions.php | 500 + lib/aws-sdk/GuzzleHttp/Psr7/AppendStream.php | 233 + lib/aws-sdk/GuzzleHttp/Psr7/BufferStream.php | 137 + lib/aws-sdk/GuzzleHttp/Psr7/CachingStream.php | 125 + .../GuzzleHttp/Psr7/DroppingStream.php | 42 + lib/aws-sdk/GuzzleHttp/Psr7/FnStream.php | 149 + lib/aws-sdk/GuzzleHttp/Psr7/InflateStream.php | 29 + .../GuzzleHttp/Psr7/LazyOpenStream.php | 39 + lib/aws-sdk/GuzzleHttp/Psr7/LimitStream.php | 155 + lib/aws-sdk/GuzzleHttp/Psr7/MessageTrait.php | 158 + .../GuzzleHttp/Psr7/MultipartStream.php | 152 + lib/aws-sdk/GuzzleHttp/Psr7/NoSeekStream.php | 22 + lib/aws-sdk/GuzzleHttp/Psr7/PumpStream.php | 165 + lib/aws-sdk/GuzzleHttp/Psr7/Request.php | 149 + lib/aws-sdk/GuzzleHttp/Psr7/Response.php | 130 + lib/aws-sdk/GuzzleHttp/Psr7/Stream.php | 245 + .../GuzzleHttp/Psr7/StreamDecoratorTrait.php | 149 + lib/aws-sdk/GuzzleHttp/Psr7/StreamWrapper.php | 121 + lib/aws-sdk/GuzzleHttp/Psr7/Uri.php | 599 + lib/aws-sdk/GuzzleHttp/Psr7/functions.php | 799 + lib/aws-sdk/GuzzleHttp/RedirectMiddleware.php | 189 + lib/aws-sdk/GuzzleHttp/RequestOptions.php | 211 + lib/aws-sdk/GuzzleHttp/RetryMiddleware.php | 111 + .../UriTemplate.php | 149 +- lib/aws-sdk/GuzzleHttp/functions.php | 206 + lib/aws-sdk/JmesPath/AstRuntime.php | 47 + lib/aws-sdk/JmesPath/CompilerRuntime.php | 83 + lib/aws-sdk/JmesPath/DebugRuntime.php | 109 + lib/aws-sdk/JmesPath/Env.php | 66 + lib/aws-sdk/JmesPath/FnDispatcher.php | 391 + lib/aws-sdk/JmesPath/JmesPath.php | 15 + lib/aws-sdk/JmesPath/Lexer.php | 436 + lib/aws-sdk/JmesPath/Parser.php | 491 + lib/aws-sdk/JmesPath/SyntaxErrorException.php | 36 + lib/aws-sdk/JmesPath/TreeCompiler.php | 400 + lib/aws-sdk/JmesPath/TreeInterpreter.php | 226 + lib/aws-sdk/JmesPath/Utils.php | 211 + lib/aws-sdk/Monolog/ErrorHandler.php | 208 - .../Monolog/Formatter/ChromePHPFormatter.php | 79 - .../Monolog/Formatter/ElasticaFormatter.php | 87 - .../Monolog/Formatter/FlowdockFormatter.php | 104 - .../Monolog/Formatter/FormatterInterface.php | 36 - .../Formatter/GelfMessageFormatter.php | 111 - .../Monolog/Formatter/HtmlFormatter.php | 140 - .../Monolog/Formatter/JsonFormatter.php | 116 - .../Monolog/Formatter/LineFormatter.php | 159 - .../Monolog/Formatter/LogglyFormatter.php | 47 - .../Monolog/Formatter/LogstashFormatter.php | 165 - .../Monolog/Formatter/MongoDBFormatter.php | 105 - .../Monolog/Formatter/NormalizerFormatter.php | 150 - .../Monolog/Formatter/ScalarFormatter.php | 48 - .../Monolog/Formatter/WildfireFormatter.php | 113 - .../Monolog/Handler/AbstractHandler.php | 184 - .../Handler/AbstractProcessingHandler.php | 66 - .../Monolog/Handler/AbstractSyslogHandler.php | 92 - lib/aws-sdk/Monolog/Handler/AmqpHandler.php | 98 - .../Monolog/Handler/BrowserConsoleHandler.php | 184 - lib/aws-sdk/Monolog/Handler/BufferHandler.php | 117 - .../Monolog/Handler/ChromePHPHandler.php | 204 - .../Monolog/Handler/CouchDBHandler.php | 72 - lib/aws-sdk/Monolog/Handler/CubeHandler.php | 145 - .../Handler/DoctrineCouchDBHandler.php | 45 - .../Monolog/Handler/DynamoDbHandler.php | 89 - .../Monolog/Handler/ElasticSearchHandler.php | 128 - .../Monolog/Handler/ErrorLogHandler.php | 82 - lib/aws-sdk/Monolog/Handler/FilterHandler.php | 140 - .../ActivationStrategyInterface.php | 28 - .../ChannelLevelActivationStrategy.php | 59 - .../ErrorLevelActivationStrategy.php | 34 - .../Monolog/Handler/FingersCrossedHandler.php | 150 - .../Monolog/Handler/FirePHPHandler.php | 195 - .../Monolog/Handler/FleepHookHandler.php | 126 - .../Monolog/Handler/FlowdockHandler.php | 103 - lib/aws-sdk/Monolog/Handler/GelfHandler.php | 72 - lib/aws-sdk/Monolog/Handler/GroupHandler.php | 80 - .../Monolog/Handler/HandlerInterface.php | 90 - .../Monolog/Handler/HipChatHandler.php | 306 - .../Monolog/Handler/LogEntriesHandler.php | 55 - lib/aws-sdk/Monolog/Handler/LogglyHandler.php | 98 - lib/aws-sdk/Monolog/Handler/MailHandler.php | 55 - .../Monolog/Handler/MandrillHandler.php | 69 - .../Handler/MissingExtensionException.php | 21 - .../Monolog/Handler/MongoDBHandler.php | 55 - .../Monolog/Handler/NativeMailerHandler.php | 176 - .../Monolog/Handler/NewRelicHandler.php | 176 - lib/aws-sdk/Monolog/Handler/NullHandler.php | 45 - lib/aws-sdk/Monolog/Handler/PsrHandler.php | 56 - .../Monolog/Handler/PushoverHandler.php | 172 - lib/aws-sdk/Monolog/Handler/RavenHandler.php | 187 - lib/aws-sdk/Monolog/Handler/RedisHandler.php | 58 - .../Monolog/Handler/RollbarHandler.php | 73 - .../Monolog/Handler/RotatingFileHandler.php | 153 - .../Monolog/Handler/SamplingHandler.php | 82 - lib/aws-sdk/Monolog/Handler/SlackHandler.php | 280 - lib/aws-sdk/Monolog/Handler/SocketHandler.php | 284 - lib/aws-sdk/Monolog/Handler/StreamHandler.php | 104 - .../Monolog/Handler/SwiftMailerHandler.php | 87 - lib/aws-sdk/Monolog/Handler/SyslogHandler.php | 67 - .../Monolog/Handler/SyslogUdp/UdpSocket.php | 46 - .../Monolog/Handler/SyslogUdpHandler.php | 80 - lib/aws-sdk/Monolog/Handler/TestHandler.php | 140 - .../Handler/WhatFailureGroupHandler.php | 57 - .../Monolog/Handler/ZendMonitorHandler.php | 95 - lib/aws-sdk/Monolog/Logger.php | 615 - .../Monolog/Processor/GitProcessor.php | 64 - .../Processor/IntrospectionProcessor.php | 82 - .../Processor/MemoryPeakUsageProcessor.php | 40 - .../Monolog/Processor/MemoryProcessor.php | 63 - .../Processor/MemoryUsageProcessor.php | 40 - .../Monolog/Processor/ProcessIdProcessor.php | 31 - .../Processor/PsrLogMessageProcessor.php | 48 - .../Monolog/Processor/TagProcessor.php | 34 - .../Monolog/Processor/UidProcessor.php | 38 - .../Monolog/Processor/WebProcessor.php | 105 - lib/aws-sdk/Monolog/Registry.php | 134 - lib/aws-sdk/NOTICE.md | 66 +- .../Psr/Http/Message/MessageInterface.php | 187 + .../Psr/Http/Message/RequestInterface.php | 129 + .../Psr/Http/Message/ResponseInterface.php | 68 + .../Http/Message/ServerRequestInterface.php | 261 + .../Psr/Http/Message/StreamInterface.php | 158 + .../Http/Message/UploadedFileInterface.php | 123 + lib/aws-sdk/Psr/Http/Message/UriInterface.php | 323 + lib/aws-sdk/Psr/Log/AbstractLogger.php | 120 - .../Psr/Log/InvalidArgumentException.php | 7 - lib/aws-sdk/Psr/Log/LogLevel.php | 18 - lib/aws-sdk/Psr/Log/LoggerAwareInterface.php | 17 - lib/aws-sdk/Psr/Log/LoggerAwareTrait.php | 22 - lib/aws-sdk/Psr/Log/LoggerInterface.php | 114 - lib/aws-sdk/Psr/Log/LoggerTrait.php | 131 - lib/aws-sdk/Psr/Log/NullLogger.php | 27 - .../Psr/Log/Test/LoggerInterfaceTest.php | 116 - lib/aws-sdk/README.md | 151 +- .../ContainerAwareEventDispatcher.php | 202 - .../Debug/TraceableEventDispatcher.php | 335 - .../TraceableEventDispatcherInterface.php | 34 - .../EventDispatcher/Debug/WrappedListener.php | 71 - .../RegisterListenersPass.php | 110 - .../Component/EventDispatcher/Event.php | 134 - .../EventDispatcher/EventDispatcher.php | 185 - .../EventDispatcherInterface.php | 96 - .../EventSubscriberInterface.php | 50 - .../EventDispatcher/GenericEvent.php | 186 - .../ImmutableEventDispatcher.php | 93 - .../Symfony/Component/EventDispatcher/LICENSE | 19 - .../Tests/AbstractEventDispatcherTest.php | 385 - .../ContainerAwareEventDispatcherTest.php | 249 - .../Debug/TraceableEventDispatcherTest.php | 199 - .../RegisterListenersPassTest.php | 200 - .../Tests/EventDispatcherTest.php | 22 - .../EventDispatcher/Tests/EventTest.php | 100 - .../Tests/GenericEventTest.php | 139 - .../Tests/ImmutableEventDispatcherTest.php | 105 - lib/aws-sdk/aws-autoloader.php | 1438 +- 1694 files changed, 189092 insertions(+), 230516 deletions(-) create mode 100644 lib/aws-sdk/Aws/Api/AbstractModel.php create mode 100644 lib/aws-sdk/Aws/Api/ApiProvider.php create mode 100644 lib/aws-sdk/Aws/Api/DateTimeResult.php create mode 100644 lib/aws-sdk/Aws/Api/DocModel.php create mode 100644 lib/aws-sdk/Aws/Api/ErrorParser/JsonParserTrait.php create mode 100644 lib/aws-sdk/Aws/Api/ErrorParser/JsonRpcErrorParser.php create mode 100644 lib/aws-sdk/Aws/Api/ErrorParser/RestJsonErrorParser.php create mode 100644 lib/aws-sdk/Aws/Api/ErrorParser/XmlErrorParser.php create mode 100644 lib/aws-sdk/Aws/Api/ListShape.php create mode 100644 lib/aws-sdk/Aws/Api/MapShape.php create mode 100644 lib/aws-sdk/Aws/Api/Operation.php create mode 100644 lib/aws-sdk/Aws/Api/Parser/AbstractParser.php create mode 100644 lib/aws-sdk/Aws/Api/Parser/AbstractRestParser.php create mode 100644 lib/aws-sdk/Aws/Api/Parser/Crc32ValidatingParser.php create mode 100644 lib/aws-sdk/Aws/Api/Parser/JsonParser.php create mode 100644 lib/aws-sdk/Aws/Api/Parser/JsonRpcParser.php create mode 100644 lib/aws-sdk/Aws/Api/Parser/QueryParser.php create mode 100644 lib/aws-sdk/Aws/Api/Parser/RestJsonParser.php create mode 100644 lib/aws-sdk/Aws/Api/Parser/RestXmlParser.php create mode 100644 lib/aws-sdk/Aws/Api/Parser/XmlParser.php create mode 100644 lib/aws-sdk/Aws/Api/Serializer/Ec2ParamBuilder.php create mode 100644 lib/aws-sdk/Aws/Api/Serializer/JsonBody.php create mode 100644 lib/aws-sdk/Aws/Api/Serializer/JsonRpcSerializer.php create mode 100644 lib/aws-sdk/Aws/Api/Serializer/QueryParamBuilder.php create mode 100644 lib/aws-sdk/Aws/Api/Serializer/QuerySerializer.php create mode 100644 lib/aws-sdk/Aws/Api/Serializer/RestJsonSerializer.php create mode 100644 lib/aws-sdk/Aws/Api/Serializer/RestSerializer.php create mode 100644 lib/aws-sdk/Aws/Api/Serializer/RestXmlSerializer.php create mode 100644 lib/aws-sdk/Aws/Api/Serializer/XmlBody.php create mode 100644 lib/aws-sdk/Aws/Api/Service.php create mode 100644 lib/aws-sdk/Aws/Api/Shape.php create mode 100644 lib/aws-sdk/Aws/Api/ShapeMap.php create mode 100644 lib/aws-sdk/Aws/Api/StructureShape.php create mode 100644 lib/aws-sdk/Aws/Api/TimestampShape.php create mode 100644 lib/aws-sdk/Aws/Api/Validator.php delete mode 100644 lib/aws-sdk/Aws/AutoScaling/Enum/LifecycleState.php delete mode 100644 lib/aws-sdk/Aws/AutoScaling/Enum/ScalingActivityStatusCode.php delete mode 100644 lib/aws-sdk/Aws/AutoScaling/Exception/AlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/AutoScaling/Exception/InvalidNextTokenException.php delete mode 100644 lib/aws-sdk/Aws/AutoScaling/Exception/LimitExceededException.php delete mode 100644 lib/aws-sdk/Aws/AutoScaling/Exception/ResourceInUseException.php delete mode 100644 lib/aws-sdk/Aws/AutoScaling/Exception/ScalingActivityInProgressException.php delete mode 100644 lib/aws-sdk/Aws/AutoScaling/Resources/autoscaling-2011-01-01.php create mode 100644 lib/aws-sdk/Aws/AwsClient.php create mode 100644 lib/aws-sdk/Aws/AwsClientInterface.php create mode 100644 lib/aws-sdk/Aws/CacheInterface.php create mode 100644 lib/aws-sdk/Aws/ClientResolver.php delete mode 100644 lib/aws-sdk/Aws/CloudFormation/Enum/Capability.php delete mode 100644 lib/aws-sdk/Aws/CloudFormation/Enum/OnFailure.php delete mode 100644 lib/aws-sdk/Aws/CloudFormation/Enum/ResourceStatus.php delete mode 100644 lib/aws-sdk/Aws/CloudFormation/Enum/StackStatus.php delete mode 100644 lib/aws-sdk/Aws/CloudFormation/Exception/AlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/CloudFormation/Exception/InsufficientCapabilitiesException.php delete mode 100644 lib/aws-sdk/Aws/CloudFormation/Exception/LimitExceededException.php delete mode 100644 lib/aws-sdk/Aws/CloudFormation/Resources/cloudformation-2010-05-15.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/CloudFrontSignature.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Enum/GeoRestrictionType.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Enum/ItemSelection.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Enum/Method.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Enum/OriginProtocolPolicy.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Enum/PriceClass.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Enum/SSLSupportMethod.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Enum/ViewerProtocolPolicy.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/AccessDeniedException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/BatchTooLargeException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/CNAMEAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/CloudFrontOriginAccessIdentityAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/CloudFrontOriginAccessIdentityInUseException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/DistributionAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/DistributionNotDisabledException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/Exception.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/IllegalUpdateException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/InconsistentQuantitiesException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/InvalidArgumentException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/InvalidDefaultRootObjectException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/InvalidErrorCodeException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/InvalidForwardCookiesException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/InvalidGeoRestrictionParameterException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/InvalidIfMatchVersionException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/InvalidLocationCodeException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/InvalidOriginAccessIdentityException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/InvalidOriginException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/InvalidRelativePathException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/InvalidRequiredProtocolException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/InvalidResponseCodeException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/InvalidViewerCertificateException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/MissingBodyException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/NoSuchCloudFrontOriginAccessIdentityException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/NoSuchDistributionException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/NoSuchInvalidationException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/NoSuchOriginException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/NoSuchStreamingDistributionException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/PreconditionFailedException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/StreamingDistributionAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/StreamingDistributionNotDisabledException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/TooManyCacheBehaviorsException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/TooManyCertificatesException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/TooManyCloudFrontOriginAccessIdentitiesException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/TooManyCookieNamesInWhiteListException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/TooManyDistributionCNAMEsException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/TooManyDistributionsException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/TooManyInvalidationsInProgressException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/TooManyOriginsException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/TooManyStreamingDistributionCNAMEsException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/TooManyStreamingDistributionsException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/TooManyTrustedSignersException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Exception/TrustedSignerDoesNotExistException.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Resources/cloudfront-2012-05-05.php delete mode 100644 lib/aws-sdk/Aws/CloudFront/Resources/cloudfront-2014-11-06.php create mode 100644 lib/aws-sdk/Aws/CloudFront/UrlSigner.php delete mode 100644 lib/aws-sdk/Aws/CloudHsm/Resources/cloudhsm-2014-05-30.php delete mode 100644 lib/aws-sdk/Aws/CloudSearch/Enum/IndexFieldType.php delete mode 100644 lib/aws-sdk/Aws/CloudSearch/Enum/OptionState.php delete mode 100644 lib/aws-sdk/Aws/CloudSearch/Enum/SearchInstanceType.php delete mode 100644 lib/aws-sdk/Aws/CloudSearch/Enum/SourceDataFunction.php delete mode 100644 lib/aws-sdk/Aws/CloudSearch/Exception/BaseException.php delete mode 100644 lib/aws-sdk/Aws/CloudSearch/Exception/InternalException.php delete mode 100644 lib/aws-sdk/Aws/CloudSearch/Exception/InvalidTypeException.php delete mode 100644 lib/aws-sdk/Aws/CloudSearch/Exception/LimitExceededException.php delete mode 100644 lib/aws-sdk/Aws/CloudSearch/Exception/ResourceNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/CloudSearch/Resources/cloudsearch-2011-02-01.php delete mode 100644 lib/aws-sdk/Aws/CloudSearch/Resources/cloudsearch-2013-01-01.php delete mode 100644 lib/aws-sdk/Aws/CloudSearchDomain/CloudSearchDomainClientBuilder.php delete mode 100644 lib/aws-sdk/Aws/CloudSearchDomain/Resources/cloudsearchdomain-2013-01-01.php delete mode 100644 lib/aws-sdk/Aws/CloudTrail/Exception/InsufficientS3BucketPolicyException.php delete mode 100644 lib/aws-sdk/Aws/CloudTrail/Exception/InsufficientSnsTopicPolicyException.php delete mode 100644 lib/aws-sdk/Aws/CloudTrail/Exception/InternalErrorException.php delete mode 100644 lib/aws-sdk/Aws/CloudTrail/Exception/InvalidS3BucketNameException.php delete mode 100644 lib/aws-sdk/Aws/CloudTrail/Exception/InvalidS3PrefixException.php delete mode 100644 lib/aws-sdk/Aws/CloudTrail/Exception/InvalidSnsTopicNameException.php delete mode 100644 lib/aws-sdk/Aws/CloudTrail/Exception/InvalidTrailNameException.php delete mode 100644 lib/aws-sdk/Aws/CloudTrail/Exception/MaximumNumberOfTrailsExceededException.php delete mode 100644 lib/aws-sdk/Aws/CloudTrail/Exception/S3BucketDoesNotExistException.php delete mode 100644 lib/aws-sdk/Aws/CloudTrail/Exception/TrailAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/CloudTrail/Exception/TrailNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/CloudTrail/Exception/TrailNotProvidedException.php delete mode 100644 lib/aws-sdk/Aws/CloudTrail/Resources/cloudtrail-2013-11-01.php delete mode 100644 lib/aws-sdk/Aws/CloudWatch/Enum/ComparisonOperator.php delete mode 100644 lib/aws-sdk/Aws/CloudWatch/Enum/HistoryItemType.php delete mode 100644 lib/aws-sdk/Aws/CloudWatch/Enum/StateValue.php delete mode 100644 lib/aws-sdk/Aws/CloudWatch/Enum/Statistic.php delete mode 100644 lib/aws-sdk/Aws/CloudWatch/Enum/Unit.php delete mode 100644 lib/aws-sdk/Aws/CloudWatch/Exception/InternalServiceException.php delete mode 100644 lib/aws-sdk/Aws/CloudWatch/Exception/InvalidFormatException.php delete mode 100644 lib/aws-sdk/Aws/CloudWatch/Exception/InvalidNextTokenException.php delete mode 100644 lib/aws-sdk/Aws/CloudWatch/Exception/InvalidParameterCombinationException.php delete mode 100644 lib/aws-sdk/Aws/CloudWatch/Exception/InvalidParameterValueException.php delete mode 100644 lib/aws-sdk/Aws/CloudWatch/Exception/LimitExceededException.php delete mode 100644 lib/aws-sdk/Aws/CloudWatch/Exception/MissingRequiredParameterException.php delete mode 100644 lib/aws-sdk/Aws/CloudWatch/Exception/ResourceNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/CloudWatch/Resources/cloudwatch-2010-08-01.php delete mode 100644 lib/aws-sdk/Aws/CloudWatchLogs/Resources/cloudwatchlogs-2014-03-28.php delete mode 100644 lib/aws-sdk/Aws/CodeDeploy/Resources/codedeploy-2014-10-06.php delete mode 100644 lib/aws-sdk/Aws/CognitoIdentity/Resources/cognitoidentity-2014-06-30.php delete mode 100644 lib/aws-sdk/Aws/CognitoSync/Resources/cognitosync-2014-06-30.php create mode 100644 lib/aws-sdk/Aws/Command.php create mode 100644 lib/aws-sdk/Aws/CommandInterface.php create mode 100644 lib/aws-sdk/Aws/CommandPool.php delete mode 100644 lib/aws-sdk/Aws/Common/Aws.php delete mode 100644 lib/aws-sdk/Aws/Common/Client/AbstractClient.php delete mode 100644 lib/aws-sdk/Aws/Common/Client/AwsClientInterface.php delete mode 100644 lib/aws-sdk/Aws/Common/Client/ClientBuilder.php delete mode 100644 lib/aws-sdk/Aws/Common/Client/DefaultClient.php delete mode 100644 lib/aws-sdk/Aws/Common/Client/ExpiredCredentialsChecker.php delete mode 100644 lib/aws-sdk/Aws/Common/Client/ThrottlingErrorChecker.php delete mode 100644 lib/aws-sdk/Aws/Common/Client/UploadBodyListener.php delete mode 100644 lib/aws-sdk/Aws/Common/Client/UserAgentListener.php delete mode 100644 lib/aws-sdk/Aws/Common/Command/AwsQueryVisitor.php delete mode 100644 lib/aws-sdk/Aws/Common/Command/JsonCommand.php delete mode 100644 lib/aws-sdk/Aws/Common/Command/QueryCommand.php delete mode 100644 lib/aws-sdk/Aws/Common/Command/XmlResponseLocationVisitor.php delete mode 100644 lib/aws-sdk/Aws/Common/Credentials/AbstractCredentialsDecorator.php delete mode 100644 lib/aws-sdk/Aws/Common/Credentials/AbstractRefreshableCredentials.php delete mode 100644 lib/aws-sdk/Aws/Common/Credentials/CacheableCredentials.php delete mode 100644 lib/aws-sdk/Aws/Common/Credentials/Credentials.php delete mode 100644 lib/aws-sdk/Aws/Common/Credentials/CredentialsInterface.php delete mode 100644 lib/aws-sdk/Aws/Common/Credentials/NullCredentials.php delete mode 100644 lib/aws-sdk/Aws/Common/Credentials/RefreshableInstanceProfileCredentials.php delete mode 100644 lib/aws-sdk/Aws/Common/Enum.php delete mode 100644 lib/aws-sdk/Aws/Common/Enum/ClientOptions.php delete mode 100644 lib/aws-sdk/Aws/Common/Enum/DateFormat.php delete mode 100644 lib/aws-sdk/Aws/Common/Enum/Region.php delete mode 100644 lib/aws-sdk/Aws/Common/Enum/Size.php delete mode 100644 lib/aws-sdk/Aws/Common/Enum/Time.php delete mode 100644 lib/aws-sdk/Aws/Common/Enum/UaString.php delete mode 100644 lib/aws-sdk/Aws/Common/Exception/AwsExceptionInterface.php delete mode 100644 lib/aws-sdk/Aws/Common/Exception/BadMethodCallException.php delete mode 100644 lib/aws-sdk/Aws/Common/Exception/DomainException.php delete mode 100644 lib/aws-sdk/Aws/Common/Exception/ExceptionFactoryInterface.php delete mode 100644 lib/aws-sdk/Aws/Common/Exception/ExceptionListener.php delete mode 100644 lib/aws-sdk/Aws/Common/Exception/InstanceProfileCredentialsException.php delete mode 100644 lib/aws-sdk/Aws/Common/Exception/InvalidArgumentException.php delete mode 100644 lib/aws-sdk/Aws/Common/Exception/LogicException.php delete mode 100644 lib/aws-sdk/Aws/Common/Exception/MultipartUploadException.php delete mode 100644 lib/aws-sdk/Aws/Common/Exception/NamespaceExceptionFactory.php delete mode 100644 lib/aws-sdk/Aws/Common/Exception/OutOfBoundsException.php delete mode 100644 lib/aws-sdk/Aws/Common/Exception/OverflowException.php delete mode 100644 lib/aws-sdk/Aws/Common/Exception/Parser/AbstractJsonExceptionParser.php delete mode 100644 lib/aws-sdk/Aws/Common/Exception/Parser/DefaultXmlExceptionParser.php delete mode 100644 lib/aws-sdk/Aws/Common/Exception/Parser/ExceptionParserInterface.php delete mode 100644 lib/aws-sdk/Aws/Common/Exception/Parser/JsonQueryExceptionParser.php delete mode 100644 lib/aws-sdk/Aws/Common/Exception/Parser/JsonRestExceptionParser.php delete mode 100644 lib/aws-sdk/Aws/Common/Exception/RequiredExtensionNotLoadedException.php delete mode 100644 lib/aws-sdk/Aws/Common/Exception/RuntimeException.php delete mode 100644 lib/aws-sdk/Aws/Common/Exception/ServiceResponseException.php delete mode 100644 lib/aws-sdk/Aws/Common/Exception/TransferException.php delete mode 100644 lib/aws-sdk/Aws/Common/Exception/UnexpectedValueException.php delete mode 100644 lib/aws-sdk/Aws/Common/Facade/Facade.php delete mode 100644 lib/aws-sdk/Aws/Common/Facade/FacadeInterface.php delete mode 100644 lib/aws-sdk/Aws/Common/Facade/facade-classes.php delete mode 100644 lib/aws-sdk/Aws/Common/Hash/ChunkHash.php delete mode 100644 lib/aws-sdk/Aws/Common/Hash/ChunkHashInterface.php delete mode 100644 lib/aws-sdk/Aws/Common/Hash/HashUtils.php delete mode 100644 lib/aws-sdk/Aws/Common/Hash/TreeHash.php delete mode 100644 lib/aws-sdk/Aws/Common/HostNameUtils.php delete mode 100644 lib/aws-sdk/Aws/Common/InstanceMetadata/InstanceMetadataClient.php delete mode 100644 lib/aws-sdk/Aws/Common/InstanceMetadata/Waiter/ServiceAvailable.php delete mode 100644 lib/aws-sdk/Aws/Common/Iterator/AwsResourceIterator.php delete mode 100644 lib/aws-sdk/Aws/Common/Iterator/AwsResourceIteratorFactory.php delete mode 100644 lib/aws-sdk/Aws/Common/Model/MultipartUpload/AbstractTransfer.php delete mode 100644 lib/aws-sdk/Aws/Common/Model/MultipartUpload/AbstractTransferState.php delete mode 100644 lib/aws-sdk/Aws/Common/Model/MultipartUpload/AbstractUploadBuilder.php delete mode 100644 lib/aws-sdk/Aws/Common/Model/MultipartUpload/AbstractUploadId.php delete mode 100644 lib/aws-sdk/Aws/Common/Model/MultipartUpload/AbstractUploadPart.php delete mode 100644 lib/aws-sdk/Aws/Common/Model/MultipartUpload/TransferInterface.php delete mode 100644 lib/aws-sdk/Aws/Common/Model/MultipartUpload/TransferStateInterface.php delete mode 100644 lib/aws-sdk/Aws/Common/Model/MultipartUpload/UploadIdInterface.php delete mode 100644 lib/aws-sdk/Aws/Common/Model/MultipartUpload/UploadPartInterface.php delete mode 100644 lib/aws-sdk/Aws/Common/Resources/aws-config.php delete mode 100644 lib/aws-sdk/Aws/Common/Resources/public-endpoints.php delete mode 100644 lib/aws-sdk/Aws/Common/Resources/sdk1-config.php delete mode 100644 lib/aws-sdk/Aws/Common/RulesEndpointProvider.php delete mode 100644 lib/aws-sdk/Aws/Common/Signature/AbstractSignature.php delete mode 100644 lib/aws-sdk/Aws/Common/Signature/EndpointSignatureInterface.php delete mode 100644 lib/aws-sdk/Aws/Common/Signature/SignatureInterface.php delete mode 100644 lib/aws-sdk/Aws/Common/Signature/SignatureListener.php delete mode 100644 lib/aws-sdk/Aws/Common/Signature/SignatureV2.php delete mode 100644 lib/aws-sdk/Aws/Common/Signature/SignatureV3Https.php delete mode 100644 lib/aws-sdk/Aws/Common/Signature/SignatureV4.php delete mode 100644 lib/aws-sdk/Aws/Common/Waiter/AbstractResourceWaiter.php delete mode 100644 lib/aws-sdk/Aws/Common/Waiter/AbstractWaiter.php delete mode 100644 lib/aws-sdk/Aws/Common/Waiter/CallableWaiter.php delete mode 100644 lib/aws-sdk/Aws/Common/Waiter/CompositeWaiterFactory.php delete mode 100644 lib/aws-sdk/Aws/Common/Waiter/ConfigResourceWaiter.php delete mode 100644 lib/aws-sdk/Aws/Common/Waiter/ResourceWaiterInterface.php delete mode 100644 lib/aws-sdk/Aws/Common/Waiter/WaiterClassFactory.php delete mode 100644 lib/aws-sdk/Aws/Common/Waiter/WaiterConfig.php delete mode 100644 lib/aws-sdk/Aws/Common/Waiter/WaiterConfigFactory.php delete mode 100644 lib/aws-sdk/Aws/Common/Waiter/WaiterFactoryInterface.php delete mode 100644 lib/aws-sdk/Aws/Common/Waiter/WaiterInterface.php delete mode 100644 lib/aws-sdk/Aws/ConfigService/Resources/configservice-2014-11-12.php create mode 100644 lib/aws-sdk/Aws/Credentials/CredentialProvider.php create mode 100644 lib/aws-sdk/Aws/Credentials/Credentials.php create mode 100644 lib/aws-sdk/Aws/Credentials/CredentialsInterface.php create mode 100644 lib/aws-sdk/Aws/Credentials/InstanceProfileProvider.php delete mode 100644 lib/aws-sdk/Aws/DataPipeline/Enum/WorkStatus.php delete mode 100644 lib/aws-sdk/Aws/DataPipeline/Exception/InternalServiceErrorException.php delete mode 100644 lib/aws-sdk/Aws/DataPipeline/Exception/InvalidRequestException.php delete mode 100644 lib/aws-sdk/Aws/DataPipeline/Exception/PipelineDeletedException.php delete mode 100644 lib/aws-sdk/Aws/DataPipeline/Exception/PipelineNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/DataPipeline/Exception/TaskNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/DataPipeline/Resources/datapipeline-2012-10-29.php delete mode 100644 lib/aws-sdk/Aws/DirectConnect/Enum/ConnectionState.php delete mode 100644 lib/aws-sdk/Aws/DirectConnect/Enum/InterconnectState.php delete mode 100644 lib/aws-sdk/Aws/DirectConnect/Enum/StepState.php delete mode 100644 lib/aws-sdk/Aws/DirectConnect/Enum/VirtualInterfaceState.php delete mode 100644 lib/aws-sdk/Aws/DirectConnect/Exception/DirectConnectClientException.php delete mode 100644 lib/aws-sdk/Aws/DirectConnect/Exception/DirectConnectServerException.php delete mode 100644 lib/aws-sdk/Aws/DirectConnect/Resources/directconnect-2012-10-25.php delete mode 100644 lib/aws-sdk/Aws/DirectoryService/Resources/directoryservice-2015-04-16.php create mode 100644 lib/aws-sdk/Aws/DynamoDb/BinaryValue.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Crc32ErrorChecker.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/DynamoDbCommand.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Enum/AttributeAction.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Enum/AttributeType.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Enum/ComparisonOperator.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Enum/IndexStatus.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Enum/KeyType.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Enum/ProjectionType.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Enum/ReturnConsumedCapacity.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Enum/ReturnItemCollectionMetrics.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Enum/ReturnValue.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Enum/ScalarAttributeType.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Enum/Select.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Enum/TableStatus.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Enum/Type.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Exception/AccessDeniedException.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Exception/ConditionalCheckFailedException.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Exception/IncompleteSignatureException.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Exception/InternalFailureException.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Exception/InternalServerErrorException.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Exception/ItemCollectionSizeLimitExceededException.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Exception/LimitExceededException.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Exception/MissingAuthenticationTokenException.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Exception/ProvisionedThroughputExceededException.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Exception/ResourceInUseException.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Exception/ResourceNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Exception/ServiceUnavailableException.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Exception/ThrottlingException.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Exception/UnprocessedWriteRequestsException.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Exception/UnrecognizedClientException.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Exception/ValidationException.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Iterator/ItemIterator.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Iterator/ScanIterator.php create mode 100644 lib/aws-sdk/Aws/DynamoDb/LockingSessionConnection.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Model/Attribute.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/AbstractWriteRequest.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/DeleteRequest.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/PutRequest.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/UnprocessedRequest.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/WriteRequestBatch.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/WriteRequestBatchTransfer.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/WriteRequestInterface.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Model/Item.php create mode 100644 lib/aws-sdk/Aws/DynamoDb/NumberValue.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Resources/dynamodb-2011-12-05.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Resources/dynamodb-2012-08-10.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Session/LockingStrategy/AbstractLockingStrategy.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Session/LockingStrategy/LockingStrategyFactory.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Session/LockingStrategy/LockingStrategyFactoryInterface.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Session/LockingStrategy/LockingStrategyInterface.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Session/LockingStrategy/NullLockingStrategy.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Session/LockingStrategy/PessimisticLockingStrategy.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Session/SessionHandler.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Session/SessionHandlerConfig.php delete mode 100644 lib/aws-sdk/Aws/DynamoDb/Session/SessionHandlerInterface.php create mode 100644 lib/aws-sdk/Aws/DynamoDb/SessionConnectionInterface.php create mode 100644 lib/aws-sdk/Aws/DynamoDb/SessionHandler.php create mode 100644 lib/aws-sdk/Aws/DynamoDb/SetValue.php create mode 100644 lib/aws-sdk/Aws/DynamoDb/StandardSessionConnection.php create mode 100644 lib/aws-sdk/Aws/DynamoDb/WriteRequestBatch.php delete mode 100644 lib/aws-sdk/Aws/Ec2/CopySnapshotListener.php create mode 100644 lib/aws-sdk/Aws/Ec2/CopySnapshotMiddleware.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Enum/ContainerFormat.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Enum/DiskImageFormat.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Enum/DomainType.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Enum/ExportEnvironment.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Enum/HypervisorType.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Enum/ImageState.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Enum/InstanceAttributeName.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Enum/InstanceStateName.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Enum/InstanceType.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Enum/PlacementGroupState.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Enum/PlacementStrategy.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Enum/ResourceType.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Enum/RouteOrigin.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Enum/RuleAction.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Enum/SnapshotAttributeName.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Enum/SnapshotState.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Enum/SpotInstanceType.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Enum/VirtualizationType.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Enum/VolumeAttachmentState.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Enum/VolumeAttributeName.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Enum/VolumeState.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Enum/VolumeType.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Enum/VpcAttributeName.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Iterator/DescribeInstancesIterator.php delete mode 100644 lib/aws-sdk/Aws/Ec2/Resources/ec2-2015-04-15.php delete mode 100644 lib/aws-sdk/Aws/Ecs/Resources/ecs-2014-11-13.php delete mode 100644 lib/aws-sdk/Aws/Efs/Resources/elasticfilesystem-2015-02-01.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Enum/SourceType.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/AuthorizationAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/AuthorizationNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/CacheClusterAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/CacheClusterNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/CacheParameterGroupAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/CacheParameterGroupNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/CacheParameterGroupQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/CacheSecurityGroupAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/CacheSecurityGroupNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/CacheSecurityGroupQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/CacheSubnetGroupAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/CacheSubnetGroupInUseException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/CacheSubnetGroupNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/CacheSubnetGroupQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/CacheSubnetQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/ClusterQuotaForCustomerExceededException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/InsufficientCacheClusterCapacityException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/InvalidCacheClusterStateException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/InvalidCacheParameterGroupStateException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/InvalidCacheSecurityGroupStateException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/InvalidParameterCombinationException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/InvalidParameterValueException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/InvalidReplicationGroupStateException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/InvalidSubnetException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/InvalidVPCNetworkStateException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/NodeQuotaForClusterExceededException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/NodeQuotaForCustomerExceededException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/ReplicationGroupAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/ReplicationGroupNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/ReservedCacheNodeAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/ReservedCacheNodeNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/ReservedCacheNodeQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/ReservedCacheNodesOfferingNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Exception/SubnetInUseException.php delete mode 100644 lib/aws-sdk/Aws/ElastiCache/Resources/elasticache-2015-02-02.php delete mode 100644 lib/aws-sdk/Aws/ElasticBeanstalk/Enum/ConfigurationDeploymentStatus.php delete mode 100644 lib/aws-sdk/Aws/ElasticBeanstalk/Enum/ConfigurationOptionValueType.php delete mode 100644 lib/aws-sdk/Aws/ElasticBeanstalk/Enum/EnvironmentHealth.php delete mode 100644 lib/aws-sdk/Aws/ElasticBeanstalk/Enum/EnvironmentInfoType.php delete mode 100644 lib/aws-sdk/Aws/ElasticBeanstalk/Enum/EnvironmentStatus.php delete mode 100644 lib/aws-sdk/Aws/ElasticBeanstalk/Enum/EventSeverity.php delete mode 100644 lib/aws-sdk/Aws/ElasticBeanstalk/Enum/ValidationSeverity.php delete mode 100644 lib/aws-sdk/Aws/ElasticBeanstalk/Exception/InsufficientPrivilegesException.php delete mode 100644 lib/aws-sdk/Aws/ElasticBeanstalk/Exception/OperationInProgressException.php delete mode 100644 lib/aws-sdk/Aws/ElasticBeanstalk/Exception/S3LocationNotInServiceRegionException.php delete mode 100644 lib/aws-sdk/Aws/ElasticBeanstalk/Exception/S3SubscriptionRequiredException.php delete mode 100644 lib/aws-sdk/Aws/ElasticBeanstalk/Exception/SourceBundleDeletionException.php delete mode 100644 lib/aws-sdk/Aws/ElasticBeanstalk/Exception/TooManyApplicationVersionsException.php delete mode 100644 lib/aws-sdk/Aws/ElasticBeanstalk/Exception/TooManyApplicationsException.php delete mode 100644 lib/aws-sdk/Aws/ElasticBeanstalk/Exception/TooManyBucketsException.php delete mode 100644 lib/aws-sdk/Aws/ElasticBeanstalk/Exception/TooManyConfigurationTemplatesException.php delete mode 100644 lib/aws-sdk/Aws/ElasticBeanstalk/Exception/TooManyEnvironmentsException.php delete mode 100644 lib/aws-sdk/Aws/ElasticBeanstalk/Resources/elasticbeanstalk-2010-12-01.php delete mode 100644 lib/aws-sdk/Aws/ElasticLoadBalancing/Exception/AccessPointNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/ElasticLoadBalancing/Exception/CertificateNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/ElasticLoadBalancing/Exception/DuplicateAccessPointNameException.php delete mode 100644 lib/aws-sdk/Aws/ElasticLoadBalancing/Exception/DuplicateListenerException.php delete mode 100644 lib/aws-sdk/Aws/ElasticLoadBalancing/Exception/DuplicatePolicyNameException.php delete mode 100644 lib/aws-sdk/Aws/ElasticLoadBalancing/Exception/InvalidConfigurationRequestException.php delete mode 100644 lib/aws-sdk/Aws/ElasticLoadBalancing/Exception/InvalidEndPointException.php delete mode 100644 lib/aws-sdk/Aws/ElasticLoadBalancing/Exception/InvalidSchemeException.php delete mode 100644 lib/aws-sdk/Aws/ElasticLoadBalancing/Exception/InvalidSecurityGroupException.php delete mode 100644 lib/aws-sdk/Aws/ElasticLoadBalancing/Exception/InvalidSubnetException.php delete mode 100644 lib/aws-sdk/Aws/ElasticLoadBalancing/Exception/ListenerNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/ElasticLoadBalancing/Exception/LoadBalancerAttributeNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/ElasticLoadBalancing/Exception/PolicyNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/ElasticLoadBalancing/Exception/PolicyTypeNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/ElasticLoadBalancing/Exception/SubnetNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/ElasticLoadBalancing/Exception/TooManyAccessPointsException.php delete mode 100644 lib/aws-sdk/Aws/ElasticLoadBalancing/Exception/TooManyPoliciesException.php delete mode 100644 lib/aws-sdk/Aws/ElasticLoadBalancing/Resources/elasticloadbalancing-2012-06-01.php delete mode 100644 lib/aws-sdk/Aws/ElasticTranscoder/Exception/AccessDeniedException.php delete mode 100644 lib/aws-sdk/Aws/ElasticTranscoder/Exception/IncompatibleVersionException.php delete mode 100644 lib/aws-sdk/Aws/ElasticTranscoder/Exception/InternalServiceException.php delete mode 100644 lib/aws-sdk/Aws/ElasticTranscoder/Exception/LimitExceededException.php delete mode 100644 lib/aws-sdk/Aws/ElasticTranscoder/Exception/ResourceInUseException.php delete mode 100644 lib/aws-sdk/Aws/ElasticTranscoder/Exception/ResourceNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/ElasticTranscoder/Exception/ValidationException.php delete mode 100644 lib/aws-sdk/Aws/ElasticTranscoder/Resources/elastictranscoder-2012-09-25.php delete mode 100644 lib/aws-sdk/Aws/Emr/Enum/ActionOnFailure.php delete mode 100644 lib/aws-sdk/Aws/Emr/Enum/ClusterState.php delete mode 100644 lib/aws-sdk/Aws/Emr/Enum/ClusterStateChangeReasonCode.php delete mode 100644 lib/aws-sdk/Aws/Emr/Enum/InstanceGroupState.php delete mode 100644 lib/aws-sdk/Aws/Emr/Enum/InstanceGroupStateChangeReasonCode.php delete mode 100644 lib/aws-sdk/Aws/Emr/Enum/InstanceGroupType.php delete mode 100644 lib/aws-sdk/Aws/Emr/Enum/InstanceRoleType.php delete mode 100644 lib/aws-sdk/Aws/Emr/Enum/InstanceState.php delete mode 100644 lib/aws-sdk/Aws/Emr/Enum/InstanceStateChangeReasonCode.php delete mode 100644 lib/aws-sdk/Aws/Emr/Enum/JobFlowExecutionState.php delete mode 100644 lib/aws-sdk/Aws/Emr/Enum/MarketType.php delete mode 100644 lib/aws-sdk/Aws/Emr/Enum/StepExecutionState.php delete mode 100644 lib/aws-sdk/Aws/Emr/Enum/StepState.php delete mode 100644 lib/aws-sdk/Aws/Emr/Enum/StepStateChangeReasonCode.php delete mode 100644 lib/aws-sdk/Aws/Emr/Exception/InternalServerErrorException.php delete mode 100644 lib/aws-sdk/Aws/Emr/Exception/InternalServerException.php delete mode 100644 lib/aws-sdk/Aws/Emr/Exception/InvalidRequestException.php delete mode 100644 lib/aws-sdk/Aws/Emr/Resources/emr-2009-03-31.php create mode 100644 lib/aws-sdk/Aws/Endpoint/EndpointProvider.php create mode 100644 lib/aws-sdk/Aws/Endpoint/PatternEndpointProvider.php create mode 100644 lib/aws-sdk/Aws/Exception/AwsException.php create mode 100644 lib/aws-sdk/Aws/Exception/CouldNotCreateChecksumException.php create mode 100644 lib/aws-sdk/Aws/Exception/CredentialsException.php create mode 100644 lib/aws-sdk/Aws/Exception/MultipartUploadException.php create mode 100644 lib/aws-sdk/Aws/Exception/UnresolvedApiException.php create mode 100644 lib/aws-sdk/Aws/Exception/UnresolvedEndpointException.php create mode 100644 lib/aws-sdk/Aws/Exception/UnresolvedSignatureException.php delete mode 100644 lib/aws-sdk/Aws/Glacier/Enum/Action.php delete mode 100644 lib/aws-sdk/Aws/Glacier/Enum/ActionCode.php delete mode 100644 lib/aws-sdk/Aws/Glacier/Enum/StatusCode.php delete mode 100644 lib/aws-sdk/Aws/Glacier/Exception/InvalidParameterValueException.php delete mode 100644 lib/aws-sdk/Aws/Glacier/Exception/LimitExceededException.php delete mode 100644 lib/aws-sdk/Aws/Glacier/Exception/MissingParameterValueException.php delete mode 100644 lib/aws-sdk/Aws/Glacier/Exception/RequestTimeoutException.php delete mode 100644 lib/aws-sdk/Aws/Glacier/Exception/ResourceNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Glacier/Exception/ServiceUnavailableException.php delete mode 100644 lib/aws-sdk/Aws/Glacier/GlacierUploadListener.php delete mode 100644 lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/AbstractTransfer.php delete mode 100644 lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/ParallelTransfer.php delete mode 100644 lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/SerialTransfer.php delete mode 100644 lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/TransferState.php delete mode 100644 lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadBuilder.php delete mode 100644 lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadId.php delete mode 100644 lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadPart.php delete mode 100644 lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadPartContext.php delete mode 100644 lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadPartGenerator.php create mode 100644 lib/aws-sdk/Aws/Glacier/MultipartUploader.php delete mode 100644 lib/aws-sdk/Aws/Glacier/Resources/glacier-2012-06-01.php create mode 100644 lib/aws-sdk/Aws/Glacier/TreeHash.php create mode 100644 lib/aws-sdk/Aws/Handler/GuzzleV5/GuzzleHandler.php create mode 100644 lib/aws-sdk/Aws/Handler/GuzzleV5/GuzzleStream.php create mode 100644 lib/aws-sdk/Aws/Handler/GuzzleV5/PsrStream.php create mode 100644 lib/aws-sdk/Aws/Handler/GuzzleV6/GuzzleHandler.php create mode 100644 lib/aws-sdk/Aws/HandlerList.php create mode 100644 lib/aws-sdk/Aws/HasDataTrait.php create mode 100644 lib/aws-sdk/Aws/HashInterface.php create mode 100644 lib/aws-sdk/Aws/HashingStream.php create mode 100644 lib/aws-sdk/Aws/History.php delete mode 100644 lib/aws-sdk/Aws/Iam/Enum/AssignmentStatusType.php delete mode 100644 lib/aws-sdk/Aws/Iam/Enum/StatusType.php delete mode 100644 lib/aws-sdk/Aws/Iam/Exception/DeleteConflictException.php delete mode 100644 lib/aws-sdk/Aws/Iam/Exception/DuplicateCertificateException.php delete mode 100644 lib/aws-sdk/Aws/Iam/Exception/EntityAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/Iam/Exception/EntityTemporarilyUnmodifiableException.php delete mode 100644 lib/aws-sdk/Aws/Iam/Exception/InvalidAuthenticationCodeException.php delete mode 100644 lib/aws-sdk/Aws/Iam/Exception/InvalidCertificateException.php delete mode 100644 lib/aws-sdk/Aws/Iam/Exception/InvalidInputException.php delete mode 100644 lib/aws-sdk/Aws/Iam/Exception/InvalidUserTypeException.php delete mode 100644 lib/aws-sdk/Aws/Iam/Exception/KeyPairMismatchException.php delete mode 100644 lib/aws-sdk/Aws/Iam/Exception/LimitExceededException.php delete mode 100644 lib/aws-sdk/Aws/Iam/Exception/MalformedCertificateException.php delete mode 100644 lib/aws-sdk/Aws/Iam/Exception/MalformedPolicyDocumentException.php delete mode 100644 lib/aws-sdk/Aws/Iam/Exception/NoSuchEntityException.php delete mode 100644 lib/aws-sdk/Aws/Iam/Exception/PasswordPolicyViolationException.php delete mode 100644 lib/aws-sdk/Aws/Iam/Resources/iam-2010-05-08.php delete mode 100644 lib/aws-sdk/Aws/ImportExport/Enum/JobType.php delete mode 100644 lib/aws-sdk/Aws/ImportExport/Exception/BucketPermissionException.php delete mode 100644 lib/aws-sdk/Aws/ImportExport/Exception/CanceledJobIdException.php delete mode 100644 lib/aws-sdk/Aws/ImportExport/Exception/ExpiredJobIdException.php delete mode 100644 lib/aws-sdk/Aws/ImportExport/Exception/ImportExportException.php delete mode 100644 lib/aws-sdk/Aws/ImportExport/Exception/InvalidAccessKeyIdException.php delete mode 100644 lib/aws-sdk/Aws/ImportExport/Exception/InvalidAddressException.php delete mode 100644 lib/aws-sdk/Aws/ImportExport/Exception/InvalidCustomsException.php delete mode 100644 lib/aws-sdk/Aws/ImportExport/Exception/InvalidFileSystemException.php delete mode 100644 lib/aws-sdk/Aws/ImportExport/Exception/InvalidJobIdException.php delete mode 100644 lib/aws-sdk/Aws/ImportExport/Exception/InvalidManifestFieldException.php delete mode 100644 lib/aws-sdk/Aws/ImportExport/Exception/InvalidParameterException.php delete mode 100644 lib/aws-sdk/Aws/ImportExport/Exception/MalformedManifestException.php delete mode 100644 lib/aws-sdk/Aws/ImportExport/Exception/MissingCustomsException.php delete mode 100644 lib/aws-sdk/Aws/ImportExport/Exception/MissingManifestFieldException.php delete mode 100644 lib/aws-sdk/Aws/ImportExport/Exception/MissingParameterException.php delete mode 100644 lib/aws-sdk/Aws/ImportExport/Exception/MultipleRegionsException.php delete mode 100644 lib/aws-sdk/Aws/ImportExport/Exception/NoSuchBucketException.php delete mode 100644 lib/aws-sdk/Aws/ImportExport/Exception/UnableToCancelJobIdException.php delete mode 100644 lib/aws-sdk/Aws/ImportExport/ImportExportClient.php delete mode 100644 lib/aws-sdk/Aws/ImportExport/JobManifestListener.php delete mode 100644 lib/aws-sdk/Aws/ImportExport/Resources/importexport-2010-06-01.php create mode 100644 lib/aws-sdk/Aws/JsonCompiler.php delete mode 100644 lib/aws-sdk/Aws/Kinesis/Enum/ShardIteratorType.php delete mode 100644 lib/aws-sdk/Aws/Kinesis/Enum/StreamStatus.php delete mode 100644 lib/aws-sdk/Aws/Kinesis/Exception/ExpiredIteratorException.php delete mode 100644 lib/aws-sdk/Aws/Kinesis/Exception/InvalidArgumentException.php delete mode 100644 lib/aws-sdk/Aws/Kinesis/Exception/LimitExceededException.php delete mode 100644 lib/aws-sdk/Aws/Kinesis/Exception/ProvisionedThroughputExceededException.php delete mode 100644 lib/aws-sdk/Aws/Kinesis/Exception/ResourceInUseException.php delete mode 100644 lib/aws-sdk/Aws/Kinesis/Exception/ResourceNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Kinesis/Resources/kinesis-2013-12-02.php delete mode 100644 lib/aws-sdk/Aws/Kms/Resources/kms-2014-11-01.php delete mode 100644 lib/aws-sdk/Aws/Lambda/Resources/lambda-2014-11-11.php delete mode 100644 lib/aws-sdk/Aws/Lambda/Resources/lambda-2015-03-31.php create mode 100644 lib/aws-sdk/Aws/LruArrayCache.php delete mode 100644 lib/aws-sdk/Aws/MachineLearning/PredictEndpointListener.php delete mode 100644 lib/aws-sdk/Aws/MachineLearning/Resources/machinelearning-2014-12-12.php create mode 100644 lib/aws-sdk/Aws/Middleware.php create mode 100644 lib/aws-sdk/Aws/MockHandler.php create mode 100644 lib/aws-sdk/Aws/Multipart/AbstractUploader.php create mode 100644 lib/aws-sdk/Aws/Multipart/UploadState.php delete mode 100644 lib/aws-sdk/Aws/OpsWorks/Enum/AppType.php delete mode 100644 lib/aws-sdk/Aws/OpsWorks/Enum/Architecture.php delete mode 100644 lib/aws-sdk/Aws/OpsWorks/Enum/AutoScalingType.php delete mode 100644 lib/aws-sdk/Aws/OpsWorks/Enum/DeploymentCommandName.php delete mode 100644 lib/aws-sdk/Aws/OpsWorks/Enum/LayerType.php delete mode 100644 lib/aws-sdk/Aws/OpsWorks/Enum/PermissionLevel.php delete mode 100644 lib/aws-sdk/Aws/OpsWorks/Enum/RootDeviceType.php delete mode 100644 lib/aws-sdk/Aws/OpsWorks/Enum/SourceType.php delete mode 100644 lib/aws-sdk/Aws/OpsWorks/Exception/ResourceNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/OpsWorks/Exception/ValidationException.php delete mode 100644 lib/aws-sdk/Aws/OpsWorks/Resources/opsworks-2013-02-18.php create mode 100644 lib/aws-sdk/Aws/PhpHash.php delete mode 100644 lib/aws-sdk/Aws/Rds/Enum/ApplyMethod.php delete mode 100644 lib/aws-sdk/Aws/Rds/Enum/SourceType.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/AuthorizationAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/AuthorizationNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/AuthorizationQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/DBInstanceAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/DBInstanceNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/DBParameterGroupAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/DBParameterGroupNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/DBParameterGroupQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/DBSecurityGroupAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/DBSecurityGroupNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/DBSecurityGroupNotSupportedException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/DBSecurityGroupQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/DBSnapshotAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/DBSnapshotNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/DBSubnetGroupAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/DBSubnetGroupDoesNotCoverEnoughAZsException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/DBSubnetGroupNotAllowedException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/DBSubnetGroupNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/DBSubnetGroupQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/DBSubnetQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/DBUpgradeDependencyFailureException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/EventSubscriptionQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/InstanceQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/InsufficientDBInstanceCapacityException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/InvalidDBInstanceStateException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/InvalidDBParameterGroupStateException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/InvalidDBSecurityGroupStateException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/InvalidDBSnapshotStateException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/InvalidDBSubnetGroupException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/InvalidDBSubnetGroupStateException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/InvalidDBSubnetStateException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/InvalidEventSubscriptionStateException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/InvalidOptionGroupStateException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/InvalidRestoreException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/InvalidSubnetException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/InvalidVPCNetworkStateException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/OptionGroupAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/OptionGroupNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/OptionGroupQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/PointInTimeRestoreNotEnabledException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/ProvisionedIopsNotAvailableInAZException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/ReservedDBInstanceAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/ReservedDBInstanceNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/ReservedDBInstanceQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/ReservedDBInstancesOfferingNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/SNSInvalidTopicException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/SNSNoAuthorizationException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/SNSTopicArnNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/SnapshotQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/SourceNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/StorageQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/SubnetAlreadyInUseException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/SubscriptionAlreadyExistException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/SubscriptionCategoryNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Exception/SubscriptionNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Rds/Resources/rds-2014-10-31.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Enum/SourceType.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/AccessToSnapshotDeniedException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/AuthorizationAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/AuthorizationNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/AuthorizationQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/BucketNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/ClusterAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/ClusterNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/ClusterParameterGroupAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/ClusterParameterGroupNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/ClusterParameterGroupQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/ClusterQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/ClusterSecurityGroupAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/ClusterSecurityGroupNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/ClusterSecurityGroupQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/ClusterSnapshotAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/ClusterSnapshotNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/ClusterSnapshotQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/ClusterSubnetGroupAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/ClusterSubnetGroupNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/ClusterSubnetGroupQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/ClusterSubnetQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/CopyToRegionDisabledException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/EventSubscriptionQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/HsmClientCertificateAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/HsmClientCertificateNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/HsmClientCertificateQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/HsmConfigurationAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/HsmConfigurationNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/HsmConfigurationQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/IncompatibleOrderableOptionsException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/InsufficientClusterCapacityException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/InsufficientS3BucketPolicyFaultException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/InvalidClusterParameterGroupStateException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/InvalidClusterSecurityGroupStateException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/InvalidClusterSnapshotStateException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/InvalidClusterStateException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/InvalidClusterSubnetGroupStateException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/InvalidClusterSubnetStateException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/InvalidElasticIpException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/InvalidHsmClientCertificateStateException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/InvalidHsmConfigurationStateException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/InvalidRestoreException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/InvalidS3BucketNameFaultException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/InvalidS3KeyPrefixFaultException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/InvalidSubnetException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/InvalidVPCNetworkStateException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/NumberOfNodesPerClusterLimitExceededException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/NumberOfNodesQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/ReservedNodeAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/ReservedNodeNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/ReservedNodeOfferingNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/ReservedNodeQuotaExceededException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/ResizeNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/SNSInvalidTopicException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/SNSNoAuthorizationException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/SNSTopicArnNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/SnapshotCopyAlreadyDisabledException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/SnapshotCopyAlreadyEnabledException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/SnapshotCopyDisabledException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/SourceNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/SubnetAlreadyInUseException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/SubscriptionAlreadyExistException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/SubscriptionCategoryNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/SubscriptionEventIdNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/SubscriptionNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/SubscriptionSeverityNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/UnauthorizedOperationException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/UnknownSnapshotCopyRegionException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Exception/UnsupportedOptionException.php delete mode 100644 lib/aws-sdk/Aws/Redshift/Resources/redshift-2012-12-01.php create mode 100644 lib/aws-sdk/Aws/Result.php create mode 100644 lib/aws-sdk/Aws/ResultInterface.php create mode 100644 lib/aws-sdk/Aws/ResultPaginator.php create mode 100644 lib/aws-sdk/Aws/RetryMiddleware.php delete mode 100644 lib/aws-sdk/Aws/Route53/Enum/Action.php delete mode 100644 lib/aws-sdk/Aws/Route53/Enum/HealthCheckType.php delete mode 100644 lib/aws-sdk/Aws/Route53/Enum/RecordType.php delete mode 100644 lib/aws-sdk/Aws/Route53/Enum/ResourceRecordSetFailover.php delete mode 100644 lib/aws-sdk/Aws/Route53/Enum/Status.php delete mode 100644 lib/aws-sdk/Aws/Route53/Exception/DelegationSetNotAvailableException.php delete mode 100644 lib/aws-sdk/Aws/Route53/Exception/HealthCheckAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/Route53/Exception/HealthCheckInUseException.php delete mode 100644 lib/aws-sdk/Aws/Route53/Exception/HostedZoneAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/Route53/Exception/HostedZoneNotEmptyException.php delete mode 100644 lib/aws-sdk/Aws/Route53/Exception/IncompatibleVersionException.php delete mode 100644 lib/aws-sdk/Aws/Route53/Exception/InvalidChangeBatchException.php delete mode 100644 lib/aws-sdk/Aws/Route53/Exception/InvalidDomainNameException.php delete mode 100644 lib/aws-sdk/Aws/Route53/Exception/InvalidInputException.php delete mode 100644 lib/aws-sdk/Aws/Route53/Exception/NoSuchChangeException.php delete mode 100644 lib/aws-sdk/Aws/Route53/Exception/NoSuchHealthCheckException.php delete mode 100644 lib/aws-sdk/Aws/Route53/Exception/NoSuchHostedZoneException.php delete mode 100644 lib/aws-sdk/Aws/Route53/Exception/PriorRequestNotCompleteException.php delete mode 100644 lib/aws-sdk/Aws/Route53/Exception/TooManyHealthChecksException.php delete mode 100644 lib/aws-sdk/Aws/Route53/Exception/TooManyHostedZonesException.php delete mode 100644 lib/aws-sdk/Aws/Route53/Resources/route53-2013-04-01.php delete mode 100644 lib/aws-sdk/Aws/Route53Domains/Resources/route53domains-2014-05-15.php delete mode 100644 lib/aws-sdk/Aws/S3/AcpListener.php create mode 100644 lib/aws-sdk/Aws/S3/ApplyMd5Middleware.php create mode 100644 lib/aws-sdk/Aws/S3/BatchDelete.php create mode 100644 lib/aws-sdk/Aws/S3/BucketEndpointMiddleware.php delete mode 100644 lib/aws-sdk/Aws/S3/BucketStyleListener.php delete mode 100644 lib/aws-sdk/Aws/S3/Command/S3Command.php delete mode 100644 lib/aws-sdk/Aws/S3/Enum/CannedAcl.php delete mode 100644 lib/aws-sdk/Aws/S3/Enum/EncodingType.php delete mode 100644 lib/aws-sdk/Aws/S3/Enum/Event.php delete mode 100644 lib/aws-sdk/Aws/S3/Enum/GranteeType.php delete mode 100644 lib/aws-sdk/Aws/S3/Enum/Group.php delete mode 100644 lib/aws-sdk/Aws/S3/Enum/MFADelete.php delete mode 100644 lib/aws-sdk/Aws/S3/Enum/MetadataDirective.php delete mode 100644 lib/aws-sdk/Aws/S3/Enum/Payer.php delete mode 100644 lib/aws-sdk/Aws/S3/Enum/Permission.php delete mode 100644 lib/aws-sdk/Aws/S3/Enum/Protocol.php delete mode 100644 lib/aws-sdk/Aws/S3/Enum/ServerSideEncryption.php delete mode 100644 lib/aws-sdk/Aws/S3/Enum/Status.php delete mode 100644 lib/aws-sdk/Aws/S3/Enum/Storage.php delete mode 100644 lib/aws-sdk/Aws/S3/Enum/StorageClass.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/AccessDeniedException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/AccountProblemException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/AmbiguousGrantByEmailAddressException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/BadDigestException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/BucketAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/BucketAlreadyOwnedByYouException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/BucketNotEmptyException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/CredentialsNotSupportedException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/CrossLocationLoggingProhibitedException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/EntityTooLargeException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/EntityTooSmallException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/ExpiredTokenException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/IllegalVersioningConfigurationException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/IncompleteBodyException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/IncorrectNumberOfFilesInPostRequestException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/InlineDataTooLargeException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/InternalErrorException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/InvalidAccessKeyIdException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/InvalidAddressingHeaderException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/InvalidArgumentException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/InvalidBucketNameException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/InvalidBucketStateException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/InvalidDigestException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/InvalidLocationConstraintException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/InvalidPartException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/InvalidPartOrderException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/InvalidPayerException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/InvalidPolicyDocumentException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/InvalidRangeException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/InvalidRequestException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/InvalidSOAPRequestException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/InvalidSecurityException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/InvalidStorageClassException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/InvalidTagErrorException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/InvalidTargetBucketForLoggingException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/InvalidTokenException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/InvalidURIException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/KeyTooLongException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/MalformedACLErrorException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/MalformedPOSTRequestException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/MalformedXMLException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/MaxMessageLengthExceededException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/MaxPostPreDataLengthExceededErrorException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/MetadataTooLargeException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/MethodNotAllowedException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/MissingAttachmentException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/MissingContentLengthException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/MissingRequestBodyErrorException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/MissingSecurityElementException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/MissingSecurityHeaderException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/NoLoggingStatusForKeyException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/NoSuchBucketException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/NoSuchBucketPolicyException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/NoSuchCORSConfigurationException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/NoSuchKeyException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/NoSuchLifecycleConfigurationException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/NoSuchTagSetException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/NoSuchUploadException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/NoSuchVersionException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/NoSuchWebsiteConfigurationException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/NotImplementedException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/NotSignedUpException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/NotSuchBucketPolicyException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/ObjectAlreadyInActiveTierErrorException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/ObjectNotInActiveTierErrorException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/OperationAbortedException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/Parser/S3ExceptionParser.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/PreconditionFailedException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/RedirectException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/RequestIsNotMultiPartContentException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/RequestTimeTooSkewedException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/RequestTimeoutException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/RequestTorrentOfBucketErrorException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/ServiceUnavailableException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/SignatureDoesNotMatchException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/SlowDownException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/TemporaryRedirectException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/TokenRefreshRequiredException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/TooManyBucketsException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/UnexpectedContentException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/UnresolvableGrantByEmailAddressException.php delete mode 100644 lib/aws-sdk/Aws/S3/Exception/UserKeyMustBeSpecifiedException.php create mode 100644 lib/aws-sdk/Aws/S3/GetBucketLocationParser.php delete mode 100644 lib/aws-sdk/Aws/S3/IncompleteMultipartUploadChecker.php delete mode 100644 lib/aws-sdk/Aws/S3/Iterator/ListBucketsIterator.php delete mode 100644 lib/aws-sdk/Aws/S3/Iterator/ListMultipartUploadsIterator.php delete mode 100644 lib/aws-sdk/Aws/S3/Iterator/ListObjectVersionsIterator.php delete mode 100644 lib/aws-sdk/Aws/S3/Iterator/ListObjectsIterator.php delete mode 100644 lib/aws-sdk/Aws/S3/Iterator/OpendirIterator.php delete mode 100644 lib/aws-sdk/Aws/S3/Model/Acp.php delete mode 100644 lib/aws-sdk/Aws/S3/Model/AcpBuilder.php delete mode 100644 lib/aws-sdk/Aws/S3/Model/ClearBucket.php delete mode 100644 lib/aws-sdk/Aws/S3/Model/DeleteObjectsBatch.php delete mode 100644 lib/aws-sdk/Aws/S3/Model/DeleteObjectsTransfer.php delete mode 100644 lib/aws-sdk/Aws/S3/Model/Grant.php delete mode 100644 lib/aws-sdk/Aws/S3/Model/Grantee.php delete mode 100644 lib/aws-sdk/Aws/S3/Model/MultipartUpload/AbstractTransfer.php delete mode 100644 lib/aws-sdk/Aws/S3/Model/MultipartUpload/ParallelTransfer.php delete mode 100644 lib/aws-sdk/Aws/S3/Model/MultipartUpload/SerialTransfer.php delete mode 100644 lib/aws-sdk/Aws/S3/Model/MultipartUpload/TransferState.php delete mode 100644 lib/aws-sdk/Aws/S3/Model/MultipartUpload/UploadBuilder.php delete mode 100644 lib/aws-sdk/Aws/S3/Model/MultipartUpload/UploadId.php delete mode 100644 lib/aws-sdk/Aws/S3/Model/MultipartUpload/UploadPart.php delete mode 100644 lib/aws-sdk/Aws/S3/Model/PostObject.php create mode 100644 lib/aws-sdk/Aws/S3/MultipartUploader.php create mode 100644 lib/aws-sdk/Aws/S3/PermanentRedirectMiddleware.php create mode 100644 lib/aws-sdk/Aws/S3/PostObject.php create mode 100644 lib/aws-sdk/Aws/S3/PutObjectUrlMiddleware.php delete mode 100644 lib/aws-sdk/Aws/S3/Resources/s3-2006-03-01.php delete mode 100644 lib/aws-sdk/Aws/S3/ResumableDownload.php delete mode 100644 lib/aws-sdk/Aws/S3/S3Md5Listener.php delete mode 100644 lib/aws-sdk/Aws/S3/S3Signature.php delete mode 100644 lib/aws-sdk/Aws/S3/S3SignatureInterface.php delete mode 100644 lib/aws-sdk/Aws/S3/S3SignatureV4.php create mode 100644 lib/aws-sdk/Aws/S3/S3UriParser.php create mode 100644 lib/aws-sdk/Aws/S3/SSECMiddleware.php delete mode 100644 lib/aws-sdk/Aws/S3/SocketTimeoutChecker.php delete mode 100644 lib/aws-sdk/Aws/S3/SseCpkListener.php delete mode 100644 lib/aws-sdk/Aws/S3/Sync/AbstractSync.php delete mode 100644 lib/aws-sdk/Aws/S3/Sync/AbstractSyncBuilder.php delete mode 100644 lib/aws-sdk/Aws/S3/Sync/ChangedFilesIterator.php delete mode 100644 lib/aws-sdk/Aws/S3/Sync/DownloadSync.php delete mode 100644 lib/aws-sdk/Aws/S3/Sync/DownloadSyncBuilder.php delete mode 100644 lib/aws-sdk/Aws/S3/Sync/FilenameConverterInterface.php delete mode 100644 lib/aws-sdk/Aws/S3/Sync/KeyConverter.php delete mode 100644 lib/aws-sdk/Aws/S3/Sync/UploadSync.php delete mode 100644 lib/aws-sdk/Aws/S3/Sync/UploadSyncBuilder.php create mode 100644 lib/aws-sdk/Aws/S3/Transfer.php create mode 100644 lib/aws-sdk/Aws/Sdk.php delete mode 100644 lib/aws-sdk/Aws/Ses/Enum/IdentityType.php delete mode 100644 lib/aws-sdk/Aws/Ses/Enum/MailboxSimulator.php delete mode 100644 lib/aws-sdk/Aws/Ses/Enum/NotificationType.php delete mode 100644 lib/aws-sdk/Aws/Ses/Enum/VerificationStatus.php delete mode 100644 lib/aws-sdk/Aws/Ses/Exception/MessageRejectedException.php delete mode 100644 lib/aws-sdk/Aws/Ses/Resources/ses-2010-12-01.php create mode 100644 lib/aws-sdk/Aws/Signature/AnonymousSignature.php create mode 100644 lib/aws-sdk/Aws/Signature/S3SignatureV4.php create mode 100644 lib/aws-sdk/Aws/Signature/SignatureInterface.php create mode 100644 lib/aws-sdk/Aws/Signature/SignatureProvider.php create mode 100644 lib/aws-sdk/Aws/Signature/SignatureV4.php delete mode 100644 lib/aws-sdk/Aws/SimpleDb/Exception/AttributeDoesNotExistException.php delete mode 100644 lib/aws-sdk/Aws/SimpleDb/Exception/DuplicateItemNameException.php delete mode 100644 lib/aws-sdk/Aws/SimpleDb/Exception/InvalidNextTokenException.php delete mode 100644 lib/aws-sdk/Aws/SimpleDb/Exception/InvalidNumberPredicatesException.php delete mode 100644 lib/aws-sdk/Aws/SimpleDb/Exception/InvalidNumberValueTestsException.php delete mode 100644 lib/aws-sdk/Aws/SimpleDb/Exception/InvalidParameterValueException.php delete mode 100644 lib/aws-sdk/Aws/SimpleDb/Exception/InvalidQueryExpressionException.php delete mode 100644 lib/aws-sdk/Aws/SimpleDb/Exception/MissingParameterException.php delete mode 100644 lib/aws-sdk/Aws/SimpleDb/Exception/NoSuchDomainException.php delete mode 100644 lib/aws-sdk/Aws/SimpleDb/Exception/NumberDomainAttributesExceededException.php delete mode 100644 lib/aws-sdk/Aws/SimpleDb/Exception/NumberDomainBytesExceededException.php delete mode 100644 lib/aws-sdk/Aws/SimpleDb/Exception/NumberDomainsExceededException.php delete mode 100644 lib/aws-sdk/Aws/SimpleDb/Exception/NumberItemAttributesExceededException.php delete mode 100644 lib/aws-sdk/Aws/SimpleDb/Exception/NumberSubmittedAttributesExceededException.php delete mode 100644 lib/aws-sdk/Aws/SimpleDb/Exception/NumberSubmittedItemsExceededException.php delete mode 100644 lib/aws-sdk/Aws/SimpleDb/Exception/RequestTimeoutException.php delete mode 100644 lib/aws-sdk/Aws/SimpleDb/Exception/SimpleDbException.php delete mode 100644 lib/aws-sdk/Aws/SimpleDb/Exception/TooManyRequestedAttributesException.php delete mode 100644 lib/aws-sdk/Aws/SimpleDb/Resources/simpledb-2009-04-15.php delete mode 100644 lib/aws-sdk/Aws/SimpleDb/SimpleDbClient.php delete mode 100644 lib/aws-sdk/Aws/Sns/Exception/AuthorizationErrorException.php delete mode 100644 lib/aws-sdk/Aws/Sns/Exception/EndpointDisabledException.php delete mode 100644 lib/aws-sdk/Aws/Sns/Exception/InternalErrorException.php delete mode 100644 lib/aws-sdk/Aws/Sns/Exception/InvalidParameterException.php create mode 100644 lib/aws-sdk/Aws/Sns/Exception/MessageValidatorException.php delete mode 100644 lib/aws-sdk/Aws/Sns/Exception/NotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Sns/Exception/PlatformApplicationDisabledException.php delete mode 100644 lib/aws-sdk/Aws/Sns/Exception/SubscriptionLimitExceededException.php delete mode 100644 lib/aws-sdk/Aws/Sns/Exception/TopicLimitExceededException.php delete mode 100644 lib/aws-sdk/Aws/Sns/MessageValidator/Exception/CannotGetPublicKeyFromCertificateException.php delete mode 100644 lib/aws-sdk/Aws/Sns/MessageValidator/Exception/CertificateFromUnrecognizedSourceException.php delete mode 100644 lib/aws-sdk/Aws/Sns/MessageValidator/Exception/InvalidMessageSignatureException.php delete mode 100644 lib/aws-sdk/Aws/Sns/MessageValidator/Exception/SnsMessageValidatorException.php delete mode 100644 lib/aws-sdk/Aws/Sns/Resources/sns-2010-03-31.php delete mode 100644 lib/aws-sdk/Aws/Sqs/Enum/MessageAttribute.php delete mode 100644 lib/aws-sdk/Aws/Sqs/Enum/QueueAttribute.php delete mode 100644 lib/aws-sdk/Aws/Sqs/Md5ValidatorListener.php delete mode 100644 lib/aws-sdk/Aws/Sqs/QueueUrlListener.php delete mode 100644 lib/aws-sdk/Aws/Sqs/Resources/sqs-2012-11-05.php delete mode 100644 lib/aws-sdk/Aws/Ssm/Resources/ssm-2014-11-06.php delete mode 100644 lib/aws-sdk/Aws/StorageGateway/Enum/BandwidthType.php delete mode 100644 lib/aws-sdk/Aws/StorageGateway/Enum/DiskAllocationType.php delete mode 100644 lib/aws-sdk/Aws/StorageGateway/Enum/ErrorCode.php delete mode 100644 lib/aws-sdk/Aws/StorageGateway/Enum/GatewayState.php delete mode 100644 lib/aws-sdk/Aws/StorageGateway/Enum/GatewayTimezone.php delete mode 100644 lib/aws-sdk/Aws/StorageGateway/Enum/GatewayType.php delete mode 100644 lib/aws-sdk/Aws/StorageGateway/Enum/VolumeStatus.php delete mode 100644 lib/aws-sdk/Aws/StorageGateway/Enum/VolumeType.php delete mode 100644 lib/aws-sdk/Aws/StorageGateway/Exception/InternalServerErrorException.php delete mode 100644 lib/aws-sdk/Aws/StorageGateway/Exception/InvalidGatewayRequestException.php delete mode 100644 lib/aws-sdk/Aws/StorageGateway/Resources/storagegateway-2013-06-30.php delete mode 100644 lib/aws-sdk/Aws/Sts/Exception/ExpiredTokenException.php delete mode 100644 lib/aws-sdk/Aws/Sts/Exception/IDPCommunicationErrorException.php delete mode 100644 lib/aws-sdk/Aws/Sts/Exception/IDPRejectedClaimException.php delete mode 100644 lib/aws-sdk/Aws/Sts/Exception/IncompleteSignatureException.php delete mode 100644 lib/aws-sdk/Aws/Sts/Exception/InternalFailureException.php delete mode 100644 lib/aws-sdk/Aws/Sts/Exception/InvalidActionException.php delete mode 100644 lib/aws-sdk/Aws/Sts/Exception/InvalidAuthorizationMessageException.php delete mode 100644 lib/aws-sdk/Aws/Sts/Exception/InvalidClientTokenIdException.php delete mode 100644 lib/aws-sdk/Aws/Sts/Exception/InvalidIdentityTokenException.php delete mode 100644 lib/aws-sdk/Aws/Sts/Exception/InvalidParameterCombinationException.php delete mode 100644 lib/aws-sdk/Aws/Sts/Exception/InvalidParameterValueException.php delete mode 100644 lib/aws-sdk/Aws/Sts/Exception/InvalidQueryParameterException.php delete mode 100644 lib/aws-sdk/Aws/Sts/Exception/MalformedPolicyDocumentException.php delete mode 100644 lib/aws-sdk/Aws/Sts/Exception/MalformedQueryStringException.php delete mode 100644 lib/aws-sdk/Aws/Sts/Exception/MissingActionException.php delete mode 100644 lib/aws-sdk/Aws/Sts/Exception/MissingAuthenticationTokenException.php delete mode 100644 lib/aws-sdk/Aws/Sts/Exception/MissingParameterException.php delete mode 100644 lib/aws-sdk/Aws/Sts/Exception/OptInRequiredException.php delete mode 100644 lib/aws-sdk/Aws/Sts/Exception/PackedPolicyTooLargeException.php delete mode 100644 lib/aws-sdk/Aws/Sts/Exception/RequestExpiredException.php delete mode 100644 lib/aws-sdk/Aws/Sts/Exception/ServiceUnavailableException.php delete mode 100644 lib/aws-sdk/Aws/Sts/Exception/ThrottlingException.php delete mode 100644 lib/aws-sdk/Aws/Sts/Resources/sts-2011-06-15.php delete mode 100644 lib/aws-sdk/Aws/Support/Exception/CaseCreationLimitExceededException.php delete mode 100644 lib/aws-sdk/Aws/Support/Exception/CaseIdNotFoundException.php delete mode 100644 lib/aws-sdk/Aws/Support/Exception/InternalServerErrorException.php delete mode 100644 lib/aws-sdk/Aws/Support/Resources/support-2013-04-15.php delete mode 100644 lib/aws-sdk/Aws/Swf/Enum/ActivityTaskTimeoutType.php delete mode 100644 lib/aws-sdk/Aws/Swf/Enum/ChildPolicy.php delete mode 100644 lib/aws-sdk/Aws/Swf/Enum/CloseStatus.php delete mode 100644 lib/aws-sdk/Aws/Swf/Enum/DecisionTaskTimeoutType.php delete mode 100644 lib/aws-sdk/Aws/Swf/Enum/DecisionType.php delete mode 100644 lib/aws-sdk/Aws/Swf/Enum/EventType.php delete mode 100644 lib/aws-sdk/Aws/Swf/Enum/ExecutionStatus.php delete mode 100644 lib/aws-sdk/Aws/Swf/Enum/RegistrationStatus.php delete mode 100644 lib/aws-sdk/Aws/Swf/Enum/WorkflowExecutionTimeoutType.php delete mode 100644 lib/aws-sdk/Aws/Swf/Exception/DefaultUndefinedException.php delete mode 100644 lib/aws-sdk/Aws/Swf/Exception/DomainAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/Swf/Exception/DomainDeprecatedException.php delete mode 100644 lib/aws-sdk/Aws/Swf/Exception/LimitExceededException.php delete mode 100644 lib/aws-sdk/Aws/Swf/Exception/OperationNotPermittedException.php delete mode 100644 lib/aws-sdk/Aws/Swf/Exception/TypeAlreadyExistsException.php delete mode 100644 lib/aws-sdk/Aws/Swf/Exception/TypeDeprecatedException.php delete mode 100644 lib/aws-sdk/Aws/Swf/Exception/UnknownResourceException.php delete mode 100644 lib/aws-sdk/Aws/Swf/Exception/WorkflowExecutionAlreadyStartedException.php delete mode 100644 lib/aws-sdk/Aws/Swf/Resources/swf-2012-01-25.php create mode 100644 lib/aws-sdk/Aws/TraceMiddleware.php create mode 100644 lib/aws-sdk/Aws/Waiter.php delete mode 100644 lib/aws-sdk/Aws/WorkSpaces/Resources/workspaces-2015-04-08.php create mode 100644 lib/aws-sdk/Aws/WrappedHttpHandler.php create mode 100644 lib/aws-sdk/Aws/data/autoscaling/2011-01-01/api-2.json create mode 100644 lib/aws-sdk/Aws/data/autoscaling/2011-01-01/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/autoscaling/2011-01-01/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/cloudformation/2010-05-15/api-2.json create mode 100644 lib/aws-sdk/Aws/data/cloudformation/2010-05-15/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/cloudformation/2010-05-15/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/cloudformation/2010-05-15/waiters-1.json create mode 100644 lib/aws-sdk/Aws/data/cloudformation/2010-05-15/waiters-2.json create mode 100644 lib/aws-sdk/Aws/data/cloudfront/2014-11-06/api-2.json create mode 100644 lib/aws-sdk/Aws/data/cloudfront/2014-11-06/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/cloudfront/2014-11-06/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/cloudfront/2014-11-06/waiters-2.json create mode 100644 lib/aws-sdk/Aws/data/cloudhsm/2014-05-30/api-2.json create mode 100644 lib/aws-sdk/Aws/data/cloudhsm/2014-05-30/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/cloudsearch/2013-01-01/api-2.json create mode 100644 lib/aws-sdk/Aws/data/cloudsearch/2013-01-01/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/cloudsearch/2013-01-01/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/cloudsearchdomain/2013-01-01/api-2.json create mode 100644 lib/aws-sdk/Aws/data/cloudsearchdomain/2013-01-01/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/cloudtrail/2013-11-01/api-2.json create mode 100644 lib/aws-sdk/Aws/data/cloudtrail/2013-11-01/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/cloudtrail/2013-11-01/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/codedeploy/2014-10-06/api-2.json create mode 100644 lib/aws-sdk/Aws/data/codedeploy/2014-10-06/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/codedeploy/2014-10-06/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/cognito-identity/2014-06-30/api-2.json create mode 100644 lib/aws-sdk/Aws/data/cognito-identity/2014-06-30/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/cognito-sync/2014-06-30/api-2.json create mode 100644 lib/aws-sdk/Aws/data/cognito-sync/2014-06-30/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/config/2014-10-17/api-2.json create mode 100644 lib/aws-sdk/Aws/data/config/2014-10-17/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/config/2014-10-17/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/config/2014-11-12/api-2.json create mode 100644 lib/aws-sdk/Aws/data/config/2014-11-12/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/config/2014-11-12/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/datapipeline/2012-10-29/api-2.json create mode 100644 lib/aws-sdk/Aws/data/datapipeline/2012-10-29/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/datapipeline/2012-10-29/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/directconnect/2012-10-25/api-2.json create mode 100644 lib/aws-sdk/Aws/data/directconnect/2012-10-25/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/directconnect/2012-10-25/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/ds/2015-04-16/api-2.json create mode 100644 lib/aws-sdk/Aws/data/ds/2015-04-16/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/dynamodb/2012-08-10/api-2.json create mode 100644 lib/aws-sdk/Aws/data/dynamodb/2012-08-10/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/dynamodb/2012-08-10/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/dynamodb/2012-08-10/waiters-2.json create mode 100644 lib/aws-sdk/Aws/data/ec2/2015-03-01/api-2.json create mode 100644 lib/aws-sdk/Aws/data/ec2/2015-03-01/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/ec2/2015-03-01/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/ec2/2015-03-01/waiters-2.json create mode 100644 lib/aws-sdk/Aws/data/ec2/2015-04-15/api-2.json create mode 100644 lib/aws-sdk/Aws/data/ec2/2015-04-15/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/ec2/2015-04-15/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/ec2/2015-04-15/waiters-2.json create mode 100644 lib/aws-sdk/Aws/data/ecs/2014-11-13/api-2.json create mode 100644 lib/aws-sdk/Aws/data/ecs/2014-11-13/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/ecs/2014-11-13/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/ecs/2014-11-13/waiters-2.json create mode 100644 lib/aws-sdk/Aws/data/elasticache/2015-02-02/api-2.json create mode 100644 lib/aws-sdk/Aws/data/elasticache/2015-02-02/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/elasticache/2015-02-02/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/elasticache/2015-02-02/waiters-2.json create mode 100644 lib/aws-sdk/Aws/data/elasticbeanstalk/2010-12-01/api-2.json create mode 100644 lib/aws-sdk/Aws/data/elasticbeanstalk/2010-12-01/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/elasticbeanstalk/2010-12-01/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/elasticfilesystem/2015-02-01/api-2.json create mode 100644 lib/aws-sdk/Aws/data/elasticfilesystem/2015-02-01/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/elasticloadbalancing/2012-06-01/api-2.json create mode 100644 lib/aws-sdk/Aws/data/elasticloadbalancing/2012-06-01/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/elasticloadbalancing/2012-06-01/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/elasticloadbalancing/2012-06-01/waiters-2.json create mode 100644 lib/aws-sdk/Aws/data/elasticmapreduce/2009-03-31/api-2.json create mode 100644 lib/aws-sdk/Aws/data/elasticmapreduce/2009-03-31/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/elasticmapreduce/2009-03-31/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/elasticmapreduce/2009-03-31/waiters-2.json create mode 100644 lib/aws-sdk/Aws/data/elastictranscoder/2012-09-25/api-2.json create mode 100644 lib/aws-sdk/Aws/data/elastictranscoder/2012-09-25/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/elastictranscoder/2012-09-25/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/elastictranscoder/2012-09-25/waiters-2.json create mode 100644 lib/aws-sdk/Aws/data/email/2010-12-01/api-2.json create mode 100644 lib/aws-sdk/Aws/data/email/2010-12-01/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/email/2010-12-01/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/email/2010-12-01/waiters-2.json create mode 100644 lib/aws-sdk/Aws/data/endpoints.json create mode 100644 lib/aws-sdk/Aws/data/glacier/2012-06-01/api-2.json create mode 100644 lib/aws-sdk/Aws/data/glacier/2012-06-01/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/glacier/2012-06-01/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/glacier/2012-06-01/waiters-2.json create mode 100644 lib/aws-sdk/Aws/data/iam/2010-05-08/api-2.json create mode 100644 lib/aws-sdk/Aws/data/iam/2010-05-08/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/iam/2010-05-08/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/kinesis/2013-12-02/api-2.json create mode 100644 lib/aws-sdk/Aws/data/kinesis/2013-12-02/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/kinesis/2013-12-02/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/kinesis/2013-12-02/waiters-2.json create mode 100644 lib/aws-sdk/Aws/data/kms/2014-11-01/api-2.json create mode 100644 lib/aws-sdk/Aws/data/kms/2014-11-01/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/kms/2014-11-01/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/lambda/2015-03-31/api-2.json create mode 100644 lib/aws-sdk/Aws/data/lambda/2015-03-31/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/lambda/2015-03-31/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/logs/2014-03-28/api-2.json create mode 100644 lib/aws-sdk/Aws/data/logs/2014-03-28/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/logs/2014-03-28/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/machinelearning/2014-12-12/api-2.json create mode 100644 lib/aws-sdk/Aws/data/machinelearning/2014-12-12/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/machinelearning/2014-12-12/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/manifest.json create mode 100644 lib/aws-sdk/Aws/data/monitoring/2010-08-01/api-2.json create mode 100644 lib/aws-sdk/Aws/data/monitoring/2010-08-01/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/monitoring/2010-08-01/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/opsworks/2013-02-18/api-2.json create mode 100644 lib/aws-sdk/Aws/data/opsworks/2013-02-18/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/opsworks/2013-02-18/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/opsworks/2013-02-18/waiters-2.json create mode 100644 lib/aws-sdk/Aws/data/rds/2014-10-31/api-2.json create mode 100644 lib/aws-sdk/Aws/data/rds/2014-10-31/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/rds/2014-10-31/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/rds/2014-10-31/waiters-2.json create mode 100644 lib/aws-sdk/Aws/data/redshift/2012-12-01/api-2.json create mode 100644 lib/aws-sdk/Aws/data/redshift/2012-12-01/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/redshift/2012-12-01/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/redshift/2012-12-01/waiters-2.json create mode 100644 lib/aws-sdk/Aws/data/route53/2013-04-01/api-2.json create mode 100644 lib/aws-sdk/Aws/data/route53/2013-04-01/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/route53/2013-04-01/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/route53domains/2014-05-15/api-2.json create mode 100644 lib/aws-sdk/Aws/data/route53domains/2014-05-15/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/route53domains/2014-05-15/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/s3/2006-03-01/api-2.json create mode 100644 lib/aws-sdk/Aws/data/s3/2006-03-01/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/s3/2006-03-01/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/s3/2006-03-01/waiters-2.json create mode 100644 lib/aws-sdk/Aws/data/sns/2010-03-31/api-2.json create mode 100644 lib/aws-sdk/Aws/data/sns/2010-03-31/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/sns/2010-03-31/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/sqs/2012-11-05/api-2.json create mode 100644 lib/aws-sdk/Aws/data/sqs/2012-11-05/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/sqs/2012-11-05/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/ssm/2014-11-06/api-2.json create mode 100644 lib/aws-sdk/Aws/data/ssm/2014-11-06/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/storagegateway/2013-06-30/api-2.json create mode 100644 lib/aws-sdk/Aws/data/storagegateway/2013-06-30/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/storagegateway/2013-06-30/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/sts/2011-06-15/api-2.json create mode 100644 lib/aws-sdk/Aws/data/sts/2011-06-15/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/support/2013-04-15/api-2.json create mode 100644 lib/aws-sdk/Aws/data/support/2013-04-15/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/support/2013-04-15/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/swf/2012-01-25/api-2.json create mode 100644 lib/aws-sdk/Aws/data/swf/2012-01-25/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/swf/2012-01-25/paginators-1.json create mode 100644 lib/aws-sdk/Aws/data/workspaces/2015-04-08/api-2.json create mode 100644 lib/aws-sdk/Aws/data/workspaces/2015-04-08/docs-2.json create mode 100644 lib/aws-sdk/Aws/data/workspaces/2015-04-08/paginators-1.json create mode 100644 lib/aws-sdk/Aws/functions.php delete mode 100644 lib/aws-sdk/Doctrine/Common/Cache/ApcCache.php delete mode 100644 lib/aws-sdk/Doctrine/Common/Cache/ArrayCache.php delete mode 100644 lib/aws-sdk/Doctrine/Common/Cache/Cache.php delete mode 100644 lib/aws-sdk/Doctrine/Common/Cache/CacheProvider.php delete mode 100644 lib/aws-sdk/Doctrine/Common/Cache/ChainCache.php delete mode 100644 lib/aws-sdk/Doctrine/Common/Cache/ClearableCache.php delete mode 100644 lib/aws-sdk/Doctrine/Common/Cache/CouchbaseCache.php delete mode 100644 lib/aws-sdk/Doctrine/Common/Cache/FileCache.php delete mode 100644 lib/aws-sdk/Doctrine/Common/Cache/FilesystemCache.php delete mode 100644 lib/aws-sdk/Doctrine/Common/Cache/FlushableCache.php delete mode 100644 lib/aws-sdk/Doctrine/Common/Cache/MemcacheCache.php delete mode 100644 lib/aws-sdk/Doctrine/Common/Cache/MemcachedCache.php delete mode 100644 lib/aws-sdk/Doctrine/Common/Cache/MongoDBCache.php delete mode 100644 lib/aws-sdk/Doctrine/Common/Cache/MultiGetCache.php delete mode 100644 lib/aws-sdk/Doctrine/Common/Cache/PhpFileCache.php delete mode 100644 lib/aws-sdk/Doctrine/Common/Cache/PredisCache.php delete mode 100644 lib/aws-sdk/Doctrine/Common/Cache/RedisCache.php delete mode 100644 lib/aws-sdk/Doctrine/Common/Cache/RiakCache.php delete mode 100644 lib/aws-sdk/Doctrine/Common/Cache/SQLite3Cache.php delete mode 100644 lib/aws-sdk/Doctrine/Common/Cache/Version.php delete mode 100644 lib/aws-sdk/Doctrine/Common/Cache/VoidCache.php delete mode 100644 lib/aws-sdk/Doctrine/Common/Cache/WinCacheCache.php delete mode 100644 lib/aws-sdk/Doctrine/Common/Cache/XcacheCache.php delete mode 100644 lib/aws-sdk/Doctrine/Common/Cache/ZendDataCache.php delete mode 100644 lib/aws-sdk/Guzzle/Batch/AbstractBatchDecorator.php delete mode 100644 lib/aws-sdk/Guzzle/Batch/Batch.php delete mode 100644 lib/aws-sdk/Guzzle/Batch/BatchBuilder.php delete mode 100644 lib/aws-sdk/Guzzle/Batch/BatchClosureDivisor.php delete mode 100644 lib/aws-sdk/Guzzle/Batch/BatchClosureTransfer.php delete mode 100644 lib/aws-sdk/Guzzle/Batch/BatchCommandTransfer.php delete mode 100644 lib/aws-sdk/Guzzle/Batch/BatchDivisorInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Batch/BatchInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Batch/BatchRequestTransfer.php delete mode 100644 lib/aws-sdk/Guzzle/Batch/BatchSizeDivisor.php delete mode 100644 lib/aws-sdk/Guzzle/Batch/BatchTransferInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Batch/Exception/BatchTransferException.php delete mode 100644 lib/aws-sdk/Guzzle/Batch/ExceptionBufferingBatch.php delete mode 100644 lib/aws-sdk/Guzzle/Batch/FlushingBatch.php delete mode 100644 lib/aws-sdk/Guzzle/Batch/HistoryBatch.php delete mode 100644 lib/aws-sdk/Guzzle/Batch/NotifyingBatch.php delete mode 100644 lib/aws-sdk/Guzzle/Cache/AbstractCacheAdapter.php delete mode 100644 lib/aws-sdk/Guzzle/Cache/CacheAdapterFactory.php delete mode 100644 lib/aws-sdk/Guzzle/Cache/CacheAdapterInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Cache/ClosureCacheAdapter.php delete mode 100644 lib/aws-sdk/Guzzle/Cache/DoctrineCacheAdapter.php delete mode 100644 lib/aws-sdk/Guzzle/Cache/NullCacheAdapter.php delete mode 100644 lib/aws-sdk/Guzzle/Cache/Zf1CacheAdapter.php delete mode 100644 lib/aws-sdk/Guzzle/Cache/Zf2CacheAdapter.php delete mode 100644 lib/aws-sdk/Guzzle/Common/AbstractHasDispatcher.php delete mode 100644 lib/aws-sdk/Guzzle/Common/Collection.php delete mode 100644 lib/aws-sdk/Guzzle/Common/Event.php delete mode 100644 lib/aws-sdk/Guzzle/Common/Exception/BadMethodCallException.php delete mode 100644 lib/aws-sdk/Guzzle/Common/Exception/ExceptionCollection.php delete mode 100644 lib/aws-sdk/Guzzle/Common/Exception/GuzzleException.php delete mode 100644 lib/aws-sdk/Guzzle/Common/Exception/InvalidArgumentException.php delete mode 100644 lib/aws-sdk/Guzzle/Common/Exception/RuntimeException.php delete mode 100644 lib/aws-sdk/Guzzle/Common/Exception/UnexpectedValueException.php delete mode 100644 lib/aws-sdk/Guzzle/Common/FromConfigInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Common/HasDispatcherInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Common/ToArrayInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Common/Version.php delete mode 100644 lib/aws-sdk/Guzzle/Http/AbstractEntityBodyDecorator.php delete mode 100644 lib/aws-sdk/Guzzle/Http/CachingEntityBody.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Client.php delete mode 100644 lib/aws-sdk/Guzzle/Http/ClientInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Curl/CurlHandle.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Curl/CurlMulti.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Curl/CurlMultiInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Curl/CurlMultiProxy.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Curl/CurlVersion.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Curl/RequestMediator.php delete mode 100644 lib/aws-sdk/Guzzle/Http/EntityBody.php delete mode 100644 lib/aws-sdk/Guzzle/Http/EntityBodyInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Exception/BadResponseException.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Exception/ClientErrorResponseException.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Exception/CouldNotRewindStreamException.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Exception/CurlException.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Exception/HttpException.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Exception/MultiTransferException.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Exception/RequestException.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Exception/ServerErrorResponseException.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Exception/TooManyRedirectsException.php delete mode 100644 lib/aws-sdk/Guzzle/Http/IoEmittingEntityBody.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Message/AbstractMessage.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Message/EntityEnclosingRequest.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Message/EntityEnclosingRequestInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Message/Header.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Message/Header/CacheControl.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Message/Header/HeaderCollection.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Message/Header/HeaderFactory.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Message/Header/HeaderFactoryInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Message/Header/HeaderInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Message/Header/Link.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Message/MessageInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Message/PostFile.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Message/PostFileInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Message/Request.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Message/RequestFactory.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Message/RequestFactoryInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Message/RequestInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Message/Response.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Mimetypes.php delete mode 100644 lib/aws-sdk/Guzzle/Http/QueryAggregator/CommaAggregator.php delete mode 100644 lib/aws-sdk/Guzzle/Http/QueryAggregator/DuplicateAggregator.php delete mode 100644 lib/aws-sdk/Guzzle/Http/QueryAggregator/PhpAggregator.php delete mode 100644 lib/aws-sdk/Guzzle/Http/QueryAggregator/QueryAggregatorInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Http/QueryString.php delete mode 100644 lib/aws-sdk/Guzzle/Http/ReadLimitEntityBody.php delete mode 100644 lib/aws-sdk/Guzzle/Http/RedirectPlugin.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Resources/cacert.pem delete mode 100644 lib/aws-sdk/Guzzle/Http/StaticClient.php delete mode 100644 lib/aws-sdk/Guzzle/Http/Url.php delete mode 100644 lib/aws-sdk/Guzzle/Inflection/Inflector.php delete mode 100644 lib/aws-sdk/Guzzle/Inflection/InflectorInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Inflection/MemoizingInflector.php delete mode 100644 lib/aws-sdk/Guzzle/Inflection/PreComputedInflector.php delete mode 100644 lib/aws-sdk/Guzzle/Iterator/AppendIterator.php delete mode 100644 lib/aws-sdk/Guzzle/Iterator/ChunkedIterator.php delete mode 100644 lib/aws-sdk/Guzzle/Iterator/FilterIterator.php delete mode 100644 lib/aws-sdk/Guzzle/Iterator/MapIterator.php delete mode 100644 lib/aws-sdk/Guzzle/Iterator/MethodProxyIterator.php delete mode 100644 lib/aws-sdk/Guzzle/Log/AbstractLogAdapter.php delete mode 100644 lib/aws-sdk/Guzzle/Log/ArrayLogAdapter.php delete mode 100644 lib/aws-sdk/Guzzle/Log/ClosureLogAdapter.php delete mode 100644 lib/aws-sdk/Guzzle/Log/LogAdapterInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Log/MessageFormatter.php delete mode 100644 lib/aws-sdk/Guzzle/Log/MonologLogAdapter.php delete mode 100644 lib/aws-sdk/Guzzle/Log/PsrLogAdapter.php delete mode 100644 lib/aws-sdk/Guzzle/Log/Zf1LogAdapter.php delete mode 100644 lib/aws-sdk/Guzzle/Log/Zf2LogAdapter.php delete mode 100644 lib/aws-sdk/Guzzle/Parser/Cookie/CookieParser.php delete mode 100644 lib/aws-sdk/Guzzle/Parser/Cookie/CookieParserInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Parser/Message/AbstractMessageParser.php delete mode 100644 lib/aws-sdk/Guzzle/Parser/Message/MessageParser.php delete mode 100644 lib/aws-sdk/Guzzle/Parser/Message/MessageParserInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Parser/Message/PeclHttpMessageParser.php delete mode 100644 lib/aws-sdk/Guzzle/Parser/ParserRegistry.php delete mode 100644 lib/aws-sdk/Guzzle/Parser/UriTemplate/PeclUriTemplate.php delete mode 100644 lib/aws-sdk/Guzzle/Parser/UriTemplate/UriTemplateInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Parser/Url/UrlParser.php delete mode 100644 lib/aws-sdk/Guzzle/Parser/Url/UrlParserInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Async/AsyncPlugin.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Backoff/AbstractBackoffStrategy.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Backoff/AbstractErrorCodeBackoffStrategy.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Backoff/BackoffLogger.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Backoff/BackoffPlugin.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Backoff/BackoffStrategyInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Backoff/CallbackBackoffStrategy.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Backoff/ConstantBackoffStrategy.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Backoff/CurlBackoffStrategy.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Backoff/ExponentialBackoffStrategy.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Backoff/HttpBackoffStrategy.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Backoff/LinearBackoffStrategy.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Backoff/ReasonPhraseBackoffStrategy.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Backoff/TruncatedBackoffStrategy.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Cache/CacheKeyProviderInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Cache/CachePlugin.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Cache/CacheStorageInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Cache/CallbackCanCacheStrategy.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Cache/CanCacheStrategyInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Cache/DefaultCacheKeyProvider.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Cache/DefaultCacheStorage.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Cache/DefaultCanCacheStrategy.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Cache/DefaultRevalidation.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Cache/DenyRevalidation.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Cache/RevalidationInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Cache/SkipRevalidation.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Cookie/Cookie.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Cookie/CookieJar/ArrayCookieJar.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Cookie/CookieJar/CookieJarInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Cookie/CookieJar/FileCookieJar.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Cookie/CookiePlugin.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Cookie/Exception/InvalidCookieException.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/CurlAuth/CurlAuthPlugin.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/ErrorResponse/ErrorResponseExceptionInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/ErrorResponse/ErrorResponsePlugin.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/ErrorResponse/Exception/ErrorResponseException.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/History/HistoryPlugin.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Log/LogPlugin.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Md5/CommandContentMd5Plugin.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Md5/Md5ValidatorPlugin.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Mock/MockPlugin.php delete mode 100644 lib/aws-sdk/Guzzle/Plugin/Oauth/OauthPlugin.php delete mode 100644 lib/aws-sdk/Guzzle/Service/AbstractConfigLoader.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Builder/ServiceBuilder.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Builder/ServiceBuilderInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Builder/ServiceBuilderLoader.php delete mode 100644 lib/aws-sdk/Guzzle/Service/CachingConfigLoader.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Client.php delete mode 100644 lib/aws-sdk/Guzzle/Service/ClientInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/AbstractCommand.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/ClosureCommand.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/CommandInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/CreateResponseClassEvent.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/DefaultRequestSerializer.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/DefaultResponseParser.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/Factory/AliasFactory.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/Factory/CompositeFactory.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/Factory/ConcreteClassFactory.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/Factory/FactoryInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/Factory/MapFactory.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/Factory/ServiceDescriptionFactory.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/AbstractRequestVisitor.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/BodyVisitor.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/HeaderVisitor.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/JsonVisitor.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/PostFieldVisitor.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/PostFileVisitor.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/QueryVisitor.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/RequestVisitorInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/ResponseBodyVisitor.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/XmlVisitor.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/AbstractResponseVisitor.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/BodyVisitor.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/HeaderVisitor.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/JsonVisitor.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/ReasonPhraseVisitor.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/ResponseVisitorInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/StatusCodeVisitor.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/XmlVisitor.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/VisitorFlyweight.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/OperationCommand.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/OperationResponseParser.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/RequestSerializerInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/ResponseClassInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Command/ResponseParserInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Service/ConfigLoaderInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Description/Operation.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Description/OperationInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Description/Parameter.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Description/SchemaFormatter.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Description/SchemaValidator.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Description/ServiceDescription.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Description/ServiceDescriptionInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Description/ServiceDescriptionLoader.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Description/ValidatorInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Exception/CommandException.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Exception/CommandTransferException.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Exception/DescriptionBuilderException.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Exception/InconsistentClientTransferException.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Exception/ResponseClassException.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Exception/ServiceBuilderException.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Exception/ServiceNotFoundException.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Exception/ValidationException.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Resource/AbstractResourceIteratorFactory.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Resource/CompositeResourceIteratorFactory.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Resource/MapResourceIteratorFactory.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Resource/Model.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Resource/ResourceIterator.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Resource/ResourceIteratorApplyBatched.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Resource/ResourceIteratorClassFactory.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Resource/ResourceIteratorFactoryInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Service/Resource/ResourceIteratorInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Stream/PhpStreamRequestFactory.php delete mode 100644 lib/aws-sdk/Guzzle/Stream/Stream.php delete mode 100644 lib/aws-sdk/Guzzle/Stream/StreamInterface.php delete mode 100644 lib/aws-sdk/Guzzle/Stream/StreamRequestFactoryInterface.php create mode 100644 lib/aws-sdk/GuzzleHttp/Client.php create mode 100644 lib/aws-sdk/GuzzleHttp/ClientInterface.php create mode 100644 lib/aws-sdk/GuzzleHttp/Cookie/CookieJar.php create mode 100644 lib/aws-sdk/GuzzleHttp/Cookie/CookieJarInterface.php create mode 100644 lib/aws-sdk/GuzzleHttp/Cookie/FileCookieJar.php create mode 100644 lib/aws-sdk/GuzzleHttp/Cookie/SessionCookieJar.php create mode 100644 lib/aws-sdk/GuzzleHttp/Cookie/SetCookie.php create mode 100644 lib/aws-sdk/GuzzleHttp/Exception/BadResponseException.php create mode 100644 lib/aws-sdk/GuzzleHttp/Exception/ClientException.php create mode 100644 lib/aws-sdk/GuzzleHttp/Exception/ConnectException.php create mode 100644 lib/aws-sdk/GuzzleHttp/Exception/GuzzleException.php create mode 100644 lib/aws-sdk/GuzzleHttp/Exception/RequestException.php create mode 100644 lib/aws-sdk/GuzzleHttp/Exception/SeekException.php create mode 100644 lib/aws-sdk/GuzzleHttp/Exception/ServerException.php create mode 100644 lib/aws-sdk/GuzzleHttp/Exception/TooManyRedirectsException.php create mode 100644 lib/aws-sdk/GuzzleHttp/Exception/TransferException.php create mode 100644 lib/aws-sdk/GuzzleHttp/Handler/CurlFactory.php create mode 100644 lib/aws-sdk/GuzzleHttp/Handler/CurlFactoryInterface.php create mode 100644 lib/aws-sdk/GuzzleHttp/Handler/CurlHandler.php create mode 100644 lib/aws-sdk/GuzzleHttp/Handler/CurlMultiHandler.php create mode 100644 lib/aws-sdk/GuzzleHttp/Handler/EasyHandle.php create mode 100644 lib/aws-sdk/GuzzleHttp/Handler/MockHandler.php create mode 100644 lib/aws-sdk/GuzzleHttp/Handler/Proxy.php create mode 100644 lib/aws-sdk/GuzzleHttp/Handler/StreamHandler.php create mode 100644 lib/aws-sdk/GuzzleHttp/HandlerStack.php create mode 100644 lib/aws-sdk/GuzzleHttp/MessageFormatter.php create mode 100644 lib/aws-sdk/GuzzleHttp/Middleware.php create mode 100644 lib/aws-sdk/GuzzleHttp/Pool.php create mode 100644 lib/aws-sdk/GuzzleHttp/PrepareBodyMiddleware.php create mode 100644 lib/aws-sdk/GuzzleHttp/Promise/AggregateException.php create mode 100644 lib/aws-sdk/GuzzleHttp/Promise/CancellationException.php create mode 100644 lib/aws-sdk/GuzzleHttp/Promise/EachPromise.php create mode 100644 lib/aws-sdk/GuzzleHttp/Promise/FulfilledPromise.php create mode 100644 lib/aws-sdk/GuzzleHttp/Promise/Promise.php create mode 100644 lib/aws-sdk/GuzzleHttp/Promise/PromiseInterface.php create mode 100644 lib/aws-sdk/GuzzleHttp/Promise/PromisorInterface.php create mode 100644 lib/aws-sdk/GuzzleHttp/Promise/RejectedPromise.php create mode 100644 lib/aws-sdk/GuzzleHttp/Promise/RejectionException.php create mode 100644 lib/aws-sdk/GuzzleHttp/Promise/TaskQueue.php create mode 100644 lib/aws-sdk/GuzzleHttp/Promise/functions.php create mode 100644 lib/aws-sdk/GuzzleHttp/Psr7/AppendStream.php create mode 100644 lib/aws-sdk/GuzzleHttp/Psr7/BufferStream.php create mode 100644 lib/aws-sdk/GuzzleHttp/Psr7/CachingStream.php create mode 100644 lib/aws-sdk/GuzzleHttp/Psr7/DroppingStream.php create mode 100644 lib/aws-sdk/GuzzleHttp/Psr7/FnStream.php create mode 100644 lib/aws-sdk/GuzzleHttp/Psr7/InflateStream.php create mode 100644 lib/aws-sdk/GuzzleHttp/Psr7/LazyOpenStream.php create mode 100644 lib/aws-sdk/GuzzleHttp/Psr7/LimitStream.php create mode 100644 lib/aws-sdk/GuzzleHttp/Psr7/MessageTrait.php create mode 100644 lib/aws-sdk/GuzzleHttp/Psr7/MultipartStream.php create mode 100644 lib/aws-sdk/GuzzleHttp/Psr7/NoSeekStream.php create mode 100644 lib/aws-sdk/GuzzleHttp/Psr7/PumpStream.php create mode 100644 lib/aws-sdk/GuzzleHttp/Psr7/Request.php create mode 100644 lib/aws-sdk/GuzzleHttp/Psr7/Response.php create mode 100644 lib/aws-sdk/GuzzleHttp/Psr7/Stream.php create mode 100644 lib/aws-sdk/GuzzleHttp/Psr7/StreamDecoratorTrait.php create mode 100644 lib/aws-sdk/GuzzleHttp/Psr7/StreamWrapper.php create mode 100644 lib/aws-sdk/GuzzleHttp/Psr7/Uri.php create mode 100644 lib/aws-sdk/GuzzleHttp/Psr7/functions.php create mode 100644 lib/aws-sdk/GuzzleHttp/RedirectMiddleware.php create mode 100644 lib/aws-sdk/GuzzleHttp/RequestOptions.php create mode 100644 lib/aws-sdk/GuzzleHttp/RetryMiddleware.php rename lib/aws-sdk/{Guzzle/Parser/UriTemplate => GuzzleHttp}/UriTemplate.php (59%) create mode 100644 lib/aws-sdk/GuzzleHttp/functions.php create mode 100644 lib/aws-sdk/JmesPath/AstRuntime.php create mode 100644 lib/aws-sdk/JmesPath/CompilerRuntime.php create mode 100644 lib/aws-sdk/JmesPath/DebugRuntime.php create mode 100644 lib/aws-sdk/JmesPath/Env.php create mode 100644 lib/aws-sdk/JmesPath/FnDispatcher.php create mode 100644 lib/aws-sdk/JmesPath/JmesPath.php create mode 100644 lib/aws-sdk/JmesPath/Lexer.php create mode 100644 lib/aws-sdk/JmesPath/Parser.php create mode 100644 lib/aws-sdk/JmesPath/SyntaxErrorException.php create mode 100644 lib/aws-sdk/JmesPath/TreeCompiler.php create mode 100644 lib/aws-sdk/JmesPath/TreeInterpreter.php create mode 100644 lib/aws-sdk/JmesPath/Utils.php delete mode 100644 lib/aws-sdk/Monolog/ErrorHandler.php delete mode 100644 lib/aws-sdk/Monolog/Formatter/ChromePHPFormatter.php delete mode 100644 lib/aws-sdk/Monolog/Formatter/ElasticaFormatter.php delete mode 100644 lib/aws-sdk/Monolog/Formatter/FlowdockFormatter.php delete mode 100644 lib/aws-sdk/Monolog/Formatter/FormatterInterface.php delete mode 100644 lib/aws-sdk/Monolog/Formatter/GelfMessageFormatter.php delete mode 100644 lib/aws-sdk/Monolog/Formatter/HtmlFormatter.php delete mode 100644 lib/aws-sdk/Monolog/Formatter/JsonFormatter.php delete mode 100644 lib/aws-sdk/Monolog/Formatter/LineFormatter.php delete mode 100644 lib/aws-sdk/Monolog/Formatter/LogglyFormatter.php delete mode 100644 lib/aws-sdk/Monolog/Formatter/LogstashFormatter.php delete mode 100644 lib/aws-sdk/Monolog/Formatter/MongoDBFormatter.php delete mode 100644 lib/aws-sdk/Monolog/Formatter/NormalizerFormatter.php delete mode 100644 lib/aws-sdk/Monolog/Formatter/ScalarFormatter.php delete mode 100644 lib/aws-sdk/Monolog/Formatter/WildfireFormatter.php delete mode 100644 lib/aws-sdk/Monolog/Handler/AbstractHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/AbstractProcessingHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/AbstractSyslogHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/AmqpHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/BrowserConsoleHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/BufferHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/ChromePHPHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/CouchDBHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/CubeHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/DoctrineCouchDBHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/DynamoDbHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/ElasticSearchHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/ErrorLogHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/FilterHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php delete mode 100644 lib/aws-sdk/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php delete mode 100644 lib/aws-sdk/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php delete mode 100644 lib/aws-sdk/Monolog/Handler/FingersCrossedHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/FirePHPHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/FleepHookHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/FlowdockHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/GelfHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/GroupHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/HandlerInterface.php delete mode 100644 lib/aws-sdk/Monolog/Handler/HipChatHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/LogEntriesHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/LogglyHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/MailHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/MandrillHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/MissingExtensionException.php delete mode 100644 lib/aws-sdk/Monolog/Handler/MongoDBHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/NativeMailerHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/NewRelicHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/NullHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/PsrHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/PushoverHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/RavenHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/RedisHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/RollbarHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/RotatingFileHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/SamplingHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/SlackHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/SocketHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/StreamHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/SwiftMailerHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/SyslogHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/SyslogUdp/UdpSocket.php delete mode 100644 lib/aws-sdk/Monolog/Handler/SyslogUdpHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/TestHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/WhatFailureGroupHandler.php delete mode 100644 lib/aws-sdk/Monolog/Handler/ZendMonitorHandler.php delete mode 100644 lib/aws-sdk/Monolog/Logger.php delete mode 100644 lib/aws-sdk/Monolog/Processor/GitProcessor.php delete mode 100644 lib/aws-sdk/Monolog/Processor/IntrospectionProcessor.php delete mode 100644 lib/aws-sdk/Monolog/Processor/MemoryPeakUsageProcessor.php delete mode 100644 lib/aws-sdk/Monolog/Processor/MemoryProcessor.php delete mode 100644 lib/aws-sdk/Monolog/Processor/MemoryUsageProcessor.php delete mode 100644 lib/aws-sdk/Monolog/Processor/ProcessIdProcessor.php delete mode 100644 lib/aws-sdk/Monolog/Processor/PsrLogMessageProcessor.php delete mode 100644 lib/aws-sdk/Monolog/Processor/TagProcessor.php delete mode 100644 lib/aws-sdk/Monolog/Processor/UidProcessor.php delete mode 100644 lib/aws-sdk/Monolog/Processor/WebProcessor.php delete mode 100644 lib/aws-sdk/Monolog/Registry.php create mode 100644 lib/aws-sdk/Psr/Http/Message/MessageInterface.php create mode 100644 lib/aws-sdk/Psr/Http/Message/RequestInterface.php create mode 100644 lib/aws-sdk/Psr/Http/Message/ResponseInterface.php create mode 100644 lib/aws-sdk/Psr/Http/Message/ServerRequestInterface.php create mode 100644 lib/aws-sdk/Psr/Http/Message/StreamInterface.php create mode 100644 lib/aws-sdk/Psr/Http/Message/UploadedFileInterface.php create mode 100644 lib/aws-sdk/Psr/Http/Message/UriInterface.php delete mode 100644 lib/aws-sdk/Psr/Log/AbstractLogger.php delete mode 100644 lib/aws-sdk/Psr/Log/InvalidArgumentException.php delete mode 100644 lib/aws-sdk/Psr/Log/LogLevel.php delete mode 100644 lib/aws-sdk/Psr/Log/LoggerAwareInterface.php delete mode 100644 lib/aws-sdk/Psr/Log/LoggerAwareTrait.php delete mode 100644 lib/aws-sdk/Psr/Log/LoggerInterface.php delete mode 100644 lib/aws-sdk/Psr/Log/LoggerTrait.php delete mode 100644 lib/aws-sdk/Psr/Log/NullLogger.php delete mode 100644 lib/aws-sdk/Psr/Log/Test/LoggerInterfaceTest.php delete mode 100644 lib/aws-sdk/Symfony/Component/EventDispatcher/ContainerAwareEventDispatcher.php delete mode 100644 lib/aws-sdk/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php delete mode 100644 lib/aws-sdk/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcherInterface.php delete mode 100644 lib/aws-sdk/Symfony/Component/EventDispatcher/Debug/WrappedListener.php delete mode 100644 lib/aws-sdk/Symfony/Component/EventDispatcher/DependencyInjection/RegisterListenersPass.php delete mode 100644 lib/aws-sdk/Symfony/Component/EventDispatcher/Event.php delete mode 100644 lib/aws-sdk/Symfony/Component/EventDispatcher/EventDispatcher.php delete mode 100644 lib/aws-sdk/Symfony/Component/EventDispatcher/EventDispatcherInterface.php delete mode 100644 lib/aws-sdk/Symfony/Component/EventDispatcher/EventSubscriberInterface.php delete mode 100644 lib/aws-sdk/Symfony/Component/EventDispatcher/GenericEvent.php delete mode 100644 lib/aws-sdk/Symfony/Component/EventDispatcher/ImmutableEventDispatcher.php delete mode 100644 lib/aws-sdk/Symfony/Component/EventDispatcher/LICENSE delete mode 100644 lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/AbstractEventDispatcherTest.php delete mode 100644 lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/ContainerAwareEventDispatcherTest.php delete mode 100644 lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php delete mode 100644 lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php delete mode 100644 lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php delete mode 100644 lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/EventTest.php delete mode 100644 lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php delete mode 100644 lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/ImmutableEventDispatcherTest.php diff --git a/lib/aws-sdk/Aws/Api/AbstractModel.php b/lib/aws-sdk/Aws/Api/AbstractModel.php new file mode 100644 index 0000000..f110e6b --- /dev/null +++ b/lib/aws-sdk/Aws/Api/AbstractModel.php @@ -0,0 +1,67 @@ +definition = $definition; + $this->shapeMap = $shapeMap; + } + + public function toArray() + { + return $this->definition; + } + + public function offsetGet($offset) + { + return isset($this->definition[$offset]) + ? $this->definition[$offset] : null; + } + + public function offsetSet($offset, $value) + { + $this->definition[$offset] = $value; + } + + public function offsetExists($offset) + { + return isset($this->definition[$offset]); + } + + public function offsetUnset($offset) + { + unset($this->definition[$offset]); + } + + protected function shapeAt($key) + { + if (!isset($this->definition[$key])) { + throw new \InvalidArgumentException('Expected shape definition at ' + . $key); + } + + return $this->shapeFor($this->definition[$key]); + } + + protected function shapeFor(array $definition) + { + return isset($definition['shape']) + ? $this->shapeMap->resolve($definition) + : Shape::create($definition, $this->shapeMap); + } +} diff --git a/lib/aws-sdk/Aws/Api/ApiProvider.php b/lib/aws-sdk/Aws/Api/ApiProvider.php new file mode 100644 index 0000000..e4bd3da --- /dev/null +++ b/lib/aws-sdk/Aws/Api/ApiProvider.php @@ -0,0 +1,243 @@ + 'api-2', + 'paginator' => 'paginators-1', + 'waiter' => 'waiters-2', + 'docs' => 'docs-2', + ]; + + /** @var array API manifest */ + private $manifest; + + /** @var string The directory containing service models. */ + private $modelsDir; + + /** + * Resolves an API provider and ensures a non-null return value. + * + * @param callable $provider Provider function to invoke. + * @param string $type Type of data ('api', 'waiter', 'paginator'). + * @param string $service Service name. + * @param string $version API version. + * + * @return array + * @throws UnresolvedApiException + */ + public static function resolve(callable $provider, $type, $service, $version) + { + // Execute the provider and return the result, if there is one. + $result = $provider($type, $service, $version); + if (is_array($result)) { + return $result; + } + + // Throw an exception with a message depending on the inputs. + if (!isset(self::$typeMap[$type])) { + $msg = "The type must be one of: " . implode(', ', self::$typeMap); + } elseif ($service) { + $msg = "The {$service} service does not have version: {$version}."; + } else { + $msg = "You must specify a service name to retrieve its API data."; + } + + throw new UnresolvedApiException($msg); + } + + /** + * Default SDK API provider. + * + * This provider loads pre-built manifest data from the `data` directory. + * + * @return self + */ + public static function defaultProvider() + { + $dir = __DIR__ . '/../data'; + + return new self($dir, \Aws\load_compiled_json("$dir/manifest.json")); + } + + /** + * Loads API data after resolving the version to the latest, compatible, + * available version based on the provided manifest data. + * + * Manifest data is essentially an associative array of service names to + * associative arrays of API version aliases. + * + * [ + * ... + * 'ec2' => [ + * 'latest' => '2014-10-01', + * '2014-10-01' => '2014-10-01', + * '2014-09-01' => '2014-10-01', + * '2014-06-15' => '2014-10-01', + * ... + * ], + * 'ecs' => [...], + * 'elasticache' => [...], + * ... + * ] + * + * @param string $dir Directory containing service models. + * @param array $manifest The API version manifest data. + * + * @return self + */ + public static function manifest($dir, array $manifest) + { + return new self($dir, $manifest); + } + + /** + * Loads API data from the specified directory. + * + * If "latest" is specified as the version, this provider must glob the + * directory to find which is the latest available version. + * + * @param string $dir Directory containing service models. + * + * @return self + * @throws \InvalidArgumentException if the provided `$dir` is invalid. + */ + public static function filesystem($dir) + { + return new self($dir); + } + + /** + * Retrieves a list of valid versions for the specified service. + * + * @param string $service Service name + * + * @return array + */ + public function getVersions($service) + { + if (!isset($this->manifest)) { + $this->buildVersionsList($service); + } + + if (!isset($this->manifest[$service]['versions'])) { + return []; + } + + return array_values(array_unique($this->manifest[$service]['versions'])); + } + + /** + * Execute the the provider. + * + * @param string $type Type of data ('api', 'waiter', 'paginator'). + * @param string $service Service name. + * @param string $version API version. + * + * @return array|null + */ + public function __invoke($type, $service, $version) + { + // Resolve the type or return null. + if (isset(self::$typeMap[$type])) { + $type = self::$typeMap[$type]; + } else { + return null; + } + + // Resolve the version or return null. + if (!isset($this->manifest)) { + $this->buildVersionsList($service); + } + + if (!isset($this->manifest[$service]['versions'][$version])) { + return null; + } + + $version = $this->manifest[$service]['versions'][$version]; + $path = "{$this->modelsDir}/{$service}/{$version}/{$type}.json"; + + try { + return \Aws\load_compiled_json($path); + } catch (\InvalidArgumentException $e) { + return null; + } + } + + /** + * @param string $modelsDir Directory containing service models. + * @param array $manifest The API version manifest data. + */ + private function __construct($modelsDir, array $manifest = null) + { + $this->manifest = $manifest; + $this->modelsDir = rtrim($modelsDir, '/'); + if (!is_dir($this->modelsDir)) { + throw new \InvalidArgumentException( + "The specified models directory, {$modelsDir}, was not found." + ); + } + } + + /** + * Build the versions list for the specified service by globbing the dir. + */ + private function buildVersionsList($service) + { + $dir = "{$this->modelsDir}/{$service}/"; + + if (!is_dir($dir)) { + return; + } + + // Get versions, remove . and .., and sort in descending order. + $results = array_diff(scandir($dir, SCANDIR_SORT_DESCENDING), ['..', '.']); + + if (!$results) { + $this->manifest[$service] = ['versions' => []]; + } else { + $this->manifest[$service] = [ + 'versions' => [ + 'latest' => $results[0] + ] + ]; + $this->manifest[$service]['versions'] += array_combine($results, $results); + } + } +} diff --git a/lib/aws-sdk/Aws/Api/DateTimeResult.php b/lib/aws-sdk/Aws/Api/DateTimeResult.php new file mode 100644 index 0000000..aa3cf7e --- /dev/null +++ b/lib/aws-sdk/Aws/Api/DateTimeResult.php @@ -0,0 +1,41 @@ +format('c'); + } + + /** + * Serialize the date as an ISO 8601 date when serializing as JSON. + * + * @return mixed|string + */ + public function jsonSerialize() + { + return (string) $this; + } +} diff --git a/lib/aws-sdk/Aws/Api/DocModel.php b/lib/aws-sdk/Aws/Api/DocModel.php new file mode 100644 index 0000000..4bba4e5 --- /dev/null +++ b/lib/aws-sdk/Aws/Api/DocModel.php @@ -0,0 +1,128 @@ +docs = $docs; + } + + /** + * Convert the doc model to an array. + * + * @return array + */ + public function toArray() + { + return $this->docs; + } + + /** + * Retrieves documentation about the service. + * + * @return null|string + */ + public function getServiceDocs() + { + return isset($this->docs['service']) ? $this->docs['service'] : null; + } + + /** + * Retrieves documentation about an operation. + * + * @param string $operation Name of the operation + * + * @return null|string + */ + public function getOperationDocs($operation) + { + return isset($this->docs['operations'][$operation]) + ? $this->docs['operations'][$operation] + : null; + } + + /** + * Retrieves documentation about an error. + * + * @param string $error Name of the error + * + * @return null|string + */ + public function getErrorDocs($error) + { + return isset($this->docs['shapes'][$error]['base']) + ? $this->docs['shapes'][$error]['base'] + : null; + } + + /** + * Retrieves documentation about a shape, specific to the context. + * + * @param string $shapeName Name of the shape. + * @param string $parentName Name of the parent/context shape. + * @param string $ref Name used by the context to reference the shape. + * + * @return null|string + */ + public function getShapeDocs($shapeName, $parentName, $ref) + { + if (!isset($this->docs['shapes'][$shapeName])) { + return ''; + } + + $result = ''; + $d = $this->docs['shapes'][$shapeName]; + if (isset($d['refs']["{$parentName}\$${ref}"])) { + $result = $d['refs']["{$parentName}\$${ref}"]; + } elseif (isset($d['base'])) { + $result = $d['base']; + } + + if (isset($d['append'])) { + $result .= $d['append']; + } + + return $this->clean($result); + } + + private function clean($content) + { + if (!$content) { + return ''; + } + + $tidy = new \Tidy(); + $tidy->parseString($content, [ + 'indent' => true, + 'doctype' => 'omit', + 'output-html' => true, + 'show-body-only' => true, + 'drop-empty-paras' => true, + 'drop-font-tags' => true, + 'drop-proprietary-attributes' => true, + 'hide-comments' => true, + 'logical-emphasis' => true + ]); + $tidy->cleanRepair(); + + return (string) $content; + } +} diff --git a/lib/aws-sdk/Aws/Api/ErrorParser/JsonParserTrait.php b/lib/aws-sdk/Aws/Api/ErrorParser/JsonParserTrait.php new file mode 100644 index 0000000..72b3679 --- /dev/null +++ b/lib/aws-sdk/Aws/Api/ErrorParser/JsonParserTrait.php @@ -0,0 +1,23 @@ +getStatusCode(); + + return [ + 'request_id' => (string) $response->getHeaderLine('x-amzn-requestid'), + 'code' => null, + 'message' => null, + 'type' => $code[0] == '4' ? 'client' : 'server', + 'parsed' => json_decode($response->getBody(), true) + ]; + } +} diff --git a/lib/aws-sdk/Aws/Api/ErrorParser/JsonRpcErrorParser.php b/lib/aws-sdk/Aws/Api/ErrorParser/JsonRpcErrorParser.php new file mode 100644 index 0000000..cb4d3d6 --- /dev/null +++ b/lib/aws-sdk/Aws/Api/ErrorParser/JsonRpcErrorParser.php @@ -0,0 +1,31 @@ +genericHandler($response); + // Make the casing consistent across services. + if ($data['parsed']) { + $data['parsed'] = array_change_key_case($data['parsed']); + } + + if (isset($data['parsed']['__type'])) { + $parts = explode('#', $data['parsed']['__type']); + $data['code'] = isset($parts[1]) ? $parts[1] : $parts[0]; + $data['message'] = isset($data['parsed']['message']) + ? $data['parsed']['message'] + : null; + } + + return $data; + } +} diff --git a/lib/aws-sdk/Aws/Api/ErrorParser/RestJsonErrorParser.php b/lib/aws-sdk/Aws/Api/ErrorParser/RestJsonErrorParser.php new file mode 100644 index 0000000..5d8eb89 --- /dev/null +++ b/lib/aws-sdk/Aws/Api/ErrorParser/RestJsonErrorParser.php @@ -0,0 +1,35 @@ +genericHandler($response); + + // Merge in error data from the JSON body + if ($json = $data['parsed']) { + $data = array_replace($data, $json); + } + + // Correct error type from services like Amazon Glacier + if (!empty($data['type'])) { + $data['type'] = strtolower($data['type']); + } + + // Retrieve the error code from services like Amazon Elastic Transcoder + if ($code = $response->getHeaderLine('x-amzn-errortype')) { + $colon = strpos($code, ':'); + $data['code'] = $colon ? substr($code, 0, $colon) : $code; + } + + return $data; + } +} diff --git a/lib/aws-sdk/Aws/Api/ErrorParser/XmlErrorParser.php b/lib/aws-sdk/Aws/Api/ErrorParser/XmlErrorParser.php new file mode 100644 index 0000000..e06937e --- /dev/null +++ b/lib/aws-sdk/Aws/Api/ErrorParser/XmlErrorParser.php @@ -0,0 +1,79 @@ +getStatusCode(); + + $data = [ + 'type' => $code[0] == '4' ? 'client' : 'server', + 'request_id' => null, + 'code' => null, + 'message' => null, + 'parsed' => null + ]; + + $body = $response->getBody(); + if ($body->getSize() > 0) { + $this->parseBody(new \SimpleXMLElement($body), $data); + } else { + $this->parseHeaders($response, $data); + } + + return $data; + } + + private function parseHeaders(ResponseInterface $response, array &$data) + { + if ($response->getStatusCode() == '404') { + $data['code'] = 'NotFound'; + } + + $data['message'] = $response->getStatusCode() . ' ' + . $response->getReasonPhrase(); + + if ($requestId = $response->getHeaderLine('x-amz-request-id')) { + $data['request_id'] = $requestId; + $data['message'] .= " (Request-ID: $requestId)"; + } + } + + private function parseBody(\SimpleXMLElement $body, array &$data) + { + $data['parsed'] = $body; + + $namespaces = $body->getDocNamespaces(); + if (!isset($namespaces[''])) { + $prefix = ''; + } else { + // Account for the default namespace being defined and PHP not + // being able to handle it :(. + $body->registerXPathNamespace('ns', $namespaces['']); + $prefix = 'ns:'; + } + + if ($tempXml = $body->xpath("//{$prefix}Code[1]")) { + $data['code'] = (string) $tempXml[0]; + } + + if ($tempXml = $body->xpath("//{$prefix}Message[1]")) { + $data['message'] = (string) $tempXml[0]; + } + + $tempXml = $body->xpath("//{$prefix}RequestId[1]"); + if (empty($tempXml)) { + $tempXml = $body->xpath("//{$prefix}RequestID[1]"); + } + + if (isset($tempXml[0])) { + $data['request_id'] = (string) $tempXml[0]; + } + } +} diff --git a/lib/aws-sdk/Aws/Api/ListShape.php b/lib/aws-sdk/Aws/Api/ListShape.php new file mode 100644 index 0000000..a425efa --- /dev/null +++ b/lib/aws-sdk/Aws/Api/ListShape.php @@ -0,0 +1,35 @@ +member) { + if (!isset($this->definition['member'])) { + throw new \RuntimeException('No member attribute specified'); + } + $this->member = Shape::create( + $this->definition['member'], + $this->shapeMap + ); + } + + return $this->member; + } +} diff --git a/lib/aws-sdk/Aws/Api/MapShape.php b/lib/aws-sdk/Aws/Api/MapShape.php new file mode 100644 index 0000000..f180f9a --- /dev/null +++ b/lib/aws-sdk/Aws/Api/MapShape.php @@ -0,0 +1,54 @@ +value) { + if (!isset($this->definition['value'])) { + throw new \RuntimeException('No value specified'); + } + + $this->value = Shape::create( + $this->definition['value'], + $this->shapeMap + ); + } + + return $this->value; + } + + /** + * @return Shape + */ + public function getKey() + { + if (!$this->key) { + $this->key = isset($this->definition['key']) + ? Shape::create($this->definition['key'], $this->shapeMap) + : new Shape(['type' => 'string'], $this->shapeMap); + } + + return $this->key; + } +} diff --git a/lib/aws-sdk/Aws/Api/Operation.php b/lib/aws-sdk/Aws/Api/Operation.php new file mode 100644 index 0000000..bd0c706 --- /dev/null +++ b/lib/aws-sdk/Aws/Api/Operation.php @@ -0,0 +1,97 @@ +definition['http']; + } + + /** + * Get the input shape of the operation. + * + * @return StructureShape + */ + public function getInput() + { + if (!$this->input) { + if ($input = $this['input']) { + $this->input = $this->shapeFor($input); + } else { + $this->input = new StructureShape([], $this->shapeMap); + } + } + + return $this->input; + } + + /** + * Get the output shape of the operation. + * + * @return StructureShape + */ + public function getOutput() + { + if (!$this->output) { + if ($output = $this['output']) { + $this->output = $this->shapeFor($output); + } else { + $this->output = new StructureShape([], $this->shapeMap); + } + } + + return $this->output; + } + + /** + * Get an array of operation error shapes. + * + * @return Shape[] + */ + public function getErrors() + { + if ($this->errors === null) { + if ($errors = $this['errors']) { + foreach ($errors as &$error) { + $error = $this->shapeFor($error); + } + $this->errors = $errors; + } else { + $this->errors = []; + } + } + + return $this->errors; + } +} diff --git a/lib/aws-sdk/Aws/Api/Parser/AbstractParser.php b/lib/aws-sdk/Aws/Api/Parser/AbstractParser.php new file mode 100644 index 0000000..5919023 --- /dev/null +++ b/lib/aws-sdk/Aws/Api/Parser/AbstractParser.php @@ -0,0 +1,35 @@ +api = $api; + } + + /** + * @param CommandInterface $command Command that was executed. + * @param ResponseInterface $response Response that was received. + * + * @return ResultInterface + */ + abstract public function __invoke( + CommandInterface $command, + ResponseInterface $response + ); +} diff --git a/lib/aws-sdk/Aws/Api/Parser/AbstractRestParser.php b/lib/aws-sdk/Aws/Api/Parser/AbstractRestParser.php new file mode 100644 index 0000000..a6ee533 --- /dev/null +++ b/lib/aws-sdk/Aws/Api/Parser/AbstractRestParser.php @@ -0,0 +1,142 @@ +api->getOperation($command->getName())->getOutput(); + $result = []; + + if ($payload = $output['payload']) { + $this->extractPayload($payload, $output, $response, $result); + } + + foreach ($output->getMembers() as $name => $member) { + switch ($member['location']) { + case 'header': + $this->extractHeader($name, $member, $response, $result); + break; + case 'headers': + $this->extractHeaders($name, $member, $response, $result); + break; + case 'statusCode': + $this->extractStatus($name, $response, $result); + break; + } + } + + if (!$payload && $response->getBody()->getSize() > 0) { + // if no payload was found, then parse the contents of the body + $this->payload($response, $output, $result); + } + + return new Result($result); + } + + private function extractPayload( + $payload, + StructureShape $output, + ResponseInterface $response, + array &$result + ) { + $member = $output->getMember($payload); + + if ($member instanceof StructureShape) { + // Structure members parse top-level data into a specific key. + $result[$payload] = []; + $this->payload($response, $member, $result[$payload]); + } else { + // Streaming data is just the stream from the response body. + $result[$payload] = $response->getBody(); + } + } + + /** + * Extract a single header from the response into the result. + */ + private function extractHeader( + $name, + Shape $shape, + ResponseInterface $response, + &$result + ) { + $value = $response->getHeaderLine($shape['locationName'] ?: $name); + $type = $shape->getType(); + + if ($type === 'blob') { + $value = base64_decode($value); + } elseif ($type === 'timestamp') { + try { + $value = new DateTimeResult($value); + } catch (\Exception $e) { + // If the value cannot be parsed, then do not add it to the + // output structure. + return; + } + } + + $result[$name] = $value; + } + + /** + * Extract a map of headers with an optional prefix from the response. + */ + private function extractHeaders( + $name, + Shape $shape, + ResponseInterface $response, + &$result + ) { + // Check if the headers are prefixed by a location name + $result[$name] = []; + $prefix = $shape['locationName']; + $prefixLen = strlen($prefix); + + foreach ($response->getHeaders() as $k => $values) { + if (!$prefixLen) { + $result[$name][$k] = implode(', ', $values); + } elseif (stripos($k, $prefix) === 0) { + $result[$name][substr($k, $prefixLen)] = implode(', ', $values); + } + } + } + + /** + * Places the status code of the response into the result array. + */ + private function extractStatus( + $name, + ResponseInterface $response, + array &$result + ) { + $result[$name] = (int) $response->getStatusCode(); + } +} diff --git a/lib/aws-sdk/Aws/Api/Parser/Crc32ValidatingParser.php b/lib/aws-sdk/Aws/Api/Parser/Crc32ValidatingParser.php new file mode 100644 index 0000000..e439d9d --- /dev/null +++ b/lib/aws-sdk/Aws/Api/Parser/Crc32ValidatingParser.php @@ -0,0 +1,47 @@ +parser = $parser; + } + + public function __invoke( + CommandInterface $command, + ResponseInterface $response + ) { + if ($expected = $response->getHeaderLine('x-amz-crc32')) { + $hash = hexdec(Psr7\hash($response->getBody(), 'crc32b')); + if ((int) $expected !== $hash) { + throw new AwsException( + "crc32 mismatch. Expected {$expected}, found {$hash}.", + $command, + [ + 'code' => 'ClientChecksumMismatch', + 'connection_error' => true, + 'response' => $response + ] + ); + } + } + + $fn = $this->parser; + return $fn($command, $response); + } +} diff --git a/lib/aws-sdk/Aws/Api/Parser/JsonParser.php b/lib/aws-sdk/Aws/Api/Parser/JsonParser.php new file mode 100644 index 0000000..d61f8af --- /dev/null +++ b/lib/aws-sdk/Aws/Api/Parser/JsonParser.php @@ -0,0 +1,54 @@ +getMembers() as $name => $member) { + $name = $member['locationName'] ?: $name; + if (isset($value[$name])) { + $target[$name] = $this->parse($member, $value[$name]); + } + } + return $target; + + case 'list': + $member = $shape->getMember(); + $target = []; + foreach ($value as $v) { + $target[] = $this->parse($member, $v); + } + return $target; + + case 'map': + $values = $shape->getValue(); + $target = []; + foreach ($value as $k => $v) { + $target[$k] = $this->parse($values, $v); + } + return $target; + + case 'timestamp': + // The Unix epoch (or Unix time or POSIX time or Unix + // timestamp) is the number of seconds that have elapsed since + // January 1, 1970 (midnight UTC/GMT). + return DateTimeResult::fromEpoch($value); + + case 'blob': + return base64_decode($value); + + default: + return $value; + } + } +} diff --git a/lib/aws-sdk/Aws/Api/Parser/JsonRpcParser.php b/lib/aws-sdk/Aws/Api/Parser/JsonRpcParser.php new file mode 100644 index 0000000..293ff72 --- /dev/null +++ b/lib/aws-sdk/Aws/Api/Parser/JsonRpcParser.php @@ -0,0 +1,37 @@ +parser = $parser ?: new JsonParser(); + } + + public function __invoke( + CommandInterface $command, + ResponseInterface $response + ) { + $operation = $this->api->getOperation($command->getName()); + + return new Result($this->parser->parse( + $operation->getOutput(), + json_decode($response->getBody(), true) + )); + } +} diff --git a/lib/aws-sdk/Aws/Api/Parser/QueryParser.php b/lib/aws-sdk/Aws/Api/Parser/QueryParser.php new file mode 100644 index 0000000..bf01359 --- /dev/null +++ b/lib/aws-sdk/Aws/Api/Parser/QueryParser.php @@ -0,0 +1,50 @@ +xmlParser = $xmlParser ?: new XmlParser(); + $this->honorResultWrapper = $honorResultWrapper; + } + + public function __invoke( + CommandInterface $command, + ResponseInterface $response + ) { + $output = $this->api->getOperation($command->getName())->getOutput(); + $xml = new \SimpleXMLElement($response->getBody()); + + if ($this->honorResultWrapper && $output['resultWrapper']) { + $xml = $xml->{$output['resultWrapper']}; + } + + return new Result($this->xmlParser->parse($output, $xml)); + } +} diff --git a/lib/aws-sdk/Aws/Api/Parser/RestJsonParser.php b/lib/aws-sdk/Aws/Api/Parser/RestJsonParser.php new file mode 100644 index 0000000..c346a61 --- /dev/null +++ b/lib/aws-sdk/Aws/Api/Parser/RestJsonParser.php @@ -0,0 +1,37 @@ +parser = $parser ?: new JsonParser(); + } + + protected function payload( + ResponseInterface $response, + StructureShape $member, + array &$result + ) { + $jsonBody = json_decode($response->getBody(), true); + + if ($jsonBody) { + $result += $this->parser->parse($member, $jsonBody); + } + } +} diff --git a/lib/aws-sdk/Aws/Api/Parser/RestXmlParser.php b/lib/aws-sdk/Aws/Api/Parser/RestXmlParser.php new file mode 100644 index 0000000..8088d09 --- /dev/null +++ b/lib/aws-sdk/Aws/Api/Parser/RestXmlParser.php @@ -0,0 +1,34 @@ +parser = $parser ?: new XmlParser(); + } + + protected function payload( + ResponseInterface $response, + StructureShape $member, + array &$result + ) { + $xml = new \SimpleXMLElement($response->getBody()); + $result += $this->parser->parse($member, $xml); + } +} diff --git a/lib/aws-sdk/Aws/Api/Parser/XmlParser.php b/lib/aws-sdk/Aws/Api/Parser/XmlParser.php new file mode 100644 index 0000000..b8460ef --- /dev/null +++ b/lib/aws-sdk/Aws/Api/Parser/XmlParser.php @@ -0,0 +1,130 @@ +dispatch($shape, $value); + } + + private function dispatch($shape, \SimpleXMLElement $value) + { + static $methods = [ + 'structure' => 'parse_structure', + 'list' => 'parse_list', + 'map' => 'parse_map', + 'blob' => 'parse_blob', + 'boolean' => 'parse_boolean', + 'integer' => 'parse_integer', + 'float' => 'parse_float', + 'double' => 'parse_float', + 'timestamp' => 'parse_timestamp', + ]; + + $type = $shape['type']; + if (isset($methods[$type])) { + return $this->{$methods[$type]}($shape, $value); + } + + return (string) $value; + } + + private function parse_structure( + StructureShape $shape, + \SimpleXMLElement $value + ) { + $target = []; + + foreach ($shape->getMembers() as $name => $member) { + // Extract the name of the XML node + $node = $this->memberKey($member, $name); + if (isset($value->{$node})) { + $target[$name] = $this->dispatch($member, $value->{$node}); + } + } + + return $target; + } + + private function memberKey(Shape $shape, $name) + { + if ($shape instanceof ListShape && $shape['flattened']) { + return $shape->getMember()['locationName'] ?: $name; + } + + return $shape['locationName'] ?: $name; + } + + private function parse_list(ListShape $shape, \SimpleXMLElement $value) + { + $target = []; + $member = $shape->getMember(); + + if (!$shape['flattened']) { + $value = $value->{$member['locationName'] ?: 'member'}; + } + + foreach ($value as $v) { + $target[] = $this->dispatch($member, $v); + } + + return $target; + } + + private function parse_map(MapShape $shape, \SimpleXMLElement $value) + { + $target = []; + + if (!$shape['flattened']) { + $value = $value->entry; + } + + $mapKey = $shape->getKey(); + $mapValue = $shape->getValue(); + $keyName = $shape->getKey()['locationName'] ?: 'key'; + $valueName = $shape->getValue()['locationName'] ?: 'value'; + + foreach ($value as $node) { + $key = $this->dispatch($mapKey, $node->{$keyName}); + $value = $this->dispatch($mapValue, $node->{$valueName}); + $target[$key] = $value; + } + + return $target; + } + + private function parse_blob(Shape $shape, $value) + { + return base64_decode((string) $value); + } + + private function parse_float(Shape $shape, $value) + { + return (float) (string) $value; + } + + private function parse_integer(Shape $shape, $value) + { + return (int) (string) $value; + } + + private function parse_boolean(Shape $shape, $value) + { + return $value == 'true' ? true : false; + } + + private function parse_timestamp(Shape $shape, $value) + { + return new DateTimeResult($value); + } +} diff --git a/lib/aws-sdk/Aws/Api/Serializer/Ec2ParamBuilder.php b/lib/aws-sdk/Aws/Api/Serializer/Ec2ParamBuilder.php new file mode 100644 index 0000000..6dd728d --- /dev/null +++ b/lib/aws-sdk/Aws/Api/Serializer/Ec2ParamBuilder.php @@ -0,0 +1,40 @@ +getMember(); + foreach ($value as $k => $v) { + $this->format($items, $v, $prefix . '.' . ($k + 1), $query); + } + } + } +} diff --git a/lib/aws-sdk/Aws/Api/Serializer/JsonBody.php b/lib/aws-sdk/Aws/Api/Serializer/JsonBody.php new file mode 100644 index 0000000..07efd76 --- /dev/null +++ b/lib/aws-sdk/Aws/Api/Serializer/JsonBody.php @@ -0,0 +1,91 @@ +api = $api; + } + + /** + * Gets the JSON Content-Type header for a service API + * + * @param Service $service + * + * @return string + */ + public static function getContentType(Service $service) + { + return 'application/x-amz-json-' + . number_format($service->getMetadata('jsonVersion'), 1); + } + + /** + * Builds the JSON body based on an array of arguments. + * + * @param Shape $shape Operation being constructed + * @param array $args Associative array of arguments + * + * @return string + */ + public function build(Shape $shape, array $args) + { + $result = json_encode($this->format($shape, $args)); + + return $result == '[]' ? '{}' : $result; + } + + private function format(Shape $shape, $value) + { + switch ($shape['type']) { + case 'structure': + $data = []; + foreach ($value as $k => $v) { + if ($v !== null && $shape->hasMember($k)) { + $data[$shape['locationName'] ?: $k] = $this->format( + $shape->getMember($k), + $v + ); + } + } + return $data; + + case 'list': + $items = $shape->getMember(); + foreach ($value as &$v) { + $data[] = $this->format($items, $v); + } + return $value; + + case 'map': + if (empty($value)) { + return new \stdClass; + } + $values = $shape->getValue(); + foreach ($value as &$v) { + $v = $this->format($values, $v); + } + return $value; + + case 'blob': + return base64_encode($value); + + case 'timestamp': + return TimestampShape::format($value, 'unixTimestamp'); + + default: + return $value; + } + } +} diff --git a/lib/aws-sdk/Aws/Api/Serializer/JsonRpcSerializer.php b/lib/aws-sdk/Aws/Api/Serializer/JsonRpcSerializer.php new file mode 100644 index 0000000..7f6f5ab --- /dev/null +++ b/lib/aws-sdk/Aws/Api/Serializer/JsonRpcSerializer.php @@ -0,0 +1,69 @@ +endpoint = $endpoint; + $this->api = $api; + $this->jsonFormatter = $jsonFormatter ?: new JsonBody($this->api); + $this->contentType = JsonBody::getContentType($api); + } + + /** + * When invoked with an AWS command, returns a serialization array + * containing "method", "uri", "headers", and "body" key value pairs. + * + * @param CommandInterface $command + * + * @return RequestInterface + */ + public function __invoke(CommandInterface $command) + { + $name = $command->getName(); + $operation = $this->api->getOperation($name); + + return new Request( + $operation['http']['method'], + $this->endpoint, + [ + 'X-Amz-Target' => $this->api->getMetadata('targetPrefix') . '.' . $name, + 'Content-Type' => $this->contentType + ], + $this->jsonFormatter->build( + $operation->getInput(), + $command->toArray() + ) + ); + } +} diff --git a/lib/aws-sdk/Aws/Api/Serializer/QueryParamBuilder.php b/lib/aws-sdk/Aws/Api/Serializer/QueryParamBuilder.php new file mode 100644 index 0000000..7e40a49 --- /dev/null +++ b/lib/aws-sdk/Aws/Api/Serializer/QueryParamBuilder.php @@ -0,0 +1,141 @@ +methods) { + $this->methods = array_fill_keys(get_class_methods($this), true); + } + + $query = []; + $this->format_structure($shape, $params, '', $query); + + return $query; + } + + protected function format(Shape $shape, $value, $prefix, array &$query) + { + $type = 'format_' . $shape['type']; + if (isset($this->methods[$type])) { + $this->{$type}($shape, $value, $prefix, $query); + } else { + $query[$prefix] = (string) $value; + } + } + + protected function format_structure( + StructureShape $shape, + array $value, + $prefix, + &$query + ) { + if ($prefix) { + $prefix .= '.'; + } + + foreach ($value as $k => $v) { + if ($shape->hasMember($k)) { + $member = $shape->getMember($k); + $this->format( + $member, + $v, + $prefix . $this->queryName($member, $k), + $query + ); + } + } + } + + protected function format_list( + ListShape $shape, + array $value, + $prefix, + &$query + ) { + // Handle empty list serialization + if (!$value) { + $query[$prefix] = ''; + return; + } + + $items = $shape->getMember(); + + if (!$this->isFlat($shape)) { + $prefix .= '.member'; + } elseif ($name = $this->queryName($items)) { + $parts = explode('.', $prefix); + $parts[count($parts) - 1] = $name; + $prefix = implode('.', $parts); + } + + foreach ($value as $k => $v) { + $this->format($items, $v, $prefix . '.' . ($k + 1), $query); + } + } + + protected function format_map( + MapShape $shape, + array $value, + $prefix, + array &$query + ) { + $vals = $shape->getValue(); + $keys = $shape->getKey(); + + if (!$this->isFlat($shape)) { + $prefix .= '.entry'; + } + + $i = 0; + $keyName = '%s.%d.' . $this->queryName($keys, 'key'); + $valueName = '%s.%s.' . $this->queryName($vals, 'value'); + + foreach ($value as $k => $v) { + $i++; + $this->format($keys, $k, sprintf($keyName, $prefix, $i), $query); + $this->format($vals, $v, sprintf($valueName, $prefix, $i), $query); + } + } + + protected function format_blob(Shape $shape, $value, $prefix, array &$query) + { + $query[$prefix] = base64_encode($value); + } + + protected function format_timestamp( + TimestampShape $shape, + $value, + $prefix, + array &$query + ) { + $query[$prefix] = TimestampShape::format($value, 'iso8601'); + } + + protected function format_boolean(Shape $shape, $value, $prefix, array &$query) + { + $query[$prefix] = ($value) ? 'true' : 'false'; + } +} diff --git a/lib/aws-sdk/Aws/Api/Serializer/QuerySerializer.php b/lib/aws-sdk/Aws/Api/Serializer/QuerySerializer.php new file mode 100644 index 0000000..107e68f --- /dev/null +++ b/lib/aws-sdk/Aws/Api/Serializer/QuerySerializer.php @@ -0,0 +1,69 @@ +api = $api; + $this->endpoint = $endpoint; + $this->paramBuilder = $paramBuilder ?: new QueryParamBuilder(); + } + + /** + * When invoked with an AWS command, returns a serialization array + * containing "method", "uri", "headers", and "body" key value pairs. + * + * @param CommandInterface $command + * + * @return RequestInterface + */ + public function __invoke(CommandInterface $command) + { + $operation = $this->api->getOperation($command->getName()); + + $body = [ + 'Action' => $command->getName(), + 'Version' => $this->api->getMetadata('apiVersion') + ]; + + $params = $command->toArray(); + + // Only build up the parameters when there are parameters to build + if ($params) { + $body += call_user_func( + $this->paramBuilder, + $operation->getInput(), + $params + ); + } + + $body = http_build_query($body, null, '&', PHP_QUERY_RFC3986); + + return new Request( + 'POST', + $this->endpoint, + [ + 'Content-Length' => strlen($body), + 'Content-Type' => 'application/x-www-form-urlencoded' + ], + $body + ); + } +} diff --git a/lib/aws-sdk/Aws/Api/Serializer/RestJsonSerializer.php b/lib/aws-sdk/Aws/Api/Serializer/RestJsonSerializer.php new file mode 100644 index 0000000..b59daa3 --- /dev/null +++ b/lib/aws-sdk/Aws/Api/Serializer/RestJsonSerializer.php @@ -0,0 +1,39 @@ +contentType = JsonBody::getContentType($api); + $this->jsonFormatter = $jsonFormatter ?: new JsonBody($api); + } + + protected function payload(StructureShape $member, array $value, array &$opts) + { + $opts['headers']['Content-Type'] = $this->contentType; + $opts['body'] = (string) $this->jsonFormatter->build($member, $value); + } +} diff --git a/lib/aws-sdk/Aws/Api/Serializer/RestSerializer.php b/lib/aws-sdk/Aws/Api/Serializer/RestSerializer.php new file mode 100644 index 0000000..d8a143d --- /dev/null +++ b/lib/aws-sdk/Aws/Api/Serializer/RestSerializer.php @@ -0,0 +1,188 @@ +api = $api; + $this->endpoint = Psr7\uri_for($endpoint); + } + + /** + * @param CommandInterface $command Command to serialized + * + * @return RequestInterface + */ + public function __invoke(CommandInterface $command) + { + $operation = $this->api->getOperation($command->getName()); + $args = $command->toArray(); + $opts = $this->serialize($operation, $args); + $uri = $this->buildEndpoint($operation, $args, $opts); + + return new Psr7\Request( + $operation['http']['method'], + $uri, + isset($opts['headers']) ? $opts['headers'] : [], + isset($opts['body']) ? $opts['body'] : null + ); + } + + /** + * Modifies a hash of request options for a payload body. + * + * @param StructureShape $member Member to serialize + * @param array $value Value to serialize + * @param array $opts Request options to modify. + */ + abstract protected function payload( + StructureShape $member, + array $value, + array &$opts + ); + + private function serialize(Operation $operation, array $args) + { + $opts = []; + $input = $operation->getInput(); + + // Apply the payload trait if present + if ($payload = $input['payload']) { + $this->applyPayload($input, $payload, $args, $opts); + } + + foreach ($args as $name => $value) { + if ($input->hasMember($name)) { + $member = $input->getMember($name); + $location = $member['location']; + if (!$payload && !$location) { + $bodyMembers[$name] = $value; + } elseif ($location == 'header') { + $this->applyHeader($name, $member, $value, $opts); + } elseif ($location == 'querystring') { + $this->applyQuery($name, $member, $value, $opts); + } elseif ($location == 'headers') { + $this->applyHeaderMap($name, $member, $value, $opts); + } + } + } + + if (isset($bodyMembers)) { + $this->payload($operation->getInput(), $bodyMembers, $opts); + } + + return $opts; + } + + private function applyPayload(StructureShape $input, $name, array $args, array &$opts) + { + if (!isset($args[$name])) { + return; + } + + $m = $input->getMember($name); + + if ($m['streaming'] || + ($m['type'] == 'string' || $m['type'] == 'blob') + ) { + // Streaming bodies or payloads that are strings are + // always just a stream of data. + $opts['body'] = Psr7\stream_for($args[$name]); + return; + } + + $this->payload($m, $args[$name], $opts); + } + + private function applyHeader($name, Shape $member, $value, array &$opts) + { + if ($member->getType() == 'timestamp') { + $value = TimestampShape::format($value, 'rfc822'); + } + + $opts['headers'][$member['locationName'] ?: $name] = $value; + } + + /** + * Note: This is currently only present in the Amazon S3 model. + */ + private function applyHeaderMap($name, Shape $member, array $value, array &$opts) + { + $prefix = $member['locationName']; + foreach ($value as $k => $v) { + $opts['headers'][$prefix . $k] = $v; + } + } + + private function applyQuery($name, Shape $member, $value, array &$opts) + { + if ($value !== null) { + $opts['query'][$member['locationName'] ?: $name] = $value; + } + } + + private function buildEndpoint(Operation $operation, array $args, array $opts) + { + $varspecs = []; + + // Create an associative array of varspecs used in expansions + foreach ($operation->getInput()->getMembers() as $name => $member) { + if ($member['location'] == 'uri') { + $varspecs[$member['locationName'] ?: $name] = + isset($args[$name]) + ? $args[$name] + : null; + } + } + + $relative = preg_replace_callback( + '/\{([^\}]+)\}/', + function (array $matches) use ($varspecs) { + $isGreedy = substr($matches[1], -1, 1) == '+'; + $k = $isGreedy ? substr($matches[1], 0, -1) : $matches[1]; + if (!isset($varspecs[$k])) { + return ''; + } elseif ($isGreedy) { + return str_replace('%2F', '/', rawurlencode($varspecs[$k])); + } else { + return rawurlencode($varspecs[$k]); + } + }, + $operation['http']['requestUri'] + ); + + // Add the query string variables or appending to one if needed. + if (!empty($opts['query'])) { + $append = Psr7\build_query($opts['query']); + $relative .= strpos($relative, '?') ? "&{$append}" : "?$append"; + } + + // Expand path place holders using Amazon's slightly different URI + // template syntax. + return Psr7\Uri::resolve($this->endpoint, $relative); + } +} diff --git a/lib/aws-sdk/Aws/Api/Serializer/RestXmlSerializer.php b/lib/aws-sdk/Aws/Api/Serializer/RestXmlSerializer.php new file mode 100644 index 0000000..b0d6a29 --- /dev/null +++ b/lib/aws-sdk/Aws/Api/Serializer/RestXmlSerializer.php @@ -0,0 +1,34 @@ +xmlBody = $xmlBody ?: new XmlBody($api); + } + + protected function payload(StructureShape $member, array $value, array &$opts) + { + $opts['headers']['Content-Type'] = 'application/xml'; + $opts['body'] = (string) $this->xmlBody->build($member, $value); + } +} diff --git a/lib/aws-sdk/Aws/Api/Serializer/XmlBody.php b/lib/aws-sdk/Aws/Api/Serializer/XmlBody.php new file mode 100644 index 0000000..6271bf9 --- /dev/null +++ b/lib/aws-sdk/Aws/Api/Serializer/XmlBody.php @@ -0,0 +1,169 @@ +api = $api; + } + + /** + * Builds the XML body based on an array of arguments. + * + * @param Shape $shape Operation being constructed + * @param array $args Associative array of arguments + * + * @return string + */ + public function build(Shape $shape, array $args) + { + $xml = new \XMLWriter(); + $xml->openMemory(); + $xml->startDocument('1.0', 'UTF-8'); + $this->format($shape, $shape['locationName'], $args, $xml); + $xml->endDocument(); + + return $xml->outputMemory(); + } + + private function startElement(Shape $shape, $name, \XMLWriter $xml) + { + $xml->startElement($name); + + if ($ns = $shape['xmlNamespace']) { + $xml->writeAttribute( + isset($ns['prefix']) ? "xmlns:{$ns['prefix']}" : 'xmlns', + $shape['xmlNamespace']['uri'] + ); + } + } + + private function format(Shape $shape, $name, $value, \XMLWriter $xml) + { + // Any method mentioned here has a custom serialization handler. + static $methods = [ + 'add_structure' => true, + 'add_list' => true, + 'add_blob' => true, + 'add_timestamp' => true, + 'add_boolean' => true, + 'add_map' => true, + 'add_string' => true + ]; + + $type = 'add_' . $shape['type']; + if (isset($methods[$type])) { + $this->{$type}($shape, $name, $value, $xml); + } else { + $this->defaultShape($shape, $name, $value, $xml); + } + } + + private function defaultShape(Shape $shape, $name, $value, \XMLWriter $xml) + { + $this->startElement($shape, $name, $xml); + $xml->writeRaw($value); + $xml->endElement(); + } + + private function add_structure( + StructureShape $shape, + $name, + array $value, + \XMLWriter $xml + ) { + $this->startElement($shape, $name, $xml); + + foreach ($value as $k => $v) { + if ($v !== null && $shape->hasMember($k)) { + $member = $shape->getMember($k); + $elementName = $member['locationName'] ?: $k; + $this->format($member, $elementName, $v, $xml); + } + } + + $xml->endElement(); + } + + private function add_list( + ListShape $shape, + $name, + array $value, + \XMLWriter $xml + ) { + $items = $shape->getMember(); + + if ($shape['flattened']) { + $elementName = $name; + } else { + $this->startElement($shape, $name, $xml); + $elementName = $items['locationName'] ?: 'member'; + } + + foreach ($value as &$v) { + $this->format($items, $elementName, $v, $xml); + } + + if (!$shape['flattened']) { + $xml->endElement(); + } + } + + private function add_blob(Shape $shape, $name, $value, \XMLWriter $xml) + { + $this->startElement($shape, $name, $xml); + $xml->writeRaw(base64_encode($value)); + $xml->endElement(); + } + + private function add_timestamp( + TimestampShape $shape, + $name, + $value, + \XMLWriter $xml + ) { + $this->startElement($shape, $name, $xml); + $xml->writeRaw(TimestampShape::format($value, 'iso8601')); + $xml->endElement(); + } + + private function add_boolean( + Shape $shape, + $name, + $value, + \XMLWriter $xml + ) { + $this->startElement($shape, $name, $xml); + $xml->writeRaw($value ? 'true' : 'false'); + $xml->endElement(); + } + + private function add_string( + Shape $shape, + $name, + $value, + \XMLWriter $xml + ) { + if ($shape['xmlAttribute']) { + $xml->writeAttribute($shape['locationName'] ?: $name, $value); + } else { + $this->defaultShape($shape, $name, $value, $xml); + } + } +} diff --git a/lib/aws-sdk/Aws/Api/Service.php b/lib/aws-sdk/Aws/Api/Service.php new file mode 100644 index 0000000..e0eba0c --- /dev/null +++ b/lib/aws-sdk/Aws/Api/Service.php @@ -0,0 +1,404 @@ + [], + 'shapes' => [], + 'metadata' => [] + ], $defaultMeta = [ + 'apiVersion' => null, + 'serviceFullName' => null, + 'endpointPrefix' => null, + 'signingName' => null, + 'signatureVersion' => null, + 'protocol' => null + ]; + + $definition += $defaults; + $definition['metadata'] += $defaultMeta; + $this->definition = $definition; + $this->apiProvider = $provider; + parent::__construct($definition, new ShapeMap($definition['shapes'])); + $this->serviceName = $this->getEndpointPrefix(); + $this->apiVersion = $this->getApiVersion(); + } + + /** + * Creates a request serializer for the provided API object. + * + * @param Service $api API that contains a protocol. + * @param string $endpoint Endpoint to send requests to. + * + * @return callable + * @throws \UnexpectedValueException + */ + public static function createSerializer(Service $api, $endpoint) + { + static $mapping = [ + 'json' => 'Aws\Api\Serializer\JsonRpcSerializer', + 'query' => 'Aws\Api\Serializer\QuerySerializer', + 'rest-json' => 'Aws\Api\Serializer\RestJsonSerializer', + 'rest-xml' => 'Aws\Api\Serializer\RestXmlSerializer' + ]; + + $proto = $api->getProtocol(); + + if (isset($mapping[$proto])) { + return new $mapping[$proto]($api, $endpoint); + } elseif ($proto == 'ec2') { + return new QuerySerializer($api, $endpoint, new Ec2ParamBuilder()); + } + + throw new \UnexpectedValueException( + 'Unknown protocol: ' . $api->getProtocol() + ); + } + + /** + * Creates an error parser for the given protocol. + * + * @param string $protocol Protocol to parse (e.g., query, json, etc.) + * + * @return callable + * @throws \UnexpectedValueException + */ + public static function createErrorParser($protocol) + { + static $mapping = [ + 'json' => 'Aws\Api\ErrorParser\JsonRpcErrorParser', + 'query' => 'Aws\Api\ErrorParser\XmlErrorParser', + 'rest-json' => 'Aws\Api\ErrorParser\RestJsonErrorParser', + 'rest-xml' => 'Aws\Api\ErrorParser\XmlErrorParser', + 'ec2' => 'Aws\Api\ErrorParser\XmlErrorParser' + ]; + + if (isset($mapping[$protocol])) { + return new $mapping[$protocol](); + } + + throw new \UnexpectedValueException("Unknown protocol: $protocol"); + } + + /** + * Applies the listeners needed to parse client models. + * + * @param Service $api API to create a parser for + * @return callable + * @throws \UnexpectedValueException + */ + public static function createParser(Service $api) + { + static $mapping = [ + 'json' => 'Aws\Api\Parser\JsonRpcParser', + 'query' => 'Aws\Api\Parser\QueryParser', + 'rest-json' => 'Aws\Api\Parser\RestJsonParser', + 'rest-xml' => 'Aws\Api\Parser\RestXmlParser' + ]; + + $proto = $api->getProtocol(); + if (isset($mapping[$proto])) { + return new $mapping[$proto]($api); + } elseif ($proto == 'ec2') { + return new QueryParser($api, null, false); + } + + throw new \UnexpectedValueException( + 'Unknown protocol: ' . $api->getProtocol() + ); + } + + /** + * Get the full name of the service + * + * @return string + */ + public function getServiceFullName() + { + return $this->definition['metadata']['serviceFullName']; + } + + /** + * Get the API version of the service + * + * @return string + */ + public function getApiVersion() + { + return $this->definition['metadata']['apiVersion']; + } + + /** + * Get the API version of the service + * + * @return string + */ + public function getEndpointPrefix() + { + return $this->definition['metadata']['endpointPrefix']; + } + + /** + * Get the signing name used by the service. + * + * @return string + */ + public function getSigningName() + { + return $this->definition['metadata']['signingName'] + ?: $this->definition['metadata']['endpointPrefix']; + } + + /** + * Get the default signature version of the service. + * + * Note: this method assumes "v4" when not specified in the model. + * + * @return string + */ + public function getSignatureVersion() + { + return $this->definition['metadata']['signatureVersion'] ?: 'v4'; + } + + /** + * Get the protocol used by the service. + * + * @return string + */ + public function getProtocol() + { + return $this->definition['metadata']['protocol']; + } + + /** + * Check if the description has a specific operation by name. + * + * @param string $name Operation to check by name + * + * @return bool + */ + public function hasOperation($name) + { + return isset($this['operations'][$name]); + } + + /** + * Get an operation by name. + * + * @param string $name Operation to retrieve by name + * + * @return Operation + * @throws \InvalidArgumentException If the operation is not found + */ + public function getOperation($name) + { + if (!isset($this->operations[$name])) { + if (!isset($this->definition['operations'][$name])) { + throw new \InvalidArgumentException("Unknown operation: $name"); + } + $this->operations[$name] = new Operation( + $this->definition['operations'][$name], + $this->shapeMap + ); + } + + return $this->operations[$name]; + } + + /** + * Get all of the operations of the description. + * + * @return Operation[] + */ + public function getOperations() + { + $result = []; + foreach ($this->definition['operations'] as $name => $definition) { + $result[$name] = $this->getOperation($name); + } + + return $result; + } + + /** + * Get all of the service metadata or a specific metadata key value. + * + * @param string|null $key Key to retrieve or null to retrieve all metadata + * + * @return mixed Returns the result or null if the key is not found + */ + public function getMetadata($key = null) + { + if (!$key) { + return $this['metadata']; + } elseif (isset($this->definition['metadata'][$key])) { + return $this->definition['metadata'][$key]; + } + + return null; + } + + /** + * Gets an associative array of available paginator configurations where + * the key is the name of the paginator, and the value is the paginator + * configuration. + * + * @return array + * @unstable The configuration format of paginators may change in the future + */ + public function getPaginators() + { + if (!isset($this->paginators)) { + $res = call_user_func( + $this->apiProvider, + 'paginator', + $this->serviceName, + $this->apiVersion + ); + $this->paginators = isset($res['pagination']) + ? $res['pagination'] + : []; + } + + return $this->paginators; + } + + /** + * Determines if the service has a paginator by name. + * + * @param string $name Name of the paginator. + * + * @return bool + */ + public function hasPaginator($name) + { + return isset($this->getPaginators()[$name]); + } + + /** + * Retrieve a paginator by name. + * + * @param string $name Paginator to retrieve by name. This argument is + * typically the operation name. + * @return array + * @throws \UnexpectedValueException if the paginator does not exist. + * @unstable The configuration format of paginators may change in the future + */ + public function getPaginatorConfig($name) + { + static $defaults = [ + 'input_token' => null, + 'output_token' => null, + 'limit_key' => null, + 'result_key' => null, + 'more_results' => null, + ]; + + if ($this->hasPaginator($name)) { + return $this->paginators[$name] + $defaults; + } + + throw new \UnexpectedValueException("There is no {$name} " + . "paginator defined for the {$this->serviceName} service."); + } + + /** + * Gets an associative array of available waiter configurations where the + * key is the name of the waiter, and the value is the waiter + * configuration. + * + * @return array + */ + public function getWaiters() + { + if (!isset($this->waiters)) { + $res = call_user_func( + $this->apiProvider, + 'waiter', + $this->serviceName, + $this->apiVersion + ); + $this->waiters = isset($res['waiters']) + ? $res['waiters'] + : []; + } + + return $this->waiters; + } + + /** + * Determines if the service has a waiter by name. + * + * @param string $name Name of the waiter. + * + * @return bool + */ + public function hasWaiter($name) + { + return isset($this->getWaiters()[$name]); + } + + /** + * Get a waiter configuration by name. + * + * @param string $name Name of the waiter by name. + * + * @return array + * @throws \UnexpectedValueException if the waiter does not exist. + */ + public function getWaiterConfig($name) + { + // Error if the waiter is not defined + if ($this->hasWaiter($name)) { + return $this->waiters[$name]; + } + + throw new \UnexpectedValueException("There is no {$name} waiter " + . "defined for the {$this->serviceName} service."); + } + + /** + * Get the shape map used by the API. + * + * @return ShapeMap + */ + public function getShapeMap() + { + return $this->shapeMap; + } +} diff --git a/lib/aws-sdk/Aws/Api/Shape.php b/lib/aws-sdk/Aws/Api/Shape.php new file mode 100644 index 0000000..7734180 --- /dev/null +++ b/lib/aws-sdk/Aws/Api/Shape.php @@ -0,0 +1,69 @@ + 'Aws\Api\StructureShape', + 'map' => 'Aws\Api\MapShape', + 'list' => 'Aws\Api\ListShape', + 'timestamp' => 'Aws\Api\TimestampShape', + 'integer' => 'Aws\Api\Shape', + 'double' => 'Aws\Api\Shape', + 'float' => 'Aws\Api\Shape', + 'long' => 'Aws\Api\Shape', + 'string' => 'Aws\Api\Shape', + 'byte' => 'Aws\Api\Shape', + 'character' => 'Aws\Api\Shape', + 'blob' => 'Aws\Api\Shape', + 'boolean' => 'Aws\Api\Shape' + ]; + + if (isset($definition['shape'])) { + return $shapeMap->resolve($definition); + } + + if (!isset($map[$definition['type']])) { + throw new \RuntimeException('Invalid type: ' + . print_r($definition, true)); + } + + $type = $map[$definition['type']]; + + return new $type($definition, $shapeMap); + } + + /** + * Get the type of the shape + * + * @return string + */ + public function getType() + { + return $this->definition['type']; + } + + /** + * Get the name of the shape + * + * @return string + */ + public function getName() + { + return $this->definition['name']; + } +} diff --git a/lib/aws-sdk/Aws/Api/ShapeMap.php b/lib/aws-sdk/Aws/Api/ShapeMap.php new file mode 100644 index 0000000..18ef23a --- /dev/null +++ b/lib/aws-sdk/Aws/Api/ShapeMap.php @@ -0,0 +1,66 @@ +definitions = $shapeModels; + } + + /** + * Get an array of shape names. + * + * @return array + */ + public function getShapeNames() + { + return array_keys($this->definitions); + } + + /** + * Resolve a shape reference + * + * @param array $shapeRef Shape reference shape + * + * @return Shape + * @throws \InvalidArgumentException + */ + public function resolve(array $shapeRef) + { + $shape = $shapeRef['shape']; + + if (!isset($this->definitions[$shape])) { + throw new \InvalidArgumentException('Shape not found: ' . $shape); + } + + $isSimple = count($shapeRef) == 1; + if ($isSimple && isset($this->simple[$shape])) { + return $this->simple[$shape]; + } + + $definition = $shapeRef + $this->definitions[$shape]; + $definition['name'] = $definition['shape']; + unset($definition['shape']); + + $result = Shape::create($definition, $this); + + if ($isSimple) { + $this->simple[$shape] = $result; + } + + return $result; + } +} diff --git a/lib/aws-sdk/Aws/Api/StructureShape.php b/lib/aws-sdk/Aws/Api/StructureShape.php new file mode 100644 index 0000000..9cb283e --- /dev/null +++ b/lib/aws-sdk/Aws/Api/StructureShape.php @@ -0,0 +1,63 @@ +definition['members'] as $name => $definition) { + $result[$name] = $this->shapeFor($definition); + } + + return $result; + } + + /** + * Check if a specific member exists by name. + * + * @param string $name Name of the member to check + * + * @return bool + */ + public function hasMember($name) + { + return isset($this->definition['members'][$name]); + } + + /** + * Retrieve a member by name. + * + * @param string $name Name of the member to retrieve + * + * @return Shape + * @throws \InvalidArgumentException if the member is not found. + */ + public function getMember($name) + { + if (!isset($this->definition['members'][$name])) { + throw new \InvalidArgumentException('Unknown member ' . $name); + } + + return $this->shapeFor($this->definition['members'][$name]); + } +} diff --git a/lib/aws-sdk/Aws/Api/TimestampShape.php b/lib/aws-sdk/Aws/Api/TimestampShape.php new file mode 100644 index 0000000..7ef2646 --- /dev/null +++ b/lib/aws-sdk/Aws/Api/TimestampShape.php @@ -0,0 +1,48 @@ +getTimestamp(); + } elseif (is_string($value)) { + $value = strtotime($value); + } elseif (!is_int($value)) { + throw new \InvalidArgumentException('Unable to handle the provided' + . ' timestamp type: ' . gettype($value)); + } + + switch ($format) { + case 'iso8601': + return gmdate('Y-m-d\TH:i:s\Z', $value); + case 'rfc822': + return gmdate('D, d M Y H:i:s \G\M\T', $value); + case 'unixTimestamp': + return $value; + default: + throw new \UnexpectedValueException('Unknown timestamp format: ' + . $format); + } + } +} diff --git a/lib/aws-sdk/Aws/Api/Validator.php b/lib/aws-sdk/Aws/Api/Validator.php new file mode 100644 index 0000000..4bc3708 --- /dev/null +++ b/lib/aws-sdk/Aws/Api/Validator.php @@ -0,0 +1,194 @@ +dispatch($shape, $input); + + if ($this->errors) { + $message = sprintf( + "Found %d error%s while validating the input provided for the " + . "%s operation:\n%s", + count($this->errors), + count($this->errors) > 1 ? 's' : '', + $name, + implode("\n", $this->errors) + ); + $this->errors = []; + throw new \InvalidArgumentException($message); + } + } + + private function dispatch(Shape $shape, $value) + { + static $methods = [ + 'structure' => 'check_structure', + 'list' => 'check_list', + 'map' => 'check_map', + 'blob' => 'check_blob', + 'boolean' => 'check_boolean', + 'integer' => 'check_numeric', + 'float' => 'check_numeric', + 'long' => 'check_numeric', + 'string' => 'check_string', + 'byte' => 'check_string', + 'char' => 'check_string' + ]; + + $type = $shape->getType(); + if (isset($methods[$type])) { + $this->{$methods[$type]}($shape, $value); + } + } + + private function check_structure(StructureShape $shape, $value) + { + if (!$this->checkAssociativeArray($value)) { + return; + } + + if ($shape['required']) { + foreach ($shape['required'] as $req) { + if (!isset($value[$req])) { + $this->path[] = $req; + $this->addError('is missing and is a required parameter'); + array_pop($this->path); + } + } + } + + foreach ($value as $name => $v) { + if ($shape->hasMember($name)) { + $this->path[] = $name; + $this->dispatch( + $shape->getMember($name), + isset($value[$name]) ? $value[$name] : null + ); + array_pop($this->path); + } + } + } + + private function check_list(ListShape $shape, $value) + { + if (!is_array($value)) { + $this->addError('must be an array. Found ' . Aws\describe_type($value)); + return; + } + + $items = $shape->getMember(); + foreach ($value as $index => $v) { + $this->path[] = $index; + $this->dispatch($items, $v); + array_pop($this->path); + } + } + + private function check_map(MapShape $shape, $value) + { + if (!$this->checkAssociativeArray($value)) { + return; + } + + $values = $shape->getValue(); + foreach ($value as $key => $v) { + $this->path[] = $key; + $this->dispatch($values, $v); + array_pop($this->path); + } + } + + private function check_blob(Shape $shape, $value) + { + static $valid = [ + 'string' => true, + 'integer' => true, + 'double' => true, + 'resource' => true + ]; + + $type = gettype($value); + if (!isset($valid[$type])) { + if ($type != 'object' || !method_exists($value, '__toString')) { + $this->addError('must be an fopen resource, a ' + . 'GuzzleHttp\Stream\StreamInterface object, or something ' + . 'that can be cast to a string. Found ' . Aws\describe_type($value)); + } + } + } + + private function check_numeric(Shape $shape, $value) + { + if (!is_numeric($value)) { + $this->addError('must be numeric. Found ' . Aws\describe_type($value)); + } + } + + private function check_boolean(Shape $shape, $value) + { + if (!is_bool($value)) { + $this->addError('must be a boolean. Found ' . Aws\describe_type($value)); + } + } + + private function check_string(Shape $shape, $value) + { + if (!$this->checkCanString($value)) { + $this->addError('must be a string or an object that implements ' + . '__toString(). Found ' . Aws\describe_type($value)); + } + } + + private function checkCanString($value) + { + static $valid = [ + 'string' => true, + 'integer' => true, + 'double' => true, + 'NULL' => true, + ]; + + $type = gettype($value); + + return isset($valid[$type]) || + ($type == 'object' && method_exists($valid, '__toString')); + } + + private function checkAssociativeArray($value) + { + if (!is_array($value) || isset($value[0])) { + $this->addError('must be an associative array. Found ' + . Aws\describe_type($value)); + return false; + } + + return true; + } + + private function addError($message) + { + $this->errors[] = + implode('', array_map(function ($s) { return "[{$s}]"; }, $this->path)) + . ' ' + . $message; + } +} diff --git a/lib/aws-sdk/Aws/AutoScaling/AutoScalingClient.php b/lib/aws-sdk/Aws/AutoScaling/AutoScalingClient.php index 37f832a..2a67e05 100644 --- a/lib/aws-sdk/Aws/AutoScaling/AutoScalingClient.php +++ b/lib/aws-sdk/Aws/AutoScaling/AutoScalingClient.php @@ -1,111 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/autoscaling-%s.php' - )) - ->build(); - } -} +class AutoScalingClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/AutoScaling/Enum/LifecycleState.php b/lib/aws-sdk/Aws/AutoScaling/Enum/LifecycleState.php deleted file mode 100644 index 439a02f..0000000 --- a/lib/aws-sdk/Aws/AutoScaling/Enum/LifecycleState.php +++ /dev/null @@ -1,31 +0,0 @@ - '2011-01-01', - 'endpointPrefix' => 'autoscaling', - 'serviceFullName' => 'Auto Scaling', - 'serviceType' => 'query', - 'resultWrapped' => true, - 'signatureVersion' => 'v4', - 'namespace' => 'AutoScaling', - 'regions' => array( - 'us-east-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'autoscaling.us-east-1.amazonaws.com', - ), - 'us-west-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'autoscaling.us-west-1.amazonaws.com', - ), - 'us-west-2' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'autoscaling.us-west-2.amazonaws.com', - ), - 'eu-west-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'autoscaling.eu-west-1.amazonaws.com', - ), - 'ap-northeast-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'autoscaling.ap-northeast-1.amazonaws.com', - ), - 'ap-southeast-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'autoscaling.ap-southeast-1.amazonaws.com', - ), - 'ap-southeast-2' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'autoscaling.ap-southeast-2.amazonaws.com', - ), - 'sa-east-1' => array( - 'http' => true, - '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, - 'hostname' => 'autoscaling.us-gov-west-1.amazonaws.com', - ), - ), - '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, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'AttachLoadBalancers' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'AttachLoadBalancers', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'AutoScalingGroupName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - 'LoadBalancerNames' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'LoadBalancerNames.member', - 'items' => array( - 'name' => 'XmlStringMaxLen255', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - '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', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'CreateAutoScalingGroup' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateAutoScalingGroup', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'AutoScalingGroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'LaunchConfigurationName' => array( - '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', - 'location' => 'aws.query', - ), - 'MaxSize' => array( - 'required' => true, - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'DesiredCapacity' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'DefaultCooldown' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'AvailabilityZones' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'AvailabilityZones.member', - 'minItems' => 1, - 'items' => array( - 'name' => 'XmlStringMaxLen255', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - 'LoadBalancerNames' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'LoadBalancerNames.member', - 'items' => array( - 'name' => 'XmlStringMaxLen255', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - 'HealthCheckType' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 32, - ), - 'HealthCheckGracePeriod' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'PlacementGroup' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'VPCZoneIdentifier' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'TerminationPolicies' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'TerminationPolicies.member', - 'items' => array( - 'name' => 'XmlStringMaxLen1600', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 1600, - ), - ), - 'Tags' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Tags.member', - 'items' => array( - 'name' => 'Tag', - 'type' => 'object', - 'properties' => array( - 'ResourceId' => array( - 'type' => 'string', - ), - 'ResourceType' => array( - 'type' => 'string', - ), - 'Key' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 128, - ), - 'Value' => array( - 'type' => 'string', - 'maxLength' => 256, - ), - 'PropagateAtLaunch' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have an Auto Scaling group or launch configuration with this name.', - 'class' => 'AlreadyExistsException', - ), - array( - 'reason' => 'You have already reached a limit for your Auto Scaling resources (for example, groups, launch configurations, or lifecycle hooks). For more information, see DescribeAccountLimits.', - 'class' => 'LimitExceededException', - ), - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'CreateLaunchConfiguration' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateLaunchConfiguration', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'LaunchConfigurationName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'ImageId' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'KeyName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'SecurityGroups' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'SecurityGroups.member', - 'items' => array( - 'name' => 'XmlString', - '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( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'KernelId' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'RamdiskId' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'BlockDeviceMappings' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'BlockDeviceMappings.member', - 'items' => array( - 'name' => 'BlockDeviceMapping', - 'type' => 'object', - 'properties' => array( - 'VirtualName' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'DeviceName' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'Ebs' => array( - 'type' => 'object', - 'properties' => array( - 'SnapshotId' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'VolumeSize' => array( - 'type' => 'numeric', - 'minimum' => 1, - 'maximum' => 16384, - ), - 'VolumeType' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'DeleteOnTermination' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - 'Iops' => array( - 'type' => 'numeric', - 'minimum' => 100, - 'maximum' => 20000, - ), - ), - ), - 'NoDevice' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - ), - 'InstanceMonitoring' => array( - 'type' => 'object', - 'location' => 'aws.query', - 'properties' => array( - 'Enabled' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - 'SpotPrice' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'IamInstanceProfile' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - 'EbsOptimized' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'AssociatePublicIpAddress' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'PlacementTenancy' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 64, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have an Auto Scaling group or launch configuration with this name.', - 'class' => 'AlreadyExistsException', - ), - array( - 'reason' => 'You have already reached a limit for your Auto Scaling resources (for example, groups, launch configurations, or lifecycle hooks). For more information, see DescribeAccountLimits.', - 'class' => 'LimitExceededException', - ), - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'CreateOrUpdateTags' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateOrUpdateTags', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'Tags' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Tags.member', - 'items' => array( - 'name' => 'Tag', - 'type' => 'object', - 'properties' => array( - 'ResourceId' => array( - 'type' => 'string', - ), - 'ResourceType' => array( - 'type' => 'string', - ), - 'Key' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 128, - ), - 'Value' => array( - 'type' => 'string', - 'maxLength' => 256, - ), - 'PropagateAtLaunch' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You have already reached a limit for your Auto Scaling resources (for example, groups, launch configurations, or lifecycle hooks). For more information, see DescribeAccountLimits.', - 'class' => 'LimitExceededException', - ), - array( - 'reason' => 'You already have an Auto Scaling group or launch configuration with this name.', - 'class' => 'AlreadyExistsException', - ), - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'DeleteAutoScalingGroup' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteAutoScalingGroup', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'AutoScalingGroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - 'ForceDelete' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The Auto Scaling group can\'t be deleted because there are scaling activities in progress.', - 'class' => 'ScalingActivityInProgressException', - ), - array( - 'reason' => 'The Auto Scaling group or launch configuration can\'t be deleted because it is in use.', - 'class' => 'ResourceInUseException', - ), - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'DeleteLaunchConfiguration' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteLaunchConfiguration', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'LaunchConfigurationName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The Auto Scaling group or launch configuration can\'t be deleted because it is in use.', - 'class' => 'ResourceInUseException', - ), - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - '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, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'DeleteNotificationConfiguration' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteNotificationConfiguration', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'AutoScalingGroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - 'TopicARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'DeletePolicy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeletePolicy', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'AutoScalingGroupName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - 'PolicyName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'DeleteScheduledAction' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteScheduledAction', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'AutoScalingGroupName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - 'ScheduledActionName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - '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' => '2011-01-01', - ), - 'Tags' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Tags.member', - 'items' => array( - 'name' => 'Tag', - 'type' => 'object', - 'properties' => array( - 'ResourceId' => array( - 'type' => 'string', - ), - 'ResourceType' => array( - 'type' => 'string', - ), - 'Key' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 128, - ), - 'Value' => array( - 'type' => 'string', - 'maxLength' => 256, - ), - 'PropagateAtLaunch' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - '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', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'DescribeAdjustmentTypes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeAdjustmentTypesAnswer', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeAdjustmentTypes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'DescribeAutoScalingGroups' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'AutoScalingGroupsType', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeAutoScalingGroups', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'AutoScalingGroupNames' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'AutoScalingGroupNames.member', - 'items' => array( - 'name' => 'ResourceName', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 1600, - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'MaxRecords' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The NextToken value is not valid.', - 'class' => 'InvalidNextTokenException', - ), - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'DescribeAutoScalingInstances' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'AutoScalingInstancesType', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeAutoScalingInstances', - ), - '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, - ), - ), - 'MaxRecords' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The NextToken value is not valid.', - 'class' => 'InvalidNextTokenException', - ), - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'DescribeAutoScalingNotificationTypes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeAutoScalingNotificationTypesAnswer', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeAutoScalingNotificationTypes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'DescribeLaunchConfigurations' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'LaunchConfigurationsType', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeLaunchConfigurations', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'LaunchConfigurationNames' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'LaunchConfigurationNames.member', - 'items' => array( - 'name' => 'ResourceName', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 1600, - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'MaxRecords' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The NextToken value is not valid.', - 'class' => 'InvalidNextTokenException', - ), - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - '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', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - '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, - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'DescribeLoadBalancers' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeLoadBalancersResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeLoadBalancers', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'AutoScalingGroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'MaxRecords' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'DescribeMetricCollectionTypes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeMetricCollectionTypesAnswer', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeMetricCollectionTypes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'DescribeNotificationConfigurations' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeNotificationConfigurationsAnswer', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeNotificationConfigurations', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'AutoScalingGroupNames' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'AutoScalingGroupNames.member', - 'items' => array( - 'name' => 'ResourceName', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 1600, - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'MaxRecords' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The NextToken value is not valid.', - 'class' => 'InvalidNextTokenException', - ), - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'DescribePolicies' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'PoliciesType', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribePolicies', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'AutoScalingGroupName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - 'PolicyNames' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'PolicyNames.member', - 'items' => array( - 'name' => 'ResourceName', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 1600, - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'MaxRecords' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The NextToken value is not valid.', - 'class' => 'InvalidNextTokenException', - ), - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'DescribeScalingActivities' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ActivitiesType', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeScalingActivities', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'ActivityIds' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'ActivityIds.member', - 'items' => array( - 'name' => 'XmlString', - 'type' => 'string', - ), - ), - 'AutoScalingGroupName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - 'MaxRecords' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The NextToken value is not valid.', - 'class' => 'InvalidNextTokenException', - ), - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'DescribeScalingProcessTypes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ProcessesType', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeScalingProcessTypes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'DescribeScheduledActions' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ScheduledActionsType', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeScheduledActions', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'AutoScalingGroupName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - 'ScheduledActionNames' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'ScheduledActionNames.member', - 'items' => array( - 'name' => 'ResourceName', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 1600, - ), - ), - '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', - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'MaxRecords' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The NextToken value is not valid.', - 'class' => 'InvalidNextTokenException', - ), - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'DescribeTags' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'TagsType', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeTags', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'Filters' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Filters.member', - 'items' => array( - 'name' => 'Filter', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'Values' => array( - 'type' => 'array', - 'sentAs' => 'Values.member', - 'items' => array( - 'name' => 'XmlString', - 'type' => 'string', - ), - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'MaxRecords' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The NextToken value is not valid.', - 'class' => 'InvalidNextTokenException', - ), - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'DescribeTerminationPolicyTypes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeTerminationPolicyTypesAnswer', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeTerminationPolicyTypes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - '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', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'DetachLoadBalancers' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DetachLoadBalancers', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'AutoScalingGroupName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - 'LoadBalancerNames' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'LoadBalancerNames.member', - 'items' => array( - 'name' => 'XmlStringMaxLen255', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'DisableMetricsCollection' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DisableMetricsCollection', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'AutoScalingGroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - 'Metrics' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Metrics.member', - 'items' => array( - 'name' => 'XmlStringMaxLen255', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'EnableMetricsCollection' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'EnableMetricsCollection', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'AutoScalingGroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - 'Metrics' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Metrics.member', - 'items' => array( - 'name' => 'XmlStringMaxLen255', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - 'Granularity' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'EnterStandby' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EnterStandbyAnswer', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - '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', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - '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, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'AutoScalingGroupName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - 'PolicyName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - 'HonorCooldown' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The Auto Scaling group can\'t be deleted because there are scaling activities in progress.', - 'class' => 'ScalingActivityInProgressException', - ), - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - '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, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - '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' => 'You have already reached a limit for your Auto Scaling resources (for example, groups, launch configurations, or lifecycle hooks). For more information, see DescribeAccountLimits.', - 'class' => 'LimitExceededException', - ), - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'PutNotificationConfiguration' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'PutNotificationConfiguration', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'AutoScalingGroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - 'TopicARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - 'NotificationTypes' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'NotificationTypes.member', - 'items' => array( - 'name' => 'XmlStringMaxLen255', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You have already reached a limit for your Auto Scaling resources (for example, groups, launch configurations, or lifecycle hooks). For more information, see DescribeAccountLimits.', - 'class' => 'LimitExceededException', - ), - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'PutScalingPolicy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'PolicyARNType', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'PutScalingPolicy', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'AutoScalingGroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - 'PolicyName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'AdjustmentType' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'MinAdjustmentStep' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'ScalingAdjustment' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'Cooldown' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You have already reached a limit for your Auto Scaling resources (for example, groups, launch configurations, or lifecycle hooks). For more information, see DescribeAccountLimits.', - 'class' => 'LimitExceededException', - ), - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'PutScheduledUpdateGroupAction' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'PutScheduledUpdateGroupAction', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'AutoScalingGroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - 'ScheduledActionName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'Time' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time', - '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', - ), - 'Recurrence' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'MinSize' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'MaxSize' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'DesiredCapacity' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have an Auto Scaling group or launch configuration with this name.', - 'class' => 'AlreadyExistsException', - ), - array( - 'reason' => 'You have already reached a limit for your Auto Scaling resources (for example, groups, launch configurations, or lifecycle hooks). For more information, see DescribeAccountLimits.', - 'class' => 'LimitExceededException', - ), - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - '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, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'ResumeProcesses' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ResumeProcesses', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'AutoScalingGroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - 'ScalingProcesses' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'ScalingProcesses.member', - 'items' => array( - 'name' => 'XmlStringMaxLen255', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The Auto Scaling group or launch configuration can\'t be deleted because it is in use.', - 'class' => 'ResourceInUseException', - ), - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'SetDesiredCapacity' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'SetDesiredCapacity', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'AutoScalingGroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - 'DesiredCapacity' => array( - 'required' => true, - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'HonorCooldown' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The Auto Scaling group can\'t be deleted because there are scaling activities in progress.', - 'class' => 'ScalingActivityInProgressException', - ), - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'SetInstanceHealth' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'SetInstanceHealth', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'InstanceId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 16, - ), - 'HealthStatus' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 32, - ), - 'ShouldRespectGracePeriod' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'SuspendProcesses' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'SuspendProcesses', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'AutoScalingGroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - 'ScalingProcesses' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'ScalingProcesses.member', - 'items' => array( - 'name' => 'XmlStringMaxLen255', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The Auto Scaling group or launch configuration can\'t be deleted because it is in use.', - 'class' => 'ResourceInUseException', - ), - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'TerminateInstanceInAutoScalingGroup' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ActivityType', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'TerminateInstanceInAutoScalingGroup', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'InstanceId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 16, - ), - 'ShouldDecrementDesiredCapacity' => array( - 'required' => true, - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The Auto Scaling group can\'t be deleted because there are scaling activities in progress.', - 'class' => 'ScalingActivityInProgressException', - ), - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - 'UpdateAutoScalingGroup' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'UpdateAutoScalingGroup', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-01-01', - ), - 'AutoScalingGroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - 'LaunchConfigurationName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1600, - ), - 'MinSize' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'MaxSize' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'DesiredCapacity' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'DefaultCooldown' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'AvailabilityZones' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'AvailabilityZones.member', - 'minItems' => 1, - 'items' => array( - 'name' => 'XmlStringMaxLen255', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - 'HealthCheckType' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 32, - ), - 'HealthCheckGracePeriod' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'PlacementGroup' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'VPCZoneIdentifier' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'TerminationPolicies' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'TerminationPolicies.member', - 'items' => array( - 'name' => 'XmlStringMaxLen1600', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 1600, - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The Auto Scaling group can\'t be deleted because there are scaling activities in progress.', - 'class' => 'ScalingActivityInProgressException', - ), - array( - 'reason' => 'You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).', - 'class' => 'ResourceContentionException', - ), - ), - ), - ), - 'models' => array( - 'EmptyOutput' => 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, - 'properties' => array( - 'AdjustmentTypes' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'AdjustmentType', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'AdjustmentType' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'AutoScalingGroupsType' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'AutoScalingGroups' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'AutoScalingGroup', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'AutoScalingGroupName' => array( - 'type' => 'string', - ), - 'AutoScalingGroupARN' => array( - 'type' => 'string', - ), - 'LaunchConfigurationName' => array( - 'type' => 'string', - ), - 'MinSize' => array( - 'type' => 'numeric', - ), - 'MaxSize' => array( - 'type' => 'numeric', - ), - 'DesiredCapacity' => array( - 'type' => 'numeric', - ), - 'DefaultCooldown' => array( - 'type' => 'numeric', - ), - 'AvailabilityZones' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'XmlStringMaxLen255', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'LoadBalancerNames' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'XmlStringMaxLen255', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'HealthCheckType' => array( - 'type' => 'string', - ), - 'HealthCheckGracePeriod' => array( - 'type' => 'numeric', - ), - 'Instances' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Instance', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'InstanceId' => array( - 'type' => 'string', - ), - 'AvailabilityZone' => array( - 'type' => 'string', - ), - 'LifecycleState' => array( - 'type' => 'string', - ), - 'HealthStatus' => array( - 'type' => 'string', - ), - 'LaunchConfigurationName' => array( - 'type' => 'string', - ), - ), - ), - ), - 'CreatedTime' => array( - 'type' => 'string', - ), - 'SuspendedProcesses' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'SuspendedProcess', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'ProcessName' => array( - 'type' => 'string', - ), - 'SuspensionReason' => array( - 'type' => 'string', - ), - ), - ), - ), - 'PlacementGroup' => array( - 'type' => 'string', - ), - 'VPCZoneIdentifier' => array( - 'type' => 'string', - ), - 'EnabledMetrics' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'EnabledMetric', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'Metric' => array( - 'type' => 'string', - ), - 'Granularity' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Status' => array( - 'type' => 'string', - ), - 'Tags' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'TagDescription', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'ResourceId' => array( - 'type' => 'string', - ), - 'ResourceType' => array( - 'type' => 'string', - ), - 'Key' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - 'PropagateAtLaunch' => array( - 'type' => 'boolean', - ), - ), - ), - ), - 'TerminationPolicies' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'XmlStringMaxLen1600', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'AutoScalingInstancesType' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'AutoScalingInstances' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'AutoScalingInstanceDetails', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'InstanceId' => array( - 'type' => 'string', - ), - 'AutoScalingGroupName' => array( - 'type' => 'string', - ), - 'AvailabilityZone' => array( - 'type' => 'string', - ), - 'LifecycleState' => array( - 'type' => 'string', - ), - 'HealthStatus' => array( - 'type' => 'string', - ), - 'LaunchConfigurationName' => array( - 'type' => 'string', - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'DescribeAutoScalingNotificationTypesAnswer' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'AutoScalingNotificationTypes' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'XmlStringMaxLen255', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - ), - ), - 'LaunchConfigurationsType' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'LaunchConfigurations' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'LaunchConfiguration', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'LaunchConfigurationName' => array( - 'type' => 'string', - ), - 'LaunchConfigurationARN' => array( - 'type' => 'string', - ), - 'ImageId' => array( - 'type' => 'string', - ), - 'KeyName' => array( - 'type' => 'string', - ), - 'SecurityGroups' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'XmlString', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'ClassicLinkVPCId' => array( - 'type' => 'string', - ), - 'ClassicLinkVPCSecurityGroups' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'XmlStringMaxLen255', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'UserData' => array( - 'type' => 'string', - ), - 'InstanceType' => array( - 'type' => 'string', - ), - 'KernelId' => array( - 'type' => 'string', - ), - 'RamdiskId' => array( - 'type' => 'string', - ), - 'BlockDeviceMappings' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BlockDeviceMapping', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'VirtualName' => array( - 'type' => 'string', - ), - 'DeviceName' => array( - 'type' => 'string', - ), - 'Ebs' => array( - 'type' => 'object', - 'properties' => array( - 'SnapshotId' => array( - 'type' => 'string', - ), - 'VolumeSize' => array( - 'type' => 'numeric', - ), - 'VolumeType' => array( - 'type' => 'string', - ), - 'DeleteOnTermination' => array( - 'type' => 'boolean', - ), - 'Iops' => array( - 'type' => 'numeric', - ), - ), - ), - 'NoDevice' => array( - 'type' => 'boolean', - ), - ), - ), - ), - 'InstanceMonitoring' => array( - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'type' => 'boolean', - ), - ), - ), - 'SpotPrice' => array( - 'type' => 'string', - ), - 'IamInstanceProfile' => array( - 'type' => 'string', - ), - 'CreatedTime' => array( - 'type' => 'string', - ), - 'EbsOptimized' => array( - 'type' => 'boolean', - ), - 'AssociatePublicIpAddress' => array( - 'type' => 'boolean', - ), - 'PlacementTenancy' => array( - 'type' => 'string', - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - 'DescribeLoadBalancersResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'LoadBalancers' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'LoadBalancerState', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'LoadBalancerName' => array( - 'type' => 'string', - ), - 'State' => array( - 'type' => 'string', - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'DescribeMetricCollectionTypesAnswer' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Metrics' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'MetricCollectionType', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'Metric' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Granularities' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'MetricGranularityType', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'Granularity' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'DescribeNotificationConfigurationsAnswer' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'NotificationConfigurations' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'NotificationConfiguration', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'AutoScalingGroupName' => array( - 'type' => 'string', - ), - 'TopicARN' => array( - 'type' => 'string', - ), - 'NotificationType' => array( - 'type' => 'string', - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'PoliciesType' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ScalingPolicies' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'ScalingPolicy', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'AutoScalingGroupName' => array( - 'type' => 'string', - ), - 'PolicyName' => array( - 'type' => 'string', - ), - 'PolicyARN' => array( - 'type' => 'string', - ), - 'MinAdjustmentStep' => array( - 'type' => 'numeric', - ), - 'AdjustmentType' => array( - 'type' => 'string', - ), - 'ScalingAdjustment' => array( - 'type' => 'numeric', - ), - 'Cooldown' => array( - 'type' => 'numeric', - ), - 'Alarms' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Alarm', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'AlarmName' => array( - 'type' => 'string', - ), - 'AlarmARN' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ActivitiesType' => 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', - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ProcessesType' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Processes' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'ProcessType', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'ProcessName' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'ScheduledActionsType' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ScheduledUpdateGroupActions' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'ScheduledUpdateGroupAction', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'AutoScalingGroupName' => array( - 'type' => 'string', - ), - 'ScheduledActionName' => array( - 'type' => 'string', - ), - 'ScheduledActionARN' => array( - 'type' => 'string', - ), - 'Time' => array( - 'type' => 'string', - ), - 'StartTime' => array( - 'type' => 'string', - ), - 'EndTime' => array( - 'type' => 'string', - ), - 'Recurrence' => array( - 'type' => 'string', - ), - 'MinSize' => array( - 'type' => 'numeric', - ), - 'MaxSize' => array( - 'type' => 'numeric', - ), - 'DesiredCapacity' => array( - 'type' => 'numeric', - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'TagsType' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Tags' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'TagDescription', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'ResourceId' => array( - 'type' => 'string', - ), - 'ResourceType' => array( - 'type' => 'string', - ), - 'Key' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - 'PropagateAtLaunch' => array( - 'type' => 'boolean', - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'DescribeTerminationPolicyTypesAnswer' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TerminationPolicyTypes' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'XmlStringMaxLen1600', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - ), - ), - '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, - 'properties' => array( - 'PolicyARN' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ActivityType' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Activity' => array( - 'type' => 'object', - 'location' => 'xml', - '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', - ), - ), - ), - ), - ), - ), - 'iterators' => array( - '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/lib/aws-sdk/Aws/AwsClient.php b/lib/aws-sdk/Aws/AwsClient.php new file mode 100644 index 0000000..44ee031 --- /dev/null +++ b/lib/aws-sdk/Aws/AwsClient.php @@ -0,0 +1,350 @@ +parseClass(); + if (!isset($args['service'])) { + $args['service'] = Sdk::getEndpointPrefix($service); + } + if (!isset($args['exception_class'])) { + $args['exception_class'] = $exceptionClass; + } + + $this->handlerList = new HandlerList(); + $resolver = new ClientResolver(static::getArguments()); + $config = $resolver->resolve($args, $this->handlerList); + $this->api = $config['api']; + $this->signatureProvider = $config['signature_provider']; + $this->endpoint = new Uri($config['endpoint']); + $this->credentialProvider = $config['credentials']; + $this->region = isset($config['region']) ? $config['region'] : null; + $this->config = $config['config']; + $this->defaultRequestOptions = $config['http']; + $this->addSignatureMiddleware(); + + if (isset($args['with_resolved'])) { + $args['with_resolved']($config); + } + } + + public function getHandlerList() + { + return $this->handlerList; + } + + public function __call($name, array $args) + { + $params = isset($args[0]) ? $args[0] : []; + + if (substr($name, -5) === 'Async') { + return $this->executeAsync( + $this->getCommand(substr($name, 0, -5), $params) + ); + } + + return $this->execute($this->getCommand($name, $params)); + } + + public function getConfig($option = null) + { + return $option === null + ? $this->config + : (isset($this->config[$option]) + ? $this->config[$option] + : null); + } + + public function getCredentials() + { + $fn = $this->credentialProvider; + return $fn(); + } + + public function getEndpoint() + { + return $this->endpoint; + } + + public function getRegion() + { + return $this->region; + } + + public function getApi() + { + return $this->api; + } + + public function execute(CommandInterface $command) + { + return $this->executeAsync($command)->wait(); + } + + public function executeAsync(CommandInterface $command) + { + $handler = $command->getHandlerList()->resolve(); + return $handler($command); + } + + public function getCommand($name, array $args = []) + { + // Fail fast if the command cannot be found in the description. + if (!isset($this->api['operations'][$name])) { + $name = ucfirst($name); + if (!isset($this->api['operations'][$name])) { + throw new \InvalidArgumentException("Operation not found: $name"); + } + } + + if (!isset($args['@http'])) { + $args['@http'] = $this->defaultRequestOptions; + } else { + $args['@http'] += $this->defaultRequestOptions; + } + + return new Command($name, $args, clone $this->getHandlerList()); + } + + public function getIterator($name, array $args = []) + { + $config = $this->api->getPaginatorConfig($name); + if (!$config['result_key']) { + throw new \UnexpectedValueException(sprintf( + 'There are no resources to iterate for the %s operation of %s', + $name, $this->api['serviceFullName'] + )); + } + + $key = is_array($config['result_key']) + ? $config['result_key'][0] + : $config['result_key']; + + if ($config['output_token'] && $config['input_token']) { + return $this->getPaginator($name, $args)->search($key); + } + + $result = $this->getCommand($name, $args)->search($key); + + return new \ArrayIterator((array) $result); + } + + public function getPaginator($name, array $args = []) + { + $config = $this->api->getPaginatorConfig($name); + + return new ResultPaginator($this, $name, $args, $config); + } + + public function waitUntil($name, array $args = []) + { + return $this->getWaiter($name, $args)->promise()->wait(); + } + + public function getWaiter($name, array $args = []) + { + $config = isset($args['@waiter']) ? $args['@waiter'] : []; + $config += $this->api->getWaiterConfig($name); + + return new Waiter($this, $name, $args, $config); + } + + /** + * Get the signature_provider function of the client. + * + * @return callable + */ + final protected function getSignatureProvider() + { + return $this->signatureProvider; + } + + /** + * Parse the class name and setup the custom exception class of the client + * and return the "service" name of the client and "exception_class". + * + * @return array + */ + private function parseClass() + { + $klass = get_class($this); + + if ($klass === __CLASS__) { + return ['', 'Aws\Exception\AwsException']; + } + + $service = substr($klass, strrpos($klass, '\\') + 1, -6); + + return [ + strtolower($service), + "Aws\\{$service}\\Exception\\{$service}Exception" + ]; + } + + private function addSignatureMiddleware() + { + // Sign requests. This may need to be modified later to support + // variable signatures per/operation. + $this->handlerList->appendSign( + Middleware::signer( + $this->credentialProvider, + constantly(SignatureProvider::resolve( + $this->signatureProvider, + $this->config['signature_version'], + $this->api->getSigningName(), + $this->region + )) + ), + 'signer' + ); + } + + /** + * Returns a service model and doc model with any necessary changes + * applied. + * + * @param array $api Array of service data being documented. + * @param array $docs Array of doc model data. + * + * @return array Tuple containing a [Service, DocModel] + * + * @internal This should only used to document the service API. + * @codeCoverageIgnore + */ + public static function applyDocFilters(array $api, array $docs) + { + return [ + new Service($api, ApiProvider::defaultProvider()), + new DocModel($docs) + ]; + } + + /** + * @deprecated + * @return static + */ + public static function factory(array $config = []) + { + return new static($config); + } +} diff --git a/lib/aws-sdk/Aws/AwsClientInterface.php b/lib/aws-sdk/Aws/AwsClientInterface.php new file mode 100644 index 0000000..12a5701 --- /dev/null +++ b/lib/aws-sdk/Aws/AwsClientInterface.php @@ -0,0 +1,169 @@ +getWaiter('foo', ['bar' => 'baz']); + * $waiter->promise()->then(function () { echo 'Done!'; }); + * + * @param string|callable $name Name of the waiter that defines the wait + * configuration and conditions. + * @param array $args Args to be used with each command executed + * by the waiter. Waiter configuration options + * can be provided in an associative array in + * the @waiter key. + * @return \Aws\Waiter + * @throws \UnexpectedValueException if the waiter is invalid. + */ + public function getWaiter($name, array $args = []); +} diff --git a/lib/aws-sdk/Aws/CacheInterface.php b/lib/aws-sdk/Aws/CacheInterface.php new file mode 100644 index 0000000..e77f18b --- /dev/null +++ b/lib/aws-sdk/Aws/CacheInterface.php @@ -0,0 +1,34 @@ + 'is_resource', + 'callable' => 'is_callable', + 'int' => 'is_int', + 'bool' => 'is_bool', + 'string' => 'is_string', + 'object' => 'is_object', + 'array' => 'is_array', + ]; + + private static $defaultArgs = [ + 'service' => [ + 'type' => 'value', + 'valid' => ['string'], + 'doc' => 'Name of the service to utilize. This value will be supplied by default when using one of the SDK clients (e.g., Aws\\S3\\S3Client).', + 'required' => true, + 'internal' => true + ], + 'exception_class' => [ + 'type' => 'value', + 'valid' => ['string'], + 'doc' => 'Exception class to create when an error occurs.', + 'default' => 'Aws\Exception\AwsException', + 'internal' => true + ], + 'scheme' => [ + 'type' => 'value', + 'valid' => ['string'], + 'default' => 'https', + 'doc' => 'URI scheme to use when connecting connect. The SDK will utilize "https" endpoints (i.e., utilize SSL/TLS connections) by default. You can attempt to connect to a service over an unencrypted "http" endpoint by setting ``scheme`` to "http".', + ], + 'endpoint' => [ + 'type' => 'value', + 'valid' => ['string'], + 'doc' => 'The full URI of the webservice. This is only required when connecting to a custom endpoint (e.g., a local version of S3).', + ], + 'region' => [ + 'type' => 'value', + 'valid' => ['string'], + 'required' => [__CLASS__, '_missing_region'], + 'doc' => 'Region to connect to. See http://docs.aws.amazon.com/general/latest/gr/rande.html for a list of available regions.', + ], + 'version' => [ + 'type' => 'value', + 'valid' => ['string'], + 'required' => [__CLASS__, '_missing_version'], + 'doc' => 'The version of the webservice to utilize (e.g., 2006-03-01).', + ], + 'signature_provider' => [ + 'type' => 'value', + 'valid' => ['callable'], + 'doc' => 'A callable that accepts a signature version name (e.g., "v4"), a service name, and region, and returns a SignatureInterface object or null. This provider is used to create signers utilized by the client. See Aws\\Signature\\SignatureProvider for a list of built-in providers', + 'default' => [__CLASS__, '_default_signature_provider'], + ], + 'endpoint_provider' => [ + 'type' => 'value', + 'valid' => ['callable'], + 'fn' => [__CLASS__, '_apply_endpoint_provider'], + 'doc' => 'An optional PHP callable that accepts a hash of options including a "service" and "region" key and returns NULL or a hash of endpoint data, of which the "endpoint" key is required. See Aws\\Endpoint\\EndpointProvider for a list of built-in providers.', + 'default' => [__CLASS__, '_default_endpoint_provider'], + ], + 'api_provider' => [ + 'type' => 'value', + 'valid' => ['callable'], + 'doc' => 'An optional PHP callable that accepts a type, service, and version argument, and returns an array of corresponding configuration data. The type value can be one of api, waiter, or paginator.', + 'fn' => [__CLASS__, '_apply_api_provider'], + 'default' => [ApiProvider::class, 'defaultProvider'], + ], + 'signature_version' => [ + 'type' => 'config', + 'valid' => ['string'], + 'doc' => 'A string representing a custom signature version to use with a service (e.g., v4). Note that per/operation signature version MAY override this requested signature version.', + 'default' => [__CLASS__, '_default_signature_version'], + ], + 'profile' => [ + 'type' => 'config', + 'valid' => ['string'], + 'doc' => 'Allows you to specify which profile to use when credentials are created from the AWS credentials file in your HOME directory. This setting overrides the AWS_PROFILE environment variable. Note: Specifying "profile" will cause the "credentials" key to be ignored.', + 'fn' => [__CLASS__, '_apply_profile'], + ], + 'credentials' => [ + 'type' => 'value', + 'valid' => ['Aws\Credentials\CredentialsInterface', 'array', 'bool', 'callable'], + 'doc' => 'Specifies the credentials used to sign requests. Provide an Aws\Credentials\CredentialsInterface object, an associative array of "key", "secret", and an optional "token" key, `false` to use null credentials, or a callable credentials provider used to create credentials or return null. See Aws\\Credentials\\CredentialProvider for a list of built-in credentials providers. If no credentials are provided, the SDK will attempt to load them from the environment.', + 'fn' => [__CLASS__, '_apply_credentials'], + 'default' => [CredentialProvider::class, 'defaultProvider'], + ], + 'retries' => [ + 'type' => 'value', + 'valid' => ['int'], + 'doc' => 'Configures the maximum number of allowed retries for a client (pass 0 to disable retries). ', + 'fn' => [__CLASS__, '_apply_retries'], + 'default' => 3, + ], + 'validate' => [ + 'type' => 'value', + 'valid' => ['bool'], + 'default' => true, + 'doc' => 'Set to false to disable client-side parameter validation.', + 'fn' => [__CLASS__, '_apply_validate'], + ], + 'debug' => [ + 'type' => 'value', + 'valid' => ['bool', 'array'], + 'doc' => 'Set to true to display debug information when sending requests. Alternatively, you can provide an associative array with the following keys: logfn: (callable) Function that is invoked with log messages; stream_size: (int) When the size of a stream is greater than this number, the stream data will not be logged (set to "0" to not log any stream data); scrub_auth: (bool) Set to false to disable the scrubbing of auth data from the logged messages; http: (bool) Set to false to disable the "debug" feature of lower level HTTP adapters (e.g., verbose curl output).', + 'fn' => [__CLASS__, '_apply_debug'], + ], + 'http' => [ + 'type' => 'value', + 'valid' => ['array'], + 'default' => [], + 'doc' => 'Set to an array of SDK request options to apply to each request (e.g., proxy, verify, etc.).', + ], + 'http_handler' => [ + 'type' => 'value', + 'valid' => ['callable'], + 'doc' => 'An HTTP handler is a function that accepts a PSR-7 request object and returns a promise that is fulfilled with a PSR-7 response object or rejected with an array of exception data. NOTE: This option supersedes any provided "handler" option.', + 'fn' => [__CLASS__, '_apply_http_handler'] + ], + 'handler' => [ + 'type' => 'value', + 'valid' => ['callable'], + 'doc' => 'A handler that accepts a command object, request object and returns a promise that is fulfilled with an Aws\ResultInterface object or rejected with an Aws\Exception\AwsException. A handler does not accept a next handler as it is terminal and expected to fulfill a command. If no handler is provided, a default Guzzle handler will be utilized.', + 'fn' => [__CLASS__, '_apply_handler'], + 'default' => [__CLASS__, '_default_handler'] + ] + ]; + + /** + * Gets an array of default client arguments, each argument containing a + * hash of the following: + * + * - type: (string, required) option type described as follows: + * - value: The default option type. + * - config: The provided value is made available in the client's + * getConfig() method. + * - valid: (array, required) Valid PHP types or class names. Note: null + * is not an allowed type. + * - required: (bool, callable) Whether or not the argument is required. + * Provide a function that accepts an array of arguments and returns a + * string to provide a custom error message. + * - default: (mixed) The default value of the argument if not provided. If + * a function is provided, then it will be invoked to provide a default + * value. The function is provided the array of options and is expected + * to return the default value of the option. + * - doc: (string) The argument documentation string. + * - fn: (callable) Function used to apply the argument. The function + * accepts the provided value, array of arguments by reference, and an + * event emitter. + * + * Note: Order is honored and important when applying arguments. + * + * @return array + */ + public static function getDefaultArguments() + { + return self::$defaultArgs; + } + + /** + * @param array $argDefinitions Client arguments. + */ + public function __construct(array $argDefinitions) + { + $this->argDefinitions = $argDefinitions; + } + + /** + * Resolves client configuration options and attached event listeners. + * + * @param array $args Provided constructor arguments. + * @param HandlerList $list Handler list to augment. + * + * @return array Returns the array of provided options. + * @throws \InvalidArgumentException + * @see Aws\AwsClient::__construct for a list of available options. + */ + public function resolve(array $args, HandlerList $list) + { + $args['config'] = []; + foreach ($this->argDefinitions as $key => $a) { + // Add defaults, validate required values, and skip if not set. + if (!isset($args[$key])) { + if (isset($a['default'])) { + // Merge defaults in when not present. + $args[$key] = is_callable($a['default']) + ? $a['default']($args) + : $a['default']; + } elseif (empty($a['required'])) { + continue; + } else { + $this->throwRequired($args); + } + } + + // Validate the types against the provided value. + foreach ($a['valid'] as $check) { + if (isset(self::$typeMap[$check])) { + $fn = self::$typeMap[$check]; + if ($fn($args[$key])) { + goto is_valid; + } + } elseif ($args[$key] instanceof $check) { + goto is_valid; + } + } + + $this->invalidType($key, $args[$key]); + + // Apply the value + is_valid: + if (isset($a['fn'])) { + $a['fn']($args[$key], $args, $list); + } + + if ($a['type'] === 'config') { + $args['config'][$key] = $args[$key]; + } + } + + return $args; + } + + /** + * Creates a verbose error message for an invalid argument. + * + * @param string $name Name of the argument that is missing. + * @param array $args Provided arguments + * @param bool $useRequired Set to true to show the required fn text if + * available instead of the documentation. + * @return string + */ + private function getArgMessage($name, $args = [], $useRequired = false) + { + $arg = $this->argDefinitions[$name]; + $msg = ''; + $modifiers = []; + if (isset($arg['valid'])) { + $modifiers[] = implode('|', $arg['valid']); + } + if (isset($arg['choice'])) { + $modifiers[] = 'One of ' . implode(', ', $arg['choice']); + } + if ($modifiers) { + $msg .= '(' . implode('; ', $modifiers) . ')'; + } + $msg = wordwrap("{$name}: {$msg}", 75, "\n "); + + if ($useRequired && is_callable($arg['required'])) { + $msg .= "\n\n "; + $msg .= str_replace("\n", "\n ", call_user_func($arg['required'], $args)); + } elseif (isset($arg['doc'])) { + $msg .= wordwrap("\n\n {$arg['doc']}", 75, "\n "); + } + + return $msg; + } + + /** + * Throw when an invalid type is encountered. + * + * @param string $name Name of the value being validated. + * @param mixed $provided The provided value. + * @throws \InvalidArgumentException + */ + private function invalidType($name, $provided) + { + $expected = implode('|', $this->argDefinitions[$name]['valid']); + $msg = "Invalid configuration value " + . "provided for \"{$name}\". Expected {$expected}, but got " + . describe_type($provided) . "\n\n" + . $this->getArgMessage($name); + throw new \InvalidArgumentException($msg); + } + + /** + * Throws an exception for missing required arguments. + * + * @param array $args Passed in arguments. + * @throws \InvalidArgumentException + */ + private function throwRequired(array $args) + { + $missing = []; + foreach ($this->argDefinitions as $k => $a) { + if (empty($a['required']) + || isset($a['default']) + || array_key_exists($k, $args) + ) { + continue; + } + $missing[] = $this->getArgMessage($k, $args, true); + } + $msg = "Missing required client configuration options: \n\n"; + $msg .= implode("\n\n", $missing); + throw new IAE($msg); + } + + public static function _apply_retries($value, array &$args, HandlerList $list) + { + if ($value) { + $decider = RetryMiddleware::createDefaultDecider($value); + $list->appendSign(Middleware::retry($decider), 'retry'); + } + } + + public static function _apply_credentials($value, array &$args) + { + if (is_callable($value)) { + return; + } elseif ($value instanceof CredentialsInterface) { + $args['credentials'] = CredentialProvider::fromCredentials($value); + } elseif (is_array($value) + && isset($value['key']) + && isset($value['secret']) + ) { + $args['credentials'] = CredentialProvider::fromCredentials( + new Credentials( + $value['key'], + $value['secret'], + isset($value['token']) ? $value['token'] : null, + isset($value['expires']) ? $value['expires'] : null + ) + ); + } elseif ($value === false) { + $args['credentials'] = CredentialProvider::fromCredentials( + new Credentials('', '') + ); + $args['config']['signature_version'] = 'anonymous'; + } else { + throw new IAE('Credentials must be an instance of ' + . 'Aws\Credentials\CredentialsInterface, an associative ' + . 'array that contains "key", "secret", and an optional "token" ' + . 'key-value pairs, a credentials provider function, or false.'); + } + } + + public static function _apply_api_provider(callable $value, array &$args, HandlerList $list) + { + $api = new Service( + ApiProvider::resolve( + $value, + 'api', + $args['service'], + $args['version'] + ), + $value + ); + $args['api'] = $api; + $args['serializer'] = Service::createSerializer($api, $args['endpoint']); + $args['parser'] = Service::createParser($api); + $args['error_parser'] = Service::createErrorParser($api->getProtocol()); + $list->prependBuild(Middleware::requestBuilder($args['serializer']), 'builder'); + } + + public static function _apply_endpoint_provider(callable $value, array &$args) + { + if (!isset($args['endpoint'])) { + // Invoke the endpoint provider and throw if it does not resolve. + $result = EndpointProvider::resolve($value, [ + 'service' => $args['service'], + 'region' => $args['region'], + 'scheme' => $args['scheme'] + ]); + + $args['endpoint'] = $result['endpoint']; + + if (isset($result['signatureVersion'])) { + $args['config']['signature_version'] = $result['signatureVersion']; + } + } + } + + public static function _apply_debug($value, array &$args, HandlerList $list) + { + if ($value !== false) { + $list->interpose(new TraceMiddleware($value === true ? [] : $value)); + } + } + + public static function _apply_profile($_, array &$args) + { + $args['credentials'] = CredentialProvider::ini($args['profile']); + } + + public static function _apply_validate($value, array &$args, HandlerList $list) + { + if ($value === true) { + $list->appendValidate( + Middleware::validation($args['api'], new Validator()), + 'validation' + ); + } + } + + public static function _apply_handler($value, array &$args, HandlerList $list) + { + $list->setHandler($value); + } + + public static function _default_handler(array &$args) + { + return new WrappedHttpHandler( + default_http_handler(), + $args['parser'], + $args['error_parser'], + $args['exception_class'] + ); + } + + public static function _apply_http_handler($value, array &$args, HandlerList $list) + { + $args['handler'] = new WrappedHttpHandler( + $value, + $args['parser'], + $args['error_parser'], + $args['exception_class'] + ); + } + + public static function _default_endpoint_provider() + { + return EndpointProvider::defaultProvider(); + } + + public static function _default_signature_provider() + { + return SignatureProvider::defaultProvider(); + } + + public static function _default_signature_version(array &$args) + { + return isset($args['config']['signature_version']) + ? $args['config']['signature_version'] + : $args['api']->getSignatureVersion(); + } + + public static function _missing_version(array $args) + { + $service = isset($args['service']) ? $args['service'] : ''; + $versions = ApiProvider::defaultProvider()->getVersions($service); + $versions = implode("\n", array_map(function ($v) { + return "* \"$v\""; + }, $versions)) ?: '* (none found)'; + + return <<setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/cloudformation-%s.php' - )) - ->build(); - } -} +class CloudFormationClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/CloudFormation/Enum/Capability.php b/lib/aws-sdk/Aws/CloudFormation/Enum/Capability.php deleted file mode 100644 index a89a4d8..0000000 --- a/lib/aws-sdk/Aws/CloudFormation/Enum/Capability.php +++ /dev/null @@ -1,27 +0,0 @@ - '2010-05-15', - 'endpointPrefix' => 'cloudformation', - 'serviceFullName' => 'AWS CloudFormation', - 'serviceType' => 'query', - 'resultWrapped' => true, - 'signatureVersion' => 'v4', - 'namespace' => 'CloudFormation', - 'regions' => array( - 'us-east-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'cloudformation.us-east-1.amazonaws.com', - ), - 'us-west-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'cloudformation.us-west-1.amazonaws.com', - ), - 'us-west-2' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'cloudformation.us-west-2.amazonaws.com', - ), - 'eu-west-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'cloudformation.eu-west-1.amazonaws.com', - ), - 'ap-northeast-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'cloudformation.ap-northeast-1.amazonaws.com', - ), - 'ap-southeast-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'cloudformation.ap-southeast-1.amazonaws.com', - ), - 'ap-southeast-2' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'cloudformation.ap-southeast-2.amazonaws.com', - ), - 'sa-east-1' => array( - 'http' => false, - '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, - 'hostname' => 'cloudformation.us-gov-west-1.amazonaws.com', - ), - ), - 'operations' => array( - 'CancelUpdateStack' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CancelUpdateStack', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-15', - ), - 'StackName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - 'CreateStack' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'CreateStackOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateStack', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-15', - ), - 'StackName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'TemplateBody' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - ), - 'TemplateURL' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'Parameters' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Parameters.member', - 'items' => array( - 'name' => 'Parameter', - 'type' => 'object', - 'properties' => array( - 'ParameterKey' => array( - 'type' => 'string', - ), - 'ParameterValue' => array( - 'type' => 'string', - ), - 'UsePreviousValue' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - ), - 'DisableRollback' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'TimeoutInMinutes' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 1, - ), - 'NotificationARNs' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'NotificationARNs.member', - 'maxItems' => 5, - 'items' => array( - 'name' => 'NotificationARN', - 'type' => 'string', - ), - ), - 'Capabilities' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Capabilities.member', - 'items' => array( - 'name' => 'Capability', - 'type' => 'string', - ), - ), - 'OnFailure' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'StackPolicyBody' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 16384, - ), - 'StackPolicyURL' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1350, - ), - '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' => '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', - ), - ), - ), - 'DeleteStack' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteStack', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-15', - ), - 'StackName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - 'DescribeStackEvents' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeStackEventsOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeStackEvents', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-15', - ), - 'StackName' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1024, - ), - ), - ), - 'DescribeStackResource' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeStackResourceOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeStackResource', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-15', - ), - 'StackName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'LogicalResourceId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - 'DescribeStackResources' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeStackResourcesOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeStackResources', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-15', - ), - 'StackName' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'LogicalResourceId' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'PhysicalResourceId' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - 'DescribeStacks' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeStacksOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeStacks', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-15', - ), - 'StackName' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1024, - ), - ), - ), - 'EstimateTemplateCost' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EstimateTemplateCostOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'EstimateTemplateCost', - ), - '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, - ), - 'Parameters' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Parameters.member', - 'items' => array( - 'name' => 'Parameter', - 'type' => 'object', - 'properties' => array( - 'ParameterKey' => array( - 'type' => 'string', - ), - 'ParameterValue' => array( - 'type' => 'string', - ), - 'UsePreviousValue' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - ), - ), - ), - 'GetStackPolicy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetStackPolicyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetStackPolicy', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-15', - ), - 'StackName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - 'GetTemplate' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetTemplateOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetTemplate', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-15', - ), - 'StackName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - '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' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListStackResourcesOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListStackResources', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-15', - ), - 'StackName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1024, - ), - ), - ), - 'ListStacks' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListStacksOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListStacks', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-15', - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'StackStatusFilter' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'StackStatusFilter.member', - 'items' => array( - 'name' => 'StackStatus', - 'type' => 'string', - ), - ), - ), - ), - 'SetStackPolicy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'SetStackPolicy', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-15', - ), - 'StackName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'StackPolicyBody' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 16384, - ), - 'StackPolicyURL' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1350, - ), - ), - ), - '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' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'UpdateStackOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'UpdateStack', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-15', - ), - 'StackName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'TemplateBody' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - ), - 'TemplateURL' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'UsePreviousTemplate' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'StackPolicyDuringUpdateBody' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 16384, - ), - 'StackPolicyDuringUpdateURL' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1350, - ), - 'Parameters' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Parameters.member', - 'items' => array( - 'name' => 'Parameter', - 'type' => 'object', - 'properties' => array( - 'ParameterKey' => array( - 'type' => 'string', - ), - 'ParameterValue' => array( - 'type' => 'string', - ), - 'UsePreviousValue' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - ), - 'Capabilities' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Capabilities.member', - 'items' => array( - 'name' => 'Capability', - 'type' => 'string', - ), - ), - 'StackPolicyBody' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 16384, - ), - 'StackPolicyURL' => array( - 'type' => 'string', - 'location' => 'aws.query', - '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', - ), - ), - ), - 'ValidateTemplate' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ValidateTemplateOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ValidateTemplate', - ), - '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, - ), - ), - ), - ), - 'models' => array( - 'EmptyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), - 'CreateStackOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'StackId' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'DescribeStackEventsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'StackEvents' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'StackEvent', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'StackId' => array( - 'type' => 'string', - ), - 'EventId' => array( - 'type' => 'string', - ), - 'StackName' => array( - 'type' => 'string', - ), - 'LogicalResourceId' => array( - 'type' => 'string', - ), - 'PhysicalResourceId' => array( - 'type' => 'string', - ), - 'ResourceType' => array( - 'type' => 'string', - ), - 'Timestamp' => array( - 'type' => 'string', - ), - 'ResourceStatus' => array( - 'type' => 'string', - ), - 'ResourceStatusReason' => array( - 'type' => 'string', - ), - 'ResourceProperties' => array( - 'type' => 'string', - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'DescribeStackResourceOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'StackResourceDetail' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'StackName' => array( - 'type' => 'string', - ), - 'StackId' => array( - 'type' => 'string', - ), - 'LogicalResourceId' => array( - 'type' => 'string', - ), - 'PhysicalResourceId' => array( - 'type' => 'string', - ), - 'ResourceType' => array( - 'type' => 'string', - ), - 'LastUpdatedTimestamp' => array( - 'type' => 'string', - ), - 'ResourceStatus' => array( - 'type' => 'string', - ), - 'ResourceStatusReason' => array( - 'type' => 'string', - ), - 'Description' => array( - 'type' => 'string', - ), - 'Metadata' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'DescribeStackResourcesOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'StackResources' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'StackResource', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'StackName' => array( - 'type' => 'string', - ), - 'StackId' => array( - 'type' => 'string', - ), - 'LogicalResourceId' => array( - 'type' => 'string', - ), - 'PhysicalResourceId' => array( - 'type' => 'string', - ), - 'ResourceType' => array( - 'type' => 'string', - ), - 'Timestamp' => array( - 'type' => 'string', - ), - 'ResourceStatus' => array( - 'type' => 'string', - ), - 'ResourceStatusReason' => array( - 'type' => 'string', - ), - 'Description' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'DescribeStacksOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Stacks' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'Stack', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'StackId' => array( - 'type' => 'string', - ), - 'StackName' => array( - 'type' => 'string', - ), - 'Description' => array( - 'type' => 'string', - ), - 'Parameters' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Parameter', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'ParameterKey' => array( - 'type' => 'string', - ), - 'ParameterValue' => array( - 'type' => 'string', - ), - 'UsePreviousValue' => array( - 'type' => 'boolean', - ), - ), - ), - ), - 'CreationTime' => array( - 'type' => 'string', - ), - 'LastUpdatedTime' => array( - 'type' => 'string', - ), - 'StackStatus' => array( - 'type' => 'string', - ), - 'StackStatusReason' => array( - 'type' => 'string', - ), - 'DisableRollback' => array( - 'type' => 'boolean', - ), - 'NotificationARNs' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'NotificationARN', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'TimeoutInMinutes' => array( - 'type' => 'numeric', - ), - 'Capabilities' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Capability', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'Outputs' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Output', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'OutputKey' => array( - 'type' => 'string', - ), - 'OutputValue' => array( - 'type' => 'string', - ), - 'Description' => 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', - ), - ), - ), - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'EstimateTemplateCostOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Url' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'GetStackPolicyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'StackPolicyBody' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'GetTemplateOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TemplateBody' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - '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', - ), - 'ParameterConstraints' => array( - 'type' => 'object', - 'properties' => array( - 'AllowedValues' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AllowedValue', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - ), - ), - ), - ), - ), - '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', - ), - 'Metadata' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ListStackResourcesOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'StackResourceSummaries' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'StackResourceSummary', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'LogicalResourceId' => array( - 'type' => 'string', - ), - 'PhysicalResourceId' => array( - 'type' => 'string', - ), - 'ResourceType' => array( - 'type' => 'string', - ), - 'LastUpdatedTimestamp' => array( - 'type' => 'string', - ), - 'ResourceStatus' => array( - 'type' => 'string', - ), - 'ResourceStatusReason' => array( - 'type' => 'string', - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ListStacksOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'StackSummaries' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'StackSummary', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'StackId' => array( - 'type' => 'string', - ), - 'StackName' => array( - 'type' => 'string', - ), - 'TemplateDescription' => array( - 'type' => 'string', - ), - 'CreationTime' => array( - 'type' => 'string', - ), - 'LastUpdatedTime' => array( - 'type' => 'string', - ), - 'DeletionTime' => array( - 'type' => 'string', - ), - 'StackStatus' => array( - 'type' => 'string', - ), - 'StackStatusReason' => array( - 'type' => 'string', - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'UpdateStackOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'StackId' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ValidateTemplateOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Parameters' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'TemplateParameter', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'ParameterKey' => array( - 'type' => 'string', - ), - 'DefaultValue' => 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', - ), - ), - ), - ), - 'iterators' => array( - '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/lib/aws-sdk/Aws/CloudFront/CloudFrontClient.php b/lib/aws-sdk/Aws/CloudFront/CloudFrontClient.php index 031cf04..da978aa 100644 --- a/lib/aws-sdk/Aws/CloudFront/CloudFrontClient.php +++ b/lib/aws-sdk/Aws/CloudFront/CloudFrontClient.php @@ -1,234 +1,54 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/cloudfront-%s.php', - )) - ->setExceptionParser(new DefaultXmlExceptionParser()) - ->build(); - } - - /** - * Create a signed URL. Keep in mind that URLs meant for use in media/flash players may have different requirements - * for URL formats (e.g. some require that the extension be removed, some require the file name to be prefixed - - * mp4:, some require you to add "/cfx/st" into your URL). See - * http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/WorkingWithStreamingDistributions.html for - * additional details and help. + * Create a signed Amazon CloudFront URL. * * This method accepts an array of configuration options: - * - url: (string) URL of the resource being signed (can include query string and wildcards). For example: - * rtmp://s5c39gqb8ow64r.cloudfront.net/videos/mp3_name.mp3 - * http://d111111abcdef8.cloudfront.net/images/horizon.jpg?size=large&license=yes - * - policy: (string) JSON policy. Use this option when creating a signed URL for a custom policy. - * - expires: (int) UTC Unix timestamp used when signing with a canned policy. Not required when passing a - * custom 'policy' option. - * - key_pair_id: (string) The ID of the key pair used to sign CloudFront URLs for private distributions. - * - private_key: (string) The filepath ot the private key used to sign CloudFront URLs for private distributions. + * + * - url: (string) URL of the resource being signed (can include query + * string and wildcards). For example: rtmp://s5c39gqb8ow64r.cloudfront.net/videos/mp3_name.mp3 + * http://d111111abcdef8.cloudfront.net/images/horizon.jpg?size=large&license=yes + * - policy: (string) JSON policy. Use this option when creating a signed + * URL for a custom policy. + * - expires: (int) UTC Unix timestamp used when signing with a canned + * policy. Not required when passing a custom 'policy' option. + * - key_pair_id: (string) The ID of the key pair used to sign CloudFront + * URLs for private distributions. + * - private_key: (string) The filepath ot the private key used to sign + * CloudFront URLs for private distributions. * * @param array $options Array of configuration options used when signing * - * @return string The file URL with authentication parameters - * @throws InvalidArgumentException if key_pair_id and private_key have not been configured on the client - * @throws RequiredExtensionNotLoadedException if the openssl extension is not installed - * @link http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/WorkingWithStreamingDistributions.html + * @return string Signed URL with authentication parameters + * @throws \InvalidArgumentException if url, key_pair_id, or private_key + * were not specified. + * @link http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/WorkingWithStreamingDistributions.html */ public function getSignedUrl(array $options) { - if (!extension_loaded('openssl')) { - //@codeCoverageIgnoreStart - throw new RequiredExtensionNotLoadedException('The openssl extension is required to sign CloudFront urls.'); - //@codeCoverageIgnoreEnd - } - - // Initialize the configuration data and ensure that the url was specified - $options = Collection::fromConfig($options, array_filter(array( - 'key_pair_id' => $this->getConfig('key_pair_id'), - 'private_key' => $this->getConfig('private_key'), - )), array('url', 'key_pair_id', 'private_key')); - - // Determine the scheme of the url - $urlSections = explode('://', $options['url']); - if (count($urlSections) < 2) { - throw new InvalidArgumentException('Invalid URL: ' . $options['url']); - } - - // Get the real scheme by removing wildcards from the scheme - $scheme = str_replace('*', '', $urlSections[0]); - $policy = $options['policy'] ?: $this->createCannedPolicy($scheme, $options['url'], $options['expires']); - // Strip whitespace from the policy - $policy = str_replace(' ', '', $policy); - - $url = Url::factory($scheme . '://' . $urlSections[1]); - if ($options['policy']) { - // Custom policies require that the encoded policy be specified in the URL - $url->getQuery()->set('Policy', strtr(base64_encode($policy), '+=/', '-_~')); - } else { - // Canned policies require that the Expires parameter be set in the URL - $url->getQuery()->set('Expires', $options['expires']); - } - - // Sign the policy using the CloudFront private key - $signedPolicy = $this->rsaSha1Sign($policy, $options['private_key']); - // Remove whitespace, base64 encode the policy, and replace special characters - $signedPolicy = strtr(base64_encode($signedPolicy), '+=/', '-_~'); - - $url->getQuery() - ->set('Signature', $signedPolicy) - ->set('Key-Pair-Id', $options['key_pair_id']); - - if ($scheme != 'rtmp') { - // HTTP and HTTPS signed URLs include the full URL - return (string) $url; - } else { - // Use a relative URL when creating Flash player URLs - $url->getQuery()->useUrlEncoding(false); - $url->setScheme(null)->setHost(null); - return substr($url, 1); - } - } - - /** - * Sign a policy string using OpenSSL RSA SHA1 - * - * @param string $policy Policy to sign - * @param string $privateKeyFilename File containing the OpenSSL private key - * - * @return string - */ - protected function rsaSha1Sign($policy, $privateKeyFilename) - { - $signature = ''; - openssl_sign($policy, $signature, file_get_contents($privateKeyFilename)); - - return $signature; - } - - /** - * Create a canned policy for a particular URL and expiration - * - * @param string $scheme Parsed scheme without wildcards - * @param string $url URL that is being signed - * @param int $expires Time in which the signature expires - * - * @return string - * @throws InvalidArgumentException if the expiration is not set - */ - protected function createCannedPolicy($scheme, $url, $expires) - { - if (!$expires) { - throw new InvalidArgumentException('An expires option is required when using a canned policy'); - } - - // Generate a canned policy - if ($scheme == 'http' || $scheme == 'https') { - $resource = $url; - } 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'], '/\\'); - if (isset($parts['query'])) { - $resource .= "?{$parts['query']}"; + foreach (['url', 'key_pair_id', 'private_key'] as $required) { + if (!isset($options[$required])) { + throw new \InvalidArgumentException("$required is required"); } - } else { - throw new InvalidArgumentException("Invalid URI scheme: {$scheme}. Must be one of http or rtmp."); } - return sprintf( - '{"Statement":[{"Resource":"%s","Condition":{"DateLessThan":{"AWS:EpochTime":%d}}}]}', - $resource, - $expires + $UrlSigner = new UrlSigner( + $options['key_pair_id'], + $options['private_key'] + ); + + return $UrlSigner->getSignedUrl( + $options['url'], + isset($options['expires']) ? $options['expires'] : null, + isset($options['policy']) ? $options['policy'] : null ); } } diff --git a/lib/aws-sdk/Aws/CloudFront/CloudFrontSignature.php b/lib/aws-sdk/Aws/CloudFront/CloudFrontSignature.php deleted file mode 100644 index dcc6482..0000000 --- a/lib/aws-sdk/Aws/CloudFront/CloudFrontSignature.php +++ /dev/null @@ -1,61 +0,0 @@ -hasHeader('date') && !$request->hasHeader('x-amz-date')) { - $request->setHeader('Date', gmdate(DateFormat::RFC2822)); - } - - $stringToSign = (string) $request->getHeader('Date') ?: (string) $request->getHeader('x-amz-date'); - $request->getParams()->set('aws.string_to_sign', $stringToSign); - - $request->setHeader( - 'Authorization', - 'AWS ' . $credentials->getAccessKeyId() . ':' . $this->signString($stringToSign, $credentials) - ); - } - - /** - * Sign a signature string by applying SHA-1 HMAC hashing. - * - * @param string $string The signature string to hash. - * @param CredentialsInterface $credentials Signing credentials. - * - * @return string The hashed signature string. - */ - public function signString($string, CredentialsInterface $credentials) - { - return base64_encode(hash_hmac('sha1', $string, $credentials->getSecretKey(), true)); - } -} diff --git a/lib/aws-sdk/Aws/CloudFront/Enum/GeoRestrictionType.php b/lib/aws-sdk/Aws/CloudFront/Enum/GeoRestrictionType.php deleted file mode 100644 index a9c3361..0000000 --- a/lib/aws-sdk/Aws/CloudFront/Enum/GeoRestrictionType.php +++ /dev/null @@ -1,29 +0,0 @@ - '2012-05-05', - 'endpointPrefix' => 'cloudfront', - 'serviceFullName' => 'Amazon CloudFront', - 'serviceAbbreviation' => 'CloudFront', - 'serviceType' => 'rest-xml', - 'globalEndpoint' => 'cloudfront.amazonaws.com', - 'signatureVersion' => 'cloudfront', - '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' => '/2012-05-05/origin-access-identity/cloudfront', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'CreateCloudFrontOriginAccessIdentityResult', - 'responseType' => 'model', - 'summary' => 'Create a new origin access identity.', - 'data' => array( - 'xmlRoot' => array( - 'name' => 'CloudFrontOriginAccessIdentityConfig', - 'namespaces' => array( - 'http://cloudfront.amazonaws.com/doc/2012-05-05/', - ), - ), - ), - 'parameters' => array( - 'CallerReference' => array( - 'required' => true, - 'description' => 'A unique number that ensures the request can\'t be replayed. If the CallerReference is new (no matter the content of the CloudFrontOriginAccessIdentityConfig object), a new origin access identity is created. If the CallerReference is a value you already sent in a previous request to create an identity, and the content of the CloudFrontOriginAccessIdentityConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request. 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.', - 'type' => 'string', - 'location' => 'xml', - ), - 'Comment' => array( - 'required' => true, - 'description' => 'Any comments you want to include about the origin access identity.', - 'type' => 'string', - 'location' => 'xml', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - 'errorResponses' => array( - array( - 'class' => 'CloudFrontOriginAccessIdentityAlreadyExistsException', - ), - array( - 'class' => 'MissingBodyException', - ), - array( - 'class' => 'TooManyCloudFrontOriginAccessIdentitiesException', - ), - array( - 'class' => 'InvalidArgumentException', - ), - array( - 'class' => 'InconsistentQuantitiesException', - ), - ), - ), - 'CreateDistribution' => array( - 'httpMethod' => 'POST', - 'uri' => '/2012-05-05/distribution', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'CreateDistributionResult', - 'responseType' => 'model', - 'summary' => 'Create a new distribution.', - 'data' => array( - 'xmlRoot' => array( - 'name' => 'DistributionConfig', - 'namespaces' => array( - 'http://cloudfront.amazonaws.com/doc/2012-05-05/', - ), - ), - ), - 'parameters' => array( - 'CallerReference' => array( - 'required' => true, - 'description' => 'A unique number that ensures the request can\'t be replayed. If the CallerReference is new (no matter the content of the DistributionConfig object), a new distribution is created. If the CallerReference is a value you already sent in a previous request to create a distribution, and the content of the DistributionConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request. If the CallerReference is a value you already sent in a previous request to create a distribution but the content of the DistributionConfig is different from the original request, CloudFront returns a DistributionAlreadyExists error.', - 'type' => 'string', - 'location' => 'xml', - ), - 'Aliases' => array( - 'required' => true, - 'description' => 'A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Quantity' => array( - 'required' => true, - 'description' => 'The number of CNAMEs, if any, for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains CNAME elements, if any, for this distribution. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'CNAME', - 'type' => 'string', - ), - ), - ), - ), - 'DefaultRootObject' => array( - 'required' => true, - 'description' => 'The object that you want CloudFront to return (for example, index.html) when an end user requests the root URL for your distribution (http://www.example.com) instead of an object in your distribution (http://www.example.com/index.html). Specifying a default root object avoids exposing the contents of your distribution. If you don\'t want to specify a default root object when you create a distribution, include an empty DefaultRootObject element. To delete the default root object from an existing distribution, update the distribution configuration and include an empty DefaultRootObject element. To replace the default root object, update the distribution configuration and specify the new object.', - 'type' => 'string', - 'location' => 'xml', - ), - 'Origins' => array( - 'required' => true, - 'description' => 'A complex type that contains information about origins for this distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Quantity' => array( - 'required' => true, - 'description' => 'The number of origins for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'A complex type that contains origins for this distribution.', - 'type' => 'array', - 'minItems' => 1, - 'items' => array( - 'name' => 'Origin', - 'description' => 'A complex type that describes the Amazon S3 bucket or the HTTP server (for example, a web server) from which CloudFront gets your files.You must create at least one origin.', - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'required' => true, - 'description' => 'A unique identifier for the origin. The value of Id must be unique within the distribution. You use the value of Id when you create a cache behavior. The Id identifies the origin that CloudFront routes a request to when the request matches the path pattern for that cache behavior.', - 'type' => 'string', - ), - 'DomainName' => array( - 'required' => true, - 'description' => 'Amazon S3 origins: The DNS name of the Amazon S3 bucket from which you want CloudFront to get objects for this origin, for example, myawsbucket.s3.amazonaws.com. Custom origins: The DNS domain name for the HTTP server from which you want CloudFront to get objects for this origin, for example, www.example.com.', - 'type' => 'string', - ), - 'S3OriginConfig' => array( - 'description' => 'A complex type that contains information about the Amazon S3 origin. If the origin is a custom origin, use the CustomOriginConfig element instead.', - 'type' => 'object', - 'properties' => array( - 'OriginAccessIdentity' => array( - 'required' => true, - 'description' => 'The CloudFront origin access identity to associate with the origin. Use an origin access identity to configure the origin so that end users can only access objects in an Amazon S3 bucket through CloudFront. If you want end users to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty OriginAccessIdentity element. To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty OriginAccessIdentity element. To replace the origin access identity, update the distribution configuration and specify the new origin access identity.', - 'type' => 'string', - ), - ), - ), - 'CustomOriginConfig' => array( - 'description' => 'A complex type that contains information about a custom origin. If the origin is an Amazon S3 bucket, use the S3OriginConfig element instead.', - 'type' => 'object', - 'properties' => array( - 'HTTPPort' => array( - 'required' => true, - 'description' => 'The HTTP port the custom origin listens on.', - 'type' => 'numeric', - ), - 'HTTPSPort' => array( - 'required' => true, - 'description' => 'The HTTPS port the custom origin listens on.', - 'type' => 'numeric', - ), - 'OriginProtocolPolicy' => array( - 'required' => true, - 'description' => 'The origin protocol policy to apply to your origin.', - 'type' => 'string', - 'enum' => array( - 'http-only', - 'match-viewer', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'DefaultCacheBehavior' => array( - 'required' => true, - 'description' => 'A complex type that describes the default cache behavior if you do not specify a CacheBehavior element or if files don\'t match any of the values of PathPattern in CacheBehavior elements.You must create exactly one default cache behavior.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'TargetOriginId' => array( - 'required' => true, - 'description' => 'The value of ID for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.', - 'type' => 'string', - ), - 'ForwardedValues' => array( - 'required' => true, - 'description' => 'A complex type that specifies how CloudFront handles query strings.', - 'type' => 'object', - 'properties' => array( - 'QueryString' => array( - 'required' => true, - 'description' => 'Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior. If so, specify true; if not, specify false.', - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - 'TrustedSigners' => array( - 'required' => true, - 'description' => 'A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don\'t want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it\'s currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.', - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'required' => true, - 'description' => 'Specifies whether you want to require end users to use signed URLs to access the files specified by PathPattern and TargetOriginId.', - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - 'Quantity' => array( - 'required' => true, - 'description' => 'The number of trusted signers for this cache behavior.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains trusted signers for this cache behavior. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'AwsAccountNumber', - 'type' => 'string', - ), - ), - ), - ), - 'ViewerProtocolPolicy' => array( - 'required' => true, - 'description' => 'Use this element to specify the protocol that users can use to access the files in the origin specified by TargetOriginId when a request matches the path pattern in PathPattern. If you want CloudFront to allow end users to use any available protocol, specify allow-all. If you want CloudFront to require HTTPS, specify https.', - 'type' => 'string', - 'enum' => array( - 'allow-all', - 'https-only', - ), - ), - 'MinTTL' => array( - 'required' => true, - 'description' => 'The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront queries your origin to see whether the object has been updated.You can specify a value from 0 to 3,153,600,000 seconds (100 years).', - 'type' => 'numeric', - ), - ), - ), - 'CacheBehaviors' => array( - 'required' => true, - 'description' => 'A complex type that contains zero or more CacheBehavior elements.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Quantity' => array( - 'required' => true, - 'description' => 'The number of cache behaviors for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains cache behaviors for this distribution. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'CacheBehavior', - 'description' => 'A complex type that describes how CloudFront processes requests. You can create up to 10 cache behaviors.You must create at least as many cache behaviors (including the default cache behavior) as you have origins if you want CloudFront to distribute objects from all of the origins. Each cache behavior specifies the one origin from which you want CloudFront to get objects. If you have two origins and only the default cache behavior, the default cache behavior will cause CloudFront to get objects from one of the origins, but the other origin will never be used. If you don\'t want to specify any cache behaviors, include only an empty CacheBehaviors element. Don\'t include an empty CacheBehavior element, or CloudFront returns a MalformedXML error. To delete all cache behaviors in an existing distribution, update the distribution configuration and include only an empty CacheBehaviors element. To add, change, or remove one or more cache behaviors, update the distribution configuration and specify all of the cache behaviors that you want to include in the updated distribution.', - 'type' => 'object', - 'properties' => array( - 'PathPattern' => array( - 'required' => true, - 'description' => 'The pattern (for example, images/*.jpg) that specifies which requests you want this cache behavior to apply to. When CloudFront receives an end-user request, the requested path is compared with path patterns in the order in which cache behaviors are listed in the distribution. The path pattern for the default cache behavior is * and cannot be changed. If the request for an object does not match the path pattern for any cache behaviors, CloudFront applies the behavior in the default cache behavior.', - 'type' => 'string', - ), - 'TargetOriginId' => array( - 'required' => true, - 'description' => 'The value of ID for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.', - 'type' => 'string', - ), - 'ForwardedValues' => array( - 'required' => true, - 'description' => 'A complex type that specifies how CloudFront handles query strings.', - 'type' => 'object', - 'properties' => array( - 'QueryString' => array( - 'required' => true, - 'description' => 'Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior. If so, specify true; if not, specify false.', - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - 'TrustedSigners' => array( - 'required' => true, - 'description' => 'A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don\'t want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it\'s currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.', - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'required' => true, - 'description' => 'Specifies whether you want to require end users to use signed URLs to access the files specified by PathPattern and TargetOriginId.', - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - 'Quantity' => array( - 'required' => true, - 'description' => 'The number of trusted signers for this cache behavior.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains trusted signers for this cache behavior. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'AwsAccountNumber', - 'type' => 'string', - ), - ), - ), - ), - 'ViewerProtocolPolicy' => array( - 'required' => true, - 'description' => 'Use this element to specify the protocol that users can use to access the files in the origin specified by TargetOriginId when a request matches the path pattern in PathPattern. If you want CloudFront to allow end users to use any available protocol, specify allow-all. If you want CloudFront to require HTTPS, specify https.', - 'type' => 'string', - 'enum' => array( - 'allow-all', - 'https-only', - ), - ), - 'MinTTL' => array( - 'required' => true, - 'description' => 'The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront queries your origin to see whether the object has been updated.You can specify a value from 0 to 3,153,600,000 seconds (100 years).', - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - 'Comment' => array( - 'required' => true, - 'description' => 'Any comments you want to include about the distribution.', - 'type' => 'string', - 'location' => 'xml', - ), - 'Logging' => array( - 'required' => true, - 'description' => 'A complex type that controls whether access logs are written for the distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Enabled' => array( - 'required' => true, - 'description' => 'Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you do not want to enable logging when you create a distribution or if you want to disable logging for an existing distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket and Prefix, the values are automatically deleted.', - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - 'Bucket' => array( - 'required' => true, - 'description' => 'The Amazon S3 bucket to store the access logs in, for example, myawslogbucket.s3.amazonaws.com.', - 'type' => 'string', - ), - 'Prefix' => array( - 'required' => true, - 'description' => 'An optional string that you want CloudFront to prefix to the access log filenames for this distribution, for example, myprefix/. If you want to enable logging, but you do not want to specify a prefix, you still must include an empty Prefix element in the Logging element.', - 'type' => 'string', - ), - ), - ), - 'Enabled' => array( - 'required' => true, - 'description' => 'Whether the distribution is enabled to accept end user requests for content.', - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'xml', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - 'errorResponses' => array( - array( - 'class' => 'CNAMEAlreadyExistsException', - ), - array( - 'class' => 'DistributionAlreadyExistsException', - ), - array( - 'class' => 'InvalidOriginException', - ), - array( - 'class' => 'InvalidOriginAccessIdentityException', - ), - array( - 'class' => 'AccessDeniedException', - ), - array( - 'class' => 'TooManyTrustedSignersException', - ), - array( - 'class' => 'TrustedSignerDoesNotExistException', - ), - array( - 'class' => 'MissingBodyException', - ), - array( - 'class' => 'TooManyDistributionCNAMEsException', - ), - array( - 'class' => 'TooManyDistributionsException', - ), - array( - 'class' => 'InvalidDefaultRootObjectException', - ), - array( - 'class' => 'InvalidArgumentException', - ), - array( - 'class' => 'InvalidRequiredProtocolException', - ), - array( - 'class' => 'NoSuchOriginException', - ), - array( - 'class' => 'TooManyOriginsException', - ), - array( - 'class' => 'TooManyCacheBehaviorsException', - ), - array( - 'class' => 'InconsistentQuantitiesException', - ), - ), - ), - 'CreateInvalidation' => array( - 'httpMethod' => 'POST', - 'uri' => '/2012-05-05/distribution/{DistributionId}/invalidation', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'CreateInvalidationResult', - 'responseType' => 'model', - 'summary' => 'Create a new invalidation.', - 'data' => array( - 'xmlRoot' => array( - 'name' => 'InvalidationBatch', - 'namespaces' => array( - 'http://cloudfront.amazonaws.com/doc/2012-05-05/', - ), - ), - ), - 'parameters' => array( - 'DistributionId' => array( - 'required' => true, - 'description' => 'The distribution\'s id.', - 'type' => 'string', - 'location' => 'uri', - ), - 'Paths' => array( - 'required' => true, - 'description' => 'The path of the object to invalidate. The path is relative to the distribution and must begin with a slash (/). You must enclose each invalidation object with the Path element tags. If the path includes non-ASCII characters or unsafe characters as defined in RFC 1783 (http://www.ietf.org/rfc/rfc1738.txt), URL encode those characters. Do not URL encode any other characters in the path, or CloudFront will not invalidate the old version of the updated object.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Quantity' => array( - 'required' => true, - 'description' => 'The number of objects that you want to invalidate.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'A complex type that contains a list of the objects that you want to invalidate.', - 'type' => 'array', - 'items' => array( - 'name' => 'Path', - 'type' => 'string', - ), - ), - ), - ), - 'CallerReference' => array( - 'required' => true, - 'description' => 'A unique name that ensures the request can\'t be replayed. If the CallerReference is new (no matter the content of the Path object), a new distribution is created. If the CallerReference is a value you already sent in a previous request to create an invalidation batch, and the content of each Path element is identical to the original request, the response includes the same information returned to the original request. If the CallerReference is a value you already sent in a previous request to create a distribution but the content of any Path is different from the original request, CloudFront returns an InvalidationBatchAlreadyExists error.', - 'type' => 'string', - 'location' => 'xml', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - 'errorResponses' => array( - array( - 'class' => 'AccessDeniedException', - ), - array( - 'class' => 'MissingBodyException', - ), - array( - 'class' => 'InvalidArgumentException', - ), - array( - 'class' => 'NoSuchDistributionException', - ), - array( - 'class' => 'BatchTooLargeException', - ), - array( - 'class' => 'TooManyInvalidationsInProgressException', - ), - array( - 'class' => 'InconsistentQuantitiesException', - ), - ), - ), - 'CreateStreamingDistribution' => array( - 'httpMethod' => 'POST', - 'uri' => '/2012-05-05/streaming-distribution', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'CreateStreamingDistributionResult', - 'responseType' => 'model', - 'summary' => 'Create a new streaming distribution.', - 'data' => array( - 'xmlRoot' => array( - 'name' => 'StreamingDistributionConfig', - 'namespaces' => array( - 'http://cloudfront.amazonaws.com/doc/2012-05-05/', - ), - ), - ), - 'parameters' => array( - 'CallerReference' => array( - 'required' => true, - 'description' => 'A unique number that ensures the request can\'t be replayed. If the CallerReference is new (no matter the content of the StreamingDistributionConfig object), a new streaming distribution is created. If the CallerReference is a value you already sent in a previous request to create a streaming distribution, and the content of the StreamingDistributionConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request. If the CallerReference is a value you already sent in a previous request to create a streaming distribution but the content of the StreamingDistributionConfig is different from the original request, CloudFront returns a DistributionAlreadyExists error.', - 'type' => 'string', - 'location' => 'xml', - ), - 'S3Origin' => array( - 'required' => true, - 'description' => 'A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'DomainName' => array( - 'required' => true, - 'description' => 'The DNS name of the S3 origin.', - 'type' => 'string', - ), - 'OriginAccessIdentity' => array( - 'required' => true, - 'description' => 'Your S3 origin\'s origin access identity.', - 'type' => 'string', - ), - ), - ), - 'Aliases' => array( - 'required' => true, - 'description' => 'A complex type that contains information about CNAMEs (alternate domain names), if any, for this streaming distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Quantity' => array( - 'required' => true, - 'description' => 'The number of CNAMEs, if any, for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains CNAME elements, if any, for this distribution. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'CNAME', - 'type' => 'string', - ), - ), - ), - ), - 'Comment' => array( - 'required' => true, - 'description' => 'Any comments you want to include about the streaming distribution.', - 'type' => 'string', - 'location' => 'xml', - ), - 'Logging' => array( - 'required' => true, - 'description' => 'A complex type that controls whether access logs are written for the streaming distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Enabled' => array( - 'required' => true, - 'description' => 'Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you do not want to enable logging when you create a distribution or if you want to disable logging for an existing distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket and Prefix, the values are automatically deleted.', - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - 'Bucket' => array( - 'required' => true, - 'description' => 'The Amazon S3 bucket to store the access logs in, for example, myawslogbucket.s3.amazonaws.com.', - 'type' => 'string', - ), - 'Prefix' => array( - 'required' => true, - 'description' => 'An optional string that you want CloudFront to prefix to the access log filenames for this distribution, for example, myprefix/. If you want to enable logging, but you do not want to specify a prefix, you still must include an empty Prefix element in the Logging element.', - 'type' => 'string', - ), - ), - ), - 'TrustedSigners' => array( - 'required' => true, - 'description' => 'A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don\'t want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it\'s currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Enabled' => array( - 'required' => true, - 'description' => 'Specifies whether you want to require end users to use signed URLs to access the files specified by PathPattern and TargetOriginId.', - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - 'Quantity' => array( - 'required' => true, - 'description' => 'The number of trusted signers for this cache behavior.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains trusted signers for this cache behavior. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'AwsAccountNumber', - 'type' => 'string', - ), - ), - ), - ), - 'Enabled' => array( - 'required' => true, - 'description' => 'Whether the streaming distribution is enabled to accept end user requests for content.', - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'xml', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - 'errorResponses' => array( - array( - 'class' => 'CNAMEAlreadyExistsException', - ), - array( - 'class' => 'StreamingDistributionAlreadyExistsException', - ), - array( - 'class' => 'InvalidOriginException', - ), - array( - 'class' => 'InvalidOriginAccessIdentityException', - ), - array( - 'class' => 'AccessDeniedException', - ), - array( - 'class' => 'TooManyTrustedSignersException', - ), - array( - 'class' => 'TrustedSignerDoesNotExistException', - ), - array( - 'class' => 'MissingBodyException', - ), - array( - 'class' => 'TooManyStreamingDistributionCNAMEsException', - ), - array( - 'class' => 'TooManyStreamingDistributionsException', - ), - array( - 'class' => 'InvalidArgumentException', - ), - array( - 'class' => 'InconsistentQuantitiesException', - ), - ), - ), - 'DeleteCloudFrontOriginAccessIdentity' => array( - 'httpMethod' => 'DELETE', - 'uri' => '/2012-05-05/origin-access-identity/cloudfront/{Id}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'DeleteCloudFrontOriginAccessIdentity2012_05_05Output', - 'responseType' => 'model', - 'summary' => 'Delete an origin access identity.', - 'parameters' => array( - 'Id' => array( - 'required' => true, - 'description' => 'The origin access identity\'s id.', - 'type' => 'string', - 'location' => 'uri', - ), - 'IfMatch' => array( - 'description' => 'The value of the ETag header you received from a previous GET or PUT request. For example: E2QWRUHAPOMQZL.', - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'If-Match', - ), - ), - 'errorResponses' => array( - array( - 'class' => 'AccessDeniedException', - ), - array( - 'class' => 'InvalidIfMatchVersionException', - ), - array( - 'class' => 'NoSuchCloudFrontOriginAccessIdentityException', - ), - array( - 'class' => 'PreconditionFailedException', - ), - array( - 'class' => 'CloudFrontOriginAccessIdentityInUseException', - ), - ), - ), - 'DeleteDistribution' => array( - 'httpMethod' => 'DELETE', - 'uri' => '/2012-05-05/distribution/{Id}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'DeleteDistribution2012_05_05Output', - 'responseType' => 'model', - 'summary' => 'Delete a distribution.', - 'parameters' => array( - 'Id' => array( - 'required' => true, - 'description' => 'The distribution id.', - 'type' => 'string', - 'location' => 'uri', - ), - 'IfMatch' => array( - 'description' => 'The value of the ETag header you received when you disabled the distribution. For example: E2QWRUHAPOMQZL.', - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'If-Match', - ), - ), - 'errorResponses' => array( - array( - 'class' => 'AccessDeniedException', - ), - array( - 'class' => 'DistributionNotDisabledException', - ), - array( - 'class' => 'InvalidIfMatchVersionException', - ), - array( - 'class' => 'NoSuchDistributionException', - ), - array( - 'class' => 'PreconditionFailedException', - ), - ), - ), - 'DeleteStreamingDistribution' => array( - 'httpMethod' => 'DELETE', - 'uri' => '/2012-05-05/streaming-distribution/{Id}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'DeleteStreamingDistribution2012_05_05Output', - 'responseType' => 'model', - 'summary' => 'Delete a streaming distribution.', - 'parameters' => array( - 'Id' => array( - 'required' => true, - 'description' => 'The distribution id.', - 'type' => 'string', - 'location' => 'uri', - ), - 'IfMatch' => array( - 'description' => 'The value of the ETag header you received when you disabled the streaming distribution. For example: E2QWRUHAPOMQZL.', - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'If-Match', - ), - ), - 'errorResponses' => array( - array( - 'class' => 'AccessDeniedException', - ), - array( - 'class' => 'StreamingDistributionNotDisabledException', - ), - array( - 'class' => 'InvalidIfMatchVersionException', - ), - array( - 'class' => 'NoSuchStreamingDistributionException', - ), - array( - 'class' => 'PreconditionFailedException', - ), - ), - ), - 'GetCloudFrontOriginAccessIdentity' => array( - 'httpMethod' => 'GET', - 'uri' => '/2012-05-05/origin-access-identity/cloudfront/{Id}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'GetCloudFrontOriginAccessIdentityResult', - 'responseType' => 'model', - 'summary' => 'Get the information about an origin access identity.', - 'parameters' => array( - 'Id' => array( - 'required' => true, - 'description' => 'The identity\'s id.', - 'type' => 'string', - 'location' => 'uri', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - 'errorResponses' => array( - array( - 'class' => 'NoSuchCloudFrontOriginAccessIdentityException', - ), - array( - 'class' => 'AccessDeniedException', - ), - ), - ), - 'GetCloudFrontOriginAccessIdentityConfig' => array( - 'httpMethod' => 'GET', - 'uri' => '/2012-05-05/origin-access-identity/cloudfront/{Id}/config', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'GetCloudFrontOriginAccessIdentityConfigResult', - 'responseType' => 'model', - 'summary' => 'Get the configuration information about an origin access identity.', - 'parameters' => array( - 'Id' => array( - 'required' => true, - 'description' => 'The identity\'s id.', - 'type' => 'string', - 'location' => 'uri', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - 'errorResponses' => array( - array( - 'class' => 'NoSuchCloudFrontOriginAccessIdentityException', - ), - array( - 'class' => 'AccessDeniedException', - ), - ), - ), - 'GetDistribution' => array( - 'httpMethod' => 'GET', - 'uri' => '/2012-05-05/distribution/{Id}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'GetDistributionResult', - 'responseType' => 'model', - 'summary' => 'Get the information about a distribution.', - 'parameters' => array( - 'Id' => array( - 'required' => true, - 'description' => 'The distribution\'s id.', - 'type' => 'string', - 'location' => 'uri', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - 'errorResponses' => array( - array( - 'class' => 'NoSuchDistributionException', - ), - array( - 'class' => 'AccessDeniedException', - ), - ), - ), - 'GetDistributionConfig' => array( - 'httpMethod' => 'GET', - 'uri' => '/2012-05-05/distribution/{Id}/config', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'GetDistributionConfigResult', - 'responseType' => 'model', - 'summary' => 'Get the configuration information about a distribution.', - 'parameters' => array( - 'Id' => array( - 'required' => true, - 'description' => 'The distribution\'s id.', - 'type' => 'string', - 'location' => 'uri', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - 'errorResponses' => array( - array( - 'class' => 'NoSuchDistributionException', - ), - array( - 'class' => 'AccessDeniedException', - ), - ), - ), - 'GetInvalidation' => array( - 'httpMethod' => 'GET', - 'uri' => '/2012-05-05/distribution/{DistributionId}/invalidation/{Id}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'GetInvalidationResult', - 'responseType' => 'model', - 'summary' => 'Get the information about an invalidation.', - 'parameters' => array( - 'DistributionId' => array( - 'required' => true, - 'description' => 'The distribution\'s id.', - 'type' => 'string', - 'location' => 'uri', - ), - 'Id' => array( - 'required' => true, - 'description' => 'The invalidation\'s id.', - 'type' => 'string', - 'location' => 'uri', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - 'errorResponses' => array( - array( - 'class' => 'NoSuchInvalidationException', - ), - array( - 'class' => 'NoSuchDistributionException', - ), - array( - 'class' => 'AccessDeniedException', - ), - ), - ), - 'GetStreamingDistribution' => array( - 'httpMethod' => 'GET', - 'uri' => '/2012-05-05/streaming-distribution/{Id}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'GetStreamingDistributionResult', - 'responseType' => 'model', - 'summary' => 'Get the information about a streaming distribution.', - 'parameters' => array( - 'Id' => array( - 'required' => true, - 'description' => 'The streaming distribution\'s id.', - 'type' => 'string', - 'location' => 'uri', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - 'errorResponses' => array( - array( - 'class' => 'NoSuchStreamingDistributionException', - ), - array( - 'class' => 'AccessDeniedException', - ), - ), - ), - 'GetStreamingDistributionConfig' => array( - 'httpMethod' => 'GET', - 'uri' => '/2012-05-05/streaming-distribution/{Id}/config', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'GetStreamingDistributionConfigResult', - 'responseType' => 'model', - 'summary' => 'Get the configuration information about a streaming distribution.', - 'parameters' => array( - 'Id' => array( - 'required' => true, - 'description' => 'The streaming distribution\'s id.', - 'type' => 'string', - 'location' => 'uri', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - 'errorResponses' => array( - array( - 'class' => 'NoSuchStreamingDistributionException', - ), - array( - 'class' => 'AccessDeniedException', - ), - ), - ), - 'ListCloudFrontOriginAccessIdentities' => array( - 'httpMethod' => 'GET', - 'uri' => '/2012-05-05/origin-access-identity/cloudfront', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'ListCloudFrontOriginAccessIdentitiesResult', - 'responseType' => 'model', - 'summary' => 'List origin access identities.', - 'parameters' => array( - 'Marker' => array( - 'description' => 'Use this when paginating results to indicate where to begin in your list of origin access identities. The results include identities in the list that occur after the marker. To get the next page of results, set the Marker to the value of the NextMarker from the current page\'s response (which is also the ID of the last identity on that page).', - 'type' => 'string', - 'location' => 'query', - ), - 'MaxItems' => array( - 'description' => 'The maximum number of origin access identities you want in the response body.', - 'type' => 'string', - 'location' => 'query', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - 'errorResponses' => array( - array( - 'class' => 'InvalidArgumentException', - ), - ), - ), - 'ListDistributions' => array( - 'httpMethod' => 'GET', - 'uri' => '/2012-05-05/distribution', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'ListDistributionsResult', - 'responseType' => 'model', - 'summary' => 'List distributions.', - 'parameters' => array( - 'Marker' => array( - 'description' => 'Use this when paginating results to indicate where to begin in your list of distributions. The results include distributions in the list that occur after the marker. To get the next page of results, set the Marker to the value of the NextMarker from the current page\'s response (which is also the ID of the last distribution on that page).', - 'type' => 'string', - 'location' => 'query', - ), - 'MaxItems' => array( - 'description' => 'The maximum number of distributions you want in the response body.', - 'type' => 'string', - 'location' => 'query', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - 'errorResponses' => array( - array( - 'class' => 'InvalidArgumentException', - ), - ), - ), - 'ListInvalidations' => array( - 'httpMethod' => 'GET', - 'uri' => '/2012-05-05/distribution/{DistributionId}/invalidation', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'ListInvalidationsResult', - 'responseType' => 'model', - 'summary' => 'List invalidation batches.', - 'parameters' => array( - 'DistributionId' => array( - 'required' => true, - 'description' => 'The distribution\'s id.', - 'type' => 'string', - 'location' => 'uri', - ), - 'Marker' => array( - 'description' => 'Use this parameter when paginating results to indicate where to begin in your list of invalidation batches. Because the results are returned in decreasing order from most recent to oldest, the most recent results are on the first page, the second page will contain earlier results, and so on. To get the next page of results, set the Marker to the value of the NextMarker from the current page\'s response. This value is the same as the ID of the last invalidation batch on that page.', - 'type' => 'string', - 'location' => 'query', - ), - 'MaxItems' => array( - 'description' => 'The maximum number of invalidation batches you want in the response body.', - 'type' => 'string', - 'location' => 'query', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - 'errorResponses' => array( - array( - 'class' => 'InvalidArgumentException', - ), - array( - 'class' => 'NoSuchDistributionException', - ), - ), - ), - 'ListStreamingDistributions' => array( - 'httpMethod' => 'GET', - 'uri' => '/2012-05-05/streaming-distribution', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'ListStreamingDistributionsResult', - 'responseType' => 'model', - 'summary' => 'List streaming distributions.', - 'parameters' => array( - 'Marker' => array( - 'description' => 'Use this when paginating results to indicate where to begin in your list of streaming distributions. The results include distributions in the list that occur after the marker. To get the next page of results, set the Marker to the value of the NextMarker from the current page\'s response (which is also the ID of the last distribution on that page).', - 'type' => 'string', - 'location' => 'query', - ), - 'MaxItems' => array( - 'description' => 'The maximum number of streaming distributions you want in the response body.', - 'type' => 'string', - 'location' => 'query', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - 'errorResponses' => array( - array( - 'class' => 'InvalidArgumentException', - ), - ), - ), - 'UpdateCloudFrontOriginAccessIdentity' => array( - 'httpMethod' => 'PUT', - 'uri' => '/2012-05-05/origin-access-identity/cloudfront/{Id}/config', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'UpdateCloudFrontOriginAccessIdentityResult', - 'responseType' => 'model', - 'summary' => 'Update an origin access identity.', - 'data' => array( - 'xmlRoot' => array( - 'name' => 'CloudFrontOriginAccessIdentityConfig', - 'namespaces' => array( - 'http://cloudfront.amazonaws.com/doc/2012-05-05/', - ), - ), - ), - 'parameters' => array( - 'CallerReference' => array( - 'required' => true, - 'description' => 'A unique number that ensures the request can\'t be replayed. If the CallerReference is new (no matter the content of the CloudFrontOriginAccessIdentityConfig object), a new origin access identity is created. If the CallerReference is a value you already sent in a previous request to create an identity, and the content of the CloudFrontOriginAccessIdentityConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request. 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.', - 'type' => 'string', - 'location' => 'xml', - ), - 'Comment' => array( - 'required' => true, - 'description' => 'Any comments you want to include about the origin access identity.', - 'type' => 'string', - 'location' => 'xml', - ), - 'Id' => array( - 'required' => true, - 'description' => 'The identity\'s id.', - 'type' => 'string', - 'location' => 'uri', - ), - 'IfMatch' => array( - 'description' => 'The value of the ETag header you received when retrieving the identity\'s configuration. For example: E2QWRUHAPOMQZL.', - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'If-Match', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - 'errorResponses' => array( - array( - 'class' => 'AccessDeniedException', - ), - array( - 'class' => 'IllegalUpdateException', - ), - array( - 'class' => 'InvalidIfMatchVersionException', - ), - array( - 'class' => 'MissingBodyException', - ), - array( - 'class' => 'NoSuchCloudFrontOriginAccessIdentityException', - ), - array( - 'class' => 'PreconditionFailedException', - ), - array( - 'class' => 'InvalidArgumentException', - ), - array( - 'class' => 'InconsistentQuantitiesException', - ), - ), - ), - 'UpdateDistribution' => array( - 'httpMethod' => 'PUT', - 'uri' => '/2012-05-05/distribution/{Id}/config', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'UpdateDistributionResult', - 'responseType' => 'model', - 'summary' => 'Update a distribution.', - 'data' => array( - 'xmlRoot' => array( - 'name' => 'DistributionConfig', - 'namespaces' => array( - 'http://cloudfront.amazonaws.com/doc/2012-05-05/', - ), - ), - ), - 'parameters' => array( - 'CallerReference' => array( - 'required' => true, - 'description' => 'A unique number that ensures the request can\'t be replayed. If the CallerReference is new (no matter the content of the DistributionConfig object), a new distribution is created. If the CallerReference is a value you already sent in a previous request to create a distribution, and the content of the DistributionConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request. If the CallerReference is a value you already sent in a previous request to create a distribution but the content of the DistributionConfig is different from the original request, CloudFront returns a DistributionAlreadyExists error.', - 'type' => 'string', - 'location' => 'xml', - ), - 'Aliases' => array( - 'required' => true, - 'description' => 'A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Quantity' => array( - 'required' => true, - 'description' => 'The number of CNAMEs, if any, for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains CNAME elements, if any, for this distribution. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'CNAME', - 'type' => 'string', - ), - ), - ), - ), - 'DefaultRootObject' => array( - 'required' => true, - 'description' => 'The object that you want CloudFront to return (for example, index.html) when an end user requests the root URL for your distribution (http://www.example.com) instead of an object in your distribution (http://www.example.com/index.html). Specifying a default root object avoids exposing the contents of your distribution. If you don\'t want to specify a default root object when you create a distribution, include an empty DefaultRootObject element. To delete the default root object from an existing distribution, update the distribution configuration and include an empty DefaultRootObject element. To replace the default root object, update the distribution configuration and specify the new object.', - 'type' => 'string', - 'location' => 'xml', - ), - 'Origins' => array( - 'required' => true, - 'description' => 'A complex type that contains information about origins for this distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Quantity' => array( - 'required' => true, - 'description' => 'The number of origins for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'A complex type that contains origins for this distribution.', - 'type' => 'array', - 'minItems' => 1, - 'items' => array( - 'name' => 'Origin', - 'description' => 'A complex type that describes the Amazon S3 bucket or the HTTP server (for example, a web server) from which CloudFront gets your files.You must create at least one origin.', - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'required' => true, - 'description' => 'A unique identifier for the origin. The value of Id must be unique within the distribution. You use the value of Id when you create a cache behavior. The Id identifies the origin that CloudFront routes a request to when the request matches the path pattern for that cache behavior.', - 'type' => 'string', - ), - 'DomainName' => array( - 'required' => true, - 'description' => 'Amazon S3 origins: The DNS name of the Amazon S3 bucket from which you want CloudFront to get objects for this origin, for example, myawsbucket.s3.amazonaws.com. Custom origins: The DNS domain name for the HTTP server from which you want CloudFront to get objects for this origin, for example, www.example.com.', - 'type' => 'string', - ), - 'S3OriginConfig' => array( - 'description' => 'A complex type that contains information about the Amazon S3 origin. If the origin is a custom origin, use the CustomOriginConfig element instead.', - 'type' => 'object', - 'properties' => array( - 'OriginAccessIdentity' => array( - 'required' => true, - 'description' => 'The CloudFront origin access identity to associate with the origin. Use an origin access identity to configure the origin so that end users can only access objects in an Amazon S3 bucket through CloudFront. If you want end users to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty OriginAccessIdentity element. To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty OriginAccessIdentity element. To replace the origin access identity, update the distribution configuration and specify the new origin access identity.', - 'type' => 'string', - ), - ), - ), - 'CustomOriginConfig' => array( - 'description' => 'A complex type that contains information about a custom origin. If the origin is an Amazon S3 bucket, use the S3OriginConfig element instead.', - 'type' => 'object', - 'properties' => array( - 'HTTPPort' => array( - 'required' => true, - 'description' => 'The HTTP port the custom origin listens on.', - 'type' => 'numeric', - ), - 'HTTPSPort' => array( - 'required' => true, - 'description' => 'The HTTPS port the custom origin listens on.', - 'type' => 'numeric', - ), - 'OriginProtocolPolicy' => array( - 'required' => true, - 'description' => 'The origin protocol policy to apply to your origin.', - 'type' => 'string', - 'enum' => array( - 'http-only', - 'match-viewer', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'DefaultCacheBehavior' => array( - 'required' => true, - 'description' => 'A complex type that describes the default cache behavior if you do not specify a CacheBehavior element or if files don\'t match any of the values of PathPattern in CacheBehavior elements.You must create exactly one default cache behavior.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'TargetOriginId' => array( - 'required' => true, - 'description' => 'The value of ID for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.', - 'type' => 'string', - ), - 'ForwardedValues' => array( - 'required' => true, - 'description' => 'A complex type that specifies how CloudFront handles query strings.', - 'type' => 'object', - 'properties' => array( - 'QueryString' => array( - 'required' => true, - 'description' => 'Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior. If so, specify true; if not, specify false.', - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - 'TrustedSigners' => array( - 'required' => true, - 'description' => 'A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don\'t want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it\'s currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.', - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'required' => true, - 'description' => 'Specifies whether you want to require end users to use signed URLs to access the files specified by PathPattern and TargetOriginId.', - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - 'Quantity' => array( - 'required' => true, - 'description' => 'The number of trusted signers for this cache behavior.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains trusted signers for this cache behavior. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'AwsAccountNumber', - 'type' => 'string', - ), - ), - ), - ), - 'ViewerProtocolPolicy' => array( - 'required' => true, - 'description' => 'Use this element to specify the protocol that users can use to access the files in the origin specified by TargetOriginId when a request matches the path pattern in PathPattern. If you want CloudFront to allow end users to use any available protocol, specify allow-all. If you want CloudFront to require HTTPS, specify https.', - 'type' => 'string', - 'enum' => array( - 'allow-all', - 'https-only', - ), - ), - 'MinTTL' => array( - 'required' => true, - 'description' => 'The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront queries your origin to see whether the object has been updated.You can specify a value from 0 to 3,153,600,000 seconds (100 years).', - 'type' => 'numeric', - ), - ), - ), - 'CacheBehaviors' => array( - 'required' => true, - 'description' => 'A complex type that contains zero or more CacheBehavior elements.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Quantity' => array( - 'required' => true, - 'description' => 'The number of cache behaviors for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains cache behaviors for this distribution. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'CacheBehavior', - 'description' => 'A complex type that describes how CloudFront processes requests. You can create up to 10 cache behaviors.You must create at least as many cache behaviors (including the default cache behavior) as you have origins if you want CloudFront to distribute objects from all of the origins. Each cache behavior specifies the one origin from which you want CloudFront to get objects. If you have two origins and only the default cache behavior, the default cache behavior will cause CloudFront to get objects from one of the origins, but the other origin will never be used. If you don\'t want to specify any cache behaviors, include only an empty CacheBehaviors element. Don\'t include an empty CacheBehavior element, or CloudFront returns a MalformedXML error. To delete all cache behaviors in an existing distribution, update the distribution configuration and include only an empty CacheBehaviors element. To add, change, or remove one or more cache behaviors, update the distribution configuration and specify all of the cache behaviors that you want to include in the updated distribution.', - 'type' => 'object', - 'properties' => array( - 'PathPattern' => array( - 'required' => true, - 'description' => 'The pattern (for example, images/*.jpg) that specifies which requests you want this cache behavior to apply to. When CloudFront receives an end-user request, the requested path is compared with path patterns in the order in which cache behaviors are listed in the distribution. The path pattern for the default cache behavior is * and cannot be changed. If the request for an object does not match the path pattern for any cache behaviors, CloudFront applies the behavior in the default cache behavior.', - 'type' => 'string', - ), - 'TargetOriginId' => array( - 'required' => true, - 'description' => 'The value of ID for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.', - 'type' => 'string', - ), - 'ForwardedValues' => array( - 'required' => true, - 'description' => 'A complex type that specifies how CloudFront handles query strings.', - 'type' => 'object', - 'properties' => array( - 'QueryString' => array( - 'required' => true, - 'description' => 'Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior. If so, specify true; if not, specify false.', - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - 'TrustedSigners' => array( - 'required' => true, - 'description' => 'A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don\'t want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it\'s currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.', - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'required' => true, - 'description' => 'Specifies whether you want to require end users to use signed URLs to access the files specified by PathPattern and TargetOriginId.', - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - 'Quantity' => array( - 'required' => true, - 'description' => 'The number of trusted signers for this cache behavior.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains trusted signers for this cache behavior. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'AwsAccountNumber', - 'type' => 'string', - ), - ), - ), - ), - 'ViewerProtocolPolicy' => array( - 'required' => true, - 'description' => 'Use this element to specify the protocol that users can use to access the files in the origin specified by TargetOriginId when a request matches the path pattern in PathPattern. If you want CloudFront to allow end users to use any available protocol, specify allow-all. If you want CloudFront to require HTTPS, specify https.', - 'type' => 'string', - 'enum' => array( - 'allow-all', - 'https-only', - ), - ), - 'MinTTL' => array( - 'required' => true, - 'description' => 'The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront queries your origin to see whether the object has been updated.You can specify a value from 0 to 3,153,600,000 seconds (100 years).', - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - 'Comment' => array( - 'required' => true, - 'description' => 'Any comments you want to include about the distribution.', - 'type' => 'string', - 'location' => 'xml', - ), - 'Logging' => array( - 'required' => true, - 'description' => 'A complex type that controls whether access logs are written for the distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Enabled' => array( - 'required' => true, - 'description' => 'Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you do not want to enable logging when you create a distribution or if you want to disable logging for an existing distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket and Prefix, the values are automatically deleted.', - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - 'Bucket' => array( - 'required' => true, - 'description' => 'The Amazon S3 bucket to store the access logs in, for example, myawslogbucket.s3.amazonaws.com.', - 'type' => 'string', - ), - 'Prefix' => array( - 'required' => true, - 'description' => 'An optional string that you want CloudFront to prefix to the access log filenames for this distribution, for example, myprefix/. If you want to enable logging, but you do not want to specify a prefix, you still must include an empty Prefix element in the Logging element.', - 'type' => 'string', - ), - ), - ), - 'Enabled' => array( - 'required' => true, - 'description' => 'Whether the distribution is enabled to accept end user requests for content.', - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'xml', - ), - 'Id' => array( - 'required' => true, - 'description' => 'The distribution\'s id.', - 'type' => 'string', - 'location' => 'uri', - ), - 'IfMatch' => array( - 'description' => 'The value of the ETag header you received when retrieving the distribution\'s configuration. For example: E2QWRUHAPOMQZL.', - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'If-Match', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - 'errorResponses' => array( - array( - 'class' => 'AccessDeniedException', - ), - array( - 'class' => 'CNAMEAlreadyExistsException', - ), - array( - 'class' => 'IllegalUpdateException', - ), - array( - 'class' => 'InvalidIfMatchVersionException', - ), - array( - 'class' => 'MissingBodyException', - ), - array( - 'class' => 'NoSuchDistributionException', - ), - array( - 'class' => 'PreconditionFailedException', - ), - array( - 'class' => 'TooManyDistributionCNAMEsException', - ), - array( - 'class' => 'InvalidDefaultRootObjectException', - ), - array( - 'class' => 'InvalidArgumentException', - ), - array( - 'class' => 'InvalidOriginAccessIdentityException', - ), - array( - 'class' => 'TooManyTrustedSignersException', - ), - array( - 'class' => 'TrustedSignerDoesNotExistException', - ), - array( - 'class' => 'InvalidRequiredProtocolException', - ), - array( - 'class' => 'NoSuchOriginException', - ), - array( - 'class' => 'TooManyOriginsException', - ), - array( - 'class' => 'TooManyCacheBehaviorsException', - ), - array( - 'class' => 'InconsistentQuantitiesException', - ), - ), - ), - 'UpdateStreamingDistribution' => array( - 'httpMethod' => 'PUT', - 'uri' => '/2012-05-05/streaming-distribution/{Id}/config', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'UpdateStreamingDistributionResult', - 'responseType' => 'model', - 'summary' => 'Update a streaming distribution.', - 'data' => array( - 'xmlRoot' => array( - 'name' => 'StreamingDistributionConfig', - 'namespaces' => array( - 'http://cloudfront.amazonaws.com/doc/2012-05-05/', - ), - ), - ), - 'parameters' => array( - 'CallerReference' => array( - 'required' => true, - 'description' => 'A unique number that ensures the request can\'t be replayed. If the CallerReference is new (no matter the content of the StreamingDistributionConfig object), a new streaming distribution is created. If the CallerReference is a value you already sent in a previous request to create a streaming distribution, and the content of the StreamingDistributionConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request. If the CallerReference is a value you already sent in a previous request to create a streaming distribution but the content of the StreamingDistributionConfig is different from the original request, CloudFront returns a DistributionAlreadyExists error.', - 'type' => 'string', - 'location' => 'xml', - ), - 'S3Origin' => array( - 'required' => true, - 'description' => 'A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'DomainName' => array( - 'required' => true, - 'description' => 'The DNS name of the S3 origin.', - 'type' => 'string', - ), - 'OriginAccessIdentity' => array( - 'required' => true, - 'description' => 'Your S3 origin\'s origin access identity.', - 'type' => 'string', - ), - ), - ), - 'Aliases' => array( - 'required' => true, - 'description' => 'A complex type that contains information about CNAMEs (alternate domain names), if any, for this streaming distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Quantity' => array( - 'required' => true, - 'description' => 'The number of CNAMEs, if any, for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains CNAME elements, if any, for this distribution. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'CNAME', - 'type' => 'string', - ), - ), - ), - ), - 'Comment' => array( - 'required' => true, - 'description' => 'Any comments you want to include about the streaming distribution.', - 'type' => 'string', - 'location' => 'xml', - ), - 'Logging' => array( - 'required' => true, - 'description' => 'A complex type that controls whether access logs are written for the streaming distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Enabled' => array( - 'required' => true, - 'description' => 'Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you do not want to enable logging when you create a distribution or if you want to disable logging for an existing distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket and Prefix, the values are automatically deleted.', - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - 'Bucket' => array( - 'required' => true, - 'description' => 'The Amazon S3 bucket to store the access logs in, for example, myawslogbucket.s3.amazonaws.com.', - 'type' => 'string', - ), - 'Prefix' => array( - 'required' => true, - 'description' => 'An optional string that you want CloudFront to prefix to the access log filenames for this distribution, for example, myprefix/. If you want to enable logging, but you do not want to specify a prefix, you still must include an empty Prefix element in the Logging element.', - 'type' => 'string', - ), - ), - ), - 'TrustedSigners' => array( - 'required' => true, - 'description' => 'A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don\'t want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it\'s currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Enabled' => array( - 'required' => true, - 'description' => 'Specifies whether you want to require end users to use signed URLs to access the files specified by PathPattern and TargetOriginId.', - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - 'Quantity' => array( - 'required' => true, - 'description' => 'The number of trusted signers for this cache behavior.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains trusted signers for this cache behavior. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'AwsAccountNumber', - 'type' => 'string', - ), - ), - ), - ), - 'Enabled' => array( - 'required' => true, - 'description' => 'Whether the streaming distribution is enabled to accept end user requests for content.', - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'xml', - ), - 'Id' => array( - 'required' => true, - 'description' => 'The streaming distribution\'s id.', - 'type' => 'string', - 'location' => 'uri', - ), - 'IfMatch' => array( - 'description' => 'The value of the ETag header you received when retrieving the streaming distribution\'s configuration. For example: E2QWRUHAPOMQZL.', - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'If-Match', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - 'errorResponses' => array( - array( - 'class' => 'AccessDeniedException', - ), - array( - 'class' => 'CNAMEAlreadyExistsException', - ), - array( - 'class' => 'IllegalUpdateException', - ), - array( - 'class' => 'InvalidIfMatchVersionException', - ), - array( - 'class' => 'MissingBodyException', - ), - array( - 'class' => 'NoSuchStreamingDistributionException', - ), - array( - 'class' => 'PreconditionFailedException', - ), - array( - 'class' => 'TooManyStreamingDistributionCNAMEsException', - ), - array( - 'class' => 'InvalidArgumentException', - ), - array( - 'class' => 'InvalidOriginAccessIdentityException', - ), - array( - 'class' => 'TooManyTrustedSignersException', - ), - array( - 'class' => 'TrustedSignerDoesNotExistException', - ), - array( - 'class' => 'InconsistentQuantitiesException', - ), - ), - ), - ), - 'models' => array( - 'CreateCloudFrontOriginAccessIdentityResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Id' => array( - 'description' => 'The ID for the origin access identity. For example: E74FTE3AJFJ256A.', - 'type' => 'string', - 'location' => 'xml', - ), - 'S3CanonicalUserId' => array( - 'description' => 'The Amazon S3 canonical user ID for the origin access identity, which you use when giving the origin access identity read permission to an object in Amazon S3.', - 'type' => 'string', - 'location' => 'xml', - ), - 'CloudFrontOriginAccessIdentityConfig' => array( - 'description' => 'The current configuration information for the identity.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'CallerReference' => array( - 'description' => 'A unique number that ensures the request can\'t be replayed. If the CallerReference is new (no matter the content of the CloudFrontOriginAccessIdentityConfig object), a new origin access identity is created. If the CallerReference is a value you already sent in a previous request to create an identity, and the content of the CloudFrontOriginAccessIdentityConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request. 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.', - 'type' => 'string', - ), - 'Comment' => array( - 'description' => 'Any comments you want to include about the origin access identity.', - 'type' => 'string', - ), - ), - ), - 'Location' => array( - 'description' => 'The fully qualified URI of the new origin access identity just created. For example: https://cloudfront.amazonaws.com/2010-11-01/origin-access-identity/cloudfront/E74FTE3AJFJ256A.', - 'type' => 'string', - 'location' => 'header', - ), - 'ETag' => array( - 'description' => 'The current version of the origin access identity created.', - 'type' => 'string', - 'location' => 'header', - ), - 'RequestId' => array( - 'description' => 'Request ID of the operation', - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'CreateDistributionResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Id' => array( - 'description' => 'The identifier for the distribution. For example: EDFDVBD632BHDS5.', - 'type' => 'string', - 'location' => 'xml', - ), - 'Status' => array( - 'description' => 'This response element indicates the current status of the distribution. When the status is Deployed, the distribution\'s information is fully propagated throughout the Amazon CloudFront system.', - 'type' => 'string', - 'location' => 'xml', - ), - 'LastModifiedTime' => array( - 'description' => 'The date and time the distribution was last modified.', - 'type' => 'string', - 'location' => 'xml', - ), - 'InProgressInvalidationBatches' => array( - 'description' => 'The number of invalidation batches currently in progress.', - 'type' => 'numeric', - 'location' => 'xml', - ), - 'DomainName' => array( - 'description' => 'The domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net.', - 'type' => 'string', - 'location' => 'xml', - ), - 'ActiveTrustedSigners' => array( - 'description' => 'CloudFront automatically adds this element to the response only if you\'ve set up the distribution to serve private content with signed URLs. The element lists the key pair IDs that CloudFront is aware of for each trusted signer. The Signer child element lists the AWS account number of the trusted signer (or an empty Self element if the signer is you). The Signer element also includes the IDs of any active key pairs associated with the trusted signer\'s AWS account. If no KeyPairId element appears for a Signer, that signer can\'t create working signed URLs.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Each active trusted signer.', - 'type' => 'boolean', - ), - 'Quantity' => array( - 'description' => 'The number of unique trusted signers included in all cache behaviors. For example, if three cache behaviors all list the same three AWS accounts, the value of Quantity for ActiveTrustedSigners will be 3.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'A complex type that contains one Signer complex type for each unique trusted signer that is specified in the TrustedSigners complex type, including trusted signers in the default cache behavior and in all of the other cache behaviors.', - 'type' => 'array', - 'items' => array( - 'name' => 'Signer', - 'description' => 'A complex type that lists the AWS accounts that were included in the TrustedSigners complex type, as well as their active CloudFront key pair IDs, if any.', - 'type' => 'object', - 'sentAs' => 'Signer', - 'properties' => array( - 'AwsAccountNumber' => array( - 'description' => 'Specifies an AWS account that can create signed URLs. Values: self, which indicates that the AWS account that was used to create the distribution can created signed URLs, or an AWS account number. Omit the dashes in the account number.', - 'type' => 'string', - ), - 'KeyPairIds' => array( - 'description' => 'A complex type that lists the active CloudFront key pairs, if any, that are associated with AwsAccountNumber.', - 'type' => 'object', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of active CloudFront key pairs for AwsAccountNumber.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'A complex type that lists the active CloudFront key pairs, if any, that are associated with AwsAccountNumber.', - 'type' => 'array', - 'items' => array( - 'name' => 'KeyPairId', - 'type' => 'string', - 'sentAs' => 'KeyPairId', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'DistributionConfig' => array( - 'description' => 'The current configuration information for the distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'CallerReference' => array( - 'description' => 'A unique number that ensures the request can\'t be replayed. If the CallerReference is new (no matter the content of the DistributionConfig object), a new distribution is created. If the CallerReference is a value you already sent in a previous request to create a distribution, and the content of the DistributionConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request. If the CallerReference is a value you already sent in a previous request to create a distribution but the content of the DistributionConfig is different from the original request, CloudFront returns a DistributionAlreadyExists error.', - 'type' => 'string', - ), - 'Aliases' => array( - 'description' => 'A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.', - 'type' => 'object', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of CNAMEs, if any, for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains CNAME elements, if any, for this distribution. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'CNAME', - 'type' => 'string', - 'sentAs' => 'CNAME', - ), - ), - ), - ), - 'DefaultRootObject' => array( - 'description' => 'The object that you want CloudFront to return (for example, index.html) when an end user requests the root URL for your distribution (http://www.example.com) instead of an object in your distribution (http://www.example.com/index.html). Specifying a default root object avoids exposing the contents of your distribution. If you don\'t want to specify a default root object when you create a distribution, include an empty DefaultRootObject element. To delete the default root object from an existing distribution, update the distribution configuration and include an empty DefaultRootObject element. To replace the default root object, update the distribution configuration and specify the new object.', - 'type' => 'string', - ), - 'Origins' => array( - 'description' => 'A complex type that contains information about origins for this distribution.', - 'type' => 'object', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of origins for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'A complex type that contains origins for this distribution.', - 'type' => 'array', - 'items' => array( - 'name' => 'Origin', - 'description' => 'A complex type that describes the Amazon S3 bucket or the HTTP server (for example, a web server) from which CloudFront gets your files.You must create at least one origin.', - 'type' => 'object', - 'sentAs' => 'Origin', - 'properties' => array( - 'Id' => array( - 'description' => 'A unique identifier for the origin. The value of Id must be unique within the distribution. You use the value of Id when you create a cache behavior. The Id identifies the origin that CloudFront routes a request to when the request matches the path pattern for that cache behavior.', - 'type' => 'string', - ), - 'DomainName' => array( - 'description' => 'Amazon S3 origins: The DNS name of the Amazon S3 bucket from which you want CloudFront to get objects for this origin, for example, myawsbucket.s3.amazonaws.com. Custom origins: The DNS domain name for the HTTP server from which you want CloudFront to get objects for this origin, for example, www.example.com.', - 'type' => 'string', - ), - 'S3OriginConfig' => array( - 'description' => 'A complex type that contains information about the Amazon S3 origin. If the origin is a custom origin, use the CustomOriginConfig element instead.', - 'type' => 'object', - 'properties' => array( - 'OriginAccessIdentity' => array( - 'description' => 'The CloudFront origin access identity to associate with the origin. Use an origin access identity to configure the origin so that end users can only access objects in an Amazon S3 bucket through CloudFront. If you want end users to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty OriginAccessIdentity element. To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty OriginAccessIdentity element. To replace the origin access identity, update the distribution configuration and specify the new origin access identity.', - 'type' => 'string', - ), - ), - ), - 'CustomOriginConfig' => array( - 'description' => 'A complex type that contains information about a custom origin. If the origin is an Amazon S3 bucket, use the S3OriginConfig element instead.', - 'type' => 'object', - 'properties' => array( - 'HTTPPort' => array( - 'description' => 'The HTTP port the custom origin listens on.', - 'type' => 'numeric', - ), - 'HTTPSPort' => array( - 'description' => 'The HTTPS port the custom origin listens on.', - 'type' => 'numeric', - ), - 'OriginProtocolPolicy' => array( - 'description' => 'The origin protocol policy to apply to your origin.', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - 'DefaultCacheBehavior' => array( - 'description' => 'A complex type that describes the default cache behavior if you do not specify a CacheBehavior element or if files don\'t match any of the values of PathPattern in CacheBehavior elements.You must create exactly one default cache behavior.', - 'type' => 'object', - 'properties' => array( - 'TargetOriginId' => array( - 'description' => 'The value of ID for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.', - 'type' => 'string', - ), - 'ForwardedValues' => array( - 'description' => 'A complex type that specifies how CloudFront handles query strings.', - 'type' => 'object', - 'properties' => array( - 'QueryString' => array( - 'description' => 'Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior. If so, specify true; if not, specify false.', - 'type' => 'boolean', - ), - ), - ), - 'TrustedSigners' => array( - 'description' => 'A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don\'t want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it\'s currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.', - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Specifies whether you want to require end users to use signed URLs to access the files specified by PathPattern and TargetOriginId.', - 'type' => 'boolean', - ), - 'Quantity' => array( - 'description' => 'The number of trusted signers for this cache behavior.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains trusted signers for this cache behavior. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'AwsAccountNumber', - 'type' => 'string', - 'sentAs' => 'AwsAccountNumber', - ), - ), - ), - ), - 'ViewerProtocolPolicy' => array( - 'description' => 'Use this element to specify the protocol that users can use to access the files in the origin specified by TargetOriginId when a request matches the path pattern in PathPattern. If you want CloudFront to allow end users to use any available protocol, specify allow-all. If you want CloudFront to require HTTPS, specify https.', - 'type' => 'string', - ), - 'MinTTL' => array( - 'description' => 'The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront queries your origin to see whether the object has been updated.You can specify a value from 0 to 3,153,600,000 seconds (100 years).', - 'type' => 'numeric', - ), - ), - ), - 'CacheBehaviors' => array( - 'description' => 'A complex type that contains zero or more CacheBehavior elements.', - 'type' => 'object', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of cache behaviors for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains cache behaviors for this distribution. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'CacheBehavior', - 'description' => 'A complex type that describes how CloudFront processes requests. You can create up to 10 cache behaviors.You must create at least as many cache behaviors (including the default cache behavior) as you have origins if you want CloudFront to distribute objects from all of the origins. Each cache behavior specifies the one origin from which you want CloudFront to get objects. If you have two origins and only the default cache behavior, the default cache behavior will cause CloudFront to get objects from one of the origins, but the other origin will never be used. If you don\'t want to specify any cache behaviors, include only an empty CacheBehaviors element. Don\'t include an empty CacheBehavior element, or CloudFront returns a MalformedXML error. To delete all cache behaviors in an existing distribution, update the distribution configuration and include only an empty CacheBehaviors element. To add, change, or remove one or more cache behaviors, update the distribution configuration and specify all of the cache behaviors that you want to include in the updated distribution.', - 'type' => 'object', - 'sentAs' => 'CacheBehavior', - 'properties' => array( - 'PathPattern' => array( - 'description' => 'The pattern (for example, images/*.jpg) that specifies which requests you want this cache behavior to apply to. When CloudFront receives an end-user request, the requested path is compared with path patterns in the order in which cache behaviors are listed in the distribution. The path pattern for the default cache behavior is * and cannot be changed. If the request for an object does not match the path pattern for any cache behaviors, CloudFront applies the behavior in the default cache behavior.', - 'type' => 'string', - ), - 'TargetOriginId' => array( - 'description' => 'The value of ID for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.', - 'type' => 'string', - ), - 'ForwardedValues' => array( - 'description' => 'A complex type that specifies how CloudFront handles query strings.', - 'type' => 'object', - 'properties' => array( - 'QueryString' => array( - 'description' => 'Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior. If so, specify true; if not, specify false.', - 'type' => 'boolean', - ), - ), - ), - 'TrustedSigners' => array( - 'description' => 'A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don\'t want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it\'s currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.', - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Specifies whether you want to require end users to use signed URLs to access the files specified by PathPattern and TargetOriginId.', - 'type' => 'boolean', - ), - 'Quantity' => array( - 'description' => 'The number of trusted signers for this cache behavior.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains trusted signers for this cache behavior. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'AwsAccountNumber', - 'type' => 'string', - 'sentAs' => 'AwsAccountNumber', - ), - ), - ), - ), - 'ViewerProtocolPolicy' => array( - 'description' => 'Use this element to specify the protocol that users can use to access the files in the origin specified by TargetOriginId when a request matches the path pattern in PathPattern. If you want CloudFront to allow end users to use any available protocol, specify allow-all. If you want CloudFront to require HTTPS, specify https.', - 'type' => 'string', - ), - 'MinTTL' => array( - 'description' => 'The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront queries your origin to see whether the object has been updated.You can specify a value from 0 to 3,153,600,000 seconds (100 years).', - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - 'Comment' => array( - 'description' => 'Any comments you want to include about the distribution.', - 'type' => 'string', - ), - 'Logging' => array( - 'description' => 'A complex type that controls whether access logs are written for the distribution.', - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you do not want to enable logging when you create a distribution or if you want to disable logging for an existing distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket and Prefix, the values are automatically deleted.', - 'type' => 'boolean', - ), - 'Bucket' => array( - 'description' => 'The Amazon S3 bucket to store the access logs in, for example, myawslogbucket.s3.amazonaws.com.', - 'type' => 'string', - ), - 'Prefix' => array( - 'description' => 'An optional string that you want CloudFront to prefix to the access log filenames for this distribution, for example, myprefix/. If you want to enable logging, but you do not want to specify a prefix, you still must include an empty Prefix element in the Logging element.', - 'type' => 'string', - ), - ), - ), - 'Enabled' => array( - 'description' => 'Whether the distribution is enabled to accept end user requests for content.', - 'type' => 'boolean', - ), - ), - ), - 'Location' => array( - 'description' => 'The fully qualified URI of the new distribution resource just created. For example: https://cloudfront.amazonaws.com/2010-11-01/distribution/EDFDVBD632BHDS5.', - 'type' => 'string', - 'location' => 'header', - ), - 'ETag' => array( - 'description' => 'The current version of the distribution created.', - 'type' => 'string', - 'location' => 'header', - ), - 'RequestId' => array( - 'description' => 'Request ID of the operation', - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'CreateInvalidationResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Location' => array( - 'description' => 'The fully qualified URI of the distribution and invalidation batch request, including the Invalidation ID.', - 'type' => 'string', - 'location' => 'header', - ), - 'Id' => array( - 'description' => 'The identifier for the invalidation request. For example: IDFDVBD632BHDS5.', - 'type' => 'string', - 'location' => 'xml', - ), - 'Status' => array( - 'description' => 'The status of the invalidation request. When the invalidation batch is finished, the status is Completed.', - 'type' => 'string', - 'location' => 'xml', - ), - 'CreateTime' => array( - 'description' => 'The date and time the invalidation request was first made.', - 'type' => 'string', - 'location' => 'xml', - ), - 'InvalidationBatch' => array( - 'description' => 'The current invalidation information for the batch request.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Paths' => array( - 'description' => 'The path of the object to invalidate. The path is relative to the distribution and must begin with a slash (/). You must enclose each invalidation object with the Path element tags. If the path includes non-ASCII characters or unsafe characters as defined in RFC 1783 (http://www.ietf.org/rfc/rfc1738.txt), URL encode those characters. Do not URL encode any other characters in the path, or CloudFront will not invalidate the old version of the updated object.', - 'type' => 'object', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of objects that you want to invalidate.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'A complex type that contains a list of the objects that you want to invalidate.', - 'type' => 'array', - 'items' => array( - 'name' => 'Path', - 'type' => 'string', - 'sentAs' => 'Path', - ), - ), - ), - ), - 'CallerReference' => array( - 'description' => 'A unique name that ensures the request can\'t be replayed. If the CallerReference is new (no matter the content of the Path object), a new distribution is created. If the CallerReference is a value you already sent in a previous request to create an invalidation batch, and the content of each Path element is identical to the original request, the response includes the same information returned to the original request. If the CallerReference is a value you already sent in a previous request to create a distribution but the content of any Path is different from the original request, CloudFront returns an InvalidationBatchAlreadyExists error.', - 'type' => 'string', - ), - ), - ), - 'RequestId' => array( - 'description' => 'Request ID of the operation', - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'CreateStreamingDistributionResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Id' => array( - 'description' => 'The identifier for the streaming distribution. For example: EGTXBD79H29TRA8.', - 'type' => 'string', - 'location' => 'xml', - ), - 'Status' => array( - 'description' => 'The current status of the streaming distribution. When the status is Deployed, the distribution\'s information is fully propagated throughout the Amazon CloudFront system.', - 'type' => 'string', - 'location' => 'xml', - ), - 'LastModifiedTime' => array( - 'description' => 'The date and time the distribution was last modified.', - 'type' => 'string', - 'location' => 'xml', - ), - 'DomainName' => array( - 'description' => 'The domain name corresponding to the streaming distribution. For example: s5c39gqb8ow64r.cloudfront.net.', - 'type' => 'string', - 'location' => 'xml', - ), - 'ActiveTrustedSigners' => array( - 'description' => 'CloudFront automatically adds this element to the response only if you\'ve set up the distribution to serve private content with signed URLs. The element lists the key pair IDs that CloudFront is aware of for each trusted signer. The Signer child element lists the AWS account number of the trusted signer (or an empty Self element if the signer is you). The Signer element also includes the IDs of any active key pairs associated with the trusted signer\'s AWS account. If no KeyPairId element appears for a Signer, that signer can\'t create working signed URLs.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Each active trusted signer.', - 'type' => 'boolean', - ), - 'Quantity' => array( - 'description' => 'The number of unique trusted signers included in all cache behaviors. For example, if three cache behaviors all list the same three AWS accounts, the value of Quantity for ActiveTrustedSigners will be 3.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'A complex type that contains one Signer complex type for each unique trusted signer that is specified in the TrustedSigners complex type, including trusted signers in the default cache behavior and in all of the other cache behaviors.', - 'type' => 'array', - 'items' => array( - 'name' => 'Signer', - 'description' => 'A complex type that lists the AWS accounts that were included in the TrustedSigners complex type, as well as their active CloudFront key pair IDs, if any.', - 'type' => 'object', - 'sentAs' => 'Signer', - 'properties' => array( - 'AwsAccountNumber' => array( - 'description' => 'Specifies an AWS account that can create signed URLs. Values: self, which indicates that the AWS account that was used to create the distribution can created signed URLs, or an AWS account number. Omit the dashes in the account number.', - 'type' => 'string', - ), - 'KeyPairIds' => array( - 'description' => 'A complex type that lists the active CloudFront key pairs, if any, that are associated with AwsAccountNumber.', - 'type' => 'object', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of active CloudFront key pairs for AwsAccountNumber.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'A complex type that lists the active CloudFront key pairs, if any, that are associated with AwsAccountNumber.', - 'type' => 'array', - 'items' => array( - 'name' => 'KeyPairId', - 'type' => 'string', - 'sentAs' => 'KeyPairId', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'StreamingDistributionConfig' => array( - 'description' => 'The current configuration information for the streaming distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'CallerReference' => array( - 'description' => 'A unique number that ensures the request can\'t be replayed. If the CallerReference is new (no matter the content of the StreamingDistributionConfig object), a new streaming distribution is created. If the CallerReference is a value you already sent in a previous request to create a streaming distribution, and the content of the StreamingDistributionConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request. If the CallerReference is a value you already sent in a previous request to create a streaming distribution but the content of the StreamingDistributionConfig is different from the original request, CloudFront returns a DistributionAlreadyExists error.', - 'type' => 'string', - ), - 'S3Origin' => array( - 'description' => 'A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution.', - 'type' => 'object', - 'properties' => array( - 'DomainName' => array( - 'description' => 'The DNS name of the S3 origin.', - 'type' => 'string', - ), - 'OriginAccessIdentity' => array( - 'description' => 'Your S3 origin\'s origin access identity.', - 'type' => 'string', - ), - ), - ), - 'Aliases' => array( - 'description' => 'A complex type that contains information about CNAMEs (alternate domain names), if any, for this streaming distribution.', - 'type' => 'object', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of CNAMEs, if any, for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains CNAME elements, if any, for this distribution. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'CNAME', - 'type' => 'string', - 'sentAs' => 'CNAME', - ), - ), - ), - ), - 'Comment' => array( - 'description' => 'Any comments you want to include about the streaming distribution.', - 'type' => 'string', - ), - 'Logging' => array( - 'description' => 'A complex type that controls whether access logs are written for the streaming distribution.', - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you do not want to enable logging when you create a distribution or if you want to disable logging for an existing distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket and Prefix, the values are automatically deleted.', - 'type' => 'boolean', - ), - 'Bucket' => array( - 'description' => 'The Amazon S3 bucket to store the access logs in, for example, myawslogbucket.s3.amazonaws.com.', - 'type' => 'string', - ), - 'Prefix' => array( - 'description' => 'An optional string that you want CloudFront to prefix to the access log filenames for this distribution, for example, myprefix/. If you want to enable logging, but you do not want to specify a prefix, you still must include an empty Prefix element in the Logging element.', - 'type' => 'string', - ), - ), - ), - 'TrustedSigners' => array( - 'description' => 'A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don\'t want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it\'s currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.', - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Specifies whether you want to require end users to use signed URLs to access the files specified by PathPattern and TargetOriginId.', - 'type' => 'boolean', - ), - 'Quantity' => array( - 'description' => 'The number of trusted signers for this cache behavior.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains trusted signers for this cache behavior. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'AwsAccountNumber', - 'type' => 'string', - 'sentAs' => 'AwsAccountNumber', - ), - ), - ), - ), - 'Enabled' => array( - 'description' => 'Whether the streaming distribution is enabled to accept end user requests for content.', - 'type' => 'boolean', - ), - ), - ), - 'Location' => array( - 'description' => 'The fully qualified URI of the new streaming distribution resource just created. For example: https://cloudfront.amazonaws.com/2010-11-01/streaming-distribution/EGTXBD79H29TRA8.', - 'type' => 'string', - 'location' => 'header', - ), - 'ETag' => array( - 'description' => 'The current version of the streaming distribution created.', - 'type' => 'string', - 'location' => 'header', - ), - 'RequestId' => array( - 'description' => 'Request ID of the operation', - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'DeleteCloudFrontOriginAccessIdentity2012_05_05Output' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RequestId' => array( - 'description' => 'Request ID of the operation', - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'DeleteDistribution2012_05_05Output' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RequestId' => array( - 'description' => 'Request ID of the operation', - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'DeleteStreamingDistribution2012_05_05Output' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RequestId' => array( - 'description' => 'Request ID of the operation', - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'GetCloudFrontOriginAccessIdentityResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Id' => array( - 'description' => 'The ID for the origin access identity. For example: E74FTE3AJFJ256A.', - 'type' => 'string', - 'location' => 'xml', - ), - 'S3CanonicalUserId' => array( - 'description' => 'The Amazon S3 canonical user ID for the origin access identity, which you use when giving the origin access identity read permission to an object in Amazon S3.', - 'type' => 'string', - 'location' => 'xml', - ), - 'CloudFrontOriginAccessIdentityConfig' => array( - 'description' => 'The current configuration information for the identity.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'CallerReference' => array( - 'description' => 'A unique number that ensures the request can\'t be replayed. If the CallerReference is new (no matter the content of the CloudFrontOriginAccessIdentityConfig object), a new origin access identity is created. If the CallerReference is a value you already sent in a previous request to create an identity, and the content of the CloudFrontOriginAccessIdentityConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request. 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.', - 'type' => 'string', - ), - 'Comment' => array( - 'description' => 'Any comments you want to include about the origin access identity.', - 'type' => 'string', - ), - ), - ), - 'ETag' => array( - 'description' => 'The current version of the origin access identity\'s information. For example: E2QWRUHAPOMQZL.', - 'type' => 'string', - 'location' => 'header', - ), - 'RequestId' => array( - 'description' => 'Request ID of the operation', - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'GetCloudFrontOriginAccessIdentityConfigResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'CallerReference' => array( - 'description' => 'A unique number that ensures the request can\'t be replayed. If the CallerReference is new (no matter the content of the CloudFrontOriginAccessIdentityConfig object), a new origin access identity is created. If the CallerReference is a value you already sent in a previous request to create an identity, and the content of the CloudFrontOriginAccessIdentityConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request. 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.', - 'type' => 'string', - 'location' => 'xml', - ), - 'Comment' => array( - 'description' => 'Any comments you want to include about the origin access identity.', - 'type' => 'string', - 'location' => 'xml', - ), - 'ETag' => array( - 'description' => 'The current version of the configuration. For example: E2QWRUHAPOMQZL.', - 'type' => 'string', - 'location' => 'header', - ), - 'RequestId' => array( - 'description' => 'Request ID of the operation', - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'GetDistributionResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Id' => array( - 'description' => 'The identifier for the distribution. For example: EDFDVBD632BHDS5.', - 'type' => 'string', - 'location' => 'xml', - ), - 'Status' => array( - 'description' => 'This response element indicates the current status of the distribution. When the status is Deployed, the distribution\'s information is fully propagated throughout the Amazon CloudFront system.', - 'type' => 'string', - 'location' => 'xml', - ), - 'LastModifiedTime' => array( - 'description' => 'The date and time the distribution was last modified.', - 'type' => 'string', - 'location' => 'xml', - ), - 'InProgressInvalidationBatches' => array( - 'description' => 'The number of invalidation batches currently in progress.', - 'type' => 'numeric', - 'location' => 'xml', - ), - 'DomainName' => array( - 'description' => 'The domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net.', - 'type' => 'string', - 'location' => 'xml', - ), - 'ActiveTrustedSigners' => array( - 'description' => 'CloudFront automatically adds this element to the response only if you\'ve set up the distribution to serve private content with signed URLs. The element lists the key pair IDs that CloudFront is aware of for each trusted signer. The Signer child element lists the AWS account number of the trusted signer (or an empty Self element if the signer is you). The Signer element also includes the IDs of any active key pairs associated with the trusted signer\'s AWS account. If no KeyPairId element appears for a Signer, that signer can\'t create working signed URLs.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Each active trusted signer.', - 'type' => 'boolean', - ), - 'Quantity' => array( - 'description' => 'The number of unique trusted signers included in all cache behaviors. For example, if three cache behaviors all list the same three AWS accounts, the value of Quantity for ActiveTrustedSigners will be 3.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'A complex type that contains one Signer complex type for each unique trusted signer that is specified in the TrustedSigners complex type, including trusted signers in the default cache behavior and in all of the other cache behaviors.', - 'type' => 'array', - 'items' => array( - 'name' => 'Signer', - 'description' => 'A complex type that lists the AWS accounts that were included in the TrustedSigners complex type, as well as their active CloudFront key pair IDs, if any.', - 'type' => 'object', - 'sentAs' => 'Signer', - 'properties' => array( - 'AwsAccountNumber' => array( - 'description' => 'Specifies an AWS account that can create signed URLs. Values: self, which indicates that the AWS account that was used to create the distribution can created signed URLs, or an AWS account number. Omit the dashes in the account number.', - 'type' => 'string', - ), - 'KeyPairIds' => array( - 'description' => 'A complex type that lists the active CloudFront key pairs, if any, that are associated with AwsAccountNumber.', - 'type' => 'object', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of active CloudFront key pairs for AwsAccountNumber.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'A complex type that lists the active CloudFront key pairs, if any, that are associated with AwsAccountNumber.', - 'type' => 'array', - 'items' => array( - 'name' => 'KeyPairId', - 'type' => 'string', - 'sentAs' => 'KeyPairId', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'DistributionConfig' => array( - 'description' => 'The current configuration information for the distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'CallerReference' => array( - 'description' => 'A unique number that ensures the request can\'t be replayed. If the CallerReference is new (no matter the content of the DistributionConfig object), a new distribution is created. If the CallerReference is a value you already sent in a previous request to create a distribution, and the content of the DistributionConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request. If the CallerReference is a value you already sent in a previous request to create a distribution but the content of the DistributionConfig is different from the original request, CloudFront returns a DistributionAlreadyExists error.', - 'type' => 'string', - ), - 'Aliases' => array( - 'description' => 'A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.', - 'type' => 'object', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of CNAMEs, if any, for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains CNAME elements, if any, for this distribution. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'CNAME', - 'type' => 'string', - 'sentAs' => 'CNAME', - ), - ), - ), - ), - 'DefaultRootObject' => array( - 'description' => 'The object that you want CloudFront to return (for example, index.html) when an end user requests the root URL for your distribution (http://www.example.com) instead of an object in your distribution (http://www.example.com/index.html). Specifying a default root object avoids exposing the contents of your distribution. If you don\'t want to specify a default root object when you create a distribution, include an empty DefaultRootObject element. To delete the default root object from an existing distribution, update the distribution configuration and include an empty DefaultRootObject element. To replace the default root object, update the distribution configuration and specify the new object.', - 'type' => 'string', - ), - 'Origins' => array( - 'description' => 'A complex type that contains information about origins for this distribution.', - 'type' => 'object', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of origins for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'A complex type that contains origins for this distribution.', - 'type' => 'array', - 'items' => array( - 'name' => 'Origin', - 'description' => 'A complex type that describes the Amazon S3 bucket or the HTTP server (for example, a web server) from which CloudFront gets your files.You must create at least one origin.', - 'type' => 'object', - 'sentAs' => 'Origin', - 'properties' => array( - 'Id' => array( - 'description' => 'A unique identifier for the origin. The value of Id must be unique within the distribution. You use the value of Id when you create a cache behavior. The Id identifies the origin that CloudFront routes a request to when the request matches the path pattern for that cache behavior.', - 'type' => 'string', - ), - 'DomainName' => array( - 'description' => 'Amazon S3 origins: The DNS name of the Amazon S3 bucket from which you want CloudFront to get objects for this origin, for example, myawsbucket.s3.amazonaws.com. Custom origins: The DNS domain name for the HTTP server from which you want CloudFront to get objects for this origin, for example, www.example.com.', - 'type' => 'string', - ), - 'S3OriginConfig' => array( - 'description' => 'A complex type that contains information about the Amazon S3 origin. If the origin is a custom origin, use the CustomOriginConfig element instead.', - 'type' => 'object', - 'properties' => array( - 'OriginAccessIdentity' => array( - 'description' => 'The CloudFront origin access identity to associate with the origin. Use an origin access identity to configure the origin so that end users can only access objects in an Amazon S3 bucket through CloudFront. If you want end users to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty OriginAccessIdentity element. To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty OriginAccessIdentity element. To replace the origin access identity, update the distribution configuration and specify the new origin access identity.', - 'type' => 'string', - ), - ), - ), - 'CustomOriginConfig' => array( - 'description' => 'A complex type that contains information about a custom origin. If the origin is an Amazon S3 bucket, use the S3OriginConfig element instead.', - 'type' => 'object', - 'properties' => array( - 'HTTPPort' => array( - 'description' => 'The HTTP port the custom origin listens on.', - 'type' => 'numeric', - ), - 'HTTPSPort' => array( - 'description' => 'The HTTPS port the custom origin listens on.', - 'type' => 'numeric', - ), - 'OriginProtocolPolicy' => array( - 'description' => 'The origin protocol policy to apply to your origin.', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - 'DefaultCacheBehavior' => array( - 'description' => 'A complex type that describes the default cache behavior if you do not specify a CacheBehavior element or if files don\'t match any of the values of PathPattern in CacheBehavior elements.You must create exactly one default cache behavior.', - 'type' => 'object', - 'properties' => array( - 'TargetOriginId' => array( - 'description' => 'The value of ID for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.', - 'type' => 'string', - ), - 'ForwardedValues' => array( - 'description' => 'A complex type that specifies how CloudFront handles query strings.', - 'type' => 'object', - 'properties' => array( - 'QueryString' => array( - 'description' => 'Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior. If so, specify true; if not, specify false.', - 'type' => 'boolean', - ), - ), - ), - 'TrustedSigners' => array( - 'description' => 'A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don\'t want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it\'s currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.', - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Specifies whether you want to require end users to use signed URLs to access the files specified by PathPattern and TargetOriginId.', - 'type' => 'boolean', - ), - 'Quantity' => array( - 'description' => 'The number of trusted signers for this cache behavior.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains trusted signers for this cache behavior. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'AwsAccountNumber', - 'type' => 'string', - 'sentAs' => 'AwsAccountNumber', - ), - ), - ), - ), - 'ViewerProtocolPolicy' => array( - 'description' => 'Use this element to specify the protocol that users can use to access the files in the origin specified by TargetOriginId when a request matches the path pattern in PathPattern. If you want CloudFront to allow end users to use any available protocol, specify allow-all. If you want CloudFront to require HTTPS, specify https.', - 'type' => 'string', - ), - 'MinTTL' => array( - 'description' => 'The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront queries your origin to see whether the object has been updated.You can specify a value from 0 to 3,153,600,000 seconds (100 years).', - 'type' => 'numeric', - ), - ), - ), - 'CacheBehaviors' => array( - 'description' => 'A complex type that contains zero or more CacheBehavior elements.', - 'type' => 'object', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of cache behaviors for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains cache behaviors for this distribution. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'CacheBehavior', - 'description' => 'A complex type that describes how CloudFront processes requests. You can create up to 10 cache behaviors.You must create at least as many cache behaviors (including the default cache behavior) as you have origins if you want CloudFront to distribute objects from all of the origins. Each cache behavior specifies the one origin from which you want CloudFront to get objects. If you have two origins and only the default cache behavior, the default cache behavior will cause CloudFront to get objects from one of the origins, but the other origin will never be used. If you don\'t want to specify any cache behaviors, include only an empty CacheBehaviors element. Don\'t include an empty CacheBehavior element, or CloudFront returns a MalformedXML error. To delete all cache behaviors in an existing distribution, update the distribution configuration and include only an empty CacheBehaviors element. To add, change, or remove one or more cache behaviors, update the distribution configuration and specify all of the cache behaviors that you want to include in the updated distribution.', - 'type' => 'object', - 'sentAs' => 'CacheBehavior', - 'properties' => array( - 'PathPattern' => array( - 'description' => 'The pattern (for example, images/*.jpg) that specifies which requests you want this cache behavior to apply to. When CloudFront receives an end-user request, the requested path is compared with path patterns in the order in which cache behaviors are listed in the distribution. The path pattern for the default cache behavior is * and cannot be changed. If the request for an object does not match the path pattern for any cache behaviors, CloudFront applies the behavior in the default cache behavior.', - 'type' => 'string', - ), - 'TargetOriginId' => array( - 'description' => 'The value of ID for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.', - 'type' => 'string', - ), - 'ForwardedValues' => array( - 'description' => 'A complex type that specifies how CloudFront handles query strings.', - 'type' => 'object', - 'properties' => array( - 'QueryString' => array( - 'description' => 'Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior. If so, specify true; if not, specify false.', - 'type' => 'boolean', - ), - ), - ), - 'TrustedSigners' => array( - 'description' => 'A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don\'t want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it\'s currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.', - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Specifies whether you want to require end users to use signed URLs to access the files specified by PathPattern and TargetOriginId.', - 'type' => 'boolean', - ), - 'Quantity' => array( - 'description' => 'The number of trusted signers for this cache behavior.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains trusted signers for this cache behavior. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'AwsAccountNumber', - 'type' => 'string', - 'sentAs' => 'AwsAccountNumber', - ), - ), - ), - ), - 'ViewerProtocolPolicy' => array( - 'description' => 'Use this element to specify the protocol that users can use to access the files in the origin specified by TargetOriginId when a request matches the path pattern in PathPattern. If you want CloudFront to allow end users to use any available protocol, specify allow-all. If you want CloudFront to require HTTPS, specify https.', - 'type' => 'string', - ), - 'MinTTL' => array( - 'description' => 'The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront queries your origin to see whether the object has been updated.You can specify a value from 0 to 3,153,600,000 seconds (100 years).', - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - 'Comment' => array( - 'description' => 'Any comments you want to include about the distribution.', - 'type' => 'string', - ), - 'Logging' => array( - 'description' => 'A complex type that controls whether access logs are written for the distribution.', - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you do not want to enable logging when you create a distribution or if you want to disable logging for an existing distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket and Prefix, the values are automatically deleted.', - 'type' => 'boolean', - ), - 'Bucket' => array( - 'description' => 'The Amazon S3 bucket to store the access logs in, for example, myawslogbucket.s3.amazonaws.com.', - 'type' => 'string', - ), - 'Prefix' => array( - 'description' => 'An optional string that you want CloudFront to prefix to the access log filenames for this distribution, for example, myprefix/. If you want to enable logging, but you do not want to specify a prefix, you still must include an empty Prefix element in the Logging element.', - 'type' => 'string', - ), - ), - ), - 'Enabled' => array( - 'description' => 'Whether the distribution is enabled to accept end user requests for content.', - 'type' => 'boolean', - ), - ), - ), - 'ETag' => array( - 'description' => 'The current version of the distribution\'s information. For example: E2QWRUHAPOMQZL.', - 'type' => 'string', - 'location' => 'header', - ), - 'RequestId' => array( - 'description' => 'Request ID of the operation', - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'GetDistributionConfigResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'CallerReference' => array( - 'description' => 'A unique number that ensures the request can\'t be replayed. If the CallerReference is new (no matter the content of the DistributionConfig object), a new distribution is created. If the CallerReference is a value you already sent in a previous request to create a distribution, and the content of the DistributionConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request. If the CallerReference is a value you already sent in a previous request to create a distribution but the content of the DistributionConfig is different from the original request, CloudFront returns a DistributionAlreadyExists error.', - 'type' => 'string', - 'location' => 'xml', - ), - 'Aliases' => array( - 'description' => 'A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of CNAMEs, if any, for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains CNAME elements, if any, for this distribution. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'CNAME', - 'type' => 'string', - 'sentAs' => 'CNAME', - ), - ), - ), - ), - 'DefaultRootObject' => array( - 'description' => 'The object that you want CloudFront to return (for example, index.html) when an end user requests the root URL for your distribution (http://www.example.com) instead of an object in your distribution (http://www.example.com/index.html). Specifying a default root object avoids exposing the contents of your distribution. If you don\'t want to specify a default root object when you create a distribution, include an empty DefaultRootObject element. To delete the default root object from an existing distribution, update the distribution configuration and include an empty DefaultRootObject element. To replace the default root object, update the distribution configuration and specify the new object.', - 'type' => 'string', - 'location' => 'xml', - ), - 'Origins' => array( - 'description' => 'A complex type that contains information about origins for this distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of origins for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'A complex type that contains origins for this distribution.', - 'type' => 'array', - 'items' => array( - 'name' => 'Origin', - 'description' => 'A complex type that describes the Amazon S3 bucket or the HTTP server (for example, a web server) from which CloudFront gets your files.You must create at least one origin.', - 'type' => 'object', - 'sentAs' => 'Origin', - 'properties' => array( - 'Id' => array( - 'description' => 'A unique identifier for the origin. The value of Id must be unique within the distribution. You use the value of Id when you create a cache behavior. The Id identifies the origin that CloudFront routes a request to when the request matches the path pattern for that cache behavior.', - 'type' => 'string', - ), - 'DomainName' => array( - 'description' => 'Amazon S3 origins: The DNS name of the Amazon S3 bucket from which you want CloudFront to get objects for this origin, for example, myawsbucket.s3.amazonaws.com. Custom origins: The DNS domain name for the HTTP server from which you want CloudFront to get objects for this origin, for example, www.example.com.', - 'type' => 'string', - ), - 'S3OriginConfig' => array( - 'description' => 'A complex type that contains information about the Amazon S3 origin. If the origin is a custom origin, use the CustomOriginConfig element instead.', - 'type' => 'object', - 'properties' => array( - 'OriginAccessIdentity' => array( - 'description' => 'The CloudFront origin access identity to associate with the origin. Use an origin access identity to configure the origin so that end users can only access objects in an Amazon S3 bucket through CloudFront. If you want end users to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty OriginAccessIdentity element. To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty OriginAccessIdentity element. To replace the origin access identity, update the distribution configuration and specify the new origin access identity.', - 'type' => 'string', - ), - ), - ), - 'CustomOriginConfig' => array( - 'description' => 'A complex type that contains information about a custom origin. If the origin is an Amazon S3 bucket, use the S3OriginConfig element instead.', - 'type' => 'object', - 'properties' => array( - 'HTTPPort' => array( - 'description' => 'The HTTP port the custom origin listens on.', - 'type' => 'numeric', - ), - 'HTTPSPort' => array( - 'description' => 'The HTTPS port the custom origin listens on.', - 'type' => 'numeric', - ), - 'OriginProtocolPolicy' => array( - 'description' => 'The origin protocol policy to apply to your origin.', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - 'DefaultCacheBehavior' => array( - 'description' => 'A complex type that describes the default cache behavior if you do not specify a CacheBehavior element or if files don\'t match any of the values of PathPattern in CacheBehavior elements.You must create exactly one default cache behavior.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'TargetOriginId' => array( - 'description' => 'The value of ID for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.', - 'type' => 'string', - ), - 'ForwardedValues' => array( - 'description' => 'A complex type that specifies how CloudFront handles query strings.', - 'type' => 'object', - 'properties' => array( - 'QueryString' => array( - 'description' => 'Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior. If so, specify true; if not, specify false.', - 'type' => 'boolean', - ), - ), - ), - 'TrustedSigners' => array( - 'description' => 'A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don\'t want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it\'s currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.', - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Specifies whether you want to require end users to use signed URLs to access the files specified by PathPattern and TargetOriginId.', - 'type' => 'boolean', - ), - 'Quantity' => array( - 'description' => 'The number of trusted signers for this cache behavior.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains trusted signers for this cache behavior. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'AwsAccountNumber', - 'type' => 'string', - 'sentAs' => 'AwsAccountNumber', - ), - ), - ), - ), - 'ViewerProtocolPolicy' => array( - 'description' => 'Use this element to specify the protocol that users can use to access the files in the origin specified by TargetOriginId when a request matches the path pattern in PathPattern. If you want CloudFront to allow end users to use any available protocol, specify allow-all. If you want CloudFront to require HTTPS, specify https.', - 'type' => 'string', - ), - 'MinTTL' => array( - 'description' => 'The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront queries your origin to see whether the object has been updated.You can specify a value from 0 to 3,153,600,000 seconds (100 years).', - 'type' => 'numeric', - ), - ), - ), - 'CacheBehaviors' => array( - 'description' => 'A complex type that contains zero or more CacheBehavior elements.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of cache behaviors for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains cache behaviors for this distribution. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'CacheBehavior', - 'description' => 'A complex type that describes how CloudFront processes requests. You can create up to 10 cache behaviors.You must create at least as many cache behaviors (including the default cache behavior) as you have origins if you want CloudFront to distribute objects from all of the origins. Each cache behavior specifies the one origin from which you want CloudFront to get objects. If you have two origins and only the default cache behavior, the default cache behavior will cause CloudFront to get objects from one of the origins, but the other origin will never be used. If you don\'t want to specify any cache behaviors, include only an empty CacheBehaviors element. Don\'t include an empty CacheBehavior element, or CloudFront returns a MalformedXML error. To delete all cache behaviors in an existing distribution, update the distribution configuration and include only an empty CacheBehaviors element. To add, change, or remove one or more cache behaviors, update the distribution configuration and specify all of the cache behaviors that you want to include in the updated distribution.', - 'type' => 'object', - 'sentAs' => 'CacheBehavior', - 'properties' => array( - 'PathPattern' => array( - 'description' => 'The pattern (for example, images/*.jpg) that specifies which requests you want this cache behavior to apply to. When CloudFront receives an end-user request, the requested path is compared with path patterns in the order in which cache behaviors are listed in the distribution. The path pattern for the default cache behavior is * and cannot be changed. If the request for an object does not match the path pattern for any cache behaviors, CloudFront applies the behavior in the default cache behavior.', - 'type' => 'string', - ), - 'TargetOriginId' => array( - 'description' => 'The value of ID for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.', - 'type' => 'string', - ), - 'ForwardedValues' => array( - 'description' => 'A complex type that specifies how CloudFront handles query strings.', - 'type' => 'object', - 'properties' => array( - 'QueryString' => array( - 'description' => 'Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior. If so, specify true; if not, specify false.', - 'type' => 'boolean', - ), - ), - ), - 'TrustedSigners' => array( - 'description' => 'A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don\'t want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it\'s currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.', - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Specifies whether you want to require end users to use signed URLs to access the files specified by PathPattern and TargetOriginId.', - 'type' => 'boolean', - ), - 'Quantity' => array( - 'description' => 'The number of trusted signers for this cache behavior.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains trusted signers for this cache behavior. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'AwsAccountNumber', - 'type' => 'string', - 'sentAs' => 'AwsAccountNumber', - ), - ), - ), - ), - 'ViewerProtocolPolicy' => array( - 'description' => 'Use this element to specify the protocol that users can use to access the files in the origin specified by TargetOriginId when a request matches the path pattern in PathPattern. If you want CloudFront to allow end users to use any available protocol, specify allow-all. If you want CloudFront to require HTTPS, specify https.', - 'type' => 'string', - ), - 'MinTTL' => array( - 'description' => 'The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront queries your origin to see whether the object has been updated.You can specify a value from 0 to 3,153,600,000 seconds (100 years).', - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - 'Comment' => array( - 'description' => 'Any comments you want to include about the distribution.', - 'type' => 'string', - 'location' => 'xml', - ), - 'Logging' => array( - 'description' => 'A complex type that controls whether access logs are written for the distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you do not want to enable logging when you create a distribution or if you want to disable logging for an existing distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket and Prefix, the values are automatically deleted.', - 'type' => 'boolean', - ), - 'Bucket' => array( - 'description' => 'The Amazon S3 bucket to store the access logs in, for example, myawslogbucket.s3.amazonaws.com.', - 'type' => 'string', - ), - 'Prefix' => array( - 'description' => 'An optional string that you want CloudFront to prefix to the access log filenames for this distribution, for example, myprefix/. If you want to enable logging, but you do not want to specify a prefix, you still must include an empty Prefix element in the Logging element.', - 'type' => 'string', - ), - ), - ), - 'Enabled' => array( - 'description' => 'Whether the distribution is enabled to accept end user requests for content.', - 'type' => 'boolean', - 'location' => 'xml', - ), - 'ETag' => array( - 'description' => 'The current version of the configuration. For example: E2QWRUHAPOMQZL.', - 'type' => 'string', - 'location' => 'header', - ), - 'RequestId' => array( - 'description' => 'Request ID of the operation', - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'GetInvalidationResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Id' => array( - 'description' => 'The identifier for the invalidation request. For example: IDFDVBD632BHDS5.', - 'type' => 'string', - 'location' => 'xml', - ), - 'Status' => array( - 'description' => 'The status of the invalidation request. When the invalidation batch is finished, the status is Completed.', - 'type' => 'string', - 'location' => 'xml', - ), - 'CreateTime' => array( - 'description' => 'The date and time the invalidation request was first made.', - 'type' => 'string', - 'location' => 'xml', - ), - 'InvalidationBatch' => array( - 'description' => 'The current invalidation information for the batch request.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Paths' => array( - 'description' => 'The path of the object to invalidate. The path is relative to the distribution and must begin with a slash (/). You must enclose each invalidation object with the Path element tags. If the path includes non-ASCII characters or unsafe characters as defined in RFC 1783 (http://www.ietf.org/rfc/rfc1738.txt), URL encode those characters. Do not URL encode any other characters in the path, or CloudFront will not invalidate the old version of the updated object.', - 'type' => 'object', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of objects that you want to invalidate.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'A complex type that contains a list of the objects that you want to invalidate.', - 'type' => 'array', - 'items' => array( - 'name' => 'Path', - 'type' => 'string', - 'sentAs' => 'Path', - ), - ), - ), - ), - 'CallerReference' => array( - 'description' => 'A unique name that ensures the request can\'t be replayed. If the CallerReference is new (no matter the content of the Path object), a new distribution is created. If the CallerReference is a value you already sent in a previous request to create an invalidation batch, and the content of each Path element is identical to the original request, the response includes the same information returned to the original request. If the CallerReference is a value you already sent in a previous request to create a distribution but the content of any Path is different from the original request, CloudFront returns an InvalidationBatchAlreadyExists error.', - 'type' => 'string', - ), - ), - ), - 'RequestId' => array( - 'description' => 'Request ID of the operation', - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'GetStreamingDistributionResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Id' => array( - 'description' => 'The identifier for the streaming distribution. For example: EGTXBD79H29TRA8.', - 'type' => 'string', - 'location' => 'xml', - ), - 'Status' => array( - 'description' => 'The current status of the streaming distribution. When the status is Deployed, the distribution\'s information is fully propagated throughout the Amazon CloudFront system.', - 'type' => 'string', - 'location' => 'xml', - ), - 'LastModifiedTime' => array( - 'description' => 'The date and time the distribution was last modified.', - 'type' => 'string', - 'location' => 'xml', - ), - 'DomainName' => array( - 'description' => 'The domain name corresponding to the streaming distribution. For example: s5c39gqb8ow64r.cloudfront.net.', - 'type' => 'string', - 'location' => 'xml', - ), - 'ActiveTrustedSigners' => array( - 'description' => 'CloudFront automatically adds this element to the response only if you\'ve set up the distribution to serve private content with signed URLs. The element lists the key pair IDs that CloudFront is aware of for each trusted signer. The Signer child element lists the AWS account number of the trusted signer (or an empty Self element if the signer is you). The Signer element also includes the IDs of any active key pairs associated with the trusted signer\'s AWS account. If no KeyPairId element appears for a Signer, that signer can\'t create working signed URLs.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Each active trusted signer.', - 'type' => 'boolean', - ), - 'Quantity' => array( - 'description' => 'The number of unique trusted signers included in all cache behaviors. For example, if three cache behaviors all list the same three AWS accounts, the value of Quantity for ActiveTrustedSigners will be 3.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'A complex type that contains one Signer complex type for each unique trusted signer that is specified in the TrustedSigners complex type, including trusted signers in the default cache behavior and in all of the other cache behaviors.', - 'type' => 'array', - 'items' => array( - 'name' => 'Signer', - 'description' => 'A complex type that lists the AWS accounts that were included in the TrustedSigners complex type, as well as their active CloudFront key pair IDs, if any.', - 'type' => 'object', - 'sentAs' => 'Signer', - 'properties' => array( - 'AwsAccountNumber' => array( - 'description' => 'Specifies an AWS account that can create signed URLs. Values: self, which indicates that the AWS account that was used to create the distribution can created signed URLs, or an AWS account number. Omit the dashes in the account number.', - 'type' => 'string', - ), - 'KeyPairIds' => array( - 'description' => 'A complex type that lists the active CloudFront key pairs, if any, that are associated with AwsAccountNumber.', - 'type' => 'object', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of active CloudFront key pairs for AwsAccountNumber.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'A complex type that lists the active CloudFront key pairs, if any, that are associated with AwsAccountNumber.', - 'type' => 'array', - 'items' => array( - 'name' => 'KeyPairId', - 'type' => 'string', - 'sentAs' => 'KeyPairId', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'StreamingDistributionConfig' => array( - 'description' => 'The current configuration information for the streaming distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'CallerReference' => array( - 'description' => 'A unique number that ensures the request can\'t be replayed. If the CallerReference is new (no matter the content of the StreamingDistributionConfig object), a new streaming distribution is created. If the CallerReference is a value you already sent in a previous request to create a streaming distribution, and the content of the StreamingDistributionConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request. If the CallerReference is a value you already sent in a previous request to create a streaming distribution but the content of the StreamingDistributionConfig is different from the original request, CloudFront returns a DistributionAlreadyExists error.', - 'type' => 'string', - ), - 'S3Origin' => array( - 'description' => 'A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution.', - 'type' => 'object', - 'properties' => array( - 'DomainName' => array( - 'description' => 'The DNS name of the S3 origin.', - 'type' => 'string', - ), - 'OriginAccessIdentity' => array( - 'description' => 'Your S3 origin\'s origin access identity.', - 'type' => 'string', - ), - ), - ), - 'Aliases' => array( - 'description' => 'A complex type that contains information about CNAMEs (alternate domain names), if any, for this streaming distribution.', - 'type' => 'object', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of CNAMEs, if any, for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains CNAME elements, if any, for this distribution. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'CNAME', - 'type' => 'string', - 'sentAs' => 'CNAME', - ), - ), - ), - ), - 'Comment' => array( - 'description' => 'Any comments you want to include about the streaming distribution.', - 'type' => 'string', - ), - 'Logging' => array( - 'description' => 'A complex type that controls whether access logs are written for the streaming distribution.', - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you do not want to enable logging when you create a distribution or if you want to disable logging for an existing distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket and Prefix, the values are automatically deleted.', - 'type' => 'boolean', - ), - 'Bucket' => array( - 'description' => 'The Amazon S3 bucket to store the access logs in, for example, myawslogbucket.s3.amazonaws.com.', - 'type' => 'string', - ), - 'Prefix' => array( - 'description' => 'An optional string that you want CloudFront to prefix to the access log filenames for this distribution, for example, myprefix/. If you want to enable logging, but you do not want to specify a prefix, you still must include an empty Prefix element in the Logging element.', - 'type' => 'string', - ), - ), - ), - 'TrustedSigners' => array( - 'description' => 'A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don\'t want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it\'s currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.', - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Specifies whether you want to require end users to use signed URLs to access the files specified by PathPattern and TargetOriginId.', - 'type' => 'boolean', - ), - 'Quantity' => array( - 'description' => 'The number of trusted signers for this cache behavior.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains trusted signers for this cache behavior. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'AwsAccountNumber', - 'type' => 'string', - 'sentAs' => 'AwsAccountNumber', - ), - ), - ), - ), - 'Enabled' => array( - 'description' => 'Whether the streaming distribution is enabled to accept end user requests for content.', - 'type' => 'boolean', - ), - ), - ), - 'ETag' => array( - 'description' => 'The current version of the streaming distribution\'s information. For example: E2QWRUHAPOMQZL.', - 'type' => 'string', - 'location' => 'header', - ), - 'RequestId' => array( - 'description' => 'Request ID of the operation', - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'GetStreamingDistributionConfigResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'CallerReference' => array( - 'description' => 'A unique number that ensures the request can\'t be replayed. If the CallerReference is new (no matter the content of the StreamingDistributionConfig object), a new streaming distribution is created. If the CallerReference is a value you already sent in a previous request to create a streaming distribution, and the content of the StreamingDistributionConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request. If the CallerReference is a value you already sent in a previous request to create a streaming distribution but the content of the StreamingDistributionConfig is different from the original request, CloudFront returns a DistributionAlreadyExists error.', - 'type' => 'string', - 'location' => 'xml', - ), - 'S3Origin' => array( - 'description' => 'A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'DomainName' => array( - 'description' => 'The DNS name of the S3 origin.', - 'type' => 'string', - ), - 'OriginAccessIdentity' => array( - 'description' => 'Your S3 origin\'s origin access identity.', - 'type' => 'string', - ), - ), - ), - 'Aliases' => array( - 'description' => 'A complex type that contains information about CNAMEs (alternate domain names), if any, for this streaming distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of CNAMEs, if any, for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains CNAME elements, if any, for this distribution. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'CNAME', - 'type' => 'string', - 'sentAs' => 'CNAME', - ), - ), - ), - ), - 'Comment' => array( - 'description' => 'Any comments you want to include about the streaming distribution.', - 'type' => 'string', - 'location' => 'xml', - ), - 'Logging' => array( - 'description' => 'A complex type that controls whether access logs are written for the streaming distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you do not want to enable logging when you create a distribution or if you want to disable logging for an existing distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket and Prefix, the values are automatically deleted.', - 'type' => 'boolean', - ), - 'Bucket' => array( - 'description' => 'The Amazon S3 bucket to store the access logs in, for example, myawslogbucket.s3.amazonaws.com.', - 'type' => 'string', - ), - 'Prefix' => array( - 'description' => 'An optional string that you want CloudFront to prefix to the access log filenames for this distribution, for example, myprefix/. If you want to enable logging, but you do not want to specify a prefix, you still must include an empty Prefix element in the Logging element.', - 'type' => 'string', - ), - ), - ), - 'TrustedSigners' => array( - 'description' => 'A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don\'t want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it\'s currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Specifies whether you want to require end users to use signed URLs to access the files specified by PathPattern and TargetOriginId.', - 'type' => 'boolean', - ), - 'Quantity' => array( - 'description' => 'The number of trusted signers for this cache behavior.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains trusted signers for this cache behavior. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'AwsAccountNumber', - 'type' => 'string', - 'sentAs' => 'AwsAccountNumber', - ), - ), - ), - ), - 'Enabled' => array( - 'description' => 'Whether the streaming distribution is enabled to accept end user requests for content.', - 'type' => 'boolean', - 'location' => 'xml', - ), - 'ETag' => array( - 'description' => 'The current version of the configuration. For example: E2QWRUHAPOMQZL.', - 'type' => 'string', - 'location' => 'header', - ), - 'RequestId' => array( - 'description' => 'Request ID of the operation', - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'ListCloudFrontOriginAccessIdentitiesResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Marker' => array( - 'description' => 'The value you provided for the Marker request parameter.', - 'type' => 'string', - 'location' => 'xml', - ), - 'NextMarker' => array( - 'description' => 'If IsTruncated is true, this element is present and contains the value you can use for the Marker request parameter to continue listing your origin access identities where they left off.', - 'type' => 'string', - 'location' => 'xml', - ), - 'MaxItems' => array( - 'description' => 'The value you provided for the MaxItems request parameter.', - 'type' => 'numeric', - 'location' => 'xml', - ), - 'IsTruncated' => array( - 'description' => 'A flag that indicates whether more origin access identities remain to be listed. If your results were truncated, you can make a follow-up pagination request using the Marker request parameter to retrieve more items in the list.', - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Quantity' => array( - 'description' => 'The number of CloudFront origin access identities that were created by the current AWS account.', - 'type' => 'numeric', - 'location' => 'xml', - ), - 'Items' => array( - 'description' => 'A complex type that contains one CloudFrontOriginAccessIdentitySummary element for each origin access identity that was created by the current AWS account.', - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'CloudFrontOriginAccessIdentitySummary', - 'description' => 'Summary of the information about a CloudFront origin access identity.', - 'type' => 'object', - 'sentAs' => 'CloudFrontOriginAccessIdentitySummary', - 'properties' => array( - 'Id' => array( - 'description' => 'The ID for the origin access identity. For example: E74FTE3AJFJ256A.', - 'type' => 'string', - ), - 'S3CanonicalUserId' => array( - 'description' => 'The Amazon S3 canonical user ID for the origin access identity, which you use when giving the origin access identity read permission to an object in Amazon S3.', - 'type' => 'string', - ), - 'Comment' => array( - 'description' => 'The comment for this origin access identity, as originally specified when created.', - 'type' => 'string', - ), - ), - ), - ), - 'RequestId' => array( - 'description' => 'Request ID of the operation', - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'ListDistributionsResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Marker' => array( - 'description' => 'The value you provided for the Marker request parameter.', - 'type' => 'string', - 'location' => 'xml', - ), - 'NextMarker' => array( - 'description' => 'If IsTruncated is true, this element is present and contains the value you can use for the Marker request parameter to continue listing your distributions where they left off.', - 'type' => 'string', - 'location' => 'xml', - ), - 'MaxItems' => array( - 'description' => 'The value you provided for the MaxItems request parameter.', - 'type' => 'numeric', - 'location' => 'xml', - ), - 'IsTruncated' => array( - 'description' => 'A flag that indicates whether more distributions remain to be listed. If your results were truncated, you can make a follow-up pagination request using the Marker request parameter to retrieve more distributions in the list.', - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Quantity' => array( - 'description' => 'The number of distributions that were created by the current AWS account.', - 'type' => 'numeric', - 'location' => 'xml', - ), - 'Items' => array( - 'description' => 'A complex type that contains one DistributionSummary element for each distribution that was created by the current AWS account.', - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'DistributionSummary', - 'description' => 'A summary of the information for an Amazon CloudFront distribution.', - 'type' => 'object', - 'sentAs' => 'DistributionSummary', - 'properties' => array( - 'Id' => array( - 'description' => 'The identifier for the distribution. For example: EDFDVBD632BHDS5.', - 'type' => 'string', - ), - 'Status' => array( - 'description' => 'This response element indicates the current status of the distribution. When the status is Deployed, the distribution\'s information is fully propagated throughout the Amazon CloudFront system.', - 'type' => 'string', - ), - 'LastModifiedTime' => array( - 'description' => 'The date and time the distribution was last modified.', - 'type' => 'string', - ), - 'DomainName' => array( - 'description' => 'The domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net.', - 'type' => 'string', - ), - 'Aliases' => array( - 'description' => 'A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.', - 'type' => 'object', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of CNAMEs, if any, for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains CNAME elements, if any, for this distribution. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'CNAME', - 'type' => 'string', - 'sentAs' => 'CNAME', - ), - ), - ), - ), - 'Origins' => array( - 'description' => 'A complex type that contains information about origins for this distribution.', - 'type' => 'object', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of origins for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'A complex type that contains origins for this distribution.', - 'type' => 'array', - 'items' => array( - 'name' => 'Origin', - 'description' => 'A complex type that describes the Amazon S3 bucket or the HTTP server (for example, a web server) from which CloudFront gets your files.You must create at least one origin.', - 'type' => 'object', - 'sentAs' => 'Origin', - 'properties' => array( - 'Id' => array( - 'description' => 'A unique identifier for the origin. The value of Id must be unique within the distribution. You use the value of Id when you create a cache behavior. The Id identifies the origin that CloudFront routes a request to when the request matches the path pattern for that cache behavior.', - 'type' => 'string', - ), - 'DomainName' => array( - 'description' => 'Amazon S3 origins: The DNS name of the Amazon S3 bucket from which you want CloudFront to get objects for this origin, for example, myawsbucket.s3.amazonaws.com. Custom origins: The DNS domain name for the HTTP server from which you want CloudFront to get objects for this origin, for example, www.example.com.', - 'type' => 'string', - ), - 'S3OriginConfig' => array( - 'description' => 'A complex type that contains information about the Amazon S3 origin. If the origin is a custom origin, use the CustomOriginConfig element instead.', - 'type' => 'object', - 'properties' => array( - 'OriginAccessIdentity' => array( - 'description' => 'The CloudFront origin access identity to associate with the origin. Use an origin access identity to configure the origin so that end users can only access objects in an Amazon S3 bucket through CloudFront. If you want end users to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty OriginAccessIdentity element. To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty OriginAccessIdentity element. To replace the origin access identity, update the distribution configuration and specify the new origin access identity.', - 'type' => 'string', - ), - ), - ), - 'CustomOriginConfig' => array( - 'description' => 'A complex type that contains information about a custom origin. If the origin is an Amazon S3 bucket, use the S3OriginConfig element instead.', - 'type' => 'object', - 'properties' => array( - 'HTTPPort' => array( - 'description' => 'The HTTP port the custom origin listens on.', - 'type' => 'numeric', - ), - 'HTTPSPort' => array( - 'description' => 'The HTTPS port the custom origin listens on.', - 'type' => 'numeric', - ), - 'OriginProtocolPolicy' => array( - 'description' => 'The origin protocol policy to apply to your origin.', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - 'DefaultCacheBehavior' => array( - 'description' => 'A complex type that describes the default cache behavior if you do not specify a CacheBehavior element or if files don\'t match any of the values of PathPattern in CacheBehavior elements.You must create exactly one default cache behavior.', - 'type' => 'object', - 'properties' => array( - 'TargetOriginId' => array( - 'description' => 'The value of ID for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.', - 'type' => 'string', - ), - 'ForwardedValues' => array( - 'description' => 'A complex type that specifies how CloudFront handles query strings.', - 'type' => 'object', - 'properties' => array( - 'QueryString' => array( - 'description' => 'Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior. If so, specify true; if not, specify false.', - 'type' => 'boolean', - ), - ), - ), - 'TrustedSigners' => array( - 'description' => 'A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don\'t want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it\'s currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.', - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Specifies whether you want to require end users to use signed URLs to access the files specified by PathPattern and TargetOriginId.', - 'type' => 'boolean', - ), - 'Quantity' => array( - 'description' => 'The number of trusted signers for this cache behavior.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains trusted signers for this cache behavior. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'AwsAccountNumber', - 'type' => 'string', - 'sentAs' => 'AwsAccountNumber', - ), - ), - ), - ), - 'ViewerProtocolPolicy' => array( - 'description' => 'Use this element to specify the protocol that users can use to access the files in the origin specified by TargetOriginId when a request matches the path pattern in PathPattern. If you want CloudFront to allow end users to use any available protocol, specify allow-all. If you want CloudFront to require HTTPS, specify https.', - 'type' => 'string', - ), - 'MinTTL' => array( - 'description' => 'The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront queries your origin to see whether the object has been updated.You can specify a value from 0 to 3,153,600,000 seconds (100 years).', - 'type' => 'numeric', - ), - ), - ), - 'CacheBehaviors' => array( - 'description' => 'A complex type that contains zero or more CacheBehavior elements.', - 'type' => 'object', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of cache behaviors for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains cache behaviors for this distribution. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'CacheBehavior', - 'description' => 'A complex type that describes how CloudFront processes requests. You can create up to 10 cache behaviors.You must create at least as many cache behaviors (including the default cache behavior) as you have origins if you want CloudFront to distribute objects from all of the origins. Each cache behavior specifies the one origin from which you want CloudFront to get objects. If you have two origins and only the default cache behavior, the default cache behavior will cause CloudFront to get objects from one of the origins, but the other origin will never be used. If you don\'t want to specify any cache behaviors, include only an empty CacheBehaviors element. Don\'t include an empty CacheBehavior element, or CloudFront returns a MalformedXML error. To delete all cache behaviors in an existing distribution, update the distribution configuration and include only an empty CacheBehaviors element. To add, change, or remove one or more cache behaviors, update the distribution configuration and specify all of the cache behaviors that you want to include in the updated distribution.', - 'type' => 'object', - 'sentAs' => 'CacheBehavior', - 'properties' => array( - 'PathPattern' => array( - 'description' => 'The pattern (for example, images/*.jpg) that specifies which requests you want this cache behavior to apply to. When CloudFront receives an end-user request, the requested path is compared with path patterns in the order in which cache behaviors are listed in the distribution. The path pattern for the default cache behavior is * and cannot be changed. If the request for an object does not match the path pattern for any cache behaviors, CloudFront applies the behavior in the default cache behavior.', - 'type' => 'string', - ), - 'TargetOriginId' => array( - 'description' => 'The value of ID for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.', - 'type' => 'string', - ), - 'ForwardedValues' => array( - 'description' => 'A complex type that specifies how CloudFront handles query strings.', - 'type' => 'object', - 'properties' => array( - 'QueryString' => array( - 'description' => 'Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior. If so, specify true; if not, specify false.', - 'type' => 'boolean', - ), - ), - ), - 'TrustedSigners' => array( - 'description' => 'A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don\'t want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it\'s currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.', - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Specifies whether you want to require end users to use signed URLs to access the files specified by PathPattern and TargetOriginId.', - 'type' => 'boolean', - ), - 'Quantity' => array( - 'description' => 'The number of trusted signers for this cache behavior.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains trusted signers for this cache behavior. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'AwsAccountNumber', - 'type' => 'string', - 'sentAs' => 'AwsAccountNumber', - ), - ), - ), - ), - 'ViewerProtocolPolicy' => array( - 'description' => 'Use this element to specify the protocol that users can use to access the files in the origin specified by TargetOriginId when a request matches the path pattern in PathPattern. If you want CloudFront to allow end users to use any available protocol, specify allow-all. If you want CloudFront to require HTTPS, specify https.', - 'type' => 'string', - ), - 'MinTTL' => array( - 'description' => 'The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront queries your origin to see whether the object has been updated.You can specify a value from 0 to 3,153,600,000 seconds (100 years).', - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - 'Comment' => array( - 'description' => 'The comment originally specified when this distribution was created.', - 'type' => 'string', - ), - 'Enabled' => array( - 'description' => 'Whether the distribution is enabled to accept end user requests for content.', - 'type' => 'boolean', - ), - ), - ), - ), - 'RequestId' => array( - 'description' => 'Request ID of the operation', - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'ListInvalidationsResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Marker' => array( - 'description' => 'The value you provided for the Marker request parameter.', - 'type' => 'string', - 'location' => 'xml', - ), - 'NextMarker' => array( - 'description' => 'If IsTruncated is true, this element is present and contains the value you can use for the Marker request parameter to continue listing your invalidation batches where they left off.', - 'type' => 'string', - 'location' => 'xml', - ), - 'MaxItems' => array( - 'description' => 'The value you provided for the MaxItems request parameter.', - 'type' => 'numeric', - 'location' => 'xml', - ), - 'IsTruncated' => array( - 'description' => 'A flag that indicates whether more invalidation batch requests remain to be listed. If your results were truncated, you can make a follow-up pagination request using the Marker request parameter to retrieve more invalidation batches in the list.', - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Quantity' => array( - 'description' => 'The number of invalidation batches that were created by the current AWS account.', - 'type' => 'numeric', - 'location' => 'xml', - ), - 'Items' => array( - 'description' => 'A complex type that contains one InvalidationSummary element for each invalidation batch that was created by the current AWS account.', - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'InvalidationSummary', - 'description' => 'Summary of an invalidation request.', - 'type' => 'object', - 'sentAs' => 'InvalidationSummary', - 'properties' => array( - 'Id' => array( - 'description' => 'The unique ID for an invalidation request.', - 'type' => 'string', - ), - 'Status' => array( - 'description' => 'The status of an invalidation request.', - 'type' => 'string', - ), - ), - ), - ), - 'RequestId' => array( - 'description' => 'Request ID of the operation', - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'ListStreamingDistributionsResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Marker' => array( - 'description' => 'The value you provided for the Marker request parameter.', - 'type' => 'string', - 'location' => 'xml', - ), - 'NextMarker' => array( - 'description' => 'If IsTruncated is true, this element is present and contains the value you can use for the Marker request parameter to continue listing your streaming distributions where they left off.', - 'type' => 'string', - 'location' => 'xml', - ), - 'MaxItems' => array( - 'description' => 'The value you provided for the MaxItems request parameter.', - 'type' => 'numeric', - 'location' => 'xml', - ), - 'IsTruncated' => array( - 'description' => 'A flag that indicates whether more streaming distributions remain to be listed. If your results were truncated, you can make a follow-up pagination request using the Marker request parameter to retrieve more distributions in the list.', - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Quantity' => array( - 'description' => 'The number of streaming distributions that were created by the current AWS account.', - 'type' => 'numeric', - 'location' => 'xml', - ), - 'Items' => array( - 'description' => 'A complex type that contains one StreamingDistributionSummary element for each distribution that was created by the current AWS account.', - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'StreamingDistributionSummary', - 'description' => 'A summary of the information for an Amazon CloudFront streaming distribution.', - 'type' => 'object', - 'sentAs' => 'StreamingDistributionSummary', - 'properties' => array( - 'Id' => array( - 'description' => 'The identifier for the distribution. For example: EDFDVBD632BHDS5.', - 'type' => 'string', - ), - 'Status' => array( - 'description' => 'Indicates the current status of the distribution. When the status is Deployed, the distribution\'s information is fully propagated throughout the Amazon CloudFront system.', - 'type' => 'string', - ), - 'LastModifiedTime' => array( - 'description' => 'The date and time the distribution was last modified.', - 'type' => 'string', - ), - 'DomainName' => array( - 'description' => 'The domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net.', - 'type' => 'string', - ), - 'S3Origin' => array( - 'description' => 'A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution.', - 'type' => 'object', - 'properties' => array( - 'DomainName' => array( - 'description' => 'The DNS name of the S3 origin.', - 'type' => 'string', - ), - 'OriginAccessIdentity' => array( - 'description' => 'Your S3 origin\'s origin access identity.', - 'type' => 'string', - ), - ), - ), - 'Aliases' => array( - 'description' => 'A complex type that contains information about CNAMEs (alternate domain names), if any, for this streaming distribution.', - 'type' => 'object', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of CNAMEs, if any, for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains CNAME elements, if any, for this distribution. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'CNAME', - 'type' => 'string', - 'sentAs' => 'CNAME', - ), - ), - ), - ), - 'TrustedSigners' => array( - 'description' => 'A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don\'t want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it\'s currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.', - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Specifies whether you want to require end users to use signed URLs to access the files specified by PathPattern and TargetOriginId.', - 'type' => 'boolean', - ), - 'Quantity' => array( - 'description' => 'The number of trusted signers for this cache behavior.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains trusted signers for this cache behavior. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'AwsAccountNumber', - 'type' => 'string', - 'sentAs' => 'AwsAccountNumber', - ), - ), - ), - ), - 'Comment' => array( - 'description' => 'The comment originally specified when this distribution was created.', - 'type' => 'string', - ), - 'Enabled' => array( - 'description' => 'Whether the distribution is enabled to accept end user requests for content.', - 'type' => 'boolean', - ), - ), - ), - ), - 'RequestId' => array( - 'description' => 'Request ID of the operation', - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'UpdateCloudFrontOriginAccessIdentityResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Id' => array( - 'description' => 'The ID for the origin access identity. For example: E74FTE3AJFJ256A.', - 'type' => 'string', - 'location' => 'xml', - ), - 'S3CanonicalUserId' => array( - 'description' => 'The Amazon S3 canonical user ID for the origin access identity, which you use when giving the origin access identity read permission to an object in Amazon S3.', - 'type' => 'string', - 'location' => 'xml', - ), - 'CloudFrontOriginAccessIdentityConfig' => array( - 'description' => 'The current configuration information for the identity.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'CallerReference' => array( - 'description' => 'A unique number that ensures the request can\'t be replayed. If the CallerReference is new (no matter the content of the CloudFrontOriginAccessIdentityConfig object), a new origin access identity is created. If the CallerReference is a value you already sent in a previous request to create an identity, and the content of the CloudFrontOriginAccessIdentityConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request. 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.', - 'type' => 'string', - ), - 'Comment' => array( - 'description' => 'Any comments you want to include about the origin access identity.', - 'type' => 'string', - ), - ), - ), - 'ETag' => array( - 'description' => 'The current version of the configuration. For example: E2QWRUHAPOMQZL.', - 'type' => 'string', - 'location' => 'header', - ), - 'RequestId' => array( - 'description' => 'Request ID of the operation', - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'UpdateDistributionResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Id' => array( - 'description' => 'The identifier for the distribution. For example: EDFDVBD632BHDS5.', - 'type' => 'string', - 'location' => 'xml', - ), - 'Status' => array( - 'description' => 'This response element indicates the current status of the distribution. When the status is Deployed, the distribution\'s information is fully propagated throughout the Amazon CloudFront system.', - 'type' => 'string', - 'location' => 'xml', - ), - 'LastModifiedTime' => array( - 'description' => 'The date and time the distribution was last modified.', - 'type' => 'string', - 'location' => 'xml', - ), - 'InProgressInvalidationBatches' => array( - 'description' => 'The number of invalidation batches currently in progress.', - 'type' => 'numeric', - 'location' => 'xml', - ), - 'DomainName' => array( - 'description' => 'The domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net.', - 'type' => 'string', - 'location' => 'xml', - ), - 'ActiveTrustedSigners' => array( - 'description' => 'CloudFront automatically adds this element to the response only if you\'ve set up the distribution to serve private content with signed URLs. The element lists the key pair IDs that CloudFront is aware of for each trusted signer. The Signer child element lists the AWS account number of the trusted signer (or an empty Self element if the signer is you). The Signer element also includes the IDs of any active key pairs associated with the trusted signer\'s AWS account. If no KeyPairId element appears for a Signer, that signer can\'t create working signed URLs.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Each active trusted signer.', - 'type' => 'boolean', - ), - 'Quantity' => array( - 'description' => 'The number of unique trusted signers included in all cache behaviors. For example, if three cache behaviors all list the same three AWS accounts, the value of Quantity for ActiveTrustedSigners will be 3.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'A complex type that contains one Signer complex type for each unique trusted signer that is specified in the TrustedSigners complex type, including trusted signers in the default cache behavior and in all of the other cache behaviors.', - 'type' => 'array', - 'items' => array( - 'name' => 'Signer', - 'description' => 'A complex type that lists the AWS accounts that were included in the TrustedSigners complex type, as well as their active CloudFront key pair IDs, if any.', - 'type' => 'object', - 'sentAs' => 'Signer', - 'properties' => array( - 'AwsAccountNumber' => array( - 'description' => 'Specifies an AWS account that can create signed URLs. Values: self, which indicates that the AWS account that was used to create the distribution can created signed URLs, or an AWS account number. Omit the dashes in the account number.', - 'type' => 'string', - ), - 'KeyPairIds' => array( - 'description' => 'A complex type that lists the active CloudFront key pairs, if any, that are associated with AwsAccountNumber.', - 'type' => 'object', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of active CloudFront key pairs for AwsAccountNumber.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'A complex type that lists the active CloudFront key pairs, if any, that are associated with AwsAccountNumber.', - 'type' => 'array', - 'items' => array( - 'name' => 'KeyPairId', - 'type' => 'string', - 'sentAs' => 'KeyPairId', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'DistributionConfig' => array( - 'description' => 'The current configuration information for the distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'CallerReference' => array( - 'description' => 'A unique number that ensures the request can\'t be replayed. If the CallerReference is new (no matter the content of the DistributionConfig object), a new distribution is created. If the CallerReference is a value you already sent in a previous request to create a distribution, and the content of the DistributionConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request. If the CallerReference is a value you already sent in a previous request to create a distribution but the content of the DistributionConfig is different from the original request, CloudFront returns a DistributionAlreadyExists error.', - 'type' => 'string', - ), - 'Aliases' => array( - 'description' => 'A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.', - 'type' => 'object', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of CNAMEs, if any, for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains CNAME elements, if any, for this distribution. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'CNAME', - 'type' => 'string', - 'sentAs' => 'CNAME', - ), - ), - ), - ), - 'DefaultRootObject' => array( - 'description' => 'The object that you want CloudFront to return (for example, index.html) when an end user requests the root URL for your distribution (http://www.example.com) instead of an object in your distribution (http://www.example.com/index.html). Specifying a default root object avoids exposing the contents of your distribution. If you don\'t want to specify a default root object when you create a distribution, include an empty DefaultRootObject element. To delete the default root object from an existing distribution, update the distribution configuration and include an empty DefaultRootObject element. To replace the default root object, update the distribution configuration and specify the new object.', - 'type' => 'string', - ), - 'Origins' => array( - 'description' => 'A complex type that contains information about origins for this distribution.', - 'type' => 'object', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of origins for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'A complex type that contains origins for this distribution.', - 'type' => 'array', - 'items' => array( - 'name' => 'Origin', - 'description' => 'A complex type that describes the Amazon S3 bucket or the HTTP server (for example, a web server) from which CloudFront gets your files.You must create at least one origin.', - 'type' => 'object', - 'sentAs' => 'Origin', - 'properties' => array( - 'Id' => array( - 'description' => 'A unique identifier for the origin. The value of Id must be unique within the distribution. You use the value of Id when you create a cache behavior. The Id identifies the origin that CloudFront routes a request to when the request matches the path pattern for that cache behavior.', - 'type' => 'string', - ), - 'DomainName' => array( - 'description' => 'Amazon S3 origins: The DNS name of the Amazon S3 bucket from which you want CloudFront to get objects for this origin, for example, myawsbucket.s3.amazonaws.com. Custom origins: The DNS domain name for the HTTP server from which you want CloudFront to get objects for this origin, for example, www.example.com.', - 'type' => 'string', - ), - 'S3OriginConfig' => array( - 'description' => 'A complex type that contains information about the Amazon S3 origin. If the origin is a custom origin, use the CustomOriginConfig element instead.', - 'type' => 'object', - 'properties' => array( - 'OriginAccessIdentity' => array( - 'description' => 'The CloudFront origin access identity to associate with the origin. Use an origin access identity to configure the origin so that end users can only access objects in an Amazon S3 bucket through CloudFront. If you want end users to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty OriginAccessIdentity element. To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty OriginAccessIdentity element. To replace the origin access identity, update the distribution configuration and specify the new origin access identity.', - 'type' => 'string', - ), - ), - ), - 'CustomOriginConfig' => array( - 'description' => 'A complex type that contains information about a custom origin. If the origin is an Amazon S3 bucket, use the S3OriginConfig element instead.', - 'type' => 'object', - 'properties' => array( - 'HTTPPort' => array( - 'description' => 'The HTTP port the custom origin listens on.', - 'type' => 'numeric', - ), - 'HTTPSPort' => array( - 'description' => 'The HTTPS port the custom origin listens on.', - 'type' => 'numeric', - ), - 'OriginProtocolPolicy' => array( - 'description' => 'The origin protocol policy to apply to your origin.', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - 'DefaultCacheBehavior' => array( - 'description' => 'A complex type that describes the default cache behavior if you do not specify a CacheBehavior element or if files don\'t match any of the values of PathPattern in CacheBehavior elements.You must create exactly one default cache behavior.', - 'type' => 'object', - 'properties' => array( - 'TargetOriginId' => array( - 'description' => 'The value of ID for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.', - 'type' => 'string', - ), - 'ForwardedValues' => array( - 'description' => 'A complex type that specifies how CloudFront handles query strings.', - 'type' => 'object', - 'properties' => array( - 'QueryString' => array( - 'description' => 'Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior. If so, specify true; if not, specify false.', - 'type' => 'boolean', - ), - ), - ), - 'TrustedSigners' => array( - 'description' => 'A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don\'t want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it\'s currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.', - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Specifies whether you want to require end users to use signed URLs to access the files specified by PathPattern and TargetOriginId.', - 'type' => 'boolean', - ), - 'Quantity' => array( - 'description' => 'The number of trusted signers for this cache behavior.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains trusted signers for this cache behavior. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'AwsAccountNumber', - 'type' => 'string', - 'sentAs' => 'AwsAccountNumber', - ), - ), - ), - ), - 'ViewerProtocolPolicy' => array( - 'description' => 'Use this element to specify the protocol that users can use to access the files in the origin specified by TargetOriginId when a request matches the path pattern in PathPattern. If you want CloudFront to allow end users to use any available protocol, specify allow-all. If you want CloudFront to require HTTPS, specify https.', - 'type' => 'string', - ), - 'MinTTL' => array( - 'description' => 'The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront queries your origin to see whether the object has been updated.You can specify a value from 0 to 3,153,600,000 seconds (100 years).', - 'type' => 'numeric', - ), - ), - ), - 'CacheBehaviors' => array( - 'description' => 'A complex type that contains zero or more CacheBehavior elements.', - 'type' => 'object', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of cache behaviors for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains cache behaviors for this distribution. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'CacheBehavior', - 'description' => 'A complex type that describes how CloudFront processes requests. You can create up to 10 cache behaviors.You must create at least as many cache behaviors (including the default cache behavior) as you have origins if you want CloudFront to distribute objects from all of the origins. Each cache behavior specifies the one origin from which you want CloudFront to get objects. If you have two origins and only the default cache behavior, the default cache behavior will cause CloudFront to get objects from one of the origins, but the other origin will never be used. If you don\'t want to specify any cache behaviors, include only an empty CacheBehaviors element. Don\'t include an empty CacheBehavior element, or CloudFront returns a MalformedXML error. To delete all cache behaviors in an existing distribution, update the distribution configuration and include only an empty CacheBehaviors element. To add, change, or remove one or more cache behaviors, update the distribution configuration and specify all of the cache behaviors that you want to include in the updated distribution.', - 'type' => 'object', - 'sentAs' => 'CacheBehavior', - 'properties' => array( - 'PathPattern' => array( - 'description' => 'The pattern (for example, images/*.jpg) that specifies which requests you want this cache behavior to apply to. When CloudFront receives an end-user request, the requested path is compared with path patterns in the order in which cache behaviors are listed in the distribution. The path pattern for the default cache behavior is * and cannot be changed. If the request for an object does not match the path pattern for any cache behaviors, CloudFront applies the behavior in the default cache behavior.', - 'type' => 'string', - ), - 'TargetOriginId' => array( - 'description' => 'The value of ID for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.', - 'type' => 'string', - ), - 'ForwardedValues' => array( - 'description' => 'A complex type that specifies how CloudFront handles query strings.', - 'type' => 'object', - 'properties' => array( - 'QueryString' => array( - 'description' => 'Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior. If so, specify true; if not, specify false.', - 'type' => 'boolean', - ), - ), - ), - 'TrustedSigners' => array( - 'description' => 'A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don\'t want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it\'s currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.', - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Specifies whether you want to require end users to use signed URLs to access the files specified by PathPattern and TargetOriginId.', - 'type' => 'boolean', - ), - 'Quantity' => array( - 'description' => 'The number of trusted signers for this cache behavior.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains trusted signers for this cache behavior. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'AwsAccountNumber', - 'type' => 'string', - 'sentAs' => 'AwsAccountNumber', - ), - ), - ), - ), - 'ViewerProtocolPolicy' => array( - 'description' => 'Use this element to specify the protocol that users can use to access the files in the origin specified by TargetOriginId when a request matches the path pattern in PathPattern. If you want CloudFront to allow end users to use any available protocol, specify allow-all. If you want CloudFront to require HTTPS, specify https.', - 'type' => 'string', - ), - 'MinTTL' => array( - 'description' => 'The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront queries your origin to see whether the object has been updated.You can specify a value from 0 to 3,153,600,000 seconds (100 years).', - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - 'Comment' => array( - 'description' => 'Any comments you want to include about the distribution.', - 'type' => 'string', - ), - 'Logging' => array( - 'description' => 'A complex type that controls whether access logs are written for the distribution.', - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you do not want to enable logging when you create a distribution or if you want to disable logging for an existing distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket and Prefix, the values are automatically deleted.', - 'type' => 'boolean', - ), - 'Bucket' => array( - 'description' => 'The Amazon S3 bucket to store the access logs in, for example, myawslogbucket.s3.amazonaws.com.', - 'type' => 'string', - ), - 'Prefix' => array( - 'description' => 'An optional string that you want CloudFront to prefix to the access log filenames for this distribution, for example, myprefix/. If you want to enable logging, but you do not want to specify a prefix, you still must include an empty Prefix element in the Logging element.', - 'type' => 'string', - ), - ), - ), - 'Enabled' => array( - 'description' => 'Whether the distribution is enabled to accept end user requests for content.', - 'type' => 'boolean', - ), - ), - ), - 'ETag' => array( - 'description' => 'The current version of the configuration. For example: E2QWRUHAPOMQZL.', - 'type' => 'string', - 'location' => 'header', - ), - 'RequestId' => array( - 'description' => 'Request ID of the operation', - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'UpdateStreamingDistributionResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Id' => array( - 'description' => 'The identifier for the streaming distribution. For example: EGTXBD79H29TRA8.', - 'type' => 'string', - 'location' => 'xml', - ), - 'Status' => array( - 'description' => 'The current status of the streaming distribution. When the status is Deployed, the distribution\'s information is fully propagated throughout the Amazon CloudFront system.', - 'type' => 'string', - 'location' => 'xml', - ), - 'LastModifiedTime' => array( - 'description' => 'The date and time the distribution was last modified.', - 'type' => 'string', - 'location' => 'xml', - ), - 'DomainName' => array( - 'description' => 'The domain name corresponding to the streaming distribution. For example: s5c39gqb8ow64r.cloudfront.net.', - 'type' => 'string', - 'location' => 'xml', - ), - 'ActiveTrustedSigners' => array( - 'description' => 'CloudFront automatically adds this element to the response only if you\'ve set up the distribution to serve private content with signed URLs. The element lists the key pair IDs that CloudFront is aware of for each trusted signer. The Signer child element lists the AWS account number of the trusted signer (or an empty Self element if the signer is you). The Signer element also includes the IDs of any active key pairs associated with the trusted signer\'s AWS account. If no KeyPairId element appears for a Signer, that signer can\'t create working signed URLs.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Each active trusted signer.', - 'type' => 'boolean', - ), - 'Quantity' => array( - 'description' => 'The number of unique trusted signers included in all cache behaviors. For example, if three cache behaviors all list the same three AWS accounts, the value of Quantity for ActiveTrustedSigners will be 3.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'A complex type that contains one Signer complex type for each unique trusted signer that is specified in the TrustedSigners complex type, including trusted signers in the default cache behavior and in all of the other cache behaviors.', - 'type' => 'array', - 'items' => array( - 'name' => 'Signer', - 'description' => 'A complex type that lists the AWS accounts that were included in the TrustedSigners complex type, as well as their active CloudFront key pair IDs, if any.', - 'type' => 'object', - 'sentAs' => 'Signer', - 'properties' => array( - 'AwsAccountNumber' => array( - 'description' => 'Specifies an AWS account that can create signed URLs. Values: self, which indicates that the AWS account that was used to create the distribution can created signed URLs, or an AWS account number. Omit the dashes in the account number.', - 'type' => 'string', - ), - 'KeyPairIds' => array( - 'description' => 'A complex type that lists the active CloudFront key pairs, if any, that are associated with AwsAccountNumber.', - 'type' => 'object', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of active CloudFront key pairs for AwsAccountNumber.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'A complex type that lists the active CloudFront key pairs, if any, that are associated with AwsAccountNumber.', - 'type' => 'array', - 'items' => array( - 'name' => 'KeyPairId', - 'type' => 'string', - 'sentAs' => 'KeyPairId', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'StreamingDistributionConfig' => array( - 'description' => 'The current configuration information for the streaming distribution.', - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'CallerReference' => array( - 'description' => 'A unique number that ensures the request can\'t be replayed. If the CallerReference is new (no matter the content of the StreamingDistributionConfig object), a new streaming distribution is created. If the CallerReference is a value you already sent in a previous request to create a streaming distribution, and the content of the StreamingDistributionConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request. If the CallerReference is a value you already sent in a previous request to create a streaming distribution but the content of the StreamingDistributionConfig is different from the original request, CloudFront returns a DistributionAlreadyExists error.', - 'type' => 'string', - ), - 'S3Origin' => array( - 'description' => 'A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution.', - 'type' => 'object', - 'properties' => array( - 'DomainName' => array( - 'description' => 'The DNS name of the S3 origin.', - 'type' => 'string', - ), - 'OriginAccessIdentity' => array( - 'description' => 'Your S3 origin\'s origin access identity.', - 'type' => 'string', - ), - ), - ), - 'Aliases' => array( - 'description' => 'A complex type that contains information about CNAMEs (alternate domain names), if any, for this streaming distribution.', - 'type' => 'object', - 'properties' => array( - 'Quantity' => array( - 'description' => 'The number of CNAMEs, if any, for this distribution.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains CNAME elements, if any, for this distribution. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'CNAME', - 'type' => 'string', - 'sentAs' => 'CNAME', - ), - ), - ), - ), - 'Comment' => array( - 'description' => 'Any comments you want to include about the streaming distribution.', - 'type' => 'string', - ), - 'Logging' => array( - 'description' => 'A complex type that controls whether access logs are written for the streaming distribution.', - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you do not want to enable logging when you create a distribution or if you want to disable logging for an existing distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket and Prefix, the values are automatically deleted.', - 'type' => 'boolean', - ), - 'Bucket' => array( - 'description' => 'The Amazon S3 bucket to store the access logs in, for example, myawslogbucket.s3.amazonaws.com.', - 'type' => 'string', - ), - 'Prefix' => array( - 'description' => 'An optional string that you want CloudFront to prefix to the access log filenames for this distribution, for example, myprefix/. If you want to enable logging, but you do not want to specify a prefix, you still must include an empty Prefix element in the Logging element.', - 'type' => 'string', - ), - ), - ), - 'TrustedSigners' => array( - 'description' => 'A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don\'t want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it\'s currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.', - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'description' => 'Specifies whether you want to require end users to use signed URLs to access the files specified by PathPattern and TargetOriginId.', - 'type' => 'boolean', - ), - 'Quantity' => array( - 'description' => 'The number of trusted signers for this cache behavior.', - 'type' => 'numeric', - ), - 'Items' => array( - 'description' => 'Optional: A complex type that contains trusted signers for this cache behavior. If Quantity is 0, you can omit Items.', - 'type' => 'array', - 'items' => array( - 'name' => 'AwsAccountNumber', - 'type' => 'string', - 'sentAs' => 'AwsAccountNumber', - ), - ), - ), - ), - 'Enabled' => array( - 'description' => 'Whether the streaming distribution is enabled to accept end user requests for content.', - 'type' => 'boolean', - ), - ), - ), - 'ETag' => array( - 'description' => 'The current version of the configuration. For example: E2QWRUHAPOMQZL.', - 'type' => 'string', - 'location' => 'header', - ), - 'RequestId' => array( - 'description' => 'Request ID of the operation', - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - ), - 'iterators' => 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', - 'success.path' => 'Status', - ), - 'StreamingDistributionDeployed' => array( - 'operation' => 'GetStreamingDistribution', - 'description' => 'Wait until a streaming distribution is deployed.', - 'interval' => 60, - 'max_attempts' => 25, - 'success.value' => 'Deployed', - ), - 'DistributionDeployed' => array( - 'operation' => 'GetDistribution', - 'description' => 'Wait until a distribution is deployed.', - 'interval' => 60, - 'max_attempts' => 25, - 'success.value' => 'Deployed', - ), - 'InvalidationCompleted' => array( - 'operation' => 'GetInvalidation', - 'description' => 'Wait until an invalidation has completed.', - 'interval' => 20, - 'max_attempts' => 30, - 'success.value' => 'Completed', - ), - ), -); diff --git a/lib/aws-sdk/Aws/CloudFront/Resources/cloudfront-2014-11-06.php b/lib/aws-sdk/Aws/CloudFront/Resources/cloudfront-2014-11-06.php deleted file mode 100644 index 06699ce..0000000 --- a/lib/aws-sdk/Aws/CloudFront/Resources/cloudfront-2014-11-06.php +++ /dev/null @@ -1,5744 +0,0 @@ - '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/lib/aws-sdk/Aws/CloudFront/UrlSigner.php b/lib/aws-sdk/Aws/CloudFront/UrlSigner.php new file mode 100644 index 0000000..b1462e4 --- /dev/null +++ b/lib/aws-sdk/Aws/CloudFront/UrlSigner.php @@ -0,0 +1,183 @@ +keyPairId = $keyPairId; + + if (!file_exists($privateKey)) { + throw new \InvalidArgumentException("PK file not found: $privateKey"); + } + + $this->pk = file_get_contents($privateKey); + } + + /** + * Create a signed Amazon CloudFront URL. + * + * Keep in mind that URLs meant for use in media/flash players may have + * different requirements for URL formats (e.g. some require that the + * extension be removed, some require the file name to be prefixed + * - mp4:, some require you to add "/cfx/st" into your URL). + * + * @param string $url URL to sign (can include query + * string string and wildcards + * @param string|integer|null $expires UTC Unix timestamp used when signing + * with a canned policy. Not required + * when passing a custom $policy. + * @param string $policy JSON policy. Use this option when + * creating a signed URL for a custom + * policy. + * + * @return string The file URL with authentication parameters + * @throws \InvalidArgumentException if the URL provided is invalid + * @link http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/WorkingWithStreamingDistributions.html + */ + public function getSignedUrl($url, $expires = null, $policy = null) + { + // Determine the scheme of the url + $urlSections = explode('://', $url); + + if (count($urlSections) < 2) { + throw new \InvalidArgumentException("Invalid URL: {$url}"); + } + + // Get the real scheme by removing wildcards from the scheme + $scheme = str_replace('*', '', $urlSections[0]); + + if ($policy) { + $isCustom = true; + } else { + $isCustom = false; + $policy = $this->createCannedPolicy($scheme, $url, $expires); + } + + $policy = str_replace(' ', '', $policy); + $uri = new Uri($scheme . '://' . $urlSections[1]); + parse_str($uri->getQuery(), $query); + $query = $this->prepareQuery($isCustom, $policy, $query, $expires); + $uri = $uri->withQuery(http_build_query($query, null, '&', PHP_QUERY_RFC3986)); + + return $scheme === 'rtmp' + ? $this->createRtmpUrl($uri) + : (string) $uri; + } + + private function prepareQuery($isCustom, $policy, array $query, $expires) + { + if ($isCustom) { + // Custom policies require the encoded policy be specified in query + $query['Policy'] = strtr(base64_encode($policy), '+=/', '-_~'); + } else { + // Canned policies require "Expires" in the URL. + $query['Expires'] = $expires; + } + + $query['Signature'] = $this->signPolicy($policy); + $query['Key-Pair-Id'] = $this->keyPairId; + + return $query; + } + + private function rsaSha1Sign($policy) + { + $signature = ''; + openssl_sign($policy, $signature, $this->pk); + + return $signature; + } + + private function createCannedPolicy($scheme, $url, $expires) + { + if (!$expires) { + throw new \InvalidArgumentException('An expires option is ' + . 'required when using a canned policy'); + } + + return sprintf( + '{"Statement":[{"Resource":"%s","Condition":{"DateLessThan":{"AWS:EpochTime":%d}}}]}', + $this->createResource($scheme, $url), + $expires + ); + } + + private function signPolicy($policy) + { + // Sign the policy using the CloudFront private key + $signedPolicy = $this->rsaSha1Sign($policy); + // Remove whitespace, base64 encode the policy, and replace special + // characters. + $signedPolicy = strtr(base64_encode($signedPolicy), '+=/', '-_~'); + + return $signedPolicy; + } + + /** + * @param $scheme + * @param $url + * + * @return string + */ + private function createResource($scheme, $url) + { + switch ($scheme) { + case 'http': + case 'https': + return $url; + case 'rtmp': + $parts = parse_url($url); + $pathParts = pathinfo($parts['path']); + $resource = ltrim( + $pathParts['dirname'] . '/' . $pathParts['basename'], + '/' + ); + + // Add a query string if present. + if (isset($parts['query'])) { + $resource .= "?{$parts['query']}"; + } + + return $resource; + } + + throw new \InvalidArgumentException("Invalid URI scheme: {$scheme}. " + . "Scheme must be one of: http, https, or rtmp"); + } + + private function createRtmpUrl(UriInterface $uri) + { + // Use a relative URL when creating Flash player URLs + $result = ltrim($uri->getPath(), '/'); + + if ($query = $uri->getQuery()) { + $result .= '?' . $query; + } + + return $result; + } +} diff --git a/lib/aws-sdk/Aws/CloudHsm/CloudHsmClient.php b/lib/aws-sdk/Aws/CloudHsm/CloudHsmClient.php index e98c317..51afa40 100644 --- a/lib/aws-sdk/Aws/CloudHsm/CloudHsmClient.php +++ b/lib/aws-sdk/Aws/CloudHsm/CloudHsmClient.php @@ -1,75 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/cloudhsm-%s.php' - )) - ->setExceptionParser(new JsonQueryExceptionParser) - ->build(); - } -} +class CloudHsmClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/CloudHsm/Exception/CloudHsmException.php b/lib/aws-sdk/Aws/CloudHsm/Exception/CloudHsmException.php index 6640c67..e54c649 100644 --- a/lib/aws-sdk/Aws/CloudHsm/Exception/CloudHsmException.php +++ b/lib/aws-sdk/Aws/CloudHsm/Exception/CloudHsmException.php @@ -1,24 +1,9 @@ '2014-05-30', - 'endpointPrefix' => 'cloudhsm', - 'serviceFullName' => 'Amazon CloudHSM', - 'serviceAbbreviation' => 'CloudHSM', - 'serviceType' => 'json', - 'jsonVersion' => '1.1', - 'targetPrefix' => 'CloudHsmFrontendService.', - '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-1.1', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'CloudHsmFrontendService.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-1.1', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'CloudHsmFrontendService.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-1.1', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'CloudHsmFrontendService.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-1.1', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'CloudHsmFrontendService.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-1.1', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'CloudHsmFrontendService.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-1.1', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'CloudHsmFrontendService.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-1.1', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'CloudHsmFrontendService.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-1.1', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'CloudHsmFrontendService.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-1.1', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'CloudHsmFrontendService.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-1.1', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'CloudHsmFrontendService.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-1.1', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'CloudHsmFrontendService.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-1.1', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'CloudHsmFrontendService.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-1.1', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'CloudHsmFrontendService.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-1.1', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'CloudHsmFrontendService.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-1.1', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'CloudHsmFrontendService.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-1.1', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'CloudHsmFrontendService.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-1.1', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'CloudHsmFrontendService.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/lib/aws-sdk/Aws/CloudSearch/CloudSearchClient.php b/lib/aws-sdk/Aws/CloudSearch/CloudSearchClient.php index e55dea9..99bd448 100644 --- a/lib/aws-sdk/Aws/CloudSearch/CloudSearchClient.php +++ b/lib/aws-sdk/Aws/CloudSearch/CloudSearchClient.php @@ -1,105 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/cloudsearch-%s.php' - )) - ->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); - } -} +class CloudSearchClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/CloudSearch/Enum/IndexFieldType.php b/lib/aws-sdk/Aws/CloudSearch/Enum/IndexFieldType.php deleted file mode 100644 index 048b6e1..0000000 --- a/lib/aws-sdk/Aws/CloudSearch/Enum/IndexFieldType.php +++ /dev/null @@ -1,38 +0,0 @@ - '2011-02-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-southeast-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'cloudsearch.ap-southeast-1.amazonaws.com', - ), - ), - 'operations' => array( - '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' => '2011-02-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', - ), - ), - ), - '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' => '2011-02-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', - ), - 'UIntOptions' => array( - 'type' => 'object', - 'properties' => array( - 'DefaultValue' => array( - 'type' => 'numeric', - ), - ), - ), - 'LiteralOptions' => array( - 'type' => 'object', - 'properties' => array( - 'DefaultValue' => array( - 'type' => 'string', - 'maxLength' => 1024, - ), - 'SearchEnabled' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - 'FacetEnabled' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - 'ResultEnabled' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - 'TextOptions' => array( - 'type' => 'object', - 'properties' => array( - 'DefaultValue' => array( - 'type' => 'string', - 'maxLength' => 1024, - ), - 'FacetEnabled' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - 'ResultEnabled' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - 'TextProcessor' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 64, - ), - ), - ), - 'SourceAttributes' => array( - 'type' => 'array', - 'sentAs' => 'SourceAttributes.member', - 'items' => array( - 'name' => 'SourceAttribute', - 'type' => 'object', - 'properties' => array( - 'SourceDataFunction' => array( - 'required' => true, - 'type' => 'string', - ), - 'SourceDataCopy' => array( - 'type' => 'object', - 'properties' => array( - 'SourceName' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 64, - ), - 'DefaultValue' => array( - 'type' => 'string', - 'maxLength' => 1024, - ), - ), - ), - 'SourceDataTrimTitle' => array( - 'type' => 'object', - 'properties' => array( - 'SourceName' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 64, - ), - 'DefaultValue' => array( - 'type' => 'string', - 'maxLength' => 1024, - ), - 'Separator' => array( - 'type' => 'string', - ), - 'Language' => array( - 'type' => 'string', - ), - ), - ), - 'SourceDataMap' => array( - 'type' => 'object', - 'properties' => array( - 'SourceName' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 64, - ), - 'DefaultValue' => array( - 'type' => 'string', - 'maxLength' => 1024, - ), - 'Cases' => array( - 'type' => 'object', - 'sentAs' => 'Cases.entry', - 'additionalProperties' => array( - 'type' => 'string', - 'maxLength' => 1024, - 'data' => array( - 'shape_name' => 'FieldValue', - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - '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', - ), - ), - ), - 'DefineRankExpression' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DefineRankExpressionResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DefineRankExpression', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-02-01', - ), - 'DomainName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 3, - 'maxLength' => 28, - ), - 'RankExpression' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'aws.query', - 'properties' => array( - 'RankName' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 64, - ), - 'RankExpression' => 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', - ), - ), - ), - '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' => '2011-02-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', - ), - ), - ), - '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' => '2011-02-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', - ), - ), - ), - 'DeleteRankExpression' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DeleteRankExpressionResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteRankExpression', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-02-01', - ), - 'DomainName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 3, - 'maxLength' => 28, - ), - 'RankName' => 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', - ), - ), - ), - 'DescribeDefaultSearchField' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeDefaultSearchFieldResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeDefaultSearchField', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-02-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', - ), - ), - ), - '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' => '2011-02-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', - ), - ), - ), - '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' => '2011-02-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' => 'FieldName', - 'type' => 'string', - '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 attempted to reference a resource that does not exist.', - 'class' => 'ResourceNotFoundException', - ), - ), - ), - 'DescribeRankExpressions' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeRankExpressionsResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeRankExpressions', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-02-01', - ), - 'DomainName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 3, - 'maxLength' => 28, - ), - 'RankNames' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'RankNames.member', - 'items' => array( - 'name' => 'FieldName', - 'type' => 'string', - '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 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' => '2011-02-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', - ), - ), - ), - 'DescribeStemmingOptions' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeStemmingOptionsResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeStemmingOptions', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-02-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', - ), - ), - ), - 'DescribeStopwordOptions' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeStopwordOptionsResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeStopwordOptions', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-02-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', - ), - ), - ), - 'DescribeSynonymOptions' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeSynonymOptionsResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeSynonymOptions', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-02-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', - ), - ), - ), - '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' => '2011-02-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', - ), - ), - ), - 'UpdateDefaultSearchField' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'UpdateDefaultSearchFieldResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'UpdateDefaultSearchField', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-02-01', - ), - 'DomainName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 3, - 'maxLength' => 28, - ), - 'DefaultSearchField' => 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 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', - ), - ), - ), - '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' => '2011-02-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', - ), - ), - ), - 'UpdateStemmingOptions' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'UpdateStemmingOptionsResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'UpdateStemmingOptions', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-02-01', - ), - 'DomainName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 3, - 'maxLength' => 28, - ), - 'Stems' => 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 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', - ), - ), - ), - 'UpdateStopwordOptions' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'UpdateStopwordOptionsResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'UpdateStopwordOptions', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-02-01', - ), - 'DomainName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 3, - 'maxLength' => 28, - ), - 'Stopwords' => 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 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', - ), - ), - ), - 'UpdateSynonymOptions' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'UpdateSynonymOptionsResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'UpdateSynonymOptions', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-02-01', - ), - 'DomainName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 3, - 'maxLength' => 28, - ), - 'Synonyms' => 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 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', - ), - ), - ), - ), - 'models' => array( - 'CreateDomainResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'DomainStatus' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'DomainId' => array( - 'type' => 'string', - ), - 'DomainName' => array( - 'type' => 'string', - ), - 'Created' => array( - 'type' => 'boolean', - ), - 'Deleted' => array( - 'type' => 'boolean', - ), - 'NumSearchableDocs' => array( - 'type' => 'numeric', - ), - 'DocService' => array( - 'type' => 'object', - 'properties' => array( - 'Arn' => array( - 'type' => 'string', - ), - 'Endpoint' => array( - 'type' => 'string', - ), - ), - ), - 'SearchService' => array( - 'type' => 'object', - 'properties' => array( - 'Arn' => array( - 'type' => 'string', - ), - 'Endpoint' => array( - 'type' => 'string', - ), - ), - ), - 'RequiresIndexDocuments' => array( - 'type' => 'boolean', - ), - 'Processing' => array( - 'type' => 'boolean', - ), - 'SearchInstanceType' => array( - 'type' => 'string', - ), - 'SearchPartitionCount' => array( - 'type' => 'numeric', - ), - 'SearchInstanceCount' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - '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', - ), - 'UIntOptions' => array( - 'type' => 'object', - 'properties' => array( - 'DefaultValue' => array( - 'type' => 'numeric', - ), - ), - ), - 'LiteralOptions' => array( - 'type' => 'object', - 'properties' => array( - 'DefaultValue' => array( - 'type' => 'string', - ), - 'SearchEnabled' => array( - 'type' => 'boolean', - ), - 'FacetEnabled' => array( - 'type' => 'boolean', - ), - 'ResultEnabled' => array( - 'type' => 'boolean', - ), - ), - ), - 'TextOptions' => array( - 'type' => 'object', - 'properties' => array( - 'DefaultValue' => array( - 'type' => 'string', - ), - 'FacetEnabled' => array( - 'type' => 'boolean', - ), - 'ResultEnabled' => array( - 'type' => 'boolean', - ), - 'TextProcessor' => array( - 'type' => 'string', - ), - ), - ), - 'SourceAttributes' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'SourceAttribute', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'SourceDataFunction' => array( - 'type' => 'string', - ), - 'SourceDataCopy' => array( - 'type' => 'object', - 'properties' => array( - 'SourceName' => array( - 'type' => 'string', - ), - 'DefaultValue' => array( - 'type' => 'string', - ), - ), - ), - 'SourceDataTrimTitle' => array( - 'type' => 'object', - 'properties' => array( - 'SourceName' => array( - 'type' => 'string', - ), - 'DefaultValue' => array( - 'type' => 'string', - ), - 'Separator' => array( - 'type' => 'string', - ), - 'Language' => array( - 'type' => 'string', - ), - ), - ), - 'SourceDataMap' => array( - 'type' => 'object', - 'properties' => array( - 'SourceName' => array( - 'type' => 'string', - ), - 'DefaultValue' => array( - 'type' => 'string', - ), - 'Cases' => array( - 'type' => 'array', - '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, - ), - ), - ), - ), - ), - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - ), - 'DefineRankExpressionResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RankExpression' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Options' => array( - 'type' => 'object', - 'properties' => array( - 'RankName' => array( - 'type' => 'string', - ), - 'RankExpression' => 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', - ), - 'Created' => array( - 'type' => 'boolean', - ), - 'Deleted' => array( - 'type' => 'boolean', - ), - 'NumSearchableDocs' => array( - 'type' => 'numeric', - ), - 'DocService' => array( - 'type' => 'object', - 'properties' => array( - 'Arn' => array( - 'type' => 'string', - ), - 'Endpoint' => array( - 'type' => 'string', - ), - ), - ), - 'SearchService' => array( - 'type' => 'object', - 'properties' => array( - 'Arn' => array( - 'type' => 'string', - ), - 'Endpoint' => array( - 'type' => 'string', - ), - ), - ), - 'RequiresIndexDocuments' => array( - 'type' => 'boolean', - ), - 'Processing' => array( - 'type' => 'boolean', - ), - 'SearchInstanceType' => array( - 'type' => 'string', - ), - 'SearchPartitionCount' => array( - 'type' => 'numeric', - ), - 'SearchInstanceCount' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - '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', - ), - 'UIntOptions' => array( - 'type' => 'object', - 'properties' => array( - 'DefaultValue' => array( - 'type' => 'numeric', - ), - ), - ), - 'LiteralOptions' => array( - 'type' => 'object', - 'properties' => array( - 'DefaultValue' => array( - 'type' => 'string', - ), - 'SearchEnabled' => array( - 'type' => 'boolean', - ), - 'FacetEnabled' => array( - 'type' => 'boolean', - ), - 'ResultEnabled' => array( - 'type' => 'boolean', - ), - ), - ), - 'TextOptions' => array( - 'type' => 'object', - 'properties' => array( - 'DefaultValue' => array( - 'type' => 'string', - ), - 'FacetEnabled' => array( - 'type' => 'boolean', - ), - 'ResultEnabled' => array( - 'type' => 'boolean', - ), - 'TextProcessor' => array( - 'type' => 'string', - ), - ), - ), - 'SourceAttributes' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'SourceAttribute', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'SourceDataFunction' => array( - 'type' => 'string', - ), - 'SourceDataCopy' => array( - 'type' => 'object', - 'properties' => array( - 'SourceName' => array( - 'type' => 'string', - ), - 'DefaultValue' => array( - 'type' => 'string', - ), - ), - ), - 'SourceDataTrimTitle' => array( - 'type' => 'object', - 'properties' => array( - 'SourceName' => array( - 'type' => 'string', - ), - 'DefaultValue' => array( - 'type' => 'string', - ), - 'Separator' => array( - 'type' => 'string', - ), - 'Language' => array( - 'type' => 'string', - ), - ), - ), - 'SourceDataMap' => array( - 'type' => 'object', - 'properties' => array( - 'SourceName' => array( - 'type' => 'string', - ), - 'DefaultValue' => array( - 'type' => 'string', - ), - 'Cases' => array( - 'type' => 'array', - '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, - ), - ), - ), - ), - ), - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - ), - 'DeleteRankExpressionResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RankExpression' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Options' => array( - 'type' => 'object', - 'properties' => array( - 'RankName' => array( - 'type' => 'string', - ), - 'RankExpression' => 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', - ), - ), - ), - ), - ), - ), - ), - 'DescribeDefaultSearchFieldResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'DefaultSearchField' => 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', - ), - ), - ), - ), - ), - ), - ), - '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', - ), - 'Created' => array( - 'type' => 'boolean', - ), - 'Deleted' => array( - 'type' => 'boolean', - ), - 'NumSearchableDocs' => array( - 'type' => 'numeric', - ), - 'DocService' => array( - 'type' => 'object', - 'properties' => array( - 'Arn' => array( - 'type' => 'string', - ), - 'Endpoint' => array( - 'type' => 'string', - ), - ), - ), - 'SearchService' => array( - 'type' => 'object', - 'properties' => array( - 'Arn' => array( - 'type' => 'string', - ), - 'Endpoint' => array( - 'type' => 'string', - ), - ), - ), - 'RequiresIndexDocuments' => array( - 'type' => 'boolean', - ), - 'Processing' => array( - 'type' => 'boolean', - ), - 'SearchInstanceType' => array( - 'type' => 'string', - ), - 'SearchPartitionCount' => array( - 'type' => 'numeric', - ), - 'SearchInstanceCount' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - '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', - ), - 'UIntOptions' => array( - 'type' => 'object', - 'properties' => array( - 'DefaultValue' => array( - 'type' => 'numeric', - ), - ), - ), - 'LiteralOptions' => array( - 'type' => 'object', - 'properties' => array( - 'DefaultValue' => array( - 'type' => 'string', - ), - 'SearchEnabled' => array( - 'type' => 'boolean', - ), - 'FacetEnabled' => array( - 'type' => 'boolean', - ), - 'ResultEnabled' => array( - 'type' => 'boolean', - ), - ), - ), - 'TextOptions' => array( - 'type' => 'object', - 'properties' => array( - 'DefaultValue' => array( - 'type' => 'string', - ), - 'FacetEnabled' => array( - 'type' => 'boolean', - ), - 'ResultEnabled' => array( - 'type' => 'boolean', - ), - 'TextProcessor' => array( - 'type' => 'string', - ), - ), - ), - 'SourceAttributes' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'SourceAttribute', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'SourceDataFunction' => array( - 'type' => 'string', - ), - 'SourceDataCopy' => array( - 'type' => 'object', - 'properties' => array( - 'SourceName' => array( - 'type' => 'string', - ), - 'DefaultValue' => array( - 'type' => 'string', - ), - ), - ), - 'SourceDataTrimTitle' => array( - 'type' => 'object', - 'properties' => array( - 'SourceName' => array( - 'type' => 'string', - ), - 'DefaultValue' => array( - 'type' => 'string', - ), - 'Separator' => array( - 'type' => 'string', - ), - 'Language' => array( - 'type' => 'string', - ), - ), - ), - 'SourceDataMap' => array( - 'type' => 'object', - 'properties' => array( - 'SourceName' => array( - 'type' => 'string', - ), - 'DefaultValue' => array( - 'type' => 'string', - ), - 'Cases' => array( - 'type' => 'array', - '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, - ), - ), - ), - ), - ), - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - ), - ), - 'DescribeRankExpressionsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RankExpressions' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'RankExpressionStatus', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'Options' => array( - 'type' => 'object', - 'properties' => array( - 'RankName' => array( - 'type' => 'string', - ), - 'RankExpression' => 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', - ), - ), - ), - ), - ), - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - ), - 'DescribeStemmingOptionsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Stems' => 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', - ), - ), - ), - ), - ), - ), - ), - 'DescribeStopwordOptionsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Stopwords' => 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', - ), - ), - ), - ), - ), - ), - ), - 'DescribeSynonymOptionsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Synonyms' => 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', - ), - ), - ), - ), - ), - ), - ), - 'IndexDocumentsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'FieldNames' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'FieldName', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - ), - ), - 'UpdateDefaultSearchFieldResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'DefaultSearchField' => 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', - ), - ), - ), - ), - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - ), - 'UpdateStemmingOptionsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Stems' => 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', - ), - ), - ), - ), - ), - ), - ), - 'UpdateStopwordOptionsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Stopwords' => 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', - ), - ), - ), - ), - ), - ), - ), - 'UpdateSynonymOptionsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Synonyms' => 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( - 'DescribeDomains' => array( - 'result_key' => 'DomainStatusList', - ), - 'DescribeIndexFields' => array( - 'result_key' => 'IndexFields', - ), - 'DescribeRankExpressions' => array( - 'result_key' => 'RankExpressions', - ), - ), -); diff --git a/lib/aws-sdk/Aws/CloudSearch/Resources/cloudsearch-2013-01-01.php b/lib/aws-sdk/Aws/CloudSearch/Resources/cloudsearch-2013-01-01.php deleted file mode 100644 index 601e811..0000000 --- a/lib/aws-sdk/Aws/CloudSearch/Resources/cloudsearch-2013-01-01.php +++ /dev/null @@ -1,3497 +0,0 @@ - '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/lib/aws-sdk/Aws/CloudSearchDomain/CloudSearchDomainClient.php b/lib/aws-sdk/Aws/CloudSearchDomain/CloudSearchDomainClient.php index 31296a7..5e20e53 100644 --- a/lib/aws-sdk/Aws/CloudSearchDomain/CloudSearchDomainClient.php +++ b/lib/aws-sdk/Aws/CloudSearchDomain/CloudSearchDomainClient.php @@ -1,54 +1,24 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/cloudsearchdomain-%s.php' - )) - ->build(); - } + $args = parent::getArguments(); + $args['endpoint']['required'] = true; + $args['region']['default'] = function (array $args) { + // Determine the region from the provided endpoint. + // (e.g. http://search-blah.{region}.cloudsearch.amazonaws.com) + return explode('.', new Uri($args['endpoint']))[1]; + }; - /** - * @internal - * @throws BadMethodCallException Do not call this method. - */ - public function setRegion($region) - { - throw new BadMethodCallException('You cannot change the region of a CloudSearchDomain client.'); + return $args; } } diff --git a/lib/aws-sdk/Aws/CloudSearchDomain/CloudSearchDomainClientBuilder.php b/lib/aws-sdk/Aws/CloudSearchDomain/CloudSearchDomainClientBuilder.php deleted file mode 100644 index 9de513c..0000000 --- a/lib/aws-sdk/Aws/CloudSearchDomain/CloudSearchDomainClientBuilder.php +++ /dev/null @@ -1,122 +0,0 @@ - '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/lib/aws-sdk/Aws/CloudSearchDomain/Exception/CloudSearchDomainException.php b/lib/aws-sdk/Aws/CloudSearchDomain/Exception/CloudSearchDomainException.php index 009a001..2272971 100644 --- a/lib/aws-sdk/Aws/CloudSearchDomain/Exception/CloudSearchDomainException.php +++ b/lib/aws-sdk/Aws/CloudSearchDomain/Exception/CloudSearchDomainException.php @@ -1,10 +1,9 @@ '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/lib/aws-sdk/Aws/CloudTrail/CloudTrailClient.php b/lib/aws-sdk/Aws/CloudTrail/CloudTrailClient.php index efa3dc3..0446aaa 100644 --- a/lib/aws-sdk/Aws/CloudTrail/CloudTrailClient.php +++ b/lib/aws-sdk/Aws/CloudTrail/CloudTrailClient.php @@ -1,66 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/cloudtrail-%s.php' - )) - ->setExceptionParser(new JsonQueryExceptionParser()) - ->build(); - } -} +class CloudTrailClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/CloudTrail/Exception/CloudTrailException.php b/lib/aws-sdk/Aws/CloudTrail/Exception/CloudTrailException.php index e197599..b3eb9f3 100644 --- a/lib/aws-sdk/Aws/CloudTrail/Exception/CloudTrailException.php +++ b/lib/aws-sdk/Aws/CloudTrail/Exception/CloudTrailException.php @@ -1,24 +1,9 @@ describeTrails(array( - 'trailNameList' => array($trailName), - )); - $s3BucketName = $result->getPath('trailList/0/S3BucketName'); - $options[self::KEY_PREFIX] = $result->getPath('trailList/0/S3KeyPrefix'); + $result = $cloudTrailClient->describeTrails([ + 'trailNameList' => [$trailName] + ]); + $s3BucketName = $result->search('trailList[0].S3BucketName'); + $options[self::KEY_PREFIX] = $result->search( + 'trailList[0].S3KeyPrefix' + ); } catch (CloudTrailException $e) { // There was an error describing the trail } @@ -72,7 +80,8 @@ class LogFileIterator extends \IteratorIterator // 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); + throw new \InvalidArgumentException('The bucket name could not ' + . 'be determined from the trail.', 0, $prev); } return new self($s3Client, $s3BucketName, $options); @@ -81,49 +90,58 @@ class LogFileIterator extends \IteratorIterator /** * 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. + * - 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: 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()) - { + public function __construct( + S3Client $s3Client, + $s3BucketName, + array $options = [] + ) { $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 + * 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( + return [ 'Bucket' => $this->s3BucketName, 'Key' => $object['Key'] - ); + ]; } return false; } /** - * Constructs an S3 ListObjects iterator, optionally decorated with FilterIterators, based on the provided options + * Constructs an S3 ListObjects iterator, optionally decorated with + * FilterIterators, based on the provided options. * * @param array $options * @@ -132,33 +150,57 @@ class LogFileIterator extends \IteratorIterator 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; + $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), - ); + $parts = [ + '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), '/'); + // Determine the longest key prefix that can be used to retrieve all + // of the relevant log files. + $candidatePrefix = ltrim(strtr(self::PREFIX_TEMPLATE, $parts), '/'); $logKeyPrefix = $candidatePrefix; - if (($index = strpos($candidatePrefix, self::PREFIX_WILDCARD)) !== false) { + $index = strpos($candidatePrefix, self::PREFIX_WILDCARD); + + if ($index !== 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( + // Create an iterator that will emit all of the objects matching the + // key prefix. + $objectsIterator = $this->s3Client->getIterator('ListObjects', [ '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 + ); - // 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); + $objectsIterator = $this->applyDateFilter( + $objectsIterator, + $startDate, + $endDate + ); return $objectsIterator; } @@ -169,17 +211,18 @@ class LogFileIterator extends \IteratorIterator * @param string|\DateTime|int $date * * @return int - * @throws \InvalidArgumentException if the value cannot be converted to a timestamp + * @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.'); + throw new \InvalidArgumentException('Date values must be a ' + . 'string, an int, or a DateTime object.'); } return $date; @@ -191,9 +234,10 @@ class LogFileIterator extends \IteratorIterator 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); + $dateParts = array_fill_keys(['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 + // 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); @@ -209,7 +253,8 @@ class LogFileIterator extends \IteratorIterator } /** - * Applies a regex iterator filter that limits the ListObjects result set based on the provided options + * Applies a regex iterator filter that limits the ListObjects result set + * based on the provided options. * * @param \Iterator $objectsIterator * @param string $logKeyPrefix @@ -217,20 +262,30 @@ class LogFileIterator extends \IteratorIterator * * @return \Iterator */ - private function applyRegexFilter($objectsIterator, $logKeyPrefix, $candidatePrefix) - { - // If the prefix and candidate prefix are not the same, then there were WILDCARDs + 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 + // 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 => '[^/]+')); + $regex = strtr($regex, [self::PREFIX_WILDCARD => '[^/]+']); - // After trimming WILDCARDs or the end, if the regex is the same as the prefix, then no regex is needed + // 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']); - }); + // Apply a regex filter iterator to remove files that don't + // match the provided options. + $objectsIterator = new \CallbackFilterIterator( + $objectsIterator, + function ($object) use ($regex) { + return preg_match("#{$regex}#", $object['Key']); + } + ); } } @@ -238,7 +293,8 @@ class LogFileIterator extends \IteratorIterator } /** - * Applies an iterator filter to restrict the ListObjects result set to the specified date range + * Applies an iterator filter to restrict the ListObjects result set to the + * specified date range. * * @param \Iterator $objectsIterator * @param int $startDate @@ -248,17 +304,19 @@ class LogFileIterator extends \IteratorIterator */ 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 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; - } + $fn = function ($object) use ($startDate, $endDate) { + if (!preg_match('/[0-9]{8}T[0-9]{4}Z/', $object['Key'], $m)) { + return false; } - return false; - }); + $date = strtotime($m[0]); + + return (!$startDate || $date >= $startDate) + && (!$endDate || $date <= $endDate); + }; + $objectsIterator = new \CallbackFilterIterator($objectsIterator, $fn); } return $objectsIterator; diff --git a/lib/aws-sdk/Aws/CloudTrail/LogFileReader.php b/lib/aws-sdk/Aws/CloudTrail/LogFileReader.php index de5173f..e61c10a 100644 --- a/lib/aws-sdk/Aws/CloudTrail/LogFileReader.php +++ b/lib/aws-sdk/Aws/CloudTrail/LogFileReader.php @@ -1,23 +1,24 @@ s3Client->getCommand('GetObject', array( + $command = $this->s3Client->getCommand('GetObject', [ 'Bucket' => (string) $s3BucketName, - 'Key' => (string) $logFileKey, - )); + 'Key' => (string) $logFileKey, + 'ResponseContentEncoding' => 'x-gzip' + ]); - // 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'); + // Make sure gzip encoding header is sent and accepted in order to + // inflate the response data. + $command['@http']['headers']['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(); - } + $result = $this->s3Client->execute($command); + $logData = json_decode($result['Body'], true); + + return isset($logData['Records']) ? $logData['Records'] : []; } } diff --git a/lib/aws-sdk/Aws/CloudTrail/LogRecordIterator.php b/lib/aws-sdk/Aws/CloudTrail/LogRecordIterator.php index d66cf59..40d5d8c 100644 --- a/lib/aws-sdk/Aws/CloudTrail/LogRecordIterator.php +++ b/lib/aws-sdk/Aws/CloudTrail/LogRecordIterator.php @@ -1,39 +1,34 @@ $s3BucketName, - 'Key' => $s3ObjectKey, - ))); + 'Key' => $s3ObjectKey, + ]]); return new self($logFileReader, $logFileIterator); } @@ -88,8 +95,10 @@ class LogRecordIterator implements \OuterIterator * @param LogFileReader $logFileReader * @param \Iterator $logFileIterator */ - public function __construct(LogFileReader $logFileReader, \Iterator $logFileIterator) - { + public function __construct( + LogFileReader $logFileReader, + \Iterator $logFileIterator + ) { $this->logFileReader = $logFileReader; $this->logFileIterator = $logFileIterator; $this->records = array(); @@ -97,28 +106,21 @@ class LogRecordIterator implements \OuterIterator } /** - * 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. + * Returns the current log record as an array. * - * @return Collection - * @link http://docs.aws.amazon.com/awscloudtrail/latest/userguide/eventreference.html - * @link http://api.guzzlephp.org/class-Guzzle.Common.Collection.html + * @return array|false */ public function current() { - if ($this->valid()) { - return new Collection($this->records[$this->recordIndex]); - } else { - return false; - } + return $this->valid() ? $this->records[$this->recordIndex] : false; } public function next() { $this->recordIndex++; - // If all the records have been exhausted, get more records from the next log file + // If all the records have been exhausted, get more records from the + // next log file. while (!$this->valid()) { $this->logFileIterator->next(); $success = $this->loadRecordsFromCurrentLogFile(); @@ -133,9 +135,9 @@ class LogRecordIterator implements \OuterIterator { if ($logFile = $this->logFileIterator->current()) { return $logFile['Key'] . '.' . $this->recordIndex; - } else { - return null; } + + return null; } public function valid() @@ -155,15 +157,17 @@ class LogRecordIterator implements \OuterIterator } /** - * 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: + * 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 + * @return bool Returns `true` if records were loaded and `false` if no + * records were found */ private function loadRecordsFromCurrentLogFile() { @@ -172,7 +176,10 @@ class LogRecordIterator implements \OuterIterator $logFile = $this->logFileIterator->current(); if ($logFile && isset($logFile['Bucket']) && isset($logFile['Key'])) { - $this->records = $this->logFileReader->read($logFile['Bucket'], $logFile['Key']); + $this->records = $this->logFileReader->read( + $logFile['Bucket'], + $logFile['Key'] + ); } return (bool) $logFile; diff --git a/lib/aws-sdk/Aws/CloudTrail/Resources/cloudtrail-2013-11-01.php b/lib/aws-sdk/Aws/CloudTrail/Resources/cloudtrail-2013-11-01.php deleted file mode 100644 index b354503..0000000 --- a/lib/aws-sdk/Aws/CloudTrail/Resources/cloudtrail-2013-11-01.php +++ /dev/null @@ -1,752 +0,0 @@ - '2013-11-01', - 'endpointPrefix' => 'cloudtrail', - 'serviceFullName' => 'AWS CloudTrail', - 'serviceAbbreviation' => 'CloudTrail', - 'serviceType' => 'json', - 'jsonVersion' => '1.1', - 'targetPrefix' => 'com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.', - '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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'CreateTrailResponse', - '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.CreateTrail', - ), - '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', - ), - ), - '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( - '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( - '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', - ), - ), - ), - 'DeleteTrail' => 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.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( - 'reason' => 'This exception is thrown when the provided trail name is not valid.', - 'class' => 'InvalidTrailNameException', - ), - ), - ), - 'DescribeTrails' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeTrailsResponse', - '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.DescribeTrails', - ), - 'trailNameList' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - ), - ), - 'GetTrailStatus' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'GetTrailStatusResponse', - '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.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( - 'reason' => 'This exception is thrown when the provided trail name is not valid.', - 'class' => 'InvalidTrailNameException', - ), - ), - ), - 'LookupEvents' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'LookupEventsResponse', - '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.LookupEvents', - ), - '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( - 'reason' => 'Occurs when an invalid lookup attribute is specified.', - 'class' => 'InvalidLookupAttributesException', - ), - array( - '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( - 'reason' => 'This exception is thrown if the limit specified is invalid.', - 'class' => 'InvalidMaxResultsException', - ), - array( - '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( - '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', - ), - ), - ), - 'StopLogging' => 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.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( - 'reason' => 'This exception is thrown when the provided trail name is not valid.', - 'class' => 'InvalidTrailNameException', - ), - ), - ), - 'UpdateTrail' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'UpdateTrailResponse', - '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.UpdateTrail', - ), - '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', - ), - ), - '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( - '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( - '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', - ), - ), - ), - ), - 'models' => array( - 'CreateTrailResponse' => 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', - ), - ), - ), - 'EmptyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), - 'DescribeTrailsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'trailList' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Trail', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'S3BucketName' => array( - 'type' => 'string', - ), - 'S3KeyPrefix' => array( - 'type' => 'string', - ), - 'SnsTopicName' => array( - 'type' => 'string', - ), - 'IncludeGlobalServiceEvents' => array( - 'type' => 'boolean', - ), - 'CloudWatchLogsLogGroupArn' => array( - 'type' => 'string', - ), - 'CloudWatchLogsRoleArn' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'GetTrailStatusResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'IsLogging' => array( - 'type' => 'boolean', - 'location' => 'json', - ), - 'LatestDeliveryError' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'LatestNotificationError' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'LatestDeliveryTime' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'LatestNotificationTime' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'StartLoggingTime' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'StopLoggingTime' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'LatestCloudWatchLogsDeliveryError' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'LatestCloudWatchLogsDeliveryTime' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'LookupEventsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Events' => array( - 'type' => 'array', - 'location' => 'json', - '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( - 'DescribeTrails' => array( - 'result_key' => 'trailList', - ), - ), -); diff --git a/lib/aws-sdk/Aws/CloudWatch/CloudWatchClient.php b/lib/aws-sdk/Aws/CloudWatch/CloudWatchClient.php index c33e540..0ab4179 100644 --- a/lib/aws-sdk/Aws/CloudWatch/CloudWatchClient.php +++ b/lib/aws-sdk/Aws/CloudWatch/CloudWatchClient.php @@ -1,70 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/cloudwatch-%s.php' - )) - ->build(); - } -} +class CloudWatchClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/CloudWatch/Enum/ComparisonOperator.php b/lib/aws-sdk/Aws/CloudWatch/Enum/ComparisonOperator.php deleted file mode 100644 index 61dc947..0000000 --- a/lib/aws-sdk/Aws/CloudWatch/Enum/ComparisonOperator.php +++ /dev/null @@ -1,30 +0,0 @@ - '2010-08-01', - 'endpointPrefix' => 'monitoring', - 'serviceFullName' => 'Amazon CloudWatch', - 'serviceAbbreviation' => 'CloudWatch', - 'serviceType' => 'query', - 'resultWrapped' => true, - 'signatureVersion' => 'v4', - 'namespace' => 'CloudWatch', - 'regions' => array( - 'us-east-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'monitoring.us-east-1.amazonaws.com', - ), - 'us-west-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'monitoring.us-west-1.amazonaws.com', - ), - 'us-west-2' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'monitoring.us-west-2.amazonaws.com', - ), - 'eu-west-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'monitoring.eu-west-1.amazonaws.com', - ), - 'ap-northeast-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'monitoring.ap-northeast-1.amazonaws.com', - ), - 'ap-southeast-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'monitoring.ap-southeast-1.amazonaws.com', - ), - 'ap-southeast-2' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'monitoring.ap-southeast-2.amazonaws.com', - ), - 'sa-east-1' => array( - 'http' => true, - '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, - 'hostname' => 'monitoring.us-gov-west-1.amazonaws.com', - ), - ), - 'operations' => array( - 'DeleteAlarms' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteAlarms', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-08-01', - ), - 'AlarmNames' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'AlarmNames.member', - 'maxItems' => 100, - 'items' => array( - 'name' => 'AlarmName', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The named resource does not exist.', - 'class' => 'ResourceNotFoundException', - ), - ), - ), - 'DescribeAlarmHistory' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeAlarmHistoryOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeAlarmHistory', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-08-01', - ), - 'AlarmName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'HistoryItemType' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'StartDate' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time', - 'location' => 'aws.query', - ), - 'EndDate' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time', - 'location' => 'aws.query', - ), - 'MaxRecords' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 1, - 'maximum' => 100, - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The next token specified is invalid.', - 'class' => 'InvalidNextTokenException', - ), - ), - ), - 'DescribeAlarms' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeAlarmsOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeAlarms', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-08-01', - ), - 'AlarmNames' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'AlarmNames.member', - 'maxItems' => 100, - 'items' => array( - 'name' => 'AlarmName', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - 'AlarmNamePrefix' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'StateValue' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ActionPrefix' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'MaxRecords' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 1, - 'maximum' => 100, - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The next token specified is invalid.', - 'class' => 'InvalidNextTokenException', - ), - ), - ), - 'DescribeAlarmsForMetric' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeAlarmsForMetricOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeAlarmsForMetric', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-08-01', - ), - 'MetricName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'Namespace' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'Statistic' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Dimensions' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Dimensions.member', - 'maxItems' => 10, - 'items' => array( - 'name' => 'Dimension', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'Value' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - ), - ), - 'Period' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 60, - ), - 'Unit' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - 'DisableAlarmActions' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DisableAlarmActions', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-08-01', - ), - 'AlarmNames' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'AlarmNames.member', - 'maxItems' => 100, - 'items' => array( - 'name' => 'AlarmName', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - ), - ), - 'EnableAlarmActions' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'EnableAlarmActions', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-08-01', - ), - 'AlarmNames' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'AlarmNames.member', - 'maxItems' => 100, - 'items' => array( - 'name' => 'AlarmName', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - ), - ), - 'GetMetricStatistics' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetMetricStatisticsOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetMetricStatistics', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-08-01', - ), - 'Namespace' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'MetricName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'Dimensions' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Dimensions.member', - 'maxItems' => 10, - 'items' => array( - 'name' => 'Dimension', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'Value' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - ), - ), - 'StartTime' => array( - 'required' => true, - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time', - 'location' => 'aws.query', - ), - 'EndTime' => array( - 'required' => true, - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time', - 'location' => 'aws.query', - ), - 'Period' => array( - 'required' => true, - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 60, - ), - 'Statistics' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Statistics.member', - 'minItems' => 1, - 'maxItems' => 5, - 'items' => array( - 'name' => 'Statistic', - 'type' => 'string', - ), - ), - 'Unit' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Bad or out-of-range value was supplied for the input parameter.', - 'class' => 'InvalidParameterValueException', - ), - array( - 'reason' => 'An input parameter that is mandatory for processing the request is not supplied.', - 'class' => 'MissingRequiredParameterException', - ), - array( - 'reason' => 'Parameters that must not be used together were used together.', - 'class' => 'InvalidParameterCombinationException', - ), - array( - 'reason' => 'Indicates that the request processing has failed due to some unknown error, exception, or failure.', - 'class' => 'InternalServiceException', - ), - ), - ), - 'ListMetrics' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListMetricsOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListMetrics', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-08-01', - ), - 'Namespace' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'MetricName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'Dimensions' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Dimensions.member', - 'maxItems' => 10, - 'items' => array( - 'name' => 'DimensionFilter', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'Value' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that the request processing has failed due to some unknown error, exception, or failure.', - 'class' => 'InternalServiceException', - ), - array( - 'reason' => 'Bad or out-of-range value was supplied for the input parameter.', - 'class' => 'InvalidParameterValueException', - ), - ), - ), - 'PutMetricAlarm' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'PutMetricAlarm', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-08-01', - ), - 'AlarmName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'AlarmDescription' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'maxLength' => 255, - ), - 'ActionsEnabled' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'OKActions' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'OKActions.member', - 'maxItems' => 5, - 'items' => array( - 'name' => 'ResourceName', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 1024, - ), - ), - 'AlarmActions' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'AlarmActions.member', - 'maxItems' => 5, - 'items' => array( - 'name' => 'ResourceName', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 1024, - ), - ), - 'InsufficientDataActions' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'InsufficientDataActions.member', - 'maxItems' => 5, - 'items' => array( - 'name' => 'ResourceName', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 1024, - ), - ), - 'MetricName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'Namespace' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'Statistic' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Dimensions' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Dimensions.member', - 'maxItems' => 10, - 'items' => array( - 'name' => 'Dimension', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'Value' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - ), - ), - 'Period' => array( - 'required' => true, - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 60, - ), - 'Unit' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'EvaluationPeriods' => array( - 'required' => true, - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 1, - ), - 'Threshold' => array( - 'required' => true, - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'ComparisonOperator' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The quota for alarms for this customer has already been reached.', - 'class' => 'LimitExceededException', - ), - ), - ), - 'PutMetricData' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'PutMetricData', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-08-01', - ), - 'Namespace' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'MetricData' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'MetricData.member', - 'items' => array( - 'name' => 'MetricDatum', - 'type' => 'object', - 'properties' => array( - 'MetricName' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'Dimensions' => array( - 'type' => 'array', - 'sentAs' => 'Dimensions.member', - 'maxItems' => 10, - 'items' => array( - 'name' => 'Dimension', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'Value' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - ), - ), - 'Timestamp' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time', - ), - 'Value' => array( - 'type' => 'numeric', - ), - 'StatisticValues' => array( - 'type' => 'object', - 'properties' => array( - 'SampleCount' => array( - 'required' => true, - 'type' => 'numeric', - ), - 'Sum' => array( - 'required' => true, - 'type' => 'numeric', - ), - 'Minimum' => array( - 'required' => true, - 'type' => 'numeric', - ), - 'Maximum' => array( - 'required' => true, - 'type' => 'numeric', - ), - ), - ), - 'Unit' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Bad or out-of-range value was supplied for the input parameter.', - 'class' => 'InvalidParameterValueException', - ), - array( - 'reason' => 'An input parameter that is mandatory for processing the request is not supplied.', - 'class' => 'MissingRequiredParameterException', - ), - array( - 'reason' => 'Parameters that must not be used together were used together.', - 'class' => 'InvalidParameterCombinationException', - ), - array( - 'reason' => 'Indicates that the request processing has failed due to some unknown error, exception, or failure.', - 'class' => 'InternalServiceException', - ), - ), - ), - 'SetAlarmState' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'SetAlarmState', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-08-01', - ), - 'AlarmName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'StateValue' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'StateReason' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'maxLength' => 1023, - ), - 'StateReasonData' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'maxLength' => 4000, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The named resource does not exist.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'Data was not syntactically valid JSON.', - 'class' => 'InvalidFormatException', - ), - ), - ), - ), - 'models' => array( - 'EmptyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), - 'DescribeAlarmHistoryOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'AlarmHistoryItems' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'AlarmHistoryItem', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'AlarmName' => array( - 'type' => 'string', - ), - 'Timestamp' => array( - 'type' => 'string', - ), - 'HistoryItemType' => array( - 'type' => 'string', - ), - 'HistorySummary' => array( - 'type' => 'string', - ), - 'HistoryData' => array( - 'type' => 'string', - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'DescribeAlarmsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'MetricAlarms' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'MetricAlarm', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'AlarmName' => array( - 'type' => 'string', - ), - 'AlarmArn' => array( - 'type' => 'string', - ), - 'AlarmDescription' => array( - 'type' => 'string', - ), - 'AlarmConfigurationUpdatedTimestamp' => array( - 'type' => 'string', - ), - 'ActionsEnabled' => array( - 'type' => 'boolean', - ), - 'OKActions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'ResourceName', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'AlarmActions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'ResourceName', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'InsufficientDataActions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'ResourceName', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'StateValue' => array( - 'type' => 'string', - ), - 'StateReason' => array( - 'type' => 'string', - ), - 'StateReasonData' => array( - 'type' => 'string', - ), - 'StateUpdatedTimestamp' => array( - 'type' => 'string', - ), - 'MetricName' => array( - 'type' => 'string', - ), - 'Namespace' => array( - 'type' => 'string', - ), - 'Statistic' => array( - 'type' => 'string', - ), - 'Dimensions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Dimension', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Period' => array( - 'type' => 'numeric', - ), - 'Unit' => array( - 'type' => 'string', - ), - 'EvaluationPeriods' => array( - 'type' => 'numeric', - ), - 'Threshold' => array( - 'type' => 'numeric', - ), - 'ComparisonOperator' => array( - 'type' => 'string', - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'DescribeAlarmsForMetricOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'MetricAlarms' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'MetricAlarm', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'AlarmName' => array( - 'type' => 'string', - ), - 'AlarmArn' => array( - 'type' => 'string', - ), - 'AlarmDescription' => array( - 'type' => 'string', - ), - 'AlarmConfigurationUpdatedTimestamp' => array( - 'type' => 'string', - ), - 'ActionsEnabled' => array( - 'type' => 'boolean', - ), - 'OKActions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'ResourceName', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'AlarmActions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'ResourceName', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'InsufficientDataActions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'ResourceName', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'StateValue' => array( - 'type' => 'string', - ), - 'StateReason' => array( - 'type' => 'string', - ), - 'StateReasonData' => array( - 'type' => 'string', - ), - 'StateUpdatedTimestamp' => array( - 'type' => 'string', - ), - 'MetricName' => array( - 'type' => 'string', - ), - 'Namespace' => array( - 'type' => 'string', - ), - 'Statistic' => array( - 'type' => 'string', - ), - 'Dimensions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Dimension', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Period' => array( - 'type' => 'numeric', - ), - 'Unit' => array( - 'type' => 'string', - ), - 'EvaluationPeriods' => array( - 'type' => 'numeric', - ), - 'Threshold' => array( - 'type' => 'numeric', - ), - 'ComparisonOperator' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'GetMetricStatisticsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Label' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'Datapoints' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'Datapoint', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'Timestamp' => array( - 'type' => 'string', - ), - 'SampleCount' => array( - 'type' => 'numeric', - ), - 'Average' => array( - 'type' => 'numeric', - ), - 'Sum' => array( - 'type' => 'numeric', - ), - 'Minimum' => array( - 'type' => 'numeric', - ), - 'Maximum' => array( - 'type' => 'numeric', - ), - 'Unit' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'ListMetricsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Metrics' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'Metric', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'Namespace' => array( - 'type' => 'string', - ), - 'MetricName' => array( - 'type' => 'string', - ), - 'Dimensions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Dimension', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - ), - 'iterators' => array( - '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/lib/aws-sdk/Aws/CloudWatchLogs/CloudWatchLogsClient.php b/lib/aws-sdk/Aws/CloudWatchLogs/CloudWatchLogsClient.php index 20affd2..c1f27b7 100644 --- a/lib/aws-sdk/Aws/CloudWatchLogs/CloudWatchLogsClient.php +++ b/lib/aws-sdk/Aws/CloudWatchLogs/CloudWatchLogsClient.php @@ -1,66 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/cloudwatchlogs-%s.php' - )) - ->setExceptionParser(new JsonQueryExceptionParser()) - ->build(); - } -} +class CloudWatchLogsClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/CloudWatchLogs/Exception/CloudWatchLogsException.php b/lib/aws-sdk/Aws/CloudWatchLogs/Exception/CloudWatchLogsException.php index d49bc9d..46f87b4 100644 --- a/lib/aws-sdk/Aws/CloudWatchLogs/Exception/CloudWatchLogsException.php +++ b/lib/aws-sdk/Aws/CloudWatchLogs/Exception/CloudWatchLogsException.php @@ -1,10 +1,9 @@ '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', - ), - ), - ), - 'DeleteSubscriptionFilter' => 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.DeleteSubscriptionFilter', - ), - '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', - ), - ), - ), - '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', - ), - ), - ), - 'DescribeSubscriptionFilters' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeSubscriptionFiltersResponse', - '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.DescribeSubscriptionFilters', - ), - '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', - ), - ), - ), - 'FilterLogEvents' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'FilterLogEventsResponse', - '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.FilterLogEvents', - ), - 'logGroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 512, - ), - 'logStreamNames' => array( - 'type' => 'array', - 'location' => 'json', - 'minItems' => 1, - 'maxItems' => 100, - 'items' => array( - 'name' => 'LogStreamName', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 512, - ), - ), - 'startTime' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'endTime' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'filterPattern' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 512, - ), - 'nextToken' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - ), - 'limit' => array( - 'type' => 'numeric', - 'location' => 'json', - 'minimum' => 1, - 'maximum' => 10000, - ), - 'interleaved' => 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', - ), - ), - ), - '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', - ), - ), - ), - 'PutSubscriptionFilter' => 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.PutSubscriptionFilter', - ), - '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, - ), - 'destinationArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - ), - 'roleArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - ), - ), - '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', - ), - ), - ), - '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', - ), - ), - ), - 'DescribeSubscriptionFiltersResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'subscriptionFilters' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'SubscriptionFilter', - 'type' => 'object', - 'properties' => array( - 'filterName' => array( - 'type' => 'string', - ), - 'logGroupName' => array( - 'type' => 'string', - ), - 'filterPattern' => array( - 'type' => 'string', - ), - 'destinationArn' => array( - 'type' => 'string', - ), - 'roleArn' => array( - 'type' => 'string', - ), - 'creationTime' => array( - 'type' => 'numeric', - ), - ), - ), - ), - 'nextToken' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'FilterLogEventsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'events' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'FilteredLogEvent', - 'type' => 'object', - 'properties' => array( - 'logStreamName' => array( - 'type' => 'string', - ), - 'timestamp' => array( - 'type' => 'numeric', - ), - 'message' => array( - 'type' => 'string', - ), - 'ingestionTime' => array( - 'type' => 'numeric', - ), - 'eventId' => array( - 'type' => 'string', - ), - ), - ), - ), - 'searchedLogStreams' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'SearchedLogStream', - 'type' => 'object', - 'properties' => array( - 'logStreamName' => array( - 'type' => 'string', - ), - 'searchedCompletely' => array( - 'type' => 'boolean', - ), - ), - ), - ), - '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/lib/aws-sdk/Aws/CodeDeploy/CodeDeployClient.php b/lib/aws-sdk/Aws/CodeDeploy/CodeDeployClient.php index 1a9ddcb..b115bce 100644 --- a/lib/aws-sdk/Aws/CodeDeploy/CodeDeployClient.php +++ b/lib/aws-sdk/Aws/CodeDeploy/CodeDeployClient.php @@ -1,90 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/codedeploy-%s.php' - )) - ->setExceptionParser(new JsonQueryExceptionParser) - ->build(); - } -} +class CodeDeployClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/CodeDeploy/Exception/CodeDeployException.php b/lib/aws-sdk/Aws/CodeDeploy/Exception/CodeDeployException.php index 349af93..2fb9672 100644 --- a/lib/aws-sdk/Aws/CodeDeploy/Exception/CodeDeployException.php +++ b/lib/aws-sdk/Aws/CodeDeploy/Exception/CodeDeployException.php @@ -1,10 +1,9 @@ '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/lib/aws-sdk/Aws/CognitoIdentity/CognitoIdentityClient.php b/lib/aws-sdk/Aws/CognitoIdentity/CognitoIdentityClient.php index eec5d73..3f5851e 100644 --- a/lib/aws-sdk/Aws/CognitoIdentity/CognitoIdentityClient.php +++ b/lib/aws-sdk/Aws/CognitoIdentity/CognitoIdentityClient.php @@ -1,84 +1,9 @@ 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; - } -} +class CognitoIdentityClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/CognitoIdentity/Exception/CognitoIdentityException.php b/lib/aws-sdk/Aws/CognitoIdentity/Exception/CognitoIdentityException.php index 145be67..4d58f72 100644 --- a/lib/aws-sdk/Aws/CognitoIdentity/Exception/CognitoIdentityException.php +++ b/lib/aws-sdk/Aws/CognitoIdentity/Exception/CognitoIdentityException.php @@ -1,10 +1,9 @@ '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', - ), - ), - ), - 'DeleteIdentities' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DeleteIdentitiesResponse', - '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.DeleteIdentities', - ), - 'IdentityIdsToDelete' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'json', - 'minItems' => 1, - 'maxItems' => 60, - 'items' => array( - 'name' => 'IdentityId', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 50, - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Thrown for missing or bad input parameter(s).', - 'class' => 'InvalidParameterException', - ), - 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', - ), - ), - ), - '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', - ), - array( - 'reason' => 'An exception thrown when a dependent service such as Facebook or Twitter is not responding', - 'class' => 'ExternalServiceException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'An exception thrown when a dependent service such as Facebook or Twitter is not responding', - 'class' => 'ExternalServiceException', - ), - ), - ), - '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( - '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', - ), - ), - ), - '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', - ), - array( - 'reason' => 'An exception thrown when a dependent service such as Facebook or Twitter is not responding', - 'class' => 'ExternalServiceException', - ), - ), - ), - '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, - ), - 'HideDisabled' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - ), - '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', - ), - array( - 'reason' => 'An exception thrown when a dependent service such as Facebook or Twitter is not responding', - 'class' => 'ExternalServiceException', - ), - ), - ), - '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', - ), - ), - ), - ), - 'DeleteIdentitiesResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'UnprocessedIdentityIds' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'UnprocessedIdentityId', - 'type' => 'object', - 'properties' => array( - 'IdentityId' => array( - 'type' => 'string', - ), - 'ErrorCode' => array( - '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/lib/aws-sdk/Aws/CognitoSync/CognitoSyncClient.php b/lib/aws-sdk/Aws/CognitoSync/CognitoSyncClient.php index 9492407..a9e3f4b 100644 --- a/lib/aws-sdk/Aws/CognitoSync/CognitoSyncClient.php +++ b/lib/aws-sdk/Aws/CognitoSync/CognitoSyncClient.php @@ -1,60 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/cognitosync-%s.php', - )) - ->setExceptionParser(new JsonRestExceptionParser) - ->build(); - } -} +class CognitoSyncClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/CognitoSync/Exception/CognitoSyncException.php b/lib/aws-sdk/Aws/CognitoSync/Exception/CognitoSyncException.php index f968a91..8ecf0a0 100644 --- a/lib/aws-sdk/Aws/CognitoSync/Exception/CognitoSyncException.php +++ b/lib/aws-sdk/Aws/CognitoSync/Exception/CognitoSyncException.php @@ -1,10 +1,9 @@ '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/lib/aws-sdk/Aws/Command.php b/lib/aws-sdk/Aws/Command.php new file mode 100644 index 0000000..770f84c --- /dev/null +++ b/lib/aws-sdk/Aws/Command.php @@ -0,0 +1,57 @@ +name = $name; + $this->data = $args; + $this->handlerList = $list ?: new HandlerList(); + + if (!isset($this->data['@http'])) { + $this->data['@http'] = []; + } + } + + public function getName() + { + return $this->name; + } + + public function hasParam($name) + { + return array_key_exists($name, $this->data); + } + + public function getHandlerList() + { + return $this->handlerList; + } + + /** @deprecated */ + public function get($name) + { + return $this[$name]; + } +} diff --git a/lib/aws-sdk/Aws/CommandInterface.php b/lib/aws-sdk/Aws/CommandInterface.php new file mode 100644 index 0000000..b35c75d --- /dev/null +++ b/lib/aws-sdk/Aws/CommandInterface.php @@ -0,0 +1,42 @@ +getBefore($config); + $mapFn = function ($commands) use ($client, $before) { + foreach ($commands as $key => $command) { + if (!($command instanceof CommandInterface)) { + throw new \InvalidArgumentException('Each value yielded by ' + . 'the iterator must be an Aws\CommandInterface.'); + } + if ($before) { + $before($command, $key); + } + yield $client->executeAsync($command); + } + }; + + $this->each = new EachPromise($mapFn($commands), $config); + } + + /** + * @return \GuzzleHttp\Promise\PromiseInterface + */ + public function promise() + { + return $this->each->promise(); + } + + /** + * Executes a pool synchronously and aggregates the results of the pool + * into an indexed array in the same order as the passed in array. + * + * @param AwsClientInterface $client Client used to execute commands. + * @param mixed $commands Iterable that yields commands. + * @param array $config Configuration options. + * + * @return array + * @see \Aws\CommandPool::__construct for available configuration options. + */ + public static function batch( + AwsClientInterface $client, + $commands, + array $config = [] + ) { + $results = []; + self::cmpCallback($config, 'fulfilled', $results); + self::cmpCallback($config, 'rejected', $results); + + return (new self($client, $commands, $config)) + ->promise() + ->then(static function () use (&$results) { + ksort($results); + return $results; + }) + ->wait(); + } + + /** + * @return callable + */ + private function getBefore(array $config) + { + if (!isset($config['before'])) { + return null; + } + + if (is_callable($config['before'])) { + return $config['before']; + } + + throw new \InvalidArgumentException('before must be callable'); + } + + /** + * Adds an onFulfilled or onRejected callback that aggregates results into + * an array. If a callback is already present, it is replaced with the + * composed function. + * + * @param array $config + * @param $name + * @param array $results + */ + private static function cmpCallback(array &$config, $name, array &$results) + { + if (!isset($config[$name])) { + $config[$name] = function ($v, $k) use (&$results) { + $results[$k] = $v; + }; + } else { + $currentFn = $config[$name]; + $config[$name] = function ($v, $k) use (&$results, $currentFn) { + $currentFn($v, $k); + $results[$k] = $v; + }; + } + } +} diff --git a/lib/aws-sdk/Aws/Common/Aws.php b/lib/aws-sdk/Aws/Common/Aws.php deleted file mode 100644 index 50122e2..0000000 --- a/lib/aws-sdk/Aws/Common/Aws.php +++ /dev/null @@ -1,106 +0,0 @@ -addAlias('_aws', self::getDefaultServiceDefinition()) - ->addAlias('_sdk1', __DIR__ . '/Resources/sdk1-config.php'); - - return $loader->load($config, $globalParameters); - } - - /** - * Get the full path to the default service builder definition file - * - * @return string - */ - public static function getDefaultServiceDefinition() - { - return __DIR__ . '/Resources/aws-config.php'; - } - - /** - * Returns the configuration for the service builder - * - * @return array - */ - public function getConfig() - { - return $this->builderConfig; - } - - /** - * Enables the facades for the clients defined in the service builder - * - * @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) - { - Facade::mountFacades($this, $namespace); - - return $this; - } -} diff --git a/lib/aws-sdk/Aws/Common/Client/AbstractClient.php b/lib/aws-sdk/Aws/Common/Client/AbstractClient.php deleted file mode 100644 index f0d6c30..0000000 --- a/lib/aws-sdk/Aws/Common/Client/AbstractClient.php +++ /dev/null @@ -1,283 +0,0 @@ -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); - - // Add the event listener so that requests are signed before they are sent - $dispatcher = $this->getEventDispatcher(); - $dispatcher->addSubscriber(new SignatureListener($credentials, $signature)); - - if ($backoff = $config->get(Options::BACKOFF)) { - $dispatcher->addSubscriber($backoff, -255); - } - } - - public function __call($method, $args) - { - if (substr($method, 0, 3) === 'get' && substr($method, -8) === 'Iterator') { - // Allow magic method calls for iterators (e.g. $client->getIterator($params)) - $commandOptions = isset($args[0]) ? $args[0] : null; - $iteratorOptions = isset($args[1]) ? $args[1] : array(); - return $this->getIterator(substr($method, 3, -8), $commandOptions, $iteratorOptions); - } elseif (substr($method, 0, 9) == 'waitUntil') { - // Allow magic method calls for waiters (e.g. $client->waitUntil($params)) - return $this->waitUntil(substr($method, 9), isset($args[0]) ? $args[0]: array()); - } else { - return parent::__call(ucfirst($method), $args); - } - } - - /** - * Get an endpoint for a specific region from a service description - * @deprecated This function will no longer be updated to work with new regions. - */ - public static function getEndpoint(ServiceDescriptionInterface $description, $region, $scheme) - { - 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); - } - } - - public function getCredentials() - { - return $this->credentials; - } - - public function setCredentials(CredentialsInterface $credentials) - { - $formerCredentials = $this->credentials; - $this->credentials = $credentials; - - // Dispatch an event that the credentials have been changed - $this->dispatch('client.credentials_changed', array( - 'credentials' => $credentials, - 'former_credentials' => $formerCredentials, - )); - - return $this; - } - - public function getSignature() - { - return $this->signature; - } - - public function getRegions() - { - return $this->serviceDescription->getData('regions'); - } - - public function getRegion() - { - return $this->getConfig(Options::REGION); - } - - 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') { - - $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 EndpointSignatureInterface $signature */ - $signature->setRegionName($region); - } - - // Dispatch an event that the region has been changed - $this->dispatch('client.region_changed', array( - 'region' => $region, - 'former_region' => $formerRegion, - )); - } - - return $this; - } - - public function waitUntil($waiter, array $input = array()) - { - $this->getWaiter($waiter, $input)->wait(); - - return $this; - } - - public function getWaiter($waiter, array $input = array()) - { - return $this->getWaiterFactory()->build($waiter) - ->setClient($this) - ->setConfig($input); - } - - public function setWaiterFactory(WaiterFactoryInterface $waiterFactory) - { - $this->waiterFactory = $waiterFactory; - - return $this; - } - - public function getWaiterFactory() - { - if (!$this->waiterFactory) { - $clientClass = get_class($this); - // Use a composite factory that checks for classes first, then config waiters - $this->waiterFactory = new CompositeWaiterFactory(array( - new WaiterClassFactory(substr($clientClass, 0, strrpos($clientClass, '\\')) . '\\Waiter') - )); - if ($this->getDescription()) { - $waiterConfig = $this->getDescription()->getData('waiters') ?: array(); - $this->waiterFactory->addFactory(new WaiterConfigFactory($waiterConfig)); - } - } - - return $this->waiterFactory; - } - - public function getApiVersion() - { - return $this->serviceDescription->getApiVersion(); - } - - /** - * {@inheritdoc} - * @throws \Aws\Common\Exception\TransferException - */ - public function send($requests) - { - try { - return parent::send($requests); - } catch (CurlException $e) { - $wrapped = new TransferException($e->getMessage(), null, $e); - $wrapped->setCurlHandle($e->getCurlHandle()) - ->setCurlInfo($e->getCurlInfo()) - ->setError($e->getError(), $e->getErrorNo()) - ->setRequest($e->getRequest()); - 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/lib/aws-sdk/Aws/Common/Client/AwsClientInterface.php b/lib/aws-sdk/Aws/Common/Client/AwsClientInterface.php deleted file mode 100644 index 4c0579f..0000000 --- a/lib/aws-sdk/Aws/Common/Client/AwsClientInterface.php +++ /dev/null @@ -1,118 +0,0 @@ - 'https'); - - /** - * @var array Default client requirements - */ - protected static $commonConfigRequirements = array(Options::SERVICE_DESCRIPTION); - - /** - * @var string The namespace of the client - */ - protected $clientNamespace; - - /** - * @var array The config options - */ - protected $config = array(); - - /** - * @var array The config defaults - */ - protected $configDefaults = array(); - - /** - * @var array The config requirements - */ - protected $configRequirements = array(); - - /** - * @var ExceptionParserInterface The Parser interface for the client - */ - protected $exceptionParser; - - /** - * @var array Array of configuration data for iterators available for the client - */ - protected $iteratorsConfig = array(); - - /** @var string */ - private $clientClass; - - /** @var string */ - private $serviceName; - - /** - * Factory method for creating the client builder - * - * @param string $namespace The namespace of the client - * - * @return ClientBuilder - */ - public static function factory($namespace = null) - { - return new static($namespace); - } - - /** - * Constructs a client builder - * - * @param string $namespace The namespace of the client - */ - 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'; - } - } - - /** - * Sets the config options - * - * @param array|Collection $config The config options - * - * @return ClientBuilder - */ - public function setConfig($config) - { - $this->config = $this->processArray($config); - - return $this; - } - - /** - * Sets the config options' defaults - * - * @param array|Collection $defaults The default values - * - * @return ClientBuilder - */ - public function setConfigDefaults($defaults) - { - $this->configDefaults = $this->processArray($defaults); - - return $this; - } - - /** - * Sets the required config options - * - * @param array|Collection $required The required config options - * - * @return ClientBuilder - */ - public function setConfigRequirements($required) - { - $this->configRequirements = $this->processArray($required); - - return $this; - } - - /** - * Sets the exception parser. If one is not provided the builder will use - * the default XML exception parser. - * - * @param ExceptionParserInterface $parser The exception parser - * - * @return ClientBuilder - */ - public function setExceptionParser(ExceptionParserInterface $parser) - { - $this->exceptionParser = $parser; - - return $this; - } - - /** - * Set the configuration for the client's iterators - * - * @param array $config Configuration data for client's iterators - * - * @return ClientBuilder - */ - public function setIteratorsConfig(array $config) - { - $this->iteratorsConfig = $config; - - return $this; - } - - /** - * Performs the building logic using all of the parameters that have been - * set and falling back to default values. Returns an instantiate service - * client with credentials prepared and plugins attached. - * - * @return AwsClientInterface - * @throws InvalidArgumentException - */ - public function build() - { - // Resolve configuration - $config = Collection::fromConfig( - $this->config, - array_merge(self::$commonConfigDefaults, $this->configDefaults), - (self::$commonConfigRequirements + $this->configRequirements) - ); - - if ($config[Options::VERSION] === 'latest') { - $config[Options::VERSION] = constant("{$this->clientClass}::LATEST_API_VERSION"); - } - - 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(); - } - - // Resolve backoff strategy - $backoff = $config->get(Options::BACKOFF); - if ($backoff === null) { - $backoff = $this->createDefaultBackoff(); - $config->set(Options::BACKOFF, $backoff); - } - - if ($backoff) { - $this->addBackoffLogger($backoff, $config); - } - - /** @var AwsClientInterface $client */ - $client = new $this->clientClass($credentials, $signature, $config); - $client->setDescription($description); - - // Add exception marshaling so that more descriptive exception are thrown - if ($this->clientNamespace) { - $exceptionFactory = new NamespaceExceptionFactory( - $this->exceptionParser, - "{$this->clientNamespace}\\Exception", - "{$this->clientNamespace}\\Exception\\{$this->serviceName}Exception" - ); - $client->addSubscriber(new ExceptionListener($exceptionFactory)); - } - - // 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' - ); - - // Set the iterator resource factory based on the provided iterators config - $client->setResourceIteratorFactory(new AwsResourceIteratorFactory( - $this->iteratorsConfig, - new ResourceIteratorClassFactory($this->clientNamespace . '\\Iterator') - )); - - // 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; - } - - /** - * Add backoff logging to the backoff plugin if needed - * - * @param BackoffPlugin $plugin Backoff plugin - * @param Collection $config Configuration settings - * - * @throws InvalidArgumentException - */ - protected function addBackoffLogger(BackoffPlugin $plugin, Collection $config) - { - // The log option can be set to `debug` or an instance of a LogAdapterInterface - if ($logger = $config->get(Options::BACKOFF_LOGGER)) { - $format = $config->get(Options::BACKOFF_LOGGER_TEMPLATE); - if ($logger === 'debug') { - $logger = new ClosureLogAdapter(function ($message) { - trigger_error($message . "\n"); - }); - } elseif (!($logger instanceof LogAdapterInterface)) { - throw new InvalidArgumentException( - Options::BACKOFF_LOGGER . ' must be set to `debug` or an instance of ' - . 'Guzzle\\Common\\Log\\LogAdapterInterface' - ); - } - // Create the plugin responsible for logging exponential backoff retries - $logPlugin = new BackoffLogger($logger); - // You can specify a custom format or use the default - if ($format) { - $logPlugin->setTemplate($format); - } - $plugin->addSubscriber($logPlugin); - } - } - - /** - * Ensures that an array (e.g. for config data) is actually in array form - * - * @param array|Collection $array The array data - * - * @return array - * @throws InvalidArgumentException if the arg is not an array or Collection - */ - protected function processArray($array) - { - if ($array instanceof Collection) { - $array = $array->getAll(); - } - - if (!is_array($array)) { - throw new InvalidArgumentException('The config must be provided as an array or Collection.'); - } - - return $array; - } - - /** - * Update a configuration object from a service description - * - * @param Collection $config Config to update - * - * @return ServiceDescription - * @throws InvalidArgumentException - */ - protected function updateConfigFromDescription(Collection $config) - { - $description = $config->get(Options::SERVICE_DESCRIPTION); - if (!($description instanceof ServiceDescription)) { - // Inject the version into the sprintf template if it is a string - if (is_string($description)) { - $description = sprintf($description, $config->get(Options::VERSION)); - } - $description = ServiceDescription::factory($description); - $config->set(Options::SERVICE_DESCRIPTION, $description); - } - - if (!$config->get(Options::SERVICE)) { - $config->set(Options::SERVICE, $description->getData('endpointPrefix')); - } - - if ($iterators = $description->getData('iterators')) { - $this->setIteratorsConfig($iterators); - } - - $this->handleRegion($config); - $this->handleEndpoint($config); - - return $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 - * - * @return SignatureInterface - * @throws InvalidArgumentException - */ - protected function getSignature(ServiceDescription $description, Collection $config) - { - // 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 - $signature->setServiceName($config->get(Options::SIGNATURE_SERVICE) - ?: $description->getData('signingName') - ?: $description->getData('endpointPrefix')); - - // Determine the region to use when signing requests - $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/lib/aws-sdk/Aws/Common/Client/DefaultClient.php b/lib/aws-sdk/Aws/Common/Client/DefaultClient.php deleted file mode 100644 index 277f088..0000000 --- a/lib/aws-sdk/Aws/Common/Client/DefaultClient.php +++ /dev/null @@ -1,67 +0,0 @@ -setConfig($config) - ->setConfigDefaults(array(Options::SCHEME => 'https')) - ->build(); - } -} diff --git a/lib/aws-sdk/Aws/Common/Client/ExpiredCredentialsChecker.php b/lib/aws-sdk/Aws/Common/Client/ExpiredCredentialsChecker.php deleted file mode 100644 index 05b8445..0000000 --- a/lib/aws-sdk/Aws/Common/Client/ExpiredCredentialsChecker.php +++ /dev/null @@ -1,80 +0,0 @@ - true, - 'ExpiredTokenException' => true, - 'ExpiredToken' => true - ); - - /** - * @var ExceptionParserInterface Exception parser used to parse exception responses - */ - protected $exceptionParser; - - public function __construct(ExceptionParserInterface $exceptionParser, BackoffStrategyInterface $next = null) { - $this->exceptionParser = $exceptionParser; - $this->next = $next; - } - - public function makesDecision() - { - return true; - } - - protected function getDelay($retries, RequestInterface $request, Response $response = null, HttpException $e = null) - { - if ($response && $response->isClientError()) { - - $parts = $this->exceptionParser->parse($request, $response); - if (!isset($this->retryable[$parts['code']]) || !$request->getClient()) { - return null; - } - - /** @var AwsClientInterface $client */ - $client = $request->getClient(); - // Only retry if the credentials can be refreshed - if (!($client->getCredentials() instanceof AbstractRefreshableCredentials)) { - return null; - } - - // Resign the request using new credentials - $client->getSignature()->signRequest($request, $client->getCredentials()->setExpiration(-1)); - - // Retry immediately with no delay - return 0; - } - } -} diff --git a/lib/aws-sdk/Aws/Common/Client/ThrottlingErrorChecker.php b/lib/aws-sdk/Aws/Common/Client/ThrottlingErrorChecker.php deleted file mode 100644 index a35cbcb..0000000 --- a/lib/aws-sdk/Aws/Common/Client/ThrottlingErrorChecker.php +++ /dev/null @@ -1,75 +0,0 @@ - true, - 'Throttling' => true, - 'ThrottlingException' => true, - 'ProvisionedThroughputExceededException' => true, - 'RequestThrottled' => true, - ); - - /** - * @var ExceptionParserInterface Exception parser used to parse exception responses - */ - protected $exceptionParser; - - public function __construct(ExceptionParserInterface $exceptionParser, BackoffStrategyInterface $next = null) - { - $this->exceptionParser = $exceptionParser; - if ($next) { - $this->setNext($next); - } - } - - /** - * {@inheritdoc} - */ - public function makesDecision() - { - return true; - } - - /** - * {@inheritdoc} - */ - protected function getDelay( - $retries, - RequestInterface $request, - Response $response = null, - HttpException $e = null - ) { - if ($response && $response->isClientError()) { - $parts = $this->exceptionParser->parse($request, $response); - return isset(self::$throttlingExceptions[$parts['code']]) ? true : null; - } - } -} diff --git a/lib/aws-sdk/Aws/Common/Client/UploadBodyListener.php b/lib/aws-sdk/Aws/Common/Client/UploadBodyListener.php deleted file mode 100644 index 10cd825..0000000 --- a/lib/aws-sdk/Aws/Common/Client/UploadBodyListener.php +++ /dev/null @@ -1,95 +0,0 @@ -commands = $commands; - $this->bodyParameter = (string) $bodyParameter; - $this->sourceParameter = (string) $sourceParameter; - } - - /** - * {@inheritdoc} - */ - public static function getSubscribedEvents() - { - return array('command.before_prepare' => array('onCommandBeforePrepare')); - } - - /** - * Converts filenames and file handles into EntityBody objects before the command is validated - * - * @param Event $event Event emitted - * @throws InvalidArgumentException - */ - public function onCommandBeforePrepare(Event $event) - { - /** @var Command $command */ - $command = $event['command']; - if (in_array($command->getName(), $this->commands)) { - // Get the interesting parameters - $source = $command->get($this->sourceParameter); - $body = $command->get($this->bodyParameter); - - // If a file path is passed in then get the file handle - if (is_string($source) && file_exists($source)) { - $body = fopen($source, 'r'); - } - - // Prepare the body parameter and remove the source file parameter - if (null !== $body) { - $command->remove($this->sourceParameter); - $command->set($this->bodyParameter, EntityBody::factory($body)); - } else { - throw new InvalidArgumentException("You must specify a non-null value for the {$this->bodyParameter} or {$this->sourceParameter} parameters."); - } - } - } -} diff --git a/lib/aws-sdk/Aws/Common/Client/UserAgentListener.php b/lib/aws-sdk/Aws/Common/Client/UserAgentListener.php deleted file mode 100644 index cc7e312..0000000 --- a/lib/aws-sdk/Aws/Common/Client/UserAgentListener.php +++ /dev/null @@ -1,61 +0,0 @@ - 'onBeforeSend'); - } - - /** - * Adds strings to the User-Agent header using the `ua.append` parameter of a command - * - * @param Event $event Event emitted - */ - public function onBeforeSend(Event $event) - { - $command = $event['command']; - if ($userAgentAppends = $command->get(self::OPTION)) { - $request = $command->getRequest(); - $userAgent = (string) $request->getHeader('User-Agent'); - foreach ((array) $userAgentAppends as $append) { - $append = ' ' . $append; - if (strpos($userAgent, $append) === false) { - $userAgent .= $append; - } - } - $request->setHeader('User-Agent', $userAgent); - } - } -} diff --git a/lib/aws-sdk/Aws/Common/Command/AwsQueryVisitor.php b/lib/aws-sdk/Aws/Common/Command/AwsQueryVisitor.php deleted file mode 100644 index dceaafa..0000000 --- a/lib/aws-sdk/Aws/Common/Command/AwsQueryVisitor.php +++ /dev/null @@ -1,117 +0,0 @@ -fqname = $command->getName(); - $query = array(); - $this->customResolver($value, $param, $query, $param->getWireName()); - $request->addPostFields($query); - } - - /** - * Map nested parameters into the location_key based parameters - * - * @param array $value Value to map - * @param Parameter $param Parameter that holds information about the current key - * @param array $query Built up query string values - * @param string $prefix String to prepend to sub query values - */ - protected function customResolver($value, Parameter $param, array &$query, $prefix = '') - { - switch ($param->getType()) { - case 'object': - $this->resolveObject($param, $value, $prefix, $query); - break; - case 'array': - $this->resolveArray($param, $value, $prefix, $query); - break; - default: - $query[$prefix] = $param->filter($value); - } - } - - /** - * Custom handling for objects - * - * @param Parameter $param Parameter for the object - * @param array $value Value that is set for this parameter - * @param string $prefix Prefix for the resulting key - * @param array $query Query string array passed by reference - */ - protected function resolveObject(Parameter $param, array $value, $prefix, array &$query) - { - // Maps are implemented using additional properties - $hasAdditionalProperties = ($param->getAdditionalProperties() instanceof Parameter); - $additionalPropertyCount = 0; - - foreach ($value as $name => $v) { - if ($subParam = $param->getProperty($name)) { - // if the parameter was found by name as a regular property - $key = $prefix . '.' . $subParam->getWireName(); - $this->customResolver($v, $subParam, $query, $key); - } elseif ($hasAdditionalProperties) { - // Handle map cases like &Attribute.1.Name=&Attribute.1.Value= - $additionalPropertyCount++; - $data = $param->getData(); - $keyName = isset($data['keyName']) ? $data['keyName'] : 'key'; - $valueName = isset($data['valueName']) ? $data['valueName'] : 'value'; - $query["{$prefix}.{$additionalPropertyCount}.{$keyName}"] = $name; - $newPrefix = "{$prefix}.{$additionalPropertyCount}.{$valueName}"; - if (is_array($v)) { - $this->customResolver($v, $param->getAdditionalProperties(), $query, $newPrefix); - } else { - $query[$newPrefix] = $param->filter($v); - } - } - } - } - - /** - * Custom handling for arrays - * - * @param Parameter $param Parameter for the object - * @param array $value Value that is set for this parameter - * @param string $prefix Prefix for the resulting key - * @param array $query Query string array passed by reference - */ - 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; - if (is_array($v) && $items = $param->getItems()) { - $this->customResolver($v, $items, $query, $prefix . '.' . $index); - } else { - $query[$prefix . '.' . $index] = $param->filter($v); - } - } - } -} diff --git a/lib/aws-sdk/Aws/Common/Command/JsonCommand.php b/lib/aws-sdk/Aws/Common/Command/JsonCommand.php deleted file mode 100644 index 15ad593..0000000 --- a/lib/aws-sdk/Aws/Common/Command/JsonCommand.php +++ /dev/null @@ -1,47 +0,0 @@ -request->getBody()) { - $this->request->setBody('{}'); - } - - // Never send the Expect header when interacting with a JSON query service - $this->request->removeHeader('Expect'); - - // Always send JSON requests as a raw string rather than using streams to avoid issues with - // cURL error code 65: "necessary data rewind wasn't possible". - // This could be removed after PHP addresses https://bugs.php.net/bug.php?id=47204 - $this->request->getCurlOptions()->set(CurlHandle::BODY_AS_STRING, true); - } -} diff --git a/lib/aws-sdk/Aws/Common/Command/QueryCommand.php b/lib/aws-sdk/Aws/Common/Command/QueryCommand.php deleted file mode 100644 index 63eb8e8..0000000 --- a/lib/aws-sdk/Aws/Common/Command/QueryCommand.php +++ /dev/null @@ -1,53 +0,0 @@ -getRequestSerializer()->addVisitor('aws.query', self::$queryVisitor); - $this->getResponseParser()->addVisitor('xml', self::$xmlVisitor); - } -} diff --git a/lib/aws-sdk/Aws/Common/Command/XmlResponseLocationVisitor.php b/lib/aws-sdk/Aws/Common/Command/XmlResponseLocationVisitor.php deleted file mode 100644 index ad229fd..0000000 --- a/lib/aws-sdk/Aws/Common/Command/XmlResponseLocationVisitor.php +++ /dev/null @@ -1,74 +0,0 @@ -getOperation(); - if ($operation->getServiceDescription()->getData('resultWrapped')) { - $wrappingNode = $operation->getName() . 'Result'; - if (isset($result[$wrappingNode])) { - $result = $result[$wrappingNode] + $result; - unset($result[$wrappingNode]); - } - } - } - - /** - * Accounts for wrapper nodes - * {@inheritdoc} - */ - public function visit( - CommandInterface $command, - Response $response, - Parameter $param, - &$value, - $context = null - ) { - parent::visit($command, $response, $param, $value, $context); - - // Account for wrapper nodes (e.g. RDS, ElastiCache, etc) - if ($param->getData('wrapper')) { - $wireName = $param->getWireName(); - $value += $value[$wireName]; - unset($value[$wireName]); - } - } - - /** - * Filter used when converting XML maps into associative arrays in service descriptions - * - * @param array $value Value to filter - * @param string $entryName Name of each entry - * @param string $keyName Name of each key - * @param string $valueName Name of each value - * - * @return array Returns the map of the XML data - */ - public static function xmlMap($value, $entryName, $keyName, $valueName) - { - $result = array(); - foreach ($value as $entry) { - $result[$entry[$keyName]] = $entry[$valueName]; - } - - return $result; - } -} diff --git a/lib/aws-sdk/Aws/Common/Credentials/AbstractCredentialsDecorator.php b/lib/aws-sdk/Aws/Common/Credentials/AbstractCredentialsDecorator.php deleted file mode 100644 index b3a1df9..0000000 --- a/lib/aws-sdk/Aws/Common/Credentials/AbstractCredentialsDecorator.php +++ /dev/null @@ -1,136 +0,0 @@ -credentials = $credentials; - } - - /** - * {@inheritdoc} - */ - public function serialize() - { - return $this->credentials->serialize(); - } - - /** - * {@inheritdoc} - */ - public function unserialize($serialized) - { - $this->credentials = new Credentials('', ''); - $this->credentials->unserialize($serialized); - } - - /** - * {@inheritdoc} - */ - public function getAccessKeyId() - { - return $this->credentials->getAccessKeyId(); - } - - /** - * {@inheritdoc} - */ - public function getSecretKey() - { - return $this->credentials->getSecretKey(); - } - - /** - * {@inheritdoc} - */ - public function getSecurityToken() - { - return $this->credentials->getSecurityToken(); - } - - /** - * {@inheritdoc} - */ - public function getExpiration() - { - return $this->credentials->getExpiration(); - } - - /** - * {@inheritdoc} - */ - public function isExpired() - { - return $this->credentials->isExpired(); - } - - /** - * {@inheritdoc} - */ - public function setAccessKeyId($key) - { - $this->credentials->setAccessKeyId($key); - - return $this; - } - - /** - * {@inheritdoc} - */ - public function setSecretKey($secret) - { - $this->credentials->setSecretKey($secret); - - return $this; - } - - /** - * {@inheritdoc} - */ - public function setSecurityToken($token) - { - $this->credentials->setSecurityToken($token); - - return $this; - } - - /** - * {@inheritdoc} - */ - public function setExpiration($timestamp) - { - $this->credentials->setExpiration($timestamp); - - return $this; - } -} diff --git a/lib/aws-sdk/Aws/Common/Credentials/AbstractRefreshableCredentials.php b/lib/aws-sdk/Aws/Common/Credentials/AbstractRefreshableCredentials.php deleted file mode 100644 index 235bf9d..0000000 --- a/lib/aws-sdk/Aws/Common/Credentials/AbstractRefreshableCredentials.php +++ /dev/null @@ -1,76 +0,0 @@ -credentials->isExpired()) { - $this->refresh(); - } - - return $this->credentials->getAccessKeyId(); - } - - /** - * {@inheritdoc} - */ - public function getSecretKey() - { - if ($this->credentials->isExpired()) { - $this->refresh(); - } - - return $this->credentials->getSecretKey(); - } - - /** - * {@inheritdoc} - */ - public function getSecurityToken() - { - if ($this->credentials->isExpired()) { - $this->refresh(); - } - - return $this->credentials->getSecurityToken(); - } - - /** - * {@inheritdoc} - */ - public function serialize() - { - if ($this->credentials->isExpired()) { - $this->refresh(); - } - - return $this->credentials->serialize(); - } - - /** - * Attempt to get new credentials - */ - abstract protected function refresh(); -} diff --git a/lib/aws-sdk/Aws/Common/Credentials/CacheableCredentials.php b/lib/aws-sdk/Aws/Common/Credentials/CacheableCredentials.php deleted file mode 100644 index fbebf78..0000000 --- a/lib/aws-sdk/Aws/Common/Credentials/CacheableCredentials.php +++ /dev/null @@ -1,73 +0,0 @@ -credentials = $credentials; - $this->cache = $cache; - $this->cacheKey = $cacheKey; - } - - /** - * Attempt to get new credentials from cache or from the adapted object - */ - protected function refresh() - { - if (!$cache = $this->cache->fetch($this->cacheKey)) { - // The credentials were not found, so try again and cache if new - $this->credentials->getAccessKeyId(); - if (!$this->credentials->isExpired()) { - // The credentials were updated, so cache them - $this->cache->save($this->cacheKey, $this->credentials, $this->credentials->getExpiration() - time()); - } - } else { - // The credentials were found in cache, so update the adapter object - // if the cached credentials are not expired - if (!$cache->isExpired()) { - $this->credentials->setAccessKeyId($cache->getAccessKeyId()); - $this->credentials->setSecretKey($cache->getSecretKey()); - $this->credentials->setSecurityToken($cache->getSecurityToken()); - $this->credentials->setExpiration($cache->getExpiration()); - } - } - } -} diff --git a/lib/aws-sdk/Aws/Common/Credentials/Credentials.php b/lib/aws-sdk/Aws/Common/Credentials/Credentials.php deleted file mode 100644 index f8ab2f7..0000000 --- a/lib/aws-sdk/Aws/Common/Credentials/Credentials.php +++ /dev/null @@ -1,336 +0,0 @@ - null, - 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 - ); - } - - /** - * Factory method for creating new credentials. This factory method will - * create the appropriate credentials object with appropriate decorators - * based on the passed configuration options. - * - * @param array $config Options to use when instantiating the credentials - * - * @return CredentialsInterface - * @throws InvalidArgumentException If the caching options are invalid - * @throws RuntimeException If using the default cache and APC is disabled - */ - public static function factory($config = array()) - { - // Add default key values - foreach (self::getConfigDefaults() as $key => $value) { - if (!isset($config[$key])) { - $config[$key] = $value; - } - } - - // Start tracking the cache key - $cacheKey = $config[Options::CREDENTIALS_CACHE_KEY]; - - // Create the credentials object - if (!$config[Options::KEY] || !$config[Options::SECRET]) { - $credentials = self::createFromEnvironment($config); - // If no cache key was set, use the crc32 hostname of the server - $cacheKey = $cacheKey ?: 'credentials_' . crc32(gethostname()); - } else { - // Instantiate using short or long term credentials - $credentials = new static( - $config[Options::KEY], - $config[Options::SECRET], - $config[Options::TOKEN], - $config[Options::TOKEN_TTD] - ); - // If no cache key was set, use the access key ID - $cacheKey = $cacheKey ?: 'credentials_' . $config[Options::KEY]; - } - - // Check if the credentials are refreshable, and if so, configure caching - $cache = $config[Options::CREDENTIALS_CACHE]; - if ($cacheKey && $cache) { - $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 - * - * @param string $accessKeyId AWS access key ID - * @param string $secretAccessKey AWS secret access key - * @param string $token Security token to use - * @param int $expiration UNIX timestamp for when credentials expire - */ - public function __construct($accessKeyId, $secretAccessKey, $token = null, $expiration = null) - { - $this->key = trim($accessKeyId); - $this->secret = trim($secretAccessKey); - $this->token = $token; - $this->ttd = $expiration; - } - - public function serialize() - { - return json_encode(array( - Options::KEY => $this->key, - Options::SECRET => $this->secret, - Options::TOKEN => $this->token, - Options::TOKEN_TTD => $this->ttd - )); - } - - public function unserialize($serialized) - { - $data = json_decode($serialized, true); - $this->key = $data[Options::KEY]; - $this->secret = $data[Options::SECRET]; - $this->token = $data[Options::TOKEN]; - $this->ttd = $data[Options::TOKEN_TTD]; - } - - public function getAccessKeyId() - { - return $this->key; - } - - public function getSecretKey() - { - return $this->secret; - } - - public function getSecurityToken() - { - return $this->token; - } - - public function getExpiration() - { - return $this->ttd; - } - - public function isExpired() - { - return $this->ttd !== null && time() >= $this->ttd; - } - - public function setAccessKeyId($key) - { - $this->key = $key; - - return $this; - } - - public function setSecretKey($secret) - { - $this->secret = $secret; - - return $this; - } - - public function setSecurityToken($token) - { - $this->token = $token; - - return $this; - } - - 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/lib/aws-sdk/Aws/Common/Credentials/CredentialsInterface.php b/lib/aws-sdk/Aws/Common/Credentials/CredentialsInterface.php deleted file mode 100644 index dd43037..0000000 --- a/lib/aws-sdk/Aws/Common/Credentials/CredentialsInterface.php +++ /dev/null @@ -1,96 +0,0 @@ -credentials = $credentials; - $this->client = $client ?: InstanceMetadataClient::factory(); - } - - /** - * Attempt to get new credentials from the instance profile - * - * @throws InstanceProfileCredentialsException On error - */ - protected function refresh() - { - $credentials = $this->client->getInstanceProfileCredentials(); - // 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() - 1800); - } -} diff --git a/lib/aws-sdk/Aws/Common/Enum.php b/lib/aws-sdk/Aws/Common/Enum.php deleted file mode 100644 index 7f4d356..0000000 --- a/lib/aws-sdk/Aws/Common/Enum.php +++ /dev/null @@ -1,55 +0,0 @@ -getConstants(); - } - - return self::$cache[$class]; - } -} diff --git a/lib/aws-sdk/Aws/Common/Enum/ClientOptions.php b/lib/aws-sdk/Aws/Common/Enum/ClientOptions.php deleted file mode 100644 index 4048cfc..0000000 --- a/lib/aws-sdk/Aws/Common/Enum/ClientOptions.php +++ /dev/null @@ -1,162 +0,0 @@ -factory = $factory; - } - - /** - * {@inheritdoc} - */ - public static function getSubscribedEvents() - { - return array('request.error' => array('onRequestError', -1)); - } - - /** - * Throws a more meaningful request exception if available - * - * @param Event $event Event emitted - */ - public function onRequestError(Event $event) - { - $e = $this->factory->fromResponse($event['request'], $event['response']); - $event->stopPropagation(); - throw $e; - } -} diff --git a/lib/aws-sdk/Aws/Common/Exception/InstanceProfileCredentialsException.php b/lib/aws-sdk/Aws/Common/Exception/InstanceProfileCredentialsException.php deleted file mode 100644 index fb1dcf1..0000000 --- a/lib/aws-sdk/Aws/Common/Exception/InstanceProfileCredentialsException.php +++ /dev/null @@ -1,50 +0,0 @@ -statusCode = $code; - } - - /** - * Get the error response code from the service - * - * @return string|null - */ - public function getStatusCode() - { - return $this->statusCode; - } -} diff --git a/lib/aws-sdk/Aws/Common/Exception/InvalidArgumentException.php b/lib/aws-sdk/Aws/Common/Exception/InvalidArgumentException.php deleted file mode 100644 index 4360a00..0000000 --- a/lib/aws-sdk/Aws/Common/Exception/InvalidArgumentException.php +++ /dev/null @@ -1,22 +0,0 @@ -getMessage(), - 0, - $exception - ); - - $this->state = $state; - } - - /** - * Get the state of the transfer - * - * @return TransferStateInterface - */ - public function getState() - { - return $this->state; - } -} diff --git a/lib/aws-sdk/Aws/Common/Exception/NamespaceExceptionFactory.php b/lib/aws-sdk/Aws/Common/Exception/NamespaceExceptionFactory.php deleted file mode 100644 index 6489069..0000000 --- a/lib/aws-sdk/Aws/Common/Exception/NamespaceExceptionFactory.php +++ /dev/null @@ -1,103 +0,0 @@ -parser = $parser; - $this->baseNamespace = $baseNamespace; - $this->defaultException = $defaultException; - } - - /** - * {@inheritdoc} - */ - public function fromResponse(RequestInterface $request, Response $response) - { - $parts = $this->parser->parse($request, $response); - - // Removing leading 'AWS.' and embedded periods - $className = $this->baseNamespace . '\\' . str_replace(array('AWS.', '.'), '', $parts['code']); - if (substr($className, -9) !== 'Exception') { - $className .= 'Exception'; - } - - $className = class_exists($className) ? $className : $this->defaultException; - - return $this->createException($className, $request, $response, $parts); - } - - /** - * Create an prepare an exception object - * - * @param string $className Name of the class to create - * @param RequestInterface $request Request - * @param Response $response Response received - * @param array $parts Parsed exception data - * - * @return \Exception - */ - protected function createException($className, RequestInterface $request, Response $response, array $parts) - { - $class = new $className($parts['message']); - - if ($class instanceof ServiceResponseException) { - $class->setExceptionCode($parts['code']); - $class->setExceptionType($parts['type']); - $class->setResponse($response); - $class->setRequest($request); - $class->setRequestId($parts['request_id']); - } - - return $class; - } -} diff --git a/lib/aws-sdk/Aws/Common/Exception/OutOfBoundsException.php b/lib/aws-sdk/Aws/Common/Exception/OutOfBoundsException.php deleted file mode 100644 index 6738c0c..0000000 --- a/lib/aws-sdk/Aws/Common/Exception/OutOfBoundsException.php +++ /dev/null @@ -1,22 +0,0 @@ - null, - 'message' => null, - 'type' => $response->isClientError() ? 'client' : 'server', - 'request_id' => (string) $response->getHeader('x-amzn-RequestId'), - 'parsed' => null - ); - - // Parse the json and normalize key casings - if (null !== $json = json_decode($response->getBody(true), true)) { - $data['parsed'] = array_change_key_case($json); - } - - // Do additional, protocol-specific parsing and return the result - $data = $this->doParse($data, $response); - - // Remove "Fault" suffix from exception names - if (isset($data['code']) && strpos($data['code'], 'Fault')) { - $data['code'] = preg_replace('/^([a-zA-Z]+)Fault$/', '$1', $data['code']); - } - - return $data; - } - - /** - * Pull relevant exception data out of the parsed json - * - * @param array $data The exception data - * @param Response $response The response from the service containing the error - * - * @return array - */ - abstract protected function doParse(array $data, Response $response); -} diff --git a/lib/aws-sdk/Aws/Common/Exception/Parser/DefaultXmlExceptionParser.php b/lib/aws-sdk/Aws/Common/Exception/Parser/DefaultXmlExceptionParser.php deleted file mode 100644 index 9656760..0000000 --- a/lib/aws-sdk/Aws/Common/Exception/Parser/DefaultXmlExceptionParser.php +++ /dev/null @@ -1,109 +0,0 @@ - null, - 'message' => null, - 'type' => $response->isClientError() ? 'client' : 'server', - 'request_id' => null, - 'parsed' => null - ); - - $body = $response->getBody(true); - - if (!$body) { - $this->parseHeaders($request, $response, $data); - return $data; - } - - try { - $xml = new \SimpleXMLElement($body); - $this->parseBody($xml, $data); - return $data; - } catch (\Exception $e) { - // Gracefully handle parse errors. This could happen when the - // server responds with a non-XML response (e.g., private beta - // services). - $data['code'] = 'PhpInternalXmlParseError'; - $data['message'] = 'A non-XML response was received'; - return $data; - } - } - - /** - * Parses additional exception information from the response headers - * - * @param RequestInterface $request Request that was issued - * @param Response $response The response from the request - * @param array $data The current set of exception data - */ - protected function parseHeaders(RequestInterface $request, Response $response, array &$data) - { - $data['message'] = $response->getStatusCode() . ' ' . $response->getReasonPhrase(); - if ($requestId = $response->getHeader('x-amz-request-id')) { - $data['request_id'] = $requestId; - $data['message'] .= " (Request-ID: $requestId)"; - } - } - - /** - * Parses additional exception information from the response body - * - * @param \SimpleXMLElement $body The response body as XML - * @param array $data The current set of exception data - */ - protected function parseBody(\SimpleXMLElement $body, array &$data) - { - $data['parsed'] = $body; - - $namespaces = $body->getDocNamespaces(); - if (isset($namespaces[''])) { - // Account for the default namespace being defined and PHP not being able to handle it :( - $body->registerXPathNamespace('ns', $namespaces['']); - $prefix = 'ns:'; - } else { - $prefix = ''; - } - - if ($tempXml = $body->xpath("//{$prefix}Code[1]")) { - $data['code'] = (string) $tempXml[0]; - } - - if ($tempXml = $body->xpath("//{$prefix}Message[1]")) { - $data['message'] = (string) $tempXml[0]; - } - - $tempXml = $body->xpath("//{$prefix}RequestId[1]"); - if (empty($tempXml)) { - $tempXml = $body->xpath("//{$prefix}RequestID[1]"); - } - if (isset($tempXml[0])) { - $data['request_id'] = (string) $tempXml[0]; - } - } -} diff --git a/lib/aws-sdk/Aws/Common/Exception/Parser/ExceptionParserInterface.php b/lib/aws-sdk/Aws/Common/Exception/Parser/ExceptionParserInterface.php deleted file mode 100644 index 1b25d96..0000000 --- a/lib/aws-sdk/Aws/Common/Exception/Parser/ExceptionParserInterface.php +++ /dev/null @@ -1,42 +0,0 @@ -getHeader('x-amzn-ErrorType')) { - $data['code'] = substr($code, 0, strpos($code, ':')); - } - - return $data; - } -} diff --git a/lib/aws-sdk/Aws/Common/Exception/RequiredExtensionNotLoadedException.php b/lib/aws-sdk/Aws/Common/Exception/RequiredExtensionNotLoadedException.php deleted file mode 100644 index c4a072c..0000000 --- a/lib/aws-sdk/Aws/Common/Exception/RequiredExtensionNotLoadedException.php +++ /dev/null @@ -1,22 +0,0 @@ -exceptionCode = $code; - } - - /** - * Get the exception code - * - * @return string|null - */ - public function getExceptionCode() - { - return $this->exceptionCode; - } - - /** - * Set the exception type - * - * @param string $type Exception type - */ - public function setExceptionType($type) - { - $this->exceptionType = $type; - } - - /** - * Get the exception type (one of client or server) - * - * @return string|null - */ - public function getExceptionType() - { - return $this->exceptionType; - } - - /** - * Set the request ID - * - * @param string $id Request ID - */ - public function setRequestId($id) - { - $this->requestId = $id; - } - - /** - * Get the Request ID - * - * @return string|null - */ - public function getRequestId() - { - return $this->requestId; - } - - /** - * Set the associated response - * - * @param Response $response Response - */ - public function setResponse(Response $response) - { - $this->response = $response; - } - - /** - * Get the associated response object - * - * @return Response|null - */ - public function getResponse() - { - return $this->response; - } - - /** - * Set the associated request - * - * @param RequestInterface $request - */ - public function setRequest(RequestInterface $request) - { - $this->request = $request; - } - - /** - * Get the associated request object - * - * @return RequestInterface|null - */ - public function getRequest() - { - return $this->request; - } - - /** - * Get the status code of the response - * - * @return int|null - */ - public function getStatusCode() - { - return $this->response ? $this->response->getStatusCode() : null; - } - - /** - * Cast to a string - * - * @return string - */ - public function __toString() - { - $message = get_class($this) . ': ' - . 'AWS Error Code: ' . $this->getExceptionCode() . ', ' - . 'Status Code: ' . $this->getStatusCode() . ', ' - . 'AWS Request ID: ' . $this->getRequestId() . ', ' - . 'AWS Error Type: ' . $this->getExceptionType() . ', ' - . 'AWS Error Message: ' . $this->getMessage(); - - // Add the User-Agent if available - if ($this->request) { - $message .= ', ' . 'User-Agent: ' . $this->request->getHeader('User-Agent'); - } - - 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/lib/aws-sdk/Aws/Common/Exception/TransferException.php b/lib/aws-sdk/Aws/Common/Exception/TransferException.php deleted file mode 100644 index 47aa80d..0000000 --- a/lib/aws-sdk/Aws/Common/Exception/TransferException.php +++ /dev/null @@ -1,24 +0,0 @@ -getConfig() as $service) { - if (isset($service['alias'], $service['class'])) { - $facadeClass = __NAMESPACE__ . '\\' . $service['alias']; - $facadeAlias = ltrim($targetNamespace . '\\' . $service['alias'], '\\'); - if (!class_exists($facadeAlias) && class_exists($facadeClass)) { - // @codeCoverageIgnoreStart - class_alias($facadeClass, $facadeAlias); - // @codeCoverageIgnoreEnd - } - } - } - } - - /** - * Returns the instance of the client that the facade operates on - * - * @return \Aws\Common\Client\AwsClientInterface - */ - public static function getClient() - { - return self::$serviceBuilder->get(static::getServiceBuilderKey()); - } - - public static function __callStatic($method, $args) - { - return call_user_func_array(array(self::getClient(), $method), $args); - } -} diff --git a/lib/aws-sdk/Aws/Common/Facade/FacadeInterface.php b/lib/aws-sdk/Aws/Common/Facade/FacadeInterface.php deleted file mode 100644 index c00c32d..0000000 --- a/lib/aws-sdk/Aws/Common/Facade/FacadeInterface.php +++ /dev/null @@ -1,34 +0,0 @@ -context = hash_init($algorithm); - } - - /** - * {@inheritdoc} - */ - public function addData($data) - { - if (!$this->context) { - throw new LogicException('You may not add more data to a finalized chunk hash.'); - } - - hash_update($this->context, $data); - - return $this; - } - - /** - * {@inheritdoc} - */ - public function getHash($returnBinaryForm = false) - { - if (!$this->hash) { - $this->hashRaw = hash_final($this->context, true); - $this->hash = HashUtils::binToHex($this->hashRaw); - $this->context = null; - } - - return $returnBinaryForm ? $this->hashRaw : $this->hash; - } - - /** - * {@inheritdoc} - */ - public function __clone() - { - if ($this->context) { - $this->context = hash_copy($this->context); - } - } -} diff --git a/lib/aws-sdk/Aws/Common/Hash/ChunkHashInterface.php b/lib/aws-sdk/Aws/Common/Hash/ChunkHashInterface.php deleted file mode 100644 index 5fcf9a5..0000000 --- a/lib/aws-sdk/Aws/Common/Hash/ChunkHashInterface.php +++ /dev/null @@ -1,52 +0,0 @@ -checksums = $inBinaryForm ? $checksums : array_map('Aws\Common\Hash\HashUtils::hexToBin', $checksums); - - // Pre-calculate hash - $treeHash->getHash(); - - return $treeHash; - } - - /** - * Create a tree hash from a content body - * - * @param string|resource|EntityBody $content Content to create a tree hash for - * @param string $algorithm A valid hash algorithm name as returned by `hash_algos()` - * - * @return TreeHash - */ - public static function fromContent($content, $algorithm = self::DEFAULT_ALGORITHM) - { - $treeHash = new self($algorithm); - - // Read the data in 1MB chunks and add to tree hash - $content = EntityBody::factory($content); - while ($data = $content->read(Size::MB)) { - $treeHash->addData($data); - } - - // Pre-calculate hash - $treeHash->getHash(); - - return $treeHash; - } - - /** - * Validates an entity body with a tree hash checksum - * - * @param string|resource|EntityBody $content Content to create a tree hash for - * @param string $checksum The checksum to use for validation - * @param string $algorithm A valid hash algorithm name as returned by `hash_algos()` - * - * @return bool - */ - public static function validateChecksum($content, $checksum, $algorithm = self::DEFAULT_ALGORITHM) - { - $treeHash = self::fromContent($content, $algorithm); - - return ($checksum === $treeHash->getHash()); - } - - /** - * {@inheritdoc} - */ - public function __construct($algorithm = self::DEFAULT_ALGORITHM) - { - HashUtils::validateAlgorithm($algorithm); - $this->algorithm = $algorithm; - } - - /** - * {@inheritdoc} - * @throws LogicException if the root tree hash is already calculated - * @throws InvalidArgumentException if the data is larger than 1MB - */ - public function addData($data) - { - // Error if hash is already calculated - if ($this->hash) { - throw new LogicException('You may not add more data to a finalized tree hash.'); - } - - // Make sure that only 1MB chunks or smaller get passed in - if (strlen($data) > Size::MB) { - throw new InvalidArgumentException('The chunk of data added is too large for tree hashing.'); - } - - // Store the raw hash of this data segment - $this->checksums[] = hash($this->algorithm, $data, true); - - return $this; - } - - /** - * Add a checksum to the tree hash directly - * - * @param string $checksum The checksum to add - * @param bool $inBinaryForm Whether or not the checksum is already in binary form - * - * @return self - * @throws LogicException if the root tree hash is already calculated - */ - public function addChecksum($checksum, $inBinaryForm = false) - { - // Error if hash is already calculated - if ($this->hash) { - throw new LogicException('You may not add more checksums to a finalized tree hash.'); - } - - // Convert the checksum to binary form if necessary - $this->checksums[] = $inBinaryForm ? $checksum : HashUtils::hexToBin($checksum); - - return $this; - } - - /** - * {@inheritdoc} - */ - public function getHash($returnBinaryForm = false) - { - if (!$this->hash) { - // Perform hashes up the tree to arrive at the root checksum of the tree hash - $hashes = $this->checksums; - while (count($hashes) > 1) { - $sets = array_chunk($hashes, 2); - $hashes = array(); - foreach ($sets as $set) { - $hashes[] = (count($set) === 1) ? $set[0] : hash($this->algorithm, $set[0] . $set[1], true); - } - } - - $this->hashRaw = $hashes[0]; - $this->hash = HashUtils::binToHex($this->hashRaw); - } - - return $returnBinaryForm ? $this->hashRaw : $this->hash; - } - - /** - * @return array Array of raw checksums composing the tree hash - */ - public function getChecksums() - { - return $this->checksums; - } -} diff --git a/lib/aws-sdk/Aws/Common/HostNameUtils.php b/lib/aws-sdk/Aws/Common/HostNameUtils.php deleted file mode 100644 index 4b791aa..0000000 --- a/lib/aws-sdk/Aws/Common/HostNameUtils.php +++ /dev/null @@ -1,85 +0,0 @@ -getHost(), -14) != '.amazonaws.com') { - return self::DEFAULT_REGION; - } - - $serviceAndRegion = substr($url->getHost(), 0, -14); - // Special handling for S3 regions - $separator = strpos($serviceAndRegion, 's3') === 0 ? '-' : '.'; - $separatorPos = strpos($serviceAndRegion, $separator); - - // If don't detect a separator, then return the default region - if ($separatorPos === false) { - return self::DEFAULT_REGION; - } - - $region = substr($serviceAndRegion, $separatorPos + 1); - - // All GOV regions currently use the default GOV region - if ($region == 'us-gov') { - return self::DEFAULT_GOV_REGION; - } - - return $region; - } - - /** - * Parse the AWS service name from a URL - * - * @param Url $url HTTP URL - * - * @return string Returns a service name (or empty string) - * @link http://docs.aws.amazon.com/general/latest/gr/rande.html - */ - public static function parseServiceName(Url $url) - { - // The service name is the first part of the host - $parts = explode('.', $url->getHost(), 2); - - // Special handling for S3 - if (stripos($parts[0], 's3') === 0) { - return 's3'; - } - - return $parts[0]; - } -} diff --git a/lib/aws-sdk/Aws/Common/InstanceMetadata/InstanceMetadataClient.php b/lib/aws-sdk/Aws/Common/InstanceMetadata/InstanceMetadataClient.php deleted file mode 100644 index 229be15..0000000 --- a/lib/aws-sdk/Aws/Common/InstanceMetadata/InstanceMetadataClient.php +++ /dev/null @@ -1,102 +0,0 @@ - 'http://169.254.169.254/{version}/', - 'version' => 'latest', - 'request.options' => array( - 'connect_timeout' => 5, - 'timeout' => 10 - ) - ), array('base_url', 'version')); - - return new self($config); - } - - /** - * Constructor override - */ - public function __construct(Collection $config) - { - $this->setConfig($config); - $this->setBaseUrl($config->get(Options::BASE_URL)); - $this->defaultHeaders = new Collection(); - $this->setRequestFactory(RequestFactory::getInstance()); - } - - /** - * Get instance profile credentials - * - * @return Credentials - * @throws InstanceProfileCredentialsException - */ - public function getInstanceProfileCredentials() - { - try { - $request = $this->get('meta-data/iam/security-credentials/'); - $credentials = trim($request->send()->getBody(true)); - $result = $this->get("meta-data/iam/security-credentials/{$credentials}")->send()->json(); - } catch (\Exception $e) { - $message = sprintf('Error retrieving credentials from the instance profile metadata server. When you are' - . ' not running inside of Amazon EC2, you must provide your AWS access key ID and secret access key in' - . ' the "key" and "secret" options when creating a client or provide an instantiated' - . ' Aws\\Common\\Credentials\\CredentialsInterface object. (%s)', $e->getMessage()); - throw new InstanceProfileCredentialsException($message, $e->getCode()); - } - - // Ensure that the status code was successful - if ($result['Code'] !== 'Success') { - $e = new InstanceProfileCredentialsException('Unexpected response code: ' . $result['Code']); - $e->setStatusCode($result['Code']); - throw $e; - } - - return new Credentials( - $result['AccessKeyId'], - $result['SecretAccessKey'], - $result['Token'], - strtotime($result['Expiration']) - ); - } -} diff --git a/lib/aws-sdk/Aws/Common/InstanceMetadata/Waiter/ServiceAvailable.php b/lib/aws-sdk/Aws/Common/InstanceMetadata/Waiter/ServiceAvailable.php deleted file mode 100644 index ac305c3..0000000 --- a/lib/aws-sdk/Aws/Common/InstanceMetadata/Waiter/ServiceAvailable.php +++ /dev/null @@ -1,50 +0,0 @@ -client->get(); - try { - $request->getCurlOptions()->set(CURLOPT_CONNECTTIMEOUT, 10) - ->set(CURLOPT_TIMEOUT, 10); - $request->send(); - - return true; - } catch (CurlException $e) { - return false; - } - } -} diff --git a/lib/aws-sdk/Aws/Common/Iterator/AwsResourceIterator.php b/lib/aws-sdk/Aws/Common/Iterator/AwsResourceIterator.php deleted file mode 100644 index cdd8119..0000000 --- a/lib/aws-sdk/Aws/Common/Iterator/AwsResourceIterator.php +++ /dev/null @@ -1,169 +0,0 @@ -lastResult; - } - - /** - * {@inheritdoc} - * This AWS specific version of the resource iterator provides a default implementation of the typical AWS iterator - * process. It relies on configuration and extension to implement the operation-specific logic of handling results - * and nextTokens. This method will loop until resources are acquired or there are no more iterations available. - */ - protected function sendRequest() - { - do { - // Prepare the request including setting the next token - $this->prepareRequest(); - if ($this->nextToken) { - $this->applyNextToken(); - } - - // Execute the request and handle the results - $this->command->add(Ua::OPTION, Ua::ITERATOR); - $this->lastResult = $this->command->getResult(); - $resources = $this->handleResults($this->lastResult); - $this->determineNextToken($this->lastResult); - - // If no resources collected, prepare to reiterate before yielding - if ($reiterate = empty($resources) && $this->nextToken) { - $this->command = clone $this->originalCommand; - } - } while ($reiterate); - - return $resources; - } - - protected function prepareRequest() - { - // Get the limit parameter key to set - $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) { - $realLimit = min($limit, $pageSize); - $this->command->set($limitKey, $realLimit); - } - } - } - - protected function handleResults(Model $result) - { - $results = array(); - - // Get the result key that contains the results - if ($resultKey = $this->get('result_key')) { - $results = $this->getValueFromResult($result, $resultKey) ?: array(); - } - - return $results; - } - - protected function applyNextToken() - { - // Get the token parameter key to set - 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)) { - foreach (array_combine($tokenParam, $this->nextToken) as $param => $token) { - $this->command->set($param, $token); - } - } else { - throw new RuntimeException('The definition of the iterator\'s token parameter and the actual token ' - . 'value are not compatible.'); - } - } else { - $this->command->set($tokenParam, $this->nextToken); - } - } - } - - protected function determineNextToken(Model $result) - { - $this->nextToken = null; - - // 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('output_token')) { - // Get the next token's value. Works with multi-value tokens - 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/lib/aws-sdk/Aws/Common/Iterator/AwsResourceIteratorFactory.php b/lib/aws-sdk/Aws/Common/Iterator/AwsResourceIteratorFactory.php deleted file mode 100644 index ce668a2..0000000 --- a/lib/aws-sdk/Aws/Common/Iterator/AwsResourceIteratorFactory.php +++ /dev/null @@ -1,106 +0,0 @@ - null, - 'output_token' => null, - 'limit_key' => null, - 'result_key' => null, - 'more_results' => null, - ); - - /** - * @var array Legacy configuration options mapped to their new names - */ - private static $legacyConfigOptions = array( - 'token_param' => 'input_token', - 'token_key' => 'output_token', - 'limit_param' => 'limit_key', - 'more_key' => 'more_results', - ); - - /** - * @var array Iterator configuration for each iterable operation - */ - protected $config; - - /** - * @var ResourceIteratorFactoryInterface Another factory that will be used first to instantiate the iterator - */ - protected $primaryIteratorFactory; - - /** - * @param array $config An array of configuration values for the factory - * @param ResourceIteratorFactoryInterface $primaryIteratorFactory Another factory to use for chain of command - */ - public function __construct(array $config, ResourceIteratorFactoryInterface $primaryIteratorFactory = null) - { - $this->primaryIteratorFactory = $primaryIteratorFactory; - $this->config = array(); - foreach ($config as $name => $operation) { - $this->config[$name] = $operation + self::$defaultIteratorConfig; - } - } - - public function build(CommandInterface $command, array $options = array()) - { - // Get the configuration data for the command - $commandName = $command->getName(); - $commandSupported = isset($this->config[$commandName]); - $options = $this->translateLegacyConfigOptions($options); - $options += $commandSupported ? $this->config[$commandName] : array(); - - // 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 (!$commandSupported) { - throw new InvalidArgumentException("Iterator was not found for {$commandName}."); - } else { - // 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()]); - } - } - - /** - * @param array $config The config for a single operation - * - * @return array The modified config with legacy options translated - */ - private function translateLegacyConfigOptions($config) - { - foreach (self::$legacyConfigOptions as $legacyOption => $newOption) { - if (isset($config[$legacyOption])) { - $config[$newOption] = $config[$legacyOption]; - unset($config[$legacyOption]); - } - } - - return $config; - } -} diff --git a/lib/aws-sdk/Aws/Common/Model/MultipartUpload/AbstractTransfer.php b/lib/aws-sdk/Aws/Common/Model/MultipartUpload/AbstractTransfer.php deleted file mode 100644 index 751b558..0000000 --- a/lib/aws-sdk/Aws/Common/Model/MultipartUpload/AbstractTransfer.php +++ /dev/null @@ -1,270 +0,0 @@ -client = $client; - $this->state = $state; - $this->source = $source; - $this->options = $options; - - $this->init(); - - $this->partSize = $this->calculatePartSize(); - } - - public function __invoke() - { - return $this->upload(); - } - - /** - * {@inheritdoc} - */ - public static function getAllEvents() - { - return array( - self::BEFORE_PART_UPLOAD, - self::AFTER_UPLOAD, - self::BEFORE_PART_UPLOAD, - self::AFTER_PART_UPLOAD, - self::AFTER_ABORT, - self::AFTER_COMPLETE - ); - } - - /** - * {@inheritdoc} - */ - public function abort() - { - $command = $this->getAbortCommand(); - $result = $command->getResult(); - - $this->state->setAborted(true); - $this->stop(); - $this->dispatch(self::AFTER_ABORT, $this->getEventData($command)); - - return $result; - } - - /** - * {@inheritdoc} - */ - public function stop() - { - $this->stopped = true; - - return $this->state; - } - - /** - * {@inheritdoc} - */ - public function getState() - { - return $this->state; - } - - /** - * Get the array of options associated with the transfer - * - * @return array - */ - public function getOptions() - { - return $this->options; - } - - /** - * Set an option on the transfer - * - * @param string $option Name of the option - * @param mixed $value Value to set - * - * @return self - */ - public function setOption($option, $value) - { - $this->options[$option] = $value; - - return $this; - } - - /** - * Get the source body of the upload - * - * @return EntityBodyInterface - */ - public function getSource() - { - return $this->source; - } - - /** - * {@inheritdoc} - * @throws MultipartUploadException when an error is encountered. Use getLastException() to get more information. - * @throws RuntimeException when attempting to upload an aborted transfer - */ - public function upload() - { - if ($this->state->isAborted()) { - throw new RuntimeException('The transfer has been aborted and cannot be uploaded'); - } - - $this->stopped = false; - $eventData = $this->getEventData(); - $this->dispatch(self::BEFORE_UPLOAD, $eventData); - - try { - $this->transfer(); - $this->dispatch(self::AFTER_UPLOAD, $eventData); - - if ($this->stopped) { - return null; - } else { - $result = $this->complete(); - $this->dispatch(self::AFTER_COMPLETE, $eventData); - } - } catch (\Exception $e) { - throw new MultipartUploadException($this->state, $e); - } - - return $result; - } - - /** - * Get an array used for event notifications - * - * @param OperationCommand $command Command to include in event data - * - * @return array - */ - protected function getEventData(OperationCommand $command = null) - { - $data = array( - 'transfer' => $this, - 'source' => $this->source, - 'options' => $this->options, - 'client' => $this->client, - 'part_size' => $this->partSize, - 'state' => $this->state - ); - - if ($command) { - $data['command'] = $command; - } - - return $data; - } - - /** - * Hook to initialize the transfer - */ - protected function init() {} - - /** - * Determine the upload part size based on the size of the source data and - * taking into account the acceptable minimum and maximum part sizes. - * - * @return int The part size - */ - abstract protected function calculatePartSize(); - - /** - * Complete the multipart upload - * - * @return Model Returns the result of the complete multipart upload command - */ - abstract protected function complete(); - - /** - * Hook to implement in subclasses to perform the actual transfer - */ - abstract protected function transfer(); - - /** - * Fetches the abort command fom the concrete implementation - * - * @return OperationCommand - */ - abstract protected function getAbortCommand(); -} diff --git a/lib/aws-sdk/Aws/Common/Model/MultipartUpload/AbstractTransferState.php b/lib/aws-sdk/Aws/Common/Model/MultipartUpload/AbstractTransferState.php deleted file mode 100644 index 06d6c84..0000000 --- a/lib/aws-sdk/Aws/Common/Model/MultipartUpload/AbstractTransferState.php +++ /dev/null @@ -1,164 +0,0 @@ -uploadId = $uploadId; - } - - /** - * {@inheritdoc} - */ - public function getUploadId() - { - return $this->uploadId; - } - - /** - * Get a data value from the transfer state's uploadId - * - * @param string $key Key to retrieve (e.g. Bucket, Key, UploadId, etc) - * - * @return string|null - */ - public function getFromId($key) - { - $params = $this->uploadId->toParams(); - - return isset($params[$key]) ? $params[$key] : null; - } - - /** - * {@inheritdoc} - */ - public function getPart($partNumber) - { - return isset($this->parts[$partNumber]) ? $this->parts[$partNumber] : null; - } - - /** - * {@inheritdoc} - */ - public function addPart(UploadPartInterface $part) - { - $partNumber = $part->getPartNumber(); - $this->parts[$partNumber] = $part; - - return $this; - } - - /** - * {@inheritdoc} - */ - public function hasPart($partNumber) - { - return isset($this->parts[$partNumber]); - } - - /** - * {@inheritdoc} - */ - public function getPartNumbers() - { - return array_keys($this->parts); - } - - /** - * {@inheritdoc} - */ - public function setAborted($aborted) - { - $this->aborted = (bool) $aborted; - - return $this; - } - - /** - * {@inheritdoc} - */ - public function isAborted() - { - return $this->aborted; - } - - /** - * {@inheritdoc} - */ - public function count() - { - return count($this->parts); - } - - /** - * {@inheritdoc} - */ - public function getIterator() - { - return new \ArrayIterator($this->parts); - } - - /** - * {@inheritdoc} - */ - public function serialize() - { - return serialize(get_object_vars($this)); - } - - /** - * {@inheritdoc} - */ - public function unserialize($serialized) - { - $data = unserialize($serialized); - foreach (get_object_vars($this) as $property => $oldValue) { - if (array_key_exists($property, $data)) { - $this->{$property} = $data[$property]; - } else { - throw new RuntimeException("The {$property} property could be restored during unserialization."); - } - } - } -} diff --git a/lib/aws-sdk/Aws/Common/Model/MultipartUpload/AbstractUploadBuilder.php b/lib/aws-sdk/Aws/Common/Model/MultipartUpload/AbstractUploadBuilder.php deleted file mode 100644 index 8690d5c..0000000 --- a/lib/aws-sdk/Aws/Common/Model/MultipartUpload/AbstractUploadBuilder.php +++ /dev/null @@ -1,148 +0,0 @@ -client = $client; - - return $this; - } - - /** - * Set the state of the upload. This is useful for resuming from a previously started multipart upload. - * You must use a local file stream as the data source if you wish to resume from a previous upload. - * - * @param TransferStateInterface|string $state Pass a TransferStateInterface object or the ID of the initiated - * multipart upload. When an ID is passed, the builder will create a - * state object using the data from a ListParts API response. - * - * @return $this - */ - public function resumeFrom($state) - { - $this->state = $state; - - return $this; - } - - /** - * Set the data source of the transfer - * - * @param resource|string|EntityBody $source Source of the transfer. Pass a string to transfer from a file on disk. - * You can also stream from a resource returned from fopen or a Guzzle - * {@see EntityBody} object. - * - * @return $this - * @throws InvalidArgumentException when the source cannot be found or opened - */ - public function setSource($source) - { - // Use the contents of a file as the data source - if (is_string($source)) { - if (!file_exists($source)) { - throw new InvalidArgumentException("File does not exist: {$source}"); - } - // Clear the cache so that we send accurate file sizes - clearstatcache(true, $source); - $source = fopen($source, 'r'); - } - - $this->source = EntityBody::factory($source); - - if ($this->source->isSeekable() && $this->source->getSize() == 0) { - throw new InvalidArgumentException('Empty body provided to upload builder'); - } - - return $this; - } - - /** - * Specify the headers to set on the upload - * - * @param array $headers Headers to add to the uploaded object - * - * @return $this - */ - public function setHeaders(array $headers) - { - $this->headers = $headers; - - return $this; - } - - /** - * Build the appropriate uploader based on the builder options - * - * @return TransferInterface - */ - abstract public function build(); - - /** - * Initiate the multipart upload - * - * @return TransferStateInterface - */ - abstract protected function initiateMultipartUpload(); -} diff --git a/lib/aws-sdk/Aws/Common/Model/MultipartUpload/AbstractUploadId.php b/lib/aws-sdk/Aws/Common/Model/MultipartUpload/AbstractUploadId.php deleted file mode 100644 index da79521..0000000 --- a/lib/aws-sdk/Aws/Common/Model/MultipartUpload/AbstractUploadId.php +++ /dev/null @@ -1,89 +0,0 @@ -loadData($data); - - return $uploadId; - } - - /** - * {@inheritdoc} - */ - public function toParams() - { - return $this->data; - } - - /** - * {@inheritdoc} - */ - public function serialize() - { - return serialize($this->data); - } - - /** - * {@inheritdoc} - */ - public function unserialize($serialized) - { - $this->loadData(unserialize($serialized)); - } - - /** - * Loads an array of data into the UploadId by extracting only the needed keys - * - * @param array $data Data to load - * - * @throws InvalidArgumentException if a required key is missing - */ - protected function loadData($data) - { - $data = array_replace(static::$expectedValues, array_intersect_key($data, static::$expectedValues)); - foreach ($data as $key => $value) { - if (isset($data[$key])) { - $this->data[$key] = $data[$key]; - } else { - throw new InvalidArgumentException("A required key [$key] was missing from the UploadId."); - } - } - } -} diff --git a/lib/aws-sdk/Aws/Common/Model/MultipartUpload/AbstractUploadPart.php b/lib/aws-sdk/Aws/Common/Model/MultipartUpload/AbstractUploadPart.php deleted file mode 100644 index 1cf4c6d..0000000 --- a/lib/aws-sdk/Aws/Common/Model/MultipartUpload/AbstractUploadPart.php +++ /dev/null @@ -1,101 +0,0 @@ -loadData($data); - - return $part; - } - - /** - * {@inheritdoc} - */ - public function getPartNumber() - { - return $this->partNumber; - } - - /** - * {@inheritdoc} - */ - public function toArray() - { - $array = array(); - foreach (static::$keyMap as $key => $property) { - $array[$key] = $this->{$property}; - } - - return $array; - } - - /** - * {@inheritdoc} - */ - public function serialize() - { - return serialize($this->toArray()); - } - - /** - * {@inheritdoc} - */ - public function unserialize($serialized) - { - $this->loadData(unserialize($serialized)); - } - - /** - * Loads an array of data into the upload part by extracting only the needed keys - * - * @param array|\Traversable $data Data to load into the upload part value object - * - * @throws InvalidArgumentException if a required key is missing - */ - protected function loadData($data) - { - foreach (static::$keyMap as $key => $property) { - if (isset($data[$key])) { - $this->{$property} = $data[$key]; - } else { - throw new InvalidArgumentException("A required key [$key] was missing from the upload part."); - } - } - } -} diff --git a/lib/aws-sdk/Aws/Common/Model/MultipartUpload/TransferInterface.php b/lib/aws-sdk/Aws/Common/Model/MultipartUpload/TransferInterface.php deleted file mode 100644 index 1fc1ae9..0000000 --- a/lib/aws-sdk/Aws/Common/Model/MultipartUpload/TransferInterface.php +++ /dev/null @@ -1,66 +0,0 @@ - 'Aws\Common\Aws', - 'services' => array( - - 'default_settings' => array( - 'params' => array() - ), - - 'autoscaling' => array( - 'alias' => 'AutoScaling', - 'extends' => 'default_settings', - 'class' => 'Aws\AutoScaling\AutoScalingClient' - ), - - 'cloudformation' => array( - 'alias' => 'CloudFormation', - 'extends' => 'default_settings', - 'class' => 'Aws\CloudFormation\CloudFormationClient' - ), - - 'cloudfront' => array( - 'alias' => 'CloudFront', - 'extends' => 'default_settings', - 'class' => 'Aws\CloudFront\CloudFrontClient' - ), - - 'cloudfront_20120505' => array( - 'extends' => 'cloudfront', - 'params' => array( - 'version' => '2012-05-05' - ) - ), - - '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', - 'class' => 'Aws\CloudTrail\CloudTrailClient' - ), - - 'cloudwatch' => array( - 'alias' => 'CloudWatch', - 'extends' => 'default_settings', - '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', - 'class' => 'Aws\DataPipeline\DataPipelineClient' - ), - - 'directconnect' => array( - 'alias' => 'DirectConnect', - 'extends' => 'default_settings', - 'class' => 'Aws\DirectConnect\DirectConnectClient' - ), - - 'ds' => array( - 'alias' => 'DirectoryService', - 'extends' => 'default_settings', - 'class' => 'Aws\DirectoryService\DirectoryServiceClient' - ), - - 'dynamodb' => array( - 'alias' => 'DynamoDb', - 'extends' => 'default_settings', - 'class' => 'Aws\DynamoDb\DynamoDbClient' - ), - - 'dynamodb_20111205' => array( - 'extends' => 'dynamodb', - 'params' => array( - 'version' => '2011-12-05' - ) - ), - - 'ec2' => array( - 'alias' => 'Ec2', - 'extends' => 'default_settings', - 'class' => 'Aws\Ec2\Ec2Client' - ), - - 'ecs' => array( - 'alias' => 'Ecs', - 'extends' => 'default_settings', - 'class' => 'Aws\Ecs\EcsClient' - ), - - 'elasticache' => array( - 'alias' => 'ElastiCache', - 'extends' => 'default_settings', - 'class' => 'Aws\ElastiCache\ElastiCacheClient' - ), - - 'elasticbeanstalk' => array( - 'alias' => 'ElasticBeanstalk', - 'extends' => 'default_settings', - 'class' => 'Aws\ElasticBeanstalk\ElasticBeanstalkClient' - ), - - 'efs' => array( - 'alias' => 'Efs', - 'extends' => 'default_settings', - 'class' => 'Aws\Efs\EfsClient' - ), - - 'elasticloadbalancing' => array( - 'alias' => 'ElasticLoadBalancing', - 'extends' => 'default_settings', - 'class' => 'Aws\ElasticLoadBalancing\ElasticLoadBalancingClient' - ), - - 'elastictranscoder' => array( - 'alias' => 'ElasticTranscoder', - 'extends' => 'default_settings', - 'class' => 'Aws\ElasticTranscoder\ElasticTranscoderClient' - ), - - 'emr' => array( - 'alias' => 'Emr', - 'extends' => 'default_settings', - 'class' => 'Aws\Emr\EmrClient' - ), - - 'glacier' => array( - 'alias' => 'Glacier', - 'extends' => 'default_settings', - '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', - 'class' => 'Aws\Iam\IamClient' - ), - - 'importexport' => array( - 'alias' => 'ImportExport', - 'extends' => 'default_settings', - 'class' => 'Aws\ImportExport\ImportExportClient' - ), - - 'machinelearning' => array( - 'alias' => 'MachineLearning', - 'extends' => 'default_settings', - 'class' => 'Aws\MachineLearning\MachineLearningClient' - ), - - 'opsworks' => array( - 'alias' => 'OpsWorks', - 'extends' => 'default_settings', - 'class' => 'Aws\OpsWorks\OpsWorksClient' - ), - - 'rds' => array( - 'alias' => 'Rds', - 'extends' => 'default_settings', - 'class' => 'Aws\Rds\RdsClient' - ), - - 'redshift' => array( - 'alias' => 'Redshift', - 'extends' => 'default_settings', - 'class' => 'Aws\Redshift\RedshiftClient' - ), - - 'route53' => array( - 'alias' => 'Route53', - 'extends' => 'default_settings', - 'class' => 'Aws\Route53\Route53Client' - ), - - 'route53domains' => array( - 'alias' => 'Route53Domains', - 'extends' => 'default_settings', - 'class' => 'Aws\Route53Domains\Route53DomainsClient' - ), - - 's3' => array( - 'alias' => 'S3', - 'extends' => 'default_settings', - 'class' => 'Aws\S3\S3Client' - ), - - 'sdb' => array( - 'alias' => 'SimpleDb', - 'extends' => 'default_settings', - 'class' => 'Aws\SimpleDb\SimpleDbClient' - ), - - 'ses' => array( - 'alias' => 'Ses', - 'extends' => 'default_settings', - 'class' => 'Aws\Ses\SesClient' - ), - - 'sns' => array( - 'alias' => 'Sns', - 'extends' => 'default_settings', - 'class' => 'Aws\Sns\SnsClient' - ), - - 'sqs' => array( - 'alias' => 'Sqs', - 'extends' => 'default_settings', - 'class' => 'Aws\Sqs\SqsClient' - ), - - 'ssm' => array( - 'alias' => 'Ssm', - 'extends' => 'default_settings', - 'class' => 'Aws\Ssm\SsmClient' - ), - - 'storagegateway' => array( - 'alias' => 'StorageGateway', - 'extends' => 'default_settings', - 'class' => 'Aws\StorageGateway\StorageGatewayClient' - ), - - 'sts' => array( - 'alias' => 'Sts', - 'extends' => 'default_settings', - 'class' => 'Aws\Sts\StsClient' - ), - - 'support' => array( - 'alias' => 'Support', - 'extends' => 'default_settings', - 'class' => 'Aws\Support\SupportClient' - ), - - 'swf' => array( - 'alias' => 'Swf', - 'extends' => 'default_settings', - 'class' => 'Aws\Swf\SwfClient' - ), - - 'workspaces' => array( - 'alias' => 'WorkSpaces', - 'extends' => 'default_settings', - 'class' => 'Aws\WorkSpaces\WorkSpacesClient' - ), - ) -); diff --git a/lib/aws-sdk/Aws/Common/Resources/public-endpoints.php b/lib/aws-sdk/Aws/Common/Resources/public-endpoints.php deleted file mode 100644 index d939f1f..0000000 --- a/lib/aws-sdk/Aws/Common/Resources/public-endpoints.php +++ /dev/null @@ -1,79 +0,0 @@ - 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/lib/aws-sdk/Aws/Common/Resources/sdk1-config.php b/lib/aws-sdk/Aws/Common/Resources/sdk1-config.php deleted file mode 100644 index a5121ab..0000000 --- a/lib/aws-sdk/Aws/Common/Resources/sdk1-config.php +++ /dev/null @@ -1,138 +0,0 @@ - array('_aws'), - 'services' => array( - - 'sdk1_settings' => array( - 'extends' => 'default_settings', - 'params' => array( - 'certificate_authority' => false - ) - ), - - 'v1.autoscaling' => array( - 'extends' => 'sdk1_settings', - 'class' => 'AmazonAS' - ), - - 'v1.cloudformation' => array( - 'extends' => 'sdk1_settings', - 'class' => 'AmazonCloudFormation' - ), - - 'v1.cloudfront' => array( - 'extends' => 'sdk1_settings', - 'class' => 'AmazonCloudFront' - ), - - 'v1.cloudsearch' => array( - 'extends' => 'sdk1_settings', - 'class' => 'AmazonCloudSearch' - ), - - 'v1.cloudwatch' => array( - 'extends' => 'sdk1_settings', - 'class' => 'AmazonCloudWatch' - ), - - 'v1.dynamodb' => array( - 'extends' => 'sdk1_settings', - 'class' => 'AmazonDynamoDB' - ), - - 'v1.ec2' => array( - 'extends' => 'sdk1_settings', - 'class' => 'AmazonEC2' - ), - - 'v1.elasticache' => array( - 'extends' => 'sdk1_settings', - 'class' => 'AmazonElastiCache' - ), - - 'v1.elasticbeanstalk' => array( - 'extends' => 'sdk1_settings', - 'class' => 'AmazonElasticBeanstalk' - ), - - 'v1.elb' => array( - 'extends' => 'sdk1_settings', - 'class' => 'AmazonELB' - ), - - 'v1.emr' => array( - 'extends' => 'sdk1_settings', - 'class' => 'AmazonEMR' - ), - - 'v1.iam' => array( - 'extends' => 'sdk1_settings', - 'class' => 'AmazonIAM' - ), - - 'v1.importexport' => array( - 'extends' => 'sdk1_settings', - 'class' => 'AmazonImportExport' - ), - - 'v1.rds' => array( - 'extends' => 'sdk1_settings', - 'class' => 'AmazonRDS' - ), - - 'v1.s3' => array( - 'extends' => 'sdk1_settings', - 'class' => 'AmazonS3' - ), - - 'v1.sdb' => array( - 'extends' => 'sdk1_settings', - 'class' => 'AmazonSDB' - ), - - 'v1.ses' => array( - 'extends' => 'sdk1_settings', - 'class' => 'AmazonSES' - ), - - 'v1.sns' => array( - 'extends' => 'sdk1_settings', - 'class' => 'AmazonSNS' - ), - - 'v1.sqs' => array( - 'extends' => 'sdk1_settings', - 'class' => 'AmazonSQS' - ), - - 'v1.storagegateway' => array( - 'extends' => 'sdk1_settings', - 'class' => 'AmazonStorageGateway' - ), - - 'v1.sts' => array( - 'extends' => 'sdk1_settings', - 'class' => 'AmazonSTS' - ), - - 'v1.swf' => array( - 'extends' => 'sdk1_settings', - 'class' => 'AmazonSWF' - ) - ) -); diff --git a/lib/aws-sdk/Aws/Common/RulesEndpointProvider.php b/lib/aws-sdk/Aws/Common/RulesEndpointProvider.php deleted file mode 100644 index ec57cb8..0000000 --- a/lib/aws-sdk/Aws/Common/RulesEndpointProvider.php +++ /dev/null @@ -1,67 +0,0 @@ -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/lib/aws-sdk/Aws/Common/Signature/AbstractSignature.php b/lib/aws-sdk/Aws/Common/Signature/AbstractSignature.php deleted file mode 100644 index 2d25d87..0000000 --- a/lib/aws-sdk/Aws/Common/Signature/AbstractSignature.php +++ /dev/null @@ -1,44 +0,0 @@ -credentials = $credentials; - $this->signature = $signature; - } - - /** - * {@inheritdoc} - */ - public static function getSubscribedEvents() - { - return array( - 'request.before_send' => array('onRequestBeforeSend', -255), - 'client.credentials_changed' => array('onCredentialsChanged') - ); - } - - /** - * Updates the listener with new credentials if the client is updated - * - * @param Event $event Event emitted - */ - public function onCredentialsChanged(Event $event) - { - $this->credentials = $event['credentials']; - } - - /** - * Signs requests before they are sent - * - * @param Event $event Event emitted - */ - public function onRequestBeforeSend(Event $event) - { - if(!$this->credentials instanceof NullCredentials) { - $this->signature->signRequest($event['request'], $this->credentials); - } - } -} diff --git a/lib/aws-sdk/Aws/Common/Signature/SignatureV2.php b/lib/aws-sdk/Aws/Common/Signature/SignatureV2.php deleted file mode 100644 index c900287..0000000 --- a/lib/aws-sdk/Aws/Common/Signature/SignatureV2.php +++ /dev/null @@ -1,109 +0,0 @@ -getTimestamp(true); - - // set values we need in CanonicalizedParameterString - $this->addParameter($request, 'Timestamp', gmdate('c', $timestamp)); - $this->addParameter($request, 'SignatureVersion', '2'); - $this->addParameter($request, 'SignatureMethod', 'HmacSHA256'); - $this->addParameter($request, 'AWSAccessKeyId', $credentials->getAccessKeyId()); - - if ($token = $credentials->getSecurityToken()) { - $this->addParameter($request, 'SecurityToken', $token); - } - - // Get the path and ensure it's absolute - $path = '/' . ltrim($request->getUrl(true)->normalizePath()->getPath(), '/'); - - // build string to sign - $sign = $request->getMethod() . "\n" - . $request->getHost() . "\n" - . $path . "\n" - . $this->getCanonicalizedParameterString($request); - - // Add the string to sign to the request for debugging purposes - $request->getParams()->set('aws.string_to_sign', $sign); - - $signature = base64_encode( - hash_hmac( - 'sha256', - $sign, - $credentials->getSecretKey(), - true - ) - ); - - $this->addParameter($request, 'Signature', $signature); - } - - /** - * Add a parameter key and value to the request according to type - * - * @param RequestInterface $request The request - * @param string $key The name of the parameter - * @param string $value The value of the parameter - */ - public function addParameter(RequestInterface $request, $key, $value) - { - if ($request->getMethod() == 'POST') { - $request->setPostField($key, $value); - } else { - $request->getQuery()->set($key, $value); - } - } - - /** - * Get the canonicalized query/parameter string for a request - * - * @param RequestInterface $request Request used to build canonicalized string - * - * @return string - */ - private function getCanonicalizedParameterString(RequestInterface $request) - { - if ($request->getMethod() == 'POST') { - $params = $request->getPostFields()->toArray(); - } else { - $params = $request->getQuery()->toArray(); - } - - // Don't resign a previous signature value - unset($params['Signature']); - uksort($params, 'strcmp'); - - $str = ''; - foreach ($params as $key => $val) { - $str .= rawurlencode($key) . '=' . rawurlencode($val) . '&'; - } - - return substr($str, 0, -1); - } -} diff --git a/lib/aws-sdk/Aws/Common/Signature/SignatureV3Https.php b/lib/aws-sdk/Aws/Common/Signature/SignatureV3Https.php deleted file mode 100644 index be0514e..0000000 --- a/lib/aws-sdk/Aws/Common/Signature/SignatureV3Https.php +++ /dev/null @@ -1,52 +0,0 @@ -hasHeader('date') && !$request->hasHeader('x-amz-date')) { - $request->setHeader('Date', gmdate(DateFormat::RFC1123, $this->getTimestamp())); - } - - // Add the security token if one is present - if ($credentials->getSecurityToken()) { - $request->setHeader('x-amz-security-token', $credentials->getSecurityToken()); - } - - // Determine the string to sign - $stringToSign = (string) ($request->getHeader('Date') ?: $request->getHeader('x-amz-date')); - $request->getParams()->set('aws.string_to_sign', $stringToSign); - - // Calculate the signature - $signature = base64_encode(hash_hmac('sha256', $stringToSign, $credentials->getSecretKey(), true)); - - // Add the authorization header to the request - $headerFormat = 'AWS3-HTTPS AWSAccessKeyId=%s,Algorithm=HmacSHA256,Signature=%s'; - $request->setHeader('X-Amzn-Authorization', sprintf($headerFormat, $credentials->getAccessKeyId(), $signature)); - } -} diff --git a/lib/aws-sdk/Aws/Common/Signature/SignatureV4.php b/lib/aws-sdk/Aws/Common/Signature/SignatureV4.php deleted file mode 100644 index 2137760..0000000 --- a/lib/aws-sdk/Aws/Common/Signature/SignatureV4.php +++ /dev/null @@ -1,477 +0,0 @@ -serviceName = $serviceName; - $this->regionName = $regionName; - } - - /** - * Set the service name instead of inferring it from a request URL - * - * @param string $service Name of the service used when signing - * - * @return self - */ - public function setServiceName($service) - { - $this->serviceName = $service; - - return $this; - } - - /** - * Set the region name instead of inferring it from a request URL - * - * @param string $region Name of the region used when signing - * - * @return self - */ - public function setRegionName($region) - { - $this->regionName = $region; - - return $this; - } - - /** - * Set the maximum number of computed hashes to cache - * - * @param int $maxCacheSize Maximum number of hashes to cache - * - * @return self - */ - public function setMaxCacheSize($maxCacheSize) - { - $this->maxCacheSize = $maxCacheSize; - - return $this; - } - - public function signRequest(RequestInterface $request, CredentialsInterface $credentials) - { - $timestamp = $this->getTimestamp(); - $longDate = gmdate(DateFormat::ISO8601, $timestamp); - $shortDate = substr($longDate, 0, 8); - - // 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', gmdate(DateFormat::RFC1123, $timestamp)); - } - - // Add the security token if one is present - if ($credentials->getSecurityToken()) { - $request->setHeader('x-amz-security-token', $credentials->getSecurityToken()); - } - - // Parse the service and region or use one that is explicitly set - $region = $this->regionName; - $service = $this->serviceName; - if (!$region || !$service) { - $url = Url::factory($request->getUrl()); - $region = $region ?: HostNameUtils::parseRegionName($url); - $service = $service ?: HostNameUtils::parseServiceName($url); - } - - $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()); - $signature = hash_hmac('sha256', $signingContext['string_to_sign'], $signingKey); - - $request->setHeader('Authorization', "AWS4-HMAC-SHA256 " - . "Credential={$credentials->getAccessKeyId()}/{$credentialScope}, " - . "SignedHeaders={$signingContext['signed_headers']}, Signature={$signature}"); - - // Add debug information to the request - $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(); - } - - /** - * Converts a POST request to a GET request by moving POST fields into the - * query string. - * - * Useful for pre-signing query protocol requests. - * - * @param EntityEnclosingRequestInterface $request Request to clone - * - * @return RequestInterface - * @throws \InvalidArgumentException if the method is not POST - */ - public static function convertPostToGet(EntityEnclosingRequestInterface $request) - { - if ($request->getMethod() !== 'POST') { - throw new \InvalidArgumentException('Expected a POST request but ' - . 'received a ' . $request->getMethod() . ' request.'); - } - - $cloned = RequestFactory::getInstance() - ->cloneRequestWithMethod($request, 'GET'); - - // Move POST fields to the query if they are present - foreach ($request->getPostFields() as $name => $value) { - $cloned->getQuery()->set($name, $value); - } - - return $cloned; - } - - /** - * 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) - 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 { - $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' => $signedHeadersString - ); - } - - /** - * Get a hash for a specific key and value. If the hash was previously - * cached, return it - * - * @param string $shortDate Short date - * @param string $region Region name - * @param string $service Service name - * @param string $secretKey Secret Access Key - * - * @return string - */ - private function getSigningKey($shortDate, $region, $service, $secretKey) - { - $cacheKey = $shortDate . '_' . $region . '_' . $service . '_' . $secretKey; - - // Retrieve the hash form the cache or create it and add it to the cache - if (!isset($this->hashCache[$cacheKey])) { - // When the cache size reaches the max, then just clear the cache - if (++$this->cacheSize > $this->maxCacheSize) { - $this->hashCache = array(); - $this->cacheSize = 0; - } - $dateKey = hash_hmac('sha256', $shortDate, 'AWS4' . $secretKey, true); - $regionKey = hash_hmac('sha256', $region, $dateKey, true); - $serviceKey = hash_hmac('sha256', $service, $regionKey, true); - $this->hashCache[$cacheKey] = hash_hmac('sha256', 'aws4_request', $serviceKey, true); - } - - 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/lib/aws-sdk/Aws/Common/Waiter/AbstractResourceWaiter.php b/lib/aws-sdk/Aws/Common/Waiter/AbstractResourceWaiter.php deleted file mode 100644 index 5334848..0000000 --- a/lib/aws-sdk/Aws/Common/Waiter/AbstractResourceWaiter.php +++ /dev/null @@ -1,53 +0,0 @@ -client = $client; - - return $this; - } - - /** - * {@inheritdoc} - */ - public function wait() - { - if (!$this->client) { - throw new RuntimeException('No client has been specified on the waiter'); - } - - parent::wait(); - } -} diff --git a/lib/aws-sdk/Aws/Common/Waiter/AbstractWaiter.php b/lib/aws-sdk/Aws/Common/Waiter/AbstractWaiter.php deleted file mode 100644 index 09dbea1..0000000 --- a/lib/aws-sdk/Aws/Common/Waiter/AbstractWaiter.php +++ /dev/null @@ -1,146 +0,0 @@ -config[self::MAX_ATTEMPTS]) ? $this->config[self::MAX_ATTEMPTS] : 10; - } - - /** - * Get the amount of time in seconds to delay between attempts - * - * @return int - */ - public function getInterval() - { - return isset($this->config[self::INTERVAL]) ? $this->config[self::INTERVAL] : 0; - } - - /** - * {@inheritdoc} - */ - public function setMaxAttempts($maxAttempts) - { - $this->config[self::MAX_ATTEMPTS] = $maxAttempts; - - return $this; - } - - /** - * {@inheritdoc} - */ - public function setInterval($interval) - { - $this->config[self::INTERVAL] = $interval; - - return $this; - } - - /** - * Set config options associated with the waiter - * - * @param array $config Options to set - * - * @return self - */ - public function setConfig(array $config) - { - if (isset($config['waiter.before_attempt'])) { - $this->getEventDispatcher()->addListener('waiter.before_attempt', $config['waiter.before_attempt']); - unset($config['waiter.before_attempt']); - } - - if (isset($config['waiter.before_wait'])) { - $this->getEventDispatcher()->addListener('waiter.before_wait', $config['waiter.before_wait']); - unset($config['waiter.before_wait']); - } - - $this->config = $config; - - return $this; - } - - /** - * {@inheritdoc} - */ - public function wait() - { - $this->attempts = 0; - - do { - $this->dispatch('waiter.before_attempt', array( - 'waiter' => $this, - 'config' => $this->config, - )); - - if ($this->doWait()) { - break; - } - - if (++$this->attempts >= $this->getMaxAttempts()) { - throw new RuntimeException('Wait method never resolved to true after ' . $this->attempts . ' attempts'); - } - - $this->dispatch('waiter.before_wait', array( - 'waiter' => $this, - 'config' => $this->config, - )); - - if ($this->getInterval()) { - usleep($this->getInterval() * 1000000); - } - - } while (1); - } - - /** - * Method to implement in subclasses - * - * @return bool Return true when successful, false on failure - */ - abstract protected function doWait(); -} diff --git a/lib/aws-sdk/Aws/Common/Waiter/CallableWaiter.php b/lib/aws-sdk/Aws/Common/Waiter/CallableWaiter.php deleted file mode 100644 index a205e06..0000000 --- a/lib/aws-sdk/Aws/Common/Waiter/CallableWaiter.php +++ /dev/null @@ -1,82 +0,0 @@ -callable = $callable; - - return $this; - } - - /** - * Set additional context for the callable function. This data will be passed into the callable function as the - * second argument - * - * @param array $context Additional context - * - * @return self - */ - public function setContext(array $context) - { - $this->context = $context; - - return $this; - } - - /** - * {@inheritdoc} - */ - public function doWait() - { - if (!$this->callable) { - throw new RuntimeException('No callable was specified for the wait method'); - } - - return call_user_func($this->callable, $this->attempts, $this->context); - } -} diff --git a/lib/aws-sdk/Aws/Common/Waiter/CompositeWaiterFactory.php b/lib/aws-sdk/Aws/Common/Waiter/CompositeWaiterFactory.php deleted file mode 100644 index 5278e49..0000000 --- a/lib/aws-sdk/Aws/Common/Waiter/CompositeWaiterFactory.php +++ /dev/null @@ -1,90 +0,0 @@ -factories = $factories; - } - - /** - * {@inheritdoc} - */ - public function build($waiter) - { - if (!($factory = $this->getFactory($waiter))) { - throw new InvalidArgumentException("Waiter was not found matching {$waiter}."); - } - - return $factory->build($waiter); - } - - /** - * {@inheritdoc} - */ - public function canBuild($waiter) - { - return (bool) $this->getFactory($waiter); - } - - /** - * Add a factory to the composite factory - * - * @param WaiterFactoryInterface $factory Factory to add - * - * @return self - */ - public function addFactory(WaiterFactoryInterface $factory) - { - $this->factories[] = $factory; - - return $this; - } - - /** - * Get the factory that matches the waiter name - * - * @param string $waiter Name of the waiter - * - * @return WaiterFactoryInterface|bool - */ - protected function getFactory($waiter) - { - foreach ($this->factories as $factory) { - if ($factory->canBuild($waiter)) { - return $factory; - } - } - - return false; - } -} diff --git a/lib/aws-sdk/Aws/Common/Waiter/ConfigResourceWaiter.php b/lib/aws-sdk/Aws/Common/Waiter/ConfigResourceWaiter.php deleted file mode 100644 index 8ef0577..0000000 --- a/lib/aws-sdk/Aws/Common/Waiter/ConfigResourceWaiter.php +++ /dev/null @@ -1,225 +0,0 @@ -waiterConfig = $waiterConfig; - $this->setInterval($waiterConfig->get(WaiterConfig::INTERVAL)); - $this->setMaxAttempts($waiterConfig->get(WaiterConfig::MAX_ATTEMPTS)); - } - - /** - * {@inheritdoc} - */ - public function setConfig(array $config) - { - foreach ($config as $key => $value) { - if (substr($key, 0, 7) == 'waiter.') { - $this->waiterConfig->set(substr($key, 7), $value); - } - } - - if (!isset($config[self::INTERVAL])) { - $config[self::INTERVAL] = $this->waiterConfig->get(WaiterConfig::INTERVAL); - } - - if (!isset($config[self::MAX_ATTEMPTS])) { - $config[self::MAX_ATTEMPTS] = $this->waiterConfig->get(WaiterConfig::MAX_ATTEMPTS); - } - - return parent::setConfig($config); - } - - /** - * Get the waiter's configuration data - * - * @return WaiterConfig - */ - public function getWaiterConfig() - { - return $this->waiterConfig; - } - - /** - * {@inheritdoc} - */ - protected function doWait() - { - $params = $this->config; - // remove waiter settings from the operation's input - foreach (array_keys($params) as $key) { - if (substr($key, 0, 7) == 'waiter.') { - unset($params[$key]); - } - } - - $operation = $this->client->getCommand($this->waiterConfig->get(WaiterConfig::OPERATION), $params); - - try { - return $this->checkResult($this->client->execute($operation)); - } catch (ValidationException $e) { - throw new InvalidArgumentException( - $this->waiterConfig->get(WaiterConfig::WAITER_NAME) . ' waiter validation failed: ' . $e->getMessage(), - $e->getCode(), - $e - ); - } catch (ServiceResponseException $e) { - - // Check if this exception satisfies a success or failure acceptor - $transition = $this->checkErrorAcceptor($e); - if (null !== $transition) { - return $transition; - } - - // Check if this exception should be ignored - foreach ((array) $this->waiterConfig->get(WaiterConfig::IGNORE_ERRORS) as $ignore) { - if ($e->getExceptionCode() == $ignore) { - // This exception is ignored, so it counts as a failed attempt rather than a fast-fail - return false; - } - } - - // Allow non-ignore exceptions to bubble through - throw $e; - } - } - - /** - * Check if an exception satisfies a success or failure acceptor - * - * @param ServiceResponseException $e - * - * @return bool|null Returns true for success, false for failure, and null for no transition - */ - protected function checkErrorAcceptor(ServiceResponseException $e) - { - if ($this->waiterConfig->get(WaiterConfig::SUCCESS_TYPE) == 'error') { - if ($e->getExceptionCode() == $this->waiterConfig->get(WaiterConfig::SUCCESS_VALUE)) { - // Mark as a success - return true; - } - } - - // Mark as an attempt - return null; - } - - /** - * Check to see if the response model satisfies a success or failure state - * - * @param Model $result Result model - * - * @return bool - * @throws RuntimeException - */ - protected function checkResult(Model $result) - { - // Check if the result evaluates to true based on the path and output model - if ($this->waiterConfig->get(WaiterConfig::SUCCESS_TYPE) == 'output' && - $this->checkPath( - $result, - $this->waiterConfig->get(WaiterConfig::SUCCESS_PATH), - $this->waiterConfig->get(WaiterConfig::SUCCESS_VALUE) - ) - ) { - return true; - } - - // It did not finish waiting yet. Determine if we need to fail-fast based on the failure acceptor. - if ($this->waiterConfig->get(WaiterConfig::FAILURE_TYPE) == 'output') { - $failureValue = $this->waiterConfig->get(WaiterConfig::FAILURE_VALUE); - if ($failureValue) { - $key = $this->waiterConfig->get(WaiterConfig::FAILURE_PATH); - if ($this->checkPath($result, $key, $failureValue, false)) { - // Determine which of the results triggered the failure - $triggered = array_intersect( - (array) $this->waiterConfig->get(WaiterConfig::FAILURE_VALUE), - array_unique((array) $result->getPath($key)) - ); - // fast fail because the failure case was satisfied - throw new RuntimeException( - 'A resource entered into an invalid state of "' - . implode(', ', $triggered) . '" while waiting with the "' - . $this->waiterConfig->get(WaiterConfig::WAITER_NAME) . '" waiter.' - ); - } - } - } - - return false; - } - - /** - * Check to see if the path of the output key is satisfied by the value - * - * @param Model $model Result model - * @param string $key Key to check - * @param string $checkValue Compare the key to the value - * @param bool $all Set to true to ensure all value match or false to only match one - * - * @return bool - */ - protected function checkPath(Model $model, $key = null, $checkValue = array(), $all = true) - { - // If no key is set, then just assume true because the request succeeded - if (!$key) { - return true; - } - - if (!($result = $model->getPath($key))) { - return false; - } - - $total = $matches = 0; - foreach ((array) $result as $value) { - $total++; - foreach ((array) $checkValue as $check) { - if ($value == $check) { - $matches++; - break; - } - } - } - - // When matching all values, ensure that the match count matches the total count - if ($all && $total != $matches) { - return false; - } - - return $matches > 0; - } -} diff --git a/lib/aws-sdk/Aws/Common/Waiter/ResourceWaiterInterface.php b/lib/aws-sdk/Aws/Common/Waiter/ResourceWaiterInterface.php deleted file mode 100644 index 07cf41d..0000000 --- a/lib/aws-sdk/Aws/Common/Waiter/ResourceWaiterInterface.php +++ /dev/null @@ -1,34 +0,0 @@ - CamelCase). - */ -class WaiterClassFactory implements WaiterFactoryInterface -{ - /** - * @var array List of namespaces used to look for classes - */ - protected $namespaces; - - /** - * @var InflectorInterface Inflector used to inflect class names - */ - protected $inflector; - - /** - * @param array|string $namespaces Namespaces of waiter objects - * @param InflectorInterface $inflector Inflector used to resolve class names - */ - public function __construct($namespaces = array(), InflectorInterface $inflector = null) - { - $this->namespaces = (array) $namespaces; - $this->inflector = $inflector ?: Inflector::getDefault(); - } - - /** - * Registers a namespace to check for Waiters - * - * @param string $namespace Namespace which contains Waiter classes - * - * @return self - */ - public function registerNamespace($namespace) - { - array_unshift($this->namespaces, $namespace); - - return $this; - } - - /** - * {@inheritdoc} - */ - public function build($waiter) - { - if (!($className = $this->getClassName($waiter))) { - throw new InvalidArgumentException("Waiter was not found matching {$waiter}."); - } - - return new $className(); - } - - /** - * {@inheritdoc} - */ - public function canBuild($waiter) - { - return $this->getClassName($waiter) !== null; - } - - /** - * Get the name of a waiter class - * - * @param string $waiter Waiter name - * - * @return string|null - */ - protected function getClassName($waiter) - { - $waiterName = $this->inflector->camel($waiter); - - // Determine the name of the class to load - $className = null; - foreach ($this->namespaces as $namespace) { - $potentialClassName = $namespace . '\\' . $waiterName; - if (class_exists($potentialClassName)) { - return $potentialClassName; - } - } - - return null; - } -} diff --git a/lib/aws-sdk/Aws/Common/Waiter/WaiterConfig.php b/lib/aws-sdk/Aws/Common/Waiter/WaiterConfig.php deleted file mode 100644 index 7c10f5a..0000000 --- a/lib/aws-sdk/Aws/Common/Waiter/WaiterConfig.php +++ /dev/null @@ -1,67 +0,0 @@ -data = $data; - $this->extractConfig(); - } - - /** - * Create the command configuration variables - */ - protected function extractConfig() - { - // Populate success.* and failure.* if specified in acceptor.* - foreach ($this->data as $key => $value) { - if (substr($key, 0, 9) == 'acceptor.') { - $name = substr($key, 9); - if (!isset($this->data["success.{$name}"])) { - $this->data["success.{$name}"] = $value; - } - if (!isset($this->data["failure.{$name}"])) { - $this->data["failure.{$name}"] = $value; - } - unset($this->data[$key]); - } - } - } -} diff --git a/lib/aws-sdk/Aws/Common/Waiter/WaiterConfigFactory.php b/lib/aws-sdk/Aws/Common/Waiter/WaiterConfigFactory.php deleted file mode 100644 index cb92149..0000000 --- a/lib/aws-sdk/Aws/Common/Waiter/WaiterConfigFactory.php +++ /dev/null @@ -1,98 +0,0 @@ -config = $config; - $this->inflector = $inflector ?: Inflector::getDefault(); - } - - /** - * {@inheritdoc} - */ - public function build($waiter) - { - return new ConfigResourceWaiter($this->getWaiterConfig($waiter)); - } - - /** - * {@inheritdoc} - */ - public function canBuild($waiter) - { - return isset($this->config[$waiter]) || isset($this->config[$this->inflector->camel($waiter)]); - } - - /** - * Get waiter configuration data, taking __default__ and extensions into account - * - * @param string $name Waiter name - * - * @return WaiterConfig - * @throws InvalidArgumentException - */ - protected function getWaiterConfig($name) - { - if (!$this->canBuild($name)) { - throw new InvalidArgumentException('No waiter found matching "' . $name . '"'); - } - - // inflect the name if needed - $name = isset($this->config[$name]) ? $name : $this->inflector->camel($name); - $waiter = new WaiterConfig($this->config[$name]); - $waiter['name'] = $name; - - // Always use __default__ as the basis if it's set - if (isset($this->config['__default__'])) { - $parentWaiter = new WaiterConfig($this->config['__default__']); - $waiter = $parentWaiter->overwriteWith($waiter); - } - - // Allow for configuration extensions - if (isset($this->config[$name]['extends'])) { - $waiter = $this->getWaiterConfig($this->config[$name]['extends'])->overwriteWith($waiter); - } - - return $waiter; - } -} diff --git a/lib/aws-sdk/Aws/Common/Waiter/WaiterFactoryInterface.php b/lib/aws-sdk/Aws/Common/Waiter/WaiterFactoryInterface.php deleted file mode 100644 index b9bf0f4..0000000 --- a/lib/aws-sdk/Aws/Common/Waiter/WaiterFactoryInterface.php +++ /dev/null @@ -1,41 +0,0 @@ -setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/configservice-%s.php' - )) - ->setExceptionParser(new JsonQueryExceptionParser()) - ->build(); - } -} +class ConfigServiceClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/ConfigService/Exception/ConfigServiceException.php b/lib/aws-sdk/Aws/ConfigService/Exception/ConfigServiceException.php index b91ae2b..56dc44d 100644 --- a/lib/aws-sdk/Aws/ConfigService/Exception/ConfigServiceException.php +++ b/lib/aws-sdk/Aws/ConfigService/Exception/ConfigServiceException.php @@ -1,10 +1,9 @@ '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/lib/aws-sdk/Aws/Credentials/CredentialProvider.php b/lib/aws-sdk/Aws/Credentials/CredentialProvider.php new file mode 100644 index 0000000..16ce07a --- /dev/null +++ b/lib/aws-sdk/Aws/Credentials/CredentialProvider.php @@ -0,0 +1,263 @@ + + * use Aws\Credentials\CredentialProvider; + * $provider = CredentialProvider::defaultProvider(); + * // Returns a CredentialsInterface or throws. + * $creds = $provider()->wait(); + * + * + * Credential providers can be composed to create credentials using conditional + * logic that can create different credentials in different environments. You + * can compose multiple providers into a single provider using + * {@see Aws\Credentials\CredentialProvider::chain}. This function accepts + * providers as variadic arguments and returns a new function that will invoke + * each provider until a successful set of credentials is returned. + * + * + * // First try an INI file at this location. + * $a = CredentialProvider::ini(null, '/path/to/file.ini'); + * // Then try an INI file at this location. + * $b = CredentialProvider::ini(null, '/path/to/other-file.ini'); + * // Then try loading from envrionment variables. + * $c = CredentialProvider::env(); + * // Combine the three providers together. + * $composed = CredentialProvider::chain($a, $b, $c); + * // Returns a promise that is fulfilled with credentials or throws. + * $promise = $composed(); + * // Wait on the credentials to resolve. + * $creds = $promise->wait(); + * + */ +class CredentialProvider +{ + const ENV_KEY = 'AWS_ACCESS_KEY_ID'; + const ENV_SECRET = 'AWS_SECRET_ACCESS_KEY'; + const ENV_SESSION = 'AWS_SESSION_TOKEN'; + const ENV_PROFILE = 'AWS_PROFILE'; + + /** + * Create a default credential provider that first checks for environment + * variables, then checks for the "default" profile in ~/.aws/credentials, + * and finally checks for credentials using EC2 instance profile + * credentials. + * + * This provider is automatically wrapped in a memoize function that caches + * previously provided credentials. + * + * @param array $config Optional array of instance profile credentials + * provider options. + * @return callable + */ + public static function defaultProvider(array $config = []) + { + return self::memoize( + self::chain( + self::env(), + self::ini(), + self::instanceProfile($config) + ) + ); + } + + /** + * Create a credential provider function from a set of static credentials. + * + * @param CredentialsInterface $creds + * + * @return callable + */ + public static function fromCredentials(CredentialsInterface $creds) + { + $promise = Promise\promise_for($creds); + + return function () use ($promise) { + return $promise; + }; + } + + /** + * Creates an aggregate credentials provider that invokes the provided + * variadic providers one after the other until a provider returns + * credentials. + * + * @return callable + */ + public static function chain() + { + $links = func_get_args(); + if (empty($links)) { + throw new \InvalidArgumentException('No providers in chain'); + } + + return function () use ($links) { + /** @var callable $parent */ + $parent = array_shift($links); + $promise = $parent(); + while ($next = array_shift($links)) { + $promise = $promise->otherwise($next); + } + return $promise; + }; + } + + /** + * Wraps a credential provider and caches previously provided credentials. + * + * Ensures that cached credentials are refreshed when they expire. + * + * @param callable $provider Credentials provider function to wrap. + * + * @return callable + */ + public static function memoize(callable $provider) + { + // Create the initial promise that will be used as the cached value + // until it expires. + $result = $provider(); + $isConstant = false; + + return function () use (&$result, &$isConstant, $provider) { + // Constant credentials will be returned constantly. + if ($isConstant) { + return $result; + } + + // Determine if these are constant credentials. + if ($result->getState() === Promise\PromiseInterface::FULFILLED + && !$result->wait()->getExpiration() + ) { + $isConstant = true; + return $result; + } + + // Return credentials that could expire and refresh when needed. + return $result + ->then(function (CredentialsInterface $creds) use ($provider, &$result) { + // Refresh expired credentials. + if (!$creds->isExpired()) { + return $creds; + } + // Refresh the result and forward the promise. + return $result = $provider(); + }); + }; + } + + /** + * Provider that creates credentials from environment variables + * AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and AWS_SESSION_TOKEN. + * + * @return callable + */ + public static function env() + { + return function () { + // Use credentials from environment variables, if available + $key = getenv(self::ENV_KEY); + $secret = getenv(self::ENV_SECRET); + if ($key && $secret) { + return Promise\promise_for( + new Credentials($key, $secret, getenv(self::ENV_SESSION)) + ); + } + + return self::reject('Could not find environment variable ' + . 'credentials in ' . self::ENV_KEY . '/' . self::ENV_SECRET); + }; + } + + /** + * Credential provider that creates credentials using instance profile + * credentials. + * + * @param array $config Array of configuration data. + * + * @return InstanceProfileProvider + * @see Aws\Credentials\InstanceProfileProvider for $config details. + */ + public static function instanceProfile(array $config = []) + { + return new InstanceProfileProvider($config); + } + + /** + * Credentials provider that creates credentials using an ini file stored + * in the current user's home directory. + * + * @param string|null $profile Profile to use. If not specified will use + * the "default" profile. + * @param string|null $filename If provided, uses a custom filename rather + * than looking in the home directory for the + * + * @return callable + */ + public static function ini($profile = null, $filename = null) + { + $filename = $filename ?: (self::getHomeDir() . '/.aws/credentials'); + $profile = $profile ?: (getenv(self::ENV_PROFILE) ?: 'default'); + + return function () use ($profile, $filename) { + if (!is_readable($filename)) { + return self::reject("Cannot read credentials from $filename"); + } + $data = parse_ini_file($filename, true); + if ($data === false) { + return self::reject("Invalid credentials file: $filename"); + } + if (!isset($data[$profile])) { + return self::reject("'$profile' not found in credentials file"); + } + if (!isset($data[$profile]['aws_access_key_id']) + || !isset($data[$profile]['aws_secret_access_key']) + ) { + return self::reject("No credentials present in INI profile " + . "'$profile' ($filename)"); + } + + return Promise\promise_for( + new Credentials( + $data[$profile]['aws_access_key_id'], + $data[$profile]['aws_secret_access_key'], + isset($data[$profile]['aws_security_token']) + ? $data[$profile]['aws_security_token'] + : null + ) + ); + }; + } + + /** + * Gets the environment's HOME directory if available. + * + * @return null|string + */ + private static function getHomeDir() + { + // On Linux/Unix-like systems, use the HOME environment variable + if ($homeDir = getenv('HOME')) { + return $homeDir; + } + + // Get the HOMEDRIVE and HOMEPATH values for Windows hosts + $homeDrive = getenv('HOMEDRIVE'); + $homePath = getenv('HOMEPATH'); + + return ($homeDrive && $homePath) ? $homeDrive . $homePath : null; + } + + private static function reject($msg) + { + return new Promise\RejectedPromise(new CredentialsException($msg)); + } +} diff --git a/lib/aws-sdk/Aws/Credentials/Credentials.php b/lib/aws-sdk/Aws/Credentials/Credentials.php new file mode 100644 index 0000000..30b6e46 --- /dev/null +++ b/lib/aws-sdk/Aws/Credentials/Credentials.php @@ -0,0 +1,66 @@ +key = trim($key); + $this->secret = trim($secret); + $this->token = $token; + $this->expires = $expires; + } + + public function getAccessKeyId() + { + return $this->key; + } + + public function getSecretKey() + { + return $this->secret; + } + + public function getSecurityToken() + { + return $this->token; + } + + public function getExpiration() + { + return $this->expires; + } + + public function isExpired() + { + return $this->expires !== null && time() >= $this->expires; + } + + public function toArray() + { + return [ + 'key' => $this->key, + 'secret' => $this->secret, + 'token' => $this->token, + 'expires' => $this->expires + ]; + } +} diff --git a/lib/aws-sdk/Aws/Credentials/CredentialsInterface.php b/lib/aws-sdk/Aws/Credentials/CredentialsInterface.php new file mode 100644 index 0000000..86fac9d --- /dev/null +++ b/lib/aws-sdk/Aws/Credentials/CredentialsInterface.php @@ -0,0 +1,52 @@ +timeout = isset($config['timeout']) ? $config['timeout'] : 1.0; + $this->profile = isset($config['profile']) ? $config['profile'] : null; + $this->client = isset($config['client']) + ? $config['client'] // internal use only + : \Aws\default_http_handler(); + } + + /** + * Loads instance profile credentials. + * + * @return PromiseInterface + */ + public function __invoke() + { + return Promise\coroutine(function () { + if (!$this->profile) { + $this->profile = (yield $this->request(self::CRED_PATH)); + } + $json = (yield $this->request(self::CRED_PATH . $this->profile)); + $result = $this->decodeResult($json); + yield new Credentials( + $result['AccessKeyId'], + $result['SecretAccessKey'], + $result['Token'], + strtotime($result['Expiration']) + ); + }); + } + + /** + * @param string $url + * @return PromiseInterface Returns a promise that is fulfilled with the + * body of the response as a string. + */ + private function request($url) + { + $fn = $this->client; + $request = new Request('GET', self::SERVER_URI . $url); + + return $fn($request, ['timeout' => $this->timeout]) + ->then(function (ResponseInterface $response) { + return (string) $response->getBody(); + })->otherwise(function (array $reason) { + $reason = $reason['exception']; + $msg = $reason->getMessage(); + throw new CredentialsException( + $this->createErrorMessage($msg, 0, $reason) + ); + }); + } + + private function createErrorMessage($previous) + { + return "Error retrieving credentials from the instance profile " + . "metadata server. ({$previous})"; + } + + private function decodeResult($response) + { + $result = json_decode($response, true); + + if ($result['Code'] !== 'Success') { + throw new CredentialsException('Unexpected instance profile ' + . 'response code: ' . $result['Code']); + } + + return $result; + } +} diff --git a/lib/aws-sdk/Aws/DataPipeline/DataPipelineClient.php b/lib/aws-sdk/Aws/DataPipeline/DataPipelineClient.php index c21cea7..0d806b6 100644 --- a/lib/aws-sdk/Aws/DataPipeline/DataPipelineClient.php +++ b/lib/aws-sdk/Aws/DataPipeline/DataPipelineClient.php @@ -1,83 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/datapipeline-%s.php' - )) - ->setExceptionParser(new JsonQueryExceptionParser()) - ->build(); - - return $client; - } -} +class DataPipelineClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/DataPipeline/Enum/WorkStatus.php b/lib/aws-sdk/Aws/DataPipeline/Enum/WorkStatus.php deleted file mode 100644 index 70231f5..0000000 --- a/lib/aws-sdk/Aws/DataPipeline/Enum/WorkStatus.php +++ /dev/null @@ -1,29 +0,0 @@ - '2012-10-29', - 'endpointPrefix' => 'datapipeline', - 'serviceFullName' => 'AWS Data Pipeline', - 'serviceType' => 'json', - 'jsonVersion' => '1.1', - 'targetPrefix' => 'DataPipeline.', - 'signatureVersion' => 'v4', - 'namespace' => 'DataPipeline', - 'regions' => array( - 'us-east-1' => array( - 'http' => false, - '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( - '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.ActivatePipeline', - ), - 'pipelineId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - '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( - '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', - ), - 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', - ), - ), - ), - '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' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'CreatePipelineOutput', - '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.CreatePipeline', - ), - 'name' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'uniqueId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'description' => array( - 'type' => 'string', - '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', - ), - 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', - ), - ), - ), - 'DeletePipeline' => 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.DeletePipeline', - ), - 'pipelineId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1024, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified pipeline was not found. Verify that you used the correct user and account identifiers.', - 'class' => 'PipelineNotFoundException', - ), - 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', - ), - ), - ), - 'DescribeObjects' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeObjectsOutput', - '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.DescribeObjects', - ), - 'pipelineId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'objectIds' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'id', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 1024, - ), - ), - 'evaluateExpressions' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'marker' => array( - 'type' => 'string', - 'location' => 'json', - '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', - ), - ), - ), - 'DescribePipelines' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribePipelinesOutput', - '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.DescribePipelines', - ), - 'pipelineIds' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'id', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 1024, - ), - ), - ), - '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', - ), - 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', - ), - ), - ), - 'EvaluateExpression' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'EvaluateExpressionOutput', - '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.EvaluateExpression', - ), - 'pipelineId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'objectId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'expression' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 20971520, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'An internal service error occurred.', - 'class' => 'InternalServiceErrorException', - ), - array( - 'reason' => 'The specified task was not found.', - 'class' => 'TaskNotFoundException', - ), - 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', - ), - ), - ), - 'GetPipelineDefinition' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'GetPipelineDefinitionOutput', - '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.GetPipelineDefinition', - ), - 'pipelineId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'version' => array( - 'type' => 'string', - 'location' => 'json', - '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', - ), - ), - ), - 'ListPipelines' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ListPipelinesOutput', - '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.ListPipelines', - ), - 'marker' => array( - 'type' => 'string', - 'location' => 'json', - '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', - ), - ), - ), - 'PollForTask' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'PollForTaskOutput', - '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.PollForTask', - ), - 'workerGroup' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 1024, - ), - 'hostname' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'instanceIdentity' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'document' => array( - 'type' => 'string', - 'maxLength' => 1024, - ), - 'signature' => array( - '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 task was not found.', - 'class' => 'TaskNotFoundException', - ), - ), - ), - 'PutPipelineDefinition' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'PutPipelineDefinitionOutput', - '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.PutPipelineDefinition', - ), - 'pipelineId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'pipelineObjects' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'PipelineObject', - 'type' => 'object', - 'properties' => array( - 'id' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'fields' => array( - 'required' => true, - 'type' => 'array', - '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, - ), - ), - ), - ), - ), - ), - ), - '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( - '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', - ), - ), - ), - 'QueryObjects' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'QueryObjectsOutput', - '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.QueryObjects', - ), - 'pipelineId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'query' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'selectors' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Selector', - 'type' => 'object', - 'properties' => array( - 'fieldName' => array( - 'type' => 'string', - 'maxLength' => 1024, - ), - 'operator' => array( - 'type' => 'object', - 'properties' => array( - '' => array( - ), - ), - ), - ), - ), - ), - ), - ), - 'sphere' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 1024, - ), - 'marker' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 1024, - ), - 'limit' => array( - 'type' => 'numeric', - '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', - ), - 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', - ), - ), - ), - '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' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ReportTaskProgressOutput', - '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.ReportTaskProgress', - ), - 'taskId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - '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( - '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 task was not found.', - 'class' => 'TaskNotFoundException', - ), - 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', - ), - ), - ), - 'ReportTaskRunnerHeartbeat' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ReportTaskRunnerHeartbeatOutput', - '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.ReportTaskRunnerHeartbeat', - ), - 'taskrunnerId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'workerGroup' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 1024, - ), - 'hostname' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - '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', - ), - ), - ), - 'SetStatus' => 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.SetStatus', - ), - 'pipelineId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'objectIds' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'id', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 1024, - ), - ), - 'status' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 1024, - ), - ), - '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', - ), - 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', - ), - ), - ), - 'SetTaskStatus' => 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.SetTaskStatus', - ), - 'taskId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 2048, - ), - 'taskStatus' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'errorId' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 1024, - ), - 'errorMessage' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'errorStackTrace' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 1024, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'An internal service error occurred.', - 'class' => 'InternalServiceErrorException', - ), - array( - 'reason' => 'The specified task was not found.', - 'class' => 'TaskNotFoundException', - ), - 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', - ), - ), - ), - 'ValidatePipelineDefinition' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ValidatePipelineDefinitionOutput', - '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.ValidatePipelineDefinition', - ), - 'pipelineId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'pipelineObjects' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'PipelineObject', - 'type' => 'object', - 'properties' => array( - 'id' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'fields' => array( - 'required' => true, - 'type' => 'array', - '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, - ), - ), - ), - ), - ), - ), - ), - '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( - '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', - ), - ), - ), - ), - 'models' => array( - 'EmptyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), - 'CreatePipelineOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'pipelineId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DescribeObjectsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'pipelineObjects' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'PipelineObject', - 'type' => 'object', - 'properties' => array( - 'id' => array( - 'type' => 'string', - ), - 'name' => array( - 'type' => 'string', - ), - 'fields' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Field', - 'type' => 'object', - 'properties' => array( - 'key' => array( - 'type' => 'string', - ), - 'stringValue' => array( - 'type' => 'string', - ), - 'refValue' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'hasMoreResults' => array( - 'type' => 'boolean', - 'location' => 'json', - ), - ), - ), - 'DescribePipelinesOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'pipelineDescriptionList' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'PipelineDescription', - 'type' => 'object', - 'properties' => array( - 'pipelineId' => array( - 'type' => 'string', - ), - 'name' => array( - 'type' => 'string', - ), - 'fields' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Field', - 'type' => 'object', - 'properties' => array( - 'key' => array( - 'type' => 'string', - ), - 'stringValue' => array( - 'type' => 'string', - ), - 'refValue' => array( - 'type' => 'string', - ), - ), - ), - ), - 'description' => array( - 'type' => 'string', - ), - 'tags' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Tag', - 'type' => 'object', - 'properties' => array( - 'key' => array( - 'type' => 'string', - ), - 'value' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'EvaluateExpressionOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'evaluatedExpression' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'GetPipelineDefinitionOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'pipelineObjects' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'PipelineObject', - 'type' => 'object', - 'properties' => array( - 'id' => array( - 'type' => 'string', - ), - 'name' => array( - 'type' => 'string', - ), - 'fields' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Field', - 'type' => 'object', - 'properties' => array( - 'key' => array( - 'type' => 'string', - ), - 'stringValue' => array( - 'type' => 'string', - ), - 'refValue' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - '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( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'pipelineIdList' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'PipelineIdName', - 'type' => 'object', - 'properties' => array( - 'id' => array( - 'type' => 'string', - ), - 'name' => array( - 'type' => 'string', - ), - ), - ), - ), - 'marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'hasMoreResults' => array( - 'type' => 'boolean', - 'location' => 'json', - ), - ), - ), - 'PollForTaskOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'taskObject' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'taskId' => array( - 'type' => 'string', - ), - 'pipelineId' => array( - 'type' => 'string', - ), - 'attemptId' => array( - 'type' => 'string', - ), - 'objects' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'object', - 'properties' => array( - 'id' => array( - 'type' => 'string', - ), - 'name' => array( - 'type' => 'string', - ), - 'fields' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Field', - 'type' => 'object', - 'properties' => array( - 'key' => array( - 'type' => 'string', - ), - 'stringValue' => array( - 'type' => 'string', - ), - 'refValue' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'PutPipelineDefinitionOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'validationErrors' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'ValidationError', - 'type' => 'object', - 'properties' => array( - 'id' => array( - 'type' => 'string', - ), - 'errors' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'validationMessage', - 'type' => 'string', - ), - ), - ), - ), - ), - 'validationWarnings' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'ValidationWarning', - 'type' => 'object', - 'properties' => array( - 'id' => array( - 'type' => 'string', - ), - 'warnings' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'validationMessage', - 'type' => 'string', - ), - ), - ), - ), - ), - 'errored' => array( - 'type' => 'boolean', - 'location' => 'json', - ), - ), - ), - 'QueryObjectsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ids' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'id', - 'type' => 'string', - ), - ), - 'marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'hasMoreResults' => array( - 'type' => 'boolean', - 'location' => 'json', - ), - ), - ), - 'ReportTaskProgressOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'canceled' => array( - 'type' => 'boolean', - 'location' => 'json', - ), - ), - ), - 'ReportTaskRunnerHeartbeatOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'terminate' => array( - 'type' => 'boolean', - 'location' => 'json', - ), - ), - ), - 'ValidatePipelineDefinitionOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'validationErrors' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'ValidationError', - 'type' => 'object', - 'properties' => array( - 'id' => array( - 'type' => 'string', - ), - 'errors' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'validationMessage', - 'type' => 'string', - ), - ), - ), - ), - ), - 'validationWarnings' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'ValidationWarning', - 'type' => 'object', - 'properties' => array( - 'id' => array( - 'type' => 'string', - ), - 'warnings' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'validationMessage', - 'type' => 'string', - ), - ), - ), - ), - ), - 'errored' => array( - 'type' => 'boolean', - 'location' => 'json', - ), - ), - ), - ), - '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/lib/aws-sdk/Aws/DirectConnect/DirectConnectClient.php b/lib/aws-sdk/Aws/DirectConnect/DirectConnectClient.php index fab45ce..fb6415d 100644 --- a/lib/aws-sdk/Aws/DirectConnect/DirectConnectClient.php +++ b/lib/aws-sdk/Aws/DirectConnect/DirectConnectClient.php @@ -1,82 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/directconnect-%s.php' - )) - ->setExceptionParser(new JsonQueryExceptionParser()) - ->build(); - } -} +class DirectConnectClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/DirectConnect/Enum/ConnectionState.php b/lib/aws-sdk/Aws/DirectConnect/Enum/ConnectionState.php deleted file mode 100644 index fdd48a4..0000000 --- a/lib/aws-sdk/Aws/DirectConnect/Enum/ConnectionState.php +++ /dev/null @@ -1,34 +0,0 @@ - '2012-10-25', - 'endpointPrefix' => 'directconnect', - 'serviceFullName' => 'AWS Direct Connect', - 'serviceType' => 'json', - 'jsonVersion' => '1.1', - 'targetPrefix' => 'OvertureService.', - 'signatureVersion' => 'v4', - 'namespace' => 'DirectConnect', - 'regions' => array( - 'us-east-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'directconnect.us-east-1.amazonaws.com', - ), - 'us-west-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'directconnect.us-west-1.amazonaws.com', - ), - 'us-west-2' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'directconnect.us-west-2.amazonaws.com', - ), - 'eu-west-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'directconnect.eu-west-1.amazonaws.com', - ), - 'ap-northeast-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'directconnect.ap-northeast-1.amazonaws.com', - ), - 'ap-southeast-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'directconnect.ap-southeast-1.amazonaws.com', - ), - 'ap-southeast-2' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'directconnect.ap-southeast-2.amazonaws.com', - ), - 'sa-east-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'directconnect.sa-east-1.amazonaws.com', - ), - ), - 'operations' => array( - 'AllocateConnectionOnInterconnect' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'Connection', - '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' => 'OvertureService.AllocateConnectionOnInterconnect', - ), - 'bandwidth' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'connectionName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'ownerAccount' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'interconnectId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'vlan' => array( - 'required' => true, - 'type' => 'numeric', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'A server-side error occurred during the API call. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectServerException', - ), - array( - 'reason' => 'The API was called with invalid parameters. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectClientException', - ), - ), - ), - 'AllocatePrivateVirtualInterface' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'VirtualInterface', - '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' => 'OvertureService.AllocatePrivateVirtualInterface', - ), - 'connectionId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'ownerAccount' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'newPrivateVirtualInterfaceAllocation' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'virtualInterfaceName' => array( - 'required' => true, - 'type' => 'string', - ), - 'vlan' => array( - 'required' => true, - 'type' => 'numeric', - ), - 'asn' => array( - 'required' => true, - 'type' => 'numeric', - ), - 'authKey' => array( - 'type' => 'string', - ), - 'amazonAddress' => array( - 'type' => 'string', - ), - 'customerAddress' => array( - 'type' => 'string', - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'A server-side error occurred during the API call. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectServerException', - ), - array( - 'reason' => 'The API was called with invalid parameters. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectClientException', - ), - ), - ), - 'AllocatePublicVirtualInterface' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'VirtualInterface', - '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' => 'OvertureService.AllocatePublicVirtualInterface', - ), - 'connectionId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'ownerAccount' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'newPublicVirtualInterfaceAllocation' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'virtualInterfaceName' => array( - 'required' => true, - 'type' => 'string', - ), - 'vlan' => array( - 'required' => true, - 'type' => 'numeric', - ), - 'asn' => array( - 'required' => true, - 'type' => 'numeric', - ), - 'authKey' => array( - 'type' => 'string', - ), - 'amazonAddress' => array( - 'required' => true, - 'type' => 'string', - ), - 'customerAddress' => array( - 'required' => true, - 'type' => 'string', - ), - 'routeFilterPrefixes' => array( - 'required' => true, - 'type' => 'array', - 'items' => array( - 'name' => 'RouteFilterPrefix', - 'type' => 'object', - 'properties' => array( - 'cidr' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'A server-side error occurred during the API call. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectServerException', - ), - array( - 'reason' => 'The API was called with invalid parameters. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectClientException', - ), - ), - ), - 'ConfirmConnection' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ConfirmConnectionResponse', - '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' => 'OvertureService.ConfirmConnection', - ), - 'connectionId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'A server-side error occurred during the API call. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectServerException', - ), - array( - 'reason' => 'The API was called with invalid parameters. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectClientException', - ), - ), - ), - 'ConfirmPrivateVirtualInterface' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ConfirmPrivateVirtualInterfaceResponse', - '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' => 'OvertureService.ConfirmPrivateVirtualInterface', - ), - 'virtualInterfaceId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'virtualGatewayId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'A server-side error occurred during the API call. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectServerException', - ), - array( - 'reason' => 'The API was called with invalid parameters. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectClientException', - ), - ), - ), - 'ConfirmPublicVirtualInterface' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ConfirmPublicVirtualInterfaceResponse', - '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' => 'OvertureService.ConfirmPublicVirtualInterface', - ), - 'virtualInterfaceId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'A server-side error occurred during the API call. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectServerException', - ), - array( - 'reason' => 'The API was called with invalid parameters. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectClientException', - ), - ), - ), - 'CreateConnection' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'Connection', - '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' => 'OvertureService.CreateConnection', - ), - 'location' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'bandwidth' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'connectionName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'A server-side error occurred during the API call. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectServerException', - ), - array( - 'reason' => 'The API was called with invalid parameters. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectClientException', - ), - ), - ), - 'CreateInterconnect' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'Interconnect', - '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' => 'OvertureService.CreateInterconnect', - ), - 'interconnectName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'bandwidth' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'location' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'A server-side error occurred during the API call. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectServerException', - ), - array( - 'reason' => 'The API was called with invalid parameters. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectClientException', - ), - ), - ), - 'CreatePrivateVirtualInterface' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'VirtualInterface', - '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' => 'OvertureService.CreatePrivateVirtualInterface', - ), - 'connectionId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'newPrivateVirtualInterface' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'virtualInterfaceName' => array( - 'required' => true, - 'type' => 'string', - ), - 'vlan' => array( - 'required' => true, - 'type' => 'numeric', - ), - 'asn' => array( - 'required' => true, - 'type' => 'numeric', - ), - 'authKey' => array( - 'type' => 'string', - ), - 'amazonAddress' => array( - 'type' => 'string', - ), - 'customerAddress' => array( - 'type' => 'string', - ), - 'virtualGatewayId' => array( - 'required' => true, - 'type' => 'string', - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'A server-side error occurred during the API call. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectServerException', - ), - array( - 'reason' => 'The API was called with invalid parameters. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectClientException', - ), - ), - ), - 'CreatePublicVirtualInterface' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'VirtualInterface', - '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' => 'OvertureService.CreatePublicVirtualInterface', - ), - 'connectionId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'newPublicVirtualInterface' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'virtualInterfaceName' => array( - 'required' => true, - 'type' => 'string', - ), - 'vlan' => array( - 'required' => true, - 'type' => 'numeric', - ), - 'asn' => array( - 'required' => true, - 'type' => 'numeric', - ), - 'authKey' => array( - 'type' => 'string', - ), - 'amazonAddress' => array( - 'required' => true, - 'type' => 'string', - ), - 'customerAddress' => array( - 'required' => true, - 'type' => 'string', - ), - 'routeFilterPrefixes' => array( - 'required' => true, - 'type' => 'array', - 'items' => array( - 'name' => 'RouteFilterPrefix', - 'type' => 'object', - 'properties' => array( - 'cidr' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'A server-side error occurred during the API call. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectServerException', - ), - array( - 'reason' => 'The API was called with invalid parameters. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectClientException', - ), - ), - ), - 'DeleteConnection' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'Connection', - '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' => 'OvertureService.DeleteConnection', - ), - 'connectionId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'A server-side error occurred during the API call. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectServerException', - ), - array( - 'reason' => 'The API was called with invalid parameters. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectClientException', - ), - ), - ), - 'DeleteInterconnect' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DeleteInterconnectResponse', - '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' => 'OvertureService.DeleteInterconnect', - ), - 'interconnectId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'A server-side error occurred during the API call. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectServerException', - ), - array( - 'reason' => 'The API was called with invalid parameters. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectClientException', - ), - ), - ), - 'DeleteVirtualInterface' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DeleteVirtualInterfaceResponse', - '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' => 'OvertureService.DeleteVirtualInterface', - ), - 'virtualInterfaceId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'A server-side error occurred during the API call. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectServerException', - ), - array( - 'reason' => 'The API was called with invalid parameters. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectClientException', - ), - ), - ), - 'DescribeConnections' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'Connections', - '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' => 'OvertureService.DescribeConnections', - ), - 'connectionId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'A server-side error occurred during the API call. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectServerException', - ), - array( - 'reason' => 'The API was called with invalid parameters. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectClientException', - ), - ), - ), - 'DescribeConnectionsOnInterconnect' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'Connections', - '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' => 'OvertureService.DescribeConnectionsOnInterconnect', - ), - 'interconnectId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'A server-side error occurred during the API call. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectServerException', - ), - array( - 'reason' => 'The API was called with invalid parameters. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectClientException', - ), - ), - ), - 'DescribeInterconnects' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'Interconnects', - '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' => 'OvertureService.DescribeInterconnects', - ), - 'interconnectId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'A server-side error occurred during the API call. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectServerException', - ), - array( - 'reason' => 'The API was called with invalid parameters. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectClientException', - ), - ), - ), - 'DescribeLocations' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'Locations', - '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' => 'OvertureService.DescribeLocations', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'A server-side error occurred during the API call. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectServerException', - ), - array( - 'reason' => 'The API was called with invalid parameters. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectClientException', - ), - ), - ), - 'DescribeVirtualGateways' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'VirtualGateways', - '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' => 'OvertureService.DescribeVirtualGateways', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'A server-side error occurred during the API call. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectServerException', - ), - array( - 'reason' => 'The API was called with invalid parameters. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectClientException', - ), - ), - ), - 'DescribeVirtualInterfaces' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'VirtualInterfaces', - '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' => 'OvertureService.DescribeVirtualInterfaces', - ), - 'connectionId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'virtualInterfaceId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'A server-side error occurred during the API call. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectServerException', - ), - array( - 'reason' => 'The API was called with invalid parameters. The error message will contain additional details about the cause.', - 'class' => 'DirectConnectClientException', - ), - ), - ), - ), - 'models' => array( - 'Connection' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ownerAccount' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'connectionId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'connectionName' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'connectionState' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'region' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'location' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'bandwidth' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'vlan' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'partnerName' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'VirtualInterface' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ownerAccount' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'virtualInterfaceId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'location' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'connectionId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'virtualInterfaceType' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'virtualInterfaceName' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'vlan' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'asn' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'authKey' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'amazonAddress' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'customerAddress' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'virtualInterfaceState' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'customerRouterConfig' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'virtualGatewayId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'routeFilterPrefixes' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'RouteFilterPrefix', - 'type' => 'object', - 'properties' => array( - 'cidr' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'ConfirmConnectionResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'connectionState' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'ConfirmPrivateVirtualInterfaceResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'virtualInterfaceState' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'ConfirmPublicVirtualInterfaceResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'virtualInterfaceState' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'Interconnect' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'interconnectId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'interconnectName' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'interconnectState' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'region' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'location' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'bandwidth' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DeleteInterconnectResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'interconnectState' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DeleteVirtualInterfaceResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'virtualInterfaceState' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'Connections' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'connections' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Connection', - 'type' => 'object', - 'properties' => array( - 'ownerAccount' => array( - 'type' => 'string', - ), - 'connectionId' => array( - 'type' => 'string', - ), - 'connectionName' => array( - 'type' => 'string', - ), - 'connectionState' => array( - 'type' => 'string', - ), - 'region' => array( - 'type' => 'string', - ), - 'location' => array( - 'type' => 'string', - ), - 'bandwidth' => array( - 'type' => 'string', - ), - 'vlan' => array( - 'type' => 'numeric', - ), - 'partnerName' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'Interconnects' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'interconnects' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Interconnect', - 'type' => 'object', - 'properties' => array( - 'interconnectId' => array( - 'type' => 'string', - ), - 'interconnectName' => array( - 'type' => 'string', - ), - 'interconnectState' => array( - 'type' => 'string', - ), - 'region' => array( - 'type' => 'string', - ), - 'location' => array( - 'type' => 'string', - ), - 'bandwidth' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'Locations' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'locations' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Location', - 'type' => 'object', - 'properties' => array( - 'locationCode' => array( - 'type' => 'string', - ), - 'locationName' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'VirtualGateways' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'virtualGateways' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'VirtualGateway', - 'type' => 'object', - 'properties' => array( - 'virtualGatewayId' => array( - 'type' => 'string', - ), - 'virtualGatewayState' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'VirtualInterfaces' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'virtualInterfaces' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'VirtualInterface', - 'type' => 'object', - 'properties' => array( - 'ownerAccount' => array( - 'type' => 'string', - ), - 'virtualInterfaceId' => array( - 'type' => 'string', - ), - 'location' => array( - 'type' => 'string', - ), - 'connectionId' => array( - 'type' => 'string', - ), - 'virtualInterfaceType' => array( - 'type' => 'string', - ), - 'virtualInterfaceName' => array( - 'type' => 'string', - ), - 'vlan' => array( - 'type' => 'numeric', - ), - 'asn' => array( - 'type' => 'numeric', - ), - 'authKey' => array( - 'type' => 'string', - ), - 'amazonAddress' => array( - 'type' => 'string', - ), - 'customerAddress' => array( - 'type' => 'string', - ), - 'virtualInterfaceState' => array( - 'type' => 'string', - ), - 'customerRouterConfig' => array( - 'type' => 'string', - ), - 'virtualGatewayId' => array( - 'type' => 'string', - ), - 'routeFilterPrefixes' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'RouteFilterPrefix', - 'type' => 'object', - 'properties' => array( - 'cidr' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - '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/lib/aws-sdk/Aws/DirectoryService/DirectoryServiceClient.php b/lib/aws-sdk/Aws/DirectoryService/DirectoryServiceClient.php index 1bfb320..b9816e7 100644 --- a/lib/aws-sdk/Aws/DirectoryService/DirectoryServiceClient.php +++ b/lib/aws-sdk/Aws/DirectoryService/DirectoryServiceClient.php @@ -1,61 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/directoryservice-%s.php' - )) - ->setExceptionParser(new JsonQueryExceptionParser()) - ->build(); - } -} +class DirectoryServiceClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/DirectoryService/Exception/DirectoryServiceException.php b/lib/aws-sdk/Aws/DirectoryService/Exception/DirectoryServiceException.php index 9c2e868..e6b72f5 100644 --- a/lib/aws-sdk/Aws/DirectoryService/Exception/DirectoryServiceException.php +++ b/lib/aws-sdk/Aws/DirectoryService/Exception/DirectoryServiceException.php @@ -1,10 +1,9 @@ '2015-04-16', - 'endpointPrefix' => 'ds', - 'serviceFullName' => 'AWS Directory Service', - 'serviceAbbreviation' => 'Directory Service', - 'serviceType' => 'json', - 'jsonVersion' => '1.1', - 'targetPrefix' => 'DirectoryService_20150416.', - 'signatureVersion' => 'v4', - 'namespace' => 'DirectoryService', - 'operations' => array( - 'ConnectDirectory' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ConnectDirectoryResult', - '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' => 'DirectoryService_20150416.ConnectDirectory', - ), - 'Name' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'ShortName' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Password' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 128, - ), - 'Description' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 128, - ), - 'Size' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'ConnectSettings' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'VpcId' => array( - 'required' => true, - 'type' => 'string', - ), - 'SubnetIds' => array( - 'required' => true, - 'type' => 'array', - 'items' => array( - 'name' => 'SubnetId', - 'type' => 'string', - ), - ), - 'CustomerDnsIps' => array( - 'required' => true, - 'type' => 'array', - 'items' => array( - 'name' => 'IpAddr', - 'type' => 'string', - ), - ), - 'CustomerUserName' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The maximum number of directories in the region has been reached. You can use the GetDirectoryLimits operation to determine your directory limits in the region.', - 'class' => 'DirectoryLimitExceededException', - ), - array( - 'reason' => 'One or more parameters are not valid.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'A client exception has occurred.', - 'class' => 'ClientException', - ), - array( - 'reason' => 'An exception has occurred in AWS Directory Service.', - 'class' => 'ServiceException', - ), - ), - ), - 'CreateAlias' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'CreateAliasResult', - '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' => 'DirectoryService_20150416.CreateAlias', - ), - 'DirectoryId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'Alias' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 62, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified entity already exists.', - 'class' => 'EntityAlreadyExistsException', - ), - array( - 'reason' => 'The specified entity could not be found.', - 'class' => 'EntityDoesNotExistException', - ), - array( - 'reason' => 'One or more parameters are not valid.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'A client exception has occurred.', - 'class' => 'ClientException', - ), - array( - 'reason' => 'An exception has occurred in AWS Directory Service.', - 'class' => 'ServiceException', - ), - ), - ), - 'CreateComputer' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'CreateComputerResult', - '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' => 'DirectoryService_20150416.CreateComputer', - ), - 'DirectoryId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'ComputerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 15, - ), - 'Password' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 8, - 'maxLength' => 64, - ), - 'OrganizationalUnitDistinguishedName' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 2000, - ), - 'ComputerAttributes' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Attribute', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - 'minLength' => 1, - ), - 'Value' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'An authentication error occurred.', - 'class' => 'AuthenticationFailedException', - ), - array( - 'reason' => 'The specified directory is unavailable or could not be found.', - 'class' => 'DirectoryUnavailableException', - ), - array( - 'reason' => 'The specified entity already exists.', - 'class' => 'EntityAlreadyExistsException', - ), - array( - 'reason' => 'The specified entity could not be found.', - 'class' => 'EntityDoesNotExistException', - ), - array( - 'reason' => 'One or more parameters are not valid.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'The operation is not supported.', - 'class' => 'UnsupportedOperationException', - ), - array( - 'reason' => 'A client exception has occurred.', - 'class' => 'ClientException', - ), - array( - 'reason' => 'An exception has occurred in AWS Directory Service.', - 'class' => 'ServiceException', - ), - ), - ), - 'CreateDirectory' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'CreateDirectoryResult', - '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' => 'DirectoryService_20150416.CreateDirectory', - ), - 'Name' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'ShortName' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Password' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'Description' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 128, - ), - 'Size' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'VpcSettings' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'VpcId' => array( - 'required' => true, - 'type' => 'string', - ), - 'SubnetIds' => array( - 'required' => true, - 'type' => 'array', - 'items' => array( - 'name' => 'SubnetId', - 'type' => 'string', - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The maximum number of directories in the region has been reached. You can use the GetDirectoryLimits operation to determine your directory limits in the region.', - 'class' => 'DirectoryLimitExceededException', - ), - array( - 'reason' => 'One or more parameters are not valid.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'A client exception has occurred.', - 'class' => 'ClientException', - ), - array( - 'reason' => 'An exception has occurred in AWS Directory Service.', - 'class' => 'ServiceException', - ), - ), - ), - 'CreateSnapshot' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'CreateSnapshotResult', - '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' => 'DirectoryService_20150416.CreateSnapshot', - ), - 'DirectoryId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'Name' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 128, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified entity could not be found.', - 'class' => 'EntityDoesNotExistException', - ), - array( - 'reason' => 'One or more parameters are not valid.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'The maximum number of manual snapshots for the directory has been reached. You can use the GetSnapshotLimits operation to determine the snapshot limits for a directory.', - 'class' => 'SnapshotLimitExceededException', - ), - array( - 'reason' => 'A client exception has occurred.', - 'class' => 'ClientException', - ), - array( - 'reason' => 'An exception has occurred in AWS Directory Service.', - 'class' => 'ServiceException', - ), - ), - ), - 'DeleteDirectory' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DeleteDirectoryResult', - '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' => 'DirectoryService_20150416.DeleteDirectory', - ), - 'DirectoryId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified entity could not be found.', - 'class' => 'EntityDoesNotExistException', - ), - array( - 'reason' => 'A client exception has occurred.', - 'class' => 'ClientException', - ), - array( - 'reason' => 'An exception has occurred in AWS Directory Service.', - 'class' => 'ServiceException', - ), - ), - ), - 'DeleteSnapshot' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DeleteSnapshotResult', - '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' => 'DirectoryService_20150416.DeleteSnapshot', - ), - 'SnapshotId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified entity could not be found.', - 'class' => 'EntityDoesNotExistException', - ), - array( - 'reason' => 'One or more parameters are not valid.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'A client exception has occurred.', - 'class' => 'ClientException', - ), - array( - 'reason' => 'An exception has occurred in AWS Directory Service.', - 'class' => 'ServiceException', - ), - ), - ), - 'DescribeDirectories' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeDirectoriesResult', - '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' => 'DirectoryService_20150416.DescribeDirectories', - ), - 'DirectoryIds' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'DirectoryId', - 'type' => 'string', - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Limit' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified entity could not be found.', - 'class' => 'EntityDoesNotExistException', - ), - array( - 'reason' => 'One or more parameters are not valid.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'The NextToken value is not valid.', - 'class' => 'InvalidNextTokenException', - ), - array( - 'reason' => 'A client exception has occurred.', - 'class' => 'ClientException', - ), - array( - 'reason' => 'An exception has occurred in AWS Directory Service.', - 'class' => 'ServiceException', - ), - ), - ), - 'DescribeSnapshots' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeSnapshotsResult', - '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' => 'DirectoryService_20150416.DescribeSnapshots', - ), - 'DirectoryId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'SnapshotIds' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'SnapshotId', - 'type' => 'string', - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Limit' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified entity could not be found.', - 'class' => 'EntityDoesNotExistException', - ), - array( - 'reason' => 'One or more parameters are not valid.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'The NextToken value is not valid.', - 'class' => 'InvalidNextTokenException', - ), - array( - 'reason' => 'A client exception has occurred.', - 'class' => 'ClientException', - ), - array( - 'reason' => 'An exception has occurred in AWS Directory Service.', - 'class' => 'ServiceException', - ), - ), - ), - 'DisableRadius' => 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' => 'DirectoryService_20150416.DisableRadius', - ), - 'DirectoryId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified entity could not be found.', - 'class' => 'EntityDoesNotExistException', - ), - array( - 'reason' => 'A client exception has occurred.', - 'class' => 'ClientException', - ), - array( - 'reason' => 'An exception has occurred in AWS Directory Service.', - 'class' => 'ServiceException', - ), - ), - ), - 'DisableSso' => 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' => 'DirectoryService_20150416.DisableSso', - ), - 'DirectoryId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'UserName' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - ), - 'Password' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 128, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified entity could not be found.', - 'class' => 'EntityDoesNotExistException', - ), - array( - 'reason' => 'The account does not have sufficient permission to perform the operation.', - 'class' => 'InsufficientPermissionsException', - ), - array( - 'reason' => 'An authentication error occurred.', - 'class' => 'AuthenticationFailedException', - ), - array( - 'reason' => 'A client exception has occurred.', - 'class' => 'ClientException', - ), - array( - 'reason' => 'An exception has occurred in AWS Directory Service.', - 'class' => 'ServiceException', - ), - ), - ), - 'EnableRadius' => 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' => 'DirectoryService_20150416.EnableRadius', - ), - 'DirectoryId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'RadiusSettings' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'RadiusServers' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Server', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - 'RadiusPort' => array( - 'type' => 'numeric', - 'minimum' => 1025, - 'maximum' => 65535, - ), - 'RadiusTimeout' => array( - 'type' => 'numeric', - 'minimum' => 1, - 'maximum' => 20, - ), - 'RadiusRetries' => array( - 'type' => 'numeric', - 'maximum' => 10, - ), - 'SharedSecret' => array( - 'type' => 'string', - 'minLength' => 8, - 'maxLength' => 512, - ), - 'AuthenticationProtocol' => array( - 'type' => 'string', - ), - 'DisplayLabel' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 64, - ), - 'UseSameUsername' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'One or more parameters are not valid.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'The specified entity already exists.', - 'class' => 'EntityAlreadyExistsException', - ), - array( - 'reason' => 'The specified entity could not be found.', - 'class' => 'EntityDoesNotExistException', - ), - array( - 'reason' => 'A client exception has occurred.', - 'class' => 'ClientException', - ), - array( - 'reason' => 'An exception has occurred in AWS Directory Service.', - 'class' => 'ServiceException', - ), - ), - ), - 'EnableSso' => 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' => 'DirectoryService_20150416.EnableSso', - ), - 'DirectoryId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'UserName' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - ), - 'Password' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 128, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified entity could not be found.', - 'class' => 'EntityDoesNotExistException', - ), - array( - 'reason' => 'The account does not have sufficient permission to perform the operation.', - 'class' => 'InsufficientPermissionsException', - ), - array( - 'reason' => 'An authentication error occurred.', - 'class' => 'AuthenticationFailedException', - ), - array( - 'reason' => 'A client exception has occurred.', - 'class' => 'ClientException', - ), - array( - 'reason' => 'An exception has occurred in AWS Directory Service.', - 'class' => 'ServiceException', - ), - ), - ), - 'GetDirectoryLimits' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'GetDirectoryLimitsResult', - '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' => 'DirectoryService_20150416.GetDirectoryLimits', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified entity could not be found.', - 'class' => 'EntityDoesNotExistException', - ), - array( - 'reason' => 'A client exception has occurred.', - 'class' => 'ClientException', - ), - array( - 'reason' => 'An exception has occurred in AWS Directory Service.', - 'class' => 'ServiceException', - ), - ), - ), - 'GetSnapshotLimits' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'GetSnapshotLimitsResult', - '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' => 'DirectoryService_20150416.GetSnapshotLimits', - ), - 'DirectoryId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified entity could not be found.', - 'class' => 'EntityDoesNotExistException', - ), - array( - 'reason' => 'A client exception has occurred.', - 'class' => 'ClientException', - ), - array( - 'reason' => 'An exception has occurred in AWS Directory Service.', - 'class' => 'ServiceException', - ), - ), - ), - 'RestoreFromSnapshot' => 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' => 'DirectoryService_20150416.RestoreFromSnapshot', - ), - 'SnapshotId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified entity could not be found.', - 'class' => 'EntityDoesNotExistException', - ), - array( - 'reason' => 'One or more parameters are not valid.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'A client exception has occurred.', - 'class' => 'ClientException', - ), - array( - 'reason' => 'An exception has occurred in AWS Directory Service.', - 'class' => 'ServiceException', - ), - ), - ), - 'UpdateRadius' => 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' => 'DirectoryService_20150416.UpdateRadius', - ), - 'DirectoryId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'RadiusSettings' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'RadiusServers' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Server', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - 'RadiusPort' => array( - 'type' => 'numeric', - 'minimum' => 1025, - 'maximum' => 65535, - ), - 'RadiusTimeout' => array( - 'type' => 'numeric', - 'minimum' => 1, - 'maximum' => 20, - ), - 'RadiusRetries' => array( - 'type' => 'numeric', - 'maximum' => 10, - ), - 'SharedSecret' => array( - 'type' => 'string', - 'minLength' => 8, - 'maxLength' => 512, - ), - 'AuthenticationProtocol' => array( - 'type' => 'string', - ), - 'DisplayLabel' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 64, - ), - 'UseSameUsername' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'One or more parameters are not valid.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'The specified entity could not be found.', - 'class' => 'EntityDoesNotExistException', - ), - array( - 'reason' => 'A client exception has occurred.', - 'class' => 'ClientException', - ), - array( - 'reason' => 'An exception has occurred in AWS Directory Service.', - 'class' => 'ServiceException', - ), - ), - ), - ), - 'models' => array( - 'ConnectDirectoryResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'DirectoryId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'CreateAliasResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'DirectoryId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Alias' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'CreateComputerResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Computer' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'ComputerId' => array( - 'type' => 'string', - ), - 'ComputerName' => array( - 'type' => 'string', - ), - 'ComputerAttributes' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Attribute', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - 'CreateDirectoryResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'DirectoryId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'CreateSnapshotResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'SnapshotId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DeleteDirectoryResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'DirectoryId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DeleteSnapshotResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'SnapshotId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DescribeDirectoriesResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'DirectoryDescriptions' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'DirectoryDescription', - 'type' => 'object', - 'properties' => array( - 'DirectoryId' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - 'ShortName' => array( - 'type' => 'string', - ), - 'Size' => array( - 'type' => 'string', - ), - 'Alias' => array( - 'type' => 'string', - ), - 'AccessUrl' => array( - 'type' => 'string', - ), - 'Description' => array( - 'type' => 'string', - ), - 'DnsIpAddrs' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'IpAddr', - 'type' => 'string', - ), - ), - 'Stage' => array( - 'type' => 'string', - ), - 'LaunchTime' => array( - 'type' => 'string', - ), - 'StageLastUpdatedDateTime' => array( - 'type' => 'string', - ), - 'Type' => array( - 'type' => 'string', - ), - 'VpcSettings' => array( - 'type' => 'object', - 'properties' => array( - 'VpcId' => array( - 'type' => 'string', - ), - 'SubnetIds' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'SubnetId', - 'type' => 'string', - ), - ), - 'SecurityGroupId' => array( - 'type' => 'string', - ), - 'AvailabilityZones' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AvailabilityZone', - 'type' => 'string', - ), - ), - ), - ), - 'ConnectSettings' => array( - 'type' => 'object', - 'properties' => array( - 'VpcId' => array( - 'type' => 'string', - ), - 'SubnetIds' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'SubnetId', - 'type' => 'string', - ), - ), - 'CustomerUserName' => array( - 'type' => 'string', - ), - 'SecurityGroupId' => array( - 'type' => 'string', - ), - 'AvailabilityZones' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AvailabilityZone', - 'type' => 'string', - ), - ), - 'ConnectIps' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'IpAddr', - 'type' => 'string', - ), - ), - ), - ), - 'RadiusSettings' => array( - 'type' => 'object', - 'properties' => array( - 'RadiusServers' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Server', - 'type' => 'string', - ), - ), - 'RadiusPort' => array( - 'type' => 'numeric', - ), - 'RadiusTimeout' => array( - 'type' => 'numeric', - ), - 'RadiusRetries' => array( - 'type' => 'numeric', - ), - 'SharedSecret' => array( - 'type' => 'string', - ), - 'AuthenticationProtocol' => array( - 'type' => 'string', - ), - 'DisplayLabel' => array( - 'type' => 'string', - ), - 'UseSameUsername' => array( - 'type' => 'boolean', - ), - ), - ), - 'RadiusStatus' => array( - 'type' => 'string', - ), - 'StageReason' => array( - 'type' => 'string', - ), - 'SsoEnabled' => array( - 'type' => 'boolean', - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DescribeSnapshotsResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Snapshots' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Snapshot', - 'type' => 'object', - 'properties' => array( - 'DirectoryId' => array( - 'type' => 'string', - ), - 'SnapshotId' => array( - 'type' => 'string', - ), - 'Type' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'StartTime' => array( - 'type' => 'string', - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'EmptyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), - 'GetDirectoryLimitsResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'DirectoryLimits' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'CloudOnlyDirectoriesLimit' => array( - 'type' => 'numeric', - ), - 'CloudOnlyDirectoriesCurrentCount' => array( - 'type' => 'numeric', - ), - 'CloudOnlyDirectoriesLimitReached' => array( - 'type' => 'boolean', - ), - 'ConnectedDirectoriesLimit' => array( - 'type' => 'numeric', - ), - 'ConnectedDirectoriesCurrentCount' => array( - 'type' => 'numeric', - ), - 'ConnectedDirectoriesLimitReached' => array( - 'type' => 'boolean', - ), - ), - ), - ), - ), - 'GetSnapshotLimitsResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'SnapshotLimits' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'ManualSnapshotsLimit' => array( - 'type' => 'numeric', - ), - 'ManualSnapshotsCurrentCount' => array( - 'type' => 'numeric', - ), - 'ManualSnapshotsLimitReached' => array( - 'type' => 'boolean', - ), - ), - ), - ), - ), - ), -); diff --git a/lib/aws-sdk/Aws/DynamoDb/BinaryValue.php b/lib/aws-sdk/Aws/DynamoDb/BinaryValue.php new file mode 100644 index 0000000..1b2965d --- /dev/null +++ b/lib/aws-sdk/Aws/DynamoDb/BinaryValue.php @@ -0,0 +1,36 @@ +value = (string) $value; + } + + public function jsonSerialize() + { + return $this->value; + } + + public function __toString() + { + return $this->value; + } +} diff --git a/lib/aws-sdk/Aws/DynamoDb/Crc32ErrorChecker.php b/lib/aws-sdk/Aws/DynamoDb/Crc32ErrorChecker.php deleted file mode 100644 index 914eda2..0000000 --- a/lib/aws-sdk/Aws/DynamoDb/Crc32ErrorChecker.php +++ /dev/null @@ -1,66 +0,0 @@ -setNext($next); - } - } - - /** - * {@inheridoc} - */ - public function makesDecision() - { - return true; - } - - /** - * {@inheritdoc} - */ - protected function getDelay( - $retries, - RequestInterface $request, - Response $response = null, - HttpException $e = null - ) { - if ($response) { - // Validate the checksum against our computed checksum - if ($checksum = (string) $response->getHeader('x-amz-crc32')) { - // Retry the request if the checksums don't match, otherwise, return null - return $checksum != hexdec(Stream::getHash($response->getBody(), 'crc32b')) ? true : null; - } - } - } -} diff --git a/lib/aws-sdk/Aws/DynamoDb/DynamoDbClient.php b/lib/aws-sdk/Aws/DynamoDb/DynamoDbClient.php index 0ad1bcb..0b09a09 100644 --- a/lib/aws-sdk/Aws/DynamoDb/DynamoDbClient.php +++ b/lib/aws-sdk/Aws/DynamoDb/DynamoDbClient.php @@ -1,196 +1,68 @@ setConfig($config) - ->setConfigDefaults(array( - // DynamoDB does not use redirects - self::DISABLE_REDIRECTS => true, - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/dynamodb-%s.php', - // DynamoDB does not require response processing other than turning JSON into an array - self::COMMAND_PARAMS => array(Cmd::RESPONSE_PROCESSING => Cmd::TYPE_NO_TRANSLATION) - )) - ->setExceptionParser($exceptionParser) - ->build(); + return $args; } /** - * Create an Amazon DynamoDB specific backoff plugin + * Convenience method for instantiating and registering the DynamoDB + * Session handler with this DynamoDB client object. * - * @param JsonQueryExceptionParser $exceptionParser + * @param array $config Array of options for the session handler factory * - * @return BackoffPlugin + * @return SessionHandler */ - private static function createBackoffPlugin(JsonQueryExceptionParser $exceptionParser) + public function registerSessionHandler(array $config = []) { - 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) - ) - ) - ) - ) - ) - ) - ); - } + $handler = SessionHandler::fromClient($this, $config); + $handler->register(); - /** - * Formats a value as a DynamoDB attribute. - * - * @param mixed $value The value to format for DynamoDB. - * @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) - { - return Attribute::factory($value)->getFormatted($format); + return $handler; } - /** - * Formats an array of values as DynamoDB attributes. - * - * @param array $values The values to format for DynamoDB. - * @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) + /** @internal */ + public static function _applyRetryConfig($value, array &$args, HandlerList $list) { - $formatted = array(); - - foreach ($values as $key => $value) { - $formatted[$key] = $this->formatValue($value, $format); + if (!$value) { + return; } - return $formatted; + $list->appendSign( + Middleware::retry( + RetryMiddleware::createDefaultDecider($value), + function ($retries) { + return $retries + ? (50 * (int) pow(2, $retries - 1)) / 1000 + : 0; + } + ), + 'retry' + ); } - /** - * Calculate the amount of time needed for an exponential backoff to wait - * before retrying a request - * - * @param int $retries Number of retries - * - * @return float Returns the amount of time to wait in seconds - */ - public static function calculateRetryDelay($retries) + /** @internal */ + public static function _applyApiProvider($value, array &$args, HandlerList $list) { - return $retries == 0 ? 0 : (50 * (int) pow(2, $retries - 1)) / 1000; - } - - /** - * Convenience method for instantiating and registering the DynamoDB - * Session handler with this DynamoDB client object. - * - * @param array $config Array of options for the session handler factory - * - * @return SessionHandler - */ - public function registerSessionHandler(array $config = array()) - { - $config = array_replace(array('dynamodb_client' => $this), $config); - - $handler = SessionHandler::factory($config); - $handler->register(); - - return $handler; + ClientResolver::_apply_api_provider($value, $args, $list); + $args['parser'] = new Crc32ValidatingParser($args['parser']); } } diff --git a/lib/aws-sdk/Aws/DynamoDb/DynamoDbCommand.php b/lib/aws-sdk/Aws/DynamoDb/DynamoDbCommand.php deleted file mode 100644 index f4ef75f..0000000 --- a/lib/aws-sdk/Aws/DynamoDb/DynamoDbCommand.php +++ /dev/null @@ -1,100 +0,0 @@ -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/lib/aws-sdk/Aws/DynamoDb/Enum/AttributeAction.php b/lib/aws-sdk/Aws/DynamoDb/Enum/AttributeAction.php deleted file mode 100644 index a0f1d2f..0000000 --- a/lib/aws-sdk/Aws/DynamoDb/Enum/AttributeAction.php +++ /dev/null @@ -1,29 +0,0 @@ -addItem($unprocessedItem); - } - } - - /** - * Adds an unprocessed write request to the collection - * - * @param WriteRequestInterface $unprocessedItem - * - * @return UnprocessedWriteRequestsException - */ - public function addItem(WriteRequestInterface $unprocessedItem) - { - $this->items[] = $unprocessedItem; - - return $this; - } - - /** - * Get the total number of request exceptions - * - * @return int - */ - public function count() - { - return count($this->items); - } - - /** - * Allows array-like iteration over the request exceptions - * - * @return \ArrayIterator - */ - public function getIterator() - { - return new \ArrayIterator($this->items); - } -} diff --git a/lib/aws-sdk/Aws/DynamoDb/Exception/UnrecognizedClientException.php b/lib/aws-sdk/Aws/DynamoDb/Exception/UnrecognizedClientException.php deleted file mode 100644 index 04d9d93..0000000 --- a/lib/aws-sdk/Aws/DynamoDb/Exception/UnrecognizedClientException.php +++ /dev/null @@ -1,22 +0,0 @@ -get('Items'))) { - if ($item = $result->get('Item') ?: $result->get('Attributes')) { - $items = array($item); - } else { - $items = $result->getPath('Responses/*'); - } - } - - return new self(new \ArrayIterator($items ?: array())); - } - - /** - * Ensures that the inner iterator is both Traversable and Countable - * - * {@inheritdoc} - * - * @throws InvalidArgumentException - */ - public function __construct(\Traversable $iterator) - { - if (!($iterator instanceof \Countable)) { - throw new InvalidArgumentException('The inner iterator for an ItemIterator must be Countable.'); - } - - parent::__construct($iterator); - } - - /** - * Returns the first item in the iterator - */ - public function getFirst() - { - $this->rewind(); - - return $this->current(); - } - - /** - * {@inheritdoc} - * @return Collection - */ - public function current() - { - return new Collection(array_map(array($this, 'processAttribute'), parent::current())); - } - - public function count() - { - return $this->getInnerIterator()->count(); - } - - public function toArray() - { - return iterator_to_array($this, false); - } - - /** - * Converts an item's attribute from the DynamoDB format to a typeless value in order to simplify the overall - * array structure of an item. The method also base64 decodes the value any Binary attributes - * - * @param array $attribute - * - * @return array|string - */ - protected function processAttribute(array $attribute) - { - list($type, $value) = each($attribute); - - if ($type === 'B') { - $value = base64_decode($value); - } elseif ($type === 'BS') { - $value = array_map('base64_decode', $value); - } - - return $value; - } -} diff --git a/lib/aws-sdk/Aws/DynamoDb/Iterator/ScanIterator.php b/lib/aws-sdk/Aws/DynamoDb/Iterator/ScanIterator.php deleted file mode 100644 index e227ad9..0000000 --- a/lib/aws-sdk/Aws/DynamoDb/Iterator/ScanIterator.php +++ /dev/null @@ -1,57 +0,0 @@ -scannedCount; - } - - /** - * {@inheritdoc} - */ - protected function handleResults(Model $result) - { - $this->scannedCount += (int) $result->get('ScannedCount'); - - return parent::handleResults($result); - } -} diff --git a/lib/aws-sdk/Aws/DynamoDb/LockingSessionConnection.php b/lib/aws-sdk/Aws/DynamoDb/LockingSessionConnection.php new file mode 100644 index 0000000..0ccfebb --- /dev/null +++ b/lib/aws-sdk/Aws/DynamoDb/LockingSessionConnection.php @@ -0,0 +1,62 @@ + 10, + 'min_lock_retry_microtime' => 10000, + 'max_lock_retry_microtime' => 50000, + ]); + } + + /** + * {@inheritdoc} + * Retries the request until the lock can be acquired + */ + public function read($id) + { + // Create the params for the UpdateItem operation so that a lock can be + // set and item returned (via ReturnValues) in a one, atomic operation. + $params = [ + 'TableName' => $this->config['table_name'], + 'Key' => $this->formatKey($id), + 'Expected' => ['lock' => ['Exists' => false]], + 'AttributeUpdates' => ['lock' => ['Value' => ['N' => '1']]], + 'ReturnValues' => 'ALL_NEW', + ]; + + // Acquire the lock and fetch the item data. + $timeout = time() + $this->config['max_lock_wait_time']; + while (true) { + try { + $item = []; + $result = $this->client->updateItem($params); + if (isset($result['Attributes'])) { + foreach ($result['Attributes'] as $key => $value) { + $item[$key] = current($value); + } + } + return $item; + } catch (DynamoDbException $e) { + if ($e->getAwsErrorCode() === 'ConditionalCheckFailedException' + && time() < $timeout + ) { + usleep(pow(10, -6) * rand( + $this->config['min_lock_retry_microtime'], + $this->config['max_lock_retry_microtime'] + )); + } else { + break; + } + } + } + } +} diff --git a/lib/aws-sdk/Aws/DynamoDb/Marshaler.php b/lib/aws-sdk/Aws/DynamoDb/Marshaler.php index 47065ec..7addcfa 100644 --- a/lib/aws-sdk/Aws/DynamoDb/Marshaler.php +++ b/lib/aws-sdk/Aws/DynamoDb/Marshaler.php @@ -1,21 +1,95 @@ false, + 'nullify_invalid' => false, + 'wrap_numbers' => false, + ]; + + /** @var array Marshaler options. */ + private $options; + + /** + * Instantiates a DynamoDB Marshaler. + * + * The following options are valid. + * + * - ignore_invalid: (bool) Set to `true` if invalid values should be + * ignored (i.e., not included) during marshaling. + * - nullify_invalid: (bool) Set to `true` if invalid values should be set + * to null. + * - wrap_numbers: (bool) Set to `true` to wrap numbers with `NumberValue` + * objects during unmarshaling to preserve the precision. + * + * @param array $options Marshaler options + */ + public function __construct(array $options = []) + { + $this->options = $options + self::$defaultOptions; + } + + /** + * Creates a special object to represent a DynamoDB binary (B) value. + * + * This helps disambiguate binary values from string (S) values. + * + * @param mixed $value A binary value compatible with Guzzle streams. + * + * @return BinaryValue + * @see GuzzleHttp\Stream\Stream::factory + */ + public function binary($value) + { + return new BinaryValue($value); + } + + /** + * Creates a special object to represent a DynamoDB number (N) value. + * + * This helps maintain the precision of large integer/float in PHP. + * + * @param string|int|float $value A number value. + * + * @return NumberValue + */ + public function number($value) + { + return new NumberValue($value); + } + /** - * Marshal a JSON document from a string to an array that is formatted in - * the proper parameter structure required by DynamoDB operations. + * Creates a special object to represent a DynamoDB set (SS/NS/BS) value. + * + * This helps disambiguate set values from list (L) values. + * + * @param array $values The values of the set. + * + * @return SetValue + * + */ + public function set(array $values) + { + return new SetValue($values); + } + + /** + * Marshal a JSON document from a string to a DynamoDB item. + * + * The result is an array formatted in the proper parameter structure + * required by the DynamoDB API for items. * * @param string $json A valid JSON document. * - * @return array + * @return array Item formatted for DynamoDB. * @throws \InvalidArgumentException if the JSON is invalid. */ public function marshalJson($json) @@ -31,12 +105,14 @@ class Marshaler } /** - * Marshal a native PHP array of data to a new array that is formatted in - * the proper parameter structure required by DynamoDB operations. + * Marshal a native PHP array of data to a DynamoDB item. + * + * The result is an array formatted in the proper parameter structure + * required by the DynamoDB API for items. * * @param array|\stdClass $item An associative array of data. * - * @return array + * @return array Item formatted for DynamoDB. */ public function marshalItem($item) { @@ -44,53 +120,98 @@ class Marshaler } /** - * Marshal a native PHP value into an array that is formatted in the proper - * parameter structure required by DynamoDB operations. + * Marshal a native PHP value into a DynamoDB attribute value. + * + * The result is an associative array that is formatted in the proper + * `[TYPE => VALUE]` parameter structure required by the DynamoDB API. * - * @param mixed $value A scalar, array, or stdClass value. + * @param mixed $value A scalar, array, or `stdClass` value. * - * @return array Formatted like `array(TYPE => VALUE)`. + * @return array Attribute formatted for DynamoDB. * @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 + + // Handle string values. + if ($type === 'string') { + if ($value === '') { + return $this->handleInvalid('empty strings are invalid'); + } + + return ['S' => $value]; + } + + // Handle number values. + if ($type === 'integer' + || $type === 'double' + || $value instanceof NumberValue ) { - $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'; + return ['N' => (string) $value]; + } + + // Handle boolean values. + if ($type === 'boolean') { + return ['BOOL' => $value]; + } + + // Handle null values. + if ($type === 'NULL') { + return ['NULL' => true]; + } + + // Handle set values. + if ($value instanceof SetValue) { + if (count($value) === 0) { + return $this->handleInvalid('empty sets are invalid'); + } + $previousType = null; + $data = []; + foreach ($value as $v) { + $marshaled = $this->marshalValue($v); + $setType = key($marshaled); + if (!$previousType) { + $previousType = $setType; + } elseif ($setType !== $previousType) { + return $this->handleInvalid('sets must be uniform in type'); } + $data[] = current($marshaled); } - if (empty($data) && $type === 'M') { - $data = (object) $data; + + return [$previousType . 'S' => array_unique($data)]; + } + + // Handle list and map values. + $dbType = 'L'; + if ($value instanceof \stdClass) { + $type = 'array'; + $dbType = 'M'; + } + if ($type === 'array' || $value instanceof \Traversable) { + $data = []; + $index = 0; + foreach ($value as $k => $v) { + if ($v = $this->marshalValue($v)) { + $data[$k] = $v; + if ($dbType === 'L' && (!is_int($k) || $k != $index++)) { + $dbType = '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 [$dbType => $data]; } - return array($type => $value); + // Handle binary values. + if (is_resource($value) || $value instanceof StreamInterface) { + $value = $this->binary($value); + } + if ($value instanceof BinaryValue) { + return ['B' => (string) $value]; + } + + // Handle invalid values. + return $this->handleInvalid('encountered unexpected value'); } /** @@ -105,7 +226,7 @@ class Marshaler public function unmarshalJson(array $data, $jsonEncodeFlags = 0) { return json_encode( - $this->unmarshalValue(array('M' => $data), true), + $this->unmarshalValue(['M' => $data], true), $jsonEncodeFlags ); } @@ -121,7 +242,7 @@ class Marshaler */ public function unmarshalItem(array $data) { - return $this->unmarshalValue(array('M' => $data)); + return $this->unmarshalValue(['M' => $data]); } /** @@ -140,21 +261,17 @@ class Marshaler 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; + if ($this->options['wrap_numbers']) { + return new NumberValue($value); + } else { + // Use type coercion to unmarshal numbers to int/float. + return $value + 0; } - return $value; case 'M': if ($mapAsObject) { $data = new \stdClass; @@ -163,14 +280,41 @@ class Marshaler } return $data; } - // Else, unmarshal M the same way as L. + // NOBREAK: Unmarshal M the same way as L, for arrays. case 'L': foreach ($value as &$v) { $v = $this->unmarshalValue($v, $mapAsObject); } return $value; + case 'B': + return new BinaryValue($value); + case 'SS': + case 'NS': + case 'BS': + foreach ($value as &$v) { + $v = $this->unmarshalValue([$type[0] => $v]); + } + return new SetValue($value); } throw new \UnexpectedValueException("Unexpected type: {$type}."); } + + /** + * Handle invalid value based on marshaler configuration. + * + * @param string $message Error message + * + * @return array|null + */ + private function handleInvalid($message) + { + if ($this->options['ignore_invalid']) { + return null; + } elseif ($this->options['nullify_invalid']) { + return ['NULL' => true]; + } + + throw new \UnexpectedValueException("Marshaling error: {$message}."); + } } diff --git a/lib/aws-sdk/Aws/DynamoDb/Model/Attribute.php b/lib/aws-sdk/Aws/DynamoDb/Model/Attribute.php deleted file mode 100644 index 14a403e..0000000 --- a/lib/aws-sdk/Aws/DynamoDb/Model/Attribute.php +++ /dev/null @@ -1,248 +0,0 @@ - 1) { - throw new InvalidArgumentException('Sets must be at most one level deep.'); - } - - // Handle specific, allowed object types - if ($value instanceof Attribute) { - return $value; - } elseif ($value instanceof \Traversable) { - $value = iterator_to_array($value); - } elseif (is_object($value) && method_exists($value, '__toString')) { - $value = (string) $value; - } - - // Ensure that the value is valid - if ($value === null || $value === array() || $value === '') { - // Note: "Empty" values are not allowed except for zero and false. - throw new InvalidArgumentException('The value must not be empty.'); - } elseif (is_resource($value) || is_object($value)) { - throw new InvalidArgumentException('The value must be able to be converted to string.'); - } - - // Create the attribute to return - if (is_int($value) || is_float($value)) { - // Handle numeric values - $attribute = new Attribute((string) $value, Type::NUMBER); - } elseif (is_bool($value)) { - // Handle boolean values - $attribute = new Attribute($value ? '1' : '0', Type::NUMBER); - } elseif (is_array($value) || $value instanceof \Traversable) { - // Handle arrays - $setType = null; - $attribute = new Attribute(array()); - - // Loop through each value to analyze and prepare it - foreach ($value as $subValue) { - // Recursively get the attribute for the set. The depth param only allows one level of recursion - $subAttribute = static::factory($subValue, $depth + 1); - - // The type of each sub-value must be the same, or else the whole array is invalid - if ($setType === null) { - $setType = $subAttribute->type; - } elseif ($setType !== $subAttribute->type) { - throw new InvalidArgumentException('The set did not contain values of a uniform type.'); - } - - // Save the value for the upstream array - $attribute->value[] = (string) $subAttribute->value; - } - - // Make sure the type is changed to be a set type - $attribute->type = $setType . self::SET_SUFFIX; - } else { - $attribute = new Attribute((string) $value); - } - - return $attribute; - } - - /** - * Instantiates a DynamoDB attribute. - * - * @param string|array $value The DynamoDB attribute value - * @param string $type The DynamoDB attribute type (N, S, B, NS, SS, BS) - */ - public function __construct($value, $type = Type::STRING) - { - $this->setValue($value); - $this->setType($type); - } - - /** - * Convert the attribute to a string - * - * @return string - */ - public function __toString() - { - return implode(', ', (array) $this->value); - } - - /** - * Retrieve the formatted data - * - * @param string $format The format to apply to the data - * - * @return string The formatted version of the data - */ - public function getFormatted($format = Attribute::FORMAT_PUT) - { - switch ($format) { - case self::FORMAT_EXPECTED: - // no break - case self::FORMAT_UPDATE: - $formatted = array('Value' => array($this->type => $this->value)); - break; - case self::FORMAT_PUT: - // no break - default: - $formatted = array($this->type => $this->value); - } - - return $formatted; - } - - /** - * Retrieve the attribute type - * - * @return string The attribute type - */ - public function getType() - { - return $this->type; - } - - /** - * Retrieve the attribute value - * - * @return string The attribute value - */ - public function getValue() - { - return $this->value; - } - - /** - * Set the attribute type - * - * @param string $type The attribute type to set - * - * @return self - * @throws InvalidArgumentException - */ - public function setType($type) - { - if (in_array($type, Type::values())) { - $this->type = $type; - } else { - throw new InvalidArgumentException('An attribute type must be a valid DynamoDB type.'); - } - - return $this; - } - - /** - * Set the attribute value - * - * @param string|array $value The attribute value - * - * @return self - * @throws InvalidArgumentException - */ - public function setValue($value) - { - if (is_string($value) || is_array($value)) { - $this->value = $value; - } else { - throw new InvalidArgumentException('An attribute value may only be a string or array.'); - } - - return $this; - } - - /** - * {@inheritdoc} - */ - public function toArray() - { - return $this->getFormatted(); - } -} diff --git a/lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/AbstractWriteRequest.php b/lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/AbstractWriteRequest.php deleted file mode 100644 index 3589816..0000000 --- a/lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/AbstractWriteRequest.php +++ /dev/null @@ -1,36 +0,0 @@ -tableName; - } -} diff --git a/lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/DeleteRequest.php b/lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/DeleteRequest.php deleted file mode 100644 index f01cedc..0000000 --- a/lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/DeleteRequest.php +++ /dev/null @@ -1,94 +0,0 @@ -getName() !== 'DeleteItem') { - throw new InvalidArgumentException(); - } - - // Get relevant data for a DeleteRequest - $table = $command->get('TableName'); - $key = $command->get('Key'); - - // Return an instantiated DeleteRequest object - return new DeleteRequest($key, $table); - } - - /** - * Constructs a new delete request - * - * @param array $key The key of the item to delete - * @param string $tableName The name of the table which has the item - */ - public function __construct(array $key, $tableName) - { - $this->key = $key; - $this->tableName = $tableName; - } - - /** - * The parameter form of the request - * - * @return array - */ - public function toArray() - { - $key = $this->key; - foreach ($key as &$element) { - if ($element instanceof Attribute) { - $element = $element->toArray(); - } - } - - return array('DeleteRequest' => array('Key' => $key)); - } - - /** - * Get the key - * - * @return array - */ - public function getKey() - { - return $this->key; - } -} diff --git a/lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/PutRequest.php b/lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/PutRequest.php deleted file mode 100644 index adbd345..0000000 --- a/lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/PutRequest.php +++ /dev/null @@ -1,100 +0,0 @@ -getName() !== 'PutItem') { - throw new InvalidArgumentException(); - } - - // Get relevant data for a PutRequest - $table = $command->get('TableName'); - $item = $command->get('Item'); - - // Return an instantiated PutRequest object - return new PutRequest($item, $table); - } - - /** - * Constructs a new put request - * - * @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, $tableName = null) - { - 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.'); - } - } - - /** - * The parameter form of the request - * - * @return array - */ - public function toArray() - { - return array('PutRequest' => array('Item' => $this->item)); - } - - /** - * Get the item - * - * @return Item - */ - public function getItem() - { - return new Item($this->item); - } -} diff --git a/lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/UnprocessedRequest.php b/lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/UnprocessedRequest.php deleted file mode 100644 index 4519630..0000000 --- a/lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/UnprocessedRequest.php +++ /dev/null @@ -1,48 +0,0 @@ -data = $data; - $this->tableName = $tableName; - } - - /** - * The parameter form of the request - * - * @return array - */ - public function toArray() - { - return $this->data; - } -} diff --git a/lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/WriteRequestBatch.php b/lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/WriteRequestBatch.php deleted file mode 100644 index 859e49a..0000000 --- a/lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/WriteRequestBatch.php +++ /dev/null @@ -1,120 +0,0 @@ -createBatchesWith(new BatchSizeDivisor($batchSize)) - ->transferWith(new WriteRequestBatchTransfer($client)); - - if ($notify) { - $builder->notify($notify); - } - - $batch = new self($builder->build()); - $batch = new FlushingBatch($batch, $batchSize); - - return $batch; - } - - /** - * {@inheritdoc} - */ - public function add($item) - { - if ($item instanceof AbstractCommand) { - // Convert PutItem and DeleteItem into the correct format - $name = $item->getName(); - if (in_array($name, array('PutItem', 'DeleteItem'))) { - $class = __NAMESPACE__ . '\\' . str_replace('Item', 'Request', $name); - $item = $class::fromCommand($item); - } else { - throw new InvalidArgumentException('The command provided was not a PutItem or DeleteItem command.'); - } - } - - if (!($item instanceof WriteRequestInterface)) { - throw new InvalidArgumentException('The item you are trying to add to the batch queue is invalid.'); - } - - return $this->decoratedBatch->add($item); - } - - /** - * {@inheritdoc} - */ - public function flush() - { - // Flush the queue - $items = array(); - while (!$this->decoratedBatch->isEmpty()) { - try { - $items = array_merge($items, $this->decoratedBatch->flush()); - } catch (BatchTransferException $e) { - $unprocessed = $e->getPrevious(); - if ($unprocessed instanceof UnprocessedWriteRequestsException) { - // Handles the UnprocessedItemsException that may occur for - // throttled items the batch. These are re-queued here - foreach ($unprocessed as $unprocessedItem) { - $this->add($unprocessedItem); - } - } else { - // Re-throw the exception if not handled - throw $e; - } - } - } - - return $items; - } -} diff --git a/lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/WriteRequestBatchTransfer.php b/lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/WriteRequestBatchTransfer.php deleted file mode 100644 index 1a3813d..0000000 --- a/lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/WriteRequestBatchTransfer.php +++ /dev/null @@ -1,252 +0,0 @@ -client = $client; - } - - /** - * {@inheritdoc} - */ - public function transfer(array $batch) - { - // Create a container exception for any unprocessed items - $unprocessed = new UnprocessedWriteRequestsException(); - - // Execute the transfer logic - $this->performTransfer($batch, $unprocessed); - - // Throw an exception containing the unprocessed items if there are any - if (count($unprocessed)) { - throw $unprocessed; - } - } - - /** - * Transfer a batch of requests and collect any unprocessed items - * - * @param array $batch A batch of write requests - * @param UnprocessedWriteRequestsException $unprocessedRequests Collection of unprocessed items - * - * @throws \Guzzle\Common\Exception\ExceptionCollection - */ - protected function performTransfer( - array $batch, - UnprocessedWriteRequestsException $unprocessedRequests - ) { - // Do nothing if the batch is empty - if (empty($batch)) { - return; - } - - // Prepare an array of commands to be sent in parallel from the batch - $commands = $this->prepareCommandsForBatchedItems($batch); - - // Execute the commands and handle exceptions - try { - $commands = $this->client->execute($commands); - $this->getUnprocessedRequestsFromCommands($commands, $unprocessedRequests); - } catch (ExceptionCollection $exceptions) { - // Create a container exception for any unhandled (true) exceptions - $unhandledExceptions = new ExceptionCollection(); - - // Loop through caught exceptions and handle RequestTooLarge scenarios - /** @var DynamoDbException $e */ - foreach ($exceptions as $e) { - 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); - } - } - - // If there were unhandled exceptions, throw them - if (count($unhandledExceptions)) { - throw $unhandledExceptions; - } - } - } - - /** - * 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 - * - * @param array $commands Array of commands - * @param UnprocessedWriteRequestsException $unprocessedRequests Collection of unprocessed items - */ - protected function getUnprocessedRequestsFromCommands( - array $commands, - UnprocessedWriteRequestsException $unprocessedRequests - ) { - /** @var CommandInterface $command */ - foreach ($commands as $command) { - if ($command instanceof CommandInterface && $command->isExecuted()) { - $result = $command->getResult(); - $items = $this->convertResultsToUnprocessedRequests($result['UnprocessedItems']); - foreach ($items as $request) { - $unprocessedRequests->addItem($request); - } - } - } - } - - /** - * Handles exceptions caused by the request being too large (over 1 MB). The - * response will have a status code of 413. In this case the batch should be - * split up into smaller batches and retried. - * - * @param EntityEnclosingRequestInterface $request The failed request - * @param UnprocessedWriteRequestsException $unprocessedRequests Collection of unprocessed items - */ - protected function retryLargeRequest( - EntityEnclosingRequestInterface $request, - UnprocessedWriteRequestsException $unprocessedRequests - ) { - // Collect the items out from the request object - $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 - if ($items) { - $newBatches = array_chunk($items, ceil(count($items) / 3)); - foreach ($newBatches as $newBatch) { - $this->performTransfer($newBatch, $unprocessedRequests); - } - } - } - - /** - * 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 - * - * @param array $items Data formatted under "RequestItems" or "UnprocessedItems" keys - * - * @return array - */ - protected function convertResultsToUnprocessedRequests(array $items) - { - $unprocessed = array(); - foreach ($items as $table => $requests) { - foreach ($requests as $request) { - $unprocessed[] = new UnprocessedRequest($request, $table); - } - } - - 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/lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/WriteRequestInterface.php b/lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/WriteRequestInterface.php deleted file mode 100644 index 70503e2..0000000 --- a/lib/aws-sdk/Aws/DynamoDb/Model/BatchRequest/WriteRequestInterface.php +++ /dev/null @@ -1,32 +0,0 @@ -data; - foreach ($result as &$value) { - if ($value instanceof Attribute) { - $value = $value->toArray(); - } - } - - return $result; - } - - /** - * Construct a new Item - * - * @param array $attributes Array of attributes - * @param string $tableName Table of the item (if known) - */ - public function __construct(array $attributes = array(), $tableName = null) - { - $this->replace($attributes); - $this->tableName = $tableName; - } - - /** - * Set the name of the table associated with the item - * - * @param string $tableName Table name - * - * @return self - */ - public function setTableName($tableName) - { - $this->tableName = $tableName; - - return $this; - } - - /** - * Get the name of the table associated with the item - * - * @return string|null - */ - public function getTableName() - { - return $this->tableName; - } - - /** - * Get an attribute object by name - * - * @param string $name Name of the attribute to retrieve - * - * @return Attribute|null - */ - public function get($name) - { - return isset($this->data[$name]) ? $this->data[$name] : null; - } - - /** - * Get all of the attribute names of the item - * - * @return array - */ - public function keys() - { - return array_keys($this->data); - } - - /** - * Check if a particular attribute exists on the item - * - * @param string $attribute Attribute name to check - * - * @return bool - */ - public function has($attribute) - { - return isset($this->data[$attribute]); - } - - /** - * Get all of the {@see Attribute} objects - * - * @return array - */ - public function all() - { - return $this->data; - } - - /** - * Add an attribute - * - * @param string $name Name of the attribute to add - * @param Attribute $attribute Attribute to add - * - * @return self - */ - public function add($name, Attribute $attribute) - { - $this->data[$name] = $attribute; - - return $this; - } - - /** - * Set all of the attributes - * - * @param array $attributes Array of {@see Attribute} objects - * - * @return self - */ - public function replace(array $attributes) - { - foreach ($attributes as $name => $attribute) { - if (!($attribute instanceof Attribute)) { - $attribute = new Attribute(current($attribute), key($attribute)); - } - $this->add($name, $attribute); - } - - return $this; - } - - /** - * Remove an attribute by name - * - * @param string $name Name of the attribute to remove - * - * @return self - */ - public function remove($name) - { - unset($this->data[$name]); - - return $this; - } - - /** - * Get the total number of attributes - * - * @return int - */ - public function count() - { - return count($this->data); - } - - /** - * {@inheritdoc} - */ - public function getIterator() - { - return new \ArrayIterator($this->data); - } - - /** - * ArrayAccess implementation of offsetExists() - * - * @param string $offset Array key - * - * @return bool - */ - public function offsetExists($offset) - { - return isset($this->data[$offset]); - } - - /** - * ArrayAccess implementation of offsetGet() - * - * @param string $offset Array key - * - * @return null|mixed - */ - public function offsetGet($offset) - { - return isset($this->data[$offset]) ? $this->data[$offset] : null; - } - - /** - * ArrayAccess implementation of offsetGet() - * - * @param string $offset Array key - * @param mixed $value Value to set - */ - public function offsetSet($offset, $value) - { - $this->data[$offset] = $value; - } - - /** - * ArrayAccess implementation of offsetUnset() - * - * @param string $offset Array key - */ - public function offsetUnset($offset) - { - unset($this->data[$offset]); - } -} diff --git a/lib/aws-sdk/Aws/DynamoDb/NumberValue.php b/lib/aws-sdk/Aws/DynamoDb/NumberValue.php new file mode 100644 index 0000000..093143b --- /dev/null +++ b/lib/aws-sdk/Aws/DynamoDb/NumberValue.php @@ -0,0 +1,29 @@ +value = (string) $value; + } + + public function jsonSerialize() + { + return $this->value; + } + + public function __toString() + { + return $this->value; + } +} diff --git a/lib/aws-sdk/Aws/DynamoDb/Resources/dynamodb-2011-12-05.php b/lib/aws-sdk/Aws/DynamoDb/Resources/dynamodb-2011-12-05.php deleted file mode 100644 index 1c1d216..0000000 --- a/lib/aws-sdk/Aws/DynamoDb/Resources/dynamodb-2011-12-05.php +++ /dev/null @@ -1,3546 +0,0 @@ - '2011-12-05', - 'endpointPrefix' => 'dynamodb', - 'serviceFullName' => 'Amazon DynamoDB', - 'serviceAbbreviation' => 'DynamoDB', - 'serviceType' => 'json', - 'jsonVersion' => '1.0', - 'targetPrefix' => 'DynamoDB_20111205.', - 'signatureVersion' => 'v4', - 'namespace' => 'DynamoDb', - 'regions' => array( - 'us-east-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'dynamodb.us-east-1.amazonaws.com', - ), - 'us-west-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'dynamodb.us-west-1.amazonaws.com', - ), - 'us-west-2' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'dynamodb.us-west-2.amazonaws.com', - ), - 'eu-west-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'dynamodb.eu-west-1.amazonaws.com', - ), - 'ap-northeast-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'dynamodb.ap-northeast-1.amazonaws.com', - ), - 'ap-southeast-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'dynamodb.ap-southeast-1.amazonaws.com', - ), - 'ap-southeast-2' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'dynamodb.ap-southeast-2.amazonaws.com', - ), - 'sa-east-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'dynamodb.sa-east-1.amazonaws.com', - ), - 'us-gov-west-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'dynamodb.us-gov-west-1.amazonaws.com', - ), - ), - 'operations' => array( - 'BatchGetItem' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'BatchGetItemOutput', - 'responseType' => 'model', - 'responseNotes' => 'Returns a json_decoded array of the response body', - 'summary' => 'Retrieves the attributes for multiple items from multiple tables using their primary keys.', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20111205.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', - 'description' => 'The primary key that uniquely identifies each item in a table. A primary key can be a one attribute (hash) primary key or a two attribute (hash-and-range) primary key.', - 'type' => 'object', - 'properties' => array( - 'HashKeyElement' => array( - 'required' => true, - 'description' => 'A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - 'RangeKeyElement' => array( - 'description' => 'A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - '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', - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'This exception is thrown when the level of provisioned throughput defined for the table is exceeded.', - 'class' => 'ProvisionedThroughputExceededException', - ), - array( - 'reason' => 'This exception is thrown when the resource which is being attempted to be changed is in use.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'This exception is thrown when the service has a problem when trying to process the request.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - 'BatchWriteItem' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'BatchWriteItemOutput', - 'responseType' => 'model', - 'responseNotes' => 'Returns a json_decoded array of the response body', - 'summary' => 'Allows to execute a batch of Put and/or Delete Requests for many tables in a single call. A total of 25 requests are allowed.', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20111205.BatchWriteItem', - ), - 'RequestItems' => array( - 'required' => true, - 'description' => 'A map of table name to list-of-write-requests. Used as input to the BatchWriteItem API call', - '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', - 'description' => 'This structure is a Union of PutRequest and DeleteRequest. It can contain exactly one of PutRequest or DeleteRequest. Never Both. This is enforced in the code.', - 'type' => 'object', - 'properties' => array( - 'PutRequest' => array( - 'type' => 'object', - 'properties' => array( - 'Item' => array( - 'required' => true, - 'description' => 'The item to put', - 'type' => 'object', - 'additionalProperties' => array( - 'description' => 'AttributeValue can be String, Number, Binary, StringSet, NumberSet, BinarySet.', - 'type' => 'object', - 'data' => array( - 'shape_name' => 'AttributeName', - ), - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - ), - ), - ), - 'DeleteRequest' => array( - 'type' => 'object', - 'properties' => array( - 'Key' => array( - 'required' => true, - 'description' => 'The item\'s key to be delete', - 'type' => 'object', - 'properties' => array( - 'HashKeyElement' => array( - 'required' => true, - 'description' => 'A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - 'RangeKeyElement' => array( - 'description' => 'A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'This exception is thrown when the level of provisioned throughput defined for the table is exceeded.', - 'class' => 'ProvisionedThroughputExceededException', - ), - array( - 'reason' => 'This exception is thrown when the resource which is being attempted to be changed is in use.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'This exception is thrown when the service has a problem when trying to process the request.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - 'CreateTable' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'CreateTableOutput', - 'responseType' => 'model', - 'responseNotes' => 'Returns a json_decoded array of the response body', - 'summary' => 'Adds a new table to your account.', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20111205.CreateTable', - ), - 'TableName' => array( - 'required' => true, - 'description' => 'The name of the table you want to create. Allowed characters are a-z, A-Z, 0-9, _ (underscore), - (hyphen) and . (period).', - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 255, - ), - 'KeySchema' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'HashKeyElement' => array( - 'required' => true, - 'description' => 'A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'required' => true, - 'description' => 'The AttributeName of the KeySchemaElement.', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'AttributeType' => array( - 'required' => true, - 'description' => 'The AttributeType of the KeySchemaElement which can be a String or a Number.', - 'type' => 'string', - 'enum' => array( - 'S', - 'N', - 'B', - ), - ), - ), - ), - 'RangeKeyElement' => array( - 'description' => 'A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'required' => true, - 'description' => 'The AttributeName of the KeySchemaElement.', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'AttributeType' => array( - 'required' => true, - 'description' => 'The AttributeType of the KeySchemaElement which can be a String or a Number.', - 'type' => 'string', - 'enum' => array( - 'S', - 'N', - 'B', - ), - ), - ), - ), - ), - ), - 'ProvisionedThroughput' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'ReadCapacityUnits' => array( - 'required' => true, - 'description' => 'ReadCapacityUnits are in terms of strictly consistent reads, assuming items of 1k. 2k items require twice the ReadCapacityUnits. Eventually-consistent reads only require half the ReadCapacityUnits of stirctly consistent reads.', - 'type' => 'numeric', - 'minimum' => 1, - ), - 'WriteCapacityUnits' => array( - 'required' => true, - 'description' => 'WriteCapacityUnits are in terms of strictly consistent reads, assuming items of 1k. 2k items require twice the WriteCapacityUnits.', - 'type' => 'numeric', - 'minimum' => 1, - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'This exception is thrown when the resource which is being attempted to be changed is in use.', - 'class' => 'ResourceInUseException', - ), - array( - 'reason' => 'This exception is thrown when the subscriber exceeded the limits on the number of objects or operations.', - 'class' => 'LimitExceededException', - ), - array( - 'reason' => 'This exception is thrown when the service has a problem when trying to process the request.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - 'DeleteItem' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DeleteItemOutput', - 'responseType' => 'model', - 'responseNotes' => 'Returns a json_decoded array of the response body', - 'summary' => 'Deletes a single item in a table by primary key.', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20111205.DeleteItem', - ), - 'TableName' => array( - 'required' => true, - 'description' => 'The name of the table in which you want to delete an item. Allowed characters are a-z, A-Z, 0-9, _ (underscore), - (hyphen) and . (period).', - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 255, - ), - 'Key' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'HashKeyElement' => array( - 'required' => true, - 'description' => 'A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - 'RangeKeyElement' => array( - 'description' => 'A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - ), - ), - 'Expected' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'description' => 'Allows you to provide an attribute name, and whether or not Amazon DynamoDB should check to see if the attribute value already exists; or if the attribute value exists and has a particular value before changing it.', - 'type' => 'object', - 'data' => array( - 'shape_name' => 'AttributeName', - ), - 'properties' => array( - 'Value' => array( - 'description' => 'Specify whether or not a value already exists and has a specific content for the attribute name-value pair.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - 'Exists' => array( - 'description' => 'Specify whether or not a value already exists for the attribute name-value pair.', - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - ), - 'ReturnValues' => array( - 'type' => 'string', - 'location' => 'json', - 'enum' => array( - 'NONE', - 'ALL_OLD', - 'UPDATED_OLD', - 'ALL_NEW', - 'UPDATED_NEW', - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'This exception is thrown when an expected value does not match what was found in the system.', - 'class' => 'ConditionalCheckFailedException', - ), - array( - 'reason' => 'This exception is thrown when the level of provisioned throughput defined for the table is exceeded.', - 'class' => 'ProvisionedThroughputExceededException', - ), - array( - 'reason' => 'This exception is thrown when the resource which is being attempted to be changed is in use.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'This exception is thrown when the service has a problem when trying to process the request.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - 'DeleteTable' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DeleteTableOutput', - 'responseType' => 'model', - 'responseNotes' => 'Returns a json_decoded array of the response body', - 'summary' => 'Deletes a table and all of its items.', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20111205.DeleteTable', - ), - 'TableName' => array( - 'required' => true, - 'description' => 'The name of the table you want to delete. Allowed characters are a-z, A-Z, 0-9, _ (underscore), - (hyphen) and . (period).', - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 255, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'This exception is thrown when the resource which is being attempted to be changed is in use.', - 'class' => 'ResourceInUseException', - ), - array( - 'reason' => 'This exception is thrown when the resource which is being attempted to be changed is in use.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'This exception is thrown when the subscriber exceeded the limits on the number of objects or operations.', - 'class' => 'LimitExceededException', - ), - array( - 'reason' => 'This exception is thrown when the service has a problem when trying to process the request.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - 'DescribeTable' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeTableOutput', - 'responseType' => 'model', - 'responseNotes' => 'Returns a json_decoded array of the response body', - 'summary' => 'Retrieves information about the table, including the current status of the table, the primary key schema and when the table was created.', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20111205.DescribeTable', - ), - 'TableName' => array( - 'required' => true, - 'description' => 'The name of the table you want to describe. Allowed characters are a-z, A-Z, 0-9, _ (underscore), - (hyphen) and . (period).', - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 255, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'This exception is thrown when the resource which is being attempted to be changed is in use.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'This exception is thrown when the service has a problem when trying to process the request.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - 'GetItem' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'GetItemOutput', - 'responseType' => 'model', - 'responseNotes' => 'Returns a json_decoded array of the response body', - 'summary' => 'Retrieves a set of Attributes for an item that matches the primary key.', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20111205.GetItem', - ), - 'TableName' => array( - 'required' => true, - 'description' => 'The name of the table in which you want to get an item. Allowed characters are a-z, A-Z, 0-9, _ (underscore), - (hyphen) and . (period).', - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 255, - ), - 'Key' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'HashKeyElement' => array( - 'required' => true, - 'description' => 'A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - 'RangeKeyElement' => array( - 'description' => 'A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - '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', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'This exception is thrown when the level of provisioned throughput defined for the table is exceeded.', - 'class' => 'ProvisionedThroughputExceededException', - ), - array( - 'reason' => 'This exception is thrown when the resource which is being attempted to be changed is in use.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'This exception is thrown when the service has a problem when trying to process the request.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - 'ListTables' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ListTablesOutput', - 'responseType' => 'model', - 'responseNotes' => 'Returns a json_decoded array of the response body', - 'summary' => 'Retrieves a paginated list of table names created by the AWS Account of the caller in the AWS Region (e.g. us-east-1).', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20111205.ListTables', - ), - 'ExclusiveStartTableName' => array( - 'description' => 'The name of the table that starts the list. If you already ran a ListTables operation and received a LastEvaluatedTableName value in the response, use that value here to continue the list.', - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 255, - ), - 'Limit' => array( - 'type' => 'numeric', - 'location' => 'json', - 'minimum' => 1, - 'maximum' => 100, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'This exception is thrown when the service has a problem when trying to process the request.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - 'PutItem' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'PutItemOutput', - 'responseType' => 'model', - 'responseNotes' => 'Returns a json_decoded array of the response body', - 'summary' => 'Creates a new item, or replaces an old item with a new item (including all the attributes).', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20111205.PutItem', - ), - 'TableName' => array( - 'required' => true, - 'description' => 'The name of the table in which you want to put an item. Allowed characters are a-z, A-Z, 0-9, _ (underscore), - (hyphen) and . (period).', - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 255, - ), - 'Item' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'description' => 'AttributeValue can be String, Number, Binary, StringSet, NumberSet, BinarySet.', - 'type' => 'object', - 'data' => array( - 'shape_name' => 'AttributeName', - ), - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - ), - 'Expected' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'description' => 'Allows you to provide an attribute name, and whether or not Amazon DynamoDB should check to see if the attribute value already exists; or if the attribute value exists and has a particular value before changing it.', - 'type' => 'object', - 'data' => array( - 'shape_name' => 'AttributeName', - ), - 'properties' => array( - 'Value' => array( - 'description' => 'Specify whether or not a value already exists and has a specific content for the attribute name-value pair.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - 'Exists' => array( - 'description' => 'Specify whether or not a value already exists for the attribute name-value pair.', - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - ), - 'ReturnValues' => array( - 'type' => 'string', - 'location' => 'json', - 'enum' => array( - 'NONE', - 'ALL_OLD', - 'UPDATED_OLD', - 'ALL_NEW', - 'UPDATED_NEW', - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'This exception is thrown when an expected value does not match what was found in the system.', - 'class' => 'ConditionalCheckFailedException', - ), - array( - 'reason' => 'This exception is thrown when the level of provisioned throughput defined for the table is exceeded.', - 'class' => 'ProvisionedThroughputExceededException', - ), - array( - 'reason' => 'This exception is thrown when the resource which is being attempted to be changed is in use.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'This exception is thrown when the service has a problem when trying to process the request.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - 'Query' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'QueryOutput', - 'responseType' => 'model', - 'responseNotes' => 'Returns a json_decoded array of the response body', - 'summary' => 'Gets the values of one or more items and its attributes by primary key (composite primary key, only).', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20111205.Query', - ), - 'TableName' => array( - 'required' => true, - 'description' => 'The name of the table in which you want to query. Allowed characters are a-z, A-Z, 0-9, _ (underscore), - (hyphen) and . (period).', - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 255, - ), - 'AttributesToGet' => array( - 'type' => 'array', - 'location' => 'json', - 'minItems' => 1, - 'items' => array( - 'name' => 'AttributeName', - 'type' => 'string', - ), - ), - 'Limit' => array( - 'description' => 'The maximum number of items to return. If Amazon DynamoDB hits this limit while querying the table, it stops the query and returns the matching values up to the limit, and a LastEvaluatedKey to apply in a subsequent operation to continue the query. Also, if the result set size exceeds 1MB before Amazon DynamoDB hits this limit, it stops the query and returns the matching values, and a LastEvaluatedKey to apply in a subsequent operation to continue the query.', - 'type' => 'numeric', - 'location' => 'json', - 'minimum' => 1, - ), - 'ConsistentRead' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'Count' => array( - 'description' => 'If set to true, Amazon DynamoDB returns a total number of items that match the query parameters, instead of a list of the matching items and their attributes. Do not set Count to true while providing a list of AttributesToGet, otherwise Amazon DynamoDB returns a validation error.', - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'HashKeyValue' => array( - 'required' => true, - 'description' => 'Attribute value of the hash component of the composite primary key.', - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - 'RangeKeyCondition' => array( - 'description' => 'A container for the attribute values and comparison operators to use for the query.', - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'AttributeValueList' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AttributeValue', - 'description' => 'AttributeValue can be String, Number, Binary, StringSet, NumberSet, BinarySet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - '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( - 'description' => 'Specifies forward or backward traversal of the index. Amazon DynamoDB returns results reflecting the requested order, determined by the range key. The default value is true (forward).', - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'ExclusiveStartKey' => array( - 'description' => 'Primary key of the item from which to continue an earlier query. An earlier query might provide this value as the LastEvaluatedKey if that query operation was interrupted before completing the query; either because of the result set size or the Limit parameter. The LastEvaluatedKey can be passed back in a new query request to continue the operation from that point.', - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'HashKeyElement' => array( - 'required' => true, - 'description' => 'A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - 'RangeKeyElement' => array( - 'description' => 'A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'This exception is thrown when the level of provisioned throughput defined for the table is exceeded.', - 'class' => 'ProvisionedThroughputExceededException', - ), - array( - 'reason' => 'This exception is thrown when the resource which is being attempted to be changed is in use.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'This exception is thrown when the service has a problem when trying to process the request.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - 'Scan' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ScanOutput', - 'responseType' => 'model', - 'responseNotes' => 'Returns a json_decoded array of the response body', - 'summary' => 'Retrieves one or more items and its attributes by performing a full scan of a table.', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20111205.Scan', - ), - 'TableName' => array( - 'required' => true, - 'description' => 'The name of the table in which you want to scan. Allowed characters are a-z, A-Z, 0-9, _ (underscore), - (hyphen) and . (period).', - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 255, - ), - 'AttributesToGet' => array( - 'type' => 'array', - 'location' => 'json', - 'minItems' => 1, - 'items' => array( - 'name' => 'AttributeName', - 'type' => 'string', - ), - ), - 'Limit' => array( - 'description' => 'The maximum number of items to return. If Amazon DynamoDB hits this limit while scanning the table, it stops the scan and returns the matching values up to the limit, and a LastEvaluatedKey to apply in a subsequent operation to continue the scan. Also, if the scanned data set size exceeds 1 MB before Amazon DynamoDB hits this limit, it stops the scan and returns the matching values up to the limit, and a LastEvaluatedKey to apply in a subsequent operation to continue the scan.', - 'type' => 'numeric', - 'location' => 'json', - 'minimum' => 1, - ), - 'Count' => array( - 'description' => 'If set to true, Amazon DynamoDB returns a total number of items for the Scan operation, even if the operation has no matching items for the assigned filter. Do not set Count to true while providing a list of AttributesToGet, otherwise Amazon DynamoDB returns a validation error.', - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'ScanFilter' => array( - 'description' => 'Evaluates the scan results and returns only the desired values.', - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'object', - 'data' => array( - 'shape_name' => 'String', - ), - 'properties' => array( - 'AttributeValueList' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AttributeValue', - 'description' => 'AttributeValue can be String, Number, Binary, StringSet, NumberSet, BinarySet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - '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( - 'description' => 'Primary key of the item from which to continue an earlier scan. An earlier scan might provide this value if that scan operation was interrupted before scanning the entire table; either because of the result set size or the Limit parameter. The LastEvaluatedKey can be passed back in a new scan request to continue the operation from that point.', - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'HashKeyElement' => array( - 'required' => true, - 'description' => 'A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - 'RangeKeyElement' => array( - 'description' => 'A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'This exception is thrown when the level of provisioned throughput defined for the table is exceeded.', - 'class' => 'ProvisionedThroughputExceededException', - ), - array( - 'reason' => 'This exception is thrown when the resource which is being attempted to be changed is in use.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'This exception is thrown when the service has a problem when trying to process the request.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - 'UpdateItem' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'UpdateItemOutput', - 'responseType' => 'model', - 'responseNotes' => 'Returns a json_decoded array of the response body', - 'summary' => 'Edits an existing item\'s attributes.', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20111205.UpdateItem', - ), - 'TableName' => array( - 'required' => true, - 'description' => 'The name of the table in which you want to update an item. Allowed characters are a-z, A-Z, 0-9, _ (underscore), - (hyphen) and . (period).', - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 255, - ), - 'Key' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'HashKeyElement' => array( - 'required' => true, - 'description' => 'A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - 'RangeKeyElement' => array( - 'description' => 'A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - ), - ), - 'AttributeUpdates' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'description' => 'Specifies the attribute to update and how to perform the update. Possible values: PUT (default), ADD or DELETE.', - 'type' => 'object', - 'data' => array( - 'shape_name' => 'AttributeName', - ), - 'properties' => array( - 'Value' => array( - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - '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( - 'description' => 'Allows you to provide an attribute name, and whether or not Amazon DynamoDB should check to see if the attribute value already exists; or if the attribute value exists and has a particular value before changing it.', - 'type' => 'object', - 'data' => array( - 'shape_name' => 'AttributeName', - ), - 'properties' => array( - 'Value' => array( - 'description' => 'Specify whether or not a value already exists and has a specific content for the attribute name-value pair.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - 'filters' => array( - 'base64_encode', - ), - ), - ), - ), - ), - 'Exists' => array( - 'description' => 'Specify whether or not a value already exists for the attribute name-value pair.', - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - ), - 'ReturnValues' => array( - 'type' => 'string', - 'location' => 'json', - 'enum' => array( - 'NONE', - 'ALL_OLD', - 'UPDATED_OLD', - 'ALL_NEW', - 'UPDATED_NEW', - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'This exception is thrown when an expected value does not match what was found in the system.', - 'class' => 'ConditionalCheckFailedException', - ), - array( - 'reason' => 'This exception is thrown when the level of provisioned throughput defined for the table is exceeded.', - 'class' => 'ProvisionedThroughputExceededException', - ), - array( - 'reason' => 'This exception is thrown when the resource which is being attempted to be changed is in use.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'This exception is thrown when the service has a problem when trying to process the request.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - 'UpdateTable' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'UpdateTableOutput', - 'responseType' => 'model', - 'responseNotes' => 'Returns a json_decoded array of the response body', - 'summary' => 'Updates the provisioned throughput for the given table.', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20111205.UpdateTable', - ), - 'TableName' => array( - 'required' => true, - 'description' => 'The name of the table you want to update. Allowed characters are a-z, A-Z, 0-9, _ (underscore), - (hyphen) and . (period).', - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 255, - ), - 'ProvisionedThroughput' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'ReadCapacityUnits' => array( - 'required' => true, - 'description' => 'ReadCapacityUnits are in terms of strictly consistent reads, assuming items of 1k. 2k items require twice the ReadCapacityUnits. Eventually-consistent reads only require half the ReadCapacityUnits of stirctly consistent reads.', - 'type' => 'numeric', - 'minimum' => 1, - ), - 'WriteCapacityUnits' => array( - 'required' => true, - 'description' => 'WriteCapacityUnits are in terms of strictly consistent reads, assuming items of 1k. 2k items require twice the WriteCapacityUnits.', - 'type' => 'numeric', - 'minimum' => 1, - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'This exception is thrown when the resource which is being attempted to be changed is in use.', - 'class' => 'ResourceInUseException', - ), - array( - 'reason' => 'This exception is thrown when the resource which is being attempted to be changed is in use.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'This exception is thrown when the subscriber exceeded the limits on the number of objects or operations.', - 'class' => 'LimitExceededException', - ), - array( - 'reason' => 'This exception is thrown when the service has a problem when trying to process the request.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - ), - 'models' => array( - 'BatchGetItemOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Responses' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'description' => 'The item attributes from a response in a specific table, along with the read resources consumed on the table during the request.', - 'type' => 'object', - 'properties' => array( - 'Items' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AttributeMap', - 'type' => 'object', - 'additionalProperties' => array( - 'description' => 'AttributeValue can be String, Number, Binary, StringSet, NumberSet, BinarySet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'ConsumedCapacityUnits' => array( - 'type' => 'numeric', - ), - ), - ), - ), - 'UnprocessedKeys' => array( - 'description' => 'Contains a map of tables and their respective keys that were not processed with the current response, possibly due to reaching a limit on the response size. The UnprocessedKeys value is in the same form as a RequestItems parameter (so the value can be provided directly to a subsequent BatchGetItem operation). For more information, see the above RequestItems parameter.', - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'object', - 'properties' => array( - 'Keys' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Key', - 'description' => 'The primary key that uniquely identifies each item in a table. A primary key can be a one attribute (hash) primary key or a two attribute (hash-and-range) primary key.', - 'type' => 'object', - 'properties' => array( - 'HashKeyElement' => array( - 'description' => 'A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - 'RangeKeyElement' => array( - 'description' => 'A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'AttributesToGet' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AttributeName', - 'type' => 'string', - ), - ), - 'ConsistentRead' => array( - 'type' => 'boolean', - ), - ), - ), - ), - ), - ), - 'BatchWriteItemOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Responses' => array( - 'description' => 'The response object as a result of BatchWriteItem call. This is essentially a map of table name to ConsumedCapacityUnits.', - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'object', - 'properties' => array( - 'ConsumedCapacityUnits' => array( - 'type' => 'numeric', - ), - ), - ), - ), - 'UnprocessedItems' => array( - 'description' => 'The Items which we could not successfully process in a BatchWriteItem call is returned as UnprocessedItems', - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'WriteRequest', - 'description' => 'This structure is a Union of PutRequest and DeleteRequest. It can contain exactly one of PutRequest or DeleteRequest. Never Both. This is enforced in the code.', - 'type' => 'object', - 'properties' => array( - 'PutRequest' => array( - 'type' => 'object', - 'properties' => array( - 'Item' => array( - 'description' => 'The item to put', - 'type' => 'object', - 'additionalProperties' => array( - 'description' => 'AttributeValue can be String, Number, Binary, StringSet, NumberSet, BinarySet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'DeleteRequest' => array( - 'type' => 'object', - 'properties' => array( - 'Key' => array( - 'description' => 'The item\'s key to be delete', - 'type' => 'object', - 'properties' => array( - 'HashKeyElement' => array( - 'description' => 'A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - 'RangeKeyElement' => array( - 'description' => 'A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'CreateTableOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TableDescription' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'TableName' => array( - 'description' => 'The name of the table being described.', - 'type' => 'string', - ), - 'KeySchema' => array( - 'type' => 'object', - 'properties' => array( - 'HashKeyElement' => array( - 'description' => 'A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'description' => 'The AttributeName of the KeySchemaElement.', - 'type' => 'string', - ), - 'AttributeType' => array( - 'description' => 'The AttributeType of the KeySchemaElement which can be a String or a Number.', - 'type' => 'string', - ), - ), - ), - 'RangeKeyElement' => array( - 'description' => 'A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'description' => 'The AttributeName of the KeySchemaElement.', - 'type' => 'string', - ), - 'AttributeType' => array( - 'description' => 'The AttributeType of the KeySchemaElement which can be a String or a Number.', - 'type' => 'string', - ), - ), - ), - ), - ), - 'TableStatus' => array( - 'type' => 'string', - ), - 'CreationDateTime' => array( - 'type' => 'string', - ), - 'ProvisionedThroughput' => array( - 'type' => 'object', - 'properties' => array( - 'LastIncreaseDateTime' => array( - 'type' => 'string', - ), - 'LastDecreaseDateTime' => array( - 'type' => 'string', - ), - 'ReadCapacityUnits' => array( - 'type' => 'numeric', - ), - 'WriteCapacityUnits' => array( - 'type' => 'numeric', - ), - ), - ), - 'TableSizeBytes' => array( - 'type' => 'numeric', - ), - 'ItemCount' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - 'DeleteItemOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Attributes' => array( - 'description' => 'If the ReturnValues parameter is provided as ALL_OLD in the request, Amazon DynamoDB returns an array of attribute name-value pairs (essentially, the deleted item). Otherwise, the response contains an empty set.', - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'description' => 'AttributeValue can be String, Number, Binary, StringSet, NumberSet, BinarySet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - 'ConsumedCapacityUnits' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - ), - ), - 'DeleteTableOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TableDescription' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'TableName' => array( - 'description' => 'The name of the table being described.', - 'type' => 'string', - ), - 'KeySchema' => array( - 'type' => 'object', - 'properties' => array( - 'HashKeyElement' => array( - 'description' => 'A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'description' => 'The AttributeName of the KeySchemaElement.', - 'type' => 'string', - ), - 'AttributeType' => array( - 'description' => 'The AttributeType of the KeySchemaElement which can be a String or a Number.', - 'type' => 'string', - ), - ), - ), - 'RangeKeyElement' => array( - 'description' => 'A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'description' => 'The AttributeName of the KeySchemaElement.', - 'type' => 'string', - ), - 'AttributeType' => array( - 'description' => 'The AttributeType of the KeySchemaElement which can be a String or a Number.', - 'type' => 'string', - ), - ), - ), - ), - ), - 'TableStatus' => array( - 'type' => 'string', - ), - 'CreationDateTime' => array( - 'type' => 'string', - ), - 'ProvisionedThroughput' => array( - 'type' => 'object', - 'properties' => array( - 'LastIncreaseDateTime' => array( - 'type' => 'string', - ), - 'LastDecreaseDateTime' => array( - 'type' => 'string', - ), - 'ReadCapacityUnits' => array( - 'type' => 'numeric', - ), - 'WriteCapacityUnits' => array( - 'type' => 'numeric', - ), - ), - ), - 'TableSizeBytes' => array( - 'type' => 'numeric', - ), - 'ItemCount' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - 'DescribeTableOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Table' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'TableName' => array( - 'description' => 'The name of the table being described.', - 'type' => 'string', - ), - 'KeySchema' => array( - 'type' => 'object', - 'properties' => array( - 'HashKeyElement' => array( - 'description' => 'A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'description' => 'The AttributeName of the KeySchemaElement.', - 'type' => 'string', - ), - 'AttributeType' => array( - 'description' => 'The AttributeType of the KeySchemaElement which can be a String or a Number.', - 'type' => 'string', - ), - ), - ), - 'RangeKeyElement' => array( - 'description' => 'A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'description' => 'The AttributeName of the KeySchemaElement.', - 'type' => 'string', - ), - 'AttributeType' => array( - 'description' => 'The AttributeType of the KeySchemaElement which can be a String or a Number.', - 'type' => 'string', - ), - ), - ), - ), - ), - 'TableStatus' => array( - 'type' => 'string', - ), - 'CreationDateTime' => array( - 'type' => 'string', - ), - 'ProvisionedThroughput' => array( - 'type' => 'object', - 'properties' => array( - 'LastIncreaseDateTime' => array( - 'type' => 'string', - ), - 'LastDecreaseDateTime' => array( - 'type' => 'string', - ), - 'ReadCapacityUnits' => array( - 'type' => 'numeric', - ), - 'WriteCapacityUnits' => array( - 'type' => 'numeric', - ), - ), - ), - 'TableSizeBytes' => array( - 'type' => 'numeric', - ), - 'ItemCount' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - 'GetItemOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Item' => array( - 'description' => 'Contains the requested attributes.', - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'description' => 'AttributeValue can be String, Number, Binary, StringSet, NumberSet, BinarySet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - 'ConsumedCapacityUnits' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - ), - ), - 'ListTablesOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TableNames' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'TableName', - 'type' => 'string', - ), - ), - 'LastEvaluatedTableName' => array( - 'description' => 'The name of the last table in the current list. Use this value as the ExclusiveStartTableName in a new request to continue the list until all the table names are returned. If this value is null, all table names have been returned.', - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'PutItemOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Attributes' => array( - 'description' => 'Attribute values before the put operation, but only if the ReturnValues parameter is specified as ALL_OLD in the request.', - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'description' => 'AttributeValue can be String, Number, Binary, StringSet, NumberSet, BinarySet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - 'ConsumedCapacityUnits' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - ), - ), - 'QueryOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Items' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'AttributeMap', - 'type' => 'object', - 'additionalProperties' => array( - 'description' => 'AttributeValue can be String, Number, Binary, StringSet, NumberSet, BinarySet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'Count' => array( - 'description' => 'Number of items in the response.', - 'type' => 'numeric', - 'location' => 'json', - ), - 'LastEvaluatedKey' => array( - 'description' => 'Primary key of the item where the query operation stopped, inclusive of the previous result set. Use this value to start a new operation excluding this value in the new request. The LastEvaluatedKey is null when the entire query result set is complete (i.e. the operation processed the "last page").', - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'HashKeyElement' => array( - 'description' => 'A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - 'RangeKeyElement' => array( - 'description' => 'A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'ConsumedCapacityUnits' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - ), - ), - 'ScanOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Items' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'AttributeMap', - 'type' => 'object', - 'additionalProperties' => array( - 'description' => 'AttributeValue can be String, Number, Binary, StringSet, NumberSet, BinarySet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'Count' => array( - 'description' => 'Number of items in the response.', - 'type' => 'numeric', - 'location' => 'json', - ), - 'ScannedCount' => array( - 'description' => 'Number of items in the complete scan before any filters are applied. A high ScannedCount value with few, or no, Count results indicates an inefficient Scan operation.', - 'type' => 'numeric', - 'location' => 'json', - ), - 'LastEvaluatedKey' => array( - 'description' => 'Primary key of the item where the scan operation stopped. Provide this value in a subsequent scan operation to continue the operation from that point. The LastEvaluatedKey is null when the entire scan result set is complete (i.e. the operation processed the "last page").', - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'HashKeyElement' => array( - 'description' => 'A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - 'RangeKeyElement' => array( - 'description' => 'A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'ConsumedCapacityUnits' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - ), - ), - 'UpdateItemOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Attributes' => array( - 'description' => 'A map of attribute name-value pairs, but only if the ReturnValues parameter is specified as something other than NONE in the request.', - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'description' => 'AttributeValue can be String, Number, Binary, StringSet, NumberSet, BinarySet.', - 'type' => 'object', - 'properties' => array( - 'S' => array( - 'description' => 'Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).', - 'type' => 'string', - ), - 'N' => array( - 'description' => 'Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.', - 'type' => 'string', - ), - 'B' => array( - 'description' => 'Binary attributes are sequences of unsigned bytes.', - 'type' => 'string', - ), - 'SS' => array( - 'description' => 'A set of strings.', - 'type' => 'array', - 'items' => array( - 'name' => 'StringAttributeValue', - 'type' => 'string', - ), - ), - 'NS' => array( - 'description' => 'A set of numbers.', - 'type' => 'array', - 'items' => array( - 'name' => 'NumberAttributeValue', - 'type' => 'string', - ), - ), - 'BS' => array( - 'description' => 'A set of binary attributes.', - 'type' => 'array', - 'items' => array( - 'name' => 'BinaryAttributeValue', - 'type' => 'string', - ), - ), - ), - ), - ), - 'ConsumedCapacityUnits' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - ), - ), - 'UpdateTableOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TableDescription' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'TableName' => array( - 'description' => 'The name of the table being described.', - 'type' => 'string', - ), - 'KeySchema' => array( - 'type' => 'object', - 'properties' => array( - 'HashKeyElement' => array( - 'description' => 'A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'description' => 'The AttributeName of the KeySchemaElement.', - 'type' => 'string', - ), - 'AttributeType' => array( - 'description' => 'The AttributeType of the KeySchemaElement which can be a String or a Number.', - 'type' => 'string', - ), - ), - ), - 'RangeKeyElement' => array( - 'description' => 'A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be String, Number, StringSet, NumberSet.', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'description' => 'The AttributeName of the KeySchemaElement.', - 'type' => 'string', - ), - 'AttributeType' => array( - 'description' => 'The AttributeType of the KeySchemaElement which can be a String or a Number.', - 'type' => 'string', - ), - ), - ), - ), - ), - 'TableStatus' => array( - 'type' => 'string', - ), - 'CreationDateTime' => array( - 'type' => 'string', - ), - 'ProvisionedThroughput' => array( - 'type' => 'object', - 'properties' => array( - 'LastIncreaseDateTime' => array( - 'type' => 'string', - ), - 'LastDecreaseDateTime' => array( - 'type' => 'string', - ), - 'ReadCapacityUnits' => array( - 'type' => 'numeric', - ), - 'WriteCapacityUnits' => array( - 'type' => 'numeric', - ), - ), - ), - 'TableSizeBytes' => array( - 'type' => 'numeric', - ), - 'ItemCount' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - '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, - 'max_attempts' => 25, - ), - '__TableState' => array( - 'operation' => 'DescribeTable', - ), - 'TableExists' => array( - 'extends' => '__TableState', - 'description' => 'Wait until a table exists and can be accessed', - 'success.type' => 'output', - 'success.path' => 'Table/TableStatus', - 'success.value' => 'ACTIVE', - 'ignore_errors' => array( - 'ResourceNotFoundException', - ), - ), - 'TableNotExists' => array( - 'extends' => '__TableState', - 'description' => 'Wait until a table is deleted', - 'success.type' => 'error', - 'success.value' => 'ResourceNotFoundException', - ), - ), -); diff --git a/lib/aws-sdk/Aws/DynamoDb/Resources/dynamodb-2012-08-10.php b/lib/aws-sdk/Aws/DynamoDb/Resources/dynamodb-2012-08-10.php deleted file mode 100644 index d57752f..0000000 --- a/lib/aws-sdk/Aws/DynamoDb/Resources/dynamodb-2012-08-10.php +++ /dev/null @@ -1,499 +0,0 @@ - '2012-08-10', - 'endpointPrefix' => 'dynamodb', - 'serviceFullName' => 'Amazon DynamoDB', - 'serviceAbbreviation' => 'DynamoDB', - 'serviceType' => 'json', - 'jsonVersion' => '1.0', - 'targetPrefix' => 'DynamoDB_20120810.', - 'signatureVersion' => 'v4', - 'namespace' => 'DynamoDb', - 'regions' => array( - 'us-east-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'dynamodb.us-east-1.amazonaws.com', - ), - 'us-west-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'dynamodb.us-west-1.amazonaws.com', - ), - 'us-west-2' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'dynamodb.us-west-2.amazonaws.com', - ), - 'eu-west-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'dynamodb.eu-west-1.amazonaws.com', - ), - 'ap-northeast-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'dynamodb.ap-northeast-1.amazonaws.com', - ), - 'ap-southeast-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'dynamodb.ap-southeast-1.amazonaws.com', - ), - 'ap-southeast-2' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'dynamodb.ap-southeast-2.amazonaws.com', - ), - 'sa-east-1' => array( - 'http' => true, - '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, - 'hostname' => 'dynamodb.us-gov-west-1.amazonaws.com', - ), - ), - 'operations' => array( - 'BatchGetItem' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', - 'responseClass' => 'JsonOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20120810.BatchGetItem', - ), - ), - 'additionalParameters' => array( - 'location' => 'json', - 'filters' => array( - 'Aws\DynamoDb\DynamoDbCommand::marshalAttributes', - ), - ), - ), - 'BatchWriteItem' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', - 'responseClass' => 'JsonOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20120810.BatchWriteItem', - ), - ), - 'additionalParameters' => array( - 'location' => 'json', - 'filters' => array( - 'Aws\DynamoDb\DynamoDbCommand::marshalAttributes', - ), - ), - ), - 'CreateTable' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', - 'responseClass' => 'JsonOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20120810.CreateTable', - ), - ), - 'additionalParameters' => array( - 'location' => 'json', - ), - ), - 'DeleteItem' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', - 'responseClass' => 'JsonOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20120810.DeleteItem', - ), - ), - 'additionalParameters' => array( - 'location' => 'json', - 'filters' => array( - 'Aws\DynamoDb\DynamoDbCommand::marshalAttributes', - ), - ), - ), - 'DeleteTable' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', - 'responseClass' => 'JsonOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20120810.DeleteTable', - ), - ), - 'additionalParameters' => array( - 'location' => 'json', - ), - ), - 'DescribeTable' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', - 'responseClass' => 'JsonOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20120810.DescribeTable', - ), - ), - 'additionalParameters' => array( - 'location' => 'json', - ), - ), - 'GetItem' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', - 'responseClass' => 'JsonOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20120810.GetItem', - ), - ), - 'additionalParameters' => array( - 'location' => 'json', - 'filters' => array( - 'Aws\DynamoDb\DynamoDbCommand::marshalAttributes', - ), - ), - ), - 'ListTables' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', - 'responseClass' => 'JsonOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20120810.ListTables', - ), - ), - 'additionalParameters' => array( - 'location' => 'json', - ), - ), - 'PutItem' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', - 'responseClass' => 'JsonOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20120810.PutItem', - ), - ), - 'additionalParameters' => array( - 'location' => 'json', - 'filters' => array( - 'Aws\DynamoDb\DynamoDbCommand::marshalAttributes', - ), - ), - ), - 'Query' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', - 'responseClass' => 'JsonOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20120810.Query', - ), - ), - 'additionalParameters' => array( - 'location' => 'json', - 'filters' => array( - 'Aws\DynamoDb\DynamoDbCommand::marshalAttributes', - ), - ), - ), - 'Scan' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', - 'responseClass' => 'JsonOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20120810.Scan', - ), - ), - 'additionalParameters' => array( - 'location' => 'json', - 'filters' => array( - 'Aws\DynamoDb\DynamoDbCommand::marshalAttributes', - ), - ), - ), - 'UpdateItem' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', - 'responseClass' => 'JsonOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20120810.UpdateItem', - ), - ), - 'additionalParameters' => array( - 'location' => 'json', - 'filters' => array( - 'Aws\DynamoDb\DynamoDbCommand::marshalAttributes', - ), - ), - ), - 'UpdateTable' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\DynamoDb\\DynamoDbCommand', - 'responseClass' => 'JsonOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'DynamoDB_20120810.UpdateTable', - ), - ), - 'additionalParameters' => array( - 'location' => 'json', - ), - ), - ), - 'models' => array( - 'JsonOutput' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'location' => 'json', - ) - ), - ), - 'iterators' => array( - 'BatchGetItem' => array( - 'input_token' => 'RequestItems', - 'output_token' => 'UnprocessedKeys', - 'result_key' => 'Responses/*', - ), - 'ListTables' => array( - 'input_token' => 'ExclusiveStartTableName', - 'output_token' => 'LastEvaluatedTableName', - 'limit_key' => 'Limit', - 'result_key' => 'TableNames', - ), - 'Query' => array( - 'input_token' => 'ExclusiveStartKey', - 'output_token' => 'LastEvaluatedKey', - 'limit_key' => 'Limit', - 'result_key' => 'Items', - ), - 'Scan' => array( - 'input_token' => 'ExclusiveStartKey', - 'output_token' => 'LastEvaluatedKey', - 'limit_key' => 'Limit', - 'result_key' => 'Items', - ), - ), - 'waiters' => array( - '__default__' => array( - 'interval' => 20, - 'max_attempts' => 25, - ), - '__TableState' => array( - 'operation' => 'DescribeTable', - ), - 'TableExists' => array( - 'extends' => '__TableState', - 'success.type' => 'output', - 'success.path' => 'Table/TableStatus', - 'success.value' => 'ACTIVE', - 'ignore_errors' => array( - 'ResourceNotFoundException', - ), - ), - 'TableNotExists' => array( - 'extends' => '__TableState', - 'success.type' => 'error', - 'success.value' => 'ResourceNotFoundException', - ), - ), -); diff --git a/lib/aws-sdk/Aws/DynamoDb/Session/LockingStrategy/AbstractLockingStrategy.php b/lib/aws-sdk/Aws/DynamoDb/Session/LockingStrategy/AbstractLockingStrategy.php deleted file mode 100644 index 7db4ade..0000000 --- a/lib/aws-sdk/Aws/DynamoDb/Session/LockingStrategy/AbstractLockingStrategy.php +++ /dev/null @@ -1,129 +0,0 @@ -client = $client; - $this->config = $config; - } - - /** - * {@inheritdoc} - */ - public function doWrite($id, $data, $isDataChanged) - { - // Prepare the attributes - $expires = time() + $this->config->get('session_lifetime'); - $attributes = array( - 'expires' => array( - 'Value' => array( - 'N' => (string) $expires - ) - ) - ); - if ($isDataChanged) { - if ($data != '') { - $attributes['data'] = array( - 'Value' => array( - 'S' => $data - ) - ); - } else { - $attributes['data'] = array( - 'Action' => 'DELETE' - ); - } - } - $attributes = array_merge($attributes, $this->getExtraAttributes()); - - // Perform the UpdateItem command - try { - return (bool) $this->client->getCommand('UpdateItem', array( - 'TableName' => $this->config->get('table_name'), - 'Key' => $this->formatKey($id), - 'AttributeUpdates' => $attributes, - Ua::OPTION => Ua::SESSION - ))->execute(); - } catch (DynamoDbException $e) { - return false; - } - } - - /** - * {@inheritdoc} - */ - public function doDestroy($id) - { - try { - return (bool) $this->client->getCommand('DeleteItem', array( - 'TableName' => $this->config->get('table_name'), - 'Key' => $this->formatKey($id), - Ua::OPTION => Ua::SESSION - ))->execute(); - } catch (DynamoDbException $e) { - return false; - } - } - - /** - * Generates the correct key structure based on the key value and DynamoDB API version - * - * @param string $keyValue The value of the key (i.e., the session ID) - * - * @return array formatted key structure - */ - protected function formatKey($keyValue) - { - $keyName = ($this->client->getApiVersion() < '2012-08-10') - ? 'HashKeyElement' - : $this->config->get('hash_key'); - - return array($keyName => array('S' => $keyValue)); - } - - /** - * Allows the specific strategy to add additional attributes to update - * - * @return array - */ - abstract protected function getExtraAttributes(); -} diff --git a/lib/aws-sdk/Aws/DynamoDb/Session/LockingStrategy/LockingStrategyFactory.php b/lib/aws-sdk/Aws/DynamoDb/Session/LockingStrategy/LockingStrategyFactory.php deleted file mode 100644 index 5d0093b..0000000 --- a/lib/aws-sdk/Aws/DynamoDb/Session/LockingStrategy/LockingStrategyFactory.php +++ /dev/null @@ -1,85 +0,0 @@ -baseNamespace = $baseNamespace ?: __NAMESPACE__; - $this->inflector = $inflector ?: Inflector::getDefault(); - } - - /** - * Creates a session handler locking strategy - * - * @param string $lockingStrategy The name if the locking strategy - * @param SessionHandlerConfig $config The session handler config data - * - * @return LockingStrategyInterface - * - * @throws InvalidArgumentException If the locking strategy doesn't exist - */ - public function factory($lockingStrategy = null, SessionHandlerConfig $config = null) - { - // If the locking strategy is null, let's give it the name "null" - if ($lockingStrategy === null) { - $lockingStrategy = 'null'; - } - - // Make sure the locking strategy name provided is a string - if (!is_string($lockingStrategy)) { - throw new InvalidArgumentException('The session locking strategy ' - . 'name must be provided as a string.'); - } - - // Determine the class name of the locking strategy class - $classPath = $this->baseNamespace . '\\' - . $this->inflector->camel($lockingStrategy) . 'LockingStrategy'; - - // Make sure the locking strategy class exists - if (!class_exists($classPath)) { - throw new InvalidArgumentException("There is no session locking " - . "strategy named \"{$classPath}\"."); - } - - // Call the factory on the locking strategy class to create it - return new $classPath($config->get('dynamodb_client'), $config); - } -} diff --git a/lib/aws-sdk/Aws/DynamoDb/Session/LockingStrategy/LockingStrategyFactoryInterface.php b/lib/aws-sdk/Aws/DynamoDb/Session/LockingStrategy/LockingStrategyFactoryInterface.php deleted file mode 100644 index 0834ee3..0000000 --- a/lib/aws-sdk/Aws/DynamoDb/Session/LockingStrategy/LockingStrategyFactoryInterface.php +++ /dev/null @@ -1,36 +0,0 @@ -client->getCommand('GetItem', array( - 'TableName' => $this->config->get('table_name'), - 'Key' => $this->formatKey($id), - 'ConsistentRead' => (bool) $this->config->get('consistent_read'), - Ua::OPTION => Ua::SESSION - ))->execute(); - - // Get the item values - $item = array(); - $result = isset($result['Item']) ? $result['Item'] : array(); - foreach ($result as $key => $value) { - $item[$key] = current($value); - } - } catch (DynamoDbException $e) { - $item = array(); - } - - return $item; - } - - /** - * {@inheritdoc} - */ - protected function getExtraAttributes() - { - // @codeCoverageIgnoreStart - return array(); - // @codeCoverageIgnoreEnd - } -} diff --git a/lib/aws-sdk/Aws/DynamoDb/Session/LockingStrategy/PessimisticLockingStrategy.php b/lib/aws-sdk/Aws/DynamoDb/Session/LockingStrategy/PessimisticLockingStrategy.php deleted file mode 100644 index e7c3895..0000000 --- a/lib/aws-sdk/Aws/DynamoDb/Session/LockingStrategy/PessimisticLockingStrategy.php +++ /dev/null @@ -1,118 +0,0 @@ -addDefaults(array( - 'max_lock_wait_time' => 10, - 'min_lock_retry_microtime' => 10000, - 'max_lock_retry_microtime' => 50000, - )); - - parent::__construct($client, $config); - } - - /** - * {@inheritdoc} - * Retries the request until the lock can be acquired - */ - public function doRead($id) - { - $item = array(); - $rightNow = time(); - $timeout = $rightNow + $this->config->get('max_lock_wait_time'); - - // Create an UpdateItem command so that a lock can be set and the item - // returned (via ReturnValues) in a single, atomic operation - $updateItem = $this->client->getCommand('UpdateItem', array( - 'TableName' => $this->config->get('table_name'), - 'Key' => $this->formatKey($id), - 'Expected' => array( - 'lock' => array( - 'Exists' => false - ) - ), - 'AttributeUpdates' => array( - 'lock' => array( - 'Value' => array( - 'N' => '1' - ) - ) - ), - 'ReturnValues' => 'ALL_NEW', - Ua::OPTION => Ua::SESSION - )); - - // Acquire the lock and fetch the item data - do { - try { - $result = $updateItem->execute(); - } catch (ConditionalCheckFailedException $e) { - // If lock fails, sleep and try again later - usleep(rand( - $this->config->get('min_lock_retry_microtime'), - $this->config->get('max_lock_retry_microtime') - )); - - $result = array(); - $rightNow = time(); - } catch (DynamoDbException $e) { - return $item; - } - } while (!$result && $rightNow < $timeout); - - // Get the item attributes - if (isset($result['Attributes'])) { - foreach ($result['Attributes'] as $key => $value) { - $item[$key] = current($value); - } - } - - return $item; - } - - /** - * {@inheritdoc} - */ - protected function getExtraAttributes() - { - // @codeCoverageIgnoreStart - return array('lock' => array('Action' => 'DELETE')); - // @codeCoverageIgnoreEnd - } -} diff --git a/lib/aws-sdk/Aws/DynamoDb/Session/SessionHandler.php b/lib/aws-sdk/Aws/DynamoDb/Session/SessionHandler.php deleted file mode 100644 index da0cc8e..0000000 --- a/lib/aws-sdk/Aws/DynamoDb/Session/SessionHandler.php +++ /dev/null @@ -1,460 +0,0 @@ -get('dynamodb_client'); - - // Make sure locking strategy has been provided or provide a default - $strategy = $config->get('locking_strategy'); - if (!($strategy instanceof LockingStrategyInterface)) { - $factory = new LockingStrategyFactory(); - $strategy = $factory->factory($strategy, $config); - } - - // Return an instance of the session handler - return new static($client, $strategy, $config); - } - - /** - * Constructs a new DynamoDB Session Handler - * - * @param DynamoDbClient $client Client for doing DynamoDB operations - * @param LockingStrategyInterface $strategy Locking strategy for performing session locking logic - * @param SessionHandlerConfig $config Configuration options for the session handler - */ - public function __construct( - DynamoDbClient $client, - LockingStrategyInterface $strategy, - SessionHandlerConfig $config - ) { - $this->client = $client; - $this->lockingStrategy = $strategy; - $this->config = $config; - } - - /** - * Destruct the session handler and make sure the session gets written - * - * NOTE: It is usually better practice to call `session_write_close()` manually in your application as soon as - * session modifications are complete. This is especially true if session locking is enabled. - * - * @link http://php.net/manual/en/function.session-set-save-handler.php#refsect1-function.session-set-save-handler-notes - */ - public function __destruct() - { - session_write_close(); - } - - /** - * Register the DynamoDB session handler. - * - * Uses the PHP-provided method to register this class as a session handler. - * - * @return bool Whether or not the handler was registered - */ - public function register() - { - // Set garbage collection probability based on config - $autoGarbageCollection = $this->config->get('automatic_gc') ? '1' : '0'; - ini_set('session.gc_probability', $autoGarbageCollection); - - // Register the session handler - return session_set_save_handler( - array($this, 'open'), - array($this, 'close'), - array($this, 'read'), - array($this, 'write'), - array($this, 'destroy'), - array($this, 'gc') - ); - } - - /** - * Checks if the session is open and writable - * - * @return bool Whether or not the session is open for writing - */ - public function isSessionOpen() - { - return (bool) $this->openSessionId; - } - - /** - * Checks if the session has been written - * - * @return bool Whether or not the session has been written - */ - public function isSessionWritten() - { - return $this->sessionWritten; - } - - /** - * Creates a table in DynamoDB for session storage according to provided configuration options. - * - * Note: This is a one-time operation. It may be better to do this via the AWS management console ahead of time. - * - * @param int $readCapacityUnits RCUs for table read throughput - * @param int $writeCapacityUnits WCUs table write throughput - * - * @return array The command result - */ - public function createSessionsTable($readCapacityUnits, $writeCapacityUnits) - { - $tableName = $this->config->get('table_name'); - $hashKey = $this->config->get('hash_key'); - - $params = array( - 'TableName' => $tableName, - 'ProvisionedThroughput' => array( - 'ReadCapacityUnits' => (int) $readCapacityUnits, - 'WriteCapacityUnits' => (int) $writeCapacityUnits, - ), - Ua::OPTION => Ua::SESSION - ); - - if ($this->client->getApiVersion() < '2012-08-10') { - $params['KeySchema'] = array( - 'HashKeyElement' => array( - 'AttributeName' => $hashKey, - 'AttributeType' => 'S', - ) - ); - } else { - $params['AttributeDefinitions'] = array( - array( - 'AttributeName' => $hashKey, - 'AttributeType' => 'S' - ) - ); - $params['KeySchema'] = array( - array( - 'AttributeName' => $hashKey, - 'KeyType' => 'HASH' - ) - ); - } - - $result = $this->client->getCommand('CreateTable', $params)->execute(); - - $this->client->waitUntil('table_exists', array('TableName' => $tableName)); - - return $result; - } - - /** - * Open a session for writing. Triggered by session_start() - * - * Part of the standard PHP session handler interface - * - * @param string $savePath The session save path - * @param string $sessionName The session name - * - * @return bool Whether or not the operation succeeded - */ - public function open($savePath, $sessionName) - { - $this->savePath = $savePath; - $this->sessionName = $sessionName; - $this->openSessionId = session_id(); - - return $this->isSessionOpen(); - } - - /** - * Close a session from writing - * - * Part of the standard PHP session handler interface - * - * @return bool Success - */ - public function close() - { - // Make sure the session is unlocked and the expiration time is updated, even if the write did not occur - if (!$this->isSessionWritten()) { - $id = $this->formatId($this->openSessionId); - $result = $this->lockingStrategy->doWrite($id, '', false); - $this->sessionWritten = (bool) $result; - } - - $this->openSessionId = null; - - return $this->isSessionWritten(); - } - - /** - * Read a session stored in DynamoDB - * - * Part of the standard PHP session handler interface - * - * @param string $id The session ID - * - * @return string The session data - */ - public function read($id) - { - // PHP expects an empty string to be returned from this method if no - // data is retrieved - $this->dataRead = ''; - - // Get session data using the selected locking strategy - $item = $this->lockingStrategy->doRead($this->formatId($id)); - - // Return the data if it is not expired. If it is expired, remove it - if (isset($item['expires']) && isset($item['data'])) { - $this->dataRead = $item['data']; - if ($item['expires'] <= time()) { - $this->dataRead = ''; - $this->destroy($id); - } - } - - return $this->dataRead; - } - - /** - * Write a session to DynamoDB - * - * Part of the standard PHP session handler interface - * - * @param string $id The session ID - * @param string $data The serialized session data to write - * - * @return bool Whether or not the operation succeeded - */ - public function write($id, $data) - { - // Write the session data using the selected locking strategy - $this->sessionWritten = $this->lockingStrategy->doWrite( - $this->formatId($id), - $data, - ($data !== $this->dataRead) - ); - - return $this->isSessionWritten(); - } - - /** - * Delete a session stored in DynamoDB - * - * Part of the standard PHP session handler interface - * - * @param string $id The session ID - * - * @return bool Whether or not the operation succeeded - */ - public function destroy($id) - { - // Delete the session data using the selected locking strategy - $this->sessionWritten = $this->lockingStrategy->doDestroy($this->formatId($id)); - - return $this->isSessionWritten(); - } - - /** - * Triggers garbage collection on expired sessions - * - * Part of the standard PHP session handler interface - * - * @param int $maxLifetime The value of `session.gc_maxlifetime`. Ignored - * - * @return bool - */ - public function gc($maxLifetime) - { - try { - $this->garbageCollect(); - - return true; - } catch (\Exception $e) { - return false; - } - } - - /** - * Performs garbage collection on the sessions stored in the DynamoDB table - * - * If triggering garbage collection manually, use this method. If your garbage collection is triggered automatically - * by php (not recommended), then use the `gc` method. - */ - public function garbageCollect() - { - // Get relevant configuration data - $delay = (int) $this->config->get('gc_operation_delay'); - $batchSize = (int) $this->config->get('gc_batch_size'); - $tableName = $this->config->get('table_name'); - $hashKey = $this->config->get('hash_key'); - $expires = (string) time(); - $isOldApi = ($this->client->getApiVersion() < '2012-08-10'); - - // Instantiate and configure the WriteRequestBatch object that will be deleting the expired sessions - if ($delay) { - $delayFunction = function () use ($delay) { - sleep($delay); - }; - $deleteBatch = WriteRequestBatch::factory($this->client, $batchSize, $delayFunction); - } else { - $deleteBatch = WriteRequestBatch::factory($this->client, $batchSize); - } - - // Setup a scan table iterator for finding expired session items - $scanParams = array( - 'TableName' => $tableName, - 'AttributesToGet' => array( - $this->config->get('hash_key') - ), - 'ScanFilter' => array( - 'expires' => array( - 'ComparisonOperator' => 'LT', - 'AttributeValueList' => array( - array( - 'N' => $expires - ) - ), - ), - 'lock' => array( - 'ComparisonOperator' => 'NULL', - ) - ), - Ua::OPTION => Ua::SESSION - ); - if (!$isOldApi) { - $scanParams['Select'] = 'SPECIFIC_ATTRIBUTES'; - } - - // Create a scan table iterator for finding expired session items - $tableScanner = $this->client->getIterator('Scan', $scanParams); - - // If a delay has been set, then attach the delay function to execute after each scan operation - if (isset($delayFunction)) { - $tableScanner->getEventDispatcher()->addListener('resource_iterator.after_send', $delayFunction); - } - - // Perform scan and batch delete operations as needed - $keyName = $isOldApi ? 'HashKeyElement' : $hashKey; - foreach ($tableScanner as $item) { - // @codeCoverageIgnoreStart - $deleteBatch->add(new DeleteRequest(array($keyName => $item[$hashKey]), $tableName)); - // @codeCoverageIgnoreEnd - } - - // Delete any remaining items - $deleteBatch->flush(); - } - - /** - * Prepend the session ID with the session name - * - * @param string $id The session ID - * - * @return string Prepared session ID - */ - protected function formatId($id) - { - return trim($this->sessionName . '_' . $id, '_'); - } -} diff --git a/lib/aws-sdk/Aws/DynamoDb/Session/SessionHandlerConfig.php b/lib/aws-sdk/Aws/DynamoDb/Session/SessionHandlerConfig.php deleted file mode 100644 index e27288f..0000000 --- a/lib/aws-sdk/Aws/DynamoDb/Session/SessionHandlerConfig.php +++ /dev/null @@ -1,86 +0,0 @@ -data = $data; - - // Make sure the DynamoDB client has been provided - if (!($this->get('dynamodb_client') instanceof DynamoDbClient)) { - throw new InvalidArgumentException('The DynamoDB Session Handler ' - . 'must be provided an instance of the DynamoDbClient.'); - } - - // Merge provided data with defaults - $this->addDefaults(array( - 'table_name' => 'sessions', - 'hash_key' => 'id', - 'session_lifetime' => (int) ini_get('session.gc_maxlifetime'), - 'consistent_read' => true, - 'automatic_gc' => (bool) ini_get('session.gc_probability'), - 'gc_batch_size' => 25, - 'gc_operation_delay' => 0, - )); - } - - /** - * Gets a config value if it exists, otherwise it returns null - * - * @param string $key The key of the config item - * - * @return mixed - */ - public function get($key) - { - return array_key_exists($key, $this->data) ? $this->data[$key] : null; - } - - /** - * Applies default values by merging underneath the current data - * - * @param array $defaults The new default data to merge underneath - * - * @return SessionHandlerConfig - */ - public function addDefaults(array $defaults) - { - $this->data = array_replace($defaults, $this->data); - - return $this; - } -} diff --git a/lib/aws-sdk/Aws/DynamoDb/Session/SessionHandlerInterface.php b/lib/aws-sdk/Aws/DynamoDb/Session/SessionHandlerInterface.php deleted file mode 100644 index 7710fd0..0000000 --- a/lib/aws-sdk/Aws/DynamoDb/Session/SessionHandlerInterface.php +++ /dev/null @@ -1,20 +0,0 @@ -= 50400) { - /** - * @see http://php.net/manual/en/class.sessionhandlerinterface.php - */ - interface SessionHandlerInterface extends \SessionHandlerInterface {} -} else { - interface SessionHandlerInterface - { - public function close(); - public function destroy($session_id); - public function gc($maxLifetime); - public function open($savePath, $sessionName); - public function read($sessionId); - public function write($sessionId, $sessionData); - } -} diff --git a/lib/aws-sdk/Aws/DynamoDb/SessionConnectionInterface.php b/lib/aws-sdk/Aws/DynamoDb/SessionConnectionInterface.php new file mode 100644 index 0000000..0c46a7d --- /dev/null +++ b/lib/aws-sdk/Aws/DynamoDb/SessionConnectionInterface.php @@ -0,0 +1,45 @@ + false]; + if ($config['locking']) { + $connection = new LockingSessionConnection($client, $config); + } else { + $connection = new StandardSessionConnection($client, $config); + } + + return new self($connection); + } + + /** + * @param SessionConnectionInterface $connection + */ + public function __construct(SessionConnectionInterface $connection) + { + $this->connection = $connection; + } + + /** + * Register the DynamoDB session handler. + * + * @return bool Whether or not the handler was registered. + * @codeCoverageIgnore + */ + public function register() + { + return session_set_save_handler($this, true); + } + + /** + * Open a session for writing. Triggered by session_start(). + * + * @param string $savePath Session save path. + * @param string $sessionName Session name. + * + * @return bool Whether or not the operation succeeded. + */ + public function open($savePath, $sessionName) + { + $this->savePath = $savePath; + $this->sessionName = $sessionName; + $this->openSessionId = session_id(); + + return (bool) $this->openSessionId; + } + + /** + * Close a session from writing. + * + * @return bool Success + */ + public function close() + { + // Make sure the session is unlocked and the expiration time is updated, + // even if the write did not occur + if (!$this->sessionWritten) { + $id = $this->formatId($this->openSessionId); + $result = $this->connection->write($id, '', false); + $this->sessionWritten = (bool) $result; + } + + $this->openSessionId = null; + + return $this->sessionWritten; + } + + /** + * Read a session stored in DynamoDB. + * + * @param string $id Session ID. + * + * @return string Session data. + */ + public function read($id) + { + // PHP expects an empty string to be returned from this method if no + // data is retrieved + $this->dataRead = ''; + + // Get session data using the selected locking strategy + $item = $this->connection->read($this->formatId($id)); + + // Return the data if it is not expired. If it is expired, remove it + if (isset($item['expires']) && isset($item['data'])) { + $this->dataRead = $item['data']; + if ($item['expires'] <= time()) { + $this->dataRead = ''; + $this->destroy($id); + } + } + + return $this->dataRead; + } + + /** + * Write a session to DynamoDB. + * + * @param string $id Session ID. + * @param string $data Serialized session data to write. + * + * @return bool Whether or not the operation succeeded. + */ + public function write($id, $data) + { + // Write the session data using the selected locking strategy + $this->sessionWritten = $this->connection->write( + $this->formatId($id), + $data, + ($data !== $this->dataRead) + ); + + return $this->sessionWritten; + } + + /** + * Delete a session stored in DynamoDB. + * + * @param string $id Session ID. + * + * @return bool Whether or not the operation succeeded. + */ + public function destroy($id) + { + // Delete the session data using the selected locking strategy + $this->sessionWritten = $this->connection->delete($this->formatId($id)); + + return $this->sessionWritten; + } + + /** + * Satisfies the session handler interface, but does nothing. To do garbage + * collection, you must manually call the garbageCollect() method. + * + * @param int $maxLifetime Ignored. + * + * @return bool Whether or not the operation succeeded. + * @codeCoverageIgnore + */ + public function gc($maxLifetime) + { + // Garbage collection for a DynamoDB table must be triggered manually. + return true; + } + + /** + * Triggers garbage collection on expired sessions. + * @codeCoverageIgnore + */ + public function garbageCollect() + { + $this->connection->deleteExpired(); + } + + /** + * Prepend the session ID with the session name. + * + * @param string $id The session ID. + * + * @return string Prepared session ID. + */ + private function formatId($id) + { + return trim($this->sessionName . '_' . $id, '_'); + } +} diff --git a/lib/aws-sdk/Aws/DynamoDb/SetValue.php b/lib/aws-sdk/Aws/DynamoDb/SetValue.php new file mode 100644 index 0000000..5bee62b --- /dev/null +++ b/lib/aws-sdk/Aws/DynamoDb/SetValue.php @@ -0,0 +1,44 @@ +values = $values; + } + + /** + * Get the values formatted for PHP and JSON. + * + * @return array + */ + public function toArray() + { + return $this->values; + } + + public function count() + { + return count($this->values); + } + + public function getIterator() + { + return new \ArrayIterator($this->values); + } + + public function jsonSerialize() + { + return $this->toArray(); + } +} diff --git a/lib/aws-sdk/Aws/DynamoDb/StandardSessionConnection.php b/lib/aws-sdk/Aws/DynamoDb/StandardSessionConnection.php new file mode 100644 index 0000000..29b44cc --- /dev/null +++ b/lib/aws-sdk/Aws/DynamoDb/StandardSessionConnection.php @@ -0,0 +1,137 @@ +client = $client; + $this->config = $config + [ + 'table_name' => 'sessions', + 'hash_key' => 'id', + 'session_lifetime' => (int) ini_get('session.gc_maxlifetime'), + 'consistent_read' => true, + 'batch_config' => [], + ]; + } + + public function read($id) + { + $item = []; + try { + // Execute a GetItem command to retrieve the item. + $result = $this->client->getItem([ + 'TableName' => $this->config['table_name'], + 'Key' => $this->formatKey($id), + 'ConsistentRead' => (bool) $this->config['consistent_read'], + ]); + + // Get the item values + $result = isset($result['Item']) ? $result['Item'] : []; + foreach ($result as $key => $value) { + $item[$key] = current($value); + } + } catch (DynamoDbException $e) { + // Could not retrieve item, so return nothing. + } + + return $item; + } + + public function write($id, $data, $isChanged) + { + // Prepare the attributes + $expires = time() + $this->config['session_lifetime']; + $attributes = [ + 'expires' => ['Value' => ['N' => (string) $expires]], + 'lock' => ['Action' => 'DELETE'], + ]; + if ($isChanged) { + if ($data != '') { + $attributes['data'] = ['Value' => ['S' => $data]]; + } else { + $attributes['data'] = ['Action' => 'DELETE']; + } + } + + // Perform the UpdateItem command + try { + return (bool) $this->client->updateItem([ + 'TableName' => $this->config['table_name'], + 'Key' => $this->formatKey($id), + 'AttributeUpdates' => $attributes, + ]); + } catch (DynamoDbException $e) { + return false; + } + } + + public function delete($id) + { + try { + return (bool) $this->client->deleteItem([ + 'TableName' => $this->config['table_name'], + 'Key' => $this->formatKey($id), + ]); + } catch (DynamoDbException $e) { + return false; + } + } + + public function deleteExpired() + { + // Create a Scan iterator for finding expired session items + $scan = $this->client->getPaginator('Scan', [ + 'TableName' => $this->config['table_name'], + 'AttributesToGet' => [$this->config['hash_key']], + 'ScanFilter' => [ + 'expires' => [ + 'ComparisonOperator' => 'LT', + 'AttributeValueList' => [['N' => (string) time()]], + ], + 'lock' => [ + 'ComparisonOperator' => 'NULL', + ] + ], + ]); + + // Create a WriteRequestBatch for deleting the expired items + $batch = new WriteRequestBatch($this->client, $this->config['batch_config']); + + // Perform Scan and BatchWriteItem (delete) operations as needed + foreach ($scan->search('Items') as $item) { + $batch->delete( + [$this->config['hash_key'] => $item[$this->config['hash_key']]], + $this->config['table_name'] + ); + } + + // Delete any remaining items that were not auto-flushed + $batch->flush(); + } + + /** + * @param string $key + * + * @return array + */ + protected function formatKey($key) + { + return [$this->config['hash_key'] => ['S' => $key]]; + } +} diff --git a/lib/aws-sdk/Aws/DynamoDb/WriteRequestBatch.php b/lib/aws-sdk/Aws/DynamoDb/WriteRequestBatch.php new file mode 100644 index 0000000..13743fc --- /dev/null +++ b/lib/aws-sdk/Aws/DynamoDb/WriteRequestBatch.php @@ -0,0 +1,269 @@ + null, + 'batch_size' => 25, + 'pool_size' => 1, + 'autoflush' => true, + 'before' => null, + 'error' => null + ]; + + // Ensure the batch size is valid + if ($config['batch_size'] > 25 || $config['batch_size'] < 2) { + throw new \InvalidArgumentException('"batch_size" must be between 2 and 25.'); + } + + // Ensure the callbacks are valid + if ($config['before'] && !is_callable($config['before'])) { + throw new \InvalidArgumentException('"before" must be callable.'); + } + if ($config['error'] && !is_callable($config['error'])) { + throw new \InvalidArgumentException('"error" must be callable.'); + } + + // If autoflush is enabled, set the threshold + if ($config['autoflush']) { + $config['threshold'] = $config['batch_size'] * $config['pool_size']; + } + + $this->client = $client; + $this->config = $config; + $this->queue = []; + } + + /** + * Adds a put item request to the batch. + * + * @param array $item Data for an item to put. Format: + * [ + * 'attribute1' => ['type' => 'value'], + * 'attribute2' => ['type' => 'value'], + * ... + * ] + * @param string|null $table The name of the table. This must be specified + * unless the "table" option was provided in the + * config of the WriteRequestBatch. + * + * @return $this + */ + public function put(array $item, $table = null) + { + $this->queue[] = [ + 'table' => $this->determineTable($table), + 'data' => ['PutRequest' => ['Item' => $item]], + ]; + + $this->autoFlush(); + + return $this; + } + + /** + * Adds a delete item request to the batch. + * + * @param array $key Key of an item to delete. Format: + * [ + * 'key1' => ['type' => 'value'], + * ... + * ] + * @param string|null $table The name of the table. This must be specified + * unless the "table" option was provided in the + * config of the WriteRequestBatch. + * + * @return $this + */ + public function delete(array $key, $table = null) + { + $this->queue[] = [ + 'table' => $this->determineTable($table), + 'data' => ['DeleteRequest' => ['Key' => $key]], + ]; + + $this->autoFlush(); + + return $this; + } + + /** + * Flushes the batch by combining all the queued put and delete requests + * into BatchWriteItem commands and executing them. Unprocessed items are + * automatically re-queued. + * + * @param bool $untilEmpty If true, flushing will continue until the queue + * is completely empty. This will make sure that + * unprocessed items are all eventually sent. + * + * @return $this + */ + public function flush($untilEmpty = true) + { + // Send BatchWriteItem requests until the queue is empty + $keepFlushing = true; + while ($this->queue && $keepFlushing) { + $commands = $this->prepareCommands(); + $pool = new CommandPool($this->client, $commands, [ + 'before' => $this->config['before'], + 'concurrency' => $this->config['pool_size'], + 'fulfilled' => function (ResultInterface $result) { + // Re-queue any unprocessed items + if ($result->hasKey('UnprocessedItems')) { + $this->retryUnprocessed($result['UnprocessedItems']); + } + }, + 'rejected' => function ($reason) { + if ($reason instanceof AwsException) { + $code = $reason->getAwsErrorCode(); + if ($code === 'ProvisionedThroughputExceededException') { + $this->retryUnprocessed($reason->getCommand()['RequestItems']); + } elseif (is_callable($this->config['error'])) { + $this->config['error']($reason); + } + } + } + ]); + $pool->promise()->wait(); + $keepFlushing = (bool) $untilEmpty; + } + + return $this; + } + + /** + * Creates BatchWriteItem commands from the items in the queue. + * + * @return CommandInterface[] + */ + private function prepareCommands() + { + // Chunk the queue into batches + $batches = array_chunk($this->queue, $this->config['batch_size']); + $this->queue = []; + + // Create BatchWriteItem commands for each batch + $commands = []; + foreach ($batches as $batch) { + $requests = []; + foreach ($batch as $item) { + if (!isset($requests[$item['table']])) { + $requests[$item['table']] = []; + } + $requests[$item['table']][] = $item['data']; + } + $commands[] = $this->client->getCommand( + 'BatchWriteItem', + ['RequestItems' => $requests] + ); + } + + return $commands; + } + + /** + * Re-queues unprocessed results with the correct data. + * + * @param array $unprocessed Unprocessed items from a result. + */ + private function retryUnprocessed(array $unprocessed) + { + foreach ($unprocessed as $table => $requests) { + foreach ($requests as $request) { + $this->queue[] = [ + 'table' => $table, + 'data' => isset($request['PutRequest']) + ? $request['PutRequest'] + : $request['DeleteRequest'] + ]; + } + } + } + + /** + * If autoflush is enabled and the threshold is met, flush the batch + */ + private function autoFlush() + { + if ($this->config['autoflush'] + && count($this->queue) >= $this->config['threshold'] + ) { + // Flush only once. Unprocessed items are handled in a later flush. + $this->flush(false); + } + } + + /** + * Determine the table name by looking at what was provided and what the + * WriteRequestBatch was originally configured with. + * + * @param string|null $table The table name. + * + * @return string + * @throws \RuntimeException if there was no table specified. + */ + private function determineTable($table) + { + $table = $table ?: $this->config['table']; + if (!$table) { + throw new \RuntimeException('There was no table specified.'); + } + + return $table; + } +} diff --git a/lib/aws-sdk/Aws/Ec2/CopySnapshotListener.php b/lib/aws-sdk/Aws/Ec2/CopySnapshotListener.php deleted file mode 100644 index d1e2ace..0000000 --- a/lib/aws-sdk/Aws/Ec2/CopySnapshotListener.php +++ /dev/null @@ -1,82 +0,0 @@ - '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/lib/aws-sdk/Aws/Ec2/CopySnapshotMiddleware.php b/lib/aws-sdk/Aws/Ec2/CopySnapshotMiddleware.php new file mode 100644 index 0000000..c57f81d --- /dev/null +++ b/lib/aws-sdk/Aws/Ec2/CopySnapshotMiddleware.php @@ -0,0 +1,78 @@ +endpointProvider = $endpointProvider; + $this->client = $client; + $this->nextHandler = $nextHandler; + } + + public function __invoke(CommandInterface $cmd, RequestInterface $request = null) + { + if ($cmd->getName() == 'CopySnapshot' + && (!isset($cmd->__skipCopySnapshot)) + ) { + $cmd['PresignedUrl'] = $this->createPresignedUrl($this->client, $cmd); + $cmd['DestinationRegion'] = $this->client->getRegion(); + } + + $f = $this->nextHandler; + return $f($cmd, $request); + } + + private function createPresignedUrl( + AwsClientInterface $client, + CommandInterface $cmd + ) { + $newCmd = $client->getCommand('CopySnapshot', $cmd->toArray()); + // Avoid infinite recursion by flagging the new command. + $newCmd->__skipCopySnapshot = true; + // Serialize a request for the CopySnapshot operation. + $request = \Aws\serialize($newCmd); + // Create the new endpoint for the target endpoint. + $endpoint = EndpointProvider::resolve($this->endpointProvider, [ + 'region' => $cmd['SourceRegion'], + 'service' => 'ec2' + ])['endpoint']; + + // Set the request to hit the target endpoint. + $uri = $request->getUri()->withHost((new Uri($endpoint))->getHost()); + $request = $request->withUri($uri); + // Create a presigned URL for our generated request. + $signer = new SignatureV4('ec2', $cmd['SourceRegion']); + + return (string) $signer->presign( + SignatureV4::convertPostToGet($request), + $client->getCredentials()->wait(), + '+1 hour' + )->getUri(); + } +} diff --git a/lib/aws-sdk/Aws/Ec2/Ec2Client.php b/lib/aws-sdk/Aws/Ec2/Ec2Client.php index 27112bb..ab04999 100644 --- a/lib/aws-sdk/Aws/Ec2/Ec2Client.php +++ b/lib/aws-sdk/Aws/Ec2/Ec2Client.php @@ -1,292 +1,49 @@ getHandlerList()->appendInit( + CopySnapshotMiddleware::wrap( + $this, + $args['endpoint_provider'] + ), + 'ec2.copy_snapshot' + ); + }; + + parent::__construct($args); + } /** - * 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 - * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options + * @internal + * @codeCoverageIgnore */ - public static function factory($config = array()) + public static function applyDocFilters(array $api, array $docs) { - $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()); + // Several copy snapshot parameters are optional. + $docs['shapes']['String']['refs']['CopySnapshotRequest$PresignedUrl'] + = '
The SDK will compute this value ' + . 'for you on your behalf.
'; + $docs['shapes']['String']['refs']['CopySnapshotRequest$DestinationRegion'] + = '
The SDK will populate this ' + . 'parameter on your behalf using the configured region value of ' + . 'the client.
'; - return $client; + return [ + new Service($api, ApiProvider::defaultProvider()), + new DocModel($docs) + ]; } } diff --git a/lib/aws-sdk/Aws/Ec2/Enum/ContainerFormat.php b/lib/aws-sdk/Aws/Ec2/Enum/ContainerFormat.php deleted file mode 100644 index 422be1f..0000000 --- a/lib/aws-sdk/Aws/Ec2/Enum/ContainerFormat.php +++ /dev/null @@ -1,27 +0,0 @@ -get('Reservations') as $reservation) { - foreach ($reservation['Instances'] as $instance) { - $instance['Reservation'] = $reservation; - unset($instance['Reservation']['Instances']); - $instances[] = $instance; - } - } - - return $instances; - } -} diff --git a/lib/aws-sdk/Aws/Ec2/Resources/ec2-2015-04-15.php b/lib/aws-sdk/Aws/Ec2/Resources/ec2-2015-04-15.php deleted file mode 100644 index 036a1aa..0000000 --- a/lib/aws-sdk/Aws/Ec2/Resources/ec2-2015-04-15.php +++ /dev/null @@ -1,19082 +0,0 @@ - '2015-04-15', - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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', - ), - ), - ), - ), - 'PrefixListIds' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'PrefixListId', - 'type' => 'object', - 'properties' => array( - 'PrefixListId' => 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-04-15', - ), - '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', - ), - ), - ), - ), - 'PrefixListIds' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'PrefixListId', - 'type' => 'object', - 'properties' => array( - 'PrefixListId' => 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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - 'ReservedInstancesListingId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - 'CancelSpotFleetRequests' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'CancelSpotFleetRequestsResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CancelSpotFleetRequests', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2015-04-15', - ), - 'DryRun' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'SpotFleetRequestIds' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'SpotFleetRequestId', - 'items' => array( - 'name' => 'SpotFleetRequestId', - 'type' => 'string', - ), - ), - 'TerminateInstances' => array( - 'required' => true, - 'type' => 'boolean', - 'format' => 'boolean-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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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', - ), - ), - ), - ), - ), - ), - ), - 'CreateFlowLogs' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'CreateFlowLogsResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateFlowLogs', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2015-04-15', - ), - 'ResourceIds' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'ResourceId', - 'items' => array( - 'name' => 'ResourceId', - 'type' => 'string', - ), - ), - 'ResourceType' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'TrafficType' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'LogGroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'DeliverLogsPermissionArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ClientToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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' => 'CreateRouteResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateRoute', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2015-04-15', - ), - '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', - ), - 'ClientToken' => 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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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', - ), - ), - ), - 'CreateVpcEndpoint' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'CreateVpcEndpointResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateVpcEndpoint', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2015-04-15', - ), - 'DryRun' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'VpcId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ServiceName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'PolicyDocument' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'RouteTableIds' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'RouteTableId', - 'items' => array( - 'name' => 'RouteTableId', - 'type' => 'string', - ), - ), - 'ClientToken' => 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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - 'DryRun' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'DhcpOptionsId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - 'DeleteFlowLogs' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DeleteFlowLogsResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteFlowLogs', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2015-04-15', - ), - 'FlowLogIds' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'FlowLogId', - 'items' => array( - 'name' => 'FlowLogId', - 'type' => 'string', - ), - ), - ), - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - 'DryRun' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'VpcId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - 'DeleteVpcEndpoints' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DeleteVpcEndpointsResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteVpcEndpoints', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2015-04-15', - ), - 'DryRun' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'VpcEndpointIds' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'VpcEndpointId', - 'items' => array( - 'name' => 'VpcEndpointId', - 'type' => 'string', - ), - ), - ), - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - 'ExportTaskIds' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'ExportTaskId', - 'items' => array( - 'name' => 'ExportTaskId', - 'type' => 'string', - ), - ), - ), - ), - 'DescribeFlowLogs' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeFlowLogsResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeFlowLogs', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2015-04-15', - ), - 'FlowLogIds' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'FlowLogId', - 'items' => array( - 'name' => 'FlowLogId', - 'type' => 'string', - ), - ), - 'Filter' => 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', - ), - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'MaxResults' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - ), - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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', - ), - ), - ), - ), - ), - ), - ), - 'DescribeMovingAddresses' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeMovingAddressesResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeMovingAddresses', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2015-04-15', - ), - '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', - ), - ), - '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', - ), - ), - ), - ), - ), - 'MaxResults' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - ), - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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', - ), - ), - ), - ), - ), - ), - ), - 'DescribePrefixLists' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribePrefixListsResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribePrefixLists', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2015-04-15', - ), - 'DryRun' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'PrefixListIds' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'PrefixListId', - 'items' => array( - 'name' => 'PrefixListId', - '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', - ), - ), - ), - ), - ), - 'MaxResults' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - 'DryRun' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - ), - ), - 'DescribeSpotFleetInstances' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeSpotFleetInstancesResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeSpotFleetInstances', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2015-04-15', - ), - 'DryRun' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'SpotFleetRequestId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'MaxResults' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - ), - ), - 'DescribeSpotFleetRequestHistory' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeSpotFleetRequestHistoryResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeSpotFleetRequestHistory', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2015-04-15', - ), - 'DryRun' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'SpotFleetRequestId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'EventType' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'StartTime' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'MaxResults' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - ), - ), - 'DescribeSpotFleetRequests' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeSpotFleetRequestsResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeSpotFleetRequests', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2015-04-15', - ), - 'DryRun' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'SpotFleetRequestIds' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'SpotFleetRequestId', - 'items' => array( - 'name' => 'SpotFleetRequestId', - 'type' => 'string', - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'MaxResults' => array( - 'type' => 'numeric', - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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', - ), - ), - ), - ), - ), - ), - ), - 'DescribeVpcEndpointServices' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeVpcEndpointServicesResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeVpcEndpointServices', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2015-04-15', - ), - 'DryRun' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'MaxResults' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - 'DescribeVpcEndpoints' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeVpcEndpointsResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeVpcEndpoints', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2015-04-15', - ), - 'DryRun' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'VpcEndpointIds' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'VpcEndpointId', - 'items' => array( - 'name' => 'VpcEndpointId', - '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', - ), - ), - ), - ), - ), - 'MaxResults' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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', - ), - ), - ), - ), - ), - 'ModifyVpcEndpoint' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ModifyVpcEndpointResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ModifyVpcEndpoint', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2015-04-15', - ), - 'DryRun' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'VpcEndpointId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ResetPolicy' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'PolicyDocument' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'AddRouteTableIds' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'AddRouteTableId', - 'items' => array( - 'name' => 'AddRouteTableId', - 'type' => 'string', - ), - ), - 'RemoveRouteTableIds' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'RemoveRouteTableId', - 'items' => array( - 'name' => 'RemoveRouteTableId', - 'type' => '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-04-15', - ), - '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', - ), - ), - ), - ), - 'MoveAddressToVpc' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'MoveAddressToVpcResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'MoveAddressToVpc', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2015-04-15', - ), - 'DryRun' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'PublicIp' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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', - ), - ), - ), - 'RequestSpotFleet' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'RequestSpotFleetResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'RequestSpotFleet', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2015-04-15', - ), - 'DryRun' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'SpotFleetRequestConfig' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'aws.query', - 'properties' => array( - 'ClientToken' => array( - 'type' => 'string', - ), - 'SpotPrice' => array( - 'required' => true, - 'type' => 'string', - ), - 'TargetCapacity' => array( - 'required' => true, - 'type' => 'numeric', - ), - 'ValidFrom' => array( - 'type' => 'string', - ), - 'ValidUntil' => array( - 'type' => 'string', - ), - 'TerminateInstancesWithExpiration' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - 'IamFleetRole' => array( - 'required' => true, - 'type' => 'string', - ), - 'LaunchSpecifications' => array( - 'required' => true, - 'type' => 'array', - 'minItems' => 1, - 'items' => array( - 'name' => 'LaunchSpecification', - 'type' => 'object', - 'properties' => array( - 'ImageId' => array( - 'type' => 'string', - ), - 'KeyName' => array( - 'type' => 'string', - ), - 'SecurityGroups' => array( - 'type' => 'array', - 'sentAs' => 'GroupSet', - 'items' => array( - 'name' => 'GroupSet', - 'type' => 'object', - 'properties' => array( - 'GroupName' => array( - 'type' => 'string', - ), - 'GroupId' => 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', - ), - ), - ), - ), - 'MonitoringEnabled' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - 'SubnetId' => array( - 'type' => 'string', - ), - 'NetworkInterfaces' => array( - 'type' => 'array', - 'sentAs' => 'NetworkInterfaceSet', - 'items' => array( - 'name' => 'NetworkInterfaceSet', - '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', - 'sentAs' => 'PrivateIpAddressesSet', - 'items' => array( - 'name' => 'PrivateIpAddressesSet', - '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', - ), - ), - ), - ), - ), - ), - ), - ), - '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-04-15', - ), - 'DryRun' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'SpotPrice' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ClientToken' => array( - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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', - ), - ), - ), - 'RestoreAddressToClassic' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'RestoreAddressToClassicResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'RestoreAddressToClassic', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2015-04-15', - ), - 'DryRun' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'PublicIp' => 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-04-15', - ), - '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', - ), - ), - ), - ), - 'PrefixListIds' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'PrefixListId', - 'type' => 'object', - 'properties' => array( - 'PrefixListId' => 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-04-15', - ), - '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', - ), - ), - ), - ), - 'PrefixListIds' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'PrefixListId', - 'type' => 'object', - 'properties' => array( - 'PrefixListId' => 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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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-04-15', - ), - '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', - ), - ), - ), - ), - ), - ), - 'CancelSpotFleetRequestsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'UnsuccessfulFleetRequests' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'unsuccessfulFleetRequestSet', - 'items' => array( - 'name' => 'item', - 'type' => 'object', - 'sentAs' => 'item', - 'properties' => array( - 'SpotFleetRequestId' => array( - 'type' => 'string', - 'sentAs' => 'spotFleetRequestId', - ), - 'Error' => array( - 'type' => 'object', - 'sentAs' => 'error', - 'properties' => array( - 'Code' => array( - 'type' => 'string', - 'sentAs' => 'code', - ), - 'Message' => array( - 'type' => 'string', - 'sentAs' => 'message', - ), - ), - ), - ), - ), - ), - 'SuccessfulFleetRequests' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'successfulFleetRequestSet', - 'items' => array( - 'name' => 'item', - 'type' => 'object', - 'sentAs' => 'item', - 'properties' => array( - 'SpotFleetRequestId' => array( - 'type' => 'string', - 'sentAs' => 'spotFleetRequestId', - ), - 'CurrentSpotFleetRequestState' => array( - 'type' => 'string', - 'sentAs' => 'currentSpotFleetRequestState', - ), - 'PreviousSpotFleetRequestState' => array( - 'type' => 'string', - 'sentAs' => 'previousSpotFleetRequestState', - ), - ), - ), - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - ), - ), - 'CreateFlowLogsResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'FlowLogIds' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'flowLogIdSet', - 'items' => array( - 'name' => 'item', - 'type' => 'string', - 'sentAs' => 'item', - ), - ), - 'ClientToken' => array( - 'type' => 'string', - 'location' => 'xml', - 'sentAs' => 'clientToken', - ), - 'Unsuccessful' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'unsuccessful', - 'items' => array( - 'name' => 'item', - 'type' => 'object', - 'sentAs' => 'item', - 'properties' => array( - 'ResourceId' => array( - 'type' => 'string', - 'sentAs' => 'resourceId', - ), - 'Error' => array( - 'type' => 'object', - 'sentAs' => 'error', - 'properties' => array( - 'Code' => array( - 'type' => 'string', - 'sentAs' => 'code', - ), - 'Message' => array( - 'type' => 'string', - 'sentAs' => 'message', - ), - ), - ), - ), - ), - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - 'CreateRouteResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Return' => array( - 'type' => 'boolean', - 'location' => 'xml', - 'sentAs' => 'return', - ), - 'ClientToken' => array( - 'type' => 'string', - 'location' => 'xml', - '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', - ), - 'DestinationPrefixListId' => array( - 'type' => 'string', - 'sentAs' => 'destinationPrefixListId', - ), - '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', - ), - ), - ), - ), - ), - 'CreateVpcEndpointResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'VpcEndpoint' => array( - 'type' => 'object', - 'location' => 'xml', - 'sentAs' => 'vpcEndpoint', - 'properties' => array( - 'VpcEndpointId' => array( - 'type' => 'string', - 'sentAs' => 'vpcEndpointId', - ), - 'VpcId' => array( - 'type' => 'string', - 'sentAs' => 'vpcId', - ), - 'ServiceName' => array( - 'type' => 'string', - 'sentAs' => 'serviceName', - ), - 'State' => array( - 'type' => 'string', - 'sentAs' => 'state', - ), - 'PolicyDocument' => array( - 'type' => 'string', - 'sentAs' => 'policyDocument', - ), - 'RouteTableIds' => array( - 'type' => 'array', - 'sentAs' => 'routeTableIdSet', - 'items' => array( - 'name' => 'item', - 'type' => 'string', - 'sentAs' => 'item', - ), - ), - 'CreationTimestamp' => array( - 'type' => 'string', - 'sentAs' => 'creationTimestamp', - ), - ), - ), - 'ClientToken' => array( - 'type' => 'string', - 'location' => 'xml', - 'sentAs' => 'clientToken', - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - ), - ), - 'DeleteFlowLogsResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Unsuccessful' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'unsuccessful', - 'items' => array( - 'name' => 'item', - 'type' => 'object', - 'sentAs' => 'item', - 'properties' => array( - 'ResourceId' => array( - 'type' => 'string', - 'sentAs' => 'resourceId', - ), - 'Error' => array( - 'type' => 'object', - 'sentAs' => 'error', - 'properties' => array( - 'Code' => array( - 'type' => 'string', - 'sentAs' => 'code', - ), - 'Message' => array( - 'type' => 'string', - 'sentAs' => 'message', - ), - ), - ), - ), - ), - ), - ), - ), - 'DeleteVpcEndpointsResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Unsuccessful' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'unsuccessful', - 'items' => array( - 'name' => 'item', - 'type' => 'object', - 'sentAs' => 'item', - 'properties' => array( - 'ResourceId' => array( - 'type' => 'string', - 'sentAs' => 'resourceId', - ), - 'Error' => array( - 'type' => 'object', - 'sentAs' => 'error', - 'properties' => array( - 'Code' => array( - 'type' => 'string', - 'sentAs' => 'code', - ), - 'Message' => array( - 'type' => 'string', - 'sentAs' => 'message', - ), - ), - ), - ), - ), - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - ), - ), - 'DescribeFlowLogsResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'FlowLogs' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'flowLogSet', - 'items' => array( - 'name' => 'item', - 'type' => 'object', - 'sentAs' => 'item', - 'properties' => array( - 'CreationTime' => array( - 'type' => 'string', - 'sentAs' => 'creationTime', - ), - 'FlowLogId' => array( - 'type' => 'string', - 'sentAs' => 'flowLogId', - ), - 'FlowLogStatus' => array( - 'type' => 'string', - 'sentAs' => 'flowLogStatus', - ), - 'ResourceId' => array( - 'type' => 'string', - 'sentAs' => 'resourceId', - ), - 'TrafficType' => array( - 'type' => 'string', - 'sentAs' => 'trafficType', - ), - 'LogGroupName' => array( - 'type' => 'string', - 'sentAs' => 'logGroupName', - ), - 'DeliverLogsStatus' => array( - 'type' => 'string', - 'sentAs' => 'deliverLogsStatus', - ), - 'DeliverLogsErrorMessage' => array( - 'type' => 'string', - 'sentAs' => 'deliverLogsErrorMessage', - ), - 'DeliverLogsPermissionArn' => array( - 'type' => 'string', - 'sentAs' => 'deliverLogsPermissionArn', - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - 'sentAs' => 'nextToken', - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - 'DescribeMovingAddressesResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'MovingAddressStatuses' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'movingAddressStatusSet', - 'items' => array( - 'name' => 'item', - 'type' => 'object', - 'sentAs' => 'item', - 'properties' => array( - 'PublicIp' => array( - 'type' => 'string', - 'sentAs' => 'publicIp', - ), - 'MoveStatus' => array( - 'type' => 'string', - 'sentAs' => 'moveStatus', - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - 'sentAs' => 'nextToken', - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - 'DescribePrefixListsResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'PrefixLists' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'prefixListSet', - 'items' => array( - 'name' => 'item', - 'type' => 'object', - 'sentAs' => 'item', - 'properties' => array( - 'PrefixListId' => array( - 'type' => 'string', - 'sentAs' => 'prefixListId', - ), - 'PrefixListName' => array( - 'type' => 'string', - 'sentAs' => 'prefixListName', - ), - 'Cidrs' => array( - 'type' => 'array', - 'sentAs' => 'cidrSet', - 'items' => array( - 'name' => 'item', - 'type' => 'string', - 'sentAs' => 'item', - ), - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - 'sentAs' => 'nextToken', - ), - ), - ), - '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', - ), - 'DestinationPrefixListId' => array( - 'type' => 'string', - 'sentAs' => 'destinationPrefixListId', - ), - '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', - ), - ), - ), - ), - 'PrefixListIds' => array( - 'type' => 'array', - 'sentAs' => 'prefixListIds', - 'items' => array( - 'name' => 'item', - 'type' => 'object', - 'sentAs' => 'item', - 'properties' => array( - 'PrefixListId' => array( - 'type' => 'string', - 'sentAs' => 'prefixListId', - ), - ), - ), - ), - ), - ), - ), - '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', - ), - ), - ), - ), - 'PrefixListIds' => array( - 'type' => 'array', - 'sentAs' => 'prefixListIds', - 'items' => array( - 'name' => 'item', - 'type' => 'object', - 'sentAs' => 'item', - 'properties' => array( - 'PrefixListId' => array( - 'type' => 'string', - 'sentAs' => 'prefixListId', - ), - ), - ), - ), - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - ), - 'DescribeSpotFleetInstancesResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'SpotFleetRequestId' => array( - 'type' => 'string', - 'location' => 'xml', - 'sentAs' => 'spotFleetRequestId', - ), - 'ActiveInstances' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'activeInstanceSet', - 'items' => array( - 'name' => 'item', - 'type' => 'object', - 'sentAs' => 'item', - 'properties' => array( - 'InstanceType' => array( - 'type' => 'string', - 'sentAs' => 'instanceType', - ), - 'InstanceId' => array( - 'type' => 'string', - 'sentAs' => 'instanceId', - ), - 'SpotInstanceRequestId' => array( - 'type' => 'string', - 'sentAs' => 'spotInstanceRequestId', - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - 'sentAs' => 'nextToken', - ), - ), - ), - 'DescribeSpotFleetRequestHistoryResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'SpotFleetRequestId' => array( - 'type' => 'string', - 'location' => 'xml', - 'sentAs' => 'spotFleetRequestId', - ), - 'StartTime' => array( - 'type' => 'string', - 'location' => 'xml', - 'sentAs' => 'startTime', - ), - 'LastEvaluatedTime' => array( - 'type' => 'string', - 'location' => 'xml', - 'sentAs' => 'lastEvaluatedTime', - ), - 'HistoryRecords' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'historyRecordSet', - 'items' => array( - 'name' => 'item', - 'type' => 'object', - 'sentAs' => 'item', - 'properties' => array( - 'Timestamp' => array( - 'type' => 'string', - 'sentAs' => 'timestamp', - ), - 'EventType' => array( - 'type' => 'string', - 'sentAs' => 'eventType', - ), - 'EventInformation' => array( - 'type' => 'object', - 'sentAs' => 'eventInformation', - 'properties' => array( - 'InstanceId' => array( - 'type' => 'string', - 'sentAs' => 'instanceId', - ), - 'EventSubType' => array( - 'type' => 'string', - 'sentAs' => 'eventSubType', - ), - 'EventDescription' => array( - 'type' => 'string', - 'sentAs' => 'eventDescription', - ), - ), - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - 'sentAs' => 'nextToken', - ), - ), - ), - 'DescribeSpotFleetRequestsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'SpotFleetRequestConfigs' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'spotFleetRequestConfigSet', - 'items' => array( - 'name' => 'item', - 'type' => 'object', - 'sentAs' => 'item', - 'properties' => array( - 'SpotFleetRequestId' => array( - 'type' => 'string', - 'sentAs' => 'spotFleetRequestId', - ), - 'SpotFleetRequestState' => array( - 'type' => 'string', - 'sentAs' => 'spotFleetRequestState', - ), - 'SpotFleetRequestConfig' => array( - 'type' => 'object', - 'sentAs' => 'spotFleetRequestConfig', - 'properties' => array( - 'ClientToken' => array( - 'type' => 'string', - 'sentAs' => 'clientToken', - ), - 'SpotPrice' => array( - 'type' => 'string', - 'sentAs' => 'spotPrice', - ), - 'TargetCapacity' => array( - 'type' => 'numeric', - 'sentAs' => 'targetCapacity', - ), - 'ValidFrom' => array( - 'type' => 'string', - 'sentAs' => 'validFrom', - ), - 'ValidUntil' => array( - 'type' => 'string', - 'sentAs' => 'validUntil', - ), - 'TerminateInstancesWithExpiration' => array( - 'type' => 'boolean', - 'sentAs' => 'terminateInstancesWithExpiration', - ), - 'IamFleetRole' => array( - 'type' => 'string', - 'sentAs' => 'iamFleetRole', - ), - 'LaunchSpecifications' => array( - 'type' => 'array', - 'sentAs' => 'launchSpecifications', - 'items' => array( - 'name' => 'item', - 'type' => 'object', - 'sentAs' => 'item', - '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', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - 'sentAs' => 'nextToken', - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'DescribeVpcEndpointServicesResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ServiceNames' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'serviceNameSet', - 'items' => array( - 'name' => 'item', - 'type' => 'string', - 'sentAs' => 'item', - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - 'sentAs' => 'nextToken', - ), - ), - ), - 'DescribeVpcEndpointsResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'VpcEndpoints' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'vpcEndpointSet', - 'items' => array( - 'name' => 'item', - 'type' => 'object', - 'sentAs' => 'item', - 'properties' => array( - 'VpcEndpointId' => array( - 'type' => 'string', - 'sentAs' => 'vpcEndpointId', - ), - 'VpcId' => array( - 'type' => 'string', - 'sentAs' => 'vpcId', - ), - 'ServiceName' => array( - 'type' => 'string', - 'sentAs' => 'serviceName', - ), - 'State' => array( - 'type' => 'string', - 'sentAs' => 'state', - ), - 'PolicyDocument' => array( - 'type' => 'string', - 'sentAs' => 'policyDocument', - ), - 'RouteTableIds' => array( - 'type' => 'array', - 'sentAs' => 'routeTableIdSet', - 'items' => array( - 'name' => 'item', - 'type' => 'string', - 'sentAs' => 'item', - ), - ), - 'CreationTimestamp' => array( - 'type' => 'string', - 'sentAs' => 'creationTimestamp', - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - 'sentAs' => 'nextToken', - ), - ), - ), - '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', - ), - ), - ), - 'ModifyVpcEndpointResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Return' => array( - 'type' => 'boolean', - 'location' => 'xml', - 'sentAs' => 'return', - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - ), - ), - 'MoveAddressToVpcResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'AllocationId' => array( - 'type' => 'string', - 'location' => 'xml', - 'sentAs' => 'allocationId', - ), - 'Status' => array( - 'type' => 'string', - 'location' => 'xml', - 'sentAs' => 'status', - ), - ), - ), - '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', - ), - ), - ), - 'RequestSpotFleetResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'SpotFleetRequestId' => array( - 'type' => 'string', - 'location' => 'xml', - 'sentAs' => 'spotFleetRequestId', - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - 'RestoreAddressToClassicResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Status' => array( - 'type' => 'string', - 'location' => 'xml', - 'sentAs' => 'status', - ), - 'PublicIp' => array( - 'type' => 'string', - 'location' => 'xml', - 'sentAs' => 'publicIp', - ), - ), - ), - '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', - '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/lib/aws-sdk/Aws/Ecs/EcsClient.php b/lib/aws-sdk/Aws/Ecs/EcsClient.php index ac47aae..89f0fde 100644 --- a/lib/aws-sdk/Aws/Ecs/EcsClient.php +++ b/lib/aws-sdk/Aws/Ecs/EcsClient.php @@ -1,91 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/ecs-%s.php' - )) - ->setExceptionParser(new JsonQueryExceptionParser()) - ->build(); - } -} +class EcsClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/Ecs/Exception/EcsException.php b/lib/aws-sdk/Aws/Ecs/Exception/EcsException.php index aed77d7..db2c822 100644 --- a/lib/aws-sdk/Aws/Ecs/Exception/EcsException.php +++ b/lib/aws-sdk/Aws/Ecs/Exception/EcsException.php @@ -1,9 +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', - ), - array( - 'reason' => 'The specified parameter is invalid. Review the available parameters for the API request.', - 'class' => 'InvalidParameterException', - ), - ), - ), - '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( - 'required' => true, - '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( - 'required' => true, - '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', - ), - array( - 'reason' => 'The specified parameter is invalid. Review the available parameters for the API request.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'The specified cluster could not be found. You can view your available clusters with ListClusters. Amazon ECS clusters are region-specific.', - 'class' => 'ClusterNotFoundException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'The specified parameter is invalid. Review the available parameters for the API request.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'The specified cluster could not be found. You can view your available clusters with ListClusters. Amazon ECS clusters are region-specific.', - 'class' => 'ClusterNotFoundException', - ), - array( - 'reason' => 'You cannot delete a cluster that has registered container instances. You must first deregister the container instances before you can delete the cluster. For more information, see DeregisterContainerInstance.', - 'class' => 'ClusterContainsContainerInstancesException', - ), - array( - 'reason' => 'You cannot delete a cluster that contains services. You must first update the service to reduce its desired task count to 0 and then delete the service. For more information, see UpdateService and DeleteService.', - 'class' => 'ClusterContainsServicesException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'The specified parameter is invalid. Review the available parameters for the API request.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'The specified cluster could not be found. You can view your available clusters with ListClusters. Amazon ECS clusters are region-specific.', - 'class' => 'ClusterNotFoundException', - ), - array( - 'reason' => 'The specified service could not be found. You can view your available services with ListServices. Amazon ECS services are cluster-specific and region-specific.', - 'class' => 'ServiceNotFoundException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'The specified parameter is invalid. Review the available parameters for the API request.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'The specified cluster could not be found. You can view your available clusters with ListClusters. Amazon ECS clusters are region-specific.', - 'class' => 'ClusterNotFoundException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'The specified parameter is invalid. Review the available parameters for the API request.', - 'class' => 'InvalidParameterException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'The specified parameter is invalid. Review the available parameters for the API request.', - 'class' => 'InvalidParameterException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'The specified parameter is invalid. Review the available parameters for the API request.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'The specified cluster could not be found. You can view your available clusters with ListClusters. Amazon ECS clusters are region-specific.', - 'class' => 'ClusterNotFoundException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'The specified parameter is invalid. Review the available parameters for the API request.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'The specified cluster could not be found. You can view your available clusters with ListClusters. Amazon ECS clusters are region-specific.', - 'class' => 'ClusterNotFoundException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'The specified parameter is invalid. Review the available parameters for the API request.', - 'class' => 'InvalidParameterException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'The specified parameter is invalid. Review the available parameters for the API request.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'The specified cluster could not be found. You can view your available clusters with ListClusters. Amazon ECS clusters are region-specific.', - 'class' => 'ClusterNotFoundException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'The specified parameter is invalid. Review the available parameters for the API request.', - 'class' => 'InvalidParameterException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'The specified parameter is invalid. Review the available parameters for the API request.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'The specified cluster could not be found. You can view your available clusters with ListClusters. Amazon ECS clusters are region-specific.', - 'class' => 'ClusterNotFoundException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'The specified parameter is invalid. Review the available parameters for the API request.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'The specified cluster could not be found. You can view your available clusters with ListClusters. Amazon ECS clusters are region-specific.', - 'class' => 'ClusterNotFoundException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'The specified parameter is invalid. Review the available parameters for the API request.', - 'class' => 'InvalidParameterException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'The specified parameter is invalid. Review the available parameters for the API request.', - 'class' => 'InvalidParameterException', - ), - ), - ), - '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', - ), - 'desiredStatus' => 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', - ), - array( - 'reason' => 'The specified parameter is invalid. Review the available parameters for the API request.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'The specified cluster could not be found. You can view your available clusters with ListClusters. Amazon ECS clusters are region-specific.', - 'class' => 'ClusterNotFoundException', - ), - ), - ), - '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', - ), - 'protocol' => array( - 'type' => 'string', - ), - ), - ), - ), - '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', - ), - array( - 'reason' => 'The specified parameter is invalid. Review the available parameters for the API request.', - 'class' => 'InvalidParameterException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'The specified parameter is invalid. Review the available parameters for the API request.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'The specified cluster could not be found. You can view your available clusters with ListClusters. Amazon ECS clusters are region-specific.', - 'class' => 'ClusterNotFoundException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'The specified parameter is invalid. Review the available parameters for the API request.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'The specified cluster could not be found. You can view your available clusters with ListClusters. Amazon ECS clusters are region-specific.', - 'class' => 'ClusterNotFoundException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'The specified parameter is invalid. Review the available parameters for the API request.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'The specified cluster could not be found. You can view your available clusters with ListClusters. Amazon ECS clusters are region-specific.', - 'class' => 'ClusterNotFoundException', - ), - ), - ), - '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', - ), - 'protocol' => 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', - ), - ), - ), - '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', - ), - ), - ), - 'UpdateContainerAgent' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'UpdateContainerAgentResponse', - '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.UpdateContainerAgent', - ), - 'cluster' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'containerInstance' => 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', - ), - array( - 'reason' => 'The specified parameter is invalid. Review the available parameters for the API request.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'The specified cluster could not be found. You can view your available clusters with ListClusters. Amazon ECS clusters are region-specific.', - 'class' => 'ClusterNotFoundException', - ), - array( - 'reason' => 'There is already a current Amazon ECS container agent update in progress on the specified container instance. If the container agent becomes disconnected while it is in a transitional stage, such as PENDING or STAGING, the update process can get stuck in that state. However, when the agent reconnects, it will resume where it stopped previously.', - 'class' => 'UpdateInProgressException', - ), - array( - 'reason' => 'There is no update available for this Amazon ECS container agent. This could be because the agent is already running the latest version, or it is so old that there is no update path to the current version.', - 'class' => 'NoUpdateAvailableException', - ), - array( - 'reason' => 'Amazon ECS is unable to determine the current version of the Amazon ECS container agent on the container instance and does not have enough information to proceed with an update. This could be because the agent running on the container instance is an older or custom version that does not use our version information.', - 'class' => 'MissingVersionException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'The specified parameter is invalid. Review the available parameters for the API request.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'The specified cluster could not be found. You can view your available clusters with ListClusters. Amazon ECS clusters are region-specific.', - 'class' => 'ClusterNotFoundException', - ), - array( - 'reason' => 'The specified service could not be found. You can view your available services with ListServices. Amazon ECS services are cluster-specific and region-specific.', - 'class' => 'ServiceNotFoundException', - ), - array( - 'reason' => 'The specified service is not active. You cannot update a service that is not active. If you have previously deleted a service, you can recreate it with CreateService.', - 'class' => 'ServiceNotActiveException', - ), - ), - ), - ), - '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', - ), - 'activeServicesCount' => 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', - ), - 'activeServicesCount' => 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', - ), - 'versionInfo' => array( - 'type' => 'object', - 'properties' => array( - 'agentVersion' => array( - 'type' => 'string', - ), - 'agentHash' => array( - 'type' => 'string', - ), - 'dockerVersion' => 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', - ), - 'agentUpdateStatus' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - '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', - ), - 'protocol' => array( - 'type' => 'string', - ), - ), - ), - ), - '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', - ), - 'activeServicesCount' => 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', - ), - 'versionInfo' => array( - 'type' => 'object', - 'properties' => array( - 'agentVersion' => array( - 'type' => 'string', - ), - 'agentHash' => array( - 'type' => 'string', - ), - 'dockerVersion' => 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', - ), - 'agentUpdateStatus' => 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', - ), - ), - ), - ), - ), - ), - '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', - ), - 'protocol' => array( - 'type' => 'string', - ), - ), - ), - ), - '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', - ), - 'protocol' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - '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', - ), - 'telemetryEndpoint' => 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', - ), - 'versionInfo' => array( - 'type' => 'object', - 'properties' => array( - 'agentVersion' => array( - 'type' => 'string', - ), - 'agentHash' => array( - 'type' => 'string', - ), - 'dockerVersion' => 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', - ), - 'agentUpdateStatus' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - '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', - ), - 'protocol' => array( - 'type' => 'string', - ), - ), - ), - ), - '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', - ), - 'protocol' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - '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', - ), - 'protocol' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - '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', - ), - 'protocol' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - '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', - ), - ), - ), - 'UpdateContainerAgentResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'containerInstance' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'containerInstanceArn' => array( - 'type' => 'string', - ), - 'ec2InstanceId' => array( - 'type' => 'string', - ), - 'versionInfo' => array( - 'type' => 'object', - 'properties' => array( - 'agentVersion' => array( - 'type' => 'string', - ), - 'agentHash' => array( - 'type' => 'string', - ), - 'dockerVersion' => 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', - ), - 'agentUpdateStatus' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'iterators' => array( - 'ListClusters' => array( - 'input_token' => 'nextToken', - 'output_token' => 'nextToken', - 'limit_key' => 'maxResults', - 'result_key' => 'clusterArns', - ), - 'ListContainerInstances' => array( - 'input_token' => 'nextToken', - 'output_token' => 'nextToken', - 'limit_key' => 'maxResults', - 'result_key' => 'containerInstanceArns', - ), - 'ListTaskDefinitions' => array( - 'input_token' => 'nextToken', - 'output_token' => 'nextToken', - 'limit_key' => 'maxResults', - 'result_key' => 'taskDefinitionArns', - ), - 'ListTaskDefinitionFamilies' => array( - 'input_token' => 'nextToken', - 'output_token' => 'nextToken', - 'limit_key' => 'maxResults', - 'result_key' => 'families', - ), - 'ListTasks' => array( - 'input_token' => 'nextToken', - 'output_token' => 'nextToken', - 'limit_key' => 'maxResults', - 'result_key' => 'taskArns', - ), - 'ListServices' => array( - 'input_token' => 'nextToken', - 'output_token' => 'nextToken', - 'limit_key' => 'maxResults', - 'result_key' => 'serviceArns', - ), - ), -); diff --git a/lib/aws-sdk/Aws/Efs/EfsClient.php b/lib/aws-sdk/Aws/Efs/EfsClient.php index 162d522..7475aee 100644 --- a/lib/aws-sdk/Aws/Efs/EfsClient.php +++ b/lib/aws-sdk/Aws/Efs/EfsClient.php @@ -1,52 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/elasticfilesystem-%s.php' - )) - ->build(); - } -} +class EfsClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/Efs/Exception/EfsException.php b/lib/aws-sdk/Aws/Efs/Exception/EfsException.php index 6e3f64a..8880652 100644 --- a/lib/aws-sdk/Aws/Efs/Exception/EfsException.php +++ b/lib/aws-sdk/Aws/Efs/Exception/EfsException.php @@ -1,9 +1,9 @@ '2015-02-01', - 'endpointPrefix' => 'elasticfilesystem', - 'serviceFullName' => 'Amazon Elastic File System', - 'serviceAbbreviation' => 'efs', - 'serviceType' => 'rest-json', - 'signatureVersion' => 'v4', - 'namespace' => 'ElasticFileSystem', - 'operations' => array( - 'CreateFileSystem' => array( - 'httpMethod' => 'POST', - 'uri' => '/2015-02-01/file-systems', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'FileSystemDescription', - 'responseType' => 'model', - 'parameters' => array( - 'CreationToken' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 64, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned if the request is malformed or contains an error such as an invalid parameter value or a missing required parameter.', - 'class' => 'BadRequestException', - ), - array( - 'reason' => 'Returned if an error occurred on the server side.', - 'class' => 'InternalServerErrorException', - ), - array( - 'reason' => 'Returned if the file system you are trying to create already exists, with the creation token you provided.', - 'class' => 'FileSystemAlreadyExistsException', - ), - array( - 'reason' => 'Returned if the AWS account has already created maximum number of file systems allowed per account.', - 'class' => 'FileSystemLimitExceededException', - ), - ), - ), - 'CreateMountTarget' => array( - 'httpMethod' => 'POST', - 'uri' => '/2015-02-01/mount-targets', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'MountTargetDescription', - 'responseType' => 'model', - 'parameters' => array( - 'FileSystemId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'SubnetId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'IpAddress' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'SecurityGroups' => array( - 'type' => 'array', - 'location' => 'json', - 'maxItems' => 5, - 'items' => array( - 'name' => 'SecurityGroup', - 'type' => 'string', - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned if the request is malformed or contains an error such as an invalid parameter value or a missing required parameter.', - 'class' => 'BadRequestException', - ), - array( - 'reason' => 'Returned if an error occurred on the server side.', - 'class' => 'InternalServerErrorException', - ), - array( - 'reason' => 'Returned if the specified FileSystemId does not exist in the requester\'s AWS account.', - 'class' => 'FileSystemNotFoundException', - ), - array( - 'reason' => 'Returned if the file system\'s life cycle state is not "created".', - 'class' => 'IncorrectFileSystemLifeCycleStateException', - ), - array( - 'reason' => 'Returned if the mount target would violate one of the specified restrictions based on the file system\'s existing mount targets.', - 'class' => 'MountTargetConflictException', - ), - array( - 'reason' => 'Returned if there is no subnet with ID SubnetId provided in the request.', - 'class' => 'SubnetNotFoundException', - ), - array( - 'reason' => 'Returned if IpAddress was not specified in the request and there are no free IP addresses in the subnet.', - 'class' => 'NoFreeAddressesInSubnetException', - ), - array( - 'reason' => 'Returned if the request specified an IpAddress that is already in use in the subnet.', - 'class' => 'IpAddressInUseException', - ), - array( - 'reason' => 'The calling account has reached the ENI limit for the specific AWS region. Client should try to delete some ENIs or get its account limit raised. For more information, go to Amazon VPC Limits in the Amazon Virtual Private Cloud User Guide (see the Network interfaces per VPC entry in the table).', - 'class' => 'NetworkInterfaceLimitExceededException', - ), - array( - 'reason' => 'Returned if the size of SecurityGroups specified in the request is greater than five.', - 'class' => 'SecurityGroupLimitExceededException', - ), - array( - 'reason' => 'Returned if one of the specified security groups does not exist in the subnet\'s VPC.', - 'class' => 'SecurityGroupNotFoundException', - ), - array( - 'class' => 'UnsupportedAvailabilityZoneException', - ), - ), - ), - 'CreateTags' => array( - 'httpMethod' => 'POST', - 'uri' => '/2015-02-01/create-tags/{FileSystemId}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'FileSystemId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'Tags' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'json', - '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' => 'Returned if the request is malformed or contains an error such as an invalid parameter value or a missing required parameter.', - 'class' => 'BadRequestException', - ), - array( - 'reason' => 'Returned if an error occurred on the server side.', - 'class' => 'InternalServerErrorException', - ), - array( - 'reason' => 'Returned if the specified FileSystemId does not exist in the requester\'s AWS account.', - 'class' => 'FileSystemNotFoundException', - ), - ), - ), - 'DeleteFileSystem' => array( - 'httpMethod' => 'DELETE', - 'uri' => '/2015-02-01/file-systems/{FileSystemId}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'FileSystemId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned if the request is malformed or contains an error such as an invalid parameter value or a missing required parameter.', - 'class' => 'BadRequestException', - ), - array( - 'reason' => 'Returned if an error occurred on the server side.', - 'class' => 'InternalServerErrorException', - ), - array( - 'reason' => 'Returned if the specified FileSystemId does not exist in the requester\'s AWS account.', - 'class' => 'FileSystemNotFoundException', - ), - array( - 'reason' => 'Returned if a file system has mount targets.', - 'class' => 'FileSystemInUseException', - ), - ), - ), - 'DeleteMountTarget' => array( - 'httpMethod' => 'DELETE', - 'uri' => '/2015-02-01/mount-targets/{MountTargetId}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'MountTargetId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned if the request is malformed or contains an error such as an invalid parameter value or a missing required parameter.', - 'class' => 'BadRequestException', - ), - array( - 'reason' => 'Returned if an error occurred on the server side.', - 'class' => 'InternalServerErrorException', - ), - array( - 'reason' => 'The service timed out trying to fulfill the request, and the client should try the call again.', - 'class' => 'DependencyTimeoutException', - ), - array( - 'reason' => 'Returned if there is no mount target with the specified ID is found in the caller\'s account.', - 'class' => 'MountTargetNotFoundException', - ), - ), - ), - 'DeleteTags' => array( - 'httpMethod' => 'POST', - 'uri' => '/2015-02-01/delete-tags/{FileSystemId}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'FileSystemId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'TagKeys' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'TagKey', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 128, - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned if the request is malformed or contains an error such as an invalid parameter value or a missing required parameter.', - 'class' => 'BadRequestException', - ), - array( - 'reason' => 'Returned if an error occurred on the server side.', - 'class' => 'InternalServerErrorException', - ), - array( - 'reason' => 'Returned if the specified FileSystemId does not exist in the requester\'s AWS account.', - 'class' => 'FileSystemNotFoundException', - ), - ), - ), - 'DescribeFileSystems' => array( - 'httpMethod' => 'GET', - 'uri' => '/2015-02-01/file-systems', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'DescribeFileSystemsResponse', - 'responseType' => 'model', - 'parameters' => array( - 'MaxItems' => array( - 'type' => 'numeric', - 'location' => 'query', - 'minimum' => 1, - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'query', - ), - 'CreationToken' => array( - 'type' => 'string', - 'location' => 'query', - 'minLength' => 1, - 'maxLength' => 64, - ), - 'FileSystemId' => array( - 'type' => 'string', - 'location' => 'query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned if the request is malformed or contains an error such as an invalid parameter value or a missing required parameter.', - 'class' => 'BadRequestException', - ), - array( - 'reason' => 'Returned if an error occurred on the server side.', - 'class' => 'InternalServerErrorException', - ), - array( - 'reason' => 'Returned if the specified FileSystemId does not exist in the requester\'s AWS account.', - 'class' => 'FileSystemNotFoundException', - ), - ), - ), - 'DescribeMountTargetSecurityGroups' => array( - 'httpMethod' => 'GET', - 'uri' => '/2015-02-01/mount-targets/{MountTargetId}/security-groups', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'DescribeMountTargetSecurityGroupsResponse', - 'responseType' => 'model', - 'parameters' => array( - 'MountTargetId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned if the request is malformed or contains an error such as an invalid parameter value or a missing required parameter.', - 'class' => 'BadRequestException', - ), - array( - 'reason' => 'Returned if an error occurred on the server side.', - 'class' => 'InternalServerErrorException', - ), - array( - 'reason' => 'Returned if there is no mount target with the specified ID is found in the caller\'s account.', - 'class' => 'MountTargetNotFoundException', - ), - array( - 'reason' => 'Returned if the mount target is not in the correct state for the operation.', - 'class' => 'IncorrectMountTargetStateException', - ), - ), - ), - 'DescribeMountTargets' => array( - 'httpMethod' => 'GET', - 'uri' => '/2015-02-01/mount-targets', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'DescribeMountTargetsResponse', - 'responseType' => 'model', - 'parameters' => array( - 'MaxItems' => array( - 'type' => 'numeric', - 'location' => 'query', - 'minimum' => 1, - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'query', - ), - 'FileSystemId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned if the request is malformed or contains an error such as an invalid parameter value or a missing required parameter.', - 'class' => 'BadRequestException', - ), - array( - 'reason' => 'Returned if an error occurred on the server side.', - 'class' => 'InternalServerErrorException', - ), - array( - 'reason' => 'Returned if the specified FileSystemId does not exist in the requester\'s AWS account.', - 'class' => 'FileSystemNotFoundException', - ), - ), - ), - 'DescribeTags' => array( - 'httpMethod' => 'GET', - 'uri' => '/2015-02-01/tags/{FileSystemId}/', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'DescribeTagsResponse', - 'responseType' => 'model', - 'parameters' => array( - 'MaxItems' => array( - 'type' => 'numeric', - 'location' => 'query', - 'minimum' => 1, - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'query', - ), - 'FileSystemId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned if the request is malformed or contains an error such as an invalid parameter value or a missing required parameter.', - 'class' => 'BadRequestException', - ), - array( - 'reason' => 'Returned if an error occurred on the server side.', - 'class' => 'InternalServerErrorException', - ), - array( - 'reason' => 'Returned if the specified FileSystemId does not exist in the requester\'s AWS account.', - 'class' => 'FileSystemNotFoundException', - ), - ), - ), - 'ModifyMountTargetSecurityGroups' => array( - 'httpMethod' => 'PUT', - 'uri' => '/2015-02-01/mount-targets/{MountTargetId}/security-groups', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'MountTargetId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'SecurityGroups' => array( - 'type' => 'array', - 'location' => 'json', - 'maxItems' => 5, - 'items' => array( - 'name' => 'SecurityGroup', - 'type' => 'string', - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned if the request is malformed or contains an error such as an invalid parameter value or a missing required parameter.', - 'class' => 'BadRequestException', - ), - array( - 'reason' => 'Returned if an error occurred on the server side.', - 'class' => 'InternalServerErrorException', - ), - array( - 'reason' => 'Returned if there is no mount target with the specified ID is found in the caller\'s account.', - 'class' => 'MountTargetNotFoundException', - ), - array( - 'reason' => 'Returned if the mount target is not in the correct state for the operation.', - 'class' => 'IncorrectMountTargetStateException', - ), - array( - 'reason' => 'Returned if the size of SecurityGroups specified in the request is greater than five.', - 'class' => 'SecurityGroupLimitExceededException', - ), - array( - 'reason' => 'Returned if one of the specified security groups does not exist in the subnet\'s VPC.', - 'class' => 'SecurityGroupNotFoundException', - ), - ), - ), - ), - 'models' => array( - 'FileSystemDescription' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'OwnerId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'CreationToken' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'FileSystemId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'CreationTime' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'LifeCycleState' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Name' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'NumberOfMountTargets' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'SizeInBytes' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Value' => array( - 'type' => 'numeric', - ), - 'Timestamp' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'MountTargetDescription' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'OwnerId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'MountTargetId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'FileSystemId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'SubnetId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'LifeCycleState' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'IpAddress' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'NetworkInterfaceId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'EmptyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), - 'DescribeFileSystemsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'FileSystems' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'FileSystemDescription', - 'type' => 'object', - 'properties' => array( - 'OwnerId' => array( - 'type' => 'string', - ), - 'CreationToken' => array( - 'type' => 'string', - ), - 'FileSystemId' => array( - 'type' => 'string', - ), - 'CreationTime' => array( - 'type' => 'string', - ), - 'LifeCycleState' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - 'NumberOfMountTargets' => array( - 'type' => 'numeric', - ), - 'SizeInBytes' => array( - 'type' => 'object', - 'properties' => array( - 'Value' => array( - 'type' => 'numeric', - ), - 'Timestamp' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'NextMarker' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DescribeMountTargetSecurityGroupsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'SecurityGroups' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'SecurityGroup', - 'type' => 'string', - ), - ), - ), - ), - 'DescribeMountTargetsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'MountTargets' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'MountTargetDescription', - 'type' => 'object', - 'properties' => array( - 'OwnerId' => array( - 'type' => 'string', - ), - 'MountTargetId' => array( - 'type' => 'string', - ), - 'FileSystemId' => array( - 'type' => 'string', - ), - 'SubnetId' => array( - 'type' => 'string', - ), - 'LifeCycleState' => array( - 'type' => 'string', - ), - 'IpAddress' => array( - 'type' => 'string', - ), - 'NetworkInterfaceId' => array( - 'type' => 'string', - ), - ), - ), - ), - 'NextMarker' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DescribeTagsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Tags' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Tag', - 'type' => 'object', - 'properties' => array( - 'Key' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - ), - ), - ), - 'NextMarker' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - ), -); diff --git a/lib/aws-sdk/Aws/ElastiCache/ElastiCacheClient.php b/lib/aws-sdk/Aws/ElastiCache/ElastiCacheClient.php index bb4d098..9d59666 100644 --- a/lib/aws-sdk/Aws/ElastiCache/ElastiCacheClient.php +++ b/lib/aws-sdk/Aws/ElastiCache/ElastiCacheClient.php @@ -1,104 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/elasticache-%s.php' - )) - ->build(); - } -} +class ElastiCacheClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/ElastiCache/Enum/SourceType.php b/lib/aws-sdk/Aws/ElastiCache/Enum/SourceType.php deleted file mode 100644 index f5c841b..0000000 --- a/lib/aws-sdk/Aws/ElastiCache/Enum/SourceType.php +++ /dev/null @@ -1,30 +0,0 @@ - '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/lib/aws-sdk/Aws/ElasticBeanstalk/ElasticBeanstalkClient.php b/lib/aws-sdk/Aws/ElasticBeanstalk/ElasticBeanstalkClient.php index 11845d1..ababc84 100644 --- a/lib/aws-sdk/Aws/ElasticBeanstalk/ElasticBeanstalkClient.php +++ b/lib/aws-sdk/Aws/ElasticBeanstalk/ElasticBeanstalkClient.php @@ -1,93 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/elasticbeanstalk-%s.php' - )) - ->build(); - } -} +class ElasticBeanstalkClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/ElasticBeanstalk/Enum/ConfigurationDeploymentStatus.php b/lib/aws-sdk/Aws/ElasticBeanstalk/Enum/ConfigurationDeploymentStatus.php deleted file mode 100644 index 5d67ed1..0000000 --- a/lib/aws-sdk/Aws/ElasticBeanstalk/Enum/ConfigurationDeploymentStatus.php +++ /dev/null @@ -1,29 +0,0 @@ - '2010-12-01', - 'endpointPrefix' => 'elasticbeanstalk', - 'serviceFullName' => 'AWS Elastic Beanstalk', - 'serviceAbbreviation' => 'Elastic Beanstalk', - 'serviceType' => 'query', - 'resultWrapped' => true, - 'signatureVersion' => 'v4', - 'namespace' => 'ElasticBeanstalk', - 'regions' => array( - 'us-east-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'elasticbeanstalk.us-east-1.amazonaws.com', - ), - 'us-west-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'elasticbeanstalk.us-west-1.amazonaws.com', - ), - 'us-west-2' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'elasticbeanstalk.us-west-2.amazonaws.com', - ), - 'eu-west-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'elasticbeanstalk.eu-west-1.amazonaws.com', - ), - 'ap-northeast-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'elasticbeanstalk.ap-northeast-1.amazonaws.com', - ), - 'ap-southeast-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'elasticbeanstalk.ap-southeast-1.amazonaws.com', - ), - 'ap-southeast-2' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'elasticbeanstalk.ap-southeast-2.amazonaws.com', - ), - 'sa-east-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'elasticbeanstalk.sa-east-1.amazonaws.com', - ), - ), - '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' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'CheckDNSAvailabilityResultMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CheckDNSAvailability', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'CNAMEPrefix' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 4, - 'maxLength' => 63, - ), - ), - ), - 'CreateApplication' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ApplicationDescriptionMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateApplication', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'ApplicationName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'Description' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'maxLength' => 200, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The caller has exceeded the limit on the number of applications associated with their account.', - 'class' => 'TooManyApplicationsException', - ), - ), - ), - 'CreateApplicationVersion' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ApplicationVersionDescriptionMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateApplicationVersion', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'ApplicationName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'VersionLabel' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'Description' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'maxLength' => 200, - ), - 'SourceBundle' => array( - 'type' => 'object', - 'location' => 'aws.query', - 'properties' => array( - 'S3Bucket' => array( - 'type' => 'string', - 'maxLength' => 255, - ), - 'S3Key' => array( - 'type' => 'string', - 'maxLength' => 1024, - ), - ), - ), - 'AutoCreateApplication' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The caller has exceeded the limit on the number of applications associated with their account.', - 'class' => 'TooManyApplicationsException', - ), - array( - 'reason' => 'The caller has exceeded the limit on the number of application versions associated with their account.', - 'class' => 'TooManyApplicationVersionsException', - ), - 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', - ), - array( - 'reason' => 'The specified S3 bucket does not belong to the S3 region in which the service is running.', - 'class' => 'S3LocationNotInServiceRegionException', - ), - ), - ), - 'CreateConfigurationTemplate' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ConfigurationSettingsDescription', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateConfigurationTemplate', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'ApplicationName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'TemplateName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'SolutionStackName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'maxLength' => 100, - ), - 'SourceConfiguration' => array( - 'type' => 'object', - 'location' => 'aws.query', - 'properties' => array( - 'ApplicationName' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'TemplateName' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 100, - ), - ), - ), - 'EnvironmentId' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Description' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'maxLength' => 200, - ), - 'OptionSettings' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'OptionSettings.member', - 'items' => array( - 'name' => 'ConfigurationOptionSetting', - 'type' => 'object', - 'properties' => array( - 'ResourceName' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'Namespace' => array( - 'type' => 'string', - ), - 'OptionName' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - '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', - ), - array( - 'reason' => 'The caller has exceeded the limit on the number of configuration templates associated with their account.', - 'class' => 'TooManyConfigurationTemplatesException', - ), - ), - ), - 'CreateEnvironment' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EnvironmentDescription', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateEnvironment', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'ApplicationName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'EnvironmentName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 4, - 'maxLength' => 23, - ), - 'Description' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'maxLength' => 200, - ), - '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, - ), - 'TemplateName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'SolutionStackName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'maxLength' => 100, - ), - 'OptionSettings' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'OptionSettings.member', - 'items' => array( - 'name' => 'ConfigurationOptionSetting', - 'type' => 'object', - 'properties' => array( - 'ResourceName' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'Namespace' => array( - 'type' => 'string', - ), - 'OptionName' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - ), - ), - ), - 'OptionsToRemove' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'OptionsToRemove.member', - 'items' => array( - 'name' => 'OptionSpecification', - 'type' => 'object', - 'properties' => array( - 'ResourceName' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'Namespace' => array( - 'type' => 'string', - ), - 'OptionName' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The caller has exceeded the limit of allowed environments associated with the account.', - 'class' => 'TooManyEnvironmentsException', - ), - 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', - ), - ), - ), - 'CreateStorageLocation' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'CreateStorageLocationResultMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateStorageLocation', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The web service attempted to create a bucket in an Amazon S3 account that already has 100 buckets.', - 'class' => 'TooManyBucketsException', - ), - array( - 'reason' => 'The caller does not have a subscription to Amazon S3.', - 'class' => 'S3SubscriptionRequiredException', - ), - 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', - ), - ), - ), - 'DeleteApplication' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteApplication', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'ApplicationName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'TerminateEnvByForce' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Unable to perform the specified operation because another operation is already in progress affecting an an element in this activity.', - 'class' => 'OperationInProgressException', - ), - ), - ), - 'DeleteApplicationVersion' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteApplicationVersion', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'ApplicationName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'VersionLabel' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'DeleteSourceBundle' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Unable to delete the Amazon S3 source bundle associated with the application version, although the application version deleted successfully.', - 'class' => 'SourceBundleDeletionException', - ), - 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', - ), - array( - 'reason' => 'Unable to perform the specified operation because another operation is already in progress affecting an an element in this activity.', - 'class' => 'OperationInProgressException', - ), - array( - 'reason' => 'The specified S3 bucket does not belong to the S3 region in which the service is running.', - 'class' => 'S3LocationNotInServiceRegionException', - ), - ), - ), - 'DeleteConfigurationTemplate' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteConfigurationTemplate', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'ApplicationName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'TemplateName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Unable to perform the specified operation because another operation is already in progress affecting an an element in this activity.', - 'class' => 'OperationInProgressException', - ), - ), - ), - 'DeleteEnvironmentConfiguration' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteEnvironmentConfiguration', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'ApplicationName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'EnvironmentName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 4, - 'maxLength' => 23, - ), - ), - ), - 'DescribeApplicationVersions' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ApplicationVersionDescriptionsMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeApplicationVersions', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'ApplicationName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'VersionLabels' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'VersionLabels.member', - 'items' => array( - 'name' => 'VersionLabel', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 100, - ), - ), - ), - ), - 'DescribeApplications' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ApplicationDescriptionsMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeApplications', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'ApplicationNames' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'ApplicationNames.member', - 'items' => array( - 'name' => 'ApplicationName', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 100, - ), - ), - ), - ), - 'DescribeConfigurationOptions' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ConfigurationOptionsDescription', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeConfigurationOptions', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'ApplicationName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'TemplateName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'EnvironmentName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 4, - 'maxLength' => 23, - ), - 'SolutionStackName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'maxLength' => 100, - ), - 'Options' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Options.member', - 'items' => array( - 'name' => 'OptionSpecification', - 'type' => 'object', - 'properties' => array( - 'ResourceName' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'Namespace' => array( - 'type' => 'string', - ), - 'OptionName' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'DescribeConfigurationSettings' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ConfigurationSettingsDescriptions', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeConfigurationSettings', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'ApplicationName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'TemplateName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'EnvironmentName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 4, - 'maxLength' => 23, - ), - ), - ), - 'DescribeEnvironmentResources' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EnvironmentResourceDescriptionsMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeEnvironmentResources', - ), - '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', - ), - ), - ), - 'DescribeEnvironments' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EnvironmentDescriptionsMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeEnvironments', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'ApplicationName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'VersionLabel' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'EnvironmentIds' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'EnvironmentIds.member', - 'items' => array( - 'name' => 'EnvironmentId', - 'type' => 'string', - ), - ), - 'EnvironmentNames' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'EnvironmentNames.member', - 'items' => array( - 'name' => 'EnvironmentName', - 'type' => 'string', - 'minLength' => 4, - 'maxLength' => 23, - ), - ), - 'IncludeDeleted' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'IncludedDeletedBackTo' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time', - 'location' => 'aws.query', - ), - ), - ), - 'DescribeEvents' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EventDescriptionsMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeEvents', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'ApplicationName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'VersionLabel' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'TemplateName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'EnvironmentId' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'EnvironmentName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 4, - 'maxLength' => 23, - ), - 'RequestId' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Severity' => 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', - ), - 'MaxRecords' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 1, - 'maximum' => 1000, - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - 'ListAvailableSolutionStacks' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListAvailableSolutionStacksResultMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListAvailableSolutionStacks', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - ), - ), - 'RebuildEnvironment' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'RebuildEnvironment', - ), - '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', - ), - ), - ), - 'RequestEnvironmentInfo' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'RequestEnvironmentInfo', - ), - '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, - ), - 'InfoType' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - 'RestartAppServer' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'RestartAppServer', - ), - '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, - ), - ), - ), - 'RetrieveEnvironmentInfo' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'RetrieveEnvironmentInfoResultMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'RetrieveEnvironmentInfo', - ), - '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, - ), - 'InfoType' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - 'SwapEnvironmentCNAMEs' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'SwapEnvironmentCNAMEs', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'SourceEnvironmentId' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'SourceEnvironmentName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 4, - 'maxLength' => 23, - ), - 'DestinationEnvironmentId' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'DestinationEnvironmentName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 4, - 'maxLength' => 23, - ), - ), - ), - 'TerminateEnvironment' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EnvironmentDescription', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'TerminateEnvironment', - ), - '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, - ), - 'TerminateResources' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - ), - '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', - ), - ), - ), - 'UpdateApplication' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ApplicationDescriptionMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'UpdateApplication', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'ApplicationName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'Description' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'maxLength' => 200, - ), - ), - ), - 'UpdateApplicationVersion' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ApplicationVersionDescriptionMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'UpdateApplicationVersion', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'ApplicationName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'VersionLabel' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'Description' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'maxLength' => 200, - ), - ), - ), - 'UpdateConfigurationTemplate' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ConfigurationSettingsDescription', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'UpdateConfigurationTemplate', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'ApplicationName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'TemplateName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'Description' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'maxLength' => 200, - ), - 'OptionSettings' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'OptionSettings.member', - 'items' => array( - 'name' => 'ConfigurationOptionSetting', - 'type' => 'object', - 'properties' => array( - 'ResourceName' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'Namespace' => array( - 'type' => 'string', - ), - 'OptionName' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - ), - ), - ), - 'OptionsToRemove' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'OptionsToRemove.member', - 'items' => array( - 'name' => 'OptionSpecification', - 'type' => 'object', - 'properties' => array( - 'ResourceName' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'Namespace' => array( - 'type' => 'string', - ), - 'OptionName' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - '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', - ), - ), - ), - 'UpdateEnvironment' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EnvironmentDescription', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'UpdateEnvironment', - ), - '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, - ), - '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', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'TemplateName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'SolutionStackName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'maxLength' => 100, - ), - 'OptionSettings' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'OptionSettings.member', - 'items' => array( - 'name' => 'ConfigurationOptionSetting', - 'type' => 'object', - 'properties' => array( - 'ResourceName' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'Namespace' => array( - 'type' => 'string', - ), - 'OptionName' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - ), - ), - ), - 'OptionsToRemove' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'OptionsToRemove.member', - 'items' => array( - 'name' => 'OptionSpecification', - 'type' => 'object', - 'properties' => array( - 'ResourceName' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'Namespace' => array( - 'type' => 'string', - ), - 'OptionName' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - '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', - ), - ), - ), - 'ValidateConfigurationSettings' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ConfigurationSettingsValidationMessages', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ValidateConfigurationSettings', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'ApplicationName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'TemplateName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'EnvironmentName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 4, - 'maxLength' => 23, - ), - 'OptionSettings' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'OptionSettings.member', - 'items' => array( - 'name' => 'ConfigurationOptionSetting', - 'type' => 'object', - 'properties' => array( - 'ResourceName' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'Namespace' => array( - 'type' => 'string', - ), - 'OptionName' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - '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', - ), - ), - ), - ), - 'models' => array( - 'EmptyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), - 'CheckDNSAvailabilityResultMessage' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Available' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'FullyQualifiedCNAME' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ApplicationDescriptionMessage' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Application' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'ApplicationName' => array( - 'type' => 'string', - ), - 'Description' => array( - 'type' => 'string', - ), - 'DateCreated' => array( - 'type' => 'string', - ), - 'DateUpdated' => array( - 'type' => 'string', - ), - 'Versions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'VersionLabel', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'ConfigurationTemplates' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'ConfigurationTemplateName', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - ), - ), - ), - ), - 'ApplicationVersionDescriptionMessage' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ApplicationVersion' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'ApplicationName' => array( - 'type' => 'string', - ), - 'Description' => array( - 'type' => 'string', - ), - 'VersionLabel' => array( - 'type' => 'string', - ), - 'SourceBundle' => array( - 'type' => 'object', - 'properties' => array( - 'S3Bucket' => array( - 'type' => 'string', - ), - 'S3Key' => array( - 'type' => 'string', - ), - ), - ), - 'DateCreated' => array( - 'type' => 'string', - ), - 'DateUpdated' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'ConfigurationSettingsDescription' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'SolutionStackName' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'ApplicationName' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'TemplateName' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'Description' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'EnvironmentName' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'DeploymentStatus' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'DateCreated' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'DateUpdated' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'OptionSettings' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'ConfigurationOptionSetting', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'ResourceName' => array( - 'type' => 'string', - ), - 'Namespace' => array( - 'type' => 'string', - ), - 'OptionName' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'EnvironmentDescription' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'EnvironmentName' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'EnvironmentId' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'ApplicationName' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'VersionLabel' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'SolutionStackName' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'TemplateName' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'Description' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'EndpointURL' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'CNAME' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'DateCreated' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'DateUpdated' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'Status' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'AbortableOperationInProgress' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Health' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'Resources' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'LoadBalancer' => array( - 'type' => 'object', - 'properties' => array( - 'LoadBalancerName' => array( - 'type' => 'string', - ), - 'Domain' => array( - 'type' => 'string', - ), - 'Listeners' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Listener', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'Protocol' => array( - 'type' => 'string', - ), - 'Port' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - ), - ), - 'Tier' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'Type' => array( - 'type' => 'string', - ), - 'Version' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'CreateStorageLocationResultMessage' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'S3Bucket' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ApplicationVersionDescriptionsMessage' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ApplicationVersions' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'ApplicationVersionDescription', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'ApplicationName' => array( - 'type' => 'string', - ), - 'Description' => array( - 'type' => 'string', - ), - 'VersionLabel' => array( - 'type' => 'string', - ), - 'SourceBundle' => array( - 'type' => 'object', - 'properties' => array( - 'S3Bucket' => array( - 'type' => 'string', - ), - 'S3Key' => array( - 'type' => 'string', - ), - ), - ), - 'DateCreated' => array( - 'type' => 'string', - ), - 'DateUpdated' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'ApplicationDescriptionsMessage' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Applications' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'ApplicationDescription', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'ApplicationName' => array( - 'type' => 'string', - ), - 'Description' => array( - 'type' => 'string', - ), - 'DateCreated' => array( - 'type' => 'string', - ), - 'DateUpdated' => array( - 'type' => 'string', - ), - 'Versions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'VersionLabel', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'ConfigurationTemplates' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'ConfigurationTemplateName', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - ), - ), - ), - ), - ), - 'ConfigurationOptionsDescription' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'SolutionStackName' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'Options' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'ConfigurationOptionDescription', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'Namespace' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - 'DefaultValue' => array( - 'type' => 'string', - ), - 'ChangeSeverity' => array( - 'type' => 'string', - ), - 'UserDefined' => array( - 'type' => 'boolean', - ), - 'ValueType' => array( - 'type' => 'string', - ), - 'ValueOptions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'ConfigurationOptionPossibleValue', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'MinValue' => array( - 'type' => 'numeric', - ), - 'MaxValue' => array( - 'type' => 'numeric', - ), - 'MaxLength' => array( - 'type' => 'numeric', - ), - 'Regex' => array( - 'type' => 'object', - 'properties' => array( - 'Pattern' => array( - 'type' => 'string', - ), - 'Label' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - 'ConfigurationSettingsDescriptions' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ConfigurationSettings' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'ConfigurationSettingsDescription', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'SolutionStackName' => array( - 'type' => 'string', - ), - 'ApplicationName' => array( - 'type' => 'string', - ), - 'TemplateName' => array( - 'type' => 'string', - ), - 'Description' => array( - 'type' => 'string', - ), - 'EnvironmentName' => array( - 'type' => 'string', - ), - 'DeploymentStatus' => array( - 'type' => 'string', - ), - 'DateCreated' => array( - 'type' => 'string', - ), - 'DateUpdated' => array( - 'type' => 'string', - ), - 'OptionSettings' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'ConfigurationOptionSetting', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'ResourceName' => array( - 'type' => 'string', - ), - 'Namespace' => array( - 'type' => 'string', - ), - 'OptionName' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'EnvironmentResourceDescriptionsMessage' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'EnvironmentResources' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'EnvironmentName' => array( - 'type' => 'string', - ), - 'AutoScalingGroups' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AutoScalingGroup', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Instances' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Instance', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - ), - ), - ), - 'LaunchConfigurations' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'LaunchConfiguration', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - ), - ), - ), - 'LoadBalancers' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'LoadBalancer', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Triggers' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Trigger', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Queues' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Queue', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'URL' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - 'EnvironmentDescriptionsMessage' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Environments' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'EnvironmentDescription', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'EnvironmentName' => array( - 'type' => 'string', - ), - 'EnvironmentId' => array( - 'type' => 'string', - ), - 'ApplicationName' => array( - 'type' => 'string', - ), - 'VersionLabel' => array( - 'type' => 'string', - ), - 'SolutionStackName' => array( - 'type' => 'string', - ), - 'TemplateName' => array( - 'type' => 'string', - ), - 'Description' => array( - 'type' => 'string', - ), - 'EndpointURL' => array( - 'type' => 'string', - ), - 'CNAME' => array( - 'type' => 'string', - ), - 'DateCreated' => array( - 'type' => 'string', - ), - 'DateUpdated' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'AbortableOperationInProgress' => array( - 'type' => 'boolean', - ), - 'Health' => array( - 'type' => 'string', - ), - 'Resources' => array( - 'type' => 'object', - 'properties' => array( - 'LoadBalancer' => array( - 'type' => 'object', - 'properties' => array( - 'LoadBalancerName' => array( - 'type' => 'string', - ), - 'Domain' => array( - 'type' => 'string', - ), - 'Listeners' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Listener', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'Protocol' => array( - 'type' => 'string', - ), - 'Port' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - ), - ), - 'Tier' => array( - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'Type' => array( - 'type' => 'string', - ), - 'Version' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - 'EventDescriptionsMessage' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Events' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'EventDescription', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'EventDate' => array( - 'type' => 'string', - ), - 'Message' => array( - 'type' => 'string', - ), - 'ApplicationName' => array( - 'type' => 'string', - ), - 'VersionLabel' => array( - 'type' => 'string', - ), - 'TemplateName' => array( - 'type' => 'string', - ), - 'EnvironmentName' => array( - 'type' => 'string', - ), - 'RequestId' => array( - 'type' => 'string', - ), - 'Severity' => array( - 'type' => 'string', - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ListAvailableSolutionStacksResultMessage' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'SolutionStacks' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'SolutionStackName', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'SolutionStackDetails' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'SolutionStackDescription', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'SolutionStackName' => array( - 'type' => 'string', - ), - 'PermittedFileTypes' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'FileTypeExtension', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - ), - ), - ), - ), - ), - 'RetrieveEnvironmentInfoResultMessage' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'EnvironmentInfo' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'EnvironmentInfoDescription', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'InfoType' => array( - 'type' => 'string', - ), - 'Ec2InstanceId' => array( - 'type' => 'string', - ), - 'SampleTimestamp' => array( - 'type' => 'string', - ), - 'Message' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'ConfigurationSettingsValidationMessages' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Messages' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'ValidationMessage', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'Message' => array( - 'type' => 'string', - ), - 'Severity' => array( - 'type' => 'string', - ), - 'Namespace' => array( - 'type' => 'string', - ), - 'OptionName' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'iterators' => array( - '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( - '__default__' => array( - 'interval' => 20, - 'max_attempts' => 40, - 'acceptor.type' => 'output', - ), - '__EnvironmentState' => array( - 'operation' => 'DescribeEnvironments', - 'acceptor.path' => 'Environments/*/Status', - ), - 'EnvironmentReady' => array( - 'extends' => '__EnvironmentState', - 'success.value' => 'Ready', - 'failure.value' => array( - 'Terminated', - 'Terminating', - ), - ), - 'EnvironmentTerminated' => array( - 'extends' => '__EnvironmentState', - 'success.value' => 'Terminated', - 'failure.value' => array( - 'Launching', - 'Updating', - ), - ), - ), -); diff --git a/lib/aws-sdk/Aws/ElasticLoadBalancing/ElasticLoadBalancingClient.php b/lib/aws-sdk/Aws/ElasticLoadBalancing/ElasticLoadBalancingClient.php index 0ae30fc..78ef75c 100644 --- a/lib/aws-sdk/Aws/ElasticLoadBalancing/ElasticLoadBalancingClient.php +++ b/lib/aws-sdk/Aws/ElasticLoadBalancing/ElasticLoadBalancingClient.php @@ -1,87 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/elasticloadbalancing-%s.php' - )) - ->build(); - } -} +class ElasticLoadBalancingClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/ElasticLoadBalancing/Exception/AccessPointNotFoundException.php b/lib/aws-sdk/Aws/ElasticLoadBalancing/Exception/AccessPointNotFoundException.php deleted file mode 100644 index 8c94d39..0000000 --- a/lib/aws-sdk/Aws/ElasticLoadBalancing/Exception/AccessPointNotFoundException.php +++ /dev/null @@ -1,22 +0,0 @@ - '2012-06-01', - 'endpointPrefix' => 'elasticloadbalancing', - 'serviceFullName' => 'Elastic Load Balancing', - 'serviceType' => 'query', - 'resultWrapped' => true, - 'signatureVersion' => 'v4', - 'namespace' => 'ElasticLoadBalancing', - 'regions' => array( - 'us-east-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'elasticloadbalancing.us-east-1.amazonaws.com', - ), - 'us-west-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'elasticloadbalancing.us-west-1.amazonaws.com', - ), - 'us-west-2' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'elasticloadbalancing.us-west-2.amazonaws.com', - ), - 'eu-west-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'elasticloadbalancing.eu-west-1.amazonaws.com', - ), - 'ap-northeast-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'elasticloadbalancing.ap-northeast-1.amazonaws.com', - ), - 'ap-southeast-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'elasticloadbalancing.ap-southeast-1.amazonaws.com', - ), - 'ap-southeast-2' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'elasticloadbalancing.ap-southeast-2.amazonaws.com', - ), - 'sa-east-1' => array( - 'http' => true, - '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, - 'hostname' => 'elasticloadbalancing.us-gov-west-1.amazonaws.com', - ), - ), - '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' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ApplySecurityGroupsToLoadBalancerOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ApplySecurityGroupsToLoadBalancer', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'LoadBalancerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'SecurityGroups' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'SecurityGroups.member', - 'items' => array( - 'name' => 'SecurityGroupId', - 'type' => 'string', - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified load balancer could not be found.', - 'class' => 'AccessPointNotFoundException', - ), - array( - 'reason' => 'Requested configuration change is invalid.', - 'class' => 'InvalidConfigurationRequestException', - ), - array( - 'reason' => 'One or more specified security groups do not exist.', - 'class' => 'InvalidSecurityGroupException', - ), - ), - ), - 'AttachLoadBalancerToSubnets' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'AttachLoadBalancerToSubnetsOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'AttachLoadBalancerToSubnets', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'LoadBalancerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Subnets' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Subnets.member', - 'items' => array( - 'name' => 'SubnetId', - 'type' => 'string', - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified load balancer could not be found.', - 'class' => 'AccessPointNotFoundException', - ), - array( - 'reason' => 'Requested configuration change is invalid.', - 'class' => 'InvalidConfigurationRequestException', - ), - array( - 'reason' => 'One or more subnets were not found.', - 'class' => 'SubnetNotFoundException', - ), - array( - 'reason' => 'The VPC has no Internet gateway.', - 'class' => 'InvalidSubnetException', - ), - ), - ), - 'ConfigureHealthCheck' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ConfigureHealthCheckOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ConfigureHealthCheck', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'LoadBalancerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'HealthCheck' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'aws.query', - 'properties' => array( - 'Target' => array( - 'required' => true, - 'type' => 'string', - ), - 'Interval' => array( - 'required' => true, - 'type' => 'numeric', - 'minimum' => 1, - 'maximum' => 300, - ), - 'Timeout' => array( - 'required' => true, - 'type' => 'numeric', - 'minimum' => 1, - 'maximum' => 300, - ), - 'UnhealthyThreshold' => array( - 'required' => true, - 'type' => 'numeric', - 'minimum' => 2, - 'maximum' => 10, - ), - 'HealthyThreshold' => array( - 'required' => true, - 'type' => 'numeric', - 'minimum' => 2, - 'maximum' => 10, - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified load balancer could not be found.', - 'class' => 'AccessPointNotFoundException', - ), - ), - ), - 'CreateAppCookieStickinessPolicy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateAppCookieStickinessPolicy', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'LoadBalancerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'PolicyName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'CookieName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified load balancer could not be found.', - 'class' => 'AccessPointNotFoundException', - ), - array( - 'reason' => 'Policy with the same name exists for this load balancer. Please choose another name.', - 'class' => 'DuplicatePolicyNameException', - ), - array( - 'reason' => 'Quota for number of policies for this load balancer has already been reached.', - 'class' => 'TooManyPoliciesException', - ), - array( - 'reason' => 'Requested configuration change is invalid.', - 'class' => 'InvalidConfigurationRequestException', - ), - ), - ), - 'CreateLBCookieStickinessPolicy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateLBCookieStickinessPolicy', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'LoadBalancerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'PolicyName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'CookieExpirationPeriod' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified load balancer could not be found.', - 'class' => 'AccessPointNotFoundException', - ), - array( - 'reason' => 'Policy with the same name exists for this load balancer. Please choose another name.', - 'class' => 'DuplicatePolicyNameException', - ), - array( - 'reason' => 'Quota for number of policies for this load balancer has already been reached.', - 'class' => 'TooManyPoliciesException', - ), - array( - 'reason' => 'Requested configuration change is invalid.', - 'class' => 'InvalidConfigurationRequestException', - ), - ), - ), - 'CreateLoadBalancer' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'CreateAccessPointOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateLoadBalancer', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'LoadBalancerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Listeners' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Listeners.member', - 'items' => array( - 'name' => 'Listener', - 'type' => 'object', - 'properties' => array( - 'Protocol' => array( - 'required' => true, - 'type' => 'string', - ), - 'LoadBalancerPort' => array( - 'required' => true, - 'type' => 'numeric', - ), - 'InstanceProtocol' => array( - 'type' => 'string', - ), - 'InstancePort' => array( - 'required' => true, - 'type' => 'numeric', - 'minimum' => 1, - 'maximum' => 65535, - ), - 'SSLCertificateId' => array( - 'type' => 'string', - ), - ), - ), - ), - 'AvailabilityZones' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'AvailabilityZones.member', - 'items' => array( - 'name' => 'AvailabilityZone', - 'type' => 'string', - ), - ), - 'Subnets' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Subnets.member', - 'items' => array( - 'name' => 'SubnetId', - 'type' => 'string', - ), - ), - 'SecurityGroups' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'SecurityGroups.member', - 'items' => array( - 'name' => 'SecurityGroupId', - 'type' => 'string', - ), - ), - 'Scheme' => 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' => 'The load balancer name already exists for this account. Please choose another name.', - 'class' => 'DuplicateAccessPointNameException', - ), - array( - 'reason' => 'The quota for the number of load balancers has already been reached.', - 'class' => 'TooManyAccessPointsException', - ), - array( - 'reason' => 'The specified SSL ID does not refer to a valid SSL certificate in the AWS Identity and Access Management Service.', - 'class' => 'CertificateNotFoundException', - ), - array( - 'reason' => 'Requested configuration change is invalid.', - 'class' => 'InvalidConfigurationRequestException', - ), - array( - 'reason' => 'One or more subnets were not found.', - 'class' => 'SubnetNotFoundException', - ), - array( - 'reason' => 'The VPC has no Internet gateway.', - 'class' => 'InvalidSubnetException', - ), - array( - 'reason' => 'One or more specified security groups do not exist.', - 'class' => 'InvalidSecurityGroupException', - ), - 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateLoadBalancerListeners', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'LoadBalancerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Listeners' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Listeners.member', - 'items' => array( - 'name' => 'Listener', - 'type' => 'object', - 'properties' => array( - 'Protocol' => array( - 'required' => true, - 'type' => 'string', - ), - 'LoadBalancerPort' => array( - 'required' => true, - 'type' => 'numeric', - ), - 'InstanceProtocol' => array( - 'type' => 'string', - ), - 'InstancePort' => array( - 'required' => true, - 'type' => 'numeric', - 'minimum' => 1, - 'maximum' => 65535, - ), - 'SSLCertificateId' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified load balancer could not be found.', - 'class' => 'AccessPointNotFoundException', - ), - array( - 'reason' => 'A Listener already exists for the given LoadBalancerName and LoadBalancerPort, but with a different InstancePort, Protocol, or SSLCertificateId.', - 'class' => 'DuplicateListenerException', - ), - array( - 'reason' => 'The specified SSL ID does not refer to a valid SSL certificate in the AWS Identity and Access Management Service.', - 'class' => 'CertificateNotFoundException', - ), - array( - 'reason' => 'Requested configuration change is invalid.', - 'class' => 'InvalidConfigurationRequestException', - ), - ), - ), - 'CreateLoadBalancerPolicy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateLoadBalancerPolicy', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'LoadBalancerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'PolicyName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'PolicyTypeName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'PolicyAttributes' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'PolicyAttributes.member', - 'items' => array( - 'name' => 'PolicyAttribute', - 'type' => 'object', - 'properties' => array( - 'AttributeName' => array( - 'type' => 'string', - ), - 'AttributeValue' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified load balancer could not be found.', - 'class' => 'AccessPointNotFoundException', - ), - array( - 'reason' => 'One or more of the specified policy types do not exist.', - 'class' => 'PolicyTypeNotFoundException', - ), - array( - 'reason' => 'Policy with the same name exists for this load balancer. Please choose another name.', - 'class' => 'DuplicatePolicyNameException', - ), - array( - 'reason' => 'Quota for number of policies for this load balancer has already been reached.', - 'class' => 'TooManyPoliciesException', - ), - array( - 'reason' => 'Requested configuration change is invalid.', - 'class' => 'InvalidConfigurationRequestException', - ), - ), - ), - 'DeleteLoadBalancer' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteLoadBalancer', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'LoadBalancerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - 'DeleteLoadBalancerListeners' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteLoadBalancerListeners', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'LoadBalancerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'LoadBalancerPorts' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'LoadBalancerPorts.member', - 'items' => array( - 'name' => 'AccessPointPort', - 'type' => 'numeric', - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified load balancer could not be found.', - 'class' => 'AccessPointNotFoundException', - ), - ), - ), - 'DeleteLoadBalancerPolicy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteLoadBalancerPolicy', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'LoadBalancerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'PolicyName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified load balancer could not be found.', - 'class' => 'AccessPointNotFoundException', - ), - array( - 'reason' => 'Requested configuration change is invalid.', - 'class' => 'InvalidConfigurationRequestException', - ), - ), - ), - 'DeregisterInstancesFromLoadBalancer' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DeregisterEndPointsOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeregisterInstancesFromLoadBalancer', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'LoadBalancerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Instances' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Instances.member', - 'items' => array( - 'name' => 'Instance', - 'type' => 'object', - 'properties' => array( - 'InstanceId' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified load balancer could not be found.', - 'class' => 'AccessPointNotFoundException', - ), - array( - 'reason' => 'The specified EndPoint is not valid.', - 'class' => 'InvalidEndPointException', - ), - ), - ), - 'DescribeInstanceHealth' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeEndPointStateOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeInstanceHealth', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'LoadBalancerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Instances' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Instances.member', - 'items' => array( - 'name' => 'Instance', - 'type' => 'object', - 'properties' => array( - 'InstanceId' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified load balancer could not be found.', - 'class' => 'AccessPointNotFoundException', - ), - array( - 'reason' => 'The specified EndPoint is not valid.', - 'class' => 'InvalidEndPointException', - ), - ), - ), - 'DescribeLoadBalancerAttributes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeLoadBalancerAttributesOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeLoadBalancerAttributes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'LoadBalancerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified load balancer could not be found.', - 'class' => 'AccessPointNotFoundException', - ), - array( - 'reason' => 'The specified load balancer attribute could not be found.', - 'class' => 'LoadBalancerAttributeNotFoundException', - ), - ), - ), - 'DescribeLoadBalancerPolicies' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeLoadBalancerPoliciesOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeLoadBalancerPolicies', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'LoadBalancerName' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'PolicyNames' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'PolicyNames.member', - 'items' => array( - 'name' => 'PolicyName', - 'type' => 'string', - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified load balancer could not be found.', - 'class' => 'AccessPointNotFoundException', - ), - array( - 'reason' => 'One or more specified policies were not found.', - 'class' => 'PolicyNotFoundException', - ), - ), - ), - 'DescribeLoadBalancerPolicyTypes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeLoadBalancerPolicyTypesOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeLoadBalancerPolicyTypes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'PolicyTypeNames' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'PolicyTypeNames.member', - 'items' => array( - 'name' => 'PolicyTypeName', - 'type' => 'string', - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'One or more of the specified policy types do not exist.', - 'class' => 'PolicyTypeNotFoundException', - ), - ), - ), - 'DescribeLoadBalancers' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DescribeAccessPointsOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeLoadBalancers', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'LoadBalancerNames' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'LoadBalancerNames.member', - 'items' => array( - 'name' => 'AccessPointName', - 'type' => 'string', - ), - ), - 'Marker' => 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( - 'reason' => 'The specified load balancer could not be found.', - 'class' => 'AccessPointNotFoundException', - ), - ), - ), - 'DetachLoadBalancerFromSubnets' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DetachLoadBalancerFromSubnetsOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DetachLoadBalancerFromSubnets', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'LoadBalancerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Subnets' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Subnets.member', - 'items' => array( - 'name' => 'SubnetId', - 'type' => 'string', - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified load balancer could not be found.', - 'class' => 'AccessPointNotFoundException', - ), - array( - 'reason' => 'Requested configuration change is invalid.', - 'class' => 'InvalidConfigurationRequestException', - ), - ), - ), - 'DisableAvailabilityZonesForLoadBalancer' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'RemoveAvailabilityZonesOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DisableAvailabilityZonesForLoadBalancer', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'LoadBalancerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'AvailabilityZones' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'AvailabilityZones.member', - 'items' => array( - 'name' => 'AvailabilityZone', - 'type' => 'string', - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified load balancer could not be found.', - 'class' => 'AccessPointNotFoundException', - ), - array( - 'reason' => 'Requested configuration change is invalid.', - 'class' => 'InvalidConfigurationRequestException', - ), - ), - ), - 'EnableAvailabilityZonesForLoadBalancer' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'AddAvailabilityZonesOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'EnableAvailabilityZonesForLoadBalancer', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'LoadBalancerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'AvailabilityZones' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'AvailabilityZones.member', - 'items' => array( - 'name' => 'AvailabilityZone', - 'type' => 'string', - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified load balancer could not be found.', - 'class' => 'AccessPointNotFoundException', - ), - ), - ), - 'ModifyLoadBalancerAttributes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ModifyLoadBalancerAttributesOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ModifyLoadBalancerAttributes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'LoadBalancerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'LoadBalancerAttributes' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'aws.query', - 'properties' => array( - 'CrossZoneLoadBalancing' => array( - 'type' => 'object', - 'properties' => array( - 'Enabled' => array( - 'required' => true, - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified load balancer could not be found.', - 'class' => 'AccessPointNotFoundException', - ), - array( - 'reason' => 'The specified load balancer attribute could not be found.', - 'class' => 'LoadBalancerAttributeNotFoundException', - ), - array( - 'reason' => 'Requested configuration change is invalid.', - 'class' => 'InvalidConfigurationRequestException', - ), - ), - ), - 'RegisterInstancesWithLoadBalancer' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'RegisterEndPointsOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'RegisterInstancesWithLoadBalancer', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'LoadBalancerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Instances' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Instances.member', - 'items' => array( - 'name' => 'Instance', - 'type' => 'object', - 'properties' => array( - 'InstanceId' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified load balancer could not be found.', - 'class' => 'AccessPointNotFoundException', - ), - array( - 'reason' => 'The specified EndPoint is not valid.', - 'class' => 'InvalidEndPointException', - ), - ), - ), - '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' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'SetLoadBalancerListenerSSLCertificate', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'LoadBalancerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'LoadBalancerPort' => array( - 'required' => true, - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'SSLCertificateId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified SSL ID does not refer to a valid SSL certificate in the AWS Identity and Access Management Service.', - 'class' => 'CertificateNotFoundException', - ), - array( - 'reason' => 'The specified load balancer could not be found.', - 'class' => 'AccessPointNotFoundException', - ), - array( - 'reason' => 'Load balancer does not have a listener configured at the given port.', - 'class' => 'ListenerNotFoundException', - ), - array( - 'reason' => 'Requested configuration change is invalid.', - 'class' => 'InvalidConfigurationRequestException', - ), - ), - ), - 'SetLoadBalancerPoliciesForBackendServer' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'SetLoadBalancerPoliciesForBackendServer', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'LoadBalancerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'InstancePort' => array( - 'required' => true, - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'PolicyNames' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'PolicyNames.member', - 'items' => array( - 'name' => 'PolicyName', - 'type' => 'string', - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified load balancer could not be found.', - 'class' => 'AccessPointNotFoundException', - ), - array( - 'reason' => 'One or more specified policies were not found.', - 'class' => 'PolicyNotFoundException', - ), - array( - 'reason' => 'Requested configuration change is invalid.', - 'class' => 'InvalidConfigurationRequestException', - ), - ), - ), - 'SetLoadBalancerPoliciesOfListener' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'SetLoadBalancerPoliciesOfListener', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-06-01', - ), - 'LoadBalancerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'LoadBalancerPort' => array( - 'required' => true, - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'PolicyNames' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'PolicyNames.member', - 'items' => array( - 'name' => 'PolicyName', - 'type' => 'string', - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified load balancer could not be found.', - 'class' => 'AccessPointNotFoundException', - ), - array( - 'reason' => 'One or more specified policies were not found.', - 'class' => 'PolicyNotFoundException', - ), - array( - 'reason' => 'Load balancer does not have a listener configured at the given port.', - 'class' => 'ListenerNotFoundException', - ), - array( - 'reason' => 'Requested configuration change is invalid.', - 'class' => 'InvalidConfigurationRequestException', - ), - ), - ), - ), - 'models' => array( - 'EmptyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), - 'ApplySecurityGroupsToLoadBalancerOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'SecurityGroups' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'SecurityGroupId', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - ), - ), - 'AttachLoadBalancerToSubnetsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Subnets' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'SubnetId', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - ), - ), - 'ConfigureHealthCheckOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'HealthCheck' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Target' => array( - 'type' => 'string', - ), - 'Interval' => array( - 'type' => 'numeric', - ), - 'Timeout' => array( - 'type' => 'numeric', - ), - 'UnhealthyThreshold' => array( - 'type' => 'numeric', - ), - 'HealthyThreshold' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - 'CreateAccessPointOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'DNSName' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'DeregisterEndPointsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Instances' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'Instance', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'InstanceId' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'DescribeEndPointStateOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'InstanceStates' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'InstanceState', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'InstanceId' => array( - 'type' => 'string', - ), - 'State' => array( - 'type' => 'string', - ), - 'ReasonCode' => array( - 'type' => 'string', - ), - 'Description' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'DescribeLoadBalancerAttributesOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - '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', - ), - ), - ), - ), - ), - ), - ), - ), - 'DescribeLoadBalancerPoliciesOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'PolicyDescriptions' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'PolicyDescription', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'PolicyName' => array( - 'type' => 'string', - ), - 'PolicyTypeName' => array( - 'type' => 'string', - ), - 'PolicyAttributeDescriptions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'PolicyAttributeDescription', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'AttributeName' => array( - 'type' => 'string', - ), - 'AttributeValue' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'DescribeLoadBalancerPolicyTypesOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'PolicyTypeDescriptions' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'PolicyTypeDescription', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'PolicyTypeName' => array( - 'type' => 'string', - ), - 'Description' => array( - 'type' => 'string', - ), - 'PolicyAttributeTypeDescriptions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'PolicyAttributeTypeDescription', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'AttributeName' => array( - 'type' => 'string', - ), - 'AttributeType' => array( - 'type' => 'string', - ), - 'Description' => array( - 'type' => 'string', - ), - 'DefaultValue' => array( - 'type' => 'string', - ), - 'Cardinality' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'DescribeAccessPointsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'LoadBalancerDescriptions' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'LoadBalancerDescription', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'LoadBalancerName' => array( - 'type' => 'string', - ), - 'DNSName' => array( - 'type' => 'string', - ), - 'CanonicalHostedZoneName' => array( - 'type' => 'string', - ), - 'CanonicalHostedZoneNameID' => array( - 'type' => 'string', - ), - 'ListenerDescriptions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'ListenerDescription', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'Listener' => array( - 'type' => 'object', - 'properties' => array( - 'Protocol' => array( - 'type' => 'string', - ), - 'LoadBalancerPort' => array( - 'type' => 'numeric', - ), - 'InstanceProtocol' => array( - 'type' => 'string', - ), - 'InstancePort' => array( - 'type' => 'numeric', - ), - 'SSLCertificateId' => array( - 'type' => 'string', - ), - ), - ), - 'PolicyNames' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'PolicyName', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - ), - ), - ), - 'Policies' => array( - 'type' => 'object', - 'properties' => array( - 'AppCookieStickinessPolicies' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AppCookieStickinessPolicy', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'PolicyName' => array( - 'type' => 'string', - ), - 'CookieName' => array( - 'type' => 'string', - ), - ), - ), - ), - 'LBCookieStickinessPolicies' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'LBCookieStickinessPolicy', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'PolicyName' => array( - 'type' => 'string', - ), - 'CookieExpirationPeriod' => array( - 'type' => 'numeric', - ), - ), - ), - ), - 'OtherPolicies' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'PolicyName', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - ), - ), - 'BackendServerDescriptions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BackendServerDescription', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'InstancePort' => array( - 'type' => 'numeric', - ), - 'PolicyNames' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'PolicyName', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - ), - ), - ), - 'AvailabilityZones' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AvailabilityZone', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'Subnets' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'SubnetId', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'VPCId' => array( - 'type' => 'string', - ), - 'Instances' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Instance', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'InstanceId' => array( - 'type' => 'string', - ), - ), - ), - ), - 'HealthCheck' => array( - 'type' => 'object', - 'properties' => array( - 'Target' => array( - 'type' => 'string', - ), - 'Interval' => array( - 'type' => 'numeric', - ), - 'Timeout' => array( - 'type' => 'numeric', - ), - 'UnhealthyThreshold' => array( - 'type' => 'numeric', - ), - 'HealthyThreshold' => array( - 'type' => 'numeric', - ), - ), - ), - 'SourceSecurityGroup' => array( - 'type' => 'object', - 'properties' => array( - 'OwnerAlias' => array( - 'type' => 'string', - ), - 'GroupName' => array( - 'type' => 'string', - ), - ), - ), - 'SecurityGroups' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'SecurityGroupId', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'CreatedTime' => array( - 'type' => 'string', - ), - 'Scheme' => array( - 'type' => 'string', - ), - ), - ), - ), - 'NextMarker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - '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, - 'properties' => array( - 'Subnets' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'SubnetId', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - ), - ), - 'RemoveAvailabilityZonesOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'AvailabilityZones' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'AvailabilityZone', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - ), - ), - 'AddAvailabilityZonesOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'AvailabilityZones' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'AvailabilityZone', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - ), - ), - '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, - 'properties' => array( - 'Instances' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'Instance', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'InstanceId' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'iterators' => array( - '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/lib/aws-sdk/Aws/ElasticTranscoder/ElasticTranscoderClient.php b/lib/aws-sdk/Aws/ElasticTranscoder/ElasticTranscoderClient.php index 95c8de1..8f3e362 100644 --- a/lib/aws-sdk/Aws/ElasticTranscoder/ElasticTranscoderClient.php +++ b/lib/aws-sdk/Aws/ElasticTranscoder/ElasticTranscoderClient.php @@ -1,78 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/elastictranscoder-%s.php' - )) - ->setExceptionParser(new JsonRestExceptionParser()) - ->build(); - } -} +class ElasticTranscoderClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/ElasticTranscoder/Exception/AccessDeniedException.php b/lib/aws-sdk/Aws/ElasticTranscoder/Exception/AccessDeniedException.php deleted file mode 100644 index bdba28f..0000000 --- a/lib/aws-sdk/Aws/ElasticTranscoder/Exception/AccessDeniedException.php +++ /dev/null @@ -1,22 +0,0 @@ - '2012-09-25', - 'endpointPrefix' => 'elastictranscoder', - 'serviceFullName' => 'Amazon Elastic Transcoder', - 'serviceType' => 'rest-json', - 'signatureVersion' => 'v4', - 'namespace' => 'ElasticTranscoder', - 'regions' => array( - 'us-east-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'elastictranscoder.us-east-1.amazonaws.com', - ), - 'us-west-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'elastictranscoder.us-west-1.amazonaws.com', - ), - 'us-west-2' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'elastictranscoder.us-west-2.amazonaws.com', - ), - 'eu-west-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'elastictranscoder.eu-west-1.amazonaws.com', - ), - 'ap-northeast-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'elastictranscoder.ap-northeast-1.amazonaws.com', - ), - 'ap-southeast-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'elastictranscoder.ap-southeast-1.amazonaws.com', - ), - ), - 'operations' => array( - 'CancelJob' => array( - 'httpMethod' => 'DELETE', - 'uri' => '/2012-09-25/jobs/{Id}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Id' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'One or more required parameter values were not provided in the request.', - 'class' => 'ValidationException', - ), - array( - 'class' => 'IncompatibleVersionException', - ), - array( - 'reason' => 'The requested resource does not exist or is not available. For example, the pipeline to which you\'re trying to add a job doesn\'t exist or is still being created.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'The resource you are attempting to change is in use. For example, you are attempting to delete a pipeline that is currently in use.', - 'class' => 'ResourceInUseException', - ), - array( - 'reason' => 'General authentication failure. The request was not signed correctly.', - 'class' => 'AccessDeniedException', - ), - array( - 'reason' => 'Elastic Transcoder encountered an unexpected exception while trying to fulfill the request.', - 'class' => 'InternalServiceException', - ), - ), - ), - 'CreateJob' => array( - 'httpMethod' => 'POST', - 'uri' => '/2012-09-25/jobs', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'CreateJobResponse', - 'responseType' => 'model', - 'parameters' => array( - 'PipelineId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'Input' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Key' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'FrameRate' => array( - 'type' => 'string', - ), - 'Resolution' => array( - 'type' => 'string', - ), - 'AspectRatio' => array( - 'type' => 'string', - ), - 'Interlaced' => array( - 'type' => 'string', - ), - '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( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Key' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - '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', - ), - 'PresetId' => array( - 'type' => 'string', - ), - 'SegmentDuration' => array( - 'type' => 'string', - ), - 'Watermarks' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'JobWatermark', - 'type' => 'object', - 'properties' => array( - 'PresetWatermarkId' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 40, - ), - 'InputKey' => array( - 'type' => 'string', - '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, - ), - ), - ), - ), - ), - ), - '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', - 'minLength' => 1, - 'maxLength' => 255, - ), - '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', - 'maxLength' => 255, - ), - ), - ), - ), - ), - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - '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( - 'type' => 'array', - 'location' => 'json', - 'maxItems' => 30, - 'items' => array( - 'name' => 'CreateJobOutput', - 'type' => 'object', - 'properties' => array( - 'Key' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - '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', - ), - 'PresetId' => array( - 'type' => 'string', - ), - 'SegmentDuration' => array( - 'type' => 'string', - ), - 'Watermarks' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'JobWatermark', - 'type' => 'object', - 'properties' => array( - 'PresetWatermarkId' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 40, - ), - 'InputKey' => array( - 'type' => 'string', - '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, - ), - ), - ), - ), - ), - ), - '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', - 'minLength' => 1, - 'maxLength' => 255, - ), - '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', - 'maxLength' => 255, - ), - ), - ), - ), - ), - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - '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, - ), - ), - ), - ), - ), - ), - 'OutputKeyPrefix' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'Playlists' => array( - 'type' => 'array', - 'location' => 'json', - 'maxItems' => 30, - 'items' => array( - 'name' => 'CreateJobPlaylist', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'Format' => array( - 'type' => 'string', - ), - 'OutputKeys' => array( - 'type' => 'array', - 'maxItems' => 30, - 'items' => array( - 'name' => 'Key', - 'type' => 'string', - 'minLength' => 1, - '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', - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'One or more required parameter values were not provided in the request.', - 'class' => 'ValidationException', - ), - array( - 'class' => 'IncompatibleVersionException', - ), - array( - 'reason' => 'The requested resource does not exist or is not available. For example, the pipeline to which you\'re trying to add a job doesn\'t exist or is still being created.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'General authentication failure. The request was not signed correctly.', - 'class' => 'AccessDeniedException', - ), - array( - 'reason' => 'Too many operations for a given AWS account. For example, the number of pipelines exceeds the maximum allowed.', - 'class' => 'LimitExceededException', - ), - array( - 'reason' => 'Elastic Transcoder encountered an unexpected exception while trying to fulfill the request.', - 'class' => 'InternalServiceException', - ), - ), - ), - 'CreatePipeline' => array( - 'httpMethod' => 'POST', - 'uri' => '/2012-09-25/pipelines', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'CreatePipelineResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Name' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 40, - ), - 'InputBucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'OutputBucket' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Role' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'AwsKmsKeyArn' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 255, - ), - 'Notifications' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Progressing' => array( - 'type' => 'string', - ), - 'Completed' => array( - 'type' => 'string', - ), - 'Warning' => array( - 'type' => 'string', - ), - 'Error' => array( - 'type' => 'string', - ), - ), - ), - 'ContentConfig' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Bucket' => array( - 'type' => 'string', - ), - 'StorageClass' => array( - 'type' => 'string', - ), - 'Permissions' => array( - 'type' => 'array', - 'maxItems' => 30, - 'items' => array( - 'name' => 'Permission', - 'type' => 'object', - 'properties' => array( - 'GranteeType' => array( - 'type' => 'string', - ), - 'Grantee' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'Access' => array( - 'type' => 'array', - 'maxItems' => 30, - 'items' => array( - 'name' => 'AccessControl', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'ThumbnailConfig' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Bucket' => array( - 'type' => 'string', - ), - 'StorageClass' => array( - 'type' => 'string', - ), - 'Permissions' => array( - 'type' => 'array', - 'maxItems' => 30, - 'items' => array( - 'name' => 'Permission', - 'type' => 'object', - 'properties' => array( - 'GranteeType' => array( - 'type' => 'string', - ), - 'Grantee' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'Access' => array( - 'type' => 'array', - 'maxItems' => 30, - 'items' => array( - 'name' => 'AccessControl', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'One or more required parameter values were not provided in the request.', - 'class' => 'ValidationException', - ), - array( - 'class' => 'IncompatibleVersionException', - ), - array( - 'reason' => 'General authentication failure. The request was not signed correctly.', - 'class' => 'AccessDeniedException', - ), - array( - 'reason' => 'The requested resource does not exist or is not available. For example, the pipeline to which you\'re trying to add a job doesn\'t exist or is still being created.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'Too many operations for a given AWS account. For example, the number of pipelines exceeds the maximum allowed.', - 'class' => 'LimitExceededException', - ), - array( - 'reason' => 'Elastic Transcoder encountered an unexpected exception while trying to fulfill the request.', - 'class' => 'InternalServiceException', - ), - ), - ), - 'CreatePreset' => array( - 'httpMethod' => 'POST', - 'uri' => '/2012-09-25/presets', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'CreatePresetResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Name' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 40, - ), - 'Description' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 255, - ), - 'Container' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'Video' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Codec' => array( - 'type' => 'string', - ), - 'CodecOptions' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - 'data' => array( - 'shape_name' => 'CodecOption', - ), - ), - ), - 'KeyframesMaxDist' => array( - 'type' => 'string', - ), - 'FixedGOP' => array( - 'type' => 'string', - ), - 'BitRate' => array( - 'type' => 'string', - ), - 'FrameRate' => array( - 'type' => 'string', - ), - 'MaxFrameRate' => array( - 'type' => 'string', - ), - 'Resolution' => array( - 'type' => 'string', - ), - 'AspectRatio' => array( - 'type' => 'string', - ), - 'MaxWidth' => array( - 'type' => 'string', - ), - 'MaxHeight' => array( - 'type' => 'string', - ), - 'DisplayAspectRatio' => array( - 'type' => 'string', - ), - 'SizingPolicy' => array( - 'type' => 'string', - ), - 'PaddingPolicy' => array( - 'type' => 'string', - ), - 'Watermarks' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'PresetWatermark', - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 40, - ), - 'MaxWidth' => array( - 'type' => 'string', - ), - 'MaxHeight' => array( - 'type' => 'string', - ), - 'SizingPolicy' => array( - 'type' => 'string', - ), - 'HorizontalAlign' => array( - 'type' => 'string', - ), - 'HorizontalOffset' => array( - 'type' => 'string', - ), - 'VerticalAlign' => array( - 'type' => 'string', - ), - 'VerticalOffset' => array( - 'type' => 'string', - ), - 'Opacity' => array( - 'type' => 'string', - ), - 'Target' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'Audio' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Codec' => array( - 'type' => 'string', - ), - 'SampleRate' => array( - 'type' => 'string', - ), - 'BitRate' => array( - 'type' => 'string', - ), - 'Channels' => array( - 'type' => 'string', - ), - 'AudioPackingMode' => array( - 'type' => 'string', - ), - 'CodecOptions' => array( - 'type' => 'object', - 'properties' => array( - 'Profile' => array( - 'type' => 'string', - ), - 'BitDepth' => array( - 'type' => 'string', - ), - 'BitOrder' => array( - 'type' => 'string', - ), - 'Signed' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'Thumbnails' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Format' => array( - 'type' => 'string', - ), - 'Interval' => array( - 'type' => 'string', - ), - 'Resolution' => array( - 'type' => 'string', - ), - 'AspectRatio' => array( - 'type' => 'string', - ), - 'MaxWidth' => array( - 'type' => 'string', - ), - 'MaxHeight' => array( - 'type' => 'string', - ), - 'SizingPolicy' => array( - 'type' => 'string', - ), - 'PaddingPolicy' => array( - 'type' => 'string', - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'One or more required parameter values were not provided in the request.', - 'class' => 'ValidationException', - ), - array( - 'class' => 'IncompatibleVersionException', - ), - array( - 'reason' => 'General authentication failure. The request was not signed correctly.', - 'class' => 'AccessDeniedException', - ), - array( - 'reason' => 'Too many operations for a given AWS account. For example, the number of pipelines exceeds the maximum allowed.', - 'class' => 'LimitExceededException', - ), - array( - 'reason' => 'Elastic Transcoder encountered an unexpected exception while trying to fulfill the request.', - 'class' => 'InternalServiceException', - ), - ), - ), - 'DeletePipeline' => array( - 'httpMethod' => 'DELETE', - 'uri' => '/2012-09-25/pipelines/{Id}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Id' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'One or more required parameter values were not provided in the request.', - 'class' => 'ValidationException', - ), - array( - 'class' => 'IncompatibleVersionException', - ), - array( - 'reason' => 'The requested resource does not exist or is not available. For example, the pipeline to which you\'re trying to add a job doesn\'t exist or is still being created.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'The resource you are attempting to change is in use. For example, you are attempting to delete a pipeline that is currently in use.', - 'class' => 'ResourceInUseException', - ), - array( - 'reason' => 'General authentication failure. The request was not signed correctly.', - 'class' => 'AccessDeniedException', - ), - array( - 'reason' => 'Elastic Transcoder encountered an unexpected exception while trying to fulfill the request.', - 'class' => 'InternalServiceException', - ), - ), - ), - 'DeletePreset' => array( - 'httpMethod' => 'DELETE', - 'uri' => '/2012-09-25/presets/{Id}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Id' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'One or more required parameter values were not provided in the request.', - 'class' => 'ValidationException', - ), - array( - 'class' => 'IncompatibleVersionException', - ), - array( - 'reason' => 'The requested resource does not exist or is not available. For example, the pipeline to which you\'re trying to add a job doesn\'t exist or is still being created.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'General authentication failure. The request was not signed correctly.', - 'class' => 'AccessDeniedException', - ), - array( - 'reason' => 'Elastic Transcoder encountered an unexpected exception while trying to fulfill the request.', - 'class' => 'InternalServiceException', - ), - ), - ), - 'ListJobsByPipeline' => array( - 'httpMethod' => 'GET', - 'uri' => '/2012-09-25/jobsByPipeline/{PipelineId}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'ListJobsByPipelineResponse', - 'responseType' => 'model', - 'parameters' => array( - 'PipelineId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - '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.', - 'class' => 'ValidationException', - ), - array( - 'class' => 'IncompatibleVersionException', - ), - array( - 'reason' => 'The requested resource does not exist or is not available. For example, the pipeline to which you\'re trying to add a job doesn\'t exist or is still being created.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'General authentication failure. The request was not signed correctly.', - 'class' => 'AccessDeniedException', - ), - array( - 'reason' => 'Elastic Transcoder encountered an unexpected exception while trying to fulfill the request.', - 'class' => 'InternalServiceException', - ), - ), - ), - 'ListJobsByStatus' => array( - 'httpMethod' => 'GET', - 'uri' => '/2012-09-25/jobsByStatus/{Status}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'ListJobsByStatusResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Status' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - '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.', - 'class' => 'ValidationException', - ), - array( - 'class' => 'IncompatibleVersionException', - ), - array( - 'reason' => 'The requested resource does not exist or is not available. For example, the pipeline to which you\'re trying to add a job doesn\'t exist or is still being created.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'General authentication failure. The request was not signed correctly.', - 'class' => 'AccessDeniedException', - ), - array( - 'reason' => 'Elastic Transcoder encountered an unexpected exception while trying to fulfill the request.', - 'class' => 'InternalServiceException', - ), - ), - ), - 'ListPipelines' => array( - 'httpMethod' => 'GET', - 'uri' => '/2012-09-25/pipelines', - '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.', - 'class' => 'ValidationException', - ), - array( - 'class' => 'IncompatibleVersionException', - ), - array( - 'reason' => 'General authentication failure. The request was not signed correctly.', - 'class' => 'AccessDeniedException', - ), - array( - 'reason' => 'Elastic Transcoder encountered an unexpected exception while trying to fulfill the request.', - 'class' => 'InternalServiceException', - ), - ), - ), - 'ListPresets' => array( - 'httpMethod' => 'GET', - 'uri' => '/2012-09-25/presets', - '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.', - 'class' => 'ValidationException', - ), - array( - 'class' => 'IncompatibleVersionException', - ), - array( - 'reason' => 'General authentication failure. The request was not signed correctly.', - 'class' => 'AccessDeniedException', - ), - array( - 'reason' => 'Elastic Transcoder encountered an unexpected exception while trying to fulfill the request.', - 'class' => 'InternalServiceException', - ), - ), - ), - 'ReadJob' => array( - 'httpMethod' => 'GET', - 'uri' => '/2012-09-25/jobs/{Id}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'ReadJobResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Id' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'One or more required parameter values were not provided in the request.', - 'class' => 'ValidationException', - ), - array( - 'class' => 'IncompatibleVersionException', - ), - array( - 'reason' => 'The requested resource does not exist or is not available. For example, the pipeline to which you\'re trying to add a job doesn\'t exist or is still being created.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'General authentication failure. The request was not signed correctly.', - 'class' => 'AccessDeniedException', - ), - array( - 'reason' => 'Elastic Transcoder encountered an unexpected exception while trying to fulfill the request.', - 'class' => 'InternalServiceException', - ), - ), - ), - 'ReadPipeline' => array( - 'httpMethod' => 'GET', - 'uri' => '/2012-09-25/pipelines/{Id}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'ReadPipelineResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Id' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'One or more required parameter values were not provided in the request.', - 'class' => 'ValidationException', - ), - array( - 'class' => 'IncompatibleVersionException', - ), - array( - 'reason' => 'The requested resource does not exist or is not available. For example, the pipeline to which you\'re trying to add a job doesn\'t exist or is still being created.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'General authentication failure. The request was not signed correctly.', - 'class' => 'AccessDeniedException', - ), - array( - 'reason' => 'Elastic Transcoder encountered an unexpected exception while trying to fulfill the request.', - 'class' => 'InternalServiceException', - ), - ), - ), - 'ReadPreset' => array( - 'httpMethod' => 'GET', - 'uri' => '/2012-09-25/presets/{Id}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'ReadPresetResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Id' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'One or more required parameter values were not provided in the request.', - 'class' => 'ValidationException', - ), - array( - 'class' => 'IncompatibleVersionException', - ), - array( - 'reason' => 'The requested resource does not exist or is not available. For example, the pipeline to which you\'re trying to add a job doesn\'t exist or is still being created.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'General authentication failure. The request was not signed correctly.', - 'class' => 'AccessDeniedException', - ), - array( - 'reason' => 'Elastic Transcoder encountered an unexpected exception while trying to fulfill the request.', - 'class' => 'InternalServiceException', - ), - ), - ), - 'TestRole' => array( - 'httpMethod' => 'POST', - 'uri' => '/2012-09-25/roleTests', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'TestRoleResponse', - '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, - 'items' => array( - 'name' => 'SnsTopic', - 'type' => 'string', - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'One or more required parameter values were not provided in the request.', - 'class' => 'ValidationException', - ), - array( - 'class' => 'IncompatibleVersionException', - ), - array( - 'reason' => 'The requested resource does not exist or is not available. For example, the pipeline to which you\'re trying to add a job doesn\'t exist or is still being created.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'General authentication failure. The request was not signed correctly.', - 'class' => 'AccessDeniedException', - ), - array( - 'reason' => 'Elastic Transcoder encountered an unexpected exception while trying to fulfill the request.', - 'class' => 'InternalServiceException', - ), - ), - ), - 'UpdatePipeline' => array( - 'httpMethod' => 'PUT', - 'uri' => '/2012-09-25/pipelines/{Id}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'UpdatePipelineResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Id' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'Name' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 40, - ), - 'InputBucket' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Role' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'AwsKmsKeyArn' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 255, - ), - 'Notifications' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Progressing' => array( - 'type' => 'string', - ), - 'Completed' => array( - 'type' => 'string', - ), - 'Warning' => array( - 'type' => 'string', - ), - 'Error' => array( - 'type' => 'string', - ), - ), - ), - 'ContentConfig' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Bucket' => array( - 'type' => 'string', - ), - 'StorageClass' => array( - 'type' => 'string', - ), - 'Permissions' => array( - 'type' => 'array', - 'maxItems' => 30, - 'items' => array( - 'name' => 'Permission', - 'type' => 'object', - 'properties' => array( - 'GranteeType' => array( - 'type' => 'string', - ), - 'Grantee' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'Access' => array( - 'type' => 'array', - 'maxItems' => 30, - 'items' => array( - 'name' => 'AccessControl', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'ThumbnailConfig' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Bucket' => array( - 'type' => 'string', - ), - 'StorageClass' => array( - 'type' => 'string', - ), - 'Permissions' => array( - 'type' => 'array', - 'maxItems' => 30, - 'items' => array( - 'name' => 'Permission', - 'type' => 'object', - 'properties' => array( - 'GranteeType' => array( - 'type' => 'string', - ), - 'Grantee' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'Access' => array( - 'type' => 'array', - 'maxItems' => 30, - 'items' => array( - 'name' => 'AccessControl', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'One or more required parameter values were not provided in the request.', - 'class' => 'ValidationException', - ), - array( - 'class' => 'IncompatibleVersionException', - ), - array( - 'reason' => 'General authentication failure. The request was not signed correctly.', - 'class' => 'AccessDeniedException', - ), - array( - 'reason' => 'The resource you are attempting to change is in use. For example, you are attempting to delete a pipeline that is currently in use.', - 'class' => 'ResourceInUseException', - ), - array( - 'reason' => 'The requested resource does not exist or is not available. For example, the pipeline to which you\'re trying to add a job doesn\'t exist or is still being created.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'Elastic Transcoder encountered an unexpected exception while trying to fulfill the request.', - 'class' => 'InternalServiceException', - ), - ), - ), - 'UpdatePipelineNotifications' => array( - 'httpMethod' => 'POST', - 'uri' => '/2012-09-25/pipelines/{Id}/notifications', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'UpdatePipelineNotificationsResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Id' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'Notifications' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Progressing' => array( - 'type' => 'string', - ), - 'Completed' => array( - 'type' => 'string', - ), - 'Warning' => array( - 'type' => 'string', - ), - 'Error' => array( - 'type' => 'string', - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'One or more required parameter values were not provided in the request.', - 'class' => 'ValidationException', - ), - array( - 'class' => 'IncompatibleVersionException', - ), - array( - 'reason' => 'The requested resource does not exist or is not available. For example, the pipeline to which you\'re trying to add a job doesn\'t exist or is still being created.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'The resource you are attempting to change is in use. For example, you are attempting to delete a pipeline that is currently in use.', - 'class' => 'ResourceInUseException', - ), - array( - 'reason' => 'General authentication failure. The request was not signed correctly.', - 'class' => 'AccessDeniedException', - ), - array( - 'reason' => 'Elastic Transcoder encountered an unexpected exception while trying to fulfill the request.', - 'class' => 'InternalServiceException', - ), - ), - ), - 'UpdatePipelineStatus' => array( - 'httpMethod' => 'POST', - 'uri' => '/2012-09-25/pipelines/{Id}/status', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'UpdatePipelineStatusResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Id' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'Status' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'One or more required parameter values were not provided in the request.', - 'class' => 'ValidationException', - ), - array( - 'class' => 'IncompatibleVersionException', - ), - array( - 'reason' => 'The requested resource does not exist or is not available. For example, the pipeline to which you\'re trying to add a job doesn\'t exist or is still being created.', - 'class' => 'ResourceNotFoundException', - ), - array( - 'reason' => 'The resource you are attempting to change is in use. For example, you are attempting to delete a pipeline that is currently in use.', - 'class' => 'ResourceInUseException', - ), - array( - 'reason' => 'General authentication failure. The request was not signed correctly.', - 'class' => 'AccessDeniedException', - ), - array( - 'reason' => 'Elastic Transcoder encountered an unexpected exception while trying to fulfill the request.', - 'class' => 'InternalServiceException', - ), - ), - ), - ), - 'models' => array( - 'EmptyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), - 'CreateJobResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Job' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Arn' => array( - 'type' => 'string', - ), - 'PipelineId' => array( - 'type' => 'string', - ), - 'Input' => array( - 'type' => 'object', - 'properties' => array( - 'Key' => array( - 'type' => 'string', - ), - 'FrameRate' => array( - 'type' => 'string', - ), - 'Resolution' => array( - 'type' => 'string', - ), - 'AspectRatio' => array( - 'type' => 'string', - ), - 'Interlaced' => array( - 'type' => 'string', - ), - '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( - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Key' => array( - 'type' => 'string', - ), - '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', - ), - 'PresetId' => array( - 'type' => 'string', - ), - 'SegmentDuration' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'StatusDetail' => array( - 'type' => 'string', - ), - 'Duration' => array( - 'type' => 'numeric', - ), - 'Width' => array( - 'type' => 'numeric', - ), - 'Height' => array( - 'type' => 'numeric', - ), - 'FrameRate' => array( - 'type' => 'string', - ), - 'FileSize' => array( - 'type' => 'numeric', - ), - 'DurationMillis' => array( - 'type' => 'numeric', - ), - 'Watermarks' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'JobWatermark', - 'type' => 'object', - 'properties' => array( - 'PresetWatermarkId' => array( - 'type' => 'string', - ), - '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', - ), - ), - ), - ), - ), - ), - '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( - 'type' => 'array', - 'items' => array( - 'name' => 'JobOutput', - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Key' => array( - 'type' => 'string', - ), - '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', - ), - 'PresetId' => array( - 'type' => 'string', - ), - 'SegmentDuration' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'StatusDetail' => array( - 'type' => 'string', - ), - 'Duration' => array( - 'type' => 'numeric', - ), - 'Width' => array( - 'type' => 'numeric', - ), - 'Height' => array( - 'type' => 'numeric', - ), - 'FrameRate' => array( - 'type' => 'string', - ), - 'FileSize' => array( - 'type' => 'numeric', - ), - 'DurationMillis' => array( - 'type' => 'numeric', - ), - 'Watermarks' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'JobWatermark', - 'type' => 'object', - 'properties' => array( - 'PresetWatermarkId' => array( - 'type' => 'string', - ), - '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', - ), - ), - ), - ), - ), - ), - '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', - ), - ), - ), - ), - 'OutputKeyPrefix' => array( - 'type' => 'string', - ), - 'Playlists' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Playlist', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'Format' => array( - 'type' => 'string', - ), - 'OutputKeys' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Key', - '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', - ), - 'StatusDetail' => array( - 'type' => 'string', - ), - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - ), - 'CreatePipelineResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Pipeline' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Arn' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'InputBucket' => array( - 'type' => 'string', - ), - 'OutputBucket' => array( - 'type' => 'string', - ), - 'Role' => array( - 'type' => 'string', - ), - 'AwsKmsKeyArn' => array( - 'type' => 'string', - ), - 'Notifications' => array( - 'type' => 'object', - 'properties' => array( - 'Progressing' => array( - 'type' => 'string', - ), - 'Completed' => array( - 'type' => 'string', - ), - 'Warning' => array( - 'type' => 'string', - ), - 'Error' => array( - 'type' => 'string', - ), - ), - ), - 'ContentConfig' => array( - 'type' => 'object', - 'properties' => array( - 'Bucket' => array( - 'type' => 'string', - ), - 'StorageClass' => array( - 'type' => 'string', - ), - 'Permissions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Permission', - 'type' => 'object', - 'properties' => array( - 'GranteeType' => array( - 'type' => 'string', - ), - 'Grantee' => array( - 'type' => 'string', - ), - 'Access' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AccessControl', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'ThumbnailConfig' => array( - 'type' => 'object', - 'properties' => array( - 'Bucket' => array( - 'type' => 'string', - ), - 'StorageClass' => array( - 'type' => 'string', - ), - 'Permissions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Permission', - 'type' => 'object', - 'properties' => array( - 'GranteeType' => array( - 'type' => 'string', - ), - 'Grantee' => array( - 'type' => 'string', - ), - 'Access' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AccessControl', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'Warnings' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Warning', - 'type' => 'object', - 'properties' => array( - 'Code' => array( - 'type' => 'string', - ), - 'Message' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'CreatePresetResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Preset' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Arn' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - 'Description' => array( - 'type' => 'string', - ), - 'Container' => array( - 'type' => 'string', - ), - 'Audio' => array( - 'type' => 'object', - 'properties' => array( - 'Codec' => array( - 'type' => 'string', - ), - 'SampleRate' => array( - 'type' => 'string', - ), - 'BitRate' => array( - 'type' => 'string', - ), - 'Channels' => array( - 'type' => 'string', - ), - 'AudioPackingMode' => array( - 'type' => 'string', - ), - 'CodecOptions' => array( - 'type' => 'object', - 'properties' => array( - 'Profile' => array( - 'type' => 'string', - ), - 'BitDepth' => array( - 'type' => 'string', - ), - 'BitOrder' => array( - 'type' => 'string', - ), - 'Signed' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'Video' => array( - 'type' => 'object', - 'properties' => array( - 'Codec' => array( - 'type' => 'string', - ), - 'CodecOptions' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'string', - ), - ), - 'KeyframesMaxDist' => array( - 'type' => 'string', - ), - 'FixedGOP' => array( - 'type' => 'string', - ), - 'BitRate' => array( - 'type' => 'string', - ), - 'FrameRate' => array( - 'type' => 'string', - ), - 'MaxFrameRate' => array( - 'type' => 'string', - ), - 'Resolution' => array( - 'type' => 'string', - ), - 'AspectRatio' => array( - 'type' => 'string', - ), - 'MaxWidth' => array( - 'type' => 'string', - ), - 'MaxHeight' => array( - 'type' => 'string', - ), - 'DisplayAspectRatio' => array( - 'type' => 'string', - ), - 'SizingPolicy' => array( - 'type' => 'string', - ), - 'PaddingPolicy' => array( - 'type' => 'string', - ), - 'Watermarks' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'PresetWatermark', - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'MaxWidth' => array( - 'type' => 'string', - ), - 'MaxHeight' => array( - 'type' => 'string', - ), - 'SizingPolicy' => array( - 'type' => 'string', - ), - 'HorizontalAlign' => array( - 'type' => 'string', - ), - 'HorizontalOffset' => array( - 'type' => 'string', - ), - 'VerticalAlign' => array( - 'type' => 'string', - ), - 'VerticalOffset' => array( - 'type' => 'string', - ), - 'Opacity' => array( - 'type' => 'string', - ), - 'Target' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'Thumbnails' => array( - 'type' => 'object', - 'properties' => array( - 'Format' => array( - 'type' => 'string', - ), - 'Interval' => array( - 'type' => 'string', - ), - 'Resolution' => array( - 'type' => 'string', - ), - 'AspectRatio' => array( - 'type' => 'string', - ), - 'MaxWidth' => array( - 'type' => 'string', - ), - 'MaxHeight' => array( - 'type' => 'string', - ), - 'SizingPolicy' => array( - 'type' => 'string', - ), - 'PaddingPolicy' => array( - 'type' => 'string', - ), - ), - ), - 'Type' => array( - 'type' => 'string', - ), - ), - ), - 'Warning' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'ListJobsByPipelineResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Jobs' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Job', - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Arn' => array( - 'type' => 'string', - ), - 'PipelineId' => array( - 'type' => 'string', - ), - 'Input' => array( - 'type' => 'object', - 'properties' => array( - 'Key' => array( - 'type' => 'string', - ), - 'FrameRate' => array( - 'type' => 'string', - ), - 'Resolution' => array( - 'type' => 'string', - ), - 'AspectRatio' => array( - 'type' => 'string', - ), - 'Interlaced' => array( - 'type' => 'string', - ), - '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( - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Key' => array( - 'type' => 'string', - ), - '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', - ), - 'PresetId' => array( - 'type' => 'string', - ), - 'SegmentDuration' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'StatusDetail' => array( - 'type' => 'string', - ), - 'Duration' => array( - 'type' => 'numeric', - ), - 'Width' => array( - 'type' => 'numeric', - ), - 'Height' => array( - 'type' => 'numeric', - ), - 'FrameRate' => array( - 'type' => 'string', - ), - 'FileSize' => array( - 'type' => 'numeric', - ), - 'DurationMillis' => array( - 'type' => 'numeric', - ), - 'Watermarks' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'JobWatermark', - 'type' => 'object', - 'properties' => array( - 'PresetWatermarkId' => array( - 'type' => 'string', - ), - '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', - ), - ), - ), - ), - ), - ), - '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( - 'type' => 'array', - 'items' => array( - 'name' => 'JobOutput', - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Key' => array( - 'type' => 'string', - ), - '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', - ), - 'PresetId' => array( - 'type' => 'string', - ), - 'SegmentDuration' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'StatusDetail' => array( - 'type' => 'string', - ), - 'Duration' => array( - 'type' => 'numeric', - ), - 'Width' => array( - 'type' => 'numeric', - ), - 'Height' => array( - 'type' => 'numeric', - ), - 'FrameRate' => array( - 'type' => 'string', - ), - 'FileSize' => array( - 'type' => 'numeric', - ), - 'DurationMillis' => array( - 'type' => 'numeric', - ), - 'Watermarks' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'JobWatermark', - 'type' => 'object', - 'properties' => array( - 'PresetWatermarkId' => array( - 'type' => 'string', - ), - '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', - ), - ), - ), - ), - ), - ), - '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', - ), - ), - ), - ), - 'OutputKeyPrefix' => array( - 'type' => 'string', - ), - 'Playlists' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Playlist', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'Format' => array( - 'type' => 'string', - ), - 'OutputKeys' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Key', - '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', - ), - 'StatusDetail' => array( - 'type' => 'string', - ), - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - 'NextPageToken' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'ListJobsByStatusResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Jobs' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Job', - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Arn' => array( - 'type' => 'string', - ), - 'PipelineId' => array( - 'type' => 'string', - ), - 'Input' => array( - 'type' => 'object', - 'properties' => array( - 'Key' => array( - 'type' => 'string', - ), - 'FrameRate' => array( - 'type' => 'string', - ), - 'Resolution' => array( - 'type' => 'string', - ), - 'AspectRatio' => array( - 'type' => 'string', - ), - 'Interlaced' => array( - 'type' => 'string', - ), - '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( - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Key' => array( - 'type' => 'string', - ), - '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', - ), - 'PresetId' => array( - 'type' => 'string', - ), - 'SegmentDuration' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'StatusDetail' => array( - 'type' => 'string', - ), - 'Duration' => array( - 'type' => 'numeric', - ), - 'Width' => array( - 'type' => 'numeric', - ), - 'Height' => array( - 'type' => 'numeric', - ), - 'FrameRate' => array( - 'type' => 'string', - ), - 'FileSize' => array( - 'type' => 'numeric', - ), - 'DurationMillis' => array( - 'type' => 'numeric', - ), - 'Watermarks' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'JobWatermark', - 'type' => 'object', - 'properties' => array( - 'PresetWatermarkId' => array( - 'type' => 'string', - ), - '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', - ), - ), - ), - ), - ), - ), - '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( - 'type' => 'array', - 'items' => array( - 'name' => 'JobOutput', - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Key' => array( - 'type' => 'string', - ), - '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', - ), - 'PresetId' => array( - 'type' => 'string', - ), - 'SegmentDuration' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'StatusDetail' => array( - 'type' => 'string', - ), - 'Duration' => array( - 'type' => 'numeric', - ), - 'Width' => array( - 'type' => 'numeric', - ), - 'Height' => array( - 'type' => 'numeric', - ), - 'FrameRate' => array( - 'type' => 'string', - ), - 'FileSize' => array( - 'type' => 'numeric', - ), - 'DurationMillis' => array( - 'type' => 'numeric', - ), - 'Watermarks' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'JobWatermark', - 'type' => 'object', - 'properties' => array( - 'PresetWatermarkId' => array( - 'type' => 'string', - ), - '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', - ), - ), - ), - ), - ), - ), - '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', - ), - ), - ), - ), - 'OutputKeyPrefix' => array( - 'type' => 'string', - ), - 'Playlists' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Playlist', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'Format' => array( - 'type' => 'string', - ), - 'OutputKeys' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Key', - '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', - ), - 'StatusDetail' => array( - 'type' => 'string', - ), - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - 'NextPageToken' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'ListPipelinesResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Pipelines' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Pipeline', - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Arn' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'InputBucket' => array( - 'type' => 'string', - ), - 'OutputBucket' => array( - 'type' => 'string', - ), - 'Role' => array( - 'type' => 'string', - ), - 'AwsKmsKeyArn' => array( - 'type' => 'string', - ), - 'Notifications' => array( - 'type' => 'object', - 'properties' => array( - 'Progressing' => array( - 'type' => 'string', - ), - 'Completed' => array( - 'type' => 'string', - ), - 'Warning' => array( - 'type' => 'string', - ), - 'Error' => array( - 'type' => 'string', - ), - ), - ), - 'ContentConfig' => array( - 'type' => 'object', - 'properties' => array( - 'Bucket' => array( - 'type' => 'string', - ), - 'StorageClass' => array( - 'type' => 'string', - ), - 'Permissions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Permission', - 'type' => 'object', - 'properties' => array( - 'GranteeType' => array( - 'type' => 'string', - ), - 'Grantee' => array( - 'type' => 'string', - ), - 'Access' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AccessControl', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'ThumbnailConfig' => array( - 'type' => 'object', - 'properties' => array( - 'Bucket' => array( - 'type' => 'string', - ), - 'StorageClass' => array( - 'type' => 'string', - ), - 'Permissions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Permission', - 'type' => 'object', - 'properties' => array( - 'GranteeType' => array( - 'type' => 'string', - ), - 'Grantee' => array( - 'type' => 'string', - ), - 'Access' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AccessControl', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'NextPageToken' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'ListPresetsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Presets' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Preset', - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Arn' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - 'Description' => array( - 'type' => 'string', - ), - 'Container' => array( - 'type' => 'string', - ), - 'Audio' => array( - 'type' => 'object', - 'properties' => array( - 'Codec' => array( - 'type' => 'string', - ), - 'SampleRate' => array( - 'type' => 'string', - ), - 'BitRate' => array( - 'type' => 'string', - ), - 'Channels' => array( - 'type' => 'string', - ), - 'AudioPackingMode' => array( - 'type' => 'string', - ), - 'CodecOptions' => array( - 'type' => 'object', - 'properties' => array( - 'Profile' => array( - 'type' => 'string', - ), - 'BitDepth' => array( - 'type' => 'string', - ), - 'BitOrder' => array( - 'type' => 'string', - ), - 'Signed' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'Video' => array( - 'type' => 'object', - 'properties' => array( - 'Codec' => array( - 'type' => 'string', - ), - 'CodecOptions' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'string', - ), - ), - 'KeyframesMaxDist' => array( - 'type' => 'string', - ), - 'FixedGOP' => array( - 'type' => 'string', - ), - 'BitRate' => array( - 'type' => 'string', - ), - 'FrameRate' => array( - 'type' => 'string', - ), - 'MaxFrameRate' => array( - 'type' => 'string', - ), - 'Resolution' => array( - 'type' => 'string', - ), - 'AspectRatio' => array( - 'type' => 'string', - ), - 'MaxWidth' => array( - 'type' => 'string', - ), - 'MaxHeight' => array( - 'type' => 'string', - ), - 'DisplayAspectRatio' => array( - 'type' => 'string', - ), - 'SizingPolicy' => array( - 'type' => 'string', - ), - 'PaddingPolicy' => array( - 'type' => 'string', - ), - 'Watermarks' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'PresetWatermark', - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'MaxWidth' => array( - 'type' => 'string', - ), - 'MaxHeight' => array( - 'type' => 'string', - ), - 'SizingPolicy' => array( - 'type' => 'string', - ), - 'HorizontalAlign' => array( - 'type' => 'string', - ), - 'HorizontalOffset' => array( - 'type' => 'string', - ), - 'VerticalAlign' => array( - 'type' => 'string', - ), - 'VerticalOffset' => array( - 'type' => 'string', - ), - 'Opacity' => array( - 'type' => 'string', - ), - 'Target' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'Thumbnails' => array( - 'type' => 'object', - 'properties' => array( - 'Format' => array( - 'type' => 'string', - ), - 'Interval' => array( - 'type' => 'string', - ), - 'Resolution' => array( - 'type' => 'string', - ), - 'AspectRatio' => array( - 'type' => 'string', - ), - 'MaxWidth' => array( - 'type' => 'string', - ), - 'MaxHeight' => array( - 'type' => 'string', - ), - 'SizingPolicy' => array( - 'type' => 'string', - ), - 'PaddingPolicy' => array( - 'type' => 'string', - ), - ), - ), - 'Type' => array( - 'type' => 'string', - ), - ), - ), - ), - 'NextPageToken' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'ReadJobResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Job' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Arn' => array( - 'type' => 'string', - ), - 'PipelineId' => array( - 'type' => 'string', - ), - 'Input' => array( - 'type' => 'object', - 'properties' => array( - 'Key' => array( - 'type' => 'string', - ), - 'FrameRate' => array( - 'type' => 'string', - ), - 'Resolution' => array( - 'type' => 'string', - ), - 'AspectRatio' => array( - 'type' => 'string', - ), - 'Interlaced' => array( - 'type' => 'string', - ), - '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( - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Key' => array( - 'type' => 'string', - ), - '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', - ), - 'PresetId' => array( - 'type' => 'string', - ), - 'SegmentDuration' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'StatusDetail' => array( - 'type' => 'string', - ), - 'Duration' => array( - 'type' => 'numeric', - ), - 'Width' => array( - 'type' => 'numeric', - ), - 'Height' => array( - 'type' => 'numeric', - ), - 'FrameRate' => array( - 'type' => 'string', - ), - 'FileSize' => array( - 'type' => 'numeric', - ), - 'DurationMillis' => array( - 'type' => 'numeric', - ), - 'Watermarks' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'JobWatermark', - 'type' => 'object', - 'properties' => array( - 'PresetWatermarkId' => array( - 'type' => 'string', - ), - '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', - ), - ), - ), - ), - ), - ), - '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( - 'type' => 'array', - 'items' => array( - 'name' => 'JobOutput', - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Key' => array( - 'type' => 'string', - ), - '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', - ), - 'PresetId' => array( - 'type' => 'string', - ), - 'SegmentDuration' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'StatusDetail' => array( - 'type' => 'string', - ), - 'Duration' => array( - 'type' => 'numeric', - ), - 'Width' => array( - 'type' => 'numeric', - ), - 'Height' => array( - 'type' => 'numeric', - ), - 'FrameRate' => array( - 'type' => 'string', - ), - 'FileSize' => array( - 'type' => 'numeric', - ), - 'DurationMillis' => array( - 'type' => 'numeric', - ), - 'Watermarks' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'JobWatermark', - 'type' => 'object', - 'properties' => array( - 'PresetWatermarkId' => array( - 'type' => 'string', - ), - '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', - ), - ), - ), - ), - ), - ), - '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', - ), - ), - ), - ), - 'OutputKeyPrefix' => array( - 'type' => 'string', - ), - 'Playlists' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Playlist', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'Format' => array( - 'type' => 'string', - ), - 'OutputKeys' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Key', - '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', - ), - 'StatusDetail' => array( - 'type' => 'string', - ), - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - ), - 'ReadPipelineResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Pipeline' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Arn' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'InputBucket' => array( - 'type' => 'string', - ), - 'OutputBucket' => array( - 'type' => 'string', - ), - 'Role' => array( - 'type' => 'string', - ), - 'AwsKmsKeyArn' => array( - 'type' => 'string', - ), - 'Notifications' => array( - 'type' => 'object', - 'properties' => array( - 'Progressing' => array( - 'type' => 'string', - ), - 'Completed' => array( - 'type' => 'string', - ), - 'Warning' => array( - 'type' => 'string', - ), - 'Error' => array( - 'type' => 'string', - ), - ), - ), - 'ContentConfig' => array( - 'type' => 'object', - 'properties' => array( - 'Bucket' => array( - 'type' => 'string', - ), - 'StorageClass' => array( - 'type' => 'string', - ), - 'Permissions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Permission', - 'type' => 'object', - 'properties' => array( - 'GranteeType' => array( - 'type' => 'string', - ), - 'Grantee' => array( - 'type' => 'string', - ), - 'Access' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AccessControl', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'ThumbnailConfig' => array( - 'type' => 'object', - 'properties' => array( - 'Bucket' => array( - 'type' => 'string', - ), - 'StorageClass' => array( - 'type' => 'string', - ), - 'Permissions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Permission', - 'type' => 'object', - 'properties' => array( - 'GranteeType' => array( - 'type' => 'string', - ), - 'Grantee' => array( - 'type' => 'string', - ), - 'Access' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AccessControl', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'Warnings' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Warning', - 'type' => 'object', - 'properties' => array( - 'Code' => array( - 'type' => 'string', - ), - 'Message' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'ReadPresetResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Preset' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Arn' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - 'Description' => array( - 'type' => 'string', - ), - 'Container' => array( - 'type' => 'string', - ), - 'Audio' => array( - 'type' => 'object', - 'properties' => array( - 'Codec' => array( - 'type' => 'string', - ), - 'SampleRate' => array( - 'type' => 'string', - ), - 'BitRate' => array( - 'type' => 'string', - ), - 'Channels' => array( - 'type' => 'string', - ), - 'AudioPackingMode' => array( - 'type' => 'string', - ), - 'CodecOptions' => array( - 'type' => 'object', - 'properties' => array( - 'Profile' => array( - 'type' => 'string', - ), - 'BitDepth' => array( - 'type' => 'string', - ), - 'BitOrder' => array( - 'type' => 'string', - ), - 'Signed' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'Video' => array( - 'type' => 'object', - 'properties' => array( - 'Codec' => array( - 'type' => 'string', - ), - 'CodecOptions' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'string', - ), - ), - 'KeyframesMaxDist' => array( - 'type' => 'string', - ), - 'FixedGOP' => array( - 'type' => 'string', - ), - 'BitRate' => array( - 'type' => 'string', - ), - 'FrameRate' => array( - 'type' => 'string', - ), - 'MaxFrameRate' => array( - 'type' => 'string', - ), - 'Resolution' => array( - 'type' => 'string', - ), - 'AspectRatio' => array( - 'type' => 'string', - ), - 'MaxWidth' => array( - 'type' => 'string', - ), - 'MaxHeight' => array( - 'type' => 'string', - ), - 'DisplayAspectRatio' => array( - 'type' => 'string', - ), - 'SizingPolicy' => array( - 'type' => 'string', - ), - 'PaddingPolicy' => array( - 'type' => 'string', - ), - 'Watermarks' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'PresetWatermark', - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'MaxWidth' => array( - 'type' => 'string', - ), - 'MaxHeight' => array( - 'type' => 'string', - ), - 'SizingPolicy' => array( - 'type' => 'string', - ), - 'HorizontalAlign' => array( - 'type' => 'string', - ), - 'HorizontalOffset' => array( - 'type' => 'string', - ), - 'VerticalAlign' => array( - 'type' => 'string', - ), - 'VerticalOffset' => array( - 'type' => 'string', - ), - 'Opacity' => array( - 'type' => 'string', - ), - 'Target' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'Thumbnails' => array( - 'type' => 'object', - 'properties' => array( - 'Format' => array( - 'type' => 'string', - ), - 'Interval' => array( - 'type' => 'string', - ), - 'Resolution' => array( - 'type' => 'string', - ), - 'AspectRatio' => array( - 'type' => 'string', - ), - 'MaxWidth' => array( - 'type' => 'string', - ), - 'MaxHeight' => array( - 'type' => 'string', - ), - 'SizingPolicy' => array( - 'type' => 'string', - ), - 'PaddingPolicy' => array( - 'type' => 'string', - ), - ), - ), - 'Type' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'TestRoleResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Success' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Messages' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - ), - ), - 'UpdatePipelineResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Pipeline' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Arn' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'InputBucket' => array( - 'type' => 'string', - ), - 'OutputBucket' => array( - 'type' => 'string', - ), - 'Role' => array( - 'type' => 'string', - ), - 'AwsKmsKeyArn' => array( - 'type' => 'string', - ), - 'Notifications' => array( - 'type' => 'object', - 'properties' => array( - 'Progressing' => array( - 'type' => 'string', - ), - 'Completed' => array( - 'type' => 'string', - ), - 'Warning' => array( - 'type' => 'string', - ), - 'Error' => array( - 'type' => 'string', - ), - ), - ), - 'ContentConfig' => array( - 'type' => 'object', - 'properties' => array( - 'Bucket' => array( - 'type' => 'string', - ), - 'StorageClass' => array( - 'type' => 'string', - ), - 'Permissions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Permission', - 'type' => 'object', - 'properties' => array( - 'GranteeType' => array( - 'type' => 'string', - ), - 'Grantee' => array( - 'type' => 'string', - ), - 'Access' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AccessControl', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'ThumbnailConfig' => array( - 'type' => 'object', - 'properties' => array( - 'Bucket' => array( - 'type' => 'string', - ), - 'StorageClass' => array( - 'type' => 'string', - ), - 'Permissions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Permission', - 'type' => 'object', - 'properties' => array( - 'GranteeType' => array( - 'type' => 'string', - ), - 'Grantee' => array( - 'type' => 'string', - ), - 'Access' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AccessControl', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'Warnings' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Warning', - 'type' => 'object', - 'properties' => array( - 'Code' => array( - 'type' => 'string', - ), - 'Message' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'UpdatePipelineNotificationsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Pipeline' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Arn' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'InputBucket' => array( - 'type' => 'string', - ), - 'OutputBucket' => array( - 'type' => 'string', - ), - 'Role' => array( - 'type' => 'string', - ), - 'AwsKmsKeyArn' => array( - 'type' => 'string', - ), - 'Notifications' => array( - 'type' => 'object', - 'properties' => array( - 'Progressing' => array( - 'type' => 'string', - ), - 'Completed' => array( - 'type' => 'string', - ), - 'Warning' => array( - 'type' => 'string', - ), - 'Error' => array( - 'type' => 'string', - ), - ), - ), - 'ContentConfig' => array( - 'type' => 'object', - 'properties' => array( - 'Bucket' => array( - 'type' => 'string', - ), - 'StorageClass' => array( - 'type' => 'string', - ), - 'Permissions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Permission', - 'type' => 'object', - 'properties' => array( - 'GranteeType' => array( - 'type' => 'string', - ), - 'Grantee' => array( - 'type' => 'string', - ), - 'Access' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AccessControl', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'ThumbnailConfig' => array( - 'type' => 'object', - 'properties' => array( - 'Bucket' => array( - 'type' => 'string', - ), - 'StorageClass' => array( - 'type' => 'string', - ), - 'Permissions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Permission', - 'type' => 'object', - 'properties' => array( - 'GranteeType' => array( - 'type' => 'string', - ), - 'Grantee' => array( - 'type' => 'string', - ), - 'Access' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AccessControl', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'UpdatePipelineStatusResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Pipeline' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Arn' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'InputBucket' => array( - 'type' => 'string', - ), - 'OutputBucket' => array( - 'type' => 'string', - ), - 'Role' => array( - 'type' => 'string', - ), - 'AwsKmsKeyArn' => array( - 'type' => 'string', - ), - 'Notifications' => array( - 'type' => 'object', - 'properties' => array( - 'Progressing' => array( - 'type' => 'string', - ), - 'Completed' => array( - 'type' => 'string', - ), - 'Warning' => array( - 'type' => 'string', - ), - 'Error' => array( - 'type' => 'string', - ), - ), - ), - 'ContentConfig' => array( - 'type' => 'object', - 'properties' => array( - 'Bucket' => array( - 'type' => 'string', - ), - 'StorageClass' => array( - 'type' => 'string', - ), - 'Permissions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Permission', - 'type' => 'object', - 'properties' => array( - 'GranteeType' => array( - 'type' => 'string', - ), - 'Grantee' => array( - 'type' => 'string', - ), - 'Access' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AccessControl', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'ThumbnailConfig' => array( - 'type' => 'object', - 'properties' => array( - 'Bucket' => array( - 'type' => 'string', - ), - 'StorageClass' => array( - 'type' => 'string', - ), - 'Permissions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Permission', - 'type' => 'object', - 'properties' => array( - 'GranteeType' => array( - 'type' => 'string', - ), - 'Grantee' => array( - 'type' => 'string', - ), - 'Access' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AccessControl', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'iterators' => array( - '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/lib/aws-sdk/Aws/Emr/EmrClient.php b/lib/aws-sdk/Aws/Emr/EmrClient.php index f8c3d5a..f46e0a6 100644 --- a/lib/aws-sdk/Aws/Emr/EmrClient.php +++ b/lib/aws-sdk/Aws/Emr/EmrClient.php @@ -1,80 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/emr-%s.php' - )) - ->setExceptionParser(new JsonQueryExceptionParser()) - ->build(); - } -} +class EmrClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/Emr/Enum/ActionOnFailure.php b/lib/aws-sdk/Aws/Emr/Enum/ActionOnFailure.php deleted file mode 100644 index f1f8ecf..0000000 --- a/lib/aws-sdk/Aws/Emr/Enum/ActionOnFailure.php +++ /dev/null @@ -1,30 +0,0 @@ - '2009-03-31', - 'endpointPrefix' => 'elasticmapreduce', - 'serviceFullName' => 'Amazon Elastic MapReduce', - 'serviceAbbreviation' => 'Amazon EMR', - 'serviceType' => 'json', - 'jsonVersion' => '1.1', - 'targetPrefix' => 'ElasticMapReduce.', - 'timestampFormat' => 'unixTimestamp', - 'signatureVersion' => 'v4', - 'namespace' => 'Emr', - 'regions' => array( - 'us-east-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'elasticmapreduce.us-east-1.amazonaws.com', - ), - 'us-west-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'elasticmapreduce.us-west-1.amazonaws.com', - ), - 'us-west-2' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'elasticmapreduce.us-west-2.amazonaws.com', - ), - 'eu-west-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'elasticmapreduce.eu-west-1.amazonaws.com', - ), - 'ap-northeast-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'elasticmapreduce.ap-northeast-1.amazonaws.com', - ), - 'ap-southeast-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'elasticmapreduce.ap-southeast-1.amazonaws.com', - ), - 'ap-southeast-2' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'elasticmapreduce.ap-southeast-2.amazonaws.com', - ), - 'sa-east-1' => array( - 'http' => true, - '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, - 'hostname' => 'elasticmapreduce.us-gov-west-1.amazonaws.com', - ), - ), - 'operations' => array( - 'AddInstanceGroups' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'AddInstanceGroupsOutput', - '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.AddInstanceGroups', - ), - 'InstanceGroups' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'InstanceGroupConfig', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - 'maxLength' => 256, - ), - 'Market' => array( - 'type' => 'string', - ), - 'InstanceRole' => array( - 'required' => true, - 'type' => 'string', - ), - 'BidPrice' => array( - 'type' => 'string', - 'maxLength' => 256, - ), - 'InstanceType' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'InstanceCount' => array( - 'required' => true, - 'type' => 'numeric', - ), - ), - ), - ), - 'JobFlowId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 256, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that an error occurred while processing the request and that the request was not completed.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - 'AddJobFlowSteps' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'AddJobFlowStepsOutput', - '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.AddJobFlowSteps', - ), - 'JobFlowId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 256, - ), - 'Steps' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'StepConfig', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'required' => true, - 'type' => 'string', - 'maxLength' => 256, - ), - 'ActionOnFailure' => array( - 'type' => 'string', - ), - 'HadoopJarStep' => array( - 'required' => true, - 'type' => 'object', - 'properties' => array( - 'Properties' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'KeyValue', - 'type' => 'object', - 'properties' => array( - 'Key' => array( - 'type' => 'string', - 'maxLength' => 10280, - ), - 'Value' => array( - 'type' => 'string', - 'maxLength' => 10280, - ), - ), - ), - ), - 'Jar' => array( - 'required' => true, - 'type' => 'string', - 'maxLength' => 10280, - ), - 'MainClass' => array( - 'type' => 'string', - 'maxLength' => 10280, - ), - 'Args' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'XmlString', - 'type' => 'string', - 'maxLength' => 10280, - ), - ), - ), - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that an error occurred while processing the request and that the request was not completed.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - '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' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeClusterOutput', - '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.DescribeCluster', - ), - 'ClusterId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - ), - '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', - ), - ), - ), - 'DescribeJobFlows' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeJobFlowsOutput', - '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.DescribeJobFlows', - ), - 'CreatedAfter' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'timestamp', - 'location' => 'json', - ), - 'CreatedBefore' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'timestamp', - 'location' => 'json', - ), - 'JobFlowIds' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'XmlString', - 'type' => 'string', - 'maxLength' => 10280, - ), - ), - 'JobFlowStates' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'JobFlowExecutionState', - 'type' => 'string', - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that an error occurred while processing the request and that the request was not completed.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - 'DescribeStep' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeStepOutput', - '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.DescribeStep', - ), - 'ClusterId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'StepId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - ), - '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', - ), - ), - ), - 'ListBootstrapActions' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ListBootstrapActionsOutput', - '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.ListBootstrapActions', - ), - 'ClusterId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - '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', - ), - ), - ), - 'ListClusters' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ListClustersOutput', - '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.ListClusters', - ), - 'CreatedAfter' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'timestamp', - 'location' => 'json', - ), - 'CreatedBefore' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'timestamp', - 'location' => 'json', - ), - 'ClusterStates' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'ClusterState', - 'type' => 'string', - ), - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - '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', - ), - ), - ), - 'ListInstanceGroups' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ListInstanceGroupsOutput', - '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.ListInstanceGroups', - ), - 'ClusterId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - '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', - ), - ), - ), - 'ListInstances' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ListInstancesOutput', - '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.ListInstances', - ), - 'ClusterId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'InstanceGroupId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'InstanceGroupTypes' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'InstanceGroupType', - 'type' => 'string', - ), - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - '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', - ), - ), - ), - 'ListSteps' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ListStepsOutput', - '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.ListSteps', - ), - 'ClusterId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'StepStates' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'StepState', - 'type' => 'string', - ), - ), - 'StepIds' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'XmlString', - 'type' => 'string', - 'maxLength' => 10280, - ), - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - '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', - ), - ), - ), - 'ModifyInstanceGroups' => 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.ModifyInstanceGroups', - ), - 'InstanceGroups' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'InstanceGroupModifyConfig', - 'type' => 'object', - 'properties' => array( - 'InstanceGroupId' => array( - 'required' => true, - 'type' => 'string', - 'maxLength' => 256, - ), - 'InstanceCount' => array( - 'type' => 'numeric', - ), - 'EC2InstanceIdsToTerminate' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'InstanceId', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that an error occurred while processing the request and that the request was not completed.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - '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' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'RunJobFlowOutput', - '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.RunJobFlow', - ), - 'Name' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 256, - ), - 'LogUri' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 10280, - ), - 'AdditionalInfo' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 10280, - ), - 'AmiVersion' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 256, - ), - 'Instances' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'MasterInstanceType' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'SlaveInstanceType' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'InstanceCount' => array( - 'type' => 'numeric', - ), - 'InstanceGroups' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'InstanceGroupConfig', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - 'maxLength' => 256, - ), - 'Market' => array( - 'type' => 'string', - ), - 'InstanceRole' => array( - 'required' => true, - 'type' => 'string', - ), - 'BidPrice' => array( - 'type' => 'string', - 'maxLength' => 256, - ), - 'InstanceType' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'InstanceCount' => array( - 'required' => true, - 'type' => 'numeric', - ), - ), - ), - ), - 'Ec2KeyName' => array( - 'type' => 'string', - 'maxLength' => 256, - ), - 'Placement' => array( - 'type' => 'object', - 'properties' => array( - 'AvailabilityZone' => array( - 'required' => true, - 'type' => 'string', - 'maxLength' => 10280, - ), - ), - ), - 'KeepJobFlowAliveWhenNoSteps' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - 'TerminationProtected' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - 'HadoopVersion' => array( - 'type' => 'string', - 'maxLength' => 256, - ), - 'Ec2SubnetId' => 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( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'StepConfig', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'required' => true, - 'type' => 'string', - 'maxLength' => 256, - ), - 'ActionOnFailure' => array( - 'type' => 'string', - ), - 'HadoopJarStep' => array( - 'required' => true, - 'type' => 'object', - 'properties' => array( - 'Properties' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'KeyValue', - 'type' => 'object', - 'properties' => array( - 'Key' => array( - 'type' => 'string', - 'maxLength' => 10280, - ), - 'Value' => array( - 'type' => 'string', - 'maxLength' => 10280, - ), - ), - ), - ), - 'Jar' => array( - 'required' => true, - 'type' => 'string', - 'maxLength' => 10280, - ), - 'MainClass' => array( - 'type' => 'string', - 'maxLength' => 10280, - ), - 'Args' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'XmlString', - 'type' => 'string', - 'maxLength' => 10280, - ), - ), - ), - ), - ), - ), - ), - 'BootstrapActions' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'BootstrapActionConfig', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'required' => true, - 'type' => 'string', - 'maxLength' => 256, - ), - 'ScriptBootstrapAction' => array( - 'required' => true, - 'type' => 'object', - 'properties' => array( - 'Path' => array( - 'required' => true, - 'type' => 'string', - 'maxLength' => 10280, - ), - 'Args' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'XmlString', - 'type' => 'string', - 'maxLength' => 10280, - ), - ), - ), - ), - ), - ), - ), - 'SupportedProducts' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'XmlStringMaxLen256', - 'type' => 'string', - 'maxLength' => 256, - ), - ), - 'NewSupportedProducts' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'SupportedProductConfig', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - 'maxLength' => 256, - ), - 'Args' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'XmlString', - 'type' => 'string', - 'maxLength' => 10280, - ), - ), - ), - ), - ), - 'VisibleToAllUsers' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'JobFlowRole' => array( - 'type' => 'string', - '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( - 'reason' => 'Indicates that an error occurred while processing the request and that the request was not completed.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - 'SetTerminationProtection' => 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.SetTerminationProtection', - ), - 'JobFlowIds' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'XmlString', - 'type' => 'string', - 'maxLength' => 10280, - ), - ), - 'TerminationProtected' => array( - 'required' => true, - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that an error occurred while processing the request and that the request was not completed.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - 'SetVisibleToAllUsers' => 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.SetVisibleToAllUsers', - ), - 'JobFlowIds' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'XmlString', - 'type' => 'string', - 'maxLength' => 10280, - ), - ), - 'VisibleToAllUsers' => array( - 'required' => true, - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that an error occurred while processing the request and that the request was not completed.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - 'TerminateJobFlows' => 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.TerminateJobFlows', - ), - 'JobFlowIds' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'XmlString', - 'type' => 'string', - 'maxLength' => 10280, - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that an error occurred while processing the request and that the request was not completed.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - ), - 'models' => array( - 'AddInstanceGroupsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'JobFlowId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'InstanceGroupIds' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'XmlStringMaxLen256', - 'type' => 'string', - ), - ), - ), - ), - 'AddJobFlowStepsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'StepIds' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'XmlStringMaxLen256', - 'type' => 'string', - ), - ), - ), - ), - 'EmptyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), - 'DescribeClusterOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Cluster' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'object', - 'properties' => array( - 'State' => array( - 'type' => 'string', - ), - 'StateChangeReason' => array( - 'type' => 'object', - 'properties' => array( - 'Code' => array( - 'type' => 'string', - ), - 'Message' => array( - 'type' => 'string', - ), - ), - ), - 'Timeline' => array( - 'type' => 'object', - 'properties' => array( - 'CreationDateTime' => array( - 'type' => 'string', - ), - 'ReadyDateTime' => array( - 'type' => 'string', - ), - 'EndDateTime' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'Ec2InstanceAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'Ec2KeyName' => array( - 'type' => 'string', - ), - 'Ec2SubnetId' => array( - 'type' => 'string', - ), - 'Ec2AvailabilityZone' => array( - 'type' => 'string', - ), - '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( - 'type' => 'string', - ), - 'RequestedAmiVersion' => array( - 'type' => 'string', - ), - 'RunningAmiVersion' => array( - 'type' => 'string', - ), - 'AutoTerminate' => array( - 'type' => 'boolean', - ), - 'TerminationProtected' => array( - 'type' => 'boolean', - ), - 'VisibleToAllUsers' => array( - 'type' => 'boolean', - ), - 'Applications' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Application', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'Version' => array( - 'type' => 'string', - ), - 'Args' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'AdditionalInfo' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - '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', - ), - ), - ), - ), - ), - 'DescribeJobFlowsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'JobFlows' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'JobFlowDetail', - 'type' => 'object', - 'properties' => array( - 'JobFlowId' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - 'LogUri' => array( - 'type' => 'string', - ), - 'AmiVersion' => array( - 'type' => 'string', - ), - 'ExecutionStatusDetail' => array( - 'type' => 'object', - 'properties' => array( - 'State' => array( - 'type' => 'string', - ), - 'CreationDateTime' => array( - 'type' => 'string', - ), - 'StartDateTime' => array( - 'type' => 'string', - ), - 'ReadyDateTime' => array( - 'type' => 'string', - ), - 'EndDateTime' => array( - 'type' => 'string', - ), - 'LastStateChangeReason' => array( - 'type' => 'string', - ), - ), - ), - 'Instances' => array( - 'type' => 'object', - 'properties' => array( - 'MasterInstanceType' => array( - 'type' => 'string', - ), - 'MasterPublicDnsName' => array( - 'type' => 'string', - ), - 'MasterInstanceId' => array( - 'type' => 'string', - ), - 'SlaveInstanceType' => array( - 'type' => 'string', - ), - 'InstanceCount' => array( - 'type' => 'numeric', - ), - 'InstanceGroups' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'InstanceGroupDetail', - 'type' => 'object', - 'properties' => array( - 'InstanceGroupId' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - 'Market' => array( - 'type' => 'string', - ), - 'InstanceRole' => array( - 'type' => 'string', - ), - 'BidPrice' => array( - 'type' => 'string', - ), - 'InstanceType' => array( - 'type' => 'string', - ), - 'InstanceRequestCount' => array( - 'type' => 'numeric', - ), - 'InstanceRunningCount' => array( - 'type' => 'numeric', - ), - 'State' => array( - 'type' => 'string', - ), - 'LastStateChangeReason' => array( - 'type' => 'string', - ), - 'CreationDateTime' => array( - 'type' => 'string', - ), - 'StartDateTime' => array( - 'type' => 'string', - ), - 'ReadyDateTime' => array( - 'type' => 'string', - ), - 'EndDateTime' => array( - 'type' => 'string', - ), - ), - ), - ), - 'NormalizedInstanceHours' => array( - 'type' => 'numeric', - ), - 'Ec2KeyName' => array( - 'type' => 'string', - ), - 'Ec2SubnetId' => array( - 'type' => 'string', - ), - 'Placement' => array( - 'type' => 'object', - 'properties' => array( - 'AvailabilityZone' => array( - 'type' => 'string', - ), - ), - ), - 'KeepJobFlowAliveWhenNoSteps' => array( - 'type' => 'boolean', - ), - 'TerminationProtected' => array( - 'type' => 'boolean', - ), - 'HadoopVersion' => array( - 'type' => 'string', - ), - ), - ), - 'Steps' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'StepDetail', - 'type' => 'object', - 'properties' => array( - 'StepConfig' => array( - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'ActionOnFailure' => array( - 'type' => 'string', - ), - 'HadoopJarStep' => array( - 'type' => 'object', - 'properties' => array( - 'Properties' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'KeyValue', - 'type' => 'object', - 'properties' => array( - 'Key' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Jar' => array( - 'type' => 'string', - ), - 'MainClass' => array( - 'type' => 'string', - ), - 'Args' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'XmlString', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'ExecutionStatusDetail' => array( - 'type' => 'object', - 'properties' => array( - 'State' => array( - 'type' => 'string', - ), - 'CreationDateTime' => array( - 'type' => 'string', - ), - 'StartDateTime' => array( - 'type' => 'string', - ), - 'EndDateTime' => array( - 'type' => 'string', - ), - 'LastStateChangeReason' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'BootstrapActions' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'BootstrapActionDetail', - 'type' => 'object', - 'properties' => array( - 'BootstrapActionConfig' => array( - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'ScriptBootstrapAction' => array( - 'type' => 'object', - 'properties' => array( - 'Path' => array( - 'type' => 'string', - ), - 'Args' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'XmlString', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'SupportedProducts' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'XmlStringMaxLen256', - 'type' => 'string', - ), - ), - 'VisibleToAllUsers' => array( - 'type' => 'boolean', - ), - 'JobFlowRole' => array( - 'type' => 'string', - ), - 'ServiceRole' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'DescribeStepOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Step' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - '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( - 'State' => array( - 'type' => 'string', - ), - 'StateChangeReason' => array( - 'type' => 'object', - 'properties' => array( - 'Code' => array( - 'type' => 'string', - ), - 'Message' => array( - 'type' => 'string', - ), - ), - ), - 'Timeline' => array( - 'type' => 'object', - 'properties' => array( - 'CreationDateTime' => array( - 'type' => 'string', - ), - 'StartDateTime' => array( - 'type' => 'string', - ), - 'EndDateTime' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'ListBootstrapActionsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'BootstrapActions' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Command', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'ScriptPath' => array( - 'type' => 'string', - ), - 'Args' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - ), - ), - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'ListClustersOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Clusters' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'ClusterSummary', - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'object', - 'properties' => array( - 'State' => array( - 'type' => 'string', - ), - 'StateChangeReason' => array( - 'type' => 'object', - 'properties' => array( - 'Code' => array( - 'type' => 'string', - ), - 'Message' => array( - 'type' => 'string', - ), - ), - ), - 'Timeline' => array( - 'type' => 'object', - 'properties' => array( - 'CreationDateTime' => array( - 'type' => 'string', - ), - 'ReadyDateTime' => array( - 'type' => 'string', - ), - 'EndDateTime' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'NormalizedInstanceHours' => array( - 'type' => 'numeric', - ), - ), - ), - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'ListInstanceGroupsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'InstanceGroups' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'InstanceGroup', - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - 'Market' => array( - 'type' => 'string', - ), - 'InstanceGroupType' => array( - 'type' => 'string', - ), - 'BidPrice' => array( - 'type' => 'string', - ), - 'InstanceType' => array( - 'type' => 'string', - ), - 'RequestedInstanceCount' => array( - 'type' => 'numeric', - ), - 'RunningInstanceCount' => array( - 'type' => 'numeric', - ), - 'Status' => array( - 'type' => 'object', - 'properties' => array( - 'State' => array( - 'type' => 'string', - ), - 'StateChangeReason' => array( - 'type' => 'object', - 'properties' => array( - 'Code' => array( - 'type' => 'string', - ), - 'Message' => array( - 'type' => 'string', - ), - ), - ), - 'Timeline' => array( - 'type' => 'object', - 'properties' => array( - 'CreationDateTime' => array( - 'type' => 'string', - ), - 'ReadyDateTime' => array( - 'type' => 'string', - ), - 'EndDateTime' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'ListInstancesOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Instances' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Instance', - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Ec2InstanceId' => array( - 'type' => 'string', - ), - 'PublicDnsName' => array( - 'type' => 'string', - ), - 'PublicIpAddress' => array( - 'type' => 'string', - ), - 'PrivateDnsName' => array( - 'type' => 'string', - ), - 'PrivateIpAddress' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'object', - 'properties' => array( - 'State' => array( - 'type' => 'string', - ), - 'StateChangeReason' => array( - 'type' => 'object', - 'properties' => array( - 'Code' => array( - 'type' => 'string', - ), - 'Message' => array( - 'type' => 'string', - ), - ), - ), - 'Timeline' => array( - 'type' => 'object', - 'properties' => array( - 'CreationDateTime' => array( - 'type' => 'string', - ), - 'ReadyDateTime' => array( - 'type' => 'string', - ), - 'EndDateTime' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'ListStepsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Steps' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'StepSummary', - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - '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( - 'State' => array( - 'type' => 'string', - ), - 'StateChangeReason' => array( - 'type' => 'object', - 'properties' => array( - 'Code' => array( - 'type' => 'string', - ), - 'Message' => array( - 'type' => 'string', - ), - ), - ), - 'Timeline' => array( - 'type' => 'object', - 'properties' => array( - 'CreationDateTime' => array( - 'type' => 'string', - ), - 'StartDateTime' => array( - 'type' => 'string', - ), - 'EndDateTime' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'RunJobFlowOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'JobFlowId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - ), - 'iterators' => array( - '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/lib/aws-sdk/Aws/Endpoint/EndpointProvider.php b/lib/aws-sdk/Aws/Endpoint/EndpointProvider.php new file mode 100644 index 0000000..5355ec5 --- /dev/null +++ b/lib/aws-sdk/Aws/Endpoint/EndpointProvider.php @@ -0,0 +1,96 @@ + 'ec2', 'region' => 'us-west-2']); + * // Returns an endpoint array or throws. + * $endpoint = EndpointProvider::resolve($provider, [ + * 'service' => 'ec2', + * 'region' => 'us-west-2' + * ]); + * + * You can compose multiple providers into a single provider using + * {@see Aws\or_chain}. This function accepts providers as arguments and + * returns a new function that will invoke each provider until a non-null value + * is returned. + * + * $a = function (array $args) { + * if ($args['region'] === 'my-test-region') { + * return ['endpoint' => 'http://localhost:123/api']; + * } + * }; + * $b = EndpointProvider::defaultProvider(); + * $c = \Aws\or_chain($a, $b); + * $config = ['service' => 'ec2', 'region' => 'my-test-region']; + * $res = $c($config); // $a handles this. + * $config['region'] = 'us-west-2'; + * $res = $c($config); // $b handles this. + */ +class EndpointProvider +{ + /** + * Resolves and endpoint provider and ensures a non-null return value. + * + * @param callable $provider Provider function to invoke. + * @param array $args Endpoint arguments to pass to the provider. + * + * @return array + * @throws UnresolvedEndpointException + */ + public static function resolve(callable $provider, array $args = []) + { + $result = $provider($args); + if (is_array($result)) { + return $result; + } + + throw new UnresolvedEndpointException( + 'Unable to resolve an endpoint using the provider arguments: ' + . json_encode($args) . '. Note: you can provide an "endpoint" ' + . 'option to a client constructor to bypass invoking an endpoint ' + . 'provider.'); + } + + /** + * Creates and returns the default SDK endpoint provider. + * + * @return callable + */ + public static function defaultProvider() + { + $data = \Aws\load_compiled_json(__DIR__ . '/../data/endpoints.json'); + + return new PatternEndpointProvider($data['endpoints']); + } + + /** + * Creates and returns an endpoint provider that uses patterns from an + * array. + * + * @param array $patterns Endpoint patterns + * + * @return callable + */ + public static function patterns(array $patterns) + { + return new PatternEndpointProvider($patterns); + } +} diff --git a/lib/aws-sdk/Aws/Endpoint/PatternEndpointProvider.php b/lib/aws-sdk/Aws/Endpoint/PatternEndpointProvider.php new file mode 100644 index 0000000..c8867ee --- /dev/null +++ b/lib/aws-sdk/Aws/Endpoint/PatternEndpointProvider.php @@ -0,0 +1,51 @@ +patterns = $patterns; + } + + public function __invoke(array $args = []) + { + $service = isset($args['service']) ? $args['service'] : ''; + $region = isset($args['region']) ? $args['region'] : ''; + $keys = ["{$region}/{$service}", "{$region}/*", "*/{$service}", "*/*"]; + + foreach ($keys as $key) { + if (isset($this->patterns[$key])) { + return $this->expand( + $this->patterns[$key], + isset($args['scheme']) ? $args['scheme'] : 'https', + $service, + $region + ); + } + } + + return null; + } + + private function expand(array $config, $scheme, $service, $region) + { + $config['endpoint'] = $scheme . '://' + . strtr($config['endpoint'], [ + '{service}' => $service, + '{region}' => $region + ]); + + return $config; + } +} diff --git a/lib/aws-sdk/Aws/Exception/AwsException.php b/lib/aws-sdk/Aws/Exception/AwsException.php new file mode 100644 index 0000000..d1b547c --- /dev/null +++ b/lib/aws-sdk/Aws/Exception/AwsException.php @@ -0,0 +1,160 @@ +command = $command; + $this->response = isset($context['response']) ? $context['response'] : null; + $this->request = isset($context['request']) ? $context['request'] : null; + $this->requestId = isset($context['request_id']) + ? $context['request_id'] + : null; + $this->errorType = isset($context['type']) ? $context['type'] : null; + $this->errorCode = isset($context['code']) ? $context['code'] : null; + $this->connectionError = !empty($context['connection_error']); + $this->result = isset($context['result']) ? $context['result'] : null; + parent::__construct($message, 0, $previous); + } + + public function __toString() + { + if (!$this->getPrevious()) { + return parent::__toString(); + } + + // PHP strangely shows the innermost exception first before the outer + // exception message. It also has a default character limit for + // exception message strings such that the "next" exception (this one) + // might not even get shown, causing developers to attempt to catch + // the inner exception instead of the actual exception because they + // can't see the outer exception's __toString output. + return sprintf( + "exception '%s' with message '%s'\n\n%s", + get_class($this), + $this->getMessage(), + parent::__toString() + ); + } + + /** + * Get the command that was executed. + * + * @return CommandInterface + */ + public function getCommand() + { + return $this->command; + } + + /** + * Get the sent HTTP request if any. + * + * @return RequestInterface|null + */ + public function getRequest() + { + return $this->request; + } + + /** + * Get the received HTTP response if any. + * + * @return ResponseInterface|null + */ + public function getResponse() + { + return $this->response; + } + + /** + * Get the result of the exception if available + * + * @return ResultInterface|null + */ + public function getResult() + { + return $this->result; + } + + /** + * Returns true if this is a connection error. + * + * @return bool + */ + public function isConnectionError() + { + return $this->connectionError; + } + + /** + * If available, gets the HTTP status code of the corresponding response + * + * @return int|null + */ + public function getStatusCode() + { + return $this->response ? $this->response->getStatusCode() : null; + } + + /** + * 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. + * + * @return string|null Returns null if no response was received + */ + public function getAwsRequestId() + { + return $this->requestId; + } + + /** + * Get the AWS error type. + * + * @return string|null Returns null if no response was received + */ + public function getAwsErrorType() + { + return $this->errorType; + } + + /** + * Get the AWS error code. + * + * @return string|null Returns null if no response was received + */ + public function getAwsErrorCode() + { + return $this->errorCode; + } +} diff --git a/lib/aws-sdk/Aws/Exception/CouldNotCreateChecksumException.php b/lib/aws-sdk/Aws/Exception/CouldNotCreateChecksumException.php new file mode 100644 index 0000000..0f30a97 --- /dev/null +++ b/lib/aws-sdk/Aws/Exception/CouldNotCreateChecksumException.php @@ -0,0 +1,19 @@ + 'uploading parts to']); + $msg .= " The following parts had errors:\n"; + /** @var $error AwsException */ + foreach ($prev as $part => $error) { + $msg .= "- Part {$part}: " . $error->getMessage(). "\n"; + } + } elseif ($prev instanceof AwsException) { + switch ($prev->getCommand()->getName()) { + case 'CreateMultipartUpload': + case 'InitiateMultipartUpload': + $action = 'initiating'; + break; + case 'CompleteMultipartUpload': + $action = 'completing'; + break; + } + if (isset($action)) { + $msg = strtr($msg, ['performing' => $action]); + } + } + + if (!$prev instanceof \Exception) { + $prev = null; + } + + parent::__construct($msg, 0, $prev); + $this->state = $state; + } + + /** + * Get the state of the transfer + * + * @return UploadState + */ + public function getState() + { + return $this->state; + } +} diff --git a/lib/aws-sdk/Aws/Exception/UnresolvedApiException.php b/lib/aws-sdk/Aws/Exception/UnresolvedApiException.php new file mode 100644 index 0000000..f818fe1 --- /dev/null +++ b/lib/aws-sdk/Aws/Exception/UnresolvedApiException.php @@ -0,0 +1,4 @@ +getHandlerList(); + $stack->appendBuild($this->getApiVersionMiddleware(), 'glacier.api_version'); + $stack->appendBuild($this->getChecksumsMiddleware(), 'glacier.checksum'); + $stack->appendBuild( + Middleware::contentType(['UploadArchive', 'UploadPart']), + 'glacier.content_type' + ); + $stack->appendInit( + Middleware::sourceFile($this->getApi(), 'body', 'sourceFile'), + 'glacier.source_file' + ); + } /** - * Factory method to create a new Amazon Glacier client using an array of configuration options. + * {@inheritdoc} * - * @param array|Collection $config Client configuration data + * Sets the default accountId to "-" for all operations. + */ + public function getCommand($name, array $args = []) + { + return parent::getCommand($name, $args + ['accountId' => '-']); + } + + /** + * Creates a middleware that updates a command with the content and tree + * hash headers for upload operations. * - * @return GlacierClient - * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options + * @return callable + * @throws CouldNotCreateChecksumException if the body is not seekable. */ - public static function factory($config = array()) + private function getChecksumsMiddleware() { - // Setup the Glacier client - $client = ClientBuilder::factory(__NAMESPACE__) - ->setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/glacier-%s.php', - // Set default value for "accountId" for all requests - 'command.params' => array( - 'accountId' => '-', - Options::MODEL_PROCESSING => true - ) - )) - ->setExceptionParser(new JsonRestExceptionParser()) - ->build(); + return function (callable $handler) { + return function ( + CommandInterface $command, + RequestInterface $request = null + ) use ($handler) { + // If uploading, then make sure checksums are added. + $name = $command->getName(); + if (($name === 'UploadArchive' || $name === 'UploadPart') + && (!$command['checksum'] || !$command['ContentSHA256']) + ) { + $body = $request->getBody(); + if (!$body->isSeekable()) { + throw new CouldNotCreateChecksumException('sha256'); + } - // Add the Glacier version header required for all operations - $client->getConfig()->setPath( - 'request.options/headers/x-amz-glacier-version', - $client->getDescription()->getApiVersion() - ); + // Add a tree hash if not provided. + if (!$command['checksum']) { + $body = new HashingStream( + $body, new TreeHash(), + function ($result) use ($command, &$request) { + $request = $request->withHeader( + 'x-amz-sha256-tree-hash', + bin2hex($result) + ); + } + ); + } + + // Add a linear content hash if not provided. + if (!$command['ContentSHA256']) { + $body = new HashingStream( + $body, new PhpHash('sha256'), + function ($result) use ($command) { + $command['ContentSHA256'] = bin2hex($result); + } + ); + } + + // Read the stream in order to calculate the hashes. + while (!$body->eof()) { + $body->read(1048576); + } + $body->seek(0); + } + + // Set the content hash header if a value is in the command. + if ($command['ContentSHA256']) { + $request = $request->withHeader( + 'x-amz-content-sha256', + $command['ContentSHA256'] + ); + } + + return $handler($command, $request); + }; + }; + } + + /** + * Creates a middleware that adds the API version header for all requests. + * + * @return callable + */ + private function getApiVersionMiddleware() + { + return function (callable $handler) { + return function ( + CommandInterface $command, + RequestInterface $request = null + ) use ($handler) { + return $handler($command, $request->withHeader( + 'x-amz-glacier-version', + $this->getApi()->getMetadata('apiVersion') + )); + }; + }; + } + + /** + * @internal + * @codeCoverageIgnore + */ + public static function applyDocFilters(array $api, array $docs) + { + // Add the SourceFile parameter. + $docs['shapes']['SourceFile']['base'] = 'The path to a file on disk to use instead of the body parameter.'; + $api['shapes']['SourceFile'] = ['type' => 'string']; + $api['shapes']['UploadArchiveInput']['members']['SourceFile'] = ['shape' => 'SourceFile']; + $api['shapes']['UploadMultipartPartInput']['members']['SourceFile'] = ['shape' => 'SourceFile']; - // Allow for specifying bodies with file paths and file handles - $uploadOperations = array('UploadArchive', 'UploadMultipartPart'); - $client->addSubscriber(new UploadBodyListener($uploadOperations, 'body', 'sourceFile')); + // Add information about "checksum" being optional. + $docs['shapes']['checksum']['append'] = + '
The SDK will compute this value ' + . 'for you on your behalf if it is not supplied.
'; - // Listen for upload operations and make sure the required hash headers are added - $client->addSubscriber(new GlacierUploadListener()); + // Add information about "accountId" being optional. + $optional = '
The SDK will set this value ' + . 'to "-" by default.
'; + foreach ($docs['shapes']['string']['refs'] as $name => &$ref) { + if (strpos($name, 'accountId')) { + $ref .= $optional; + } + } - return $client; + return [ + new Service($api, ApiProvider::defaultProvider()), + new DocModel($docs) + ]; } } diff --git a/lib/aws-sdk/Aws/Glacier/GlacierUploadListener.php b/lib/aws-sdk/Aws/Glacier/GlacierUploadListener.php deleted file mode 100644 index 0c6966f..0000000 --- a/lib/aws-sdk/Aws/Glacier/GlacierUploadListener.php +++ /dev/null @@ -1,63 +0,0 @@ - array('onCommandBeforeSend'), - ); - } - - /** - * Retrieve bodies passed in as UploadPartContext objects and set the real hash, length, etc. values on the command - * - * @param Event $event Event emitted - */ - public function onCommandBeforeSend(Event $event) - { - /** @var AbstractCommand $command */ - $command = $event['command']; - $contentHash = $command->get('ContentSHA256'); - if ($contentHash === true) { - /** @var EntityEnclosingRequest $request */ - $request = $command->getRequest(); - $upload = UploadPartGenerator::createSingleUploadPart($request->getBody()); - $request->addHeader('x-amz-content-sha256', $upload->getContentHash()); - if (!$command->get('checksum')) { - $request->addHeader('x-amz-sha256-tree-hash', $upload->getChecksum()); - } - } elseif (is_string($contentHash)) { - $request = $command->getRequest(); - $request->addHeader('x-amz-content-sha256', $contentHash); - } - } -} diff --git a/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/AbstractTransfer.php b/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/AbstractTransfer.php deleted file mode 100644 index 5ab3ca2..0000000 --- a/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/AbstractTransfer.php +++ /dev/null @@ -1,105 +0,0 @@ -state->getPartGenerator()->getPartSize(); - } - - /** - * {@inheritdoc} - */ - protected function complete() - { - $partGenerator = $this->state->getPartGenerator(); - - $params = array_replace($this->state->getUploadId()->toParams(), array( - 'archiveSize' => $partGenerator->getArchiveSize(), - 'checksum' => $partGenerator->getRootChecksum(), - Ua::OPTION => Ua::MULTIPART_UPLOAD - )); - $command = $this->client->getCommand('CompleteMultipartUpload', $params); - - return $command->getResult(); - } - - /** - * {@inheritdoc} - */ - protected function getAbortCommand() - { - $params = $this->state->getUploadId()->toParams(); - $params[Ua::OPTION] = Ua::MULTIPART_UPLOAD; - - /** @var OperationCommand $command */ - $command = $this->client->getCommand('AbortMultipartUpload', $params); - - return $command; - } - - /** - * Creates an UploadMultipartPart command from an UploadPart object - * - * @param UploadPart $part UploadPart for which to create a command - * @param bool $useSourceCopy Whether or not to use the original source or a copy of it - * - * @return OperationCommand - */ - protected function getCommandForPart(UploadPart $part, $useSourceCopy = false) - { - // Setup the command with identifying parameters (accountId, vaultName, and uploadId) - /** @var OperationCommand $command */ - $command = $this->client->getCommand('UploadMultipartPart', $this->state->getUploadId()->toParams()); - $command->set(Ua::OPTION, Ua::MULTIPART_UPLOAD); - - // Get the correct source - $source = $this->source; - if ($useSourceCopy) { - $sourceUri = $this->source->getUri(); - $source = new EntityBody(fopen($sourceUri, 'r')); - } - - // Add the range, checksum, and the body limited by the range - $command->set('range', $part->getFormattedRange()); - $command->set('checksum', $part->getChecksum()); - $command->set('ContentSHA256', $part->getContentHash()); - $command->set('body', new ReadLimitEntityBody($source, $part->getSize(), $part->getOffset())); - - return $command; - } -} diff --git a/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/ParallelTransfer.php b/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/ParallelTransfer.php deleted file mode 100644 index 688949c..0000000 --- a/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/ParallelTransfer.php +++ /dev/null @@ -1,75 +0,0 @@ -source->isLocal() || $this->source->getWrapper() != 'plainfile') { - throw new RuntimeException('The source data must be a local file stream when uploading in parallel.'); - } - - if (empty($this->options['concurrency'])) { - throw new RuntimeException('The `concurrency` option must be specified when instantiating.'); - } - } - - /** - * {@inheritdoc} - */ - protected function transfer() - { - /** @var UploadPartGenerator $parts */ - $parts = $this->state->getPartGenerator(); - $chunkSize = min($this->options['concurrency'], count($parts)); - $partSets = new ChunkedIterator($parts, $chunkSize); - - foreach ($partSets as $partSet) { - /** @var UploadPart $part */ - $commands = array(); - foreach ($partSet as $index => $part) { - $command = $this->getCommandForPart($part, (bool) $index)->set('part', $part); - $this->dispatch(self::BEFORE_PART_UPLOAD, $this->getEventData($command)); - $commands[] = $command; - } - - // Allow listeners to stop the transfer if needed - if ($this->stopped) { - break; - } - - // Execute each command, iterate over the results, and add to the transfer state - /** @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/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/SerialTransfer.php b/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/SerialTransfer.php deleted file mode 100644 index ed78ceb..0000000 --- a/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/SerialTransfer.php +++ /dev/null @@ -1,52 +0,0 @@ -state->getPartGenerator(); - - /** @var UploadPart $part */ - foreach ($partGenerator as $part) { - $command = $this->getCommandForPart($part); - - // Notify observers that the part is about to be uploaded - $eventData = $this->getEventData($command); - $this->dispatch(self::BEFORE_PART_UPLOAD, $eventData); - - // Allow listeners to stop the transfer if needed - if ($this->stopped) { - break; - } - - $command->execute(); - $this->state->addPart($part); - - // Notify observers that the part was uploaded - $this->dispatch(self::AFTER_PART_UPLOAD, $eventData); - } - } -} diff --git a/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/TransferState.php b/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/TransferState.php deleted file mode 100644 index 1d8e6a5..0000000 --- a/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/TransferState.php +++ /dev/null @@ -1,79 +0,0 @@ -getIterator('ListParts', $uploadId->toParams()); - - foreach ($listParts as $part) { - list($firstByte, $lastByte) = explode('-', $part['RangeInBytes']); - $partSize = (float) $listParts->getLastResult()->get('PartSizeInBytes'); - $partData = array( - 'partNumber' => $firstByte / $partSize + 1, - 'checksum' => $part['SHA256TreeHash'], - 'contentHash' => self::ALREADY_UPLOADED, - 'size' => $lastByte - $firstByte + 1, - 'offset' => $firstByte - ); - $transferState->addPart(UploadPart::fromArray($partData)); - } - - return $transferState; - } - - /** - * @param UploadPartGenerator $partGenerator Glacier upload helper object - * - * @return $this - */ - public function setPartGenerator(UploadPartGenerator $partGenerator) - { - $this->partGenerator = $partGenerator; - - return $this; - } - - /** - * @return UploadPartGenerator Glacier upload helper object - */ - public function getPartGenerator() - { - return $this->partGenerator; - } -} diff --git a/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadBuilder.php b/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadBuilder.php deleted file mode 100644 index 607225b..0000000 --- a/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadBuilder.php +++ /dev/null @@ -1,216 +0,0 @@ -accountId = $accountId; - - return $this; - } - - /** - * Set the vault name to upload the part to - * - * @param string $vaultName Name of the vault - * - * @return $this - */ - public function setVaultName($vaultName) - { - $this->vaultName = $vaultName; - - return $this; - } - - /** - * Set the upload part size - * - * @param int $partSize Upload part size - * - * @return $this - */ - public function setPartSize($partSize) - { - $this->partSize = (int) $partSize; - - return $this; - } - - /** - * Set the archive description - * - * @param string $archiveDescription Archive description - * - * @return $this - */ - public function setArchiveDescription($archiveDescription) - { - $this->archiveDescription = $archiveDescription; - - return $this; - } - - /** - * Set the concurrency level to use when uploading parts. This affects how many parts are uploaded in parallel. You - * must use a local file as your data source when using a concurrency greater than 1 - * - * @param int $concurrency Concurrency level - * - * @return $this - */ - public function setConcurrency($concurrency) - { - $this->concurrency = $concurrency; - - return $this; - } - - /** - * Sets the Glacier upload helper object that pre-calculates hashes and sizes for all upload parts - * - * @param UploadPartGenerator $partGenerator Glacier upload helper object - * - * @return $this - */ - public function setPartGenerator(UploadPartGenerator $partGenerator) - { - $this->partGenerator = $partGenerator; - - return $this; - } - - /** - * {@inheritdoc} - * @throws InvalidArgumentException when attempting to resume a transfer using a non-seekable stream - * @throws InvalidArgumentException when missing required properties (bucket, key, client, source) - */ - public function build() - { - // If a Glacier upload helper object was set, use the source and part size from it - if ($this->partGenerator) { - $this->partSize = $this->partGenerator->getPartSize(); - } - - if (!($this->state instanceof State) && !$this->vaultName || !$this->client || !$this->source) { - throw new InvalidArgumentException('You must specify a vault name, client, and source.'); - } - - if (!$this->source->isSeekable()) { - throw new InvalidArgumentException('You cannot upload from a non-seekable source.'); - } - - // If no state was set, then create one by initiating or loading a multipart upload - if (is_string($this->state)) { - if (!$this->partGenerator) { - throw new InvalidArgumentException('You must provide an UploadPartGenerator when resuming an upload.'); - } - /** @var TransferState $state */ - $this->state = TransferState::fromUploadId($this->client, UploadId::fromParams(array( - 'accountId' => $this->accountId, - 'vaultName' => $this->vaultName, - 'uploadId' => $this->state - ))); - $this->state->setPartGenerator($this->partGenerator); - } elseif (!$this->state) { - $this->state = $this->initiateMultipartUpload(); - } - - $options = array( - 'concurrency' => $this->concurrency - ); - - return $this->concurrency > 1 - ? new ParallelTransfer($this->client, $this->state, $this->source, $options) - : new SerialTransfer($this->client, $this->state, $this->source, $options); - } - - /** - * {@inheritdoc} - */ - protected function initiateMultipartUpload() - { - $params = array( - 'accountId' => $this->accountId, - 'vaultName' => $this->vaultName - ); - - $partGenerator = $this->partGenerator ?: UploadPartGenerator::factory($this->source, $this->partSize); - - $command = $this->client->getCommand('InitiateMultipartUpload', array_replace($params, array( - 'command.headers' => $this->headers, - 'partSize' => $partGenerator->getPartSize(), - 'archiveDescription' => $this->archiveDescription, - Ua::OPTION => Ua::MULTIPART_UPLOAD - ))); - $params['uploadId'] = $command->getResult()->get('uploadId'); - - // Create a new state based on the initiated upload - $state = new TransferState(UploadId::fromParams($params)); - $state->setPartGenerator($partGenerator); - - return $state; - } -} diff --git a/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadId.php b/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadId.php deleted file mode 100644 index 2b5a150..0000000 --- a/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadId.php +++ /dev/null @@ -1,35 +0,0 @@ - '-', - 'uploadId' => false, - 'vaultName' => false - ); -} diff --git a/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadPart.php b/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadPart.php deleted file mode 100644 index ef79aac..0000000 --- a/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadPart.php +++ /dev/null @@ -1,110 +0,0 @@ - 'partNumber', - 'checksum' => 'checksum', - 'contentHash' => 'contentHash', - 'size' => 'size', - 'offset' => 'offset' - ); - - /** - * @var string The sha256 tree hash of the upload body - */ - protected $checksum; - - /** - * @var string The sha256 linear hash of the upload body - */ - protected $contentHash; - - /** - * @var int The size (or content-length) in bytes of the upload body - */ - protected $size; - - /** - * @var int The starting offset byte of the upload body - */ - protected $offset; - - /** - * @return string - */ - public function getChecksum() - { - return $this->checksum; - } - - /** - * @return string - */ - public function getContentHash() - { - return $this->contentHash; - } - - /** - * @return int - */ - public function getSize() - { - return $this->size; - } - - /** - * @return int - */ - public function getOffset() - { - return $this->offset; - } - - /** - * Returns the byte range of the part as an array - * - * @return array - */ - public function getRange() - { - return array($this->offset, $this->offset + $this->size - 1); - } - - /** - * Returns the byte range ot the part formatted for the Content-Range header - * - * @return string - */ - public function getFormattedRange() - { - list($firstByte, $lastByte) = $this->getRange(); - - return "bytes {$firstByte}-{$lastByte}/*"; - } -} diff --git a/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadPartContext.php b/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadPartContext.php deleted file mode 100644 index 47076b9..0000000 --- a/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadPartContext.php +++ /dev/null @@ -1,138 +0,0 @@ -maxSize = $maxSize; - $this->offset = $offset; - $this->size = 0; - - $this->treeHash = new TreeHash(); - $this->chunkHash = new ChunkHash(); - } - - /** - * Adds data to the context. This adds data to both the tree and chunk hashes and increases the size - * - * @param string $data Data to add to the context - * - * @return $this - * @throws LogicException when the context is already finalized - */ - public function addData($data) - { - $size = strlen($data); - - if ($this->size + $size > $this->maxSize) { - throw new LogicException('You cannot add data that will exceed the maximum size of this upload.'); - } - - try { - $this->treeHash->addData($data); - $this->chunkHash->addData($data); - $this->size += $size; - } catch (LogicException $e) { - throw new LogicException('You cannot add data to a finalized UploadPartContext.', 0, $e); - } - - return $this; - } - - /** - * Finalizes the context by calculating the final hashes and generates an upload part object - * - * @return UploadPart - */ - public function generatePart() - { - if (!$this->uploadPart) { - $this->uploadPart = UploadPart::fromArray(array( - 'partNumber' => (int) ($this->offset / $this->maxSize + 1), - 'checksum' => $this->treeHash->getHash(), - 'contentHash' => $this->chunkHash->getHash(), - 'size' => $this->size, - 'offset' => $this->offset - )); - } - - return $this->uploadPart; - } - - /** - * Checks if the size of the context is the same as the maximum size - * - * @return bool - */ - public function isFull() - { - return $this->size === $this->maxSize; - } - - /** - * Checks if the size of the context is 0 - * - * @return bool - */ - public function isEmpty() - { - return $this->size === 0; - } -} diff --git a/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadPartGenerator.php b/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadPartGenerator.php deleted file mode 100644 index 49bfeda..0000000 --- a/lib/aws-sdk/Aws/Glacier/Model/MultipartUpload/UploadPartGenerator.php +++ /dev/null @@ -1,279 +0,0 @@ - 1) { - // @codeCoverageIgnoreStart - throw new RuntimeException('You cannot create a single upload that is larger than 4 GB.'); - // @codeCoverageIgnoreEnd - } - - return $generator->getUploadPart(1); - } - - /** - * @param EntityBodyInterface $body The upload body - * @param int $partSize The size of parts to split the upload into. Default is the 4GB max - * - * @throws InvalidArgumentException when the part size is invalid (i.e. not a power of 2 of 1MB) - * @throws InvalidArgumentException when the body is not seekable (must be able to rewind after calculating hashes) - * @throws InvalidArgumentException when the archive size is less than one byte - */ - public function __construct(EntityBodyInterface $body, $partSize) - { - $this->partSize = $partSize; - - // Make sure the part size is valid - $validPartSizes = array_map(function ($value) {return pow(2, $value) * Size::MB;}, range(0, 12)); - if (!in_array($this->partSize, $validPartSizes)) { - throw new InvalidArgumentException('The part size must be a megabyte multiplied by a power of 2 and no ' - . 'greater than 4 gigabytes.'); - } - - // Validate body - if (!$body->isSeekable()) { - throw new InvalidArgumentException('The upload body must be seekable.'); - } - - $this->generateUploadParts($body); - - // Validate archive size - if ($this->archiveSize < 1) { - throw new InvalidArgumentException('The archive size must be at least 1 byte.'); - } - } - - /** - * Returns a single upload part from the calculated uploads by part number. By default it returns the first, which - * is useful behavior if there is only one upload. - * - * @param int $partNumber The numerical index of the upload - * - * @return UploadPart - * @throws OutOfBoundsException if the index of the upload doesn't exist - */ - public function getUploadPart($partNumber) - { - $partNumber = (int) $partNumber; - - // Get the upload at the index if it exists - if (isset($this->uploadParts[$partNumber - 1])) { - return $this->uploadParts[$partNumber - 1]; - } else { - throw new OutOfBoundsException("An upload part with part number {$partNumber} at index did not exist."); - } - } - /** - * @return array - */ - public function getAllParts() - { - return $this->uploadParts; - } - - /** - * @return array - */ - public function getArchiveSize() - { - return $this->archiveSize; - } - - /** - * @return string - */ - public function getRootChecksum() - { - if (!$this->rootChecksum) { - $this->rootChecksum = TreeHash::fromChecksums(array_map(function (UploadPart $part) { - return $part->getChecksum(); - }, $this->uploadParts))->getHash(); - } - - return $this->rootChecksum; - } - - /** - * @return string - */ - public function getPartSize() - { - return $this->partSize; - } - - /** - * {@inheritdoc} - */ - public function serialize() - { - return serialize(array( - 'uploadParts' => $this->uploadParts, - 'archiveSize' => $this->archiveSize, - 'partSize' => $this->partSize - )); - } - - /** - * {@inheritdoc} - */ - public function unserialize($serialized) - { - // Unserialize data - $data = unserialize($serialized); - - // Set properties - foreach (array('uploadParts', 'archiveSize', 'partSize') as $property) { - if (isset($data[$property])) { - $this->{$property} = $data[$property]; - } else { - throw new RuntimeException(sprintf('Cannot unserialize the %s class. The %s property is missing.', - __CLASS__, $property - )); - } - } - } - - /** - * {@inheritdoc} - */ - public function getIterator() - { - return new \ArrayIterator($this->uploadParts); - } - - /** - * {@inheritdoc} - */ - public function count() - { - return count($this->uploadParts); - } - - /** - * Performs the work of reading the body stream, creating tree hashes, and creating UploadPartContext objects - * - * @param EntityBodyInterface $body The body to create parts from - */ - protected function generateUploadParts(EntityBodyInterface $body) - { - // Rewind the body stream - $body->seek(0); - - // Initialize variables for tracking data for upload - $uploadContext = new UploadPartContext($this->partSize, $body->ftell()); - - // Read the data from the streamed body in 1MB chunks - while ($data = $body->read(min($this->partSize, Size::MB))) { - // Add data to the hashes and size calculations - $uploadContext->addData($data); - - // If the upload part is complete, generate an upload object and reset the currently tracked upload data - if ($uploadContext->isFull()) { - $this->updateTotals($uploadContext->generatePart()); - $uploadContext = new UploadPartContext($this->partSize, $body->ftell()); - } - } - - // Handle any leftover data - if (!$uploadContext->isEmpty()) { - $this->updateTotals($uploadContext->generatePart()); - } - - // Rewind the body stream - $body->seek(0); - } - - /** - * Updated the upload helper running totals and tree hash with the data from a complete upload part - * - * @param UploadPart $part The newly completed upload part - * - * @throws OverflowException if the maximum number of allowed upload parts is exceeded - */ - protected function updateTotals(UploadPart $part) - { - // Throw an exception if there are more parts than total allowed - if ($part->getPartNumber() > self::MAX_NUM_PARTS) { - // @codeCoverageIgnoreStart - throw new OverflowException('An archive must be uploaded in ' . self::MAX_NUM_PARTS . ' parts or less.'); - // @codeCoverageIgnoreEnd - } - - $this->uploadParts[] = $part; - $this->archiveSize += $part->getSize(); - } -} diff --git a/lib/aws-sdk/Aws/Glacier/MultipartUploader.php b/lib/aws-sdk/Aws/Glacier/MultipartUploader.php new file mode 100644 index 0000000..2b1b1e9 --- /dev/null +++ b/lib/aws-sdk/Aws/Glacier/MultipartUploader.php @@ -0,0 +1,281 @@ + $accountId, + 'vaultName' => $vaultName, + 'uploadId' => $uploadId, + ]); + + foreach ($client->getPaginator('ListParts', $state->getId()) as $result) { + // Get the part size from the first part in the first result. + if (!$state->getPartSize()) { + $state->setPartSize($result['PartSizeInBytes']); + } + // Mark all the parts returned by ListParts as uploaded. + foreach ($result['Parts'] as $part) { + list($rangeIndex, $rangeSize) = self::parseRange( + $part['RangeInBytes'], + $state->getPartSize() + ); + $state->markPartAsUploaded($rangeIndex, [ + 'size' => $rangeSize, + 'checksum' => $part['SHA256TreeHash'], + ]); + } + } + + $state->setStatus(UploadState::INITIATED); + + return $state; + } + + /** + * Creates a multipart upload for a Glacier archive. + * + * The valid configuration options are as follows: + * + * - account_id: (string, default=string('-')) Account ID for the archive + * being uploaded, if different from the account making the request. + * - archive_description: (string) Description of the archive. + * - before_complete: (callable) Callback to invoke before the + * `CompleteMultipartUpload` operation. The callback should have a + * function signature like `function (Aws\Command $command) {...}`. + * - before_initiate: (callable) Callback to invoke before the + * `InitiateMultipartUpload` operation. The callback should have a + * function signature like `function (Aws\Command $command) {...}`. + * - before_upload: (callable) Callback to invoke before any + * `UploadMultipartPart` operations. The callback should have a function + * signature like `function (Aws\Command $command) {...}`. + * - concurrency: (int, default=int(3)) Maximum number of concurrent + * `UploadMultipartPart` operations allowed during the multipart upload. + * - part_size: (int, default=int(1048576)) Part size, in bytes, to use when + * doing a multipart upload. This must between 1 MB and 4 GB, and must be + * a power of 2 (in megabytes). + * - state: (Aws\Multipart\UploadState) An object that represents the state + * of the multipart upload and that is used to resume a previous upload. + * When this options is provided, the `account_id`, `key`, and `part_size` + * options are ignored. + * - vault_name: (string, required) Vault name to use for the archive being + * uploaded. + * + * @param GlacierClient $client Client used for the upload. + * @param mixed $source Source of the data to upload. + * @param array $config Configuration used to perform the upload. + */ + public function __construct(GlacierClient $client, $source, array $config = []) + { + parent::__construct($client, $source, $config + [ + 'account_id' => '-', + 'vault_name' => null, + ]); + } + + protected function loadUploadWorkflowInfo() + { + return [ + 'command' => [ + 'initiate' => 'InitiateMultipartUpload', + 'upload' => 'UploadMultipartPart', + 'complete' => 'CompleteMultipartUpload', + ], + 'id' => [ + 'account_id' => 'accountId', + 'vault_name' => 'vaultName', + 'upload_id' => 'uploadId', + ], + 'part_num' => 'range', + ]; + } + + protected function determinePartSize() + { + // Make sure the part size is set. + $partSize = $this->config['part_size'] ?: self::PART_MIN_SIZE; + + // Ensure that the part size is valid. + if (!in_array($partSize, self::$validPartSizes)) { + throw new \InvalidArgumentException('The part_size must be a power ' + . 'of 2, in megabytes, such that 1 MB <= PART_SIZE <= 4 GB.'); + } + + return $partSize; + } + + protected function createPart($seekable, $number) + { + $data = []; + $firstByte = $this->source->tell(); + + // Read from the source to create the body stream. This also + // calculates the linear and tree hashes as the data is read. + if ($seekable) { + // Case 1: Stream is seekable, can make stream from new handle. + $body = Psr7\try_fopen($this->source->getMetadata('uri'), 'r'); + $body = $this->limitPartStream(Psr7\stream_for($body)); + // Create another stream decorated with hashing streams and read + // through it, so we can get the hash values for the part. + $decoratedBody = $this->decorateWithHashes($body, $data); + while (!$decoratedBody->eof()) $decoratedBody->read(1048576); + // Seek the original source forward to the end of the range. + $this->source->seek($this->source->tell() + $body->getSize()); + } else { + // Case 2: Stream is not seekable, must store part in temp stream. + $source = $this->limitPartStream($this->source); + $source = $this->decorateWithHashes($source, $data); + $body = Psr7\stream_for(); + Psr7\copy_to_stream($source, $body); + } + + // Do not create a part if the body size is zero. + if ($body->getSize() === 0) { + return false; + } + + $body->seek(0); + $data['body'] = $body; + $lastByte = $this->source->tell() - 1; + $data['range'] = "bytes {$firstByte}-{$lastByte}/*"; + + return $data; + } + + protected function handleResult(CommandInterface $command, ResultInterface $result) + { + list($rangeIndex, $rangeSize) = $this->parseRange( + $command['range'], + $this->state->getPartSize() + ); + + $this->state->markPartAsUploaded($rangeIndex, [ + 'size' => $rangeSize, + 'checksum' => $command['checksum'] + ]); + } + + protected function getInitiateParams() + { + $params = ['partSize' => $this->state->getPartSize()]; + if (isset($this->config['archive_description'])) { + $params['archiveDescription'] = $this->config['archive_description']; + } + + return $params; + } + + protected function getCompleteParams() + { + $treeHash = new TreeHash(); + $archiveSize = 0; + foreach ($this->state->getUploadedParts() as $part) { + $archiveSize += $part['size']; + $treeHash->addChecksum($part['checksum']); + } + + return [ + 'archiveSize' => $archiveSize, + 'checksum' => bin2hex($treeHash->complete()), + ]; + } + + /** + * Decorates a stream with a tree AND linear sha256 hashing stream. + * + * @param Stream $stream Stream to decorate. + * @param array $data Data bag that results are injected into. + * + * @return Stream + */ + private function decorateWithHashes(Stream $stream, array &$data) + { + // Make sure that a tree hash is calculated. + $stream = new HashingStream($stream, new TreeHash(), + function ($result) use (&$data) { + $data['checksum'] = bin2hex($result); + } + ); + + // Make sure that a linear SHA256 hash is calculated. + $stream = new HashingStream($stream, new PhpHash('sha256'), + function ($result) use (&$data) { + $data['ContentSHA256'] = bin2hex($result); + } + ); + + return $stream; + } + + /** + * Parses a Glacier range string into a size and part number. + * + * @param string $range Glacier range string (e.g., "bytes 5-5000/*") + * @param int $partSize The chosen part size + * + * @return array + */ + private static function parseRange($range, $partSize) + { + // Strip away the prefix and suffix. + if (strpos($range, 'bytes') !== false) { + $range = substr($range, 6, -2); + } + + // Split that range into it's parts. + list($firstByte, $lastByte) = explode('-', $range); + + // Calculate and return range index and range size + return [ + intval($firstByte / $partSize) + 1, + $lastByte - $firstByte + 1, + ]; + } +} diff --git a/lib/aws-sdk/Aws/Glacier/Resources/glacier-2012-06-01.php b/lib/aws-sdk/Aws/Glacier/Resources/glacier-2012-06-01.php deleted file mode 100644 index ae680bf..0000000 --- a/lib/aws-sdk/Aws/Glacier/Resources/glacier-2012-06-01.php +++ /dev/null @@ -1,1713 +0,0 @@ - '2012-06-01', - 'endpointPrefix' => 'glacier', - 'serviceFullName' => 'Amazon Glacier', - 'serviceType' => 'rest-json', - 'signatureVersion' => 'v4', - 'namespace' => 'Glacier', - 'regions' => array( - 'us-east-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'glacier.us-east-1.amazonaws.com', - ), - 'us-west-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'glacier.us-west-1.amazonaws.com', - ), - 'us-west-2' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'glacier.us-west-2.amazonaws.com', - ), - 'eu-west-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'glacier.eu-west-1.amazonaws.com', - ), - 'ap-southeast-2' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'glacier.ap-southeast-2.amazonaws.com', - ), - 'ap-northeast-1' => array( - 'http' => true, - '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( - 'httpMethod' => 'DELETE', - 'uri' => '/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}', - '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', - ), - 'uploadId' => 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', - ), - ), - ), - 'CompleteMultipartUpload' => array( - 'httpMethod' => 'POST', - 'uri' => '/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'ArchiveCreationOutput', - 'responseType' => 'model', - 'parameters' => array( - 'accountId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'vaultName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'uploadId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'archiveSize' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-archive-size', - ), - 'checksum' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-sha256-tree-hash', - ), - ), - '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', - ), - ), - ), - 'CreateVault' => array( - 'httpMethod' => 'PUT', - 'uri' => '/{accountId}/vaults/{vaultName}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'CreateVaultOutput', - '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 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', - ), - array( - 'reason' => 'Returned if the request results in a vault or account limit being exceeded.', - 'class' => 'LimitExceededException', - ), - ), - ), - 'DeleteArchive' => array( - 'httpMethod' => 'DELETE', - 'uri' => '/{accountId}/vaults/{vaultName}/archives/{archiveId}', - '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', - ), - 'archiveId' => 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', - ), - ), - ), - 'DeleteVault' => array( - 'httpMethod' => 'DELETE', - 'uri' => '/{accountId}/vaults/{vaultName}', - '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', - ), - ), - ), - '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', - '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', - ), - ), - ), - 'DescribeJob' => array( - 'httpMethod' => 'GET', - 'uri' => '/{accountId}/vaults/{vaultName}/jobs/{jobId}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'GlacierJobDescription', - 'responseType' => 'model', - 'parameters' => array( - 'accountId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'vaultName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'jobId' => 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', - ), - ), - ), - 'DescribeVault' => array( - 'httpMethod' => 'GET', - 'uri' => '/{accountId}/vaults/{vaultName}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'DescribeVaultOutput', - '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', - ), - ), - ), - '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', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'GetJobOutputOutput', - 'responseType' => 'model', - 'parameters' => array( - 'accountId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'vaultName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'jobId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'range' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Range', - ), - 'saveAs' => array( - 'location' => 'response_body', - ), - ), - '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', - ), - ), - ), - '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', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'GetVaultNotificationsOutput', - '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', - ), - ), - ), - 'InitiateJob' => array( - 'httpMethod' => 'POST', - 'uri' => '/{accountId}/vaults/{vaultName}/jobs', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'InitiateJobOutput', - 'responseType' => 'model', - 'parameters' => array( - 'accountId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'vaultName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'Format' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Type' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'ArchiveId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Description' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'SNSTopic' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'RetrievalByteRange' => 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', - ), - 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', - ), - ), - ), - 'InitiateMultipartUpload' => array( - 'httpMethod' => 'POST', - 'uri' => '/{accountId}/vaults/{vaultName}/multipart-uploads', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'InitiateMultipartUploadOutput', - 'responseType' => 'model', - 'parameters' => array( - 'accountId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'vaultName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'archiveDescription' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-archive-description', - ), - 'partSize' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-part-size', - ), - ), - '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', - ), - ), - ), - 'ListJobs' => array( - 'httpMethod' => 'GET', - 'uri' => '/{accountId}/vaults/{vaultName}/jobs', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'ListJobsOutput', - 'responseType' => 'model', - 'parameters' => array( - 'accountId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'vaultName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'limit' => array( - 'type' => 'string', - 'location' => 'query', - ), - 'marker' => array( - 'type' => 'string', - 'location' => 'query', - ), - 'statuscode' => array( - 'type' => 'string', - 'location' => 'query', - ), - 'completed' => array( - 'type' => 'string', - 'location' => 'query', - ), - ), - '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', - ), - ), - ), - 'ListMultipartUploads' => array( - 'httpMethod' => 'GET', - 'uri' => '/{accountId}/vaults/{vaultName}/multipart-uploads', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'ListMultipartUploadsOutput', - 'responseType' => 'model', - 'parameters' => array( - 'accountId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'vaultName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'limit' => array( - 'type' => 'string', - 'location' => 'query', - ), - 'marker' => array( - 'type' => 'string', - 'location' => 'query', - ), - ), - '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', - ), - ), - ), - 'ListParts' => array( - 'httpMethod' => 'GET', - 'uri' => '/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'ListPartsOutput', - 'responseType' => 'model', - 'parameters' => array( - 'accountId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'vaultName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'uploadId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'marker' => array( - 'type' => 'string', - 'location' => 'query', - ), - 'limit' => array( - 'type' => 'string', - 'location' => 'query', - ), - ), - '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', - ), - ), - ), - 'ListVaults' => array( - 'httpMethod' => 'GET', - 'uri' => '/{accountId}/vaults', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'ListVaultsOutput', - 'responseType' => 'model', - 'parameters' => array( - 'accountId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'marker' => array( - 'type' => 'string', - 'location' => 'query', - ), - 'limit' => array( - 'type' => 'string', - 'location' => 'query', - ), - ), - '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', - ), - ), - ), - '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', - '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', - ), - 'SNSTopic' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Events' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'string', - '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 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', - ), - ), - ), - 'UploadArchive' => array( - 'httpMethod' => 'POST', - 'uri' => '/{accountId}/vaults/{vaultName}/archives', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'ArchiveCreationOutput', - 'responseType' => 'model', - 'parameters' => array( - 'vaultName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'accountId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'archiveDescription' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-archive-description', - ), - 'checksum' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-sha256-tree-hash', - ), - 'body' => array( - 'type' => array( - 'string', - 'object', - ), - 'location' => 'body', - ), - 'ContentSHA256' => array( - 'default' => true, - ), - ), - '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, when uploading an archive, Amazon Glacier times out while receiving the upload.', - 'class' => 'RequestTimeoutException', - ), - array( - 'reason' => 'Returned if the service cannot complete the request.', - 'class' => 'ServiceUnavailableException', - ), - ), - ), - 'UploadMultipartPart' => array( - 'httpMethod' => 'PUT', - 'uri' => '/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}', - 'class' => 'Guzzle\\Service\\Command\\OperationCommand', - 'responseClass' => 'UploadMultipartPartOutput', - 'responseType' => 'model', - 'parameters' => array( - 'accountId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'vaultName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'uploadId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'checksum' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-sha256-tree-hash', - ), - 'range' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Content-Range', - ), - 'body' => array( - 'type' => array( - 'string', - 'object', - ), - 'location' => 'body', - ), - 'ContentSHA256' => array( - 'default' => true, - ), - ), - '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, when uploading an archive, Amazon Glacier times out while receiving the upload.', - 'class' => 'RequestTimeoutException', - ), - array( - 'reason' => 'Returned if the service cannot complete the request.', - 'class' => 'ServiceUnavailableException', - ), - ), - ), - ), - 'models' => array( - 'EmptyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), - 'ArchiveCreationOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'location' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Location', - ), - 'checksum' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-sha256-tree-hash', - ), - 'archiveId' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-archive-id', - ), - ), - ), - 'CreateVaultOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'location' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Location', - ), - ), - ), - 'GlacierJobDescription' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'JobId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'JobDescription' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Action' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'ArchiveId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'VaultARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'CreationDate' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Completed' => array( - 'type' => 'boolean', - 'location' => 'json', - ), - 'StatusCode' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'StatusMessage' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'ArchiveSizeInBytes' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'InventorySizeInBytes' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'SNSTopic' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'CompletionDate' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'SHA256TreeHash' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'ArchiveSHA256TreeHash' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'RetrievalByteRange' => 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( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'VaultARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'VaultName' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'CreationDate' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'LastInventoryDate' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'NumberOfArchives' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'SizeInBytes' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - ), - ), - '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, - 'properties' => array( - 'body' => array( - 'type' => 'string', - 'instanceOf' => 'Guzzle\\Http\\EntityBody', - 'location' => 'body', - ), - 'checksum' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-sha256-tree-hash', - ), - 'status' => array( - 'type' => 'numeric', - 'location' => 'statusCode', - ), - 'contentRange' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Content-Range', - ), - 'acceptRanges' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Accept-Ranges', - ), - 'contentType' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Content-Type', - ), - 'archiveDescription' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-archive-description', - ), - ), - ), - 'GetVaultAccessPolicyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Policy' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'GetVaultNotificationsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'SNSTopic' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Events' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'string', - 'type' => 'string', - ), - ), - ), - ), - 'InitiateJobOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'location' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Location', - ), - 'jobId' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-job-id', - ), - ), - ), - 'InitiateMultipartUploadOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'location' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Location', - ), - 'uploadId' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-multipart-upload-id', - ), - ), - ), - 'ListJobsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'JobList' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'GlacierJobDescription', - 'type' => 'object', - 'properties' => array( - 'JobId' => array( - 'type' => 'string', - ), - 'JobDescription' => array( - 'type' => 'string', - ), - 'Action' => array( - 'type' => 'string', - ), - 'ArchiveId' => array( - 'type' => 'string', - ), - 'VaultARN' => array( - 'type' => 'string', - ), - 'CreationDate' => array( - 'type' => 'string', - ), - 'Completed' => array( - 'type' => 'boolean', - ), - 'StatusCode' => array( - 'type' => 'string', - ), - 'StatusMessage' => array( - 'type' => 'string', - ), - 'ArchiveSizeInBytes' => array( - 'type' => 'numeric', - ), - 'InventorySizeInBytes' => array( - 'type' => 'numeric', - ), - 'SNSTopic' => array( - 'type' => 'string', - ), - 'CompletionDate' => array( - 'type' => 'string', - ), - 'SHA256TreeHash' => array( - 'type' => 'string', - ), - 'ArchiveSHA256TreeHash' => array( - 'type' => 'string', - ), - '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', - ), - ), - ), - ), - ), - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'ListMultipartUploadsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'UploadsList' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'UploadListElement', - 'type' => 'object', - 'properties' => array( - 'MultipartUploadId' => array( - 'type' => 'string', - ), - 'VaultARN' => array( - 'type' => 'string', - ), - 'ArchiveDescription' => array( - 'type' => 'string', - ), - 'PartSizeInBytes' => array( - 'type' => 'numeric', - ), - 'CreationDate' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'ListPartsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'MultipartUploadId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'VaultARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'ArchiveDescription' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'PartSizeInBytes' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'CreationDate' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Parts' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'PartListElement', - 'type' => 'object', - 'properties' => array( - 'RangeInBytes' => array( - 'type' => 'string', - ), - 'SHA256TreeHash' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'ListVaultsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'VaultList' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'DescribeVaultOutput', - 'type' => 'object', - 'properties' => array( - 'VaultARN' => array( - 'type' => 'string', - ), - 'VaultName' => array( - 'type' => 'string', - ), - 'CreationDate' => array( - 'type' => 'string', - ), - 'LastInventoryDate' => array( - 'type' => 'string', - ), - 'NumberOfArchives' => array( - 'type' => 'numeric', - ), - 'SizeInBytes' => array( - 'type' => 'numeric', - ), - ), - ), - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'UploadMultipartPartOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'checksum' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-sha256-tree-hash', - ), - ), - ), - ), - '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, - 'max_attempts' => 15, - ), - '__VaultState' => array( - 'operation' => 'DescribeVault', - ), - 'VaultExists' => array( - 'extends' => '__VaultState', - 'success.type' => 'output', - 'ignore_errors' => array( - 'ResourceNotFoundException', - ), - ), - 'VaultNotExists' => array( - 'extends' => '__VaultState', - 'success.type' => 'error', - 'success.value' => 'ResourceNotFoundException', - ), - ), -); diff --git a/lib/aws-sdk/Aws/Glacier/TreeHash.php b/lib/aws-sdk/Aws/Glacier/TreeHash.php new file mode 100644 index 0000000..2a51390 --- /dev/null +++ b/lib/aws-sdk/Aws/Glacier/TreeHash.php @@ -0,0 +1,118 @@ +algorithm = $algorithm; + $this->reset(); + } + + /** + * {@inheritdoc} + * @throws \LogicException if the root tree hash is already calculated + */ + public function update($data) + { + // Error if hash is already calculated. + if ($this->hash) { + throw new \LogicException('You may not add more data to a ' + . 'complete tree hash.'); + } + + // Buffer incoming data. + $this->buffer .= $data; + + // When there is more than a MB of data, create a checksum. + while (strlen($this->buffer) >= self::MB) { + $data = substr($this->buffer, 0, self::MB); + $this->buffer = substr($this->buffer, self::MB) ?: ''; + $this->checksums[] = hash($this->algorithm, $data, true); + } + + return $this; + } + + /** + * Add a checksum to the tree hash directly + * + * @param string $checksum The checksum to add + * @param bool $inBinaryForm TRUE if checksum is in binary form + * + * @return self + * @throws \LogicException if the root tree hash is already calculated + */ + public function addChecksum($checksum, $inBinaryForm = false) + { + // Error if hash is already calculated + if ($this->hash) { + throw new \LogicException('You may not add more checksums to a ' + . 'complete tree hash.'); + } + + // Convert the checksum to binary form if necessary + $this->checksums[] = $inBinaryForm ? $checksum : hex2bin($checksum); + + return $this; + } + + public function complete() + { + if (!$this->hash) { + // Clear out the remaining buffer. + if ($this->buffer) { + $this->checksums[] = hash($this->algorithm, $this->buffer, true); + $this->buffer = ''; + } + + // If no hashes, add the EMPTY_HASH. + if (!$this->checksums) { + $this->checksums[] = hex2bin(self::EMPTY_HASH); + } + + // Perform hashes up the tree to arrive at the root checksum. + $hashes = $this->checksums; + while (count($hashes) > 1) { + $sets = array_chunk($hashes, 2); + $hashes = array(); + foreach ($sets as $set) { + $hashes[] = (count($set) === 1) + ? $set[0] + : hash($this->algorithm, $set[0] . $set[1], true); + } + } + + $this->hash = $hashes[0]; + } + + return $this->hash; + } + + public function reset() + { + $this->hash = null; + $this->checksums = []; + $this->buffer = ''; + } +} diff --git a/lib/aws-sdk/Aws/Handler/GuzzleV5/GuzzleHandler.php b/lib/aws-sdk/Aws/Handler/GuzzleV5/GuzzleHandler.php new file mode 100644 index 0000000..6816bf4 --- /dev/null +++ b/lib/aws-sdk/Aws/Handler/GuzzleV5/GuzzleHandler.php @@ -0,0 +1,179 @@ + true, + 'verify' => true, + 'timeout' => true, + 'debug' => true, + 'connect_timeout' => true, + 'stream' => true, + 'delay' => true, + 'sink' => true, + ]; + + /** @var ClientInterface */ + private $client; + + /** + * @param ClientInterface $client + */ + public function __construct(ClientInterface $client = null) + { + $this->client = $client ?: new Client(); + } + + /** + * @param Psr7Request $request + * @param array $options + * + * @return Promise\Promise + */ + public function __invoke(Psr7Request $request, array $options = []) + { + // Create and send a Guzzle 5 request + $guzzlePromise = $this->client->send( + $this->createGuzzleRequest($request, $options) + ); + + $promise = new Promise\Promise( + function () use ($guzzlePromise) { + try { + $guzzlePromise->wait(); + } catch (\Exception $e) { + // The promise is already delivered when the exception is + // thrown, so don't rethrow it. + } + }, + [$guzzlePromise, 'cancel'] + ); + + $guzzlePromise->then([$promise, 'resolve'], [$promise, 'reject']); + + return $promise->then( + function (GuzzleResponse $response) { + // Adapt the Guzzle 5 Future to a Guzzle 6 ResponsePromise. + return $this->createPsr7Response($response); + }, + function (Exception $exception) { + // Reject with information about the error. + return new Promise\RejectedPromise($this->prepareErrorData($exception)); + } + ); + } + + private function createGuzzleRequest(Psr7Request $psrRequest, array $options) + { + $ringConfig = []; + + // Remove unsupported options. + foreach (array_keys($options) as $key) { + if (isset(self::$validOptions[$key])) { + unset($options['key']); + } + } + + // Handle delay option. + if (isset($options['delay'])) { + $ringConfig['delay'] = $options['delay']; + unset($options['delay']); + } + + // Prepare sink option. + if (isset($options['sink'])) { + $ringConfig['save_to'] = ($options['sink'] instanceof Psr7StreamInterface) + ? new GuzzleStream($options['sink']) + : $options['sink']; + unset($options['sink']); + } + + // Ensure that all requests are async and lazy like Guzzle 6. + $options['future'] = 'lazy'; + + // Create the Guzzle 5 request from the provided PSR7 request. + $request = $this->client->createRequest( + $psrRequest->getMethod(), + $psrRequest->getUri(), + $options + ); + + // For the request body, adapt the PSR stream to a Guzzle stream. + $body = $psrRequest->getBody(); + if ($body->getSize() === 0) { + $request->setBody(null); + } else { + $request->setBody(new GuzzleStream($body)); + } + + $request->setHeaders($psrRequest->getHeaders()); + $request->setHeader( + 'User-Agent', + 'aws-sdk-php/' . Sdk::VERSION . ' ' . Client::getDefaultUserAgent() + ); + + // Make sure the delay is configured, if provided. + if ($ringConfig) { + foreach ($ringConfig as $k => $v) { + $request->getConfig()->set($k, $v); + } + } + + return $request; + } + + private function createPsr7Response(GuzzleResponse $response) + { + if ($body = $response->getBody()) { + $body = new PsrStream($body); + } + + return new Psr7Response( + $response->getStatusCode(), + $response->getHeaders(), + $body, + $response->getReasonPhrase() + ); + } + + private function prepareErrorData(Exception $e) + { + $error = [ + 'exception' => $e, + 'connection_error' => false, + 'response' => null, + ]; + + if ($e instanceof ConnectException) { + $error['connection_error'] = true; + } + + if ($e instanceof RequestException && $e->getResponse()) { + $error['response'] = $this->createPsr7Response($e->getResponse()); + } + + return $error; + } +} diff --git a/lib/aws-sdk/Aws/Handler/GuzzleV5/GuzzleStream.php b/lib/aws-sdk/Aws/Handler/GuzzleV5/GuzzleStream.php new file mode 100644 index 0000000..5de00b5 --- /dev/null +++ b/lib/aws-sdk/Aws/Handler/GuzzleV5/GuzzleStream.php @@ -0,0 +1,24 @@ +stream = $stream; + } +} diff --git a/lib/aws-sdk/Aws/Handler/GuzzleV5/PsrStream.php b/lib/aws-sdk/Aws/Handler/GuzzleV5/PsrStream.php new file mode 100644 index 0000000..cc07613 --- /dev/null +++ b/lib/aws-sdk/Aws/Handler/GuzzleV5/PsrStream.php @@ -0,0 +1,34 @@ +stream = $stream; + } + + public function rewind() + { + $this->stream->seek(0); + } + + public function getContents() + { + return $this->stream->getContents(); + } +} diff --git a/lib/aws-sdk/Aws/Handler/GuzzleV6/GuzzleHandler.php b/lib/aws-sdk/Aws/Handler/GuzzleV6/GuzzleHandler.php new file mode 100644 index 0000000..5c24f67 --- /dev/null +++ b/lib/aws-sdk/Aws/Handler/GuzzleV6/GuzzleHandler.php @@ -0,0 +1,58 @@ +client = $client ?: new Client(); + } + + /** + * @param Psr7Request $request + * @param array $options + * + * @return Promise\Promise + */ + public function __invoke(Psr7Request $request, array $options = []) + { + $request = $request->withHeader( + 'User-Agent', + 'aws-sdk-php/' . Sdk::VERSION . ' ' . \GuzzleHttp\default_user_agent() + ); + + return $this->client->sendAsync($request, $options)->otherwise( + static function (\Exception $e) { + $error = [ + 'exception' => $e, + 'connection_error' => $e instanceof ConnectException, + 'response' => null, + ]; + + if ($e instanceof RequestException && $e->getResponse()) { + $error['response'] = $e->getResponse(); + } + + return new Promise\RejectedPromise($error); + } + ); + } +} diff --git a/lib/aws-sdk/Aws/HandlerList.php b/lib/aws-sdk/Aws/HandlerList.php new file mode 100644 index 0000000..576d640 --- /dev/null +++ b/lib/aws-sdk/Aws/HandlerList.php @@ -0,0 +1,424 @@ + [], + self::BUILD => [], + self::VALIDATE => [], + self::INIT => [], + ]; + + /** + * @param callable $handler HTTP handler. + */ + public function __construct(callable $handler = null) + { + $this->handler = $handler; + } + + /** + * Dumps a string representation of the list. + * + * @return string + */ + public function __toString() + { + $str = ''; + $i = 0; + + foreach (array_reverse($this->steps) as $k => $step) { + foreach (array_reverse($step) as $j => $tuple) { + $str .= "{$i}) Step: {$k}, "; + if ($tuple[1]) { + $str .= "Name: {$tuple[1]}, "; + } + $str .= "Function: " . $this->debugCallable($tuple[0]) . "\n"; + $i++; + } + } + + if ($this->handler) { + $str .= "{$i}) Handler: " . $this->debugCallable($this->handler) . "\n"; + } + + return $str; + } + + /** + * Set the HTTP handler that actually returns a response. + * + * @param callable $handler Function that accepts a request and array of + * options and returns a Promise. + */ + public function setHandler(callable $handler) + { + $this->handler = $handler; + } + + /** + * Returns true if the builder has a handler. + * + * @return bool + */ + public function hasHandler() + { + return (bool) $this->handler; + } + + /** + * Append a middleware to the init step. + * + * @param callable $middleware Middleware function to add. + * @param string $name Name of the middleware. + */ + public function appendInit(callable $middleware, $name = null) + { + $this->add(self::INIT, $name, $middleware); + } + + /** + * Prepend a middleware to the init step. + * + * @param callable $middleware Middleware function to add. + * @param string $name Name of the middleware. + */ + public function prependInit(callable $middleware, $name = null) + { + $this->add(self::INIT, $name, $middleware, true); + } + + /** + * Append a middleware to the validate step. + * + * @param callable $middleware Middleware function to add. + * @param string $name Name of the middleware. + */ + public function appendValidate(callable $middleware, $name = null) + { + $this->add(self::VALIDATE, $name, $middleware); + } + + /** + * Prepend a middleware to the validate step. + * + * @param callable $middleware Middleware function to add. + * @param string $name Name of the middleware. + */ + public function prependValidate(callable $middleware, $name = null) + { + $this->add(self::VALIDATE, $name, $middleware, true); + } + + /** + * Append a middleware to the build step. + * + * @param callable $middleware Middleware function to add. + * @param string $name Name of the middleware. + */ + public function appendBuild(callable $middleware, $name = null) + { + $this->add(self::BUILD, $name, $middleware); + } + + /** + * Prepend a middleware to the build step. + * + * @param callable $middleware Middleware function to add. + * @param string $name Name of the middleware. + */ + public function prependBuild(callable $middleware, $name = null) + { + $this->add(self::BUILD, $name, $middleware, true); + } + + /** + * Append a middleware to the sign step. + * + * @param callable $middleware Middleware function to add. + * @param string $name Name of the middleware. + */ + public function appendSign(callable $middleware, $name = null) + { + $this->add(self::SIGN, $name, $middleware); + } + + /** + * Prepend a middleware to the sign step. + * + * @param callable $middleware Middleware function to add. + * @param string $name Name of the middleware. + */ + public function prependSign(callable $middleware, $name = null) + { + $this->add(self::SIGN, $name, $middleware, true); + } + + /** + * Add a middleware before the given middleware by name. + * + * @param string|callable $findName Add before this + * @param string $withName Optional name to give the middleware + * @param callable $middleware Middleware to add. + */ + public function before($findName, $withName, callable $middleware) + { + $this->splice($findName, $withName, $middleware, true); + } + + /** + * Add a middleware after the given middleware by name. + * + * @param string|callable $findName Add after this + * @param string $withName Optional name to give the middleware + * @param callable $middleware Middleware to add. + */ + public function after($findName, $withName, callable $middleware) + { + $this->splice($findName, $withName, $middleware, false); + } + + /** + * Remove a middleware by name or by instance from the list. + * + * @param string|callable $nameOrInstance Middleware to remove. + */ + public function remove($nameOrInstance) + { + if (is_callable($nameOrInstance)) { + $this->removeByInstance($nameOrInstance); + } elseif (is_string($nameOrInstance)) { + $this->removeByName($nameOrInstance); + } + } + + /** + * Interpose a function between each middleware (e.g., allowing for a trace + * through the middleware layers). + * + * The interpose function is a function that accepts a "step" argument as a + * string and a "name" argument string. This function must then return a + * function that accepts the next handler in the list. This function must + * then return a function that accepts a CommandInterface and optional + * RequestInterface and returns a promise that is fulfilled with an + * Aws\ResultInterface or rejected with an Aws\Exception\AwsException + * object. + * + * @param callable|null $fn Pass null to remove any previously set function + */ + public function interpose(callable $fn = null) + { + $this->sorted = null; + $this->interposeFn = $fn; + } + + /** + * Compose the middleware and handler into a single callable function. + * + * @return callable + */ + public function resolve() + { + if (!($prev = $this->handler)) { + throw new \LogicException('No handler has been specified'); + } + + if ($this->sorted === null) { + $this->sortMiddleware(); + } + + foreach ($this->sorted as $fn) { + $prev = $fn($prev); + } + + return $prev; + } + + public function count() + { + return count($this->steps[self::INIT]) + + count($this->steps[self::VALIDATE]) + + count($this->steps[self::BUILD]) + + count($this->steps[self::SIGN]); + } + + /** + * Splices a function into the middleware list at a specific position. + * + * @param $findName + * @param $withName + * @param callable $middleware + * @param $before + */ + private function splice($findName, $withName, callable $middleware, $before) + { + if (!isset($this->named[$findName])) { + throw new \InvalidArgumentException("$findName not found"); + } + + $idx = $this->sorted = null; + $step = $this->named[$findName]; + + if ($withName) { + $this->named[$withName] = $step; + } + + foreach ($this->steps[$step] as $i => $tuple) { + if ($tuple[1] === $findName) { + $idx = $i; + break; + } + } + + $replacement = $before + ? [$this->steps[$step][$idx], [$middleware, $withName]] + : [[$middleware, $withName], $this->steps[$step][$idx]]; + array_splice($this->steps[$step], $idx, 1, $replacement); + } + + /** + * Provides a debug string for a given callable. + * + * @param array|callable $fn Function to write as a string. + * + * @return string + */ + private function debugCallable($fn) + { + if (is_string($fn)) { + return "callable({$fn})"; + } elseif (is_array($fn)) { + $ele = is_string($fn[0]) ? $fn[0] : get_class($fn[0]); + return "callable(['{$ele}', '{$fn[1]}'])"; + } else { + return 'callable(' . spl_object_hash($fn) . ')'; + } + } + + /** + * Sort the middleware, and interpose if needed in the sorted list. + */ + private function sortMiddleware() + { + $this->sorted = []; + + if (!$this->interposeFn) { + foreach ($this->steps as $step) { + foreach ($step as $fn) { + $this->sorted[] = $fn[0]; + } + } + return; + } + + $ifn = $this->interposeFn; + // Interpose the interposeFn into the handler stack. + foreach ($this->steps as $stepName => $step) { + foreach ($step as $fn) { + $this->sorted[] = $ifn($stepName, $fn[1]); + $this->sorted[] = $fn[0]; + } + } + } + + private function removeByName($name) + { + if (!isset($this->named[$name])) { + return; + } + + $this->sorted = null; + $step = $this->named[$name]; + $this->steps[$step] = array_values( + array_filter( + $this->steps[$step], + function ($tuple) use ($name) { + return $tuple[1] !== $name; + } + ) + ); + } + + private function removeByInstance(callable $fn) + { + foreach ($this->steps as $k => $step) { + foreach ($step as $j => $tuple) { + if ($tuple[0] === $fn) { + $this->sorted = null; + unset($this->named[$this->steps[$k][$j][1]]); + unset($this->steps[$k][$j]); + } + } + } + } + + /** + * Add a middleware to a step. + * + * @param string $step Middleware step. + * @param string $name Middleware name. + * @param callable $middleware Middleware function to add. + * @param bool $prepend Prepend instead of append. + */ + private function add($step, $name, callable $middleware, $prepend = false) + { + $this->sorted = null; + + if ($prepend) { + $this->steps[$step][] = [$middleware, $name]; + } else { + array_unshift($this->steps[$step], [$middleware, $name]); + } + + if ($name) { + $this->named[$name] = $step; + } + } +} diff --git a/lib/aws-sdk/Aws/HasDataTrait.php b/lib/aws-sdk/Aws/HasDataTrait.php new file mode 100644 index 0000000..a2ff2df --- /dev/null +++ b/lib/aws-sdk/Aws/HasDataTrait.php @@ -0,0 +1,60 @@ +data); + } + + /** + * This method returns a reference to the variable to allow for indirect + * array modification (e.g., $foo['bar']['baz'] = 'qux'). + * + * @param $offset + * + * @return mixed|null + */ + public function & offsetGet($offset) + { + if (isset($this->data[$offset])) { + return $this->data[$offset]; + } + + $value = null; + return $value; + } + + public function offsetSet($offset, $value) + { + $this->data[$offset] = $value; + } + + public function offsetExists($offset) + { + return isset($this->data[$offset]); + } + + public function offsetUnset($offset) + { + unset($this->data[$offset]); + } + + public function toArray() + { + return $this->data; + } + + public function count() + { + return count($this->data); + } +} diff --git a/lib/aws-sdk/Aws/HashInterface.php b/lib/aws-sdk/Aws/HashInterface.php new file mode 100644 index 0000000..6304e4d --- /dev/null +++ b/lib/aws-sdk/Aws/HashInterface.php @@ -0,0 +1,27 @@ +stream = $stream; + $this->hash = $hash; + $this->callback = $onComplete; + } + + public function read($length) + { + $data = $this->stream->read($length); + $this->hash->update($data); + if ($this->eof()) { + $result = $this->hash->complete(); + if ($this->callback) { + call_user_func($this->callback, $result); + } + } + + return $data; + } + + public function seek($offset, $whence = SEEK_SET) + { + if ($offset === 0) { + $this->hash->reset(); + return $this->stream->seek($offset); + } else { + // Seeking arbitrarily is not supported. + return false; + } + } +} diff --git a/lib/aws-sdk/Aws/History.php b/lib/aws-sdk/Aws/History.php new file mode 100644 index 0000000..89e278a --- /dev/null +++ b/lib/aws-sdk/Aws/History.php @@ -0,0 +1,152 @@ +maxEntries = $maxEntries; + } + + public function count() + { + return count($this->entries); + } + + public function getIterator() + { + return new \ArrayIterator(array_values($this->entries)); + } + + /** + * Get the last finished command seen by the history container. + * + * @return CommandInterface + * @throws \LogicException if no commands have been seen. + */ + public function getLastCommand() + { + if (!$this->entries) { + throw new \LogicException('No commands received'); + } + + return end($this->entries)['command']; + } + + /** + * Get the last finished request seen by the history container. + * + * @return RequestInterface + * @throws \LogicException if no requests have been seen. + */ + public function getLastRequest() + { + if (!$this->entries) { + throw new \LogicException('No requests received'); + } + + return end($this->entries)['request']; + } + + /** + * Get the last received result or exception. + * + * @return ResultInterface|AwsException + * @throws \LogicException if no return values have been received. + */ + public function getLastReturn() + { + if (!$this->entries) { + throw new \LogicException('No entries'); + } + + $last = end($this->entries); + + if (isset($last['result'])) { + return $last['result']; + } elseif (isset($last['exception'])) { + return $last['exception']; + } else { + throw new \LogicException('No return value for last entry.'); + } + } + + /** + * Initiate an entry being added to the history. + * + * @param CommandInterface $cmd Command be executed. + * @param RequestInterface $req Request being sent. + * + * @return string Returns the ticket used to finish the entry. + */ + public function start(CommandInterface $cmd, RequestInterface $req) + { + $ticket = uniqid(); + $this->entries[$ticket] = [ + 'command' => $cmd, + 'request' => $req, + 'result' => null, + 'exception' => null, + ]; + + return $ticket; + } + + /** + * Finish adding an entry to the history container. + * + * @param string $ticket Ticket returned from the start call. + * @param mixed $result The result (an exception or AwsResult). + */ + public function finish($ticket, $result) + { + if (!isset($this->entries[$ticket])) { + throw new \InvalidArgumentException('Invalid history ticket'); + } elseif (isset($this->entries[$ticket]['result']) + || isset($this->entries[$ticket]['exception']) + ) { + throw new \LogicException('History entry is already finished'); + } + + if ($result instanceof \Exception) { + $this->entries[$ticket]['exception'] = $result; + } else { + $this->entries[$ticket]['result'] = $result; + } + + if (count($this->entries) >= $this->maxEntries) { + $this->entries = array_slice($this->entries, -$this->maxEntries, null, true); + } + } + + /** + * Flush the history + */ + public function clear() + { + $this->entries = []; + } + + /** + * Converts the history to an array. + * + * @return array + */ + public function toArray() + { + return array_values($this->entries); + } +} diff --git a/lib/aws-sdk/Aws/Iam/Enum/AssignmentStatusType.php b/lib/aws-sdk/Aws/Iam/Enum/AssignmentStatusType.php deleted file mode 100644 index c9d1c6a..0000000 --- a/lib/aws-sdk/Aws/Iam/Enum/AssignmentStatusType.php +++ /dev/null @@ -1,29 +0,0 @@ -setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/iam-%s.php' - )) - ->build(); - } -} +class IamClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/Iam/Resources/iam-2010-05-08.php b/lib/aws-sdk/Aws/Iam/Resources/iam-2010-05-08.php deleted file mode 100644 index b7ce5bb..0000000 --- a/lib/aws-sdk/Aws/Iam/Resources/iam-2010-05-08.php +++ /dev/null @@ -1,7357 +0,0 @@ - '2010-05-08', - 'endpointPrefix' => 'iam', - 'serviceFullName' => 'AWS Identity and Access Management', - 'serviceAbbreviation' => 'IAM', - 'serviceType' => 'query', - 'globalEndpoint' => 'iam.amazonaws.com', - 'resultWrapped' => true, - 'signatureVersion' => 'v4', - 'namespace' => 'Iam', - 'regions' => array( - 'us-east-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'iam.amazonaws.com', - ), - 'us-west-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'iam.amazonaws.com', - ), - 'us-west-2' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'iam.amazonaws.com', - ), - 'eu-west-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'iam.amazonaws.com', - ), - 'ap-northeast-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'iam.amazonaws.com', - ), - 'ap-southeast-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'iam.amazonaws.com', - ), - 'ap-southeast-2' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'iam.amazonaws.com', - ), - 'sa-east-1' => array( - 'http' => false, - '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, - 'hostname' => 'iam.us-gov.amazonaws.com', - ), - ), - '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' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'AddRoleToInstanceProfile', - ), - '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 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', - ), - ), - ), - 'AddUserToGroup' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'AddUserToGroup', - ), - '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', - ), - ), - ), - '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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ChangePassword', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'OldPassword' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, - ), - 'NewPassword' => 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 the type of user for the transaction was incorrect.', - 'class' => 'InvalidUserTypeException', - ), - 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 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'CreateAccessKeyResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateAccessKey', - ), - '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', - ), - 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateAccountAlias', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'AccountAlias' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 3, - 'maxLength' => 63, - ), - ), - '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 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'CreateGroupResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateGroup', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'Path' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 512, - ), - 'GroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, - ), - ), - '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 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'CreateInstanceProfileResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateInstanceProfile', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'InstanceProfileName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, - ), - 'Path' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 512, - ), - ), - '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 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'CreateLoginProfileResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateLoginProfile', - ), - '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( - 'required' => true, - '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 attempted to create a resource that already exists.', - 'class' => 'EntityAlreadyExistsException', - ), - 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', - ), - ), - ), - 'CreateOpenIDConnectProvider' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'CreateOpenIDConnectProviderResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateOpenIDConnectProvider', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'Url' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'ClientIDList' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'ClientIDList.member', - 'items' => array( - 'name' => 'clientIDType', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - '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 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', - ), - ), - ), - 'CreatePolicy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'CreatePolicyResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreatePolicy', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'PolicyName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, - ), - 'Path' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'PolicyDocument' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 131072, - ), - '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( - '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', - ), - ), - ), - 'CreateUser' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'CreateUserResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateUser', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'Path' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 512, - ), - 'UserName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 64, - ), - ), - '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 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'CreateVirtualMFADeviceResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateVirtualMFADevice', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'Path' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 512, - ), - 'VirtualMFADeviceName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - ), - ), - '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 processing has failed because of an unknown error, exception or failure.', - 'class' => 'ServiceFailureException', - ), - ), - ), - 'DeactivateMFADevice' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeactivateMFADevice', - ), - '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, - ), - ), - '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 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteAccessKey', - ), - '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, - ), - ), - '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', - ), - ), - ), - 'DeleteAccountAlias' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteAccountAlias', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'AccountAlias' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 3, - 'maxLength' => 63, - ), - ), - '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', - ), - ), - ), - 'DeleteAccountPasswordPolicy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteAccountPasswordPolicy', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - ), - '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', - ), - ), - ), - 'DeleteGroup' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteGroup', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'GroupName' => 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 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', - ), - ), - ), - 'DeleteGroupPolicy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteGroupPolicy', - ), - '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, - ), - ), - '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', - ), - ), - ), - 'DeleteInstanceProfile' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteInstanceProfile', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'InstanceProfileName' => 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 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', - ), - ), - ), - 'DeleteLoginProfile' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteLoginProfile', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'UserName' => 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 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 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', - ), - ), - ), - 'DeleteOpenIDConnectProvider' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteOpenIDConnectProvider', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'OpenIDConnectProviderArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - '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', - ), - ), - ), - 'DeletePolicy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeletePolicy', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - '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 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', - ), - ), - ), - 'DeletePolicyVersion' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeletePolicyVersion', - ), - '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 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', - ), - ), - ), - 'DeleteRole' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteRole', - ), - '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', - ), - 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', - ), - ), - ), - 'DeleteRolePolicy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteRolePolicy', - ), - '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, - ), - ), - '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', - ), - ), - ), - 'DeleteSAMLProvider' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteSAMLProvider', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'SAMLProviderArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - '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', - ), - 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', - ), - ), - ), - 'DeleteServerCertificate' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteServerCertificate', - ), - '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 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', - ), - ), - ), - 'DeleteSigningCertificate' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteSigningCertificate', - ), - '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, - ), - ), - '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', - ), - ), - ), - 'DeleteUser' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteUser', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'UserName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, - ), - ), - '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 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', - ), - ), - ), - 'DeleteUserPolicy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - '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', - ), - ), - ), - 'DeleteVirtualMFADevice' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - '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', - ), - ), - ), - 'DetachGroupPolicy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DetachGroupPolicy', - ), - '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', - ), - ), - ), - 'DetachRolePolicy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DetachRolePolicy', - ), - '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', - ), - ), - ), - 'DetachUserPolicy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DetachUserPolicy', - ), - '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', - ), - ), - ), - 'EnableMFADevice' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'EnableMFADevice', - ), - '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 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', - ), - ), - ), - 'GenerateCredentialReport' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GenerateCredentialReportResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GenerateCredentialReport', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - ), - '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 processing has failed because of an unknown error, exception or failure.', - 'class' => 'ServiceFailureException', - ), - ), - ), - 'GetAccessKeyLastUsed' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetAccessKeyLastUsedResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetAccessKeyLastUsed', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'AccessKeyId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 16, - 'maxLength' => 32, - ), - ), - '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', - ), - ), - ), - 'GetAccountAuthorizationDetails' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetAccountAuthorizationDetailsResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetAccountAuthorizationDetails', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'Filter' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Filter.member', - 'items' => array( - 'name' => 'EntityType', - 'type' => 'string', - ), - ), - 'MaxItems' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 1, - 'maximum' => 1000, - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 320, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', - 'class' => 'ServiceFailureException', - ), - ), - ), - 'GetAccountPasswordPolicy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetAccountPasswordPolicyResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetAccountPasswordPolicy', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - ), - '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', - ), - ), - ), - 'GetAccountSummary' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetAccountSummaryResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetAccountSummary', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', - 'class' => 'ServiceFailureException', - ), - ), - ), - 'GetCredentialReport' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetCredentialReportResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetCredentialReport', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - ), - 'errorResponses' => array( - array( - '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', - ), - ), - ), - 'GetGroup' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetGroupResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetGroup', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'GroupName' => 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', - ), - ), - ), - 'GetGroupPolicy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetGroupPolicyResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetGroupPolicy', - ), - '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, - ), - ), - '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', - ), - ), - ), - 'GetInstanceProfile' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetInstanceProfileResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetInstanceProfile', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'InstanceProfileName' => 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', - ), - ), - ), - 'GetLoginProfile' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetLoginProfileResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetLoginProfile', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'UserName' => 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 processing has failed because of an unknown error, exception or failure.', - 'class' => 'ServiceFailureException', - ), - ), - ), - 'GetOpenIDConnectProvider' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetOpenIDConnectProviderResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetOpenIDConnectProvider', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'OpenIDConnectProviderArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - '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', - ), - ), - ), - 'GetPolicy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetPolicyResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetPolicy', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - '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 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', - ), - ), - ), - 'GetPolicyVersion' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetPolicyVersionResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetPolicyVersion', - ), - '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 processing has failed because of an unknown error, exception or failure.', - 'class' => 'ServiceFailureException', - ), - ), - ), - 'GetRole' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetRoleResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetRole', - ), - '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', - ), - array( - 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', - 'class' => 'ServiceFailureException', - ), - ), - ), - 'GetRolePolicy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetRolePolicyResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetRolePolicy', - ), - '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, - ), - ), - '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', - ), - ), - ), - 'GetSAMLProvider' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetSAMLProviderResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetSAMLProvider', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - '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 processing has failed because of an unknown error, exception or failure.', - 'class' => 'ServiceFailureException', - ), - ), - ), - 'GetServerCertificate' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetServerCertificateResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - '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', - ), - ), - ), - 'GetUser' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetUserResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetUser', - ), - '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', - ), - array( - 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', - 'class' => 'ServiceFailureException', - ), - ), - ), - 'GetUserPolicy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetUserPolicyResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetUserPolicy', - ), - '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 processing has failed because of an unknown error, exception or failure.', - 'class' => 'ServiceFailureException', - ), - ), - ), - 'ListAccessKeys' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListAccessKeysResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListAccessKeys', - ), - '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', - ), - ), - ), - 'ListAccountAliases' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListAccountAliasesResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListAccountAliases', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - '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', - ), - ), - ), - 'ListAttachedGroupPolicies' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListAttachedGroupPoliciesResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListAttachedGroupPolicies', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'GroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, - ), - 'PathPrefix' => 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, - ), - ), - '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' => 'ListAttachedRolePolicies', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'RoleName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 64, - ), - 'PathPrefix' => 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, - ), - ), - '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', - ), - ), - ), - 'ListAttachedUserPolicies' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListAttachedUserPoliciesResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListAttachedUserPolicies', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'UserName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 64, - ), - 'PathPrefix' => 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, - ), - ), - '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', - ), - ), - ), - 'ListEntitiesForPolicy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListEntitiesForPolicyResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListEntitiesForPolicy', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'PolicyArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 20, - 'maxLength' => 2048, - ), - 'EntityFilter' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - '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 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', - ), - ), - ), - 'ListGroupPolicies' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListGroupPoliciesResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListGroupPolicies', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'GroupName' => 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListGroupsResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListGroups', - ), - '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', - ), - ), - ), - 'ListGroupsForUser' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListGroupsForUserResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListGroupsForUser', - ), - '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', - ), - ), - ), - 'ListInstanceProfiles' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListInstanceProfilesResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListInstanceProfiles', - ), - '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', - ), - ), - ), - 'ListInstanceProfilesForRole' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListInstanceProfilesForRoleResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListInstanceProfilesForRole', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'RoleName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 64, - ), - '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', - ), - ), - ), - 'ListMFADevices' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListMFADevicesResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListMFADevices', - ), - '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', - ), - ), - ), - 'ListOpenIDConnectProviders' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListOpenIDConnectProvidersResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListOpenIDConnectProviders', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', - 'class' => 'ServiceFailureException', - ), - ), - ), - 'ListPolicies' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListPoliciesResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListPolicies', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'Scope' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - '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' => 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', - ), - ), - ), - 'ListPolicyVersions' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListPolicyVersionsResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListPolicyVersions', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'PolicyArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 20, - 'maxLength' => 2048, - ), - '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 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', - ), - ), - ), - 'ListRolePolicies' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListRolePoliciesResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListRolePolicies', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'RoleName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 64, - ), - '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', - ), - ), - ), - 'ListRoles' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListRolesResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListRoles', - ), - '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', - ), - ), - ), - 'ListSAMLProviders' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListSAMLProvidersResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListSAMLProviders', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The request processing has failed because of an unknown error, exception or failure.', - 'class' => 'ServiceFailureException', - ), - ), - ), - 'ListServerCertificates' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListServerCertificatesResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListServerCertificates', - ), - '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', - ), - ), - ), - '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, - 'maxLength' => 128, - ), - 'CertificateBody' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 16384, - ), - 'PrivateKey' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 16384, - ), - 'CertificateChain' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 2097152, - ), - ), - '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 certificate was malformed or expired. The error message describes the specific error.', - 'class' => 'MalformedCertificateException', - ), - 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'UploadSigningCertificateResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'UploadSigningCertificate', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-05-08', - ), - 'UserName' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 128, - ), - 'CertificateBody' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 16384, - ), - ), - '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 certificate was malformed or expired. The error message describes the specific error.', - 'class' => 'MalformedCertificateException', - ), - array( - 'reason' => 'The request was rejected because the certificate is invalid.', - 'class' => 'InvalidCertificateException', - ), - array( - 'reason' => 'The request was rejected because the same certificate is associated to another user under the account.', - 'class' => 'DuplicateCertificateException', - ), - 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', - ), - ), - ), - ), - 'models' => array( - 'EmptyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), - 'CreateAccessKeyResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'AccessKey' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'UserName' => array( - 'type' => 'string', - ), - 'AccessKeyId' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'SecretAccessKey' => array( - 'type' => 'string', - ), - 'CreateDate' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'CreateGroupResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Group' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Path' => array( - 'type' => 'string', - ), - 'GroupName' => array( - 'type' => 'string', - ), - 'GroupId' => array( - 'type' => 'string', - ), - 'Arn' => array( - 'type' => 'string', - ), - 'CreateDate' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - '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( - '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', - ), - ), - ), - ), - ), - 'CreatePolicyVersionResponse' => 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', - ), - ), - ), - ), - ), - 'CreateRoleResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Role' => array( - 'type' => 'object', - 'location' => 'xml', - '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', - ), - ), - ), - ), - ), - 'CreateSAMLProviderResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'SAMLProviderArn' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'CreateUserResponse' => 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', - ), - ), - ), - ), - ), - 'CreateVirtualMFADeviceResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'VirtualMFADevice' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'SerialNumber' => array( - 'type' => 'string', - ), - 'Base32StringSeed' => array( - 'type' => 'string', - ), - 'QRCodePNG' => array( - 'type' => 'string', - ), - 'User' => array( - 'type' => 'object', - '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', - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - ), - '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( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'PasswordPolicy' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'MinimumPasswordLength' => array( - 'type' => 'numeric', - ), - 'RequireSymbols' => array( - 'type' => 'boolean', - ), - 'RequireNumbers' => array( - 'type' => 'boolean', - ), - 'RequireUppercaseCharacters' => array( - 'type' => 'boolean', - ), - 'RequireLowercaseCharacters' => array( - 'type' => 'boolean', - ), - 'AllowUsersToChangePassword' => array( - 'type' => 'boolean', - ), - 'ExpirePasswords' => array( - 'type' => 'boolean', - ), - 'MaxPasswordAge' => array( - 'type' => 'numeric', - ), - 'PasswordReusePrevention' => array( - 'type' => 'numeric', - ), - 'HardExpiry' => array( - 'type' => 'boolean', - ), - ), - ), - ), - ), - 'GetAccountSummaryResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'SummaryMap' => array( - 'type' => 'array', - 'location' => 'xml', - 'data' => array( - 'xmlMap' => array( - 'Users', - 'UsersQuota', - 'Groups', - 'GroupsQuota', - 'ServerCertificates', - 'ServerCertificatesQuota', - 'UserPolicySizeQuota', - 'GroupPolicySizeQuota', - 'GroupsPerUserQuota', - 'SigningCertificatesPerUserQuota', - 'AccessKeysPerUserQuota', - 'MFADevices', - 'MFADevicesInUse', - 'AccountMFAEnabled', - 'AccountAccessKeysPresent', - 'AccountSigningCertificatesPresent', - 'AttachedPoliciesPerGroupQuota', - 'AttachedPoliciesPerRoleQuota', - 'AttachedPoliciesPerUserQuota', - 'Policies', - 'PoliciesQuota', - 'PolicySizeQuota', - 'PolicyVersionsInUse', - 'PolicyVersionsInUseQuota', - 'VersionsPerPolicyQuota', - ), - ), - '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' => 'numeric', - ), - ), - ), - 'additionalProperties' => false, - ), - ), - ), - '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, - 'properties' => array( - 'Group' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Path' => array( - 'type' => 'string', - ), - 'GroupName' => array( - 'type' => 'string', - ), - 'GroupId' => array( - 'type' => 'string', - ), - 'Arn' => array( - 'type' => 'string', - ), - 'CreateDate' => array( - 'type' => 'string', - ), - ), - ), - 'Users' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'User', - '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', - ), - 'PasswordLastUsed' => array( - 'type' => 'string', - ), - ), - ), - ), - 'IsTruncated' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'GetGroupPolicyResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GroupName' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'PolicyName' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'PolicyDocument' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'GetInstanceProfileResponse' => 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', - ), - ), - ), - ), - ), - ), - ), - ), - 'GetLoginProfileResponse' => 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', - ), - ), - ), - ), - ), - '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', - ), - ), - ), - ), - ), - 'GetRoleResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Role' => array( - 'type' => 'object', - 'location' => 'xml', - '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', - ), - ), - ), - ), - ), - 'GetRolePolicyResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RoleName' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'PolicyName' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'PolicyDocument' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'GetSAMLProviderResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'SAMLMetadataDocument' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'CreateDate' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'ValidUntil' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'GetServerCertificateResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ServerCertificate' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'ServerCertificateMetadata' => array( - 'type' => 'object', - 'properties' => array( - 'Path' => array( - 'type' => 'string', - ), - 'ServerCertificateName' => array( - 'type' => 'string', - ), - 'ServerCertificateId' => array( - 'type' => 'string', - ), - 'Arn' => array( - 'type' => 'string', - ), - 'UploadDate' => array( - 'type' => 'string', - ), - 'Expiration' => array( - 'type' => 'string', - ), - ), - ), - 'CertificateBody' => array( - 'type' => 'string', - ), - 'CertificateChain' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - '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( - 'AccountAliases' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'accountAliasType', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'IsTruncated' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ListAttachedGroupPoliciesResponse' => 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', - ), - 'PolicyArn' => array( - 'type' => 'string', - ), - ), - ), - ), - 'IsTruncated' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ListAttachedRolePoliciesResponse' => 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', - ), - 'PolicyArn' => array( - 'type' => 'string', - ), - ), - ), - ), - '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', - ), - 'PolicyArn' => array( - 'type' => 'string', - ), - ), - ), - ), - 'IsTruncated' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ListEntitiesForPolicyResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'PolicyGroups' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - '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( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ListGroupPoliciesResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'PolicyNames' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'policyNameType', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'IsTruncated' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ListGroupsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Groups' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'Group', - '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', - ), - ), - ), - ), - 'IsTruncated' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ListGroupsForUserResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Groups' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'Group', - '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', - ), - ), - ), - ), - 'IsTruncated' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ListInstanceProfilesResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'InstanceProfiles' => array( - 'type' => 'array', - 'location' => 'xml', - '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', - ), - ), - ), - ), - ), - ), - ), - 'IsTruncated' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ListInstanceProfilesForRoleResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'InstanceProfiles' => array( - 'type' => 'array', - 'location' => 'xml', - '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', - ), - ), - ), - ), - ), - ), - ), - 'IsTruncated' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ListMFADevicesResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'MFADevices' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'MFADevice', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'UserName' => array( - 'type' => 'string', - ), - 'SerialNumber' => array( - 'type' => 'string', - ), - 'EnableDate' => array( - 'type' => 'string', - ), - ), - ), - ), - 'IsTruncated' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - '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, - 'properties' => array( - 'PolicyNames' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'policyNameType', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'IsTruncated' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ListRolesResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Roles' => array( - 'type' => 'array', - 'location' => 'xml', - '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', - ), - ), - ), - ), - 'IsTruncated' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ListSAMLProvidersResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'SAMLProviderList' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'SAMLProviderListEntry', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'Arn' => array( - 'type' => 'string', - ), - 'ValidUntil' => array( - 'type' => 'string', - ), - 'CreateDate' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'ListServerCertificatesResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ServerCertificateMetadataList' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'ServerCertificateMetadata', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'Path' => array( - 'type' => 'string', - ), - 'ServerCertificateName' => array( - 'type' => 'string', - ), - 'ServerCertificateId' => array( - 'type' => 'string', - ), - 'Arn' => array( - 'type' => 'string', - ), - 'UploadDate' => array( - 'type' => 'string', - ), - 'Expiration' => array( - 'type' => 'string', - ), - ), - ), - ), - 'IsTruncated' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ListSigningCertificatesResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Certificates' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'SigningCertificate', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'UserName' => array( - 'type' => 'string', - ), - 'CertificateId' => array( - 'type' => 'string', - ), - 'CertificateBody' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'UploadDate' => array( - 'type' => 'string', - ), - ), - ), - ), - 'IsTruncated' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ListUserPoliciesResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'PolicyNames' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'policyNameType', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'IsTruncated' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ListUsersResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Users' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'User', - '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', - ), - 'PasswordLastUsed' => array( - 'type' => 'string', - ), - ), - ), - ), - 'IsTruncated' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ListVirtualMFADevicesResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'VirtualMFADevices' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'VirtualMFADevice', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'SerialNumber' => array( - 'type' => 'string', - ), - 'Base32StringSeed' => array( - 'type' => 'string', - ), - 'QRCodePNG' => array( - 'type' => 'string', - ), - 'User' => array( - 'type' => 'object', - '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', - ), - ), - ), - 'EnableDate' => array( - 'type' => 'string', - ), - ), - ), - ), - 'IsTruncated' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'UpdateSAMLProviderResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'SAMLProviderArn' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'UploadServerCertificateResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ServerCertificateMetadata' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Path' => array( - 'type' => 'string', - ), - 'ServerCertificateName' => array( - 'type' => 'string', - ), - 'ServerCertificateId' => array( - 'type' => 'string', - ), - 'Arn' => array( - 'type' => 'string', - ), - 'UploadDate' => array( - 'type' => 'string', - ), - 'Expiration' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'UploadSigningCertificateResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Certificate' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'UserName' => array( - 'type' => 'string', - ), - 'CertificateId' => array( - 'type' => 'string', - ), - 'CertificateBody' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'UploadDate' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'iterators' => array( - '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/lib/aws-sdk/Aws/ImportExport/Enum/JobType.php b/lib/aws-sdk/Aws/ImportExport/Enum/JobType.php deleted file mode 100644 index 9ae85ae..0000000 --- a/lib/aws-sdk/Aws/ImportExport/Enum/JobType.php +++ /dev/null @@ -1,28 +0,0 @@ -setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/importexport-%s.php' - )) - ->build(); - - // If the Symfony YAML component is installed, add a listener that will convert arrays to proper YAML in when - // specifying the "Manifest" parameter of the "CreateJob" operation - if (class_exists('Symfony\Component\Yaml\Yaml')) { - $client->addSubscriber(new JobManifestListener()); - } - - return $client; - } -} diff --git a/lib/aws-sdk/Aws/ImportExport/JobManifestListener.php b/lib/aws-sdk/Aws/ImportExport/JobManifestListener.php deleted file mode 100644 index 66d8d4d..0000000 --- a/lib/aws-sdk/Aws/ImportExport/JobManifestListener.php +++ /dev/null @@ -1,51 +0,0 @@ - array('onCommandBeforePrepare')); - } - - /** - * An event handler for assisting with formatting the Manifest parameter of CreateJob operation into YAML - * - * @param Event $event The event being handled - */ - public function onCommandBeforePrepare(Event $event) - { - /** @var \Guzzle\Service\Command\AbstractCommand $command */ - $command = $event['command']; - if ($command->getName() === 'CreateJob') { - $manifest = $command->get('Manifest'); - if (!is_string($manifest) && class_exists('Symfony\Component\Yaml\Yaml')) { - $command->set('Manifest', \Symfony\Component\Yaml\Yaml::dump($manifest)); - } - } - } -} diff --git a/lib/aws-sdk/Aws/ImportExport/Resources/importexport-2010-06-01.php b/lib/aws-sdk/Aws/ImportExport/Resources/importexport-2010-06-01.php deleted file mode 100644 index 4e822d2..0000000 --- a/lib/aws-sdk/Aws/ImportExport/Resources/importexport-2010-06-01.php +++ /dev/null @@ -1,774 +0,0 @@ - '2010-06-01', - 'endpointPrefix' => 'importexport', - 'serviceFullName' => 'AWS Import/Export', - 'serviceType' => 'query', - 'globalEndpoint' => 'importexport.amazonaws.com', - 'resultWrapped' => true, - 'signatureVersion' => 'v2', - 'namespace' => 'ImportExport', - 'regions' => array( - 'us-east-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'importexport.amazonaws.com', - ), - 'us-west-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'importexport.amazonaws.com', - ), - 'us-west-2' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'importexport.amazonaws.com', - ), - 'eu-west-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'importexport.amazonaws.com', - ), - 'ap-northeast-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'importexport.amazonaws.com', - ), - 'ap-southeast-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'importexport.amazonaws.com', - ), - 'ap-southeast-2' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'importexport.amazonaws.com', - ), - 'sa-east-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'importexport.amazonaws.com', - ), - ), - 'operations' => array( - 'CancelJob' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'CancelJobOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CancelJob', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-06-01', - ), - 'JobId' => array( - 'required' => true, - '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' => 'AWS Import/Export cannot cancel the job', - 'class' => 'UnableToCancelJobIdException', - ), - 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'CreateJobOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateJob', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-06-01', - ), - 'JobType' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Manifest' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ManifestAddendum' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ValidateOnly' => array( - 'required' => true, - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'APIVersion' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'One or more required parameters was missing from the request.', - 'class' => 'MissingParameterException', - ), - 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', - ), - array( - 'reason' => 'The address specified in the manifest is invalid.', - 'class' => 'InvalidAddressException', - ), - array( - 'reason' => 'One or more manifest fields was invalid. Please correct and resubmit.', - 'class' => 'InvalidManifestFieldException', - ), - array( - 'reason' => 'One or more required fields were missing from the manifest file. Please correct and resubmit.', - 'class' => 'MissingManifestFieldException', - ), - array( - 'reason' => 'The specified bucket does not exist. Create the specified bucket or change the manifest\'s bucket, exportBucket, or logBucket field to a bucket that the account, as specified by the manifest\'s Access Key ID, has write permissions to.', - 'class' => 'NoSuchBucketException', - ), - array( - 'reason' => 'One or more required customs parameters was missing from the manifest.', - 'class' => 'MissingCustomsException', - ), - array( - 'reason' => 'One or more customs parameters was invalid. Please correct and resubmit.', - 'class' => 'InvalidCustomsException', - ), - array( - 'reason' => 'File system specified in export manifest is invalid.', - 'class' => 'InvalidFileSystemException', - ), - array( - 'reason' => 'Your manifest file contained buckets from multiple regions. A job is restricted to buckets from one region. Please correct and resubmit.', - 'class' => 'MultipleRegionsException', - ), - array( - 'reason' => 'The account specified does not have the appropriate bucket permissions.', - 'class' => 'BucketPermissionException', - ), - 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetStatusOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetStatus', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-06-01', - ), - 'JobId' => array( - 'required' => true, - '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 client tool version is invalid.', - 'class' => 'InvalidVersionException', - ), - ), - ), - 'ListJobs' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListJobsOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListJobs', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-06-01', - ), - 'MaxJobs' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'APIVersion' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - 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', - ), - array( - 'reason' => 'The client tool version is invalid.', - 'class' => 'InvalidVersionException', - ), - ), - ), - 'UpdateJob' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'UpdateJobOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'UpdateJob', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-06-01', - ), - 'JobId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Manifest' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'JobType' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ValidateOnly' => array( - 'required' => true, - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'APIVersion' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'One or more required parameters was missing from the request.', - 'class' => 'MissingParameterException', - ), - 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', - ), - array( - 'reason' => 'The address specified in the manifest is invalid.', - 'class' => 'InvalidAddressException', - ), - array( - 'reason' => 'One or more manifest fields was invalid. Please correct and resubmit.', - 'class' => 'InvalidManifestFieldException', - ), - array( - 'reason' => 'The JOBID was missing, not found, or not associated with the AWS account.', - 'class' => 'InvalidJobIdException', - ), - array( - 'reason' => 'One or more required fields were missing from the manifest file. Please correct and resubmit.', - 'class' => 'MissingManifestFieldException', - ), - array( - 'reason' => 'The specified bucket does not exist. Create the specified bucket or change the manifest\'s bucket, exportBucket, or logBucket field to a bucket that the account, as specified by the manifest\'s Access Key ID, has write permissions to.', - 'class' => 'NoSuchBucketException', - ), - 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' => 'One or more required customs parameters was missing from the manifest.', - 'class' => 'MissingCustomsException', - ), - array( - 'reason' => 'One or more customs parameters was invalid. Please correct and resubmit.', - 'class' => 'InvalidCustomsException', - ), - array( - 'reason' => 'File system specified in export manifest is invalid.', - 'class' => 'InvalidFileSystemException', - ), - array( - 'reason' => 'Your manifest file contained buckets from multiple regions. A job is restricted to buckets from one region. Please correct and resubmit.', - 'class' => 'MultipleRegionsException', - ), - array( - 'reason' => 'The account specified does not have the appropriate bucket permissions.', - 'class' => 'BucketPermissionException', - ), - 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', - ), - ), - ), - ), - 'models' => array( - 'CancelJobOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Success' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - ), - ), - 'CreateJobOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'JobId' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'JobType' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'Signature' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'SignatureFileContents' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'WarningMessage' => 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( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'JobId' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'JobType' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'LocationCode' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'LocationMessage' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'ProgressCode' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'ProgressMessage' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'Carrier' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'TrackingNumber' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'LogBucket' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'LogKey' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'ErrorCount' => array( - 'type' => 'numeric', - 'location' => 'xml', - ), - 'Signature' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'SignatureFileContents' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'CurrentManifest' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'CreationDate' => 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( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Jobs' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'Job', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'JobId' => array( - 'type' => 'string', - ), - 'CreationDate' => array( - 'type' => 'string', - ), - 'IsCanceled' => array( - 'type' => 'boolean', - ), - 'JobType' => array( - 'type' => 'string', - ), - ), - ), - ), - 'IsTruncated' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - ), - ), - 'UpdateJobOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Success' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'WarningMessage' => 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( - 'ListJobs' => array( - 'input_token' => 'Marker', - 'output_token' => 'Jobs/#/JobId', - 'more_results' => 'IsTruncated', - 'limit_key' => 'MaxJobs', - 'result_key' => 'Jobs', - ), - ), -); diff --git a/lib/aws-sdk/Aws/JsonCompiler.php b/lib/aws-sdk/Aws/JsonCompiler.php new file mode 100644 index 0000000..8a9a5a4 --- /dev/null +++ b/lib/aws-sdk/Aws/JsonCompiler.php @@ -0,0 +1,158 @@ +stripPath = str_replace('\\', '/', __DIR__ . DIRECTORY_SEPARATOR); + $this->useCache = $useCache && extension_loaded('Zend OPcache'); + $this->hasOpcacheCheck = $this->useCache + && function_exists('opcache_is_script_cached'); + $this->cacheDir = getenv(self::CACHE_ENV) + ?: sys_get_temp_dir() . '/aws-cache'; + + if (!is_dir($this->cacheDir)) { + if (!mkdir($this->cacheDir, 0777, true)) { + $message = 'Unable to create cache directory: %s. Please make ' + . 'this directory writable or provide the path to a ' + . 'writable directory using the AWS_PHP_CACHE_DIR ' + . 'environment variable. Note that this cache dir may need ' + . 'to be cleared when updating the SDK in order to see ' + . 'updates.'; + throw new \RuntimeException(sprintf($message, $this->cacheDir)); + } + } + } + + /** + * Gets the JSON cache directory. + * + * @return string + */ + public function getCacheDir() + { + return $this->cacheDir; + } + + /** + * Deletes all cached php files in the cache directory. + */ + public function purge() + { + foreach (glob($this->cacheDir . '/*.json.php') as $file) { + unlink($file); + } + } + + /** + * Loads a JSON file from cache or from the JSON file directly. + * + * @param string $path Path to the JSON file to load. + * + * @return mixed + */ + public function load($path) + { + $real = $this->normalize($path); + if (!$this->useCache) { + return $this->loadJsonFromFile($path, $real); + } + + $cache = str_replace($this->stripPath, '', $real); + $cache = str_replace(['\\', '/'], '_', $cache); + $cache = "{$this->cacheDir}/{$cache}.php"; + + if (($this->hasOpcacheCheck && opcache_is_script_cached($cache)) + || file_exists($cache) + ) { + return require $cache; + } + + $data = $this->loadJsonFromFile($path, $real); + file_put_contents($cache, " true, '.' => true]; + $isPhar = substr($path, 0, 7) === 'phar://'; + + if ($isPhar) { + $path = substr($path, 7); + } + + // Normalize path separators + $parts = explode('/', str_replace('\\', '/', $path)); + + $segments = []; + foreach ($parts as $part) { + if (isset($skip[$part])) { + continue; + } elseif ($part === '..') { + array_pop($segments); + } else { + $segments[] = $part; + } + } + + $resolved = implode('/', $segments); + + // Add a leading slash if necessary. + if (isset($parts[0]) && $parts[0] === '') { + $resolved = '/' . $resolved; + } + + return $isPhar ? 'phar://' . $resolved : $resolved; + } + + /** + * Loads a JSON file. + * + * @param string $path Provided path. + * @param string $real Normalized path. + * + * @return array + * @throw \InvalidArgumentException if file does not exist. + */ + private function loadJsonFromFile($path, $real) + { + if (!file_exists($real)) { + throw new \InvalidArgumentException( + sprintf("File not found: %s, realpath: %s", $path, $real) + ); + } + + return json_decode(file_get_contents($real), true); + } +} diff --git a/lib/aws-sdk/Aws/Kinesis/Enum/ShardIteratorType.php b/lib/aws-sdk/Aws/Kinesis/Enum/ShardIteratorType.php deleted file mode 100644 index 58af9f5..0000000 --- a/lib/aws-sdk/Aws/Kinesis/Enum/ShardIteratorType.php +++ /dev/null @@ -1,30 +0,0 @@ -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); - } - } -} +class KinesisClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/Kinesis/Resources/kinesis-2013-12-02.php b/lib/aws-sdk/Aws/Kinesis/Resources/kinesis-2013-12-02.php deleted file mode 100644 index 77bec27..0000000 --- a/lib/aws-sdk/Aws/Kinesis/Resources/kinesis-2013-12-02.php +++ /dev/null @@ -1,1019 +0,0 @@ - '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', - ), - 'MillisBehindLatest' => array( - 'type' => 'numeric', - '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/lib/aws-sdk/Aws/Kms/Exception/KmsException.php b/lib/aws-sdk/Aws/Kms/Exception/KmsException.php index 4de7bd1..c70aa1b 100644 --- a/lib/aws-sdk/Aws/Kms/Exception/KmsException.php +++ b/lib/aws-sdk/Aws/Kms/Exception/KmsException.php @@ -1,10 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/kms-%s.php' - )) - ->setExceptionParser(new JsonQueryExceptionParser) - ->build(); - } -} +class KmsClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/Kms/Resources/kms-2014-11-01.php b/lib/aws-sdk/Aws/Kms/Resources/kms-2014-11-01.php deleted file mode 100644 index c73808b..0000000 --- a/lib/aws-sdk/Aws/Kms/Resources/kms-2014-11-01.php +++ /dev/null @@ -1,2037 +0,0 @@ - '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' => 'A request was rejected because the specified key was marked as disabled.', - 'class' => 'DisabledException', - ), - 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' => 'A request was rejected because the specified key was marked as disabled.', - 'class' => 'DisabledException', - ), - 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 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', - ), - ), - ), - '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 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', - ), - ), - ), - '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( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 8192, - ), - 'KeyId' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'GrantId' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 128, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'A grant token provided as part of the request is invalid.', - 'class' => 'InvalidGrantTokenException', - ), - 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', - ), - ), - ), - '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 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', - ), - ), - ), - 'UpdateAlias' => 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.UpdateAlias', - ), - '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 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', - ), - ), - ), - '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/lib/aws-sdk/Aws/Lambda/Exception/LambdaException.php b/lib/aws-sdk/Aws/Lambda/Exception/LambdaException.php index 29a2f84..13ff495 100644 --- a/lib/aws-sdk/Aws/Lambda/Exception/LambdaException.php +++ b/lib/aws-sdk/Aws/Lambda/Exception/LambdaException.php @@ -1,10 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/lambda-%s.php' - )) - ->setExceptionParser(new JsonRestExceptionParser()) - ->build(); - } -} +class LambdaClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/Lambda/Resources/lambda-2014-11-11.php b/lib/aws-sdk/Aws/Lambda/Resources/lambda-2014-11-11.php deleted file mode 100644 index 84513e0..0000000 --- a/lib/aws-sdk/Aws/Lambda/Resources/lambda-2014-11-11.php +++ /dev/null @@ -1,742 +0,0 @@ - '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/lib/aws-sdk/Aws/Lambda/Resources/lambda-2015-03-31.php b/lib/aws-sdk/Aws/Lambda/Resources/lambda-2015-03-31.php deleted file mode 100644 index 399162d..0000000 --- a/lib/aws-sdk/Aws/Lambda/Resources/lambda-2015-03-31.php +++ /dev/null @@ -1,1111 +0,0 @@ - '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' => 1536, - ), - 'Code' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'ZipFile' => array( - 'type' => array( - 'string', - 'object', - ), - ), - 'S3Bucket' => array( - 'type' => 'string', - 'minLength' => 3, - 'maxLength' => 63, - ), - 'S3Key' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'S3ObjectVersion' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 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 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', - ), - array( - 'class' => 'CodeStorageExceededException', - ), - ), - ), - '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( - 'type' => array( - 'string', - 'object', - ), - 'location' => 'body' - ), - 'S3Bucket' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 63, - ), - 'S3Key' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'S3ObjectVersion' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 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', - ), - array( - 'class' => 'CodeStorageExceededException', - ), - ), - ), - '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' => 1536, - ), - ), - '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/lib/aws-sdk/Aws/LruArrayCache.php b/lib/aws-sdk/Aws/LruArrayCache.php new file mode 100644 index 0000000..39ff7fc --- /dev/null +++ b/lib/aws-sdk/Aws/LruArrayCache.php @@ -0,0 +1,74 @@ +maxItems = $maxItems; + } + + public function get($key) + { + if (!isset($this->items[$key])) { + return null; + } + + $entry = $this->items[$key]; + + // Ensure the item is not expired. + if (!$entry[1] || time() < $entry[1]) { + // LRU: remove the item and push it to the end of the array. + unset($this->items[$key]); + $this->items[$key] = $entry; + return $entry[0]; + } + + unset($this->items[$key]); + return null; + } + + public function set($key, $value, $ttl = 0) + { + // Only call time() if the TTL is not 0/false/null + $ttl = $ttl ? time() + $ttl : 0; + $this->items[$key] = [$value, $ttl]; + + // Determine if there are more items in the cache than allowed. + $diff = count($this->items) - $this->maxItems; + + // Clear out least recently used items. + if ($diff > 0) { + // Reset to the beginning of the array and begin unsetting. + reset($this->items); + for ($i = 0; $i < $diff; $i++) { + unset($this->items[key($this->items)]); + next($this->items); + } + } + } + + public function remove($key) + { + unset($this->items[$key]); + } +} diff --git a/lib/aws-sdk/Aws/MachineLearning/Exception/MachineLearningException.php b/lib/aws-sdk/Aws/MachineLearning/Exception/MachineLearningException.php index edabbb1..6421ca8 100644 --- a/lib/aws-sdk/Aws/MachineLearning/Exception/MachineLearningException.php +++ b/lib/aws-sdk/Aws/MachineLearning/Exception/MachineLearningException.php @@ -1,10 +1,9 @@ getHandlerList(); + $list->appendBuild($this->predictEndpoint(), 'ml.predict_endpoint'); + } /** - * Factory method to create a new Amazon Machine Learning client using an array of configuration options. - * - * See http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options + * Changes the endpoint of the Predict operation to the provided endpoint. * - * @param array|Collection $config Client configuration data - * - * @return self - * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options + * @return callable */ - public static function factory($config = array()) + private function predictEndpoint() { - $client = ClientBuilder::factory(__NAMESPACE__) - ->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; + return static function (callable $handler) { + return function ( + CommandInterface $command, + RequestInterface $request = null + ) use ($handler) { + if ($command->getName() === 'Predict') { + $request = $request->withUri(new Uri($command['PredictEndpoint'])); + } + return $handler($command, $request); + }; + }; } } diff --git a/lib/aws-sdk/Aws/MachineLearning/PredictEndpointListener.php b/lib/aws-sdk/Aws/MachineLearning/PredictEndpointListener.php deleted file mode 100644 index afa4283..0000000 --- a/lib/aws-sdk/Aws/MachineLearning/PredictEndpointListener.php +++ /dev/null @@ -1,35 +0,0 @@ - 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/lib/aws-sdk/Aws/MachineLearning/Resources/machinelearning-2014-12-12.php b/lib/aws-sdk/Aws/MachineLearning/Resources/machinelearning-2014-12-12.php deleted file mode 100644 index b31d049..0000000 --- a/lib/aws-sdk/Aws/MachineLearning/Resources/machinelearning-2014-12-12.php +++ /dev/null @@ -1,2548 +0,0 @@ - '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/lib/aws-sdk/Aws/Middleware.php b/lib/aws-sdk/Aws/Middleware.php new file mode 100644 index 0000000..dc278aa --- /dev/null +++ b/lib/aws-sdk/Aws/Middleware.php @@ -0,0 +1,308 @@ +getOperation($command->getName()); + $source = $command[$sourceParameter]; + + if ($source !== null + && $operation->getInput()->hasMember($bodyParameter) + ) { + $command[$bodyParameter] = new LazyOpenStream($source, 'r'); + unset($command[$sourceParameter]); + } + + return $handler($command, $request); + }; + }; + } + + /** + * Adds a middleware that uses client-side validation. + * + * @param Service $api API being accessed. + * + * @return callable + */ + public static function validation(Service $api) + { + $validator = new Validator(); + return function (callable $handler) use ($api, $validator) { + return function ( + CommandInterface $command, + RequestInterface $request = null + ) use ($api, $validator, $handler) { + $operation = $api->getOperation($command->getName()); + $validator->validate( + $command->getName(), + $operation->getInput(), + $command->toArray() + ); + return $handler($command, $request); + }; + }; + } + + /** + * Builds an HTTP request for a command. + * + * @param callable $serializer Function used to serialize a request for a + * command. + * @return callable + */ + public static function requestBuilder(callable $serializer) + { + return function (callable $handler) use ($serializer) { + return function (CommandInterface $command) use ($serializer, $handler) { + return $handler($command, $serializer($command)); + }; + }; + } + + /** + * Creates a middleware that signs requests for a command. + * + * @param callable $credProvider Credentials provider function that + * returns a promise that is resolved + * with a CredentialsInterface object. + * @param callable $signatureFunction Function that accepts a Command + * object and returns a + * SignatureInterface. + * + * @return callable + */ + public static function signer(callable $credProvider, callable $signatureFunction) + { + return function (callable $handler) use ($signatureFunction, $credProvider) { + return function ( + CommandInterface $command, + RequestInterface $request + ) use ($handler, $signatureFunction, $credProvider) { + $signer = $signatureFunction($command); + return $credProvider()->then( + function (CredentialsInterface $creds) + use ($handler, $command, $signer, $request) { + return $handler( + $command, + $signer->signRequest($request, $creds) + ); + } + ); + }; + }; + } + + /** + * Creates a middleware that invokes a callback at a given step. + * + * The tap callback accepts a CommandInterface and RequestInterface as + * arguments but is not expected to return a new value or proxy to + * downstream middleware. It's simply a way to "tap" into the handler chain + * to debug or get an intermediate value. + * + * @param callable $fn Tap function + * + * @return callable + */ + public static function tap(callable $fn) + { + return function (callable $handler) use ($fn) { + return function ( + CommandInterface $command, + RequestInterface $request = null + ) use ($handler, $fn) { + $fn($command, $request); + return $handler($command, $request); + }; + }; + } + + /** + * Middleware wrapper function that retries requests based on the boolean + * result of invoking the provided "decider" function. + * + * If no delay function is provided, a simple implementation of exponential + * backoff will be utilized. + * + * @param callable $decider Function that accepts the number of retries, + * a request, [result], and [exception] and + * returns true if the command is to be retried. + * @param callable $delay Function that accepts the number of retries and + * returns the number of milliseconds to delay. + * + * @return callable + */ + public static function retry(callable $decider = null, callable $delay = null) + { + $decider = $decider ?: RetryMiddleware::createDefaultDecider(); + $delay = $delay ?: [RetryMiddleware::class, 'exponentialDelay']; + + return function (callable $handler) use ($decider, $delay) { + return new RetryMiddleware($decider, $delay, $handler); + }; + } + + /** + * Middleware wrapper function that adds a Content-Type header to requests. + * This is only done when the Content-Type has not already been set, and the + * request body's URI is available. It then checks the file extension of the + * URI to determine the mime-type. + * + * @param array $operations Operations that Content-Type should be added to. + * + * @return callable + */ + public static function contentType(array $operations) + { + return function (callable $handler) use ($operations) { + return function ( + CommandInterface $command, + RequestInterface $request = null + ) use ($handler, $operations) { + if (!$request->hasHeader('Content-Type') + && in_array($command->getName(), $operations, true) + && ($uri = $request->getBody()->getMetadata('uri')) + ) { + $request = $request->withHeader( + 'Content-Type', + Psr7\mimetype_from_filename($uri) ?: 'application/octet-stream' + ); + } + + return $handler($command, $request); + }; + }; + } + + /** + * Tracks command and request history using a history container. + * + * This is useful for testing. + * + * @param History $history History container to store entries. + * + * @return callable + */ + public static function history(History $history) + { + return function (callable $handler) use ($history) { + return function ( + CommandInterface $command, + RequestInterface $request = null + ) use ($handler, $history) { + $ticket = $history->start($command, $request); + return $handler($command, $request) + ->then( + function ($result) use ($history, $ticket) { + $history->finish($ticket, $result); + return $result; + }, + function ($reason) use ($history, $ticket) { + $history->finish($ticket, $reason); + return Promise\rejection_for($reason); + } + ); + }; + }; + } + + /** + * Creates a middleware that applies a map function to requests as they + * pass through the middleware. + * + * @param callable $f Map function that accepts a RequestInterface and + * returns a RequestInterface. + * + * @return callable + */ + public static function mapRequest(callable $f) + { + return function (callable $handler) use ($f) { + return function ( + CommandInterface $command, + RequestInterface $request = null + ) use ($handler, $f) { + return $handler($command, $f($request)); + }; + }; + } + + /** + * Creates a middleware that applies a map function to commands as they + * pass through the middleware. + * + * @param callable $f Map function that accepts a command and returns a + * command. + * + * @return callable + */ + public static function mapCommand(callable $f) + { + return function (callable $handler) use ($f) { + return function ( + CommandInterface $command, + RequestInterface $request = null + ) use ($handler, $f) { + return $handler($f($command), $request); + }; + }; + } + + /** + * Creates a middleware that applies a map function to results. + * + * @param callable $f Map function that accepts an Aws\ResultInterface and + * returns an Aws\ResultInterface. + * + * @return callable + */ + public static function mapResult(callable $f) + { + return function (callable $handler) use ($f) { + return function ( + CommandInterface $command, + RequestInterface $request = null + ) use ($handler, $f) { + return $handler($command, $request)->then($f); + }; + }; + } +} diff --git a/lib/aws-sdk/Aws/MockHandler.php b/lib/aws-sdk/Aws/MockHandler.php new file mode 100644 index 0000000..133169f --- /dev/null +++ b/lib/aws-sdk/Aws/MockHandler.php @@ -0,0 +1,131 @@ +onFulfilled = $onFulfilled; + $this->onRejected = $onRejected; + + if ($resultOrQueue) { + call_user_func_array([$this, 'append'], $resultOrQueue); + } + } + + /** + * Adds one or more variadic ResultInterface or AwsException objects to the + * queue. + */ + public function append() + { + foreach (func_get_args() as $value) { + if ($value instanceof ResultInterface + || $value instanceof AwsException + || is_callable($value) + ) { + $this->queue[] = $value; + } else { + throw new \InvalidArgumentException('Expected an Aws\ResultInterface or Aws\Exception\AwsException.'); + } + } + } + + public function __invoke( + CommandInterface $command, + RequestInterface $request + ) { + if (!$this->queue) { + $last = $this->lastCommand + ? ' The last command sent was ' . $this->lastCommand->getName() . '.' + : ''; + throw new \RuntimeException('Mock queue is empty. Trying to send a ' + . $command->getName() . ' command failed.' . $last); + } + + $this->lastCommand = $command; + $this->lastRequest = $request; + + $result = array_shift($this->queue); + + if (is_callable($result)) { + $result = $result($command, $request); + } + + if ($result instanceof \Exception) { + $result = new RejectedPromise($result); + } else { + // Add an effective URI and statusCode if not present. + $meta = $result['@metadata']; + if (!isset($meta['effectiveUri'])) { + $meta['effectiveUri'] = (string) $request->getUri(); + } + if (!isset($meta['statusCode'])) { + $meta['statusCode'] = 200; + } + $result['@metadata'] = $meta; + $result = Promise\promise_for($result); + } + + $result->then($this->onFulfilled, $this->onRejected); + + return $result; + } + + /** + * Get the last received request. + * + * @return RequestInterface + */ + public function getLastRequest() + { + return $this->lastRequest; + } + + /** + * Get the last received command. + * + * @return CommandInterface + */ + public function getLastCommand() + { + return $this->lastCommand; + } + + /** + * Returns the number of remaining items in the queue. + * + * @return int + */ + public function count() + { + return count($this->queue); + } +} diff --git a/lib/aws-sdk/Aws/Multipart/AbstractUploader.php b/lib/aws-sdk/Aws/Multipart/AbstractUploader.php new file mode 100644 index 0000000..088cf53 --- /dev/null +++ b/lib/aws-sdk/Aws/Multipart/AbstractUploader.php @@ -0,0 +1,398 @@ + null, + 'state' => null, + 'concurrency' => self::DEFAULT_CONCURRENCY, + 'before_initiate' => null, + 'before_upload' => null, + 'before_complete' => null, + ]; + + /** @var Client Client used for the upload. */ + protected $client; + + /** @var array Configuration used to perform the upload. */ + protected $config; + + /** @var array Service-specific information about the upload workflow. */ + protected $info; + + /** @var PromiseInterface Promise that represents the multipart upload. */ + protected $promise; + + /** @var Stream Source of the data to be uploaded. */ + protected $source; + + /** @var UploadState State used to manage the upload. */ + protected $state; + + /** + * @param Client $client + * @param mixed $source + * @param array $config + */ + public function __construct(Client $client, $source, array $config = []) + { + $this->client = $client; + $this->info = $this->loadUploadWorkflowInfo(); + $this->config = $config + self::$defaultConfig; + $this->source = $this->determineSource($source); + $this->state = $this->determineState(); + } + + /** + * Returns the current state of the upload + * + * @return UploadState + */ + public function getState() + { + return $this->state; + } + + /** + * Upload the source using multipart upload operations. + * + * @return Result The result of the CompleteMultipartUpload operation. + * @throws \LogicException if the upload is already complete or aborted. + * @throws MultipartUploadException if an upload operation fails. + */ + public function upload() + { + return $this->promise()->wait(); + } + + /** + * Upload the source asynchronously using multipart upload operations. + * + * @return PromiseInterface + */ + public function promise() + { + if ($this->promise) { + return $this->promise; + } + + return $this->promise = Promise\coroutine(function () { + // Initiate the upload. + if ($this->state->isCompleted()) { + throw new \LogicException('This multipart upload has already ' + . 'been completed or aborted.' + ); + } elseif (!$this->state->isInitiated()) { + $result = (yield $this->execCommand('initiate', $this->getInitiateParams())); + $this->state->setUploadId( + $this->info['id']['upload_id'], + $result[$this->info['id']['upload_id']] + ); + $this->state->setStatus(UploadState::INITIATED); + } + + // Create a command pool from a generator that yields UploadPart + // commands for each upload part. + $resultHandler = $this->getResultHandler($errors); + $commands = new CommandPool( + $this->client, + $this->getUploadCommands($resultHandler), + [ + 'concurrency' => $this->config['concurrency'], + 'before' => $this->config['before_upload'], + ] + ); + + // Execute the pool of commands concurrently, and process errors. + yield $commands->promise(); + if ($errors) { + throw new MultipartUploadException($this->state, $errors); + } + + // Complete the multipart upload. + yield $this->execCommand('complete', $this->getCompleteParams()); + $this->state->setStatus(UploadState::COMPLETED); + })->otherwise(function (\Exception $e) { + // Throw errors from the operations as a specific Multipart error. + if ($e instanceof AwsException) { + $e = new MultipartUploadException($this->state, $e); + } + throw $e; + }); + } + + /** + * Create a stream for a part that starts at the current position and + * has a length of the upload part size (or less with the final part). + * + * @param Stream $stream + * + * @return Psr7\LimitStream + */ + protected function limitPartStream(Stream $stream) + { + // Limit what is read from the stream to the part size. + return new Psr7\LimitStream( + $stream, + $this->state->getPartSize(), + $this->source->tell() + ); + } + + /** + * Provides service-specific information about the multipart upload + * workflow. + * + * This array of data should include the keys: 'command', 'id', and 'part_num'. + * + * @return array + */ + abstract protected function loadUploadWorkflowInfo(); + + /** + * Determines the part size to use for upload parts. + * + * Examines the provided partSize value and the source to determine the + * best possible part size. + * + * @throws \InvalidArgumentException if the part size is invalid. + * + * @return int + */ + abstract protected function determinePartSize(); + + /** + * Generates the parameters for an upload part by analyzing a range of the + * source starting from the current offset up to the part size. + * + * @param bool $seekable + * @param int $number + * + * @return array|null + */ + abstract protected function createPart($seekable, $number); + + /** + * Uses information from the Command and Result to determine which part was + * uploaded and mark it as uploaded in the upload's state. + * + * @param CommandInterface $command + * @param ResultInterface $result + */ + abstract protected function handleResult( + CommandInterface $command, + ResultInterface $result + ); + + /** + * Gets the service-specific parameters used to initiate the upload. + * + * @return array + */ + abstract protected function getInitiateParams(); + + /** + * Gets the service-specific parameters used to complete the upload. + * + * @return array + */ + abstract protected function getCompleteParams(); + + /** + * Based on the config and service-specific workflow info, creates a + * `Promise` for an `UploadState` object. + * + * @return PromiseInterface A `Promise` that resolves to an `UploadState`. + */ + private function determineState() + { + // If the state was provided via config, then just use it. + if ($this->config['state'] instanceof UploadState) { + return $this->config['state']; + } + + // Otherwise, construct a new state from the provided identifiers. + $required = $this->info['id']; + $id = [$required['upload_id'] => null]; + unset($required['upload_id']); + foreach ($required as $key => $param) { + if (!$this->config[$key]) { + throw new IAE('You must provide a value for "' . $key . '" in ' + . 'your config for the MultipartUploader for ' + . $this->client->getApi()->getServiceFullName() . '.'); + } + $id[$param] = $this->config[$key]; + } + $state = new UploadState($id); + $state->setPartSize($this->determinePartSize()); + + return $state; + } + + /** + * Turns the provided source into a stream and stores it. + * + * If a string is provided, it is assumed to be a filename, otherwise, it + * passes the value directly to `Psr7\stream_for()`. + * + * @param mixed $source + * + * @return Stream + */ + private function determineSource($source) + { + // Use the contents of a file as the data source. + if (is_string($source)) { + $source = Psr7\try_fopen($source, 'r'); + } + + // Create a source stream. + $stream = Psr7\stream_for($source); + if (!$stream->isReadable()) { + throw new IAE('Source stream must be readable.'); + } + + return $stream; + } + + /** + * Executes a MUP command with all of the parameters for the operation. + * + * @param string $operation Name of the operation. + * @param array $params Service-specific params for the operation. + * + * @return PromiseInterface + */ + private function execCommand($operation, array $params) + { + // Create the command. + $command = $this->client->getCommand( + $this->info['command'][$operation], + $params + $this->state->getId() + ); + + // Execute the before callback. + if (is_callable($this->config["before_{$operation}"])) { + $this->config["before_{$operation}"]($command); + } + + // Execute the command asynchronously and return the promise. + return $this->client->executeAsync($command); + } + + /** + * Returns a middleware for processing responses of part upload operations. + * + * - Adds an onFulfilled callback that calls the service-specific + * handleResult method on the Result of the operation. + * - Adds an onRejected callback that adds the error to an array of errors. + * - Has a passedByRef $errors arg that the exceptions get added to. The + * caller should use that &$errors array to do error handling. + * + * @param array $errors Errors from upload operations are added to this. + * + * @return callable + */ + private function getResultHandler(&$errors = []) + { + return function (callable $handler) use (&$errors) { + return function ( + CommandInterface $command, + RequestInterface $request = null + ) use ($handler, &$errors) { + return $handler($command, $request)->then( + function (ResultInterface $result) use ($command) { + $this->handleResult($command, $result); + return $result; + }, + function (AwsException $e) use (&$errors) { + $errors[$e->getCommand()[$this->info['part_num']]] = $e; + return new Result(); + } + ); + }; + }; + } + + /** + * Creates a generator that yields part data for the upload's source. + * + * Yields associative arrays of parameters that are ultimately merged in + * with others to form the complete parameters of an UploadPart (or + * UploadMultipartPart for Glacier) command. This includes the Body + * parameter, which is a limited stream (i.e., a Stream object, decorated + * with a LimitStream). + ** + * @return \Generator + */ + private function getUploadCommands($resultHandler) + { + // Determine if the source can be seeked. + $seekable = $this->source->isSeekable() + && $this->source->getMetadata('wrapper_type') === 'plainfile'; + + for ($partNumber = 1; $this->isEof($seekable); $partNumber++) { + // If we haven't already uploaded this part, yield a new part. + if (!$this->state->hasPartBeenUploaded($partNumber)) { + $partStartPos = $this->source->tell(); + if (!($data = $this->createPart($seekable, $partNumber))) { + break; + } + $command = $this->client->getCommand( + $this->info['command']['upload'], + $data + $this->state->getId() + ); + $command->getHandlerList()->appendSign($resultHandler, 'mup'); + yield $command; + if ($this->source->tell() > $partStartPos) { + continue; + } + } + + // Advance the source's offset if not already advanced. + if ($seekable) { + $this->source->seek(min( + $this->source->tell() + $this->state->getPartSize(), + $this->source->getSize() + )); + } else { + $this->source->read($this->state->getPartSize()); + } + } + } + + /** + * Checks if the source is at EOF. + * + * @param bool $seekable + * + * @return bool + */ + private function isEof($seekable) + { + return $seekable + ? $this->source->tell() < $this->source->getSize() + : !$this->source->eof(); + } +} diff --git a/lib/aws-sdk/Aws/Multipart/UploadState.php b/lib/aws-sdk/Aws/Multipart/UploadState.php new file mode 100644 index 0000000..4108c4f --- /dev/null +++ b/lib/aws-sdk/Aws/Multipart/UploadState.php @@ -0,0 +1,145 @@ +id = $id; + } + + /** + * Get the upload's ID, which is a tuple of parameters that can uniquely + * identify the upload. + * + * @return array + */ + public function getId() + { + return $this->id; + } + + /** + * Set's the "upload_id", or 3rd part of the upload's ID. This typically + * only needs to be done after initiating an upload. + * + * @param string $key The param key of the upload_id. + * @param string $value The param value of the upload_id. + */ + public function setUploadId($key, $value) + { + $this->id[$key] = $value; + } + + /** + * Get the part size. + * + * @return int + */ + public function getPartSize() + { + return $this->partSize; + } + + /** + * Set the part size. + * + * @param $partSize int Size of upload parts. + */ + public function setPartSize($partSize) + { + $this->partSize = $partSize; + } + + /** + * Marks a part as being uploaded. + * + * @param int $partNumber The part number. + * @param array $partData Data from the upload operation that needs to be + * recalled during the complete operation. + */ + public function markPartAsUploaded($partNumber, array $partData = []) + { + $this->uploadedParts[$partNumber] = $partData; + } + + /** + * Returns whether a part has been uploaded. + * + * @param int $partNumber The part number. + * + * @return bool + */ + public function hasPartBeenUploaded($partNumber) + { + return isset($this->uploadedParts[$partNumber]); + } + + /** + * Returns a sorted list of all the uploaded parts. + * + * @return array + */ + public function getUploadedParts() + { + ksort($this->uploadedParts); + + return $this->uploadedParts; + } + + /** + * Set the status of the upload. + * + * @param int $status Status is an integer code defined by the constants + * CREATED, INITIATED, and COMPLETED on this class. + */ + public function setStatus($status) + { + $this->status = $status; + } + + /** + * Determines whether the upload state is in the INITIATED status. + * + * @return bool + */ + public function isInitiated() + { + return $this->status === self::INITIATED; + } + + /** + * Determines whether the upload state is in the COMPLETED status. + * + * @return bool + */ + public function isCompleted() + { + return $this->status === self::COMPLETED; + } +} diff --git a/lib/aws-sdk/Aws/OpsWorks/Enum/AppType.php b/lib/aws-sdk/Aws/OpsWorks/Enum/AppType.php deleted file mode 100644 index baaea4d..0000000 --- a/lib/aws-sdk/Aws/OpsWorks/Enum/AppType.php +++ /dev/null @@ -1,31 +0,0 @@ -setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/opsworks-%s.php' - )) - ->setExceptionParser(new JsonQueryExceptionParser()) - ->build(); - } -} +class OpsWorksClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/OpsWorks/Resources/opsworks-2013-02-18.php b/lib/aws-sdk/Aws/OpsWorks/Resources/opsworks-2013-02-18.php deleted file mode 100644 index 23bb970..0000000 --- a/lib/aws-sdk/Aws/OpsWorks/Resources/opsworks-2013-02-18.php +++ /dev/null @@ -1,5591 +0,0 @@ - '2013-02-18', - 'endpointPrefix' => 'opsworks', - 'serviceFullName' => 'AWS OpsWorks', - 'serviceType' => 'json', - 'jsonVersion' => '1.1', - 'targetPrefix' => 'OpsWorks_20130218.', - 'signatureVersion' => 'v4', - 'namespace' => 'OpsWorks', - 'regions' => array( - 'us-east-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'opsworks.us-east-1.amazonaws.com', - ), - ), - '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' => '/', - '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.AssignVolume', - ), - 'VolumeId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'InstanceId' => 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', - ), - ), - ), - 'AssociateElasticIp' => 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.AssociateElasticIp', - ), - 'ElasticIp' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'InstanceId' => 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', - ), - ), - ), - 'AttachElasticLoadBalancer' => 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.AttachElasticLoadBalancer', - ), - 'ElasticLoadBalancerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'LayerId' => 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', - ), - ), - ), - 'CloneStack' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'CloneStackResult', - '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.CloneStack', - ), - 'SourceStackId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'Name' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Region' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'VpcId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Attributes' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'string', - 'data' => array( - 'shape_name' => 'StackAttributesKeys', - ), - ), - ), - 'ServiceRoleArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'DefaultInstanceProfileArn' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'DefaultOs' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'HostnameTheme' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'DefaultAvailabilityZone' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'DefaultSubnetId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'CustomJson' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'ConfigurationManager' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'Version' => array( - 'type' => 'string', - ), - ), - ), - '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', - ), - 'Url' => array( - 'type' => 'string', - ), - 'Username' => array( - 'type' => 'string', - ), - 'Password' => array( - 'type' => 'string', - ), - 'SshKey' => array( - 'type' => 'string', - ), - 'Revision' => array( - 'type' => 'string', - ), - ), - ), - 'DefaultSshKeyName' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'ClonePermissions' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'CloneAppIds' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'DefaultRootDeviceType' => 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', - ), - ), - ), - 'CreateApp' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'CreateAppResult', - '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.CreateApp', - ), - 'StackId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'Shortname' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Name' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'Description' => 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', - ), - 'AppSource' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Type' => array( - 'type' => 'string', - ), - 'Url' => array( - 'type' => 'string', - ), - 'Username' => array( - 'type' => 'string', - ), - 'Password' => array( - 'type' => 'string', - ), - 'SshKey' => array( - 'type' => 'string', - ), - 'Revision' => array( - 'type' => 'string', - ), - ), - ), - 'Domains' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'EnableSsl' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'SslConfiguration' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Certificate' => array( - 'required' => true, - 'type' => 'string', - ), - 'PrivateKey' => array( - 'required' => true, - 'type' => 'string', - ), - 'Chain' => array( - 'type' => 'string', - ), - ), - ), - 'Attributes' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'string', - 'data' => array( - 'shape_name' => 'AppAttributesKeys', - ), - ), - ), - '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( - 'reason' => 'Indicates that a request was invalid.', - 'class' => 'ValidationException', - ), - array( - 'reason' => 'Indicates that a resource was not found.', - 'class' => 'ResourceNotFoundException', - ), - ), - ), - 'CreateDeployment' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'CreateDeploymentResult', - '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.CreateDeployment', - ), - 'StackId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'AppId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'InstanceIds' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'Command' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Name' => array( - 'required' => true, - 'type' => 'string', - ), - 'Args' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'array', - 'data' => array( - 'shape_name' => 'String', - ), - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - ), - ), - ), - 'Comment' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'CustomJson' => 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', - ), - ), - ), - 'CreateInstance' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'CreateInstanceResult', - '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.CreateInstance', - ), - 'StackId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'LayerIds' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'InstanceType' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'AutoScalingType' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Hostname' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Os' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'AmiId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'SshKeyName' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'AvailabilityZone' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'VirtualizationType' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'SubnetId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Architecture' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'RootDeviceType' => array( - 'type' => 'string', - 'location' => 'json', - ), - '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( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'EbsOptimized' => array( - 'type' => 'boolean', - 'format' => 'boolean-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', - ), - ), - ), - 'CreateLayer' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'CreateLayerResult', - '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.CreateLayer', - ), - 'StackId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'Type' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'Name' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'Shortname' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'Attributes' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'string', - 'data' => array( - 'shape_name' => 'LayerAttributesKeys', - ), - ), - ), - 'CustomInstanceProfileArn' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'CustomSecurityGroupIds' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'Packages' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'VolumeConfigurations' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'VolumeConfiguration', - 'type' => 'object', - 'properties' => array( - 'MountPoint' => array( - 'required' => true, - 'type' => 'string', - ), - 'RaidLevel' => array( - 'type' => 'numeric', - ), - 'NumberOfDisks' => array( - 'required' => true, - 'type' => 'numeric', - ), - 'Size' => array( - 'required' => true, - 'type' => 'numeric', - ), - 'VolumeType' => array( - 'type' => 'string', - ), - 'Iops' => array( - 'type' => 'numeric', - ), - ), - ), - ), - 'EnableAutoHealing' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'AutoAssignElasticIps' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'AutoAssignPublicIps' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'CustomRecipes' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Setup' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'Configure' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'Deploy' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'Undeploy' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'Shutdown' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - ), - ), - 'InstallUpdatesOnBoot' => array( - 'type' => 'boolean', - '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', - ), - ), - ), - 'CreateStack' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'CreateStackResult', - '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.CreateStack', - ), - 'Name' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'Region' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'VpcId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Attributes' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'string', - 'data' => array( - 'shape_name' => 'StackAttributesKeys', - ), - ), - ), - 'ServiceRoleArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'DefaultInstanceProfileArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'DefaultOs' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'HostnameTheme' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'DefaultAvailabilityZone' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'DefaultSubnetId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'CustomJson' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'ConfigurationManager' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'Version' => array( - 'type' => 'string', - ), - ), - ), - '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', - ), - 'Url' => array( - 'type' => 'string', - ), - 'Username' => array( - 'type' => 'string', - ), - 'Password' => array( - 'type' => 'string', - ), - 'SshKey' => array( - 'type' => 'string', - ), - 'Revision' => array( - 'type' => 'string', - ), - ), - ), - 'DefaultSshKeyName' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'DefaultRootDeviceType' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request was invalid.', - 'class' => 'ValidationException', - ), - ), - ), - 'CreateUserProfile' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'CreateUserProfileResult', - '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.CreateUserProfile', - ), - 'IamUserArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'SshUsername' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'SshPublicKey' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'AllowSelfManagement' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request was invalid.', - 'class' => 'ValidationException', - ), - ), - ), - 'DeleteApp' => 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.DeleteApp', - ), - 'AppId' => 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', - ), - ), - ), - 'DeleteInstance' => 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.DeleteInstance', - ), - 'InstanceId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'DeleteElasticIp' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'DeleteVolumes' => array( - 'type' => 'boolean', - 'format' => 'boolean-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', - ), - ), - ), - 'DeleteLayer' => 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.DeleteLayer', - ), - 'LayerId' => 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', - ), - ), - ), - 'DeleteStack' => 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.DeleteStack', - ), - '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', - ), - ), - ), - 'DeleteUserProfile' => 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.DeleteUserProfile', - ), - 'IamUserArn' => 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', - ), - ), - ), - 'DeregisterElasticIp' => 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.DeregisterElasticIp', - ), - 'ElasticIp' => 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', - ), - ), - ), - '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' => '/', - '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.DeregisterVolume', - ), - 'VolumeId' => 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', - ), - ), - ), - 'DescribeApps' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeAppsResult', - '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.DescribeApps', - ), - 'StackId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'AppIds' => 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', - ), - ), - ), - 'DescribeCommands' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeCommandsResult', - '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.DescribeCommands', - ), - 'DeploymentId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'InstanceId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'CommandIds' => 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', - ), - ), - ), - 'DescribeDeployments' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeDeploymentsResult', - '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.DescribeDeployments', - ), - 'StackId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'AppId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'DeploymentIds' => 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', - ), - ), - ), - 'DescribeElasticIps' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeElasticIpsResult', - '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.DescribeElasticIps', - ), - 'InstanceId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'StackId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Ips' => 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', - ), - ), - ), - 'DescribeElasticLoadBalancers' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeElasticLoadBalancersResult', - '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.DescribeElasticLoadBalancers', - ), - 'StackId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'LayerIds' => 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', - ), - ), - ), - 'DescribeInstances' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeInstancesResult', - '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.DescribeInstances', - ), - 'StackId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'LayerId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'InstanceIds' => 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', - ), - ), - ), - 'DescribeLayers' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeLayersResult', - '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.DescribeLayers', - ), - 'StackId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'LayerIds' => 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', - ), - ), - ), - 'DescribeLoadBasedAutoScaling' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeLoadBasedAutoScalingResult', - '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.DescribeLoadBasedAutoScaling', - ), - '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', - ), - ), - ), - 'DescribeMyUserProfile' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeMyUserProfileResult', - '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.DescribeMyUserProfile', - ), - ), - ), - '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', - ), - ), - ), - 'DescribeRaidArrays' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeRaidArraysResult', - '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.DescribeRaidArrays', - ), - 'InstanceId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'StackId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'RaidArrayIds' => 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', - ), - ), - ), - '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' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeServiceErrorsResult', - '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.DescribeServiceErrors', - ), - 'StackId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'InstanceId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'ServiceErrorIds' => 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', - ), - ), - ), - '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' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeStacksResult', - '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.DescribeStacks', - ), - 'StackIds' => 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', - ), - ), - ), - 'DescribeTimeBasedAutoScaling' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeTimeBasedAutoScalingResult', - '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.DescribeTimeBasedAutoScaling', - ), - 'InstanceIds' => 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', - ), - ), - ), - 'DescribeUserProfiles' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeUserProfilesResult', - '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.DescribeUserProfiles', - ), - 'IamUserArns' => 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', - ), - ), - ), - 'DescribeVolumes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeVolumesResult', - '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.DescribeVolumes', - ), - 'InstanceId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'StackId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'RaidArrayId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'VolumeIds' => 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', - ), - ), - ), - 'DetachElasticLoadBalancer' => 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.DetachElasticLoadBalancer', - ), - 'ElasticLoadBalancerName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'LayerId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a resource was not found.', - 'class' => 'ResourceNotFoundException', - ), - ), - ), - 'DisassociateElasticIp' => 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.DisassociateElasticIp', - ), - 'ElasticIp' => 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', - ), - ), - ), - 'GetHostnameSuggestion' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'GetHostnameSuggestionResult', - '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.GetHostnameSuggestion', - ), - 'LayerId' => 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', - ), - ), - ), - 'GrantAccess' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'GrantAccessResult', - '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.GrantAccess', - ), - 'InstanceId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'ValidForInMinutes' => array( - 'type' => 'numeric', - 'location' => 'json', - 'minimum' => 60, - 'maximum' => 1440, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request was invalid.', - 'class' => 'ValidationException', - ), - array( - 'reason' => 'Indicates that a resource was not found.', - 'class' => 'ResourceNotFoundException', - ), - ), - ), - 'RebootInstance' => 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.RebootInstance', - ), - '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', - ), - ), - ), - 'RegisterElasticIp' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'RegisterElasticIpResult', - '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.RegisterElasticIp', - ), - 'ElasticIp' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - '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', - ), - ), - ), - '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' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'RegisterVolumeResult', - '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.RegisterVolume', - ), - 'Ec2VolumeId' => array( - 'type' => 'string', - 'location' => 'json', - ), - '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', - ), - ), - ), - 'SetLoadBasedAutoScaling' => 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.SetLoadBasedAutoScaling', - ), - 'LayerId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'Enable' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'UpScaling' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'InstanceCount' => array( - 'type' => 'numeric', - ), - 'ThresholdsWaitTime' => array( - 'type' => 'numeric', - 'minimum' => 1, - 'maximum' => 100, - ), - 'IgnoreMetricsTime' => array( - 'type' => 'numeric', - 'minimum' => 1, - 'maximum' => 100, - ), - 'CpuThreshold' => array( - 'type' => 'numeric', - ), - 'MemoryThreshold' => array( - 'type' => 'numeric', - ), - 'LoadThreshold' => array( - 'type' => 'numeric', - ), - 'Alarms' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - ), - ), - 'DownScaling' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'InstanceCount' => array( - 'type' => 'numeric', - ), - 'ThresholdsWaitTime' => array( - 'type' => 'numeric', - 'minimum' => 1, - 'maximum' => 100, - ), - 'IgnoreMetricsTime' => array( - 'type' => 'numeric', - 'minimum' => 1, - 'maximum' => 100, - ), - 'CpuThreshold' => array( - 'type' => 'numeric', - ), - 'MemoryThreshold' => array( - 'type' => 'numeric', - ), - 'LoadThreshold' => array( - 'type' => 'numeric', - ), - 'Alarms' => array( - 'type' => 'array', - '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', - ), - ), - ), - 'SetPermission' => 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.SetPermission', - ), - 'StackId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'IamUserArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'AllowSsh' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'AllowSudo' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'Level' => 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', - ), - ), - ), - 'SetTimeBasedAutoScaling' => 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.SetTimeBasedAutoScaling', - ), - 'InstanceId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'AutoScalingSchedule' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Monday' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'string', - 'data' => array( - 'shape_name' => 'Hour', - ), - ), - ), - 'Tuesday' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'string', - 'data' => array( - 'shape_name' => 'Hour', - ), - ), - ), - 'Wednesday' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'string', - 'data' => array( - 'shape_name' => 'Hour', - ), - ), - ), - 'Thursday' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'string', - 'data' => array( - 'shape_name' => 'Hour', - ), - ), - ), - 'Friday' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'string', - 'data' => array( - 'shape_name' => 'Hour', - ), - ), - ), - 'Saturday' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'string', - 'data' => array( - 'shape_name' => 'Hour', - ), - ), - ), - 'Sunday' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'string', - 'data' => array( - 'shape_name' => 'Hour', - ), - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request was invalid.', - 'class' => 'ValidationException', - ), - array( - 'reason' => 'Indicates that a resource was not found.', - 'class' => 'ResourceNotFoundException', - ), - ), - ), - 'StartInstance' => 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.StartInstance', - ), - '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', - ), - ), - ), - 'StartStack' => 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.StartStack', - ), - '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', - ), - ), - ), - 'StopInstance' => 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.StopInstance', - ), - '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', - ), - ), - ), - 'StopStack' => 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.StopStack', - ), - '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', - ), - ), - ), - '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' => '/', - '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.UnassignVolume', - ), - 'VolumeId' => 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', - ), - ), - ), - 'UpdateApp' => 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.UpdateApp', - ), - 'AppId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'Name' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Description' => 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', - ), - 'AppSource' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Type' => array( - 'type' => 'string', - ), - 'Url' => array( - 'type' => 'string', - ), - 'Username' => array( - 'type' => 'string', - ), - 'Password' => array( - 'type' => 'string', - ), - 'SshKey' => array( - 'type' => 'string', - ), - 'Revision' => array( - 'type' => 'string', - ), - ), - ), - 'Domains' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'EnableSsl' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'SslConfiguration' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Certificate' => array( - 'required' => true, - 'type' => 'string', - ), - 'PrivateKey' => array( - 'required' => true, - 'type' => 'string', - ), - 'Chain' => array( - 'type' => 'string', - ), - ), - ), - 'Attributes' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'string', - 'data' => array( - 'shape_name' => 'AppAttributesKeys', - ), - ), - ), - '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( - 'reason' => 'Indicates that a request was invalid.', - 'class' => 'ValidationException', - ), - array( - 'reason' => 'Indicates that a resource was not found.', - 'class' => 'ResourceNotFoundException', - ), - ), - ), - 'UpdateElasticIp' => 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.UpdateElasticIp', - ), - 'ElasticIp' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'Name' => 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', - ), - ), - ), - 'UpdateInstance' => 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.UpdateInstance', - ), - 'InstanceId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'LayerIds' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'InstanceType' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'AutoScalingType' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Hostname' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Os' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'AmiId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'SshKeyName' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Architecture' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'InstallUpdatesOnBoot' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'EbsOptimized' => array( - 'type' => 'boolean', - 'format' => 'boolean-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', - ), - ), - ), - 'UpdateLayer' => 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.UpdateLayer', - ), - 'LayerId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'Name' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Shortname' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Attributes' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'string', - 'data' => array( - 'shape_name' => 'LayerAttributesKeys', - ), - ), - ), - 'CustomInstanceProfileArn' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'CustomSecurityGroupIds' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'Packages' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'VolumeConfigurations' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'VolumeConfiguration', - 'type' => 'object', - 'properties' => array( - 'MountPoint' => array( - 'required' => true, - 'type' => 'string', - ), - 'RaidLevel' => array( - 'type' => 'numeric', - ), - 'NumberOfDisks' => array( - 'required' => true, - 'type' => 'numeric', - ), - 'Size' => array( - 'required' => true, - 'type' => 'numeric', - ), - 'VolumeType' => array( - 'type' => 'string', - ), - 'Iops' => array( - 'type' => 'numeric', - ), - ), - ), - ), - 'EnableAutoHealing' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'AutoAssignElasticIps' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'AutoAssignPublicIps' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'CustomRecipes' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Setup' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'Configure' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'Deploy' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'Undeploy' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'Shutdown' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - ), - ), - 'InstallUpdatesOnBoot' => array( - 'type' => 'boolean', - '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( - 'reason' => 'Indicates that a request was invalid.', - 'class' => 'ValidationException', - ), - array( - 'reason' => 'Indicates that a resource was not found.', - 'class' => 'ResourceNotFoundException', - ), - ), - ), - 'UpdateStack' => 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.UpdateStack', - ), - 'StackId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'Name' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Attributes' => array( - 'type' => 'object', - 'location' => 'json', - 'additionalProperties' => array( - 'type' => 'string', - 'data' => array( - 'shape_name' => 'StackAttributesKeys', - ), - ), - ), - 'ServiceRoleArn' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'DefaultInstanceProfileArn' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'DefaultOs' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'HostnameTheme' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'DefaultAvailabilityZone' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'DefaultSubnetId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'CustomJson' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'ConfigurationManager' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'Version' => array( - 'type' => 'string', - ), - ), - ), - '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', - ), - 'CustomCookbooksSource' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Type' => array( - 'type' => 'string', - ), - 'Url' => array( - 'type' => 'string', - ), - 'Username' => array( - 'type' => 'string', - ), - 'Password' => array( - 'type' => 'string', - ), - 'SshKey' => array( - 'type' => 'string', - ), - 'Revision' => array( - 'type' => 'string', - ), - ), - ), - 'DefaultSshKeyName' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'DefaultRootDeviceType' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'UseOpsworksSecurityGroups' => array( - 'type' => 'boolean', - 'format' => 'boolean-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', - ), - ), - ), - 'UpdateUserProfile' => 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.UpdateUserProfile', - ), - 'IamUserArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'SshUsername' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'SshPublicKey' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'AllowSelfManagement' => array( - 'type' => 'boolean', - 'format' => 'boolean-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', - ), - ), - ), - 'UpdateVolume' => 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.UpdateVolume', - ), - 'VolumeId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'Name' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'MountPoint' => 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', - ), - ), - ), - ), - 'models' => array( - 'EmptyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), - 'CloneStackResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'StackId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'CreateAppResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'AppId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'CreateDeploymentResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'DeploymentId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'CreateInstanceResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'InstanceId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'CreateLayerResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'LayerId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'CreateStackResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'StackId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'CreateUserProfileResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'IamUserArn' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DescribeAppsResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Apps' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'App', - 'type' => 'object', - 'properties' => array( - 'AppId' => array( - 'type' => 'string', - ), - 'StackId' => array( - 'type' => 'string', - ), - 'Shortname' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - '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', - ), - 'AppSource' => array( - 'type' => 'object', - 'properties' => array( - 'Type' => array( - 'type' => 'string', - ), - 'Url' => array( - 'type' => 'string', - ), - 'Username' => array( - 'type' => 'string', - ), - 'Password' => array( - 'type' => 'string', - ), - 'SshKey' => array( - 'type' => 'string', - ), - 'Revision' => array( - 'type' => 'string', - ), - ), - ), - 'Domains' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'EnableSsl' => array( - 'type' => 'boolean', - ), - 'SslConfiguration' => array( - 'type' => 'object', - 'properties' => array( - 'Certificate' => array( - 'type' => 'string', - ), - 'PrivateKey' => array( - 'type' => 'string', - ), - 'Chain' => array( - 'type' => 'string', - ), - ), - ), - 'Attributes' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'string', - ), - ), - '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', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'DescribeCommandsResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Commands' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Command', - 'type' => 'object', - 'properties' => array( - 'CommandId' => array( - 'type' => 'string', - ), - 'InstanceId' => array( - 'type' => 'string', - ), - 'DeploymentId' => array( - 'type' => 'string', - ), - 'CreatedAt' => array( - 'type' => 'string', - ), - 'AcknowledgedAt' => array( - 'type' => 'string', - ), - 'CompletedAt' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'ExitCode' => array( - 'type' => 'numeric', - ), - 'LogUrl' => array( - 'type' => 'string', - ), - 'Type' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'DescribeDeploymentsResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Deployments' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Deployment', - 'type' => 'object', - 'properties' => array( - 'DeploymentId' => array( - 'type' => 'string', - ), - 'StackId' => array( - 'type' => 'string', - ), - 'AppId' => array( - 'type' => 'string', - ), - 'CreatedAt' => array( - 'type' => 'string', - ), - 'CompletedAt' => array( - 'type' => 'string', - ), - 'Duration' => array( - 'type' => 'numeric', - ), - 'IamUserArn' => array( - 'type' => 'string', - ), - 'Comment' => array( - 'type' => 'string', - ), - 'Command' => array( - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'Args' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - ), - ), - ), - 'Status' => array( - 'type' => 'string', - ), - 'CustomJson' => array( - 'type' => 'string', - ), - 'InstanceIds' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'DescribeElasticIpsResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ElasticIps' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'ElasticIp', - 'type' => 'object', - 'properties' => array( - 'Ip' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - 'Domain' => array( - 'type' => 'string', - ), - 'Region' => array( - 'type' => 'string', - ), - 'InstanceId' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'DescribeElasticLoadBalancersResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ElasticLoadBalancers' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'ElasticLoadBalancer', - 'type' => 'object', - 'properties' => array( - 'ElasticLoadBalancerName' => array( - 'type' => 'string', - ), - 'Region' => array( - 'type' => 'string', - ), - 'DnsName' => array( - 'type' => 'string', - ), - 'StackId' => array( - 'type' => 'string', - ), - 'LayerId' => array( - 'type' => 'string', - ), - 'VpcId' => array( - 'type' => 'string', - ), - 'AvailabilityZones' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'SubnetIds' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'Ec2InstanceIds' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'DescribeInstancesResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Instances' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Instance', - 'type' => 'object', - 'properties' => array( - 'InstanceId' => array( - 'type' => 'string', - ), - 'Ec2InstanceId' => array( - 'type' => 'string', - ), - 'VirtualizationType' => array( - 'type' => 'string', - ), - 'Hostname' => array( - 'type' => 'string', - ), - 'StackId' => array( - 'type' => 'string', - ), - 'LayerIds' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'SecurityGroupIds' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'InstanceType' => array( - 'type' => 'string', - ), - 'InstanceProfileArn' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'Os' => array( - 'type' => 'string', - ), - 'AmiId' => array( - 'type' => 'string', - ), - 'AvailabilityZone' => array( - 'type' => 'string', - ), - 'SubnetId' => array( - 'type' => 'string', - ), - 'PublicDns' => array( - 'type' => 'string', - ), - 'PrivateDns' => array( - 'type' => 'string', - ), - 'PublicIp' => array( - 'type' => 'string', - ), - 'PrivateIp' => array( - 'type' => 'string', - ), - 'ElasticIp' => array( - 'type' => 'string', - ), - 'AutoScalingType' => array( - 'type' => 'string', - ), - 'SshKeyName' => array( - 'type' => 'string', - ), - 'SshHostRsaKeyFingerprint' => array( - 'type' => 'string', - ), - 'SshHostDsaKeyFingerprint' => array( - 'type' => 'string', - ), - 'CreatedAt' => array( - 'type' => 'string', - ), - 'LastServiceErrorId' => array( - 'type' => 'string', - ), - 'Architecture' => array( - 'type' => 'string', - ), - 'RootDeviceType' => array( - 'type' => 'string', - ), - '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', - ), - ), - ), - ), - ), - ), - 'DescribeLayersResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Layers' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Layer', - 'type' => 'object', - 'properties' => array( - 'StackId' => array( - 'type' => 'string', - ), - 'LayerId' => array( - 'type' => 'string', - ), - 'Type' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - 'Shortname' => array( - 'type' => 'string', - ), - 'Attributes' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'string', - ), - ), - 'CustomInstanceProfileArn' => array( - 'type' => 'string', - ), - 'CustomSecurityGroupIds' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'DefaultSecurityGroupNames' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'Packages' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'VolumeConfigurations' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'VolumeConfiguration', - 'type' => 'object', - 'properties' => array( - 'MountPoint' => array( - 'type' => 'string', - ), - 'RaidLevel' => array( - 'type' => 'numeric', - ), - 'NumberOfDisks' => array( - 'type' => 'numeric', - ), - 'Size' => array( - 'type' => 'numeric', - ), - 'VolumeType' => array( - 'type' => 'string', - ), - 'Iops' => array( - 'type' => 'numeric', - ), - ), - ), - ), - 'EnableAutoHealing' => array( - 'type' => 'boolean', - ), - 'AutoAssignElasticIps' => array( - 'type' => 'boolean', - ), - 'AutoAssignPublicIps' => array( - 'type' => 'boolean', - ), - 'DefaultRecipes' => array( - 'type' => 'object', - 'properties' => array( - 'Setup' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'Configure' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'Deploy' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'Undeploy' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'Shutdown' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - ), - ), - 'CustomRecipes' => array( - 'type' => 'object', - 'properties' => array( - 'Setup' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'Configure' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'Deploy' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'Undeploy' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - 'Shutdown' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - ), - ), - 'CreatedAt' => array( - 'type' => 'string', - ), - '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', - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'DescribeLoadBasedAutoScalingResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'LoadBasedAutoScalingConfigurations' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'LoadBasedAutoScalingConfiguration', - 'type' => 'object', - 'properties' => array( - 'LayerId' => array( - 'type' => 'string', - ), - 'Enable' => array( - 'type' => 'boolean', - ), - 'UpScaling' => array( - 'type' => 'object', - 'properties' => array( - 'InstanceCount' => array( - 'type' => 'numeric', - ), - 'ThresholdsWaitTime' => array( - 'type' => 'numeric', - ), - 'IgnoreMetricsTime' => array( - 'type' => 'numeric', - ), - 'CpuThreshold' => array( - 'type' => 'numeric', - ), - 'MemoryThreshold' => array( - 'type' => 'numeric', - ), - 'LoadThreshold' => array( - 'type' => 'numeric', - ), - 'Alarms' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - ), - ), - 'DownScaling' => array( - 'type' => 'object', - 'properties' => array( - 'InstanceCount' => array( - 'type' => 'numeric', - ), - 'ThresholdsWaitTime' => array( - 'type' => 'numeric', - ), - 'IgnoreMetricsTime' => array( - 'type' => 'numeric', - ), - 'CpuThreshold' => array( - 'type' => 'numeric', - ), - 'MemoryThreshold' => array( - 'type' => 'numeric', - ), - 'LoadThreshold' => array( - 'type' => 'numeric', - ), - 'Alarms' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - ), - '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, - 'properties' => array( - 'Permissions' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Permission', - 'type' => 'object', - 'properties' => array( - 'StackId' => array( - 'type' => 'string', - ), - 'IamUserArn' => array( - 'type' => 'string', - ), - 'AllowSsh' => array( - 'type' => 'boolean', - ), - 'AllowSudo' => array( - 'type' => 'boolean', - ), - 'Level' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'DescribeRaidArraysResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RaidArrays' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'RaidArray', - 'type' => 'object', - 'properties' => array( - 'RaidArrayId' => array( - 'type' => 'string', - ), - 'InstanceId' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - 'RaidLevel' => array( - 'type' => 'numeric', - ), - 'NumberOfDisks' => array( - 'type' => 'numeric', - ), - 'Size' => array( - 'type' => 'numeric', - ), - 'Device' => array( - 'type' => 'string', - ), - 'MountPoint' => array( - 'type' => 'string', - ), - 'AvailabilityZone' => array( - 'type' => 'string', - ), - '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', - ), - ), - ), - ), - ), - ), - 'DescribeServiceErrorsResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ServiceErrors' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'ServiceError', - 'type' => 'object', - 'properties' => array( - 'ServiceErrorId' => array( - 'type' => 'string', - ), - 'StackId' => array( - 'type' => 'string', - ), - 'InstanceId' => array( - 'type' => 'string', - ), - 'Type' => array( - 'type' => 'string', - ), - 'Message' => array( - 'type' => 'string', - ), - 'CreatedAt' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - '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, - 'properties' => array( - 'Stacks' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Stack', - 'type' => 'object', - 'properties' => array( - 'StackId' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - 'Arn' => array( - 'type' => 'string', - ), - 'Region' => array( - 'type' => 'string', - ), - 'VpcId' => array( - 'type' => 'string', - ), - 'Attributes' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'string', - ), - ), - 'ServiceRoleArn' => array( - 'type' => 'string', - ), - 'DefaultInstanceProfileArn' => array( - 'type' => 'string', - ), - 'DefaultOs' => array( - 'type' => 'string', - ), - 'HostnameTheme' => array( - 'type' => 'string', - ), - 'DefaultAvailabilityZone' => array( - 'type' => 'string', - ), - 'DefaultSubnetId' => array( - 'type' => 'string', - ), - 'CustomJson' => array( - 'type' => 'string', - ), - 'ConfigurationManager' => array( - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'Version' => array( - 'type' => 'string', - ), - ), - ), - '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( - 'Type' => array( - 'type' => 'string', - ), - 'Url' => array( - 'type' => 'string', - ), - 'Username' => array( - 'type' => 'string', - ), - 'Password' => array( - 'type' => 'string', - ), - 'SshKey' => array( - 'type' => 'string', - ), - 'Revision' => array( - 'type' => 'string', - ), - ), - ), - 'DefaultSshKeyName' => array( - 'type' => 'string', - ), - 'CreatedAt' => array( - 'type' => 'string', - ), - 'DefaultRootDeviceType' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'DescribeTimeBasedAutoScalingResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TimeBasedAutoScalingConfigurations' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'TimeBasedAutoScalingConfiguration', - 'type' => 'object', - 'properties' => array( - 'InstanceId' => array( - 'type' => 'string', - ), - 'AutoScalingSchedule' => array( - 'type' => 'object', - 'properties' => array( - 'Monday' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'string', - ), - ), - 'Tuesday' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'string', - ), - ), - 'Wednesday' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'string', - ), - ), - 'Thursday' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'string', - ), - ), - 'Friday' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'string', - ), - ), - 'Saturday' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'string', - ), - ), - 'Sunday' => array( - 'type' => 'object', - 'additionalProperties' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'DescribeUserProfilesResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'UserProfiles' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'UserProfile', - 'type' => 'object', - 'properties' => array( - 'IamUserArn' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - 'SshUsername' => array( - 'type' => 'string', - ), - 'SshPublicKey' => array( - 'type' => 'string', - ), - 'AllowSelfManagement' => array( - 'type' => 'boolean', - ), - ), - ), - ), - ), - ), - 'DescribeVolumesResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Volumes' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Volume', - 'type' => 'object', - 'properties' => array( - 'VolumeId' => array( - 'type' => 'string', - ), - 'Ec2VolumeId' => array( - 'type' => 'string', - ), - 'Name' => array( - 'type' => 'string', - ), - 'RaidArrayId' => array( - 'type' => 'string', - ), - 'InstanceId' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'Size' => array( - 'type' => 'numeric', - ), - 'Device' => array( - 'type' => 'string', - ), - 'MountPoint' => array( - 'type' => 'string', - ), - 'Region' => array( - 'type' => 'string', - ), - 'AvailabilityZone' => array( - 'type' => 'string', - ), - 'VolumeType' => array( - 'type' => 'string', - ), - 'Iops' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - 'GetHostnameSuggestionResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'LayerId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Hostname' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'GrantAccessResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TemporaryCredential' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'Username' => array( - 'type' => 'string', - ), - 'Password' => array( - 'type' => 'string', - ), - 'ValidForInMinutes' => array( - 'type' => 'numeric', - ), - 'InstanceId' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'RegisterElasticIpResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ElasticIp' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'RegisterInstanceResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'InstanceId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'RegisterVolumeResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'VolumeId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - ), - 'iterators' => 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', - ), - '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/lib/aws-sdk/Aws/PhpHash.php b/lib/aws-sdk/Aws/PhpHash.php new file mode 100644 index 0000000..94c1332 --- /dev/null +++ b/lib/aws-sdk/Aws/PhpHash.php @@ -0,0 +1,81 @@ +algo = $algo; + $this->options = $options; + } + + public function update($data) + { + if ($this->hash !== null) { + $this->reset(); + } + + hash_update($this->getContext(), $data); + } + + public function complete() + { + if ($this->hash) { + return $this->hash; + } + + $this->hash = hash_final($this->getContext(), true); + + if (isset($this->options['base64']) && $this->options['base64']) { + $this->hash = base64_encode($this->hash); + } + + return $this->hash; + } + + public function reset() + { + $this->context = $this->hash = null; + } + + /** + * Get a hash context or create one if needed + * + * @return resource + */ + private function getContext() + { + if (!$this->context) { + $key = isset($this->options['key']) ? $this->options['key'] : null; + $this->context = hash_init( + $this->algo, + $key ? HASH_HMAC : 0, + $key + ); + } + + return $this->context; + } +} diff --git a/lib/aws-sdk/Aws/Rds/Enum/ApplyMethod.php b/lib/aws-sdk/Aws/Rds/Enum/ApplyMethod.php deleted file mode 100644 index fe5fc29..0000000 --- a/lib/aws-sdk/Aws/Rds/Enum/ApplyMethod.php +++ /dev/null @@ -1,28 +0,0 @@ -setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/rds-%s.php' - )) - ->build(); - } -} +class RdsClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/Rds/Resources/rds-2014-10-31.php b/lib/aws-sdk/Aws/Rds/Resources/rds-2014-10-31.php deleted file mode 100644 index de9bb44..0000000 --- a/lib/aws-sdk/Aws/Rds/Resources/rds-2014-10-31.php +++ /dev/null @@ -1,6479 +0,0 @@ - '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/lib/aws-sdk/Aws/Redshift/Enum/SourceType.php b/lib/aws-sdk/Aws/Redshift/Enum/SourceType.php deleted file mode 100644 index d6a8798..0000000 --- a/lib/aws-sdk/Aws/Redshift/Enum/SourceType.php +++ /dev/null @@ -1,30 +0,0 @@ -setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/redshift-%s.php' - )) - ->build(); - } -} +class RedshiftClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/Redshift/Resources/redshift-2012-12-01.php b/lib/aws-sdk/Aws/Redshift/Resources/redshift-2012-12-01.php deleted file mode 100644 index 5f2fdb0..0000000 --- a/lib/aws-sdk/Aws/Redshift/Resources/redshift-2012-12-01.php +++ /dev/null @@ -1,5593 +0,0 @@ - '2012-12-01', - 'endpointPrefix' => 'redshift', - 'serviceFullName' => 'Amazon Redshift', - 'serviceType' => 'query', - 'resultWrapped' => true, - 'signatureVersion' => 'v4', - 'namespace' => 'Redshift', - 'regions' => array( - 'us-east-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'redshift.us-east-1.amazonaws.com', - ), - 'us-west-2' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'redshift.us-west-2.amazonaws.com', - ), - 'eu-west-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'redshift.eu-west-1.amazonaws.com', - ), - 'ap-southeast-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'redshift.ap-southeast-1.amazonaws.com', - ), - 'ap-southeast-2' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'redshift.ap-southeast-2.amazonaws.com', - ), - 'ap-northeast-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'redshift.ap-northeast-1.amazonaws.com', - ), - ), - 'operations' => array( - 'AuthorizeClusterSecurityGroupIngress' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ClusterSecurityGroupWrapper', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'AuthorizeClusterSecurityGroupIngress', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterSecurityGroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'CIDRIP' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'EC2SecurityGroupName' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'EC2SecurityGroupOwnerId' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The cluster security group name does not refer to an existing cluster security group.', - 'class' => 'ClusterSecurityGroupNotFoundException', - ), - array( - 'reason' => 'The state of the cluster security group is not available.', - 'class' => 'InvalidClusterSecurityGroupStateException', - ), - array( - 'reason' => 'The specified CIDR block or EC2 security group is already authorized for the specified cluster security group.', - 'class' => 'AuthorizationAlreadyExistsException', - ), - array( - 'reason' => 'The authorization quota for the cluster security group has been reached.', - 'class' => 'AuthorizationQuotaExceededException', - ), - ), - ), - 'AuthorizeSnapshotAccess' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'SnapshotWrapper', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'AuthorizeSnapshotAccess', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'SnapshotIdentifier' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'SnapshotClusterIdentifier' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'AccountWithRestoreAccess' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The snapshot identifier does not refer to an existing cluster snapshot.', - 'class' => 'ClusterSnapshotNotFoundException', - ), - array( - 'reason' => 'The specified CIDR block or EC2 security group is already authorized for the specified cluster security group.', - 'class' => 'AuthorizationAlreadyExistsException', - ), - array( - 'reason' => 'The authorization quota for the cluster security group has been reached.', - 'class' => 'AuthorizationQuotaExceededException', - ), - ), - ), - 'CopyClusterSnapshot' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'SnapshotWrapper', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CopyClusterSnapshot', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'SourceSnapshotIdentifier' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'SourceSnapshotClusterIdentifier' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'TargetSnapshotIdentifier' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The value specified as a snapshot identifier is already used by an existing snapshot.', - 'class' => 'ClusterSnapshotAlreadyExistsException', - ), - array( - 'reason' => 'The snapshot identifier does not refer to an existing cluster snapshot.', - 'class' => 'ClusterSnapshotNotFoundException', - ), - array( - 'reason' => 'The state of the cluster snapshot is not available, or other accounts are authorized to access the snapshot.', - 'class' => 'InvalidClusterSnapshotStateException', - ), - array( - 'reason' => 'The request would result in the user exceeding the allowed number of cluster snapshots.', - 'class' => 'ClusterSnapshotQuotaExceededException', - ), - ), - ), - 'CreateCluster' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ClusterWrapper', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateCluster', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'DBName' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ClusterIdentifier' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ClusterType' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'NodeType' => 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', - ), - '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', - ), - ), - 'ClusterSubnetGroupName' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'AvailabilityZone' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'PreferredMaintenanceWindow' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ClusterParameterGroupName' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'AutomatedSnapshotRetentionPeriod' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'Port' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'ClusterVersion' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'AllowVersionUpgrade' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'NumberOfNodes' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'PubliclyAccessible' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'Encrypted' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'HsmClientCertificateIdentifier' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'HsmConfigurationIdentifier' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ElasticIp' => 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( - 'reason' => 'The account already has a cluster with the given identifier.', - 'class' => 'ClusterAlreadyExistsException', - ), - array( - 'reason' => 'The number of nodes specified exceeds the allotted capacity of the cluster.', - 'class' => 'InsufficientClusterCapacityException', - ), - 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', - ), - 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 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 Cluster Management Guide.', - 'class' => 'NumberOfNodesQuotaExceededException', - ), - array( - 'reason' => 'The operation would exceed the number of nodes allowed for a cluster.', - 'class' => 'NumberOfNodesPerClusterLimitExceededException', - ), - array( - 'reason' => 'The cluster subnet group name does not refer to an existing cluster subnet group.', - 'class' => 'ClusterSubnetGroupNotFoundException', - ), - array( - 'reason' => 'The cluster subnet group does not cover all Availability Zones.', - 'class' => 'InvalidVPCNetworkStateException', - ), - array( - 'reason' => 'The cluster subnet group cannot be deleted because it is in use.', - 'class' => 'InvalidClusterSubnetGroupStateException', - ), - array( - 'reason' => 'The requested subnet is not valid, or not all of the subnets are in the same VPC.', - 'class' => 'InvalidSubnetException', - ), - array( - 'reason' => 'Your account is not authorized to perform the requested operation.', - 'class' => 'UnauthorizedOperationException', - ), - array( - 'reason' => 'There is no Amazon Redshift HSM client certificate with the specified identifier.', - 'class' => 'HsmClientCertificateNotFoundException', - ), - array( - 'reason' => 'There is no Amazon Redshift HSM configuration with the specified identifier.', - 'class' => 'HsmConfigurationNotFoundException', - ), - 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ClusterParameterGroupWrapper', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateClusterParameterGroup', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ParameterGroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ParameterGroupFamily' => 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' => '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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ClusterSecurityGroupWrapper', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateClusterSecurityGroup', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterSecurityGroupName' => 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' => 'A cluster security group with the same name already exists.', - '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 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'SnapshotWrapper', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateClusterSnapshot', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'SnapshotIdentifier' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ClusterIdentifier' => 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 value specified as a snapshot identifier is already used by an existing snapshot.', - 'class' => 'ClusterSnapshotAlreadyExistsException', - ), - array( - 'reason' => 'The specified cluster is not in the available state.', - 'class' => 'InvalidClusterStateException', - ), - array( - 'reason' => 'The ClusterIdentifier parameter does not refer to an existing cluster.', - 'class' => 'ClusterNotFoundException', - ), - 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ClusterSubnetGroupWrapper', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateClusterSubnetGroup', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterSubnetGroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Description' => 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' => 'A ClusterSubnetGroupName is already used by an existing cluster subnet group.', - '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 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 Cluster Management Guide.', - 'class' => 'ClusterSubnetQuotaExceededException', - ), - array( - 'reason' => 'The requested subnet is not valid, or not all of the subnets are in the same VPC.', - 'class' => 'InvalidSubnetException', - ), - 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( - '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' => '2012-12-01', - ), - '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', - ), - 'SourceIds' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'SourceIds.member', - 'items' => array( - 'name' => 'SourceId', - 'type' => 'string', - ), - ), - 'EventCategories' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'EventCategories.member', - 'items' => array( - 'name' => 'EventCategory', - 'type' => 'string', - ), - ), - 'Severity' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - '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' => '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( - 'reason' => 'There is already an existing event notification subscription with the specified name.', - 'class' => 'SubscriptionAlreadyExistException', - ), - array( - 'reason' => 'Amazon SNS has responded that there is a problem with the specified Amazon SNS topic.', - 'class' => 'SNSInvalidTopicException', - ), - array( - 'reason' => 'You do not have permission to publish to the specified Amazon SNS topic.', - 'class' => 'SNSNoAuthorizationException', - ), - array( - 'reason' => 'An Amazon SNS topic with the specified Amazon Resource Name (ARN) does not exist.', - 'class' => 'SNSTopicArnNotFoundException', - ), - array( - 'reason' => 'An Amazon Redshift event with the specified event ID does not exist.', - 'class' => 'SubscriptionEventIdNotFoundException', - ), - array( - 'reason' => 'The value specified for the event category was not one of the allowed values, or it specified a category that does not apply to the specified source type. The allowed values are Configuration, Management, Monitoring, and Security.', - 'class' => 'SubscriptionCategoryNotFoundException', - ), - array( - 'reason' => 'The value specified for the event severity was not one of the allowed values, or it specified a severity that does not apply to the specified source type. The allowed values are ERROR and INFO.', - 'class' => 'SubscriptionSeverityNotFoundException', - ), - 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'HsmClientCertificateWrapper', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateHsmClientCertificate', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'HsmClientCertificateIdentifier' => 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' => 'There is already an existing Amazon Redshift HSM client certificate with the specified identifier.', - '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 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'HsmConfigurationWrapper', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateHsmConfiguration', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'HsmConfigurationIdentifier' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Description' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'HsmIpAddress' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'HsmPartitionName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'HsmPartitionPassword' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'HsmServerPublicCertificate' => 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' => 'There is already an existing Amazon Redshift HSM configuration with the specified identifier.', - '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 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ClusterWrapper', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteCluster', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterIdentifier' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'SkipFinalClusterSnapshot' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'FinalClusterSnapshotIdentifier' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The ClusterIdentifier parameter does not refer to an existing cluster.', - 'class' => 'ClusterNotFoundException', - ), - array( - 'reason' => 'The specified cluster is not in the available state.', - 'class' => 'InvalidClusterStateException', - ), - array( - 'reason' => 'The value specified as a snapshot identifier is already used by an existing snapshot.', - 'class' => 'ClusterSnapshotAlreadyExistsException', - ), - array( - 'reason' => 'The request would result in the user exceeding the allowed number of cluster snapshots.', - 'class' => 'ClusterSnapshotQuotaExceededException', - ), - ), - ), - 'DeleteClusterParameterGroup' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteClusterParameterGroup', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ParameterGroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The cluster parameter group action can not be completed because another task is in progress that involves the parameter group. Wait a few moments and try the operation again.', - 'class' => 'InvalidClusterParameterGroupStateException', - ), - array( - 'reason' => 'The parameter group name does not refer to an existing parameter group.', - 'class' => 'ClusterParameterGroupNotFoundException', - ), - ), - ), - 'DeleteClusterSecurityGroup' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteClusterSecurityGroup', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterSecurityGroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The state of the cluster security group is not available.', - 'class' => 'InvalidClusterSecurityGroupStateException', - ), - array( - 'reason' => 'The cluster security group name does not refer to an existing cluster security group.', - 'class' => 'ClusterSecurityGroupNotFoundException', - ), - ), - ), - 'DeleteClusterSnapshot' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'SnapshotWrapper', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteClusterSnapshot', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'SnapshotIdentifier' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'SnapshotClusterIdentifier' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The state of the cluster snapshot is not available, or other accounts are authorized to access the snapshot.', - 'class' => 'InvalidClusterSnapshotStateException', - ), - array( - 'reason' => 'The snapshot identifier does not refer to an existing cluster snapshot.', - 'class' => 'ClusterSnapshotNotFoundException', - ), - ), - ), - 'DeleteClusterSubnetGroup' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteClusterSubnetGroup', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterSubnetGroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The cluster subnet group cannot be deleted because it is in use.', - 'class' => 'InvalidClusterSubnetGroupStateException', - ), - array( - 'reason' => 'The state of the subnet is invalid.', - 'class' => 'InvalidClusterSubnetStateException', - ), - array( - 'reason' => 'The cluster subnet group name does not refer to an existing cluster subnet group.', - 'class' => 'ClusterSubnetGroupNotFoundException', - ), - ), - ), - 'DeleteEventSubscription' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteEventSubscription', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'SubscriptionName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteHsmClientCertificate', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'HsmClientCertificateIdentifier' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified HSM client certificate is not in the available state, or it is still in use by one or more Amazon Redshift clusters.', - 'class' => 'InvalidHsmClientCertificateStateException', - ), - array( - 'reason' => 'There is no Amazon Redshift HSM client certificate with the specified identifier.', - 'class' => 'HsmClientCertificateNotFoundException', - ), - ), - ), - 'DeleteHsmConfiguration' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteHsmConfiguration', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'HsmConfigurationIdentifier' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified HSM configuration is not in the available state, or it is still in use by one or more Amazon Redshift clusters.', - 'class' => 'InvalidHsmConfigurationStateException', - ), - array( - 'reason' => 'There is no Amazon Redshift HSM configuration with the specified identifier.', - 'class' => 'HsmConfigurationNotFoundException', - ), - ), - ), - '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' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ClusterParameterGroupsMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeClusterParameterGroups', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ParameterGroupName' => 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 parameter group name does not refer to an existing parameter group.', - 'class' => 'ClusterParameterGroupNotFoundException', - ), - ), - ), - 'DescribeClusterParameters' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ClusterParameterGroupDetails', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeClusterParameters', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ParameterGroupName' => 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 parameter group name does not refer to an existing parameter group.', - 'class' => 'ClusterParameterGroupNotFoundException', - ), - ), - ), - 'DescribeClusterSecurityGroups' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ClusterSecurityGroupMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeClusterSecurityGroups', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterSecurityGroupName' => 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 cluster security group name does not refer to an existing cluster security group.', - 'class' => 'ClusterSecurityGroupNotFoundException', - ), - ), - ), - 'DescribeClusterSnapshots' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'SnapshotMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeClusterSnapshots', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterIdentifier' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'SnapshotIdentifier' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'SnapshotType' => 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', - ), - 'MaxRecords' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'OwnerAccount' => 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 snapshot identifier does not refer to an existing cluster snapshot.', - 'class' => 'ClusterSnapshotNotFoundException', - ), - ), - ), - 'DescribeClusterSubnetGroups' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ClusterSubnetGroupMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeClusterSubnetGroups', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterSubnetGroupName' => 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 cluster subnet group name does not refer to an existing cluster subnet group.', - 'class' => 'ClusterSubnetGroupNotFoundException', - ), - ), - ), - 'DescribeClusterVersions' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ClusterVersionsMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeClusterVersions', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterVersion' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ClusterParameterGroupFamily' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'MaxRecords' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - 'DescribeClusters' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ClustersMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeClusters', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterIdentifier' => 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 ClusterIdentifier parameter does not refer to an existing cluster.', - 'class' => 'ClusterNotFoundException', - ), - ), - ), - 'DescribeDefaultClusterParameters' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DefaultClusterParametersWrapper', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeDefaultClusterParameters', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ParameterGroupFamily' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - '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' => '2012-12-01', - ), - 'SourceType' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - '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' => '2012-12-01', - ), - 'SubscriptionName' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'MaxRecords' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'An Amazon Redshift event notification subscription with the specified 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' => '2012-12-01', - ), - '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', - ), - ), - ), - 'DescribeHsmClientCertificates' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'HsmClientCertificateMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeHsmClientCertificates', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'HsmClientCertificateIdentifier' => 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' => 'There is no Amazon Redshift HSM client certificate with the specified identifier.', - 'class' => 'HsmClientCertificateNotFoundException', - ), - ), - ), - 'DescribeHsmConfigurations' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'HsmConfigurationMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeHsmConfigurations', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'HsmConfigurationIdentifier' => 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' => 'There is no Amazon Redshift HSM configuration with the specified identifier.', - 'class' => 'HsmConfigurationNotFoundException', - ), - ), - ), - 'DescribeLoggingStatus' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'LoggingStatus', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeLoggingStatus', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterIdentifier' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The ClusterIdentifier parameter does not refer to an existing cluster.', - 'class' => 'ClusterNotFoundException', - ), - ), - ), - 'DescribeOrderableClusterOptions' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'OrderableClusterOptionsMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeOrderableClusterOptions', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterVersion' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'NodeType' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'MaxRecords' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - 'DescribeReservedNodeOfferings' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ReservedNodeOfferingsMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeReservedNodeOfferings', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ReservedNodeOfferingId' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'MaxRecords' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Specified offering does not exist.', - 'class' => 'ReservedNodeOfferingNotFoundException', - ), - ), - ), - 'DescribeReservedNodes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ReservedNodesMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeReservedNodes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ReservedNodeId' => 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 reserved compute node not found.', - 'class' => 'ReservedNodeNotFoundException', - ), - ), - ), - 'DescribeResize' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ResizeProgressMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DescribeResize', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterIdentifier' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The ClusterIdentifier parameter does not refer to an existing cluster.', - 'class' => 'ClusterNotFoundException', - ), - array( - 'reason' => 'A resize operation for the specified cluster is not found.', - 'class' => 'ResizeNotFoundException', - ), - ), - ), - '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' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'LoggingStatus', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DisableLogging', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterIdentifier' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The ClusterIdentifier parameter does not refer to an existing cluster.', - 'class' => 'ClusterNotFoundException', - ), - ), - ), - 'DisableSnapshotCopy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ClusterWrapper', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DisableSnapshotCopy', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterIdentifier' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The ClusterIdentifier parameter does not refer to an existing cluster.', - 'class' => 'ClusterNotFoundException', - ), - 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', - ), - ), - ), - 'EnableLogging' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'LoggingStatus', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'EnableLogging', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterIdentifier' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'BucketName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'S3KeyPrefix' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The ClusterIdentifier parameter does not refer to an existing cluster.', - 'class' => 'ClusterNotFoundException', - ), - array( - 'reason' => 'Could not find the specified S3 bucket.', - 'class' => 'BucketNotFoundException', - ), - array( - 'reason' => 'The cluster does not have read bucket or put object permissions on the S3 bucket specified when enabling logging.', - 'class' => 'InsufficientS3BucketPolicyFaultException', - ), - array( - 'reason' => 'The string specified for the logging S3 key prefix does not comply with the documented constraints.', - 'class' => 'InvalidS3KeyPrefixFaultException', - ), - array( - 'reason' => 'The S3 bucket name is invalid. For more information about naming rules, go to Bucket Restrictions and Limitations in the Amazon Simple Storage Service (S3) Developer Guide.', - 'class' => 'InvalidS3BucketNameFaultException', - ), - ), - ), - 'EnableSnapshotCopy' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ClusterWrapper', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'EnableSnapshotCopy', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterIdentifier' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'DestinationRegion' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'RetentionPeriod' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified options are incompatible.', - 'class' => 'IncompatibleOrderableOptionsException', - ), - array( - 'reason' => 'The specified cluster is not in the available state.', - 'class' => 'InvalidClusterStateException', - ), - array( - 'reason' => 'The ClusterIdentifier parameter does not refer to an existing cluster.', - 'class' => 'ClusterNotFoundException', - ), - array( - 'reason' => 'Cross-region snapshot copy was temporarily disabled. Try your request again.', - 'class' => 'CopyToRegionDisabledException', - ), - array( - 'reason' => 'The cluster already has cross-region snapshot copy enabled.', - 'class' => 'SnapshotCopyAlreadyEnabledException', - ), - array( - 'reason' => 'The specified region is incorrect or does not exist.', - 'class' => 'UnknownSnapshotCopyRegionException', - ), - array( - 'reason' => 'Your account is not authorized to perform the requested operation.', - 'class' => 'UnauthorizedOperationException', - ), - ), - ), - 'ModifyCluster' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ClusterWrapper', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ModifyCluster', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterIdentifier' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ClusterType' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'NodeType' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'NumberOfNodes' => array( - 'type' => 'numeric', - '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', - ), - ), - 'MasterUserPassword' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ClusterParameterGroupName' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'AutomatedSnapshotRetentionPeriod' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'PreferredMaintenanceWindow' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ClusterVersion' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'AllowVersionUpgrade' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'HsmClientCertificateIdentifier' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'HsmConfigurationIdentifier' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'NewClusterIdentifier' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified cluster is not in the available state.', - 'class' => 'InvalidClusterStateException', - ), - array( - 'reason' => 'The state of the cluster security group is not available.', - 'class' => 'InvalidClusterSecurityGroupStateException', - ), - array( - 'reason' => 'The ClusterIdentifier parameter does not refer to an existing cluster.', - '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 Cluster Management Guide.', - 'class' => 'NumberOfNodesQuotaExceededException', - ), - array( - 'reason' => 'The cluster security group name does not refer to an existing cluster security group.', - 'class' => 'ClusterSecurityGroupNotFoundException', - ), - array( - 'reason' => 'The parameter group name does not refer to an existing parameter group.', - 'class' => 'ClusterParameterGroupNotFoundException', - ), - array( - 'reason' => 'The number of nodes specified exceeds the allotted capacity of the cluster.', - 'class' => 'InsufficientClusterCapacityException', - ), - array( - 'reason' => 'A request option was specified that is not supported.', - 'class' => 'UnsupportedOptionException', - ), - array( - 'reason' => 'Your account is not authorized to perform the requested operation.', - 'class' => 'UnauthorizedOperationException', - ), - array( - 'reason' => 'There is no Amazon Redshift HSM client certificate with the specified identifier.', - 'class' => 'HsmClientCertificateNotFoundException', - ), - 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ClusterParameterGroupNameMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ModifyClusterParameterGroup', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ParameterGroupName' => 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', - ), - 'DataType' => array( - 'type' => 'string', - ), - 'AllowedValues' => array( - 'type' => 'string', - ), - 'IsModifiable' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - 'MinimumEngineVersion' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The parameter group name does not refer to an existing parameter group.', - 'class' => 'ClusterParameterGroupNotFoundException', - ), - array( - 'reason' => 'The cluster parameter group action can not be completed because another task is in progress that involves the parameter group. Wait a few moments and try the operation again.', - 'class' => 'InvalidClusterParameterGroupStateException', - ), - ), - ), - 'ModifyClusterSubnetGroup' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ClusterSubnetGroupWrapper', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ModifyClusterSubnetGroup', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterSubnetGroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Description' => 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' => 'The cluster subnet group name does not refer to an existing cluster subnet group.', - '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 Cluster Management Guide.', - 'class' => 'ClusterSubnetQuotaExceededException', - ), - array( - 'reason' => 'A specified subnet is already in use by another cluster.', - 'class' => 'SubnetAlreadyInUseException', - ), - array( - 'reason' => 'The requested subnet is not valid, or not all of the subnets are in the same VPC.', - 'class' => 'InvalidSubnetException', - ), - array( - 'reason' => 'Your account is not authorized to perform the requested operation.', - 'class' => 'UnauthorizedOperationException', - ), - ), - ), - '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' => '2012-12-01', - ), - 'SubscriptionName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'SnsTopicArn' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'SourceType' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'SourceIds' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'SourceIds.member', - 'items' => array( - 'name' => 'SourceId', - 'type' => 'string', - ), - ), - 'EventCategories' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'EventCategories.member', - 'items' => array( - 'name' => 'EventCategory', - 'type' => 'string', - ), - ), - 'Severity' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Enabled' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'An Amazon Redshift event notification subscription with the specified name does not exist.', - 'class' => 'SubscriptionNotFoundException', - ), - array( - 'reason' => 'Amazon SNS has responded that there is a problem with the specified Amazon SNS topic.', - 'class' => 'SNSInvalidTopicException', - ), - array( - 'reason' => 'You do not have permission to publish to the specified Amazon SNS topic.', - 'class' => 'SNSNoAuthorizationException', - ), - array( - 'reason' => 'An Amazon SNS topic with the specified Amazon Resource Name (ARN) does not exist.', - 'class' => 'SNSTopicArnNotFoundException', - ), - array( - 'reason' => 'An Amazon Redshift event with the specified event ID does not exist.', - 'class' => 'SubscriptionEventIdNotFoundException', - ), - array( - 'reason' => 'The value specified for the event category was not one of the allowed values, or it specified a category that does not apply to the specified source type. The allowed values are Configuration, Management, Monitoring, and Security.', - 'class' => 'SubscriptionCategoryNotFoundException', - ), - array( - 'reason' => 'The value specified for the event severity was not one of the allowed values, or it specified a severity that does not apply to the specified source type. The allowed values are ERROR and INFO.', - 'class' => 'SubscriptionSeverityNotFoundException', - ), - 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ClusterWrapper', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ModifySnapshotCopyRetentionPeriod', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterIdentifier' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'RetentionPeriod' => array( - 'required' => true, - 'type' => 'numeric', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The ClusterIdentifier parameter does not refer to an existing cluster.', - 'class' => 'ClusterNotFoundException', - ), - array( - 'reason' => 'Cross-region snapshot copy was temporarily disabled. Try your request again.', - 'class' => 'SnapshotCopyDisabledException', - ), - 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ReservedNodeWrapper', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'PurchaseReservedNodeOffering', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ReservedNodeOfferingId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'NodeCount' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Specified offering does not exist.', - 'class' => 'ReservedNodeOfferingNotFoundException', - ), - array( - 'reason' => 'User already has a reservation with the given identifier.', - '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 Cluster Management Guide.', - 'class' => 'ReservedNodeQuotaExceededException', - ), - ), - ), - 'RebootCluster' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ClusterWrapper', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'RebootCluster', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterIdentifier' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified cluster is not in the available state.', - 'class' => 'InvalidClusterStateException', - ), - array( - 'reason' => 'The ClusterIdentifier parameter does not refer to an existing cluster.', - 'class' => 'ClusterNotFoundException', - ), - ), - ), - 'ResetClusterParameterGroup' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ClusterParameterGroupNameMessage', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ResetClusterParameterGroup', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ParameterGroupName' => 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', - ), - 'DataType' => array( - 'type' => 'string', - ), - 'AllowedValues' => array( - 'type' => 'string', - ), - 'IsModifiable' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - 'MinimumEngineVersion' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The cluster parameter group action can not be completed because another task is in progress that involves the parameter group. Wait a few moments and try the operation again.', - 'class' => 'InvalidClusterParameterGroupStateException', - ), - array( - 'reason' => 'The parameter group name does not refer to an existing parameter group.', - 'class' => 'ClusterParameterGroupNotFoundException', - ), - ), - ), - 'RestoreFromClusterSnapshot' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ClusterWrapper', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'RestoreFromClusterSnapshot', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterIdentifier' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'SnapshotIdentifier' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'SnapshotClusterIdentifier' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Port' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'AvailabilityZone' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'AllowVersionUpgrade' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'ClusterSubnetGroupName' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'PubliclyAccessible' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - 'OwnerAccount' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'HsmClientCertificateIdentifier' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'HsmConfigurationIdentifier' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ElasticIp' => 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( - 'reason' => 'The owner of the specified snapshot has not authorized your account to access the snapshot.', - 'class' => 'AccessToSnapshotDeniedException', - ), - array( - 'reason' => 'The account already has a cluster with the given identifier.', - 'class' => 'ClusterAlreadyExistsException', - ), - array( - 'reason' => 'The snapshot identifier does not refer to an existing cluster snapshot.', - '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 Cluster Management Guide.', - 'class' => 'ClusterQuotaExceededException', - ), - array( - 'reason' => 'The number of nodes specified exceeds the allotted capacity of the cluster.', - 'class' => 'InsufficientClusterCapacityException', - ), - array( - 'reason' => 'The state of the cluster snapshot is not available, or other accounts are authorized to access the snapshot.', - 'class' => 'InvalidClusterSnapshotStateException', - ), - array( - 'reason' => 'The restore is invalid.', - '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 Cluster Management Guide.', - 'class' => 'NumberOfNodesQuotaExceededException', - ), - array( - 'reason' => 'The operation would exceed the number of nodes allowed for a cluster.', - 'class' => 'NumberOfNodesPerClusterLimitExceededException', - ), - array( - 'reason' => 'The cluster subnet group does not cover all Availability Zones.', - 'class' => 'InvalidVPCNetworkStateException', - ), - array( - 'reason' => 'The cluster subnet group cannot be deleted because it is in use.', - 'class' => 'InvalidClusterSubnetGroupStateException', - ), - array( - 'reason' => 'The requested subnet is not valid, or not all of the subnets are in the same VPC.', - 'class' => 'InvalidSubnetException', - ), - array( - 'reason' => 'The cluster subnet group name does not refer to an existing cluster subnet group.', - 'class' => 'ClusterSubnetGroupNotFoundException', - ), - array( - 'reason' => 'Your account is not authorized to perform the requested operation.', - 'class' => 'UnauthorizedOperationException', - ), - array( - 'reason' => 'There is no Amazon Redshift HSM client certificate with the specified identifier.', - 'class' => 'HsmClientCertificateNotFoundException', - ), - array( - 'reason' => 'There is no Amazon Redshift HSM configuration with the specified identifier.', - 'class' => 'HsmConfigurationNotFoundException', - ), - 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ClusterSecurityGroupWrapper', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'RevokeClusterSecurityGroupIngress', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterSecurityGroupName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'CIDRIP' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'EC2SecurityGroupName' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'EC2SecurityGroupOwnerId' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The cluster security group name does not refer to an existing cluster security group.', - 'class' => 'ClusterSecurityGroupNotFoundException', - ), - array( - 'reason' => 'The specified CIDR IP range or EC2 security group is not authorized for the specified cluster security group.', - 'class' => 'AuthorizationNotFoundException', - ), - array( - 'reason' => 'The state of the cluster security group is not available.', - 'class' => 'InvalidClusterSecurityGroupStateException', - ), - ), - ), - 'RevokeSnapshotAccess' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'SnapshotWrapper', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'RevokeSnapshotAccess', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'SnapshotIdentifier' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'SnapshotClusterIdentifier' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'AccountWithRestoreAccess' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The owner of the specified snapshot has not authorized your account to access the snapshot.', - 'class' => 'AccessToSnapshotDeniedException', - ), - array( - 'reason' => 'The specified CIDR IP range or EC2 security group is not authorized for the specified cluster security group.', - 'class' => 'AuthorizationNotFoundException', - ), - array( - 'reason' => 'The snapshot identifier does not refer to an existing cluster snapshot.', - 'class' => 'ClusterSnapshotNotFoundException', - ), - ), - ), - 'RotateEncryptionKey' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ClusterWrapper', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'RotateEncryptionKey', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-12-01', - ), - 'ClusterIdentifier' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The ClusterIdentifier parameter does not refer to an existing cluster.', - 'class' => 'ClusterNotFoundException', - ), - array( - 'reason' => 'The specified cluster is not in the available state.', - 'class' => 'InvalidClusterStateException', - ), - ), - ), - ), - 'models' => array( - 'ClusterSecurityGroupWrapper' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ClusterSecurityGroup' => array( - 'type' => 'object', - 'location' => 'xml', - 'data' => array( - 'wrapper' => true, - ), - 'properties' => array( - 'ClusterSecurityGroupName' => 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', - ), - 'Tags' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Tag', - 'type' => 'object', - 'sentAs' => 'Tag', - 'properties' => array( - 'Key' => array( - 'type' => 'string', - ), - 'Value' => 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', - ), - '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', - ), - ), - ), - ), - ), - ), - ), - ), - 'SnapshotWrapper' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Snapshot' => array( - 'type' => 'object', - 'location' => 'xml', - 'data' => array( - 'wrapper' => true, - ), - 'properties' => array( - 'SnapshotIdentifier' => array( - 'type' => 'string', - ), - 'ClusterIdentifier' => array( - 'type' => 'string', - ), - 'SnapshotCreateTime' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'Port' => array( - 'type' => 'numeric', - ), - 'AvailabilityZone' => array( - 'type' => 'string', - ), - 'ClusterCreateTime' => array( - 'type' => 'string', - ), - 'MasterUsername' => array( - 'type' => 'string', - ), - 'ClusterVersion' => array( - 'type' => 'string', - ), - 'SnapshotType' => array( - 'type' => 'string', - ), - 'NodeType' => array( - 'type' => 'string', - ), - 'NumberOfNodes' => array( - 'type' => 'numeric', - ), - 'DBName' => array( - 'type' => 'string', - ), - 'VpcId' => array( - 'type' => 'string', - ), - 'Encrypted' => array( - 'type' => 'boolean', - ), - 'KmsKeyId' => array( - 'type' => 'string', - ), - 'EncryptedWithHSM' => array( - 'type' => 'boolean', - ), - 'AccountsWithRestoreAccess' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AccountWithRestoreAccess', - 'type' => 'object', - 'sentAs' => 'AccountWithRestoreAccess', - 'properties' => array( - 'AccountId' => array( - 'type' => 'string', - ), - ), - ), - ), - 'OwnerAccount' => array( - 'type' => 'string', - ), - 'TotalBackupSizeInMegaBytes' => array( - 'type' => 'numeric', - ), - 'ActualIncrementalBackupSizeInMegaBytes' => array( - 'type' => 'numeric', - ), - 'BackupProgressInMegaBytes' => array( - 'type' => 'numeric', - ), - 'CurrentBackupRateInMegaBytesPerSecond' => array( - 'type' => 'numeric', - ), - 'EstimatedSecondsToCompletion' => array( - 'type' => 'numeric', - ), - 'ElapsedTimeInSeconds' => array( - 'type' => 'numeric', - ), - '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', - ), - ), - ), - ), - ), - ), - ), - ), - 'ClusterWrapper' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Cluster' => array( - 'type' => 'object', - 'location' => 'xml', - 'data' => array( - 'wrapper' => true, - ), - 'properties' => array( - 'ClusterIdentifier' => array( - 'type' => 'string', - ), - 'NodeType' => array( - 'type' => 'string', - ), - 'ClusterStatus' => array( - 'type' => 'string', - ), - 'ModifyStatus' => 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', - ), - ), - ), - 'ClusterCreateTime' => array( - 'type' => 'string', - ), - 'AutomatedSnapshotRetentionPeriod' => array( - 'type' => 'numeric', - ), - 'ClusterSecurityGroups' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'ClusterSecurityGroup', - 'type' => 'object', - 'sentAs' => 'ClusterSecurityGroup', - 'properties' => array( - 'ClusterSecurityGroupName' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - ), - ), - ), - 'VpcSecurityGroups' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'VpcSecurityGroup', - 'type' => 'object', - 'sentAs' => 'VpcSecurityGroup', - 'properties' => array( - 'VpcSecurityGroupId' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - ), - ), - ), - 'ClusterParameterGroups' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'ClusterParameterGroup', - 'type' => 'object', - 'sentAs' => 'ClusterParameterGroup', - 'properties' => array( - 'ParameterGroupName' => array( - 'type' => 'string', - ), - 'ParameterApplyStatus' => array( - 'type' => 'string', - ), - ), - ), - ), - 'ClusterSubnetGroupName' => array( - 'type' => 'string', - ), - 'VpcId' => array( - 'type' => 'string', - ), - 'AvailabilityZone' => array( - 'type' => 'string', - ), - 'PreferredMaintenanceWindow' => array( - 'type' => 'string', - ), - 'PendingModifiedValues' => array( - 'type' => 'object', - 'properties' => array( - 'MasterUserPassword' => array( - 'type' => 'string', - ), - 'NodeType' => array( - 'type' => 'string', - ), - 'NumberOfNodes' => array( - 'type' => 'numeric', - ), - 'ClusterType' => array( - 'type' => 'string', - ), - 'ClusterVersion' => array( - 'type' => 'string', - ), - 'AutomatedSnapshotRetentionPeriod' => array( - 'type' => 'numeric', - ), - 'ClusterIdentifier' => array( - 'type' => 'string', - ), - ), - ), - 'ClusterVersion' => array( - 'type' => 'string', - ), - 'AllowVersionUpgrade' => array( - 'type' => 'boolean', - ), - 'NumberOfNodes' => array( - 'type' => 'numeric', - ), - 'PubliclyAccessible' => array( - 'type' => 'boolean', - ), - 'Encrypted' => array( - 'type' => 'boolean', - ), - 'RestoreStatus' => array( - 'type' => 'object', - 'properties' => array( - 'Status' => array( - 'type' => 'string', - ), - 'CurrentRestoreRateInMegaBytesPerSecond' => array( - 'type' => 'numeric', - ), - 'SnapshotSizeInMegaBytes' => array( - 'type' => 'numeric', - ), - 'ProgressInMegaBytes' => array( - 'type' => 'numeric', - ), - 'ElapsedTimeInSeconds' => array( - 'type' => 'numeric', - ), - 'EstimatedTimeToCompletionInSeconds' => array( - 'type' => 'numeric', - ), - ), - ), - 'HsmStatus' => array( - 'type' => 'object', - 'properties' => array( - 'HsmClientCertificateIdentifier' => array( - 'type' => 'string', - ), - 'HsmConfigurationIdentifier' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - ), - ), - 'ClusterSnapshotCopyStatus' => array( - 'type' => 'object', - 'properties' => array( - 'DestinationRegion' => array( - 'type' => 'string', - ), - 'RetentionPeriod' => array( - 'type' => 'numeric', - ), - ), - ), - 'ClusterPublicKey' => array( - 'type' => 'string', - ), - 'ClusterNodes' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'ClusterNode', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'NodeRole' => array( - 'type' => 'string', - ), - 'PrivateIPAddress' => array( - 'type' => 'string', - ), - 'PublicIPAddress' => array( - 'type' => 'string', - ), - ), - ), - ), - 'ElasticIpStatus' => array( - 'type' => 'object', - 'properties' => array( - 'ElasticIp' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - ), - ), - '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', - ), - ), - ), - ), - ), - 'ClusterParameterGroupWrapper' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ClusterParameterGroup' => array( - 'type' => 'object', - 'location' => 'xml', - 'data' => array( - 'wrapper' => true, - ), - 'properties' => array( - 'ParameterGroupName' => array( - 'type' => 'string', - ), - 'ParameterGroupFamily' => array( - 'type' => 'string', - ), - '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', - ), - ), - ), - ), - ), - ), - ), - ), - 'ClusterSubnetGroupWrapper' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ClusterSubnetGroup' => array( - 'type' => 'object', - 'location' => 'xml', - 'data' => array( - 'wrapper' => true, - ), - 'properties' => array( - 'ClusterSubnetGroupName' => array( - 'type' => 'string', - ), - 'Description' => 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', - ), - ), - ), - ), - 'Tags' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Tag', - 'type' => 'object', - 'sentAs' => 'Tag', - 'properties' => array( - 'Key' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - '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', - ), - ), - 'Severity' => array( - 'type' => 'string', - ), - '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', - ), - ), - ), - ), - ), - ), - ), - ), - 'HsmClientCertificateWrapper' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'HsmClientCertificate' => array( - 'type' => 'object', - 'location' => 'xml', - 'data' => array( - 'wrapper' => true, - ), - 'properties' => array( - 'HsmClientCertificateIdentifier' => array( - 'type' => 'string', - ), - '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', - ), - ), - ), - ), - ), - ), - ), - ), - 'HsmConfigurationWrapper' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'HsmConfiguration' => array( - 'type' => 'object', - 'location' => 'xml', - 'data' => array( - 'wrapper' => true, - ), - 'properties' => array( - 'HsmConfigurationIdentifier' => array( - 'type' => 'string', - ), - 'Description' => array( - 'type' => 'string', - ), - 'HsmIpAddress' => array( - 'type' => 'string', - ), - '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', - ), - ), - ), - ), - ), - ), - ), - ), - 'EmptyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), - 'ClusterParameterGroupsMessage' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'ParameterGroups' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'ClusterParameterGroup', - 'type' => 'object', - 'sentAs' => 'ClusterParameterGroup', - 'properties' => array( - 'ParameterGroupName' => array( - 'type' => 'string', - ), - 'ParameterGroupFamily' => array( - 'type' => 'string', - ), - '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', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'ClusterParameterGroupDetails' => 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', - ), - 'DataType' => array( - 'type' => 'string', - ), - 'AllowedValues' => array( - 'type' => 'string', - ), - 'IsModifiable' => array( - 'type' => 'boolean', - ), - 'MinimumEngineVersion' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ClusterSecurityGroupMessage' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'ClusterSecurityGroups' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'ClusterSecurityGroup', - 'type' => 'object', - 'sentAs' => 'ClusterSecurityGroup', - 'properties' => array( - 'ClusterSecurityGroupName' => 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', - ), - 'Tags' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Tag', - 'type' => 'object', - 'sentAs' => 'Tag', - 'properties' => array( - 'Key' => array( - 'type' => 'string', - ), - 'Value' => 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', - ), - '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', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'SnapshotMessage' => 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( - 'SnapshotIdentifier' => array( - 'type' => 'string', - ), - 'ClusterIdentifier' => array( - 'type' => 'string', - ), - 'SnapshotCreateTime' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'Port' => array( - 'type' => 'numeric', - ), - 'AvailabilityZone' => array( - 'type' => 'string', - ), - 'ClusterCreateTime' => array( - 'type' => 'string', - ), - 'MasterUsername' => array( - 'type' => 'string', - ), - 'ClusterVersion' => array( - 'type' => 'string', - ), - 'SnapshotType' => array( - 'type' => 'string', - ), - 'NodeType' => array( - 'type' => 'string', - ), - 'NumberOfNodes' => array( - 'type' => 'numeric', - ), - 'DBName' => array( - 'type' => 'string', - ), - 'VpcId' => array( - 'type' => 'string', - ), - 'Encrypted' => array( - 'type' => 'boolean', - ), - 'KmsKeyId' => array( - 'type' => 'string', - ), - 'EncryptedWithHSM' => array( - 'type' => 'boolean', - ), - 'AccountsWithRestoreAccess' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AccountWithRestoreAccess', - 'type' => 'object', - 'sentAs' => 'AccountWithRestoreAccess', - 'properties' => array( - 'AccountId' => array( - 'type' => 'string', - ), - ), - ), - ), - 'OwnerAccount' => array( - 'type' => 'string', - ), - 'TotalBackupSizeInMegaBytes' => array( - 'type' => 'numeric', - ), - 'ActualIncrementalBackupSizeInMegaBytes' => array( - 'type' => 'numeric', - ), - 'BackupProgressInMegaBytes' => array( - 'type' => 'numeric', - ), - 'CurrentBackupRateInMegaBytesPerSecond' => array( - 'type' => 'numeric', - ), - 'EstimatedSecondsToCompletion' => array( - 'type' => 'numeric', - ), - 'ElapsedTimeInSeconds' => array( - 'type' => 'numeric', - ), - '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', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'ClusterSubnetGroupMessage' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'ClusterSubnetGroups' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'ClusterSubnetGroup', - 'type' => 'object', - 'sentAs' => 'ClusterSubnetGroup', - 'properties' => array( - 'ClusterSubnetGroupName' => array( - 'type' => 'string', - ), - 'Description' => 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', - ), - ), - ), - ), - 'Tags' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Tag', - 'type' => 'object', - 'sentAs' => 'Tag', - 'properties' => array( - 'Key' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'ClusterVersionsMessage' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'ClusterVersions' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'ClusterVersion', - 'type' => 'object', - 'sentAs' => 'ClusterVersion', - 'properties' => array( - 'ClusterVersion' => array( - 'type' => 'string', - ), - 'ClusterParameterGroupFamily' => array( - 'type' => 'string', - ), - 'Description' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'ClustersMessage' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'Clusters' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'Cluster', - 'type' => 'object', - 'sentAs' => 'Cluster', - 'properties' => array( - 'ClusterIdentifier' => array( - 'type' => 'string', - ), - 'NodeType' => array( - 'type' => 'string', - ), - 'ClusterStatus' => array( - 'type' => 'string', - ), - 'ModifyStatus' => 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', - ), - ), - ), - 'ClusterCreateTime' => array( - 'type' => 'string', - ), - 'AutomatedSnapshotRetentionPeriod' => array( - 'type' => 'numeric', - ), - 'ClusterSecurityGroups' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'ClusterSecurityGroup', - 'type' => 'object', - 'sentAs' => 'ClusterSecurityGroup', - 'properties' => array( - 'ClusterSecurityGroupName' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - ), - ), - ), - 'VpcSecurityGroups' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'VpcSecurityGroup', - 'type' => 'object', - 'sentAs' => 'VpcSecurityGroup', - 'properties' => array( - 'VpcSecurityGroupId' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - ), - ), - ), - 'ClusterParameterGroups' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'ClusterParameterGroup', - 'type' => 'object', - 'sentAs' => 'ClusterParameterGroup', - 'properties' => array( - 'ParameterGroupName' => array( - 'type' => 'string', - ), - 'ParameterApplyStatus' => array( - 'type' => 'string', - ), - ), - ), - ), - 'ClusterSubnetGroupName' => array( - 'type' => 'string', - ), - 'VpcId' => array( - 'type' => 'string', - ), - 'AvailabilityZone' => array( - 'type' => 'string', - ), - 'PreferredMaintenanceWindow' => array( - 'type' => 'string', - ), - 'PendingModifiedValues' => array( - 'type' => 'object', - 'properties' => array( - 'MasterUserPassword' => array( - 'type' => 'string', - ), - 'NodeType' => array( - 'type' => 'string', - ), - 'NumberOfNodes' => array( - 'type' => 'numeric', - ), - 'ClusterType' => array( - 'type' => 'string', - ), - 'ClusterVersion' => array( - 'type' => 'string', - ), - 'AutomatedSnapshotRetentionPeriod' => array( - 'type' => 'numeric', - ), - 'ClusterIdentifier' => array( - 'type' => 'string', - ), - ), - ), - 'ClusterVersion' => array( - 'type' => 'string', - ), - 'AllowVersionUpgrade' => array( - 'type' => 'boolean', - ), - 'NumberOfNodes' => array( - 'type' => 'numeric', - ), - 'PubliclyAccessible' => array( - 'type' => 'boolean', - ), - 'Encrypted' => array( - 'type' => 'boolean', - ), - 'RestoreStatus' => array( - 'type' => 'object', - 'properties' => array( - 'Status' => array( - 'type' => 'string', - ), - 'CurrentRestoreRateInMegaBytesPerSecond' => array( - 'type' => 'numeric', - ), - 'SnapshotSizeInMegaBytes' => array( - 'type' => 'numeric', - ), - 'ProgressInMegaBytes' => array( - 'type' => 'numeric', - ), - 'ElapsedTimeInSeconds' => array( - 'type' => 'numeric', - ), - 'EstimatedTimeToCompletionInSeconds' => array( - 'type' => 'numeric', - ), - ), - ), - 'HsmStatus' => array( - 'type' => 'object', - 'properties' => array( - 'HsmClientCertificateIdentifier' => array( - 'type' => 'string', - ), - 'HsmConfigurationIdentifier' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - ), - ), - 'ClusterSnapshotCopyStatus' => array( - 'type' => 'object', - 'properties' => array( - 'DestinationRegion' => array( - 'type' => 'string', - ), - 'RetentionPeriod' => array( - 'type' => 'numeric', - ), - ), - ), - 'ClusterPublicKey' => array( - 'type' => 'string', - ), - 'ClusterNodes' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'ClusterNode', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'NodeRole' => array( - 'type' => 'string', - ), - 'PrivateIPAddress' => array( - 'type' => 'string', - ), - 'PublicIPAddress' => array( - 'type' => 'string', - ), - ), - ), - ), - 'ElasticIpStatus' => array( - 'type' => 'object', - 'properties' => array( - 'ElasticIp' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - 'DefaultClusterParametersWrapper' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'DefaultClusterParameters' => array( - 'type' => 'object', - 'location' => 'xml', - 'data' => array( - 'wrapper' => true, - ), - 'properties' => array( - 'ParameterGroupFamily' => 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', - ), - ), - ), - ), - ), - ), - ), - ), - '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', - ), - 'Events' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'EventInfoMap', - 'type' => 'object', - 'sentAs' => 'EventInfoMap', - 'properties' => array( - 'EventId' => array( - 'type' => 'string', - ), - 'EventCategories' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'EventCategory', - 'type' => 'string', - 'sentAs' => 'EventCategory', - ), - ), - 'EventDescription' => array( - 'type' => 'string', - ), - 'Severity' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - ), - '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', - ), - ), - 'Severity' => array( - 'type' => 'string', - ), - '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', - ), - ), - ), - ), - ), - ), - ), - ), - ), - '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', - ), - ), - 'Severity' => array( - 'type' => 'string', - ), - 'Date' => array( - 'type' => 'string', - ), - 'EventId' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'HsmClientCertificateMessage' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'HsmClientCertificates' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'HsmClientCertificate', - 'type' => 'object', - 'sentAs' => 'HsmClientCertificate', - 'properties' => array( - 'HsmClientCertificateIdentifier' => array( - 'type' => 'string', - ), - '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', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'HsmConfigurationMessage' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'HsmConfigurations' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'HsmConfiguration', - 'type' => 'object', - 'sentAs' => 'HsmConfiguration', - 'properties' => array( - 'HsmConfigurationIdentifier' => array( - 'type' => 'string', - ), - 'Description' => array( - 'type' => 'string', - ), - 'HsmIpAddress' => array( - 'type' => 'string', - ), - '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', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'LoggingStatus' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'LoggingEnabled' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'BucketName' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'S3KeyPrefix' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'LastSuccessfulDeliveryTime' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'LastFailureTime' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'LastFailureMessage' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'OrderableClusterOptionsMessage' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'OrderableClusterOptions' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'OrderableClusterOption', - 'type' => 'object', - 'sentAs' => 'OrderableClusterOption', - 'properties' => array( - 'ClusterVersion' => array( - 'type' => 'string', - ), - 'ClusterType' => array( - 'type' => 'string', - ), - 'NodeType' => array( - 'type' => 'string', - ), - 'AvailabilityZones' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AvailabilityZone', - 'type' => 'object', - 'sentAs' => 'AvailabilityZone', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ReservedNodeOfferingsMessage' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'ReservedNodeOfferings' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'ReservedNodeOffering', - 'type' => 'object', - 'sentAs' => 'ReservedNodeOffering', - 'properties' => array( - 'ReservedNodeOfferingId' => array( - 'type' => 'string', - ), - 'NodeType' => array( - 'type' => 'string', - ), - 'Duration' => array( - 'type' => 'numeric', - ), - 'FixedPrice' => array( - 'type' => 'numeric', - ), - 'UsagePrice' => array( - 'type' => 'numeric', - ), - 'CurrencyCode' => 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', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'ReservedNodesMessage' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'ReservedNodes' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'ReservedNode', - 'type' => 'object', - 'sentAs' => 'ReservedNode', - 'properties' => array( - 'ReservedNodeId' => array( - 'type' => 'string', - ), - 'ReservedNodeOfferingId' => array( - 'type' => 'string', - ), - 'NodeType' => array( - 'type' => 'string', - ), - 'StartTime' => array( - 'type' => 'string', - ), - 'Duration' => array( - 'type' => 'numeric', - ), - 'FixedPrice' => array( - 'type' => 'numeric', - ), - 'UsagePrice' => array( - 'type' => 'numeric', - ), - 'CurrencyCode' => array( - 'type' => 'string', - ), - 'NodeCount' => array( - 'type' => 'numeric', - ), - 'State' => 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', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'ResizeProgressMessage' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TargetNodeType' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'TargetNumberOfNodes' => array( - 'type' => 'numeric', - 'location' => 'xml', - ), - 'TargetClusterType' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'Status' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'ImportTablesCompleted' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'ImportTablesInProgress' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'ImportTablesNotStarted' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - '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( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ParameterGroupName' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'ParameterGroupStatus' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ReservedNodeWrapper' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ReservedNode' => array( - 'type' => 'object', - 'location' => 'xml', - 'data' => array( - 'wrapper' => true, - ), - 'properties' => array( - 'ReservedNodeId' => array( - 'type' => 'string', - ), - 'ReservedNodeOfferingId' => array( - 'type' => 'string', - ), - 'NodeType' => array( - 'type' => 'string', - ), - 'StartTime' => array( - 'type' => 'string', - ), - 'Duration' => array( - 'type' => 'numeric', - ), - 'FixedPrice' => array( - 'type' => 'numeric', - ), - 'UsagePrice' => array( - 'type' => 'numeric', - ), - 'CurrencyCode' => array( - 'type' => 'string', - ), - 'NodeCount' => array( - 'type' => 'numeric', - ), - 'State' => 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', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'iterators' => array( - '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( - '__default__' => array( - 'acceptor.type' => 'output', - ), - '__ClusterState' => array( - 'interval' => 60, - 'max_attempts' => 30, - 'operation' => 'DescribeClusters', - 'acceptor.path' => 'Clusters/*/ClusterStatus', - ), - 'ClusterAvailable' => array( - 'extends' => '__ClusterState', - 'success.value' => 'available', - 'failure.value' => array( - 'deleting', - ), - 'ignore_errors' => array( - 'ClusterNotFound', - ), - ), - 'ClusterDeleted' => array( - 'extends' => '__ClusterState', - 'success.type' => 'error', - 'success.value' => 'ClusterNotFound', - 'failure.value' => array( - 'creating', - 'rebooting', - ), - ), - 'SnapshotAvailable' => array( - 'interval' => 15, - 'max_attempts' => 20, - 'operation' => 'DescribeClusterSnapshots', - 'acceptor.path' => 'Snapshots/*/Status', - 'success.value' => 'available', - 'failure.value' => array( - 'failed', - 'deleted', - ), - ), - ), -); diff --git a/lib/aws-sdk/Aws/Result.php b/lib/aws-sdk/Aws/Result.php new file mode 100644 index 0000000..ac203d3 --- /dev/null +++ b/lib/aws-sdk/Aws/Result.php @@ -0,0 +1,56 @@ +data = $data; + } + + public function hasKey($name) + { + return isset($this->data[$name]); + } + + public function get($key) + { + return $this[$key]; + } + + public function search($expression) + { + return JmesPath::search($expression, $this->toArray()); + } + + public function __toString() + { + $jsonData = json_encode($this->toArray(), JSON_PRETTY_PRINT); + return <<get(\$key)`) or "accessing the result like an +associative array (e.g. `\$result['key']`). You can also execute JMESPath +expressions on the result data using the search() method. + +{$jsonData} + +EOT; + } + + /** + * @deprecated + */ + public function getPath($path) + { + return $this->search(str_replace('/', '.', $path)); + } +} diff --git a/lib/aws-sdk/Aws/ResultInterface.php b/lib/aws-sdk/Aws/ResultInterface.php new file mode 100644 index 0000000..18a166a --- /dev/null +++ b/lib/aws-sdk/Aws/ResultInterface.php @@ -0,0 +1,54 @@ +execute($command); + * $jpResult = $result->search('foo.*.bar[?baz > `10`]'); + * + * @param string $expression JMESPath expression to execute + * + * @return mixed Returns the result of the JMESPath expression. + * @link http://jmespath.readthedocs.org/en/latest/ JMESPath documentation + */ + public function search($expression); +}; diff --git a/lib/aws-sdk/Aws/ResultPaginator.php b/lib/aws-sdk/Aws/ResultPaginator.php new file mode 100644 index 0000000..fe41146 --- /dev/null +++ b/lib/aws-sdk/Aws/ResultPaginator.php @@ -0,0 +1,179 @@ +client = $client; + $this->operation = $operation; + $this->args = $args; + $this->config = $config; + } + + /** + * Runs a paginator asynchronously and uses a callback to handle results. + * + * The callback should have the signature: function (Aws\Result $result). + * A non-null return value from the callback will be yielded by the + * promise. This means that you can return promises from the callback that + * will need to be resolved before continuing iteration over the remaining + * items, essentially merging in other promises to the iteration. The last + * non-null value returned by the callback will be the result that fulfills + * the promise to any downstream promises. + * + * @param callable $handleResult Callback for handling each page of results. + * The callback accepts the result that was + * yielded as a single argument. If the + * callback returns a promise, the promise + * will be merged into the coroutine. + * + * @return Promise\Promise + */ + public function each(callable $handleResult) + { + return Promise\coroutine(function () use ($handleResult) { + $nextToken = null; + do { + $command = $this->createNextCommand($this->args, $nextToken); + $result = (yield $this->client->executeAsync($command)); + $nextToken = $this->determineNextToken($result); + $retVal = $handleResult($result); + if ($retVal !== null) { + yield Promise\promise_for($retVal); + } + } while ($nextToken); + }); + } + + /** + * Returns an iterator that iterates over the values of applying a JMESPath + * search to each result yielded by the iterator as a flat sequence. + * + * @param string $expression JMESPath expression to apply to each result. + * + * @return \Iterator + */ + public function search($expression) + { + // Apply JMESPath expression on each result, but as a flat sequence. + return flatmap($this, function (Result $result) use ($expression) { + return (array) $result->search($expression); + }); + } + + /** + * @return Result + */ + public function current() + { + return $this->valid() ? $this->result : false; + } + + public function key() + { + return $this->valid() ? $this->requestCount - 1 : null; + } + + public function next() + { + $this->result = null; + } + + public function valid() + { + if ($this->result) { + return true; + } + + if ($this->nextToken || !$this->requestCount) { + $this->result = $this->client->execute( + $this->createNextCommand($this->args, $this->nextToken) + ); + $this->nextToken = $this->determineNextToken($this->result); + $this->requestCount++; + return true; + } + + return false; + } + + public function rewind() + { + $this->requestCount = 0; + $this->nextToken = null; + $this->result = null; + } + + private function createNextCommand(array $args, $nextToken) + { + // Prepare arguments + if ($nextToken) { + $inputArg = $this->config['input_token']; + if (is_array($nextToken) && is_array($inputArg)) { + foreach ($inputArg as $index => $key) { + $args[$key] = $nextToken[$index]; + } + } else { + $args[$inputArg] = $nextToken; + } + } + + return $this->client->getCommand($this->operation, $args); + } + + private function determineNextToken(Result $result) + { + if (!$this->config['output_token']) { + return null; + } + + if ($this->config['more_results'] + && !$result->search($this->config['more_results']) + ) { + return null; + } + + $nextToken = is_array($this->config['output_token']) + ? array_filter($result->search(json_encode($this->config['output_token']))) + : $result->search($this->config['output_token']); + + return $nextToken; + } +} diff --git a/lib/aws-sdk/Aws/RetryMiddleware.php b/lib/aws-sdk/Aws/RetryMiddleware.php new file mode 100644 index 0000000..31f1221 --- /dev/null +++ b/lib/aws-sdk/Aws/RetryMiddleware.php @@ -0,0 +1,120 @@ + true, + 503 => true + ]; + + private static $retryCodes = [ + 'RequestLimitExceeded' => true, + 'Throttling' => true, + 'ThrottlingException' => true, + 'ProvisionedThroughputExceededException' => true, + 'RequestThrottled' => true, + ]; + + private $decider; + private $delay; + private $nextHandler; + + public function __construct( + callable $decider, + callable $delay, + callable $nextHandler + ) { + $this->decider = $decider; + $this->delay = $delay; + $this->nextHandler = $nextHandler; + } + + /** + * Creates a default AWS retry decider function. + * + * @param int $maxRetries + * + * @return callable + */ + public static function createDefaultDecider($maxRetries = 3) + { + return function ( + $retries, + CommandInterface $command, + RequestInterface $request, + ResultInterface $result = null, + $error = null + ) use ($maxRetries) { + if ($retries >= $maxRetries) { + return false; + } elseif (!$error) { + return isset(self::$retryStatusCodes[$result['@metadata']['statusCode']]); + } elseif (!($error instanceof AwsException)) { + return false; + } elseif ($error->isConnectionError()) { + return true; + } elseif (isset(self::$retryCodes[$error->getAwsErrorCode()])) { + return true; + } elseif (isset(self::$retryStatusCodes[$error->getStatusCode()])) { + return true; + } else { + return false; + } + }; + } + + /** + * Delay function that calculates an exponential delay. + * + * @param $retries + * + * @return int + */ + public static function exponentialDelay($retries) + { + return (int) pow(2, $retries - 1); + } + + /** + * @param CommandInterface $command + * @param RequestInterface $request + * + * @return PromiseInterface + */ + public function __invoke( + CommandInterface $command, + RequestInterface $request = null + ) { + $retries = 0; + $handler = $this->nextHandler; + $decider = $this->decider; + $delay = $this->delay; + + $g = function ($value) use ($handler, $decider, $delay, $command, $request, &$retries) { + if ($value instanceof \Exception) { + if (!$decider($retries, $command, $request, null, $value)) { + return \GuzzleHttp\Promise\rejection_for($value); + } + } elseif ($value instanceof ResultInterface + && !$decider($retries, $command, $request, $value, null) + ) { + return $value; + } + + // Delay fn is called with 0, 1, ... so increment after the call. + $command['@http']['delay'] = $delay($retries++); + return $handler($command, $request); + }; + + return $handler($command, $request)->then($g, $g); + } +} diff --git a/lib/aws-sdk/Aws/Route53/Enum/Action.php b/lib/aws-sdk/Aws/Route53/Enum/Action.php deleted file mode 100644 index 42652e5..0000000 --- a/lib/aws-sdk/Aws/Route53/Enum/Action.php +++ /dev/null @@ -1,29 +0,0 @@ - '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/lib/aws-sdk/Aws/Route53/Route53Client.php b/lib/aws-sdk/Aws/Route53/Route53Client.php index 43ebd31..8ea76c6 100644 --- a/lib/aws-sdk/Aws/Route53/Route53Client.php +++ b/lib/aws-sdk/Aws/Route53/Route53Client.php @@ -1,124 +1,39 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/route53-%s.php' - )) - ->build(); + parent::__construct($args); + $this->getHandlerList()->appendInit($this->cleanIdFn(), 'route53.clean_id'); } - /** - * Retrieves the server time from Route53. Can be useful for detecting and/or preventing clock skew. - * - * @return \DateTime The server time from Route53 - * @link http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/RESTAuthentication.html#FetchingDate - */ - public function getServerTime() + private function cleanIdFn() { - try { - $response = $this->get('https://route53.amazonaws.com/date')->send(); - } catch (ServiceResponseException $e) { - $response = $e->getResponse(); - } - - $serverTime = trim($response->getHeader('Date', true)); - $serverTime = \DateTime::createFromFormat(DateFormat::RFC1123, $serverTime); - - return $serverTime; + return function (callable $handler) { + return function (CommandInterface $c, RequestInterface $r = null) use ($handler) { + foreach (['Id', 'HostedZoneId'] as $clean) { + if ($c->hasParam($clean)) { + $c[$clean] = $this->cleanId($c[$clean]); + } + } + return $handler($c, $r); + }; + }; } - /** - * Filter function used to remove ID prefixes. This is used automatically by the client so that Hosted Zone and - * Change Record IDs can be specified with or without the prefix. - * - * @param string $id The ID value to clean - * - * @return string - */ - public static function cleanId($id) + private function cleanId($id) { - return str_replace(array('/hostedzone/', '/change/', '/delegationset/'), '', $id); + static $toClean = ['/hostedzone/', '/change/', '/delegationset/']; + + return str_replace($toClean, '', $id); } } diff --git a/lib/aws-sdk/Aws/Route53Domains/Exception/Route53DomainsException.php b/lib/aws-sdk/Aws/Route53Domains/Exception/Route53DomainsException.php index 2278eec..9874719 100644 --- a/lib/aws-sdk/Aws/Route53Domains/Exception/Route53DomainsException.php +++ b/lib/aws-sdk/Aws/Route53Domains/Exception/Route53DomainsException.php @@ -1,10 +1,9 @@ '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', - ), - array( - 'reason' => 'Amazon Route 53 does not support this top-level domain.', - 'class' => 'UnsupportedTLDException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'Amazon Route 53 does not support this top-level domain.', - 'class' => 'UnsupportedTLDException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'Amazon Route 53 does not support this top-level domain.', - 'class' => 'UnsupportedTLDException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'Amazon Route 53 does not support this top-level domain.', - 'class' => 'UnsupportedTLDException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'Amazon Route 53 does not support this top-level domain.', - 'class' => 'UnsupportedTLDException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'Amazon Route 53 does not support this top-level domain.', - 'class' => 'UnsupportedTLDException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'Amazon Route 53 does not support this top-level domain.', - 'class' => 'UnsupportedTLDException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'Amazon Route 53 does not support this top-level domain.', - 'class' => 'UnsupportedTLDException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'Amazon Route 53 does not support this top-level domain.', - 'class' => 'UnsupportedTLDException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'Amazon Route 53 does not support this top-level domain.', - 'class' => 'UnsupportedTLDException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'Amazon Route 53 does not support this top-level domain.', - 'class' => 'UnsupportedTLDException', - ), - ), - ), - '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', - ), - array( - 'reason' => 'Amazon Route 53 does not support this top-level domain.', - 'class' => 'UnsupportedTLDException', - ), - ), - ), - ), - '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/lib/aws-sdk/Aws/Route53Domains/Route53DomainsClient.php b/lib/aws-sdk/Aws/Route53Domains/Route53DomainsClient.php index 8a7d819..0ebfda5 100644 --- a/lib/aws-sdk/Aws/Route53Domains/Route53DomainsClient.php +++ b/lib/aws-sdk/Aws/Route53Domains/Route53DomainsClient.php @@ -1,48 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/route53domains-%s.php' - )) - ->setExceptionParser(new JsonQueryExceptionParser) - ->build(); - } -} +class Route53DomainsClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/S3/AcpListener.php b/lib/aws-sdk/Aws/S3/AcpListener.php deleted file mode 100644 index 49b5ebc..0000000 --- a/lib/aws-sdk/Aws/S3/AcpListener.php +++ /dev/null @@ -1,75 +0,0 @@ - array('onCommandBeforePrepare', -255)); - } - - /** - * An event handler for constructing ACP definitions. - * - * @param Event $event The event to respond to. - * - * @throws InvalidArgumentException - */ - public function onCommandBeforePrepare(Event $event) - { - /** @var \Guzzle\Service\Command\AbstractCommand $command */ - $command = $event['command']; - $operation = $command->getOperation(); - if ($operation->hasParam('ACP') && $command->hasKey('ACP')) { - if ($acp = $command->get('ACP')) { - // Ensure that the correct object was passed - if (!($acp instanceof Acp)) { - throw new InvalidArgumentException('ACP must be an instance of Aws\S3\Model\Acp'); - } - - // Check if the user specified both an ACP and Grants - if ($command->hasKey('Grants')) { - throw new InvalidArgumentException( - 'Use either the ACP parameter or the Grants parameter. Do not use both.' - ); - } - - // Add the correct headers/body based parameters to the command - if ($operation->hasParam('Grants')) { - $command->overwriteWith($acp->toArray()); - } else { - $acp->updateCommand($command); - } - } - - // Remove the ACP parameter - $command->remove('ACP'); - } - } -} diff --git a/lib/aws-sdk/Aws/S3/ApplyMd5Middleware.php b/lib/aws-sdk/Aws/S3/ApplyMd5Middleware.php new file mode 100644 index 0000000..843cdeb --- /dev/null +++ b/lib/aws-sdk/Aws/S3/ApplyMd5Middleware.php @@ -0,0 +1,64 @@ +nextHandler = $nextHandler; + } + + public function __invoke( + CommandInterface $command, + RequestInterface $request + ) { + $name = $command->getName(); + $body = $request->getBody(); + if (!$request->hasHeader('Content-MD5') + && $body->getSize() + && in_array($name, self::$requireMd5) + ) { + $request = $request->withHeader( + 'Content-MD5', + base64_encode(Psr7\hash($body, 'md5', true)) + ); + } + + $next = $this->nextHandler; + return $next($command, $request); + } +} diff --git a/lib/aws-sdk/Aws/S3/BatchDelete.php b/lib/aws-sdk/Aws/S3/BatchDelete.php new file mode 100644 index 0000000..1f9bbb9 --- /dev/null +++ b/lib/aws-sdk/Aws/S3/BatchDelete.php @@ -0,0 +1,235 @@ + 'us-west-2', + * 'version' => 'latest' + * ]); + * + * $listObjectsParams = ['Bucket' => 'foo', 'Prefix' => 'starts/with/']; + * $delete = Aws\S3\BatchDelete::fromListObjects($s3, $listObjectsParams); + * // Asynchronously delete + * $promise = $delete->promise(); + * // Force synchronous completion + * $delete->delete(); + * + * When using one of the batch delete creational static methods, you can supply + * an associative array of options: + * + * - before: Function invoked before executing a command. The function is + * passed the command that is about to be executed. This can be useful + * for logging, adding custom request headers, etc. + * - batch_size: The size of each delete batch. Defaults to 1000. + * + * @link http://docs.aws.amazon.com/AmazonS3/latest/API/multiobjectdeleteapi.html + */ +class BatchDelete implements PromisorInterface +{ + private $bucket; + /** @var AwsClientInterface */ + private $client; + /** @var callable */ + private $before; + /** @var PromiseInterface */ + private $cachedPromise; + /** @var callable */ + private $promiseCreator; + private $batchSize = 1000; + private $queue = []; + + /** + * Creates a BatchDelete object from all of the paginated results of a + * ListObjects operation. Each result that is returned by the ListObjects + * operation will be deleted. + * + * @param AwsClientInterface $client AWS Client to use. + * @param array $listObjectsParams ListObjects API parameters + * @param array $options BatchDelete options. + * + * @return BatchDelete + */ + public static function fromListObjects( + AwsClientInterface $client, + array $listObjectsParams, + array $options = [] + ) { + $iter = $client->getPaginator('ListObjects', $listObjectsParams); + $bucket = $listObjectsParams['Bucket']; + $fn = function (BatchDelete $that) use ($iter) { + return $iter->each(function ($result) use ($that) { + $promises = []; + foreach ($result['Contents'] as $object) { + if ($promise = $that->enqueue($object)) { + $promises[] = $promise; + } + } + return $promises ? Promise\all($promises) : null; + }); + }; + + return new self($client, $bucket, $fn, $options); + } + + /** + * Creates a BatchDelete object from an iterator that yields results. + * + * @param AwsClientInterface $client AWS Client to use to execute commands + * @param string $bucket Bucket where the objects are stored + * @param \Iterator $iter Iterator that yields assoc arrays + * @param array $options BatchDelete options + * + * @return BatchDelete + */ + public static function fromIterator( + AwsClientInterface $client, + $bucket, + \Iterator $iter, + array $options = [] + ) { + $fn = function (BatchDelete $that) use ($iter) { + return \GuzzleHttp\Promise\coroutine(function () use ($that, $iter) { + foreach ($iter as $obj) { + if ($promise = $that->enqueue($obj)) { + yield $promise; + } + } + }); + }; + + return new self($client, $bucket, $fn, $options); + } + + public function promise() + { + if (!$this->cachedPromise) { + $this->cachedPromise = $this->createPromise(); + } + + return $this->cachedPromise; + } + + /** + * Synchronously deletes all of the objects. + * + * @throws DeleteMultipleObjectsException on error. + */ + public function delete() + { + $this->promise()->wait(); + } + + /** + * @param AwsClientInterface $client Client used to transfer the requests + * @param string $bucket Bucket to delete from. + * @param callable $promiseFn Creates a promise. + * @param array $options Hash of options used with the batch + * + * @throws \InvalidArgumentException if the provided batch_size is <= 0 + */ + private function __construct( + AwsClientInterface $client, + $bucket, + callable $promiseFn, + array $options = [] + ) { + $this->client = $client; + $this->bucket = $bucket; + $this->promiseCreator = $promiseFn; + + if (isset($options['before'])) { + if (!is_callable($options['before'])) { + throw new \InvalidArgumentException('before must be callable'); + } + $this->before = $options['before']; + } + + if (isset($options['batch_size'])) { + if ($options['batch_size'] <= 0) { + throw new \InvalidArgumentException('batch_size is not > 0'); + } + $this->batchSize = min($options['batch_size'], 1000); + } + } + + private function enqueue(array $obj) + { + $this->queue[] = $obj; + return count($this->queue) >= $this->batchSize + ? $this->flushQueue() + : null; + } + + private function flushQueue() + { + static $validKeys = ['Key' => true, 'VersionId' => true]; + + if (count($this->queue) === 0) { + return null; + } + + $batch = []; + while ($obj = array_shift($this->queue)) { + $batch[] = array_intersect_key($obj, $validKeys); + } + + $command = $this->client->getCommand('DeleteObjects', [ + 'Bucket' => $this->bucket, + 'Delete' => ['Objects' => $batch] + ]); + + if ($this->before) { + call_user_func($this->before, $command); + } + + return $this->client->executeAsync($command) + ->then(function ($result) { + if (!empty($result['Errors'])) { + throw new DeleteMultipleObjectsException( + $result['Deleted'] ?: [], + $result['Errors'] + ); + } + return $result; + }); + } + + /** + * Returns a promise that will clean up any references when it completes. + * + * @return PromiseInterface + */ + private function createPromise() + { + // Create the promise + $promise = call_user_func($this->promiseCreator, $this); + $this->promiseCreator = null; + + // Cleans up the promise state and references. + $cleanup = function () { + $this->before = $this->client = $this->queue = null; + }; + + // When done, ensure cleanup and that any remaining are processed. + return $promise->then( + function () use ($cleanup) { + return Promise\promise_for($this->flushQueue()) + ->then($cleanup); + }, + function ($reason) use ($cleanup) { + $cleanup(); + return Promise\rejection_for($reason); + } + ); + } +} diff --git a/lib/aws-sdk/Aws/S3/BucketEndpointMiddleware.php b/lib/aws-sdk/Aws/S3/BucketEndpointMiddleware.php new file mode 100644 index 0000000..2e74b5f --- /dev/null +++ b/lib/aws-sdk/Aws/S3/BucketEndpointMiddleware.php @@ -0,0 +1,75 @@ + true]; + private $nextHandler; + + /** + * Create a middleware wrapper function. + * + * @return callable + */ + public static function wrap() + { + return function (callable $handler) { + return new self($handler); + }; + } + + public function __construct(callable $nextHandler) + { + $this->nextHandler = $nextHandler; + } + + public function __invoke(CommandInterface $command, RequestInterface $request) + { + $nextHandler = $this->nextHandler; + $bucket = $command['Bucket']; + + if ($bucket && !isset(self::$exclusions[$command->getName()])) { + $request = $this->modifyRequest($request, $command); + } + + return $nextHandler($command, $request); + } + + private function removeBucketFromPath($path, $bucket) + { + $len = strlen($bucket) + 1; + if (substr($path, 0, $len) === "/{$bucket}") { + $path = substr($path, $len); + } + + return $path ?: '/'; + } + + private function modifyRequest( + RequestInterface $request, + CommandInterface $command + ) { + $uri = $request->getUri(); + $path = $uri->getPath(); + $bucket = $command['Bucket']; + $path = $this->removeBucketFromPath($path, $bucket); + + // Modify the Key to make sure the key is encoded, but slashes are not. + if ($command['Key']) { + $path = S3Client::encodeKey(rawurldecode($path)); + } + + return $request->withUri($uri->withPath($path)); + } +} diff --git a/lib/aws-sdk/Aws/S3/BucketStyleListener.php b/lib/aws-sdk/Aws/S3/BucketStyleListener.php deleted file mode 100644 index 5d7bbde..0000000 --- a/lib/aws-sdk/Aws/S3/BucketStyleListener.php +++ /dev/null @@ -1,89 +0,0 @@ - true); - - public static function getSubscribedEvents() - { - return array('command.after_prepare' => array('onCommandAfterPrepare', -255)); - } - - /** - * Changes how buckets are referenced in the HTTP request - * - * @param Event $event Event emitted - */ - public function onCommandAfterPrepare(Event $event) - { - $command = $event['command']; - $bucket = $command['Bucket']; - $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)) { - $command['Key'] = $key = implode('/', $key); - } - } - - // Set the key and bucket on the request - $request->getParams()->set('bucket', $bucket)->set('key', $key); - - // Switch to virtual if PathStyle is disabled, or not a DNS compatible bucket name, or the scheme is - // http, or the scheme is https and there are no dots in the host header (avoids SSL issues) - if (!$command['PathStyle'] && $command->getClient()->isValidBucketName($bucket) - && !($command->getRequest()->getScheme() == 'https' && strpos($bucket, '.')) - ) { - // Switch to virtual hosted bucket - $request->setHost($bucket . '.' . $request->getHost()); - $request->setPath(preg_replace("#^/{$bucket}#", '', $request->getPath())); - } else { - $pathStyle = true; - } - - if (!$bucket) { - $request->getParams()->set('s3.resource', '/'); - } elseif ($pathStyle) { - // Path style does not need a trailing slash - $request->getParams()->set( - 's3.resource', - '/' . rawurlencode($bucket) . ($key ? ('/' . S3Client::encodeKey($key)) : '') - ); - } else { - // Bucket style needs a trailing slash - $request->getParams()->set( - 's3.resource', - '/' . rawurlencode($bucket) . ($key ? ('/' . S3Client::encodeKey($key)) : '/') - ); - } - } -} diff --git a/lib/aws-sdk/Aws/S3/Command/S3Command.php b/lib/aws-sdk/Aws/S3/Command/S3Command.php deleted file mode 100644 index d0d3b24..0000000 --- a/lib/aws-sdk/Aws/S3/Command/S3Command.php +++ /dev/null @@ -1,65 +0,0 @@ -client->createPresignedUrl($this->prepare(), $expires); - } - - /** - * {@inheritdoc} - */ - protected function process() - { - $request = $this->getRequest(); - $response = $this->getResponse(); - - // Dispatch an error if a 301 redirect occurred - if ($response->getStatusCode() == 301) { - $this->getClient()->getEventDispatcher()->dispatch('request.error', new Event(array( - 'request' => $this->getRequest(), - 'response' => $response - ))); - } - - parent::process(); - - // Set the GetObject URL if using the PutObject operation - if ($this->result instanceof Model && $this->getName() == 'PutObject') { - $this->result->set('ObjectURL', $request->getUrl()); - } - } -} diff --git a/lib/aws-sdk/Aws/S3/Enum/CannedAcl.php b/lib/aws-sdk/Aws/S3/Enum/CannedAcl.php deleted file mode 100644 index da47045..0000000 --- a/lib/aws-sdk/Aws/S3/Enum/CannedAcl.php +++ /dev/null @@ -1,32 +0,0 @@ -deleted = array_values($deleted); + $this->errors = array_values($errors); + parent::__construct('Unable to delete certain keys when executing a' + . ' DeleteMultipleObjects request: ' + . self::createMessageFromErrors($errors)); + } /** - * @param array $errors Array of errors + * Create a single error message from multiple errors. + * + * @param array $errors Errors encountered + * + * @return string */ - public function __construct(array $errors = array()) + public static function createMessageFromErrors(array $errors) { - parent::__construct('Unable to delete certain keys when executing a DeleteMultipleObjects request'); - $this->errors = $errors; + return "\n- " . implode("\n- ", array_map(function ($key) { + return json_encode($key); + }, $errors)); } /** @@ -45,4 +47,16 @@ class DeleteMultipleObjectsException extends S3Exception { return $this->errors; } + + /** + * Get the successfully deleted objects + * + * @return array Returns an array of associative arrays, each containing + * a 'Key' and optionally 'DeleteMarker' and + * 'DeleterMarkerVersionId' + */ + public function getDeleted() + { + return $this->deleted; + } } diff --git a/lib/aws-sdk/Aws/S3/Exception/EntityTooLargeException.php b/lib/aws-sdk/Aws/S3/Exception/EntityTooLargeException.php deleted file mode 100644 index 66e6da9..0000000 --- a/lib/aws-sdk/Aws/S3/Exception/EntityTooLargeException.php +++ /dev/null @@ -1,22 +0,0 @@ -getStatusCode() === 301) { - $data['type'] = 'client'; - if (isset($data['message'], $data['parsed'])) { - $data['message'] = rtrim($data['message'], '.') . ': "' . $data['parsed']->Endpoint . '".'; - } - } - - return $data; - } - - /** - * {@inheritdoc} - */ - protected function parseHeaders(RequestInterface $request, Response $response, array &$data) - { - parent::parseHeaders($request, $response, $data); - - // Get the request - $status = $response->getStatusCode(); - $method = $request->getMethod(); - - // Attempt to determine code for 403s and 404s - if ($status === 403) { - $data['code'] = 'AccessDenied'; - } elseif ($method === 'HEAD' && $status === 404) { - $path = explode('/', trim($request->getPath(), '/')); - $host = explode('.', $request->getHost()); - $bucket = (count($host) === 4) ? $host[0] : array_shift($path); - $object = array_shift($path); - - if ($bucket && $object) { - $data['code'] = 'NoSuchKey'; - } elseif ($bucket) { - $data['code'] = 'NoSuchBucket'; - } - } - } -} diff --git a/lib/aws-sdk/Aws/S3/Exception/PermanentRedirectException.php b/lib/aws-sdk/Aws/S3/Exception/PermanentRedirectException.php index d2af820..67d916e 100644 --- a/lib/aws-sdk/Aws/S3/Exception/PermanentRedirectException.php +++ b/lib/aws-sdk/Aws/S3/Exception/PermanentRedirectException.php @@ -1,22 +1,4 @@ parser = $parser; + } + + public function __invoke( + CommandInterface $command, + ResponseInterface $response + ) { + $fn = $this->parser; + $result = $fn($command, $response); + + if ($command->getName() === 'GetBucketLocation') { + $location = 'us-east-1'; + if (preg_match('/>(.+?)<\/LocationConstraint>/', $response->getBody(), $matches)) { + $location = $matches[1] === 'EU' ? 'eu-west-1' : $matches[1]; + } + $result['LocationConstraint'] = $location; + } + + return $result; + } +} diff --git a/lib/aws-sdk/Aws/S3/IncompleteMultipartUploadChecker.php b/lib/aws-sdk/Aws/S3/IncompleteMultipartUploadChecker.php deleted file mode 100644 index e47e880..0000000 --- a/lib/aws-sdk/Aws/S3/IncompleteMultipartUploadChecker.php +++ /dev/null @@ -1,56 +0,0 @@ -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('Buckets') ?: array(); - - // If only the names_only set, change arrays to a string - if ($this->get('names_only')) { - foreach ($buckets as &$bucket) { - $bucket = $bucket['Name']; - } - } - - return $buckets; - } -} diff --git a/lib/aws-sdk/Aws/S3/Iterator/ListMultipartUploadsIterator.php b/lib/aws-sdk/Aws/S3/Iterator/ListMultipartUploadsIterator.php deleted file mode 100644 index 592aa0a..0000000 --- a/lib/aws-sdk/Aws/S3/Iterator/ListMultipartUploadsIterator.php +++ /dev/null @@ -1,46 +0,0 @@ -get('Uploads') ?: array(); - - // If there are prefixes and we want them, merge them in - if ($this->get('return_prefixes') && $result->hasKey('CommonPrefixes')) { - $uploads = array_merge($uploads, $result->get('CommonPrefixes')); - } - - return $uploads; - } -} diff --git a/lib/aws-sdk/Aws/S3/Iterator/ListObjectVersionsIterator.php b/lib/aws-sdk/Aws/S3/Iterator/ListObjectVersionsIterator.php deleted file mode 100644 index 991a77e..0000000 --- a/lib/aws-sdk/Aws/S3/Iterator/ListObjectVersionsIterator.php +++ /dev/null @@ -1,48 +0,0 @@ -get('Versions') ?: array(); - $deleteMarkers = $result->get('DeleteMarkers') ?: array(); - $versions = array_merge($versions, $deleteMarkers); - - // If there are prefixes and we want them, merge them in - if ($this->get('return_prefixes') && $result->hasKey('CommonPrefixes')) { - $versions = array_merge($versions, $result->get('CommonPrefixes')); - } - - return $versions; - } -} diff --git a/lib/aws-sdk/Aws/S3/Iterator/ListObjectsIterator.php b/lib/aws-sdk/Aws/S3/Iterator/ListObjectsIterator.php deleted file mode 100644 index 852b2a9..0000000 --- a/lib/aws-sdk/Aws/S3/Iterator/ListObjectsIterator.php +++ /dev/null @@ -1,68 +0,0 @@ -get('Contents') ?: array(); - $numObjects = count($objects); - $lastKey = $numObjects ? $objects[$numObjects - 1]['Key'] : false; - 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 - $getName = function ($object) { - return isset($object['Key']) ? $object['Key'] : $object['Prefix']; - }; - - // If common prefixes returned (i.e. a delimiter was set) and they need to be returned, there is more to do - if ($this->get('return_prefixes') && $result->hasKey('CommonPrefixes')) { - // Collect and format the prefixes to include with the objects - $objects = array_merge($objects, $result->get('CommonPrefixes')); - - // Sort the objects and prefixes to maintain alphabetical order, but only if some of each were returned - if ($this->get('sort_results') && $lastKey && $objects) { - usort($objects, function ($object1, $object2) use ($getName) { - return strcmp($getName($object1), $getName($object2)); - }); - } - } - - // If only the names are desired, iterate through the results and convert the arrays to the object/prefix names - if ($this->get('names_only')) { - $objects = array_map($getName, $objects); - } - - return $objects; - } -} diff --git a/lib/aws-sdk/Aws/S3/Iterator/OpendirIterator.php b/lib/aws-sdk/Aws/S3/Iterator/OpendirIterator.php deleted file mode 100644 index 82c0153..0000000 --- a/lib/aws-sdk/Aws/S3/Iterator/OpendirIterator.php +++ /dev/null @@ -1,86 +0,0 @@ -filePrefix = $filePrefix; - $this->dirHandle = $dirHandle; - $this->next(); - } - - public function __destruct() - { - if ($this->dirHandle) { - closedir($this->dirHandle); - } - } - - public function rewind() - { - $this->key = 0; - rewinddir($this->dirHandle); - } - - public function current() - { - return $this->currentFile; - } - - public function next() - { - if ($file = readdir($this->dirHandle)) { - $this->currentFile = new \SplFileInfo($this->filePrefix . $file); - } else { - $this->currentFile = false; - } - - $this->key++; - } - - public function key() - { - return $this->key; - } - - public function valid() - { - return $this->currentFile !== false; - } -} diff --git a/lib/aws-sdk/Aws/S3/Model/Acp.php b/lib/aws-sdk/Aws/S3/Model/Acp.php deleted file mode 100644 index 9ddc3dd..0000000 --- a/lib/aws-sdk/Aws/S3/Model/Acp.php +++ /dev/null @@ -1,243 +0,0 @@ -setOwner($owner); - $this->setGrants($grants); - } - - /** - * Create an Acp object from an array. This can be used to create an ACP from a response to a GetObject/Bucket ACL - * operation. - * - * @param array $data Array of ACP data - * - * @return Acp - */ - public static function fromArray(array $data) - { - $builder = new AcpBuilder(); - $builder->setOwner((string) $data['Owner']['ID'], $data['Owner']['DisplayName']); - - // Add each Grantee to the ACP - foreach ($data['Grants'] as $grant) { - $permission = $grant['Permission']; - - // Determine the type for response bodies that are missing the Type parameter - if (!isset($grant['Grantee']['Type'])) { - if (isset($grant['Grantee']['ID'])) { - $grant['Grantee']['Type'] = 'CanonicalUser'; - } elseif (isset($grant['Grantee']['URI'])) { - $grant['Grantee']['Type'] = 'Group'; - } else { - $grant['Grantee']['Type'] = 'AmazonCustomerByEmail'; - } - } - - switch ($grant['Grantee']['Type']) { - case 'Group': - $builder->addGrantForGroup($permission, $grant['Grantee']['URI']); - break; - case 'AmazonCustomerByEmail': - $builder->addGrantForEmail($permission, $grant['Grantee']['EmailAddress']); - break; - case 'CanonicalUser': - $builder->addGrantForUser( - $permission, - $grant['Grantee']['ID'], - $grant['Grantee']['DisplayName'] - ); - } - } - - return $builder->build(); - } - - /** - * Set the owner of the ACP policy - * - * @param Grantee $owner ACP policy owner - * - * @return $this - * - * @throws InvalidArgumentException if the grantee does not have an ID set - */ - public function setOwner(Grantee $owner) - { - if (!$owner->isCanonicalUser()) { - throw new InvalidArgumentException('The owner must have an ID set.'); - } - - $this->owner = $owner; - - return $this; - } - - /** - * Get the owner of the ACP policy - * - * @return Grantee - */ - public function getOwner() - { - return $this->owner; - } - - /** - * Set the grants for the ACP - * - * @param array|\Traversable $grants List of grants for the ACP - * - * @return $this - * - * @throws InvalidArgumentException - */ - public function setGrants($grants = array()) - { - $this->grants = new \SplObjectStorage(); - - if ($grants) { - if (is_array($grants) || $grants instanceof \Traversable) { - /** @var Grant $grant */ - foreach ($grants as $grant) { - $this->addGrant($grant); - } - } else { - throw new InvalidArgumentException('Grants must be passed in as an array or Traversable object.'); - } - } - - return $this; - } - - /** - * Get all of the grants - * - * @return \SplObjectStorage - */ - public function getGrants() - { - return $this->grants; - } - - /** - * Add a Grant - * - * @param Grant $grant Grant to add - * - * @return $this - */ - public function addGrant(Grant $grant) - { - if (count($this->grants) < 100) { - $this->grants->attach($grant); - } else { - throw new OverflowException('An ACP may contain up to 100 grants.'); - } - - return $this; - } - - /** - * Get the total number of attributes - * - * @return int - */ - public function count() - { - return count($this->grants); - } - - /** - * Returns the grants for iteration - * - * @return \SplObjectStorage - */ - public function getIterator() - { - return $this->grants; - } - - /** - * Applies grant headers to a command's parameters - * - * @param AbstractCommand $command Command to be updated - * - * @return $this - */ - public function updateCommand(AbstractCommand $command) - { - $parameters = array(); - foreach ($this->grants as $grant) { - /** @var Grant $grant */ - $parameters = array_merge_recursive($parameters, $grant->getParameterArray()); - } - - foreach ($parameters as $name => $values) { - $command->set($name, implode(', ', (array) $values)); - } - - return $this; - } - - /** - * {@inheritdoc} - */ - public function toArray() - { - $grants = array(); - foreach ($this->grants as $grant) { - $grants[] = $grant->toArray(); - } - - return array( - 'Owner' => array( - 'ID' => $this->owner->getId(), - 'DisplayName' => $this->owner->getDisplayName() - ), - 'Grants' => $grants - ); - } -} diff --git a/lib/aws-sdk/Aws/S3/Model/AcpBuilder.php b/lib/aws-sdk/Aws/S3/Model/AcpBuilder.php deleted file mode 100644 index b6d1be7..0000000 --- a/lib/aws-sdk/Aws/S3/Model/AcpBuilder.php +++ /dev/null @@ -1,134 +0,0 @@ -owner = new Grantee($id, $displayName ?: $id, GranteeType::USER); - - return $this; - } - - /** - * Create and store a Grant with a CanonicalUser Grantee for the ACL - * - * @param string $permission Permission for the Grant - * @param string $id Grantee identifier - * @param string $displayName Grantee display name - * - * @return $this - */ - public function addGrantForUser($permission, $id, $displayName = null) - { - $grantee = new Grantee($id, $displayName ?: $id, GranteeType::USER); - $this->addGrant($permission, $grantee); - - return $this; - } - - /** - * Create and store a Grant with a AmazonCustomerByEmail Grantee for the ACL - * - * @param string $permission Permission for the Grant - * @param string $email Grantee email address - * - * @return $this - */ - public function addGrantForEmail($permission, $email) - { - $grantee = new Grantee($email, null, GranteeType::EMAIL); - $this->addGrant($permission, $grantee); - - return $this; - } - - /** - * Create and store a Grant with a Group Grantee for the ACL - * - * @param string $permission Permission for the Grant - * @param string $group Grantee group - * - * @return $this - */ - public function addGrantForGroup($permission, $group) - { - $grantee = new Grantee($group, null, GranteeType::GROUP); - $this->addGrant($permission, $grantee); - - return $this; - } - - /** - * Create and store a Grant for the ACL - * - * @param string $permission Permission for the Grant - * @param Grantee $grantee The Grantee for the Grant - * - * @return $this - */ - public function addGrant($permission, Grantee $grantee) - { - $this->grants[] = new Grant($grantee, $permission); - - return $this; - } - - /** - * Builds the ACP and returns it - * - * @return Acp - */ - public function build() - { - return new Acp($this->owner, $this->grants); - } -} diff --git a/lib/aws-sdk/Aws/S3/Model/ClearBucket.php b/lib/aws-sdk/Aws/S3/Model/ClearBucket.php deleted file mode 100644 index 09982d8..0000000 --- a/lib/aws-sdk/Aws/S3/Model/ClearBucket.php +++ /dev/null @@ -1,189 +0,0 @@ -client = $client; - $this->bucket = $bucket; - } - - /** - * {@inheritdoc} - */ - public static function getAllEvents() - { - return array(self::AFTER_DELETE, self::BEFORE_CLEAR, self::AFTER_CLEAR); - } - - /** - * Set the bucket that is to be cleared - * - * @param string $bucket Name of the bucket to clear - * - * @return $this - */ - public function setBucket($bucket) - { - $this->bucket = $bucket; - - return $this; - } - - /** - * Get the iterator used to yield the keys to be deleted. A default iterator - * will be created and returned if no iterator has been explicitly set. - * - * @return \Iterator - */ - public function getIterator() - { - if (!$this->iterator) { - $this->iterator = $this->client->getIterator('ListObjectVersions', array( - 'Bucket' => $this->bucket - )); - } - - return $this->iterator; - } - - /** - * Sets a different iterator to use than the default iterator. This can be helpful when you wish to delete - * only specific keys from a bucket (e.g. keys that match a certain prefix or delimiter, or perhaps keys that - * pass through a filtered, decorated iterator). - * - * @param \Iterator $iterator Iterator used to yield the keys to be deleted - * - * @return $this - */ - public function setIterator(\Iterator $iterator) - { - $this->iterator = $iterator; - - return $this; - } - - /** - * Set the MFA token to send with each request - * - * @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 $this - */ - public function setMfa($mfa) - { - $this->mfa = $mfa; - - return $this; - } - - /** - * Clear the bucket - * - * @return int Returns the number of deleted keys - * @throws ExceptionCollection - */ - public function clear() - { - $that = $this; - $batch = DeleteObjectsBatch::factory($this->client, $this->bucket, $this->mfa); - $batch = new NotifyingBatch($batch, function ($items) use ($that) { - $that->dispatch(ClearBucket::AFTER_DELETE, array('keys' => $items)); - }); - $batch = new FlushingBatch(new ExceptionBufferingBatch($batch), 1000); - - // Let any listeners know that the bucket is about to be cleared - $this->dispatch(self::BEFORE_CLEAR, array( - 'iterator' => $this->getIterator(), - 'batch' => $batch, - 'mfa' => $this->mfa - )); - - $deleted = 0; - foreach ($this->getIterator() as $object) { - if (isset($object['VersionId'])) { - $versionId = $object['VersionId'] == 'null' ? null : $object['VersionId']; - } else { - $versionId = null; - } - $batch->addKey($object['Key'], $versionId); - $deleted++; - } - $batch->flush(); - - // If any errors were encountered, then throw an ExceptionCollection - if (count($batch->getExceptions())) { - $e = new ExceptionCollection(); - foreach ($batch->getExceptions() as $exception) { - $e->add($exception->getPrevious()); - } - throw $e; - } - - // Let any listeners know that the bucket was cleared - $this->dispatch(self::AFTER_CLEAR, array('deleted' => $deleted)); - - return $deleted; - } -} diff --git a/lib/aws-sdk/Aws/S3/Model/DeleteObjectsBatch.php b/lib/aws-sdk/Aws/S3/Model/DeleteObjectsBatch.php deleted file mode 100644 index ab6425b..0000000 --- a/lib/aws-sdk/Aws/S3/Model/DeleteObjectsBatch.php +++ /dev/null @@ -1,87 +0,0 @@ - %s, VersionId => %s] and call flush when the objects - * should be deleted. - */ -class DeleteObjectsBatch extends AbstractBatchDecorator -{ - /** - * Factory for creating a DeleteObjectsBatch - * - * @param AwsClientInterface $client Client used to transfer requests - * @param string $bucket Bucket that contains the objects to delete - * @param string $mfa MFA token to use with the request - * - * @return static - */ - public static function factory(AwsClientInterface $client, $bucket, $mfa = null) - { - $batch = BatchBuilder::factory() - ->createBatchesWith(new BatchSizeDivisor(1000)) - ->transferWith(new DeleteObjectsTransfer($client, $bucket, $mfa)) - ->build(); - - return new static($batch); - } - - /** - * Add an object to be deleted - * - * @param string $key Key of the object - * @param string $versionId VersionID of the object - * - * @return $this - */ - public function addKey($key, $versionId = null) - { - return $this->add(array( - 'Key' => $key, - 'VersionId' => $versionId - )); - } - - /** - * {@inheritdoc} - */ - public function add($item) - { - if ($item instanceof AbstractCommand && $item->getName() == 'DeleteObject') { - $item = array( - 'Key' => $item['Key'], - 'VersionId' => $item['VersionId'] - ); - } - - if (!is_array($item) || (!isset($item['Key']))) { - throw new InvalidArgumentException('Item must be a DeleteObject command or array containing a Key and VersionId key.'); - } - - return parent::add($item); - } -} diff --git a/lib/aws-sdk/Aws/S3/Model/DeleteObjectsTransfer.php b/lib/aws-sdk/Aws/S3/Model/DeleteObjectsTransfer.php deleted file mode 100644 index 5918ff1..0000000 --- a/lib/aws-sdk/Aws/S3/Model/DeleteObjectsTransfer.php +++ /dev/null @@ -1,133 +0,0 @@ -client = $client; - $this->bucket = $bucket; - $this->mfa = $mfa; - } - - /** - * Set a new MFA token value - * - * @param string $token MFA token - * - * @return $this - */ - public function setMfa($token) - { - $this->mfa = $token; - - return $this; - } - - /** - * {@inheritdoc} - * @throws OverflowException if a batch has more than 1000 items - * @throws InvalidArgumentException when an invalid batch item is encountered - */ - public function transfer(array $batch) - { - if (empty($batch)) { - return; - } - - if (count($batch) > 1000) { - throw new OverflowException('Batches should be divided into chunks of no larger than 1000 keys'); - } - - $del = array(); - $command = $this->client->getCommand('DeleteObjects', array( - 'Bucket' => $this->bucket, - Ua::OPTION => Ua::BATCH - )); - - if ($this->mfa) { - $command->getRequestHeaders()->set('x-amz-mfa', $this->mfa); - } - - foreach ($batch as $object) { - // Ensure that the batch item is valid - if (!is_array($object) || !isset($object['Key'])) { - throw new InvalidArgumentException('Invalid batch item encountered: ' . var_export($batch, true)); - } - $del[] = array( - 'Key' => $object['Key'], - 'VersionId' => isset($object['VersionId']) ? $object['VersionId'] : null - ); - } - - $command['Objects'] = $del; - - $command->execute(); - $this->processResponse($command); - } - - /** - * Process the response of the DeleteMultipleObjects request - * - * @paramCommandInterface $command Command executed - */ - protected function processResponse(CommandInterface $command) - { - $result = $command->getResult(); - - // Ensure that the objects were deleted successfully - if (!empty($result['Errors'])) { - $errors = $result['Errors']; - throw new DeleteMultipleObjectsException($errors); - } - } -} diff --git a/lib/aws-sdk/Aws/S3/Model/Grant.php b/lib/aws-sdk/Aws/S3/Model/Grant.php deleted file mode 100644 index 2e35f05..0000000 --- a/lib/aws-sdk/Aws/S3/Model/Grant.php +++ /dev/null @@ -1,139 +0,0 @@ - 'GrantRead', - Permission::WRITE => 'GrantWrite', - Permission::READ_ACP => 'GrantReadACP', - Permission::WRITE_ACP => 'GrantWriteACP', - Permission::FULL_CONTROL => 'GrantFullControl' - ); - - /** - * @var Grantee The grantee affected by the grant - */ - protected $grantee; - - /** - * @var string The permission set by the grant - */ - protected $permission; - - /** - * Constructs an ACL - * - * @param Grantee $grantee Affected grantee - * @param string $permission Permission applied - */ - public function __construct(Grantee $grantee, $permission) - { - $this->setGrantee($grantee); - $this->setPermission($permission); - } - - /** - * Set the grantee affected by the grant - * - * @param Grantee $grantee Affected grantee - * - * @return $this - */ - public function setGrantee(Grantee $grantee) - { - $this->grantee = $grantee; - - return $this; - } - - /** - * Get the grantee affected by the grant - * - * @return Grantee - */ - public function getGrantee() - { - return $this->grantee; - } - - /** - * Set the permission set by the grant - * - * @param string $permission Permission applied - * - * @return $this - * - * @throws InvalidArgumentException - */ - public function setPermission($permission) - { - $valid = Permission::values(); - if (!in_array($permission, $valid)) { - throw new InvalidArgumentException('The permission must be one of ' - . 'the following: ' . implode(', ', $valid) . '.'); - } - - $this->permission = $permission; - - return $this; - } - - /** - * Get the permission set by the grant - * - * @return string - */ - public function getPermission() - { - return $this->permission; - } - - /** - * Returns an array of the operation parameter and value to set on the operation - * - * @return array - */ - public function getParameterArray() - { - return array( - self::$parameterMap[$this->permission] => $this->grantee->getHeaderValue() - ); - } - - /** - * {@inheritdoc} - */ - public function toArray() - { - return array( - 'Grantee' => $this->grantee->toArray(), - 'Permission' => $this->permission - ); - } -} diff --git a/lib/aws-sdk/Aws/S3/Model/Grantee.php b/lib/aws-sdk/Aws/S3/Model/Grantee.php deleted file mode 100644 index 7634b84..0000000 --- a/lib/aws-sdk/Aws/S3/Model/Grantee.php +++ /dev/null @@ -1,245 +0,0 @@ - 'id', - GranteeType::EMAIL => 'emailAddress', - GranteeType::GROUP => 'uri' - ); - - /** - * @var string The account ID, email, or URL identifying the grantee - */ - protected $id; - - /** - * @var string The display name of the grantee - */ - protected $displayName; - - /** - * @var string The type of the grantee (CanonicalUser or Group) - */ - protected $type; - - /** - * Constructs a Grantee - * - * @param string $id Grantee identifier - * @param string $displayName Grantee display name - * @param string $expectedType The expected type of the grantee - */ - public function __construct($id, $displayName = null, $expectedType = null) - { - $this->type = GranteeType::USER; - $this->setId($id, $expectedType); - $this->setDisplayName($displayName); - } - - /** - * Sets the account ID, email, or URL identifying the grantee - * - * @param string $id Grantee identifier - * @param string $expectedType The expected type of the grantee - * - * @return Grantee - * - * @throws UnexpectedValueException if $expectedType is set and the grantee - * is not of that type after instantiation - * @throws InvalidArgumentException when the ID provided is not a string - */ - public function setId($id, $expectedType = null) - { - if (in_array($id, Group::values())) { - $this->type = GranteeType::GROUP; - } elseif (!is_string($id)) { - throw new InvalidArgumentException('The grantee ID must be provided as a string value.'); - } - - if (strpos($id, '@') !== false) { - $this->type = GranteeType::EMAIL; - } - - if ($expectedType && $expectedType !== $this->type) { - throw new UnexpectedValueException('The type of the grantee after ' - . 'setting the ID did not match the specified, expected type "' - . $expectedType . '" but received "' . $this->type . '".'); - } - - $this->id = $id; - - return $this; - } - - /** - * Gets the grantee identifier - * - * @return string - */ - public function getId() - { - return $this->id; - } - - /** - * Gets the grantee email address (if it is set) - * - * @return null|string - */ - public function getEmailAddress() - { - return $this->isAmazonCustomerByEmail() ? $this->id : null; - } - - /** - * Gets the grantee URI (if it is set) - * - * @return null|string - */ - public function getGroupUri() - { - return $this->isGroup() ? $this->id : null; - } - - /** - * Sets the display name of the grantee - * - * @param string $displayName Grantee name - * - * @return Grantee - * - * @throws LogicException when the grantee type not CanonicalUser - */ - public function setDisplayName($displayName) - { - if ($this->type === GranteeType::USER) { - if (empty($displayName) || !is_string($displayName)) { - $displayName = $this->id; - } - $this->displayName = $displayName; - } else { - if ($displayName) { - throw new LogicException('The display name can only be set ' - . 'for grantees specified by ID.'); - } - } - - return $this; - } - - /** - * Gets the grantee display name - * - * @return string - */ - public function getDisplayName() - { - return $this->displayName; - } - - /** - * Gets the grantee type (determined by ID) - * - * @return string - */ - public function getType() - { - return $this->type; - } - - /** - * Returns true if this grantee object represents a canonical user by ID - * - * @return bool - */ - public function isCanonicalUser() - { - return ($this->type === GranteeType::USER); - } - - /** - * Returns true if this grantee object represents a customer by email - * - * @return bool - */ - public function isAmazonCustomerByEmail() - { - return ($this->type === GranteeType::EMAIL); - } - - /** - * Returns true if this grantee object represents a group by URL - * - * @return bool - */ - public function isGroup() - { - return ($this->type === GranteeType::GROUP); - } - - /** - * Returns the value used in headers to specify this grantee - * - * @return string - */ - public function getHeaderValue() - { - $key = static::$headerMap[$this->type]; - - return "{$key}=\"{$this->id}\""; - } - - /** - * {@inheritdoc} - */ - public function toArray() - { - $result = array( - 'Type' => $this->type - ); - - switch ($this->type) { - case GranteeType::USER: - $result['ID'] = $this->id; - $result['DisplayName'] = $this->displayName; - break; - case GranteeType::EMAIL: - $result['EmailAddress'] = $this->id; - break; - case GranteeType::GROUP: - $result['URI'] = $this->id; - } - - return $result; - } -} diff --git a/lib/aws-sdk/Aws/S3/Model/MultipartUpload/AbstractTransfer.php b/lib/aws-sdk/Aws/S3/Model/MultipartUpload/AbstractTransfer.php deleted file mode 100644 index b1a5734..0000000 --- a/lib/aws-sdk/Aws/S3/Model/MultipartUpload/AbstractTransfer.php +++ /dev/null @@ -1,103 +0,0 @@ -options = array_replace(array( - 'min_part_size' => self::MIN_PART_SIZE, - 'part_md5' => true - ), $this->options); - - // Make sure the part size can be calculated somehow - if (!$this->options['min_part_size'] && !$this->source->getContentLength()) { - throw new RuntimeException('The ContentLength of the data source could not be determined, and no ' - . 'min_part_size option was provided'); - } - } - - /** - * {@inheritdoc} - */ - protected function calculatePartSize() - { - $partSize = $this->source->getContentLength() - ? (int) ceil(($this->source->getContentLength() / self::MAX_PARTS)) - : self::MIN_PART_SIZE; - $partSize = max($this->options['min_part_size'], $partSize); - $partSize = min($partSize, self::MAX_PART_SIZE); - $partSize = max($partSize, self::MIN_PART_SIZE); - - return $partSize; - } - - /** - * {@inheritdoc} - */ - protected function complete() - { - /** @var UploadPart $part */ - $parts = array(); - foreach ($this->state as $part) { - $parts[] = array( - 'PartNumber' => $part->getPartNumber(), - 'ETag' => $part->getETag(), - ); - } - - $params = $this->state->getUploadId()->toParams(); - $params[Ua::OPTION] = Ua::MULTIPART_UPLOAD; - $params['Parts'] = $parts; - $command = $this->client->getCommand('CompleteMultipartUpload', $params); - - return $command->getResult(); - } - - /** - * {@inheritdoc} - */ - protected function getAbortCommand() - { - $params = $this->state->getUploadId()->toParams(); - $params[Ua::OPTION] = Ua::MULTIPART_UPLOAD; - - /** @var OperationCommand $command */ - $command = $this->client->getCommand('AbortMultipartUpload', $params); - - return $command; - } -} diff --git a/lib/aws-sdk/Aws/S3/Model/MultipartUpload/ParallelTransfer.php b/lib/aws-sdk/Aws/S3/Model/MultipartUpload/ParallelTransfer.php deleted file mode 100644 index b42c3c4..0000000 --- a/lib/aws-sdk/Aws/S3/Model/MultipartUpload/ParallelTransfer.php +++ /dev/null @@ -1,124 +0,0 @@ -source->isLocal() || $this->source->getWrapper() != 'plainfile') { - throw new RuntimeException('The source data must be a local file stream when uploading in parallel.'); - } - - if (empty($this->options['concurrency'])) { - throw new RuntimeException('The `concurrency` option must be specified when instantiating.'); - } - } - - /** - * {@inheritdoc} - */ - protected function transfer() - { - $totalParts = (int) ceil($this->source->getContentLength() / $this->partSize); - $concurrency = min($totalParts, $this->options['concurrency']); - $partsToSend = $this->prepareParts($concurrency); - $eventData = $this->getEventData(); - - while (!$this->stopped && count($this->state) < $totalParts) { - - $currentTotal = count($this->state); - $commands = array(); - - for ($i = 0; $i < $concurrency && $i + $currentTotal < $totalParts; $i++) { - - // Move the offset to the correct position - $partsToSend[$i]->setOffset(($currentTotal + $i) * $this->partSize); - - // @codeCoverageIgnoreStart - if ($partsToSend[$i]->getContentLength() == 0) { - break; - } - // @codeCoverageIgnoreEnd - - $params = $this->state->getUploadId()->toParams(); - $eventData['command'] = $this->client->getCommand('UploadPart', array_replace($params, array( - 'PartNumber' => count($this->state) + 1 + $i, - 'Body' => $partsToSend[$i], - 'ContentMD5' => (bool) $this->options['part_md5'], - Ua::OPTION => Ua::MULTIPART_UPLOAD - ))); - $commands[] = $eventData['command']; - // Notify any listeners of the part upload - $this->dispatch(self::BEFORE_PART_UPLOAD, $eventData); - } - - // Allow listeners to stop the transfer if needed - if ($this->stopped) { - break; - } - - // Execute each command, iterate over the results, and add to the transfer state - /** @var \Guzzle\Service\Command\OperationCommand $command */ - foreach ($this->client->execute($commands) as $command) { - $this->state->addPart(UploadPart::fromArray(array( - 'PartNumber' => $command['PartNumber'], - 'ETag' => $command->getResponse()->getEtag(), - 'Size' => (int) $command->getRequest()->getBody()->getContentLength(), - 'LastModified' => gmdate(DateFormat::RFC2822) - ))); - $eventData['command'] = $command; - // Notify any listeners the the part was uploaded - $this->dispatch(self::AFTER_PART_UPLOAD, $eventData); - } - } - } - - /** - * Prepare the entity body handles to use while transferring - * - * @param int $concurrency Number of parts to prepare - * - * @return array Parts to send - */ - protected function prepareParts($concurrency) - { - $url = $this->source->getUri(); - // Use the source EntityBody as the first part - $parts = array(new ReadLimitEntityBody($this->source, $this->partSize)); - // Open EntityBody handles for each part to upload in parallel - for ($i = 1; $i < $concurrency; $i++) { - $parts[] = new ReadLimitEntityBody(new EntityBody(fopen($url, 'r')), $this->partSize); - } - - return $parts; - } -} diff --git a/lib/aws-sdk/Aws/S3/Model/MultipartUpload/SerialTransfer.php b/lib/aws-sdk/Aws/S3/Model/MultipartUpload/SerialTransfer.php deleted file mode 100644 index 2840dd5..0000000 --- a/lib/aws-sdk/Aws/S3/Model/MultipartUpload/SerialTransfer.php +++ /dev/null @@ -1,86 +0,0 @@ -stopped && !$this->source->isConsumed()) { - - if ($this->source->getContentLength() && $this->source->isSeekable()) { - // If the stream is seekable and the Content-Length known, then stream from the data source - $body = new ReadLimitEntityBody($this->source, $this->partSize, $this->source->ftell()); - } else { - // We need to read the data source into a temporary buffer before streaming - $body = EntityBody::factory(); - while ($body->getContentLength() < $this->partSize - && $body->write( - $this->source->read(max(1, min(10 * Size::KB, $this->partSize - $body->getContentLength()))) - )); - } - - // @codeCoverageIgnoreStart - if ($body->getContentLength() == 0) { - break; - } - // @codeCoverageIgnoreEnd - - $params = $this->state->getUploadId()->toParams(); - $command = $this->client->getCommand('UploadPart', array_replace($params, array( - 'PartNumber' => count($this->state) + 1, - 'Body' => $body, - 'ContentMD5' => (bool) $this->options['part_md5'], - Ua::OPTION => Ua::MULTIPART_UPLOAD - ))); - - // Notify observers that the part is about to be uploaded - $eventData = $this->getEventData(); - $eventData['command'] = $command; - $this->dispatch(self::BEFORE_PART_UPLOAD, $eventData); - - // Allow listeners to stop the transfer if needed - if ($this->stopped) { - break; - } - - $response = $command->getResponse(); - - $this->state->addPart(UploadPart::fromArray(array( - 'PartNumber' => $command['PartNumber'], - 'ETag' => $response->getEtag(), - 'Size' => $body->getContentLength(), - 'LastModified' => gmdate(DateFormat::RFC2822) - ))); - - // Notify observers that the part was uploaded - $this->dispatch(self::AFTER_PART_UPLOAD, $eventData); - } - } -} diff --git a/lib/aws-sdk/Aws/S3/Model/MultipartUpload/TransferState.php b/lib/aws-sdk/Aws/S3/Model/MultipartUpload/TransferState.php deleted file mode 100644 index c63663f..0000000 --- a/lib/aws-sdk/Aws/S3/Model/MultipartUpload/TransferState.php +++ /dev/null @@ -1,41 +0,0 @@ -getIterator('ListParts', $uploadId->toParams()) as $part) { - $transferState->addPart(UploadPart::fromArray($part)); - } - - return $transferState; - } -} diff --git a/lib/aws-sdk/Aws/S3/Model/MultipartUpload/UploadBuilder.php b/lib/aws-sdk/Aws/S3/Model/MultipartUpload/UploadBuilder.php deleted file mode 100644 index e30f23a..0000000 --- a/lib/aws-sdk/Aws/S3/Model/MultipartUpload/UploadBuilder.php +++ /dev/null @@ -1,297 +0,0 @@ -setOption('Bucket', $bucket); - } - - /** - * Set the key of the object - * - * @param string $key Key of the object to upload - * - * @return $this - */ - public function setKey($key) - { - return $this->setOption('Key', $key); - } - - /** - * Set the minimum acceptable part size - * - * @param int $minSize Minimum acceptable part size in bytes - * - * @return $this - */ - public function setMinPartSize($minSize) - { - $this->minPartSize = (int) max((int) $minSize, AbstractTransfer::MIN_PART_SIZE); - - return $this; - } - - /** - * Set the concurrency level to use when uploading parts. This affects how - * many parts are uploaded in parallel. You must use a local file as your - * data source when using a concurrency greater than 1 - * - * @param int $concurrency Concurrency level - * - * @return $this - */ - public function setConcurrency($concurrency) - { - $this->concurrency = $concurrency; - - return $this; - } - - /** - * Explicitly set the MD5 hash of the entire body - * - * @param string $md5 MD5 hash of the entire body - * - * @return $this - */ - public function setMd5($md5) - { - $this->md5 = $md5; - - return $this; - } - - /** - * Set to true to have the builder calculate the MD5 hash of the entire data - * source before initiating a multipart upload (this could be an expensive - * operation). This setting can ony be used with seekable data sources. - * - * @param bool $calculateMd5 Set to true to calculate the MD5 hash of the body - * - * @return $this - */ - public function calculateMd5($calculateMd5) - { - $this->calculateEntireMd5 = (bool) $calculateMd5; - - return $this; - } - - /** - * Specify whether or not to calculate the MD5 hash of each uploaded part. - * This setting defaults to true. - * - * @param bool $usePartMd5 Set to true to calculate the MD5 has of each part - * - * @return $this - */ - public function calculatePartMd5($usePartMd5) - { - $this->calculatePartMd5 = (bool) $usePartMd5; - - return $this; - } - - /** - * Set the ACP to use on the object - * - * @param Acp $acp ACP to set on the object - * - * @return $this - */ - public function setAcp(Acp $acp) - { - return $this->setOption('ACP', $acp); - } - - /** - * Set an option to pass to the initial CreateMultipartUpload operation - * - * @param string $name Option name - * @param string $value Option value - * - * @return $this - */ - public function setOption($name, $value) - { - $this->commandOptions[$name] = $value; - - return $this; - } - - /** - * Add an array of options to pass to the initial CreateMultipartUpload operation - * - * @param array $options Array of CreateMultipartUpload operation parameters - * - * @return $this - */ - public function addOptions(array $options) - { - $this->commandOptions = array_replace($this->commandOptions, $options); - - return $this; - } - - /** - * Set an array of transfer options to apply to the upload transfer object - * - * @param array $options Transfer options - * - * @return $this - */ - public function setTransferOptions(array $options) - { - $this->transferOptions = $options; - - return $this; - } - - /** - * {@inheritdoc} - * @throws InvalidArgumentException when attempting to resume a transfer using a non-seekable stream - * @throws InvalidArgumentException when missing required properties (bucket, key, client, source) - */ - public function build() - { - if ($this->state instanceof TransferState) { - $this->commandOptions = array_replace($this->commandOptions, $this->state->getUploadId()->toParams()); - } - - if (!isset($this->commandOptions['Bucket']) || !isset($this->commandOptions['Key']) - || !$this->client || !$this->source - ) { - throw new InvalidArgumentException('You must specify a Bucket, Key, client, and source.'); - } - - if ($this->state && !$this->source->isSeekable()) { - throw new InvalidArgumentException('You cannot resume a transfer using a non-seekable source.'); - } - - // If no state was set, then create one by initiating or loading a multipart upload - if (is_string($this->state)) { - $this->state = TransferState::fromUploadId($this->client, UploadId::fromParams(array( - 'Bucket' => $this->commandOptions['Bucket'], - 'Key' => $this->commandOptions['Key'], - 'UploadId' => $this->state - ))); - } elseif (!$this->state) { - $this->state = $this->initiateMultipartUpload(); - } - - $options = array_replace(array( - 'min_part_size' => $this->minPartSize, - 'part_md5' => (bool) $this->calculatePartMd5, - 'concurrency' => $this->concurrency - ), $this->transferOptions); - - return $this->concurrency > 1 - ? new ParallelTransfer($this->client, $this->state, $this->source, $options) - : new SerialTransfer($this->client, $this->state, $this->source, $options); - } - - /** - * {@inheritdoc} - */ - protected function initiateMultipartUpload() - { - // Determine Content-Type - if (!isset($this->commandOptions['ContentType'])) { - if ($mimeType = $this->source->getContentType()) { - $this->commandOptions['ContentType'] = $mimeType; - } - } - - $params = array_replace(array( - Ua::OPTION => Ua::MULTIPART_UPLOAD, - 'command.headers' => $this->headers, - 'Metadata' => array() - ), $this->commandOptions); - - // Calculate the MD5 hash if none was set and it is asked of the builder - if ($this->calculateEntireMd5) { - $this->md5 = $this->source->getContentMd5(); - } - - // If an MD5 is specified, then add it to the custom headers of the request - // so that it will be returned when downloading the object from Amazon S3 - if ($this->md5) { - $params['Metadata']['x-amz-Content-MD5'] = $this->md5; - } - - $result = $this->client->getCommand('CreateMultipartUpload', $params)->execute(); - // Create a new state based on the initiated upload - $params['UploadId'] = $result['UploadId']; - - return new TransferState(UploadId::fromParams($params)); - } -} diff --git a/lib/aws-sdk/Aws/S3/Model/MultipartUpload/UploadId.php b/lib/aws-sdk/Aws/S3/Model/MultipartUpload/UploadId.php deleted file mode 100644 index 9d5f384..0000000 --- a/lib/aws-sdk/Aws/S3/Model/MultipartUpload/UploadId.php +++ /dev/null @@ -1,35 +0,0 @@ - false, - 'Key' => false, - 'UploadId' => false - ); -} diff --git a/lib/aws-sdk/Aws/S3/Model/MultipartUpload/UploadPart.php b/lib/aws-sdk/Aws/S3/Model/MultipartUpload/UploadPart.php deleted file mode 100644 index e0ded33..0000000 --- a/lib/aws-sdk/Aws/S3/Model/MultipartUpload/UploadPart.php +++ /dev/null @@ -1,74 +0,0 @@ - 'partNumber', - 'ETag' => 'eTag', - 'LastModified' => 'lastModified', - 'Size' => 'size' - ); - - /** - * @var string The ETag for this part - */ - protected $eTag; - - /** - * @var string The last modified date - */ - protected $lastModified; - - /** - * @var int The size (or content-length) in bytes of the upload body - */ - protected $size; - - /** - * @return string - */ - public function getETag() - { - return $this->eTag; - } - - /** - * @return string - */ - public function getLastModified() - { - return $this->lastModified; - } - - /** - * @return int - */ - public function getSize() - { - return $this->size; - } -} diff --git a/lib/aws-sdk/Aws/S3/Model/PostObject.php b/lib/aws-sdk/Aws/S3/Model/PostObject.php deleted file mode 100644 index 0aa2dbc..0000000 --- a/lib/aws-sdk/Aws/S3/Model/PostObject.php +++ /dev/null @@ -1,275 +0,0 @@ - tag attributes as an array - */ - protected $formAttributes; - - /** - * @var array The form's elements as an array - */ - protected $formInputs; - - /** - * @var string The raw json policy - */ - protected $jsonPolicy; - - /** - * Constructs the PostObject - * - * The options array accepts the following keys: - * - * - acl: The access control setting to apply to the uploaded file. Accepts any of the - * CannedAcl constants - * - Cache-Control: The Cache-Control HTTP header value to apply to the uploaded file - * - Content-Disposition: The Content-Disposition HTTP header value to apply to the uploaded file - * - Content-Encoding: The Content-Encoding HTTP header value to apply to the uploaded file - * - Content-Type: The Content-Type HTTP header value to apply to the uploaded file. The default - * value is `application/octet-stream` - * - Expires: The Expires HTTP header value to apply to the uploaded file - * - 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-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 - * instead of an equals comparison, prefix the value with a ^ (carat) - * character - * - * @param S3Client $client - * @param $bucket - * @param array $options - */ - public function __construct(S3Client $client, $bucket, array $options = array()) - { - $this->setClient($client); - $this->setBucket($bucket); - parent::__construct($options); - } - - /** - * Analyzes the provided data and turns it into useful data that can be - * consumed and used to build an upload form - * - * @return PostObject - */ - public function prepareData() - { - // Validate required options - $options = Collection::fromConfig($this->data, array( - 'ttd' => '+1 hour', - 'key' => '^${filename}', - )); - - // Format ttd option - $ttd = $options['ttd']; - $ttd = is_numeric($ttd) ? (int) $ttd : strtotime($ttd); - unset($options['ttd']); - - // 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( - 'expiration' => gmdate(DateFormat::ISO8601_S3, $ttd), - 'conditions' => array(array('bucket' => $this->bucket)) - ); - - // Configure the endpoint/action - $url = Url::factory($this->client->getBaseUrl()); - 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( - 'action' => (string) $url, - 'method' => 'POST', - 'enctype' => 'multipart/form-data' - ); - $this->formInputs = array( - 'AWSAccessKeyId' => $this->client->getCredentials()->getAccessKeyId() - ); - - // Add success action status - $status = (int) $options->get('success_action_status'); - if ($status && in_array($status, array(200, 201, 204))) { - $this->formInputs['success_action_status'] = (string) $status; - $policy['conditions'][] = array( - 'success_action_status' => (string) $status - ); - unset($options['success_action_status']); - } - - // Add other options - foreach ($options as $key => $value) { - $value = (string) $value; - if ($value[0] === '^') { - $value = substr($value, 1); - $this->formInputs[$key] = $value; - $value = preg_replace('/\$\{(\w*)\}/', '', $value); - $policy['conditions'][] = array('starts-with', '$' . $key, $value); - } else { - $this->formInputs[$key] = $value; - $policy['conditions'][] = array($key => $value); - } - } - - // Handle the policy - $policy = is_callable($policyCallback) ? $policyCallback($policy, $this) : $policy; - $this->jsonPolicy = $rawJsonPolicy ?: json_encode($policy); - $this->applyPolicy(); - - return $this; - } - - /** - * Sets the S3 client - * - * @param S3Client $client - * - * @return PostObject - */ - public function setClient(S3Client $client) - { - $this->client = $client; - - return $this; - } - - /** - * Gets the S3 client - * - * @return S3Client - */ - public function getClient() - { - return $this->client; - } - - /** - * Sets the bucket and makes sure it is a valid bucket name - * - * @param string $bucket - * - * @return PostObject - */ - public function setBucket($bucket) - { - $this->bucket = $bucket; - - return $this; - } - - /** - * Gets the bucket name - * - * @return string - */ - public function getBucket() - { - return $this->bucket; - } - - /** - * Gets the form attributes as an array - * - * @return array - */ - public function getFormAttributes() - { - return $this->formAttributes; - } - - /** - * Gets the form inputs as an array - * - * @return array - */ - public function getFormInputs() - { - return $this->formInputs; - } - - /** - * Gets the raw JSON policy - * - * @return string - */ - public function getJsonPolicy() - { - 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/lib/aws-sdk/Aws/S3/MultipartUploader.php b/lib/aws-sdk/Aws/S3/MultipartUploader.php new file mode 100644 index 0000000..3387da5 --- /dev/null +++ b/lib/aws-sdk/Aws/S3/MultipartUploader.php @@ -0,0 +1,222 @@ + $bucket, + 'Key' => $key, + 'UploadId' => $uploadId, + ]); + + foreach ($client->getPaginator('ListParts', $state->getId()) as $result) { + // Get the part size from the first part in the first result. + if (!$state->getPartSize()) { + $state->setPartSize($result->search('Parts[0].Size')); + } + // Mark all the parts returned by ListParts as uploaded. + foreach ($result['Parts'] as $part) { + $state->markPartAsUploaded($part['PartNumber'], [ + 'PartNumber' => $part['PartNumber'], + 'ETag' => $part['ETag'] + ]); + } + } + + $state->setStatus(UploadState::INITIATED); + + return $state; + } + + /** + * Creates a multipart upload for an S3 object. + * + * The valid configuration options are as follows: + * + * - acl: (string) ACL to set on the object being upload. Objects are + * private by default. + * - before_complete: (callable) Callback to invoke before the + * `CompleteMultipartUpload` operation. The callback should have a + * function signature like `function (Aws\Command $command) {...}`. + * - before_initiate: (callable) Callback to invoke before the + * `CreateMultipartUpload` operation. The callback should have a function + * signature like `function (Aws\Command $command) {...}`. + * - before_upload: (callable) Callback to invoke before any `UploadPart` + * operations. The callback should have a function signature like + * `function (Aws\Command $command) {...}`. + * - bucket: (string, required) Name of the bucket to which the object is + * being uploaded. + * - concurrency: (int, default=int(5)) Maximum number of concurrent + * `UploadPart` operations allowed during the multipart upload. + * - key: (string, required) Key to use for the object being uploaded. + * - part_size: (int, default=int(5242880)) Part size, in bytes, to use when + * doing a multipart upload. This must between 5 MB and 5 GB, inclusive. + * - state: (Aws\Multipart\UploadState) An object that represents the state + * of the multipart upload and that is used to resume a previous upload. + * When this option is provided, the `bucket`, `key`, and `part_size` + * options are ignored. + * + * @param S3Client $client Client used for the upload. + * @param mixed $source Source of the data to upload. + * @param array $config Configuration used to perform the upload. + */ + public function __construct(S3Client $client, $source, array $config = []) + { + parent::__construct($client, $source, $config + [ + 'bucket' => null, + 'key' => null, + ]); + } + + protected function loadUploadWorkflowInfo() + { + return [ + 'command' => [ + 'initiate' => 'CreateMultipartUpload', + 'upload' => 'UploadPart', + 'complete' => 'CompleteMultipartUpload', + ], + 'id' => [ + 'bucket' => 'Bucket', + 'key' => 'Key', + 'upload_id' => 'UploadId', + ], + 'part_num' => 'PartNumber', + ]; + } + + protected function determinePartSize() + { + // Make sure the part size is set. + $partSize = $this->config['part_size'] ?: self::PART_MIN_SIZE; + + // Adjust the part size to be larger for known, x-large uploads. + if ($sourceSize = $this->source->getSize()) { + $partSize = (int) max( + $partSize, + ceil($sourceSize / self::PART_MAX_NUM) + ); + } + + // Ensure that the part size follows the rules: 5 MB <= size <= 5 GB. + if ($partSize < self::PART_MIN_SIZE || $partSize > self::PART_MAX_SIZE) { + throw new \InvalidArgumentException('The part size must be no less ' + . 'than 5 MB and no greater than 5 GB.'); + } + + return $partSize; + } + + protected function createPart($seekable, $number) + { + // Initialize the array of part data that will be returned. + $data = ['PartNumber' => $number]; + + // Read from the source to create the body stream. + if ($seekable) { + // Case 1: Source is seekable, use lazy stream to defer work. + $body = $this->limitPartStream( + new Psr7\LazyOpenStream($this->source->getMetadata('uri'), 'r') + ); + } else { + // Case 2: Stream is not seekable; must store in temp stream. + $source = $this->limitPartStream($this->source); + $source = $this->decorateWithHashes($source, $data); + $body = Psr7\stream_for(); + Psr7\copy_to_stream($source, $body); + $data['ContentLength'] = $body->getSize(); + } + + // Do not create a part if the body size is zero. + if ($body->getSize() === 0) { + return false; + } + + $body->seek(0); + $data['Body'] = $body; + + return $data; + } + + protected function handleResult(CommandInterface $command, ResultInterface $result) + { + $this->state->markPartAsUploaded($command['PartNumber'], [ + 'PartNumber' => $command['PartNumber'], + 'ETag' => $result['ETag'] + ]); + } + + protected function getInitiateParams() + { + $params = []; + + if (isset($this->config['acl'])) { + $params['ACL'] = $this->config['acl']; + } + + // Set the content type + if ($uri = $this->source->getMetadata('uri')) { + $params['ContentType'] = Psr7\mimetype_from_filename($uri) + ?: 'application/octet-stream'; + } + + return $params; + } + + protected function getCompleteParams() + { + return ['MultipartUpload' => [ + 'Parts' => $this->state->getUploadedParts() + ]]; + } + + /** + * Decorates a stream with a sha256 linear hashing stream. + * + * @param Stream $stream Stream to decorate. + * @param array $data Part data to augment with the hash result. + * + * @return Stream + */ + private function decorateWithHashes(Stream $stream, array &$data) + { + // Decorate source with a hashing stream + $hash = new PhpHash('sha256', ['base64' => true]); + return new HashingStream($stream, $hash, function ($result) use (&$data) { + $data['ContentSHA256'] = $result; + }); + } +} diff --git a/lib/aws-sdk/Aws/S3/PermanentRedirectMiddleware.php b/lib/aws-sdk/Aws/S3/PermanentRedirectMiddleware.php new file mode 100644 index 0000000..eb4b8e3 --- /dev/null +++ b/lib/aws-sdk/Aws/S3/PermanentRedirectMiddleware.php @@ -0,0 +1,62 @@ +nextHandler = $nextHandler; + } + + public function __invoke(CommandInterface $command, RequestInterface $request = null) + { + $next = $this->nextHandler; + return $next($command, $request)->then( + function (ResultInterface $result) use ($command) { + $status = isset($result['@metadata']['statusCode']) + ? $result['@metadata']['statusCode'] + : null; + if ($status == 301) { + throw new PermanentRedirectException( + 'Encountered a permanent redirect while requesting ' + . $result->search('"@metadata".effectiveUri') . '. ' + . 'Are you sure you are using the correct region for ' + . 'this bucket?', + $command, + ['result' => $result] + ); + } + return $result; + } + ); + } +} diff --git a/lib/aws-sdk/Aws/S3/PostObject.php b/lib/aws-sdk/Aws/S3/PostObject.php new file mode 100644 index 0000000..f185e8b --- /dev/null +++ b/lib/aws-sdk/Aws/S3/PostObject.php @@ -0,0 +1,159 @@ +client = $client; + $this->bucket = $bucket; + + if (is_array($jsonPolicy)) { + $jsonPolicy = json_encode($jsonPolicy); + } + + $this->jsonPolicy = $jsonPolicy; + $this->formAttributes = [ + 'action' => $this->generateUri(), + 'method' => 'POST', + 'enctype' => 'multipart/form-data' + ]; + + $this->formInputs = $formInputs + ['key' => '${filename}']; + $credentials = $client->getCredentials()->wait(); + $this->formInputs += $this->getPolicyAndSignature($credentials); + } + + /** + * Gets the S3 client. + * + * @return S3Client + */ + public function getClient() + { + return $this->client; + } + + /** + * Gets the bucket name. + * + * @return string + */ + public function getBucket() + { + return $this->bucket; + } + + /** + * Gets the form attributes as an array. + * + * @return array + */ + public function getFormAttributes() + { + return $this->formAttributes; + } + + /** + * Set a form attribute. + * + * @param string $attribute Form attribute to set. + * @param string $value Value to set. + */ + public function setFormAttribute($attribute, $value) + { + $this->formAttributes[$attribute] = $value; + } + + /** + * Gets the form inputs as an array. + * + * @return array + */ + public function getFormInputs() + { + return $this->formInputs; + } + + /** + * Set a form input. + * + * @param string $field Field name to set + * @param string $value Value to set. + */ + public function setFormInput($field, $value) + { + $this->formInputs[$field] = $value; + } + + /** + * Gets the raw JSON policy. + * + * @return string + */ + public function getJsonPolicy() + { + return $this->jsonPolicy; + } + + private function generateUri() + { + $uri = new Uri($this->client->getEndpoint()); + + if ($uri->getScheme() === 'https' + && strpos($this->bucket, '.') !== false + ) { + // Use path-style URLs + $uri = $uri->withPath($this->bucket); + } else { + // Use virtual-style URLs + $uri = $uri->withHost($this->bucket . '.' . $uri->getHost()); + } + + return (string) $uri; + } + + protected function getPolicyAndSignature(CredentialsInterface $creds) + { + $jsonPolicy64 = base64_encode($this->jsonPolicy); + + return [ + 'AWSAccessKeyId' => $creds->getAccessKeyId(), + 'policy' => $jsonPolicy64, + 'signature' => base64_encode(hash_hmac( + 'sha1', + $jsonPolicy64, + $creds->getSecretKey(), + true + )) + ]; + } +} diff --git a/lib/aws-sdk/Aws/S3/PutObjectUrlMiddleware.php b/lib/aws-sdk/Aws/S3/PutObjectUrlMiddleware.php new file mode 100644 index 0000000..c7d6e9d --- /dev/null +++ b/lib/aws-sdk/Aws/S3/PutObjectUrlMiddleware.php @@ -0,0 +1,57 @@ +nextHandler = $nextHandler; + } + + public function __invoke(CommandInterface $command, RequestInterface $request = null) + { + $next = $this->nextHandler; + return $next($command, $request)->then( + function (ResultInterface $result) use ($command) { + $name = $command->getName(); + switch ($name) { + case 'PutObject': + case 'CopyObject': + $result['ObjectURL'] = $result['@metadata']['effectiveUri']; + break; + case 'CompleteMultipartUpload': + $result['ObjectURL'] = $result['Location']; + break; + } + return $result; + } + ); + } +} diff --git a/lib/aws-sdk/Aws/S3/Resources/s3-2006-03-01.php b/lib/aws-sdk/Aws/S3/Resources/s3-2006-03-01.php deleted file mode 100644 index 85547be..0000000 --- a/lib/aws-sdk/Aws/S3/Resources/s3-2006-03-01.php +++ /dev/null @@ -1,5292 +0,0 @@ - '2006-03-01', - 'endpointPrefix' => 's3', - 'serviceFullName' => 'Amazon Simple Storage Service', - 'serviceAbbreviation' => 'Amazon S3', - 'serviceType' => 'rest-xml', - 'timestampFormat' => 'rfc822', - 'globalEndpoint' => 's3.amazonaws.com', - 'signatureVersion' => 's3', - 'namespace' => 'S3', - 'regions' => array( - 'us-east-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 's3.amazonaws.com', - ), - 'us-west-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 's3-us-west-1.amazonaws.com', - ), - 'us-west-2' => array( - 'http' => true, - 'https' => true, - 'hostname' => 's3-us-west-2.amazonaws.com', - ), - 'eu-west-1' => array( - 'http' => true, - '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, - 'hostname' => 's3-ap-northeast-1.amazonaws.com', - ), - 'ap-southeast-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 's3-ap-southeast-1.amazonaws.com', - ), - 'ap-southeast-2' => array( - 'http' => true, - 'https' => true, - 'hostname' => 's3-ap-southeast-2.amazonaws.com', - ), - 'sa-east-1' => array( - 'http' => true, - '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, - 'hostname' => 's3-us-gov-west-1.amazonaws.com', - ), - ), - 'operations' => array( - 'AbortMultipartUpload' => array( - 'httpMethod' => 'DELETE', - 'uri' => '/{Bucket}{/Key*}', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'AbortMultipartUploadOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadAbort.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'Key' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - 'filters' => array( - 'Aws\\S3\\S3Client::explodeKey', - ), - ), - 'UploadId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'uploadId', - ), - 'RequestPayer' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-request-payer', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified multipart upload does not exist.', - 'class' => 'NoSuchUploadException', - ), - ), - ), - 'CompleteMultipartUpload' => array( - 'httpMethod' => 'POST', - 'uri' => '/{Bucket}{/Key*}', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'CompleteMultipartUploadOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadComplete.html', - 'data' => array( - 'xmlRoot' => array( - 'name' => 'CompleteMultipartUpload', - 'namespaces' => array( - 'http://s3.amazonaws.com/doc/2006-03-01/', - ), - ), - ), - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'Key' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - 'filters' => array( - 'Aws\\S3\\S3Client::explodeKey', - ), - ), - 'Parts' => array( - 'type' => 'array', - 'location' => 'xml', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'CompletedPart', - 'type' => 'object', - 'sentAs' => 'Part', - 'properties' => array( - 'ETag' => array( - 'type' => 'string', - ), - 'PartNumber' => array( - 'type' => 'numeric', - ), - ), - ), - ), - 'UploadId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'uploadId', - ), - 'RequestPayer' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-request-payer', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - ), - 'CopyObject' => array( - 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}{/Key*}', - 'class' => 'Aws\\S3\\Command\\S3Command', - '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', - ), - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'CacheControl' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Cache-Control', - ), - 'ContentDisposition' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Content-Disposition', - ), - 'ContentEncoding' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Content-Encoding', - ), - 'ContentLanguage' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Content-Language', - ), - 'ContentType' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Content-Type', - ), - 'CopySource' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-copy-source', - ), - 'CopySourceIfMatch' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-copy-source-if-match', - ), - 'CopySourceIfModifiedSince' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time-http', - 'location' => 'header', - 'sentAs' => 'x-amz-copy-source-if-modified-since', - ), - 'CopySourceIfNoneMatch' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-copy-source-if-none-match', - ), - 'CopySourceIfUnmodifiedSince' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time-http', - 'location' => 'header', - 'sentAs' => 'x-amz-copy-source-if-unmodified-since', - ), - 'Expires' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time-http', - 'location' => 'header', - ), - 'GrantFullControl' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-full-control', - ), - 'GrantRead' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-read', - ), - 'GrantReadACP' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-read-acp', - ), - 'GrantWriteACP' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-write-acp', - ), - 'Key' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - 'filters' => array( - 'Aws\\S3\\S3Client::explodeKey', - ), - ), - 'Metadata' => array( - 'type' => 'object', - 'location' => 'header', - 'sentAs' => 'x-amz-meta-', - 'additionalProperties' => array( - 'type' => 'string', - ), - ), - 'MetadataDirective' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-metadata-directive', - ), - 'ServerSideEncryption' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-server-side-encryption', - ), - 'StorageClass' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-storage-class', - ), - '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, - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The source object of the COPY operation is not in the active tier and is only stored in Amazon Glacier.', - 'class' => 'ObjectNotInActiveTierErrorException', - ), - ), - ), - 'CreateBucket' => array( - 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'CreateBucketOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUT.html', - 'data' => array( - 'xmlRoot' => array( - 'name' => 'CreateBucketConfiguration', - 'namespaces' => array( - 'http://s3.amazonaws.com/doc/2006-03-01/', - ), - ), - ), - 'parameters' => array( - 'ACL' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-acl', - ), - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'LocationConstraint' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'GrantFullControl' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-full-control', - ), - 'GrantRead' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-read', - ), - 'GrantReadACP' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-read-acp', - ), - 'GrantWrite' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-write', - ), - 'GrantWriteACP' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-write-acp', - ), - 'ACP' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The requested bucket name is not available. The bucket namespace is shared by all users of the system. Please select a different name and try again.', - 'class' => 'BucketAlreadyExistsException', - ), - ), - ), - 'CreateMultipartUpload' => array( - 'httpMethod' => 'POST', - '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', - ), - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'CacheControl' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Cache-Control', - ), - 'ContentDisposition' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Content-Disposition', - ), - 'ContentEncoding' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Content-Encoding', - ), - 'ContentLanguage' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Content-Language', - ), - 'ContentType' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Content-Type', - ), - 'Expires' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time-http', - 'location' => 'header', - ), - 'GrantFullControl' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-full-control', - ), - 'GrantRead' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-read', - ), - 'GrantReadACP' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-read-acp', - ), - 'GrantWriteACP' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-write-acp', - ), - 'Key' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - 'filters' => array( - 'Aws\\S3\\S3Client::explodeKey', - ), - ), - 'Metadata' => array( - 'type' => 'object', - 'location' => 'header', - 'sentAs' => 'x-amz-meta-', - 'additionalProperties' => array( - 'type' => 'string', - ), - ), - 'ServerSideEncryption' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-server-side-encryption', - ), - 'StorageClass' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-storage-class', - ), - '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', - ), - 'RequestPayer' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-request-payer', - ), - 'ACP' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - ), - 'DeleteBucket' => array( - 'httpMethod' => 'DELETE', - 'uri' => '/{Bucket}', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'DeleteBucketOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketDELETE.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - ), - ), - 'DeleteBucketCors' => array( - 'httpMethod' => 'DELETE', - 'uri' => '/{Bucket}?cors', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'DeleteBucketCorsOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketDELETEcors.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - ), - ), - 'DeleteBucketLifecycle' => array( - 'httpMethod' => 'DELETE', - 'uri' => '/{Bucket}?lifecycle', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'DeleteBucketLifecycleOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketDELETElifecycle.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - ), - ), - 'DeleteBucketPolicy' => array( - 'httpMethod' => 'DELETE', - 'uri' => '/{Bucket}?policy', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'DeleteBucketPolicyOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketDELETEpolicy.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - ), - ), - 'DeleteBucketReplication' => array( - 'httpMethod' => 'DELETE', - 'uri' => '/{Bucket}?replication', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'DeleteBucketReplicationOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - ), - ), - 'DeleteBucketTagging' => array( - 'httpMethod' => 'DELETE', - 'uri' => '/{Bucket}?tagging', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'DeleteBucketTaggingOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketDELETEtagging.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - ), - ), - 'DeleteBucketWebsite' => array( - 'httpMethod' => 'DELETE', - 'uri' => '/{Bucket}?website', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'DeleteBucketWebsiteOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketDELETEwebsite.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - ), - ), - 'DeleteObject' => array( - 'httpMethod' => 'DELETE', - 'uri' => '/{Bucket}{/Key*}', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'DeleteObjectOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'Key' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - 'filters' => array( - 'Aws\\S3\\S3Client::explodeKey', - ), - ), - 'MFA' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-mfa', - ), - 'VersionId' => array( - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'versionId', - ), - 'RequestPayer' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-request-payer', - ), - ), - ), - 'DeleteObjects' => array( - 'httpMethod' => 'POST', - 'uri' => '/{Bucket}?delete', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'DeleteObjectsOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/multiobjectdeleteapi.html', - 'data' => array( - 'xmlRoot' => array( - 'name' => 'Delete', - 'namespaces' => array( - 'http://s3.amazonaws.com/doc/2006-03-01/', - ), - ), - 'contentMd5' => true, - ), - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'Objects' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'xml', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'ObjectIdentifier', - 'type' => 'object', - 'sentAs' => 'Object', - 'properties' => array( - 'Key' => array( - 'required' => true, - 'type' => 'string', - ), - 'VersionId' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Quiet' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'xml', - ), - 'MFA' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-mfa', - ), - 'RequestPayer' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-request-payer', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - ), - 'GetBucketAcl' => array( - 'httpMethod' => 'GET', - 'uri' => '/{Bucket}?acl', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'GetBucketAclOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETacl.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - ), - 'GetBucketCors' => array( - 'httpMethod' => 'GET', - 'uri' => '/{Bucket}?cors', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'GetBucketCorsOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETcors.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - ), - 'GetBucketLifecycle' => array( - 'httpMethod' => 'GET', - 'uri' => '/{Bucket}?lifecycle', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'GetBucketLifecycleOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETlifecycle.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - ), - 'GetBucketLocation' => array( - 'httpMethod' => 'GET', - 'uri' => '/{Bucket}?location', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'GetBucketLocationOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETlocation.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - ), - ), - 'GetBucketLogging' => array( - 'httpMethod' => 'GET', - 'uri' => '/{Bucket}?logging', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'GetBucketLoggingOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETlogging.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - ), - 'GetBucketNotification' => array( - 'httpMethod' => 'GET', - 'uri' => '/{Bucket}?notification', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'NotificationConfigurationDeprecated', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETnotification.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'command.expects' => array( - 'static' => true, - '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, - 'default' => 'application/xml', - ), - ), - ), - 'GetBucketPolicy' => array( - 'httpMethod' => 'GET', - 'uri' => '/{Bucket}?policy', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'GetBucketPolicyOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETpolicy.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - ), - ), - '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, - 'default' => 'application/xml', - ), - ), - ), - 'GetBucketRequestPayment' => array( - 'httpMethod' => 'GET', - 'uri' => '/{Bucket}?requestPayment', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'GetBucketRequestPaymentOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTrequestPaymentGET.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - ), - 'GetBucketTagging' => array( - 'httpMethod' => 'GET', - 'uri' => '/{Bucket}?tagging', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'GetBucketTaggingOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETtagging.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - ), - 'GetBucketVersioning' => array( - 'httpMethod' => 'GET', - 'uri' => '/{Bucket}?versioning', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'GetBucketVersioningOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETversioningStatus.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - ), - 'GetBucketWebsite' => array( - 'httpMethod' => 'GET', - 'uri' => '/{Bucket}?website', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'GetBucketWebsiteOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETwebsite.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - ), - 'GetObject' => array( - 'httpMethod' => 'GET', - 'uri' => '/{Bucket}{/Key*}', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'GetObjectOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'IfMatch' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'If-Match', - ), - 'IfModifiedSince' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time-http', - 'location' => 'header', - 'sentAs' => 'If-Modified-Since', - ), - 'IfNoneMatch' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'If-None-Match', - ), - 'IfUnmodifiedSince' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time-http', - 'location' => 'header', - 'sentAs' => 'If-Unmodified-Since', - ), - 'Key' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - 'filters' => array( - 'Aws\\S3\\S3Client::explodeKey', - ), - ), - 'Range' => array( - 'type' => 'string', - 'location' => 'header', - ), - 'ResponseCacheControl' => array( - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'response-cache-control', - ), - 'ResponseContentDisposition' => array( - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'response-content-disposition', - ), - 'ResponseContentEncoding' => array( - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'response-content-encoding', - ), - 'ResponseContentLanguage' => array( - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'response-content-language', - ), - 'ResponseContentType' => array( - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'response-content-type', - ), - 'ResponseExpires' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time-http', - 'location' => 'query', - 'sentAs' => 'response-expires', - ), - 'VersionId' => array( - 'type' => 'string', - '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', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified key does not exist.', - 'class' => 'NoSuchKeyException', - ), - ), - ), - 'GetObjectAcl' => array( - 'httpMethod' => 'GET', - 'uri' => '/{Bucket}{/Key*}?acl', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'GetObjectAclOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGETacl.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'Key' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - 'filters' => array( - 'Aws\\S3\\S3Client::explodeKey', - ), - ), - 'VersionId' => array( - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'versionId', - ), - 'RequestPayer' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-request-payer', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified key does not exist.', - 'class' => 'NoSuchKeyException', - ), - ), - ), - 'GetObjectTorrent' => array( - 'httpMethod' => 'GET', - 'uri' => '/{Bucket}{/Key*}?torrent', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'GetObjectTorrentOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGETtorrent.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'Key' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - 'filters' => array( - 'Aws\\S3\\S3Client::explodeKey', - ), - ), - 'RequestPayer' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-request-payer', - ), - ), - ), - 'HeadBucket' => array( - 'httpMethod' => 'HEAD', - 'uri' => '/{Bucket}', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'HeadBucketOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketHEAD.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified bucket does not exist.', - 'class' => 'NoSuchBucketException', - ), - ), - ), - 'HeadObject' => array( - 'httpMethod' => 'HEAD', - 'uri' => '/{Bucket}{/Key*}', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'HeadObjectOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'IfMatch' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'If-Match', - ), - 'IfModifiedSince' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time-http', - 'location' => 'header', - 'sentAs' => 'If-Modified-Since', - ), - 'IfNoneMatch' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'If-None-Match', - ), - 'IfUnmodifiedSince' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time-http', - 'location' => 'header', - 'sentAs' => 'If-Unmodified-Since', - ), - 'Key' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - 'filters' => array( - 'Aws\\S3\\S3Client::explodeKey', - ), - ), - 'Range' => array( - 'type' => 'string', - 'location' => 'header', - ), - 'VersionId' => array( - 'type' => 'string', - '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( - 'reason' => 'The specified key does not exist.', - 'class' => 'NoSuchKeyException', - ), - ), - ), - 'ListBuckets' => array( - 'httpMethod' => 'GET', - 'uri' => '/', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'ListBucketsOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTServiceGET.html', - 'parameters' => array( - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - ), - 'ListMultipartUploads' => array( - 'httpMethod' => 'GET', - 'uri' => '/{Bucket}?uploads', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'ListMultipartUploadsOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadListMPUpload.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'Delimiter' => array( - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'delimiter', - ), - 'EncodingType' => array( - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'encoding-type', - ), - 'KeyMarker' => array( - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'key-marker', - ), - 'MaxUploads' => array( - 'type' => 'numeric', - 'location' => 'query', - 'sentAs' => 'max-uploads', - ), - 'Prefix' => array( - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'prefix', - ), - 'UploadIdMarker' => array( - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'upload-id-marker', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - ), - 'ListObjectVersions' => array( - 'httpMethod' => 'GET', - 'uri' => '/{Bucket}?versions', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'ListObjectVersionsOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETVersion.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'Delimiter' => array( - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'delimiter', - ), - 'EncodingType' => array( - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'encoding-type', - ), - 'KeyMarker' => array( - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'key-marker', - ), - 'MaxKeys' => array( - 'type' => 'numeric', - 'location' => 'query', - 'sentAs' => 'max-keys', - ), - 'Prefix' => array( - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'prefix', - ), - 'VersionIdMarker' => array( - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'version-id-marker', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - ), - 'ListObjects' => array( - 'httpMethod' => 'GET', - 'uri' => '/{Bucket}', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'ListObjectsOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'Delimiter' => array( - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'delimiter', - ), - 'EncodingType' => array( - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'encoding-type', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'marker', - ), - 'MaxKeys' => array( - 'type' => 'numeric', - 'location' => 'query', - 'sentAs' => 'max-keys', - ), - 'Prefix' => array( - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'prefix', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified bucket does not exist.', - 'class' => 'NoSuchBucketException', - ), - ), - ), - 'ListParts' => array( - 'httpMethod' => 'GET', - 'uri' => '/{Bucket}{/Key*}', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'ListPartsOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadListParts.html', - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'Key' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - 'filters' => array( - 'Aws\\S3\\S3Client::explodeKey', - ), - ), - 'MaxParts' => array( - 'type' => 'numeric', - 'location' => 'query', - 'sentAs' => 'max-parts', - ), - 'PartNumberMarker' => array( - 'type' => 'numeric', - 'location' => 'query', - 'sentAs' => 'part-number-marker', - ), - 'UploadId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'uploadId', - ), - 'RequestPayer' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-request-payer', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/xml', - ), - ), - ), - 'PutBucketAcl' => array( - 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}?acl', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'PutBucketAclOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTacl.html', - 'data' => array( - 'xmlRoot' => array( - 'name' => 'AccessControlPolicy', - 'namespaces' => array( - 'http://s3.amazonaws.com/doc/2006-03-01/', - ), - ), - ), - 'parameters' => array( - 'ACL' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-acl', - ), - 'Grants' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'AccessControlList', - 'items' => array( - 'name' => 'Grant', - 'type' => 'object', - 'properties' => array( - 'Grantee' => array( - 'type' => 'object', - 'properties' => array( - 'DisplayName' => array( - 'type' => 'string', - ), - 'EmailAddress' => array( - 'type' => 'string', - ), - 'ID' => array( - 'type' => 'string', - ), - 'Type' => array( - 'required' => true, - 'type' => 'string', - 'sentAs' => 'xsi:type', - 'data' => array( - 'xmlAttribute' => true, - 'xmlNamespace' => 'http://www.w3.org/2001/XMLSchema-instance', - ), - ), - 'URI' => array( - 'type' => 'string', - ), - ), - ), - 'Permission' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Owner' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'DisplayName' => array( - 'type' => 'string', - ), - 'ID' => array( - 'type' => 'string', - ), - ), - ), - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'GrantFullControl' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-full-control', - ), - 'GrantRead' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-read', - ), - 'GrantReadACP' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-read-acp', - ), - 'GrantWrite' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-write', - ), - 'GrantWriteACP' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-write-acp', - ), - 'ACP' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), - ), - ), - 'PutBucketCors' => array( - 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}?cors', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'PutBucketCorsOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTcors.html', - 'data' => array( - 'xmlRoot' => array( - 'name' => 'CORSConfiguration', - 'namespaces' => array( - 'http://s3.amazonaws.com/doc/2006-03-01/', - ), - ), - 'contentMd5' => true, - ), - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'CORSRules' => array( - 'type' => 'array', - 'location' => 'xml', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'CORSRule', - 'type' => 'object', - 'sentAs' => 'CORSRule', - 'properties' => array( - 'AllowedHeaders' => array( - 'type' => 'array', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'AllowedHeader', - 'type' => 'string', - 'sentAs' => 'AllowedHeader', - ), - ), - 'AllowedMethods' => array( - 'type' => 'array', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'AllowedMethod', - 'type' => 'string', - 'sentAs' => 'AllowedMethod', - ), - ), - 'AllowedOrigins' => array( - 'type' => 'array', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'AllowedOrigin', - 'type' => 'string', - 'sentAs' => 'AllowedOrigin', - ), - ), - 'ExposeHeaders' => array( - 'type' => 'array', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'ExposeHeader', - 'type' => 'string', - 'sentAs' => 'ExposeHeader', - ), - ), - 'MaxAgeSeconds' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - 'PutBucketLifecycle' => array( - 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}?lifecycle', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'PutBucketLifecycleOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html', - 'data' => array( - 'xmlRoot' => array( - 'name' => 'LifecycleConfiguration', - 'namespaces' => array( - 'http://s3.amazonaws.com/doc/2006-03-01/', - ), - ), - 'contentMd5' => true, - ), - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'Rules' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'xml', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'Rule', - 'type' => 'object', - 'sentAs' => 'Rule', - 'properties' => array( - 'Expiration' => array( - 'type' => 'object', - 'properties' => array( - 'Date' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time', - ), - 'Days' => array( - 'type' => 'numeric', - ), - ), - ), - 'ID' => array( - 'type' => 'string', - ), - 'Prefix' => array( - 'required' => true, - 'type' => 'string', - ), - 'Status' => array( - 'required' => true, - 'type' => 'string', - ), - 'Transition' => array( - 'type' => 'object', - 'properties' => array( - 'Date' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time', - ), - 'Days' => array( - 'type' => 'numeric', - ), - 'StorageClass' => array( - 'type' => 'string', - ), - ), - ), - 'NoncurrentVersionTransition' => array( - 'type' => 'object', - 'properties' => array( - 'NoncurrentDays' => array( - 'type' => 'numeric', - ), - 'StorageClass' => array( - 'type' => 'string', - ), - ), - ), - 'NoncurrentVersionExpiration' => array( - 'type' => 'object', - 'properties' => array( - 'NoncurrentDays' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - ), - ), - 'PutBucketLogging' => array( - 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}?logging', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'PutBucketLoggingOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html', - 'data' => array( - 'xmlRoot' => array( - 'name' => 'BucketLoggingStatus', - 'namespaces' => array( - 'http://s3.amazonaws.com/doc/2006-03-01/', - ), - ), - 'xmlAllowEmpty' => true, - ), - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'LoggingEnabled' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'TargetBucket' => array( - 'type' => 'string', - ), - 'TargetGrants' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Grant', - 'type' => 'object', - 'properties' => array( - 'Grantee' => array( - 'type' => 'object', - 'properties' => array( - 'DisplayName' => array( - 'type' => 'string', - ), - 'EmailAddress' => array( - 'type' => 'string', - ), - 'ID' => array( - 'type' => 'string', - ), - 'Type' => array( - 'required' => true, - 'type' => 'string', - 'sentAs' => 'xsi:type', - 'data' => array( - 'xmlAttribute' => true, - 'xmlNamespace' => 'http://www.w3.org/2001/XMLSchema-instance', - ), - ), - 'URI' => array( - 'type' => 'string', - ), - ), - ), - 'Permission' => array( - 'type' => 'string', - ), - ), - ), - ), - 'TargetPrefix' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'PutBucketNotification' => array( - 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}?notification', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'PutBucketNotificationOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTnotification.html', - 'data' => array( - 'xmlRoot' => array( - 'name' => 'NotificationConfiguration', - 'namespaces' => array( - 'http://s3.amazonaws.com/doc/2006-03-01/', - ), - ), - 'xmlAllowEmpty' => true, - ), - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'TopicConfiguration' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'Events' => array( - 'type' => 'array', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'Event', - 'type' => 'string', - ), - ), - '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', - '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', - ), - ), - ), - ), - ), - 'PutBucketNotificationConfiguration' => array( - 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}?notification', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'PutBucketNotificationConfigurationOutput', - 'responseType' => 'model', - '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', - ), - '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', - ), - ), - ), - ), - ), - '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', - ), - ), - ), - ), - ), - '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', - ), - ), - ), - ), - ), - ), - ), - 'PutBucketPolicy' => array( - 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}?policy', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'PutBucketPolicyOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTpolicy.html', - 'data' => array( - 'xmlRoot' => array( - 'name' => 'PutBucketPolicyRequest', - 'namespaces' => array( - 'http://s3.amazonaws.com/doc/2006-03-01/', - ), - ), - ), - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'Policy' => array( - 'required' => true, - 'type' => array( - 'string', - 'object', - ), - 'location' => 'body', - ), - ), - ), - 'PutBucketReplication' => array( - 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}?replication', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'PutBucketReplicationOutput', - 'responseType' => 'model', - 'data' => array( - 'xmlRoot' => array( - 'name' => 'ReplicationConfiguration', - 'namespaces' => array( - 'http://s3.amazonaws.com/doc/2006-03-01/', - ), - ), - ), - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'Role' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'xml', - ), - 'Rules' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'xml', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'ReplicationRule', - 'type' => 'object', - 'sentAs' => 'Rule', - 'properties' => array( - 'ID' => array( - 'type' => 'string', - ), - '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/', - ), - ), - ), - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - '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}?versioning', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'PutBucketVersioningOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html', - 'data' => array( - 'xmlRoot' => array( - 'name' => 'VersioningConfiguration', - 'namespaces' => array( - 'http://s3.amazonaws.com/doc/2006-03-01/', - ), - ), - ), - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'MFA' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-mfa', - ), - 'MFADelete' => array( - 'type' => 'string', - 'location' => 'xml', - 'sentAs' => 'MfaDelete', - ), - 'Status' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'PutBucketWebsite' => array( - 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}?website', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'PutBucketWebsiteOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTwebsite.html', - 'data' => array( - 'xmlRoot' => array( - 'name' => 'WebsiteConfiguration', - 'namespaces' => array( - 'http://s3.amazonaws.com/doc/2006-03-01/', - ), - ), - 'xmlAllowEmpty' => true, - ), - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'ErrorDocument' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Key' => array( - 'required' => true, - 'type' => 'string', - ), - ), - ), - 'IndexDocument' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Suffix' => array( - 'required' => true, - 'type' => 'string', - ), - ), - ), - 'RedirectAllRequestsTo' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'HostName' => array( - 'required' => true, - 'type' => 'string', - ), - 'Protocol' => array( - 'type' => 'string', - ), - ), - ), - 'RoutingRules' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'RoutingRule', - 'type' => 'object', - 'properties' => array( - 'Condition' => array( - 'type' => 'object', - 'properties' => array( - 'HttpErrorCodeReturnedEquals' => array( - 'type' => 'string', - ), - 'KeyPrefixEquals' => array( - 'type' => 'string', - ), - ), - ), - 'Redirect' => array( - 'required' => true, - 'type' => 'object', - 'properties' => array( - 'HostName' => array( - 'type' => 'string', - ), - 'HttpRedirectCode' => array( - 'type' => 'string', - ), - 'Protocol' => array( - 'type' => 'string', - ), - 'ReplaceKeyPrefixWith' => array( - 'type' => 'string', - ), - 'ReplaceKeyWith' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - 'PutObject' => array( - 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}{/Key*}', - 'class' => 'Aws\\S3\\Command\\S3Command', - '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', - ), - 'Body' => array( - 'type' => array( - 'string', - 'object', - ), - 'location' => 'body', - ), - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'CacheControl' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Cache-Control', - ), - 'ContentDisposition' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Content-Disposition', - ), - 'ContentEncoding' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Content-Encoding', - ), - 'ContentLanguage' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Content-Language', - ), - 'ContentLength' => array( - 'type' => 'numeric', - 'location' => 'header', - 'sentAs' => 'Content-Length', - ), - 'ContentMD5' => array( - 'type' => array( - 'string', - 'boolean', - ), - 'location' => 'header', - 'sentAs' => 'Content-MD5', - ), - 'ContentType' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Content-Type', - ), - 'Expires' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time-http', - 'location' => 'header', - ), - 'GrantFullControl' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-full-control', - ), - 'GrantRead' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-read', - ), - 'GrantReadACP' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-read-acp', - ), - 'GrantWriteACP' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-write-acp', - ), - 'Key' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - 'filters' => array( - 'Aws\\S3\\S3Client::explodeKey', - ), - ), - 'Metadata' => array( - 'type' => 'object', - 'location' => 'header', - 'sentAs' => 'x-amz-meta-', - 'additionalProperties' => array( - 'type' => 'string', - ), - ), - 'ServerSideEncryption' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-server-side-encryption', - ), - 'StorageClass' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-storage-class', - ), - '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', - ), - 'RequestPayer' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-request-payer', - ), - 'ACP' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), - ), - ), - 'PutObjectAcl' => array( - 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}{/Key*}?acl', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'PutObjectAclOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUTacl.html', - 'data' => array( - 'xmlRoot' => array( - 'name' => 'AccessControlPolicy', - 'namespaces' => array( - 'http://s3.amazonaws.com/doc/2006-03-01/', - ), - ), - ), - 'parameters' => array( - 'ACL' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-acl', - ), - 'Grants' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'AccessControlList', - 'items' => array( - 'name' => 'Grant', - 'type' => 'object', - 'properties' => array( - 'Grantee' => array( - 'type' => 'object', - 'properties' => array( - 'DisplayName' => array( - 'type' => 'string', - ), - 'EmailAddress' => array( - 'type' => 'string', - ), - 'ID' => array( - 'type' => 'string', - ), - 'Type' => array( - 'required' => true, - 'type' => 'string', - 'sentAs' => 'xsi:type', - 'data' => array( - 'xmlAttribute' => true, - 'xmlNamespace' => 'http://www.w3.org/2001/XMLSchema-instance', - ), - ), - 'URI' => array( - 'type' => 'string', - ), - ), - ), - 'Permission' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Owner' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'DisplayName' => array( - 'type' => 'string', - ), - 'ID' => array( - 'type' => 'string', - ), - ), - ), - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'GrantFullControl' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-full-control', - ), - 'GrantRead' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-read', - ), - 'GrantReadACP' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-read-acp', - ), - 'GrantWrite' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-write', - ), - 'GrantWriteACP' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-grant-write-acp', - ), - 'Key' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - 'filters' => array( - 'Aws\\S3\\S3Client::explodeKey', - ), - ), - 'RequestPayer' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-request-payer', - ), - 'ACP' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The specified key does not exist.', - 'class' => 'NoSuchKeyException', - ), - ), - ), - 'RestoreObject' => array( - 'httpMethod' => 'POST', - 'uri' => '/{Bucket}{/Key*}?restore', - 'class' => 'Aws\\S3\\Command\\S3Command', - 'responseClass' => 'RestoreObjectOutput', - 'responseType' => 'model', - 'documentationUrl' => 'http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectRestore.html', - 'data' => array( - 'xmlRoot' => array( - 'name' => 'RestoreRequest', - 'namespaces' => array( - 'http://s3.amazonaws.com/doc/2006-03-01/', - ), - ), - ), - 'parameters' => array( - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'Key' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - 'filters' => array( - 'Aws\\S3\\S3Client::explodeKey', - ), - ), - 'VersionId' => array( - 'type' => 'string', - 'location' => 'query', - 'sentAs' => 'versionId', - ), - 'Days' => array( - 'required' => true, - 'type' => 'numeric', - 'location' => 'xml', - ), - 'RequestPayer' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-request-payer', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'This operation is not allowed against this storage tier', - 'class' => 'ObjectAlreadyInActiveTierErrorException', - ), - ), - ), - 'UploadPart' => array( - 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}{/Key*}', - 'class' => 'Aws\\S3\\Command\\S3Command', - '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( - 'string', - 'object', - ), - 'location' => 'body', - ), - 'Bucket' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - ), - 'ContentLength' => array( - 'type' => 'numeric', - 'location' => 'header', - 'sentAs' => 'Content-Length', - ), - 'ContentMD5' => array( - 'type' => array( - 'string', - 'boolean', - ), - 'location' => 'header', - 'sentAs' => 'Content-MD5', - ), - 'Key' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - 'filters' => array( - 'Aws\\S3\\S3Client::explodeKey', - ), - ), - 'PartNumber' => array( - 'required' => true, - 'type' => 'numeric', - 'location' => 'query', - 'sentAs' => 'partNumber', - ), - 'UploadId' => array( - 'required' => true, - 'type' => 'string', - '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', - ), - 'RequestPayer' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-request-payer', - ), - ), - ), - 'UploadPartCopy' => array( - 'httpMethod' => 'PUT', - 'uri' => '/{Bucket}{/Key*}', - 'class' => 'Aws\\S3\\Command\\S3Command', - '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, - 'type' => 'string', - 'location' => 'uri', - ), - 'CopySource' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-copy-source', - ), - 'CopySourceIfMatch' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-copy-source-if-match', - ), - 'CopySourceIfModifiedSince' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time-http', - 'location' => 'header', - 'sentAs' => 'x-amz-copy-source-if-modified-since', - ), - 'CopySourceIfNoneMatch' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-copy-source-if-none-match', - ), - 'CopySourceIfUnmodifiedSince' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'date-time-http', - 'location' => 'header', - 'sentAs' => 'x-amz-copy-source-if-unmodified-since', - ), - 'CopySourceRange' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-copy-source-range', - ), - 'Key' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'uri', - 'filters' => array( - 'Aws\\S3\\S3Client::explodeKey', - ), - ), - 'PartNumber' => array( - 'required' => true, - 'type' => 'numeric', - 'location' => 'query', - 'sentAs' => 'partNumber', - ), - 'UploadId' => array( - 'required' => true, - 'type' => 'string', - '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', - ), - ), - ), - ), - 'models' => array( - 'AbortMultipartUploadOutput' => 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', - ), - ), - ), - 'CompleteMultipartUploadOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Location' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'Bucket' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'Key' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'Expiration' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-expiration', - ), - 'ETag' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'ServerSideEncryption' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-server-side-encryption', - ), - 'VersionId' => array( - 'type' => 'string', - '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', - ), - ), - ), - 'CopyObjectOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ETag' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'LastModified' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'Expiration' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-expiration', - ), - 'CopySourceVersionId' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-copy-source-version-id', - ), - 'ServerSideEncryption' => array( - 'type' => 'string', - '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', - ), - ), - ), - 'CreateBucketOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Location' => array( - 'type' => 'string', - 'location' => 'header', - ), - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'CreateMultipartUploadOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Bucket' => array( - 'type' => 'string', - 'location' => 'xml', - 'sentAs' => 'Bucket', - ), - 'Key' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'UploadId' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'ServerSideEncryption' => array( - 'type' => 'string', - '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', - ), - ), - ), - 'DeleteBucketOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'DeleteBucketCorsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'DeleteBucketLifecycleOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'DeleteBucketPolicyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'DeleteBucketReplicationOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'DeleteBucketTaggingOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'DeleteBucketWebsiteOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'DeleteObjectOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'DeleteMarker' => array( - 'type' => 'boolean', - 'location' => 'header', - 'sentAs' => 'x-amz-delete-marker', - ), - 'VersionId' => array( - 'type' => 'string', - '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', - ), - ), - ), - 'DeleteObjectsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Deleted' => array( - 'type' => 'array', - 'location' => 'xml', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'DeletedObject', - 'type' => 'object', - 'properties' => array( - 'Key' => array( - 'type' => 'string', - ), - 'VersionId' => array( - 'type' => 'string', - ), - 'DeleteMarker' => array( - 'type' => 'boolean', - ), - 'DeleteMarkerVersionId' => array( - 'type' => 'string', - ), - ), - ), - ), - 'RequestCharged' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-request-charged', - ), - 'Errors' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'Error', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'Error', - 'type' => 'object', - 'sentAs' => 'Error', - 'properties' => array( - 'Key' => array( - 'type' => 'string', - ), - 'VersionId' => array( - 'type' => 'string', - ), - 'Code' => array( - 'type' => 'string', - ), - 'Message' => array( - 'type' => 'string', - ), - ), - ), - ), - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'GetBucketAclOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Owner' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'DisplayName' => array( - 'type' => 'string', - ), - 'ID' => array( - 'type' => 'string', - ), - ), - ), - 'Grants' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'AccessControlList', - 'items' => array( - 'name' => 'Grant', - 'type' => 'object', - 'sentAs' => 'Grant', - 'properties' => array( - 'Grantee' => array( - 'type' => 'object', - 'properties' => array( - 'DisplayName' => array( - 'type' => 'string', - ), - 'EmailAddress' => array( - 'type' => 'string', - ), - 'ID' => array( - 'type' => 'string', - ), - 'Type' => array( - 'type' => 'string', - 'sentAs' => 'xsi:type', - 'data' => array( - 'xmlAttribute' => true, - 'xmlNamespace' => 'http://www.w3.org/2001/XMLSchema-instance', - ), - ), - 'URI' => array( - 'type' => 'string', - ), - ), - ), - 'Permission' => array( - 'type' => 'string', - ), - ), - ), - ), - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'GetBucketCorsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'CORSRules' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'CORSRule', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'CORSRule', - 'type' => 'object', - 'sentAs' => 'CORSRule', - 'properties' => array( - 'AllowedHeaders' => array( - 'type' => 'array', - 'sentAs' => 'AllowedHeader', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'AllowedHeader', - 'type' => 'string', - 'sentAs' => 'AllowedHeader', - ), - ), - 'AllowedMethods' => array( - 'type' => 'array', - 'sentAs' => 'AllowedMethod', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'AllowedMethod', - 'type' => 'string', - 'sentAs' => 'AllowedMethod', - ), - ), - 'AllowedOrigins' => array( - 'type' => 'array', - 'sentAs' => 'AllowedOrigin', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'AllowedOrigin', - 'type' => 'string', - 'sentAs' => 'AllowedOrigin', - ), - ), - 'ExposeHeaders' => array( - 'type' => 'array', - 'sentAs' => 'ExposeHeader', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'ExposeHeader', - 'type' => 'string', - 'sentAs' => 'ExposeHeader', - ), - ), - 'MaxAgeSeconds' => array( - 'type' => 'numeric', - ), - ), - ), - ), - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'GetBucketLifecycleOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Rules' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'Rule', - 'data' => 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', - ), - 'Prefix' => array( - 'type' => 'string', - ), - 'Status' => array( - 'type' => 'string', - ), - 'Transition' => array( - 'type' => 'object', - 'properties' => array( - 'Date' => array( - 'type' => 'string', - ), - 'Days' => array( - 'type' => 'numeric', - ), - 'StorageClass' => array( - 'type' => 'string', - ), - ), - ), - 'NoncurrentVersionTransition' => array( - 'type' => 'object', - 'properties' => array( - 'NoncurrentDays' => array( - 'type' => 'numeric', - ), - 'StorageClass' => array( - 'type' => 'string', - ), - ), - ), - 'NoncurrentVersionExpiration' => array( - 'type' => 'object', - 'properties' => array( - 'NoncurrentDays' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'GetBucketLocationOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Location' => array( - 'type' => 'string', - 'location' => 'body', - 'filters' => array( - 'strval', - 'strip_tags', - 'trim', - ), - ), - ), - ), - 'GetBucketLoggingOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'LoggingEnabled' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'TargetBucket' => array( - 'type' => 'string', - ), - 'TargetGrants' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Grant', - 'type' => 'object', - 'sentAs' => 'Grant', - 'properties' => array( - 'Grantee' => array( - 'type' => 'object', - 'properties' => array( - 'DisplayName' => array( - 'type' => 'string', - ), - 'EmailAddress' => array( - 'type' => 'string', - ), - 'ID' => array( - 'type' => 'string', - ), - 'Type' => array( - 'type' => 'string', - 'sentAs' => 'xsi:type', - 'data' => array( - 'xmlAttribute' => true, - 'xmlNamespace' => 'http://www.w3.org/2001/XMLSchema-instance', - ), - ), - 'URI' => array( - 'type' => 'string', - ), - ), - ), - 'Permission' => array( - 'type' => 'string', - ), - ), - ), - ), - '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( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'GetBucketPolicyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Policy' => array( - 'type' => 'string', - 'instanceOf' => 'Guzzle\\Http\\EntityBody', - 'location' => 'body', - ), - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'GetBucketReplicationOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Role' => array( - 'type' => 'string', - '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', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'GetBucketRequestPaymentOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Payer' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'GetBucketTaggingOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TagSet' => array( - 'type' => 'array', - 'location' => 'xml', - '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', - ), - ), - ), - 'GetBucketVersioningOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Status' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'MFADelete' => array( - 'type' => 'string', - 'location' => 'xml', - 'sentAs' => 'MfaDelete', - ), - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'GetBucketWebsiteOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RedirectAllRequestsTo' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'HostName' => array( - 'type' => 'string', - ), - 'Protocol' => array( - 'type' => 'string', - ), - ), - ), - 'IndexDocument' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Suffix' => array( - 'type' => 'string', - ), - ), - ), - 'ErrorDocument' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'Key' => array( - 'type' => 'string', - ), - ), - ), - 'RoutingRules' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'RoutingRule', - 'type' => 'object', - 'sentAs' => 'RoutingRule', - 'properties' => array( - 'Condition' => array( - 'type' => 'object', - 'properties' => array( - 'HttpErrorCodeReturnedEquals' => array( - 'type' => 'string', - ), - 'KeyPrefixEquals' => array( - 'type' => 'string', - ), - ), - ), - 'Redirect' => array( - 'type' => 'object', - 'properties' => array( - 'HostName' => array( - 'type' => 'string', - ), - 'HttpRedirectCode' => array( - 'type' => 'string', - ), - 'Protocol' => array( - 'type' => 'string', - ), - 'ReplaceKeyPrefixWith' => array( - 'type' => 'string', - ), - 'ReplaceKeyWith' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'GetObjectOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Body' => array( - 'type' => 'string', - 'instanceOf' => 'Guzzle\\Http\\EntityBody', - 'location' => 'body', - ), - 'DeleteMarker' => array( - 'type' => 'boolean', - 'location' => 'header', - 'sentAs' => 'x-amz-delete-marker', - ), - 'AcceptRanges' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'accept-ranges', - ), - 'Expiration' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-expiration', - ), - 'Restore' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-restore', - ), - 'LastModified' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Last-Modified', - ), - 'ContentLength' => array( - 'type' => 'numeric', - 'location' => 'header', - 'sentAs' => 'Content-Length', - ), - 'ETag' => array( - 'type' => 'string', - 'location' => 'header', - ), - 'MissingMeta' => array( - 'type' => 'numeric', - 'location' => 'header', - 'sentAs' => 'x-amz-missing-meta', - ), - 'VersionId' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-version-id', - ), - 'CacheControl' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Cache-Control', - ), - 'ContentDisposition' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Content-Disposition', - ), - 'ContentEncoding' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Content-Encoding', - ), - 'ContentLanguage' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Content-Language', - ), - 'ContentType' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Content-Type', - ), - 'Expires' => array( - 'type' => 'string', - 'location' => 'header', - ), - 'WebsiteRedirectLocation' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-website-redirect-location', - ), - 'ServerSideEncryption' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-server-side-encryption', - ), - 'Metadata' => array( - 'type' => 'object', - 'location' => 'header', - 'sentAs' => 'x-amz-meta-', - 'additionalProperties' => 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', - ), - ), - ), - 'GetObjectAclOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Owner' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'DisplayName' => array( - 'type' => 'string', - ), - 'ID' => array( - 'type' => 'string', - ), - ), - ), - 'Grants' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'AccessControlList', - 'items' => array( - 'name' => 'Grant', - 'type' => 'object', - 'sentAs' => 'Grant', - 'properties' => array( - 'Grantee' => array( - 'type' => 'object', - 'properties' => array( - 'DisplayName' => array( - 'type' => 'string', - ), - 'EmailAddress' => array( - 'type' => 'string', - ), - 'ID' => array( - 'type' => 'string', - ), - 'Type' => array( - 'type' => 'string', - 'sentAs' => 'xsi:type', - 'data' => array( - 'xmlAttribute' => true, - 'xmlNamespace' => 'http://www.w3.org/2001/XMLSchema-instance', - ), - ), - 'URI' => array( - 'type' => 'string', - ), - ), - ), - 'Permission' => array( - 'type' => 'string', - ), - ), - ), - ), - 'RequestCharged' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-request-charged', - ), - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'GetObjectTorrentOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Body' => array( - 'type' => 'string', - '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', - ), - ), - ), - 'HeadBucketOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'HeadObjectOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'DeleteMarker' => array( - 'type' => 'boolean', - 'location' => 'header', - 'sentAs' => 'x-amz-delete-marker', - ), - 'AcceptRanges' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'accept-ranges', - ), - 'Expiration' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-expiration', - ), - 'Restore' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-restore', - ), - 'LastModified' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Last-Modified', - ), - 'ContentLength' => array( - 'type' => 'numeric', - 'location' => 'header', - 'sentAs' => 'Content-Length', - ), - 'ETag' => array( - 'type' => 'string', - 'location' => 'header', - ), - 'MissingMeta' => array( - 'type' => 'numeric', - 'location' => 'header', - 'sentAs' => 'x-amz-missing-meta', - ), - 'VersionId' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-version-id', - ), - 'CacheControl' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Cache-Control', - ), - 'ContentDisposition' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Content-Disposition', - ), - 'ContentEncoding' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Content-Encoding', - ), - 'ContentLanguage' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Content-Language', - ), - 'ContentType' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'Content-Type', - ), - 'Expires' => array( - 'type' => 'string', - 'location' => 'header', - ), - 'WebsiteRedirectLocation' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-website-redirect-location', - ), - 'ServerSideEncryption' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-server-side-encryption', - ), - 'Metadata' => array( - 'type' => 'object', - 'location' => 'header', - 'sentAs' => 'x-amz-meta-', - 'additionalProperties' => 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', - ), - ), - ), - 'ListBucketsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Buckets' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'Bucket', - 'type' => 'object', - 'sentAs' => 'Bucket', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'CreationDate' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Owner' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'DisplayName' => array( - 'type' => 'string', - ), - 'ID' => array( - 'type' => 'string', - ), - ), - ), - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'ListMultipartUploadsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Bucket' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'KeyMarker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'UploadIdMarker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'NextKeyMarker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'Prefix' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'Delimiter' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'NextUploadIdMarker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'MaxUploads' => array( - 'type' => 'numeric', - 'location' => 'xml', - ), - 'IsTruncated' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Uploads' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'Upload', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'MultipartUpload', - 'type' => 'object', - 'sentAs' => 'Upload', - 'properties' => array( - 'UploadId' => array( - 'type' => 'string', - ), - 'Key' => array( - 'type' => 'string', - ), - 'Initiated' => array( - 'type' => 'string', - ), - 'StorageClass' => array( - 'type' => 'string', - ), - 'Owner' => array( - 'type' => 'object', - 'properties' => array( - 'DisplayName' => array( - 'type' => 'string', - ), - 'ID' => array( - 'type' => 'string', - ), - ), - ), - 'Initiator' => array( - 'type' => 'object', - 'properties' => array( - 'ID' => array( - 'type' => 'string', - ), - 'DisplayName' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'CommonPrefixes' => array( - 'type' => 'array', - 'location' => 'xml', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'CommonPrefix', - 'type' => 'object', - 'properties' => array( - 'Prefix' => array( - 'type' => 'string', - ), - ), - ), - ), - 'EncodingType' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'ListObjectVersionsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'IsTruncated' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'KeyMarker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'VersionIdMarker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'NextKeyMarker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'NextVersionIdMarker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'Versions' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'Version', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'ObjectVersion', - 'type' => 'object', - 'sentAs' => 'Version', - 'properties' => array( - 'ETag' => array( - 'type' => 'string', - ), - 'Size' => array( - 'type' => 'numeric', - ), - 'StorageClass' => array( - 'type' => 'string', - ), - 'Key' => array( - 'type' => 'string', - ), - 'VersionId' => array( - 'type' => 'string', - ), - 'IsLatest' => array( - 'type' => 'boolean', - ), - 'LastModified' => array( - 'type' => 'string', - ), - 'Owner' => array( - 'type' => 'object', - 'properties' => array( - 'DisplayName' => array( - 'type' => 'string', - ), - 'ID' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'DeleteMarkers' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'DeleteMarker', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'DeleteMarkerEntry', - 'type' => 'object', - 'sentAs' => 'DeleteMarker', - 'properties' => array( - 'Owner' => array( - 'type' => 'object', - 'properties' => array( - 'DisplayName' => array( - 'type' => 'string', - ), - 'ID' => array( - 'type' => 'string', - ), - ), - ), - 'Key' => array( - 'type' => 'string', - ), - 'VersionId' => array( - 'type' => 'string', - ), - 'IsLatest' => array( - 'type' => 'boolean', - ), - 'LastModified' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Name' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'Prefix' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'Delimiter' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'MaxKeys' => array( - 'type' => 'numeric', - 'location' => 'xml', - ), - 'CommonPrefixes' => array( - 'type' => 'array', - 'location' => 'xml', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'CommonPrefix', - 'type' => 'object', - 'properties' => array( - 'Prefix' => array( - 'type' => 'string', - ), - ), - ), - ), - 'EncodingType' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'ListObjectsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'IsTruncated' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'NextMarker' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'Contents' => array( - 'type' => 'array', - 'location' => 'xml', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'Object', - 'type' => 'object', - 'properties' => array( - 'Key' => array( - 'type' => 'string', - ), - 'LastModified' => array( - 'type' => 'string', - ), - 'ETag' => array( - 'type' => 'string', - ), - 'Size' => array( - 'type' => 'numeric', - ), - 'StorageClass' => array( - 'type' => 'string', - ), - 'Owner' => array( - 'type' => 'object', - 'properties' => array( - 'DisplayName' => array( - 'type' => 'string', - ), - 'ID' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'Name' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'Prefix' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'Delimiter' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'MaxKeys' => array( - 'type' => 'numeric', - 'location' => 'xml', - ), - 'CommonPrefixes' => array( - 'type' => 'array', - 'location' => 'xml', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'CommonPrefix', - 'type' => 'object', - 'properties' => array( - 'Prefix' => array( - 'type' => 'string', - ), - ), - ), - ), - 'EncodingType' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'ListPartsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Bucket' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'Key' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'UploadId' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'PartNumberMarker' => array( - 'type' => 'numeric', - 'location' => 'xml', - ), - 'NextPartNumberMarker' => array( - 'type' => 'numeric', - 'location' => 'xml', - ), - 'MaxParts' => array( - 'type' => 'numeric', - 'location' => 'xml', - ), - 'IsTruncated' => array( - 'type' => 'boolean', - 'location' => 'xml', - ), - 'Parts' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'Part', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'Part', - 'type' => 'object', - 'sentAs' => 'Part', - 'properties' => array( - 'PartNumber' => array( - 'type' => 'numeric', - ), - 'LastModified' => array( - 'type' => 'string', - ), - 'ETag' => array( - 'type' => 'string', - ), - 'Size' => array( - 'type' => 'numeric', - ), - ), - ), - ), - 'Initiator' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'ID' => array( - 'type' => 'string', - ), - 'DisplayName' => array( - 'type' => 'string', - ), - ), - ), - 'Owner' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'DisplayName' => array( - 'type' => 'string', - ), - 'ID' => array( - 'type' => 'string', - ), - ), - ), - 'StorageClass' => 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', - ), - ), - ), - 'PutBucketAclOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'PutBucketCorsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'PutBucketLifecycleOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'PutBucketLoggingOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'PutBucketNotificationOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'PutBucketNotificationConfigurationOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'PutBucketPolicyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'PutBucketReplicationOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'PutBucketRequestPaymentOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'PutBucketTaggingOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'PutBucketVersioningOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'PutBucketWebsiteOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'RequestId' => array( - 'location' => 'header', - 'sentAs' => 'x-amz-request-id', - ), - ), - ), - 'PutObjectOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Expiration' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-expiration', - ), - 'ETag' => array( - 'type' => 'string', - 'location' => 'header', - ), - 'ServerSideEncryption' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-server-side-encryption', - ), - 'VersionId' => array( - 'type' => 'string', - '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', - ), - 'ObjectURL' => array( - ), - ), - ), - 'PutObjectAclOutput' => 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', - ), - ), - ), - 'RestoreObjectOutput' => 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', - ), - ), - ), - 'UploadPartOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ServerSideEncryption' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-server-side-encryption', - ), - 'ETag' => 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', - ), - ), - ), - 'UploadPartCopyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'CopySourceVersionId' => array( - 'type' => 'string', - 'location' => 'header', - 'sentAs' => 'x-amz-copy-source-version-id', - ), - 'ETag' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'LastModified' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'ServerSideEncryption' => array( - 'type' => 'string', - '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', - ), - ), - ), - ), - '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, - 'max_attempts' => 20, - ), - 'BucketExists' => array( - 'operation' => 'HeadBucket', - 'success.type' => 'output', - 'ignore_errors' => array( - 'NoSuchBucket', - ), - ), - 'BucketNotExists' => array( - 'operation' => 'HeadBucket', - 'success.type' => 'error', - 'success.value' => 'NoSuchBucket', - ), - 'ObjectExists' => array( - 'operation' => 'HeadObject', - 'success.type' => 'output', - 'ignore_errors' => array( - 'NoSuchKey', - ), - ), - 'ObjectNotExists' => array( - 'operation' => 'HeadObject', - 'success.type' => 'error', - 'success.value' => 'NoSuchKey' - ), - ), -); diff --git a/lib/aws-sdk/Aws/S3/ResumableDownload.php b/lib/aws-sdk/Aws/S3/ResumableDownload.php deleted file mode 100644 index 6d99677..0000000 --- a/lib/aws-sdk/Aws/S3/ResumableDownload.php +++ /dev/null @@ -1,176 +0,0 @@ -params = $params; - $this->client = $client; - $this->params['Bucket'] = $bucket; - $this->params['Key'] = $key; - - // If a string is passed, then assume that the download should stream to a file on disk - if (is_string($target)) { - if (!($target = fopen($target, 'a+'))) { - throw new RuntimeException("Unable to open {$target} for writing"); - } - // Always append to the file - fseek($target, 0, SEEK_END); - } - - // Get the metadata and Content-MD5 of the object - $this->target = EntityBody::factory($target); - } - - /** - * Get the bucket of the download - * - * @return string - */ - public function getBucket() - { - return $this->params['Bucket']; - } - - /** - * Get the key of the download - * - * @return string - */ - public function getKey() - { - return $this->params['Key']; - } - - /** - * Get the file to which the contents are downloaded - * - * @return string - */ - public function getFilename() - { - return $this->target->getUri(); - } - - /** - * Download the remainder of the object from Amazon S3 - * - * Performs a message integrity check if possible - * - * @return Model - */ - public function __invoke() - { - $command = $this->client->getCommand('HeadObject', $this->params); - $this->meta = $command->execute(); - - if ($this->target->ftell() >= $this->meta['ContentLength']) { - return false; - } - - $this->meta['ContentMD5'] = (string) $command->getResponse()->getHeader('Content-MD5'); - - // Use a ReadLimitEntityBody so that rewinding the stream after an error does not cause the file pointer - // to enter an inconsistent state with the data being downloaded - $this->params['SaveAs'] = new ReadLimitEntityBody( - $this->target, - $this->meta['ContentLength'], - $this->target->ftell() - ); - - $result = $this->getRemaining(); - $this->checkIntegrity(); - - return $result; - } - - /** - * Send the command to get the remainder of the object - * - * @return Model - */ - protected function getRemaining() - { - $current = $this->target->ftell(); - $targetByte = $this->meta['ContentLength'] - 1; - $this->params['Range'] = "bytes={$current}-{$targetByte}"; - - // Set the starting offset so that the body is never seeked to before this point in the event of a retry - $this->params['SaveAs']->setOffset($current); - $command = $this->client->getCommand('GetObject', $this->params); - - return $command->execute(); - } - - /** - * Performs an MD5 message integrity check if possible - * - * @throws UnexpectedValueException if the message does not validate - */ - protected function checkIntegrity() - { - if ($this->target->isReadable() && $expected = $this->meta['ContentMD5']) { - $actual = $this->target->getContentMd5(); - if ($actual != $expected) { - throw new UnexpectedValueException( - "Message integrity check failed. Expected {$expected} but got {$actual}." - ); - } - } - } -} diff --git a/lib/aws-sdk/Aws/S3/S3Client.php b/lib/aws-sdk/Aws/S3/S3Client.php index b67282a..3859085 100644 --- a/lib/aws-sdk/Aws/S3/S3Client.php +++ b/lib/aws-sdk/Aws/S3/S3Client.php @@ -1,447 +1,188 @@ 'ListBuckets', - 'GetBucket' => 'ListObjects', - 'PutBucket' => 'CreateBucket', - - // SDK 1.x Aliases - 'GetBucketHeaders' => 'HeadBucket', - 'GetObjectHeaders' => 'HeadObject', - 'SetBucketAcl' => 'PutBucketAcl', - 'CreateObject' => 'PutObject', - 'DeleteObjects' => 'DeleteMultipleObjects', - 'PutObjectCopy' => 'CopyObject', - 'SetObjectAcl' => 'PutObjectAcl', - 'GetLogs' => 'GetBucketLogging', - 'GetVersioningStatus' => 'GetBucketVersioning', - 'SetBucketPolicy' => 'PutBucketPolicy', - 'CreateBucketNotification' => 'PutBucketNotification', - 'GetBucketNotifications' => 'GetBucketNotification', - 'CopyPart' => 'UploadPartCopy', - 'CreateWebsiteConfig' => 'PutBucketWebsite', - 'GetWebsiteConfig' => 'GetBucketWebsite', - 'DeleteWebsiteConfig' => 'DeleteBucketWebsite', - 'CreateObjectExpirationConfig' => 'PutBucketLifecycle', - 'GetObjectExpirationConfig' => 'GetBucketLifecycle', - 'DeleteObjectExpirationConfig' => 'DeleteBucketLifecycle', - ); - - protected $directory = __DIR__; - - /** - * Factory method to create a new Amazon S3 client using an array of configuration options. - * - * @param array|Collection $config Client configuration data - * - * @return S3Client - * @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options - */ - public static function factory($config = array()) + public static function getArguments() { - $exceptionParser = new S3ExceptionParser(); - - // Configure the custom exponential backoff plugin for retrying S3 specific errors - if (!isset($config[Options::BACKOFF])) { - $config[Options::BACKOFF] = static::createBackoffPlugin($exceptionParser); - } - - $config[Options::SIGNATURE] = $signature = static::createSignature($config); - - $client = ClientBuilder::factory(__NAMESPACE__) - ->setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/s3-%s.php' - )) - ->setExceptionParser($exceptionParser) - ->setIteratorsConfig(array( - 'more_key' => 'IsTruncated', - 'operations' => array( - 'ListBuckets', - 'ListMultipartUploads' => array( - 'limit_param' => 'MaxUploads', - 'token_param' => array('KeyMarker', 'UploadIdMarker'), - 'token_key' => array('NextKeyMarker', 'NextUploadIdMarker'), - ), - 'ListObjects' => array( - 'limit_param' => 'MaxKeys', - 'token_param' => 'Marker', - 'token_key' => 'NextMarker', - ), - 'ListObjectVersions' => array( - 'limit_param' => 'MaxKeys', - 'token_param' => array('KeyMarker', 'VersionIdMarker'), - 'token_key' => array('nextKeyMarker', 'nextVersionIdMarker'), - ), - 'ListParts' => array( - 'limit_param' => 'MaxParts', - 'result_key' => 'Parts', - 'token_param' => 'PartNumberMarker', - 'token_key' => 'NextPartNumberMarker', - ), - ) - )) - ->build(); - - // 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 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, static::$commandAliases), - 'Guzzle\Service\Command\Factory\ServiceDescriptionFactory' - ); - $client->setCommandFactory($default); - - return $client; + $args = parent::getArguments(); + $args['retries']['fn'] = [__CLASS__, '_applyRetryConfig']; + $args['api_provider']['fn'] = [__CLASS__, '_applyApiProvider']; + + return $args + [ + 'bucket_endpoint' => [ + 'type' => 'config', + 'valid' => ['bool'], + 'doc' => 'Set to true to send requests to a hardcoded ' + . 'bucket endpoint rather than create an endpoint as a ' + . 'result of injecting the bucket into the URL. This ' + . 'option is useful for interacting with CNAME endpoints.', + ], + ]; } /** - * Create an Amazon S3 specific backoff plugin + * {@inheritdoc} * - * @param S3ExceptionParser $exceptionParser + * In addition to the options available to + * {@see Aws\AwsClient::__construct}, S3Client accepts the following + * options: * - * @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 + * - bucket_endpoint: (bool) Set to true to send requests to a + * hardcoded bucket endpoint rather than create an endpoint as a result + * of injecting the bucket into the URL. This option is useful for + * interacting with CNAME endpoints. + * - calculate_md5: (bool) Set to false to disable calculating an MD5 + * for all Amazon S3 signed uploads. * - * @param $config - * - * @return \Aws\Common\Signature\SignatureInterface - * @throws InvalidArgumentException + * @param array $args */ - private static function createSignature($config) + public function __construct(array $args) { - $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(); - } + parent::__construct($args); + $stack = $this->getHandlerList(); + $stack->appendInit(SSECMiddleware::wrap($this->getEndpoint()->getScheme()), 's3.ssec'); + $stack->appendBuild(ApplyMd5Middleware::wrap(), 's3.md5'); + $stack->appendBuild( + Middleware::contentType(['PutObject', 'UploadPart']), + 's3.content_type' + ); - // 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'); + // Use the bucket style middleware when using a "bucket_endpoint" (for cnames) + if ($this->getConfig('bucket_endpoint')) { + $stack->appendBuild(BucketEndpointMiddleware::wrap(), 's3.bucket_endpoint'); } - return $currentValue; + $stack->appendSign(PutObjectUrlMiddleware::wrap(), 's3.put_object_url'); + $stack->appendSign(PermanentRedirectMiddleware::wrap(), 's3.permanent_redirect'); + $stack->appendInit(Middleware::sourceFile($this->getApi()), 's3.source_file'); + $stack->appendInit($this->getLocationConstraintMiddleware(), 's3.location'); } /** * 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., + * bucket. + * + * DNS compatible bucket names can be used as a subdomain in a URL (e.g., * ".s3.amazonaws.com"). * - * @param string $bucket The name of the bucket to check. + * @param string $bucket Bucket name to check. * - * @return bool TRUE if the bucket name is valid or FALSE if it is invalid. + * @return bool */ - public static function isValidBucketName($bucket) + public static function isBucketDnsCompatible($bucket) { $bucketLen = strlen($bucket); - if ($bucketLen < 3 || $bucketLen > 63 || - // 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) - ) { - return false; - } - return true; + return ($bucketLen >= 3 && $bucketLen <= 63) && + // Cannot look like an IP address + !filter_var($bucket, FILTER_VALIDATE_IP) && + preg_match('/^[a-z0-9]([a-z0-9\-\.]*[a-z0-9])?$/', $bucket); } /** - * Create a pre-signed URL for a request + * Create a pre-signed URL for the given S3 command object. * - * @param RequestInterface $request Request to generate the URL for. Use the factory methods of the client to - * create this request object - * @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 + * @param CommandInterface $command Command to create a pre-signed + * URL for. + * @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 - * @throws InvalidArgumentException if the request is not associated with this client object + * @return RequestInterface */ - public function createPresignedUrl(RequestInterface $request, $expires) + public function createPresignedRequest(CommandInterface $command, $expires) { - if ($request->getClient() !== $this) { - throw new InvalidArgumentException('The request object must be associated with the client. Use the ' - . '$client->get(), $client->head(), $client->post(), $client->put(), etc. methods when passing in a ' - . 'request object'); - } + /** @var \Aws\Signature\SignatureInterface $signer */ + $signer = call_user_func( + $this->getSignatureProvider(), + $this->getConfig('signature_version'), + $this->getApi()->getSigningName(), + $this->getRegion() + ); - return $this->signature->createPresignedUrl($request, $this->credentials, $expires); + return $signer->presign( + \Aws\serialize($command), + $this->getCredentials()->wait(), + $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. + * Returns the URL to an object identified by its bucket and key. * - * 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. + * The URL returned by this method is not signed nor does it ensure the the + * bucket and key given to the method exist. If you need a signed URL, then + * use the {@see \Aws\S3\S3Client::createPresignedRequest} method and get + * the URI of the signed request. * * @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 - * @param array $args Arguments to the GetObject command. Additionally you can specify a "Scheme" if you would - * like the URL to use a different scheme than what the client is configured to use * * @return string The URL to the object */ - public function getObjectUrl($bucket, $key, $expires = null, array $args = array()) - { - $command = $this->getCommand('GetObject', $args + array('Bucket' => $bucket, 'Key' => $key)); - - if ($command->hasKey('Scheme')) { - $scheme = $command['Scheme']; - $request = $command->remove('Scheme')->prepare()->setScheme($scheme)->setPort(null); - } else { - $request = $command->prepare(); - } - - return $expires ? $this->createPresignedUrl($request, $expires) : $request->getUrl(); - } - - /** - * Helper used to clear the contents of a bucket. Use the {@see ClearBucket} object directly - * for more advanced options and control. - * - * @param string $bucket Name of the bucket to clear. - * - * @return int Returns the number of deleted keys - */ - public function clearBucket($bucket) + public function getObjectUrl($bucket, $key) { - $clear = new ClearBucket($this, $bucket); + $command = $this->getCommand('GetObject', [ + 'Bucket' => $bucket, + 'Key' => $key + ]); - return $clear->clear(); + return (string) \Aws\serialize($command)->getUri(); } /** - * Determines whether or not a bucket exists by name + * Determines whether or not a bucket exists by name. * - * @param string $bucket The name of the bucket - * @param bool $accept403 Set to true if 403s are acceptable - * @param array $options Additional options to add to the executed command + * @param string $bucket The name of the bucket * * @return bool */ - public function doesBucketExist($bucket, $accept403 = true, array $options = array()) + public function doesBucketExist($bucket) { return $this->checkExistenceWithCommand( - $this->getCommand('HeadBucket', array_merge($options, array( - 'Bucket' => $bucket - ))), $accept403 + $this->getCommand('HeadBucket', ['Bucket' => $bucket]) ); } /** - * Determines whether or not an object exists by name + * Determines whether or not an object exists by name. * * @param string $bucket The name of the bucket * @param string $key The key of the object - * @param array $options Additional options to add to the executed command + * @param array $options Additional options available in the HeadObject + * operation (e.g., VersionId). * * @return bool */ - public function doesObjectExist($bucket, $key, array $options = array()) + public function doesObjectExist($bucket, $key, array $options = []) { return $this->checkExistenceWithCommand( - $this->getCommand('HeadObject', array_merge($options, array( + $this->getCommand('HeadObject', [ 'Bucket' => $bucket, 'Key' => $key - ))) - ); - } - - /** - * Determines whether or not a bucket policy exists for a bucket - * - * @param string $bucket The name of the bucket - * @param array $options Additional options to add to the executed command - * - * @return bool - */ - public function doesBucketPolicyExist($bucket, array $options = array()) - { - return $this->checkExistenceWithCommand( - $this->getCommand('GetBucketPolicy', array_merge($options, array( - 'Bucket' => $bucket - ))) + ] + $options) ); } @@ -458,90 +199,119 @@ class S3Client extends AbstractClient } /** - * Explode a prefixed key into an array of values - * - * @param string $key Key to explode - * - * @return array Returns the exploded + * Register the Amazon S3 stream wrapper with this client instance. */ - public static function explodeKey($key) + public function registerStreamWrapper() { - // Remove a leading slash if one is found - return explode('/', $key && $key[0] == '/' ? substr($key, 1) : $key); + StreamWrapper::register($this); } /** - * Register the Amazon S3 stream wrapper and associates it with this client object + * Deletes objects from Amazon S3 that match the result of a ListObjects + * operation. For example, this allows you to do things like delete all + * objects that match a specific key prefix. * - * @return $this + * @param string $bucket Bucket that contains the object keys + * @param string $prefix Optionally delete only objects under this key prefix + * @param string $regex Delete only objects that match this regex + * @param array $options Aws\S3\BatchDelete options array. + * + * @see Aws\S3\S3Client::listObjects + * @throws \RuntimeException if no prefix and no regex is given */ - public function registerStreamWrapper() - { - StreamWrapper::register($this); + public function deleteMatchingObjects( + $bucket, + $prefix = '', + $regex = '', + array $options = [] + ) { + if (!$prefix && !$regex) { + throw new \RuntimeException('A prefix or regex is required.'); + } - return $this; + $params = ['Bucket' => $bucket, 'Prefix' => $prefix]; + $iter = $this->getIterator('ListObjects', $params); + + if ($regex) { + $iter = \Aws\filter($iter, function ($c) use ($regex) { + return preg_match($regex, $c['Key']); + }); + } + + BatchDelete::fromIterator($this, $bucket, $iter, $options)->delete(); } /** - * Upload a file, stream, or string to a bucket. If the upload size exceeds the specified threshold, the upload - * will be performed using parallel multipart uploads. - * - * @param string $bucket Bucket to upload the object - * @param string $key Key of the object - * @param mixed $body Object data to upload. Can be a Guzzle\Http\EntityBodyInterface, stream resource, or + * Upload a file, stream, or string to a bucket. + * + * If the upload size exceeds the specified threshold, the upload will be + * performed using concurrent multipart uploads. + * + * The options array accepts the following options: + * + * - before_upload: (callable) Callback to invoke before any upload + * operations during the upload process. The callback should have a + * function signature like `function (Aws\Command $command) {...}`. + * - concurrency: (int, default=int(3)) Maximum number of concurrent + * `UploadPart` operations allowed during a multipart upload. + * - mup_threshold: (int, default=int(16777216)) The size, in bytes, allowed + * before the upload must be sent via a multipart upload. Default: 16 MB. + * - params: (array, default=array([])) Custom parameters to use with the + * upload. For single uploads, they must correspond to those used for the + * `PutObject` operation. For multipart uploads, they correspond to the + * parameters of the `CreateMultipartUpload` operation. + * - part_size: (int) Part size to use when doing a multipart upload. + * + * @param string $bucket Bucket to upload the object. + * @param string $key Key of the object. + * @param mixed $body Object data to upload. Can be a + * StreamInterface, PHP stream resource, or a * string of data to upload. - * @param string $acl ACL to apply to the object - * @param array $options Custom options used when executing commands: - * - params: Custom parameters to use with the upload. The parameters must map to a PutObject - * or InitiateMultipartUpload operation parameters. - * - min_part_size: Minimum size to allow for each uploaded part when performing a multipart upload. - * - concurrency: Maximum number of concurrent multipart uploads. - * - before_upload: Callback to invoke before each multipart upload. The callback will receive a - * Guzzle\Common\Event object with context. - * - * @see Aws\S3\Model\MultipartUpload\UploadBuilder for more options and customization - * @return \Guzzle\Service\Resource\Model Returns the modeled result of the performed operation + * @param string $acl ACL to apply to the object (default: private). + * @param array $options Options used to configure the upload process. + * + * @see Aws\S3\MultipartUploader for more info about multipart uploads. + * @return ResultInterface Returns the result of the upload. */ - public function upload($bucket, $key, $body, $acl = 'private', array $options = array()) + public function upload($bucket, $key, $body, $acl = 'private', array $options = []) { - $body = EntityBody::factory($body); - $options = Collection::fromConfig(array_change_key_case($options), array( - 'min_part_size' => AbstractMulti::MIN_PART_SIZE, - 'params' => array(), - 'concurrency' => $body->getWrapper() == 'plainfile' ? 3 : 1 - )); - - if ($body->getSize() < $options['min_part_size']) { - // Perform a simple PutObject operation - return $this->putObject(array( + // Prepare the options. + static $defaults = [ + 'before_upload' => null, + 'concurrency' => 3, + 'mup_threshold' => 16777216, + 'params' => [], + 'part_size' => null, + ]; + $options = array_intersect_key($options + $defaults, $defaults); + + // Perform the required operations to upload the S3 Object. + $body = Psr7\stream_for($body); + if ($this->requiresMultipart($body, $options['mup_threshold'])) { + // Perform a multipart upload. + $options['before_initiate'] = function ($command) use ($options) { + foreach ($options['params'] as $k => $v) { + $command[$k] = $v; + } + }; + return (new MultipartUploader($this, $body, [ + 'bucket' => $bucket, + 'key' => $key, + 'acl' => $acl + ] + $options))->upload(); + } else { + // Perform a regular PutObject operation. + $command = $this->getCommand('PutObject', [ 'Bucket' => $bucket, 'Key' => $key, 'Body' => $body, - 'ACL' => $acl - ) + $options['params']); - } - - // Perform a multipart upload if the file is large enough - $transfer = UploadBuilder::newInstance() - ->setBucket($bucket) - ->setKey($key) - ->setMinPartSize($options['min_part_size']) - ->setConcurrency($options['concurrency']) - ->setClient($this) - ->setSource($body) - ->setTransferOptions($options->toArray()) - ->addOptions($options['params']) - ->setOption('ACL', $acl) - ->build(); - - if ($options['before_upload']) { - $transfer->getEventDispatcher()->addListener( - AbstractTransfer::BEFORE_PART_UPLOAD, - $options['before_upload'] - ); + 'ACL' => $acl, + ] + $options['params']); + if (is_callable($options['before_upload'])) { + $options['before_upload']($command); + } + return $this->execute($command); } - - return $transfer->upload(); } /** @@ -550,42 +320,18 @@ class S3Client extends AbstractClient * @param string $directory Full path to a directory to upload * @param string $bucket Name of the bucket * @param string $keyPrefix Virtual directory key prefix to add to each upload - * @param array $options Associative array of upload options - * - params: Array of parameters to use with each PutObject operation performed during the transfer - * - base_dir: Base directory to remove from each object key - * - force: Set to true to upload every file, even if the file is already in Amazon S3 and has not changed - * - concurrency: Maximum number of parallel uploads (defaults to 10) - * - debug: Set to true or an fopen resource to enable debug mode to print information about each upload - * - multipart_upload_size: When the size of a file exceeds this value, the file will be uploaded using a - * multipart upload. - * - * @see Aws\S3\S3Sync\S3Sync for more options and customization + * @param array $options Options available in Aws\S3\Transfer::__construct + * + * @see Aws\S3\Transfer for more options and customization */ - public function uploadDirectory($directory, $bucket, $keyPrefix = null, array $options = array()) - { - $options = Collection::fromConfig( - $options, - array( - 'base_dir' => realpath($directory) ?: $directory - ) - ); - - $builder = $options['builder'] ?: UploadSyncBuilder::getInstance(); - $builder->uploadFromDirectory($directory) - ->setClient($this) - ->setBucket($bucket) - ->setKeyPrefix($keyPrefix) - ->setConcurrency($options['concurrency'] ?: 5) - ->setBaseDir($options['base_dir']) - ->force($options['force']) - ->setOperationParams($options['params'] ?: array()) - ->enableDebugOutput($options['debug']); - - if ($options->hasKey('multipart_upload_size')) { - $builder->setMultipartUploadSize($options['multipart_upload_size']); - } - - $builder->build()->transfer(); + public function uploadDirectory( + $directory, + $bucket, + $keyPrefix = null, + array $options = [] + ) { + $d = "s3://$bucket" . ($keyPrefix ? '/' . ltrim($keyPrefix, '/') : ''); + (new Transfer($this, $directory, $d, $options))->transfer(); } /** @@ -594,100 +340,193 @@ class S3Client extends AbstractClient * @param string $directory Directory to download to * @param string $bucket Bucket to download from * @param string $keyPrefix Only download objects that use this key prefix - * @param array $options Associative array of download options - * - params: Array of parameters to use with each GetObject operation performed during the transfer - * - base_dir: Base directory to remove from each object key when storing in the local filesystem - * - force: Set to true to download every file, even if the file is already on the local filesystem and has not - * changed - * - concurrency: Maximum number of parallel downloads (defaults to 10) - * - debug: Set to true or a fopen resource to enable debug mode to print information about each download - * - allow_resumable: Set to true to allow previously interrupted downloads to be resumed using a Range GET + * @param array $options Options available in Aws\S3\Transfer::__construct */ - public function downloadBucket($directory, $bucket, $keyPrefix = '', array $options = array()) - { - $options = new Collection($options); - $builder = $options['builder'] ?: DownloadSyncBuilder::getInstance(); - $builder->setDirectory($directory) - ->setClient($this) - ->setBucket($bucket) - ->setKeyPrefix($keyPrefix) - ->setConcurrency($options['concurrency'] ?: 10) - ->setBaseDir($options['base_dir']) - ->force($options['force']) - ->setOperationParams($options['params'] ?: array()) - ->enableDebugOutput($options['debug']); - - if ($options['allow_resumable']) { - $builder->allowResumableDownloads(); - } - - $builder->build()->transfer(); + public function downloadBucket( + $directory, + $bucket, + $keyPrefix = '', + array $options = [] + ) { + $s = "s3://$bucket" . ($keyPrefix ? '/' . ltrim($keyPrefix, '/') : ''); + (new Transfer($this, $s, $directory, $options))->transfer(); } /** - * Deletes objects from Amazon S3 that match the result of a ListObjects operation. For example, this allows you - * to do things like delete all objects that match a specific key prefix. + * Determines if the body should be uploaded using PutObject or the + * Multipart Upload System. It also modifies the passed-in $body as needed + * to support the upload. * - * @param string $bucket Bucket that contains the object keys - * @param string $prefix Optionally delete only objects under this key prefix - * @param string $regex Delete only objects that match this regex - * @param array $options Options used when deleting the object: - * - before_delete: Callback to invoke before each delete. The callback will receive a - * Guzzle\Common\Event object with context. + * @param StreamInterface $body Stream representing the body. + * @param integer $threshold Minimum bytes before using Multipart. * - * @see Aws\S3\S3Client::listObjects - * @see Aws\S3\Model\ClearBucket For more options or customization - * @return int Returns the number of deleted keys - * @throws RuntimeException if no prefix and no regex is given + * @return bool */ - public function deleteMatchingObjects($bucket, $prefix = '', $regex = '', array $options = array()) + private function requiresMultipart(StreamInterface &$body, $threshold) { - if (!$prefix && !$regex) { - throw new RuntimeException('A prefix or regex is required, or use S3Client::clearBucket().'); + // If body size known, compare to threshold to determine if Multipart. + if ($body->getSize() !== null) { + return $body->getSize() >= $threshold; } - $clear = new ClearBucket($this, $bucket); - $iterator = $this->getIterator('ListObjects', array('Bucket' => $bucket, 'Prefix' => $prefix)); + // Handle the situation where the body size is unknown. + // Read up to 5MB into a buffer to determine how to upload the body. + $buffer = Psr7\stream_for(); + Psr7\copy_to_stream($body, $buffer, MultipartUploader::PART_MIN_SIZE); - if ($regex) { - $iterator = new FilterIterator($iterator, function ($current) use ($regex) { - return preg_match($regex, $current['Key']); - }); + // If body < 5MB, use PutObject with the buffer. + if ($buffer->getSize() < MultipartUploader::PART_MIN_SIZE) { + $buffer->seek(0); + $body = $buffer; + return false; } - $clear->setIterator($iterator); - if (isset($options['before_delete'])) { - $clear->getEventDispatcher()->addListener(ClearBucket::BEFORE_CLEAR, $options['before_delete']); + // If body >= 5 MB, then use multipart. [YES] + if ($body->isSeekable()) { + // If the body is seekable, just rewind the body. + $body->seek(0); + } else { + // If the body is non-seekable, stitch the rewind the buffer and + // the partially read body together into one stream. This avoids + // unnecessary disc usage and does not require seeking on the + // original stream. + $buffer->seek(0); + $body = new Psr7\AppendStream([$buffer, $body]); } - return $clear->clear(); + return true; } /** * Determines whether or not a resource exists using a command * - * @param CommandInterface $command Command used to poll for the resource - * @param bool $accept403 Set to true if 403s are acceptable + * @param CommandInterface $command Command used to poll for the resource * * @return bool * @throws S3Exception|\Exception if there is an unhandled exception */ - protected function checkExistenceWithCommand(CommandInterface $command, $accept403 = false) + private function checkExistenceWithCommand(CommandInterface $command) { try { - $command->execute(); - $exists = true; - } catch (AccessDeniedException $e) { - $exists = (bool) $accept403; + $this->execute($command); + return true; } catch (S3Exception $e) { - $exists = false; - if ($e->getResponse()->getStatusCode() >= 500) { - // @codeCoverageIgnoreStart + if ($e->getAwsErrorCode() == 'AccessDenied') { + return true; + } + if ($e->getStatusCode() >= 500) { throw $e; - // @codeCoverageIgnoreEnd } + return false; } + } - return $exists; + /** + * Provides a middleware that removes the need to specify LocationConstraint on CreateBucket. + * + * @return \Closure + */ + private function getLocationConstraintMiddleware() + { + return function (callable $handler) { + return function ($command, $request = null) use ($handler) { + if ($command->getName() === 'CreateBucket') { + $region = $this->getRegion(); + if ($region === 'us-east-1') { + unset($command['CreateBucketConfiguration']); + } else { + $command['CreateBucketConfiguration'] = ['LocationConstraint' => $region]; + } + } + + return $handler($command, $request); + }; + }; + } + + /** @internal */ + public static function _applyRetryConfig($value, $_, HandlerList $list) + { + if (!$value) { + return; + } + + $decider = RetryMiddleware::createDefaultDecider($value); + $decider = function ($retries, $request, $result, $error) use ($decider) { + if ($decider($retries, $request, $result, $error)) { + return true; + } elseif ($error instanceof AwsException) { + return $error->getResponse() + && strpos( + $error->getResponse()->getBody(), + 'Your socket connection to the server' + ) !== false; + } + return false; + }; + + $delay = [RetryMiddleware::class, 'exponentialDelay']; + $list->appendSign(Middleware::retry($decider, $delay), 'retry'); + } + + /** @internal */ + public static function _applyApiProvider($value, array &$args, HandlerList $list) + { + ClientResolver::_apply_api_provider($value, $args, $list); + $args['parser'] = new GetBucketLocationParser($args['parser']); + } + + /** + * @internal + * @codeCoverageIgnore + */ + public static function applyDocFilters(array $api, array $docs) + { + $b64 = '
This value will be base64 ' + . 'encoded on your behalf.
'; + + // Add the SourceFile parameter. + $docs['shapes']['SourceFile']['base'] = 'The path to a file on disk to use instead of the Body parameter.'; + $api['shapes']['SourceFile'] = ['type' => 'string']; + $api['shapes']['PutObjectRequest']['members']['SourceFile'] = ['shape' => 'SourceFile']; + $api['shapes']['UploadPartRequest']['members']['SourceFile'] = ['shape' => 'SourceFile']; + + // Several SSECustomerKey documentation updates. + $docs['shapes']['SSECustomerKey']['append'] = $b64; + $docs['shapes']['CopySourceSSECustomerKey']['append'] = $b64; + $docs['shapes']['SSECustomerKeyMd5']['append'] = '
The value will be computed on ' + . 'your behalf if it is not supplied.
'; + + // Add the ObjectURL to various output shapes and documentation. + $objectUrl = 'The URI of the created object.'; + $api['shapes']['ObjectURL'] = ['type' => 'string']; + $api['shapes']['PutObjectOutput']['members']['ObjectURL'] = ['shape' => 'ObjectURL']; + $api['shapes']['CopyObjectOutput']['members']['ObjectURL'] = ['shape' => 'ObjectURL']; + $api['shapes']['CompleteMultipartUploadOutput']['members']['ObjectURL'] = ['shape' => 'ObjectURL']; + $docs['shapes']['ObjectURL']['base'] = $objectUrl; + + // Fix references to Location Constraint. + unset($api['shapes']['CreateBucketRequest']['payload']); + $api['shapes']['BucketLocationConstraint']['enum'] = [ + "ap-northeast-1", + "ap-southeast-2", + "ap-southeast-1", + "cn-north-1", + "eu-central-1", + "eu-west-1", + "us-east-1", + "us-west-1", + "us-west-2", + "sa-east-1", + ]; + + // Add a note that the ContentMD5 is optional. + $docs['shapes']['ContentMD5']['append'] = '
The value will be computed on ' + . 'your behalf.
'; + + return [ + new Service($api, ApiProvider::defaultProvider()), + new DocModel($docs) + ]; } } diff --git a/lib/aws-sdk/Aws/S3/S3Md5Listener.php b/lib/aws-sdk/Aws/S3/S3Md5Listener.php deleted file mode 100644 index 7558c47..0000000 --- a/lib/aws-sdk/Aws/S3/S3Md5Listener.php +++ /dev/null @@ -1,73 +0,0 @@ - '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/lib/aws-sdk/Aws/S3/S3Signature.php b/lib/aws-sdk/Aws/S3/S3Signature.php deleted file mode 100644 index ef9a86b..0000000 --- a/lib/aws-sdk/Aws/S3/S3Signature.php +++ /dev/null @@ -1,266 +0,0 @@ -signableQueryString); - - // Add the security token header if one is being used by the credentials - if ($token = $credentials->getSecurityToken()) { - $request->setHeader('x-amz-security-token', $token); - } - - $request->removeHeader('x-amz-date'); - $request->setHeader('Date', gmdate(\DateTime::RFC2822)); - - $stringToSign = $this->createCanonicalizedString($request); - $request->getParams()->set('aws.string_to_sign', $stringToSign); - - $request->setHeader( - 'Authorization', - 'AWS ' . $credentials->getAccessKeyId() . ':' . $this->signString($stringToSign, $credentials) - ); - } - - 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)); - } - - public function createCanonicalizedString(RequestInterface $request, $expires = null) - { - $buffer = $request->getMethod() . "\n"; - - // Add the interesting headers - foreach ($this->signableHeaders as $header) { - $buffer .= (string) $request->getHeader($header) . "\n"; - } - - // Choose dates from left to right based on what's set - $date = $expires ?: (string) $request->getHeader('date'); - - $buffer .= "{$date}\n" - . $this->createCanonicalizedAmzHeaders($request) - . $this->createCanonicalizedResource($request); - - return $buffer; - } - - /** - * Create a canonicalized AmzHeaders string for a signature. - * - * @param RequestInterface $request Request from which to gather headers - * - * @return string Returns canonicalized AMZ headers. - */ - private function createCanonicalizedAmzHeaders(RequestInterface $request) - { - $headers = array(); - foreach ($request->getHeaders() as $name => $header) { - $name = strtolower($name); - if (strpos($name, 'x-amz-') === 0) { - $value = trim((string) $header); - if ($value || $value === '0') { - $headers[$name] = $name . ':' . $value; - } - } - } - - if (!$headers) { - return ''; - } - - ksort($headers); - - return implode("\n", $headers) . "\n"; - } - - /** - * Create a canonicalized resource for a request - * - * @param RequestInterface $request Request for the resource - * - * @return string - */ - private function createCanonicalizedResource(RequestInterface $request) - { - $buffer = $request->getParams()->get('s3.resource'); - // When sending a raw HTTP request (e.g. $client->get()) - if (null === $buffer) { - $bucket = $request->getParams()->get('bucket') ?: $this->parseBucketName($request); - // Use any specified bucket name, the parsed bucket name, or no bucket name when interacting with GetService - $buffer = $bucket ? "/{$bucket}" : ''; - // Remove encoding from the path and use the S3 specific encoding - $path = S3Client::encodeKey(rawurldecode($request->getPath())); - // if the bucket was path style, then ensure that the bucket wasn't duplicated in the resource - $buffer .= preg_replace("#^/{$bucket}/{$bucket}#", "/{$bucket}", $path); - } - - // Remove double slashes - $buffer = str_replace('//', '/', $buffer); - - // Add sub resource parameters - $query = $request->getQuery(); - $first = true; - foreach ($this->signableQueryString as $key) { - if ($query->hasKey($key)) { - $value = $query[$key]; - $buffer .= $first ? '?' : '&'; - $first = false; - $buffer .= $key; - // Don't add values for empty sub-resources - if ($value !== '' && - $value !== false && - $value !== null && - $value !== QueryString::BLANK - ) { - $buffer .= "={$value}"; - } - } - } - - return $buffer; - } - - /** - * Parse the bucket name from a request object - * - * @param RequestInterface $request Request to parse - * - * @return string - */ - private function parseBucketName(RequestInterface $request) - { - $baseUrl = Url::factory($request->getClient()->getBaseUrl()); - $baseHost = $baseUrl->getHost(); - $host = $request->getHost(); - - if (strpos($host, $baseHost) === false) { - // Does not contain the base URL, so it's either a redirect, CNAME, or using a different region - $baseHost = ''; - // For every known S3 host, check if that host is present on the request - $regions = $request->getClient()->getDescription()->getData('regions'); - foreach ($regions as $region) { - if (strpos($host, $region['hostname']) !== false) { - // This host matches the request host. Tells use the region and endpoint-- we can derive the bucket - $baseHost = $region['hostname']; - break; - } - } - // If no matching base URL was found, then assume that this is a CNAME, and the CNAME is the bucket - if (!$baseHost) { - return $host; - } - } - - // Remove the baseURL from the host of the request to attempt to determine the bucket name - return trim(str_replace($baseHost, '', $request->getHost()), ' .'); - } -} diff --git a/lib/aws-sdk/Aws/S3/S3SignatureInterface.php b/lib/aws-sdk/Aws/S3/S3SignatureInterface.php deleted file mode 100644 index 0b7e940..0000000 --- a/lib/aws-sdk/Aws/S3/S3SignatureInterface.php +++ /dev/null @@ -1,24 +0,0 @@ -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/lib/aws-sdk/Aws/S3/S3UriParser.php b/lib/aws-sdk/Aws/S3/S3UriParser.php new file mode 100644 index 0000000..4403f5e --- /dev/null +++ b/lib/aws-sdk/Aws/S3/S3UriParser.php @@ -0,0 +1,110 @@ + true, + 'bucket' => null, + 'key' => null, + 'region' => null + ]; + + /** + * Parses a URL into an associative array of Amazon S3 data including: + * + * - bucket: The Amazon S3 bucket (null if none) + * - key: The Amazon S3 key (null if none) + * - path_style: Set to true if using path style, or false if not + * - region: Set to a string if a non-class endpoint is used or null. + * + * @param string|UriInterface $uri + * + * @return array + * @throws \InvalidArgumentException + */ + public function parse($uri) + { + $url = Psr7\uri_for($uri); + if (!$url->getHost()) { + throw new \InvalidArgumentException('No hostname found in URI: ' + . $uri); + } + + if (!preg_match($this->pattern, $url->getHost(), $matches)) { + return $this->parseCustomEndpoint($url); + } + + // Parse the URI based on the matched format (path / virtual) + $result = empty($matches[1]) + ? $this->parsePathStyle($url) + : $this->parseVirtualHosted($url, $matches); + + // Add the region if one was found and not the classic endpoint + $result['region'] = $matches[2] == 'amazonaws' ? null : $matches[2]; + + return $result; + } + + private function parseCustomEndpoint(UriInterface $url) + { + $result = $result = self::$defaultResult; + $path = ltrim($url->getPath(), '/ '); + $segments = explode('/', $path, 2); + + if (isset($segments[0])) { + $result['bucket'] = $segments[0]; + if (isset($segments[1])) { + $result['key'] = $segments[1]; + } + } + + return $result; + } + + private function parsePathStyle(UriInterface $url) + { + $result = self::$defaultResult; + + if ($url->getPath() != '/') { + $path = ltrim($url->getPath(), '/'); + if ($path) { + $pathPos = strpos($path, '/'); + if ($pathPos === false) { + // https://s3.amazonaws.com/bucket + $result['bucket'] = $path; + } elseif ($pathPos == strlen($path) - 1) { + // https://s3.amazonaws.com/bucket/ + $result['bucket'] = substr($path, 0, -1); + } else { + // https://s3.amazonaws.com/bucket/key + $result['bucket'] = substr($path, 0, $pathPos); + $result['key'] = substr($path, $pathPos + 1) ?: null; + } + } + } + + return $result; + } + + private function parseVirtualHosted(UriInterface $url, array $matches) + { + $result = self::$defaultResult; + $result['path_style'] = false; + // Remove trailing "." from the prefix to get the bucket + $result['bucket'] = substr($matches[1], 0, -1); + $path = $url->getPath(); + // Check if a key was present, and if so, removing the leading "/" + $result['key'] = !$path || $path == '/' ? null : substr($path, 1); + + return $result; + } +} diff --git a/lib/aws-sdk/Aws/S3/SSECMiddleware.php b/lib/aws-sdk/Aws/S3/SSECMiddleware.php new file mode 100644 index 0000000..9435a20 --- /dev/null +++ b/lib/aws-sdk/Aws/S3/SSECMiddleware.php @@ -0,0 +1,75 @@ +nextHandler = $nextHandler; + $this->endpointScheme = $endpointScheme; + } + + public function __invoke( + CommandInterface $command, + RequestInterface $request = null + ) { + // Allows only HTTPS connections when using SSE-C + if (($command['SSECustomerKey'] || $command['CopySourceSSECustomerKey']) + && $this->endpointScheme !== 'https' + ) { + throw new \RuntimeException('You must configure your S3 client to ' + . 'use HTTPS in order to use the SSE-C features.'); + } + + // 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, 'CopySource'); + } + + $f = $this->nextHandler; + return $f($command, $request); + } + + private function prepareSseParams(CommandInterface $command, $prefix = '') + { + // 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/lib/aws-sdk/Aws/S3/SocketTimeoutChecker.php b/lib/aws-sdk/Aws/S3/SocketTimeoutChecker.php deleted file mode 100644 index ede2b96..0000000 --- a/lib/aws-sdk/Aws/S3/SocketTimeoutChecker.php +++ /dev/null @@ -1,71 +0,0 @@ -setNext($next); - } - } - - /** - * {@inheridoc} - */ - public function makesDecision() - { - return true; - } - - /** - * {@inheritdoc} - */ - protected function getDelay( - $retries, - RequestInterface $request, - Response $response = null, - HttpException $e = null - ) { - if ($response - && $response->getStatusCode() == 400 - && strpos($response->getBody(), self::ERR) - ) { - return true; - } - } -} diff --git a/lib/aws-sdk/Aws/S3/SseCpkListener.php b/lib/aws-sdk/Aws/S3/SseCpkListener.php deleted file mode 100644 index c1a9260..0000000 --- a/lib/aws-sdk/Aws/S3/SseCpkListener.php +++ /dev/null @@ -1,68 +0,0 @@ - '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/lib/aws-sdk/Aws/S3/StreamWrapper.php b/lib/aws-sdk/Aws/S3/StreamWrapper.php index 13cfbe3..480c54e 100644 --- a/lib/aws-sdk/Aws/S3/StreamWrapper.php +++ b/lib/aws-sdk/Aws/S3/StreamWrapper.php @@ -1,378 +1,312 @@ /" files with PHP streams, supporting "r", "w", "a", "x". - * - * # Supported stream related PHP functions: - * - fopen, fclose, fread, fwrite, fseek, ftell, feof, fflush - * - opendir, closedir, readdir, rewinddir - * - copy, rename, unlink - * - mkdir, rmdir, rmdir (recursive) - * - file_get_contents, file_put_contents - * - file_exists, filesize, is_file, is_dir + * Amazon S3 stream wrapper to use "s3:///" files with PHP + * streams, supporting "r", "w", "a", "x". * * # Opening "r" (read only) streams: * - * Read only streams are truly streaming by default and will not allow you to seek. This is because data - * read from the stream is not kept in memory or on the local filesystem. You can force a "r" stream to be seekable - * by setting the "seekable" stream context option true. This will allow true streaming of data from Amazon S3, but - * will maintain a buffer of previously read bytes in a 'php://temp' stream to allow seeking to previously read bytes - * from the stream. + * Read only streams are truly streaming by default and will not allow you to + * seek. This is because data read from the stream is not kept in memory or on + * the local filesystem. You can force a "r" stream to be seekable by setting + * the "seekable" stream context option true. This will allow true streaming of + * data from Amazon S3, but will maintain a buffer of previously read bytes in + * a 'php://temp' stream to allow seeking to previously read bytes from the + * stream. * - * You may pass any GetObject parameters as 's3' stream context options. These options will affect how the data is - * downloaded from Amazon S3. + * You may pass any GetObject parameters as 's3' stream context options. These + * options will affect how the data is downloaded from Amazon S3. * * # Opening "w" and "x" (write only) streams: * - * Because Amazon S3 requires a Content-Length header, write only streams will maintain a 'php://temp' stream to buffer - * data written to the stream until the stream is flushed (usually by closing the stream with fclose). + * Because Amazon S3 requires a Content-Length header, write only streams will + * maintain a 'php://temp' stream to buffer data written to the stream until + * the stream is flushed (usually by closing the stream with fclose). * - * You may pass any PutObject parameters as 's3' stream context options. These options will affect how the data is - * uploaded to Amazon S3. + * You may pass any PutObject parameters as 's3' stream context options. These + * options will affect how the data is uploaded to Amazon S3. * - * When opening an "x" stream, the file must exist on Amazon S3 for the stream to open successfully. + * When opening an "x" stream, the file must exist on Amazon S3 for the stream + * to open successfully. * * # Opening "a" (write only append) streams: * - * Similar to "w" streams, opening append streams requires that the data be buffered in a "php://temp" stream. Append - * streams will attempt to download the contents of an object in Amazon S3, seek to the end of the object, then allow - * you to append to the contents of the object. The data will then be uploaded using a PutObject operation when the - * stream is flushed (usually with fclose). + * Similar to "w" streams, opening append streams requires that the data be + * buffered in a "php://temp" stream. Append streams will attempt to download + * the contents of an object in Amazon S3, seek to the end of the object, then + * allow you to append to the contents of the object. The data will then be + * uploaded using a PutObject operation when the stream is flushed (usually + * with fclose). * - * You may pass any GetObject and/or PutObject parameters as 's3' stream context options. These options will affect how - * the data is downloaded and uploaded from Amazon S3. + * You may pass any GetObject and/or PutObject parameters as 's3' stream + * context options. These options will affect how the data is downloaded and + * uploaded from Amazon S3. * * Stream context options: * - * - "seekable": Set to true to create a seekable "r" (read only) stream by using a php://temp stream buffer - * - For "unlink" only: Any option that can be passed to the DeleteObject operation + * - "seekable": Set to true to create a seekable "r" (read only) stream by + * using a php://temp stream buffer + * - 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) - */ + /** @var resource|null Stream context (this is set by PHP) */ public $context; - /** - * @var S3Client Client used to send requests - */ - protected static $client; + /** @var StreamInterface Underlying stream resource */ + private $body; - /** - * @var string Mode the stream was opened with - */ - protected $mode; + /** @var array Hash of opened stream parameters */ + private $params = []; - /** - * @var EntityBody Underlying stream resource - */ - protected $body; + /** @var string Mode in which the stream was opened */ + private $mode; - /** - * @var array Current parameters to use with the flush operation - */ - protected $params; + /** @var \Iterator Iterator used with opendir() related calls */ + private $objectIterator; - /** - * @var ListObjectsIterator Iterator used with opendir() and subsequent readdir() calls - */ - protected $objectIterator; + /** @var string The bucket that was opened when opendir() was called */ + private $openedBucket; - /** - * @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() */ + private $openedBucketPrefix; - /** - * @var string The prefix of the bucket that was opened with opendir() - */ - protected $openedBucketPrefix; + /** @var string Opened bucket path */ + private $openedPath; - /** - * @var array The next key to retrieve when using a directory iterator. Helps for fast directory traversal. - */ - protected static $nextStat = array(); + /** @var CacheInterface Cache for object and dir lookups */ + private $cache; /** * Register the 's3://' stream wrapper * - * @param S3Client $client Client to use with the stream wrapper + * @param S3Client $client Client to use with the stream wrapper + * @param string $protocol Protocol to register as. + * @param CacheInterface $cache Default cache for the protocol. */ - public static function register(S3Client $client) - { - if (in_array('s3', stream_get_wrappers())) { - stream_wrapper_unregister('s3'); + public static function register( + S3Client $client, + $protocol = 's3', + CacheInterface $cache = null + ) { + if (in_array($protocol, stream_get_wrappers())) { + stream_wrapper_unregister($protocol); + } + + // Set the client passed in as the default stream context client + stream_wrapper_register($protocol, get_called_class(), STREAM_IS_URL); + $default = stream_context_get_options(stream_context_get_default()); + $default[$protocol]['client'] = $client; + + if ($cache) { + $default[$protocol]['cache'] = $cache; + } elseif (!isset($default[$protocol]['cache'])) { + // Set a default cache adapter. + $default[$protocol]['cache'] = new LruArrayCache(); } - stream_wrapper_register('s3', get_called_class(), STREAM_IS_URL); - static::$client = $client; + stream_context_set_default($default); } - /** - * Close the stream - */ public function stream_close() { - $this->body = null; + $this->body = $this->cache = 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(); + $this->params = $this->getBucketKey($path); + $this->mode = rtrim($mode, 'bt'); - if (!$params['Key']) { - $errors[] = 'Cannot open a bucket. You must specify a path in the form of s3://bucket/key'; + if ($errors = $this->validate($path, $this->mode)) { + return $this->triggerError($errors); } - if (strpos($mode, '+')) { - $errors[] = 'The Amazon S3 stream wrapper does not allow simultaneous reading and writing.'; - } - - if (!in_array($mode, array('r', 'w', 'a', 'x'))) { - $errors[] = "Mode not supported: {$mode}. Use one 'r', 'w', 'a', or 'x'."; - } - - // 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"; - } - - if (!$errors) { - if ($mode == 'r') { - $this->openReadStream($params, $errors); - } elseif ($mode == 'a') { - $this->openAppendStream($params, $errors); - } else { - $this->openWriteStream($params, $errors); + return $this->boolCall(function() use ($path) { + switch ($this->mode) { + case 'r': return $this->openReadStream($path); + case 'a': return $this->openAppendStream($path); + default: return $this->openWriteStream($path); } - } - - return $errors ? $this->triggerError($errors) : true; + }); } - /** - * @return bool - */ public function stream_eof() { - return $this->body->feof(); + return $this->body->eof(); } - /** - * @return bool - */ public function stream_flush() { if ($this->mode == 'r') { return false; } - $this->body->rewind(); - $params = $this->params; + if ($this->body->isSeekable()) { + $this->body->seek(0); + } + $params = $this->getOptions(true); $params['Body'] = $this->body; // 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'])) + ($type = Psr7\mimetype_from_filename($params['Key'])) ) { $params['ContentType'] = $type; } - try { - static::$client->putObject($params); - return true; - } catch (\Exception $e) { - return $this->triggerError($e->getMessage()); - } + return $this->boolCall(function () use ($params) { + return (bool) $this->getClient()->putObject($params); + }); } - /** - * 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); + return !$this->body->isSeekable() + ? false + : $this->boolCall(function () use ($offset, $whence) { + $this->body->seek($offset, $whence); + return true; + }); } - /** - * Get the current position of the stream - * - * @return int Returns the current position in the stream - */ public function stream_tell() { - return $this->body->ftell(); + return $this->boolCall(function() { return $this->body->tell(); }); } - /** - * 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 $this->boolCall(function () use ($path) { + $this->clearCacheKey($path); + $this->getClient()->deleteObject($this->withPath($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(); - } + $stat = $this->getStatTemplate(); + $stat[7] = $stat['size'] = (int) $this->body->getSize(); + $stat[2] = $stat['mode'] = $this->mode; return $stat; } /** - * Provides information for is_dir, is_file, filesize, etc. Works on buckets, keys, and prefixes - * - * @param string $path - * @param int $flags - * - * @return array Returns an array of stat data + * Provides information for is_dir, is_file, filesize, etc. Works on + * buckets, keys, and prefixes. * @link http://www.php.net/manual/en/streamwrapper.url-stat.php */ public function url_stat($path, $flags) { + // Some paths come through as S3:// for some reason. + $split = explode('://', $path); + $path = strtolower($split[0]) . '://' . $split[1]; + // Check if this path is in the url_stat cache - if (isset(static::$nextStat[$path])) { - return static::$nextStat[$path]; + if ($value = $this->getCacheStorage()->get($path)) { + return $value; + } + + $stat = $this->createStat($path, $flags); + + if (is_array($stat)) { + $this->getCacheStorage()->set($path, $stat); } - $parts = $this->getParams($path); + return $stat; + } + + private function createStat($path, $flags) + { + $parts = $this->withPath($path); if (!$parts['Key']) { - // Stat "directories": buckets, or "s3://" - if (!$parts['Bucket'] || static::$client->doesBucketExist($parts['Bucket'])) { - return $this->formatUrlStat($path); - } else { - return $this->triggerError("File or directory not found: {$path}", $flags); - } + return $this->statDirectory($parts, $path, $flags); } - try { + return $this->boolCall(function () use ($parts, $path) { try { - $result = static::$client->headObject($parts)->toArray(); - if (substr($parts['Key'], -1, 1) == '/' && $result['ContentLength'] == 0) { - // Return as if it is a bucket to account for console bucket objects (e.g., zero-byte object "foo/") + $result = $this->getClient()->headObject($parts); + if (substr($parts['Key'], -1, 1) == '/' && + $result['ContentLength'] == 0 + ) { + // Return as if it is a bucket to account for console + // bucket objects (e.g., zero-byte object "foo/") return $this->formatUrlStat($path); } else { // Attempt to stat and cache regular object - return $this->formatUrlStat($result); + return $this->formatUrlStat($result->toArray()); } - } catch (NoSuchKeyException $e) { - // Maybe this isn't an actual key, but a prefix. Do a prefix listing of objects to determine. - $result = static::$client->listObjects(array( + } catch (S3Exception $e) { + // Maybe this isn't an actual key, but a prefix. Do a prefix + // listing of objects to determine. + $result = $this->getClient()->listObjects([ 'Bucket' => $parts['Bucket'], 'Prefix' => rtrim($parts['Key'], '/') . '/', 'MaxKeys' => 1 - )); + ]); if (!$result['Contents'] && !$result['CommonPrefixes']) { - return $this->triggerError("File or directory not found: {$path}", $flags); + throw new \Exception("File or directory not found: $path"); } - // This is a directory prefix return $this->formatUrlStat($path); } - } catch (\Exception $e) { - return $this->triggerError($e->getMessage(), $flags); + }, $flags); + } + + private function statDirectory($parts, $path, $flags) + { + // Stat "directories": buckets, or "s3://" + if (!$parts['Bucket'] || + $this->getClient()->doesBucketExist($parts['Bucket']) + ) { + return $this->formatUrlStat($path); } + + return $this->triggerError("File or directory not found: $path", $flags); } /** * 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. + * @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); + $params = $this->withPath($path); + $this->clearCacheKey($path); if (!$params['Bucket']) { return false; } @@ -381,62 +315,28 @@ class StreamWrapper $params['ACL'] = $this->determineAcl($mode); } - return !isset($params['Key']) || $params['Key'] === '/' + return empty($params['Key']) ? $this->createBucket($path, $params) - : $this->createPseudoDirectory($path, $params); + : $this->createSubfolder($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); + $this->clearCacheKey($path); + $params = $this->withPath($path); + $client = $this->getClient(); + if (!$params['Bucket']) { - return $this->triggerError('You cannot delete s3://. Please specify a bucket.'); + return $this->triggerError('You must specify a bucket'); } - try { - + return $this->boolCall(function () use ($params, $path, $client) { if (!$params['Key']) { - static::$client->deleteBucket(array('Bucket' => $params['Bucket'])); - $this->clearStatInfo($path); + $client->deleteBucket(['Bucket' => $params['Bucket']]); 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()); - } + return $this->deleteSubfolder($path, $params); + }); } /** @@ -447,54 +347,55 @@ class StreamWrapper * 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. + * @param string $path The path to the directory + * (e.g. "s3://dir[]") + * @param string $options Unused option variable * * @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); + $this->openedPath = $path; + $params = $this->withPath($path); $delimiter = $this->getOption('delimiter'); + /** @var callable $filterFn */ $filterFn = $this->getOption('listFilter'); + $op = ['Bucket' => $params['Bucket']]; + $this->openedBucket = $params['Bucket']; if ($delimiter === null) { $delimiter = '/'; } + if ($delimiter) { + $op['Delimiter'] = $delimiter; + } + if ($params['Key']) { $params['Key'] = rtrim($params['Key'], $delimiter) . $delimiter; + $op['Prefix'] = $params['Key']; } - $this->openedBucket = $params['Bucket']; $this->openedBucketPrefix = $params['Key']; - $operationParams = array('Bucket' => $params['Bucket'], 'Prefix' => $params['Key']); - - if ($delimiter) { - $operationParams['Delimiter'] = $delimiter; - } - - $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 = \Aws\flatmap( + $this->getClient()->getPaginator('ListObjects', $op), + function (Result $result) use ($filterFn) { + $contentsAndPrefixes = $result->search('[Contents[], CommonPrefixes[]][]'); + // Filter out dir place holder keys and use the filter fn. + return array_filter( + $contentsAndPrefixes, + function ($key) use ($filterFn) { + return (!$filterFn || call_user_func($filterFn, $key)) + && (!isset($key['Key']) || substr($key['Key'], -1, 1) !== '/'); + } + ); } ); - $this->objectIterator->next(); - return true; } @@ -506,6 +407,7 @@ class StreamWrapper public function dir_closedir() { $this->objectIterator = null; + gc_collect_cycles(); return true; } @@ -517,17 +419,18 @@ class StreamWrapper */ public function dir_rewinddir() { - $this->clearStatInfo(); - $this->objectIterator->rewind(); - - return true; + $this->boolCall(function() { + $this->objectIterator = null; + $this->dir_opendir($this->openedPath, null); + 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. - * + * @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() @@ -537,32 +440,46 @@ class StreamWrapper return false; } - $current = $this->objectIterator->current(); - if (isset($current['Prefix'])) { + // First we need to create a cache key. This key is the full path to + // then object in s3: protocol://bucket/key. + // Next we need to create a result value. The result value is the + // current value of the iterator without the opened bucket prefix to + // emulate how readdir() works on directories. + // The cache key and result value will depend on if this is a prefix + // or a key. + $cur = $this->objectIterator->current(); + if (isset($cur['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); + $result = rtrim($cur['Prefix'], '/'); + $key = $this->formatKey($result); + $stat = $this->formatUrlStat($key); } 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); + $result = $cur['Key']; + $key = $this->formatKey($cur['Key']); + $stat = $this->formatUrlStat($cur); } // Cache the object data for quick url_stat lookups used with // RecursiveDirectoryIterator. - static::$nextStat = array($key => $stat); + $this->getCacheStorage()->set($key, $stat); $this->objectIterator->next(); - return $result; + // Remove the prefix from the result to emulate other stream wrappers. + return $this->openedBucketPrefix + ? substr($result, strlen($this->openedBucketPrefix)) + : $result; + } + + private function formatKey($key) + { + $protocol = explode('://', $this->openedPath)[0]; + return "{$protocol}://{$this->openedBucket}/{$key}"; } /** - * Called in response to rename() to rename a file or directory. Currently only supports renaming objects. + * 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 @@ -572,58 +489,100 @@ class StreamWrapper */ 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); + $partsFrom = $this->withPath($path_from); + $partsTo = $this->withPath($path_to); + $this->clearCacheKey($path_from); + $this->clearCacheKey($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 - static::$client->copyObject($this->getOptions() + array( - 'Bucket' => $partsTo['Bucket'], - 'Key' => $partsTo['Key'], - 'CopySource' => '/' . $partsFrom['Bucket'] . '/' . rawurlencode($partsFrom['Key']), - 'MetadataDirective' => 'COPY' - )); + return $this->triggerError('The Amazon S3 stream wrapper only ' + . 'supports copying objects'); + } + + return $this->boolCall(function () use ($partsFrom, $partsTo) { + // Copy the object and allow overriding default parameters if + // desired, but by default copy metadata + $this->getClient()->copyObject($this->getOptions(true) + [ + 'Bucket' => $partsTo['Bucket'], + 'Key' => $partsTo['Key'], + 'MetadataDirective' => 'COPY', + 'CopySource' => '/' . $partsFrom['Bucket'] . '/' + . rawurlencode($partsFrom['Key']), + ]); // Delete the original object - static::$client->deleteObject(array( + $this->getClient()->deleteObject([ 'Bucket' => $partsFrom['Bucket'], 'Key' => $partsFrom['Key'] - ) + $this->getOptions()); - } catch (\Exception $e) { - return $this->triggerError($e->getMessage()); - } + ] + $this->getOptions(true)); + return true; + }); + } - return true; + public function stream_cast($cast_as) + { + return false; } /** - * Cast the stream to return the underlying file resource - * - * @param int $cast_as STREAM_CAST_FOR_SELECT or STREAM_CAST_AS_STREAM - * - * @return resource + * Validates the provided stream arguments for fopen and returns an array + * of errors. */ - public function stream_cast($cast_as) + private function validate($path, $mode) { - return $this->body->getStream(); + $errors = []; + + if (!$this->getOption('Key')) { + $errors[] = 'Cannot open a bucket. You must specify a path in the ' + . 'form of s3://bucket/key'; + } + + if (!in_array($mode, ['r', 'w', 'a', 'x'])) { + $errors[] = "Mode not supported: {$mode}. " + . "Use one 'r', 'w', 'a', or 'x'."; + } + + // When using mode "x" validate if the file exists before attempting + // to read + if ($mode == 'x' && + $this->getClient()->doesObjectExist( + $this->getOption('Bucket'), + $this->getOption('Key'), + $this->getOptions(true) + ) + ) { + $errors[] = "{$path} already exists on Amazon S3"; + } + + return $errors; } /** * Get the stream context options available to the current stream * + * @param bool $removeContextData Set to true to remove contextual kvp's + * like 'client' from the result. + * * @return array */ - protected function getOptions() + private function getOptions($removeContextData = false) { - $context = $this->context ?: stream_context_get_default(); - $options = stream_context_get_options($context); + // Context is not set when doing things like stat + if ($this->context === null) { + $options = []; + } else { + $options = stream_context_get_options($this->context); + $options = isset($options['s3']) ? $options['s3'] : []; + } + + $default = stream_context_get_options(stream_context_get_default()); + $default = isset($default['s3']) ? $default['s3'] : []; + $result = $this->params + $options + $default; + + if ($removeContextData) { + unset($result['client'], $result['seekable'], $result['cache']); + } - return isset($options['s3']) ? $options['s3'] : array(); + return $result; } /** @@ -633,7 +592,7 @@ class StreamWrapper * * @return mixed|null */ - protected function getOption($name) + private function getOption($name) { $options = $this->getOptions(); @@ -641,118 +600,101 @@ class StreamWrapper } /** - * Get the bucket and key from the passed path (e.g. s3://bucket/key) - * - * @param string $path Path passed to the stream wrapper + * Gets the client from the stream context * - * @return array Hash of 'Bucket', 'Key', and custom params + * @return S3Client + * @throws \RuntimeException if no client has been configured */ - protected function getParams($path) + private function getClient() { - $parts = explode('/', substr($path, 5), 2); + if (!$client = $this->getOption('client')) { + throw new \RuntimeException('No client in stream context'); + } + + return $client; + } - $params = $this->getOptions(); - unset($params['seekable']); + private function getBucketKey($path) + { + // Remove the protocol + $parts = explode('://', $path); + // Get the bucket, key + $parts = explode('/', $parts[1], 2); - return array( + return [ 'Bucket' => $parts[0], 'Key' => isset($parts[1]) ? $parts[1] : null - ) + $params; + ]; } /** - * Serialize and sign a command, returning a request object + * Get the bucket and key from the passed path (e.g. s3://bucket/key) * - * @param CommandInterface $command Command to sign + * @param string $path Path passed to the stream wrapper * - * @return RequestInterface + * @return array Hash of 'Bucket', 'Key', and custom params from the context */ - protected function getSignedRequest($command) + private function withPath($path) { - $request = $command->prepare(); - $request->dispatch('request.before_send', array('request' => $request)); + $params = $this->getOptions(true); - return $request; + return $this->getBucketKey($path) + $params; } - /** - * 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) + private function openReadStream() { - // 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')); + $client = $this->getClient(); + $command = $client->getCommand('GetObject', $this->getOptions(true)); + $command['@http']['stream'] = true; + $result = $client->execute($command); + $this->body = $result['Body']; // Wrap the body in a caching entity body if seeking is allowed - if ($this->getOption('seekable')) { - $this->body = new CachingEntityBody($this->body); + if ($this->getOption('seekable') && !$this->body->isSeekable()) { + $this->body = new CachingStream($this->body); } 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) + private function openWriteStream() { - $this->body = new EntityBody(fopen('php://temp', 'r+')); + $this->body = new Stream(fopen('php://temp', 'r+')); + return true; } - /** - * 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) + private function openAppendStream() { try { - // Get the body of the object - $this->body = static::$client->getObject($params)->get('Body'); + // Get the body of the object and seek to the end of the stream + $client = $this->getClient(); + $this->body = $client->getObject($this->getOptions(true))['Body']; $this->body->seek(0, SEEK_END); + return true; } catch (S3Exception $e) { // The object does not exist, so use a simple write stream - $this->openWriteStream($params, $errors); + return $this->openWriteStream(); } - - 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 + * @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 + * @throws \RuntimeException if throw_errors is true */ - protected function triggerError($errors, $flags = null) + private function triggerError($errors, $flags = null) { + // This is triggered with things like file_exists() 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 $flags & STREAM_URL_STAT_LINK + // This is triggered for things like is_link() + ? $this->formatUrlStat(false) + : false; } // This is triggered when doing things like lstat() or stat() @@ -768,104 +710,112 @@ class StreamWrapper * * @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; + private function formatUrlStat($result = null) + { + $stat = $this->getStatTemplate(); + switch (gettype($result)) { + case 'NULL': + case 'string': + // Directory with 0777 access - see "man 2 stat". + $stat['mode'] = $stat[2] = 0040777; + break; + case 'array': + // Regular file with 0777 access - see "man 2 stat". + $stat['mode'] = $stat[2] = 0100777; + // Pluck the content-length if available. + if (isset($result['ContentLength'])) { + $stat['size'] = $stat[7] = $result['ContentLength']; + } elseif (isset($result['Size'])) { + $stat['size'] = $stat[7] = $result['Size']; + } + if (isset($result['LastModified'])) { + // ListObjects or HeadObject result + $stat['mtime'] = $stat[9] = $stat['ctime'] = $stat[10] + = strtotime($result['LastModified']); + } } 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() + * @param array $params A result of StreamWrapper::withPath() * * @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}"); + if ($this->getClient()->doesBucketExist($params['Bucket'])) { + return $this->triggerError("Bucket already exists: {$path}"); } - try { - static::$client->createBucket($params); - $this->clearStatInfo($path); + return $this->boolCall(function () use ($params, $path) { + $this->getClient()->createBucket($params); + $this->clearCacheKey($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() + * @param array $params A result of StreamWrapper::withPath() * * @return bool */ - private function createPseudoDirectory($path, array $params) + private function createSubfolder($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}"); + if ($this->getClient()->doesObjectExist( + $params['Bucket'], + $params['Key']) + ) { + return $this->triggerError("Subfolder already exists: {$path}"); } - try { - static::$client->putObject($params); - $this->clearStatInfo($path); + return $this->boolCall(function () use ($params, $path) { + $this->getClient()->putObject($params); + $this->clearCacheKey($path); return true; - } catch (\Exception $e) { - return $this->triggerError($e->getMessage()); + }); + } + + /** + * Deletes a nested subfolder if it is empty. + * + * @param string $path Path that is being deleted (e.g., 's3://a/b/c') + * @param array $params A result of StreamWrapper::withPath() + * + * @return bool + */ + private function deleteSubfolder($path, $params) + { + // Use a key that adds a trailing slash if needed. + $prefix = rtrim($params['Key'], '/') . '/'; + $result = $this->getClient()->listObjects([ + 'Bucket' => $params['Bucket'], + 'Prefix' => $prefix, + 'MaxKeys' => 1 + ]); + + // Check if the bucket contains keys other than the placeholder + if ($contents = $result['Contents']) { + return (count($contents) > 1 || $contents[0]['Key'] != $prefix) + ? $this->triggerError('Subfolder is not empty') + : $this->unlink(rtrim($path, '/') . '/'); } + + return $result['CommonPrefixes'] + ? $this->triggerError('Subfolder contains nested folders') + : true; } /** @@ -877,16 +827,75 @@ class StreamWrapper */ private function determineAcl($mode) { - $mode = decoct($mode); + switch (substr(decoct($mode), 0, 1)) { + case '7': return 'public-read'; + case '6': return 'authenticated-read'; + default: return 'private'; + } + } + + /** + * Gets a URL stat template with default values + * + * @return array + */ + private function getStatTemplate() + { + return [ + 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, + ]; + } - if ($mode >= 700 && $mode <= 799) { - return 'public-read'; + /** + * Invokes a callable and triggers an error if an exception occurs while + * calling the function. + * + * @param callable $fn + * @param int $flags + * + * @return bool + */ + private function boolCall(callable $fn, $flags = null) + { + try { + return $fn(); + } catch (\Exception $e) { + return $this->triggerError($e->getMessage(), $flags); } + } - if ($mode >= 600 && $mode <= 699) { - return 'authenticated-read'; + /** + * @return LruArrayCache + */ + private function getCacheStorage() + { + if (!$this->cache) { + $this->cache = $this->getOption('cache') ?: new LruArrayCache(); } - return 'private'; + return $this->cache; + } + + /** + * Clears a specific stat cache value from the stat cache and LRU cache. + * + * @param string $key S3 path (s3://bucket/key). + */ + private function clearCacheKey($key) + { + clearstatcache(true, $key); + $this->getCacheStorage()->remove($key); } } diff --git a/lib/aws-sdk/Aws/S3/Sync/AbstractSync.php b/lib/aws-sdk/Aws/S3/Sync/AbstractSync.php deleted file mode 100644 index ac5bbbe..0000000 --- a/lib/aws-sdk/Aws/S3/Sync/AbstractSync.php +++ /dev/null @@ -1,127 +0,0 @@ -options = Collection::fromConfig( - $options, - array('concurrency' => 10), - array('client', 'bucket', 'iterator', 'source_converter') - ); - $this->init(); - } - - public static function getAllEvents() - { - return array(self::BEFORE_TRANSFER, self::AFTER_TRANSFER); - } - - /** - * Begin transferring files - */ - public function transfer() - { - // Pull out chunks of uploads to upload in parallel - $iterator = new ChunkedIterator($this->options['iterator'], $this->options['concurrency']); - foreach ($iterator as $files) { - $this->transferFiles($files); - } - } - - /** - * Create a command or special transfer action for the - * - * @param \SplFileInfo $file File used to build the transfer - * - * @return CommandInterface|callable - */ - abstract protected function createTransferAction(\SplFileInfo $file); - - /** - * Hook to initialize subclasses - * @codeCoverageIgnore - */ - protected function init() {} - - /** - * Process and transfer a group of files - * - * @param array $files Files to transfer - */ - protected function transferFiles(array $files) - { - // Create the base event data object - $event = array('sync' => $this, 'client' => $this->options['client']); - - $commands = array(); - foreach ($files as $file) { - if ($action = $this->createTransferAction($file)) { - $event = array('command' => $action, 'file' => $file) + $event; - $this->dispatch(self::BEFORE_TRANSFER, $event); - if ($action instanceof CommandInterface) { - $commands[] = $action; - } elseif (is_callable($action)) { - $action(); - $this->dispatch(self::AFTER_TRANSFER, $event); - } - } - } - - $this->transferCommands($commands); - } - - /** - * Transfer an array of commands in parallel - * - * @param array $commands Commands to transfer - */ - protected function transferCommands(array $commands) - { - if ($commands) { - $this->options['client']->execute($commands); - // Notify listeners that each command finished - $event = array('sync' => $this, 'client' => $this->options['client']); - foreach ($commands as $command) { - $event['command'] = $command; - $this->dispatch(self::AFTER_TRANSFER, $event); - } - } - } -} diff --git a/lib/aws-sdk/Aws/S3/Sync/AbstractSyncBuilder.php b/lib/aws-sdk/Aws/S3/Sync/AbstractSyncBuilder.php deleted file mode 100644 index 1308c3d..0000000 --- a/lib/aws-sdk/Aws/S3/Sync/AbstractSyncBuilder.php +++ /dev/null @@ -1,434 +0,0 @@ -bucket = $bucket; - - return $this; - } - - /** - * Set the Amazon S3 client object that will send requests - * - * @param S3Client $client Amazon S3 client - * - * @return $this - */ - public function setClient(S3Client $client) - { - $this->client = $client; - - return $this; - } - - /** - * Set a custom iterator that returns \SplFileInfo objects for the source data - * - * @param \Iterator $iterator - * - * @return $this - */ - public function setSourceIterator(\Iterator $iterator) - { - $this->sourceIterator = $iterator; - - return $this; - } - - /** - * Set a custom object key provider instead of building one internally - * - * @param FileNameConverterInterface $converter Filename to object key provider - * - * @return $this - */ - public function setSourceFilenameConverter(FilenameConverterInterface $converter) - { - $this->sourceConverter = $converter; - - return $this; - } - - /** - * Set a custom object key provider instead of building one internally - * - * @param FileNameConverterInterface $converter Filename to object key provider - * - * @return $this - */ - public function setTargetFilenameConverter(FilenameConverterInterface $converter) - { - $this->targetConverter = $converter; - - return $this; - } - - /** - * Set the base directory of the files being transferred. The base directory is removed from each file path before - * converting the file path to an object key or vice versa. - * - * @param string $baseDir Base directory, which will be deleted from each uploaded object key - * - * @return $this - */ - public function setBaseDir($baseDir) - { - $this->baseDir = $baseDir; - - return $this; - } - - /** - * Specify a prefix to prepend to each Amazon S3 object key or the prefix where object are stored in a bucket - * - * Can be used to upload files to a pseudo sub-folder key or only download files from a pseudo sub-folder - * - * @param string $keyPrefix Prefix for each uploaded key - * - * @return $this - */ - public function setKeyPrefix($keyPrefix) - { - // Removing leading slash - $this->keyPrefix = ltrim($keyPrefix, '/'); - - return $this; - } - - /** - * Specify the delimiter used for the targeted filesystem (default delimiter is "/") - * - * @param string $delimiter Delimiter to use to separate paths - * - * @return $this - */ - public function setDelimiter($delimiter) - { - $this->delimiter = $delimiter; - - return $this; - } - - /** - * Specify an array of operation parameters to apply to each operation executed by the sync object - * - * @param array $params Associative array of PutObject (upload) GetObject (download) parameters - * - * @return $this - */ - public function setOperationParams(array $params) - { - $this->params = $params; - - return $this; - } - - /** - * Set the number of files that can be transferred concurrently - * - * @param int $concurrency Number of concurrent transfers - * - * @return $this - */ - public function setConcurrency($concurrency) - { - $this->concurrency = $concurrency; - - return $this; - } - - /** - * Set to true to force transfers even if a file already exists and has not changed - * - * @param bool $force Set to true to force transfers without checking if it has changed - * - * @return $this - */ - public function force($force = false) - { - $this->forcing = (bool) $force; - - return $this; - } - - /** - * Enable debug mode - * - * @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 $this - */ - public function enableDebugOutput($enabledOrResource = true) - { - $this->debug = $enabledOrResource; - - return $this; - } - - /** - * Add a filename filter that uses a regular expression to filter out files that you do not wish to transfer. - * - * @param string $search Regular expression search (in preg_match format). Any filename that matches this regex - * will not be transferred. - * @return $this - */ - public function addRegexFilter($search) - { - $this->assertFileIteratorSet(); - $this->sourceIterator = new FilterIterator($this->sourceIterator, function ($i) use ($search) { - return !preg_match($search, (string) $i); - }); - $this->sourceIterator->rewind(); - - return $this; - } - - /** - * Builds a UploadSync or DownloadSync object - * - * @return AbstractSync - */ - public function build() - { - $this->validateRequirements(); - $this->sourceConverter = $this->sourceConverter ?: $this->getDefaultSourceConverter(); - $this->targetConverter = $this->targetConverter ?: $this->getDefaultTargetConverter(); - - // Only wrap the source iterator in a changed files iterator if we are not forcing the transfers - if (!$this->forcing) { - $this->sourceIterator->rewind(); - $this->sourceIterator = new ChangedFilesIterator( - new \NoRewindIterator($this->sourceIterator), - $this->getTargetIterator(), - $this->sourceConverter, - $this->targetConverter - ); - $this->sourceIterator->rewind(); - } - - $sync = $this->specificBuild(); - - if ($this->params) { - $this->addCustomParamListener($sync); - } - - if ($this->debug) { - $this->addDebugListener($sync, is_bool($this->debug) ? STDOUT : $this->debug); - } - - return $sync; - } - - /** - * Hook to implement in subclasses - * - * @return AbstractSync - */ - abstract protected function specificBuild(); - - /** - * @return \Iterator - */ - abstract protected function getTargetIterator(); - - /** - * @return FilenameConverterInterface - */ - abstract protected function getDefaultSourceConverter(); - - /** - * @return FilenameConverterInterface - */ - abstract protected function getDefaultTargetConverter(); - - /** - * Add a listener to the sync object to output debug information while transferring - * - * @param AbstractSync $sync Sync object to listen to - * @param resource $resource Where to write debug messages - */ - abstract protected function addDebugListener(AbstractSync $sync, $resource); - - /** - * Validate that the builder has the minimal requirements - * - * @throws RuntimeException if the builder is not configured completely - */ - protected function validateRequirements() - { - if (!$this->client) { - throw new RuntimeException('No client was provided'); - } - if (!$this->bucket) { - throw new RuntimeException('No bucket was provided'); - } - $this->assertFileIteratorSet(); - } - - /** - * Ensure that the base file iterator has been provided - * - * @throws RuntimeException - */ - protected function assertFileIteratorSet() - { - // Interesting... Need to use isset because: Object of class GlobIterator could not be converted to boolean - if (!isset($this->sourceIterator)) { - throw new RuntimeException('A source file iterator must be specified'); - } - } - - /** - * Wraps a generated iterator in a filter iterator that removes directories - * - * @param \Iterator $iterator Iterator to wrap - * - * @return \Iterator - * @throws UnexpectedValueException - */ - protected function filterIterator(\Iterator $iterator) - { - $f = new FilterIterator($iterator, function ($i) { - if (!$i instanceof \SplFileInfo) { - throw new UnexpectedValueException('All iterators for UploadSync must return SplFileInfo objects'); - } - return $i->isFile(); - }); - - $f->rewind(); - - return $f; - } - - /** - * Add the custom param listener to a transfer object - * - * @param HasDispatcherInterface $sync - */ - protected function addCustomParamListener(HasDispatcherInterface $sync) - { - $params = $this->params; - $sync->getEventDispatcher()->addListener( - UploadSync::BEFORE_TRANSFER, - function (Event $e) use ($params) { - if ($e['command'] instanceof CommandInterface) { - $e['command']->overwriteWith($params); - } - } - ); - } - - /** - * Create an Amazon S3 file iterator based on the given builder settings - * - * @return OpendirIterator - */ - protected function createS3Iterator() - { - // Ensure that the stream wrapper is registered - $this->client->registerStreamWrapper(); - - // Calculate the opendir() bucket and optional key prefix location - $dir = "s3://{$this->bucket}"; - if ($this->keyPrefix) { - $dir .= '/' . ltrim($this->keyPrefix, '/ '); - } - - // Use opendir so that we can pass stream context to the iterator - $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) { - $dir .= '/'; - } - - return $this->filterIterator(new \NoRewindIterator(new OpendirIterator($dh, $dir))); - } -} diff --git a/lib/aws-sdk/Aws/S3/Sync/ChangedFilesIterator.php b/lib/aws-sdk/Aws/S3/Sync/ChangedFilesIterator.php deleted file mode 100644 index dc3e07c..0000000 --- a/lib/aws-sdk/Aws/S3/Sync/ChangedFilesIterator.php +++ /dev/null @@ -1,130 +0,0 @@ -targetIterator = $targetIterator; - $this->sourceConverter = $sourceConverter; - $this->targetConverter = $targetConverter; - parent::__construct($sourceIterator); - } - - public function accept() - { - $current = $this->current(); - $key = $this->sourceConverter->convert($this->normalize($current)); - - if (!($data = $this->getTargetData($key))) { - return true; - } - - // Ensure the Content-Length matches and it hasn't been modified since the mtime - return $current->getSize() != $data[0] || $current->getMTime() > $data[1]; - } - - /** - * Returns an array of the files from the target iterator that were not found in the source iterator - * - * @return array - */ - public function getUnmatched() - { - return array_keys($this->cache); - } - - /** - * Get key information from the target iterator for a particular filename - * - * @param string $key Target iterator filename - * - * @return array|bool Returns an array of data, or false if the key is not in the iterator - */ - protected function getTargetData($key) - { - $key = $this->cleanKey($key); - - if (isset($this->cache[$key])) { - $result = $this->cache[$key]; - unset($this->cache[$key]); - return $result; - } - - $it = $this->targetIterator; - - while ($it->valid()) { - $value = $it->current(); - $data = array($value->getSize(), $value->getMTime()); - $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/lib/aws-sdk/Aws/S3/Sync/DownloadSync.php b/lib/aws-sdk/Aws/S3/Sync/DownloadSync.php deleted file mode 100644 index 560ccdf..0000000 --- a/lib/aws-sdk/Aws/S3/Sync/DownloadSync.php +++ /dev/null @@ -1,95 +0,0 @@ -getPathname(); - list($bucket, $key) = explode('/', substr($sourceFilename, 5), 2); - $filename = $this->options['source_converter']->convert($sourceFilename); - $this->createDirectory($filename); - - // Some S3 buckets contains nested files under the same name as a directory - if (is_dir($filename)) { - return false; - } - - // Allow a previously interrupted download to resume - if (file_exists($filename) && $this->options['resumable']) { - return new ResumableDownload($this->options['client'], $bucket, $key, $filename); - } - - return $this->options['client']->getCommand('GetObject', array( - 'Bucket' => $bucket, - 'Key' => $key, - 'SaveAs' => $filename - )); - } - - /** - * @codeCoverageIgnore - */ - protected function createDirectory($filename) - { - $directory = dirname($filename); - // Some S3 clients create empty files to denote directories. Remove these so that we can create the directory. - if (is_file($directory) && filesize($directory) == 0) { - unlink($directory); - } - // Create the directory if it does not exist - if (!is_dir($directory) && !mkdir($directory, 0777, true)) { - $errors = error_get_last(); - throw new RuntimeException('Could not create directory: ' . $directory . ' - ' . $errors['message']); - } - } - - protected function filterCommands(array $commands) - { - // Build a list of all of the directories in each command so that we don't attempt to create an empty dir in - // the same parallel transfer as attempting to create a file in that dir - $dirs = array(); - foreach ($commands as $command) { - $parts = array_values(array_filter(explode('/', $command['SaveAs']))); - for ($i = 0, $total = count($parts); $i < $total; $i++) { - $dir = ''; - for ($j = 0; $j < $i; $j++) { - $dir .= '/' . $parts[$j]; - } - if ($dir && !in_array($dir, $dirs)) { - $dirs[] = $dir; - } - } - } - - return array_filter($commands, function ($command) use ($dirs) { - return !in_array($command['SaveAs'], $dirs); - }); - } - - protected function transferCommands(array $commands) - { - parent::transferCommands($this->filterCommands($commands)); - } -} diff --git a/lib/aws-sdk/Aws/S3/Sync/DownloadSyncBuilder.php b/lib/aws-sdk/Aws/S3/Sync/DownloadSyncBuilder.php deleted file mode 100644 index d9cd044..0000000 --- a/lib/aws-sdk/Aws/S3/Sync/DownloadSyncBuilder.php +++ /dev/null @@ -1,129 +0,0 @@ -directory = $directory; - - return $this; - } - - /** - * Call this function to allow partial downloads to be resumed if the download was previously interrupted - * - * @return self - */ - public function allowResumableDownloads() - { - $this->resumable = true; - - return $this; - } - - protected function specificBuild() - { - $sync = new DownloadSync(array( - 'client' => $this->client, - 'bucket' => $this->bucket, - 'iterator' => $this->sourceIterator, - 'source_converter' => $this->sourceConverter, - 'target_converter' => $this->targetConverter, - 'concurrency' => $this->concurrency, - 'resumable' => $this->resumable, - 'directory' => $this->directory - )); - - return $sync; - } - - protected function getTargetIterator() - { - if (!$this->directory) { - throw new RuntimeException('A directory is required'); - } - - if (!is_dir($this->directory) && !mkdir($this->directory, 0777, true)) { - // @codeCoverageIgnoreStart - throw new RuntimeException('Unable to create root download directory: ' . $this->directory); - // @codeCoverageIgnoreEnd - } - - return $this->filterIterator( - new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($this->directory)) - ); - } - - protected function getDefaultSourceConverter() - { - return new KeyConverter( - "s3://{$this->bucket}/{$this->baseDir}", - $this->directory . DIRECTORY_SEPARATOR, $this->delimiter - ); - } - - protected function getDefaultTargetConverter() - { - return new KeyConverter("s3://{$this->bucket}/{$this->baseDir}", '', $this->delimiter); - } - - protected function assertFileIteratorSet() - { - $this->sourceIterator = $this->sourceIterator ?: $this->createS3Iterator(); - } - - protected function addDebugListener(AbstractSync $sync, $resource) - { - $sync->getEventDispatcher()->addListener(UploadSync::BEFORE_TRANSFER, function (Event $e) use ($resource) { - if ($e['command'] instanceof CommandInterface) { - $from = $e['command']['Bucket'] . '/' . $e['command']['Key']; - $to = $e['command']['SaveAs'] instanceof EntityBodyInterface - ? $e['command']['SaveAs']->getUri() - : $e['command']['SaveAs']; - fwrite($resource, "Downloading {$from} -> {$to}\n"); - } elseif ($e['command'] instanceof ResumableDownload) { - $from = $e['command']->getBucket() . '/' . $e['command']->getKey(); - $to = $e['command']->getFilename(); - fwrite($resource, "Resuming {$from} -> {$to}\n"); - } - }); - } -} diff --git a/lib/aws-sdk/Aws/S3/Sync/FilenameConverterInterface.php b/lib/aws-sdk/Aws/S3/Sync/FilenameConverterInterface.php deleted file mode 100644 index ded2cfb..0000000 --- a/lib/aws-sdk/Aws/S3/Sync/FilenameConverterInterface.php +++ /dev/null @@ -1,32 +0,0 @@ -baseDir = (string) $baseDir; - $this->prefix = $prefix; - $this->delimiter = $delimiter; - } - - public function convert($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 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/lib/aws-sdk/Aws/S3/Sync/UploadSync.php b/lib/aws-sdk/Aws/S3/Sync/UploadSync.php deleted file mode 100644 index 31b81e6..0000000 --- a/lib/aws-sdk/Aws/S3/Sync/UploadSync.php +++ /dev/null @@ -1,86 +0,0 @@ -options['multipart_upload_size']) { - $this->options['multipart_upload_size'] = AbstractTransfer::MIN_PART_SIZE; - } - } - - protected function createTransferAction(\SplFileInfo $file) - { - // Open the file for reading - $filename = $file->getRealPath() ?: $file->getPathName(); - - if (!($resource = fopen($filename, 'r'))) { - // @codeCoverageIgnoreStart - throw new RuntimeException('Could not open ' . $file->getPathname() . ' for reading'); - // @codeCoverageIgnoreEnd - } - - $key = $this->options['source_converter']->convert($filename); - $body = EntityBody::factory($resource); - - // Determine how the ACL should be applied - if ($acl = $this->options['acl']) { - $aclType = is_string($this->options['acl']) ? 'ACL' : 'ACP'; - } else { - $acl = 'private'; - $aclType = 'ACL'; - } - - // 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']) { - $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']); - - $this->dispatch( - self::BEFORE_MULTIPART_BUILD, - array('builder' => $builder, 'file' => $file) - ); - - return $builder->build(); - } - - return $this->options['client']->getCommand('PutObject', array( - 'Bucket' => $this->options['bucket'], - 'Key' => $key, - 'Body' => $body, - $aclType => $acl - )); - } -} diff --git a/lib/aws-sdk/Aws/S3/Sync/UploadSyncBuilder.php b/lib/aws-sdk/Aws/S3/Sync/UploadSyncBuilder.php deleted file mode 100644 index 8f7907c..0000000 --- a/lib/aws-sdk/Aws/S3/Sync/UploadSyncBuilder.php +++ /dev/null @@ -1,190 +0,0 @@ -baseDir = realpath($path); - $this->sourceIterator = $this->filterIterator(new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator( - $path, - FI::SKIP_DOTS | FI::UNIX_PATHS | FI::FOLLOW_SYMLINKS - ))); - - return $this; - } - - /** - * Set a glob expression that will match files to upload to Amazon S3 - * - * @param string $glob Glob expression - * - * @return $this - * @link http://www.php.net/manual/en/function.glob.php - */ - public function uploadFromGlob($glob) - { - $this->sourceIterator = $this->filterIterator( - new \GlobIterator($glob, FI::SKIP_DOTS | FI::UNIX_PATHS | FI::FOLLOW_SYMLINKS) - ); - - return $this; - } - - /** - * Set a canned ACL to apply to each uploaded object - * - * @param string $acl Canned ACL for each upload - * - * @return $this - */ - public function setAcl($acl) - { - $this->acp = $acl; - - return $this; - } - - /** - * Set an Access Control Policy to apply to each uploaded object - * - * @param Acp $acp Access control policy - * - * @return $this - */ - public function setAcp(Acp $acp) - { - $this->acp = $acp; - - return $this; - } - - /** - * Set the multipart upload size threshold. When the size of a file exceeds this value, the file will be uploaded - * using a multipart upload. - * - * @param int $size Size threshold - * - * @return $this - */ - public function setMultipartUploadSize($size) - { - $this->multipartUploadSize = $size; - - return $this; - } - - protected function specificBuild() - { - $sync = new UploadSync(array( - 'client' => $this->client, - 'bucket' => $this->bucket, - 'iterator' => $this->sourceIterator, - 'source_converter' => $this->sourceConverter, - 'target_converter' => $this->targetConverter, - 'concurrency' => $this->concurrency, - 'multipart_upload_size' => $this->multipartUploadSize, - 'acl' => $this->acp - )); - - 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(); - } - - protected function getDefaultSourceConverter() - { - return new KeyConverter($this->baseDir, $this->keyPrefix . $this->delimiter, $this->delimiter); - } - - protected function getDefaultTargetConverter() - { - return new KeyConverter('s3://' . $this->bucket . '/', '', DIRECTORY_SEPARATOR); - } - - protected function addDebugListener(AbstractSync $sync, $resource) - { - $sync->getEventDispatcher()->addListener(UploadSync::BEFORE_TRANSFER, function (Event $e) use ($resource) { - - $c = $e['command']; - - if ($c instanceof CommandInterface) { - $uri = $c['Body']->getUri(); - $size = $c['Body']->getSize(); - fwrite($resource, "Uploading {$uri} -> {$c['Key']} ({$size} bytes)\n"); - return; - } - - // Multipart upload - $body = $c->getSource(); - $totalSize = $body->getSize(); - $progress = 0; - fwrite($resource, "Beginning multipart upload: " . $body->getUri() . ' -> '); - fwrite($resource, $c->getState()->getFromId('Key') . " ({$totalSize} bytes)\n"); - - $c->getEventDispatcher()->addListener( - AbstractTransfer::BEFORE_PART_UPLOAD, - function ($e) use (&$progress, $totalSize, $resource) { - $command = $e['command']; - $size = $command['Body']->getContentLength(); - $percentage = number_format(($progress / $totalSize) * 100, 2); - fwrite($resource, "- Part {$command['PartNumber']} ({$size} bytes, {$percentage}%)\n"); - $progress += $size; - } - ); - }); - } -} diff --git a/lib/aws-sdk/Aws/S3/Transfer.php b/lib/aws-sdk/Aws/S3/Transfer.php new file mode 100644 index 0000000..83a6cbe --- /dev/null +++ b/lib/aws-sdk/Aws/S3/Transfer.php @@ -0,0 +1,378 @@ +client = $client; + + // Prepare the destination. + $this->destination = $this->prepareTarget($dest); + if ($this->destination['scheme'] === 's3') { + $this->s3Args = $this->getS3Args($this->destination['path']); + } + + // Prepare the source. + if (is_string($source)) { + $this->source = $this->prepareTarget($source); + } elseif ($source instanceof \Iterator) { + if (isset($options['base_dir'])) { + $this->source = $this->prepareTarget($options['base_dir']); + } else { + throw new \InvalidArgumentException('You must provide the source' + . ' argument as a string or provide the "base_dir" option.'); + } + } else { + throw new \InvalidArgumentException('source must be the path to a ' + . 'directory or an iterator that yields file names.'); + } + + // Validate schemes. + if ($this->source['scheme'] === $this->destination['scheme']) { + throw new \InvalidArgumentException("You cannot copy from " + . "{$this->source['scheme']} to {$this->destination['scheme']}." + ); + } + + // Handle multipart-related options. + $this->concurrency = isset($options['concurrency']) + ? $options['concurrency'] + : MultipartUploader::DEFAULT_CONCURRENCY; + $this->mupThreshold = isset($options['mup_threshold']) + ? $options['mup_threshold'] + : 16777216; + if ($this->mupThreshold < MultipartUploader::PART_MIN_SIZE) { + throw new \InvalidArgumentException('mup_threshold must be >= 5MB'); + } + + // Handle "before" callback option. + if (isset($options['before'])) { + $this->before = $options['before']; + if (!is_callable($this->before)) { + throw new \InvalidArgumentException('before must be a callable.'); + } + } + + // Handle "debug" option. + if (isset($options['debug'])) { + if ($options['debug'] === true) { + $options['debug'] = fopen('php://output', 'w'); + } + $this->addDebugToBefore($options['debug']); + } + } + + /** + * Transfers the files. + */ + public function promise() + { + // If the promise has been created, just return it. + if (!$this->promise) { + // Create an upload/download promise for the transfer. + $this->promise = $this->source['scheme'] === 'file' + ? $this->createUploadPromise() + : $this->createDownloadPromise(); + } + + return $this->promise; + } + + /** + * Transfers the files synchronously. + */ + public function transfer() + { + $this->promise()->wait(); + } + + private function prepareTarget($targetPath) + { + $target = [ + 'path' => $this->normalizePath($targetPath), + 'scheme' => $this->determineScheme($targetPath), + ]; + + if ($target['scheme'] !== 's3' && $target['scheme'] !== 'file') { + throw new \InvalidArgumentException('Scheme must be "s3" or "file".'); + } + + return $target; + } + + /** + * Creates an array that contains Bucket and Key by parsing the filename. + * + * @param string $path Path to parse. + * + * @return array + */ + private function getS3Args($path) + { + $parts = explode('/', str_replace('s3://', '', $path), 2); + $args = ['Bucket' => $parts[0]]; + if (isset($parts[1])) { + $args['Key'] = $parts[1]; + } + + return $args; + } + + /** + * Parses the scheme from a filename. + * + * @param string $path Path to parse. + * + * @return string + */ + private function determineScheme($path) + { + return !strpos($path, '://') ? 'file' : explode('://', $path)[0]; + } + + /** + * Normalize a path so that it has a trailing slash. + * + * @param string $path + * + * @return string + */ + private function normalizePath($path) + { + return rtrim(str_replace('\\', '/', $path), '/'); + } + + private function createDownloadPromise() + { + // Prepare args for ListObjects. + $listArgs = $this->getS3Args($this->source['path']); + if (isset($listArgs['Key'])) { + $listArgs['Prefix'] = $listArgs['Key'] . '/'; + unset($listArgs['Key']); + } + + // Get the Paginator for ListObjects + $objects = $this->client->getPaginator('ListObjects', $listArgs); + + // Asynchronously execute the paginator, building command pools to + // download the objects. + return $objects->each(function ( + ResultInterface $result + ) use ($listArgs) { + $commands = []; + $prefix = isset($listArgs['Prefix']) ? $listArgs['Prefix'] : null; + foreach ($result->search('Contents[].Key') as $key) { + // Skip files on S3 that just mark the existence of a folder. + if (substr($key, -1, 1) === '/') { + continue; + } + + // Prepare the sink. + $localKey = $key; + if ($prefix && strpos($localKey, $prefix) === 0) { + $localKey = substr($key, strlen($prefix)); + } + $sink = $this->destination['path'] . '/' . $localKey; + + // Create the directory if needed. + $dir = dirname($sink); + if (!is_dir($dir) && !mkdir($dir, 0777, true)) { + return Promise\rejection_for( + new \RuntimeException("Could not create dir: {$dir}") + ); + } + + // Create the command. + $commands[] = $this->client->getCommand('GetObject', [ + 'Bucket' => $listArgs['Bucket'], + 'Key' => $key, + '@http' => ['sink' => $sink], + ]); + } + + // Create a GetObject command pool and return the promise. + return (new Aws\CommandPool($this->client, $commands, [ + 'concurrency' => $this->concurrency, + 'before' => $this->before, + 'rejected' => function ($reason, $idx, Promise\PromiseInterface $p) { + $p->reject($reason); + } + ]))->promise(); + }); + } + + private function createUploadPromise() + { + // Creates an iterator that yields promises for either upload or + // multipart upload operations for each file in the source directory. + $files = Aws\recursive_dir_iterator($this->source['path']); + // Filter out directories. + $files = \Aws\filter($files, function ($file) { + return !is_dir($file); + }); + // Map each file into a promise that performs the actual transfer. + $files = \Aws\map($files, function ($file) { + return (filesize($file) >= $this->mupThreshold) + ? $this->uploadMultipart($file) + : $this->upload($file); + }); + + // Create an EachPromise, that will concurrently handle the upload + // operations' yielded promises from the iterator. + return Promise\each_limit_all($files, $this->concurrency); + } + + private function upload($filename) + { + $args = $this->s3Args; + $args['SourceFile'] = $filename; + $args['Key'] = $this->createS3Key($filename); + $command = $this->client->getCommand('PutObject', $args); + $this->before and call_user_func($this->before, $command); + + return $this->client->executeAsync($command); + } + + private function uploadMultipart($filename) + { + $args = $this->s3Args; + $args['Key'] = $this->createS3Key($filename); + + return (new MultipartUploader($this->client, $filename, [ + 'bucket' => $args['Bucket'], + 'key' => $args['Key'], + 'before_initiate' => $this->before, + 'before_upload' => $this->before, + 'before_complete' => $this->before, + 'concurrency' => $this->concurrency, + ]))->promise(); + } + + private function createS3Key($filename) + { + if (!isset($this->s3Args['Key'])) { + return ''; + } + + $args = $this->s3Args; + $args['Key'] = rtrim($args['Key'], '/'); + $args['Key'] .= preg_replace('#^' . preg_quote($this->source['path']) . '#', '', $filename); + + return $args['Key']; + } + + private function addDebugToBefore($debug) + { + $before = $this->before; + $sourcePath = $this->source['path']; + $s3Args = $this->s3Args; + + $this->before = static function ( + CommandInterface $command + ) use ($before, $debug, $sourcePath, $s3Args) { + // Call the composed before function. + $before and $before($command); + + // Determine the source and dest values based on operation. + switch ($operation = $command->getName()) { + case 'GetObject': + $source = "s3://{$command['Bucket']}/{$command['Key']}"; + $dest = $command['@http']['sink']; + break; + case 'PutObject': + $source = $command['SourceFile']; + $dest = "s3://{$command['Bucket']}/{$command['Key']}"; + break; + case 'UploadPart': + $part = $command['PartNumber']; + case 'CreateMultipartUpload': + case 'CompleteMultipartUpload': + $sourceKey = $command['Key']; + if (isset($s3Args['Key']) && strpos($sourceKey, $s3Args['Key']) === 0) { + $sourceKey = substr($sourceKey, strlen($s3Args['Key']) + 1); + } + $source = "{$sourcePath}/{$sourceKey}"; + $dest = "s3://{$command['Bucket']}/{$command['Key']}"; + break; + default: + throw new \UnexpectedValueException( + "Transfer encountered an unexpected operation: {$operation}." + ); + } + + // Print the debugging message. + $context = sprintf('%s -> %s (%s)', $source, $dest, $operation); + if (isset($part)) { + $context .= " : Part={$part}"; + } + fwrite($debug, "Transferring {$context}\n"); + }; + } +} diff --git a/lib/aws-sdk/Aws/Sdk.php b/lib/aws-sdk/Aws/Sdk.php new file mode 100644 index 0000000..2d5252b --- /dev/null +++ b/lib/aws-sdk/Aws/Sdk.php @@ -0,0 +1,149 @@ + 'config', + 'cloudwatch' => 'monitoring', + 'cloudwatchlogs' => 'logs', + 'cognitoidentity' => 'cognito-identity', + 'cognitosync' => 'cognito-sync', + 'directoryservice' => 'ds', + 'efs' => 'elasticfilesystem', + 'emr' => 'elasticmapreduce', + 'ses' => 'email', + ]; + + /** @var array Arguments for creating clients */ + private $args; + + /** + * Constructs a new SDK object with an associative array of default + * client settings. + * + * @param array $args + * + * @throws \InvalidArgumentException + * @see Aws\Sdk::getClient for a list of available options. + */ + public function __construct(array $args = []) + { + $this->args = $args; + + if (!isset($args['handler']) && !isset($args['http_handler'])) { + $this->args['http_handler'] = default_http_handler(); + } + } + + public function __call($name, array $args = []) + { + if (strpos($name, 'create') === 0) { + return $this->createClient( + substr($name, 6), + isset($args[0]) ? $args[0] : [] + ); + } + + throw new \BadMethodCallException("Unknown method: {$name}."); + } + + /** + * Create an endpoint prefix name from a namespace. + * + * @param string $name Namespace name + * + * @return string + */ + public static function getEndpointPrefix($name) + { + $name = strtolower($name); + + return isset(self::$aliases[$name]) ? self::$aliases[$name] : $name; + } + + /** + * Get a client by name using an array of constructor options. + * + * @param string $name Client namespace name (e.g., DynamoDb). + * @param array $args Custom arguments to provide to the client. + * + * @return AwsClientInterface + * @throws \InvalidArgumentException + * @see Aws\AwsClient::__construct for a list of available options. + */ + public function createClient($name, array $args = []) + { + // Merge provided args with stored args + if (isset($this->args[$name])) { + $args += $this->args[$name]; + } + + $args += $this->args; + + if (!isset($args['service'])) { + $args['service'] = self::getEndpointPrefix($name); + } + + $client = "Aws\\{$name}\\{$name}Client"; + + if (!class_exists($client)) { + $client = 'Aws\\AwsClient'; + } + + return new $client($args); + } +} diff --git a/lib/aws-sdk/Aws/Ses/Enum/IdentityType.php b/lib/aws-sdk/Aws/Ses/Enum/IdentityType.php deleted file mode 100644 index 30d3234..0000000 --- a/lib/aws-sdk/Aws/Ses/Enum/IdentityType.php +++ /dev/null @@ -1,28 +0,0 @@ - '2010-12-01', - 'endpointPrefix' => 'email', - 'serviceFullName' => 'Amazon Simple Email Service', - 'serviceAbbreviation' => 'Amazon SES', - 'serviceType' => 'query', - 'resultWrapped' => true, - 'signatureVersion' => 'v4', - 'namespace' => 'Ses', - 'regions' => array( - 'us-east-1' => array( - 'http' => false, - '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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteIdentity', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'Identity' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - 'DeleteVerifiedEmailAddress' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'deprecated' => true, - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteVerifiedEmailAddress', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'EmailAddress' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - 'GetIdentityDkimAttributes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetIdentityDkimAttributesResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetIdentityDkimAttributes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'Identities' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Identities.member', - 'items' => array( - 'name' => 'Identity', - 'type' => 'string', - ), - ), - ), - ), - 'GetIdentityNotificationAttributes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetIdentityNotificationAttributesResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetIdentityNotificationAttributes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'Identities' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Identities.member', - 'items' => array( - 'name' => 'Identity', - 'type' => 'string', - ), - ), - ), - ), - 'GetIdentityVerificationAttributes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetIdentityVerificationAttributesResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetIdentityVerificationAttributes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'Identities' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Identities.member', - 'items' => array( - 'name' => 'Identity', - 'type' => 'string', - ), - ), - ), - ), - 'GetSendQuota' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetSendQuotaResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetSendQuota', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - ), - ), - 'GetSendStatistics' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetSendStatisticsResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetSendStatistics', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - ), - ), - 'ListIdentities' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListIdentitiesResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListIdentities', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'IdentityType' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'MaxItems' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - ), - ), - 'ListVerifiedEmailAddresses' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListVerifiedEmailAddressesResponse', - 'responseType' => 'model', - 'deprecated' => true, - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListVerifiedEmailAddresses', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - ), - ), - 'SendEmail' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'SendEmailResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'SendEmail', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'Source' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Destination' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'aws.query', - 'properties' => array( - 'ToAddresses' => array( - 'type' => 'array', - 'sentAs' => 'ToAddresses.member', - 'items' => array( - 'name' => 'Address', - 'type' => 'string', - ), - ), - 'CcAddresses' => array( - 'type' => 'array', - 'sentAs' => 'CcAddresses.member', - 'items' => array( - 'name' => 'Address', - 'type' => 'string', - ), - ), - 'BccAddresses' => array( - 'type' => 'array', - 'sentAs' => 'BccAddresses.member', - 'items' => array( - 'name' => 'Address', - 'type' => 'string', - ), - ), - ), - ), - 'Message' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'aws.query', - 'properties' => array( - 'Subject' => array( - 'required' => true, - 'type' => 'object', - 'properties' => array( - 'Data' => array( - 'required' => true, - 'type' => 'string', - ), - 'Charset' => array( - 'type' => 'string', - ), - ), - ), - 'Body' => array( - 'required' => true, - 'type' => 'object', - 'properties' => array( - 'Text' => array( - 'type' => 'object', - 'properties' => array( - 'Data' => array( - 'required' => true, - 'type' => 'string', - ), - 'Charset' => array( - 'type' => 'string', - ), - ), - ), - 'Html' => array( - 'type' => 'object', - 'properties' => array( - 'Data' => array( - 'required' => true, - 'type' => 'string', - ), - 'Charset' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'ReplyToAddresses' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'ReplyToAddresses.member', - 'items' => array( - 'name' => 'Address', - 'type' => 'string', - ), - ), - 'ReturnPath' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that the action failed, and the message could not be sent. Check the error stack for more information about what caused the error.', - 'class' => 'MessageRejectedException', - ), - ), - ), - 'SendRawEmail' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'SendRawEmailResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'SendRawEmail', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'Source' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Destinations' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Destinations.member', - 'items' => array( - 'name' => 'Address', - 'type' => 'string', - ), - ), - 'RawMessage' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'aws.query', - 'properties' => array( - 'Data' => array( - 'required' => true, - 'type' => 'string', - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that the action failed, and the message could not be sent. Check the error stack for more information about what caused the error.', - 'class' => 'MessageRejectedException', - ), - ), - ), - 'SetIdentityDkimEnabled' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'SetIdentityDkimEnabled', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'Identity' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'DkimEnabled' => array( - 'required' => true, - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - ), - ), - 'SetIdentityFeedbackForwardingEnabled' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'SetIdentityFeedbackForwardingEnabled', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'Identity' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ForwardingEnabled' => array( - 'required' => true, - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - ), - ), - 'SetIdentityNotificationTopic' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'SetIdentityNotificationTopic', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'Identity' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'NotificationType' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'SnsTopic' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - 'VerifyDomainDkim' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'VerifyDomainDkimResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'VerifyDomainDkim', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'Domain' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - 'VerifyDomainIdentity' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'VerifyDomainIdentityResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'VerifyDomainIdentity', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'Domain' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - 'VerifyEmailAddress' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'deprecated' => true, - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'VerifyEmailAddress', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'EmailAddress' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - 'VerifyEmailIdentity' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'VerifyEmailIdentity', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-12-01', - ), - 'EmailAddress' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - ), - 'models' => array( - 'EmptyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), - 'GetIdentityDkimAttributesResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'DkimAttributes' => 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' => 'object', - 'properties' => array( - 'DkimEnabled' => array( - 'type' => 'boolean', - ), - 'DkimVerificationStatus' => array( - 'type' => 'string', - ), - 'DkimTokens' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'VerificationToken', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - ), - ), - ), - ), - 'additionalProperties' => false, - ), - ), - ), - 'GetIdentityNotificationAttributesResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'NotificationAttributes' => 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' => 'object', - 'properties' => array( - 'BounceTopic' => array( - 'type' => 'string', - ), - 'ComplaintTopic' => array( - 'type' => 'string', - ), - 'DeliveryTopic' => array( - 'type' => 'string', - ), - 'ForwardingEnabled' => array( - 'type' => 'boolean', - ), - ), - ), - ), - ), - 'additionalProperties' => false, - ), - ), - ), - 'GetIdentityVerificationAttributesResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'VerificationAttributes' => 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' => 'object', - 'properties' => array( - 'VerificationStatus' => array( - 'type' => 'string', - ), - 'VerificationToken' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'additionalProperties' => false, - ), - ), - ), - 'GetSendQuotaResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Max24HourSend' => array( - 'type' => 'numeric', - 'location' => 'xml', - ), - 'MaxSendRate' => array( - 'type' => 'numeric', - 'location' => 'xml', - ), - 'SentLast24Hours' => array( - 'type' => 'numeric', - 'location' => 'xml', - ), - ), - ), - 'GetSendStatisticsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'SendDataPoints' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'SendDataPoint', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'Timestamp' => array( - 'type' => 'string', - ), - 'DeliveryAttempts' => array( - 'type' => 'numeric', - ), - 'Bounces' => array( - 'type' => 'numeric', - ), - 'Complaints' => array( - 'type' => 'numeric', - ), - 'Rejects' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - 'ListIdentitiesResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Identities' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'Identity', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ListVerifiedEmailAddressesResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'VerifiedEmailAddresses' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'Address', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - ), - ), - 'SendEmailResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'MessageId' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'SendRawEmailResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'MessageId' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'VerifyDomainDkimResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'DkimTokens' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'VerificationToken', - 'type' => 'string', - 'sentAs' => 'member', - ), - ), - ), - ), - 'VerifyDomainIdentityResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'VerificationToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - ), - 'iterators' => array( - 'ListIdentities' => array( - 'input_token' => 'NextToken', - 'output_token' => 'NextToken', - 'limit_key' => 'MaxItems', - 'result_key' => 'Identities', - ), - 'ListVerifiedEmailAddresses' => array( - 'result_key' => 'VerifiedEmailAddresses', - ), - ), - 'waiters' => array( - '__default__' => array( - 'interval' => 3, - 'max_attempts' => 20, - ), - 'IdentityExists' => array( - 'operation' => 'GetIdentityVerificationAttributes', - 'success.type' => 'output', - 'success.path' => 'VerificationAttributes/*/VerificationStatus', - 'success.value' => true, - ), - ), -); diff --git a/lib/aws-sdk/Aws/Ses/SesClient.php b/lib/aws-sdk/Aws/Ses/SesClient.php index 3dd9a79..9b83831 100644 --- a/lib/aws-sdk/Aws/Ses/SesClient.php +++ b/lib/aws-sdk/Aws/Ses/SesClient.php @@ -1,77 +1,7 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/ses-%s.php', - Options::SIGNATURE_SERVICE => 'ses', - )) - ->build(); - } -} +class SesClient extends \Aws\AwsClient {} diff --git a/lib/aws-sdk/Aws/Signature/AnonymousSignature.php b/lib/aws-sdk/Aws/Signature/AnonymousSignature.php new file mode 100644 index 0000000..bb545e3 --- /dev/null +++ b/lib/aws-sdk/Aws/Signature/AnonymousSignature.php @@ -0,0 +1,26 @@ +hasHeader('x-amz-content-sha256')) { + $request = $request->withHeader( + 'X-Amz-Content-Sha256', + $this->getPayload($request) + ); + } + + return 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'; + } +} diff --git a/lib/aws-sdk/Aws/Signature/SignatureInterface.php b/lib/aws-sdk/Aws/Signature/SignatureInterface.php new file mode 100644 index 0000000..9626181 --- /dev/null +++ b/lib/aws-sdk/Aws/Signature/SignatureInterface.php @@ -0,0 +1,44 @@ +service = $service; + $this->region = $region; + } + + public function signRequest( + RequestInterface $request, + CredentialsInterface $credentials + ) { + $ldt = gmdate(self::ISO8601_BASIC); + $sdt = substr($ldt, 0, 8); + $parsed = $this->parseRequest($request); + $parsed['headers']['X-Amz-Date'] = [$ldt]; + + if ($token = $credentials->getSecurityToken()) { + $parsed['headers']['X-Amz-Security-Token'] = [$token]; + } + + $cs = $this->createScope($sdt, $this->region, $this->service); + $payload = $this->getPayload($request); + $context = $this->createContext($parsed, $payload); + $toSign = $this->createStringToSign($ldt, $cs, $context['creq']); + $signingKey = $this->getSigningKey( + $sdt, + $this->region, + $this->service, + $credentials->getSecretKey() + ); + $signature = hash_hmac('sha256', $toSign, $signingKey); + $parsed['headers']['Authorization'] = [ + "AWS4-HMAC-SHA256 " + . "Credential={$credentials->getAccessKeyId()}/{$cs}, " + . "SignedHeaders={$context['headers']}, Signature={$signature}" + ]; + + return $this->buildRequest($parsed); + } + + public function presign( + RequestInterface $request, + CredentialsInterface $credentials, + $expires + ) { + $parsed = $this->createPresignedRequest($request, $credentials); + $payload = $this->getPresignedPayload($request); + $httpDate = gmdate(self::ISO8601_BASIC, time()); + $shortDate = substr($httpDate, 0, 8); + $scope = $this->createScope($shortDate, $this->region, $this->service); + $credential = $credentials->getAccessKeyId() . '/' . $scope; + $parsed['query']['X-Amz-Algorithm'] = 'AWS4-HMAC-SHA256'; + $parsed['query']['X-Amz-Credential'] = $credential; + $parsed['query']['X-Amz-Date'] = gmdate('Ymd\THis\Z', time()); + $parsed['query']['X-Amz-SignedHeaders'] = 'Host'; + $parsed['query']['X-Amz-Expires'] = $this->convertExpires($expires); + $context = $this->createContext($parsed, $payload); + $stringToSign = $this->createStringToSign($httpDate, $scope, $context['creq']); + $key = $this->getSigningKey( + $shortDate, + $this->region, + $this->service, + $credentials->getSecretKey() + ); + $parsed['query']['X-Amz-Signature'] = hash_hmac('sha256', $stringToSign, $key); + + return $this->buildRequest($parsed); + } + + /** + * Converts a POST request to a GET request by moving POST fields into the + * query string. + * + * Useful for pre-signing query protocol requests. + * + * @param RequestInterface $request Request to clone + * + * @return RequestInterface + * @throws \InvalidArgumentException if the method is not POST + */ + public static function convertPostToGet(RequestInterface $request) + { + if ($request->getMethod() !== 'POST') { + throw new \InvalidArgumentException('Expected a POST request but ' + . 'received a ' . $request->getMethod() . ' request.'); + } + + $sr = $request->withMethod('GET') + ->withBody(Psr7\stream_for('')) + ->withoutHeader('Content-Type') + ->withoutHeader('Content-Length'); + + // Move POST fields to the query if they are present + if ($request->getHeaderLine('Content-Type') === 'application/x-www-form-urlencoded') { + $body = (string) $request->getBody(); + $sr = $sr->withUri($sr->getUri()->withQuery($body)); + } + + return $sr; + } + + protected function getPayload(RequestInterface $request) + { + // Calculate the request signature payload + if ($request->hasHeader('X-Amz-Content-Sha256')) { + // Handle streaming operations (e.g. Glacier.UploadArchive) + return $request->getHeaderLine('X-Amz-Content-Sha256'); + } + + if (!$request->getBody()->isSeekable()) { + throw new CouldNotCreateChecksumException('sha256'); + } + + try { + return Psr7\hash($request->getBody(), 'sha256'); + } catch (\Exception $e) { + throw new CouldNotCreateChecksumException('sha256', $e); + } + } + + protected function getPresignedPayload(RequestInterface $request) + { + return $this->getPayload($request); + } + + private function createStringToSign($longDate, $credentialScope, $creq) + { + $hash = hash('sha256', $creq); + + return "AWS4-HMAC-SHA256\n{$longDate}\n{$credentialScope}\n{$hash}"; + } + + private function createPresignedRequest( + RequestInterface $request, + CredentialsInterface $credentials + ) { + $parsedRequest = $this->parseRequest($request); + + // Make sure to handle temporary credentials + if ($token = $credentials->getSecurityToken()) { + $parsedRequest['headers']['X-Amz-Security-Token'] = [$token]; + } + + return $this->moveHeadersToQuery($parsedRequest); + } + + /** + * @param array $parsedRequest + * @param string $payload Hash of the request payload + * @return array Returns an array of context information + */ + private function createContext(array $parsedRequest, $payload) + { + // The following headers are not signed because signing these headers + // would potentially cause a signature mismatch when sending a request + // through a proxy or if modified at the HTTP client level. + static $blacklist = [ + 'cache-control' => true, + 'content-type' => true, + 'content-length' => true, + 'expect' => true, + 'max-forwards' => true, + 'pragma' => true, + 'range' => true, + 'te' => true, + 'if-match' => true, + 'if-none-match' => true, + 'if-modified-since' => true, + 'if-unmodified-since' => true, + 'if-range' => true, + 'accept' => true, + 'authorization' => true, + 'proxy-authorization' => true, + 'from' => true, + 'referer' => true, + 'user-agent' => true + ]; + + // Normalize the path as required by SigV4 + $canon = $parsedRequest['method'] . "\n" + . ($parsedRequest['path'] ?: '/') . "\n" + . $this->getCanonicalizedQuery($parsedRequest['query']) . "\n"; + + // Case-insensitively aggregate all of the headers. + $aggregate = []; + foreach ($parsedRequest['headers'] as $key => $values) { + $key = strtolower($key); + if (!isset($blacklist[$key])) { + foreach ($values as $v) { + $aggregate[$key][] = $v; + } + } + } + + ksort($aggregate); + $canonHeaders = []; + foreach ($aggregate as $k => $v) { + if (count($v) > 0) { + sort($v); + } + $canonHeaders[] = $k . ':' . preg_replace('/\s+/', ' ', implode(',', $v)); + } + + $signedHeadersString = implode(';', array_keys($aggregate)); + $canon .= implode("\n", $canonHeaders) . "\n\n" + . $signedHeadersString . "\n" + . $payload; + + return ['creq' => $canon, 'headers' => $signedHeadersString]; + } + + private function getSigningKey($shortDate, $region, $service, $secretKey) + { + $k = $shortDate . '_' . $region . '_' . $service . '_' . $secretKey; + + if (!isset($this->cache[$k])) { + // Clear the cache when it reaches 50 entries + if (++$this->cacheSize > 50) { + $this->cache = []; + $this->cacheSize = 0; + } + $dateKey = hash_hmac('sha256', $shortDate, "AWS4{$secretKey}", true); + $regionKey = hash_hmac('sha256', $region, $dateKey, true); + $serviceKey = hash_hmac('sha256', $service, $regionKey, true); + $this->cache[$k] = hash_hmac('sha256', 'aws4_request', $serviceKey, true); + } + + return $this->cache[$k]; + } + + private function getCanonicalizedQuery(array $query) + { + unset($query['X-Amz-Signature']); + + if (!$query) { + return ''; + } + + $qs = ''; + ksort($query); + foreach ($query as $k => $v) { + if (!is_array($v)) { + $qs .= rawurlencode($k) . '=' . rawurlencode($v) . '&'; + } else { + sort($v); + foreach ($v as $value) { + $qs .= rawurlencode($k) . '=' . 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 moveHeadersToQuery(array $parsedRequest) + { + foreach ($parsedRequest['headers'] as $name => $header) { + $lname = strtolower($name); + if (substr($lname, 0, 5) == 'x-amz') { + $parsedRequest['query'][$name] = $header; + } + if ($lname !== 'host') { + unset($parsedRequest['headers'][$name]); + } + } + + return $parsedRequest; + } + + private function parseRequest(RequestInterface $request) + { + // Clean up any previously set headers. + /** @var RequestInterface $request */ + $request = $request + ->withoutHeader('X-Amz-Date') + ->withoutHeader('Date') + ->withoutHeader('Authorization'); + $uri = $request->getUri(); + + return [ + 'method' => $request->getMethod(), + 'path' => $uri->getPath(), + 'query' => Psr7\parse_query($uri->getQuery()), + 'uri' => $uri, + 'headers' => $request->getHeaders(), + 'body' => $request->getBody(), + 'version' => $request->getProtocolVersion() + ]; + } + + private function buildRequest(array $req) + { + if ($req['query']) { + $req['uri'] = $req['uri']->withQuery(Psr7\build_query($req['query'])); + } + + return new Psr7\Request( + $req['method'], + $req['uri'], + $req['headers'], + $req['body'], + $req['version'] + ); + } +} diff --git a/lib/aws-sdk/Aws/SimpleDb/Exception/AttributeDoesNotExistException.php b/lib/aws-sdk/Aws/SimpleDb/Exception/AttributeDoesNotExistException.php deleted file mode 100644 index f061ac0..0000000 --- a/lib/aws-sdk/Aws/SimpleDb/Exception/AttributeDoesNotExistException.php +++ /dev/null @@ -1,22 +0,0 @@ - '2009-04-15', - 'endpointPrefix' => 'sdb', - 'serviceFullName' => 'Amazon SimpleDB', - 'serviceType' => 'query', - 'resultWrapped' => true, - 'signatureVersion' => 'v2', - 'namespace' => 'SimpleDb', - 'regions' => array( - 'us-east-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'sdb.amazonaws.com', - ), - 'us-west-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'sdb.us-west-1.amazonaws.com', - ), - 'us-west-2' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'sdb.us-west-2.amazonaws.com', - ), - 'eu-west-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'sdb.eu-west-1.amazonaws.com', - ), - 'ap-northeast-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'sdb.ap-northeast-1.amazonaws.com', - ), - 'ap-southeast-1' => array( - 'http' => true, - '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, - 'hostname' => 'sdb.sa-east-1.amazonaws.com', - ), - ), - 'operations' => array( - 'BatchDeleteAttributes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'BatchDeleteAttributes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2009-04-15', - ), - 'DomainName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Items' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Item', - 'items' => array( - 'name' => 'Item', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'required' => true, - 'type' => 'string', - 'sentAs' => 'ItemName', - ), - 'Attributes' => array( - 'type' => 'array', - 'sentAs' => 'Attribute', - 'items' => array( - 'name' => 'Attribute', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'required' => true, - 'type' => 'string', - ), - 'AlternateNameEncoding' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - 'AlternateValueEncoding' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'BatchPutAttributes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'BatchPutAttributes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2009-04-15', - ), - 'DomainName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Items' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Item', - 'items' => array( - 'name' => 'Item', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'required' => true, - 'type' => 'string', - 'sentAs' => 'ItemName', - ), - 'Attributes' => array( - 'required' => true, - 'type' => 'array', - 'sentAs' => 'Attribute', - 'items' => array( - 'name' => 'Attribute', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'required' => true, - 'type' => 'string', - ), - 'Value' => array( - 'required' => true, - 'type' => 'string', - ), - 'Replace' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The item name was specified more than once.', - 'class' => 'DuplicateItemNameException', - ), - array( - 'reason' => 'The value for a parameter is invalid.', - 'class' => 'InvalidParameterValueException', - ), - array( - 'reason' => 'The request must contain the specified missing parameter.', - 'class' => 'MissingParameterException', - ), - array( - 'reason' => 'The specified domain does not exist.', - 'class' => 'NoSuchDomainException', - ), - array( - 'reason' => 'Too many attributes in this item.', - 'class' => 'NumberItemAttributesExceededException', - ), - array( - 'reason' => 'Too many attributes in this domain.', - 'class' => 'NumberDomainAttributesExceededException', - ), - array( - 'reason' => 'Too many bytes in this domain.', - 'class' => 'NumberDomainBytesExceededException', - ), - array( - 'reason' => 'Too many items exist in a single call.', - 'class' => 'NumberSubmittedItemsExceededException', - ), - array( - 'reason' => 'Too many attributes exist in a single call.', - 'class' => 'NumberSubmittedAttributesExceededException', - ), - ), - ), - 'CreateDomain' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateDomain', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2009-04-15', - ), - 'DomainName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The value for a parameter is invalid.', - 'class' => 'InvalidParameterValueException', - ), - array( - 'reason' => 'The request must contain the specified missing parameter.', - 'class' => 'MissingParameterException', - ), - array( - 'reason' => 'Too many domains exist per this account.', - 'class' => 'NumberDomainsExceededException', - ), - ), - ), - 'DeleteAttributes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteAttributes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2009-04-15', - ), - 'DomainName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ItemName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Attributes' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Attribute', - 'items' => array( - 'name' => 'Attribute', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'required' => true, - 'type' => 'string', - ), - 'AlternateNameEncoding' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - 'AlternateValueEncoding' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Expected' => array( - 'type' => 'object', - 'location' => 'aws.query', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - 'Exists' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The value for a parameter is invalid.', - 'class' => 'InvalidParameterValueException', - ), - array( - 'reason' => 'The request must contain the specified missing parameter.', - 'class' => 'MissingParameterException', - ), - array( - 'reason' => 'The specified domain does not exist.', - 'class' => 'NoSuchDomainException', - ), - array( - 'reason' => 'The specified attribute does not exist.', - 'class' => 'AttributeDoesNotExistException', - ), - ), - ), - 'DeleteDomain' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteDomain', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2009-04-15', - ), - 'DomainName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The request must contain the specified missing parameter.', - 'class' => 'MissingParameterException', - ), - ), - ), - 'DomainMetadata' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DomainMetadataResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DomainMetadata', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2009-04-15', - ), - 'DomainName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The request must contain the specified missing parameter.', - 'class' => 'MissingParameterException', - ), - array( - 'reason' => 'The specified domain does not exist.', - 'class' => 'NoSuchDomainException', - ), - ), - ), - 'GetAttributes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetAttributesResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetAttributes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2009-04-15', - ), - 'DomainName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ItemName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'AttributeNames' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'AttributeName', - 'items' => array( - 'name' => 'AttributeName', - 'type' => 'string', - ), - ), - 'ConsistentRead' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The value for a parameter is invalid.', - 'class' => 'InvalidParameterValueException', - ), - array( - 'reason' => 'The request must contain the specified missing parameter.', - 'class' => 'MissingParameterException', - ), - array( - 'reason' => 'The specified domain does not exist.', - 'class' => 'NoSuchDomainException', - ), - ), - ), - 'ListDomains' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListDomainsResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListDomains', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2009-04-15', - ), - 'MaxNumberOfDomains' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The value for a parameter is invalid.', - 'class' => 'InvalidParameterValueException', - ), - array( - 'reason' => 'The specified NextToken is not valid.', - 'class' => 'InvalidNextTokenException', - ), - ), - ), - 'PutAttributes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'PutAttributes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2009-04-15', - ), - 'DomainName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ItemName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Attributes' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'Attribute', - 'items' => array( - 'name' => 'Attribute', - 'type' => 'object', - 'properties' => array( - 'Name' => array( - 'required' => true, - 'type' => 'string', - ), - 'Value' => array( - 'required' => true, - 'type' => 'string', - ), - 'Replace' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - ), - 'Expected' => array( - 'type' => 'object', - 'location' => 'aws.query', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - 'Exists' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The value for a parameter is invalid.', - 'class' => 'InvalidParameterValueException', - ), - array( - 'reason' => 'The request must contain the specified missing parameter.', - 'class' => 'MissingParameterException', - ), - array( - 'reason' => 'The specified domain does not exist.', - 'class' => 'NoSuchDomainException', - ), - array( - 'reason' => 'Too many attributes in this domain.', - 'class' => 'NumberDomainAttributesExceededException', - ), - array( - 'reason' => 'Too many bytes in this domain.', - 'class' => 'NumberDomainBytesExceededException', - ), - array( - 'reason' => 'Too many attributes in this item.', - 'class' => 'NumberItemAttributesExceededException', - ), - array( - 'reason' => 'The specified attribute does not exist.', - 'class' => 'AttributeDoesNotExistException', - ), - ), - ), - 'Select' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'SelectResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'Select', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2009-04-15', - ), - 'SelectExpression' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ConsistentRead' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The value for a parameter is invalid.', - 'class' => 'InvalidParameterValueException', - ), - array( - 'reason' => 'The specified NextToken is not valid.', - 'class' => 'InvalidNextTokenException', - ), - array( - 'reason' => 'Too many predicates exist in the query expression.', - 'class' => 'InvalidNumberPredicatesException', - ), - array( - 'reason' => 'Too many predicates exist in the query expression.', - 'class' => 'InvalidNumberValueTestsException', - ), - array( - 'reason' => 'The specified query expression syntax is not valid.', - 'class' => 'InvalidQueryExpressionException', - ), - array( - 'reason' => 'The request must contain the specified missing parameter.', - 'class' => 'MissingParameterException', - ), - array( - 'reason' => 'The specified domain does not exist.', - 'class' => 'NoSuchDomainException', - ), - array( - 'reason' => 'A timeout occurred when attempting to query the specified domain with specified query expression.', - 'class' => 'RequestTimeoutException', - ), - array( - 'reason' => 'Too many attributes requested.', - 'class' => 'TooManyRequestedAttributesException', - ), - ), - ), - ), - 'models' => array( - 'EmptyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), - 'DomainMetadataResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ItemCount' => array( - 'type' => 'numeric', - 'location' => 'xml', - ), - 'ItemNamesSizeBytes' => array( - 'type' => 'numeric', - 'location' => 'xml', - ), - 'AttributeNameCount' => array( - 'type' => 'numeric', - 'location' => 'xml', - ), - 'AttributeNamesSizeBytes' => array( - 'type' => 'numeric', - 'location' => 'xml', - ), - 'AttributeValueCount' => array( - 'type' => 'numeric', - 'location' => 'xml', - ), - 'AttributeValuesSizeBytes' => array( - 'type' => 'numeric', - 'location' => 'xml', - ), - 'Timestamp' => array( - 'type' => 'numeric', - 'location' => 'xml', - ), - ), - ), - 'GetAttributesResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Attributes' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'Attribute', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'Attribute', - 'type' => 'object', - 'sentAs' => 'Attribute', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'AlternateNameEncoding' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - 'AlternateValueEncoding' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'ListDomainsResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'DomainNames' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'DomainName', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'DomainName', - 'type' => 'string', - 'sentAs' => 'DomainName', - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'SelectResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Items' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'Item', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'Item', - 'type' => 'object', - 'sentAs' => 'Item', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'AlternateNameEncoding' => array( - 'type' => 'string', - ), - 'Attributes' => array( - 'type' => 'array', - 'sentAs' => 'Attribute', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'Attribute', - 'type' => 'object', - 'sentAs' => 'Attribute', - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'AlternateNameEncoding' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - 'AlternateValueEncoding' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - ), - '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/lib/aws-sdk/Aws/SimpleDb/SimpleDbClient.php b/lib/aws-sdk/Aws/SimpleDb/SimpleDbClient.php deleted file mode 100644 index e1701d5..0000000 --- a/lib/aws-sdk/Aws/SimpleDb/SimpleDbClient.php +++ /dev/null @@ -1,67 +0,0 @@ -setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/simpledb-%s.php' - )) - ->build(); - } -} diff --git a/lib/aws-sdk/Aws/Sns/Exception/AuthorizationErrorException.php b/lib/aws-sdk/Aws/Sns/Exception/AuthorizationErrorException.php deleted file mode 100644 index fb44055..0000000 --- a/lib/aws-sdk/Aws/Sns/Exception/AuthorizationErrorException.php +++ /dev/null @@ -1,22 +0,0 @@ - array( - 'Message', - 'MessageId', - 'Timestamp', - 'TopicArn', - 'Type', - 'Signature', - 'SigningCertURL', - ), - 'SubscriptionConfirmation' => array( - 'SubscribeURL', - 'Token' - ), - 'UnsubscribeConfirmation' => array( - 'SubscribeURL', - 'Token' - ), - ); - - protected static $signableKeys = array( - 'Message', - 'MessageId', - 'Subject', - 'SubscribeURL', - 'Timestamp', - 'Token', - 'TopicArn', - 'Type', - ); + private static $requiredKeys = [ + '__default' => ['Message', 'MessageId', 'Timestamp', 'TopicArn', + 'Type', 'Signature', 'SigningCertURL',], + 'SubscriptionConfirmation' => ['SubscribeURL', 'Token'], + 'UnsubscribeConfirmation' => ['SubscribeURL', 'Token'] + ]; - /** - * @var Collection The message data - */ - protected $data; + private static $signableKeys = ['Message', 'MessageId', 'Subject', + 'SubscribeURL', 'Timestamp', 'Token', 'TopicArn', 'Type']; + + /** @var array The message data */ + private $data; /** * Creates a Message object from an array of raw message data @@ -64,21 +22,30 @@ class Message * @param array $data The message data * * @return Message - * @throws InvalidArgumentException If a valid type is not provided or there are other required keys missing + * @throws \InvalidArgumentException If a valid type is not provided or + * there are other required keys missing */ public static function fromArray(array $data) { // Make sure the type key is set if (!isset($data['Type'])) { - throw new InvalidArgumentException('The "Type" key must be provided to instantiate a Message object.'); + throw new \InvalidArgumentException('The "Type" key must be ' + . 'provided to instantiate a Message object.'); } // Determine required keys and create a collection from the message data $requiredKeys = array_merge( self::$requiredKeys['__default'], - isset(self::$requiredKeys[$data['Type']]) ? self::$requiredKeys[$data['Type']] : array() + isset(self::$requiredKeys[$data['Type']]) + ? self::$requiredKeys[$data['Type']] + : [] ); - $data = Collection::fromConfig($data, array(), $requiredKeys); + + foreach ($requiredKeys as $key) { + if (empty($data[$key])) { + throw new \InvalidArgumentException($key . ' is required'); + } + } return new self($data); } @@ -87,29 +54,35 @@ class Message * Creates a message object from the raw POST data * * @return Message - * @throws UnexpectedValueException If the POST data is absent, or not a valid JSON document + * @throws \RuntimeException If the POST data is absent, or not a valid JSON document */ public static function fromRawPostData() { + if (!isset($_SERVER['HTTP_X_AMZ_SNS_MESSAGE_TYPE'])) { + throw new \RuntimeException('SNS message type header not provided.'); + } + $data = json_decode(file_get_contents('php://input'), true); + if (!is_array($data)) { - throw new UnexpectedValueException('POST data absent, or not a valid JSON document', json_last_error()); + throw new \RuntimeException('POST data invalid'); } + return self::fromArray($data); } /** - * @param Collection $data A Collection of message data with all required keys + * @param array $data Message data with all required keys. */ - public function __construct(Collection $data) + public function __construct(array $data) { $this->data = $data; } /** - * Get the entire message data as a Collection + * Get the entire message data as an array. * - * @return Collection + * @return array */ public function getData() { @@ -119,11 +92,13 @@ class Message /** * Gets a single key from the message data * + * @param string $key Key to retrieve + * * @return string */ public function get($key) { - return $this->data->get($key); + return isset($this->data[$key]) ? $this->data[$key] : null; } /** @@ -135,12 +110,8 @@ class Message public function getStringToSign() { $stringToSign = ''; - - $data = $this->data->toArray(); - ksort($data); - - foreach ($data as $key => $value) { - if (in_array($key, self::$signableKeys)) { + foreach (self::$signableKeys as $key) { + if ($value = $this->get($key)) { $stringToSign .= "{$key}\n{$value}\n"; } } diff --git a/lib/aws-sdk/Aws/Sns/MessageValidator/MessageValidator.php b/lib/aws-sdk/Aws/Sns/MessageValidator/MessageValidator.php index 113453e..51034d7 100644 --- a/lib/aws-sdk/Aws/Sns/MessageValidator/MessageValidator.php +++ b/lib/aws-sdk/Aws/Sns/MessageValidator/MessageValidator.php @@ -1,54 +1,43 @@ client = $client ?: new Client(); + $this->client = $httpHandler ?: \Aws\default_http_handler(); } /** @@ -56,47 +45,40 @@ class MessageValidator * * @param Message $message The message to validate * - * @throws CannotGetPublicKeyFromCertificateException If the certificate cannot be retrieved - * @throws CertificateFromUnrecognizedSourceException If the certificate's source cannot be verified - * @throws InvalidMessageSignatureException If the message's signature is invalid + * @throws MessageValidatorException If the certificate cannot be + * retrieved, if the certificate's source cannot be verified, or if the + * message's signature is invalid. */ public function validate(Message $message) { - // Get the cert's URL and ensure it is from AWS - $certUrl = Url::factory($message->get('SigningCertURL')); + // Get and validate the URL for the certificate. + $certUrl = new Uri($message->get('SigningCertURL')); $this->validateUrl($certUrl); // Get the cert itself and extract the public key - $certificate = $this->client->get((string) $certUrl)->send()->getBody(); - $publicKey = openssl_get_publickey($certificate); - if (!$publicKey) { - throw new CannotGetPublicKeyFromCertificateException(); - } + $request = new Request('GET', (string) $certUrl); + $promise = call_user_func($this->client, $request); + $certificate = (string) $promise->wait()->getBody(); - // Verify the signature of the message - $stringToSign = $message->getStringToSign(); - $incomingSignature = base64_decode($message->get('Signature')); - if (!openssl_verify($stringToSign, $incomingSignature, $publicKey, OPENSSL_ALGO_SHA1)) { - throw new InvalidMessageSignatureException(); + $key = openssl_get_publickey($certificate); + if (!$key) { + throw new MessageValidatorException('Cannot get the public key ' + . 'from the certificate.'); } - } - private function validateUrl(Url $url) - { - // The host must match the following pattern - $hostPattern = '/^sns\.[a-zA-Z0-9\-]{3,}\.amazonaws\.com(\.cn)?$/'; + // Verify the signature of the message + $content = $message->getStringToSign(); + $signature = base64_decode($message->get('Signature')); - if ($url->getScheme() !== 'https' || - substr($url, -4) !== '.pem' || - !preg_match($hostPattern, $url->getHost()) - ) { - throw new CertificateFromUnrecognizedSourceException(); + if (!openssl_verify($content, $signature, $key, OPENSSL_ALGO_SHA1)) { + throw new MessageValidatorException('The message signature is ' + . 'invalid.'); } } /** - * 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. + * 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. * * @param Message $message The message to validate * @@ -107,8 +89,29 @@ class MessageValidator try { $this->validate($message); return true; - } catch (SnsMessageValidatorException $e) { + } catch (MessageValidatorException $e) { return false; } } + + /** + * Ensures that the url of the certificate is one belonging to AWS, and not + * just something from the amazonaws domain, which includes S3 buckets. + * + * @param UriInterface $uri + * + * @throws MessageValidatorException if the cert url is invalid + */ + private function validateUrl(UriInterface $uri) + { + // The cert URL must be https, a .pem, and match the following pattern. + $hostPattern = '/^sns\.[a-zA-Z0-9\-]{3,}\.amazonaws\.com(\.cn)?$/'; + if ($uri->getScheme() !== 'https' + || substr($uri, -4) !== '.pem' + || !preg_match($hostPattern, $uri->getHost()) + ) { + throw new MessageValidatorException('The certificate is located ' + . 'on an invalid domain.'); + } + } } diff --git a/lib/aws-sdk/Aws/Sns/Resources/sns-2010-03-31.php b/lib/aws-sdk/Aws/Sns/Resources/sns-2010-03-31.php deleted file mode 100644 index d781bd4..0000000 --- a/lib/aws-sdk/Aws/Sns/Resources/sns-2010-03-31.php +++ /dev/null @@ -1,1740 +0,0 @@ - '2010-03-31', - 'endpointPrefix' => 'sns', - 'serviceFullName' => 'Amazon Simple Notification Service', - 'serviceAbbreviation' => 'Amazon SNS', - 'serviceType' => 'query', - 'resultWrapped' => true, - 'signatureVersion' => 'v4', - 'namespace' => 'Sns', - 'regions' => array( - 'us-east-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'sns.us-east-1.amazonaws.com', - ), - 'us-west-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'sns.us-west-1.amazonaws.com', - ), - 'us-west-2' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'sns.us-west-2.amazonaws.com', - ), - 'eu-west-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'sns.eu-west-1.amazonaws.com', - ), - 'ap-northeast-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'sns.ap-northeast-1.amazonaws.com', - ), - 'ap-southeast-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'sns.ap-southeast-1.amazonaws.com', - ), - 'ap-southeast-2' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'sns.ap-southeast-2.amazonaws.com', - ), - 'sa-east-1' => array( - 'http' => true, - '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, - 'hostname' => 'sns.us-gov-west-1.amazonaws.com', - ), - ), - 'operations' => array( - 'AddPermission' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'AddPermission', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'TopicArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Label' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'AWSAccountId' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'AWSAccountId.member', - 'items' => array( - 'name' => 'delegate', - 'type' => 'string', - ), - ), - 'ActionName' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'ActionName.member', - 'items' => array( - 'name' => 'action', - 'type' => 'string', - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'Indicates an internal service error.', - 'class' => 'InternalErrorException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - array( - 'reason' => 'Indicates that the requested resource does not exist.', - 'class' => 'NotFoundException', - ), - ), - ), - 'ConfirmSubscription' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ConfirmSubscriptionResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ConfirmSubscription', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'TopicArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Token' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'AuthenticateOnUnsubscribe' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that the customer already owns the maximum allowed number of subscriptions.', - 'class' => 'SubscriptionLimitExceededException', - ), - array( - 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'Indicates that the requested resource does not exist.', - 'class' => 'NotFoundException', - ), - array( - 'reason' => 'Indicates an internal service error.', - 'class' => 'InternalErrorException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - ), - ), - 'CreatePlatformApplication' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'CreatePlatformApplicationResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreatePlatformApplication', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'Name' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Platform' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Attributes' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'aws.query', - 'sentAs' => 'Attributes.entry', - 'additionalProperties' => array( - 'type' => 'string', - 'data' => array( - 'shape_name' => 'String', - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'Indicates an internal service error.', - 'class' => 'InternalErrorException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - ), - ), - 'CreatePlatformEndpoint' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'CreateEndpointResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreatePlatformEndpoint', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'PlatformApplicationArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Token' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'CustomUserData' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Attributes' => array( - 'type' => 'object', - 'location' => 'aws.query', - 'sentAs' => 'Attributes.entry', - 'additionalProperties' => array( - 'type' => 'string', - 'data' => array( - 'shape_name' => 'String', - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'Indicates an internal service error.', - 'class' => 'InternalErrorException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - array( - 'reason' => 'Indicates that the requested resource does not exist.', - 'class' => 'NotFoundException', - ), - ), - ), - 'CreateTopic' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'CreateTopicResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateTopic', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'Name' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'Indicates that the customer already owns the maximum allowed number of topics.', - 'class' => 'TopicLimitExceededException', - ), - array( - 'reason' => 'Indicates an internal service error.', - 'class' => 'InternalErrorException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - ), - ), - 'DeleteEndpoint' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteEndpoint', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'EndpointArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'Indicates an internal service error.', - 'class' => 'InternalErrorException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - ), - ), - 'DeletePlatformApplication' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeletePlatformApplication', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'PlatformApplicationArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'Indicates an internal service error.', - 'class' => 'InternalErrorException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - ), - ), - 'DeleteTopic' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteTopic', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'TopicArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'Indicates an internal service error.', - 'class' => 'InternalErrorException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - array( - 'reason' => 'Indicates that the requested resource does not exist.', - 'class' => 'NotFoundException', - ), - ), - ), - 'GetEndpointAttributes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetEndpointAttributesResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetEndpointAttributes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'EndpointArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'Indicates an internal service error.', - 'class' => 'InternalErrorException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - array( - 'reason' => 'Indicates that the requested resource does not exist.', - 'class' => 'NotFoundException', - ), - ), - ), - 'GetPlatformApplicationAttributes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetPlatformApplicationAttributesResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetPlatformApplicationAttributes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'PlatformApplicationArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'Indicates an internal service error.', - 'class' => 'InternalErrorException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - array( - 'reason' => 'Indicates that the requested resource does not exist.', - 'class' => 'NotFoundException', - ), - ), - ), - 'GetSubscriptionAttributes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetSubscriptionAttributesResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetSubscriptionAttributes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'SubscriptionArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'Indicates an internal service error.', - 'class' => 'InternalErrorException', - ), - array( - 'reason' => 'Indicates that the requested resource does not exist.', - 'class' => 'NotFoundException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - ), - ), - 'GetTopicAttributes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetTopicAttributesResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetTopicAttributes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'TopicArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'Indicates an internal service error.', - 'class' => 'InternalErrorException', - ), - array( - 'reason' => 'Indicates that the requested resource does not exist.', - 'class' => 'NotFoundException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - ), - ), - 'ListEndpointsByPlatformApplication' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListEndpointsByPlatformApplicationResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListEndpointsByPlatformApplication', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'PlatformApplicationArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'Indicates an internal service error.', - 'class' => 'InternalErrorException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - array( - 'reason' => 'Indicates that the requested resource does not exist.', - 'class' => 'NotFoundException', - ), - ), - ), - 'ListPlatformApplications' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListPlatformApplicationsResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListPlatformApplications', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'Indicates an internal service error.', - 'class' => 'InternalErrorException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - ), - ), - 'ListSubscriptions' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListSubscriptionsResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListSubscriptions', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'Indicates an internal service error.', - 'class' => 'InternalErrorException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - ), - ), - 'ListSubscriptionsByTopic' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListSubscriptionsByTopicResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListSubscriptionsByTopic', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'TopicArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'Indicates an internal service error.', - 'class' => 'InternalErrorException', - ), - array( - 'reason' => 'Indicates that the requested resource does not exist.', - 'class' => 'NotFoundException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - ), - ), - 'ListTopics' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListTopicsResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListTopics', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'Indicates an internal service error.', - 'class' => 'InternalErrorException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - ), - ), - 'Publish' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'PublishResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'Publish', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'TopicArn' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'TargetArn' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Message' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Subject' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - 'MessageStructure' => 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', - ), - array( - 'reason' => 'Indicates that the requested resource does not exist.', - 'class' => 'NotFoundException', - ), - array( - 'reason' => 'Exception error indicating endpoint disabled.', - 'class' => 'EndpointDisabledException', - ), - array( - 'reason' => 'Exception error indicating platform application disabled.', - 'class' => 'PlatformApplicationDisabledException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - ), - ), - 'RemovePermission' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'RemovePermission', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'TopicArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Label' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'Indicates an internal service error.', - 'class' => 'InternalErrorException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - array( - 'reason' => 'Indicates that the requested resource does not exist.', - 'class' => 'NotFoundException', - ), - ), - ), - 'SetEndpointAttributes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'SetEndpointAttributes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'EndpointArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Attributes' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'aws.query', - 'sentAs' => 'Attributes.entry', - 'additionalProperties' => array( - 'type' => 'string', - 'data' => array( - 'shape_name' => 'String', - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'Indicates an internal service error.', - 'class' => 'InternalErrorException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - array( - 'reason' => 'Indicates that the requested resource does not exist.', - 'class' => 'NotFoundException', - ), - ), - ), - 'SetPlatformApplicationAttributes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'SetPlatformApplicationAttributes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'PlatformApplicationArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Attributes' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'aws.query', - 'sentAs' => 'Attributes.entry', - 'additionalProperties' => array( - 'type' => 'string', - 'data' => array( - 'shape_name' => 'String', - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'Indicates an internal service error.', - 'class' => 'InternalErrorException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - array( - 'reason' => 'Indicates that the requested resource does not exist.', - 'class' => 'NotFoundException', - ), - ), - ), - 'SetSubscriptionAttributes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'SetSubscriptionAttributes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'SubscriptionArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'AttributeName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'AttributeValue' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'Indicates an internal service error.', - 'class' => 'InternalErrorException', - ), - array( - 'reason' => 'Indicates that the requested resource does not exist.', - 'class' => 'NotFoundException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - ), - ), - 'SetTopicAttributes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'SetTopicAttributes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'TopicArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'AttributeName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'AttributeValue' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'Indicates an internal service error.', - 'class' => 'InternalErrorException', - ), - array( - 'reason' => 'Indicates that the requested resource does not exist.', - 'class' => 'NotFoundException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - ), - ), - 'Subscribe' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'SubscribeResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'Subscribe', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'TopicArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Protocol' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Endpoint' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that the customer already owns the maximum allowed number of subscriptions.', - 'class' => 'SubscriptionLimitExceededException', - ), - array( - 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'Indicates an internal service error.', - 'class' => 'InternalErrorException', - ), - array( - 'reason' => 'Indicates that the requested resource does not exist.', - 'class' => 'NotFoundException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - ), - ), - 'Unsubscribe' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'Unsubscribe', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2010-03-31', - ), - 'SubscriptionArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Indicates that a request parameter does not comply with the associated constraints.', - 'class' => 'InvalidParameterException', - ), - array( - 'reason' => 'Indicates an internal service error.', - 'class' => 'InternalErrorException', - ), - array( - 'reason' => 'Indicates that the user has been denied access to the requested resource.', - 'class' => 'AuthorizationErrorException', - ), - array( - 'reason' => 'Indicates that the requested resource does not exist.', - 'class' => 'NotFoundException', - ), - ), - ), - ), - 'models' => array( - 'EmptyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), - 'ConfirmSubscriptionResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'SubscriptionArn' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'CreatePlatformApplicationResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'PlatformApplicationArn' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'CreateEndpointResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'EndpointArn' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'CreateTopicResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TopicArn' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'GetEndpointAttributesResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Attributes' => 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, - ), - ), - ), - 'GetPlatformApplicationAttributesResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Attributes' => 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, - ), - ), - ), - 'GetSubscriptionAttributesResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Attributes' => 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, - ), - ), - ), - 'GetTopicAttributesResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Attributes' => 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, - ), - ), - ), - 'ListEndpointsByPlatformApplicationResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Endpoints' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'Endpoint', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'EndpointArn' => array( - 'type' => 'string', - ), - 'Attributes' => array( - 'type' => 'array', - '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, - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ListPlatformApplicationsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'PlatformApplications' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'PlatformApplication', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'PlatformApplicationArn' => array( - 'type' => 'string', - ), - 'Attributes' => array( - 'type' => 'array', - '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, - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ListSubscriptionsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Subscriptions' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'Subscription', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'SubscriptionArn' => array( - 'type' => 'string', - ), - 'Owner' => array( - 'type' => 'string', - ), - 'Protocol' => array( - 'type' => 'string', - ), - 'Endpoint' => array( - 'type' => 'string', - ), - 'TopicArn' => array( - 'type' => 'string', - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ListSubscriptionsByTopicResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Subscriptions' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'Subscription', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'SubscriptionArn' => array( - 'type' => 'string', - ), - 'Owner' => array( - 'type' => 'string', - ), - 'Protocol' => array( - 'type' => 'string', - ), - 'Endpoint' => array( - 'type' => 'string', - ), - 'TopicArn' => array( - 'type' => 'string', - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'ListTopicsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Topics' => array( - 'type' => 'array', - 'location' => 'xml', - 'items' => array( - 'name' => 'Topic', - 'type' => 'object', - 'sentAs' => 'member', - 'properties' => array( - 'TopicArn' => array( - 'type' => 'string', - ), - ), - ), - ), - 'NextToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'PublishResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'MessageId' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'SubscribeResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'SubscriptionArn' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - ), - 'iterators' => array( - '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/lib/aws-sdk/Aws/Sns/SnsClient.php b/lib/aws-sdk/Aws/Sns/SnsClient.php index d21e6ef..b764406 100644 --- a/lib/aws-sdk/Aws/Sns/SnsClient.php +++ b/lib/aws-sdk/Aws/Sns/SnsClient.php @@ -1,85 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/sns-%s.php' - )) - ->build(); - } -} +class SnsClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/Sqs/Enum/MessageAttribute.php b/lib/aws-sdk/Aws/Sqs/Enum/MessageAttribute.php deleted file mode 100644 index dbf0b16..0000000 --- a/lib/aws-sdk/Aws/Sqs/Enum/MessageAttribute.php +++ /dev/null @@ -1,31 +0,0 @@ - array('onCommandBeforeSend', -255)); - } - - /** - * Validates the MD5OfBody attribute against the body - * - * @param Event $event Event emitted - * @throws SqsException when an MD5 mismatch occurs - */ - public function onCommandBeforeSend(Event $event) - { - if ($event['command']->getName() != 'ReceiveMessage') { - return; - } - - $result = $event['command']->getResult(); - if (isset($result['Messages'])) { - foreach ($result['Messages'] as $message) { - if ($message['MD5OfBody'] != md5($message['Body'])) { - throw new SqsException('Body MD5 mismatch for ' . var_export($message, true)); - } - } - } - } -} diff --git a/lib/aws-sdk/Aws/Sqs/QueueUrlListener.php b/lib/aws-sdk/Aws/Sqs/QueueUrlListener.php deleted file mode 100644 index 843a19e..0000000 --- a/lib/aws-sdk/Aws/Sqs/QueueUrlListener.php +++ /dev/null @@ -1,52 +0,0 @@ - array('onCommandBeforeSend', -255)); - } - - /** - * Updates the request URL to use the Queue URL - * - * @param Event $event Event emitted - */ - public function onCommandBeforeSend(Event $event) - { - /** @var AbstractCommand $command */ - $command = $event['command']; - if ($command->hasKey('QueueUrl')) { - $request = $command->getRequest(); - $requestUrl = $request->getUrl(true); - $request->setUrl($requestUrl->combine($command->get('QueueUrl'))); - $request->getParams()->remove('QueueUrl'); - } - } -} diff --git a/lib/aws-sdk/Aws/Sqs/Resources/sqs-2012-11-05.php b/lib/aws-sdk/Aws/Sqs/Resources/sqs-2012-11-05.php deleted file mode 100644 index 59b12eb..0000000 --- a/lib/aws-sdk/Aws/Sqs/Resources/sqs-2012-11-05.php +++ /dev/null @@ -1,1370 +0,0 @@ - '2012-11-05', - 'endpointPrefix' => 'sqs', - 'serviceFullName' => 'Amazon Simple Queue Service', - 'serviceAbbreviation' => 'Amazon SQS', - 'serviceType' => 'query', - 'resultWrapped' => true, - 'signatureVersion' => 'v4', - 'namespace' => 'Sqs', - 'regions' => array( - 'us-east-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'sqs.us-east-1.amazonaws.com', - ), - 'us-west-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'sqs.us-west-1.amazonaws.com', - ), - 'us-west-2' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'sqs.us-west-2.amazonaws.com', - ), - 'eu-west-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'sqs.eu-west-1.amazonaws.com', - ), - 'ap-northeast-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'sqs.ap-northeast-1.amazonaws.com', - ), - 'ap-southeast-1' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'sqs.ap-southeast-1.amazonaws.com', - ), - 'ap-southeast-2' => array( - 'http' => true, - 'https' => true, - 'hostname' => 'sqs.ap-southeast-2.amazonaws.com', - ), - 'sa-east-1' => array( - 'http' => true, - '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, - 'hostname' => 'sqs.us-gov-west-1.amazonaws.com', - ), - ), - 'operations' => array( - 'AddPermission' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'AddPermission', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-11-05', - ), - 'QueueUrl' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Label' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'AWSAccountIds' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'AWSAccountId', - 'items' => array( - 'name' => 'AWSAccountId', - 'type' => 'string', - ), - ), - 'Actions' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'ActionName', - 'items' => array( - 'name' => 'ActionName', - 'type' => 'string', - ), - ), - ), - 'errorResponses' => array( - array( - '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', - ), - ), - ), - 'ChangeMessageVisibility' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ChangeMessageVisibility', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-11-05', - ), - 'QueueUrl' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ReceiptHandle' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'VisibilityTimeout' => array( - 'required' => true, - 'type' => 'numeric', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The message referred to is not in flight.', - 'class' => 'MessageNotInflightException', - ), - array( - 'reason' => 'The receipt handle provided is not valid.', - 'class' => 'ReceiptHandleIsInvalidException', - ), - ), - ), - 'ChangeMessageVisibilityBatch' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ChangeMessageVisibilityBatchResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ChangeMessageVisibilityBatch', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-11-05', - ), - 'QueueUrl' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Entries' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'ChangeMessageVisibilityBatchRequestEntry', - 'items' => array( - 'name' => 'ChangeMessageVisibilityBatchRequestEntry', - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'required' => true, - 'type' => 'string', - ), - 'ReceiptHandle' => array( - 'required' => true, - 'type' => 'string', - ), - 'VisibilityTimeout' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Batch request contains more number of entries than permissible.', - 'class' => 'TooManyEntriesInBatchRequestException', - ), - array( - 'reason' => 'Batch request does not contain an entry.', - 'class' => 'EmptyBatchRequestException', - ), - array( - 'reason' => 'Two or more batch entries have the same Id in the request.', - 'class' => 'BatchEntryIdsNotDistinctException', - ), - array( - 'reason' => 'The Id of a batch entry in a batch request does not abide by the specification.', - 'class' => 'InvalidBatchEntryIdException', - ), - ), - ), - 'CreateQueue' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'CreateQueueResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'CreateQueue', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-11-05', - ), - 'QueueName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Attributes' => array( - 'type' => 'object', - 'location' => 'aws.query', - 'sentAs' => 'Attribute', - 'data' => array( - 'keyName' => 'Name', - 'valueName' => 'Value', - ), - 'additionalProperties' => array( - 'type' => 'string', - 'data' => array( - 'shape_name' => 'QueueAttributeName', - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'You must wait 60 seconds after deleting a queue before you can create another with the same name.', - 'class' => 'QueueDeletedRecentlyException', - ), - array( - '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', - ), - ), - ), - 'DeleteMessage' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteMessage', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-11-05', - ), - 'QueueUrl' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'ReceiptHandle' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The receipt handle is not valid for the current version.', - 'class' => 'InvalidIdFormatException', - ), - array( - 'reason' => 'The receipt handle provided is not valid.', - 'class' => 'ReceiptHandleIsInvalidException', - ), - ), - ), - 'DeleteMessageBatch' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DeleteMessageBatchResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteMessageBatch', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-11-05', - ), - 'QueueUrl' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Entries' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'DeleteMessageBatchRequestEntry', - 'items' => array( - 'name' => 'DeleteMessageBatchRequestEntry', - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'required' => true, - 'type' => 'string', - ), - 'ReceiptHandle' => array( - 'required' => true, - 'type' => 'string', - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Batch request contains more number of entries than permissible.', - 'class' => 'TooManyEntriesInBatchRequestException', - ), - array( - 'reason' => 'Batch request does not contain an entry.', - 'class' => 'EmptyBatchRequestException', - ), - array( - 'reason' => 'Two or more batch entries have the same Id in the request.', - 'class' => 'BatchEntryIdsNotDistinctException', - ), - array( - 'reason' => 'The Id of a batch entry in a batch request does not abide by the specification.', - 'class' => 'InvalidBatchEntryIdException', - ), - ), - ), - 'DeleteQueue' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DeleteQueue', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-11-05', - ), - 'QueueUrl' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - 'GetQueueAttributes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetQueueAttributesResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetQueueAttributes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-11-05', - ), - 'QueueUrl' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'AttributeNames' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'AttributeName', - 'items' => array( - 'name' => 'AttributeName', - 'type' => 'string', - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The attribute referred to does not exist.', - 'class' => 'InvalidAttributeNameException', - ), - ), - ), - 'GetQueueUrl' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetQueueUrlResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetQueueUrl', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-11-05', - ), - 'QueueName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'QueueOwnerAWSAccountId' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The queue referred to does not exist.', - 'class' => 'QueueDoesNotExistException', - ), - ), - ), - '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' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ListQueuesResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ListQueues', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-11-05', - ), - 'QueueNamePrefix' => array( - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - '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' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'ReceiveMessageResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'ReceiveMessage', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-11-05', - ), - 'QueueUrl' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'AttributeNames' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'AttributeName', - 'items' => array( - 'name' => 'AttributeName', - 'type' => 'string', - ), - ), - 'MessageAttributeNames' => array( - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'MessageAttributeName', - 'items' => array( - 'name' => 'MessageAttributeName', - 'type' => 'string', - ), - ), - 'MaxNumberOfMessages' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'VisibilityTimeout' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - 'WaitTimeSeconds' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - ), - ), - 'errorResponses' => array( - array( - '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', - ), - ), - ), - 'RemovePermission' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'RemovePermission', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-11-05', - ), - 'QueueUrl' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Label' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - ), - ), - 'SendMessage' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'SendMessageResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'SendMessage', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-11-05', - ), - 'QueueUrl' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'MessageBody' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'DelaySeconds' => 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'SendMessageBatchResult', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'SendMessageBatch', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-11-05', - ), - 'QueueUrl' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Entries' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'aws.query', - 'sentAs' => 'SendMessageBatchRequestEntry', - 'items' => array( - 'name' => 'SendMessageBatchRequestEntry', - 'type' => 'object', - 'properties' => array( - 'Id' => array( - 'required' => true, - 'type' => 'string', - ), - 'MessageBody' => array( - 'required' => true, - 'type' => 'string', - ), - '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', - ), - ), - ), - ), - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Batch request contains more number of entries than permissible.', - 'class' => 'TooManyEntriesInBatchRequestException', - ), - array( - 'reason' => 'Batch request does not contain an entry.', - 'class' => 'EmptyBatchRequestException', - ), - array( - 'reason' => 'Two or more batch entries have the same Id in the request.', - 'class' => 'BatchEntryIdsNotDistinctException', - ), - array( - 'reason' => 'The length of all the messages put together is more than the limit.', - 'class' => 'BatchRequestTooLongException', - ), - 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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'EmptyOutput', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'SetQueueAttributes', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2012-11-05', - ), - 'QueueUrl' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - ), - 'Attributes' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'aws.query', - 'sentAs' => 'Attribute', - 'data' => array( - 'keyName' => 'Name', - 'valueName' => 'Value', - ), - 'additionalProperties' => array( - 'type' => 'string', - 'data' => array( - 'shape_name' => 'QueueAttributeName', - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The attribute referred to does not exist.', - 'class' => 'InvalidAttributeNameException', - ), - ), - ), - ), - 'models' => array( - 'EmptyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), - 'ChangeMessageVisibilityBatchResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Successful' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'ChangeMessageVisibilityBatchResultEntry', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'ChangeMessageVisibilityBatchResultEntry', - 'type' => 'object', - 'sentAs' => 'ChangeMessageVisibilityBatchResultEntry', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Failed' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'BatchResultErrorEntry', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'BatchResultErrorEntry', - 'type' => 'object', - 'sentAs' => 'BatchResultErrorEntry', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'SenderFault' => array( - 'type' => 'boolean', - ), - 'Code' => array( - 'type' => 'string', - ), - 'Message' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'CreateQueueResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'QueueUrl' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'DeleteMessageBatchResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Successful' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'DeleteMessageBatchResultEntry', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'DeleteMessageBatchResultEntry', - 'type' => 'object', - 'sentAs' => 'DeleteMessageBatchResultEntry', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Failed' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'BatchResultErrorEntry', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'BatchResultErrorEntry', - 'type' => 'object', - 'sentAs' => 'BatchResultErrorEntry', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'SenderFault' => array( - 'type' => 'boolean', - ), - 'Code' => array( - 'type' => 'string', - ), - 'Message' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'GetQueueAttributesResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Attributes' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'Attribute', - 'data' => array( - 'xmlFlattened' => true, - 'xmlMap' => array( - 'Policy', - 'VisibilityTimeout', - 'MaximumMessageSize', - 'MessageRetentionPeriod', - 'ApproximateNumberOfMessages', - 'ApproximateNumberOfMessagesNotVisible', - 'CreatedTimestamp', - 'LastModifiedTimestamp', - 'QueueArn', - 'ApproximateNumberOfMessagesDelayed', - 'DelaySeconds', - 'ReceiveMessageWaitTimeSeconds', - 'RedrivePolicy', - ), - ), - 'filters' => array( - array( - 'method' => 'Aws\\Common\\Command\\XmlResponseLocationVisitor::xmlMap', - 'args' => array( - '@value', - 'Attribute', - 'Name', - 'Value', - ), - ), - ), - 'items' => array( - 'name' => 'Attribute', - 'type' => 'object', - 'sentAs' => 'Attribute', - 'additionalProperties' => true, - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - ), - ), - 'additionalProperties' => false, - ), - ), - ), - 'GetQueueUrlResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'QueueUrl' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - '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, - 'properties' => array( - 'QueueUrls' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'QueueUrl', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'QueueUrl', - 'type' => 'string', - 'sentAs' => 'QueueUrl', - ), - ), - ), - ), - 'ReceiveMessageResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Messages' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'Message', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'Message', - 'type' => 'object', - 'sentAs' => 'Message', - 'properties' => array( - 'MessageId' => array( - 'type' => 'string', - ), - 'ReceiptHandle' => array( - 'type' => 'string', - ), - 'MD5OfBody' => array( - 'type' => 'string', - ), - 'Body' => array( - 'type' => 'string', - ), - 'Attributes' => array( - 'type' => 'array', - 'sentAs' => 'Attribute', - 'data' => array( - 'xmlFlattened' => true, - 'xmlMap' => array( - 'Policy', - 'VisibilityTimeout', - 'MaximumMessageSize', - 'MessageRetentionPeriod', - 'ApproximateNumberOfMessages', - 'ApproximateNumberOfMessagesNotVisible', - 'CreatedTimestamp', - 'LastModifiedTimestamp', - 'QueueArn', - 'ApproximateNumberOfMessagesDelayed', - 'DelaySeconds', - 'ReceiveMessageWaitTimeSeconds', - 'RedrivePolicy', - ), - ), - 'filters' => array( - array( - 'method' => 'Aws\\Common\\Command\\XmlResponseLocationVisitor::xmlMap', - 'args' => array( - '@value', - 'Attribute', - 'Name', - 'Value', - ), - ), - ), - 'items' => array( - 'name' => 'Attribute', - 'type' => 'object', - 'sentAs' => 'Attribute', - 'additionalProperties' => true, - 'properties' => array( - 'Name' => array( - 'type' => 'string', - ), - 'Value' => array( - 'type' => 'string', - ), - ), - ), - '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, - ), - ), - ), - ), - ), - ), - 'SendMessageResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'MD5OfMessageBody' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'MD5OfMessageAttributes' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'MessageId' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'SendMessageBatchResult' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Successful' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'SendMessageBatchResultEntry', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'SendMessageBatchResultEntry', - 'type' => 'object', - 'sentAs' => 'SendMessageBatchResultEntry', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'MessageId' => array( - 'type' => 'string', - ), - 'MD5OfMessageBody' => array( - 'type' => 'string', - ), - 'MD5OfMessageAttributes' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Failed' => array( - 'type' => 'array', - 'location' => 'xml', - 'sentAs' => 'BatchResultErrorEntry', - 'data' => array( - 'xmlFlattened' => true, - ), - 'items' => array( - 'name' => 'BatchResultErrorEntry', - 'type' => 'object', - 'sentAs' => 'BatchResultErrorEntry', - 'properties' => array( - 'Id' => array( - 'type' => 'string', - ), - 'SenderFault' => array( - 'type' => 'boolean', - ), - 'Code' => array( - 'type' => 'string', - ), - 'Message' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'iterators' => array( - 'ListQueues' => array( - 'result_key' => 'QueueUrls', - ), - ), -); diff --git a/lib/aws-sdk/Aws/Sqs/SqsClient.php b/lib/aws-sdk/Aws/Sqs/SqsClient.php index 11c999e..7b1dcfc 100644 --- a/lib/aws-sdk/Aws/Sqs/SqsClient.php +++ b/lib/aws-sdk/Aws/Sqs/SqsClient.php @@ -1,85 +1,30 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/sqs-%s.php' - )) - ->build(); - - $client->addSubscriber(new QueueUrlListener()); - $client->addSubscriber(new Md5ValidatorListener()); - - return $client; + parent::__construct($config); + $list = $this->getHandlerList(); + $list->appendBuild($this->queueUrl(), 'sqs.queue_url'); + $list->appendSign($this->validateMd5(), 'sqs.md5'); } /** * Converts a queue URL into a queue ARN. * - * @param string $queueUrl The queue URL to perform the action on. Retrieved when the queue is first created. + * @param string $queueUrl The queue URL to perform the action on. + * Retrieved when the queue is first created. * * @return string An ARN representation of the queue URL. */ @@ -93,4 +38,69 @@ class SqsClient extends AbstractClient '.' => ':', )); } + + /** + * Moves the URI of the queue to the URI in the input parameter. + * + * @return callable + */ + private function queueUrl() + { + return static function (callable $handler) { + return function ( + CommandInterface $c, + RequestInterface $r = null + ) use ($handler) { + if ($c->hasParam('QueueUrl')) { + $uri = Uri::resolve($r->getUri(), $c['QueueUrl']); + $r = $r->withUri($uri); + } + return $handler($c, $r); + }; + }; + } + + /** + * Validates ReceiveMessage body MD5s + * + * @return callable + */ + private function validateMd5() + { + return static function (callable $handler) { + return function ( + CommandInterface $c, + RequestInterface $r = null + ) use ($handler) { + if ($c->getName() !== 'ReceiveMessage') { + return $handler($c, $r); + } + + return $handler($c, $r) + ->then( + function ($result) use ($c, $r) { + foreach ((array) $result['Messages'] as $msg) { + if (isset($msg['MD5OfBody']) + && md5($msg['Body']) !== $msg['MD5OfBody'] + ) { + throw new SqsException( + sprintf( + 'MD5 mismatch. Expected %s, found %s', + $msg['MD5OfBody'], + md5($msg['Body']) + ), + $c, + [ + 'code' => 'ClientChecksumMismatch', + 'request' => $r + ] + ); + } + } + return $result; + } + ); + }; + }; + } } diff --git a/lib/aws-sdk/Aws/Ssm/Exception/SsmException.php b/lib/aws-sdk/Aws/Ssm/Exception/SsmException.php index 5567161..123441d 100644 --- a/lib/aws-sdk/Aws/Ssm/Exception/SsmException.php +++ b/lib/aws-sdk/Aws/Ssm/Exception/SsmException.php @@ -1,24 +1,9 @@ '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/lib/aws-sdk/Aws/Ssm/SsmClient.php b/lib/aws-sdk/Aws/Ssm/SsmClient.php index 7661810..9474579 100644 --- a/lib/aws-sdk/Aws/Ssm/SsmClient.php +++ b/lib/aws-sdk/Aws/Ssm/SsmClient.php @@ -1,69 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/ssm-%s.php' - )) - ->setExceptionParser(new JsonQueryExceptionParser()) - ->build(); - } -} +class SsmClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/StorageGateway/Enum/BandwidthType.php b/lib/aws-sdk/Aws/StorageGateway/Enum/BandwidthType.php deleted file mode 100644 index 485bfda..0000000 --- a/lib/aws-sdk/Aws/StorageGateway/Enum/BandwidthType.php +++ /dev/null @@ -1,29 +0,0 @@ - '2013-06-30', - 'endpointPrefix' => 'storagegateway', - 'serviceFullName' => 'AWS Storage Gateway', - 'serviceType' => 'json', - 'jsonVersion' => '1.1', - 'targetPrefix' => 'StorageGateway_20130630.', - 'signatureVersion' => 'v4', - 'namespace' => 'StorageGateway', - 'regions' => array( - 'us-east-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'storagegateway.us-east-1.amazonaws.com', - ), - 'us-west-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'storagegateway.us-west-1.amazonaws.com', - ), - 'us-west-2' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'storagegateway.us-west-2.amazonaws.com', - ), - 'eu-west-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'storagegateway.eu-west-1.amazonaws.com', - ), - 'ap-northeast-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'storagegateway.ap-northeast-1.amazonaws.com', - ), - 'ap-southeast-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'storagegateway.ap-southeast-1.amazonaws.com', - ), - 'ap-southeast-2' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'storagegateway.ap-southeast-2.amazonaws.com', - ), - 'sa-east-1' => array( - 'http' => false, - '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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ActivateGatewayOutput', - '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.ActivateGateway', - ), - 'ActivationKey' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 50, - ), - 'GatewayName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 2, - 'maxLength' => 255, - ), - 'GatewayTimezone' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 10, - ), - 'GatewayRegion' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 25, - ), - 'GatewayType' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 2, - 'maxLength' => 20, - ), - 'TapeDriveType' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 2, - 'maxLength' => 50, - ), - 'MediumChangerType' => array( - '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', - ), - ), - ), - 'AddCache' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'AddCacheOutput', - '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.AddCache', - ), - 'GatewayARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 500, - ), - 'DiskIds' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'DiskId', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 300, - ), - ), - ), - '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', - ), - ), - ), - 'AddUploadBuffer' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'AddUploadBufferOutput', - '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.AddUploadBuffer', - ), - 'GatewayARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 500, - ), - 'DiskIds' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'DiskId', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 300, - ), - ), - ), - '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', - ), - ), - ), - 'AddWorkingStorage' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'AddWorkingStorageOutput', - '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.AddWorkingStorage', - ), - 'GatewayARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 500, - ), - 'DiskIds' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'DiskId', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 300, - ), - ), - ), - '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', - ), - ), - ), - 'CancelArchival' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'CancelArchivalOutput', - '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.CancelArchival', - ), - 'GatewayARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 500, - ), - 'TapeARN' => 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', - ), - ), - ), - 'CancelRetrieval' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'CancelRetrievalOutput', - '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.CancelRetrieval', - ), - 'GatewayARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 500, - ), - 'TapeARN' => 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', - ), - ), - ), - 'CreateCachediSCSIVolume' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'CreateCachediSCSIVolumeOutput', - '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.CreateCachediSCSIVolume', - ), - 'GatewayARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 500, - ), - 'VolumeSizeInBytes' => array( - 'required' => true, - 'type' => 'numeric', - 'location' => 'json', - ), - 'SnapshotId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'TargetName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 200, - ), - 'NetworkInterfaceId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'ClientToken' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 5, - 'maxLength' => 100, - ), - ), - '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', - ), - ), - ), - 'CreateSnapshot' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'CreateSnapshotOutput', - '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.CreateSnapshot', - ), - 'VolumeARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 500, - ), - 'SnapshotDescription' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - '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', - ), - ), - ), - 'CreateSnapshotFromVolumeRecoveryPoint' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'CreateSnapshotFromVolumeRecoveryPointOutput', - '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.CreateSnapshotFromVolumeRecoveryPoint', - ), - 'VolumeARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 500, - ), - 'SnapshotDescription' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - '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', - ), - ), - ), - 'CreateStorediSCSIVolume' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'CreateStorediSCSIVolumeOutput', - '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.CreateStorediSCSIVolume', - ), - 'GatewayARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 500, - ), - 'DiskId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 300, - ), - 'SnapshotId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'PreserveExistingData' => array( - 'required' => true, - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'TargetName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 200, - ), - 'NetworkInterfaceId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - ), - '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', - ), - ), - ), - 'CreateTapes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'CreateTapesOutput', - '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.CreateTapes', - ), - 'GatewayARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 500, - ), - 'TapeSizeInBytes' => array( - 'required' => true, - 'type' => 'numeric', - 'location' => 'json', - ), - 'ClientToken' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 5, - 'maxLength' => 100, - ), - 'NumTapesToCreate' => array( - 'required' => true, - 'type' => 'numeric', - 'location' => 'json', - 'minimum' => 1, - 'maximum' => 10, - ), - 'TapeBarcodePrefix' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 4, - ), - ), - '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', - ), - ), - ), - 'DeleteBandwidthRateLimit' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DeleteBandwidthRateLimitOutput', - '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.DeleteBandwidthRateLimit', - ), - 'GatewayARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 500, - ), - 'BandwidthType' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 25, - ), - ), - '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', - ), - ), - ), - 'DeleteChapCredentials' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DeleteChapCredentialsOutput', - '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.DeleteChapCredentials', - ), - 'TargetARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 800, - ), - 'InitiatorName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - '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', - ), - ), - ), - 'DeleteGateway' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DeleteGatewayOutput', - '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.DeleteGateway', - ), - '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', - ), - ), - ), - 'DeleteSnapshotSchedule' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DeleteSnapshotScheduleOutput', - '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.DeleteSnapshotSchedule', - ), - 'VolumeARN' => 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', - ), - ), - ), - 'DeleteTape' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DeleteTapeOutput', - '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.DeleteTape', - ), - 'GatewayARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 500, - ), - 'TapeARN' => 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', - ), - ), - ), - 'DeleteTapeArchive' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DeleteTapeArchiveOutput', - '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.DeleteTapeArchive', - ), - 'TapeARN' => 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', - ), - ), - ), - 'DeleteVolume' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DeleteVolumeOutput', - '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.DeleteVolume', - ), - 'VolumeARN' => 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', - ), - ), - ), - 'DescribeBandwidthRateLimit' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeBandwidthRateLimitOutput', - '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.DescribeBandwidthRateLimit', - ), - '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', - ), - ), - ), - 'DescribeCache' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeCacheOutput', - '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.DescribeCache', - ), - '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', - ), - ), - ), - 'DescribeCachediSCSIVolumes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeCachediSCSIVolumesOutput', - '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.DescribeCachediSCSIVolumes', - ), - 'VolumeARNs' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'VolumeARN', - 'type' => 'string', - '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', - ), - ), - ), - 'DescribeChapCredentials' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeChapCredentialsOutput', - '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.DescribeChapCredentials', - ), - 'TargetARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 800, - ), - ), - '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', - ), - ), - ), - 'DescribeGatewayInformation' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeGatewayInformationOutput', - '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.DescribeGatewayInformation', - ), - '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', - ), - ), - ), - 'DescribeMaintenanceStartTime' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeMaintenanceStartTimeOutput', - '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.DescribeMaintenanceStartTime', - ), - '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', - ), - ), - ), - 'DescribeSnapshotSchedule' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeSnapshotScheduleOutput', - '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.DescribeSnapshotSchedule', - ), - 'VolumeARN' => 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', - ), - ), - ), - 'DescribeStorediSCSIVolumes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeStorediSCSIVolumesOutput', - '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.DescribeStorediSCSIVolumes', - ), - 'VolumeARNs' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'VolumeARN', - 'type' => 'string', - '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', - ), - ), - ), - 'DescribeTapeArchives' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeTapeArchivesOutput', - '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.DescribeTapeArchives', - ), - 'TapeARNs' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'TapeARN', - 'type' => 'string', - 'minLength' => 50, - 'maxLength' => 500, - ), - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1000, - ), - 'Limit' => array( - 'type' => 'numeric', - 'location' => 'json', - 'minimum' => 1, - ), - ), - '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', - ), - ), - ), - 'DescribeTapeRecoveryPoints' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeTapeRecoveryPointsOutput', - '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.DescribeTapeRecoveryPoints', - ), - 'GatewayARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 500, - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1000, - ), - 'Limit' => array( - 'type' => 'numeric', - 'location' => 'json', - 'minimum' => 1, - ), - ), - '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', - ), - ), - ), - 'DescribeTapes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeTapesOutput', - '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.DescribeTapes', - ), - 'GatewayARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 500, - ), - 'TapeARNs' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'TapeARN', - 'type' => 'string', - 'minLength' => 50, - 'maxLength' => 500, - ), - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1000, - ), - 'Limit' => array( - 'type' => 'numeric', - 'location' => 'json', - 'minimum' => 1, - ), - ), - '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', - ), - ), - ), - 'DescribeUploadBuffer' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeUploadBufferOutput', - '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.DescribeUploadBuffer', - ), - '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', - ), - ), - ), - 'DescribeVTLDevices' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeVTLDevicesOutput', - '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.DescribeVTLDevices', - ), - 'GatewayARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 500, - ), - 'VTLDeviceARNs' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'VTLDeviceARN', - 'type' => 'string', - 'minLength' => 50, - 'maxLength' => 500, - ), - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1000, - ), - 'Limit' => array( - 'type' => 'numeric', - 'location' => 'json', - 'minimum' => 1, - ), - ), - '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', - ), - ), - ), - 'DescribeWorkingStorage' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeWorkingStorageOutput', - '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.DescribeWorkingStorage', - ), - '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', - ), - ), - ), - 'DisableGateway' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DisableGatewayOutput', - '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.DisableGateway', - ), - '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', - ), - ), - ), - 'ListGateways' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ListGatewaysOutput', - '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.ListGateways', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1000, - ), - 'Limit' => array( - 'type' => 'numeric', - 'location' => 'json', - 'minimum' => 1, - ), - ), - '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', - ), - ), - ), - 'ListLocalDisks' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ListLocalDisksOutput', - '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.ListLocalDisks', - ), - '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', - ), - ), - ), - 'ListVolumeInitiators' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ListVolumeInitiatorsOutput', - '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.ListVolumeInitiators', - ), - 'VolumeARN' => 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', - ), - ), - ), - 'ListVolumeRecoveryPoints' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ListVolumeRecoveryPointsOutput', - '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.ListVolumeRecoveryPoints', - ), - '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', - ), - ), - ), - 'ListVolumes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ListVolumesOutput', - '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.ListVolumes', - ), - 'GatewayARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 500, - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1000, - ), - 'Limit' => array( - 'type' => 'numeric', - 'location' => 'json', - 'minimum' => 1, - ), - ), - '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', - ), - ), - ), - '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' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'RetrieveTapeArchiveOutput', - '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.RetrieveTapeArchive', - ), - 'TapeARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 500, - ), - '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', - ), - ), - ), - 'RetrieveTapeRecoveryPoint' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'RetrieveTapeRecoveryPointOutput', - '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.RetrieveTapeRecoveryPoint', - ), - 'TapeARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 500, - ), - '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', - ), - ), - ), - 'ShutdownGateway' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ShutdownGatewayOutput', - '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.ShutdownGateway', - ), - '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', - ), - ), - ), - 'StartGateway' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'StartGatewayOutput', - '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.StartGateway', - ), - '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', - ), - ), - ), - 'UpdateBandwidthRateLimit' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'UpdateBandwidthRateLimitOutput', - '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.UpdateBandwidthRateLimit', - ), - 'GatewayARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 500, - ), - 'AverageUploadRateLimitInBitsPerSec' => array( - 'type' => 'numeric', - 'location' => 'json', - 'minimum' => 51200, - ), - 'AverageDownloadRateLimitInBitsPerSec' => array( - 'type' => 'numeric', - 'location' => 'json', - 'minimum' => 102400, - ), - ), - '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', - ), - ), - ), - 'UpdateChapCredentials' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'UpdateChapCredentialsOutput', - '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.UpdateChapCredentials', - ), - 'TargetARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 800, - ), - 'SecretToAuthenticateInitiator' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 100, - ), - 'InitiatorName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 255, - ), - 'SecretToAuthenticateTarget' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 100, - ), - ), - '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', - ), - ), - ), - 'UpdateGatewayInformation' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'UpdateGatewayInformationOutput', - '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.UpdateGatewayInformation', - ), - 'GatewayARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 500, - ), - 'GatewayName' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 2, - 'maxLength' => 255, - ), - 'GatewayTimezone' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 3, - 'maxLength' => 10, - ), - ), - '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', - ), - ), - ), - 'UpdateGatewaySoftwareNow' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'UpdateGatewaySoftwareNowOutput', - '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.UpdateGatewaySoftwareNow', - ), - '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', - ), - ), - ), - 'UpdateMaintenanceStartTime' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'UpdateMaintenanceStartTimeOutput', - '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.UpdateMaintenanceStartTime', - ), - 'GatewayARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 500, - ), - 'HourOfDay' => array( - 'required' => true, - 'type' => 'numeric', - 'location' => 'json', - 'maximum' => 23, - ), - 'MinuteOfHour' => array( - 'required' => true, - 'type' => 'numeric', - 'location' => 'json', - 'maximum' => 59, - ), - 'DayOfWeek' => array( - 'required' => true, - 'type' => 'numeric', - 'location' => 'json', - 'maximum' => 6, - ), - ), - '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', - ), - ), - ), - 'UpdateSnapshotSchedule' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'UpdateSnapshotScheduleOutput', - '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.UpdateSnapshotSchedule', - ), - 'VolumeARN' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 50, - 'maxLength' => 500, - ), - 'StartAt' => array( - 'required' => true, - 'type' => 'numeric', - 'location' => 'json', - 'maximum' => 23, - ), - 'RecurrenceInHours' => array( - 'required' => true, - 'type' => 'numeric', - 'location' => 'json', - 'minimum' => 1, - 'maximum' => 24, - ), - 'Description' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 255, - ), - ), - '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', - ), - ), - ), - '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( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'AddCacheOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'AddUploadBufferOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'AddWorkingStorageOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'CancelArchivalOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TapeARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'CancelRetrievalOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TapeARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'CreateCachediSCSIVolumeOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'VolumeARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'TargetARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'CreateSnapshotOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'VolumeARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'SnapshotId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'CreateSnapshotFromVolumeRecoveryPointOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'SnapshotId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'VolumeARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'VolumeRecoveryPointTime' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'CreateStorediSCSIVolumeOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'VolumeARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'VolumeSizeInBytes' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'TargetARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'CreateTapesOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TapeARNs' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'TapeARN', - 'type' => 'string', - ), - ), - ), - ), - 'DeleteBandwidthRateLimitOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DeleteChapCredentialsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TargetARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'InitiatorName' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DeleteGatewayOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DeleteSnapshotScheduleOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'VolumeARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DeleteTapeOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TapeARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DeleteTapeArchiveOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TapeARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DeleteVolumeOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'VolumeARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DescribeBandwidthRateLimitOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'AverageUploadRateLimitInBitsPerSec' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'AverageDownloadRateLimitInBitsPerSec' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - ), - ), - 'DescribeCacheOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'DiskIds' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'DiskId', - 'type' => 'string', - ), - ), - 'CacheAllocatedInBytes' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'CacheUsedPercentage' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'CacheDirtyPercentage' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'CacheHitPercentage' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'CacheMissPercentage' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - ), - ), - 'DescribeCachediSCSIVolumesOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'CachediSCSIVolumes' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'CachediSCSIVolume', - 'type' => 'object', - 'properties' => array( - 'VolumeARN' => array( - 'type' => 'string', - ), - 'VolumeId' => array( - 'type' => 'string', - ), - 'VolumeType' => array( - 'type' => 'string', - ), - 'VolumeStatus' => array( - 'type' => 'string', - ), - 'VolumeSizeInBytes' => array( - 'type' => 'numeric', - ), - 'VolumeProgress' => array( - 'type' => 'numeric', - ), - 'SourceSnapshotId' => array( - 'type' => 'string', - ), - 'VolumeiSCSIAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'TargetARN' => array( - 'type' => 'string', - ), - 'NetworkInterfaceId' => array( - 'type' => 'string', - ), - 'NetworkInterfacePort' => array( - 'type' => 'numeric', - ), - 'LunNumber' => array( - 'type' => 'numeric', - ), - 'ChapEnabled' => array( - 'type' => 'boolean', - ), - ), - ), - ), - ), - ), - ), - ), - 'DescribeChapCredentialsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'ChapCredentials' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'ChapInfo', - 'type' => 'object', - 'properties' => array( - 'TargetARN' => array( - 'type' => 'string', - ), - 'SecretToAuthenticateInitiator' => array( - 'type' => 'string', - ), - 'InitiatorName' => array( - 'type' => 'string', - ), - 'SecretToAuthenticateTarget' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'DescribeGatewayInformationOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'GatewayId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'GatewayTimezone' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'GatewayState' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'GatewayNetworkInterfaces' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'NetworkInterface', - 'type' => 'object', - 'properties' => array( - 'Ipv4Address' => array( - 'type' => 'string', - ), - 'MacAddress' => array( - 'type' => 'string', - ), - 'Ipv6Address' => array( - 'type' => 'string', - ), - ), - ), - ), - 'GatewayType' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'NextUpdateAvailabilityDate' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'LastSoftwareUpdate' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DescribeMaintenanceStartTimeOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'HourOfDay' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'MinuteOfHour' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'DayOfWeek' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'Timezone' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DescribeSnapshotScheduleOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'VolumeARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'StartAt' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'RecurrenceInHours' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'Description' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Timezone' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DescribeStorediSCSIVolumesOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'StorediSCSIVolumes' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'StorediSCSIVolume', - 'type' => 'object', - 'properties' => array( - 'VolumeARN' => array( - 'type' => 'string', - ), - 'VolumeId' => array( - 'type' => 'string', - ), - 'VolumeType' => array( - 'type' => 'string', - ), - 'VolumeStatus' => array( - 'type' => 'string', - ), - 'VolumeSizeInBytes' => array( - 'type' => 'numeric', - ), - 'VolumeProgress' => array( - 'type' => 'numeric', - ), - 'VolumeDiskId' => array( - 'type' => 'string', - ), - 'SourceSnapshotId' => array( - 'type' => 'string', - ), - 'PreservedExistingData' => array( - 'type' => 'boolean', - ), - 'VolumeiSCSIAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'TargetARN' => array( - 'type' => 'string', - ), - 'NetworkInterfaceId' => array( - 'type' => 'string', - ), - 'NetworkInterfacePort' => array( - 'type' => 'numeric', - ), - 'LunNumber' => array( - 'type' => 'numeric', - ), - 'ChapEnabled' => array( - 'type' => 'boolean', - ), - ), - ), - ), - ), - ), - ), - ), - 'DescribeTapeArchivesOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TapeArchives' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'TapeArchive', - 'type' => 'object', - 'properties' => array( - 'TapeARN' => array( - 'type' => 'string', - ), - 'TapeBarcode' => array( - 'type' => 'string', - ), - 'TapeSizeInBytes' => array( - 'type' => 'numeric', - ), - 'CompletionTime' => array( - 'type' => 'string', - ), - 'RetrievedTo' => array( - 'type' => 'string', - ), - 'TapeStatus' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DescribeTapeRecoveryPointsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'TapeRecoveryPointInfos' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'TapeRecoveryPointInfo', - 'type' => 'object', - 'properties' => array( - 'TapeARN' => array( - 'type' => 'string', - ), - 'TapeRecoveryPointTime' => array( - 'type' => 'string', - ), - 'TapeSizeInBytes' => array( - 'type' => 'numeric', - ), - 'TapeStatus' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DescribeTapesOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Tapes' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Tape', - 'type' => 'object', - 'properties' => array( - 'TapeARN' => array( - 'type' => 'string', - ), - 'TapeBarcode' => array( - 'type' => 'string', - ), - 'TapeSizeInBytes' => array( - 'type' => 'numeric', - ), - 'TapeStatus' => array( - 'type' => 'string', - ), - 'VTLDevice' => array( - 'type' => 'string', - ), - 'Progress' => array( - 'type' => 'numeric', - ), - ), - ), - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DescribeUploadBufferOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'DiskIds' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'DiskId', - 'type' => 'string', - ), - ), - 'UploadBufferUsedInBytes' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'UploadBufferAllocatedInBytes' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - ), - ), - 'DescribeVTLDevicesOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'VTLDevices' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'VTLDevice', - 'type' => 'object', - 'properties' => array( - 'VTLDeviceARN' => array( - 'type' => 'string', - ), - 'VTLDeviceType' => array( - 'type' => 'string', - ), - 'VTLDeviceVendor' => array( - 'type' => 'string', - ), - 'VTLDeviceProductIdentifier' => array( - 'type' => 'string', - ), - 'DeviceiSCSIAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'TargetARN' => array( - 'type' => 'string', - ), - 'NetworkInterfaceId' => array( - 'type' => 'string', - ), - 'NetworkInterfacePort' => array( - 'type' => 'numeric', - ), - 'ChapEnabled' => array( - 'type' => 'boolean', - ), - ), - ), - ), - ), - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DescribeWorkingStorageOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'DiskIds' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'DiskId', - 'type' => 'string', - ), - ), - 'WorkingStorageUsedInBytes' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'WorkingStorageAllocatedInBytes' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - ), - ), - 'DisableGatewayOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'ListGatewaysOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Gateways' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'GatewayInfo', - 'type' => 'object', - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - ), - 'GatewayType' => array( - 'type' => 'string', - ), - 'GatewayOperationalState' => array( - 'type' => 'string', - ), - ), - ), - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'ListLocalDisksOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Disks' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Disk', - 'type' => 'object', - 'properties' => array( - 'DiskId' => array( - 'type' => 'string', - ), - 'DiskPath' => array( - 'type' => 'string', - ), - 'DiskNode' => array( - 'type' => 'string', - ), - 'DiskStatus' => array( - 'type' => 'string', - ), - 'DiskSizeInBytes' => array( - 'type' => 'numeric', - ), - 'DiskAllocationType' => array( - 'type' => 'string', - ), - 'DiskAllocationResource' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'ListVolumeInitiatorsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Initiators' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Initiator', - 'type' => 'string', - ), - ), - ), - ), - 'ListVolumeRecoveryPointsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'VolumeRecoveryPointInfos' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'VolumeRecoveryPointInfo', - 'type' => 'object', - 'properties' => array( - 'VolumeARN' => array( - 'type' => 'string', - ), - 'VolumeSizeInBytes' => array( - 'type' => 'numeric', - ), - 'VolumeUsageInBytes' => array( - 'type' => 'numeric', - ), - 'VolumeRecoveryPointTime' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'ListVolumesOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'Marker' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'VolumeInfos' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'VolumeInfo', - 'type' => 'object', - 'properties' => array( - 'VolumeARN' => array( - 'type' => 'string', - ), - 'VolumeType' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'ResetCacheOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'RetrieveTapeArchiveOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TapeARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'RetrieveTapeRecoveryPointOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TapeARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'ShutdownGatewayOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'StartGatewayOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'UpdateBandwidthRateLimitOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'UpdateChapCredentialsOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'TargetARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'InitiatorName' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'UpdateGatewayInformationOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'UpdateGatewaySoftwareNowOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'UpdateMaintenanceStartTimeOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'GatewayARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'UpdateSnapshotScheduleOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'VolumeARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'UpdateVTLDeviceTypeOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'VTLDeviceARN' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - ), - 'iterators' => array( - '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/lib/aws-sdk/Aws/StorageGateway/StorageGatewayClient.php b/lib/aws-sdk/Aws/StorageGateway/StorageGatewayClient.php index 475f046..888b08d 100644 --- a/lib/aws-sdk/Aws/StorageGateway/StorageGatewayClient.php +++ b/lib/aws-sdk/Aws/StorageGateway/StorageGatewayClient.php @@ -1,117 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/storagegateway-%s.php' - )) - ->setExceptionParser(new JsonQueryExceptionParser()) - ->build(); - } -} +class StorageGatewayClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/Sts/Exception/ExpiredTokenException.php b/lib/aws-sdk/Aws/Sts/Exception/ExpiredTokenException.php deleted file mode 100644 index 50a5d99..0000000 --- a/lib/aws-sdk/Aws/Sts/Exception/ExpiredTokenException.php +++ /dev/null @@ -1,22 +0,0 @@ - '2011-06-15', - 'endpointPrefix' => 'sts', - 'serviceFullName' => 'AWS Security Token Service', - 'serviceAbbreviation' => 'AWS STS', - 'serviceType' => 'query', - 'globalEndpoint' => 'sts.amazonaws.com', - 'resultWrapped' => true, - 'signatureVersion' => 'v4', - 'namespace' => 'Sts', - 'regions' => array( - 'us-east-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'sts.amazonaws.com', - ), - 'us-west-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'sts.amazonaws.com', - ), - 'us-west-2' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'sts.amazonaws.com', - ), - 'eu-west-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'sts.amazonaws.com', - ), - 'ap-northeast-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'sts.amazonaws.com', - ), - 'ap-southeast-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'sts.amazonaws.com', - ), - 'ap-southeast-2' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'sts.amazonaws.com', - ), - 'sa-east-1' => array( - 'http' => false, - '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, - 'hostname' => 'sts.us-gov-west-1.amazonaws.com', - ), - ), - 'operations' => array( - 'AssumeRole' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'AssumeRoleResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'AssumeRole', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-06-15', - ), - 'RoleArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 20, - 'maxLength' => 2048, - ), - 'RoleSessionName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 2, - 'maxLength' => 32, - ), - 'Policy' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 2048, - ), - 'DurationSeconds' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 900, - 'maximum' => 3600, - ), - 'ExternalId' => array( - 'type' => 'string', - 'location' => 'aws.query', - '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( - '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 the policy document was too large. The error message describes how big the policy document is, in packed form, as a percentage of what the API allows.', - 'class' => 'PackedPolicyTooLargeException', - ), - ), - ), - 'AssumeRoleWithSAML' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'AssumeRoleWithSAMLResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'AssumeRoleWithSAML', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-06-15', - ), - 'RoleArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 20, - 'maxLength' => 2048, - ), - 'PrincipalArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 20, - 'maxLength' => 2048, - ), - 'SAMLAssertion' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 4, - 'maxLength' => 50000, - ), - 'Policy' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 2048, - ), - 'DurationSeconds' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 900, - 'maximum' => 129600, - ), - ), - 'errorResponses' => array( - 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 the policy document was too large. The error message describes how big the policy document is, in packed form, as a percentage of what the API allows.', - 'class' => 'PackedPolicyTooLargeException', - ), - array( - 'reason' => 'The identity provider (IdP) reported that authentication failed. This might be because the claim is invalid. If this error is returned for the AssumeRoleWithWebIdentity operation, it can also mean that the claim has expired or has been explicitly revoked.', - 'class' => 'IDPRejectedClaimException', - ), - array( - 'reason' => 'The web identity token that was passed could not be validated by AWS. Get a new identity token from the identity provider and then retry the request.', - 'class' => 'InvalidIdentityTokenException', - ), - array( - 'reason' => 'The web identity token that was passed is expired or is not valid. Get a new identity token from the identity provider and then retry the request.', - 'class' => 'ExpiredTokenException', - ), - ), - ), - 'AssumeRoleWithWebIdentity' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'AssumeRoleWithWebIdentityResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'AssumeRoleWithWebIdentity', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-06-15', - ), - 'RoleArn' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 20, - 'maxLength' => 2048, - ), - 'RoleSessionName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 2, - 'maxLength' => 32, - ), - 'WebIdentityToken' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 4, - 'maxLength' => 2048, - ), - 'ProviderId' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 4, - 'maxLength' => 2048, - ), - 'Policy' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 2048, - ), - 'DurationSeconds' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 900, - 'maximum' => 129600, - ), - ), - 'errorResponses' => array( - 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 the policy document was too large. The error message describes how big the policy document is, in packed form, as a percentage of what the API allows.', - 'class' => 'PackedPolicyTooLargeException', - ), - array( - 'reason' => 'The identity provider (IdP) reported that authentication failed. This might be because the claim is invalid. If this error is returned for the AssumeRoleWithWebIdentity operation, it can also mean that the claim has expired or has been explicitly revoked.', - 'class' => 'IDPRejectedClaimException', - ), - array( - 'reason' => 'The request could not be fulfilled because the non-AWS identity provider (IDP) that was asked to verify the incoming identity token could not be reached. This is often a transient error caused by network conditions. Retry the request a limited number of times so that you don\'t exceed the request rate. If the error persists, the non-AWS identity provider might be down or not responding.', - 'class' => 'IDPCommunicationErrorException', - ), - array( - 'reason' => 'The web identity token that was passed could not be validated by AWS. Get a new identity token from the identity provider and then retry the request.', - 'class' => 'InvalidIdentityTokenException', - ), - array( - 'reason' => 'The web identity token that was passed is expired or is not valid. Get a new identity token from the identity provider and then retry the request.', - 'class' => 'ExpiredTokenException', - ), - ), - ), - 'DecodeAuthorizationMessage' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'DecodeAuthorizationMessageResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'DecodeAuthorizationMessage', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-06-15', - ), - 'EncodedMessage' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 10240, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'The error returned if the message passed to DecodeAuthorizationMessage was invalid. This can happen if the token contains invalid characters, such as linebreaks.', - 'class' => 'InvalidAuthorizationMessageException', - ), - ), - ), - 'GetFederationToken' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetFederationTokenResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetFederationToken', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-06-15', - ), - 'Name' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 2, - 'maxLength' => 32, - ), - 'Policy' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 1, - 'maxLength' => 2048, - ), - 'DurationSeconds' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 900, - 'maximum' => 129600, - ), - ), - 'errorResponses' => array( - 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 the policy document was too large. The error message describes how big the policy document is, in packed form, as a percentage of what the API allows.', - 'class' => 'PackedPolicyTooLargeException', - ), - ), - ), - 'GetSessionToken' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\QueryCommand', - 'responseClass' => 'GetSessionTokenResponse', - 'responseType' => 'model', - 'parameters' => array( - 'Action' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => 'GetSessionToken', - ), - 'Version' => array( - 'static' => true, - 'location' => 'aws.query', - 'default' => '2011-06-15', - ), - 'DurationSeconds' => array( - 'type' => 'numeric', - 'location' => 'aws.query', - 'minimum' => 900, - 'maximum' => 129600, - ), - 'SerialNumber' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 9, - 'maxLength' => 256, - ), - 'TokenCode' => array( - 'type' => 'string', - 'location' => 'aws.query', - 'minLength' => 6, - 'maxLength' => 6, - ), - ), - ), - ), - 'models' => array( - 'AssumeRoleResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Credentials' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'AccessKeyId' => array( - 'type' => 'string', - ), - 'SecretAccessKey' => array( - 'type' => 'string', - ), - 'SessionToken' => array( - 'type' => 'string', - ), - 'Expiration' => array( - 'type' => 'string', - ), - ), - ), - 'AssumedRoleUser' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'AssumedRoleId' => array( - 'type' => 'string', - ), - 'Arn' => array( - 'type' => 'string', - ), - ), - ), - 'PackedPolicySize' => array( - 'type' => 'numeric', - 'location' => 'xml', - ), - ), - ), - 'AssumeRoleWithSAMLResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Credentials' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'AccessKeyId' => array( - 'type' => 'string', - ), - 'SecretAccessKey' => array( - 'type' => 'string', - ), - 'SessionToken' => array( - 'type' => 'string', - ), - 'Expiration' => array( - 'type' => 'string', - ), - ), - ), - 'AssumedRoleUser' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'AssumedRoleId' => array( - 'type' => 'string', - ), - 'Arn' => array( - 'type' => 'string', - ), - ), - ), - 'PackedPolicySize' => 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( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Credentials' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'AccessKeyId' => array( - 'type' => 'string', - ), - 'SecretAccessKey' => array( - 'type' => 'string', - ), - 'SessionToken' => array( - 'type' => 'string', - ), - 'Expiration' => array( - 'type' => 'string', - ), - ), - ), - 'SubjectFromWebIdentityToken' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'AssumedRoleUser' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'AssumedRoleId' => array( - 'type' => 'string', - ), - 'Arn' => array( - 'type' => 'string', - ), - ), - ), - 'PackedPolicySize' => array( - 'type' => 'numeric', - 'location' => 'xml', - ), - 'Provider' => array( - 'type' => 'string', - 'location' => 'xml', - ), - 'Audience' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'DecodeAuthorizationMessageResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'DecodedMessage' => array( - 'type' => 'string', - 'location' => 'xml', - ), - ), - ), - 'GetFederationTokenResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Credentials' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'AccessKeyId' => array( - 'type' => 'string', - ), - 'SecretAccessKey' => array( - 'type' => 'string', - ), - 'SessionToken' => array( - 'type' => 'string', - ), - 'Expiration' => array( - 'type' => 'string', - ), - ), - ), - 'FederatedUser' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'FederatedUserId' => array( - 'type' => 'string', - ), - 'Arn' => array( - 'type' => 'string', - ), - ), - ), - 'PackedPolicySize' => array( - 'type' => 'numeric', - 'location' => 'xml', - ), - ), - ), - 'GetSessionTokenResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'Credentials' => array( - 'type' => 'object', - 'location' => 'xml', - 'properties' => array( - 'AccessKeyId' => array( - 'type' => 'string', - ), - 'SecretAccessKey' => array( - 'type' => 'string', - ), - 'SessionToken' => array( - 'type' => 'string', - ), - 'Expiration' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), -); diff --git a/lib/aws-sdk/Aws/Sts/StsClient.php b/lib/aws-sdk/Aws/Sts/StsClient.php index c23b6d2..4039280 100644 --- a/lib/aws-sdk/Aws/Sts/StsClient.php +++ b/lib/aws-sdk/Aws/Sts/StsClient.php @@ -1,115 +1,36 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/sts-%s.php' - )) - ->build(); - - // Attach a listener to prevent AssumeRoleWithWebIdentity requests from being signed - $client->getEventDispatcher()->addListener('command.before_send', function(Event $event) { - /** @var AbstractCommand $command */ - $command = $event['command']; - if ($command->getName() === 'AssumeRoleWithWebIdentity' - || $command->getName() === 'AssumeRoleWithSAML' - ) { - /** @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; - } - /** - * Creates a credentials object from the credential data return by an STS operation + * Creates credentials from the result of an STS operations * - * @param Model $result The result of an STS operation + * @param Result $result Result of an STS operation * * @return Credentials - * @throws InvalidArgumentException if the result does not contain credential data + * @throws \InvalidArgumentException if the result contains no credentials */ - public function createCredentials(Model $result) + public function createCredentials(Result $result) { if (!$result->hasKey('Credentials')) { - throw new InvalidArgumentException('The modeled result provided contained no credentials.'); + throw new \InvalidArgumentException('Result contains no credentials'); } + $c = $result['Credentials']; + return new Credentials( - $result->getPath('Credentials/AccessKeyId'), - $result->getPath('Credentials/SecretAccessKey'), - $result->getPath('Credentials/SessionToken'), - $result->getPath('Credentials/Expiration') + $c['AccessKeyId'], + $c['SecretAccessKey'], + isset($c['SessionToken']) ? $c['SessionToken'] : null, + isset($c['Expiration']) ? $c['Expiration'] : null ); } } diff --git a/lib/aws-sdk/Aws/Support/Exception/CaseCreationLimitExceededException.php b/lib/aws-sdk/Aws/Support/Exception/CaseCreationLimitExceededException.php deleted file mode 100644 index 9eaa3c6..0000000 --- a/lib/aws-sdk/Aws/Support/Exception/CaseCreationLimitExceededException.php +++ /dev/null @@ -1,22 +0,0 @@ - '2013-04-15', - 'endpointPrefix' => 'support', - 'serviceFullName' => 'AWS Support', - 'serviceType' => 'json', - 'jsonVersion' => '1.1', - 'targetPrefix' => 'AWSSupport_20130415.', - 'signatureVersion' => 'v4', - 'namespace' => 'Support', - 'regions' => array( - 'us-east-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'support.us-east-1.amazonaws.com', - ), - ), - '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' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'AddCommunicationToCaseResponse', - '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.AddCommunicationToCase', - ), - 'caseId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'communicationBody' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 8000, - ), - 'ccEmailAddresses' => array( - 'type' => 'array', - 'location' => 'json', - 'maxItems' => 10, - 'items' => array( - 'name' => 'CcEmailAddress', - 'type' => 'string', - ), - ), - 'attachmentSetId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'An internal server error occurred.', - 'class' => 'InternalServerErrorException', - ), - array( - '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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'CreateCaseResponse', - '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.CreateCase', - ), - 'subject' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'serviceCode' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'severityCode' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'categoryCode' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'communicationBody' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 8000, - ), - 'ccEmailAddresses' => array( - 'type' => 'array', - 'location' => 'json', - 'maxItems' => 10, - 'items' => array( - 'name' => 'CcEmailAddress', - 'type' => 'string', - ), - ), - 'language' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'issueType' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'attachmentSetId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'An internal server error occurred.', - 'class' => 'InternalServerErrorException', - ), - array( - '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( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeCasesResponse', - '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.DescribeCases', - ), - 'caseIdList' => array( - 'type' => 'array', - 'location' => 'json', - 'maxItems' => 100, - 'items' => array( - 'name' => 'CaseId', - 'type' => 'string', - ), - ), - 'displayId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'afterTime' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'beforeTime' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'includeResolvedCases' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'nextToken' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'maxResults' => array( - 'type' => 'numeric', - 'location' => 'json', - 'minimum' => 10, - 'maximum' => 100, - ), - 'language' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'includeCommunications' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'An internal server error occurred.', - 'class' => 'InternalServerErrorException', - ), - array( - 'reason' => 'The requested CaseId could not be located.', - 'class' => 'CaseIdNotFoundException', - ), - ), - ), - 'DescribeCommunications' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeCommunicationsResponse', - '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.DescribeCommunications', - ), - 'caseId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'beforeTime' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'afterTime' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'nextToken' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'maxResults' => array( - 'type' => 'numeric', - 'location' => 'json', - 'minimum' => 10, - 'maximum' => 100, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'An internal server error occurred.', - 'class' => 'InternalServerErrorException', - ), - array( - 'reason' => 'The requested CaseId could not be located.', - 'class' => 'CaseIdNotFoundException', - ), - ), - ), - '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' => 'AWSSupport_20130415.DescribeServices', - ), - 'serviceCodeList' => array( - 'type' => 'array', - 'location' => 'json', - 'maxItems' => 100, - 'items' => array( - 'name' => 'ServiceCode', - 'type' => 'string', - ), - ), - 'language' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'An internal server error occurred.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - 'DescribeSeverityLevels' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeSeverityLevelsResponse', - '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.DescribeSeverityLevels', - ), - 'language' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'An internal server error occurred.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - 'DescribeTrustedAdvisorCheckRefreshStatuses' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeTrustedAdvisorCheckRefreshStatusesResponse', - '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.DescribeTrustedAdvisorCheckRefreshStatuses', - ), - 'checkIds' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'An internal server error occurred.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - 'DescribeTrustedAdvisorCheckResult' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeTrustedAdvisorCheckResultResponse', - '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.DescribeTrustedAdvisorCheckResult', - ), - 'checkId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'language' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'An internal server error occurred.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - 'DescribeTrustedAdvisorCheckSummaries' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeTrustedAdvisorCheckSummariesResponse', - '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.DescribeTrustedAdvisorCheckSummaries', - ), - 'checkIds' => array( - 'required' => true, - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'An internal server error occurred.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - 'DescribeTrustedAdvisorChecks' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DescribeTrustedAdvisorChecksResponse', - '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.DescribeTrustedAdvisorChecks', - ), - 'language' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'An internal server error occurred.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - 'RefreshTrustedAdvisorCheck' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'RefreshTrustedAdvisorCheckResponse', - '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.RefreshTrustedAdvisorCheck', - ), - 'checkId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'An internal server error occurred.', - 'class' => 'InternalServerErrorException', - ), - ), - ), - 'ResolveCase' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ResolveCaseResponse', - '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.ResolveCase', - ), - 'caseId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'An internal server error occurred.', - 'class' => 'InternalServerErrorException', - ), - array( - '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, - 'properties' => array( - 'result' => array( - 'type' => 'boolean', - 'location' => 'json', - ), - ), - ), - 'CreateCaseResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'caseId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - '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, - 'properties' => array( - 'cases' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'CaseDetails', - 'type' => 'object', - 'properties' => array( - 'caseId' => array( - 'type' => 'string', - ), - 'displayId' => array( - 'type' => 'string', - ), - 'subject' => array( - 'type' => 'string', - ), - 'status' => array( - 'type' => 'string', - ), - 'serviceCode' => array( - 'type' => 'string', - ), - 'categoryCode' => array( - 'type' => 'string', - ), - 'severityCode' => array( - 'type' => 'string', - ), - 'submittedBy' => array( - 'type' => 'string', - ), - 'timeCreated' => array( - 'type' => 'string', - ), - 'recentCommunications' => array( - 'type' => 'object', - 'properties' => array( - 'communications' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Communication', - 'type' => 'object', - 'properties' => array( - 'caseId' => array( - 'type' => 'string', - ), - 'body' => array( - 'type' => 'string', - ), - 'submittedBy' => array( - 'type' => 'string', - ), - 'timeCreated' => array( - 'type' => 'string', - ), - 'attachmentSet' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AttachmentDetails', - 'type' => 'object', - 'properties' => array( - 'attachmentId' => array( - 'type' => 'string', - ), - 'fileName' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'nextToken' => array( - 'type' => 'string', - ), - ), - ), - 'ccEmailAddresses' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'CcEmailAddress', - 'type' => 'string', - ), - ), - 'language' => array( - 'type' => 'string', - ), - ), - ), - ), - 'nextToken' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DescribeCommunicationsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'communications' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Communication', - 'type' => 'object', - 'properties' => array( - 'caseId' => array( - 'type' => 'string', - ), - 'body' => array( - 'type' => 'string', - ), - 'submittedBy' => array( - 'type' => 'string', - ), - 'timeCreated' => array( - 'type' => 'string', - ), - 'attachmentSet' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'AttachmentDetails', - 'type' => 'object', - 'properties' => array( - 'attachmentId' => array( - 'type' => 'string', - ), - 'fileName' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'nextToken' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DescribeServicesResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'services' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Service', - 'type' => 'object', - 'properties' => array( - 'code' => array( - 'type' => 'string', - ), - 'name' => array( - 'type' => 'string', - ), - 'categories' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Category', - 'type' => 'object', - 'properties' => array( - 'code' => array( - 'type' => 'string', - ), - 'name' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'DescribeSeverityLevelsResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'severityLevels' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'SeverityLevel', - 'type' => 'object', - 'properties' => array( - 'code' => array( - 'type' => 'string', - ), - 'name' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'DescribeTrustedAdvisorCheckRefreshStatusesResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'statuses' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'TrustedAdvisorCheckRefreshStatus', - 'type' => 'object', - 'properties' => array( - 'checkId' => array( - 'type' => 'string', - ), - 'status' => array( - 'type' => 'string', - ), - 'millisUntilNextRefreshable' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - 'DescribeTrustedAdvisorCheckResultResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'result' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'checkId' => array( - 'type' => 'string', - ), - 'timestamp' => array( - 'type' => 'string', - ), - 'status' => array( - 'type' => 'string', - ), - 'resourcesSummary' => array( - 'type' => 'object', - 'properties' => array( - 'resourcesProcessed' => array( - 'type' => 'numeric', - ), - 'resourcesFlagged' => array( - 'type' => 'numeric', - ), - 'resourcesIgnored' => array( - 'type' => 'numeric', - ), - 'resourcesSuppressed' => array( - 'type' => 'numeric', - ), - ), - ), - 'categorySpecificSummary' => array( - 'type' => 'object', - 'properties' => array( - 'costOptimizing' => array( - 'type' => 'object', - 'properties' => array( - 'estimatedMonthlySavings' => array( - 'type' => 'numeric', - ), - 'estimatedPercentMonthlySavings' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - 'flaggedResources' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'TrustedAdvisorResourceDetail', - 'type' => 'object', - 'properties' => array( - 'status' => array( - 'type' => 'string', - ), - 'region' => array( - 'type' => 'string', - ), - 'resourceId' => array( - 'type' => 'string', - ), - 'isSuppressed' => array( - 'type' => 'boolean', - ), - 'metadata' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'DescribeTrustedAdvisorCheckSummariesResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'summaries' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'TrustedAdvisorCheckSummary', - 'type' => 'object', - 'properties' => array( - 'checkId' => array( - 'type' => 'string', - ), - 'timestamp' => array( - 'type' => 'string', - ), - 'status' => array( - 'type' => 'string', - ), - 'hasFlaggedResources' => array( - 'type' => 'boolean', - ), - 'resourcesSummary' => array( - 'type' => 'object', - 'properties' => array( - 'resourcesProcessed' => array( - 'type' => 'numeric', - ), - 'resourcesFlagged' => array( - 'type' => 'numeric', - ), - 'resourcesIgnored' => array( - 'type' => 'numeric', - ), - 'resourcesSuppressed' => array( - 'type' => 'numeric', - ), - ), - ), - 'categorySpecificSummary' => array( - 'type' => 'object', - 'properties' => array( - 'costOptimizing' => array( - 'type' => 'object', - 'properties' => array( - 'estimatedMonthlySavings' => array( - 'type' => 'numeric', - ), - 'estimatedPercentMonthlySavings' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - ), - ), - ), - ), - ), - 'DescribeTrustedAdvisorChecksResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'checks' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'TrustedAdvisorCheckDescription', - 'type' => 'object', - 'properties' => array( - 'id' => array( - 'type' => 'string', - ), - 'name' => array( - 'type' => 'string', - ), - 'description' => array( - 'type' => 'string', - ), - 'category' => array( - 'type' => 'string', - ), - 'metadata' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'String', - 'type' => 'string', - ), - ), - ), - ), - ), - ), - ), - 'RefreshTrustedAdvisorCheckResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'status' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'checkId' => array( - 'type' => 'string', - ), - 'status' => array( - 'type' => 'string', - ), - 'millisUntilNextRefreshable' => array( - 'type' => 'numeric', - ), - ), - ), - ), - ), - 'ResolveCaseResponse' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'initialCaseStatus' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'finalCaseStatus' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - ), - 'iterators' => array( - '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/lib/aws-sdk/Aws/Support/SupportClient.php b/lib/aws-sdk/Aws/Support/SupportClient.php index 18b4a0b..ea4bb9b 100644 --- a/lib/aws-sdk/Aws/Support/SupportClient.php +++ b/lib/aws-sdk/Aws/Support/SupportClient.php @@ -1,78 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/support-%s.php' - )) - ->setExceptionParser(new JsonQueryExceptionParser()) - ->build(); - } -} +class SupportClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/Swf/Enum/ActivityTaskTimeoutType.php b/lib/aws-sdk/Aws/Swf/Enum/ActivityTaskTimeoutType.php deleted file mode 100644 index c3a591f..0000000 --- a/lib/aws-sdk/Aws/Swf/Enum/ActivityTaskTimeoutType.php +++ /dev/null @@ -1,30 +0,0 @@ - '2012-01-25', - 'endpointPrefix' => 'swf', - 'serviceFullName' => 'Amazon Simple Workflow Service', - 'serviceAbbreviation' => 'Amazon SWF', - 'serviceType' => 'json', - 'jsonVersion' => '1.0', - 'targetPrefix' => 'SimpleWorkflowService.', - 'timestampFormat' => 'unixTimestamp', - 'signatureVersion' => 'v4', - 'namespace' => 'Swf', - 'regions' => array( - 'us-east-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'swf.us-east-1.amazonaws.com', - ), - 'us-west-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'swf.us-west-1.amazonaws.com', - ), - 'us-west-2' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'swf.us-west-2.amazonaws.com', - ), - 'eu-west-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'swf.eu-west-1.amazonaws.com', - ), - 'ap-northeast-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'swf.ap-northeast-1.amazonaws.com', - ), - 'ap-southeast-1' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'swf.ap-southeast-1.amazonaws.com', - ), - 'ap-southeast-2' => array( - 'http' => false, - 'https' => true, - 'hostname' => 'swf.ap-southeast-2.amazonaws.com', - ), - 'sa-east-1' => array( - 'http' => false, - '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, - 'hostname' => 'swf.us-gov-west-1.amazonaws.com', - ), - ), - 'operations' => array( - 'CountClosedWorkflowExecutions' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'WorkflowExecutionCount', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.CountClosedWorkflowExecutions', - ), - 'domain' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'startTimeFilter' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'oldestDate' => array( - 'required' => true, - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'timestamp', - ), - 'latestDate' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'timestamp', - ), - ), - ), - 'closeTimeFilter' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'oldestDate' => array( - 'required' => true, - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'timestamp', - ), - 'latestDate' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'timestamp', - ), - ), - ), - 'executionFilter' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'workflowId' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - ), - 'typeFilter' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'version' => array( - 'type' => 'string', - 'maxLength' => 64, - ), - ), - ), - 'tagFilter' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'tag' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - ), - 'closeStatusFilter' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'status' => array( - 'required' => true, - 'type' => 'string', - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'CountOpenWorkflowExecutions' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'WorkflowExecutionCount', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.CountOpenWorkflowExecutions', - ), - 'domain' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'startTimeFilter' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'oldestDate' => array( - 'required' => true, - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'timestamp', - ), - 'latestDate' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'timestamp', - ), - ), - ), - 'typeFilter' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'version' => array( - 'type' => 'string', - 'maxLength' => 64, - ), - ), - ), - 'tagFilter' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'tag' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - ), - 'executionFilter' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'workflowId' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'CountPendingActivityTasks' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'PendingTaskCount', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.CountPendingActivityTasks', - ), - 'domain' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'taskList' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'CountPendingDecisionTasks' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'PendingTaskCount', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.CountPendingDecisionTasks', - ), - 'domain' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'taskList' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'DeprecateActivityType' => 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.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.DeprecateActivityType', - ), - 'domain' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'activityType' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'version' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 64, - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the specified activity or workflow type was already deprecated.', - 'class' => 'TypeDeprecatedException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'DeprecateDomain' => 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.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.DeprecateDomain', - ), - 'name' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the specified domain has been deprecated.', - 'class' => 'DomainDeprecatedException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'DeprecateWorkflowType' => 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.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.DeprecateWorkflowType', - ), - 'domain' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'workflowType' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'version' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 64, - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the specified activity or workflow type was already deprecated.', - 'class' => 'TypeDeprecatedException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'DescribeActivityType' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ActivityTypeDetail', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.DescribeActivityType', - ), - 'domain' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'activityType' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'version' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 64, - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'DescribeDomain' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DomainDetail', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.DescribeDomain', - ), - 'name' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'DescribeWorkflowExecution' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'WorkflowExecutionDetail', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.DescribeWorkflowExecution', - ), - 'domain' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'execution' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'workflowId' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'runId' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 64, - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'DescribeWorkflowType' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'WorkflowTypeDetail', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.DescribeWorkflowType', - ), - 'domain' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'workflowType' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'version' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 64, - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'GetWorkflowExecutionHistory' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'History', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.GetWorkflowExecutionHistory', - ), - 'domain' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'execution' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'workflowId' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'runId' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 64, - ), - ), - ), - 'nextPageToken' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 2048, - ), - 'maximumPageSize' => array( - 'type' => 'numeric', - 'location' => 'json', - 'maximum' => 1000, - ), - 'reverseOrder' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'ListActivityTypes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ActivityTypeInfos', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.ListActivityTypes', - ), - 'domain' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'name' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'registrationStatus' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'nextPageToken' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 2048, - ), - 'maximumPageSize' => array( - 'type' => 'numeric', - 'location' => 'json', - 'maximum' => 1000, - ), - 'reverseOrder' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - ), - ), - 'ListClosedWorkflowExecutions' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'WorkflowExecutionInfos', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.ListClosedWorkflowExecutions', - ), - 'domain' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'startTimeFilter' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'oldestDate' => array( - 'required' => true, - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'timestamp', - ), - 'latestDate' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'timestamp', - ), - ), - ), - 'closeTimeFilter' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'oldestDate' => array( - 'required' => true, - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'timestamp', - ), - 'latestDate' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'timestamp', - ), - ), - ), - 'executionFilter' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'workflowId' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - ), - 'closeStatusFilter' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'status' => array( - 'required' => true, - 'type' => 'string', - ), - ), - ), - 'typeFilter' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'version' => array( - 'type' => 'string', - 'maxLength' => 64, - ), - ), - ), - 'tagFilter' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'tag' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - ), - 'nextPageToken' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 2048, - ), - 'maximumPageSize' => array( - 'type' => 'numeric', - 'location' => 'json', - 'maximum' => 1000, - ), - 'reverseOrder' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'ListDomains' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DomainInfos', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.ListDomains', - ), - 'nextPageToken' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 2048, - ), - 'registrationStatus' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'maximumPageSize' => array( - 'type' => 'numeric', - 'location' => 'json', - 'maximum' => 1000, - ), - 'reverseOrder' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'ListOpenWorkflowExecutions' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'WorkflowExecutionInfos', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.ListOpenWorkflowExecutions', - ), - 'domain' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'startTimeFilter' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'oldestDate' => array( - 'required' => true, - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'timestamp', - ), - 'latestDate' => array( - 'type' => array( - 'object', - 'string', - 'integer', - ), - 'format' => 'timestamp', - ), - ), - ), - 'typeFilter' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'version' => array( - 'type' => 'string', - 'maxLength' => 64, - ), - ), - ), - 'tagFilter' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'tag' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - ), - 'nextPageToken' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 2048, - ), - 'maximumPageSize' => array( - 'type' => 'numeric', - 'location' => 'json', - 'maximum' => 1000, - ), - 'reverseOrder' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - 'executionFilter' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'workflowId' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'ListWorkflowTypes' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'WorkflowTypeInfos', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.ListWorkflowTypes', - ), - 'domain' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'name' => array( - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'registrationStatus' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - ), - 'nextPageToken' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 2048, - ), - 'maximumPageSize' => array( - 'type' => 'numeric', - 'location' => 'json', - 'maximum' => 1000, - ), - 'reverseOrder' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - ), - ), - 'PollForActivityTask' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ActivityTask', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.PollForActivityTask', - ), - 'domain' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'taskList' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - ), - 'identity' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 256, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - array( - 'reason' => 'Returned by any operation if a system imposed limitation has been reached. To address this fault you should either clean up unused resources or increase the limit by contacting AWS.', - 'class' => 'LimitExceededException', - ), - ), - ), - 'PollForDecisionTask' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'DecisionTask', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.PollForDecisionTask', - ), - 'domain' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'taskList' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - ), - 'identity' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 256, - ), - 'nextPageToken' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 2048, - ), - 'maximumPageSize' => array( - 'type' => 'numeric', - 'location' => 'json', - 'maximum' => 1000, - ), - 'reverseOrder' => array( - 'type' => 'boolean', - 'format' => 'boolean-string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - array( - 'reason' => 'Returned by any operation if a system imposed limitation has been reached. To address this fault you should either clean up unused resources or increase the limit by contacting AWS.', - 'class' => 'LimitExceededException', - ), - ), - ), - 'RecordActivityTaskHeartbeat' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'ActivityTaskStatus', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.RecordActivityTaskHeartbeat', - ), - 'taskToken' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'details' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 2048, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'RegisterActivityType' => 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.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.RegisterActivityType', - ), - 'domain' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'name' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'version' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 64, - ), - 'description' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 1024, - ), - 'defaultTaskStartToCloseTimeout' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 8, - ), - 'defaultTaskHeartbeatTimeout' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 8, - ), - 'defaultTaskList' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - ), - 'defaultTaskPriority' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 11, - ), - 'defaultTaskScheduleToStartTimeout' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 8, - ), - 'defaultTaskScheduleToCloseTimeout' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 8, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned if the type already exists in the specified domain. You will get this fault even if the existing type is in deprecated status. You can specify another version if the intent is to create a new distinct version of the type.', - 'class' => 'TypeAlreadyExistsException', - ), - array( - 'reason' => 'Returned by any operation if a system imposed limitation has been reached. To address this fault you should either clean up unused resources or increase the limit by contacting AWS.', - 'class' => 'LimitExceededException', - ), - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'RegisterDomain' => 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.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.RegisterDomain', - ), - 'name' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'description' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 1024, - ), - 'workflowExecutionRetentionPeriodInDays' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 8, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned if the specified domain already exists. You will get this fault even if the existing domain is in deprecated status.', - 'class' => 'DomainAlreadyExistsException', - ), - array( - 'reason' => 'Returned by any operation if a system imposed limitation has been reached. To address this fault you should either clean up unused resources or increase the limit by contacting AWS.', - 'class' => 'LimitExceededException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'RegisterWorkflowType' => 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.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.RegisterWorkflowType', - ), - 'domain' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'name' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'version' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 64, - ), - 'description' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 1024, - ), - 'defaultTaskStartToCloseTimeout' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 8, - ), - 'defaultExecutionStartToCloseTimeout' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 8, - ), - 'defaultTaskList' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - ), - 'defaultTaskPriority' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 11, - ), - 'defaultChildPolicy' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned if the type already exists in the specified domain. You will get this fault even if the existing type is in deprecated status. You can specify another version if the intent is to create a new distinct version of the type.', - 'class' => 'TypeAlreadyExistsException', - ), - array( - 'reason' => 'Returned by any operation if a system imposed limitation has been reached. To address this fault you should either clean up unused resources or increase the limit by contacting AWS.', - 'class' => 'LimitExceededException', - ), - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'RequestCancelWorkflowExecution' => 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.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.RequestCancelWorkflowExecution', - ), - 'domain' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'workflowId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'runId' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 64, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'RespondActivityTaskCanceled' => 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.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.RespondActivityTaskCanceled', - ), - 'taskToken' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'details' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 32768, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'RespondActivityTaskCompleted' => 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.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.RespondActivityTaskCompleted', - ), - 'taskToken' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'result' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 32768, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'RespondActivityTaskFailed' => 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.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.RespondActivityTaskFailed', - ), - 'taskToken' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'reason' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 256, - ), - 'details' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 32768, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'RespondDecisionTaskCompleted' => 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.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.RespondDecisionTaskCompleted', - ), - 'taskToken' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 1024, - ), - 'decisions' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'Decision', - 'type' => 'object', - 'properties' => array( - 'decisionType' => array( - 'required' => true, - 'type' => 'string', - ), - 'scheduleActivityTaskDecisionAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'activityType' => array( - 'required' => true, - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'version' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 64, - ), - ), - ), - 'activityId' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'control' => array( - 'type' => 'string', - 'maxLength' => 32768, - ), - 'input' => array( - 'type' => 'string', - 'maxLength' => 32768, - ), - 'scheduleToCloseTimeout' => array( - 'type' => 'string', - 'maxLength' => 8, - ), - 'taskList' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - ), - 'taskPriority' => array( - 'type' => 'string', - 'maxLength' => 11, - ), - 'scheduleToStartTimeout' => array( - 'type' => 'string', - 'maxLength' => 8, - ), - 'startToCloseTimeout' => array( - 'type' => 'string', - 'maxLength' => 8, - ), - 'heartbeatTimeout' => array( - 'type' => 'string', - 'maxLength' => 8, - ), - ), - ), - 'requestCancelActivityTaskDecisionAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'activityId' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - ), - 'completeWorkflowExecutionDecisionAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'result' => array( - 'type' => 'string', - 'maxLength' => 32768, - ), - ), - ), - 'failWorkflowExecutionDecisionAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'reason' => array( - 'type' => 'string', - 'maxLength' => 256, - ), - 'details' => array( - 'type' => 'string', - 'maxLength' => 32768, - ), - ), - ), - 'cancelWorkflowExecutionDecisionAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'details' => array( - 'type' => 'string', - 'maxLength' => 32768, - ), - ), - ), - 'continueAsNewWorkflowExecutionDecisionAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'input' => array( - 'type' => 'string', - 'maxLength' => 32768, - ), - 'executionStartToCloseTimeout' => array( - 'type' => 'string', - 'maxLength' => 8, - ), - 'taskList' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - ), - 'taskPriority' => array( - 'type' => 'string', - 'maxLength' => 11, - ), - 'taskStartToCloseTimeout' => array( - 'type' => 'string', - 'maxLength' => 8, - ), - 'childPolicy' => array( - 'type' => 'string', - ), - 'tagList' => array( - 'type' => 'array', - 'maxItems' => 5, - 'items' => array( - 'name' => 'Tag', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - 'workflowTypeVersion' => array( - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 64, - ), - ), - ), - 'recordMarkerDecisionAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'markerName' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'details' => array( - 'type' => 'string', - 'maxLength' => 32768, - ), - ), - ), - 'startTimerDecisionAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'timerId' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'control' => array( - 'type' => 'string', - 'maxLength' => 32768, - ), - 'startToFireTimeout' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 8, - ), - ), - ), - 'cancelTimerDecisionAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'timerId' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - ), - 'signalExternalWorkflowExecutionDecisionAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'runId' => array( - 'type' => 'string', - 'maxLength' => 64, - ), - 'signalName' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'input' => array( - 'type' => 'string', - 'maxLength' => 32768, - ), - 'control' => array( - 'type' => 'string', - 'maxLength' => 32768, - ), - ), - ), - 'requestCancelExternalWorkflowExecutionDecisionAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'runId' => array( - 'type' => 'string', - 'maxLength' => 64, - ), - 'control' => array( - 'type' => 'string', - 'maxLength' => 32768, - ), - ), - ), - 'startChildWorkflowExecutionDecisionAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowType' => array( - 'required' => true, - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'version' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 64, - ), - ), - ), - 'workflowId' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'control' => array( - 'type' => 'string', - 'maxLength' => 32768, - ), - 'input' => array( - 'type' => 'string', - 'maxLength' => 32768, - ), - 'executionStartToCloseTimeout' => array( - 'type' => 'string', - 'maxLength' => 8, - ), - 'taskList' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - ), - 'taskPriority' => array( - 'type' => 'string', - 'maxLength' => 11, - ), - 'taskStartToCloseTimeout' => array( - 'type' => 'string', - 'maxLength' => 8, - ), - 'childPolicy' => array( - 'type' => 'string', - ), - 'tagList' => array( - 'type' => 'array', - 'maxItems' => 5, - 'items' => array( - 'name' => 'Tag', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - ), - ), - ), - ), - ), - 'executionContext' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 32768, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'SignalWorkflowExecution' => 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.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.SignalWorkflowExecution', - ), - 'domain' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'workflowId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'runId' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 64, - ), - 'signalName' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'input' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 32768, - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - 'StartWorkflowExecution' => array( - 'httpMethod' => 'POST', - 'uri' => '/', - 'class' => 'Aws\\Common\\Command\\JsonCommand', - 'responseClass' => 'Run', - 'responseType' => 'model', - 'parameters' => array( - 'Content-Type' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'application/x-amz-json-1.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.StartWorkflowExecution', - ), - 'domain' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'workflowId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'workflowType' => array( - 'required' => true, - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'version' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 64, - ), - ), - ), - 'taskList' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'name' => array( - 'required' => true, - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - ), - 'taskPriority' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 11, - ), - 'input' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 32768, - ), - 'executionStartToCloseTimeout' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 8, - ), - 'tagList' => array( - 'type' => 'array', - 'location' => 'json', - 'maxItems' => 5, - 'items' => array( - 'name' => 'Tag', - 'type' => 'string', - 'minLength' => 1, - 'maxLength' => 256, - ), - ), - 'taskStartToCloseTimeout' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 8, - ), - 'childPolicy' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the specified activity or workflow type was already deprecated.', - 'class' => 'TypeDeprecatedException', - ), - array( - 'reason' => 'Returned by StartWorkflowExecution when an open execution with the same workflowId is already running in the specified domain.', - 'class' => 'WorkflowExecutionAlreadyStartedException', - ), - array( - 'reason' => 'Returned by any operation if a system imposed limitation has been reached. To address this fault you should either clean up unused resources or increase the limit by contacting AWS.', - 'class' => 'LimitExceededException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - array( - 'class' => 'DefaultUndefinedException', - ), - ), - ), - 'TerminateWorkflowExecution' => 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.0', - ), - 'command.expects' => array( - 'static' => true, - 'default' => 'application/json', - ), - 'X-Amz-Target' => array( - 'static' => true, - 'location' => 'header', - 'default' => 'SimpleWorkflowService.TerminateWorkflowExecution', - ), - 'domain' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'workflowId' => array( - 'required' => true, - 'type' => 'string', - 'location' => 'json', - 'minLength' => 1, - 'maxLength' => 256, - ), - 'runId' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 64, - ), - 'reason' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 256, - ), - 'details' => array( - 'type' => 'string', - 'location' => 'json', - 'maxLength' => 32768, - ), - 'childPolicy' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - 'errorResponses' => array( - array( - 'reason' => 'Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.', - 'class' => 'UnknownResourceException', - ), - array( - 'reason' => 'Returned when the caller does not have sufficient permissions to invoke the action.', - 'class' => 'OperationNotPermittedException', - ), - ), - ), - ), - 'models' => array( - 'WorkflowExecutionCount' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'count' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'truncated' => array( - 'type' => 'boolean', - 'location' => 'json', - ), - ), - ), - 'PendingTaskCount' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'count' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'truncated' => array( - 'type' => 'boolean', - 'location' => 'json', - ), - ), - ), - 'EmptyOutput' => array( - 'type' => 'object', - 'additionalProperties' => true, - ), - 'ActivityTypeDetail' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'typeInfo' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'activityType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'status' => array( - 'type' => 'string', - ), - 'description' => array( - 'type' => 'string', - ), - 'creationDate' => array( - 'type' => 'string', - ), - 'deprecationDate' => array( - 'type' => 'string', - ), - ), - ), - 'configuration' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'defaultTaskStartToCloseTimeout' => array( - 'type' => 'string', - ), - 'defaultTaskHeartbeatTimeout' => array( - 'type' => 'string', - ), - 'defaultTaskList' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - ), - ), - 'defaultTaskPriority' => array( - 'type' => 'string', - ), - 'defaultTaskScheduleToStartTimeout' => array( - 'type' => 'string', - ), - 'defaultTaskScheduleToCloseTimeout' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'DomainDetail' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'domainInfo' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'status' => array( - 'type' => 'string', - ), - 'description' => array( - 'type' => 'string', - ), - ), - ), - 'configuration' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'workflowExecutionRetentionPeriodInDays' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'WorkflowExecutionDetail' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'executionInfo' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'execution' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'workflowType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'startTimestamp' => array( - 'type' => 'string', - ), - 'closeTimestamp' => array( - 'type' => 'string', - ), - 'executionStatus' => array( - 'type' => 'string', - ), - 'closeStatus' => array( - 'type' => 'string', - ), - 'parent' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'tagList' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Tag', - 'type' => 'string', - ), - ), - 'cancelRequested' => array( - 'type' => 'boolean', - ), - ), - ), - 'executionConfiguration' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'taskStartToCloseTimeout' => array( - 'type' => 'string', - ), - 'executionStartToCloseTimeout' => array( - 'type' => 'string', - ), - 'taskList' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - ), - ), - 'taskPriority' => array( - 'type' => 'string', - ), - 'childPolicy' => array( - 'type' => 'string', - ), - ), - ), - 'openCounts' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'openActivityTasks' => array( - 'type' => 'numeric', - ), - 'openDecisionTasks' => array( - 'type' => 'numeric', - ), - 'openTimers' => array( - 'type' => 'numeric', - ), - 'openChildWorkflowExecutions' => array( - 'type' => 'numeric', - ), - ), - ), - 'latestActivityTaskTimestamp' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'latestExecutionContext' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'WorkflowTypeDetail' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'typeInfo' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'workflowType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'status' => array( - 'type' => 'string', - ), - 'description' => array( - 'type' => 'string', - ), - 'creationDate' => array( - 'type' => 'string', - ), - 'deprecationDate' => array( - 'type' => 'string', - ), - ), - ), - 'configuration' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'defaultTaskStartToCloseTimeout' => array( - 'type' => 'string', - ), - 'defaultExecutionStartToCloseTimeout' => array( - 'type' => 'string', - ), - 'defaultTaskList' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - ), - ), - 'defaultTaskPriority' => array( - 'type' => 'string', - ), - 'defaultChildPolicy' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'History' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'events' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'HistoryEvent', - 'type' => 'object', - 'properties' => array( - 'eventTimestamp' => array( - 'type' => 'string', - ), - 'eventType' => array( - 'type' => 'string', - ), - 'eventId' => array( - 'type' => 'numeric', - ), - 'workflowExecutionStartedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'input' => array( - 'type' => 'string', - ), - 'executionStartToCloseTimeout' => array( - 'type' => 'string', - ), - 'taskStartToCloseTimeout' => array( - 'type' => 'string', - ), - 'childPolicy' => array( - 'type' => 'string', - ), - 'taskList' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - ), - ), - 'workflowType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'tagList' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Tag', - 'type' => 'string', - ), - ), - 'taskPriority' => array( - 'type' => 'string', - ), - 'continuedExecutionRunId' => array( - 'type' => 'string', - ), - 'parentWorkflowExecution' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'parentInitiatedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'workflowExecutionCompletedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'result' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'completeWorkflowExecutionFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'cause' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'workflowExecutionFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'reason' => array( - 'type' => 'string', - ), - 'details' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'failWorkflowExecutionFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'cause' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'workflowExecutionTimedOutEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'timeoutType' => array( - 'type' => 'string', - ), - 'childPolicy' => array( - 'type' => 'string', - ), - ), - ), - 'workflowExecutionCanceledEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'details' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'cancelWorkflowExecutionFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'cause' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'workflowExecutionContinuedAsNewEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'input' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - 'newExecutionRunId' => array( - 'type' => 'string', - ), - 'executionStartToCloseTimeout' => array( - 'type' => 'string', - ), - 'taskList' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - ), - ), - 'taskPriority' => array( - 'type' => 'string', - ), - 'taskStartToCloseTimeout' => array( - 'type' => 'string', - ), - 'childPolicy' => array( - 'type' => 'string', - ), - 'tagList' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Tag', - 'type' => 'string', - ), - ), - 'workflowType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'continueAsNewWorkflowExecutionFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'cause' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'workflowExecutionTerminatedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'reason' => array( - 'type' => 'string', - ), - 'details' => array( - 'type' => 'string', - ), - 'childPolicy' => array( - 'type' => 'string', - ), - 'cause' => array( - 'type' => 'string', - ), - ), - ), - 'workflowExecutionCancelRequestedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'externalWorkflowExecution' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'externalInitiatedEventId' => array( - 'type' => 'numeric', - ), - 'cause' => array( - 'type' => 'string', - ), - ), - ), - 'decisionTaskScheduledEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'taskList' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - ), - ), - 'taskPriority' => array( - 'type' => 'string', - ), - 'startToCloseTimeout' => array( - 'type' => 'string', - ), - ), - ), - 'decisionTaskStartedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'identity' => array( - 'type' => 'string', - ), - 'scheduledEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'decisionTaskCompletedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'executionContext' => array( - 'type' => 'string', - ), - 'scheduledEventId' => array( - 'type' => 'numeric', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'decisionTaskTimedOutEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'timeoutType' => array( - 'type' => 'string', - ), - 'scheduledEventId' => array( - 'type' => 'numeric', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'activityTaskScheduledEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'activityType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'activityId' => array( - 'type' => 'string', - ), - 'input' => array( - 'type' => 'string', - ), - 'control' => array( - 'type' => 'string', - ), - 'scheduleToStartTimeout' => array( - 'type' => 'string', - ), - 'scheduleToCloseTimeout' => array( - 'type' => 'string', - ), - 'startToCloseTimeout' => array( - 'type' => 'string', - ), - 'taskList' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - ), - ), - 'taskPriority' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - 'heartbeatTimeout' => array( - 'type' => 'string', - ), - ), - ), - 'activityTaskStartedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'identity' => array( - 'type' => 'string', - ), - 'scheduledEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'activityTaskCompletedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'result' => array( - 'type' => 'string', - ), - 'scheduledEventId' => array( - 'type' => 'numeric', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'activityTaskFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'reason' => array( - 'type' => 'string', - ), - 'details' => array( - 'type' => 'string', - ), - 'scheduledEventId' => array( - 'type' => 'numeric', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'activityTaskTimedOutEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'timeoutType' => array( - 'type' => 'string', - ), - 'scheduledEventId' => array( - 'type' => 'numeric', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - 'details' => array( - 'type' => 'string', - ), - ), - ), - 'activityTaskCanceledEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'details' => array( - 'type' => 'string', - ), - 'scheduledEventId' => array( - 'type' => 'numeric', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - 'latestCancelRequestedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'activityTaskCancelRequestedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - 'activityId' => array( - 'type' => 'string', - ), - ), - ), - 'workflowExecutionSignaledEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'signalName' => array( - 'type' => 'string', - ), - 'input' => array( - 'type' => 'string', - ), - 'externalWorkflowExecution' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'externalInitiatedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'markerRecordedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'markerName' => array( - 'type' => 'string', - ), - 'details' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'recordMarkerFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'markerName' => array( - 'type' => 'string', - ), - 'cause' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'timerStartedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'timerId' => array( - 'type' => 'string', - ), - 'control' => array( - 'type' => 'string', - ), - 'startToFireTimeout' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'timerFiredEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'timerId' => array( - 'type' => 'string', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'timerCanceledEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'timerId' => array( - 'type' => 'string', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'startChildWorkflowExecutionInitiatedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'workflowType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'control' => array( - 'type' => 'string', - ), - 'input' => array( - 'type' => 'string', - ), - 'executionStartToCloseTimeout' => array( - 'type' => 'string', - ), - 'taskList' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - ), - ), - 'taskPriority' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - 'childPolicy' => array( - 'type' => 'string', - ), - 'taskStartToCloseTimeout' => array( - 'type' => 'string', - ), - 'tagList' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Tag', - 'type' => 'string', - ), - ), - ), - ), - 'childWorkflowExecutionStartedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowExecution' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'workflowType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'initiatedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'childWorkflowExecutionCompletedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowExecution' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'workflowType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'result' => array( - 'type' => 'string', - ), - 'initiatedEventId' => array( - 'type' => 'numeric', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'childWorkflowExecutionFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowExecution' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'workflowType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'reason' => array( - 'type' => 'string', - ), - 'details' => array( - 'type' => 'string', - ), - 'initiatedEventId' => array( - 'type' => 'numeric', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'childWorkflowExecutionTimedOutEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowExecution' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'workflowType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'timeoutType' => array( - 'type' => 'string', - ), - 'initiatedEventId' => array( - 'type' => 'numeric', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'childWorkflowExecutionCanceledEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowExecution' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'workflowType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'details' => array( - 'type' => 'string', - ), - 'initiatedEventId' => array( - 'type' => 'numeric', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'childWorkflowExecutionTerminatedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowExecution' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'workflowType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'initiatedEventId' => array( - 'type' => 'numeric', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'signalExternalWorkflowExecutionInitiatedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - 'signalName' => array( - 'type' => 'string', - ), - 'input' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - 'control' => array( - 'type' => 'string', - ), - ), - ), - 'externalWorkflowExecutionSignaledEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowExecution' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'initiatedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'signalExternalWorkflowExecutionFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - 'cause' => array( - 'type' => 'string', - ), - 'initiatedEventId' => array( - 'type' => 'numeric', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - 'control' => array( - 'type' => 'string', - ), - ), - ), - 'externalWorkflowExecutionCancelRequestedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowExecution' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'initiatedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'requestCancelExternalWorkflowExecutionInitiatedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - 'control' => array( - 'type' => 'string', - ), - ), - ), - 'requestCancelExternalWorkflowExecutionFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - 'cause' => array( - 'type' => 'string', - ), - 'initiatedEventId' => array( - 'type' => 'numeric', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - 'control' => array( - 'type' => 'string', - ), - ), - ), - 'scheduleActivityTaskFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'activityType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'activityId' => array( - 'type' => 'string', - ), - 'cause' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'requestCancelActivityTaskFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'activityId' => array( - 'type' => 'string', - ), - 'cause' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'startTimerFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'timerId' => array( - 'type' => 'string', - ), - 'cause' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'cancelTimerFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'timerId' => array( - 'type' => 'string', - ), - 'cause' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'startChildWorkflowExecutionFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'cause' => array( - 'type' => 'string', - ), - 'workflowId' => array( - 'type' => 'string', - ), - 'initiatedEventId' => array( - 'type' => 'numeric', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - 'control' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'nextPageToken' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'ActivityTypeInfos' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'typeInfos' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'ActivityTypeInfo', - 'type' => 'object', - 'properties' => array( - 'activityType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'status' => array( - 'type' => 'string', - ), - 'description' => array( - 'type' => 'string', - ), - 'creationDate' => array( - 'type' => 'string', - ), - 'deprecationDate' => array( - 'type' => 'string', - ), - ), - ), - ), - 'nextPageToken' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'WorkflowExecutionInfos' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'executionInfos' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'WorkflowExecutionInfo', - 'type' => 'object', - 'properties' => array( - 'execution' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'workflowType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'startTimestamp' => array( - 'type' => 'string', - ), - 'closeTimestamp' => array( - 'type' => 'string', - ), - 'executionStatus' => array( - 'type' => 'string', - ), - 'closeStatus' => array( - 'type' => 'string', - ), - 'parent' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'tagList' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Tag', - 'type' => 'string', - ), - ), - 'cancelRequested' => array( - 'type' => 'boolean', - ), - ), - ), - ), - 'nextPageToken' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DomainInfos' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'domainInfos' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'DomainInfo', - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'status' => array( - 'type' => 'string', - ), - 'description' => array( - 'type' => 'string', - ), - ), - ), - ), - 'nextPageToken' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'WorkflowTypeInfos' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'typeInfos' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'WorkflowTypeInfo', - 'type' => 'object', - 'properties' => array( - 'workflowType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'status' => array( - 'type' => 'string', - ), - 'description' => array( - 'type' => 'string', - ), - 'creationDate' => array( - 'type' => 'string', - ), - 'deprecationDate' => array( - 'type' => 'string', - ), - ), - ), - ), - 'nextPageToken' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'ActivityTask' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'taskToken' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'activityId' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'startedEventId' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'workflowExecution' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'activityType' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'input' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - 'DecisionTask' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'taskToken' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'startedEventId' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - 'workflowExecution' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'workflowType' => array( - 'type' => 'object', - 'location' => 'json', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'events' => array( - 'type' => 'array', - 'location' => 'json', - 'items' => array( - 'name' => 'HistoryEvent', - 'type' => 'object', - 'properties' => array( - 'eventTimestamp' => array( - 'type' => 'string', - ), - 'eventType' => array( - 'type' => 'string', - ), - 'eventId' => array( - 'type' => 'numeric', - ), - 'workflowExecutionStartedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'input' => array( - 'type' => 'string', - ), - 'executionStartToCloseTimeout' => array( - 'type' => 'string', - ), - 'taskStartToCloseTimeout' => array( - 'type' => 'string', - ), - 'childPolicy' => array( - 'type' => 'string', - ), - 'taskList' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - ), - ), - 'workflowType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'tagList' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Tag', - 'type' => 'string', - ), - ), - 'taskPriority' => array( - 'type' => 'string', - ), - 'continuedExecutionRunId' => array( - 'type' => 'string', - ), - 'parentWorkflowExecution' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'parentInitiatedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'workflowExecutionCompletedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'result' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'completeWorkflowExecutionFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'cause' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'workflowExecutionFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'reason' => array( - 'type' => 'string', - ), - 'details' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'failWorkflowExecutionFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'cause' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'workflowExecutionTimedOutEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'timeoutType' => array( - 'type' => 'string', - ), - 'childPolicy' => array( - 'type' => 'string', - ), - ), - ), - 'workflowExecutionCanceledEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'details' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'cancelWorkflowExecutionFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'cause' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'workflowExecutionContinuedAsNewEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'input' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - 'newExecutionRunId' => array( - 'type' => 'string', - ), - 'executionStartToCloseTimeout' => array( - 'type' => 'string', - ), - 'taskList' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - ), - ), - 'taskPriority' => array( - 'type' => 'string', - ), - 'taskStartToCloseTimeout' => array( - 'type' => 'string', - ), - 'childPolicy' => array( - 'type' => 'string', - ), - 'tagList' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Tag', - 'type' => 'string', - ), - ), - 'workflowType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - 'continueAsNewWorkflowExecutionFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'cause' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'workflowExecutionTerminatedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'reason' => array( - 'type' => 'string', - ), - 'details' => array( - 'type' => 'string', - ), - 'childPolicy' => array( - 'type' => 'string', - ), - 'cause' => array( - 'type' => 'string', - ), - ), - ), - 'workflowExecutionCancelRequestedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'externalWorkflowExecution' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'externalInitiatedEventId' => array( - 'type' => 'numeric', - ), - 'cause' => array( - 'type' => 'string', - ), - ), - ), - 'decisionTaskScheduledEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'taskList' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - ), - ), - 'taskPriority' => array( - 'type' => 'string', - ), - 'startToCloseTimeout' => array( - 'type' => 'string', - ), - ), - ), - 'decisionTaskStartedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'identity' => array( - 'type' => 'string', - ), - 'scheduledEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'decisionTaskCompletedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'executionContext' => array( - 'type' => 'string', - ), - 'scheduledEventId' => array( - 'type' => 'numeric', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'decisionTaskTimedOutEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'timeoutType' => array( - 'type' => 'string', - ), - 'scheduledEventId' => array( - 'type' => 'numeric', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'activityTaskScheduledEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'activityType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'activityId' => array( - 'type' => 'string', - ), - 'input' => array( - 'type' => 'string', - ), - 'control' => array( - 'type' => 'string', - ), - 'scheduleToStartTimeout' => array( - 'type' => 'string', - ), - 'scheduleToCloseTimeout' => array( - 'type' => 'string', - ), - 'startToCloseTimeout' => array( - 'type' => 'string', - ), - 'taskList' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - ), - ), - 'taskPriority' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - 'heartbeatTimeout' => array( - 'type' => 'string', - ), - ), - ), - 'activityTaskStartedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'identity' => array( - 'type' => 'string', - ), - 'scheduledEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'activityTaskCompletedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'result' => array( - 'type' => 'string', - ), - 'scheduledEventId' => array( - 'type' => 'numeric', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'activityTaskFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'reason' => array( - 'type' => 'string', - ), - 'details' => array( - 'type' => 'string', - ), - 'scheduledEventId' => array( - 'type' => 'numeric', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'activityTaskTimedOutEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'timeoutType' => array( - 'type' => 'string', - ), - 'scheduledEventId' => array( - 'type' => 'numeric', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - 'details' => array( - 'type' => 'string', - ), - ), - ), - 'activityTaskCanceledEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'details' => array( - 'type' => 'string', - ), - 'scheduledEventId' => array( - 'type' => 'numeric', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - 'latestCancelRequestedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'activityTaskCancelRequestedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - 'activityId' => array( - 'type' => 'string', - ), - ), - ), - 'workflowExecutionSignaledEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'signalName' => array( - 'type' => 'string', - ), - 'input' => array( - 'type' => 'string', - ), - 'externalWorkflowExecution' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'externalInitiatedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'markerRecordedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'markerName' => array( - 'type' => 'string', - ), - 'details' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'recordMarkerFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'markerName' => array( - 'type' => 'string', - ), - 'cause' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'timerStartedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'timerId' => array( - 'type' => 'string', - ), - 'control' => array( - 'type' => 'string', - ), - 'startToFireTimeout' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'timerFiredEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'timerId' => array( - 'type' => 'string', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'timerCanceledEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'timerId' => array( - 'type' => 'string', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'startChildWorkflowExecutionInitiatedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'workflowType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'control' => array( - 'type' => 'string', - ), - 'input' => array( - 'type' => 'string', - ), - 'executionStartToCloseTimeout' => array( - 'type' => 'string', - ), - 'taskList' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - ), - ), - 'taskPriority' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - 'childPolicy' => array( - 'type' => 'string', - ), - 'taskStartToCloseTimeout' => array( - 'type' => 'string', - ), - 'tagList' => array( - 'type' => 'array', - 'items' => array( - 'name' => 'Tag', - 'type' => 'string', - ), - ), - ), - ), - 'childWorkflowExecutionStartedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowExecution' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'workflowType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'initiatedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'childWorkflowExecutionCompletedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowExecution' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'workflowType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'result' => array( - 'type' => 'string', - ), - 'initiatedEventId' => array( - 'type' => 'numeric', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'childWorkflowExecutionFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowExecution' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'workflowType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'reason' => array( - 'type' => 'string', - ), - 'details' => array( - 'type' => 'string', - ), - 'initiatedEventId' => array( - 'type' => 'numeric', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'childWorkflowExecutionTimedOutEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowExecution' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'workflowType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'timeoutType' => array( - 'type' => 'string', - ), - 'initiatedEventId' => array( - 'type' => 'numeric', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'childWorkflowExecutionCanceledEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowExecution' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'workflowType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'details' => array( - 'type' => 'string', - ), - 'initiatedEventId' => array( - 'type' => 'numeric', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'childWorkflowExecutionTerminatedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowExecution' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'workflowType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'initiatedEventId' => array( - 'type' => 'numeric', - ), - 'startedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'signalExternalWorkflowExecutionInitiatedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - 'signalName' => array( - 'type' => 'string', - ), - 'input' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - 'control' => array( - 'type' => 'string', - ), - ), - ), - 'externalWorkflowExecutionSignaledEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowExecution' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'initiatedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'signalExternalWorkflowExecutionFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - 'cause' => array( - 'type' => 'string', - ), - 'initiatedEventId' => array( - 'type' => 'numeric', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - 'control' => array( - 'type' => 'string', - ), - ), - ), - 'externalWorkflowExecutionCancelRequestedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowExecution' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - ), - ), - 'initiatedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'requestCancelExternalWorkflowExecutionInitiatedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - 'control' => array( - 'type' => 'string', - ), - ), - ), - 'requestCancelExternalWorkflowExecutionFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowId' => array( - 'type' => 'string', - ), - 'runId' => array( - 'type' => 'string', - ), - 'cause' => array( - 'type' => 'string', - ), - 'initiatedEventId' => array( - 'type' => 'numeric', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - 'control' => array( - 'type' => 'string', - ), - ), - ), - 'scheduleActivityTaskFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'activityType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'activityId' => array( - 'type' => 'string', - ), - 'cause' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'requestCancelActivityTaskFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'activityId' => array( - 'type' => 'string', - ), - 'cause' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'startTimerFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'timerId' => array( - 'type' => 'string', - ), - 'cause' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'cancelTimerFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'timerId' => array( - 'type' => 'string', - ), - 'cause' => array( - 'type' => 'string', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - ), - ), - 'startChildWorkflowExecutionFailedEventAttributes' => array( - 'type' => 'object', - 'properties' => array( - 'workflowType' => array( - 'type' => 'object', - 'properties' => array( - 'name' => array( - 'type' => 'string', - ), - 'version' => array( - 'type' => 'string', - ), - ), - ), - 'cause' => array( - 'type' => 'string', - ), - 'workflowId' => array( - 'type' => 'string', - ), - 'initiatedEventId' => array( - 'type' => 'numeric', - ), - 'decisionTaskCompletedEventId' => array( - 'type' => 'numeric', - ), - 'control' => array( - 'type' => 'string', - ), - ), - ), - ), - ), - ), - 'nextPageToken' => array( - 'type' => 'string', - 'location' => 'json', - ), - 'previousStartedEventId' => array( - 'type' => 'numeric', - 'location' => 'json', - ), - ), - ), - 'ActivityTaskStatus' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'cancelRequested' => array( - 'type' => 'boolean', - 'location' => 'json', - ), - ), - ), - 'Run' => array( - 'type' => 'object', - 'additionalProperties' => true, - 'properties' => array( - 'runId' => array( - 'type' => 'string', - 'location' => 'json', - ), - ), - ), - ), - 'iterators' => array( - '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/lib/aws-sdk/Aws/Swf/SwfClient.php b/lib/aws-sdk/Aws/Swf/SwfClient.php index 4233461..680c7b2 100644 --- a/lib/aws-sdk/Aws/Swf/SwfClient.php +++ b/lib/aws-sdk/Aws/Swf/SwfClient.php @@ -1,95 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/swf-%s.php' - )) - ->setExceptionParser(new JsonQueryExceptionParser()) - ->build(); - } -} +class SwfClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/TraceMiddleware.php b/lib/aws-sdk/Aws/TraceMiddleware.php new file mode 100644 index 0000000..335aca6 --- /dev/null +++ b/lib/aws-sdk/Aws/TraceMiddleware.php @@ -0,0 +1,268 @@ +config = $config + [ + 'logfn' => function ($value) { echo $value; }, + 'stream_size' => 524288, + 'scrub_auth' => true, + 'http' => true + ]; + } + + public function __invoke($step, $name) + { + $this->prevOutput = $this->prevInput = []; + + return function (callable $next) use ($step, $name) { + return function ( + CommandInterface $command, + RequestInterface $request = null + ) use ($next, $step, $name) { + $this->createHttpDebug($command); + $start = microtime(true); + $this->stepInput([ + 'step' => $step, + 'name' => $name, + 'request' => $this->requestArray($request), + 'command' => $this->commandArray($command) + ]); + + return $next($command, $request)->then( + function ($value) use ($step, $name, $command, $start) { + $this->flushHttpDebug($command); + $this->stepOutput($start, [ + 'step' => $step, + 'name' => $name, + 'result' => $this->resultArray($value), + 'error' => null + ]); + return $value; + }, + function ($reason) use ($step, $name, $start, $command) { + $this->flushHttpDebug($command); + $this->stepOutput($start, [ + 'step' => $step, + 'name' => $name, + 'result' => null, + 'error' => $this->exceptionArray($reason) + ]); + return new RejectedPromise($reason); + } + ); + }; + }; + } + + private function stepInput($entry) + { + static $keys = ['command', 'request']; + $this->compareStep($this->prevInput, $entry, '-> Entering', $keys); + $this->write("\n"); + $this->prevInput = $entry; + } + + private function stepOutput($start, $entry) + { + static $keys = ['result', 'error']; + $this->compareStep($this->prevOutput, $entry, '<- Leaving', $keys); + $totalTime = microtime(true) - $start; + $this->write(" Inclusive step time: " . $totalTime . "\n\n"); + $this->prevOutput = $entry; + } + + private function compareStep(array $a, array $b, $title, array $keys) + { + $changes = []; + foreach ($keys as $key) { + $av = isset($a[$key]) ? $a[$key] : null; + $bv = isset($b[$key]) ? $b[$key] : null; + $this->compareArray($av, $bv, $key, $changes); + } + $str = "\n{$title} step {$b['step']}, name '{$b['name']}'"; + $str .= "\n" . str_repeat('-', strlen($str) - 1) . "\n\n "; + $str .= $changes + ? implode("\n ", str_replace("\n", "\n ", $changes)) + : 'no changes'; + $this->write($str . "\n"); + } + + private function commandArray(CommandInterface $cmd) + { + return [ + 'instance' => spl_object_hash($cmd), + 'name' => $cmd->getName(), + 'params' => $cmd->toArray() + ]; + } + + private function requestArray(RequestInterface $request = null) + { + return !$request ? [] : array_filter([ + 'instance' => spl_object_hash($request), + 'method' => $request->getMethod(), + 'headers' => $request->getHeaders(), + 'body' => $this->streamStr($request->getBody()), + 'scheme' => $request->getUri()->getScheme(), + 'port' => $request->getUri()->getPort(), + 'path' => $request->getUri()->getPath(), + 'query' => $request->getUri()->getQuery(), + ]); + } + + private function responseArray(ResponseInterface $response = null) + { + return !$response ? [] : [ + 'instance' => spl_object_hash($response), + 'statusCode' => $response->getStatusCode(), + 'headers' => $response->getHeaders(), + 'body' => $this->streamStr($response->getBody()) + ]; + } + + private function resultArray($value) + { + return $value instanceof ResultInterface + ? [ + 'instance' => spl_object_hash($value), + 'data' => $value->toArray() + ] : $value; + } + + private function exceptionArray($e) + { + if (!($e instanceof \Exception)) { + return $e; + } + + $result = [ + 'instance' => spl_object_hash($e), + 'class' => get_class($e), + 'message' => $e->getMessage(), + 'file' => $e->getFile(), + 'line' => $e->getLine(), + 'trace' => $e->getTraceAsString(), + ]; + + if ($e instanceof AwsException) { + $result += [ + 'type' => $e->getAwsErrorType(), + 'code' => $e->getAwsErrorCode(), + 'requestId' => $e->getAwsRequestId(), + 'statusCode' => $e->getStatusCode(), + 'result' => $this->resultArray($e->getResult()), + 'request' => $this->requestArray($e->getRequest()), + 'response' => $this->responseArray($e->getResponse()), + ]; + } + + return $result; + } + + private function compareArray($a, $b, $path, array &$diff) + { + if ($a === $b) { + return; + } elseif (is_array($a)) { + $b = (array) $b; + $keys = array_unique(array_merge(array_keys($a), array_keys($b))); + foreach ($keys as $k) { + if (!array_key_exists($k, $a)) { + $this->compareArray(null, $b[$k], "{$path}.{$k}", $diff); + } elseif (!array_key_exists($k, $b)) { + $this->compareArray($a[$k], null, "{$path}.{$k}", $diff); + } else { + $this->compareArray($a[$k], $b[$k], "{$path}.{$k}", $diff); + } + } + } elseif ($a !== null && $b === null) { + $diff[] = "{$path} was unset"; + } elseif ($a === null && $b !== null) { + $diff[] = sprintf("%s was set to %s", $path, $this->str($b)); + } else { + $diff[] = sprintf("%s changed from %s to %s", $path, $this->str($a), $this->str($b)); + } + } + + private function str($value) + { + if (is_scalar($value)) { + return (string) $value; + } elseif ($value instanceof \Exception) { + $value = $this->exceptionArray($value); + } + + ob_start(); + var_dump($value); + return ob_get_clean(); + } + + private function streamStr(StreamInterface $body) + { + return $body->getSize() < $this->config['stream_size'] + ? (string) $body + : 'stream(size=' . $body->getSize() . ')'; + } + + private function createHttpDebug(CommandInterface $command) + { + if ($this->config['http'] && !isset($command['@http']['debug'])) { + $command['@http']['debug'] = fopen('php://temp', 'w+'); + } + } + + private function flushHttpDebug(CommandInterface $command) + { + if ($res = $command['@http']['debug']) { + rewind($res); + $this->write(stream_get_contents($res)); + fclose($res); + $command['@http']['debug'] = null; + } + } + + private function write($value) + { + if ($this->config['scrub_auth']) { + // S3Signature + $value = preg_replace('/AWSAccessKeyId=AKI.+&/i', 'AWSAccessKeyId=AKI[KEY]&', $value); + // SignatureV4 Signature and S3Signature + $value = preg_replace('/Signature=.+/i', 'Signature=[SIGNATURE]', $value); + // SignatureV4 access key ID + $value = preg_replace('/Credential=AKI.+\//i', 'Credential=AKI[KEY]/', $value); + // S3 signatures + $value = preg_replace('/AWS AKI.+:.+/', 'AWS AKI[KEY]:[SIGNATURE]', $value); + } + + call_user_func($this->config['logfn'], $value); + } +} diff --git a/lib/aws-sdk/Aws/Waiter.php b/lib/aws-sdk/Aws/Waiter.php new file mode 100644 index 0000000..fdf9a36 --- /dev/null +++ b/lib/aws-sdk/Aws/Waiter.php @@ -0,0 +1,263 @@ + 0, 'before' => null]; + + /** @var array Required configuration options. */ + private static $required = [ + 'acceptors', + 'delay', + 'maxAttempts', + 'operation', + ]; + + /** + * The array of configuration options include: + * + * - acceptors: (array) Array of acceptor options + * - delay: (int) Number of seconds to delay between attempts + * - maxAttempts: (int) Maximum number of attempts before failing + * - operation: (string) Name of the API operation to use for polling + * - before: (callable) Invoked before attempts. Accepts command and tries. + * + * @param AwsClientInterface $client Client used to execute commands. + * @param string $name Waiter name. + * @param array $args Command arguments. + * @param array $config Waiter config that overrides defaults. + * + * @throws \InvalidArgumentException if the configuration is incomplete. + */ + public function __construct( + AwsClientInterface $client, + $name, + array $args = [], + array $config = [] + ) { + $this->client = $client; + $this->name = $name; + $this->args = $args; + + // Prepare and validate config. + $this->config = $config + self::$defaults; + foreach (self::$required as $key) { + if (!isset($this->config[$key])) { + throw new \InvalidArgumentException( + 'The provided waiter configuration was incomplete.' + ); + } + } + if ($this->config['before'] && !is_callable($this->config['before'])) { + throw new \InvalidArgumentException( + 'The provided "before" callback is not callable.' + ); + } + } + + public function promise() + { + return Promise\coroutine(function () { + $name = $this->config['operation']; + for ($state = 'retry', $attempt = 1; $state === 'retry'; $attempt++) { + // Execute the operation. + $args = $this->getArgsForAttempt($attempt); + $command = $this->client->getCommand($name, $args); + try { + if ($this->config['before']) { + $this->config['before']($command, $attempt); + } + $result = (yield $this->client->executeAsync($command)); + } catch (AwsException $e) { + $result = $e; + } + + // Determine the waiter's state and what to do next. + $state = $this->determineState($result); + if ($state === 'success') { + yield $command; + } elseif ($state === 'failed') { + $msg = "The {$this->name} waiter entered a failure state."; + if ($result instanceof \Exception) { + $msg .= ' Reason: ' . $result->getMessage(); + } + yield new RejectedPromise(new \RuntimeException($msg)); + } elseif ($state === 'retry' + && $attempt >= $this->config['maxAttempts'] + ) { + $state = 'failed'; + yield new RejectedPromise(new \RuntimeException( + "The {$this->name} waiter failed after attempt #{$attempt}." + )); + } + } + }); + } + + /** + * Gets the operation arguments for the attempt, including the delay. + * + * @param $attempt Number of the current attempt. + * + * @return mixed integer + */ + private function getArgsForAttempt($attempt) + { + $args = $this->args; + + // Determine the delay. + $delay = ($attempt === 1) + ? $this->config['initDelay'] + : $this->config['delay']; + if (is_callable($delay)) { + $delay = $delay($attempt); + } + + // Set the delay. (Note: handlers except delay in milliseconds.) + if (!isset($args['@http'])) { + $args['@http'] = []; + } + $args['@http']['delay'] = $delay * 1000; + + return $args; + } + + /** + * Determines the state of the waiter attempt, based on the result of + * polling the resource. A waiter can have the state of "success", "failed", + * or "retry". + * + * @param mixed $result + * + * @return string Will be "success", "failed", or "retry" + */ + private function determineState($result) + { + foreach ($this->config['acceptors'] as $acceptor) { + $matcher = 'matches' . ucfirst($acceptor['matcher']); + if ($this->{$matcher}($result, $acceptor)) { + return $acceptor['state']; + } + } + + return $result instanceof \Exception ? 'failed' : 'retry'; + } + + /** + * @param result $result Result or exception. + * @param array $acceptor Acceptor configuration being checked. + * + * @return bool + */ + private function matchesPath($result, array $acceptor) + { + return !($result instanceof ResultInterface) + ? false + : $acceptor['expected'] == $result->search($acceptor['argument']); + } + + /** + * @param result $result Result or exception. + * @param array $acceptor Acceptor configuration being checked. + * + * @return bool + */ + private function matchesPathAll($result, array $acceptor) + { + if (!($result instanceof ResultInterface)) { + return false; + } + + $actuals = $result->search($acceptor['argument']) ?: []; + foreach ($actuals as $actual) { + if ($actual != $acceptor['expected']) { + return false; + } + } + + return true; + } + + /** + * @param result $result Result or exception. + * @param array $acceptor Acceptor configuration being checked. + * + * @return bool + */ + private function matchesPathAny($result, array $acceptor) + { + if (!($result instanceof ResultInterface)) { + return false; + } + + $actuals = $result->search($acceptor['argument']) ?: []; + foreach ($actuals as $actual) { + if ($actual == $acceptor['expected']) { + return true; + } + } + + return false; + } + + /** + * @param result $result Result or exception. + * @param array $acceptor Acceptor configuration being checked. + * + * @return bool + */ + private function matchesStatus($result, array $acceptor) + { + if ($result instanceof ResultInterface) { + return $acceptor['expected'] == $result['@metadata']['statusCode']; + } elseif ($result instanceof AwsException) { + return $acceptor['expected'] == $result->getResponse()->getStatusCode(); + } else { + return false; + } + } + + /** + * @param result $result Result or exception. + * @param array $acceptor Acceptor configuration being checked. + * + * @return bool + */ + private function matchesError($result, array $acceptor) + { + return !($result instanceof AwsException) + ? false + : $result->getAwsErrorCode() == $acceptor['expected']; + } +} diff --git a/lib/aws-sdk/Aws/WorkSpaces/Exception/WorkSpacesException.php b/lib/aws-sdk/Aws/WorkSpaces/Exception/WorkSpacesException.php index 19e9a41..6de9e6b 100644 --- a/lib/aws-sdk/Aws/WorkSpaces/Exception/WorkSpacesException.php +++ b/lib/aws-sdk/Aws/WorkSpaces/Exception/WorkSpacesException.php @@ -1,10 +1,9 @@ '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/lib/aws-sdk/Aws/WorkSpaces/WorkSpacesClient.php b/lib/aws-sdk/Aws/WorkSpaces/WorkSpacesClient.php index b14d3dd..f147236 100644 --- a/lib/aws-sdk/Aws/WorkSpaces/WorkSpacesClient.php +++ b/lib/aws-sdk/Aws/WorkSpaces/WorkSpacesClient.php @@ -1,51 +1,9 @@ setConfig($config) - ->setConfigDefaults(array( - Options::VERSION => self::LATEST_API_VERSION, - Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/workspaces-%s.php' - )) - ->setExceptionParser(new JsonQueryExceptionParser()) - ->build(); - } -} +class WorkSpacesClient extends AwsClient {} diff --git a/lib/aws-sdk/Aws/WrappedHttpHandler.php b/lib/aws-sdk/Aws/WrappedHttpHandler.php new file mode 100644 index 0000000..b3c1152 --- /dev/null +++ b/lib/aws-sdk/Aws/WrappedHttpHandler.php @@ -0,0 +1,164 @@ +httpHandler = $httpHandler; + $this->parser = $parser; + $this->errorParser = $errorParser; + $this->exceptionClass = $exceptionClass; + } + + /** + * Calls the simpler HTTP specific handler and wraps the returned promise + * with AWS specific values (e.g., a result object or AWS exception). + * + * @param CommandInterface $command Command being executed. + * @param RequestInterface $request Request to send. + * + * @return Promise\PromiseInterface + */ + public function __invoke( + CommandInterface $command, + RequestInterface $request + ) { + $fn = $this->httpHandler; + + return Promise\promise_for($fn($request, $command['@http'] ?: [])) + ->then( + function (ResponseInterface $res) use ($command, $request) { + return $this->parseResponse($command, $request, $res); + }, + function ($err) use ($request, $command) { + if (is_array($err)) { + $exception = $this->parseError($err, $request, $command); + return new Promise\RejectedPromise($exception); + } + return new Promise\RejectedPromise($err); + } + ); + } + + /** + * @param CommandInterface $command + * @param RequestInterface $request + * @param ResponseInterface $response + * + * @return ResultInterface + */ + private function parseResponse( + CommandInterface $command, + RequestInterface $request, + ResponseInterface $response + ) { + $parser = $this->parser; + $status = $response->getStatusCode(); + $result = $status < 300 + ? $parser($command, $response) + : new Result(); + + $metadata = [ + 'statusCode' => $status, + 'effectiveUri' => (string) $request->getUri(), + 'headers' => [] + ]; + + // Bring headers into the metadata array. + foreach ($response->getHeaders() as $name => $values) { + $metadata['headers'][strtolower($name)] = $values[0]; + } + + $result['@metadata'] = $metadata; + + return $result; + } + + /** + * Parses a rejection into an AWS error. + * + * @param array $err Rejection error array. + * @param RequestInterface $request Request that was sent. + * @param CommandInterface $command Command being sent. + * + * @return \Exception + */ + private function parseError( + array $err, + RequestInterface $request, + CommandInterface $command + ) { + if (!isset($err['exception'])) { + throw new \RuntimeException('The HTTP handler was rejected without an "exception" key value pair.'); + } + + $serviceError = "AWS HTTP error: " . $err['exception']->getMessage(); + + if (!isset($err['response'])) { + $parts = ['response' => null]; + } else { + $errorParser = $this->errorParser; + $parts = $errorParser($err['response']); + $parts['response'] = $err['response']; + $serviceError .= " {$parts['code']} ({$parts['type']}): " + . "{$parts['message']} - " . $err['response']->getBody(); + } + + $parts['exception'] = $err['exception']; + $parts['request'] = $request; + $parts['connection_error'] = !empty($err['connection_error']); + + return new $this->exceptionClass( + sprintf( + 'Error executing "%s" on "%s"; %s', + $command->getName(), + $request->getUri(), + $serviceError + ), + $command, + $parts, + $err['exception'] + ); + } +} diff --git a/lib/aws-sdk/Aws/data/autoscaling/2011-01-01/api-2.json b/lib/aws-sdk/Aws/data/autoscaling/2011-01-01/api-2.json new file mode 100644 index 0000000..e190c22 --- /dev/null +++ b/lib/aws-sdk/Aws/data/autoscaling/2011-01-01/api-2.json @@ -0,0 +1,2554 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2011-01-01", + "endpointPrefix":"autoscaling", + "serviceFullName":"Auto Scaling", + "signatureVersion":"v4", + "xmlNamespace":"http://autoscaling.amazonaws.com/doc/2011-01-01/", + "protocol":"query" + }, + "operations":{ + "AttachInstances":{ + "name":"AttachInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AttachInstancesQuery"}, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "AttachLoadBalancers":{ + "name":"AttachLoadBalancers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AttachLoadBalancersType"}, + "output":{ + "shape":"AttachLoadBalancersResultType", + "resultWrapper":"AttachLoadBalancersResult" + }, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "CompleteLifecycleAction":{ + "name":"CompleteLifecycleAction", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CompleteLifecycleActionType"}, + "output":{ + "shape":"CompleteLifecycleActionAnswer", + "resultWrapper":"CompleteLifecycleActionResult" + }, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateAutoScalingGroup":{ + "name":"CreateAutoScalingGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateAutoScalingGroupType"}, + "errors":[ + { + "shape":"AlreadyExistsFault", + "error":{ + "code":"AlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededFault", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateLaunchConfiguration":{ + "name":"CreateLaunchConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateLaunchConfigurationType"}, + "errors":[ + { + "shape":"AlreadyExistsFault", + "error":{ + "code":"AlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededFault", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateOrUpdateTags":{ + "name":"CreateOrUpdateTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateOrUpdateTagsType"}, + "errors":[ + { + "shape":"LimitExceededFault", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AlreadyExistsFault", + "error":{ + "code":"AlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteAutoScalingGroup":{ + "name":"DeleteAutoScalingGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteAutoScalingGroupType"}, + "errors":[ + { + "shape":"ScalingActivityInProgressFault", + "error":{ + "code":"ScalingActivityInProgress", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceInUseFault", + "error":{ + "code":"ResourceInUse", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteLaunchConfiguration":{ + "name":"DeleteLaunchConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"LaunchConfigurationNameType"}, + "errors":[ + { + "shape":"ResourceInUseFault", + "error":{ + "code":"ResourceInUse", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteLifecycleHook":{ + "name":"DeleteLifecycleHook", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteLifecycleHookType"}, + "output":{ + "shape":"DeleteLifecycleHookAnswer", + "resultWrapper":"DeleteLifecycleHookResult" + }, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteNotificationConfiguration":{ + "name":"DeleteNotificationConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteNotificationConfigurationType"}, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeletePolicy":{ + "name":"DeletePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeletePolicyType"}, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteScheduledAction":{ + "name":"DeleteScheduledAction", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteScheduledActionType"}, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteTags":{ + "name":"DeleteTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTagsType"}, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeAccountLimits":{ + "name":"DescribeAccountLimits", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "output":{ + "shape":"DescribeAccountLimitsAnswer", + "resultWrapper":"DescribeAccountLimitsResult" + }, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeAdjustmentTypes":{ + "name":"DescribeAdjustmentTypes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "output":{ + "shape":"DescribeAdjustmentTypesAnswer", + "resultWrapper":"DescribeAdjustmentTypesResult" + }, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeAutoScalingGroups":{ + "name":"DescribeAutoScalingGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AutoScalingGroupNamesType"}, + "output":{ + "shape":"AutoScalingGroupsType", + "resultWrapper":"DescribeAutoScalingGroupsResult" + }, + "errors":[ + { + "shape":"InvalidNextToken", + "error":{ + "code":"InvalidNextToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeAutoScalingInstances":{ + "name":"DescribeAutoScalingInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAutoScalingInstancesType"}, + "output":{ + "shape":"AutoScalingInstancesType", + "resultWrapper":"DescribeAutoScalingInstancesResult" + }, + "errors":[ + { + "shape":"InvalidNextToken", + "error":{ + "code":"InvalidNextToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeAutoScalingNotificationTypes":{ + "name":"DescribeAutoScalingNotificationTypes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "output":{ + "shape":"DescribeAutoScalingNotificationTypesAnswer", + "resultWrapper":"DescribeAutoScalingNotificationTypesResult" + }, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeLaunchConfigurations":{ + "name":"DescribeLaunchConfigurations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"LaunchConfigurationNamesType"}, + "output":{ + "shape":"LaunchConfigurationsType", + "resultWrapper":"DescribeLaunchConfigurationsResult" + }, + "errors":[ + { + "shape":"InvalidNextToken", + "error":{ + "code":"InvalidNextToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeLifecycleHookTypes":{ + "name":"DescribeLifecycleHookTypes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "output":{ + "shape":"DescribeLifecycleHookTypesAnswer", + "resultWrapper":"DescribeLifecycleHookTypesResult" + }, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeLifecycleHooks":{ + "name":"DescribeLifecycleHooks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeLifecycleHooksType"}, + "output":{ + "shape":"DescribeLifecycleHooksAnswer", + "resultWrapper":"DescribeLifecycleHooksResult" + }, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeLoadBalancers":{ + "name":"DescribeLoadBalancers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeLoadBalancersRequest"}, + "output":{ + "shape":"DescribeLoadBalancersResponse", + "resultWrapper":"DescribeLoadBalancersResult" + }, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeMetricCollectionTypes":{ + "name":"DescribeMetricCollectionTypes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "output":{ + "shape":"DescribeMetricCollectionTypesAnswer", + "resultWrapper":"DescribeMetricCollectionTypesResult" + }, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeNotificationConfigurations":{ + "name":"DescribeNotificationConfigurations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeNotificationConfigurationsType"}, + "output":{ + "shape":"DescribeNotificationConfigurationsAnswer", + "resultWrapper":"DescribeNotificationConfigurationsResult" + }, + "errors":[ + { + "shape":"InvalidNextToken", + "error":{ + "code":"InvalidNextToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribePolicies":{ + "name":"DescribePolicies", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribePoliciesType"}, + "output":{ + "shape":"PoliciesType", + "resultWrapper":"DescribePoliciesResult" + }, + "errors":[ + { + "shape":"InvalidNextToken", + "error":{ + "code":"InvalidNextToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeScalingActivities":{ + "name":"DescribeScalingActivities", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeScalingActivitiesType"}, + "output":{ + "shape":"ActivitiesType", + "resultWrapper":"DescribeScalingActivitiesResult" + }, + "errors":[ + { + "shape":"InvalidNextToken", + "error":{ + "code":"InvalidNextToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeScalingProcessTypes":{ + "name":"DescribeScalingProcessTypes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "output":{ + "shape":"ProcessesType", + "resultWrapper":"DescribeScalingProcessTypesResult" + }, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeScheduledActions":{ + "name":"DescribeScheduledActions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeScheduledActionsType"}, + "output":{ + "shape":"ScheduledActionsType", + "resultWrapper":"DescribeScheduledActionsResult" + }, + "errors":[ + { + "shape":"InvalidNextToken", + "error":{ + "code":"InvalidNextToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeTags":{ + "name":"DescribeTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTagsType"}, + "output":{ + "shape":"TagsType", + "resultWrapper":"DescribeTagsResult" + }, + "errors":[ + { + "shape":"InvalidNextToken", + "error":{ + "code":"InvalidNextToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeTerminationPolicyTypes":{ + "name":"DescribeTerminationPolicyTypes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "output":{ + "shape":"DescribeTerminationPolicyTypesAnswer", + "resultWrapper":"DescribeTerminationPolicyTypesResult" + }, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DetachInstances":{ + "name":"DetachInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetachInstancesQuery"}, + "output":{ + "shape":"DetachInstancesAnswer", + "resultWrapper":"DetachInstancesResult" + }, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DetachLoadBalancers":{ + "name":"DetachLoadBalancers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetachLoadBalancersType"}, + "output":{ + "shape":"DetachLoadBalancersResultType", + "resultWrapper":"DetachLoadBalancersResult" + }, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "DisableMetricsCollection":{ + "name":"DisableMetricsCollection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisableMetricsCollectionQuery"}, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "EnableMetricsCollection":{ + "name":"EnableMetricsCollection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableMetricsCollectionQuery"}, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "EnterStandby":{ + "name":"EnterStandby", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnterStandbyQuery"}, + "output":{ + "shape":"EnterStandbyAnswer", + "resultWrapper":"EnterStandbyResult" + }, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "ExecutePolicy":{ + "name":"ExecutePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ExecutePolicyType"}, + "errors":[ + { + "shape":"ScalingActivityInProgressFault", + "error":{ + "code":"ScalingActivityInProgress", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "ExitStandby":{ + "name":"ExitStandby", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ExitStandbyQuery"}, + "output":{ + "shape":"ExitStandbyAnswer", + "resultWrapper":"ExitStandbyResult" + }, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "PutLifecycleHook":{ + "name":"PutLifecycleHook", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutLifecycleHookType"}, + "output":{ + "shape":"PutLifecycleHookAnswer", + "resultWrapper":"PutLifecycleHookResult" + }, + "errors":[ + { + "shape":"LimitExceededFault", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "PutNotificationConfiguration":{ + "name":"PutNotificationConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutNotificationConfigurationType"}, + "errors":[ + { + "shape":"LimitExceededFault", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "PutScalingPolicy":{ + "name":"PutScalingPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutScalingPolicyType"}, + "output":{ + "shape":"PolicyARNType", + "resultWrapper":"PutScalingPolicyResult" + }, + "errors":[ + { + "shape":"LimitExceededFault", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "PutScheduledUpdateGroupAction":{ + "name":"PutScheduledUpdateGroupAction", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutScheduledUpdateGroupActionType"}, + "errors":[ + { + "shape":"AlreadyExistsFault", + "error":{ + "code":"AlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededFault", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "RecordLifecycleActionHeartbeat":{ + "name":"RecordLifecycleActionHeartbeat", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RecordLifecycleActionHeartbeatType"}, + "output":{ + "shape":"RecordLifecycleActionHeartbeatAnswer", + "resultWrapper":"RecordLifecycleActionHeartbeatResult" + }, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "ResumeProcesses":{ + "name":"ResumeProcesses", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ScalingProcessQuery"}, + "errors":[ + { + "shape":"ResourceInUseFault", + "error":{ + "code":"ResourceInUse", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "SetDesiredCapacity":{ + "name":"SetDesiredCapacity", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetDesiredCapacityType"}, + "errors":[ + { + "shape":"ScalingActivityInProgressFault", + "error":{ + "code":"ScalingActivityInProgress", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "SetInstanceHealth":{ + "name":"SetInstanceHealth", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetInstanceHealthQuery"}, + "errors":[ + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "SuspendProcesses":{ + "name":"SuspendProcesses", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ScalingProcessQuery"}, + "errors":[ + { + "shape":"ResourceInUseFault", + "error":{ + "code":"ResourceInUse", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "TerminateInstanceInAutoScalingGroup":{ + "name":"TerminateInstanceInAutoScalingGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TerminateInstanceInAutoScalingGroupType"}, + "output":{ + "shape":"ActivityType", + "resultWrapper":"TerminateInstanceInAutoScalingGroupResult" + }, + "errors":[ + { + "shape":"ScalingActivityInProgressFault", + "error":{ + "code":"ScalingActivityInProgress", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + }, + "UpdateAutoScalingGroup":{ + "name":"UpdateAutoScalingGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateAutoScalingGroupType"}, + "errors":[ + { + "shape":"ScalingActivityInProgressFault", + "error":{ + "code":"ScalingActivityInProgress", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceContentionFault", + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + } + ] + } + }, + "shapes":{ + "Activities":{ + "type":"list", + "member":{"shape":"Activity"} + }, + "ActivitiesType":{ + "type":"structure", + "required":["Activities"], + "members":{ + "Activities":{"shape":"Activities"}, + "NextToken":{"shape":"XmlString"} + } + }, + "Activity":{ + "type":"structure", + "required":[ + "ActivityId", + "AutoScalingGroupName", + "Cause", + "StartTime", + "StatusCode" + ], + "members":{ + "ActivityId":{"shape":"XmlString"}, + "AutoScalingGroupName":{"shape":"XmlStringMaxLen255"}, + "Description":{"shape":"XmlString"}, + "Cause":{"shape":"XmlStringMaxLen1023"}, + "StartTime":{"shape":"TimestampType"}, + "EndTime":{"shape":"TimestampType"}, + "StatusCode":{"shape":"ScalingActivityStatusCode"}, + "StatusMessage":{"shape":"XmlStringMaxLen255"}, + "Progress":{"shape":"Progress"}, + "Details":{"shape":"XmlString"} + } + }, + "ActivityIds":{ + "type":"list", + "member":{"shape":"XmlString"} + }, + "ActivityType":{ + "type":"structure", + "members":{ + "Activity":{"shape":"Activity"} + } + }, + "AdjustmentType":{ + "type":"structure", + "members":{ + "AdjustmentType":{"shape":"XmlStringMaxLen255"} + } + }, + "AdjustmentTypes":{ + "type":"list", + "member":{"shape":"AdjustmentType"} + }, + "Alarm":{ + "type":"structure", + "members":{ + "AlarmName":{"shape":"XmlStringMaxLen255"}, + "AlarmARN":{"shape":"ResourceName"} + } + }, + "Alarms":{ + "type":"list", + "member":{"shape":"Alarm"} + }, + "AlreadyExistsFault":{ + "type":"structure", + "members":{ + "message":{"shape":"XmlStringMaxLen255"} + }, + "error":{ + "code":"AlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "AsciiStringMaxLen255":{ + "type":"string", + "min":1, + "max":255, + "pattern":"[A-Za-z0-9\\-_\\/]+" + }, + "AssociatePublicIpAddress":{"type":"boolean"}, + "AttachInstancesQuery":{ + "type":"structure", + "required":["AutoScalingGroupName"], + "members":{ + "InstanceIds":{"shape":"InstanceIds"}, + "AutoScalingGroupName":{"shape":"ResourceName"} + } + }, + "AttachLoadBalancersResultType":{ + "type":"structure", + "members":{ + } + }, + "AttachLoadBalancersType":{ + "type":"structure", + "members":{ + "AutoScalingGroupName":{"shape":"ResourceName"}, + "LoadBalancerNames":{"shape":"LoadBalancerNames"} + } + }, + "AutoScalingGroup":{ + "type":"structure", + "required":[ + "AutoScalingGroupName", + "LaunchConfigurationName", + "MinSize", + "MaxSize", + "DesiredCapacity", + "DefaultCooldown", + "AvailabilityZones", + "HealthCheckType", + "CreatedTime" + ], + "members":{ + "AutoScalingGroupName":{"shape":"XmlStringMaxLen255"}, + "AutoScalingGroupARN":{"shape":"ResourceName"}, + "LaunchConfigurationName":{"shape":"XmlStringMaxLen255"}, + "MinSize":{"shape":"AutoScalingGroupMinSize"}, + "MaxSize":{"shape":"AutoScalingGroupMaxSize"}, + "DesiredCapacity":{"shape":"AutoScalingGroupDesiredCapacity"}, + "DefaultCooldown":{"shape":"Cooldown"}, + "AvailabilityZones":{"shape":"AvailabilityZones"}, + "LoadBalancerNames":{"shape":"LoadBalancerNames"}, + "HealthCheckType":{"shape":"XmlStringMaxLen32"}, + "HealthCheckGracePeriod":{"shape":"HealthCheckGracePeriod"}, + "Instances":{"shape":"Instances"}, + "CreatedTime":{"shape":"TimestampType"}, + "SuspendedProcesses":{"shape":"SuspendedProcesses"}, + "PlacementGroup":{"shape":"XmlStringMaxLen255"}, + "VPCZoneIdentifier":{"shape":"XmlStringMaxLen255"}, + "EnabledMetrics":{"shape":"EnabledMetrics"}, + "Status":{"shape":"XmlStringMaxLen255"}, + "Tags":{"shape":"TagDescriptionList"}, + "TerminationPolicies":{"shape":"TerminationPolicies"} + } + }, + "AutoScalingGroupDesiredCapacity":{"type":"integer"}, + "AutoScalingGroupMaxSize":{"type":"integer"}, + "AutoScalingGroupMinSize":{"type":"integer"}, + "AutoScalingGroupNames":{ + "type":"list", + "member":{"shape":"ResourceName"} + }, + "AutoScalingGroupNamesType":{ + "type":"structure", + "members":{ + "AutoScalingGroupNames":{"shape":"AutoScalingGroupNames"}, + "NextToken":{"shape":"XmlString"}, + "MaxRecords":{"shape":"MaxRecords"} + } + }, + "AutoScalingGroups":{ + "type":"list", + "member":{"shape":"AutoScalingGroup"} + }, + "AutoScalingGroupsType":{ + "type":"structure", + "required":["AutoScalingGroups"], + "members":{ + "AutoScalingGroups":{"shape":"AutoScalingGroups"}, + "NextToken":{"shape":"XmlString"} + } + }, + "AutoScalingInstanceDetails":{ + "type":"structure", + "required":[ + "InstanceId", + "AutoScalingGroupName", + "AvailabilityZone", + "LifecycleState", + "HealthStatus", + "LaunchConfigurationName" + ], + "members":{ + "InstanceId":{"shape":"XmlStringMaxLen16"}, + "AutoScalingGroupName":{"shape":"XmlStringMaxLen255"}, + "AvailabilityZone":{"shape":"XmlStringMaxLen255"}, + "LifecycleState":{"shape":"XmlStringMaxLen32"}, + "HealthStatus":{"shape":"XmlStringMaxLen32"}, + "LaunchConfigurationName":{"shape":"XmlStringMaxLen255"} + } + }, + "AutoScalingInstances":{ + "type":"list", + "member":{"shape":"AutoScalingInstanceDetails"} + }, + "AutoScalingInstancesType":{ + "type":"structure", + "members":{ + "AutoScalingInstances":{"shape":"AutoScalingInstances"}, + "NextToken":{"shape":"XmlString"} + } + }, + "AutoScalingNotificationTypes":{ + "type":"list", + "member":{"shape":"XmlStringMaxLen255"} + }, + "AvailabilityZones":{ + "type":"list", + "member":{"shape":"XmlStringMaxLen255"}, + "min":1 + }, + "BlockDeviceEbsDeleteOnTermination":{"type":"boolean"}, + "BlockDeviceEbsIops":{ + "type":"integer", + "min":100, + "max":20000 + }, + "BlockDeviceEbsVolumeSize":{ + "type":"integer", + "min":1, + "max":16384 + }, + "BlockDeviceEbsVolumeType":{ + "type":"string", + "min":1, + "max":255 + }, + "BlockDeviceMapping":{ + "type":"structure", + "required":["DeviceName"], + "members":{ + "VirtualName":{"shape":"XmlStringMaxLen255"}, + "DeviceName":{"shape":"XmlStringMaxLen255"}, + "Ebs":{"shape":"Ebs"}, + "NoDevice":{"shape":"NoDevice"} + } + }, + "BlockDeviceMappings":{ + "type":"list", + "member":{"shape":"BlockDeviceMapping"} + }, + "ClassicLinkVPCSecurityGroups":{ + "type":"list", + "member":{"shape":"XmlStringMaxLen255"} + }, + "CompleteLifecycleActionAnswer":{ + "type":"structure", + "members":{ + } + }, + "CompleteLifecycleActionType":{ + "type":"structure", + "required":[ + "LifecycleHookName", + "AutoScalingGroupName", + "LifecycleActionToken", + "LifecycleActionResult" + ], + "members":{ + "LifecycleHookName":{"shape":"AsciiStringMaxLen255"}, + "AutoScalingGroupName":{"shape":"ResourceName"}, + "LifecycleActionToken":{"shape":"LifecycleActionToken"}, + "LifecycleActionResult":{"shape":"LifecycleActionResult"} + } + }, + "Cooldown":{"type":"integer"}, + "CreateAutoScalingGroupType":{ + "type":"structure", + "required":[ + "AutoScalingGroupName", + "MinSize", + "MaxSize" + ], + "members":{ + "AutoScalingGroupName":{"shape":"XmlStringMaxLen255"}, + "LaunchConfigurationName":{"shape":"ResourceName"}, + "InstanceId":{"shape":"XmlStringMaxLen16"}, + "MinSize":{"shape":"AutoScalingGroupMinSize"}, + "MaxSize":{"shape":"AutoScalingGroupMaxSize"}, + "DesiredCapacity":{"shape":"AutoScalingGroupDesiredCapacity"}, + "DefaultCooldown":{"shape":"Cooldown"}, + "AvailabilityZones":{"shape":"AvailabilityZones"}, + "LoadBalancerNames":{"shape":"LoadBalancerNames"}, + "HealthCheckType":{"shape":"XmlStringMaxLen32"}, + "HealthCheckGracePeriod":{"shape":"HealthCheckGracePeriod"}, + "PlacementGroup":{"shape":"XmlStringMaxLen255"}, + "VPCZoneIdentifier":{"shape":"XmlStringMaxLen255"}, + "TerminationPolicies":{"shape":"TerminationPolicies"}, + "Tags":{"shape":"Tags"} + } + }, + "CreateLaunchConfigurationType":{ + "type":"structure", + "required":["LaunchConfigurationName"], + "members":{ + "LaunchConfigurationName":{"shape":"XmlStringMaxLen255"}, + "ImageId":{"shape":"XmlStringMaxLen255"}, + "KeyName":{"shape":"XmlStringMaxLen255"}, + "SecurityGroups":{"shape":"SecurityGroups"}, + "ClassicLinkVPCId":{"shape":"XmlStringMaxLen255"}, + "ClassicLinkVPCSecurityGroups":{"shape":"ClassicLinkVPCSecurityGroups"}, + "UserData":{"shape":"XmlStringUserData"}, + "InstanceId":{"shape":"XmlStringMaxLen16"}, + "InstanceType":{"shape":"XmlStringMaxLen255"}, + "KernelId":{"shape":"XmlStringMaxLen255"}, + "RamdiskId":{"shape":"XmlStringMaxLen255"}, + "BlockDeviceMappings":{"shape":"BlockDeviceMappings"}, + "InstanceMonitoring":{"shape":"InstanceMonitoring"}, + "SpotPrice":{"shape":"SpotPrice"}, + "IamInstanceProfile":{"shape":"XmlStringMaxLen1600"}, + "EbsOptimized":{"shape":"EbsOptimized"}, + "AssociatePublicIpAddress":{"shape":"AssociatePublicIpAddress"}, + "PlacementTenancy":{"shape":"XmlStringMaxLen64"} + } + }, + "CreateOrUpdateTagsType":{ + "type":"structure", + "required":["Tags"], + "members":{ + "Tags":{"shape":"Tags"} + } + }, + "DeleteAutoScalingGroupType":{ + "type":"structure", + "required":["AutoScalingGroupName"], + "members":{ + "AutoScalingGroupName":{"shape":"ResourceName"}, + "ForceDelete":{"shape":"ForceDelete"} + } + }, + "DeleteLifecycleHookAnswer":{ + "type":"structure", + "members":{ + } + }, + "DeleteLifecycleHookType":{ + "type":"structure", + "required":[ + "LifecycleHookName", + "AutoScalingGroupName" + ], + "members":{ + "LifecycleHookName":{"shape":"AsciiStringMaxLen255"}, + "AutoScalingGroupName":{"shape":"ResourceName"} + } + }, + "DeleteNotificationConfigurationType":{ + "type":"structure", + "required":[ + "AutoScalingGroupName", + "TopicARN" + ], + "members":{ + "AutoScalingGroupName":{"shape":"ResourceName"}, + "TopicARN":{"shape":"ResourceName"} + } + }, + "DeletePolicyType":{ + "type":"structure", + "required":["PolicyName"], + "members":{ + "AutoScalingGroupName":{"shape":"ResourceName"}, + "PolicyName":{"shape":"ResourceName"} + } + }, + "DeleteScheduledActionType":{ + "type":"structure", + "required":["ScheduledActionName"], + "members":{ + "AutoScalingGroupName":{"shape":"ResourceName"}, + "ScheduledActionName":{"shape":"ResourceName"} + } + }, + "DeleteTagsType":{ + "type":"structure", + "required":["Tags"], + "members":{ + "Tags":{"shape":"Tags"} + } + }, + "DescribeAccountLimitsAnswer":{ + "type":"structure", + "members":{ + "MaxNumberOfAutoScalingGroups":{"shape":"MaxNumberOfAutoScalingGroups"}, + "MaxNumberOfLaunchConfigurations":{"shape":"MaxNumberOfLaunchConfigurations"} + } + }, + "DescribeAdjustmentTypesAnswer":{ + "type":"structure", + "members":{ + "AdjustmentTypes":{"shape":"AdjustmentTypes"} + } + }, + "DescribeAutoScalingInstancesType":{ + "type":"structure", + "members":{ + "InstanceIds":{"shape":"InstanceIds"}, + "MaxRecords":{"shape":"MaxRecords"}, + "NextToken":{"shape":"XmlString"} + } + }, + "DescribeAutoScalingNotificationTypesAnswer":{ + "type":"structure", + "members":{ + "AutoScalingNotificationTypes":{"shape":"AutoScalingNotificationTypes"} + } + }, + "DescribeLifecycleHookTypesAnswer":{ + "type":"structure", + "members":{ + "LifecycleHookTypes":{"shape":"AutoScalingNotificationTypes"} + } + }, + "DescribeLifecycleHooksAnswer":{ + "type":"structure", + "members":{ + "LifecycleHooks":{"shape":"LifecycleHooks"} + } + }, + "DescribeLifecycleHooksType":{ + "type":"structure", + "required":["AutoScalingGroupName"], + "members":{ + "AutoScalingGroupName":{"shape":"ResourceName"}, + "LifecycleHookNames":{"shape":"LifecycleHookNames"} + } + }, + "DescribeLoadBalancersRequest":{ + "type":"structure", + "required":["AutoScalingGroupName"], + "members":{ + "AutoScalingGroupName":{"shape":"ResourceName"}, + "NextToken":{"shape":"XmlString"}, + "MaxRecords":{"shape":"MaxRecords"} + } + }, + "DescribeLoadBalancersResponse":{ + "type":"structure", + "members":{ + "LoadBalancers":{"shape":"LoadBalancerStates"}, + "NextToken":{"shape":"XmlString"} + } + }, + "DescribeMetricCollectionTypesAnswer":{ + "type":"structure", + "members":{ + "Metrics":{"shape":"MetricCollectionTypes"}, + "Granularities":{"shape":"MetricGranularityTypes"} + } + }, + "DescribeNotificationConfigurationsAnswer":{ + "type":"structure", + "required":["NotificationConfigurations"], + "members":{ + "NotificationConfigurations":{"shape":"NotificationConfigurations"}, + "NextToken":{"shape":"XmlString"} + } + }, + "DescribeNotificationConfigurationsType":{ + "type":"structure", + "members":{ + "AutoScalingGroupNames":{"shape":"AutoScalingGroupNames"}, + "NextToken":{"shape":"XmlString"}, + "MaxRecords":{"shape":"MaxRecords"} + } + }, + "DescribePoliciesType":{ + "type":"structure", + "members":{ + "AutoScalingGroupName":{"shape":"ResourceName"}, + "PolicyNames":{"shape":"PolicyNames"}, + "NextToken":{"shape":"XmlString"}, + "MaxRecords":{"shape":"MaxRecords"} + } + }, + "DescribeScalingActivitiesType":{ + "type":"structure", + "members":{ + "ActivityIds":{"shape":"ActivityIds"}, + "AutoScalingGroupName":{"shape":"ResourceName"}, + "MaxRecords":{"shape":"MaxRecords"}, + "NextToken":{"shape":"XmlString"} + } + }, + "DescribeScheduledActionsType":{ + "type":"structure", + "members":{ + "AutoScalingGroupName":{"shape":"ResourceName"}, + "ScheduledActionNames":{"shape":"ScheduledActionNames"}, + "StartTime":{"shape":"TimestampType"}, + "EndTime":{"shape":"TimestampType"}, + "NextToken":{"shape":"XmlString"}, + "MaxRecords":{"shape":"MaxRecords"} + } + }, + "DescribeTagsType":{ + "type":"structure", + "members":{ + "Filters":{"shape":"Filters"}, + "NextToken":{"shape":"XmlString"}, + "MaxRecords":{"shape":"MaxRecords"} + } + }, + "DescribeTerminationPolicyTypesAnswer":{ + "type":"structure", + "members":{ + "TerminationPolicyTypes":{"shape":"TerminationPolicies"} + } + }, + "DetachInstancesAnswer":{ + "type":"structure", + "members":{ + "Activities":{"shape":"Activities"} + } + }, + "DetachInstancesQuery":{ + "type":"structure", + "required":[ + "AutoScalingGroupName", + "ShouldDecrementDesiredCapacity" + ], + "members":{ + "InstanceIds":{"shape":"InstanceIds"}, + "AutoScalingGroupName":{"shape":"ResourceName"}, + "ShouldDecrementDesiredCapacity":{"shape":"ShouldDecrementDesiredCapacity"} + } + }, + "DetachLoadBalancersResultType":{ + "type":"structure", + "members":{ + } + }, + "DetachLoadBalancersType":{ + "type":"structure", + "members":{ + "AutoScalingGroupName":{"shape":"ResourceName"}, + "LoadBalancerNames":{"shape":"LoadBalancerNames"} + } + }, + "DisableMetricsCollectionQuery":{ + "type":"structure", + "required":["AutoScalingGroupName"], + "members":{ + "AutoScalingGroupName":{"shape":"ResourceName"}, + "Metrics":{"shape":"Metrics"} + } + }, + "Ebs":{ + "type":"structure", + "members":{ + "SnapshotId":{"shape":"XmlStringMaxLen255"}, + "VolumeSize":{"shape":"BlockDeviceEbsVolumeSize"}, + "VolumeType":{"shape":"BlockDeviceEbsVolumeType"}, + "DeleteOnTermination":{"shape":"BlockDeviceEbsDeleteOnTermination"}, + "Iops":{"shape":"BlockDeviceEbsIops"} + } + }, + "EbsOptimized":{"type":"boolean"}, + "EnableMetricsCollectionQuery":{ + "type":"structure", + "required":[ + "AutoScalingGroupName", + "Granularity" + ], + "members":{ + "AutoScalingGroupName":{"shape":"ResourceName"}, + "Metrics":{"shape":"Metrics"}, + "Granularity":{"shape":"XmlStringMaxLen255"} + } + }, + "EnabledMetric":{ + "type":"structure", + "members":{ + "Metric":{"shape":"XmlStringMaxLen255"}, + "Granularity":{"shape":"XmlStringMaxLen255"} + } + }, + "EnabledMetrics":{ + "type":"list", + "member":{"shape":"EnabledMetric"} + }, + "EnterStandbyAnswer":{ + "type":"structure", + "members":{ + "Activities":{"shape":"Activities"} + } + }, + "EnterStandbyQuery":{ + "type":"structure", + "required":[ + "AutoScalingGroupName", + "ShouldDecrementDesiredCapacity" + ], + "members":{ + "InstanceIds":{"shape":"InstanceIds"}, + "AutoScalingGroupName":{"shape":"ResourceName"}, + "ShouldDecrementDesiredCapacity":{"shape":"ShouldDecrementDesiredCapacity"} + } + }, + "ExecutePolicyType":{ + "type":"structure", + "required":["PolicyName"], + "members":{ + "AutoScalingGroupName":{"shape":"ResourceName"}, + "PolicyName":{"shape":"ResourceName"}, + "HonorCooldown":{"shape":"HonorCooldown"} + } + }, + "ExitStandbyAnswer":{ + "type":"structure", + "members":{ + "Activities":{"shape":"Activities"} + } + }, + "ExitStandbyQuery":{ + "type":"structure", + "required":["AutoScalingGroupName"], + "members":{ + "InstanceIds":{"shape":"InstanceIds"}, + "AutoScalingGroupName":{"shape":"ResourceName"} + } + }, + "Filter":{ + "type":"structure", + "members":{ + "Name":{"shape":"XmlString"}, + "Values":{"shape":"Values"} + } + }, + "Filters":{ + "type":"list", + "member":{"shape":"Filter"} + }, + "ForceDelete":{"type":"boolean"}, + "GlobalTimeout":{"type":"integer"}, + "HealthCheckGracePeriod":{"type":"integer"}, + "HeartbeatTimeout":{"type":"integer"}, + "HonorCooldown":{"type":"boolean"}, + "Instance":{ + "type":"structure", + "required":[ + "InstanceId", + "AvailabilityZone", + "LifecycleState", + "HealthStatus", + "LaunchConfigurationName" + ], + "members":{ + "InstanceId":{"shape":"XmlStringMaxLen16"}, + "AvailabilityZone":{"shape":"XmlStringMaxLen255"}, + "LifecycleState":{"shape":"LifecycleState"}, + "HealthStatus":{"shape":"XmlStringMaxLen32"}, + "LaunchConfigurationName":{"shape":"XmlStringMaxLen255"} + } + }, + "InstanceIds":{ + "type":"list", + "member":{"shape":"XmlStringMaxLen16"} + }, + "InstanceMonitoring":{ + "type":"structure", + "members":{ + "Enabled":{"shape":"MonitoringEnabled"} + } + }, + "Instances":{ + "type":"list", + "member":{"shape":"Instance"} + }, + "InvalidNextToken":{ + "type":"structure", + "members":{ + "message":{"shape":"XmlStringMaxLen255"} + }, + "error":{ + "code":"InvalidNextToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "LaunchConfiguration":{ + "type":"structure", + "required":[ + "LaunchConfigurationName", + "ImageId", + "InstanceType", + "CreatedTime" + ], + "members":{ + "LaunchConfigurationName":{"shape":"XmlStringMaxLen255"}, + "LaunchConfigurationARN":{"shape":"ResourceName"}, + "ImageId":{"shape":"XmlStringMaxLen255"}, + "KeyName":{"shape":"XmlStringMaxLen255"}, + "SecurityGroups":{"shape":"SecurityGroups"}, + "ClassicLinkVPCId":{"shape":"XmlStringMaxLen255"}, + "ClassicLinkVPCSecurityGroups":{"shape":"ClassicLinkVPCSecurityGroups"}, + "UserData":{"shape":"XmlStringUserData"}, + "InstanceType":{"shape":"XmlStringMaxLen255"}, + "KernelId":{"shape":"XmlStringMaxLen255"}, + "RamdiskId":{"shape":"XmlStringMaxLen255"}, + "BlockDeviceMappings":{"shape":"BlockDeviceMappings"}, + "InstanceMonitoring":{"shape":"InstanceMonitoring"}, + "SpotPrice":{"shape":"SpotPrice"}, + "IamInstanceProfile":{"shape":"XmlStringMaxLen1600"}, + "CreatedTime":{"shape":"TimestampType"}, + "EbsOptimized":{"shape":"EbsOptimized"}, + "AssociatePublicIpAddress":{"shape":"AssociatePublicIpAddress"}, + "PlacementTenancy":{"shape":"XmlStringMaxLen64"} + } + }, + "LaunchConfigurationNameType":{ + "type":"structure", + "required":["LaunchConfigurationName"], + "members":{ + "LaunchConfigurationName":{"shape":"ResourceName"} + } + }, + "LaunchConfigurationNames":{ + "type":"list", + "member":{"shape":"ResourceName"} + }, + "LaunchConfigurationNamesType":{ + "type":"structure", + "members":{ + "LaunchConfigurationNames":{"shape":"LaunchConfigurationNames"}, + "NextToken":{"shape":"XmlString"}, + "MaxRecords":{"shape":"MaxRecords"} + } + }, + "LaunchConfigurations":{ + "type":"list", + "member":{"shape":"LaunchConfiguration"} + }, + "LaunchConfigurationsType":{ + "type":"structure", + "required":["LaunchConfigurations"], + "members":{ + "LaunchConfigurations":{"shape":"LaunchConfigurations"}, + "NextToken":{"shape":"XmlString"} + } + }, + "LifecycleActionResult":{"type":"string"}, + "LifecycleActionToken":{ + "type":"string", + "min":36, + "max":36 + }, + "LifecycleHook":{ + "type":"structure", + "members":{ + "LifecycleHookName":{"shape":"AsciiStringMaxLen255"}, + "AutoScalingGroupName":{"shape":"ResourceName"}, + "LifecycleTransition":{"shape":"LifecycleTransition"}, + "NotificationTargetARN":{"shape":"ResourceName"}, + "RoleARN":{"shape":"ResourceName"}, + "NotificationMetadata":{"shape":"XmlStringMaxLen1023"}, + "HeartbeatTimeout":{"shape":"HeartbeatTimeout"}, + "GlobalTimeout":{"shape":"GlobalTimeout"}, + "DefaultResult":{"shape":"LifecycleActionResult"} + } + }, + "LifecycleHookNames":{ + "type":"list", + "member":{"shape":"AsciiStringMaxLen255"} + }, + "LifecycleHooks":{ + "type":"list", + "member":{"shape":"LifecycleHook"} + }, + "LifecycleState":{ + "type":"string", + "enum":[ + "Pending", + "Pending:Wait", + "Pending:Proceed", + "Quarantined", + "InService", + "Terminating", + "Terminating:Wait", + "Terminating:Proceed", + "Terminated", + "Detaching", + "Detached", + "EnteringStandby", + "Standby" + ] + }, + "LifecycleTransition":{"type":"string"}, + "LimitExceededFault":{ + "type":"structure", + "members":{ + "message":{"shape":"XmlStringMaxLen255"} + }, + "error":{ + "code":"LimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "LoadBalancerNames":{ + "type":"list", + "member":{"shape":"XmlStringMaxLen255"} + }, + "LoadBalancerState":{ + "type":"structure", + "members":{ + "LoadBalancerName":{"shape":"XmlStringMaxLen255"}, + "State":{"shape":"XmlStringMaxLen255"} + } + }, + "LoadBalancerStates":{ + "type":"list", + "member":{"shape":"LoadBalancerState"} + }, + "MaxNumberOfAutoScalingGroups":{"type":"integer"}, + "MaxNumberOfLaunchConfigurations":{"type":"integer"}, + "MaxRecords":{"type":"integer"}, + "MetricCollectionType":{ + "type":"structure", + "members":{ + "Metric":{"shape":"XmlStringMaxLen255"} + } + }, + "MetricCollectionTypes":{ + "type":"list", + "member":{"shape":"MetricCollectionType"} + }, + "MetricGranularityType":{ + "type":"structure", + "members":{ + "Granularity":{"shape":"XmlStringMaxLen255"} + } + }, + "MetricGranularityTypes":{ + "type":"list", + "member":{"shape":"MetricGranularityType"} + }, + "Metrics":{ + "type":"list", + "member":{"shape":"XmlStringMaxLen255"} + }, + "MinAdjustmentStep":{"type":"integer"}, + "MonitoringEnabled":{"type":"boolean"}, + "NoDevice":{"type":"boolean"}, + "NotificationConfiguration":{ + "type":"structure", + "members":{ + "AutoScalingGroupName":{"shape":"ResourceName"}, + "TopicARN":{"shape":"ResourceName"}, + "NotificationType":{"shape":"XmlStringMaxLen255"} + } + }, + "NotificationConfigurations":{ + "type":"list", + "member":{"shape":"NotificationConfiguration"} + }, + "PoliciesType":{ + "type":"structure", + "members":{ + "ScalingPolicies":{"shape":"ScalingPolicies"}, + "NextToken":{"shape":"XmlString"} + } + }, + "PolicyARNType":{ + "type":"structure", + "members":{ + "PolicyARN":{"shape":"ResourceName"} + } + }, + "PolicyIncrement":{"type":"integer"}, + "PolicyNames":{ + "type":"list", + "member":{"shape":"ResourceName"} + }, + "ProcessNames":{ + "type":"list", + "member":{"shape":"XmlStringMaxLen255"} + }, + "ProcessType":{ + "type":"structure", + "required":["ProcessName"], + "members":{ + "ProcessName":{"shape":"XmlStringMaxLen255"} + } + }, + "Processes":{ + "type":"list", + "member":{"shape":"ProcessType"} + }, + "ProcessesType":{ + "type":"structure", + "members":{ + "Processes":{"shape":"Processes"} + } + }, + "Progress":{"type":"integer"}, + "PropagateAtLaunch":{"type":"boolean"}, + "PutLifecycleHookAnswer":{ + "type":"structure", + "members":{ + } + }, + "PutLifecycleHookType":{ + "type":"structure", + "required":[ + "LifecycleHookName", + "AutoScalingGroupName" + ], + "members":{ + "LifecycleHookName":{"shape":"AsciiStringMaxLen255"}, + "AutoScalingGroupName":{"shape":"ResourceName"}, + "LifecycleTransition":{"shape":"LifecycleTransition"}, + "RoleARN":{"shape":"ResourceName"}, + "NotificationTargetARN":{"shape":"ResourceName"}, + "NotificationMetadata":{"shape":"XmlStringMaxLen1023"}, + "HeartbeatTimeout":{"shape":"HeartbeatTimeout"}, + "DefaultResult":{"shape":"LifecycleActionResult"} + } + }, + "PutNotificationConfigurationType":{ + "type":"structure", + "required":[ + "AutoScalingGroupName", + "TopicARN", + "NotificationTypes" + ], + "members":{ + "AutoScalingGroupName":{"shape":"ResourceName"}, + "TopicARN":{"shape":"ResourceName"}, + "NotificationTypes":{"shape":"AutoScalingNotificationTypes"} + } + }, + "PutScalingPolicyType":{ + "type":"structure", + "required":[ + "AutoScalingGroupName", + "PolicyName", + "AdjustmentType" + ], + "members":{ + "AutoScalingGroupName":{"shape":"ResourceName"}, + "PolicyName":{"shape":"XmlStringMaxLen255"}, + "AdjustmentType":{"shape":"XmlStringMaxLen255"}, + "MinAdjustmentStep":{"shape":"MinAdjustmentStep"}, + "ScalingAdjustment":{"shape":"PolicyIncrement"}, + "Cooldown":{"shape":"Cooldown"} + } + }, + "PutScheduledUpdateGroupActionType":{ + "type":"structure", + "required":[ + "AutoScalingGroupName", + "ScheduledActionName" + ], + "members":{ + "AutoScalingGroupName":{"shape":"ResourceName"}, + "ScheduledActionName":{"shape":"XmlStringMaxLen255"}, + "Time":{"shape":"TimestampType"}, + "StartTime":{"shape":"TimestampType"}, + "EndTime":{"shape":"TimestampType"}, + "Recurrence":{"shape":"XmlStringMaxLen255"}, + "MinSize":{"shape":"AutoScalingGroupMinSize"}, + "MaxSize":{"shape":"AutoScalingGroupMaxSize"}, + "DesiredCapacity":{"shape":"AutoScalingGroupDesiredCapacity"} + } + }, + "RecordLifecycleActionHeartbeatAnswer":{ + "type":"structure", + "members":{ + } + }, + "RecordLifecycleActionHeartbeatType":{ + "type":"structure", + "required":[ + "LifecycleHookName", + "AutoScalingGroupName", + "LifecycleActionToken" + ], + "members":{ + "LifecycleHookName":{"shape":"AsciiStringMaxLen255"}, + "AutoScalingGroupName":{"shape":"ResourceName"}, + "LifecycleActionToken":{"shape":"LifecycleActionToken"} + } + }, + "ResourceContentionFault":{ + "type":"structure", + "members":{ + "message":{"shape":"XmlStringMaxLen255"} + }, + "error":{ + "code":"ResourceContention", + "httpStatusCode":500, + "senderFault":true + }, + "exception":true + }, + "ResourceInUseFault":{ + "type":"structure", + "members":{ + "message":{"shape":"XmlStringMaxLen255"} + }, + "error":{ + "code":"ResourceInUse", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ResourceName":{ + "type":"string", + "min":1, + "max":1600, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "ScalingActivityInProgressFault":{ + "type":"structure", + "members":{ + "message":{"shape":"XmlStringMaxLen255"} + }, + "error":{ + "code":"ScalingActivityInProgress", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ScalingActivityStatusCode":{ + "type":"string", + "enum":[ + "WaitingForSpotInstanceRequestId", + "WaitingForSpotInstanceId", + "WaitingForInstanceId", + "PreInService", + "InProgress", + "WaitingForELBConnectionDraining", + "MidLifecycleAction", + "Successful", + "Failed", + "Cancelled" + ] + }, + "ScalingPolicies":{ + "type":"list", + "member":{"shape":"ScalingPolicy"} + }, + "ScalingPolicy":{ + "type":"structure", + "members":{ + "AutoScalingGroupName":{"shape":"XmlStringMaxLen255"}, + "PolicyName":{"shape":"XmlStringMaxLen255"}, + "PolicyARN":{"shape":"ResourceName"}, + "MinAdjustmentStep":{"shape":"MinAdjustmentStep"}, + "AdjustmentType":{"shape":"XmlStringMaxLen255"}, + "ScalingAdjustment":{"shape":"PolicyIncrement"}, + "Cooldown":{"shape":"Cooldown"}, + "Alarms":{"shape":"Alarms"} + } + }, + "ScalingProcessQuery":{ + "type":"structure", + "required":["AutoScalingGroupName"], + "members":{ + "AutoScalingGroupName":{"shape":"ResourceName"}, + "ScalingProcesses":{"shape":"ProcessNames"} + } + }, + "ScheduledActionNames":{ + "type":"list", + "member":{"shape":"ResourceName"} + }, + "ScheduledActionsType":{ + "type":"structure", + "members":{ + "ScheduledUpdateGroupActions":{"shape":"ScheduledUpdateGroupActions"}, + "NextToken":{"shape":"XmlString"} + } + }, + "ScheduledUpdateGroupAction":{ + "type":"structure", + "members":{ + "AutoScalingGroupName":{"shape":"XmlStringMaxLen255"}, + "ScheduledActionName":{"shape":"XmlStringMaxLen255"}, + "ScheduledActionARN":{"shape":"ResourceName"}, + "Time":{"shape":"TimestampType"}, + "StartTime":{"shape":"TimestampType"}, + "EndTime":{"shape":"TimestampType"}, + "Recurrence":{"shape":"XmlStringMaxLen255"}, + "MinSize":{"shape":"AutoScalingGroupMinSize"}, + "MaxSize":{"shape":"AutoScalingGroupMaxSize"}, + "DesiredCapacity":{"shape":"AutoScalingGroupDesiredCapacity"} + } + }, + "ScheduledUpdateGroupActions":{ + "type":"list", + "member":{"shape":"ScheduledUpdateGroupAction"} + }, + "SecurityGroups":{ + "type":"list", + "member":{"shape":"XmlString"} + }, + "SetDesiredCapacityType":{ + "type":"structure", + "required":[ + "AutoScalingGroupName", + "DesiredCapacity" + ], + "members":{ + "AutoScalingGroupName":{"shape":"ResourceName"}, + "DesiredCapacity":{"shape":"AutoScalingGroupDesiredCapacity"}, + "HonorCooldown":{"shape":"HonorCooldown"} + } + }, + "SetInstanceHealthQuery":{ + "type":"structure", + "required":[ + "InstanceId", + "HealthStatus" + ], + "members":{ + "InstanceId":{"shape":"XmlStringMaxLen16"}, + "HealthStatus":{"shape":"XmlStringMaxLen32"}, + "ShouldRespectGracePeriod":{"shape":"ShouldRespectGracePeriod"} + } + }, + "ShouldDecrementDesiredCapacity":{"type":"boolean"}, + "ShouldRespectGracePeriod":{"type":"boolean"}, + "SpotPrice":{ + "type":"string", + "min":1, + "max":255 + }, + "SuspendedProcess":{ + "type":"structure", + "members":{ + "ProcessName":{"shape":"XmlStringMaxLen255"}, + "SuspensionReason":{"shape":"XmlStringMaxLen255"} + } + }, + "SuspendedProcesses":{ + "type":"list", + "member":{"shape":"SuspendedProcess"} + }, + "Tag":{ + "type":"structure", + "required":["Key"], + "members":{ + "ResourceId":{"shape":"XmlString"}, + "ResourceType":{"shape":"XmlString"}, + "Key":{"shape":"TagKey"}, + "Value":{"shape":"TagValue"}, + "PropagateAtLaunch":{"shape":"PropagateAtLaunch"} + } + }, + "TagDescription":{ + "type":"structure", + "members":{ + "ResourceId":{"shape":"XmlString"}, + "ResourceType":{"shape":"XmlString"}, + "Key":{"shape":"TagKey"}, + "Value":{"shape":"TagValue"}, + "PropagateAtLaunch":{"shape":"PropagateAtLaunch"} + } + }, + "TagDescriptionList":{ + "type":"list", + "member":{"shape":"TagDescription"} + }, + "TagKey":{ + "type":"string", + "min":1, + "max":128, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "TagValue":{ + "type":"string", + "min":0, + "max":256, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "Tags":{ + "type":"list", + "member":{"shape":"Tag"} + }, + "TagsType":{ + "type":"structure", + "members":{ + "Tags":{"shape":"TagDescriptionList"}, + "NextToken":{"shape":"XmlString"} + } + }, + "TerminateInstanceInAutoScalingGroupType":{ + "type":"structure", + "required":[ + "InstanceId", + "ShouldDecrementDesiredCapacity" + ], + "members":{ + "InstanceId":{"shape":"XmlStringMaxLen16"}, + "ShouldDecrementDesiredCapacity":{"shape":"ShouldDecrementDesiredCapacity"} + } + }, + "TerminationPolicies":{ + "type":"list", + "member":{"shape":"XmlStringMaxLen1600"} + }, + "TimestampType":{"type":"timestamp"}, + "UpdateAutoScalingGroupType":{ + "type":"structure", + "required":["AutoScalingGroupName"], + "members":{ + "AutoScalingGroupName":{"shape":"ResourceName"}, + "LaunchConfigurationName":{"shape":"ResourceName"}, + "MinSize":{"shape":"AutoScalingGroupMinSize"}, + "MaxSize":{"shape":"AutoScalingGroupMaxSize"}, + "DesiredCapacity":{"shape":"AutoScalingGroupDesiredCapacity"}, + "DefaultCooldown":{"shape":"Cooldown"}, + "AvailabilityZones":{"shape":"AvailabilityZones"}, + "HealthCheckType":{"shape":"XmlStringMaxLen32"}, + "HealthCheckGracePeriod":{"shape":"HealthCheckGracePeriod"}, + "PlacementGroup":{"shape":"XmlStringMaxLen255"}, + "VPCZoneIdentifier":{"shape":"XmlStringMaxLen255"}, + "TerminationPolicies":{"shape":"TerminationPolicies"} + } + }, + "Values":{ + "type":"list", + "member":{"shape":"XmlString"} + }, + "XmlString":{ + "type":"string", + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "XmlStringMaxLen1023":{ + "type":"string", + "min":1, + "max":1023, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "XmlStringMaxLen16":{ + "type":"string", + "min":1, + "max":16, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "XmlStringMaxLen1600":{ + "type":"string", + "min":1, + "max":1600, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "XmlStringMaxLen255":{ + "type":"string", + "min":1, + "max":255, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "XmlStringMaxLen32":{ + "type":"string", + "min":1, + "max":32, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "XmlStringMaxLen64":{ + "type":"string", + "min":1, + "max":64, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "XmlStringUserData":{ + "type":"string", + "max":21847, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + } + } +} diff --git a/lib/aws-sdk/Aws/data/autoscaling/2011-01-01/docs-2.json b/lib/aws-sdk/Aws/data/autoscaling/2011-01-01/docs-2.json new file mode 100644 index 0000000..7f72b50 --- /dev/null +++ b/lib/aws-sdk/Aws/data/autoscaling/2011-01-01/docs-2.json @@ -0,0 +1,1308 @@ +{ + "version": "2.0", + "operations": { + "AttachInstances": "

Attaches one or more EC2 instances to the specified Auto Scaling group.

For more information, see Attach EC2 Instances to Your Auto Scaling Group in the Auto Scaling Developer Guide.

", + "AttachLoadBalancers": "

Attaches one or more load balancers to the specified Auto Scaling group.

To describe the load balancers for an Auto Scaling group, use DescribeLoadBalancers. To detach the load balancer from the Auto Scaling group, use DetachLoadBalancers.

For more information, see Attach a Load Balancer to Your Auto Scaling Group in the Auto Scaling Developer Guide.

", + "CompleteLifecycleAction": "

Completes the lifecycle action for the associated token initiated under the given lifecycle hook with the specified result.

This operation is a part of the basic sequence for adding a lifecycle hook to an Auto Scaling group:

  1. Create a notification target. A target can be either an Amazon SQS queue or an Amazon SNS topic.
  2. Create an IAM role. This role allows Auto Scaling to publish lifecycle notifications to the designated SQS queue or SNS topic.
  3. Create the lifecycle hook. You can create a hook that acts when instances launch or when instances terminate.
  4. If necessary, record the lifecycle action heartbeat to keep the instance in a pending state.
  5. Complete the lifecycle action.

For more information, see Auto Scaling Pending State and Auto Scaling Terminating State in the Auto Scaling Developer Guide.

", + "CreateAutoScalingGroup": "

Creates an Auto Scaling group with the specified name and attributes.

If you exceed your maximum limit of Auto Scaling groups, which by default is 20 per region, the call fails. For information about viewing and updating these limits, see DescribeAccountLimits.

For more information, see Auto Scaling Groups in the Auto Scaling Developer Guide.

", + "CreateLaunchConfiguration": "

Creates a launch configuration.

If you exceed your maximum limit of launch configurations, which by default is 100 per region, the call fails. For information about viewing and updating these limits, see DescribeAccountLimits.

For more information, see Launch Configurations in the Auto Scaling Developer Guide.

", + "CreateOrUpdateTags": "

Creates or updates tags for the specified Auto Scaling group.

A tag is defined by its resource ID, resource type, key, value, and propagate flag. The value and the propagate flag are optional parameters. The only supported resource type is auto-scaling-group, and the resource ID must be the name of the group. The PropagateAtLaunch flag determines whether the tag is added to instances launched in the group. Valid values are true or false.

When you specify a tag with a key that already exists, the operation overwrites the previous tag definition, and you do not get an error message.

For more information, see Tagging Auto Scaling Groups and Instances in the Auto Scaling Developer Guide.

", + "DeleteAutoScalingGroup": "

Deletes the specified Auto Scaling group.

The group must have no instances and no scaling activities in progress.

To remove all instances before calling DeleteAutoScalingGroup, call UpdateAutoScalingGroup to set the minimum and maximum size of the Auto Scaling group to zero.

", + "DeleteLaunchConfiguration": "

Deletes the specified launch configuration.

The launch configuration must not be attached to an Auto Scaling group. When this call completes, the launch configuration is no longer available for use.

", + "DeleteLifecycleHook": "

Deletes the specified lifecycle hook.

If there are any outstanding lifecycle actions, they are completed first (ABANDON for launching instances, CONTINUE for terminating instances).

", + "DeleteNotificationConfiguration": "

Deletes the specified notification.

", + "DeletePolicy": "

Deletes the specified Auto Scaling policy.

", + "DeleteScheduledAction": "

Deletes the specified scheduled action.

", + "DeleteTags": "

Deletes the specified tags.

", + "DescribeAccountLimits": "

Describes the current Auto Scaling resource limits for your AWS account.

For information about requesting an increase in these limits, see AWS Service Limits in the Amazon Web Services General Reference.

", + "DescribeAdjustmentTypes": "

Describes the policy adjustment types for use with PutScalingPolicy.

", + "DescribeAutoScalingGroups": "

Describes one or more Auto Scaling groups. If a list of names is not provided, the call describes all Auto Scaling groups.

", + "DescribeAutoScalingInstances": "

Describes one or more Auto Scaling instances. If a list is not provided, the call describes all instances.

", + "DescribeAutoScalingNotificationTypes": "

Describes the notification types that are supported by Auto Scaling.

", + "DescribeLaunchConfigurations": "

Describes one or more launch configurations. If you omit the list of names, then the call describes all launch configurations.

", + "DescribeLifecycleHookTypes": "

Describes the available types of lifecycle hooks.

", + "DescribeLifecycleHooks": "

Describes the lifecycle hooks for the specified Auto Scaling group.

", + "DescribeLoadBalancers": "

Describes the load balancers for the specified Auto Scaling group.

", + "DescribeMetricCollectionTypes": "

Describes the available CloudWatch metrics for Auto Scaling.

Note that the GroupStandbyInstances metric is not returned by default. You must explicitly request this metric when calling EnableMetricsCollection.

", + "DescribeNotificationConfigurations": "

Describes the notification actions associated with the specified Auto Scaling group.

", + "DescribePolicies": "

Describes the policies for the specified Auto Scaling group.

", + "DescribeScalingActivities": "

Describes one or more scaling activities for the specified Auto Scaling group. If you omit the ActivityIds, the call returns all activities from the past six weeks. Activities are sorted by the start time. Activities still in progress appear first on the list.

", + "DescribeScalingProcessTypes": "

Describes the scaling process types for use with ResumeProcesses and SuspendProcesses.

", + "DescribeScheduledActions": "

Describes the actions scheduled for your Auto Scaling group that haven't run. To describe the actions that have already run, use DescribeScalingActivities.

", + "DescribeTags": "

Describes the specified tags.

You can use filters to limit the results. For example, you can query for the tags for a specific Auto Scaling group. You can specify multiple values for a filter. A tag must match at least one of the specified values for it to be included in the results.

You can also specify multiple filters. The result includes information for a particular tag only if it matches all the filters. If there's no match, no special message is returned.

", + "DescribeTerminationPolicyTypes": "

Describes the termination policies supported by Auto Scaling.

", + "DetachInstances": "

Removes one or more instances from the specified Auto Scaling group. After the instances are detached, you can manage them independently from the rest of the Auto Scaling group.

For more information, see Detach EC2 Instances from Your Auto Scaling Group in the Auto Scaling Developer Guide.

", + "DetachLoadBalancers": "

Removes one or more load balancers from the specified Auto Scaling group.

When you detach a load balancer, it enters the Removing state while deregistering the instances in the group. When all instances are deregistered, then you can no longer describe the load balancer using DescribeLoadBalancers. Note that the instances remain running.

", + "DisableMetricsCollection": "

Disables monitoring of the specified metrics for the specified Auto Scaling group.

", + "EnableMetricsCollection": "

Enables monitoring of the specified metrics for the specified Auto Scaling group.

You can only enable metrics collection if InstanceMonitoring in the launch configuration for the group is set to True.

", + "EnterStandby": "

Moves the specified instances into Standby mode.

For more information, see Auto Scaling InService State in the Auto Scaling Developer Guide.

", + "ExecutePolicy": "

Executes the specified policy.

", + "ExitStandby": "

Moves the specified instances out of Standby mode.

For more information, see Auto Scaling InService State in the Auto Scaling Developer Guide.

", + "PutLifecycleHook": "

Creates or updates a lifecycle hook for the specified Auto Scaling Group.

A lifecycle hook tells Auto Scaling that you want to perform an action on an instance that is not actively in service; for example, either when the instance launches or before the instance terminates.

This operation is a part of the basic sequence for adding a lifecycle hook to an Auto Scaling group:

  1. Create a notification target. A target can be either an Amazon SQS queue or an Amazon SNS topic.
  2. Create an IAM role. This role allows Auto Scaling to publish lifecycle notifications to the designated SQS queue or SNS topic.
  3. Create the lifecycle hook. You can create a hook that acts when instances launch or when instances terminate.
  4. If necessary, record the lifecycle action heartbeat to keep the instance in a pending state.
  5. Complete the lifecycle action.

For more information, see Auto Scaling Pending State and Auto Scaling Terminating State in the Auto Scaling Developer Guide.

", + "PutNotificationConfiguration": "

Configures an Auto Scaling group to send notifications when specified events take place. Subscribers to this topic can have messages for events delivered to an endpoint such as a web server or email address.

For more information see Getting Notifications When Your Auto Scaling Group Changes in the Auto Scaling Developer Guide.

This configuration overwrites an existing configuration.

", + "PutScalingPolicy": "

Creates or updates a policy for an Auto Scaling group. To update an existing policy, use the existing policy name and set the parameters you want to change. Any existing parameter not changed in an update to an existing policy is not changed in this update request.

", + "PutScheduledUpdateGroupAction": "

Creates or updates a scheduled scaling action for an Auto Scaling group. When updating a scheduled scaling action, if you leave a parameter unspecified, the corresponding value remains unchanged in the affected Auto Scaling group.

For more information, see Scheduled Scaling in the Auto Scaling Developer Guide.

", + "RecordLifecycleActionHeartbeat": "

Records a heartbeat for the lifecycle action associated with a specific token. This extends the timeout by the length of time defined by the HeartbeatTimeout parameter of PutLifecycleHook.

This operation is a part of the basic sequence for adding a lifecycle hook to an Auto Scaling group:

  1. Create a notification target. A target can be either an Amazon SQS queue or an Amazon SNS topic.
  2. Create an IAM role. This role allows Auto Scaling to publish lifecycle notifications to the designated SQS queue or SNS topic.
  3. Create the lifecycle hook. You can create a hook that acts when instances launch or when instances terminate.
  4. If necessary, record the lifecycle action heartbeat to keep the instance in a pending state.
  5. Complete the lifecycle action.

For more information, see Auto Scaling Pending State and Auto Scaling Terminating State in the Auto Scaling Developer Guide.

", + "ResumeProcesses": "

Resumes the specified suspended Auto Scaling processes for the specified Auto Scaling group. To resume specific processes, use the ScalingProcesses parameter. To resume all processes, omit the ScalingProcesses parameter. For more information, see Suspend and Resume Auto Scaling Processes in the Auto Scaling Developer Guide.

", + "SetDesiredCapacity": "

Sets the size of the specified Auto Scaling group.

For more information about desired capacity, see What Is Auto Scaling? in the Auto Scaling Developer Guide.

", + "SetInstanceHealth": "

Sets the health status of the specified instance.

For more information, see Health Checks in the Auto Scaling Developer Guide.

", + "SuspendProcesses": "

Suspends the specified Auto Scaling processes for the specified Auto Scaling group. To suspend specific processes, use the ScalingProcesses parameter. To suspend all processes, omit the ScalingProcesses parameter.

Note that if you suspend either the Launch or Terminate process types, it can prevent other process types from functioning properly.

To resume processes that have been suspended, use ResumeProcesses.

For more information, see Suspend and Resume Auto Scaling Processes in the Auto Scaling Developer Guide.

", + "TerminateInstanceInAutoScalingGroup": "

Terminates the specified instance and optionally adjusts the desired group size.

This call simply makes a termination request. The instances is not terminated immediately.

", + "UpdateAutoScalingGroup": "

Updates the configuration for the specified Auto Scaling group.

To update an Auto Scaling group with a launch configuration with InstanceMonitoring set to False, you must first disable the collection of group metrics. Otherwise, you will get an error. If you have previously enabled the collection of group metrics, you can disable it using DisableMetricsCollection.

The new settings are registered upon the completion of this call. Any launch configuration settings take effect on any triggers after this call returns. Scaling activities that are currently in progress aren't affected.

Note the following:

  • If you specify a new value for MinSize without specifying a value for DesiredCapacity, and the new MinSize is larger than the current size of the group, we implicitly call SetDesiredCapacity to set the size of the group to the new value of MinSize.

  • If you specify a new value for MaxSize without specifying a value for DesiredCapacity, and the new MaxSize is smaller than the current size of the group, we implicitly call SetDesiredCapacity to set the size of the group to the new value of MaxSize.

  • All other optional parameters are left unchanged if not specified.

" + }, + "service": "Auto Scaling

Auto Scaling is designed to automatically launch or terminate EC2 instances based on user-defined policies, schedules, and health checks. Use this service in conjunction with the Amazon CloudWatch and Elastic Load Balancing services.

", + "shapes": { + "Activities": { + "base": null, + "refs": { + "ActivitiesType$Activities": "

The scaling activities.

", + "DetachInstancesAnswer$Activities": "

The activities related to detaching the instances from the Auto Scaling group.

", + "EnterStandbyAnswer$Activities": "

The activities related to moving instances into Standby mode.

", + "ExitStandbyAnswer$Activities": "

The activities related to moving instances out of Standby mode.

" + } + }, + "ActivitiesType": { + "base": null, + "refs": { + } + }, + "Activity": { + "base": "

Describes scaling activity, which is a long-running process that represents a change to your Auto Scaling group, such as changing its size or replacing an instance.

", + "refs": { + "Activities$member": null, + "ActivityType$Activity": "

A scaling activity.

" + } + }, + "ActivityIds": { + "base": null, + "refs": { + "DescribeScalingActivitiesType$ActivityIds": "

A list containing the activity IDs of the desired scaling activities. If this list is omitted, all activities are described. If an AutoScalingGroupName is provided, the results are limited to that group. The list of requested activities cannot contain more than 50 items. If unknown activities are requested, they are ignored with no error.

" + } + }, + "ActivityType": { + "base": null, + "refs": { + } + }, + "AdjustmentType": { + "base": "

Describes a policy adjustment type.

For more information, see Dynamic Scaling in the Auto Scaling Developer Guide.

", + "refs": { + "AdjustmentTypes$member": null + } + }, + "AdjustmentTypes": { + "base": null, + "refs": { + "DescribeAdjustmentTypesAnswer$AdjustmentTypes": "

The policy adjustment types.

" + } + }, + "Alarm": { + "base": "

Describes an alarm.

", + "refs": { + "Alarms$member": null + } + }, + "Alarms": { + "base": null, + "refs": { + "ScalingPolicy$Alarms": "

The CloudWatch alarms related to the policy.

" + } + }, + "AlreadyExistsFault": { + "base": "

You already have an Auto Scaling group or launch configuration with this name.

", + "refs": { + } + }, + "AsciiStringMaxLen255": { + "base": null, + "refs": { + "CompleteLifecycleActionType$LifecycleHookName": "

The name of the lifecycle hook.

", + "DeleteLifecycleHookType$LifecycleHookName": "

The name of the lifecycle hook.

", + "LifecycleHook$LifecycleHookName": "

The name of the lifecycle hook.

", + "LifecycleHookNames$member": null, + "PutLifecycleHookType$LifecycleHookName": "

The name of the lifecycle hook.

", + "RecordLifecycleActionHeartbeatType$LifecycleHookName": "

The name of the lifecycle hook.

" + } + }, + "AssociatePublicIpAddress": { + "base": null, + "refs": { + "CreateLaunchConfigurationType$AssociatePublicIpAddress": "

Used for groups that launch instances into a virtual private cloud (VPC). Specifies whether to assign a public IP address to each instance. For more information, see Auto Scaling and Amazon Virtual Private Cloud in the Auto Scaling Developer Guide.

If you specify a value for this parameter, be sure to specify at least one subnet using the VPCZoneIdentifier parameter when you create your group.

Default: If the instance is launched into a default subnet, the default is true. If the instance is launched into a nondefault subnet, the default is false. For more information, see Supported Platforms in the Amazon Elastic Compute Cloud User Guide.

", + "LaunchConfiguration$AssociatePublicIpAddress": "

Specifies whether the instances are associated with a public IP address (true) or not (false).

" + } + }, + "AttachInstancesQuery": { + "base": null, + "refs": { + } + }, + "AttachLoadBalancersResultType": { + "base": null, + "refs": { + } + }, + "AttachLoadBalancersType": { + "base": null, + "refs": { + } + }, + "AutoScalingGroup": { + "base": "

Describes an Auto Scaling group.

", + "refs": { + "AutoScalingGroups$member": null + } + }, + "AutoScalingGroupDesiredCapacity": { + "base": null, + "refs": { + "AutoScalingGroup$DesiredCapacity": "

The desired size of the group.

", + "CreateAutoScalingGroupType$DesiredCapacity": "

The number of EC2 instances that should be running in the group. This value must be greater than or equal to the minimum size of the group and less than or equal to the maximum size of the group.

", + "PutScheduledUpdateGroupActionType$DesiredCapacity": "

The number of EC2 instances that should be running in the group.

", + "ScheduledUpdateGroupAction$DesiredCapacity": "

The number of instances you prefer to maintain in the group.

", + "SetDesiredCapacityType$DesiredCapacity": "

The number of EC2 instances that should be running in the Auto Scaling group.

", + "UpdateAutoScalingGroupType$DesiredCapacity": "

The number of EC2 instances that should be running in the Auto Scaling group. This value must be greater than or equal to the minimum size of the group and less than or equal to the maximum size of the group.

" + } + }, + "AutoScalingGroupMaxSize": { + "base": null, + "refs": { + "AutoScalingGroup$MaxSize": "

The maximum size of the group.

", + "CreateAutoScalingGroupType$MaxSize": "

The maximum size of the group.

", + "PutScheduledUpdateGroupActionType$MaxSize": "

The maximum size for the Auto Scaling group.

", + "ScheduledUpdateGroupAction$MaxSize": "

The maximum size of the group.

", + "UpdateAutoScalingGroupType$MaxSize": "

The maximum size of the Auto Scaling group.

" + } + }, + "AutoScalingGroupMinSize": { + "base": null, + "refs": { + "AutoScalingGroup$MinSize": "

The minimum size of the group.

", + "CreateAutoScalingGroupType$MinSize": "

The minimum size of the group.

", + "PutScheduledUpdateGroupActionType$MinSize": "

The minimum size for the Auto Scaling group.

", + "ScheduledUpdateGroupAction$MinSize": "

The minimum size of the group.

", + "UpdateAutoScalingGroupType$MinSize": "

The minimum size of the Auto Scaling group.

" + } + }, + "AutoScalingGroupNames": { + "base": null, + "refs": { + "AutoScalingGroupNamesType$AutoScalingGroupNames": "

The group names.

", + "DescribeNotificationConfigurationsType$AutoScalingGroupNames": "

The name of the group.

" + } + }, + "AutoScalingGroupNamesType": { + "base": null, + "refs": { + } + }, + "AutoScalingGroups": { + "base": null, + "refs": { + "AutoScalingGroupsType$AutoScalingGroups": "

The groups.

" + } + }, + "AutoScalingGroupsType": { + "base": null, + "refs": { + } + }, + "AutoScalingInstanceDetails": { + "base": "

Describes an EC2 instance associated with an Auto Scaling group.

", + "refs": { + "AutoScalingInstances$member": null + } + }, + "AutoScalingInstances": { + "base": null, + "refs": { + "AutoScalingInstancesType$AutoScalingInstances": "

The instances.

" + } + }, + "AutoScalingInstancesType": { + "base": null, + "refs": { + } + }, + "AutoScalingNotificationTypes": { + "base": null, + "refs": { + "DescribeAutoScalingNotificationTypesAnswer$AutoScalingNotificationTypes": "

One or more of the following notification types:

  • autoscaling:EC2_INSTANCE_LAUNCH

  • autoscaling:EC2_INSTANCE_LAUNCH_ERROR

  • autoscaling:EC2_INSTANCE_TERMINATE

  • autoscaling:EC2_INSTANCE_TERMINATE_ERROR

  • autoscaling:TEST_NOTIFICATION

", + "DescribeLifecycleHookTypesAnswer$LifecycleHookTypes": "

One or more of the following notification types:

  • autoscaling:EC2_INSTANCE_LAUNCHING

  • autoscaling:EC2_INSTANCE_TERMINATING

", + "PutNotificationConfigurationType$NotificationTypes": "

The type of event that will cause the notification to be sent. For details about notification types supported by Auto Scaling, see DescribeAutoScalingNotificationTypes.

" + } + }, + "AvailabilityZones": { + "base": null, + "refs": { + "AutoScalingGroup$AvailabilityZones": "

One or more Availability Zones for the group.

", + "CreateAutoScalingGroupType$AvailabilityZones": "

One or more Availability Zones for the group. This parameter is optional if you specify subnets using the VPCZoneIdentifier parameter.

", + "UpdateAutoScalingGroupType$AvailabilityZones": "

One or more Availability Zones for the group.

" + } + }, + "BlockDeviceEbsDeleteOnTermination": { + "base": null, + "refs": { + "Ebs$DeleteOnTermination": "

Indicates whether to delete the volume on instance termination.

Default: true

" + } + }, + "BlockDeviceEbsIops": { + "base": null, + "refs": { + "Ebs$Iops": "

For Provisioned IOPS (SSD) volumes only. The number of I/O operations per second (IOPS) to provision for the volume.

Valid values: Range is 100 to 4000.

Default: None

" + } + }, + "BlockDeviceEbsVolumeSize": { + "base": null, + "refs": { + "Ebs$VolumeSize": "

The volume size, in gigabytes.

Valid values: If the volume type is io1, the minimum size of the volume is 10 GiB. If you specify SnapshotId and VolumeSize, VolumeSize must be equal to or larger than the size of the snapshot.

Default: If you create a volume from a snapshot and you don't specify a volume size, the default is the size of the snapshot.

Required: Required when the volume type is io1.

" + } + }, + "BlockDeviceEbsVolumeType": { + "base": null, + "refs": { + "Ebs$VolumeType": "

The volume type.

Valid values: standard | io1 | gp2

Default: standard

" + } + }, + "BlockDeviceMapping": { + "base": "

Describes a block device mapping.

", + "refs": { + "BlockDeviceMappings$member": null + } + }, + "BlockDeviceMappings": { + "base": null, + "refs": { + "CreateLaunchConfigurationType$BlockDeviceMappings": "

One or more mappings that specify how block devices are exposed to the instance. For more information, see Block Device Mapping in the Amazon Elastic Compute Cloud User Guide.

", + "LaunchConfiguration$BlockDeviceMappings": "

A block device mapping, which specifies the block devices for the instance.

" + } + }, + "ClassicLinkVPCSecurityGroups": { + "base": null, + "refs": { + "CreateLaunchConfigurationType$ClassicLinkVPCSecurityGroups": "

The IDs of one or more security groups for the VPC specified in ClassicLinkVPCId. This parameter is required if ClassicLinkVPCId is specified, and cannot be used otherwise. For more information, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.

", + "LaunchConfiguration$ClassicLinkVPCSecurityGroups": "

The IDs of one or more security groups for the VPC specified in ClassicLinkVPCId. This parameter is required if ClassicLinkVPCId is specified, and cannot be used otherwise. For more information, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.

" + } + }, + "CompleteLifecycleActionAnswer": { + "base": null, + "refs": { + } + }, + "CompleteLifecycleActionType": { + "base": null, + "refs": { + } + }, + "Cooldown": { + "base": null, + "refs": { + "AutoScalingGroup$DefaultCooldown": "

The number of seconds after a scaling activity completes before any further scaling activities can start.

", + "CreateAutoScalingGroupType$DefaultCooldown": "

The amount of time, in seconds, after a scaling activity completes before another scaling activity can start.

If DefaultCooldown is not specified, the default value is 300. For more information, see Understanding Auto Scaling Cooldowns in the Auto Scaling Developer Guide.

", + "PutScalingPolicyType$Cooldown": "

The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start.

For more information, see Understanding Auto Scaling Cooldowns in the Auto Scaling Developer Guide.

", + "ScalingPolicy$Cooldown": "

The amount of time, in seconds, after a scaling activity completes before any further trigger-related scaling activities can start.

", + "UpdateAutoScalingGroupType$DefaultCooldown": "

The amount of time, in seconds, after a scaling activity completes before another scaling activity can start. For more information, see Understanding Auto Scaling Cooldowns.

" + } + }, + "CreateAutoScalingGroupType": { + "base": null, + "refs": { + } + }, + "CreateLaunchConfigurationType": { + "base": null, + "refs": { + } + }, + "CreateOrUpdateTagsType": { + "base": null, + "refs": { + } + }, + "DeleteAutoScalingGroupType": { + "base": null, + "refs": { + } + }, + "DeleteLifecycleHookAnswer": { + "base": null, + "refs": { + } + }, + "DeleteLifecycleHookType": { + "base": null, + "refs": { + } + }, + "DeleteNotificationConfigurationType": { + "base": null, + "refs": { + } + }, + "DeletePolicyType": { + "base": "

", + "refs": { + } + }, + "DeleteScheduledActionType": { + "base": null, + "refs": { + } + }, + "DeleteTagsType": { + "base": null, + "refs": { + } + }, + "DescribeAccountLimitsAnswer": { + "base": null, + "refs": { + } + }, + "DescribeAdjustmentTypesAnswer": { + "base": null, + "refs": { + } + }, + "DescribeAutoScalingInstancesType": { + "base": null, + "refs": { + } + }, + "DescribeAutoScalingNotificationTypesAnswer": { + "base": null, + "refs": { + } + }, + "DescribeLifecycleHookTypesAnswer": { + "base": null, + "refs": { + } + }, + "DescribeLifecycleHooksAnswer": { + "base": null, + "refs": { + } + }, + "DescribeLifecycleHooksType": { + "base": null, + "refs": { + } + }, + "DescribeLoadBalancersRequest": { + "base": null, + "refs": { + } + }, + "DescribeLoadBalancersResponse": { + "base": null, + "refs": { + } + }, + "DescribeMetricCollectionTypesAnswer": { + "base": null, + "refs": { + } + }, + "DescribeNotificationConfigurationsAnswer": { + "base": null, + "refs": { + } + }, + "DescribeNotificationConfigurationsType": { + "base": null, + "refs": { + } + }, + "DescribePoliciesType": { + "base": null, + "refs": { + } + }, + "DescribeScalingActivitiesType": { + "base": null, + "refs": { + } + }, + "DescribeScheduledActionsType": { + "base": null, + "refs": { + } + }, + "DescribeTagsType": { + "base": null, + "refs": { + } + }, + "DescribeTerminationPolicyTypesAnswer": { + "base": null, + "refs": { + } + }, + "DetachInstancesAnswer": { + "base": null, + "refs": { + } + }, + "DetachInstancesQuery": { + "base": null, + "refs": { + } + }, + "DetachLoadBalancersResultType": { + "base": null, + "refs": { + } + }, + "DetachLoadBalancersType": { + "base": null, + "refs": { + } + }, + "DisableMetricsCollectionQuery": { + "base": null, + "refs": { + } + }, + "Ebs": { + "base": "

Describes an Amazon EBS volume.

", + "refs": { + "BlockDeviceMapping$Ebs": "

The information about the Amazon EBS volume.

" + } + }, + "EbsOptimized": { + "base": null, + "refs": { + "CreateLaunchConfigurationType$EbsOptimized": "

Indicates whether the instance is optimized for Amazon EBS I/O. By default, the instance is not optimized for EBS I/O. The optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization is not available with all instance types. Additional usage charges apply. For more information, see Amazon EBS-Optimized Instances in the Amazon Elastic Compute Cloud User Guide.

", + "LaunchConfiguration$EbsOptimized": "

Controls whether the instance is optimized for EBS I/O (true) or not (false).

" + } + }, + "EnableMetricsCollectionQuery": { + "base": null, + "refs": { + } + }, + "EnabledMetric": { + "base": "

Describes an enabled metric.

", + "refs": { + "EnabledMetrics$member": null + } + }, + "EnabledMetrics": { + "base": null, + "refs": { + "AutoScalingGroup$EnabledMetrics": "

The metrics enabled for the group.

" + } + }, + "EnterStandbyAnswer": { + "base": null, + "refs": { + } + }, + "EnterStandbyQuery": { + "base": null, + "refs": { + } + }, + "ExecutePolicyType": { + "base": null, + "refs": { + } + }, + "ExitStandbyAnswer": { + "base": null, + "refs": { + } + }, + "ExitStandbyQuery": { + "base": null, + "refs": { + } + }, + "Filter": { + "base": "

Describes a filter.

", + "refs": { + "Filters$member": null + } + }, + "Filters": { + "base": null, + "refs": { + "DescribeTagsType$Filters": "

A filter used to scope the tags to return.

" + } + }, + "ForceDelete": { + "base": null, + "refs": { + "DeleteAutoScalingGroupType$ForceDelete": "

Specifies that the group will be deleted along with all instances associated with the group, without waiting for all instances to be terminated. This parameter also deletes any lifecycle actions associated with the group.

" + } + }, + "GlobalTimeout": { + "base": null, + "refs": { + "LifecycleHook$GlobalTimeout": "

The maximum length of time an instance can remain in a Pending:Wait or Terminating:Wait state. Currently, this value is set at 48 hours.

" + } + }, + "HealthCheckGracePeriod": { + "base": null, + "refs": { + "AutoScalingGroup$HealthCheckGracePeriod": "

The amount of time that Auto Scaling waits before checking an instance's health status. The grace period begins when an instance comes into service.

", + "CreateAutoScalingGroupType$HealthCheckGracePeriod": "

The amount of time, in seconds, after an EC2 instance comes into service that Auto Scaling starts checking its health. During this time, any health check failures for the instance are ignored.

This parameter is required if you are adding an ELB health check. Frequently, new instances need to warm up, briefly, before they can pass a health check. To provide ample warm-up time, set the health check grace period of the group to match the expected startup period of your application.

For more information, see Add an Elastic Load Balancing Health Check to Your Auto Scaling Group in the Auto Scaling Developer Guide.

", + "UpdateAutoScalingGroupType$HealthCheckGracePeriod": "

The amount of time, in seconds, that Auto Scaling waits before checking the health status of an instance. The grace period begins when the instance passes the system status and instance status checks from Amazon EC2. For more information, see .

" + } + }, + "HeartbeatTimeout": { + "base": null, + "refs": { + "LifecycleHook$HeartbeatTimeout": "

The amount of time that can elapse before the lifecycle hook times out. When the lifecycle hook times out, Auto Scaling performs the action defined in the DefaultResult parameter. You can prevent the lifecycle hook from timing out by calling RecordLifecycleActionHeartbeat.

", + "PutLifecycleHookType$HeartbeatTimeout": "

Defines the amount of time, in seconds, that can elapse before the lifecycle hook times out. When the lifecycle hook times out, Auto Scaling performs the action defined in the DefaultResult parameter. You can prevent the lifecycle hook from timing out by calling RecordLifecycleActionHeartbeat. The default value for this parameter is 3600 seconds (1 hour).

" + } + }, + "HonorCooldown": { + "base": null, + "refs": { + "ExecutePolicyType$HonorCooldown": "

Set to True if you want Auto Scaling to wait for the cooldown period associated with the Auto Scaling group to complete before executing the policy.

Set to False if you want Auto Scaling to circumvent the cooldown period associated with the Auto Scaling group and execute the policy before the cooldown period ends.

For more information, see Understanding Auto Scaling Cooldowns in the Auto Scaling Developer Guide.

", + "SetDesiredCapacityType$HonorCooldown": "

By default, SetDesiredCapacity overrides any cooldown period associated with the Auto Scaling group. Specify True to make Auto Scaling to wait for the cool-down period associated with the Auto Scaling group to complete before initiating a scaling activity to set your Auto Scaling group to its new capacity.

" + } + }, + "Instance": { + "base": "

Describes an EC2 instance.

", + "refs": { + "Instances$member": null + } + }, + "InstanceIds": { + "base": null, + "refs": { + "AttachInstancesQuery$InstanceIds": "

One or more EC2 instance IDs.

", + "DescribeAutoScalingInstancesType$InstanceIds": "

One or more Auto Scaling instances to describe, up to 50 instances. If you omit this parameter, all Auto Scaling instances are described. If you specify an ID that does not exist, it is ignored with no error.

", + "DetachInstancesQuery$InstanceIds": "

One or more instance IDs.

", + "EnterStandbyQuery$InstanceIds": "

One or more instances to move into Standby mode. You must specify at least one instance ID.

", + "ExitStandbyQuery$InstanceIds": "

One or more instance IDs. You must specify at least one instance ID.

" + } + }, + "InstanceMonitoring": { + "base": "

Describes whether instance monitoring is enabled.

", + "refs": { + "CreateLaunchConfigurationType$InstanceMonitoring": "

Enables detailed monitoring if it is disabled. Detailed monitoring is enabled by default.

When detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and your account is charged a fee. When you disable detailed monitoring, by specifying False, CloudWatch generates metrics every 5 minutes. For more information, see Monitor Your Auto Scaling Instances in the Auto Scaling Developer Guide.

", + "LaunchConfiguration$InstanceMonitoring": "

Controls whether instances in this group are launched with detailed monitoring.

" + } + }, + "Instances": { + "base": null, + "refs": { + "AutoScalingGroup$Instances": "

The EC2 instances associated with the group.

" + } + }, + "InvalidNextToken": { + "base": "

The NextToken value is not valid.

", + "refs": { + } + }, + "LaunchConfiguration": { + "base": "

Describes a launch configuration.

", + "refs": { + "LaunchConfigurations$member": null + } + }, + "LaunchConfigurationNameType": { + "base": null, + "refs": { + } + }, + "LaunchConfigurationNames": { + "base": null, + "refs": { + "LaunchConfigurationNamesType$LaunchConfigurationNames": "

The launch configuration names.

" + } + }, + "LaunchConfigurationNamesType": { + "base": null, + "refs": { + } + }, + "LaunchConfigurations": { + "base": null, + "refs": { + "LaunchConfigurationsType$LaunchConfigurations": "

The launch configurations.

" + } + }, + "LaunchConfigurationsType": { + "base": null, + "refs": { + } + }, + "LifecycleActionResult": { + "base": null, + "refs": { + "CompleteLifecycleActionType$LifecycleActionResult": "

The action for the group to take. This parameter can be either CONTINUE or ABANDON.

", + "LifecycleHook$DefaultResult": "

Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. The valid values are CONTINUE and ABANDON. The default value is CONTINUE.

", + "PutLifecycleHookType$DefaultResult": "

Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. The value for this parameter can be either CONTINUE or ABANDON. The default value for this parameter is ABANDON.

" + } + }, + "LifecycleActionToken": { + "base": null, + "refs": { + "CompleteLifecycleActionType$LifecycleActionToken": "

A universally unique identifier (UUID) that identifies a specific lifecycle action associated with an instance. Auto Scaling sends this token to the notification target you specified when you created the lifecycle hook.

", + "RecordLifecycleActionHeartbeatType$LifecycleActionToken": "

A token that uniquely identifies a specific lifecycle action associated with an instance. Auto Scaling sends this token to the notification target you specified when you created the lifecycle hook.

" + } + }, + "LifecycleHook": { + "base": "

Describes a lifecycle hook, which tells Auto Scaling that you want to perform an action when an instance launches or terminates. When you have a lifecycle hook in place, the Auto Scaling group will either:

  • Pause the instance after it launches, but before it is put into service
  • Pause the instance as it terminates, but before it is fully terminated

For more information, see Auto Scaling Pending State and Auto Scaling Terminating State in the Auto Scaling Developer Guide.

", + "refs": { + "LifecycleHooks$member": null + } + }, + "LifecycleHookNames": { + "base": null, + "refs": { + "DescribeLifecycleHooksType$LifecycleHookNames": "

The names of one or more lifecycle hooks.

" + } + }, + "LifecycleHooks": { + "base": null, + "refs": { + "DescribeLifecycleHooksAnswer$LifecycleHooks": "

The lifecycle hooks for the specified group.

" + } + }, + "LifecycleState": { + "base": null, + "refs": { + "Instance$LifecycleState": "

A description of the current lifecycle state. Note that the Quarantined state is not used.

" + } + }, + "LifecycleTransition": { + "base": null, + "refs": { + "LifecycleHook$LifecycleTransition": "

The state of the EC2 instance to which you want to attach the lifecycle hook. For a list of lifecycle hook types, see DescribeLifecycleHookTypes.

", + "PutLifecycleHookType$LifecycleTransition": "

The instance state to which you want to attach the lifecycle hook. For a list of lifecycle hook types, see DescribeLifecycleHookTypes.

This parameter is required for new lifecycle hooks, but optional when updating existing hooks.

" + } + }, + "LimitExceededFault": { + "base": "

You have already reached a limit for your Auto Scaling resources (for example, groups, launch configurations, or lifecycle hooks). For more information, see DescribeAccountLimits.

", + "refs": { + } + }, + "LoadBalancerNames": { + "base": null, + "refs": { + "AttachLoadBalancersType$LoadBalancerNames": "

One or more load balancer names.

", + "AutoScalingGroup$LoadBalancerNames": "

One or more load balancers associated with the group.

", + "CreateAutoScalingGroupType$LoadBalancerNames": "

One or more load balancers.

For more information, see Load Balance Your Auto Scaling Group in the Auto Scaling Developer Guide.

", + "DetachLoadBalancersType$LoadBalancerNames": "

One or more load balancer names.

" + } + }, + "LoadBalancerState": { + "base": "

Describes the state of a load balancer.

", + "refs": { + "LoadBalancerStates$member": null + } + }, + "LoadBalancerStates": { + "base": null, + "refs": { + "DescribeLoadBalancersResponse$LoadBalancers": "

The load balancers.

" + } + }, + "MaxNumberOfAutoScalingGroups": { + "base": null, + "refs": { + "DescribeAccountLimitsAnswer$MaxNumberOfAutoScalingGroups": "

The maximum number of groups allowed for your AWS account. The default limit is 20 per region.

" + } + }, + "MaxNumberOfLaunchConfigurations": { + "base": null, + "refs": { + "DescribeAccountLimitsAnswer$MaxNumberOfLaunchConfigurations": "

The maximum number of launch configurations allowed for your AWS account. The default limit is 100 per region.

" + } + }, + "MaxRecords": { + "base": null, + "refs": { + "AutoScalingGroupNamesType$MaxRecords": "

The maximum number of items to return with this call.

", + "DescribeAutoScalingInstancesType$MaxRecords": "

The maximum number of items to return with this call.

", + "DescribeLoadBalancersRequest$MaxRecords": "

The maximum number of items to return with this call.

", + "DescribeNotificationConfigurationsType$MaxRecords": "

The maximum number of items to return with this call.

", + "DescribePoliciesType$MaxRecords": "

The maximum number of items to be returned with each call.

", + "DescribeScalingActivitiesType$MaxRecords": "

The maximum number of items to return with this call.

", + "DescribeScheduledActionsType$MaxRecords": "

The maximum number of items to return with this call.

", + "DescribeTagsType$MaxRecords": "

The maximum number of items to return with this call.

", + "LaunchConfigurationNamesType$MaxRecords": "

The maximum number of items to return with this call. The default is 100.

" + } + }, + "MetricCollectionType": { + "base": "

Describes a metric.

", + "refs": { + "MetricCollectionTypes$member": null + } + }, + "MetricCollectionTypes": { + "base": null, + "refs": { + "DescribeMetricCollectionTypesAnswer$Metrics": "

One or more metrics.

" + } + }, + "MetricGranularityType": { + "base": "

Describes a granularity of a metric.

", + "refs": { + "MetricGranularityTypes$member": null + } + }, + "MetricGranularityTypes": { + "base": null, + "refs": { + "DescribeMetricCollectionTypesAnswer$Granularities": "

The granularities for the metrics.

" + } + }, + "Metrics": { + "base": null, + "refs": { + "DisableMetricsCollectionQuery$Metrics": "

One or more metrics. If you omit this parameter, all metrics are disabled.

  • GroupMinSize

  • GroupMaxSize

  • GroupDesiredCapacity

  • GroupInServiceInstances

  • GroupPendingInstances

  • GroupStandbyInstances

  • GroupTerminatingInstances

  • GroupTotalInstances

", + "EnableMetricsCollectionQuery$Metrics": "

One or more metrics. If you omit this parameter, all metrics are enabled.

  • GroupMinSize

  • GroupMaxSize

  • GroupDesiredCapacity

  • GroupInServiceInstances

  • GroupPendingInstances

  • GroupStandbyInstances

  • GroupTerminatingInstances

  • GroupTotalInstances

Note that the GroupStandbyInstances metric is not enabled by default. You must explicitly request this metric.

" + } + }, + "MinAdjustmentStep": { + "base": null, + "refs": { + "PutScalingPolicyType$MinAdjustmentStep": "

Used with AdjustmentType with the value PercentChangeInCapacity, the scaling policy changes the DesiredCapacity of the Auto Scaling group by at least the number of instances specified in the value.

You will get a ValidationError if you use MinAdjustmentStep on a policy with an AdjustmentType other than PercentChangeInCapacity.

", + "ScalingPolicy$MinAdjustmentStep": "

Changes the DesiredCapacity of the Auto Scaling group by at least the specified number of instances.

" + } + }, + "MonitoringEnabled": { + "base": null, + "refs": { + "InstanceMonitoring$Enabled": "

If True, instance monitoring is enabled.

" + } + }, + "NoDevice": { + "base": null, + "refs": { + "BlockDeviceMapping$NoDevice": "

Suppresses a device mapping.

If NoDevice is set to true for the root device, the instance might fail the EC2 health check. Auto Scaling launches a replacement instance if the instance fails the health check.

" + } + }, + "NotificationConfiguration": { + "base": "

Describes a notification.

", + "refs": { + "NotificationConfigurations$member": null + } + }, + "NotificationConfigurations": { + "base": null, + "refs": { + "DescribeNotificationConfigurationsAnswer$NotificationConfigurations": "

The notification configurations.

" + } + }, + "PoliciesType": { + "base": null, + "refs": { + } + }, + "PolicyARNType": { + "base": null, + "refs": { + } + }, + "PolicyIncrement": { + "base": null, + "refs": { + "PutScalingPolicyType$ScalingAdjustment": "

The number of instances by which to scale. AdjustmentType determines the interpretation of this number (for example, as an absolute number or as a percentage of the existing Auto Scaling group size). A positive increment adds to the current capacity and a negative value removes from the current capacity.

", + "ScalingPolicy$ScalingAdjustment": "

The number associated with the specified adjustment type. A positive value adds to the current capacity and a negative value removes from the current capacity.

" + } + }, + "PolicyNames": { + "base": null, + "refs": { + "DescribePoliciesType$PolicyNames": "

One or more policy names or policy ARNs to be described. If you omit this list, all policy names are described. If an group name is provided, the results are limited to that group. This list is limited to 50 items. If you specify an unknown policy name, it is ignored with no error.

" + } + }, + "ProcessNames": { + "base": null, + "refs": { + "ScalingProcessQuery$ScalingProcesses": "

One or more of the following processes:

  • Launch

  • Terminate

  • HealthCheck

  • ReplaceUnhealthy

  • AZRebalance

  • AlarmNotification

  • ScheduledActions

  • AddToLoadBalancer

" + } + }, + "ProcessType": { + "base": "

Describes a process type.

For more information, see Auto Scaling Processes in the Auto Scaling Developer Guide.

", + "refs": { + "Processes$member": null + } + }, + "Processes": { + "base": null, + "refs": { + "ProcessesType$Processes": "

The names of the process types.

" + } + }, + "ProcessesType": { + "base": null, + "refs": { + } + }, + "Progress": { + "base": null, + "refs": { + "Activity$Progress": "

A value between 0 and 100 that indicates the progress of the activity.

" + } + }, + "PropagateAtLaunch": { + "base": null, + "refs": { + "Tag$PropagateAtLaunch": "

Determines whether the tag is added to new instances as they are launched in the group.

", + "TagDescription$PropagateAtLaunch": "

Determines whether the tag is added to new instances as they are launched in the group.

" + } + }, + "PutLifecycleHookAnswer": { + "base": null, + "refs": { + } + }, + "PutLifecycleHookType": { + "base": null, + "refs": { + } + }, + "PutNotificationConfigurationType": { + "base": null, + "refs": { + } + }, + "PutScalingPolicyType": { + "base": null, + "refs": { + } + }, + "PutScheduledUpdateGroupActionType": { + "base": null, + "refs": { + } + }, + "RecordLifecycleActionHeartbeatAnswer": { + "base": null, + "refs": { + } + }, + "RecordLifecycleActionHeartbeatType": { + "base": null, + "refs": { + } + }, + "ResourceContentionFault": { + "base": "

You already have a pending update to an Auto Scaling resource (for example, a group, instance, or load balancer).

", + "refs": { + } + }, + "ResourceInUseFault": { + "base": "

The Auto Scaling group or launch configuration can't be deleted because it is in use.

", + "refs": { + } + }, + "ResourceName": { + "base": null, + "refs": { + "Alarm$AlarmARN": "

The Amazon Resource Name (ARN) of the alarm.

", + "AttachInstancesQuery$AutoScalingGroupName": "

The name of the group.

", + "AttachLoadBalancersType$AutoScalingGroupName": "

The name of the group.

", + "AutoScalingGroup$AutoScalingGroupARN": "

The Amazon Resource Name (ARN) of the group.

", + "AutoScalingGroupNames$member": null, + "CompleteLifecycleActionType$AutoScalingGroupName": "

The name of the group for the lifecycle hook.

", + "CreateAutoScalingGroupType$LaunchConfigurationName": "

The name of the launch configuration. Alternatively, use the InstanceId parameter to specify an EC2 instance instead of a launch configuration.

", + "DeleteAutoScalingGroupType$AutoScalingGroupName": "

The name of the group to delete.

", + "DeleteLifecycleHookType$AutoScalingGroupName": "

The name of the Auto Scaling group for the lifecycle hook.

", + "DeleteNotificationConfigurationType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", + "DeleteNotificationConfigurationType$TopicARN": "

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic.

", + "DeletePolicyType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", + "DeletePolicyType$PolicyName": "

The name or Amazon Resource Name (ARN) of the policy.

", + "DeleteScheduledActionType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", + "DeleteScheduledActionType$ScheduledActionName": "

The name of the action to delete.

", + "DescribeLifecycleHooksType$AutoScalingGroupName": "

The name of the group.

", + "DescribeLoadBalancersRequest$AutoScalingGroupName": "

The name of the group.

", + "DescribePoliciesType$AutoScalingGroupName": "

The name of the group.

", + "DescribeScalingActivitiesType$AutoScalingGroupName": "

The name of the group.

", + "DescribeScheduledActionsType$AutoScalingGroupName": "

The name of the group.

", + "DetachInstancesQuery$AutoScalingGroupName": "

The name of the group.

", + "DetachLoadBalancersType$AutoScalingGroupName": "

The name of the group.

", + "DisableMetricsCollectionQuery$AutoScalingGroupName": "

The name or Amazon Resource Name (ARN) of the group.

", + "EnableMetricsCollectionQuery$AutoScalingGroupName": "

The name or ARN of the Auto Scaling group.

", + "EnterStandbyQuery$AutoScalingGroupName": "

The name of the Auto Scaling group.

", + "ExecutePolicyType$AutoScalingGroupName": "

The name or Amazon Resource Name (ARN) of the Auto Scaling group.

", + "ExecutePolicyType$PolicyName": "

The name or ARN of the policy.

", + "ExitStandbyQuery$AutoScalingGroupName": "

The name of the Auto Scaling group.

", + "LaunchConfiguration$LaunchConfigurationARN": "

The Amazon Resource Name (ARN) of the launch configuration.

", + "LaunchConfigurationNameType$LaunchConfigurationName": "

The name of the launch configuration.

", + "LaunchConfigurationNames$member": null, + "LifecycleHook$AutoScalingGroupName": "

The name of the Auto Scaling group for the lifecycle hook.

", + "LifecycleHook$NotificationTargetARN": "

The ARN of the notification target that Auto Scaling uses to notify you when an instance is in the transition state for the lifecycle hook. This ARN target can be either an SQS queue or an SNS topic. The notification message sent to the target includes the following:

  • Lifecycle action token
  • User account ID
  • Name of the Auto Scaling group
  • Lifecycle hook name
  • EC2 instance ID
  • Lifecycle transition
  • Notification metadata
", + "LifecycleHook$RoleARN": "

The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target.

", + "NotificationConfiguration$AutoScalingGroupName": "

The name of the group.

", + "NotificationConfiguration$TopicARN": "

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic.

", + "PolicyARNType$PolicyARN": "

The Amazon Resource Name (ARN) of the policy.

", + "PolicyNames$member": null, + "PutLifecycleHookType$AutoScalingGroupName": "

The name of the Auto Scaling group to which you want to assign the lifecycle hook.

", + "PutLifecycleHookType$RoleARN": "

The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target.

This parameter is required for new lifecycle hooks, but optional when updating existing hooks.

", + "PutLifecycleHookType$NotificationTargetARN": "

The ARN of the notification target that Auto Scaling will use to notify you when an instance is in the transition state for the lifecycle hook. This ARN target can be either an SQS queue or an SNS topic.

This parameter is required for new lifecycle hooks, but optional when updating existing hooks.

The notification message sent to the target will include:

  • LifecycleActionToken. The Lifecycle action token.
  • AccountId. The user account ID.
  • AutoScalingGroupName. The name of the Auto Scaling group.
  • LifecycleHookName. The lifecycle hook name.
  • EC2InstanceId. The EC2 instance ID.
  • LifecycleTransition. The lifecycle transition.
  • NotificationMetadata. The notification metadata.

This operation uses the JSON format when sending notifications to an Amazon SQS queue, and an email key/value pair format when sending notifications to an Amazon SNS topic.

When you call this operation, a test message is sent to the notification target. This test message contains an additional key/value pair: Event:autoscaling:TEST_NOTIFICATION.

", + "PutNotificationConfigurationType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", + "PutNotificationConfigurationType$TopicARN": "

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic.

", + "PutScalingPolicyType$AutoScalingGroupName": "

The name or ARN of the group.

", + "PutScheduledUpdateGroupActionType$AutoScalingGroupName": "

The name or Amazon Resource Name (ARN) of the Auto Scaling group.

", + "RecordLifecycleActionHeartbeatType$AutoScalingGroupName": "

The name of the Auto Scaling group for the hook.

", + "ScalingPolicy$PolicyARN": "

The Amazon Resource Name (ARN) of the policy.

", + "ScalingProcessQuery$AutoScalingGroupName": "

The name or Amazon Resource Name (ARN) of the Auto Scaling group.

", + "ScheduledActionNames$member": null, + "ScheduledUpdateGroupAction$ScheduledActionARN": "

The Amazon Resource Name (ARN) of the scheduled action.

", + "SetDesiredCapacityType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", + "UpdateAutoScalingGroupType$AutoScalingGroupName": "

The name of the Auto Scaling group.

", + "UpdateAutoScalingGroupType$LaunchConfigurationName": "

The name of the launch configuration.

" + } + }, + "ScalingActivityInProgressFault": { + "base": "

The Auto Scaling group can't be deleted because there are scaling activities in progress.

", + "refs": { + } + }, + "ScalingActivityStatusCode": { + "base": null, + "refs": { + "Activity$StatusCode": "

The current status of the activity.

" + } + }, + "ScalingPolicies": { + "base": null, + "refs": { + "PoliciesType$ScalingPolicies": "

The scaling policies.

" + } + }, + "ScalingPolicy": { + "base": "

Describes a scaling policy.

", + "refs": { + "ScalingPolicies$member": null + } + }, + "ScalingProcessQuery": { + "base": null, + "refs": { + } + }, + "ScheduledActionNames": { + "base": null, + "refs": { + "DescribeScheduledActionsType$ScheduledActionNames": "

Describes one or more scheduled actions. If you omit this list, the call describes all scheduled actions. If you specify an unknown scheduled action it is ignored with no error.

You can describe up to a maximum of 50 instances with a single call. If there are more items to return, the call returns a token. To get the next set of items, repeat the call with the returned token in the NextToken parameter.

" + } + }, + "ScheduledActionsType": { + "base": null, + "refs": { + } + }, + "ScheduledUpdateGroupAction": { + "base": "

Describes a scheduled update to an Auto Scaling group.

", + "refs": { + "ScheduledUpdateGroupActions$member": null + } + }, + "ScheduledUpdateGroupActions": { + "base": null, + "refs": { + "ScheduledActionsType$ScheduledUpdateGroupActions": "

The scheduled actions.

" + } + }, + "SecurityGroups": { + "base": null, + "refs": { + "CreateLaunchConfigurationType$SecurityGroups": "

One or more security groups with which to associate the instances.

If your instances are launched in EC2-Classic, you can either specify security group names or the security group IDs. For more information about security groups for EC2-Classic, see Amazon EC2 Security Groups in the Amazon Elastic Compute Cloud User Guide.

If your instances are launched into a VPC, specify security group IDs. For more information, see Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide.

", + "LaunchConfiguration$SecurityGroups": "

The security groups to associate with the instances.

" + } + }, + "SetDesiredCapacityType": { + "base": null, + "refs": { + } + }, + "SetInstanceHealthQuery": { + "base": null, + "refs": { + } + }, + "ShouldDecrementDesiredCapacity": { + "base": null, + "refs": { + "DetachInstancesQuery$ShouldDecrementDesiredCapacity": "

If True, the Auto Scaling group decrements the desired capacity value by the number of instances detached.

", + "EnterStandbyQuery$ShouldDecrementDesiredCapacity": "

Specifies whether the instances moved to Standby mode count as part of the Auto Scaling group's desired capacity. If set, the desired capacity for the Auto Scaling group decrements by the number of instances moved to Standby mode.

", + "TerminateInstanceInAutoScalingGroupType$ShouldDecrementDesiredCapacity": "

If true, terminating this instance also decrements the size of the Auto Scaling group.

" + } + }, + "ShouldRespectGracePeriod": { + "base": null, + "refs": { + "SetInstanceHealthQuery$ShouldRespectGracePeriod": "

If the Auto Scaling group of the specified instance has a HealthCheckGracePeriod specified for the group, by default, this call will respect the grace period. Set this to False, if you do not want the call to respect the grace period associated with the group.

For more information, see the HealthCheckGracePeriod parameter description for CreateAutoScalingGroup.

" + } + }, + "SpotPrice": { + "base": null, + "refs": { + "CreateLaunchConfigurationType$SpotPrice": "

The maximum hourly price to be paid for any Spot Instance launched to fulfill the request. Spot Instances are launched when the price you specify exceeds the current Spot market price. For more information, see Launch Spot Instances in Your Auto Scaling Group in the Auto Scaling Developer Guide.

", + "LaunchConfiguration$SpotPrice": "

The price to bid when launching Spot Instances.

" + } + }, + "SuspendedProcess": { + "base": "

Describes an Auto Scaling process that has been suspended. For more information, see ProcessType.

", + "refs": { + "SuspendedProcesses$member": null + } + }, + "SuspendedProcesses": { + "base": null, + "refs": { + "AutoScalingGroup$SuspendedProcesses": "

The suspended processes associated with the group.

" + } + }, + "Tag": { + "base": "

Describes a tag for an Auto Scaling group.

", + "refs": { + "Tags$member": null + } + }, + "TagDescription": { + "base": "

Describes a tag for an Auto Scaling group.

", + "refs": { + "TagDescriptionList$member": null + } + }, + "TagDescriptionList": { + "base": null, + "refs": { + "AutoScalingGroup$Tags": "

The tags for the group.

", + "TagsType$Tags": "

The tags.

" + } + }, + "TagKey": { + "base": null, + "refs": { + "Tag$Key": "

The tag key.

", + "TagDescription$Key": "

The tag key.

" + } + }, + "TagValue": { + "base": null, + "refs": { + "Tag$Value": "

The tag value.

", + "TagDescription$Value": "

The tag value.

" + } + }, + "Tags": { + "base": null, + "refs": { + "CreateAutoScalingGroupType$Tags": "

The tag to be created or updated. Each tag should be defined by its resource type, resource ID, key, value, and a propagate flag. Valid values: key=value, value=value, propagate=true or false. Value and propagate are optional parameters.

For more information, see Tagging Auto Scaling Groups and Instances in the Auto Scaling Developer Guide.

", + "CreateOrUpdateTagsType$Tags": "

One or more tags.

", + "DeleteTagsType$Tags": "

Each tag should be defined by its resource type, resource ID, key, value, and a propagate flag. Valid values are: Resource type = auto-scaling-group, Resource ID = AutoScalingGroupName, key=value, value=value, propagate=true or false.

" + } + }, + "TagsType": { + "base": null, + "refs": { + } + }, + "TerminateInstanceInAutoScalingGroupType": { + "base": null, + "refs": { + } + }, + "TerminationPolicies": { + "base": null, + "refs": { + "AutoScalingGroup$TerminationPolicies": "

The termination policies for the group.

", + "CreateAutoScalingGroupType$TerminationPolicies": "

One or more termination policies used to select the instance to terminate. These policies are executed in the order that they are listed.

For more information, see Choosing a Termination Policy for Your Auto Scaling Group in the Auto Scaling Developer Guide.

", + "DescribeTerminationPolicyTypesAnswer$TerminationPolicyTypes": "

The termination policies supported by Auto Scaling (OldestInstance, OldestLaunchConfiguration, NewestInstance, ClosestToNextInstanceHour, and Default).

", + "UpdateAutoScalingGroupType$TerminationPolicies": "

A standalone termination policy or a list of termination policies used to select the instance to terminate. The policies are executed in the order that they are listed.

For more information, see Choosing a Termination Policy for Your Auto Scaling Group in the Auto Scaling Developer Guide.

" + } + }, + "TimestampType": { + "base": null, + "refs": { + "Activity$StartTime": "

The start time of the activity.

", + "Activity$EndTime": "

The end time of the activity.

", + "AutoScalingGroup$CreatedTime": "

The date and time the group was created.

", + "DescribeScheduledActionsType$StartTime": "

The earliest scheduled start time to return. If scheduled action names are provided, this parameter is ignored.

", + "DescribeScheduledActionsType$EndTime": "

The latest scheduled start time to return. If scheduled action names are provided, this parameter is ignored.

", + "LaunchConfiguration$CreatedTime": "

The creation date and time for the launch configuration.

", + "PutScheduledUpdateGroupActionType$Time": "

Time is deprecated; use StartTime instead.

The time for this action to start. If both Time and StartTime are specified, their values must be identical.

", + "PutScheduledUpdateGroupActionType$StartTime": "

The time for this action to start, in \"YYYY-MM-DDThh:mm:ssZ\" format in UTC/GMT only (for example, 2014-06-01T00:00:00Z).

If you try to schedule your action in the past, Auto Scaling returns an error message.

When StartTime and EndTime are specified with Recurrence, they form the boundaries of when the recurring action starts and stops.

", + "PutScheduledUpdateGroupActionType$EndTime": "

The time for this action to end.

", + "ScheduledUpdateGroupAction$Time": "

Time is deprecated; use StartTime instead.

", + "ScheduledUpdateGroupAction$StartTime": "

The time that the action is scheduled to begin. This value can be up to one month in the future.

When StartTime and EndTime are specified with Recurrence, they form the boundaries of when the recurring action will start and stop.

", + "ScheduledUpdateGroupAction$EndTime": "

The time that the action is scheduled to end. This value can be up to one month in the future.

" + } + }, + "UpdateAutoScalingGroupType": { + "base": null, + "refs": { + } + }, + "Values": { + "base": null, + "refs": { + "Filter$Values": "

The value of the filter.

" + } + }, + "XmlString": { + "base": null, + "refs": { + "ActivitiesType$NextToken": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", + "Activity$ActivityId": "

The ID of the activity.

", + "Activity$Description": "

A friendly, more verbose description of the activity.

", + "Activity$Details": "

The details about the activity.

", + "ActivityIds$member": null, + "AutoScalingGroupNamesType$NextToken": "

The token for the next set of items to return. (You received this token from a previous call.)

", + "AutoScalingGroupsType$NextToken": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", + "AutoScalingInstancesType$NextToken": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", + "DescribeAutoScalingInstancesType$NextToken": "

The token for the next set of items to return. (You received this token from a previous call.)

", + "DescribeLoadBalancersRequest$NextToken": "

The token for the next set of items to return. (You received this token from a previous call.)

", + "DescribeLoadBalancersResponse$NextToken": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", + "DescribeNotificationConfigurationsAnswer$NextToken": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", + "DescribeNotificationConfigurationsType$NextToken": "

The token for the next set of items to return. (You received this token from a previous call.)

", + "DescribePoliciesType$NextToken": "

The token for the next set of items to return. (You received this token from a previous call.)

", + "DescribeScalingActivitiesType$NextToken": "

The token for the next set of items to return. (You received this token from a previous call.)

", + "DescribeScheduledActionsType$NextToken": "

The token for the next set of items to return. (You received this token from a previous call.)

", + "DescribeTagsType$NextToken": "

The token for the next set of items to return. (You received this token from a previous call.)

", + "Filter$Name": "

The name of the filter. The valid values are: \"auto-scaling-group\", \"key\", \"value\", and \"propagate-at-launch\".

", + "LaunchConfigurationNamesType$NextToken": "

The token for the next set of items to return. (You received this token from a previous call.)

", + "LaunchConfigurationsType$NextToken": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", + "PoliciesType$NextToken": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", + "ScheduledActionsType$NextToken": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", + "SecurityGroups$member": null, + "Tag$ResourceId": "

The name of the group.

", + "Tag$ResourceType": "

The type of resource. The only supported value is auto-scaling-group.

", + "TagDescription$ResourceId": "

The name of the group.

", + "TagDescription$ResourceType": "

The type of resource. The only supported value is auto-scaling-group.

", + "TagsType$NextToken": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", + "Values$member": null + } + }, + "XmlStringMaxLen1023": { + "base": null, + "refs": { + "Activity$Cause": "

The reason the activity began.

", + "LifecycleHook$NotificationMetadata": "

Additional information that you want to include any time Auto Scaling sends a message to the notification target.

", + "PutLifecycleHookType$NotificationMetadata": "

Contains additional information that you want to include any time Auto Scaling sends a message to the notification target.

" + } + }, + "XmlStringMaxLen16": { + "base": null, + "refs": { + "AutoScalingInstanceDetails$InstanceId": "

The ID of the instance.

", + "CreateAutoScalingGroupType$InstanceId": "

The ID of the EC2 instance used to create a launch configuration for the group. Alternatively, use the LaunchConfigurationName parameter to specify a launch configuration instead of an EC2 instance.

When you specify an ID of an instance, Auto Scaling creates a new launch configuration and associates it with the group. This launch configuration derives its attributes from the specified instance, with the exception of the block device mapping.

For more information, see Create an Auto Scaling Group from an EC2 Instance in the Auto Scaling Developer Guide.

", + "CreateLaunchConfigurationType$InstanceId": "

The ID of the EC2 instance to use to create the launch configuration.

The new launch configuration derives attributes from the instance, with the exception of the block device mapping.

To create a launch configuration with a block device mapping or override any other instance attributes, specify them as part of the same request.

For more information, see Create a Launch Configuration Using an EC2 Instance in the Auto Scaling Developer Guide.

", + "Instance$InstanceId": "

The ID of the instance.

", + "InstanceIds$member": null, + "SetInstanceHealthQuery$InstanceId": "

The ID of the EC2 instance.

", + "TerminateInstanceInAutoScalingGroupType$InstanceId": "

The ID of the EC2 instance.

" + } + }, + "XmlStringMaxLen1600": { + "base": null, + "refs": { + "CreateLaunchConfigurationType$IamInstanceProfile": "

The name or the Amazon Resource Name (ARN) of the instance profile associated with the IAM role for the instance.

EC2 instances launched with an IAM role will automatically have AWS security credentials available. You can use IAM roles with Auto Scaling to automatically enable applications running on your EC2 instances to securely access other AWS resources. For more information, see Launch Auto Scaling Instances with an IAM Role in the Auto Scaling Developer Guide.

", + "LaunchConfiguration$IamInstanceProfile": "

The name or Amazon Resource Name (ARN) of the instance profile associated with the IAM role for the instance.

", + "TerminationPolicies$member": null + } + }, + "XmlStringMaxLen255": { + "base": null, + "refs": { + "Activity$AutoScalingGroupName": "

The name of the Auto Scaling group.

", + "Activity$StatusMessage": "

A friendly, more verbose description of the activity status.

", + "AdjustmentType$AdjustmentType": "

The policy adjustment type. The valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.

", + "Alarm$AlarmName": "

The name of the alarm.

", + "AlreadyExistsFault$message": null, + "AutoScalingGroup$AutoScalingGroupName": "

The name of the group.

", + "AutoScalingGroup$LaunchConfigurationName": "

The name of the associated launch configuration.

", + "AutoScalingGroup$PlacementGroup": "

The name of the placement group into which you'll launch your instances, if any. For more information, see Placement Groups.

", + "AutoScalingGroup$VPCZoneIdentifier": "

One or more subnet IDs, if applicable, separated by commas.

If you specify VPCZoneIdentifier and AvailabilityZones, ensure that the Availability Zones of the subnets match the values for AvailabilityZones.

", + "AutoScalingGroup$Status": "

The current state of the group when DeleteAutoScalingGroup is in progress.

", + "AutoScalingInstanceDetails$AutoScalingGroupName": "

The name of the Auto Scaling group associated with the instance.

", + "AutoScalingInstanceDetails$AvailabilityZone": "

The Availability Zone for the instance.

", + "AutoScalingInstanceDetails$LaunchConfigurationName": "

The launch configuration associated with the instance.

", + "AutoScalingNotificationTypes$member": null, + "AvailabilityZones$member": null, + "BlockDeviceMapping$VirtualName": "

The name of the virtual device, ephemeral0 to ephemeral3.

", + "BlockDeviceMapping$DeviceName": "

The device name exposed to the EC2 instance (for example, /dev/sdh or xvdh).

", + "ClassicLinkVPCSecurityGroups$member": null, + "CreateAutoScalingGroupType$AutoScalingGroupName": "

The name of the group. This name must be unique within the scope of your AWS account.

", + "CreateAutoScalingGroupType$PlacementGroup": "

The name of the placement group into which you'll launch your instances, if any. For more information, see Placement Groups in the Amazon Elastic Compute Cloud User Guide.

", + "CreateAutoScalingGroupType$VPCZoneIdentifier": "

A comma-separated list of subnet identifiers for your virtual private cloud (VPC).

If you specify subnets and Availability Zones with this call, ensure that the subnets' Availability Zones match the Availability Zones specified.

For more information, see Auto Scaling and Amazon Virtual Private Cloud in the Auto Scaling Developer Guide.

", + "CreateLaunchConfigurationType$LaunchConfigurationName": "

The name of the launch configuration. This name must be unique within the scope of your AWS account.

", + "CreateLaunchConfigurationType$ImageId": "

The ID of the Amazon Machine Image (AMI) to use to launch your EC2 instances. For more information, see Finding an AMI in the Amazon Elastic Compute Cloud User Guide.

", + "CreateLaunchConfigurationType$KeyName": "

The name of the key pair. For more information, see Amazon EC2 Key Pairs in the Amazon Elastic Compute Cloud User Guide.

", + "CreateLaunchConfigurationType$ClassicLinkVPCId": "

The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances to. This parameter can only be used if you are launching EC2-Classic instances. For more information, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.

", + "CreateLaunchConfigurationType$InstanceType": "

The instance type of the EC2 instance. For information about available instance types, see Available Instance Types in the Amazon Elastic Cloud Compute User Guide.

", + "CreateLaunchConfigurationType$KernelId": "

The ID of the kernel associated with the AMI.

", + "CreateLaunchConfigurationType$RamdiskId": "

The ID of the RAM disk associated with the AMI.

", + "Ebs$SnapshotId": "

The ID of the snapshot.

", + "EnableMetricsCollectionQuery$Granularity": "

The granularity to associate with the metrics to collect. The only valid value is 1Minute.

", + "EnabledMetric$Metric": "

The name of the metric.

  • GroupMinSize

  • GroupMaxSize

  • GroupDesiredCapacity

  • GroupInServiceInstances

  • GroupPendingInstances

  • GroupStandbyInstances

  • GroupTerminatingInstances

  • GroupTotalInstances

", + "EnabledMetric$Granularity": "

The granularity of the metric. The only valid value is 1Minute.

", + "Instance$AvailabilityZone": "

The Availability Zone in which the instance is running.

", + "Instance$LaunchConfigurationName": "

The launch configuration associated with the instance.

", + "InvalidNextToken$message": null, + "LaunchConfiguration$LaunchConfigurationName": "

The name of the launch configuration.

", + "LaunchConfiguration$ImageId": "

The ID of the Amazon Machine Image (AMI).

", + "LaunchConfiguration$KeyName": "

The name of the key pair.

", + "LaunchConfiguration$ClassicLinkVPCId": "

The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances to. This parameter can only be used if you are launching EC2-Classic instances. For more information, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.

", + "LaunchConfiguration$InstanceType": "

The instance type for the instances.

", + "LaunchConfiguration$KernelId": "

The ID of the kernel associated with the AMI.

", + "LaunchConfiguration$RamdiskId": "

The ID of the RAM disk associated with the AMI.

", + "LimitExceededFault$message": null, + "LoadBalancerNames$member": null, + "LoadBalancerState$LoadBalancerName": "

The name of the load balancer.

", + "LoadBalancerState$State": "

The state of the load balancer.

  • Adding - The instances in the group are being registered with the load balancer.

  • Added - All instances in the group are registered with the load balancer.

  • InService - At least one instance in the group passed an ELB health check.

  • Removing - The instances are being deregistered from the load balancer. If connection draining is enabled, Elastic Load Balancing waits for in-flight requests to complete before deregistering the instances.

", + "MetricCollectionType$Metric": "

The metric.

  • GroupMinSize

  • GroupMaxSize

  • GroupDesiredCapacity

  • GroupInServiceInstances

  • GroupPendingInstances

  • GroupStandbyInstances

  • GroupTerminatingInstances

  • GroupTotalInstances

", + "MetricGranularityType$Granularity": "

The granularity. The only valid value is 1Minute.

", + "Metrics$member": null, + "NotificationConfiguration$NotificationType": "

The types of events for an action to start.

  • autoscaling:EC2_INSTANCE_LAUNCH

  • autoscaling:EC2_INSTANCE_LAUNCH_ERROR

  • autoscaling:EC2_INSTANCE_TERMINATE

  • autoscaling:EC2_INSTANCE_TERMINATE_ERROR

  • autoscaling:TEST_NOTIFICATION

", + "ProcessNames$member": null, + "ProcessType$ProcessName": "

The name of the process.

  • Launch

  • Terminate

  • AddToLoadBalancer

  • AlarmNotification

  • AZRebalance

  • HealthCheck

  • ReplaceUnhealthy

  • ScheduledActions

", + "PutScalingPolicyType$PolicyName": "

The name of the policy.

", + "PutScalingPolicyType$AdjustmentType": "

The adjustment type. Valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.

For more information, see Dynamic Scaling in the Auto Scaling Developer Guide.

", + "PutScheduledUpdateGroupActionType$ScheduledActionName": "

The name of this scaling action.

", + "PutScheduledUpdateGroupActionType$Recurrence": "

The time when recurring future actions will start. Start time is specified by the user following the Unix cron syntax format. For more information, see Cron in Wikipedia.

When StartTime and EndTime are specified with Recurrence, they form the boundaries of when the recurring action will start and stop.

", + "ResourceContentionFault$message": null, + "ResourceInUseFault$message": null, + "ScalingActivityInProgressFault$message": null, + "ScalingPolicy$AutoScalingGroupName": "

The name of the Auto Scaling group associated with this scaling policy.

", + "ScalingPolicy$PolicyName": "

The name of the scaling policy.

", + "ScalingPolicy$AdjustmentType": "

Specifies whether the ScalingAdjustment is an absolute number or a percentage of the current capacity. Valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.

", + "ScheduledUpdateGroupAction$AutoScalingGroupName": "

The name of the group.

", + "ScheduledUpdateGroupAction$ScheduledActionName": "

The name of the scheduled action.

", + "ScheduledUpdateGroupAction$Recurrence": "

The recurring schedule for the action.

", + "SuspendedProcess$ProcessName": "

The name of the suspended process.

", + "SuspendedProcess$SuspensionReason": "

The reason that the process was suspended.

", + "UpdateAutoScalingGroupType$PlacementGroup": "

The name of the placement group into which you'll launch your instances, if any. For more information, see Placement Groups.

", + "UpdateAutoScalingGroupType$VPCZoneIdentifier": "

The ID of the subnet, if you are launching into a VPC. You can specify several subnets in a comma-separated list.

When you specify VPCZoneIdentifier with AvailabilityZones, ensure that the subnets' Availability Zones match the values you specify for AvailabilityZones.

For more information, see Auto Scaling and Amazon Virtual Private Cloud in the Auto Scaling Developer Guide.

" + } + }, + "XmlStringMaxLen32": { + "base": null, + "refs": { + "AutoScalingGroup$HealthCheckType": "

The service of interest for the health status check, which can be either EC2 for Amazon EC2 or ELB for Elastic Load Balancing.

", + "AutoScalingInstanceDetails$LifecycleState": "

The lifecycle state for the instance. For more information, see Auto Scaling Instance States in the Auto Scaling Developer Guide.

", + "AutoScalingInstanceDetails$HealthStatus": "

The health status of this instance. \"Healthy\" means that the instance is healthy and should remain in service. \"Unhealthy\" means that the instance is unhealthy and Auto Scaling should terminate and replace it.

", + "CreateAutoScalingGroupType$HealthCheckType": "

The service to use for the health checks. The valid values are EC2 and ELB.

By default, health checks use Amazon EC2 instance status checks to determine the health of an instance. For more information, see Health Checks.

", + "Instance$HealthStatus": "

The health status of the instance.

", + "SetInstanceHealthQuery$HealthStatus": "

The health status of the instance. Set to Healthy if you want the instance to remain in service. Set to Unhealthy if you want the instance to be out of service. Auto Scaling will terminate and replace the unhealthy instance.

", + "UpdateAutoScalingGroupType$HealthCheckType": "

The type of health check for the instances in the Auto Scaling group. The health check type can either be EC2 for Amazon EC2 or ELB for Elastic Load Balancing.

" + } + }, + "XmlStringMaxLen64": { + "base": null, + "refs": { + "CreateLaunchConfigurationType$PlacementTenancy": "

The tenancy of the instance. An instance with a tenancy of dedicated runs on single-tenant hardware and can only be launched into a VPC.

You must set the value of this parameter to dedicated if want to launch Dedicated Instances into a shared tenancy VPC (VPC with instance placement tenancy attribute set to default).

If you specify a value for this parameter, be sure to specify at least one subnet using the VPCZoneIdentifier parameter when you create your group.

For more information, see Auto Scaling and Amazon Virtual Private Cloud in the Auto Scaling Developer Guide.

Valid values: default | dedicated

", + "LaunchConfiguration$PlacementTenancy": "

The tenancy of the instance, either default or dedicated. An instance with dedicated tenancy runs in an isolated, single-tenant hardware and can only be launched into a VPC.

" + } + }, + "XmlStringUserData": { + "base": null, + "refs": { + "CreateLaunchConfigurationType$UserData": "

The user data to make available to the launched EC2 instances. For more information, see Instance Metadata and User Data in the Amazon Elastic Compute Cloud User Guide.

At this time, launch configurations don't support compressed (zipped) user data files.

", + "LaunchConfiguration$UserData": "

The user data available to the instances.

" + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/autoscaling/2011-01-01/paginators-1.json b/lib/aws-sdk/Aws/data/autoscaling/2011-01-01/paginators-1.json new file mode 100644 index 0000000..31bc094 --- /dev/null +++ b/lib/aws-sdk/Aws/data/autoscaling/2011-01-01/paginators-1.json @@ -0,0 +1,52 @@ +{ + "pagination": { + "DescribeAutoScalingGroups": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxRecords", + "result_key": "AutoScalingGroups" + }, + "DescribeAutoScalingInstances": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxRecords", + "result_key": "AutoScalingInstances" + }, + "DescribeLaunchConfigurations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxRecords", + "result_key": "LaunchConfigurations" + }, + "DescribeNotificationConfigurations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxRecords", + "result_key": "NotificationConfigurations" + }, + "DescribePolicies": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxRecords", + "result_key": "ScalingPolicies" + }, + "DescribeScalingActivities": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxRecords", + "result_key": "Activities" + }, + "DescribeScheduledActions": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxRecords", + "result_key": "ScheduledUpdateGroupActions" + }, + "DescribeTags": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxRecords", + "result_key": "Tags" + } + } +} diff --git a/lib/aws-sdk/Aws/data/cloudformation/2010-05-15/api-2.json b/lib/aws-sdk/Aws/data/cloudformation/2010-05-15/api-2.json new file mode 100644 index 0000000..e1c6157 --- /dev/null +++ b/lib/aws-sdk/Aws/data/cloudformation/2010-05-15/api-2.json @@ -0,0 +1,886 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2010-05-15", + "endpointPrefix":"cloudformation", + "serviceFullName":"AWS CloudFormation", + "signatureVersion":"v4", + "xmlNamespace":"http://cloudformation.amazonaws.com/doc/2010-05-15/", + "protocol":"query" + }, + "operations":{ + "CancelUpdateStack":{ + "name":"CancelUpdateStack", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CancelUpdateStackInput"} + }, + "CreateStack":{ + "name":"CreateStack", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateStackInput"}, + "output":{ + "shape":"CreateStackOutput", + "resultWrapper":"CreateStackResult" + }, + "errors":[ + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceededException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AlreadyExistsException", + "error":{ + "code":"AlreadyExistsException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InsufficientCapabilitiesException", + "error":{ + "code":"InsufficientCapabilitiesException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteStack":{ + "name":"DeleteStack", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteStackInput"} + }, + "DescribeStackEvents":{ + "name":"DescribeStackEvents", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeStackEventsInput"}, + "output":{ + "shape":"DescribeStackEventsOutput", + "resultWrapper":"DescribeStackEventsResult" + } + }, + "DescribeStackResource":{ + "name":"DescribeStackResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeStackResourceInput"}, + "output":{ + "shape":"DescribeStackResourceOutput", + "resultWrapper":"DescribeStackResourceResult" + } + }, + "DescribeStackResources":{ + "name":"DescribeStackResources", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeStackResourcesInput"}, + "output":{ + "shape":"DescribeStackResourcesOutput", + "resultWrapper":"DescribeStackResourcesResult" + } + }, + "DescribeStacks":{ + "name":"DescribeStacks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeStacksInput"}, + "output":{ + "shape":"DescribeStacksOutput", + "resultWrapper":"DescribeStacksResult" + } + }, + "EstimateTemplateCost":{ + "name":"EstimateTemplateCost", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EstimateTemplateCostInput"}, + "output":{ + "shape":"EstimateTemplateCostOutput", + "resultWrapper":"EstimateTemplateCostResult" + } + }, + "GetStackPolicy":{ + "name":"GetStackPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetStackPolicyInput"}, + "output":{ + "shape":"GetStackPolicyOutput", + "resultWrapper":"GetStackPolicyResult" + } + }, + "GetTemplate":{ + "name":"GetTemplate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetTemplateInput"}, + "output":{ + "shape":"GetTemplateOutput", + "resultWrapper":"GetTemplateResult" + } + }, + "GetTemplateSummary":{ + "name":"GetTemplateSummary", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetTemplateSummaryInput"}, + "output":{ + "shape":"GetTemplateSummaryOutput", + "resultWrapper":"GetTemplateSummaryResult" + } + }, + "ListStackResources":{ + "name":"ListStackResources", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListStackResourcesInput"}, + "output":{ + "shape":"ListStackResourcesOutput", + "resultWrapper":"ListStackResourcesResult" + } + }, + "ListStacks":{ + "name":"ListStacks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListStacksInput"}, + "output":{ + "shape":"ListStacksOutput", + "resultWrapper":"ListStacksResult" + } + }, + "SetStackPolicy":{ + "name":"SetStackPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetStackPolicyInput"} + }, + "SignalResource":{ + "name":"SignalResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SignalResourceInput"} + }, + "UpdateStack":{ + "name":"UpdateStack", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateStackInput"}, + "output":{ + "shape":"UpdateStackOutput", + "resultWrapper":"UpdateStackResult" + }, + "errors":[ + { + "shape":"InsufficientCapabilitiesException", + "error":{ + "code":"InsufficientCapabilitiesException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "ValidateTemplate":{ + "name":"ValidateTemplate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ValidateTemplateInput"}, + "output":{ + "shape":"ValidateTemplateOutput", + "resultWrapper":"ValidateTemplateResult" + } + } + }, + "shapes":{ + "AllowedValue":{"type":"string"}, + "AllowedValues":{ + "type":"list", + "member":{"shape":"AllowedValue"} + }, + "AlreadyExistsException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AlreadyExistsException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "CancelUpdateStackInput":{ + "type":"structure", + "required":["StackName"], + "members":{ + "StackName":{"shape":"StackName"} + } + }, + "Capabilities":{ + "type":"list", + "member":{"shape":"Capability"} + }, + "CapabilitiesReason":{"type":"string"}, + "Capability":{ + "type":"string", + "enum":["CAPABILITY_IAM"] + }, + "CreateStackInput":{ + "type":"structure", + "required":["StackName"], + "members":{ + "StackName":{"shape":"StackName"}, + "TemplateBody":{"shape":"TemplateBody"}, + "TemplateURL":{"shape":"TemplateURL"}, + "Parameters":{"shape":"Parameters"}, + "DisableRollback":{"shape":"DisableRollback"}, + "TimeoutInMinutes":{"shape":"TimeoutMinutes"}, + "NotificationARNs":{"shape":"NotificationARNs"}, + "Capabilities":{"shape":"Capabilities"}, + "OnFailure":{"shape":"OnFailure"}, + "StackPolicyBody":{"shape":"StackPolicyBody"}, + "StackPolicyURL":{"shape":"StackPolicyURL"}, + "Tags":{"shape":"Tags"} + } + }, + "CreateStackOutput":{ + "type":"structure", + "members":{ + "StackId":{"shape":"StackId"} + } + }, + "CreationTime":{"type":"timestamp"}, + "DeleteStackInput":{ + "type":"structure", + "required":["StackName"], + "members":{ + "StackName":{"shape":"StackName"} + } + }, + "DeletionTime":{"type":"timestamp"}, + "DescribeStackEventsInput":{ + "type":"structure", + "members":{ + "StackName":{"shape":"StackName"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DescribeStackEventsOutput":{ + "type":"structure", + "members":{ + "StackEvents":{"shape":"StackEvents"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DescribeStackResourceInput":{ + "type":"structure", + "required":[ + "StackName", + "LogicalResourceId" + ], + "members":{ + "StackName":{"shape":"StackName"}, + "LogicalResourceId":{"shape":"LogicalResourceId"} + } + }, + "DescribeStackResourceOutput":{ + "type":"structure", + "members":{ + "StackResourceDetail":{"shape":"StackResourceDetail"} + } + }, + "DescribeStackResourcesInput":{ + "type":"structure", + "members":{ + "StackName":{"shape":"StackName"}, + "LogicalResourceId":{"shape":"LogicalResourceId"}, + "PhysicalResourceId":{"shape":"PhysicalResourceId"} + } + }, + "DescribeStackResourcesOutput":{ + "type":"structure", + "members":{ + "StackResources":{"shape":"StackResources"} + } + }, + "DescribeStacksInput":{ + "type":"structure", + "members":{ + "StackName":{"shape":"StackName"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DescribeStacksOutput":{ + "type":"structure", + "members":{ + "Stacks":{"shape":"Stacks"}, + "NextToken":{"shape":"NextToken"} + } + }, + "Description":{"type":"string"}, + "DisableRollback":{"type":"boolean"}, + "EstimateTemplateCostInput":{ + "type":"structure", + "members":{ + "TemplateBody":{"shape":"TemplateBody"}, + "TemplateURL":{"shape":"TemplateURL"}, + "Parameters":{"shape":"Parameters"} + } + }, + "EstimateTemplateCostOutput":{ + "type":"structure", + "members":{ + "Url":{"shape":"Url"} + } + }, + "EventId":{"type":"string"}, + "GetStackPolicyInput":{ + "type":"structure", + "required":["StackName"], + "members":{ + "StackName":{"shape":"StackName"} + } + }, + "GetStackPolicyOutput":{ + "type":"structure", + "members":{ + "StackPolicyBody":{"shape":"StackPolicyBody"} + } + }, + "GetTemplateInput":{ + "type":"structure", + "required":["StackName"], + "members":{ + "StackName":{"shape":"StackName"} + } + }, + "GetTemplateOutput":{ + "type":"structure", + "members":{ + "TemplateBody":{"shape":"TemplateBody"} + } + }, + "GetTemplateSummaryInput":{ + "type":"structure", + "members":{ + "TemplateBody":{"shape":"TemplateBody"}, + "TemplateURL":{"shape":"TemplateURL"}, + "StackName":{"shape":"StackNameOrId"} + } + }, + "GetTemplateSummaryOutput":{ + "type":"structure", + "members":{ + "Parameters":{"shape":"ParameterDeclarations"}, + "Description":{"shape":"Description"}, + "Capabilities":{"shape":"Capabilities"}, + "CapabilitiesReason":{"shape":"CapabilitiesReason"}, + "Version":{"shape":"Version"}, + "Metadata":{"shape":"Metadata"} + } + }, + "InsufficientCapabilitiesException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InsufficientCapabilitiesException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "LastUpdatedTime":{"type":"timestamp"}, + "LimitExceededException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"LimitExceededException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ListStackResourcesInput":{ + "type":"structure", + "required":["StackName"], + "members":{ + "StackName":{"shape":"StackName"}, + "NextToken":{"shape":"NextToken"} + } + }, + "ListStackResourcesOutput":{ + "type":"structure", + "members":{ + "StackResourceSummaries":{"shape":"StackResourceSummaries"}, + "NextToken":{"shape":"NextToken"} + } + }, + "ListStacksInput":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "StackStatusFilter":{"shape":"StackStatusFilter"} + } + }, + "ListStacksOutput":{ + "type":"structure", + "members":{ + "StackSummaries":{"shape":"StackSummaries"}, + "NextToken":{"shape":"NextToken"} + } + }, + "LogicalResourceId":{"type":"string"}, + "Metadata":{"type":"string"}, + "NextToken":{ + "type":"string", + "min":1, + "max":1024 + }, + "NoEcho":{"type":"boolean"}, + "NotificationARN":{"type":"string"}, + "NotificationARNs":{ + "type":"list", + "member":{"shape":"NotificationARN"}, + "max":5 + }, + "OnFailure":{ + "type":"string", + "enum":[ + "DO_NOTHING", + "ROLLBACK", + "DELETE" + ] + }, + "Output":{ + "type":"structure", + "members":{ + "OutputKey":{"shape":"OutputKey"}, + "OutputValue":{"shape":"OutputValue"}, + "Description":{"shape":"Description"} + } + }, + "OutputKey":{"type":"string"}, + "OutputValue":{"type":"string"}, + "Outputs":{ + "type":"list", + "member":{"shape":"Output"} + }, + "Parameter":{ + "type":"structure", + "members":{ + "ParameterKey":{"shape":"ParameterKey"}, + "ParameterValue":{"shape":"ParameterValue"}, + "UsePreviousValue":{"shape":"UsePreviousValue"} + } + }, + "ParameterConstraints":{ + "type":"structure", + "members":{ + "AllowedValues":{"shape":"AllowedValues"} + } + }, + "ParameterDeclaration":{ + "type":"structure", + "members":{ + "ParameterKey":{"shape":"ParameterKey"}, + "DefaultValue":{"shape":"ParameterValue"}, + "ParameterType":{"shape":"ParameterType"}, + "NoEcho":{"shape":"NoEcho"}, + "Description":{"shape":"Description"}, + "ParameterConstraints":{"shape":"ParameterConstraints"} + } + }, + "ParameterDeclarations":{ + "type":"list", + "member":{"shape":"ParameterDeclaration"} + }, + "ParameterKey":{"type":"string"}, + "ParameterType":{"type":"string"}, + "ParameterValue":{"type":"string"}, + "Parameters":{ + "type":"list", + "member":{"shape":"Parameter"} + }, + "PhysicalResourceId":{"type":"string"}, + "ResourceProperties":{"type":"string"}, + "ResourceSignalStatus":{ + "type":"string", + "enum":[ + "SUCCESS", + "FAILURE" + ] + }, + "ResourceSignalUniqueId":{ + "type":"string", + "min":1, + "max":64 + }, + "ResourceStatus":{ + "type":"string", + "enum":[ + "CREATE_IN_PROGRESS", + "CREATE_FAILED", + "CREATE_COMPLETE", + "DELETE_IN_PROGRESS", + "DELETE_FAILED", + "DELETE_COMPLETE", + "DELETE_SKIPPED", + "UPDATE_IN_PROGRESS", + "UPDATE_FAILED", + "UPDATE_COMPLETE" + ] + }, + "ResourceStatusReason":{"type":"string"}, + "ResourceType":{"type":"string"}, + "SetStackPolicyInput":{ + "type":"structure", + "required":["StackName"], + "members":{ + "StackName":{"shape":"StackName"}, + "StackPolicyBody":{"shape":"StackPolicyBody"}, + "StackPolicyURL":{"shape":"StackPolicyURL"} + } + }, + "SignalResourceInput":{ + "type":"structure", + "required":[ + "StackName", + "LogicalResourceId", + "UniqueId", + "Status" + ], + "members":{ + "StackName":{"shape":"StackNameOrId"}, + "LogicalResourceId":{"shape":"LogicalResourceId"}, + "UniqueId":{"shape":"ResourceSignalUniqueId"}, + "Status":{"shape":"ResourceSignalStatus"} + } + }, + "Stack":{ + "type":"structure", + "required":[ + "StackName", + "CreationTime", + "StackStatus" + ], + "members":{ + "StackId":{"shape":"StackId"}, + "StackName":{"shape":"StackName"}, + "Description":{"shape":"Description"}, + "Parameters":{"shape":"Parameters"}, + "CreationTime":{"shape":"CreationTime"}, + "LastUpdatedTime":{"shape":"LastUpdatedTime"}, + "StackStatus":{"shape":"StackStatus"}, + "StackStatusReason":{"shape":"StackStatusReason"}, + "DisableRollback":{"shape":"DisableRollback"}, + "NotificationARNs":{"shape":"NotificationARNs"}, + "TimeoutInMinutes":{"shape":"TimeoutMinutes"}, + "Capabilities":{"shape":"Capabilities"}, + "Outputs":{"shape":"Outputs"}, + "Tags":{"shape":"Tags"} + } + }, + "StackEvent":{ + "type":"structure", + "required":[ + "StackId", + "EventId", + "StackName", + "Timestamp" + ], + "members":{ + "StackId":{"shape":"StackId"}, + "EventId":{"shape":"EventId"}, + "StackName":{"shape":"StackName"}, + "LogicalResourceId":{"shape":"LogicalResourceId"}, + "PhysicalResourceId":{"shape":"PhysicalResourceId"}, + "ResourceType":{"shape":"ResourceType"}, + "Timestamp":{"shape":"Timestamp"}, + "ResourceStatus":{"shape":"ResourceStatus"}, + "ResourceStatusReason":{"shape":"ResourceStatusReason"}, + "ResourceProperties":{"shape":"ResourceProperties"} + } + }, + "StackEvents":{ + "type":"list", + "member":{"shape":"StackEvent"} + }, + "StackId":{"type":"string"}, + "StackName":{"type":"string"}, + "StackNameOrId":{ + "type":"string", + "min":1, + "pattern":"([a-zA-Z][-a-zA-Z0-9]*)|(arn:\\b(aws|aws-us-gov|aws-cn)\\b:[-a-zA-Z0-9:/._+]*)" + }, + "StackPolicyBody":{ + "type":"string", + "min":1, + "max":16384 + }, + "StackPolicyDuringUpdateBody":{ + "type":"string", + "min":1, + "max":16384 + }, + "StackPolicyDuringUpdateURL":{ + "type":"string", + "min":1, + "max":1350 + }, + "StackPolicyURL":{ + "type":"string", + "min":1, + "max":1350 + }, + "StackResource":{ + "type":"structure", + "required":[ + "LogicalResourceId", + "ResourceType", + "Timestamp", + "ResourceStatus" + ], + "members":{ + "StackName":{"shape":"StackName"}, + "StackId":{"shape":"StackId"}, + "LogicalResourceId":{"shape":"LogicalResourceId"}, + "PhysicalResourceId":{"shape":"PhysicalResourceId"}, + "ResourceType":{"shape":"ResourceType"}, + "Timestamp":{"shape":"Timestamp"}, + "ResourceStatus":{"shape":"ResourceStatus"}, + "ResourceStatusReason":{"shape":"ResourceStatusReason"}, + "Description":{"shape":"Description"} + } + }, + "StackResourceDetail":{ + "type":"structure", + "required":[ + "LogicalResourceId", + "ResourceType", + "LastUpdatedTimestamp", + "ResourceStatus" + ], + "members":{ + "StackName":{"shape":"StackName"}, + "StackId":{"shape":"StackId"}, + "LogicalResourceId":{"shape":"LogicalResourceId"}, + "PhysicalResourceId":{"shape":"PhysicalResourceId"}, + "ResourceType":{"shape":"ResourceType"}, + "LastUpdatedTimestamp":{"shape":"Timestamp"}, + "ResourceStatus":{"shape":"ResourceStatus"}, + "ResourceStatusReason":{"shape":"ResourceStatusReason"}, + "Description":{"shape":"Description"}, + "Metadata":{"shape":"Metadata"} + } + }, + "StackResourceSummaries":{ + "type":"list", + "member":{"shape":"StackResourceSummary"} + }, + "StackResourceSummary":{ + "type":"structure", + "required":[ + "LogicalResourceId", + "ResourceType", + "LastUpdatedTimestamp", + "ResourceStatus" + ], + "members":{ + "LogicalResourceId":{"shape":"LogicalResourceId"}, + "PhysicalResourceId":{"shape":"PhysicalResourceId"}, + "ResourceType":{"shape":"ResourceType"}, + "LastUpdatedTimestamp":{"shape":"Timestamp"}, + "ResourceStatus":{"shape":"ResourceStatus"}, + "ResourceStatusReason":{"shape":"ResourceStatusReason"} + } + }, + "StackResources":{ + "type":"list", + "member":{"shape":"StackResource"} + }, + "StackStatus":{ + "type":"string", + "enum":[ + "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" + ] + }, + "StackStatusFilter":{ + "type":"list", + "member":{"shape":"StackStatus"} + }, + "StackStatusReason":{"type":"string"}, + "StackSummaries":{ + "type":"list", + "member":{"shape":"StackSummary"} + }, + "StackSummary":{ + "type":"structure", + "required":[ + "StackName", + "CreationTime", + "StackStatus" + ], + "members":{ + "StackId":{"shape":"StackId"}, + "StackName":{"shape":"StackName"}, + "TemplateDescription":{"shape":"TemplateDescription"}, + "CreationTime":{"shape":"CreationTime"}, + "LastUpdatedTime":{"shape":"LastUpdatedTime"}, + "DeletionTime":{"shape":"DeletionTime"}, + "StackStatus":{"shape":"StackStatus"}, + "StackStatusReason":{"shape":"StackStatusReason"} + } + }, + "Stacks":{ + "type":"list", + "member":{"shape":"Stack"} + }, + "Tag":{ + "type":"structure", + "members":{ + "Key":{"shape":"TagKey"}, + "Value":{"shape":"TagValue"} + } + }, + "TagKey":{"type":"string"}, + "TagValue":{"type":"string"}, + "Tags":{ + "type":"list", + "member":{"shape":"Tag"} + }, + "TemplateBody":{ + "type":"string", + "min":1 + }, + "TemplateDescription":{"type":"string"}, + "TemplateParameter":{ + "type":"structure", + "members":{ + "ParameterKey":{"shape":"ParameterKey"}, + "DefaultValue":{"shape":"ParameterValue"}, + "NoEcho":{"shape":"NoEcho"}, + "Description":{"shape":"Description"} + } + }, + "TemplateParameters":{ + "type":"list", + "member":{"shape":"TemplateParameter"} + }, + "TemplateURL":{ + "type":"string", + "min":1, + "max":1024 + }, + "TimeoutMinutes":{ + "type":"integer", + "min":1 + }, + "Timestamp":{"type":"timestamp"}, + "UpdateStackInput":{ + "type":"structure", + "required":["StackName"], + "members":{ + "StackName":{"shape":"StackName"}, + "TemplateBody":{"shape":"TemplateBody"}, + "TemplateURL":{"shape":"TemplateURL"}, + "UsePreviousTemplate":{"shape":"UsePreviousTemplate"}, + "StackPolicyDuringUpdateBody":{"shape":"StackPolicyDuringUpdateBody"}, + "StackPolicyDuringUpdateURL":{"shape":"StackPolicyDuringUpdateURL"}, + "Parameters":{"shape":"Parameters"}, + "Capabilities":{"shape":"Capabilities"}, + "StackPolicyBody":{"shape":"StackPolicyBody"}, + "StackPolicyURL":{"shape":"StackPolicyURL"}, + "NotificationARNs":{"shape":"NotificationARNs"} + } + }, + "UpdateStackOutput":{ + "type":"structure", + "members":{ + "StackId":{"shape":"StackId"} + } + }, + "Url":{"type":"string"}, + "UsePreviousTemplate":{"type":"boolean"}, + "UsePreviousValue":{"type":"boolean"}, + "ValidateTemplateInput":{ + "type":"structure", + "members":{ + "TemplateBody":{"shape":"TemplateBody"}, + "TemplateURL":{"shape":"TemplateURL"} + } + }, + "ValidateTemplateOutput":{ + "type":"structure", + "members":{ + "Parameters":{"shape":"TemplateParameters"}, + "Description":{"shape":"Description"}, + "Capabilities":{"shape":"Capabilities"}, + "CapabilitiesReason":{"shape":"CapabilitiesReason"} + } + }, + "Version":{"type":"string"} + } +} diff --git a/lib/aws-sdk/Aws/data/cloudformation/2010-05-15/docs-2.json b/lib/aws-sdk/Aws/data/cloudformation/2010-05-15/docs-2.json new file mode 100644 index 0000000..507a247 --- /dev/null +++ b/lib/aws-sdk/Aws/data/cloudformation/2010-05-15/docs-2.json @@ -0,0 +1,725 @@ +{ + "version": "2.0", + "operations": { + "CancelUpdateStack": "

Cancels an update on the specified stack. If the call completes successfully, the stack will roll back the update and revert to the previous stack configuration.

Only stacks that are in the UPDATE_IN_PROGRESS state can be canceled.", + "CreateStack": "

Creates a stack as specified in the template. After the call completes successfully, the stack creation starts. You can check the status of the stack via the DescribeStacks API.

", + "DeleteStack": "

Deletes a specified stack. Once the call completes successfully, stack deletion starts. Deleted stacks do not show up in the DescribeStacks API if the deletion has been completed successfully.

", + "DescribeStackEvents": "

Returns all stack related events for a specified stack. For more information about a stack's event history, go to Stacks in the AWS CloudFormation User Guide.

You can list events for stacks that have failed to create or have been deleted by specifying the unique stack identifier (stack ID).", + "DescribeStackResource": "

Returns a description of the specified resource in the specified stack.

For deleted stacks, DescribeStackResource returns resource information for up to 90 days after the stack has been deleted.

", + "DescribeStackResources": "

Returns AWS resource descriptions for running and deleted stacks. If StackName is specified, all the associated resources that are part of the stack are returned. If PhysicalResourceId is specified, the associated resources of the stack that the resource belongs to are returned.

Only the first 100 resources will be returned. If your stack has more resources than this, you should use ListStackResources instead.

For deleted stacks, DescribeStackResources returns resource information for up to 90 days after the stack has been deleted.

You must specify either StackName or PhysicalResourceId, but not both. In addition, you can specify LogicalResourceId to filter the returned result. For more information about resources, the LogicalResourceId and PhysicalResourceId, go to the AWS CloudFormation User Guide.

A ValidationError is returned if you specify both StackName and PhysicalResourceId in the same request.", + "DescribeStacks": "

Returns the description for the specified stack; if no stack name was specified, then it returns the description for all the stacks created.

", + "EstimateTemplateCost": "

Returns the estimated monthly cost of a template. The return value is an AWS Simple Monthly Calculator URL with a query string that describes the resources required to run the template.

", + "GetStackPolicy": "

Returns the stack policy for a specified stack. If a stack doesn't have a policy, a null value is returned.

", + "GetTemplate": "

Returns the template body for a specified stack. You can get the template for running or deleted stacks.

For deleted stacks, GetTemplate returns the template for up to 90 days after the stack has been deleted.

If the template does not exist, a ValidationError is returned. ", + "GetTemplateSummary": "

Returns information about a new or existing template. The GetTemplateSummary action is useful for viewing parameter information, such as default parameter values and parameter types, before you create or update a stack.

You can use the GetTemplateSummary action when you submit a template, or you can get template information for a running or deleted stack.

For deleted stacks, GetTemplateSummary returns the template information for up to 90 days after the stack has been deleted. If the template does not exist, a ValidationError is returned.

", + "ListStackResources": "

Returns descriptions of all resources of the specified stack.

For deleted stacks, ListStackResources returns resource information for up to 90 days after the stack has been deleted.

", + "ListStacks": "

Returns the summary information for stacks whose status matches the specified StackStatusFilter. Summary information for stacks that have been deleted is kept for 90 days after the stack is deleted. If no StackStatusFilter is specified, summary information for all stacks is returned (including existing stacks and stacks that have been deleted).

", + "SetStackPolicy": "

Sets a stack policy for a specified stack.

", + "SignalResource": "

Sends a signal to the specified resource with a success or failure status. You can use the SignalResource API in conjunction with a creation policy or update policy. AWS CloudFormation doesn't proceed with a stack creation or update until resources receive the required number of signals or the timeout period is exceeded. The SignalResource API is useful in cases where you want to send signals from anywhere other than an Amazon EC2 instance.

", + "UpdateStack": "

Updates a stack as specified in the template. After the call completes successfully, the stack update starts. You can check the status of the stack via the DescribeStacks action.

To get a copy of the template for an existing stack, you can use the GetTemplate action.

Tags that were associated with this stack during creation time will still be associated with the stack after an UpdateStack operation.

For more information about creating an update template, updating a stack, and monitoring the progress of the update, see Updating a Stack.

", + "ValidateTemplate": "

Validates a specified template.

" + }, + "service": "AWS CloudFormation

AWS CloudFormation enables you to create and manage AWS infrastructure deployments predictably and repeatedly. AWS CloudFormation helps you leverage AWS products such as Amazon EC2, EBS, Amazon SNS, ELB, and Auto Scaling to build highly-reliable, highly scalable, cost effective applications without worrying about creating and configuring the underlying AWS infrastructure.

With AWS CloudFormation, you declare all of your resources and dependencies in a template file. The template defines a collection of resources as a single unit called a stack. AWS CloudFormation creates and deletes all member resources of the stack together and manages all dependencies between the resources for you.

For more information about this product, go to the CloudFormation Product Page.

Amazon CloudFormation makes use of other AWS products. If you need additional technical information about a specific AWS product, you can find the product's technical documentation at http://aws.amazon.com/documentation/.

", + "shapes": { + "AllowedValue": { + "base": null, + "refs": { + "AllowedValues$member": null + } + }, + "AllowedValues": { + "base": null, + "refs": { + "ParameterConstraints$AllowedValues": "

A list of values that are permitted for a parameter.

" + } + }, + "AlreadyExistsException": { + "base": "

Resource with the name requested already exists.

", + "refs": { + } + }, + "CancelUpdateStackInput": { + "base": "

The input for CancelUpdateStack action.

", + "refs": { + } + }, + "Capabilities": { + "base": null, + "refs": { + "CreateStackInput$Capabilities": "

A list of capabilities that you must specify before AWS CloudFormation can create or update certain stacks. Some stack templates might include resources that can affect permissions in your AWS account. For those stacks, you must explicitly acknowledge their capabilities by specifying this parameter.

Currently, the only valid value is CAPABILITY_IAM, which is required for the following resources: AWS::IAM::AccessKey, AWS::IAM::Group, AWS::IAM::InstanceProfile, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User, and AWS::IAM::UserToGroupAddition. If your stack template contains these resources, we recommend that you review any permissions associated with them. If you don't specify this parameter, this action returns an InsufficientCapabilities error.

", + "GetTemplateSummaryOutput$Capabilities": "

The capabilities found within the template. Currently, AWS CloudFormation supports only the CAPABILITY_IAM capability. If your template contains IAM resources, you must specify the CAPABILITY_IAM value for this parameter when you use the CreateStack or UpdateStack actions with your template; otherwise, those actions return an InsufficientCapabilities error.

", + "Stack$Capabilities": "

The capabilities allowed in the stack.

", + "UpdateStackInput$Capabilities": "

A list of capabilities that you must specify before AWS CloudFormation can create or update certain stacks. Some stack templates might include resources that can affect permissions in your AWS account. For those stacks, you must explicitly acknowledge their capabilities by specifying this parameter. Currently, the only valid value is CAPABILITY_IAM, which is required for the following resources: AWS::IAM::AccessKey, AWS::IAM::Group, AWS::IAM::InstanceProfile, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User, and AWS::IAM::UserToGroupAddition. If your stack template contains these resources, we recommend that you review any permissions associated with them. If you don't specify this parameter, this action returns an InsufficientCapabilities error.

", + "ValidateTemplateOutput$Capabilities": "

The capabilities found within the template. Currently, AWS CloudFormation supports only the CAPABILITY_IAM capability. If your template contains IAM resources, you must specify the CAPABILITY_IAM value for this parameter when you use the CreateStack or UpdateStack actions with your template; otherwise, those actions return an InsufficientCapabilities error.

" + } + }, + "CapabilitiesReason": { + "base": null, + "refs": { + "GetTemplateSummaryOutput$CapabilitiesReason": "

The list of resources that generated the values in the Capabilities response element.

", + "ValidateTemplateOutput$CapabilitiesReason": "

The list of resources that generated the values in the Capabilities response element.

" + } + }, + "Capability": { + "base": null, + "refs": { + "Capabilities$member": null + } + }, + "CreateStackInput": { + "base": "

The input for CreateStack action.

", + "refs": { + } + }, + "CreateStackOutput": { + "base": "

The output for a CreateStack action.

", + "refs": { + } + }, + "CreationTime": { + "base": null, + "refs": { + "Stack$CreationTime": "

Time at which the stack was created.

", + "StackSummary$CreationTime": "

The time the stack was created.

" + } + }, + "DeleteStackInput": { + "base": "

The input for DeleteStack action.

", + "refs": { + } + }, + "DeletionTime": { + "base": null, + "refs": { + "StackSummary$DeletionTime": "

The time the stack was deleted.

" + } + }, + "DescribeStackEventsInput": { + "base": "

The input for DescribeStackEvents action.

", + "refs": { + } + }, + "DescribeStackEventsOutput": { + "base": "

The output for a DescribeStackEvents action.

", + "refs": { + } + }, + "DescribeStackResourceInput": { + "base": "

The input for DescribeStackResource action.

", + "refs": { + } + }, + "DescribeStackResourceOutput": { + "base": "

The output for a DescribeStackResource action.

", + "refs": { + } + }, + "DescribeStackResourcesInput": { + "base": "

The input for DescribeStackResources action.

", + "refs": { + } + }, + "DescribeStackResourcesOutput": { + "base": "

The output for a DescribeStackResources action.

", + "refs": { + } + }, + "DescribeStacksInput": { + "base": "

The input for DescribeStacks action.

", + "refs": { + } + }, + "DescribeStacksOutput": { + "base": "

The output for a DescribeStacks action.

", + "refs": { + } + }, + "Description": { + "base": null, + "refs": { + "GetTemplateSummaryOutput$Description": "

The value that is defined in the Description property of the template.

", + "Output$Description": "

User defined description associated with the output.

", + "ParameterDeclaration$Description": "

The description that is associate with the parameter.

", + "Stack$Description": "

User defined description associated with the stack.

", + "StackResource$Description": "

User defined description associated with the resource.

", + "StackResourceDetail$Description": "

User defined description associated with the resource.

", + "TemplateParameter$Description": "

User defined description associated with the parameter.

", + "ValidateTemplateOutput$Description": "

The description found within the template.

" + } + }, + "DisableRollback": { + "base": null, + "refs": { + "CreateStackInput$DisableRollback": "

Set to true to disable rollback of the stack if stack creation failed. You can specify either DisableRollback or OnFailure, but not both.

Default: false

", + "Stack$DisableRollback": "

Boolean to enable or disable rollback on stack creation failures:

  • true: disable rollback
  • false: enable rollback

" + } + }, + "EstimateTemplateCostInput": { + "base": null, + "refs": { + } + }, + "EstimateTemplateCostOutput": { + "base": "

The output for a EstimateTemplateCost action.

", + "refs": { + } + }, + "EventId": { + "base": null, + "refs": { + "StackEvent$EventId": "

The unique ID of this event.

" + } + }, + "GetStackPolicyInput": { + "base": "

The input for the GetStackPolicy action.

", + "refs": { + } + }, + "GetStackPolicyOutput": { + "base": "

The output for the GetStackPolicy action.

", + "refs": { + } + }, + "GetTemplateInput": { + "base": "

The input for a GetTemplate action.

", + "refs": { + } + }, + "GetTemplateOutput": { + "base": "

The output for GetTemplate action.

", + "refs": { + } + }, + "GetTemplateSummaryInput": { + "base": "

The input for the GetTemplateSummary action.

", + "refs": { + } + }, + "GetTemplateSummaryOutput": { + "base": "

The output for the GetTemplateSummary action.

", + "refs": { + } + }, + "InsufficientCapabilitiesException": { + "base": "

The template contains resources with capabilities that were not specified in the Capabilities parameter.

", + "refs": { + } + }, + "LastUpdatedTime": { + "base": null, + "refs": { + "Stack$LastUpdatedTime": "

The time the stack was last updated. This field will only be returned if the stack has been updated at least once.

", + "StackSummary$LastUpdatedTime": "

The time the stack was last updated. This field will only be returned if the stack has been updated at least once.

" + } + }, + "LimitExceededException": { + "base": "

Quota for the resource has already been reached.

", + "refs": { + } + }, + "ListStackResourcesInput": { + "base": "

The input for the ListStackResource action.

", + "refs": { + } + }, + "ListStackResourcesOutput": { + "base": "

The output for a ListStackResources action.

", + "refs": { + } + }, + "ListStacksInput": { + "base": "

The input for ListStacks action.

", + "refs": { + } + }, + "ListStacksOutput": { + "base": "

The output for ListStacks action.

", + "refs": { + } + }, + "LogicalResourceId": { + "base": null, + "refs": { + "DescribeStackResourceInput$LogicalResourceId": "

The logical name of the resource as specified in the template.

Default: There is no default value.

", + "DescribeStackResourcesInput$LogicalResourceId": "

The logical name of the resource as specified in the template.

Default: There is no default value.

", + "SignalResourceInput$LogicalResourceId": "

The logical ID of the resource that you want to signal. The logical ID is the name of the resource that given in the template.

", + "StackEvent$LogicalResourceId": "

The logical name of the resource specified in the template.

", + "StackResource$LogicalResourceId": "

The logical name of the resource specified in the template.

", + "StackResourceDetail$LogicalResourceId": "

The logical name of the resource specified in the template.

", + "StackResourceSummary$LogicalResourceId": "

The logical name of the resource specified in the template.

" + } + }, + "Metadata": { + "base": null, + "refs": { + "GetTemplateSummaryOutput$Metadata": "

The value that is defined for the Metadata property of the template.

", + "StackResourceDetail$Metadata": "

The JSON format content of the Metadata attribute declared for the resource. For more information, see Metadata Attribute in the AWS CloudFormation User Guide.

" + } + }, + "NextToken": { + "base": null, + "refs": { + "DescribeStackEventsInput$NextToken": "

String that identifies the start of the next list of events, if there is one.

Default: There is no default value.

", + "DescribeStackEventsOutput$NextToken": "

String that identifies the start of the next list of events, if there is one.

", + "DescribeStacksInput$NextToken": "String that identifies the start of the next list of stacks, if there is one.", + "DescribeStacksOutput$NextToken": "String that identifies the start of the next list of stacks, if there is one.", + "ListStackResourcesInput$NextToken": "

String that identifies the start of the next list of stack resource summaries, if there is one.

Default: There is no default value.

", + "ListStackResourcesOutput$NextToken": "

String that identifies the start of the next list of stack resources, if there is one.

", + "ListStacksInput$NextToken": "

String that identifies the start of the next list of stacks, if there is one.

Default: There is no default value.

", + "ListStacksOutput$NextToken": "

String that identifies the start of the next list of stacks, if there is one.

" + } + }, + "NoEcho": { + "base": null, + "refs": { + "ParameterDeclaration$NoEcho": "

Flag that indicates whether the parameter value is shown as plain text in logs and in the AWS Management Console.

", + "TemplateParameter$NoEcho": "

Flag indicating whether the parameter should be displayed as plain text in logs and UIs.

" + } + }, + "NotificationARN": { + "base": null, + "refs": { + "NotificationARNs$member": null + } + }, + "NotificationARNs": { + "base": null, + "refs": { + "CreateStackInput$NotificationARNs": "

The Simple Notification Service (SNS) topic ARNs to publish stack related events. You can find your SNS topic ARNs using the SNS console or your Command Line Interface (CLI).

", + "Stack$NotificationARNs": "

SNS topic ARNs to which stack related events are published.

", + "UpdateStackInput$NotificationARNs": "

Update the ARNs for the Amazon SNS topics that are associated with the stack.

" + } + }, + "OnFailure": { + "base": null, + "refs": { + "CreateStackInput$OnFailure": "

Determines what action will be taken if stack creation fails. This must be one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either OnFailure or DisableRollback, but not both.

Default: ROLLBACK

" + } + }, + "Output": { + "base": "

The Output data type.

", + "refs": { + "Outputs$member": null + } + }, + "OutputKey": { + "base": null, + "refs": { + "Output$OutputKey": "

The key associated with the output.

" + } + }, + "OutputValue": { + "base": null, + "refs": { + "Output$OutputValue": "

The value associated with the output.

" + } + }, + "Outputs": { + "base": null, + "refs": { + "Stack$Outputs": "

A list of output structures.

" + } + }, + "Parameter": { + "base": "

The Parameter data type.

", + "refs": { + "Parameters$member": null + } + }, + "ParameterConstraints": { + "base": "

A set of criteria that AWS CloudFormation uses to validate parameter values. Although other constraints might be defined in the stack template, AWS CloudFormation returns only the AllowedValues property.

", + "refs": { + "ParameterDeclaration$ParameterConstraints": "

The criteria that AWS CloudFormation uses to validate parameter values.

" + } + }, + "ParameterDeclaration": { + "base": "

The ParameterDeclaration data type.

", + "refs": { + "ParameterDeclarations$member": null + } + }, + "ParameterDeclarations": { + "base": null, + "refs": { + "GetTemplateSummaryOutput$Parameters": "

A list of parameter declarations that describe various properties for each parameter.

" + } + }, + "ParameterKey": { + "base": null, + "refs": { + "Parameter$ParameterKey": "

The key associated with the parameter. If you don't specify a key and value for a particular parameter, AWS CloudFormation uses the default value that is specified in your template.

", + "ParameterDeclaration$ParameterKey": "

The name that is associated with the parameter.

", + "TemplateParameter$ParameterKey": "

The name associated with the parameter.

" + } + }, + "ParameterType": { + "base": null, + "refs": { + "ParameterDeclaration$ParameterType": "

The type of parameter.

" + } + }, + "ParameterValue": { + "base": null, + "refs": { + "Parameter$ParameterValue": "

The value associated with the parameter.

", + "ParameterDeclaration$DefaultValue": "

The default value of the parameter.

", + "TemplateParameter$DefaultValue": "

The default value associated with the parameter.

" + } + }, + "Parameters": { + "base": null, + "refs": { + "CreateStackInput$Parameters": "

A list of Parameter structures that specify input parameters for the stack.

", + "EstimateTemplateCostInput$Parameters": "

A list of Parameter structures that specify input parameters.

", + "Stack$Parameters": "

A list of Parameter structures.

", + "UpdateStackInput$Parameters": "

A list of Parameter structures that specify input parameters for the stack. For more information, see the Parameter data type.

" + } + }, + "PhysicalResourceId": { + "base": null, + "refs": { + "DescribeStackResourcesInput$PhysicalResourceId": "

The name or unique identifier that corresponds to a physical instance ID of a resource supported by AWS CloudFormation.

For example, for an Amazon Elastic Compute Cloud (EC2) instance, PhysicalResourceId corresponds to the InstanceId. You can pass the EC2 InstanceId to DescribeStackResources to find which stack the instance belongs to and what other resources are part of the stack.

Required: Conditional. If you do not specify PhysicalResourceId, you must specify StackName.

Default: There is no default value.

", + "StackEvent$PhysicalResourceId": "

The name or unique identifier associated with the physical instance of the resource.

", + "StackResource$PhysicalResourceId": "

The name or unique identifier that corresponds to a physical instance ID of a resource supported by AWS CloudFormation.

", + "StackResourceDetail$PhysicalResourceId": "

The name or unique identifier that corresponds to a physical instance ID of a resource supported by AWS CloudFormation.

", + "StackResourceSummary$PhysicalResourceId": "

The name or unique identifier that corresponds to a physical instance ID of the resource.

" + } + }, + "ResourceProperties": { + "base": null, + "refs": { + "StackEvent$ResourceProperties": "

BLOB of the properties used to create the resource.

" + } + }, + "ResourceSignalStatus": { + "base": null, + "refs": { + "SignalResourceInput$Status": "

The status of the signal, which is either success or failure. A failure signal causes AWS CloudFormation to immediately fail the stack creation or update.

" + } + }, + "ResourceSignalUniqueId": { + "base": null, + "refs": { + "SignalResourceInput$UniqueId": "

A unique ID of the signal. When you signal Amazon EC2 instances or Auto Scaling groups, specify the instance ID that you are signaling as the unique ID. If you send multiple signals to a single resource (such as signaling a wait condition), each signal requires a different unique ID.

" + } + }, + "ResourceStatus": { + "base": null, + "refs": { + "StackEvent$ResourceStatus": "

Current status of the resource.

", + "StackResource$ResourceStatus": "

Current status of the resource.

", + "StackResourceDetail$ResourceStatus": "

Current status of the resource.

", + "StackResourceSummary$ResourceStatus": "

Current status of the resource.

" + } + }, + "ResourceStatusReason": { + "base": null, + "refs": { + "StackEvent$ResourceStatusReason": "

Success/failure message associated with the resource.

", + "StackResource$ResourceStatusReason": "

Success/failure message associated with the resource.

", + "StackResourceDetail$ResourceStatusReason": "

Success/failure message associated with the resource.

", + "StackResourceSummary$ResourceStatusReason": "

Success/failure message associated with the resource.

" + } + }, + "ResourceType": { + "base": null, + "refs": { + "StackEvent$ResourceType": "

Type of resource. (For more information, go to AWS Resource Types Reference in the AWS CloudFormation User Guide.)

", + "StackResource$ResourceType": "

Type of resource. (For more information, go to AWS Resource Types Reference in the AWS CloudFormation User Guide.)

", + "StackResourceDetail$ResourceType": "

Type of resource. ((For more information, go to AWS Resource Types Reference in the AWS CloudFormation User Guide.)

", + "StackResourceSummary$ResourceType": "

Type of resource. (For more information, go to AWS Resource Types Reference in the AWS CloudFormation User Guide.)

" + } + }, + "SetStackPolicyInput": { + "base": "

The input for the SetStackPolicy action.

", + "refs": { + } + }, + "SignalResourceInput": { + "base": "

The input for the SignalResource action.

", + "refs": { + } + }, + "Stack": { + "base": "

The Stack data type.

", + "refs": { + "Stacks$member": null + } + }, + "StackEvent": { + "base": "

The StackEvent data type.

", + "refs": { + "StackEvents$member": null + } + }, + "StackEvents": { + "base": null, + "refs": { + "DescribeStackEventsOutput$StackEvents": "

A list of StackEvents structures.

" + } + }, + "StackId": { + "base": null, + "refs": { + "CreateStackOutput$StackId": "

Unique identifier of the stack.

", + "Stack$StackId": "

Unique identifier of the stack.

", + "StackEvent$StackId": "

The unique ID name of the instance of the stack.

", + "StackResource$StackId": "

Unique identifier of the stack.

", + "StackResourceDetail$StackId": "

Unique identifier of the stack.

", + "StackSummary$StackId": "

Unique stack identifier.

", + "UpdateStackOutput$StackId": "

Unique identifier of the stack.

" + } + }, + "StackName": { + "base": null, + "refs": { + "CancelUpdateStackInput$StackName": "

The name or the unique stack ID that is associated with the stack.

", + "CreateStackInput$StackName": "

The name that is associated with the stack. The name must be unique in the region in which you are creating the stack.

A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 255 characters.", + "DeleteStackInput$StackName": "

The name or the unique stack ID that is associated with the stack.

", + "DescribeStackEventsInput$StackName": "

The name or the unique stack ID that is associated with the stack, which are not always interchangeable:

  • Running stacks: You can specify either the stack's name or its unique stack ID.
  • Deleted stacks: You must specify the unique stack ID.

Default: There is no default value.

", + "DescribeStackResourceInput$StackName": "

The name or the unique stack ID that is associated with the stack, which are not always interchangeable:

  • Running stacks: You can specify either the stack's name or its unique stack ID.
  • Deleted stacks: You must specify the unique stack ID.

Default: There is no default value.

", + "DescribeStackResourcesInput$StackName": "

The name or the unique stack ID that is associated with the stack, which are not always interchangeable:

  • Running stacks: You can specify either the stack's name or its unique stack ID.
  • Deleted stacks: You must specify the unique stack ID.

Default: There is no default value.

Required: Conditional. If you do not specify StackName, you must specify PhysicalResourceId.

", + "DescribeStacksInput$StackName": "

The name or the unique stack ID that is associated with the stack, which are not always interchangeable:

  • Running stacks: You can specify either the stack's name or its unique stack ID.
  • Deleted stacks: You must specify the unique stack ID.

Default: There is no default value.

", + "GetStackPolicyInput$StackName": "

The name or unique stack ID that is associated with the stack whose policy you want to get.

", + "GetTemplateInput$StackName": "

The name or the unique stack ID that is associated with the stack, which are not always interchangeable:

  • Running stacks: You can specify either the stack's name or its unique stack ID.
  • Deleted stacks: You must specify the unique stack ID.

Default: There is no default value.

", + "ListStackResourcesInput$StackName": "

The name or the unique stack ID that is associated with the stack, which are not always interchangeable:

  • Running stacks: You can specify either the stack's name or its unique stack ID.
  • Deleted stacks: You must specify the unique stack ID.

Default: There is no default value.

", + "SetStackPolicyInput$StackName": "

The name or unique stack ID that you want to associate a policy with.

", + "Stack$StackName": "

The name associated with the stack.

", + "StackEvent$StackName": "

The name associated with a stack.

", + "StackResource$StackName": "

The name associated with the stack.

", + "StackResourceDetail$StackName": "

The name associated with the stack.

", + "StackSummary$StackName": "

The name associated with the stack.

", + "UpdateStackInput$StackName": "

The name or unique stack ID of the stack to update.

" + } + }, + "StackNameOrId": { + "base": null, + "refs": { + "GetTemplateSummaryInput$StackName": "

The name or the stack ID that is associated with the stack, which are not always interchangeable. For running stacks, you can specify either the stack's name or its unique stack ID. For deleted stack, you must specify the unique stack ID.

Conditional: You must specify only one of the following parameters: StackName, TemplateBody, or TemplateURL.

", + "SignalResourceInput$StackName": "

The stack name or unique stack ID that includes the resource that you want to signal.

" + } + }, + "StackPolicyBody": { + "base": null, + "refs": { + "CreateStackInput$StackPolicyBody": "

Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both.

", + "GetStackPolicyOutput$StackPolicyBody": "

Structure containing the stack policy body. (For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide.)

", + "SetStackPolicyInput$StackPolicyBody": "

Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both.

", + "UpdateStackInput$StackPolicyBody": "

Structure containing a new stack policy body. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both.

You might update the stack policy, for example, in order to protect a new resource that you created during a stack update. If you do not specify a stack policy, the current policy that is associated with the stack is unchanged.

" + } + }, + "StackPolicyDuringUpdateBody": { + "base": null, + "refs": { + "UpdateStackInput$StackPolicyDuringUpdateBody": "

Structure containing the temporary overriding stack policy body. You can specify either the StackPolicyDuringUpdateBody or the StackPolicyDuringUpdateURL parameter, but not both.

If you want to update protected resources, specify a temporary overriding stack policy during this update. If you do not specify a stack policy, the current policy that is associated with the stack will be used.

" + } + }, + "StackPolicyDuringUpdateURL": { + "base": null, + "refs": { + "UpdateStackInput$StackPolicyDuringUpdateURL": "

Location of a file containing the temporary overriding stack policy. The URL must point to a policy (max size: 16KB) located in an S3 bucket in the same region as the stack. You can specify either the StackPolicyDuringUpdateBody or the StackPolicyDuringUpdateURL parameter, but not both.

If you want to update protected resources, specify a temporary overriding stack policy during this update. If you do not specify a stack policy, the current policy that is associated with the stack will be used.

" + } + }, + "StackPolicyURL": { + "base": null, + "refs": { + "CreateStackInput$StackPolicyURL": "

Location of a file containing the stack policy. The URL must point to a policy (max size: 16KB) located in an S3 bucket in the same region as the stack. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both.

", + "SetStackPolicyInput$StackPolicyURL": "

Location of a file containing the stack policy. The URL must point to a policy (max size: 16KB) located in an S3 bucket in the same region as the stack. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both.

", + "UpdateStackInput$StackPolicyURL": "

Location of a file containing the updated stack policy. The URL must point to a policy (max size: 16KB) located in an S3 bucket in the same region as the stack. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both.

You might update the stack policy, for example, in order to protect a new resource that you created during a stack update. If you do not specify a stack policy, the current policy that is associated with the stack is unchanged.

" + } + }, + "StackResource": { + "base": "

The StackResource data type.

", + "refs": { + "StackResources$member": null + } + }, + "StackResourceDetail": { + "base": "

Contains detailed information about the specified stack resource.

", + "refs": { + "DescribeStackResourceOutput$StackResourceDetail": "

A StackResourceDetail structure containing the description of the specified resource in the specified stack.

" + } + }, + "StackResourceSummaries": { + "base": null, + "refs": { + "ListStackResourcesOutput$StackResourceSummaries": "

A list of StackResourceSummary structures.

" + } + }, + "StackResourceSummary": { + "base": "

Contains high-level information about the specified stack resource.

", + "refs": { + "StackResourceSummaries$member": null + } + }, + "StackResources": { + "base": null, + "refs": { + "DescribeStackResourcesOutput$StackResources": "

A list of StackResource structures.

" + } + }, + "StackStatus": { + "base": null, + "refs": { + "Stack$StackStatus": "

Current status of the stack.

", + "StackStatusFilter$member": null, + "StackSummary$StackStatus": "

The current status of the stack.

" + } + }, + "StackStatusFilter": { + "base": null, + "refs": { + "ListStacksInput$StackStatusFilter": "

Stack status to use as a filter. Specify one or more stack status codes to list only stacks with the specified status codes. For a complete list of stack status codes, see the StackStatus parameter of the Stack data type.

" + } + }, + "StackStatusReason": { + "base": null, + "refs": { + "Stack$StackStatusReason": "

Success/failure message associated with the stack status.

", + "StackSummary$StackStatusReason": "

Success/Failure message associated with the stack status.

" + } + }, + "StackSummaries": { + "base": null, + "refs": { + "ListStacksOutput$StackSummaries": "

A list of StackSummary structures containing information about the specified stacks.

" + } + }, + "StackSummary": { + "base": "

The StackSummary Data Type

", + "refs": { + "StackSummaries$member": null + } + }, + "Stacks": { + "base": null, + "refs": { + "DescribeStacksOutput$Stacks": "

A list of stack structures.

" + } + }, + "Tag": { + "base": "

The Tag type is used by CreateStack in the Tags parameter. It allows you to specify a key/value pair that can be used to store information related to cost allocation for an AWS CloudFormation stack.

", + "refs": { + "Tags$member": null + } + }, + "TagKey": { + "base": null, + "refs": { + "Tag$Key": "

Required. A string used to identify this tag. You can specify a maximum of 128 characters for a tag key. Tags owned by Amazon Web Services (AWS) have the reserved prefix: aws:.

" + } + }, + "TagValue": { + "base": null, + "refs": { + "Tag$Value": "

Required. A string containing the value for this tag. You can specify a maximum of 256 characters for a tag value.

" + } + }, + "Tags": { + "base": null, + "refs": { + "CreateStackInput$Tags": "

A set of user-defined Tags to associate with this stack, represented by key/value pairs. Tags defined for the stack are propagated to EC2 resources that are created as part of the stack. A maximum number of 10 tags can be specified.

", + "Stack$Tags": "

A list of Tags that specify cost allocation information for the stack.

" + } + }, + "TemplateBody": { + "base": null, + "refs": { + "CreateStackInput$TemplateBody": "

Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.

Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both.

", + "EstimateTemplateCostInput$TemplateBody": "

Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. (For more information, go to Template Anatomy in the AWS CloudFormation User Guide.)

Conditional: You must pass TemplateBody or TemplateURL. If both are passed, only TemplateBody is used.

", + "GetTemplateOutput$TemplateBody": "

Structure containing the template body. (For more information, go to Template Anatomy in the AWS CloudFormation User Guide.)

", + "GetTemplateSummaryInput$TemplateBody": "

Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information about templates, see Template Anatomy in the AWS CloudFormation User Guide.

Conditional: You must specify only one of the following parameters: StackName, TemplateBody, or TemplateURL.

", + "UpdateStackInput$TemplateBody": "

Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. (For more information, go to Template Anatomy in the AWS CloudFormation User Guide.)

Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both.

", + "ValidateTemplateInput$TemplateBody": "

Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.

Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used.

" + } + }, + "TemplateDescription": { + "base": null, + "refs": { + "StackSummary$TemplateDescription": "

The template description of the template used to create the stack.

" + } + }, + "TemplateParameter": { + "base": "

The TemplateParameter data type.

", + "refs": { + "TemplateParameters$member": null + } + }, + "TemplateParameters": { + "base": null, + "refs": { + "ValidateTemplateOutput$Parameters": "

A list of TemplateParameter structures.

" + } + }, + "TemplateURL": { + "base": null, + "refs": { + "CreateStackInput$TemplateURL": "

Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) located in an S3 bucket in the same region as the stack. For more information, go to the Template Anatomy in the AWS CloudFormation User Guide.

Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both.

", + "EstimateTemplateCostInput$TemplateURL": "

Location of file containing the template body. The URL must point to a template located in an S3 bucket in the same region as the stack. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.

Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used.

", + "GetTemplateSummaryInput$TemplateURL": "

Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) located in an Amazon S3 bucket. For more information about templates, see Template Anatomy in the AWS CloudFormation User Guide.

Conditional: You must specify only one of the following parameters: StackName, TemplateBody, or TemplateURL.

", + "UpdateStackInput$TemplateURL": "

Location of file containing the template body. The URL must point to a template located in an S3 bucket in the same region as the stack. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.

Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both.

", + "ValidateTemplateInput$TemplateURL": "

Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) located in an S3 bucket in the same region as the stack. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.

Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used.

" + } + }, + "TimeoutMinutes": { + "base": null, + "refs": { + "CreateStackInput$TimeoutInMinutes": "

The amount of time that can pass before the stack status becomes CREATE_FAILED; if DisableRollback is not set or is set to false, the stack will be rolled back.

", + "Stack$TimeoutInMinutes": "

The amount of time within which stack creation should complete.

" + } + }, + "Timestamp": { + "base": null, + "refs": { + "StackEvent$Timestamp": "

Time the status was updated.

", + "StackResource$Timestamp": "

Time the status was updated.

", + "StackResourceDetail$LastUpdatedTimestamp": "

Time the status was updated.

", + "StackResourceSummary$LastUpdatedTimestamp": "

Time the status was updated.

" + } + }, + "UpdateStackInput": { + "base": "

The input for UpdateStack action.

", + "refs": { + } + }, + "UpdateStackOutput": { + "base": "

The output for a UpdateStack action.

", + "refs": { + } + }, + "Url": { + "base": null, + "refs": { + "EstimateTemplateCostOutput$Url": "

An AWS Simple Monthly Calculator URL with a query string that describes the resources required to run the template.

" + } + }, + "UsePreviousTemplate": { + "base": null, + "refs": { + "UpdateStackInput$UsePreviousTemplate": "

Reuse the existing template that is associated with the stack that you are updating.

" + } + }, + "UsePreviousValue": { + "base": null, + "refs": { + "Parameter$UsePreviousValue": "

During a stack update, use the existing parameter value that the stack is using for a given parameter key. If you specify true, do not specify a parameter value.

" + } + }, + "ValidateTemplateInput": { + "base": "

The input for ValidateTemplate action.

", + "refs": { + } + }, + "ValidateTemplateOutput": { + "base": "

The output for ValidateTemplate action.

", + "refs": { + } + }, + "Version": { + "base": null, + "refs": { + "GetTemplateSummaryOutput$Version": "

The AWS template format version, which identifies the capabilities of the template.

" + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/cloudformation/2010-05-15/paginators-1.json b/lib/aws-sdk/Aws/data/cloudformation/2010-05-15/paginators-1.json new file mode 100644 index 0000000..da6c17d --- /dev/null +++ b/lib/aws-sdk/Aws/data/cloudformation/2010-05-15/paginators-1.json @@ -0,0 +1,27 @@ +{ + "pagination": { + "DescribeStackEvents": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "StackEvents" + }, + "DescribeStackResources": { + "result_key": "StackResources" + }, + "DescribeStacks": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Stacks" + }, + "ListStackResources": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "StackResourceSummaries" + }, + "ListStacks": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "StackSummaries" + } + } +} diff --git a/lib/aws-sdk/Aws/data/cloudformation/2010-05-15/waiters-1.json b/lib/aws-sdk/Aws/data/cloudformation/2010-05-15/waiters-1.json new file mode 100644 index 0000000..8daeb7c --- /dev/null +++ b/lib/aws-sdk/Aws/data/cloudformation/2010-05-15/waiters-1.json @@ -0,0 +1,70 @@ +{ + "version": 2, + "waiters": { + "StackCreateComplete": { + "delay": 30, + "operation": "DescribeStacks", + "maxAttempts": 50, + "description": "Wait until stack status is CREATE_COMPLETE.", + "acceptors": [ + { + "expected": "CREATE_COMPLETE", + "matcher": "pathAll", + "state": "success", + "argument": "Stacks[].StackStatus" + }, + { + "expected": "CREATE_FAILED", + "matcher": "pathAny", + "state": "failure", + "argument": "Stacks[].StackStatus" + } + ] + }, + "StackDeleteComplete": { + "delay": 30, + "operation": "DescribeStacks", + "maxAttempts": 25, + "description": "Wait until stack status is DELETE_COMPLETE.", + "acceptors": [ + { + "expected": "DELETE_COMPLETE", + "matcher": "pathAll", + "state": "success", + "argument": "Stacks[].StackStatus" + }, + { + "expected": "ValidationError", + "matcher": "error", + "state": "success" + }, + { + "expected": "DELETE_FAILED", + "matcher": "pathAny", + "state": "failure", + "argument": "Stacks[].StackStatus" + } + ] + }, + "StackUpdateComplete": { + "delay": 30, + "operation": "DescribeStacks", + "maxAttempts": 5, + "description": "Wait until stack status is UPDATE_COMPLETE.", + "acceptors": [ + { + "expected": "UPDATE_COMPLETE", + "matcher": "pathAll", + "state": "success", + "argument": "Stacks[].StackStatus" + }, + { + "expected": "UPDATE_FAILED", + "matcher": "pathAny", + "state": "failure", + "argument": "Stacks[].StackStatus" + } + ] + } + } +} diff --git a/lib/aws-sdk/Aws/data/cloudformation/2010-05-15/waiters-2.json b/lib/aws-sdk/Aws/data/cloudformation/2010-05-15/waiters-2.json new file mode 100644 index 0000000..8daeb7c --- /dev/null +++ b/lib/aws-sdk/Aws/data/cloudformation/2010-05-15/waiters-2.json @@ -0,0 +1,70 @@ +{ + "version": 2, + "waiters": { + "StackCreateComplete": { + "delay": 30, + "operation": "DescribeStacks", + "maxAttempts": 50, + "description": "Wait until stack status is CREATE_COMPLETE.", + "acceptors": [ + { + "expected": "CREATE_COMPLETE", + "matcher": "pathAll", + "state": "success", + "argument": "Stacks[].StackStatus" + }, + { + "expected": "CREATE_FAILED", + "matcher": "pathAny", + "state": "failure", + "argument": "Stacks[].StackStatus" + } + ] + }, + "StackDeleteComplete": { + "delay": 30, + "operation": "DescribeStacks", + "maxAttempts": 25, + "description": "Wait until stack status is DELETE_COMPLETE.", + "acceptors": [ + { + "expected": "DELETE_COMPLETE", + "matcher": "pathAll", + "state": "success", + "argument": "Stacks[].StackStatus" + }, + { + "expected": "ValidationError", + "matcher": "error", + "state": "success" + }, + { + "expected": "DELETE_FAILED", + "matcher": "pathAny", + "state": "failure", + "argument": "Stacks[].StackStatus" + } + ] + }, + "StackUpdateComplete": { + "delay": 30, + "operation": "DescribeStacks", + "maxAttempts": 5, + "description": "Wait until stack status is UPDATE_COMPLETE.", + "acceptors": [ + { + "expected": "UPDATE_COMPLETE", + "matcher": "pathAll", + "state": "success", + "argument": "Stacks[].StackStatus" + }, + { + "expected": "UPDATE_FAILED", + "matcher": "pathAny", + "state": "failure", + "argument": "Stacks[].StackStatus" + } + ] + } + } +} diff --git a/lib/aws-sdk/Aws/data/cloudfront/2014-11-06/api-2.json b/lib/aws-sdk/Aws/data/cloudfront/2014-11-06/api-2.json new file mode 100644 index 0000000..b31c8d9 --- /dev/null +++ b/lib/aws-sdk/Aws/data/cloudfront/2014-11-06/api-2.json @@ -0,0 +1,2611 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2014-11-06", + "endpointPrefix":"cloudfront", + "globalEndpoint":"cloudfront.amazonaws.com", + "serviceAbbreviation":"CloudFront", + "serviceFullName":"Amazon CloudFront", + "signatureVersion":"v4", + "protocol":"rest-xml" + }, + "operations":{ + "CreateCloudFrontOriginAccessIdentity":{ + "name":"CreateCloudFrontOriginAccessIdentity2014_11_06", + "http":{ + "method":"POST", + "requestUri":"/2014-11-06/origin-access-identity/cloudfront", + "responseCode":201 + }, + "input":{"shape":"CreateCloudFrontOriginAccessIdentityRequest"}, + "output":{"shape":"CreateCloudFrontOriginAccessIdentityResult"}, + "errors":[ + { + "shape":"CloudFrontOriginAccessIdentityAlreadyExists", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"MissingBody", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TooManyCloudFrontOriginAccessIdentities", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidArgument", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InconsistentQuantities", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "CreateDistribution":{ + "name":"CreateDistribution2014_11_06", + "http":{ + "method":"POST", + "requestUri":"/2014-11-06/distribution", + "responseCode":201 + }, + "input":{"shape":"CreateDistributionRequest"}, + "output":{"shape":"CreateDistributionResult"}, + "errors":[ + { + "shape":"CNAMEAlreadyExists", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"DistributionAlreadyExists", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"InvalidOrigin", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidOriginAccessIdentity", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"AccessDenied", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"TooManyTrustedSigners", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TrustedSignerDoesNotExist", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidViewerCertificate", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingBody", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TooManyDistributionCNAMEs", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TooManyDistributions", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidDefaultRootObject", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidRelativePath", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidErrorCode", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidResponseCode", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidArgument", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidRequiredProtocol", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"NoSuchOrigin", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"TooManyOrigins", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TooManyCacheBehaviors", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TooManyCookieNamesInWhiteList", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidForwardCookies", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TooManyHeadersInForwardedValues", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidHeadersForS3Origin", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InconsistentQuantities", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TooManyCertificates", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidLocationCode", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidGeoRestrictionParameter", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidProtocolSettings", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "CreateInvalidation":{ + "name":"CreateInvalidation2014_11_06", + "http":{ + "method":"POST", + "requestUri":"/2014-11-06/distribution/{DistributionId}/invalidation", + "responseCode":201 + }, + "input":{"shape":"CreateInvalidationRequest"}, + "output":{"shape":"CreateInvalidationResult"}, + "errors":[ + { + "shape":"AccessDenied", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"MissingBody", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidArgument", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"NoSuchDistribution", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"BatchTooLarge", + "error":{"httpStatusCode":413}, + "exception":true + }, + { + "shape":"TooManyInvalidationsInProgress", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InconsistentQuantities", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "CreateStreamingDistribution":{ + "name":"CreateStreamingDistribution2014_11_06", + "http":{ + "method":"POST", + "requestUri":"/2014-11-06/streaming-distribution", + "responseCode":201 + }, + "input":{"shape":"CreateStreamingDistributionRequest"}, + "output":{"shape":"CreateStreamingDistributionResult"}, + "errors":[ + { + "shape":"CNAMEAlreadyExists", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"StreamingDistributionAlreadyExists", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"InvalidOrigin", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidOriginAccessIdentity", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"AccessDenied", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"TooManyTrustedSigners", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TrustedSignerDoesNotExist", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingBody", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TooManyStreamingDistributionCNAMEs", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TooManyStreamingDistributions", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidArgument", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InconsistentQuantities", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "DeleteCloudFrontOriginAccessIdentity":{ + "name":"DeleteCloudFrontOriginAccessIdentity2014_11_06", + "http":{ + "method":"DELETE", + "requestUri":"/2014-11-06/origin-access-identity/cloudfront/{Id}", + "responseCode":204 + }, + "input":{"shape":"DeleteCloudFrontOriginAccessIdentityRequest"}, + "errors":[ + { + "shape":"AccessDenied", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"InvalidIfMatchVersion", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"NoSuchCloudFrontOriginAccessIdentity", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"PreconditionFailed", + "error":{"httpStatusCode":412}, + "exception":true + }, + { + "shape":"CloudFrontOriginAccessIdentityInUse", + "error":{"httpStatusCode":409}, + "exception":true + } + ] + }, + "DeleteDistribution":{ + "name":"DeleteDistribution2014_11_06", + "http":{ + "method":"DELETE", + "requestUri":"/2014-11-06/distribution/{Id}", + "responseCode":204 + }, + "input":{"shape":"DeleteDistributionRequest"}, + "errors":[ + { + "shape":"AccessDenied", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"DistributionNotDisabled", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"InvalidIfMatchVersion", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"NoSuchDistribution", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"PreconditionFailed", + "error":{"httpStatusCode":412}, + "exception":true + } + ] + }, + "DeleteStreamingDistribution":{ + "name":"DeleteStreamingDistribution2014_11_06", + "http":{ + "method":"DELETE", + "requestUri":"/2014-11-06/streaming-distribution/{Id}", + "responseCode":204 + }, + "input":{"shape":"DeleteStreamingDistributionRequest"}, + "errors":[ + { + "shape":"AccessDenied", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"StreamingDistributionNotDisabled", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"InvalidIfMatchVersion", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"NoSuchStreamingDistribution", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"PreconditionFailed", + "error":{"httpStatusCode":412}, + "exception":true + } + ] + }, + "GetCloudFrontOriginAccessIdentity":{ + "name":"GetCloudFrontOriginAccessIdentity2014_11_06", + "http":{ + "method":"GET", + "requestUri":"/2014-11-06/origin-access-identity/cloudfront/{Id}" + }, + "input":{"shape":"GetCloudFrontOriginAccessIdentityRequest"}, + "output":{"shape":"GetCloudFrontOriginAccessIdentityResult"}, + "errors":[ + { + "shape":"NoSuchCloudFrontOriginAccessIdentity", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"AccessDenied", + "error":{"httpStatusCode":403}, + "exception":true + } + ] + }, + "GetCloudFrontOriginAccessIdentityConfig":{ + "name":"GetCloudFrontOriginAccessIdentityConfig2014_11_06", + "http":{ + "method":"GET", + "requestUri":"/2014-11-06/origin-access-identity/cloudfront/{Id}/config" + }, + "input":{"shape":"GetCloudFrontOriginAccessIdentityConfigRequest"}, + "output":{"shape":"GetCloudFrontOriginAccessIdentityConfigResult"}, + "errors":[ + { + "shape":"NoSuchCloudFrontOriginAccessIdentity", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"AccessDenied", + "error":{"httpStatusCode":403}, + "exception":true + } + ] + }, + "GetDistribution":{ + "name":"GetDistribution2014_11_06", + "http":{ + "method":"GET", + "requestUri":"/2014-11-06/distribution/{Id}" + }, + "input":{"shape":"GetDistributionRequest"}, + "output":{"shape":"GetDistributionResult"}, + "errors":[ + { + "shape":"NoSuchDistribution", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"AccessDenied", + "error":{"httpStatusCode":403}, + "exception":true + } + ] + }, + "GetDistributionConfig":{ + "name":"GetDistributionConfig2014_11_06", + "http":{ + "method":"GET", + "requestUri":"/2014-11-06/distribution/{Id}/config" + }, + "input":{"shape":"GetDistributionConfigRequest"}, + "output":{"shape":"GetDistributionConfigResult"}, + "errors":[ + { + "shape":"NoSuchDistribution", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"AccessDenied", + "error":{"httpStatusCode":403}, + "exception":true + } + ] + }, + "GetInvalidation":{ + "name":"GetInvalidation2014_11_06", + "http":{ + "method":"GET", + "requestUri":"/2014-11-06/distribution/{DistributionId}/invalidation/{Id}" + }, + "input":{"shape":"GetInvalidationRequest"}, + "output":{"shape":"GetInvalidationResult"}, + "errors":[ + { + "shape":"NoSuchInvalidation", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"NoSuchDistribution", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"AccessDenied", + "error":{"httpStatusCode":403}, + "exception":true + } + ] + }, + "GetStreamingDistribution":{ + "name":"GetStreamingDistribution2014_11_06", + "http":{ + "method":"GET", + "requestUri":"/2014-11-06/streaming-distribution/{Id}" + }, + "input":{"shape":"GetStreamingDistributionRequest"}, + "output":{"shape":"GetStreamingDistributionResult"}, + "errors":[ + { + "shape":"NoSuchStreamingDistribution", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"AccessDenied", + "error":{"httpStatusCode":403}, + "exception":true + } + ] + }, + "GetStreamingDistributionConfig":{ + "name":"GetStreamingDistributionConfig2014_11_06", + "http":{ + "method":"GET", + "requestUri":"/2014-11-06/streaming-distribution/{Id}/config" + }, + "input":{"shape":"GetStreamingDistributionConfigRequest"}, + "output":{"shape":"GetStreamingDistributionConfigResult"}, + "errors":[ + { + "shape":"NoSuchStreamingDistribution", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"AccessDenied", + "error":{"httpStatusCode":403}, + "exception":true + } + ] + }, + "ListCloudFrontOriginAccessIdentities":{ + "name":"ListCloudFrontOriginAccessIdentities2014_11_06", + "http":{ + "method":"GET", + "requestUri":"/2014-11-06/origin-access-identity/cloudfront" + }, + "input":{"shape":"ListCloudFrontOriginAccessIdentitiesRequest"}, + "output":{"shape":"ListCloudFrontOriginAccessIdentitiesResult"}, + "errors":[ + { + "shape":"InvalidArgument", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "ListDistributions":{ + "name":"ListDistributions2014_11_06", + "http":{ + "method":"GET", + "requestUri":"/2014-11-06/distribution" + }, + "input":{"shape":"ListDistributionsRequest"}, + "output":{"shape":"ListDistributionsResult"}, + "errors":[ + { + "shape":"InvalidArgument", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "ListInvalidations":{ + "name":"ListInvalidations2014_11_06", + "http":{ + "method":"GET", + "requestUri":"/2014-11-06/distribution/{DistributionId}/invalidation" + }, + "input":{"shape":"ListInvalidationsRequest"}, + "output":{"shape":"ListInvalidationsResult"}, + "errors":[ + { + "shape":"InvalidArgument", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"NoSuchDistribution", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"AccessDenied", + "error":{"httpStatusCode":403}, + "exception":true + } + ] + }, + "ListStreamingDistributions":{ + "name":"ListStreamingDistributions2014_11_06", + "http":{ + "method":"GET", + "requestUri":"/2014-11-06/streaming-distribution" + }, + "input":{"shape":"ListStreamingDistributionsRequest"}, + "output":{"shape":"ListStreamingDistributionsResult"}, + "errors":[ + { + "shape":"InvalidArgument", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "UpdateCloudFrontOriginAccessIdentity":{ + "name":"UpdateCloudFrontOriginAccessIdentity2014_11_06", + "http":{ + "method":"PUT", + "requestUri":"/2014-11-06/origin-access-identity/cloudfront/{Id}/config" + }, + "input":{"shape":"UpdateCloudFrontOriginAccessIdentityRequest"}, + "output":{"shape":"UpdateCloudFrontOriginAccessIdentityResult"}, + "errors":[ + { + "shape":"AccessDenied", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"IllegalUpdate", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidIfMatchVersion", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingBody", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"NoSuchCloudFrontOriginAccessIdentity", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"PreconditionFailed", + "error":{"httpStatusCode":412}, + "exception":true + }, + { + "shape":"InvalidArgument", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InconsistentQuantities", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "UpdateDistribution":{ + "name":"UpdateDistribution2014_11_06", + "http":{ + "method":"PUT", + "requestUri":"/2014-11-06/distribution/{Id}/config" + }, + "input":{"shape":"UpdateDistributionRequest"}, + "output":{"shape":"UpdateDistributionResult"}, + "errors":[ + { + "shape":"AccessDenied", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"CNAMEAlreadyExists", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"IllegalUpdate", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidIfMatchVersion", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingBody", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"NoSuchDistribution", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"PreconditionFailed", + "error":{"httpStatusCode":412}, + "exception":true + }, + { + "shape":"TooManyDistributionCNAMEs", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidDefaultRootObject", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidRelativePath", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidErrorCode", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidResponseCode", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidArgument", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidOriginAccessIdentity", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TooManyTrustedSigners", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TrustedSignerDoesNotExist", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidViewerCertificate", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidRequiredProtocol", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"NoSuchOrigin", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"TooManyOrigins", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TooManyCacheBehaviors", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TooManyCookieNamesInWhiteList", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidForwardCookies", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TooManyHeadersInForwardedValues", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidHeadersForS3Origin", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InconsistentQuantities", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TooManyCertificates", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidLocationCode", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidGeoRestrictionParameter", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "UpdateStreamingDistribution":{ + "name":"UpdateStreamingDistribution2014_11_06", + "http":{ + "method":"PUT", + "requestUri":"/2014-11-06/streaming-distribution/{Id}/config" + }, + "input":{"shape":"UpdateStreamingDistributionRequest"}, + "output":{"shape":"UpdateStreamingDistributionResult"}, + "errors":[ + { + "shape":"AccessDenied", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"CNAMEAlreadyExists", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"IllegalUpdate", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidIfMatchVersion", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingBody", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"NoSuchStreamingDistribution", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"PreconditionFailed", + "error":{"httpStatusCode":412}, + "exception":true + }, + { + "shape":"TooManyStreamingDistributionCNAMEs", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidArgument", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidOriginAccessIdentity", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TooManyTrustedSigners", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TrustedSignerDoesNotExist", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InconsistentQuantities", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + } + }, + "shapes":{ + "AccessDenied":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":403}, + "exception":true + }, + "ActiveTrustedSigners":{ + "type":"structure", + "required":[ + "Enabled", + "Quantity" + ], + "members":{ + "Enabled":{"shape":"boolean"}, + "Quantity":{"shape":"integer"}, + "Items":{"shape":"SignerList"} + } + }, + "AliasList":{ + "type":"list", + "member":{ + "shape":"string", + "locationName":"CNAME" + } + }, + "Aliases":{ + "type":"structure", + "required":["Quantity"], + "members":{ + "Quantity":{"shape":"integer"}, + "Items":{"shape":"AliasList"} + } + }, + "AllowedMethods":{ + "type":"structure", + "required":[ + "Quantity", + "Items" + ], + "members":{ + "Quantity":{"shape":"integer"}, + "Items":{"shape":"MethodsList"}, + "CachedMethods":{"shape":"CachedMethods"} + } + }, + "AwsAccountNumberList":{ + "type":"list", + "member":{ + "shape":"string", + "locationName":"AwsAccountNumber" + } + }, + "BatchTooLarge":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":413}, + "exception":true + }, + "CNAMEAlreadyExists":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "CacheBehavior":{ + "type":"structure", + "required":[ + "PathPattern", + "TargetOriginId", + "ForwardedValues", + "TrustedSigners", + "ViewerProtocolPolicy", + "MinTTL" + ], + "members":{ + "PathPattern":{"shape":"string"}, + "TargetOriginId":{"shape":"string"}, + "ForwardedValues":{"shape":"ForwardedValues"}, + "TrustedSigners":{"shape":"TrustedSigners"}, + "ViewerProtocolPolicy":{"shape":"ViewerProtocolPolicy"}, + "MinTTL":{"shape":"long"}, + "AllowedMethods":{"shape":"AllowedMethods"}, + "SmoothStreaming":{"shape":"boolean"} + } + }, + "CacheBehaviorList":{ + "type":"list", + "member":{ + "shape":"CacheBehavior", + "locationName":"CacheBehavior" + } + }, + "CacheBehaviors":{ + "type":"structure", + "required":["Quantity"], + "members":{ + "Quantity":{"shape":"integer"}, + "Items":{"shape":"CacheBehaviorList"} + } + }, + "CachedMethods":{ + "type":"structure", + "required":[ + "Quantity", + "Items" + ], + "members":{ + "Quantity":{"shape":"integer"}, + "Items":{"shape":"MethodsList"} + } + }, + "CloudFrontOriginAccessIdentity":{ + "type":"structure", + "required":[ + "Id", + "S3CanonicalUserId" + ], + "members":{ + "Id":{"shape":"string"}, + "S3CanonicalUserId":{"shape":"string"}, + "CloudFrontOriginAccessIdentityConfig":{"shape":"CloudFrontOriginAccessIdentityConfig"} + } + }, + "CloudFrontOriginAccessIdentityAlreadyExists":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "CloudFrontOriginAccessIdentityConfig":{ + "type":"structure", + "required":[ + "CallerReference", + "Comment" + ], + "members":{ + "CallerReference":{"shape":"string"}, + "Comment":{"shape":"string"} + } + }, + "CloudFrontOriginAccessIdentityInUse":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "CloudFrontOriginAccessIdentityList":{ + "type":"structure", + "required":[ + "Marker", + "MaxItems", + "IsTruncated", + "Quantity" + ], + "members":{ + "Marker":{"shape":"string"}, + "NextMarker":{"shape":"string"}, + "MaxItems":{"shape":"integer"}, + "IsTruncated":{"shape":"boolean"}, + "Quantity":{"shape":"integer"}, + "Items":{"shape":"CloudFrontOriginAccessIdentitySummaryList"} + } + }, + "CloudFrontOriginAccessIdentitySummary":{ + "type":"structure", + "required":[ + "Id", + "S3CanonicalUserId", + "Comment" + ], + "members":{ + "Id":{"shape":"string"}, + "S3CanonicalUserId":{"shape":"string"}, + "Comment":{"shape":"string"} + } + }, + "CloudFrontOriginAccessIdentitySummaryList":{ + "type":"list", + "member":{ + "shape":"CloudFrontOriginAccessIdentitySummary", + "locationName":"CloudFrontOriginAccessIdentitySummary" + } + }, + "CookieNameList":{ + "type":"list", + "member":{ + "shape":"string", + "locationName":"Name" + } + }, + "CookieNames":{ + "type":"structure", + "required":["Quantity"], + "members":{ + "Quantity":{"shape":"integer"}, + "Items":{"shape":"CookieNameList"} + } + }, + "CookiePreference":{ + "type":"structure", + "required":["Forward"], + "members":{ + "Forward":{"shape":"ItemSelection"}, + "WhitelistedNames":{"shape":"CookieNames"} + } + }, + "CreateCloudFrontOriginAccessIdentityRequest":{ + "type":"structure", + "required":["CloudFrontOriginAccessIdentityConfig"], + "members":{ + "CloudFrontOriginAccessIdentityConfig":{ + "shape":"CloudFrontOriginAccessIdentityConfig", + "xmlNamespace":{"uri":"http://cloudfront.amazonaws.com/doc/2014-11-06/"}, + "locationName":"CloudFrontOriginAccessIdentityConfig" + } + }, + "payload":"CloudFrontOriginAccessIdentityConfig" + }, + "CreateCloudFrontOriginAccessIdentityResult":{ + "type":"structure", + "members":{ + "CloudFrontOriginAccessIdentity":{"shape":"CloudFrontOriginAccessIdentity"}, + "Location":{ + "shape":"string", + "location":"header", + "locationName":"Location" + }, + "ETag":{ + "shape":"string", + "location":"header", + "locationName":"ETag" + } + }, + "payload":"CloudFrontOriginAccessIdentity" + }, + "CreateDistributionRequest":{ + "type":"structure", + "required":["DistributionConfig"], + "members":{ + "DistributionConfig":{ + "shape":"DistributionConfig", + "xmlNamespace":{"uri":"http://cloudfront.amazonaws.com/doc/2014-11-06/"}, + "locationName":"DistributionConfig" + } + }, + "payload":"DistributionConfig" + }, + "CreateDistributionResult":{ + "type":"structure", + "members":{ + "Distribution":{"shape":"Distribution"}, + "Location":{ + "shape":"string", + "location":"header", + "locationName":"Location" + }, + "ETag":{ + "shape":"string", + "location":"header", + "locationName":"ETag" + } + }, + "payload":"Distribution" + }, + "CreateInvalidationRequest":{ + "type":"structure", + "required":[ + "DistributionId", + "InvalidationBatch" + ], + "members":{ + "DistributionId":{ + "shape":"string", + "location":"uri", + "locationName":"DistributionId" + }, + "InvalidationBatch":{ + "shape":"InvalidationBatch", + "xmlNamespace":{"uri":"http://cloudfront.amazonaws.com/doc/2014-11-06/"}, + "locationName":"InvalidationBatch" + } + }, + "payload":"InvalidationBatch" + }, + "CreateInvalidationResult":{ + "type":"structure", + "members":{ + "Location":{ + "shape":"string", + "location":"header", + "locationName":"Location" + }, + "Invalidation":{"shape":"Invalidation"} + }, + "payload":"Invalidation" + }, + "CreateStreamingDistributionRequest":{ + "type":"structure", + "required":["StreamingDistributionConfig"], + "members":{ + "StreamingDistributionConfig":{ + "shape":"StreamingDistributionConfig", + "xmlNamespace":{"uri":"http://cloudfront.amazonaws.com/doc/2014-11-06/"}, + "locationName":"StreamingDistributionConfig" + } + }, + "payload":"StreamingDistributionConfig" + }, + "CreateStreamingDistributionResult":{ + "type":"structure", + "members":{ + "StreamingDistribution":{"shape":"StreamingDistribution"}, + "Location":{ + "shape":"string", + "location":"header", + "locationName":"Location" + }, + "ETag":{ + "shape":"string", + "location":"header", + "locationName":"ETag" + } + }, + "payload":"StreamingDistribution" + }, + "CustomErrorResponse":{ + "type":"structure", + "required":["ErrorCode"], + "members":{ + "ErrorCode":{"shape":"integer"}, + "ResponsePagePath":{"shape":"string"}, + "ResponseCode":{"shape":"string"}, + "ErrorCachingMinTTL":{"shape":"long"} + } + }, + "CustomErrorResponseList":{ + "type":"list", + "member":{ + "shape":"CustomErrorResponse", + "locationName":"CustomErrorResponse" + } + }, + "CustomErrorResponses":{ + "type":"structure", + "required":["Quantity"], + "members":{ + "Quantity":{"shape":"integer"}, + "Items":{"shape":"CustomErrorResponseList"} + } + }, + "CustomOriginConfig":{ + "type":"structure", + "required":[ + "HTTPPort", + "HTTPSPort", + "OriginProtocolPolicy" + ], + "members":{ + "HTTPPort":{"shape":"integer"}, + "HTTPSPort":{"shape":"integer"}, + "OriginProtocolPolicy":{"shape":"OriginProtocolPolicy"} + } + }, + "DefaultCacheBehavior":{ + "type":"structure", + "required":[ + "TargetOriginId", + "ForwardedValues", + "TrustedSigners", + "ViewerProtocolPolicy", + "MinTTL" + ], + "members":{ + "TargetOriginId":{"shape":"string"}, + "ForwardedValues":{"shape":"ForwardedValues"}, + "TrustedSigners":{"shape":"TrustedSigners"}, + "ViewerProtocolPolicy":{"shape":"ViewerProtocolPolicy"}, + "MinTTL":{"shape":"long"}, + "AllowedMethods":{"shape":"AllowedMethods"}, + "SmoothStreaming":{"shape":"boolean"} + } + }, + "DeleteCloudFrontOriginAccessIdentityRequest":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"string", + "location":"uri", + "locationName":"Id" + }, + "IfMatch":{ + "shape":"string", + "location":"header", + "locationName":"If-Match" + } + }, + "required":["Id"] + }, + "DeleteDistributionRequest":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"string", + "location":"uri", + "locationName":"Id" + }, + "IfMatch":{ + "shape":"string", + "location":"header", + "locationName":"If-Match" + } + }, + "required":["Id"] + }, + "DeleteStreamingDistributionRequest":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"string", + "location":"uri", + "locationName":"Id" + }, + "IfMatch":{ + "shape":"string", + "location":"header", + "locationName":"If-Match" + } + }, + "required":["Id"] + }, + "Distribution":{ + "type":"structure", + "required":[ + "Id", + "Status", + "LastModifiedTime", + "InProgressInvalidationBatches", + "DomainName", + "ActiveTrustedSigners", + "DistributionConfig" + ], + "members":{ + "Id":{"shape":"string"}, + "Status":{"shape":"string"}, + "LastModifiedTime":{"shape":"timestamp"}, + "InProgressInvalidationBatches":{"shape":"integer"}, + "DomainName":{"shape":"string"}, + "ActiveTrustedSigners":{"shape":"ActiveTrustedSigners"}, + "DistributionConfig":{"shape":"DistributionConfig"} + } + }, + "DistributionAlreadyExists":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "DistributionConfig":{ + "type":"structure", + "required":[ + "CallerReference", + "Origins", + "DefaultCacheBehavior", + "Comment", + "Enabled" + ], + "members":{ + "CallerReference":{"shape":"string"}, + "Aliases":{"shape":"Aliases"}, + "DefaultRootObject":{"shape":"string"}, + "Origins":{"shape":"Origins"}, + "DefaultCacheBehavior":{"shape":"DefaultCacheBehavior"}, + "CacheBehaviors":{"shape":"CacheBehaviors"}, + "CustomErrorResponses":{"shape":"CustomErrorResponses"}, + "Comment":{"shape":"string"}, + "Logging":{"shape":"LoggingConfig"}, + "PriceClass":{"shape":"PriceClass"}, + "Enabled":{"shape":"boolean"}, + "ViewerCertificate":{"shape":"ViewerCertificate"}, + "Restrictions":{"shape":"Restrictions"} + } + }, + "DistributionList":{ + "type":"structure", + "required":[ + "Marker", + "MaxItems", + "IsTruncated", + "Quantity" + ], + "members":{ + "Marker":{"shape":"string"}, + "NextMarker":{"shape":"string"}, + "MaxItems":{"shape":"integer"}, + "IsTruncated":{"shape":"boolean"}, + "Quantity":{"shape":"integer"}, + "Items":{"shape":"DistributionSummaryList"} + } + }, + "DistributionNotDisabled":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "DistributionSummary":{ + "type":"structure", + "required":[ + "Id", + "Status", + "LastModifiedTime", + "DomainName", + "Aliases", + "Origins", + "DefaultCacheBehavior", + "CacheBehaviors", + "CustomErrorResponses", + "Comment", + "PriceClass", + "Enabled", + "ViewerCertificate", + "Restrictions" + ], + "members":{ + "Id":{"shape":"string"}, + "Status":{"shape":"string"}, + "LastModifiedTime":{"shape":"timestamp"}, + "DomainName":{"shape":"string"}, + "Aliases":{"shape":"Aliases"}, + "Origins":{"shape":"Origins"}, + "DefaultCacheBehavior":{"shape":"DefaultCacheBehavior"}, + "CacheBehaviors":{"shape":"CacheBehaviors"}, + "CustomErrorResponses":{"shape":"CustomErrorResponses"}, + "Comment":{"shape":"string"}, + "PriceClass":{"shape":"PriceClass"}, + "Enabled":{"shape":"boolean"}, + "ViewerCertificate":{"shape":"ViewerCertificate"}, + "Restrictions":{"shape":"Restrictions"} + } + }, + "DistributionSummaryList":{ + "type":"list", + "member":{ + "shape":"DistributionSummary", + "locationName":"DistributionSummary" + } + }, + "ForwardedValues":{ + "type":"structure", + "required":[ + "QueryString", + "Cookies" + ], + "members":{ + "QueryString":{"shape":"boolean"}, + "Cookies":{"shape":"CookiePreference"}, + "Headers":{"shape":"Headers"} + } + }, + "GeoRestriction":{ + "type":"structure", + "required":[ + "RestrictionType", + "Quantity" + ], + "members":{ + "RestrictionType":{"shape":"GeoRestrictionType"}, + "Quantity":{"shape":"integer"}, + "Items":{"shape":"LocationList"} + } + }, + "GeoRestrictionType":{ + "type":"string", + "enum":[ + "blacklist", + "whitelist", + "none" + ] + }, + "GetCloudFrontOriginAccessIdentityConfigRequest":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"string", + "location":"uri", + "locationName":"Id" + } + }, + "required":["Id"] + }, + "GetCloudFrontOriginAccessIdentityConfigResult":{ + "type":"structure", + "members":{ + "CloudFrontOriginAccessIdentityConfig":{"shape":"CloudFrontOriginAccessIdentityConfig"}, + "ETag":{ + "shape":"string", + "location":"header", + "locationName":"ETag" + } + }, + "payload":"CloudFrontOriginAccessIdentityConfig" + }, + "GetCloudFrontOriginAccessIdentityRequest":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"string", + "location":"uri", + "locationName":"Id" + } + }, + "required":["Id"] + }, + "GetCloudFrontOriginAccessIdentityResult":{ + "type":"structure", + "members":{ + "CloudFrontOriginAccessIdentity":{"shape":"CloudFrontOriginAccessIdentity"}, + "ETag":{ + "shape":"string", + "location":"header", + "locationName":"ETag" + } + }, + "payload":"CloudFrontOriginAccessIdentity" + }, + "GetDistributionConfigRequest":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"string", + "location":"uri", + "locationName":"Id" + } + }, + "required":["Id"] + }, + "GetDistributionConfigResult":{ + "type":"structure", + "members":{ + "DistributionConfig":{"shape":"DistributionConfig"}, + "ETag":{ + "shape":"string", + "location":"header", + "locationName":"ETag" + } + }, + "payload":"DistributionConfig" + }, + "GetDistributionRequest":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"string", + "location":"uri", + "locationName":"Id" + } + }, + "required":["Id"] + }, + "GetDistributionResult":{ + "type":"structure", + "members":{ + "Distribution":{"shape":"Distribution"}, + "ETag":{ + "shape":"string", + "location":"header", + "locationName":"ETag" + } + }, + "payload":"Distribution" + }, + "GetInvalidationRequest":{ + "type":"structure", + "required":[ + "DistributionId", + "Id" + ], + "members":{ + "DistributionId":{ + "shape":"string", + "location":"uri", + "locationName":"DistributionId" + }, + "Id":{ + "shape":"string", + "location":"uri", + "locationName":"Id" + } + } + }, + "GetInvalidationResult":{ + "type":"structure", + "members":{ + "Invalidation":{"shape":"Invalidation"} + }, + "payload":"Invalidation" + }, + "GetStreamingDistributionConfigRequest":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"string", + "location":"uri", + "locationName":"Id" + } + }, + "required":["Id"] + }, + "GetStreamingDistributionConfigResult":{ + "type":"structure", + "members":{ + "StreamingDistributionConfig":{"shape":"StreamingDistributionConfig"}, + "ETag":{ + "shape":"string", + "location":"header", + "locationName":"ETag" + } + }, + "payload":"StreamingDistributionConfig" + }, + "GetStreamingDistributionRequest":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"string", + "location":"uri", + "locationName":"Id" + } + }, + "required":["Id"] + }, + "GetStreamingDistributionResult":{ + "type":"structure", + "members":{ + "StreamingDistribution":{"shape":"StreamingDistribution"}, + "ETag":{ + "shape":"string", + "location":"header", + "locationName":"ETag" + } + }, + "payload":"StreamingDistribution" + }, + "HeaderList":{ + "type":"list", + "member":{ + "shape":"string", + "locationName":"Name" + } + }, + "Headers":{ + "type":"structure", + "required":["Quantity"], + "members":{ + "Quantity":{"shape":"integer"}, + "Items":{"shape":"HeaderList"} + } + }, + "IllegalUpdate":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InconsistentQuantities":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidArgument":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidDefaultRootObject":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidErrorCode":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidForwardCookies":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidGeoRestrictionParameter":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidHeadersForS3Origin":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidIfMatchVersion":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidLocationCode":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidOrigin":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidOriginAccessIdentity":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidProtocolSettings":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidRelativePath":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidRequiredProtocol":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidResponseCode":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidViewerCertificate":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "Invalidation":{ + "type":"structure", + "required":[ + "Id", + "Status", + "CreateTime", + "InvalidationBatch" + ], + "members":{ + "Id":{"shape":"string"}, + "Status":{"shape":"string"}, + "CreateTime":{"shape":"timestamp"}, + "InvalidationBatch":{"shape":"InvalidationBatch"} + } + }, + "InvalidationBatch":{ + "type":"structure", + "required":[ + "Paths", + "CallerReference" + ], + "members":{ + "Paths":{"shape":"Paths"}, + "CallerReference":{"shape":"string"} + } + }, + "InvalidationList":{ + "type":"structure", + "required":[ + "Marker", + "MaxItems", + "IsTruncated", + "Quantity" + ], + "members":{ + "Marker":{"shape":"string"}, + "NextMarker":{"shape":"string"}, + "MaxItems":{"shape":"integer"}, + "IsTruncated":{"shape":"boolean"}, + "Quantity":{"shape":"integer"}, + "Items":{"shape":"InvalidationSummaryList"} + } + }, + "InvalidationSummary":{ + "type":"structure", + "required":[ + "Id", + "CreateTime", + "Status" + ], + "members":{ + "Id":{"shape":"string"}, + "CreateTime":{"shape":"timestamp"}, + "Status":{"shape":"string"} + } + }, + "InvalidationSummaryList":{ + "type":"list", + "member":{ + "shape":"InvalidationSummary", + "locationName":"InvalidationSummary" + } + }, + "ItemSelection":{ + "type":"string", + "enum":[ + "none", + "whitelist", + "all" + ] + }, + "KeyPairIdList":{ + "type":"list", + "member":{ + "shape":"string", + "locationName":"KeyPairId" + } + }, + "KeyPairIds":{ + "type":"structure", + "required":["Quantity"], + "members":{ + "Quantity":{"shape":"integer"}, + "Items":{"shape":"KeyPairIdList"} + } + }, + "ListCloudFrontOriginAccessIdentitiesRequest":{ + "type":"structure", + "members":{ + "Marker":{ + "shape":"string", + "location":"querystring", + "locationName":"Marker" + }, + "MaxItems":{ + "shape":"string", + "location":"querystring", + "locationName":"MaxItems" + } + } + }, + "ListCloudFrontOriginAccessIdentitiesResult":{ + "type":"structure", + "members":{ + "CloudFrontOriginAccessIdentityList":{"shape":"CloudFrontOriginAccessIdentityList"} + }, + "payload":"CloudFrontOriginAccessIdentityList" + }, + "ListDistributionsRequest":{ + "type":"structure", + "members":{ + "Marker":{ + "shape":"string", + "location":"querystring", + "locationName":"Marker" + }, + "MaxItems":{ + "shape":"string", + "location":"querystring", + "locationName":"MaxItems" + } + } + }, + "ListDistributionsResult":{ + "type":"structure", + "members":{ + "DistributionList":{"shape":"DistributionList"} + }, + "payload":"DistributionList" + }, + "ListInvalidationsRequest":{ + "type":"structure", + "required":["DistributionId"], + "members":{ + "DistributionId":{ + "shape":"string", + "location":"uri", + "locationName":"DistributionId" + }, + "Marker":{ + "shape":"string", + "location":"querystring", + "locationName":"Marker" + }, + "MaxItems":{ + "shape":"string", + "location":"querystring", + "locationName":"MaxItems" + } + } + }, + "ListInvalidationsResult":{ + "type":"structure", + "members":{ + "InvalidationList":{"shape":"InvalidationList"} + }, + "payload":"InvalidationList" + }, + "ListStreamingDistributionsRequest":{ + "type":"structure", + "members":{ + "Marker":{ + "shape":"string", + "location":"querystring", + "locationName":"Marker" + }, + "MaxItems":{ + "shape":"string", + "location":"querystring", + "locationName":"MaxItems" + } + } + }, + "ListStreamingDistributionsResult":{ + "type":"structure", + "members":{ + "StreamingDistributionList":{"shape":"StreamingDistributionList"} + }, + "payload":"StreamingDistributionList" + }, + "LocationList":{ + "type":"list", + "member":{ + "shape":"string", + "locationName":"Location" + } + }, + "LoggingConfig":{ + "type":"structure", + "required":[ + "Enabled", + "IncludeCookies", + "Bucket", + "Prefix" + ], + "members":{ + "Enabled":{"shape":"boolean"}, + "IncludeCookies":{"shape":"boolean"}, + "Bucket":{"shape":"string"}, + "Prefix":{"shape":"string"} + } + }, + "Method":{ + "type":"string", + "enum":[ + "GET", + "HEAD", + "POST", + "PUT", + "PATCH", + "OPTIONS", + "DELETE" + ] + }, + "MethodsList":{ + "type":"list", + "member":{ + "shape":"Method", + "locationName":"Method" + } + }, + "MinimumProtocolVersion":{ + "type":"string", + "enum":[ + "SSLv3", + "TLSv1" + ] + }, + "MissingBody":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "NoSuchCloudFrontOriginAccessIdentity":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "NoSuchDistribution":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "NoSuchInvalidation":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "NoSuchOrigin":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "NoSuchStreamingDistribution":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "Origin":{ + "type":"structure", + "required":[ + "Id", + "DomainName" + ], + "members":{ + "Id":{"shape":"string"}, + "DomainName":{"shape":"string"}, + "OriginPath":{"shape":"string"}, + "S3OriginConfig":{"shape":"S3OriginConfig"}, + "CustomOriginConfig":{"shape":"CustomOriginConfig"} + } + }, + "OriginList":{ + "type":"list", + "member":{ + "shape":"Origin", + "locationName":"Origin" + }, + "min":1 + }, + "OriginProtocolPolicy":{ + "type":"string", + "enum":[ + "http-only", + "match-viewer" + ] + }, + "Origins":{ + "type":"structure", + "required":["Quantity"], + "members":{ + "Quantity":{"shape":"integer"}, + "Items":{"shape":"OriginList"} + } + }, + "PathList":{ + "type":"list", + "member":{ + "shape":"string", + "locationName":"Path" + } + }, + "Paths":{ + "type":"structure", + "required":["Quantity"], + "members":{ + "Quantity":{"shape":"integer"}, + "Items":{"shape":"PathList"} + } + }, + "PreconditionFailed":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":412}, + "exception":true + }, + "PriceClass":{ + "type":"string", + "enum":[ + "PriceClass_100", + "PriceClass_200", + "PriceClass_All" + ] + }, + "Restrictions":{ + "type":"structure", + "required":["GeoRestriction"], + "members":{ + "GeoRestriction":{"shape":"GeoRestriction"} + } + }, + "S3Origin":{ + "type":"structure", + "required":[ + "DomainName", + "OriginAccessIdentity" + ], + "members":{ + "DomainName":{"shape":"string"}, + "OriginAccessIdentity":{"shape":"string"} + } + }, + "S3OriginConfig":{ + "type":"structure", + "required":["OriginAccessIdentity"], + "members":{ + "OriginAccessIdentity":{"shape":"string"} + } + }, + "SSLSupportMethod":{ + "type":"string", + "enum":[ + "sni-only", + "vip" + ] + }, + "Signer":{ + "type":"structure", + "members":{ + "AwsAccountNumber":{"shape":"string"}, + "KeyPairIds":{"shape":"KeyPairIds"} + } + }, + "SignerList":{ + "type":"list", + "member":{ + "shape":"Signer", + "locationName":"Signer" + } + }, + "StreamingDistribution":{ + "type":"structure", + "required":[ + "Id", + "Status", + "DomainName", + "ActiveTrustedSigners", + "StreamingDistributionConfig" + ], + "members":{ + "Id":{"shape":"string"}, + "Status":{"shape":"string"}, + "LastModifiedTime":{"shape":"timestamp"}, + "DomainName":{"shape":"string"}, + "ActiveTrustedSigners":{"shape":"ActiveTrustedSigners"}, + "StreamingDistributionConfig":{"shape":"StreamingDistributionConfig"} + } + }, + "StreamingDistributionAlreadyExists":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "StreamingDistributionConfig":{ + "type":"structure", + "required":[ + "CallerReference", + "S3Origin", + "Comment", + "TrustedSigners", + "Enabled" + ], + "members":{ + "CallerReference":{"shape":"string"}, + "S3Origin":{"shape":"S3Origin"}, + "Aliases":{"shape":"Aliases"}, + "Comment":{"shape":"string"}, + "Logging":{"shape":"StreamingLoggingConfig"}, + "TrustedSigners":{"shape":"TrustedSigners"}, + "PriceClass":{"shape":"PriceClass"}, + "Enabled":{"shape":"boolean"} + } + }, + "StreamingDistributionList":{ + "type":"structure", + "required":[ + "Marker", + "MaxItems", + "IsTruncated", + "Quantity" + ], + "members":{ + "Marker":{"shape":"string"}, + "NextMarker":{"shape":"string"}, + "MaxItems":{"shape":"integer"}, + "IsTruncated":{"shape":"boolean"}, + "Quantity":{"shape":"integer"}, + "Items":{"shape":"StreamingDistributionSummaryList"} + } + }, + "StreamingDistributionNotDisabled":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "StreamingDistributionSummary":{ + "type":"structure", + "required":[ + "Id", + "Status", + "LastModifiedTime", + "DomainName", + "S3Origin", + "Aliases", + "TrustedSigners", + "Comment", + "PriceClass", + "Enabled" + ], + "members":{ + "Id":{"shape":"string"}, + "Status":{"shape":"string"}, + "LastModifiedTime":{"shape":"timestamp"}, + "DomainName":{"shape":"string"}, + "S3Origin":{"shape":"S3Origin"}, + "Aliases":{"shape":"Aliases"}, + "TrustedSigners":{"shape":"TrustedSigners"}, + "Comment":{"shape":"string"}, + "PriceClass":{"shape":"PriceClass"}, + "Enabled":{"shape":"boolean"} + } + }, + "StreamingDistributionSummaryList":{ + "type":"list", + "member":{ + "shape":"StreamingDistributionSummary", + "locationName":"StreamingDistributionSummary" + } + }, + "StreamingLoggingConfig":{ + "type":"structure", + "required":[ + "Enabled", + "Bucket", + "Prefix" + ], + "members":{ + "Enabled":{"shape":"boolean"}, + "Bucket":{"shape":"string"}, + "Prefix":{"shape":"string"} + } + }, + "TooManyCacheBehaviors":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "TooManyCertificates":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "TooManyCloudFrontOriginAccessIdentities":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "TooManyCookieNamesInWhiteList":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "TooManyDistributionCNAMEs":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "TooManyDistributions":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "TooManyHeadersInForwardedValues":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "TooManyInvalidationsInProgress":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "TooManyOrigins":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "TooManyStreamingDistributionCNAMEs":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "TooManyStreamingDistributions":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "TooManyTrustedSigners":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "TrustedSignerDoesNotExist":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "TrustedSigners":{ + "type":"structure", + "required":[ + "Enabled", + "Quantity" + ], + "members":{ + "Enabled":{"shape":"boolean"}, + "Quantity":{"shape":"integer"}, + "Items":{"shape":"AwsAccountNumberList"} + } + }, + "UpdateCloudFrontOriginAccessIdentityRequest":{ + "type":"structure", + "required":[ + "CloudFrontOriginAccessIdentityConfig", + "Id" + ], + "members":{ + "CloudFrontOriginAccessIdentityConfig":{ + "shape":"CloudFrontOriginAccessIdentityConfig", + "xmlNamespace":{"uri":"http://cloudfront.amazonaws.com/doc/2014-11-06/"}, + "locationName":"CloudFrontOriginAccessIdentityConfig" + }, + "Id":{ + "shape":"string", + "location":"uri", + "locationName":"Id" + }, + "IfMatch":{ + "shape":"string", + "location":"header", + "locationName":"If-Match" + } + }, + "payload":"CloudFrontOriginAccessIdentityConfig" + }, + "UpdateCloudFrontOriginAccessIdentityResult":{ + "type":"structure", + "members":{ + "CloudFrontOriginAccessIdentity":{"shape":"CloudFrontOriginAccessIdentity"}, + "ETag":{ + "shape":"string", + "location":"header", + "locationName":"ETag" + } + }, + "payload":"CloudFrontOriginAccessIdentity" + }, + "UpdateDistributionRequest":{ + "type":"structure", + "required":[ + "DistributionConfig", + "Id" + ], + "members":{ + "DistributionConfig":{ + "shape":"DistributionConfig", + "xmlNamespace":{"uri":"http://cloudfront.amazonaws.com/doc/2014-11-06/"}, + "locationName":"DistributionConfig" + }, + "Id":{ + "shape":"string", + "location":"uri", + "locationName":"Id" + }, + "IfMatch":{ + "shape":"string", + "location":"header", + "locationName":"If-Match" + } + }, + "payload":"DistributionConfig" + }, + "UpdateDistributionResult":{ + "type":"structure", + "members":{ + "Distribution":{"shape":"Distribution"}, + "ETag":{ + "shape":"string", + "location":"header", + "locationName":"ETag" + } + }, + "payload":"Distribution" + }, + "UpdateStreamingDistributionRequest":{ + "type":"structure", + "required":[ + "StreamingDistributionConfig", + "Id" + ], + "members":{ + "StreamingDistributionConfig":{ + "shape":"StreamingDistributionConfig", + "xmlNamespace":{"uri":"http://cloudfront.amazonaws.com/doc/2014-11-06/"}, + "locationName":"StreamingDistributionConfig" + }, + "Id":{ + "shape":"string", + "location":"uri", + "locationName":"Id" + }, + "IfMatch":{ + "shape":"string", + "location":"header", + "locationName":"If-Match" + } + }, + "payload":"StreamingDistributionConfig" + }, + "UpdateStreamingDistributionResult":{ + "type":"structure", + "members":{ + "StreamingDistribution":{"shape":"StreamingDistribution"}, + "ETag":{ + "shape":"string", + "location":"header", + "locationName":"ETag" + } + }, + "payload":"StreamingDistribution" + }, + "ViewerCertificate":{ + "type":"structure", + "members":{ + "IAMCertificateId":{"shape":"string"}, + "CloudFrontDefaultCertificate":{"shape":"boolean"}, + "SSLSupportMethod":{"shape":"SSLSupportMethod"}, + "MinimumProtocolVersion":{"shape":"MinimumProtocolVersion"} + } + }, + "ViewerProtocolPolicy":{ + "type":"string", + "enum":[ + "allow-all", + "https-only", + "redirect-to-https" + ] + }, + "boolean":{"type":"boolean"}, + "integer":{"type":"integer"}, + "long":{"type":"long"}, + "string":{"type":"string"}, + "timestamp":{"type":"timestamp"} + } +} diff --git a/lib/aws-sdk/Aws/data/cloudfront/2014-11-06/docs-2.json b/lib/aws-sdk/Aws/data/cloudfront/2014-11-06/docs-2.json new file mode 100644 index 0000000..b70896f --- /dev/null +++ b/lib/aws-sdk/Aws/data/cloudfront/2014-11-06/docs-2.json @@ -0,0 +1,1125 @@ +{ + "version": "2.0", + "operations": { + "CreateCloudFrontOriginAccessIdentity": "Create a new origin access identity.", + "CreateDistribution": "Create a new distribution.", + "CreateInvalidation": "Create a new invalidation.", + "CreateStreamingDistribution": "Create a new streaming distribution.", + "DeleteCloudFrontOriginAccessIdentity": "Delete an origin access identity.", + "DeleteDistribution": "Delete a distribution.", + "DeleteStreamingDistribution": "Delete a streaming distribution.", + "GetCloudFrontOriginAccessIdentity": "Get the information about an origin access identity.", + "GetCloudFrontOriginAccessIdentityConfig": "Get the configuration information about an origin access identity.", + "GetDistribution": "Get the information about a distribution.", + "GetDistributionConfig": "Get the configuration information about a distribution.", + "GetInvalidation": "Get the information about an invalidation.", + "GetStreamingDistribution": "Get the information about a streaming distribution.", + "GetStreamingDistributionConfig": "Get the configuration information about a streaming distribution.", + "ListCloudFrontOriginAccessIdentities": "List origin access identities.", + "ListDistributions": "List distributions.", + "ListInvalidations": "List invalidation batches.", + "ListStreamingDistributions": "List streaming distributions.", + "UpdateCloudFrontOriginAccessIdentity": "Update an origin access identity.", + "UpdateDistribution": "Update a distribution.", + "UpdateStreamingDistribution": "Update a streaming distribution." + }, + "service": null, + "shapes": { + "AccessDenied": { + "base": "Access denied.", + "refs": { + } + }, + "ActiveTrustedSigners": { + "base": "A complex type that lists the AWS accounts, if any, that you included in the TrustedSigners complex type for the default cache behavior or for any of the other cache behaviors for this distribution. These are accounts that you want to allow to create signed URLs for private content.", + "refs": { + "Distribution$ActiveTrustedSigners": "CloudFront automatically adds this element to the response only if you've set up the distribution to serve private content with signed URLs. The element lists the key pair IDs that CloudFront is aware of for each trusted signer. The Signer child element lists the AWS account number of the trusted signer (or an empty Self element if the signer is you). The Signer element also includes the IDs of any active key pairs associated with the trusted signer's AWS account. If no KeyPairId element appears for a Signer, that signer can't create working signed URLs.", + "StreamingDistribution$ActiveTrustedSigners": "CloudFront automatically adds this element to the response only if you've set up the distribution to serve private content with signed URLs. The element lists the key pair IDs that CloudFront is aware of for each trusted signer. The Signer child element lists the AWS account number of the trusted signer (or an empty Self element if the signer is you). The Signer element also includes the IDs of any active key pairs associated with the trusted signer's AWS account. If no KeyPairId element appears for a Signer, that signer can't create working signed URLs." + } + }, + "AliasList": { + "base": null, + "refs": { + "Aliases$Items": "Optional: A complex type that contains CNAME elements, if any, for this distribution. If Quantity is 0, you can omit Items." + } + }, + "Aliases": { + "base": "A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.", + "refs": { + "DistributionConfig$Aliases": "A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.", + "DistributionSummary$Aliases": "A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.", + "StreamingDistributionConfig$Aliases": "A complex type that contains information about CNAMEs (alternate domain names), if any, for this streaming distribution.", + "StreamingDistributionSummary$Aliases": "A complex type that contains information about CNAMEs (alternate domain names), if any, for this streaming distribution." + } + }, + "AllowedMethods": { + "base": "A complex type that controls which HTTP methods CloudFront processes and forwards to your Amazon S3 bucket or your custom origin. There are three choices: - CloudFront forwards only GET and HEAD requests. - CloudFront forwards only GET, HEAD and OPTIONS requests. - CloudFront forwards GET, HEAD, OPTIONS, PUT, PATCH, POST, and DELETE requests. If you pick the third choice, you may need to restrict access to your Amazon S3 bucket or to your custom origin so users can't perform operations that you don't want them to. For example, you may not want users to have permission to delete objects from your origin.", + "refs": { + "CacheBehavior$AllowedMethods": null, + "DefaultCacheBehavior$AllowedMethods": null + } + }, + "AwsAccountNumberList": { + "base": null, + "refs": { + "TrustedSigners$Items": "Optional: A complex type that contains trusted signers for this cache behavior. If Quantity is 0, you can omit Items." + } + }, + "BatchTooLarge": { + "base": null, + "refs": { + } + }, + "CNAMEAlreadyExists": { + "base": null, + "refs": { + } + }, + "CacheBehavior": { + "base": "A complex type that describes how CloudFront processes requests. You can create up to 10 cache behaviors.You must create at least as many cache behaviors (including the default cache behavior) as you have origins if you want CloudFront to distribute objects from all of the origins. Each cache behavior specifies the one origin from which you want CloudFront to get objects. If you have two origins and only the default cache behavior, the default cache behavior will cause CloudFront to get objects from one of the origins, but the other origin will never be used. If you don't want to specify any cache behaviors, include only an empty CacheBehaviors element. Don't include an empty CacheBehavior element, or CloudFront returns a MalformedXML error. To delete all cache behaviors in an existing distribution, update the distribution configuration and include only an empty CacheBehaviors element. To add, change, or remove one or more cache behaviors, update the distribution configuration and specify all of the cache behaviors that you want to include in the updated distribution.", + "refs": { + "CacheBehaviorList$member": null + } + }, + "CacheBehaviorList": { + "base": null, + "refs": { + "CacheBehaviors$Items": "Optional: A complex type that contains cache behaviors for this distribution. If Quantity is 0, you can omit Items." + } + }, + "CacheBehaviors": { + "base": "A complex type that contains zero or more CacheBehavior elements.", + "refs": { + "DistributionConfig$CacheBehaviors": "A complex type that contains zero or more CacheBehavior elements.", + "DistributionSummary$CacheBehaviors": "A complex type that contains zero or more CacheBehavior elements." + } + }, + "CachedMethods": { + "base": "A complex type that controls whether CloudFront caches the response to requests using the specified HTTP methods. There are two choices: - CloudFront caches responses to GET and HEAD requests. - CloudFront caches responses to GET, HEAD, and OPTIONS requests. If you pick the second choice for your S3 Origin, you may need to forward Access-Control-Request-Method, Access-Control-Request-Headers and Origin headers for the responses to be cached correctly.", + "refs": { + "AllowedMethods$CachedMethods": null + } + }, + "CloudFrontOriginAccessIdentity": { + "base": "CloudFront origin access identity.", + "refs": { + "CreateCloudFrontOriginAccessIdentityResult$CloudFrontOriginAccessIdentity": "The origin access identity's information.", + "GetCloudFrontOriginAccessIdentityResult$CloudFrontOriginAccessIdentity": "The origin access identity's information.", + "UpdateCloudFrontOriginAccessIdentityResult$CloudFrontOriginAccessIdentity": "The origin access identity's information." + } + }, + "CloudFrontOriginAccessIdentityAlreadyExists": { + "base": "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.", + "refs": { + } + }, + "CloudFrontOriginAccessIdentityConfig": { + "base": "Origin access identity configuration.", + "refs": { + "CloudFrontOriginAccessIdentity$CloudFrontOriginAccessIdentityConfig": "The current configuration information for the identity.", + "CreateCloudFrontOriginAccessIdentityRequest$CloudFrontOriginAccessIdentityConfig": "The origin access identity's configuration information.", + "GetCloudFrontOriginAccessIdentityConfigResult$CloudFrontOriginAccessIdentityConfig": "The origin access identity's configuration information.", + "UpdateCloudFrontOriginAccessIdentityRequest$CloudFrontOriginAccessIdentityConfig": "The identity's configuration information." + } + }, + "CloudFrontOriginAccessIdentityInUse": { + "base": null, + "refs": { + } + }, + "CloudFrontOriginAccessIdentityList": { + "base": "The CloudFrontOriginAccessIdentityList type.", + "refs": { + "ListCloudFrontOriginAccessIdentitiesResult$CloudFrontOriginAccessIdentityList": "The CloudFrontOriginAccessIdentityList type." + } + }, + "CloudFrontOriginAccessIdentitySummary": { + "base": "Summary of the information about a CloudFront origin access identity.", + "refs": { + "CloudFrontOriginAccessIdentitySummaryList$member": null + } + }, + "CloudFrontOriginAccessIdentitySummaryList": { + "base": null, + "refs": { + "CloudFrontOriginAccessIdentityList$Items": "A complex type that contains one CloudFrontOriginAccessIdentitySummary element for each origin access identity that was created by the current AWS account." + } + }, + "CookieNameList": { + "base": null, + "refs": { + "CookieNames$Items": "Optional: A complex type that contains whitelisted cookies for this cache behavior. If Quantity is 0, you can omit Items." + } + }, + "CookieNames": { + "base": "A complex type that specifies the whitelisted cookies, if any, that you want CloudFront to forward to your origin that is associated with this cache behavior.", + "refs": { + "CookiePreference$WhitelistedNames": "A complex type that specifies the whitelisted cookies, if any, that you want CloudFront to forward to your origin that is associated with this cache behavior." + } + }, + "CookiePreference": { + "base": "A complex type that specifies the cookie preferences associated with this cache behavior.", + "refs": { + "ForwardedValues$Cookies": "A complex type that specifies how CloudFront handles cookies." + } + }, + "CreateCloudFrontOriginAccessIdentityRequest": { + "base": "The request to create a new origin access identity.", + "refs": { + } + }, + "CreateCloudFrontOriginAccessIdentityResult": { + "base": "The returned result of the corresponding request.", + "refs": { + } + }, + "CreateDistributionRequest": { + "base": "The request to create a new distribution.", + "refs": { + } + }, + "CreateDistributionResult": { + "base": "The returned result of the corresponding request.", + "refs": { + } + }, + "CreateInvalidationRequest": { + "base": "The request to create an invalidation.", + "refs": { + } + }, + "CreateInvalidationResult": { + "base": "The returned result of the corresponding request.", + "refs": { + } + }, + "CreateStreamingDistributionRequest": { + "base": "The request to create a new streaming distribution.", + "refs": { + } + }, + "CreateStreamingDistributionResult": { + "base": "The returned result of the corresponding request.", + "refs": { + } + }, + "CustomErrorResponse": { + "base": "A complex type that describes how you'd prefer CloudFront to respond to requests that result in either a 4xx or 5xx response. You can control whether a custom error page should be displayed, what the desired response code should be for this error page and how long should the error response be cached by CloudFront. If you don't want to specify any custom error responses, include only an empty CustomErrorResponses element. To delete all custom error responses in an existing distribution, update the distribution configuration and include only an empty CustomErrorResponses element. To add, change, or remove one or more custom error responses, update the distribution configuration and specify all of the custom error responses that you want to include in the updated distribution.", + "refs": { + "CustomErrorResponseList$member": null + } + }, + "CustomErrorResponseList": { + "base": null, + "refs": { + "CustomErrorResponses$Items": "Optional: A complex type that contains custom error responses for this distribution. If Quantity is 0, you can omit Items." + } + }, + "CustomErrorResponses": { + "base": "A complex type that contains zero or more CustomErrorResponse elements.", + "refs": { + "DistributionConfig$CustomErrorResponses": "A complex type that contains zero or more CustomErrorResponse elements.", + "DistributionSummary$CustomErrorResponses": "A complex type that contains zero or more CustomErrorResponses elements." + } + }, + "CustomOriginConfig": { + "base": "A customer origin.", + "refs": { + "Origin$CustomOriginConfig": "A complex type that contains information about a custom origin. If the origin is an Amazon S3 bucket, use the S3OriginConfig element instead." + } + }, + "DefaultCacheBehavior": { + "base": "A complex type that describes the default cache behavior if you do not specify a CacheBehavior element or if files don't match any of the values of PathPattern in CacheBehavior elements.You must create exactly one default cache behavior.", + "refs": { + "DistributionConfig$DefaultCacheBehavior": "A complex type that describes the default cache behavior if you do not specify a CacheBehavior element or if files don't match any of the values of PathPattern in CacheBehavior elements.You must create exactly one default cache behavior.", + "DistributionSummary$DefaultCacheBehavior": "A complex type that describes the default cache behavior if you do not specify a CacheBehavior element or if files don't match any of the values of PathPattern in CacheBehavior elements.You must create exactly one default cache behavior." + } + }, + "DeleteCloudFrontOriginAccessIdentityRequest": { + "base": "The request to delete a origin access identity.", + "refs": { + } + }, + "DeleteDistributionRequest": { + "base": "The request to delete a distribution.", + "refs": { + } + }, + "DeleteStreamingDistributionRequest": { + "base": "The request to delete a streaming distribution.", + "refs": { + } + }, + "Distribution": { + "base": "A distribution.", + "refs": { + "CreateDistributionResult$Distribution": "The distribution's information.", + "GetDistributionResult$Distribution": "The distribution's information.", + "UpdateDistributionResult$Distribution": "The distribution's information." + } + }, + "DistributionAlreadyExists": { + "base": "The caller reference you attempted to create the distribution with is associated with another distribution.", + "refs": { + } + }, + "DistributionConfig": { + "base": "A distribution Configuration.", + "refs": { + "CreateDistributionRequest$DistributionConfig": "The distribution's configuration information.", + "Distribution$DistributionConfig": "The current configuration information for the distribution.", + "GetDistributionConfigResult$DistributionConfig": "The distribution's configuration information.", + "UpdateDistributionRequest$DistributionConfig": "The distribution's configuration information." + } + }, + "DistributionList": { + "base": "A distribution list.", + "refs": { + "ListDistributionsResult$DistributionList": "The DistributionList type." + } + }, + "DistributionNotDisabled": { + "base": null, + "refs": { + } + }, + "DistributionSummary": { + "base": "A summary of the information for an Amazon CloudFront distribution.", + "refs": { + "DistributionSummaryList$member": null + } + }, + "DistributionSummaryList": { + "base": null, + "refs": { + "DistributionList$Items": "A complex type that contains one DistributionSummary element for each distribution that was created by the current AWS account." + } + }, + "ForwardedValues": { + "base": "A complex type that specifies how CloudFront handles query strings, cookies and headers.", + "refs": { + "CacheBehavior$ForwardedValues": "A complex type that specifies how CloudFront handles query strings, cookies and headers.", + "DefaultCacheBehavior$ForwardedValues": "A complex type that specifies how CloudFront handles query strings, cookies and headers." + } + }, + "GeoRestriction": { + "base": "A complex type that controls the countries in which your content is distributed. For more information about geo restriction, go to Customizing Error Responses in the Amazon CloudFront Developer Guide. CloudFront determines the location of your users using MaxMind GeoIP databases. For information about the accuracy of these databases, see How accurate are your GeoIP databases? on the MaxMind website.", + "refs": { + "Restrictions$GeoRestriction": null + } + }, + "GeoRestrictionType": { + "base": null, + "refs": { + "GeoRestriction$RestrictionType": "The method that you want to use to restrict distribution of your content by country: - none: No geo restriction is enabled, meaning access to content is not restricted by client geo location. - blacklist: The Location elements specify the countries in which you do not want CloudFront to distribute your content. - whitelist: The Location elements specify the countries in which you want CloudFront to distribute your content." + } + }, + "GetCloudFrontOriginAccessIdentityConfigRequest": { + "base": "The request to get an origin access identity's configuration.", + "refs": { + } + }, + "GetCloudFrontOriginAccessIdentityConfigResult": { + "base": "The returned result of the corresponding request.", + "refs": { + } + }, + "GetCloudFrontOriginAccessIdentityRequest": { + "base": "The request to get an origin access identity's information.", + "refs": { + } + }, + "GetCloudFrontOriginAccessIdentityResult": { + "base": "The returned result of the corresponding request.", + "refs": { + } + }, + "GetDistributionConfigRequest": { + "base": "The request to get a distribution configuration.", + "refs": { + } + }, + "GetDistributionConfigResult": { + "base": "The returned result of the corresponding request.", + "refs": { + } + }, + "GetDistributionRequest": { + "base": "The request to get a distribution's information.", + "refs": { + } + }, + "GetDistributionResult": { + "base": "The returned result of the corresponding request.", + "refs": { + } + }, + "GetInvalidationRequest": { + "base": "The request to get an invalidation's information.", + "refs": { + } + }, + "GetInvalidationResult": { + "base": "The returned result of the corresponding request.", + "refs": { + } + }, + "GetStreamingDistributionConfigRequest": { + "base": "To request to get a streaming distribution configuration.", + "refs": { + } + }, + "GetStreamingDistributionConfigResult": { + "base": "The returned result of the corresponding request.", + "refs": { + } + }, + "GetStreamingDistributionRequest": { + "base": "The request to get a streaming distribution's information.", + "refs": { + } + }, + "GetStreamingDistributionResult": { + "base": "The returned result of the corresponding request.", + "refs": { + } + }, + "HeaderList": { + "base": null, + "refs": { + "Headers$Items": "Optional: A complex type that contains a Name element for each header that you want CloudFront to forward to the origin and to vary on for this cache behavior. If Quantity is 0, omit Items." + } + }, + "Headers": { + "base": "A complex type that specifies the headers that you want CloudFront to forward to the origin for this cache behavior. For the headers that you specify, CloudFront also caches separate versions of a given object based on the header values in viewer requests; this is known as varying on headers. For example, suppose viewer requests for logo.jpg contain a custom Product header that has a value of either Acme or Apex, and you configure CloudFront to vary on the Product header. CloudFront forwards the Product header to the origin and caches the response from the origin once for each header value.", + "refs": { + "ForwardedValues$Headers": "A complex type that specifies the Headers, if any, that you want CloudFront to vary upon for this cache behavior." + } + }, + "IllegalUpdate": { + "base": "Origin and CallerReference cannot be updated.", + "refs": { + } + }, + "InconsistentQuantities": { + "base": "The value of Quantity and the size of Items do not match.", + "refs": { + } + }, + "InvalidArgument": { + "base": "The argument is invalid.", + "refs": { + } + }, + "InvalidDefaultRootObject": { + "base": "The default root object file name is too big or contains an invalid character.", + "refs": { + } + }, + "InvalidErrorCode": { + "base": null, + "refs": { + } + }, + "InvalidForwardCookies": { + "base": "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.", + "refs": { + } + }, + "InvalidGeoRestrictionParameter": { + "base": null, + "refs": { + } + }, + "InvalidHeadersForS3Origin": { + "base": null, + "refs": { + } + }, + "InvalidIfMatchVersion": { + "base": "The If-Match version is missing or not valid for the distribution.", + "refs": { + } + }, + "InvalidLocationCode": { + "base": null, + "refs": { + } + }, + "InvalidOrigin": { + "base": "The Amazon S3 origin server specified does not refer to a valid Amazon S3 bucket.", + "refs": { + } + }, + "InvalidOriginAccessIdentity": { + "base": "The origin access identity is not valid or doesn't exist.", + "refs": { + } + }, + "InvalidProtocolSettings": { + "base": "You cannot specify SSLv3 as the minimum protocol version if you only want to support only clients that Support Server Name Indication (SNI).", + "refs": { + } + }, + "InvalidRelativePath": { + "base": "The relative path is too big, is not URL-encoded, or does not begin with a slash (/).", + "refs": { + } + }, + "InvalidRequiredProtocol": { + "base": "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.", + "refs": { + } + }, + "InvalidResponseCode": { + "base": null, + "refs": { + } + }, + "InvalidViewerCertificate": { + "base": null, + "refs": { + } + }, + "Invalidation": { + "base": "An invalidation.", + "refs": { + "CreateInvalidationResult$Invalidation": "The invalidation's information.", + "GetInvalidationResult$Invalidation": "The invalidation's information." + } + }, + "InvalidationBatch": { + "base": "An invalidation batch.", + "refs": { + "CreateInvalidationRequest$InvalidationBatch": "The batch information for the invalidation.", + "Invalidation$InvalidationBatch": "The current invalidation information for the batch request." + } + }, + "InvalidationList": { + "base": "An invalidation list.", + "refs": { + "ListInvalidationsResult$InvalidationList": "Information about invalidation batches." + } + }, + "InvalidationSummary": { + "base": "Summary of an invalidation request.", + "refs": { + "InvalidationSummaryList$member": null + } + }, + "InvalidationSummaryList": { + "base": null, + "refs": { + "InvalidationList$Items": "A complex type that contains one InvalidationSummary element for each invalidation batch that was created by the current AWS account." + } + }, + "ItemSelection": { + "base": null, + "refs": { + "CookiePreference$Forward": "Use this element to specify whether you want CloudFront to forward cookies to the origin that is associated with this cache behavior. You can specify all, none or whitelist. If you choose All, CloudFront forwards all cookies regardless of how many your application uses." + } + }, + "KeyPairIdList": { + "base": null, + "refs": { + "KeyPairIds$Items": "A complex type that lists the active CloudFront key pairs, if any, that are associated with AwsAccountNumber." + } + }, + "KeyPairIds": { + "base": "A complex type that lists the active CloudFront key pairs, if any, that are associated with AwsAccountNumber.", + "refs": { + "Signer$KeyPairIds": "A complex type that lists the active CloudFront key pairs, if any, that are associated with AwsAccountNumber." + } + }, + "ListCloudFrontOriginAccessIdentitiesRequest": { + "base": "The request to list origin access identities.", + "refs": { + } + }, + "ListCloudFrontOriginAccessIdentitiesResult": { + "base": "The returned result of the corresponding request.", + "refs": { + } + }, + "ListDistributionsRequest": { + "base": "The request to list your distributions.", + "refs": { + } + }, + "ListDistributionsResult": { + "base": "The returned result of the corresponding request.", + "refs": { + } + }, + "ListInvalidationsRequest": { + "base": "The request to list invalidations.", + "refs": { + } + }, + "ListInvalidationsResult": { + "base": "The returned result of the corresponding request.", + "refs": { + } + }, + "ListStreamingDistributionsRequest": { + "base": "The request to list your streaming distributions.", + "refs": { + } + }, + "ListStreamingDistributionsResult": { + "base": "The returned result of the corresponding request.", + "refs": { + } + }, + "LocationList": { + "base": null, + "refs": { + "GeoRestriction$Items": "A complex type that contains a Location element for each country in which you want CloudFront either to distribute your content (whitelist) or not distribute your content (blacklist). The Location element is a two-letter, uppercase country code for a country that you want to include in your blacklist or whitelist. Include one Location element for each country. CloudFront and MaxMind both use ISO 3166 country codes. For the current list of countries and the corresponding codes, see ISO 3166-1-alpha-2 code on the International Organization for Standardization website. You can also refer to the country list in the CloudFront console, which includes both country names and codes." + } + }, + "LoggingConfig": { + "base": "A complex type that controls whether access logs are written for the distribution.", + "refs": { + "DistributionConfig$Logging": "A complex type that controls whether access logs are written for the distribution." + } + }, + "Method": { + "base": null, + "refs": { + "MethodsList$member": null + } + }, + "MethodsList": { + "base": null, + "refs": { + "AllowedMethods$Items": "A complex type that contains the HTTP methods that you want CloudFront to process and forward to your origin.", + "CachedMethods$Items": "A complex type that contains the HTTP methods that you want CloudFront to cache responses to." + } + }, + "MinimumProtocolVersion": { + "base": null, + "refs": { + "ViewerCertificate$MinimumProtocolVersion": "Specify the minimum version of the SSL protocol that you want CloudFront to use, SSLv3 or TLSv1, for HTTPS connections. CloudFront will serve your objects only to browsers or devices that support at least the SSL version that you specify. The TLSv1 protocol is more secure, so we recommend that you specify SSLv3 only if your users are using browsers or devices that don't support TLSv1. If you're using a custom certificate (if you specify a value for IAMCertificateId) and if you're using dedicated IP (if you specify vip for SSLSupportMethod), you can choose SSLv3 or TLSv1 as the MinimumProtocolVersion. If you're using a custom certificate (if you specify a value for IAMCertificateId) and if you're using SNI (if you specify sni-only for SSLSupportMethod), you must specify TLSv1 for MinimumProtocolVersion." + } + }, + "MissingBody": { + "base": "This operation requires a body. Ensure that the body is present and the Content-Type header is set.", + "refs": { + } + }, + "NoSuchCloudFrontOriginAccessIdentity": { + "base": "The specified origin access identity does not exist.", + "refs": { + } + }, + "NoSuchDistribution": { + "base": "The specified distribution does not exist.", + "refs": { + } + }, + "NoSuchInvalidation": { + "base": "The specified invalidation does not exist.", + "refs": { + } + }, + "NoSuchOrigin": { + "base": "No origin exists with the specified Origin Id.", + "refs": { + } + }, + "NoSuchStreamingDistribution": { + "base": "The specified streaming distribution does not exist.", + "refs": { + } + }, + "Origin": { + "base": "A complex type that describes the Amazon S3 bucket or the HTTP server (for example, a web server) from which CloudFront gets your files.You must create at least one origin.", + "refs": { + "OriginList$member": null + } + }, + "OriginList": { + "base": null, + "refs": { + "Origins$Items": "A complex type that contains origins for this distribution." + } + }, + "OriginProtocolPolicy": { + "base": null, + "refs": { + "CustomOriginConfig$OriginProtocolPolicy": "The origin protocol policy to apply to your origin." + } + }, + "Origins": { + "base": "A complex type that contains information about origins for this distribution.", + "refs": { + "DistributionConfig$Origins": "A complex type that contains information about origins for this distribution.", + "DistributionSummary$Origins": "A complex type that contains information about origins for this distribution." + } + }, + "PathList": { + "base": null, + "refs": { + "Paths$Items": "A complex type that contains a list of the objects that you want to invalidate." + } + }, + "Paths": { + "base": "A complex type that contains information about the objects that you want to invalidate.", + "refs": { + "InvalidationBatch$Paths": "The path of the object to invalidate. The path is relative to the distribution and must begin with a slash (/). You must enclose each invalidation object with the Path element tags. If the path includes non-ASCII characters or unsafe characters as defined in RFC 1783 (http://www.ietf.org/rfc/rfc1738.txt), URL encode those characters. Do not URL encode any other characters in the path, or CloudFront will not invalidate the old version of the updated object." + } + }, + "PreconditionFailed": { + "base": "The precondition given in one or more of the request-header fields evaluated to false.", + "refs": { + } + }, + "PriceClass": { + "base": null, + "refs": { + "DistributionConfig$PriceClass": "A complex type that contains information about price class for this distribution.", + "DistributionSummary$PriceClass": null, + "StreamingDistributionConfig$PriceClass": "A complex type that contains information about price class for this streaming distribution.", + "StreamingDistributionSummary$PriceClass": null + } + }, + "Restrictions": { + "base": "A complex type that identifies ways in which you want to restrict distribution of your content.", + "refs": { + "DistributionConfig$Restrictions": null, + "DistributionSummary$Restrictions": null + } + }, + "S3Origin": { + "base": "A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution.", + "refs": { + "StreamingDistributionConfig$S3Origin": "A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution.", + "StreamingDistributionSummary$S3Origin": "A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution." + } + }, + "S3OriginConfig": { + "base": "A complex type that contains information about the Amazon S3 origin. If the origin is a custom origin, use the CustomOriginConfig element instead.", + "refs": { + "Origin$S3OriginConfig": "A complex type that contains information about the Amazon S3 origin. If the origin is a custom origin, use the CustomOriginConfig element instead." + } + }, + "SSLSupportMethod": { + "base": null, + "refs": { + "ViewerCertificate$SSLSupportMethod": "If you specify a value for IAMCertificateId, you must also specify how you want CloudFront to serve HTTPS requests. Valid values are vip and sni-only. If you specify vip, CloudFront uses dedicated IP addresses for your content and can respond to HTTPS requests from any viewer. However, you must request permission to use this feature, and you incur additional monthly charges. If you specify sni-only, CloudFront can only respond to HTTPS requests from viewers that support Server Name Indication (SNI). All modern browsers support SNI, but some browsers still in use don't support SNI. Do not specify a value for SSLSupportMethod if you specified true for CloudFrontDefaultCertificate." + } + }, + "Signer": { + "base": "A complex type that lists the AWS accounts that were included in the TrustedSigners complex type, as well as their active CloudFront key pair IDs, if any.", + "refs": { + "SignerList$member": null + } + }, + "SignerList": { + "base": null, + "refs": { + "ActiveTrustedSigners$Items": "A complex type that contains one Signer complex type for each unique trusted signer that is specified in the TrustedSigners complex type, including trusted signers in the default cache behavior and in all of the other cache behaviors." + } + }, + "StreamingDistribution": { + "base": "A streaming distribution.", + "refs": { + "CreateStreamingDistributionResult$StreamingDistribution": "The streaming distribution's information.", + "GetStreamingDistributionResult$StreamingDistribution": "The streaming distribution's information.", + "UpdateStreamingDistributionResult$StreamingDistribution": "The streaming distribution's information." + } + }, + "StreamingDistributionAlreadyExists": { + "base": null, + "refs": { + } + }, + "StreamingDistributionConfig": { + "base": "The configuration for the streaming distribution.", + "refs": { + "CreateStreamingDistributionRequest$StreamingDistributionConfig": "The streaming distribution's configuration information.", + "GetStreamingDistributionConfigResult$StreamingDistributionConfig": "The streaming distribution's configuration information.", + "StreamingDistribution$StreamingDistributionConfig": "The current configuration information for the streaming distribution.", + "UpdateStreamingDistributionRequest$StreamingDistributionConfig": "The streaming distribution's configuration information." + } + }, + "StreamingDistributionList": { + "base": "A streaming distribution list.", + "refs": { + "ListStreamingDistributionsResult$StreamingDistributionList": "The StreamingDistributionList type." + } + }, + "StreamingDistributionNotDisabled": { + "base": null, + "refs": { + } + }, + "StreamingDistributionSummary": { + "base": "A summary of the information for an Amazon CloudFront streaming distribution.", + "refs": { + "StreamingDistributionSummaryList$member": null + } + }, + "StreamingDistributionSummaryList": { + "base": null, + "refs": { + "StreamingDistributionList$Items": "A complex type that contains one StreamingDistributionSummary element for each distribution that was created by the current AWS account." + } + }, + "StreamingLoggingConfig": { + "base": "A complex type that controls whether access logs are written for this streaming distribution.", + "refs": { + "StreamingDistributionConfig$Logging": "A complex type that controls whether access logs are written for the streaming distribution." + } + }, + "TooManyCacheBehaviors": { + "base": "You cannot create anymore cache behaviors for the distribution.", + "refs": { + } + }, + "TooManyCertificates": { + "base": "You cannot create anymore custom ssl certificates.", + "refs": { + } + }, + "TooManyCloudFrontOriginAccessIdentities": { + "base": "Processing your request would cause you to exceed the maximum number of origin access identities allowed.", + "refs": { + } + }, + "TooManyCookieNamesInWhiteList": { + "base": "Your request contains more cookie names in the whitelist than are allowed per cache behavior.", + "refs": { + } + }, + "TooManyDistributionCNAMEs": { + "base": "Your request contains more CNAMEs than are allowed per distribution.", + "refs": { + } + }, + "TooManyDistributions": { + "base": "Processing your request would cause you to exceed the maximum number of distributions allowed.", + "refs": { + } + }, + "TooManyHeadersInForwardedValues": { + "base": null, + "refs": { + } + }, + "TooManyInvalidationsInProgress": { + "base": "You have exceeded the maximum number of allowable InProgress invalidation batch requests, or invalidation objects.", + "refs": { + } + }, + "TooManyOrigins": { + "base": "You cannot create anymore origins for the distribution.", + "refs": { + } + }, + "TooManyStreamingDistributionCNAMEs": { + "base": null, + "refs": { + } + }, + "TooManyStreamingDistributions": { + "base": "Processing your request would cause you to exceed the maximum number of streaming distributions allowed.", + "refs": { + } + }, + "TooManyTrustedSigners": { + "base": "Your request contains more trusted signers than are allowed per distribution.", + "refs": { + } + }, + "TrustedSignerDoesNotExist": { + "base": "One or more of your trusted signers do not exist.", + "refs": { + } + }, + "TrustedSigners": { + "base": "A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don't want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it's currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.", + "refs": { + "CacheBehavior$TrustedSigners": "A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don't want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it's currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.", + "DefaultCacheBehavior$TrustedSigners": "A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don't want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it's currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.", + "StreamingDistributionConfig$TrustedSigners": "A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don't want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it's currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution.", + "StreamingDistributionSummary$TrustedSigners": "A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items. For more information, go to Using a Signed URL to Serve Private Content in the Amazon CloudFront Developer Guide. If you don't want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it's currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution." + } + }, + "UpdateCloudFrontOriginAccessIdentityRequest": { + "base": "The request to update an origin access identity.", + "refs": { + } + }, + "UpdateCloudFrontOriginAccessIdentityResult": { + "base": "The returned result of the corresponding request.", + "refs": { + } + }, + "UpdateDistributionRequest": { + "base": "The request to update a distribution.", + "refs": { + } + }, + "UpdateDistributionResult": { + "base": "The returned result of the corresponding request.", + "refs": { + } + }, + "UpdateStreamingDistributionRequest": { + "base": "The request to update a streaming distribution.", + "refs": { + } + }, + "UpdateStreamingDistributionResult": { + "base": "The returned result of the corresponding request.", + "refs": { + } + }, + "ViewerCertificate": { + "base": "A complex type that contains information about viewer certificates for this distribution.", + "refs": { + "DistributionConfig$ViewerCertificate": null, + "DistributionSummary$ViewerCertificate": null + } + }, + "ViewerProtocolPolicy": { + "base": null, + "refs": { + "CacheBehavior$ViewerProtocolPolicy": "Use this element to specify the protocol that users can use to access the files in the origin specified by TargetOriginId when a request matches the path pattern in PathPattern. If you want CloudFront to allow end users to use any available protocol, specify allow-all. If you want CloudFront to require HTTPS, specify https. If you want CloudFront to respond to an HTTP request with an HTTP status code of 301 (Moved Permanently) and the HTTPS URL, specify redirect-to-https. The viewer then resubmits the request using the HTTPS URL.", + "DefaultCacheBehavior$ViewerProtocolPolicy": "Use this element to specify the protocol that users can use to access the files in the origin specified by TargetOriginId when a request matches the path pattern in PathPattern. If you want CloudFront to allow end users to use any available protocol, specify allow-all. If you want CloudFront to require HTTPS, specify https. If you want CloudFront to respond to an HTTP request with an HTTP status code of 301 (Moved Permanently) and the HTTPS URL, specify redirect-to-https. The viewer then resubmits the request using the HTTPS URL." + } + }, + "boolean": { + "base": null, + "refs": { + "ActiveTrustedSigners$Enabled": "Each active trusted signer.", + "CacheBehavior$SmoothStreaming": "Indicates whether you want to distribute media files in Microsoft Smooth Streaming format using the origin that is associated with this cache behavior. If so, specify true; if not, specify false.", + "CloudFrontOriginAccessIdentityList$IsTruncated": "A flag that indicates whether more origin access identities remain to be listed. If your results were truncated, you can make a follow-up pagination request using the Marker request parameter to retrieve more items in the list.", + "DefaultCacheBehavior$SmoothStreaming": "Indicates whether you want to distribute media files in Microsoft Smooth Streaming format using the origin that is associated with this cache behavior. If so, specify true; if not, specify false.", + "DistributionConfig$Enabled": "Whether the distribution is enabled to accept end user requests for content.", + "DistributionList$IsTruncated": "A flag that indicates whether more distributions remain to be listed. If your results were truncated, you can make a follow-up pagination request using the Marker request parameter to retrieve more distributions in the list.", + "DistributionSummary$Enabled": "Whether the distribution is enabled to accept end user requests for content.", + "ForwardedValues$QueryString": "Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior. If so, specify true; if not, specify false.", + "InvalidationList$IsTruncated": "A flag that indicates whether more invalidation batch requests remain to be listed. If your results were truncated, you can make a follow-up pagination request using the Marker request parameter to retrieve more invalidation batches in the list.", + "LoggingConfig$Enabled": "Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you do not want to enable logging when you create a distribution or if you want to disable logging for an existing distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket, prefix and IncludeCookies, the values are automatically deleted.", + "LoggingConfig$IncludeCookies": "Specifies whether you want CloudFront to include cookies in access logs, specify true for IncludeCookies. If you choose to include cookies in logs, CloudFront logs all cookies regardless of how you configure the cache behaviors for this distribution. If you do not want to include cookies when you create a distribution or if you want to disable include cookies for an existing distribution, specify false for IncludeCookies.", + "StreamingDistributionConfig$Enabled": "Whether the streaming distribution is enabled to accept end user requests for content.", + "StreamingDistributionList$IsTruncated": "A flag that indicates whether more streaming distributions remain to be listed. If your results were truncated, you can make a follow-up pagination request using the Marker request parameter to retrieve more distributions in the list.", + "StreamingDistributionSummary$Enabled": "Whether the distribution is enabled to accept end user requests for content.", + "StreamingLoggingConfig$Enabled": "Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you do not want to enable logging when you create a streaming distribution or if you want to disable logging for an existing streaming distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket and Prefix, the values are automatically deleted.", + "TrustedSigners$Enabled": "Specifies whether you want to require end users to use signed URLs to access the files specified by PathPattern and TargetOriginId.", + "ViewerCertificate$CloudFrontDefaultCertificate": "If you want viewers to use HTTPS to request your objects and you're using the CloudFront domain name of your distribution in your object URLs (for example, https://d111111abcdef8.cloudfront.net/logo.jpg), set to true. Omit this value if you are setting an IAMCertificateId." + } + }, + "integer": { + "base": null, + "refs": { + "ActiveTrustedSigners$Quantity": "The number of unique trusted signers included in all cache behaviors. For example, if three cache behaviors all list the same three AWS accounts, the value of Quantity for ActiveTrustedSigners will be 3.", + "Aliases$Quantity": "The number of CNAMEs, if any, for this distribution.", + "AllowedMethods$Quantity": "The number of HTTP methods that you want CloudFront to forward to your origin. Valid values are 2 (for GET and HEAD requests), 3 (for GET, HEAD and OPTIONS requests) and 7 (for GET, HEAD, OPTIONS, PUT, PATCH, POST, and DELETE requests).", + "CacheBehaviors$Quantity": "The number of cache behaviors for this distribution.", + "CachedMethods$Quantity": "The number of HTTP methods for which you want CloudFront to cache responses. Valid values are 2 (for caching responses to GET and HEAD requests) and 3 (for caching responses to GET, HEAD, and OPTIONS requests).", + "CloudFrontOriginAccessIdentityList$MaxItems": "The value you provided for the MaxItems request parameter.", + "CloudFrontOriginAccessIdentityList$Quantity": "The number of CloudFront origin access identities that were created by the current AWS account.", + "CookieNames$Quantity": "The number of whitelisted cookies for this cache behavior.", + "CustomErrorResponse$ErrorCode": "The 4xx or 5xx HTTP status code that you want to customize. For a list of HTTP status codes that you can customize, see CloudFront documentation.", + "CustomErrorResponses$Quantity": "The number of custom error responses for this distribution.", + "CustomOriginConfig$HTTPPort": "The HTTP port the custom origin listens on.", + "CustomOriginConfig$HTTPSPort": "The HTTPS port the custom origin listens on.", + "Distribution$InProgressInvalidationBatches": "The number of invalidation batches currently in progress.", + "DistributionList$MaxItems": "The value you provided for the MaxItems request parameter.", + "DistributionList$Quantity": "The number of distributions that were created by the current AWS account.", + "GeoRestriction$Quantity": "When geo restriction is enabled, this is the number of countries in your whitelist or blacklist. Otherwise, when it is not enabled, Quantity is 0, and you can omit Items.", + "Headers$Quantity": "The number of different headers that you want CloudFront to forward to the origin and to vary on for this cache behavior. The maximum number of headers that you can specify by name is 10. If you want CloudFront to forward all headers to the origin and vary on all of them, specify 1 for Quantity and * for Name. If you don't want CloudFront to forward any additional headers to the origin or to vary on any headers, specify 0 for Quantity and omit Items.", + "InvalidationList$MaxItems": "The value you provided for the MaxItems request parameter.", + "InvalidationList$Quantity": "The number of invalidation batches that were created by the current AWS account.", + "KeyPairIds$Quantity": "The number of active CloudFront key pairs for AwsAccountNumber.", + "Origins$Quantity": "The number of origins for this distribution.", + "Paths$Quantity": "The number of objects that you want to invalidate.", + "StreamingDistributionList$MaxItems": "The value you provided for the MaxItems request parameter.", + "StreamingDistributionList$Quantity": "The number of streaming distributions that were created by the current AWS account.", + "TrustedSigners$Quantity": "The number of trusted signers for this cache behavior." + } + }, + "long": { + "base": null, + "refs": { + "CacheBehavior$MinTTL": "The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront queries your origin to see whether the object has been updated.You can specify a value from 0 to 3,153,600,000 seconds (100 years).", + "CustomErrorResponse$ErrorCachingMinTTL": "The minimum amount of time you want HTTP error codes to stay in CloudFront caches before CloudFront queries your origin to see whether the object has been updated. You can specify a value from 0 to 31,536,000.", + "DefaultCacheBehavior$MinTTL": "The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront queries your origin to see whether the object has been updated.You can specify a value from 0 to 3,153,600,000 seconds (100 years)." + } + }, + "string": { + "base": null, + "refs": { + "AccessDenied$Message": null, + "AliasList$member": null, + "AwsAccountNumberList$member": null, + "BatchTooLarge$Message": null, + "CNAMEAlreadyExists$Message": null, + "CacheBehavior$PathPattern": "The pattern (for example, images/*.jpg) that specifies which requests you want this cache behavior to apply to. When CloudFront receives an end-user request, the requested path is compared with path patterns in the order in which cache behaviors are listed in the distribution. The path pattern for the default cache behavior is * and cannot be changed. If the request for an object does not match the path pattern for any cache behaviors, CloudFront applies the behavior in the default cache behavior.", + "CacheBehavior$TargetOriginId": "The value of ID for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.", + "CloudFrontOriginAccessIdentity$Id": "The ID for the origin access identity. For example: E74FTE3AJFJ256A.", + "CloudFrontOriginAccessIdentity$S3CanonicalUserId": "The Amazon S3 canonical user ID for the origin access identity, which you use when giving the origin access identity read permission to an object in Amazon S3.", + "CloudFrontOriginAccessIdentityAlreadyExists$Message": null, + "CloudFrontOriginAccessIdentityConfig$CallerReference": "A unique number that ensures the request can't be replayed. If the CallerReference is new (no matter the content of the CloudFrontOriginAccessIdentityConfig object), a new origin access identity is created. If the CallerReference is a value you already sent in a previous request to create an identity, and the content of the CloudFrontOriginAccessIdentityConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request. 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.", + "CloudFrontOriginAccessIdentityConfig$Comment": "Any comments you want to include about the origin access identity.", + "CloudFrontOriginAccessIdentityInUse$Message": null, + "CloudFrontOriginAccessIdentityList$Marker": "The value you provided for the Marker request parameter.", + "CloudFrontOriginAccessIdentityList$NextMarker": "If IsTruncated is true, this element is present and contains the value you can use for the Marker request parameter to continue listing your origin access identities where they left off.", + "CloudFrontOriginAccessIdentitySummary$Id": "The ID for the origin access identity. For example: E74FTE3AJFJ256A.", + "CloudFrontOriginAccessIdentitySummary$S3CanonicalUserId": "The Amazon S3 canonical user ID for the origin access identity, which you use when giving the origin access identity read permission to an object in Amazon S3.", + "CloudFrontOriginAccessIdentitySummary$Comment": "The comment for this origin access identity, as originally specified when created.", + "CookieNameList$member": null, + "CreateCloudFrontOriginAccessIdentityResult$Location": "The fully qualified URI of the new origin access identity just created. For example: https://cloudfront.amazonaws.com/2010-11-01/origin-access-identity/cloudfront/E74FTE3AJFJ256A.", + "CreateCloudFrontOriginAccessIdentityResult$ETag": "The current version of the origin access identity created.", + "CreateDistributionResult$Location": "The fully qualified URI of the new distribution resource just created. For example: https://cloudfront.amazonaws.com/2010-11-01/distribution/EDFDVBD632BHDS5.", + "CreateDistributionResult$ETag": "The current version of the distribution created.", + "CreateInvalidationRequest$DistributionId": "The distribution's id.", + "CreateInvalidationResult$Location": "The fully qualified URI of the distribution and invalidation batch request, including the Invalidation ID.", + "CreateStreamingDistributionResult$Location": "The fully qualified URI of the new streaming distribution resource just created. For example: https://cloudfront.amazonaws.com/2010-11-01/streaming-distribution/EGTXBD79H29TRA8.", + "CreateStreamingDistributionResult$ETag": "The current version of the streaming distribution created.", + "CustomErrorResponse$ResponsePagePath": "The path of the custom error page (for example, /custom_404.html). The path is relative to the distribution and must begin with a slash (/). If the path includes any non-ASCII characters or unsafe characters as defined in RFC 1783 (http://www.ietf.org/rfc/rfc1738.txt), URL encode those characters. Do not URL encode any other characters in the path, or CloudFront will not return the custom error page to the viewer.", + "CustomErrorResponse$ResponseCode": "The HTTP status code that you want CloudFront to return with the custom error page to the viewer. For a list of HTTP status codes that you can replace, see CloudFront Documentation.", + "DefaultCacheBehavior$TargetOriginId": "The value of ID for the origin that you want CloudFront to route requests to when a request matches the path pattern either for a cache behavior or for the default cache behavior.", + "DeleteCloudFrontOriginAccessIdentityRequest$Id": "The origin access identity's id.", + "DeleteCloudFrontOriginAccessIdentityRequest$IfMatch": "The value of the ETag header you received from a previous GET or PUT request. For example: E2QWRUHAPOMQZL.", + "DeleteDistributionRequest$Id": "The distribution id.", + "DeleteDistributionRequest$IfMatch": "The value of the ETag header you received when you disabled the distribution. For example: E2QWRUHAPOMQZL.", + "DeleteStreamingDistributionRequest$Id": "The distribution id.", + "DeleteStreamingDistributionRequest$IfMatch": "The value of the ETag header you received when you disabled the streaming distribution. For example: E2QWRUHAPOMQZL.", + "Distribution$Id": "The identifier for the distribution. For example: EDFDVBD632BHDS5.", + "Distribution$Status": "This response element indicates the current status of the distribution. When the status is Deployed, the distribution's information is fully propagated throughout the Amazon CloudFront system.", + "Distribution$DomainName": "The domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net.", + "DistributionAlreadyExists$Message": null, + "DistributionConfig$CallerReference": "A unique number that ensures the request can't be replayed. If the CallerReference is new (no matter the content of the DistributionConfig object), a new distribution is created. If the CallerReference is a value you already sent in a previous request to create a distribution, and the content of the DistributionConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request. If the CallerReference is a value you already sent in a previous request to create a distribution but the content of the DistributionConfig is different from the original request, CloudFront returns a DistributionAlreadyExists error.", + "DistributionConfig$DefaultRootObject": "The object that you want CloudFront to return (for example, index.html) when an end user requests the root URL for your distribution (http://www.example.com) instead of an object in your distribution (http://www.example.com/index.html). Specifying a default root object avoids exposing the contents of your distribution. If you don't want to specify a default root object when you create a distribution, include an empty DefaultRootObject element. To delete the default root object from an existing distribution, update the distribution configuration and include an empty DefaultRootObject element. To replace the default root object, update the distribution configuration and specify the new object.", + "DistributionConfig$Comment": "Any comments you want to include about the distribution.", + "DistributionList$Marker": "The value you provided for the Marker request parameter.", + "DistributionList$NextMarker": "If IsTruncated is true, this element is present and contains the value you can use for the Marker request parameter to continue listing your distributions where they left off.", + "DistributionNotDisabled$Message": null, + "DistributionSummary$Id": "The identifier for the distribution. For example: EDFDVBD632BHDS5.", + "DistributionSummary$Status": "This response element indicates the current status of the distribution. When the status is Deployed, the distribution's information is fully propagated throughout the Amazon CloudFront system.", + "DistributionSummary$DomainName": "The domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net.", + "DistributionSummary$Comment": "The comment originally specified when this distribution was created.", + "GetCloudFrontOriginAccessIdentityConfigRequest$Id": "The identity's id.", + "GetCloudFrontOriginAccessIdentityConfigResult$ETag": "The current version of the configuration. For example: E2QWRUHAPOMQZL.", + "GetCloudFrontOriginAccessIdentityRequest$Id": "The identity's id.", + "GetCloudFrontOriginAccessIdentityResult$ETag": "The current version of the origin access identity's information. For example: E2QWRUHAPOMQZL.", + "GetDistributionConfigRequest$Id": "The distribution's id.", + "GetDistributionConfigResult$ETag": "The current version of the configuration. For example: E2QWRUHAPOMQZL.", + "GetDistributionRequest$Id": "The distribution's id.", + "GetDistributionResult$ETag": "The current version of the distribution's information. For example: E2QWRUHAPOMQZL.", + "GetInvalidationRequest$DistributionId": "The distribution's id.", + "GetInvalidationRequest$Id": "The invalidation's id.", + "GetStreamingDistributionConfigRequest$Id": "The streaming distribution's id.", + "GetStreamingDistributionConfigResult$ETag": "The current version of the configuration. For example: E2QWRUHAPOMQZL.", + "GetStreamingDistributionRequest$Id": "The streaming distribution's id.", + "GetStreamingDistributionResult$ETag": "The current version of the streaming distribution's information. For example: E2QWRUHAPOMQZL.", + "HeaderList$member": null, + "IllegalUpdate$Message": null, + "InconsistentQuantities$Message": null, + "InvalidArgument$Message": null, + "InvalidDefaultRootObject$Message": null, + "InvalidErrorCode$Message": null, + "InvalidForwardCookies$Message": null, + "InvalidGeoRestrictionParameter$Message": null, + "InvalidHeadersForS3Origin$Message": null, + "InvalidIfMatchVersion$Message": null, + "InvalidLocationCode$Message": null, + "InvalidOrigin$Message": null, + "InvalidOriginAccessIdentity$Message": null, + "InvalidProtocolSettings$Message": null, + "InvalidRelativePath$Message": null, + "InvalidRequiredProtocol$Message": null, + "InvalidResponseCode$Message": null, + "InvalidViewerCertificate$Message": null, + "Invalidation$Id": "The identifier for the invalidation request. For example: IDFDVBD632BHDS5.", + "Invalidation$Status": "The status of the invalidation request. When the invalidation batch is finished, the status is Completed.", + "InvalidationBatch$CallerReference": "A unique name that ensures the request can't be replayed. If the CallerReference is new (no matter the content of the Path object), a new distribution is created. If the CallerReference is a value you already sent in a previous request to create an invalidation batch, and the content of each Path element is identical to the original request, the response includes the same information returned to the original request. If the CallerReference is a value you already sent in a previous request to create a distribution but the content of any Path is different from the original request, CloudFront returns an InvalidationBatchAlreadyExists error.", + "InvalidationList$Marker": "The value you provided for the Marker request parameter.", + "InvalidationList$NextMarker": "If IsTruncated is true, this element is present and contains the value you can use for the Marker request parameter to continue listing your invalidation batches where they left off.", + "InvalidationSummary$Id": "The unique ID for an invalidation request.", + "InvalidationSummary$Status": "The status of an invalidation request.", + "KeyPairIdList$member": null, + "ListCloudFrontOriginAccessIdentitiesRequest$Marker": "Use this when paginating results to indicate where to begin in your list of origin access identities. The results include identities in the list that occur after the marker. To get the next page of results, set the Marker to the value of the NextMarker from the current page's response (which is also the ID of the last identity on that page).", + "ListCloudFrontOriginAccessIdentitiesRequest$MaxItems": "The maximum number of origin access identities you want in the response body.", + "ListDistributionsRequest$Marker": "Use this when paginating results to indicate where to begin in your list of distributions. The results include distributions in the list that occur after the marker. To get the next page of results, set the Marker to the value of the NextMarker from the current page's response (which is also the ID of the last distribution on that page).", + "ListDistributionsRequest$MaxItems": "The maximum number of distributions you want in the response body.", + "ListInvalidationsRequest$DistributionId": "The distribution's id.", + "ListInvalidationsRequest$Marker": "Use this parameter when paginating results to indicate where to begin in your list of invalidation batches. Because the results are returned in decreasing order from most recent to oldest, the most recent results are on the first page, the second page will contain earlier results, and so on. To get the next page of results, set the Marker to the value of the NextMarker from the current page's response. This value is the same as the ID of the last invalidation batch on that page.", + "ListInvalidationsRequest$MaxItems": "The maximum number of invalidation batches you want in the response body.", + "ListStreamingDistributionsRequest$Marker": "Use this when paginating results to indicate where to begin in your list of streaming distributions. The results include distributions in the list that occur after the marker. To get the next page of results, set the Marker to the value of the NextMarker from the current page's response (which is also the ID of the last distribution on that page).", + "ListStreamingDistributionsRequest$MaxItems": "The maximum number of streaming distributions you want in the response body.", + "LocationList$member": null, + "LoggingConfig$Bucket": "The Amazon S3 bucket to store the access logs in, for example, myawslogbucket.s3.amazonaws.com.", + "LoggingConfig$Prefix": "An optional string that you want CloudFront to prefix to the access log filenames for this distribution, for example, myprefix/. If you want to enable logging, but you do not want to specify a prefix, you still must include an empty Prefix element in the Logging element.", + "MissingBody$Message": null, + "NoSuchCloudFrontOriginAccessIdentity$Message": null, + "NoSuchDistribution$Message": null, + "NoSuchInvalidation$Message": null, + "NoSuchOrigin$Message": null, + "NoSuchStreamingDistribution$Message": null, + "Origin$Id": "A unique identifier for the origin. The value of Id must be unique within the distribution. You use the value of Id when you create a cache behavior. The Id identifies the origin that CloudFront routes a request to when the request matches the path pattern for that cache behavior.", + "Origin$DomainName": "Amazon S3 origins: The DNS name of the Amazon S3 bucket from which you want CloudFront to get objects for this origin, for example, myawsbucket.s3.amazonaws.com. Custom origins: The DNS domain name for the HTTP server from which you want CloudFront to get objects for this origin, for example, www.example.com.", + "Origin$OriginPath": "An optional element that causes CloudFront to request your content from a directory in your Amazon S3 bucket or your custom origin. When you include the OriginPath element, specify the directory name, beginning with a /. CloudFront appends the directory name to the value of DomainName.", + "PathList$member": null, + "PreconditionFailed$Message": null, + "S3Origin$DomainName": "The DNS name of the S3 origin.", + "S3Origin$OriginAccessIdentity": "Your S3 origin's origin access identity.", + "S3OriginConfig$OriginAccessIdentity": "The CloudFront origin access identity to associate with the origin. Use an origin access identity to configure the origin so that end users can only access objects in an Amazon S3 bucket through CloudFront. If you want end users to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty OriginAccessIdentity element. To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty OriginAccessIdentity element. To replace the origin access identity, update the distribution configuration and specify the new origin access identity. Use the format origin-access-identity/cloudfront/Id where Id is the value that CloudFront returned in the Id element when you created the origin access identity.", + "Signer$AwsAccountNumber": "Specifies an AWS account that can create signed URLs. Values: self, which indicates that the AWS account that was used to create the distribution can created signed URLs, or an AWS account number. Omit the dashes in the account number.", + "StreamingDistribution$Id": "The identifier for the streaming distribution. For example: EGTXBD79H29TRA8.", + "StreamingDistribution$Status": "The current status of the streaming distribution. When the status is Deployed, the distribution's information is fully propagated throughout the Amazon CloudFront system.", + "StreamingDistribution$DomainName": "The domain name corresponding to the streaming distribution. For example: s5c39gqb8ow64r.cloudfront.net.", + "StreamingDistributionAlreadyExists$Message": null, + "StreamingDistributionConfig$CallerReference": "A unique number that ensures the request can't be replayed. If the CallerReference is new (no matter the content of the StreamingDistributionConfig object), a new streaming distribution is created. If the CallerReference is a value you already sent in a previous request to create a streaming distribution, and the content of the StreamingDistributionConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request. If the CallerReference is a value you already sent in a previous request to create a streaming distribution but the content of the StreamingDistributionConfig is different from the original request, CloudFront returns a DistributionAlreadyExists error.", + "StreamingDistributionConfig$Comment": "Any comments you want to include about the streaming distribution.", + "StreamingDistributionList$Marker": "The value you provided for the Marker request parameter.", + "StreamingDistributionList$NextMarker": "If IsTruncated is true, this element is present and contains the value you can use for the Marker request parameter to continue listing your streaming distributions where they left off.", + "StreamingDistributionNotDisabled$Message": null, + "StreamingDistributionSummary$Id": "The identifier for the distribution. For example: EDFDVBD632BHDS5.", + "StreamingDistributionSummary$Status": "Indicates the current status of the distribution. When the status is Deployed, the distribution's information is fully propagated throughout the Amazon CloudFront system.", + "StreamingDistributionSummary$DomainName": "The domain name corresponding to the distribution. For example: d604721fxaaqy9.cloudfront.net.", + "StreamingDistributionSummary$Comment": "The comment originally specified when this distribution was created.", + "StreamingLoggingConfig$Bucket": "The Amazon S3 bucket to store the access logs in, for example, myawslogbucket.s3.amazonaws.com.", + "StreamingLoggingConfig$Prefix": "An optional string that you want CloudFront to prefix to the access log filenames for this streaming distribution, for example, myprefix/. If you want to enable logging, but you do not want to specify a prefix, you still must include an empty Prefix element in the Logging element.", + "TooManyCacheBehaviors$Message": null, + "TooManyCertificates$Message": null, + "TooManyCloudFrontOriginAccessIdentities$Message": null, + "TooManyCookieNamesInWhiteList$Message": null, + "TooManyDistributionCNAMEs$Message": null, + "TooManyDistributions$Message": null, + "TooManyHeadersInForwardedValues$Message": null, + "TooManyInvalidationsInProgress$Message": null, + "TooManyOrigins$Message": null, + "TooManyStreamingDistributionCNAMEs$Message": null, + "TooManyStreamingDistributions$Message": null, + "TooManyTrustedSigners$Message": null, + "TrustedSignerDoesNotExist$Message": null, + "UpdateCloudFrontOriginAccessIdentityRequest$Id": "The identity's id.", + "UpdateCloudFrontOriginAccessIdentityRequest$IfMatch": "The value of the ETag header you received when retrieving the identity's configuration. For example: E2QWRUHAPOMQZL.", + "UpdateCloudFrontOriginAccessIdentityResult$ETag": "The current version of the configuration. For example: E2QWRUHAPOMQZL.", + "UpdateDistributionRequest$Id": "The distribution's id.", + "UpdateDistributionRequest$IfMatch": "The value of the ETag header you received when retrieving the distribution's configuration. For example: E2QWRUHAPOMQZL.", + "UpdateDistributionResult$ETag": "The current version of the configuration. For example: E2QWRUHAPOMQZL.", + "UpdateStreamingDistributionRequest$Id": "The streaming distribution's id.", + "UpdateStreamingDistributionRequest$IfMatch": "The value of the ETag header you received when retrieving the streaming distribution's configuration. For example: E2QWRUHAPOMQZL.", + "UpdateStreamingDistributionResult$ETag": "The current version of the configuration. For example: E2QWRUHAPOMQZL.", + "ViewerCertificate$IAMCertificateId": "If you want viewers to use HTTPS to request your objects and you're using an alternate domain name in your object URLs (for example, https://example.com/logo.jpg), specify the IAM certificate identifier of the custom viewer certificate for this distribution. Specify either this value or CloudFrontDefaultCertificate." + } + }, + "timestamp": { + "base": null, + "refs": { + "Distribution$LastModifiedTime": "The date and time the distribution was last modified.", + "DistributionSummary$LastModifiedTime": "The date and time the distribution was last modified.", + "Invalidation$CreateTime": "The date and time the invalidation request was first made.", + "InvalidationSummary$CreateTime": null, + "StreamingDistribution$LastModifiedTime": "The date and time the distribution was last modified.", + "StreamingDistributionSummary$LastModifiedTime": "The date and time the distribution was last modified." + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/cloudfront/2014-11-06/paginators-1.json b/lib/aws-sdk/Aws/data/cloudfront/2014-11-06/paginators-1.json new file mode 100644 index 0000000..51fbb90 --- /dev/null +++ b/lib/aws-sdk/Aws/data/cloudfront/2014-11-06/paginators-1.json @@ -0,0 +1,32 @@ +{ + "pagination": { + "ListCloudFrontOriginAccessIdentities": { + "input_token": "Marker", + "output_token": "CloudFrontOriginAccessIdentityList.NextMarker", + "limit_key": "MaxItems", + "more_results": "CloudFrontOriginAccessIdentityList.IsTruncated", + "result_key": "CloudFrontOriginAccessIdentityList.Items" + }, + "ListDistributions": { + "input_token": "Marker", + "output_token": "DistributionList.NextMarker", + "limit_key": "MaxItems", + "more_results": "DistributionList.IsTruncated", + "result_key": "DistributionList.Items" + }, + "ListInvalidations": { + "input_token": "Marker", + "output_token": "InvalidationList.NextMarker", + "limit_key": "MaxItems", + "more_results": "InvalidationList.IsTruncated", + "result_key": "InvalidationList.Items" + }, + "ListStreamingDistributions": { + "input_token": "Marker", + "output_token": "StreamingDistributionList.NextMarker", + "limit_key": "MaxItems", + "more_results": "StreamingDistributionList.IsTruncated", + "result_key": "StreamingDistributionList.Items" + } + } +} diff --git a/lib/aws-sdk/Aws/data/cloudfront/2014-11-06/waiters-2.json b/lib/aws-sdk/Aws/data/cloudfront/2014-11-06/waiters-2.json new file mode 100644 index 0000000..edd74b2 --- /dev/null +++ b/lib/aws-sdk/Aws/data/cloudfront/2014-11-06/waiters-2.json @@ -0,0 +1,47 @@ +{ + "version": 2, + "waiters": { + "DistributionDeployed": { + "delay": 60, + "operation": "GetDistribution", + "maxAttempts": 25, + "description": "Wait until a distribution is deployed.", + "acceptors": [ + { + "expected": "Deployed", + "matcher": "path", + "state": "success", + "argument": "Distribution.Status" + } + ] + }, + "InvalidationCompleted": { + "delay": 20, + "operation": "GetInvalidation", + "maxAttempts": 30, + "description": "Wait until an invalidation has completed.", + "acceptors": [ + { + "expected": "Completed", + "matcher": "path", + "state": "success", + "argument": "Invalidation.Status" + } + ] + }, + "StreamingDistributionDeployed": { + "delay": 60, + "operation": "GetStreamingDistribution", + "maxAttempts": 25, + "description": "Wait until a streaming distribution is deployed.", + "acceptors": [ + { + "expected": "Deployed", + "matcher": "path", + "state": "success", + "argument": "StreamingDistribution.Status" + } + ] + } + } +} diff --git a/lib/aws-sdk/Aws/data/cloudhsm/2014-05-30/api-2.json b/lib/aws-sdk/Aws/data/cloudhsm/2014-05-30/api-2.json new file mode 100644 index 0000000..3df5d76 --- /dev/null +++ b/lib/aws-sdk/Aws/data/cloudhsm/2014-05-30/api-2.json @@ -0,0 +1,928 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2014-05-30", + "endpointPrefix":"cloudhsm", + "jsonVersion":"1.1", + "serviceAbbreviation":"CloudHSM", + "serviceFullName":"Amazon CloudHSM", + "signatureVersion":"v4", + "targetPrefix":"CloudHsmFrontendService", + "protocol":"json" + }, + "operations":{ + "CreateHapg":{ + "name":"CreateHapg", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateHapgRequest"}, + "output":{"shape":"CreateHapgResponse"}, + "errors":[ + { + "shape":"CloudHsmServiceException", + "exception":true + }, + { + "shape":"CloudHsmInternalException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "CreateHsm":{ + "name":"CreateHsm", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{ + "shape":"CreateHsmRequest", + "locationName":"CreateHsmRequest" + }, + "output":{"shape":"CreateHsmResponse"}, + "errors":[ + { + "shape":"CloudHsmServiceException", + "exception":true + }, + { + "shape":"CloudHsmInternalException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "CreateLunaClient":{ + "name":"CreateLunaClient", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateLunaClientRequest"}, + "output":{"shape":"CreateLunaClientResponse"}, + "errors":[ + { + "shape":"CloudHsmServiceException", + "exception":true + }, + { + "shape":"CloudHsmInternalException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "DeleteHapg":{ + "name":"DeleteHapg", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteHapgRequest"}, + "output":{"shape":"DeleteHapgResponse"}, + "errors":[ + { + "shape":"CloudHsmServiceException", + "exception":true + }, + { + "shape":"CloudHsmInternalException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "DeleteHsm":{ + "name":"DeleteHsm", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{ + "shape":"DeleteHsmRequest", + "locationName":"DeleteHsmRequest" + }, + "output":{"shape":"DeleteHsmResponse"}, + "errors":[ + { + "shape":"CloudHsmServiceException", + "exception":true + }, + { + "shape":"CloudHsmInternalException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "DeleteLunaClient":{ + "name":"DeleteLunaClient", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteLunaClientRequest"}, + "output":{"shape":"DeleteLunaClientResponse"}, + "errors":[ + { + "shape":"CloudHsmServiceException", + "exception":true + }, + { + "shape":"CloudHsmInternalException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "DescribeHapg":{ + "name":"DescribeHapg", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeHapgRequest"}, + "output":{"shape":"DescribeHapgResponse"}, + "errors":[ + { + "shape":"CloudHsmServiceException", + "exception":true + }, + { + "shape":"CloudHsmInternalException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "DescribeHsm":{ + "name":"DescribeHsm", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeHsmRequest"}, + "output":{"shape":"DescribeHsmResponse"}, + "errors":[ + { + "shape":"CloudHsmServiceException", + "exception":true + }, + { + "shape":"CloudHsmInternalException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "DescribeLunaClient":{ + "name":"DescribeLunaClient", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeLunaClientRequest"}, + "output":{"shape":"DescribeLunaClientResponse"}, + "errors":[ + { + "shape":"CloudHsmServiceException", + "exception":true + }, + { + "shape":"CloudHsmInternalException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "GetConfig":{ + "name":"GetConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetConfigRequest"}, + "output":{"shape":"GetConfigResponse"}, + "errors":[ + { + "shape":"CloudHsmServiceException", + "exception":true + }, + { + "shape":"CloudHsmInternalException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "ListAvailableZones":{ + "name":"ListAvailableZones", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListAvailableZonesRequest"}, + "output":{"shape":"ListAvailableZonesResponse"}, + "errors":[ + { + "shape":"CloudHsmServiceException", + "exception":true + }, + { + "shape":"CloudHsmInternalException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "ListHapgs":{ + "name":"ListHapgs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListHapgsRequest"}, + "output":{"shape":"ListHapgsResponse"}, + "errors":[ + { + "shape":"CloudHsmServiceException", + "exception":true + }, + { + "shape":"CloudHsmInternalException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "ListHsms":{ + "name":"ListHsms", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListHsmsRequest"}, + "output":{"shape":"ListHsmsResponse"}, + "errors":[ + { + "shape":"CloudHsmServiceException", + "exception":true + }, + { + "shape":"CloudHsmInternalException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "ListLunaClients":{ + "name":"ListLunaClients", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListLunaClientsRequest"}, + "output":{"shape":"ListLunaClientsResponse"}, + "errors":[ + { + "shape":"CloudHsmServiceException", + "exception":true + }, + { + "shape":"CloudHsmInternalException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "ModifyHapg":{ + "name":"ModifyHapg", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyHapgRequest"}, + "output":{"shape":"ModifyHapgResponse"}, + "errors":[ + { + "shape":"CloudHsmServiceException", + "exception":true + }, + { + "shape":"CloudHsmInternalException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "ModifyHsm":{ + "name":"ModifyHsm", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{ + "shape":"ModifyHsmRequest", + "locationName":"ModifyHsmRequest" + }, + "output":{"shape":"ModifyHsmResponse"}, + "errors":[ + { + "shape":"CloudHsmServiceException", + "exception":true + }, + { + "shape":"CloudHsmInternalException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "ModifyLunaClient":{ + "name":"ModifyLunaClient", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyLunaClientRequest"}, + "output":{"shape":"ModifyLunaClientResponse"}, + "errors":[ + { + "shape":"CloudHsmServiceException", + "exception":true + } + ] + } + }, + "shapes":{ + "AZ":{ + "type":"string", + "pattern":"[a-zA-Z0-9\\-]*" + }, + "AZList":{ + "type":"list", + "member":{"shape":"AZ"} + }, + "Boolean":{"type":"boolean"}, + "Certificate":{ + "type":"string", + "min":600, + "max":2400, + "pattern":"[\\w :+=./\\n-]*" + }, + "CertificateFingerprint":{ + "type":"string", + "pattern":"([0-9a-fA-F][0-9a-fA-F]:){15}[0-9a-fA-F][0-9a-fA-F]" + }, + "ClientArn":{ + "type":"string", + "pattern":"arn:aws(-iso)?:cloudhsm:[a-zA-Z0-9\\-]*:[0-9]{12}:client-[0-9a-f]{8}" + }, + "ClientLabel":{ + "type":"string", + "pattern":"[a-zA-Z0-9_.-]{2,64}" + }, + "ClientList":{ + "type":"list", + "member":{"shape":"ClientArn"} + }, + "ClientToken":{ + "type":"string", + "pattern":"[a-zA-Z0-9]{1,64}" + }, + "ClientVersion":{ + "type":"string", + "enum":[ + "5.1", + "5.3" + ] + }, + "CloudHsmInternalException":{ + "type":"structure", + "members":{ + }, + "exception":true, + "fault":true + }, + "CloudHsmObjectState":{ + "type":"string", + "enum":[ + "READY", + "UPDATING", + "DEGRADED" + ] + }, + "CloudHsmServiceException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"}, + "retryable":{"shape":"Boolean"} + }, + "exception":true + }, + "CreateHapgRequest":{ + "type":"structure", + "required":["Label"], + "members":{ + "Label":{"shape":"Label"} + } + }, + "CreateHapgResponse":{ + "type":"structure", + "members":{ + "HapgArn":{"shape":"HapgArn"} + } + }, + "CreateHsmRequest":{ + "type":"structure", + "required":[ + "SubnetId", + "SshKey", + "IamRoleArn", + "SubscriptionType" + ], + "members":{ + "SubnetId":{ + "shape":"SubnetId", + "locationName":"SubnetId" + }, + "SshKey":{ + "shape":"SshKey", + "locationName":"SshKey" + }, + "EniIp":{ + "shape":"IpAddress", + "locationName":"EniIp" + }, + "IamRoleArn":{ + "shape":"IamRoleArn", + "locationName":"IamRoleArn" + }, + "ExternalId":{ + "shape":"ExternalId", + "locationName":"ExternalId" + }, + "SubscriptionType":{ + "shape":"SubscriptionType", + "locationName":"SubscriptionType" + }, + "ClientToken":{ + "shape":"ClientToken", + "locationName":"ClientToken" + }, + "SyslogIp":{ + "shape":"IpAddress", + "locationName":"SyslogIp" + } + }, + "locationName":"CreateHsmRequest" + }, + "CreateHsmResponse":{ + "type":"structure", + "members":{ + "HsmArn":{"shape":"HsmArn"} + } + }, + "CreateLunaClientRequest":{ + "type":"structure", + "required":["Certificate"], + "members":{ + "Label":{"shape":"ClientLabel"}, + "Certificate":{"shape":"Certificate"} + } + }, + "CreateLunaClientResponse":{ + "type":"structure", + "members":{ + "ClientArn":{"shape":"ClientArn"} + } + }, + "DeleteHapgRequest":{ + "type":"structure", + "required":["HapgArn"], + "members":{ + "HapgArn":{"shape":"HapgArn"} + } + }, + "DeleteHapgResponse":{ + "type":"structure", + "required":["Status"], + "members":{ + "Status":{"shape":"String"} + } + }, + "DeleteHsmRequest":{ + "type":"structure", + "required":["HsmArn"], + "members":{ + "HsmArn":{ + "shape":"HsmArn", + "locationName":"HsmArn" + } + }, + "locationName":"DeleteHsmRequest" + }, + "DeleteHsmResponse":{ + "type":"structure", + "required":["Status"], + "members":{ + "Status":{"shape":"String"} + } + }, + "DeleteLunaClientRequest":{ + "type":"structure", + "required":["ClientArn"], + "members":{ + "ClientArn":{"shape":"ClientArn"} + } + }, + "DeleteLunaClientResponse":{ + "type":"structure", + "required":["Status"], + "members":{ + "Status":{"shape":"String"} + } + }, + "DescribeHapgRequest":{ + "type":"structure", + "required":["HapgArn"], + "members":{ + "HapgArn":{"shape":"HapgArn"} + } + }, + "DescribeHapgResponse":{ + "type":"structure", + "members":{ + "HapgArn":{"shape":"HapgArn"}, + "HapgSerial":{"shape":"String"}, + "HsmsLastActionFailed":{"shape":"HsmList"}, + "HsmsPendingDeletion":{"shape":"HsmList"}, + "HsmsPendingRegistration":{"shape":"HsmList"}, + "Label":{"shape":"Label"}, + "LastModifiedTimestamp":{"shape":"Timestamp"}, + "PartitionSerialList":{"shape":"PartitionSerialList"}, + "State":{"shape":"CloudHsmObjectState"} + } + }, + "DescribeHsmRequest":{ + "type":"structure", + "members":{ + "HsmArn":{"shape":"HsmArn"}, + "HsmSerialNumber":{"shape":"HsmSerialNumber"} + } + }, + "DescribeHsmResponse":{ + "type":"structure", + "members":{ + "HsmArn":{"shape":"HsmArn"}, + "Status":{"shape":"HsmStatus"}, + "StatusDetails":{"shape":"String"}, + "AvailabilityZone":{"shape":"AZ"}, + "EniId":{"shape":"EniId"}, + "EniIp":{"shape":"IpAddress"}, + "SubscriptionType":{"shape":"SubscriptionType"}, + "SubscriptionStartDate":{"shape":"Timestamp"}, + "SubscriptionEndDate":{"shape":"Timestamp"}, + "VpcId":{"shape":"VpcId"}, + "SubnetId":{"shape":"SubnetId"}, + "IamRoleArn":{"shape":"IamRoleArn"}, + "SerialNumber":{"shape":"HsmSerialNumber"}, + "VendorName":{"shape":"String"}, + "HsmType":{"shape":"String"}, + "SoftwareVersion":{"shape":"String"}, + "SshPublicKey":{"shape":"SshKey"}, + "SshKeyLastUpdated":{"shape":"Timestamp"}, + "ServerCertUri":{"shape":"String"}, + "ServerCertLastUpdated":{"shape":"Timestamp"}, + "Partitions":{"shape":"PartitionList"} + } + }, + "DescribeLunaClientRequest":{ + "type":"structure", + "members":{ + "ClientArn":{"shape":"ClientArn"}, + "CertificateFingerprint":{"shape":"CertificateFingerprint"} + } + }, + "DescribeLunaClientResponse":{ + "type":"structure", + "members":{ + "ClientArn":{"shape":"ClientArn"}, + "Certificate":{"shape":"Certificate"}, + "CertificateFingerprint":{"shape":"CertificateFingerprint"}, + "LastModifiedTimestamp":{"shape":"Timestamp"}, + "Label":{"shape":"Label"} + } + }, + "EniId":{ + "type":"string", + "pattern":"eni-[0-9a-f]{8}" + }, + "ExternalId":{ + "type":"string", + "pattern":"[\\w :+=./-]*" + }, + "GetConfigRequest":{ + "type":"structure", + "required":[ + "ClientArn", + "ClientVersion", + "HapgList" + ], + "members":{ + "ClientArn":{"shape":"ClientArn"}, + "ClientVersion":{"shape":"ClientVersion"}, + "HapgList":{"shape":"HapgList"} + } + }, + "GetConfigResponse":{ + "type":"structure", + "members":{ + "ConfigType":{"shape":"String"}, + "ConfigFile":{"shape":"String"}, + "ConfigCred":{"shape":"String"} + } + }, + "HapgArn":{ + "type":"string", + "pattern":"arn:aws(-iso)?:cloudhsm:[a-zA-Z0-9\\-]*:[0-9]{12}:hapg-[0-9a-f]{8}" + }, + "HapgList":{ + "type":"list", + "member":{"shape":"HapgArn"} + }, + "HsmArn":{ + "type":"string", + "pattern":"arn:aws(-iso)?:cloudhsm:[a-zA-Z0-9\\-]*:[0-9]{12}:hsm-[0-9a-f]{8}" + }, + "HsmList":{ + "type":"list", + "member":{"shape":"HsmArn"} + }, + "HsmSerialNumber":{ + "type":"string", + "pattern":"\\d{1,16}" + }, + "HsmStatus":{ + "type":"string", + "enum":[ + "PENDING", + "RUNNING", + "UPDATING", + "SUSPENDED", + "TERMINATING", + "TERMINATED", + "DEGRADED" + ] + }, + "IamRoleArn":{ + "type":"string", + "pattern":"arn:aws(-iso)?:iam::[0-9]{12}:role/[a-zA-Z0-9_\\+=,\\.\\-@]{1,64}" + }, + "InvalidRequestException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "IpAddress":{ + "type":"string", + "pattern":"\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}" + }, + "Label":{ + "type":"string", + "pattern":"[a-zA-Z0-9_.-]{1,64}" + }, + "ListAvailableZonesRequest":{ + "type":"structure", + "members":{ + } + }, + "ListAvailableZonesResponse":{ + "type":"structure", + "members":{ + "AZList":{"shape":"AZList"} + } + }, + "ListHapgsRequest":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"PaginationToken"} + } + }, + "ListHapgsResponse":{ + "type":"structure", + "required":["HapgList"], + "members":{ + "HapgList":{"shape":"HapgList"}, + "NextToken":{"shape":"PaginationToken"} + } + }, + "ListHsmsRequest":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"PaginationToken"} + } + }, + "ListHsmsResponse":{ + "type":"structure", + "members":{ + "HsmList":{"shape":"HsmList"}, + "NextToken":{"shape":"PaginationToken"} + } + }, + "ListLunaClientsRequest":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"PaginationToken"} + } + }, + "ListLunaClientsResponse":{ + "type":"structure", + "required":["ClientList"], + "members":{ + "ClientList":{"shape":"ClientList"}, + "NextToken":{"shape":"PaginationToken"} + } + }, + "ModifyHapgRequest":{ + "type":"structure", + "required":["HapgArn"], + "members":{ + "HapgArn":{"shape":"HapgArn"}, + "Label":{"shape":"Label"}, + "PartitionSerialList":{"shape":"PartitionSerialList"} + } + }, + "ModifyHapgResponse":{ + "type":"structure", + "members":{ + "HapgArn":{"shape":"HapgArn"} + } + }, + "ModifyHsmRequest":{ + "type":"structure", + "required":["HsmArn"], + "members":{ + "HsmArn":{ + "shape":"HsmArn", + "locationName":"HsmArn" + }, + "SubnetId":{ + "shape":"SubnetId", + "locationName":"SubnetId" + }, + "EniIp":{ + "shape":"IpAddress", + "locationName":"EniIp" + }, + "IamRoleArn":{ + "shape":"IamRoleArn", + "locationName":"IamRoleArn" + }, + "ExternalId":{ + "shape":"ExternalId", + "locationName":"ExternalId" + }, + "SyslogIp":{ + "shape":"IpAddress", + "locationName":"SyslogIp" + } + }, + "locationName":"ModifyHsmRequest" + }, + "ModifyHsmResponse":{ + "type":"structure", + "members":{ + "HsmArn":{"shape":"HsmArn"} + } + }, + "ModifyLunaClientRequest":{ + "type":"structure", + "required":[ + "ClientArn", + "Certificate" + ], + "members":{ + "ClientArn":{"shape":"ClientArn"}, + "Certificate":{"shape":"Certificate"} + } + }, + "ModifyLunaClientResponse":{ + "type":"structure", + "members":{ + "ClientArn":{"shape":"ClientArn"} + } + }, + "PaginationToken":{ + "type":"string", + "pattern":"[a-zA-Z0-9+/]*" + }, + "PartitionArn":{ + "type":"string", + "pattern":"arn:aws(-iso)?:cloudhsm:[a-zA-Z0-9\\-]*:[0-9]{12}:hsm-[0-9a-f]{8}/partition-[0-9]{6,12}" + }, + "PartitionList":{ + "type":"list", + "member":{"shape":"PartitionArn"} + }, + "PartitionSerial":{ + "type":"string", + "pattern":"\\d{9}" + }, + "PartitionSerialList":{ + "type":"list", + "member":{"shape":"PartitionSerial"} + }, + "SshKey":{ + "type":"string", + "pattern":"[a-zA-Z0-9+/= ._:\\\\@-]*" + }, + "String":{ + "type":"string", + "pattern":"[\\w :+=./\\\\-]*" + }, + "SubnetId":{ + "type":"string", + "pattern":"subnet-[0-9a-f]{8}" + }, + "SubscriptionType":{ + "type":"string", + "enum":["PRODUCTION"] + }, + "Timestamp":{ + "type":"string", + "pattern":"\\d*" + }, + "VpcId":{ + "type":"string", + "pattern":"vpc-[0-9a-f]{8}" + } + } +} diff --git a/lib/aws-sdk/Aws/data/cloudhsm/2014-05-30/docs-2.json b/lib/aws-sdk/Aws/data/cloudhsm/2014-05-30/docs-2.json new file mode 100644 index 0000000..05d3b5f --- /dev/null +++ b/lib/aws-sdk/Aws/data/cloudhsm/2014-05-30/docs-2.json @@ -0,0 +1,473 @@ +{ + "version": "2.0", + "operations": { + "CreateHapg": "

Creates a high-availability partition group. A high-availability partition group is a group of partitions that spans multiple physical HSMs.

", + "CreateHsm": "

Creates an uninitialized HSM instance.

There is an upfront fee charged for each HSM instance that you create with the CreateHsm operation. If you accidentally provision an HSM and want to request a refund, delete the instance using the DeleteHsm operation, go to the AWS Support Center, create a new case, and select Account and Billing Support.

It can take up to 20 minutes to create and provision an HSM. You can monitor the status of the HSM with the DescribeHsm operation. The HSM is ready to be initialized when the status changes to RUNNING.

", + "CreateLunaClient": "

Creates an HSM client.

", + "DeleteHapg": "

Deletes a high-availability partition group.

", + "DeleteHsm": "

Deletes an HSM. After completion, this operation cannot be undone and your key material cannot be recovered.

", + "DeleteLunaClient": "

Deletes a client.

", + "DescribeHapg": "

Retrieves information about a high-availability partition group.

", + "DescribeHsm": "

Retrieves information about an HSM. You can identify the HSM by its ARN or its serial number.

", + "DescribeLunaClient": "

Retrieves information about an HSM client.

", + "GetConfig": "

Gets the configuration files necessary to connect to all high availability partition groups the client is associated with.

", + "ListAvailableZones": "

Lists the Availability Zones that have available AWS CloudHSM capacity.

", + "ListHapgs": "

Lists the high-availability partition groups for the account.

This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListHapgs to retrieve the next set of items.

", + "ListHsms": "

Retrieves the identifiers of all of the HSMs provisioned for the current customer.

This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListHsms to retrieve the next set of items.

", + "ListLunaClients": "

Lists all of the clients.

This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListLunaClients to retrieve the next set of items.

", + "ModifyHapg": "

Modifies an existing high-availability partition group.

", + "ModifyHsm": "

Modifies an HSM.

This operation can result in the HSM being offline for up to 15 minutes while the AWS CloudHSM service is reconfigured. If you are modifying a production HSM, you should ensure that your AWS CloudHSM service is configured for high availability, and consider executing this operation during a maintenance window.

", + "ModifyLunaClient": "

Modifies the certificate used by the client.

This action can potentially start a workflow to install the new certificate on the client's HSMs.

" + }, + "service": "AWS CloudHSM Service", + "shapes": { + "AZ": { + "base": null, + "refs": { + "AZList$member": null, + "DescribeHsmResponse$AvailabilityZone": "

The Availability Zone that the HSM is in.

" + } + }, + "AZList": { + "base": null, + "refs": { + "ListAvailableZonesResponse$AZList": "

The list of Availability Zones that have available AWS CloudHSM capacity.

" + } + }, + "Boolean": { + "base": null, + "refs": { + "CloudHsmServiceException$retryable": "

Indicates if the action can be retried.

" + } + }, + "Certificate": { + "base": null, + "refs": { + "CreateLunaClientRequest$Certificate": "

The contents of a Base64-Encoded X.509 v3 certificate to be installed on the HSMs used by this client.

", + "DescribeLunaClientResponse$Certificate": "

The certificate installed on the HSMs used by this client.

", + "ModifyLunaClientRequest$Certificate": "

The new certificate for the client.

" + } + }, + "CertificateFingerprint": { + "base": null, + "refs": { + "DescribeLunaClientRequest$CertificateFingerprint": "

The certificate fingerprint.

", + "DescribeLunaClientResponse$CertificateFingerprint": "

The certificate fingerprint.

" + } + }, + "ClientArn": { + "base": null, + "refs": { + "ClientList$member": null, + "CreateLunaClientResponse$ClientArn": "

The ARN of the client.

", + "DeleteLunaClientRequest$ClientArn": "

The ARN of the client to delete.

", + "DescribeLunaClientRequest$ClientArn": "

The ARN of the client.

", + "DescribeLunaClientResponse$ClientArn": "

The ARN of the client.

", + "GetConfigRequest$ClientArn": "

The ARN of the client.

", + "ModifyLunaClientRequest$ClientArn": "

The ARN of the client.

", + "ModifyLunaClientResponse$ClientArn": "

The ARN of the client.

" + } + }, + "ClientLabel": { + "base": null, + "refs": { + "CreateLunaClientRequest$Label": "

The label for the client.

" + } + }, + "ClientList": { + "base": null, + "refs": { + "ListLunaClientsResponse$ClientList": "

The list of clients.

" + } + }, + "ClientToken": { + "base": null, + "refs": { + "CreateHsmRequest$ClientToken": "

A user-defined token to ensure idempotence. Subsequent calls to this operation with the same token will be ignored.

" + } + }, + "ClientVersion": { + "base": null, + "refs": { + "GetConfigRequest$ClientVersion": "

The client version.

" + } + }, + "CloudHsmInternalException": { + "base": "

Indicates that an internal error occurred.

", + "refs": { + } + }, + "CloudHsmObjectState": { + "base": null, + "refs": { + "DescribeHapgResponse$State": "

The state of the high-availability partition group.

" + } + }, + "CloudHsmServiceException": { + "base": "

Indicates that an exception occurred in the AWS CloudHSM service.

", + "refs": { + } + }, + "CreateHapgRequest": { + "base": "

Contains the inputs for the CreateHapgRequest action.

", + "refs": { + } + }, + "CreateHapgResponse": { + "base": "

Contains the output of the CreateHAPartitionGroup action.

", + "refs": { + } + }, + "CreateHsmRequest": { + "base": "

Contains the inputs for the CreateHsm operation.

", + "refs": { + } + }, + "CreateHsmResponse": { + "base": "

Contains the output of the CreateHsm operation.

", + "refs": { + } + }, + "CreateLunaClientRequest": { + "base": "

Contains the inputs for the CreateLunaClient action.

", + "refs": { + } + }, + "CreateLunaClientResponse": { + "base": "

Contains the output of the CreateLunaClient action.

", + "refs": { + } + }, + "DeleteHapgRequest": { + "base": "

Contains the inputs for the DeleteHapg action.

", + "refs": { + } + }, + "DeleteHapgResponse": { + "base": "

Contains the output of the DeleteHapg action.

", + "refs": { + } + }, + "DeleteHsmRequest": { + "base": "

Contains the inputs for the DeleteHsm operation.

", + "refs": { + } + }, + "DeleteHsmResponse": { + "base": "

Contains the output of the DeleteHsm operation.

", + "refs": { + } + }, + "DeleteLunaClientRequest": { + "base": null, + "refs": { + } + }, + "DeleteLunaClientResponse": { + "base": null, + "refs": { + } + }, + "DescribeHapgRequest": { + "base": "

Contains the inputs for the DescribeHapg action.

", + "refs": { + } + }, + "DescribeHapgResponse": { + "base": "

Contains the output of the DescribeHapg action.

", + "refs": { + } + }, + "DescribeHsmRequest": { + "base": "

Contains the inputs for the DescribeHsm operation.

", + "refs": { + } + }, + "DescribeHsmResponse": { + "base": "

Contains the output of the DescribeHsm operation.

", + "refs": { + } + }, + "DescribeLunaClientRequest": { + "base": null, + "refs": { + } + }, + "DescribeLunaClientResponse": { + "base": null, + "refs": { + } + }, + "EniId": { + "base": null, + "refs": { + "DescribeHsmResponse$EniId": "

The identifier of the elastic network interface (ENI) attached to the HSM.

" + } + }, + "ExternalId": { + "base": null, + "refs": { + "CreateHsmRequest$ExternalId": "

The external ID from IamRoleArn, if present.

", + "ModifyHsmRequest$ExternalId": "

The new external ID.

" + } + }, + "GetConfigRequest": { + "base": null, + "refs": { + } + }, + "GetConfigResponse": { + "base": null, + "refs": { + } + }, + "HapgArn": { + "base": null, + "refs": { + "CreateHapgResponse$HapgArn": "

The ARN of the high-availability partition group.

", + "DeleteHapgRequest$HapgArn": "

The ARN of the high-availability partition group to delete.

", + "DescribeHapgRequest$HapgArn": "

The ARN of the high-availability partition group to describe.

", + "DescribeHapgResponse$HapgArn": "

The ARN of the high-availability partition group.

", + "HapgList$member": null, + "ModifyHapgRequest$HapgArn": "

The ARN of the high-availability partition group to modify.

", + "ModifyHapgResponse$HapgArn": "

The ARN of the high-availability partition group.

" + } + }, + "HapgList": { + "base": null, + "refs": { + "GetConfigRequest$HapgList": "

A list of ARNs that identify the high-availability partition groups that are associated with the client.

", + "ListHapgsResponse$HapgList": "

The list of high-availability partition groups.

" + } + }, + "HsmArn": { + "base": "

An ARN that identifies an HSM.

", + "refs": { + "CreateHsmResponse$HsmArn": "

The ARN of the HSM.

", + "DeleteHsmRequest$HsmArn": "

The ARN of the HSM to delete.

", + "DescribeHsmRequest$HsmArn": "

The ARN of the HSM. Either the HsmArn or the SerialNumber parameter must be specified.

", + "DescribeHsmResponse$HsmArn": "

The ARN of the HSM.

", + "HsmList$member": null, + "ModifyHsmRequest$HsmArn": "

The ARN of the HSM to modify.

", + "ModifyHsmResponse$HsmArn": "

The ARN of the HSM.

" + } + }, + "HsmList": { + "base": "

Contains a list of ARNs that identify the HSMs.

", + "refs": { + "DescribeHapgResponse$HsmsLastActionFailed": null, + "DescribeHapgResponse$HsmsPendingDeletion": null, + "DescribeHapgResponse$HsmsPendingRegistration": null, + "ListHsmsResponse$HsmList": "

The list of ARNs that identify the HSMs.

" + } + }, + "HsmSerialNumber": { + "base": null, + "refs": { + "DescribeHsmRequest$HsmSerialNumber": "

The serial number of the HSM. Either the HsmArn or the HsmSerialNumber parameter must be specified.

", + "DescribeHsmResponse$SerialNumber": "

The serial number of the HSM.

" + } + }, + "HsmStatus": { + "base": null, + "refs": { + "DescribeHsmResponse$Status": "

The status of the HSM.

" + } + }, + "IamRoleArn": { + "base": null, + "refs": { + "CreateHsmRequest$IamRoleArn": "

The ARN of an IAM role to enable the AWS CloudHSM service to allocate an ENI on your behalf.

", + "DescribeHsmResponse$IamRoleArn": "

The ARN of the IAM role assigned to the HSM.

", + "ModifyHsmRequest$IamRoleArn": "

The new IAM role ARN.

" + } + }, + "InvalidRequestException": { + "base": "

Indicates that one or more of the request parameters are not valid.

", + "refs": { + } + }, + "IpAddress": { + "base": null, + "refs": { + "CreateHsmRequest$EniIp": "

The IP address to assign to the HSM's ENI.

If an IP address is not specified, an IP address will be randomly chosen from the CIDR range of the subnet.

", + "CreateHsmRequest$SyslogIp": "

The IP address for the syslog monitoring server. The AWS CloudHSM service only supports one syslog monitoring server.

", + "DescribeHsmResponse$EniIp": "

The IP address assigned to the HSM's ENI.

", + "ModifyHsmRequest$EniIp": "

The new IP address for the elastic network interface (ENI) attached to the HSM.

If the HSM is moved to a different subnet, and an IP address is not specified, an IP address will be randomly chosen from the CIDR range of the new subnet.

", + "ModifyHsmRequest$SyslogIp": "

The new IP address for the syslog monitoring server. The AWS CloudHSM service only supports one syslog monitoring server.

" + } + }, + "Label": { + "base": null, + "refs": { + "CreateHapgRequest$Label": "

The label of the new high-availability partition group.

", + "DescribeHapgResponse$Label": "

The label for the high-availability partition group.

", + "DescribeLunaClientResponse$Label": "

The label of the client.

", + "ModifyHapgRequest$Label": "

The new label for the high-availability partition group.

" + } + }, + "ListAvailableZonesRequest": { + "base": "

Contains the inputs for the ListAvailableZones action.

", + "refs": { + } + }, + "ListAvailableZonesResponse": { + "base": null, + "refs": { + } + }, + "ListHapgsRequest": { + "base": null, + "refs": { + } + }, + "ListHapgsResponse": { + "base": null, + "refs": { + } + }, + "ListHsmsRequest": { + "base": null, + "refs": { + } + }, + "ListHsmsResponse": { + "base": "

Contains the output of the ListHsms operation.

", + "refs": { + } + }, + "ListLunaClientsRequest": { + "base": null, + "refs": { + } + }, + "ListLunaClientsResponse": { + "base": null, + "refs": { + } + }, + "ModifyHapgRequest": { + "base": null, + "refs": { + } + }, + "ModifyHapgResponse": { + "base": null, + "refs": { + } + }, + "ModifyHsmRequest": { + "base": "

Contains the inputs for the ModifyHsm operation.

", + "refs": { + } + }, + "ModifyHsmResponse": { + "base": "

Contains the output of the ModifyHsm operation.

", + "refs": { + } + }, + "ModifyLunaClientRequest": { + "base": null, + "refs": { + } + }, + "ModifyLunaClientResponse": { + "base": null, + "refs": { + } + }, + "PaginationToken": { + "base": null, + "refs": { + "ListHapgsRequest$NextToken": "

The NextToken value from a previous call to ListHapgs. Pass null if this is the first call.

", + "ListHapgsResponse$NextToken": "

If not null, more results are available. Pass this value to ListHapgs to retrieve the next set of items.

", + "ListHsmsRequest$NextToken": "

The NextToken value from a previous call to ListHsms. Pass null if this is the first call.

", + "ListHsmsResponse$NextToken": "

If not null, more results are available. Pass this value to ListHsms to retrieve the next set of items.

", + "ListLunaClientsRequest$NextToken": "

The NextToken value from a previous call to ListLunaClients. Pass null if this is the first call.

", + "ListLunaClientsResponse$NextToken": "

If not null, more results are available. Pass this to ListLunaClients to retrieve the next set of items.

" + } + }, + "PartitionArn": { + "base": null, + "refs": { + "PartitionList$member": null + } + }, + "PartitionList": { + "base": null, + "refs": { + "DescribeHsmResponse$Partitions": "

The list of partitions on the HSM.

" + } + }, + "PartitionSerial": { + "base": null, + "refs": { + "PartitionSerialList$member": null + } + }, + "PartitionSerialList": { + "base": null, + "refs": { + "DescribeHapgResponse$PartitionSerialList": "

The list of partition serial numbers that belong to the high-availability partition group.

", + "ModifyHapgRequest$PartitionSerialList": "

The list of partition serial numbers to make members of the high-availability partition group.

" + } + }, + "SshKey": { + "base": null, + "refs": { + "CreateHsmRequest$SshKey": "

The SSH public key to install on the HSM.

", + "DescribeHsmResponse$SshPublicKey": "

The public SSH key.

" + } + }, + "String": { + "base": null, + "refs": { + "CloudHsmServiceException$message": "

Additional information about the error.

", + "DeleteHapgResponse$Status": "

The status of the action.

", + "DeleteHsmResponse$Status": "

The status of the operation.

", + "DeleteLunaClientResponse$Status": "

The status of the action.

", + "DescribeHapgResponse$HapgSerial": "

The serial number of the high-availability partition group.

", + "DescribeHsmResponse$StatusDetails": "

Contains additional information about the status of the HSM.

", + "DescribeHsmResponse$VendorName": "

The name of the HSM vendor.

", + "DescribeHsmResponse$HsmType": "

The HSM model type.

", + "DescribeHsmResponse$SoftwareVersion": "

The HSM software version.

", + "DescribeHsmResponse$ServerCertUri": "

The URI of the certificate server.

", + "GetConfigResponse$ConfigType": "

The type of credentials.

", + "GetConfigResponse$ConfigFile": "

The chrystoki.conf configuration file.

", + "GetConfigResponse$ConfigCred": "

The certificate file containing the server.pem files of the HSMs.

" + } + }, + "SubnetId": { + "base": null, + "refs": { + "CreateHsmRequest$SubnetId": "

The identifier of the subnet in your VPC in which to place the HSM.

", + "DescribeHsmResponse$SubnetId": "

The identifier of the subnet that the HSM is in.

", + "ModifyHsmRequest$SubnetId": "

The new identifier of the subnet that the HSM is in. The new subnet must be in the same Availability Zone as the current subnet.

" + } + }, + "SubscriptionType": { + "base": "

Specifies the type of subscription for the HSM.

  • PRODUCTION - The HSM is being used in a production environment.
  • TRIAL - The HSM is being used in a product trial.
", + "refs": { + "CreateHsmRequest$SubscriptionType": null, + "DescribeHsmResponse$SubscriptionType": null + } + }, + "Timestamp": { + "base": null, + "refs": { + "DescribeHapgResponse$LastModifiedTimestamp": "

The date and time the high-availability partition group was last modified.

", + "DescribeHsmResponse$SubscriptionStartDate": "

The subscription start date.

", + "DescribeHsmResponse$SubscriptionEndDate": "

The subscription end date.

", + "DescribeHsmResponse$SshKeyLastUpdated": "

The date and time that the SSH key was last updated.

", + "DescribeHsmResponse$ServerCertLastUpdated": "

The date and time that the server certificate was last updated.

", + "DescribeLunaClientResponse$LastModifiedTimestamp": "

The date and time the client was last modified.

" + } + }, + "VpcId": { + "base": null, + "refs": { + "DescribeHsmResponse$VpcId": "

The identifier of the VPC that the HSM is in.

" + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/cloudsearch/2013-01-01/api-2.json b/lib/aws-sdk/Aws/data/cloudsearch/2013-01-01/api-2.json new file mode 100644 index 0000000..eca143c --- /dev/null +++ b/lib/aws-sdk/Aws/data/cloudsearch/2013-01-01/api-2.json @@ -0,0 +1,2001 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2013-01-01", + "endpointPrefix":"cloudsearch", + "serviceFullName":"Amazon CloudSearch", + "signatureVersion":"v4", + "xmlNamespace":"http://cloudsearch.amazonaws.com/doc/2013-01-01/", + "protocol":"query" + }, + "operations":{ + "BuildSuggesters":{ + "name":"BuildSuggesters", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BuildSuggestersRequest"}, + "output":{ + "shape":"BuildSuggestersResponse", + "resultWrapper":"BuildSuggestersResult" + }, + "errors":[ + { + "shape":"BaseException", + "exception":true + }, + { + "shape":"InternalException", + "error":{ + "code":"InternalException", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateDomain":{ + "name":"CreateDomain", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDomainRequest"}, + "output":{ + "shape":"CreateDomainResponse", + "resultWrapper":"CreateDomainResult" + }, + "errors":[ + { + "shape":"BaseException", + "exception":true + }, + { + "shape":"InternalException", + "error":{ + "code":"InternalException", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "DefineAnalysisScheme":{ + "name":"DefineAnalysisScheme", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DefineAnalysisSchemeRequest"}, + "output":{ + "shape":"DefineAnalysisSchemeResponse", + "resultWrapper":"DefineAnalysisSchemeResult" + }, + "errors":[ + { + "shape":"BaseException", + "exception":true + }, + { + "shape":"InternalException", + "error":{ + "code":"InternalException", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidTypeException", + "error":{ + "code":"InvalidType", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "DefineExpression":{ + "name":"DefineExpression", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DefineExpressionRequest"}, + "output":{ + "shape":"DefineExpressionResponse", + "resultWrapper":"DefineExpressionResult" + }, + "errors":[ + { + "shape":"BaseException", + "exception":true + }, + { + "shape":"InternalException", + "error":{ + "code":"InternalException", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidTypeException", + "error":{ + "code":"InvalidType", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "DefineIndexField":{ + "name":"DefineIndexField", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DefineIndexFieldRequest"}, + "output":{ + "shape":"DefineIndexFieldResponse", + "resultWrapper":"DefineIndexFieldResult" + }, + "errors":[ + { + "shape":"BaseException", + "exception":true + }, + { + "shape":"InternalException", + "error":{ + "code":"InternalException", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidTypeException", + "error":{ + "code":"InvalidType", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "DefineSuggester":{ + "name":"DefineSuggester", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DefineSuggesterRequest"}, + "output":{ + "shape":"DefineSuggesterResponse", + "resultWrapper":"DefineSuggesterResult" + }, + "errors":[ + { + "shape":"BaseException", + "exception":true + }, + { + "shape":"InternalException", + "error":{ + "code":"InternalException", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidTypeException", + "error":{ + "code":"InvalidType", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteAnalysisScheme":{ + "name":"DeleteAnalysisScheme", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteAnalysisSchemeRequest"}, + "output":{ + "shape":"DeleteAnalysisSchemeResponse", + "resultWrapper":"DeleteAnalysisSchemeResult" + }, + "errors":[ + { + "shape":"BaseException", + "exception":true + }, + { + "shape":"InternalException", + "error":{ + "code":"InternalException", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"InvalidTypeException", + "error":{ + "code":"InvalidType", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteDomain":{ + "name":"DeleteDomain", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDomainRequest"}, + "output":{ + "shape":"DeleteDomainResponse", + "resultWrapper":"DeleteDomainResult" + }, + "errors":[ + { + "shape":"BaseException", + "exception":true + }, + { + "shape":"InternalException", + "error":{ + "code":"InternalException", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DeleteExpression":{ + "name":"DeleteExpression", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteExpressionRequest"}, + "output":{ + "shape":"DeleteExpressionResponse", + "resultWrapper":"DeleteExpressionResult" + }, + "errors":[ + { + "shape":"BaseException", + "exception":true + }, + { + "shape":"InternalException", + "error":{ + "code":"InternalException", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"InvalidTypeException", + "error":{ + "code":"InvalidType", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteIndexField":{ + "name":"DeleteIndexField", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteIndexFieldRequest"}, + "output":{ + "shape":"DeleteIndexFieldResponse", + "resultWrapper":"DeleteIndexFieldResult" + }, + "errors":[ + { + "shape":"BaseException", + "exception":true + }, + { + "shape":"InternalException", + "error":{ + "code":"InternalException", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"InvalidTypeException", + "error":{ + "code":"InvalidType", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteSuggester":{ + "name":"DeleteSuggester", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteSuggesterRequest"}, + "output":{ + "shape":"DeleteSuggesterResponse", + "resultWrapper":"DeleteSuggesterResult" + }, + "errors":[ + { + "shape":"BaseException", + "exception":true + }, + { + "shape":"InternalException", + "error":{ + "code":"InternalException", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"InvalidTypeException", + "error":{ + "code":"InvalidType", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeAnalysisSchemes":{ + "name":"DescribeAnalysisSchemes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAnalysisSchemesRequest"}, + "output":{ + "shape":"DescribeAnalysisSchemesResponse", + "resultWrapper":"DescribeAnalysisSchemesResult" + }, + "errors":[ + { + "shape":"BaseException", + "exception":true + }, + { + "shape":"InternalException", + "error":{ + "code":"InternalException", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeAvailabilityOptions":{ + "name":"DescribeAvailabilityOptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAvailabilityOptionsRequest"}, + "output":{ + "shape":"DescribeAvailabilityOptionsResponse", + "resultWrapper":"DescribeAvailabilityOptionsResult" + }, + "errors":[ + { + "shape":"BaseException", + "exception":true + }, + { + "shape":"InternalException", + "error":{ + "code":"InternalException", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"InvalidTypeException", + "error":{ + "code":"InvalidType", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DisabledOperationException", + "error":{ + "code":"DisabledAction", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeDomains":{ + "name":"DescribeDomains", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDomainsRequest"}, + "output":{ + "shape":"DescribeDomainsResponse", + "resultWrapper":"DescribeDomainsResult" + }, + "errors":[ + { + "shape":"BaseException", + "exception":true + }, + { + "shape":"InternalException", + "error":{ + "code":"InternalException", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DescribeExpressions":{ + "name":"DescribeExpressions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeExpressionsRequest"}, + "output":{ + "shape":"DescribeExpressionsResponse", + "resultWrapper":"DescribeExpressionsResult" + }, + "errors":[ + { + "shape":"BaseException", + "exception":true + }, + { + "shape":"InternalException", + "error":{ + "code":"InternalException", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeIndexFields":{ + "name":"DescribeIndexFields", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeIndexFieldsRequest"}, + "output":{ + "shape":"DescribeIndexFieldsResponse", + "resultWrapper":"DescribeIndexFieldsResult" + }, + "errors":[ + { + "shape":"BaseException", + "exception":true + }, + { + "shape":"InternalException", + "error":{ + "code":"InternalException", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeScalingParameters":{ + "name":"DescribeScalingParameters", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeScalingParametersRequest"}, + "output":{ + "shape":"DescribeScalingParametersResponse", + "resultWrapper":"DescribeScalingParametersResult" + }, + "errors":[ + { + "shape":"BaseException", + "exception":true + }, + { + "shape":"InternalException", + "error":{ + "code":"InternalException", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeServiceAccessPolicies":{ + "name":"DescribeServiceAccessPolicies", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeServiceAccessPoliciesRequest"}, + "output":{ + "shape":"DescribeServiceAccessPoliciesResponse", + "resultWrapper":"DescribeServiceAccessPoliciesResult" + }, + "errors":[ + { + "shape":"BaseException", + "exception":true + }, + { + "shape":"InternalException", + "error":{ + "code":"InternalException", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeSuggesters":{ + "name":"DescribeSuggesters", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSuggestersRequest"}, + "output":{ + "shape":"DescribeSuggestersResponse", + "resultWrapper":"DescribeSuggestersResult" + }, + "errors":[ + { + "shape":"BaseException", + "exception":true + }, + { + "shape":"InternalException", + "error":{ + "code":"InternalException", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "IndexDocuments":{ + "name":"IndexDocuments", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"IndexDocumentsRequest"}, + "output":{ + "shape":"IndexDocumentsResponse", + "resultWrapper":"IndexDocumentsResult" + }, + "errors":[ + { + "shape":"BaseException", + "exception":true + }, + { + "shape":"InternalException", + "error":{ + "code":"InternalException", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "ListDomainNames":{ + "name":"ListDomainNames", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "output":{ + "shape":"ListDomainNamesResponse", + "resultWrapper":"ListDomainNamesResult" + }, + "errors":[ + { + "shape":"BaseException", + "exception":true + } + ] + }, + "UpdateAvailabilityOptions":{ + "name":"UpdateAvailabilityOptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateAvailabilityOptionsRequest"}, + "output":{ + "shape":"UpdateAvailabilityOptionsResponse", + "resultWrapper":"UpdateAvailabilityOptionsResult" + }, + "errors":[ + { + "shape":"BaseException", + "exception":true + }, + { + "shape":"InternalException", + "error":{ + "code":"InternalException", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"InvalidTypeException", + "error":{ + "code":"InvalidType", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DisabledOperationException", + "error":{ + "code":"DisabledAction", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "UpdateScalingParameters":{ + "name":"UpdateScalingParameters", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateScalingParametersRequest"}, + "output":{ + "shape":"UpdateScalingParametersResponse", + "resultWrapper":"UpdateScalingParametersResult" + }, + "errors":[ + { + "shape":"BaseException", + "exception":true + }, + { + "shape":"InternalException", + "error":{ + "code":"InternalException", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidTypeException", + "error":{ + "code":"InvalidType", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "UpdateServiceAccessPolicies":{ + "name":"UpdateServiceAccessPolicies", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateServiceAccessPoliciesRequest"}, + "output":{ + "shape":"UpdateServiceAccessPoliciesResponse", + "resultWrapper":"UpdateServiceAccessPoliciesResult" + }, + "errors":[ + { + "shape":"BaseException", + "exception":true + }, + { + "shape":"InternalException", + "error":{ + "code":"InternalException", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidTypeException", + "error":{ + "code":"InvalidType", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + } + }, + "shapes":{ + "APIVersion":{"type":"string"}, + "ARN":{"type":"string"}, + "AccessPoliciesStatus":{ + "type":"structure", + "required":[ + "Options", + "Status" + ], + "members":{ + "Options":{"shape":"PolicyDocument"}, + "Status":{"shape":"OptionStatus"} + } + }, + "AlgorithmicStemming":{ + "type":"string", + "enum":[ + "none", + "minimal", + "light", + "full" + ] + }, + "AnalysisOptions":{ + "type":"structure", + "members":{ + "Synonyms":{"shape":"String"}, + "Stopwords":{"shape":"String"}, + "StemmingDictionary":{"shape":"String"}, + "JapaneseTokenizationDictionary":{"shape":"String"}, + "AlgorithmicStemming":{"shape":"AlgorithmicStemming"} + } + }, + "AnalysisScheme":{ + "type":"structure", + "required":[ + "AnalysisSchemeName", + "AnalysisSchemeLanguage" + ], + "members":{ + "AnalysisSchemeName":{"shape":"StandardName"}, + "AnalysisSchemeLanguage":{"shape":"AnalysisSchemeLanguage"}, + "AnalysisOptions":{"shape":"AnalysisOptions"} + } + }, + "AnalysisSchemeLanguage":{ + "type":"string", + "enum":[ + "ar", + "bg", + "ca", + "cs", + "da", + "de", + "el", + "en", + "es", + "eu", + "fa", + "fi", + "fr", + "ga", + "gl", + "he", + "hi", + "hu", + "hy", + "id", + "it", + "ja", + "ko", + "lv", + "mul", + "nl", + "no", + "pt", + "ro", + "ru", + "sv", + "th", + "tr", + "zh-Hans", + "zh-Hant" + ] + }, + "AnalysisSchemeStatus":{ + "type":"structure", + "required":[ + "Options", + "Status" + ], + "members":{ + "Options":{"shape":"AnalysisScheme"}, + "Status":{"shape":"OptionStatus"} + } + }, + "AnalysisSchemeStatusList":{ + "type":"list", + "member":{"shape":"AnalysisSchemeStatus"} + }, + "AvailabilityOptionsStatus":{ + "type":"structure", + "required":[ + "Options", + "Status" + ], + "members":{ + "Options":{"shape":"MultiAZ"}, + "Status":{"shape":"OptionStatus"} + } + }, + "BaseException":{ + "type":"structure", + "members":{ + "Code":{"shape":"ErrorCode"}, + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "Boolean":{"type":"boolean"}, + "BuildSuggestersRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"} + } + }, + "BuildSuggestersResponse":{ + "type":"structure", + "members":{ + "FieldNames":{"shape":"FieldNameList"} + } + }, + "CreateDomainRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"} + } + }, + "CreateDomainResponse":{ + "type":"structure", + "members":{ + "DomainStatus":{"shape":"DomainStatus"} + } + }, + "DateArrayOptions":{ + "type":"structure", + "members":{ + "DefaultValue":{"shape":"FieldValue"}, + "SourceFields":{"shape":"FieldNameCommaList"}, + "FacetEnabled":{"shape":"Boolean"}, + "SearchEnabled":{"shape":"Boolean"}, + "ReturnEnabled":{"shape":"Boolean"} + } + }, + "DateOptions":{ + "type":"structure", + "members":{ + "DefaultValue":{"shape":"FieldValue"}, + "SourceField":{"shape":"FieldName"}, + "FacetEnabled":{"shape":"Boolean"}, + "SearchEnabled":{"shape":"Boolean"}, + "ReturnEnabled":{"shape":"Boolean"}, + "SortEnabled":{"shape":"Boolean"} + } + }, + "DefineAnalysisSchemeRequest":{ + "type":"structure", + "required":[ + "DomainName", + "AnalysisScheme" + ], + "members":{ + "DomainName":{"shape":"DomainName"}, + "AnalysisScheme":{"shape":"AnalysisScheme"} + } + }, + "DefineAnalysisSchemeResponse":{ + "type":"structure", + "required":["AnalysisScheme"], + "members":{ + "AnalysisScheme":{"shape":"AnalysisSchemeStatus"} + } + }, + "DefineExpressionRequest":{ + "type":"structure", + "required":[ + "DomainName", + "Expression" + ], + "members":{ + "DomainName":{"shape":"DomainName"}, + "Expression":{"shape":"Expression"} + } + }, + "DefineExpressionResponse":{ + "type":"structure", + "required":["Expression"], + "members":{ + "Expression":{"shape":"ExpressionStatus"} + } + }, + "DefineIndexFieldRequest":{ + "type":"structure", + "required":[ + "DomainName", + "IndexField" + ], + "members":{ + "DomainName":{"shape":"DomainName"}, + "IndexField":{"shape":"IndexField"} + } + }, + "DefineIndexFieldResponse":{ + "type":"structure", + "required":["IndexField"], + "members":{ + "IndexField":{"shape":"IndexFieldStatus"} + } + }, + "DefineSuggesterRequest":{ + "type":"structure", + "required":[ + "DomainName", + "Suggester" + ], + "members":{ + "DomainName":{"shape":"DomainName"}, + "Suggester":{"shape":"Suggester"} + } + }, + "DefineSuggesterResponse":{ + "type":"structure", + "required":["Suggester"], + "members":{ + "Suggester":{"shape":"SuggesterStatus"} + } + }, + "DeleteAnalysisSchemeRequest":{ + "type":"structure", + "required":[ + "DomainName", + "AnalysisSchemeName" + ], + "members":{ + "DomainName":{"shape":"DomainName"}, + "AnalysisSchemeName":{"shape":"StandardName"} + } + }, + "DeleteAnalysisSchemeResponse":{ + "type":"structure", + "required":["AnalysisScheme"], + "members":{ + "AnalysisScheme":{"shape":"AnalysisSchemeStatus"} + } + }, + "DeleteDomainRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"} + } + }, + "DeleteDomainResponse":{ + "type":"structure", + "members":{ + "DomainStatus":{"shape":"DomainStatus"} + } + }, + "DeleteExpressionRequest":{ + "type":"structure", + "required":[ + "DomainName", + "ExpressionName" + ], + "members":{ + "DomainName":{"shape":"DomainName"}, + "ExpressionName":{"shape":"StandardName"} + } + }, + "DeleteExpressionResponse":{ + "type":"structure", + "required":["Expression"], + "members":{ + "Expression":{"shape":"ExpressionStatus"} + } + }, + "DeleteIndexFieldRequest":{ + "type":"structure", + "required":[ + "DomainName", + "IndexFieldName" + ], + "members":{ + "DomainName":{"shape":"DomainName"}, + "IndexFieldName":{"shape":"DynamicFieldName"} + } + }, + "DeleteIndexFieldResponse":{ + "type":"structure", + "required":["IndexField"], + "members":{ + "IndexField":{"shape":"IndexFieldStatus"} + } + }, + "DeleteSuggesterRequest":{ + "type":"structure", + "required":[ + "DomainName", + "SuggesterName" + ], + "members":{ + "DomainName":{"shape":"DomainName"}, + "SuggesterName":{"shape":"StandardName"} + } + }, + "DeleteSuggesterResponse":{ + "type":"structure", + "required":["Suggester"], + "members":{ + "Suggester":{"shape":"SuggesterStatus"} + } + }, + "DescribeAnalysisSchemesRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"}, + "AnalysisSchemeNames":{"shape":"StandardNameList"}, + "Deployed":{"shape":"Boolean"} + } + }, + "DescribeAnalysisSchemesResponse":{ + "type":"structure", + "required":["AnalysisSchemes"], + "members":{ + "AnalysisSchemes":{"shape":"AnalysisSchemeStatusList"} + } + }, + "DescribeAvailabilityOptionsRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"}, + "Deployed":{"shape":"Boolean"} + } + }, + "DescribeAvailabilityOptionsResponse":{ + "type":"structure", + "members":{ + "AvailabilityOptions":{"shape":"AvailabilityOptionsStatus"} + } + }, + "DescribeDomainsRequest":{ + "type":"structure", + "members":{ + "DomainNames":{"shape":"DomainNameList"} + } + }, + "DescribeDomainsResponse":{ + "type":"structure", + "required":["DomainStatusList"], + "members":{ + "DomainStatusList":{"shape":"DomainStatusList"} + } + }, + "DescribeExpressionsRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"}, + "ExpressionNames":{"shape":"StandardNameList"}, + "Deployed":{"shape":"Boolean"} + } + }, + "DescribeExpressionsResponse":{ + "type":"structure", + "required":["Expressions"], + "members":{ + "Expressions":{"shape":"ExpressionStatusList"} + } + }, + "DescribeIndexFieldsRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"}, + "FieldNames":{"shape":"DynamicFieldNameList"}, + "Deployed":{"shape":"Boolean"} + } + }, + "DescribeIndexFieldsResponse":{ + "type":"structure", + "required":["IndexFields"], + "members":{ + "IndexFields":{"shape":"IndexFieldStatusList"} + } + }, + "DescribeScalingParametersRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"} + } + }, + "DescribeScalingParametersResponse":{ + "type":"structure", + "required":["ScalingParameters"], + "members":{ + "ScalingParameters":{"shape":"ScalingParametersStatus"} + } + }, + "DescribeServiceAccessPoliciesRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"}, + "Deployed":{"shape":"Boolean"} + } + }, + "DescribeServiceAccessPoliciesResponse":{ + "type":"structure", + "required":["AccessPolicies"], + "members":{ + "AccessPolicies":{"shape":"AccessPoliciesStatus"} + } + }, + "DescribeSuggestersRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"}, + "SuggesterNames":{"shape":"StandardNameList"}, + "Deployed":{"shape":"Boolean"} + } + }, + "DescribeSuggestersResponse":{ + "type":"structure", + "required":["Suggesters"], + "members":{ + "Suggesters":{"shape":"SuggesterStatusList"} + } + }, + "DisabledOperationException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DisabledAction", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "DocumentSuggesterOptions":{ + "type":"structure", + "required":["SourceField"], + "members":{ + "SourceField":{"shape":"FieldName"}, + "FuzzyMatching":{"shape":"SuggesterFuzzyMatching"}, + "SortExpression":{"shape":"String"} + } + }, + "DomainId":{ + "type":"string", + "min":1, + "max":64 + }, + "DomainName":{ + "type":"string", + "min":3, + "max":28, + "pattern":"[a-z][a-z0-9\\-]+" + }, + "DomainNameList":{ + "type":"list", + "member":{"shape":"DomainName"} + }, + "DomainNameMap":{ + "type":"map", + "key":{"shape":"DomainName"}, + "value":{"shape":"APIVersion"} + }, + "DomainStatus":{ + "type":"structure", + "required":[ + "DomainId", + "DomainName", + "RequiresIndexDocuments" + ], + "members":{ + "DomainId":{"shape":"DomainId"}, + "DomainName":{"shape":"DomainName"}, + "ARN":{"shape":"ARN"}, + "Created":{"shape":"Boolean"}, + "Deleted":{"shape":"Boolean"}, + "DocService":{"shape":"ServiceEndpoint"}, + "SearchService":{"shape":"ServiceEndpoint"}, + "RequiresIndexDocuments":{"shape":"Boolean"}, + "Processing":{"shape":"Boolean"}, + "SearchInstanceType":{"shape":"SearchInstanceType"}, + "SearchPartitionCount":{"shape":"PartitionCount"}, + "SearchInstanceCount":{"shape":"InstanceCount"}, + "Limits":{"shape":"Limits"} + } + }, + "DomainStatusList":{ + "type":"list", + "member":{"shape":"DomainStatus"} + }, + "Double":{"type":"double"}, + "DoubleArrayOptions":{ + "type":"structure", + "members":{ + "DefaultValue":{"shape":"Double"}, + "SourceFields":{"shape":"FieldNameCommaList"}, + "FacetEnabled":{"shape":"Boolean"}, + "SearchEnabled":{"shape":"Boolean"}, + "ReturnEnabled":{"shape":"Boolean"} + } + }, + "DoubleOptions":{ + "type":"structure", + "members":{ + "DefaultValue":{"shape":"Double"}, + "SourceField":{"shape":"FieldName"}, + "FacetEnabled":{"shape":"Boolean"}, + "SearchEnabled":{"shape":"Boolean"}, + "ReturnEnabled":{"shape":"Boolean"}, + "SortEnabled":{"shape":"Boolean"} + } + }, + "DynamicFieldName":{ + "type":"string", + "min":1, + "max":64, + "pattern":"([a-z][a-z0-9_]*\\*?|\\*[a-z0-9_]*)" + }, + "DynamicFieldNameList":{ + "type":"list", + "member":{"shape":"DynamicFieldName"} + }, + "ErrorCode":{"type":"string"}, + "ErrorMessage":{"type":"string"}, + "Expression":{ + "type":"structure", + "required":[ + "ExpressionName", + "ExpressionValue" + ], + "members":{ + "ExpressionName":{"shape":"StandardName"}, + "ExpressionValue":{"shape":"ExpressionValue"} + } + }, + "ExpressionStatus":{ + "type":"structure", + "required":[ + "Options", + "Status" + ], + "members":{ + "Options":{"shape":"Expression"}, + "Status":{"shape":"OptionStatus"} + } + }, + "ExpressionStatusList":{ + "type":"list", + "member":{"shape":"ExpressionStatus"} + }, + "ExpressionValue":{ + "type":"string", + "min":1, + "max":10240 + }, + "FieldName":{ + "type":"string", + "min":1, + "max":64, + "pattern":"[a-z][a-z0-9_]*" + }, + "FieldNameCommaList":{ + "type":"string", + "pattern":"\\s*[a-z*][a-z0-9_]*\\*?\\s*(,\\s*[a-z*][a-z0-9_]*\\*?\\s*)*" + }, + "FieldNameList":{ + "type":"list", + "member":{"shape":"FieldName"} + }, + "FieldValue":{ + "type":"string", + "min":0, + "max":1024 + }, + "IndexDocumentsRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"} + } + }, + "IndexDocumentsResponse":{ + "type":"structure", + "members":{ + "FieldNames":{"shape":"FieldNameList"} + } + }, + "IndexField":{ + "type":"structure", + "required":[ + "IndexFieldName", + "IndexFieldType" + ], + "members":{ + "IndexFieldName":{"shape":"DynamicFieldName"}, + "IndexFieldType":{"shape":"IndexFieldType"}, + "IntOptions":{"shape":"IntOptions"}, + "DoubleOptions":{"shape":"DoubleOptions"}, + "LiteralOptions":{"shape":"LiteralOptions"}, + "TextOptions":{"shape":"TextOptions"}, + "DateOptions":{"shape":"DateOptions"}, + "LatLonOptions":{"shape":"LatLonOptions"}, + "IntArrayOptions":{"shape":"IntArrayOptions"}, + "DoubleArrayOptions":{"shape":"DoubleArrayOptions"}, + "LiteralArrayOptions":{"shape":"LiteralArrayOptions"}, + "TextArrayOptions":{"shape":"TextArrayOptions"}, + "DateArrayOptions":{"shape":"DateArrayOptions"} + } + }, + "IndexFieldStatus":{ + "type":"structure", + "required":[ + "Options", + "Status" + ], + "members":{ + "Options":{"shape":"IndexField"}, + "Status":{"shape":"OptionStatus"} + } + }, + "IndexFieldStatusList":{ + "type":"list", + "member":{"shape":"IndexFieldStatus"} + }, + "IndexFieldType":{ + "type":"string", + "enum":[ + "int", + "double", + "literal", + "text", + "date", + "latlon", + "int-array", + "double-array", + "literal-array", + "text-array", + "date-array" + ] + }, + "InstanceCount":{ + "type":"integer", + "min":1 + }, + "IntArrayOptions":{ + "type":"structure", + "members":{ + "DefaultValue":{"shape":"Long"}, + "SourceFields":{"shape":"FieldNameCommaList"}, + "FacetEnabled":{"shape":"Boolean"}, + "SearchEnabled":{"shape":"Boolean"}, + "ReturnEnabled":{"shape":"Boolean"} + } + }, + "IntOptions":{ + "type":"structure", + "members":{ + "DefaultValue":{"shape":"Long"}, + "SourceField":{"shape":"FieldName"}, + "FacetEnabled":{"shape":"Boolean"}, + "SearchEnabled":{"shape":"Boolean"}, + "ReturnEnabled":{"shape":"Boolean"}, + "SortEnabled":{"shape":"Boolean"} + } + }, + "InternalException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InternalException", + "httpStatusCode":500 + }, + "exception":true + }, + "InvalidTypeException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidType", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "LatLonOptions":{ + "type":"structure", + "members":{ + "DefaultValue":{"shape":"FieldValue"}, + "SourceField":{"shape":"FieldName"}, + "FacetEnabled":{"shape":"Boolean"}, + "SearchEnabled":{"shape":"Boolean"}, + "ReturnEnabled":{"shape":"Boolean"}, + "SortEnabled":{"shape":"Boolean"} + } + }, + "LimitExceededException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "Limits":{ + "type":"structure", + "required":[ + "MaximumReplicationCount", + "MaximumPartitionCount" + ], + "members":{ + "MaximumReplicationCount":{"shape":"MaximumReplicationCount"}, + "MaximumPartitionCount":{"shape":"MaximumPartitionCount"} + } + }, + "ListDomainNamesResponse":{ + "type":"structure", + "members":{ + "DomainNames":{"shape":"DomainNameMap"} + } + }, + "LiteralArrayOptions":{ + "type":"structure", + "members":{ + "DefaultValue":{"shape":"FieldValue"}, + "SourceFields":{"shape":"FieldNameCommaList"}, + "FacetEnabled":{"shape":"Boolean"}, + "SearchEnabled":{"shape":"Boolean"}, + "ReturnEnabled":{"shape":"Boolean"} + } + }, + "LiteralOptions":{ + "type":"structure", + "members":{ + "DefaultValue":{"shape":"FieldValue"}, + "SourceField":{"shape":"FieldName"}, + "FacetEnabled":{"shape":"Boolean"}, + "SearchEnabled":{"shape":"Boolean"}, + "ReturnEnabled":{"shape":"Boolean"}, + "SortEnabled":{"shape":"Boolean"} + } + }, + "Long":{"type":"long"}, + "MaximumPartitionCount":{ + "type":"integer", + "min":1 + }, + "MaximumReplicationCount":{ + "type":"integer", + "min":1 + }, + "MultiAZ":{"type":"boolean"}, + "OptionState":{ + "type":"string", + "enum":[ + "RequiresIndexDocuments", + "Processing", + "Active", + "FailedToValidate" + ] + }, + "OptionStatus":{ + "type":"structure", + "required":[ + "CreationDate", + "UpdateDate", + "State" + ], + "members":{ + "CreationDate":{"shape":"UpdateTimestamp"}, + "UpdateDate":{"shape":"UpdateTimestamp"}, + "UpdateVersion":{"shape":"UIntValue"}, + "State":{"shape":"OptionState"}, + "PendingDeletion":{"shape":"Boolean"} + } + }, + "PartitionCount":{ + "type":"integer", + "min":1 + }, + "PartitionInstanceType":{ + "type":"string", + "enum":[ + "search.m1.small", + "search.m1.large", + "search.m2.xlarge", + "search.m2.2xlarge", + "search.m3.medium", + "search.m3.large", + "search.m3.xlarge", + "search.m3.2xlarge" + ] + }, + "PolicyDocument":{"type":"string"}, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "ScalingParameters":{ + "type":"structure", + "members":{ + "DesiredInstanceType":{"shape":"PartitionInstanceType"}, + "DesiredReplicationCount":{"shape":"UIntValue"}, + "DesiredPartitionCount":{"shape":"UIntValue"} + } + }, + "ScalingParametersStatus":{ + "type":"structure", + "required":[ + "Options", + "Status" + ], + "members":{ + "Options":{"shape":"ScalingParameters"}, + "Status":{"shape":"OptionStatus"} + } + }, + "SearchInstanceType":{"type":"string"}, + "ServiceEndpoint":{ + "type":"structure", + "members":{ + "Endpoint":{"shape":"ServiceUrl"} + } + }, + "ServiceUrl":{"type":"string"}, + "StandardName":{ + "type":"string", + "min":1, + "max":64, + "pattern":"[a-z][a-z0-9_]*" + }, + "StandardNameList":{ + "type":"list", + "member":{"shape":"StandardName"} + }, + "String":{"type":"string"}, + "Suggester":{ + "type":"structure", + "required":[ + "SuggesterName", + "DocumentSuggesterOptions" + ], + "members":{ + "SuggesterName":{"shape":"StandardName"}, + "DocumentSuggesterOptions":{"shape":"DocumentSuggesterOptions"} + } + }, + "SuggesterFuzzyMatching":{ + "type":"string", + "enum":[ + "none", + "low", + "high" + ] + }, + "SuggesterStatus":{ + "type":"structure", + "required":[ + "Options", + "Status" + ], + "members":{ + "Options":{"shape":"Suggester"}, + "Status":{"shape":"OptionStatus"} + } + }, + "SuggesterStatusList":{ + "type":"list", + "member":{"shape":"SuggesterStatus"} + }, + "TextArrayOptions":{ + "type":"structure", + "members":{ + "DefaultValue":{"shape":"FieldValue"}, + "SourceFields":{"shape":"FieldNameCommaList"}, + "ReturnEnabled":{"shape":"Boolean"}, + "HighlightEnabled":{"shape":"Boolean"}, + "AnalysisScheme":{"shape":"Word"} + } + }, + "TextOptions":{ + "type":"structure", + "members":{ + "DefaultValue":{"shape":"FieldValue"}, + "SourceField":{"shape":"FieldName"}, + "ReturnEnabled":{"shape":"Boolean"}, + "SortEnabled":{"shape":"Boolean"}, + "HighlightEnabled":{"shape":"Boolean"}, + "AnalysisScheme":{"shape":"Word"} + } + }, + "UIntValue":{ + "type":"integer", + "min":0 + }, + "UpdateAvailabilityOptionsRequest":{ + "type":"structure", + "required":[ + "DomainName", + "MultiAZ" + ], + "members":{ + "DomainName":{"shape":"DomainName"}, + "MultiAZ":{"shape":"Boolean"} + } + }, + "UpdateAvailabilityOptionsResponse":{ + "type":"structure", + "members":{ + "AvailabilityOptions":{"shape":"AvailabilityOptionsStatus"} + } + }, + "UpdateScalingParametersRequest":{ + "type":"structure", + "required":[ + "DomainName", + "ScalingParameters" + ], + "members":{ + "DomainName":{"shape":"DomainName"}, + "ScalingParameters":{"shape":"ScalingParameters"} + } + }, + "UpdateScalingParametersResponse":{ + "type":"structure", + "required":["ScalingParameters"], + "members":{ + "ScalingParameters":{"shape":"ScalingParametersStatus"} + } + }, + "UpdateServiceAccessPoliciesRequest":{ + "type":"structure", + "required":[ + "DomainName", + "AccessPolicies" + ], + "members":{ + "DomainName":{"shape":"DomainName"}, + "AccessPolicies":{"shape":"PolicyDocument"} + } + }, + "UpdateServiceAccessPoliciesResponse":{ + "type":"structure", + "required":["AccessPolicies"], + "members":{ + "AccessPolicies":{"shape":"AccessPoliciesStatus"} + } + }, + "UpdateTimestamp":{"type":"timestamp"}, + "Word":{ + "type":"string", + "pattern":"[\\S]+" + } + } +} diff --git a/lib/aws-sdk/Aws/data/cloudsearch/2013-01-01/docs-2.json b/lib/aws-sdk/Aws/data/cloudsearch/2013-01-01/docs-2.json new file mode 100644 index 0000000..a4b126a --- /dev/null +++ b/lib/aws-sdk/Aws/data/cloudsearch/2013-01-01/docs-2.json @@ -0,0 +1,865 @@ +{ + "version": "2.0", + "operations": { + "BuildSuggesters": "

Indexes the search suggestions. For more information, see Configuring Suggesters in the Amazon CloudSearch Developer Guide.

", + "CreateDomain": "

Creates a new search domain. For more information, see Creating a Search Domain in the Amazon CloudSearch Developer Guide.

", + "DefineAnalysisScheme": "

Configures an analysis scheme that can be applied to a text or text-array field to define language-specific text processing options. For more information, see Configuring Analysis Schemes in the Amazon CloudSearch Developer Guide.

", + "DefineExpression": "

Configures an Expression for the search domain. Used to create new expressions and modify existing ones. If the expression exists, the new configuration replaces the old one. For more information, see Configuring Expressions in the Amazon CloudSearch Developer Guide.

", + "DefineIndexField": "

Configures an IndexField for the search domain. Used to create new fields and modify existing ones. You must specify the name of the domain you are configuring and an index field configuration. The index field configuration specifies a unique name, the index field type, and the options you want to configure for the field. The options you can specify depend on the IndexFieldType. If the field exists, the new configuration replaces the old one. For more information, see Configuring Index Fields in the Amazon CloudSearch Developer Guide.

", + "DefineSuggester": "

Configures a suggester for a domain. A suggester enables you to display possible matches before users finish typing their queries. When you configure a suggester, you must specify the name of the text field you want to search for possible matches and a unique name for the suggester. For more information, see Getting Search Suggestions in the Amazon CloudSearch Developer Guide.

", + "DeleteAnalysisScheme": "

Deletes an analysis scheme. For more information, see Configuring Analysis Schemes in the Amazon CloudSearch Developer Guide.

", + "DeleteDomain": "

Permanently deletes a search domain and all of its data. Once a domain has been deleted, it cannot be recovered. For more information, see Deleting a Search Domain in the Amazon CloudSearch Developer Guide.

", + "DeleteExpression": "

Removes an Expression from the search domain. For more information, see Configuring Expressions in the Amazon CloudSearch Developer Guide.

", + "DeleteIndexField": "

Removes an IndexField from the search domain. For more information, see Configuring Index Fields in the Amazon CloudSearch Developer Guide.

", + "DeleteSuggester": "

Deletes a suggester. For more information, see Getting Search Suggestions in the Amazon CloudSearch Developer Guide.

", + "DescribeAnalysisSchemes": "

Gets the analysis schemes configured for a domain. An analysis scheme defines language-specific text processing options for a text field. Can be limited to specific analysis schemes by name. By default, shows all analysis schemes and includes any pending changes to the configuration. Set the Deployed option to true to show the active configuration and exclude pending changes. For more information, see Configuring Analysis Schemes in the Amazon CloudSearch Developer Guide.

", + "DescribeAvailabilityOptions": "

Gets the availability options configured for a domain. By default, shows the configuration with any pending changes. Set the Deployed option to true to show the active configuration and exclude pending changes. For more information, see Configuring Availability Options in the Amazon CloudSearch Developer Guide.

", + "DescribeDomains": "

Gets information about the search domains owned by this account. Can be limited to specific domains. Shows all domains by default. To get the number of searchable documents in a domain, use the console or submit a matchall request to your domain's search endpoint: q=matchall&amp;q.parser=structured&amp;size=0. For more information, see Getting Information about a Search Domain in the Amazon CloudSearch Developer Guide.

", + "DescribeExpressions": "

Gets the expressions configured for the search domain. Can be limited to specific expressions by name. By default, shows all expressions and includes any pending changes to the configuration. Set the Deployed option to true to show the active configuration and exclude pending changes. For more information, see Configuring Expressions in the Amazon CloudSearch Developer Guide.

", + "DescribeIndexFields": "

Gets information about the index fields configured for the search domain. Can be limited to specific fields by name. By default, shows all fields and includes any pending changes to the configuration. Set the Deployed option to true to show the active configuration and exclude pending changes. For more information, see Getting Domain Information in the Amazon CloudSearch Developer Guide.

", + "DescribeScalingParameters": "

Gets the scaling parameters configured for a domain. A domain's scaling parameters specify the desired search instance type and replication count. For more information, see Configuring Scaling Options in the Amazon CloudSearch Developer Guide.

", + "DescribeServiceAccessPolicies": "

Gets information about the access policies that control access to the domain's document and search endpoints. By default, shows the configuration with any pending changes. Set the Deployed option to true to show the active configuration and exclude pending changes. For more information, see Configuring Access for a Search Domain in the Amazon CloudSearch Developer Guide.

", + "DescribeSuggesters": "

Gets the suggesters configured for a domain. A suggester enables you to display possible matches before users finish typing their queries. Can be limited to specific suggesters by name. By default, shows all suggesters and includes any pending changes to the configuration. Set the Deployed option to true to show the active configuration and exclude pending changes. For more information, see Getting Search Suggestions in the Amazon CloudSearch Developer Guide.

", + "IndexDocuments": "

Tells the search domain to start indexing its documents using the latest indexing options. This operation must be invoked to activate options whose OptionStatus is RequiresIndexDocuments.

", + "ListDomainNames": "

Lists all search domains owned by an account.

", + "UpdateAvailabilityOptions": "

Configures the availability options for a domain. Enabling the Multi-AZ option expands an Amazon CloudSearch domain to an additional Availability Zone in the same Region to increase fault tolerance in the event of a service disruption. Changes to the Multi-AZ option can take about half an hour to become active. For more information, see Configuring Availability Options in the Amazon CloudSearch Developer Guide.

", + "UpdateScalingParameters": "

Configures scaling parameters for a domain. A domain's scaling parameters specify the desired search instance type and replication count. Amazon CloudSearch will still automatically scale your domain based on the volume of data and traffic, but not below the desired instance type and replication count. If the Multi-AZ option is enabled, these values control the resources used per Availability Zone. For more information, see Configuring Scaling Options in the Amazon CloudSearch Developer Guide.

", + "UpdateServiceAccessPolicies": "

Configures the access rules that control access to the domain's document and search endpoints. For more information, see Configuring Access for an Amazon CloudSearch Domain.

" + }, + "service": "Amazon CloudSearch Configuration Service

You use the Amazon CloudSearch configuration service to create, configure, and manage search domains. Configuration service requests are submitted using the AWS Query protocol. AWS Query requests are HTTP or HTTPS requests submitted via HTTP GET or POST with a query parameter named Action.

The endpoint for configuration service requests is region-specific: cloudsearch.region.amazonaws.com. For example, cloudsearch.us-east-1.amazonaws.com. For a current list of supported regions and endpoints, see Regions and Endpoints.

", + "shapes": { + "APIVersion": { + "base": "

The Amazon CloudSearch API version for a domain: 2011-02-01 or 2013-01-01.

", + "refs": { + "DomainNameMap$value": null + } + }, + "ARN": { + "base": "

The Amazon Resource Name (ARN) of the search domain. See Identifiers for IAM Entities in Using AWS Identity and Access Management for more information.

", + "refs": { + "DomainStatus$ARN": null + } + }, + "AccessPoliciesStatus": { + "base": "

The configured access rules for the domain's document and search endpoints, and the current status of those rules.

", + "refs": { + "DescribeServiceAccessPoliciesResponse$AccessPolicies": "

The access rules configured for the domain specified in the request.

", + "UpdateServiceAccessPoliciesResponse$AccessPolicies": "

The access rules configured for the domain.

" + } + }, + "AlgorithmicStemming": { + "base": null, + "refs": { + "AnalysisOptions$AlgorithmicStemming": "

The level of algorithmic stemming to perform: none, minimal, light, or full. The available levels vary depending on the language. For more information, see Language Specific Text Processing Settings in the Amazon CloudSearch Developer Guide

" + } + }, + "AnalysisOptions": { + "base": "

Synonyms, stopwords, and stemming options for an analysis scheme. Includes tokenization dictionary for Japanese.

", + "refs": { + "AnalysisScheme$AnalysisOptions": null + } + }, + "AnalysisScheme": { + "base": "

Configuration information for an analysis scheme. Each analysis scheme has a unique name and specifies the language of the text to be processed. The following options can be configured for an analysis scheme: Synonyms, Stopwords, StemmingDictionary, JapaneseTokenizationDictionary and AlgorithmicStemming.

", + "refs": { + "AnalysisSchemeStatus$Options": null, + "DefineAnalysisSchemeRequest$AnalysisScheme": null + } + }, + "AnalysisSchemeLanguage": { + "base": "

An IETF RFC 4646 language code or mul for multiple languages.

", + "refs": { + "AnalysisScheme$AnalysisSchemeLanguage": null + } + }, + "AnalysisSchemeStatus": { + "base": "

The status and configuration of an AnalysisScheme.

", + "refs": { + "AnalysisSchemeStatusList$member": null, + "DefineAnalysisSchemeResponse$AnalysisScheme": null, + "DeleteAnalysisSchemeResponse$AnalysisScheme": "

The status of the analysis scheme being deleted.

" + } + }, + "AnalysisSchemeStatusList": { + "base": "

A list of the analysis schemes configured for a domain.

", + "refs": { + "DescribeAnalysisSchemesResponse$AnalysisSchemes": "

The analysis scheme descriptions.

" + } + }, + "AvailabilityOptionsStatus": { + "base": "

The status and configuration of the domain's availability options.

", + "refs": { + "DescribeAvailabilityOptionsResponse$AvailabilityOptions": "

The availability options configured for the domain. Indicates whether Multi-AZ is enabled for the domain.

", + "UpdateAvailabilityOptionsResponse$AvailabilityOptions": "

The newly-configured availability options. Indicates whether Multi-AZ is enabled for the domain.

" + } + }, + "BaseException": { + "base": "

An error occurred while processing the request.

", + "refs": { + } + }, + "Boolean": { + "base": null, + "refs": { + "DateArrayOptions$FacetEnabled": "

Whether facet information can be returned for the field.

", + "DateArrayOptions$SearchEnabled": "

Whether the contents of the field are searchable.

", + "DateArrayOptions$ReturnEnabled": "

Whether the contents of the field can be returned in the search results.

", + "DateOptions$FacetEnabled": "

Whether facet information can be returned for the field.

", + "DateOptions$SearchEnabled": "

Whether the contents of the field are searchable.

", + "DateOptions$ReturnEnabled": "

Whether the contents of the field can be returned in the search results.

", + "DateOptions$SortEnabled": "

Whether the field can be used to sort the search results.

", + "DescribeAnalysisSchemesRequest$Deployed": "

Whether to display the deployed configuration (true) or include any pending changes (false). Defaults to false.

", + "DescribeAvailabilityOptionsRequest$Deployed": "

Whether to display the deployed configuration (true) or include any pending changes (false). Defaults to false.

", + "DescribeExpressionsRequest$Deployed": "

Whether to display the deployed configuration (true) or include any pending changes (false). Defaults to false.

", + "DescribeIndexFieldsRequest$Deployed": "

Whether to display the deployed configuration (true) or include any pending changes (false). Defaults to false.

", + "DescribeServiceAccessPoliciesRequest$Deployed": "

Whether to display the deployed configuration (true) or include any pending changes (false). Defaults to false.

", + "DescribeSuggestersRequest$Deployed": "

Whether to display the deployed configuration (true) or include any pending changes (false). Defaults to false.

", + "DomainStatus$Created": "

True if the search domain is created. It can take several minutes to initialize a domain when CreateDomain is called. Newly created search domains are returned from DescribeDomains with a false value for Created until domain creation is complete.

", + "DomainStatus$Deleted": "

True if the search domain has been deleted. The system must clean up resources dedicated to the search domain when DeleteDomain is called. Newly deleted search domains are returned from DescribeDomains with a true value for IsDeleted for several minutes until resource cleanup is complete.

", + "DomainStatus$RequiresIndexDocuments": "

True if IndexDocuments needs to be called to activate the current domain configuration.

", + "DomainStatus$Processing": "

True if processing is being done to activate the current domain configuration.

", + "DoubleArrayOptions$FacetEnabled": "

Whether facet information can be returned for the field.

", + "DoubleArrayOptions$SearchEnabled": "

Whether the contents of the field are searchable.

", + "DoubleArrayOptions$ReturnEnabled": "

Whether the contents of the field can be returned in the search results.

", + "DoubleOptions$FacetEnabled": "

Whether facet information can be returned for the field.

", + "DoubleOptions$SearchEnabled": "

Whether the contents of the field are searchable.

", + "DoubleOptions$ReturnEnabled": "

Whether the contents of the field can be returned in the search results.

", + "DoubleOptions$SortEnabled": "

Whether the field can be used to sort the search results.

", + "IntArrayOptions$FacetEnabled": "

Whether facet information can be returned for the field.

", + "IntArrayOptions$SearchEnabled": "

Whether the contents of the field are searchable.

", + "IntArrayOptions$ReturnEnabled": "

Whether the contents of the field can be returned in the search results.

", + "IntOptions$FacetEnabled": "

Whether facet information can be returned for the field.

", + "IntOptions$SearchEnabled": "

Whether the contents of the field are searchable.

", + "IntOptions$ReturnEnabled": "

Whether the contents of the field can be returned in the search results.

", + "IntOptions$SortEnabled": "

Whether the field can be used to sort the search results.

", + "LatLonOptions$FacetEnabled": "

Whether facet information can be returned for the field.

", + "LatLonOptions$SearchEnabled": "

Whether the contents of the field are searchable.

", + "LatLonOptions$ReturnEnabled": "

Whether the contents of the field can be returned in the search results.

", + "LatLonOptions$SortEnabled": "

Whether the field can be used to sort the search results.

", + "LiteralArrayOptions$FacetEnabled": "

Whether facet information can be returned for the field.

", + "LiteralArrayOptions$SearchEnabled": "

Whether the contents of the field are searchable.

", + "LiteralArrayOptions$ReturnEnabled": "

Whether the contents of the field can be returned in the search results.

", + "LiteralOptions$FacetEnabled": "

Whether facet information can be returned for the field.

", + "LiteralOptions$SearchEnabled": "

Whether the contents of the field are searchable.

", + "LiteralOptions$ReturnEnabled": "

Whether the contents of the field can be returned in the search results.

", + "LiteralOptions$SortEnabled": "

Whether the field can be used to sort the search results.

", + "OptionStatus$PendingDeletion": "

Indicates that the option will be deleted once processing is complete.

", + "TextArrayOptions$ReturnEnabled": "

Whether the contents of the field can be returned in the search results.

", + "TextArrayOptions$HighlightEnabled": "

Whether highlights can be returned for the field.

", + "TextOptions$ReturnEnabled": "

Whether the contents of the field can be returned in the search results.

", + "TextOptions$SortEnabled": "

Whether the field can be used to sort the search results.

", + "TextOptions$HighlightEnabled": "

Whether highlights can be returned for the field.

", + "UpdateAvailabilityOptionsRequest$MultiAZ": "

You expand an existing search domain to a second Availability Zone by setting the Multi-AZ option to true. Similarly, you can turn off the Multi-AZ option to downgrade the domain to a single Availability Zone by setting the Multi-AZ option to false.

" + } + }, + "BuildSuggestersRequest": { + "base": "

Container for the parameters to the BuildSuggester operation. Specifies the name of the domain you want to update.

", + "refs": { + } + }, + "BuildSuggestersResponse": { + "base": "

The result of a BuildSuggester request. Contains a list of the fields used for suggestions.

", + "refs": { + } + }, + "CreateDomainRequest": { + "base": "

Container for the parameters to the CreateDomain operation. Specifies a name for the new search domain.

", + "refs": { + } + }, + "CreateDomainResponse": { + "base": "

The result of a CreateDomainRequest. Contains the status of a newly created domain.

", + "refs": { + } + }, + "DateArrayOptions": { + "base": "

Options for a field that contains an array of dates. Present if IndexFieldType specifies the field is of type date-array. All options are enabled by default.

", + "refs": { + "IndexField$DateArrayOptions": null + } + }, + "DateOptions": { + "base": "

Options for a date field. Dates and times are specified in UTC (Coordinated Universal Time) according to IETF RFC3339: yyyy-mm-ddT00:00:00Z. Present if IndexFieldType specifies the field is of type date. All options are enabled by default.

", + "refs": { + "IndexField$DateOptions": null + } + }, + "DefineAnalysisSchemeRequest": { + "base": "

Container for the parameters to the DefineAnalysisScheme operation. Specifies the name of the domain you want to update and the analysis scheme configuration.

", + "refs": { + } + }, + "DefineAnalysisSchemeResponse": { + "base": "

The result of a DefineAnalysisScheme request. Contains the status of the newly-configured analysis scheme.

", + "refs": { + } + }, + "DefineExpressionRequest": { + "base": "

Container for the parameters to the DefineExpression operation. Specifies the name of the domain you want to update and the expression you want to configure.

", + "refs": { + } + }, + "DefineExpressionResponse": { + "base": "

The result of a DefineExpression request. Contains the status of the newly-configured expression.

", + "refs": { + } + }, + "DefineIndexFieldRequest": { + "base": "

Container for the parameters to the DefineIndexField operation. Specifies the name of the domain you want to update and the index field configuration.

", + "refs": { + } + }, + "DefineIndexFieldResponse": { + "base": "

The result of a DefineIndexField request. Contains the status of the newly-configured index field.

", + "refs": { + } + }, + "DefineSuggesterRequest": { + "base": "

Container for the parameters to the DefineSuggester operation. Specifies the name of the domain you want to update and the suggester configuration.

", + "refs": { + } + }, + "DefineSuggesterResponse": { + "base": "

The result of a DefineSuggester request. Contains the status of the newly-configured suggester.

", + "refs": { + } + }, + "DeleteAnalysisSchemeRequest": { + "base": "

Container for the parameters to the DeleteAnalysisScheme operation. Specifies the name of the domain you want to update and the analysis scheme you want to delete.

", + "refs": { + } + }, + "DeleteAnalysisSchemeResponse": { + "base": "

The result of a DeleteAnalysisScheme request. Contains the status of the deleted analysis scheme.

", + "refs": { + } + }, + "DeleteDomainRequest": { + "base": "

Container for the parameters to the DeleteDomain operation. Specifies the name of the domain you want to delete.

", + "refs": { + } + }, + "DeleteDomainResponse": { + "base": "

The result of a DeleteDomain request. Contains the status of a newly deleted domain, or no status if the domain has already been completely deleted.

", + "refs": { + } + }, + "DeleteExpressionRequest": { + "base": "

Container for the parameters to the DeleteExpression operation. Specifies the name of the domain you want to update and the name of the expression you want to delete.

", + "refs": { + } + }, + "DeleteExpressionResponse": { + "base": "

The result of a DeleteExpression request. Specifies the expression being deleted.

", + "refs": { + } + }, + "DeleteIndexFieldRequest": { + "base": "

Container for the parameters to the DeleteIndexField operation. Specifies the name of the domain you want to update and the name of the index field you want to delete.

", + "refs": { + } + }, + "DeleteIndexFieldResponse": { + "base": "

The result of a DeleteIndexField request.

", + "refs": { + } + }, + "DeleteSuggesterRequest": { + "base": "

Container for the parameters to the DeleteSuggester operation. Specifies the name of the domain you want to update and name of the suggester you want to delete.

", + "refs": { + } + }, + "DeleteSuggesterResponse": { + "base": "

The result of a DeleteSuggester request. Contains the status of the deleted suggester.

", + "refs": { + } + }, + "DescribeAnalysisSchemesRequest": { + "base": "

Container for the parameters to the DescribeAnalysisSchemes operation. Specifies the name of the domain you want to describe. To limit the response to particular analysis schemes, specify the names of the analysis schemes you want to describe. To show the active configuration and exclude any pending changes, set the Deployed option to true.

", + "refs": { + } + }, + "DescribeAnalysisSchemesResponse": { + "base": "

The result of a DescribeAnalysisSchemes request. Contains the analysis schemes configured for the domain specified in the request.

", + "refs": { + } + }, + "DescribeAvailabilityOptionsRequest": { + "base": "

Container for the parameters to the DescribeAvailabilityOptions operation. Specifies the name of the domain you want to describe. To show the active configuration and exclude any pending changes, set the Deployed option to true.

", + "refs": { + } + }, + "DescribeAvailabilityOptionsResponse": { + "base": "

The result of a DescribeAvailabilityOptions request. Indicates whether or not the Multi-AZ option is enabled for the domain specified in the request.

", + "refs": { + } + }, + "DescribeDomainsRequest": { + "base": "

Container for the parameters to the DescribeDomains operation. By default shows the status of all domains. To restrict the response to particular domains, specify the names of the domains you want to describe.

", + "refs": { + } + }, + "DescribeDomainsResponse": { + "base": "

The result of a DescribeDomains request. Contains the status of the domains specified in the request or all domains owned by the account.

", + "refs": { + } + }, + "DescribeExpressionsRequest": { + "base": "

Container for the parameters to the DescribeDomains operation. Specifies the name of the domain you want to describe. To restrict the response to particular expressions, specify the names of the expressions you want to describe. To show the active configuration and exclude any pending changes, set the Deployed option to true.

", + "refs": { + } + }, + "DescribeExpressionsResponse": { + "base": "

The result of a DescribeExpressions request. Contains the expressions configured for the domain specified in the request.

", + "refs": { + } + }, + "DescribeIndexFieldsRequest": { + "base": "

Container for the parameters to the DescribeIndexFields operation. Specifies the name of the domain you want to describe. To restrict the response to particular index fields, specify the names of the index fields you want to describe. To show the active configuration and exclude any pending changes, set the Deployed option to true.

", + "refs": { + } + }, + "DescribeIndexFieldsResponse": { + "base": "

The result of a DescribeIndexFields request. Contains the index fields configured for the domain specified in the request.

", + "refs": { + } + }, + "DescribeScalingParametersRequest": { + "base": "

Container for the parameters to the DescribeScalingParameters operation. Specifies the name of the domain you want to describe.

", + "refs": { + } + }, + "DescribeScalingParametersResponse": { + "base": "

The result of a DescribeScalingParameters request. Contains the scaling parameters configured for the domain specified in the request.

", + "refs": { + } + }, + "DescribeServiceAccessPoliciesRequest": { + "base": "

Container for the parameters to the DescribeServiceAccessPolicies operation. Specifies the name of the domain you want to describe. To show the active configuration and exclude any pending changes, set the Deployed option to true.

", + "refs": { + } + }, + "DescribeServiceAccessPoliciesResponse": { + "base": "

The result of a DescribeServiceAccessPolicies request.

", + "refs": { + } + }, + "DescribeSuggestersRequest": { + "base": "

Container for the parameters to the DescribeSuggester operation. Specifies the name of the domain you want to describe. To restrict the response to particular suggesters, specify the names of the suggesters you want to describe. To show the active configuration and exclude any pending changes, set the Deployed option to true.

", + "refs": { + } + }, + "DescribeSuggestersResponse": { + "base": "

The result of a DescribeSuggesters request.

", + "refs": { + } + }, + "DisabledOperationException": { + "base": "

The request was rejected because it attempted an operation which is not enabled.

", + "refs": { + } + }, + "DocumentSuggesterOptions": { + "base": "

Options for a search suggester.

", + "refs": { + "Suggester$DocumentSuggesterOptions": null + } + }, + "DomainId": { + "base": "

An internally generated unique identifier for a domain.

", + "refs": { + "DomainStatus$DomainId": null + } + }, + "DomainName": { + "base": "

A string that represents the name of a domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).

", + "refs": { + "BuildSuggestersRequest$DomainName": null, + "CreateDomainRequest$DomainName": "

A name for the domain you are creating. Allowed characters are a-z (lower-case letters), 0-9, and hyphen (-). Domain names must start with a letter or number and be at least 3 and no more than 28 characters long.

", + "DefineAnalysisSchemeRequest$DomainName": null, + "DefineExpressionRequest$DomainName": null, + "DefineIndexFieldRequest$DomainName": null, + "DefineSuggesterRequest$DomainName": null, + "DeleteAnalysisSchemeRequest$DomainName": null, + "DeleteDomainRequest$DomainName": "

The name of the domain you want to permanently delete.

", + "DeleteExpressionRequest$DomainName": null, + "DeleteIndexFieldRequest$DomainName": null, + "DeleteSuggesterRequest$DomainName": null, + "DescribeAnalysisSchemesRequest$DomainName": "

The name of the domain you want to describe.

", + "DescribeAvailabilityOptionsRequest$DomainName": "

The name of the domain you want to describe.

", + "DescribeExpressionsRequest$DomainName": "

The name of the domain you want to describe.

", + "DescribeIndexFieldsRequest$DomainName": "

The name of the domain you want to describe.

", + "DescribeScalingParametersRequest$DomainName": null, + "DescribeServiceAccessPoliciesRequest$DomainName": "

The name of the domain you want to describe.

", + "DescribeSuggestersRequest$DomainName": "

The name of the domain you want to describe.

", + "DomainNameList$member": null, + "DomainNameMap$key": null, + "DomainStatus$DomainName": null, + "IndexDocumentsRequest$DomainName": null, + "UpdateAvailabilityOptionsRequest$DomainName": null, + "UpdateScalingParametersRequest$DomainName": null, + "UpdateServiceAccessPoliciesRequest$DomainName": null + } + }, + "DomainNameList": { + "base": "

A list of domain names.

", + "refs": { + "DescribeDomainsRequest$DomainNames": "

The names of the domains you want to include in the response.

" + } + }, + "DomainNameMap": { + "base": "

A collection of domain names.

", + "refs": { + "ListDomainNamesResponse$DomainNames": "

The names of the search domains owned by an account.

" + } + }, + "DomainStatus": { + "base": "

The current status of the search domain.

", + "refs": { + "CreateDomainResponse$DomainStatus": null, + "DeleteDomainResponse$DomainStatus": null, + "DomainStatusList$member": null + } + }, + "DomainStatusList": { + "base": "

A list that contains the status of each requested domain.

", + "refs": { + "DescribeDomainsResponse$DomainStatusList": null + } + }, + "Double": { + "base": null, + "refs": { + "DoubleArrayOptions$DefaultValue": "A value to use for the field if the field isn't specified for a document.", + "DoubleOptions$DefaultValue": "

A value to use for the field if the field isn't specified for a document. This can be important if you are using the field in an expression and that field is not present in every document.

" + } + }, + "DoubleArrayOptions": { + "base": "

Options for a field that contains an array of double-precision 64-bit floating point values. Present if IndexFieldType specifies the field is of type double-array. All options are enabled by default.

", + "refs": { + "IndexField$DoubleArrayOptions": null + } + }, + "DoubleOptions": { + "base": "

Options for a double-precision 64-bit floating point field. Present if IndexFieldType specifies the field is of type double. All options are enabled by default.

", + "refs": { + "IndexField$DoubleOptions": null + } + }, + "DynamicFieldName": { + "base": null, + "refs": { + "DeleteIndexFieldRequest$IndexFieldName": "

The name of the index field your want to remove from the domain's indexing options.

", + "DynamicFieldNameList$member": null, + "IndexField$IndexFieldName": "

A string that represents the name of an index field. CloudSearch supports regular index fields as well as dynamic fields. A dynamic field's name defines a pattern that begins or ends with a wildcard. Any document fields that don't map to a regular index field but do match a dynamic field's pattern are configured with the dynamic field's indexing options.

Regular field names begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ (underscore). Dynamic field names must begin or end with a wildcard (*). The wildcard can also be the only character in a dynamic field name. Multiple wildcards, and wildcards embedded within a string are not supported.

The name score is reserved and cannot be used as a field name. To reference a document's ID, you can use the name _id.

" + } + }, + "DynamicFieldNameList": { + "base": null, + "refs": { + "DescribeIndexFieldsRequest$FieldNames": "

A list of the index fields you want to describe. If not specified, information is returned for all configured index fields.

" + } + }, + "ErrorCode": { + "base": "

A machine-parsable string error or warning code.

", + "refs": { + "BaseException$Code": null + } + }, + "ErrorMessage": { + "base": "

A human-readable string error or warning message.

", + "refs": { + "BaseException$Message": null + } + }, + "Expression": { + "base": "

A named expression that can be evaluated at search time. Can be used to sort the search results, define other expressions, or return computed information in the search results.

", + "refs": { + "DefineExpressionRequest$Expression": null, + "ExpressionStatus$Options": "

The expression that is evaluated for sorting while processing a search request.

" + } + }, + "ExpressionStatus": { + "base": "

The value of an Expression and its current status.

", + "refs": { + "DefineExpressionResponse$Expression": null, + "DeleteExpressionResponse$Expression": "

The status of the expression being deleted.

", + "ExpressionStatusList$member": null + } + }, + "ExpressionStatusList": { + "base": "

Contains the status of multiple expressions.

", + "refs": { + "DescribeExpressionsResponse$Expressions": "

The expressions configured for the domain.

" + } + }, + "ExpressionValue": { + "base": "

The expression to evaluate for sorting while processing a search request. The Expression syntax is based on JavaScript expressions. For more information, see Configuring Expressions in the Amazon CloudSearch Developer Guide.

", + "refs": { + "Expression$ExpressionValue": null + } + }, + "FieldName": { + "base": "

A string that represents the name of an index field. CloudSearch supports regular index fields as well as dynamic fields. A dynamic field's name defines a pattern that begins or ends with a wildcard. Any document fields that don't map to a regular index field but do match a dynamic field's pattern are configured with the dynamic field's indexing options.

Regular field names begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ (underscore). Dynamic field names must begin or end with a wildcard (*). The wildcard can also be the only character in a dynamic field name. Multiple wildcards, and wildcards embedded within a string are not supported.

The name score is reserved and cannot be used as a field name. To reference a document's ID, you can use the name _id.

", + "refs": { + "DateOptions$SourceField": null, + "DocumentSuggesterOptions$SourceField": "

The name of the index field you want to use for suggestions.

", + "DoubleOptions$SourceField": "

The name of the source field to map to the field.

", + "FieldNameList$member": null, + "IntOptions$SourceField": "

The name of the source field to map to the field.

", + "LatLonOptions$SourceField": null, + "LiteralOptions$SourceField": null, + "TextOptions$SourceField": null + } + }, + "FieldNameCommaList": { + "base": null, + "refs": { + "DateArrayOptions$SourceFields": "

A list of source fields to map to the field.

", + "DoubleArrayOptions$SourceFields": "

A list of source fields to map to the field.

", + "IntArrayOptions$SourceFields": "

A list of source fields to map to the field.

", + "LiteralArrayOptions$SourceFields": "

A list of source fields to map to the field.

", + "TextArrayOptions$SourceFields": "

A list of source fields to map to the field.

" + } + }, + "FieldNameList": { + "base": "

A list of field names.

", + "refs": { + "BuildSuggestersResponse$FieldNames": null, + "IndexDocumentsResponse$FieldNames": "

The names of the fields that are currently being indexed.

" + } + }, + "FieldValue": { + "base": "

The value of a field attribute.

", + "refs": { + "DateArrayOptions$DefaultValue": "A value to use for the field if the field isn't specified for a document.", + "DateOptions$DefaultValue": "A value to use for the field if the field isn't specified for a document.", + "LatLonOptions$DefaultValue": "A value to use for the field if the field isn't specified for a document.", + "LiteralArrayOptions$DefaultValue": "A value to use for the field if the field isn't specified for a document.", + "LiteralOptions$DefaultValue": "A value to use for the field if the field isn't specified for a document.", + "TextArrayOptions$DefaultValue": "A value to use for the field if the field isn't specified for a document.", + "TextOptions$DefaultValue": "A value to use for the field if the field isn't specified for a document." + } + }, + "IndexDocumentsRequest": { + "base": "

Container for the parameters to the IndexDocuments operation. Specifies the name of the domain you want to re-index.

", + "refs": { + } + }, + "IndexDocumentsResponse": { + "base": "

The result of an IndexDocuments request. Contains the status of the indexing operation, including the fields being indexed.

", + "refs": { + } + }, + "IndexField": { + "base": "

Configuration information for a field in the index, including its name, type, and options. The supported options depend on the IndexFieldType.

", + "refs": { + "DefineIndexFieldRequest$IndexField": "

The index field and field options you want to configure.

", + "IndexFieldStatus$Options": null + } + }, + "IndexFieldStatus": { + "base": "

The value of an IndexField and its current status.

", + "refs": { + "DefineIndexFieldResponse$IndexField": null, + "DeleteIndexFieldResponse$IndexField": "

The status of the index field being deleted.

", + "IndexFieldStatusList$member": null + } + }, + "IndexFieldStatusList": { + "base": "

Contains the status of multiple index fields.

", + "refs": { + "DescribeIndexFieldsResponse$IndexFields": "

The index fields configured for the domain.

" + } + }, + "IndexFieldType": { + "base": "

The type of field. The valid options for a field depend on the field type. For more information about the supported field types, see Configuring Index Fields in the Amazon CloudSearch Developer Guide.

", + "refs": { + "IndexField$IndexFieldType": null + } + }, + "InstanceCount": { + "base": null, + "refs": { + "DomainStatus$SearchInstanceCount": "

The number of search instances that are available to process search requests.

" + } + }, + "IntArrayOptions": { + "base": "

Options for a field that contains an array of 64-bit signed integers. Present if IndexFieldType specifies the field is of type int-array. All options are enabled by default.

", + "refs": { + "IndexField$IntArrayOptions": null + } + }, + "IntOptions": { + "base": "

Options for a 64-bit signed integer field. Present if IndexFieldType specifies the field is of type int. All options are enabled by default.

", + "refs": { + "IndexField$IntOptions": null + } + }, + "InternalException": { + "base": "

An internal error occurred while processing the request. If this problem persists, report an issue from the Service Health Dashboard.

", + "refs": { + } + }, + "InvalidTypeException": { + "base": "

The request was rejected because it specified an invalid type definition.

", + "refs": { + } + }, + "LatLonOptions": { + "base": "

Options for a latlon field. A latlon field contains a location stored as a latitude and longitude value pair. Present if IndexFieldType specifies the field is of type latlon. All options are enabled by default.

", + "refs": { + "IndexField$LatLonOptions": null + } + }, + "LimitExceededException": { + "base": "

The request was rejected because a resource limit has already been met.

", + "refs": { + } + }, + "Limits": { + "base": null, + "refs": { + "DomainStatus$Limits": null + } + }, + "ListDomainNamesResponse": { + "base": "

The result of a ListDomainNames request. Contains a list of the domains owned by an account.

", + "refs": { + } + }, + "LiteralArrayOptions": { + "base": "

Options for a field that contains an array of literal strings. Present if IndexFieldType specifies the field is of type literal-array. All options are enabled by default.

", + "refs": { + "IndexField$LiteralArrayOptions": null + } + }, + "LiteralOptions": { + "base": "

Options for literal field. Present if IndexFieldType specifies the field is of type literal. All options are enabled by default.

", + "refs": { + "IndexField$LiteralOptions": null + } + }, + "Long": { + "base": null, + "refs": { + "IntArrayOptions$DefaultValue": "A value to use for the field if the field isn't specified for a document.", + "IntOptions$DefaultValue": "A value to use for the field if the field isn't specified for a document. This can be important if you are using the field in an expression and that field is not present in every document." + } + }, + "MaximumPartitionCount": { + "base": null, + "refs": { + "Limits$MaximumPartitionCount": null + } + }, + "MaximumReplicationCount": { + "base": null, + "refs": { + "Limits$MaximumReplicationCount": null + } + }, + "MultiAZ": { + "base": null, + "refs": { + "AvailabilityOptionsStatus$Options": "

The availability options configured for the domain.

" + } + }, + "OptionState": { + "base": "

The state of processing a change to an option. One of:

  • RequiresIndexDocuments: The option's latest value will not be deployed until IndexDocuments has been called and indexing is complete.
  • Processing: The option's latest value is in the process of being activated.
  • Active: The option's latest value is fully deployed.
  • FailedToValidate: The option value is not compatible with the domain's data and cannot be used to index the data. You must either modify the option value or update or remove the incompatible documents.
", + "refs": { + "OptionStatus$State": "

The state of processing a change to an option. Possible values:

  • RequiresIndexDocuments: the option's latest value will not be deployed until IndexDocuments has been called and indexing is complete.
  • Processing: the option's latest value is in the process of being activated.
  • Active: the option's latest value is completely deployed.
  • FailedToValidate: the option value is not compatible with the domain's data and cannot be used to index the data. You must either modify the option value or update or remove the incompatible documents.
" + } + }, + "OptionStatus": { + "base": "

The status of domain configuration option.

", + "refs": { + "AccessPoliciesStatus$Status": null, + "AnalysisSchemeStatus$Status": null, + "AvailabilityOptionsStatus$Status": null, + "ExpressionStatus$Status": null, + "IndexFieldStatus$Status": null, + "ScalingParametersStatus$Status": null, + "SuggesterStatus$Status": null + } + }, + "PartitionCount": { + "base": "

The number of partitions used to hold the domain's index.

", + "refs": { + "DomainStatus$SearchPartitionCount": "

The number of partitions across which the search index is spread.

" + } + }, + "PartitionInstanceType": { + "base": "

The instance type (such as search.m1.small) on which an index partition is hosted.

", + "refs": { + "ScalingParameters$DesiredInstanceType": "

The instance type that you want to preconfigure for your domain. For example, search.m1.small.

" + } + }, + "PolicyDocument": { + "base": "

Access rules for a domain's document or search service endpoints. For more information, see Configuring Access for a Search Domain in the Amazon CloudSearch Developer Guide. The maximum size of a policy document is 100 KB.

", + "refs": { + "AccessPoliciesStatus$Options": null, + "UpdateServiceAccessPoliciesRequest$AccessPolicies": "

The access rules you want to configure. These rules replace any existing rules.

" + } + }, + "ResourceNotFoundException": { + "base": "

The request was rejected because it attempted to reference a resource that does not exist.

", + "refs": { + } + }, + "ScalingParameters": { + "base": "

The desired instance type and desired number of replicas of each index partition.

", + "refs": { + "ScalingParametersStatus$Options": null, + "UpdateScalingParametersRequest$ScalingParameters": null + } + }, + "ScalingParametersStatus": { + "base": "

The status and configuration of a search domain's scaling parameters.

", + "refs": { + "DescribeScalingParametersResponse$ScalingParameters": null, + "UpdateScalingParametersResponse$ScalingParameters": null + } + }, + "SearchInstanceType": { + "base": "

The instance type (such as search.m1.small) that is being used to process search requests.

", + "refs": { + "DomainStatus$SearchInstanceType": "

The instance type that is being used to process search requests.

" + } + }, + "ServiceEndpoint": { + "base": "

The endpoint to which service requests can be submitted.

", + "refs": { + "DomainStatus$DocService": "

The service endpoint for updating documents in a search domain.

", + "DomainStatus$SearchService": "

The service endpoint for requesting search results from a search domain.

" + } + }, + "ServiceUrl": { + "base": "

The endpoint to which service requests can be submitted. For example, search-imdb-movies-oopcnjfn6ugofer3zx5iadxxca.eu-west-1.cloudsearch.amazonaws.com or doc-imdb-movies-oopcnjfn6ugofer3zx5iadxxca.eu-west-1.cloudsearch.amazonaws.com.

", + "refs": { + "ServiceEndpoint$Endpoint": null + } + }, + "StandardName": { + "base": "

Names must begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ (underscore).

", + "refs": { + "AnalysisScheme$AnalysisSchemeName": null, + "DeleteAnalysisSchemeRequest$AnalysisSchemeName": "

The name of the analysis scheme you want to delete.

", + "DeleteExpressionRequest$ExpressionName": "

The name of the Expression to delete.

", + "DeleteSuggesterRequest$SuggesterName": "

Specifies the name of the suggester you want to delete.

", + "Expression$ExpressionName": null, + "StandardNameList$member": null, + "Suggester$SuggesterName": null + } + }, + "StandardNameList": { + "base": null, + "refs": { + "DescribeAnalysisSchemesRequest$AnalysisSchemeNames": "

The analysis schemes you want to describe.

", + "DescribeExpressionsRequest$ExpressionNames": "

Limits the DescribeExpressions response to the specified expressions. If not specified, all expressions are shown.

", + "DescribeSuggestersRequest$SuggesterNames": "

The suggesters you want to describe.

" + } + }, + "String": { + "base": null, + "refs": { + "AnalysisOptions$Synonyms": "

A JSON object that defines synonym groups and aliases. A synonym group is an array of arrays, where each sub-array is a group of terms where each term in the group is considered a synonym of every other term in the group. The aliases value is an object that contains a collection of string:value pairs where the string specifies a term and the array of values specifies each of the aliases for that term. An alias is considered a synonym of the specified term, but the term is not considered a synonym of the alias. For more information about specifying synonyms, see Synonyms in the Amazon CloudSearch Developer Guide.

", + "AnalysisOptions$Stopwords": "

A JSON array of terms to ignore during indexing and searching. For example, [\"a\", \"an\", \"the\", \"of\"]. The stopwords dictionary must explicitly list each word you want to ignore. Wildcards and regular expressions are not supported.

", + "AnalysisOptions$StemmingDictionary": "

A JSON object that contains a collection of string:value pairs that each map a term to its stem. For example, {\"term1\": \"stem1\", \"term2\": \"stem2\", \"term3\": \"stem3\"}. The stemming dictionary is applied in addition to any algorithmic stemming. This enables you to override the results of the algorithmic stemming to correct specific cases of overstemming or understemming. The maximum size of a stemming dictionary is 500 KB.

", + "AnalysisOptions$JapaneseTokenizationDictionary": "

A JSON array that contains a collection of terms, tokens, readings and part of speech for Japanese Tokenizaiton. The Japanese tokenization dictionary enables you to override the default tokenization for selected terms. This is only valid for Japanese language fields.

", + "DocumentSuggesterOptions$SortExpression": "

An expression that computes a score for each suggestion to control how they are sorted. The scores are rounded to the nearest integer, with a floor of 0 and a ceiling of 2^31-1. A document's relevance score is not computed for suggestions, so sort expressions cannot reference the _score value. To sort suggestions using a numeric field or existing expression, simply specify the name of the field or expression. If no expression is configured for the suggester, the suggestions are sorted with the closest matches listed first.

" + } + }, + "Suggester": { + "base": "

Configuration information for a search suggester. Each suggester has a unique name and specifies the text field you want to use for suggestions. The following options can be configured for a suggester: FuzzyMatching, SortExpression.

", + "refs": { + "DefineSuggesterRequest$Suggester": null, + "SuggesterStatus$Options": null + } + }, + "SuggesterFuzzyMatching": { + "base": null, + "refs": { + "DocumentSuggesterOptions$FuzzyMatching": "

The level of fuzziness allowed when suggesting matches for a string: none, low, or high. With none, the specified string is treated as an exact prefix. With low, suggestions must differ from the specified string by no more than one character. With high, suggestions can differ by up to two characters. The default is none.

" + } + }, + "SuggesterStatus": { + "base": "

The value of a Suggester and its current status.

", + "refs": { + "DefineSuggesterResponse$Suggester": null, + "DeleteSuggesterResponse$Suggester": "

The status of the suggester being deleted.

", + "SuggesterStatusList$member": null + } + }, + "SuggesterStatusList": { + "base": "

Contains the status of multiple suggesters.

", + "refs": { + "DescribeSuggestersResponse$Suggesters": "

The suggesters configured for the domain specified in the request.

" + } + }, + "TextArrayOptions": { + "base": "

Options for a field that contains an array of text strings. Present if IndexFieldType specifies the field is of type text-array. A text-array field is always searchable. All options are enabled by default.

", + "refs": { + "IndexField$TextArrayOptions": null + } + }, + "TextOptions": { + "base": "

Options for text field. Present if IndexFieldType specifies the field is of type text. A text field is always searchable. All options are enabled by default.

", + "refs": { + "IndexField$TextOptions": null + } + }, + "UIntValue": { + "base": null, + "refs": { + "OptionStatus$UpdateVersion": "

A unique integer that indicates when this option was last updated.

", + "ScalingParameters$DesiredReplicationCount": "

The number of replicas you want to preconfigure for each index partition.

", + "ScalingParameters$DesiredPartitionCount": "

The number of partitions you want to preconfigure for your domain. Only valid when you select m2.2xlarge as the desired instance type.

" + } + }, + "UpdateAvailabilityOptionsRequest": { + "base": "

Container for the parameters to the UpdateAvailabilityOptions operation. Specifies the name of the domain you want to update and the Multi-AZ availability option.

", + "refs": { + } + }, + "UpdateAvailabilityOptionsResponse": { + "base": "

The result of a UpdateAvailabilityOptions request. Contains the status of the domain's availability options.

", + "refs": { + } + }, + "UpdateScalingParametersRequest": { + "base": "

Container for the parameters to the UpdateScalingParameters operation. Specifies the name of the domain you want to update and the scaling parameters you want to configure.

", + "refs": { + } + }, + "UpdateScalingParametersResponse": { + "base": "

The result of a UpdateScalingParameters request. Contains the status of the newly-configured scaling parameters.

", + "refs": { + } + }, + "UpdateServiceAccessPoliciesRequest": { + "base": "

Container for the parameters to the UpdateServiceAccessPolicies operation. Specifies the name of the domain you want to update and the access rules you want to configure.

", + "refs": { + } + }, + "UpdateServiceAccessPoliciesResponse": { + "base": "

The result of an UpdateServiceAccessPolicies request. Contains the new access policies.

", + "refs": { + } + }, + "UpdateTimestamp": { + "base": null, + "refs": { + "OptionStatus$CreationDate": "

A timestamp for when this option was created.

", + "OptionStatus$UpdateDate": "

A timestamp for when this option was last updated.

" + } + }, + "Word": { + "base": null, + "refs": { + "TextArrayOptions$AnalysisScheme": "

The name of an analysis scheme for a text-array field.

", + "TextOptions$AnalysisScheme": "

The name of an analysis scheme for a text field.

" + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/cloudsearch/2013-01-01/paginators-1.json b/lib/aws-sdk/Aws/data/cloudsearch/2013-01-01/paginators-1.json new file mode 100644 index 0000000..82fa804 --- /dev/null +++ b/lib/aws-sdk/Aws/data/cloudsearch/2013-01-01/paginators-1.json @@ -0,0 +1,20 @@ +{ + "pagination": { + "DescribeAnalysisSchemes": { + "result_key": "AnalysisSchemes" + }, + "DescribeDomains": { + "result_key": "DomainStatusList" + }, + "DescribeExpressions": { + "result_key": "Expressions" + }, + "DescribeIndexFields": { + "result_key": "IndexFields" + }, + "DescribeSuggesters": { + "result_key": "Suggesters" + } + } +} + diff --git a/lib/aws-sdk/Aws/data/cloudsearchdomain/2013-01-01/api-2.json b/lib/aws-sdk/Aws/data/cloudsearchdomain/2013-01-01/api-2.json new file mode 100644 index 0000000..b6f262b --- /dev/null +++ b/lib/aws-sdk/Aws/data/cloudsearchdomain/2013-01-01/api-2.json @@ -0,0 +1,356 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2013-01-01", + "endpointPrefix":"cloudsearchdomain", + "jsonVersion":"1.1", + "serviceFullName":"Amazon CloudSearch Domain", + "signatureVersion":"v4", + "signingName":"cloudsearch", + "protocol":"rest-json" + }, + "operations":{ + "Search":{ + "name":"Search", + "http":{ + "method":"GET", + "requestUri":"/2013-01-01/search?format=sdk&pretty=true" + }, + "input":{"shape":"SearchRequest"}, + "output":{"shape":"SearchResponse"}, + "errors":[ + { + "shape":"SearchException", + "exception":true + } + ] + }, + "Suggest":{ + "name":"Suggest", + "http":{ + "method":"GET", + "requestUri":"/2013-01-01/suggest?format=sdk&pretty=true" + }, + "input":{"shape":"SuggestRequest"}, + "output":{"shape":"SuggestResponse"}, + "errors":[ + { + "shape":"SearchException", + "exception":true + } + ] + }, + "UploadDocuments":{ + "name":"UploadDocuments", + "http":{ + "method":"POST", + "requestUri":"/2013-01-01/documents/batch?format=sdk" + }, + "input":{"shape":"UploadDocumentsRequest"}, + "output":{"shape":"UploadDocumentsResponse"}, + "errors":[ + { + "shape":"DocumentServiceException", + "exception":true + } + ] + } + }, + "shapes":{ + "Adds":{"type":"long"}, + "Blob":{ + "type":"blob", + "streaming":true + }, + "Bucket":{ + "type":"structure", + "members":{ + "value":{"shape":"String"}, + "count":{"shape":"Long"} + } + }, + "BucketInfo":{ + "type":"structure", + "members":{ + "buckets":{"shape":"BucketList"} + } + }, + "BucketList":{ + "type":"list", + "member":{"shape":"Bucket"} + }, + "ContentType":{ + "type":"string", + "enum":[ + "application/json", + "application/xml" + ] + }, + "Cursor":{"type":"string"}, + "Deletes":{"type":"long"}, + "DocumentServiceException":{ + "type":"structure", + "members":{ + "status":{"shape":"String"}, + "message":{"shape":"String"} + }, + "exception":true + }, + "DocumentServiceWarning":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + } + }, + "DocumentServiceWarnings":{ + "type":"list", + "member":{"shape":"DocumentServiceWarning"} + }, + "Expr":{"type":"string"}, + "Exprs":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "Facet":{"type":"string"}, + "Facets":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"BucketInfo"} + }, + "FieldValue":{ + "type":"list", + "member":{"shape":"String"} + }, + "Fields":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"FieldValue"} + }, + "FilterQuery":{"type":"string"}, + "Highlight":{"type":"string"}, + "Highlights":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "Hit":{ + "type":"structure", + "members":{ + "id":{"shape":"String"}, + "fields":{"shape":"Fields"}, + "exprs":{"shape":"Exprs"}, + "highlights":{"shape":"Highlights"} + } + }, + "HitList":{ + "type":"list", + "member":{"shape":"Hit"} + }, + "Hits":{ + "type":"structure", + "members":{ + "found":{"shape":"Long"}, + "start":{"shape":"Long"}, + "cursor":{"shape":"String"}, + "hit":{"shape":"HitList"} + } + }, + "Long":{"type":"long"}, + "Partial":{"type":"boolean"}, + "Query":{"type":"string"}, + "QueryOptions":{"type":"string"}, + "QueryParser":{ + "type":"string", + "enum":[ + "simple", + "structured", + "lucene", + "dismax" + ] + }, + "Return":{"type":"string"}, + "SearchException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "exception":true + }, + "SearchRequest":{ + "type":"structure", + "required":["query"], + "members":{ + "cursor":{ + "shape":"Cursor", + "location":"querystring", + "locationName":"cursor" + }, + "expr":{ + "shape":"Expr", + "location":"querystring", + "locationName":"expr" + }, + "facet":{ + "shape":"Facet", + "location":"querystring", + "locationName":"facet" + }, + "filterQuery":{ + "shape":"FilterQuery", + "location":"querystring", + "locationName":"fq" + }, + "highlight":{ + "shape":"Highlight", + "location":"querystring", + "locationName":"highlight" + }, + "partial":{ + "shape":"Partial", + "location":"querystring", + "locationName":"partial" + }, + "query":{ + "shape":"Query", + "location":"querystring", + "locationName":"q" + }, + "queryOptions":{ + "shape":"QueryOptions", + "location":"querystring", + "locationName":"q.options" + }, + "queryParser":{ + "shape":"QueryParser", + "location":"querystring", + "locationName":"q.parser" + }, + "return":{ + "shape":"Return", + "location":"querystring", + "locationName":"return" + }, + "size":{ + "shape":"Size", + "location":"querystring", + "locationName":"size" + }, + "sort":{ + "shape":"Sort", + "location":"querystring", + "locationName":"sort" + }, + "start":{ + "shape":"Start", + "location":"querystring", + "locationName":"start" + } + } + }, + "SearchResponse":{ + "type":"structure", + "members":{ + "status":{"shape":"SearchStatus"}, + "hits":{"shape":"Hits"}, + "facets":{"shape":"Facets"} + } + }, + "SearchStatus":{ + "type":"structure", + "members":{ + "timems":{"shape":"Long"}, + "rid":{"shape":"String"} + } + }, + "Size":{"type":"long"}, + "Sort":{"type":"string"}, + "Start":{"type":"long"}, + "String":{"type":"string"}, + "SuggestModel":{ + "type":"structure", + "members":{ + "query":{"shape":"String"}, + "found":{"shape":"Long"}, + "suggestions":{"shape":"Suggestions"} + } + }, + "SuggestRequest":{ + "type":"structure", + "required":[ + "query", + "suggester" + ], + "members":{ + "query":{ + "shape":"Query", + "location":"querystring", + "locationName":"q" + }, + "suggester":{ + "shape":"Suggester", + "location":"querystring", + "locationName":"suggester" + }, + "size":{ + "shape":"SuggestionsSize", + "location":"querystring", + "locationName":"size" + } + } + }, + "SuggestResponse":{ + "type":"structure", + "members":{ + "status":{"shape":"SuggestStatus"}, + "suggest":{"shape":"SuggestModel"} + } + }, + "SuggestStatus":{ + "type":"structure", + "members":{ + "timems":{"shape":"Long"}, + "rid":{"shape":"String"} + } + }, + "Suggester":{"type":"string"}, + "SuggestionMatch":{ + "type":"structure", + "members":{ + "suggestion":{"shape":"String"}, + "score":{"shape":"Long"}, + "id":{"shape":"String"} + } + }, + "Suggestions":{ + "type":"list", + "member":{"shape":"SuggestionMatch"} + }, + "SuggestionsSize":{"type":"long"}, + "UploadDocumentsRequest":{ + "type":"structure", + "required":[ + "documents", + "contentType" + ], + "members":{ + "documents":{"shape":"Blob"}, + "contentType":{ + "shape":"ContentType", + "location":"header", + "locationName":"Content-Type" + } + }, + "payload":"documents" + }, + "UploadDocumentsResponse":{ + "type":"structure", + "members":{ + "status":{"shape":"String"}, + "adds":{"shape":"Adds"}, + "deletes":{"shape":"Deletes"}, + "warnings":{"shape":"DocumentServiceWarnings"} + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/cloudsearchdomain/2013-01-01/docs-2.json b/lib/aws-sdk/Aws/data/cloudsearchdomain/2013-01-01/docs-2.json new file mode 100644 index 0000000..25b2792 --- /dev/null +++ b/lib/aws-sdk/Aws/data/cloudsearchdomain/2013-01-01/docs-2.json @@ -0,0 +1,311 @@ +{ + "version": "2.0", + "operations": { + "Search": "

Retrieves a list of documents that match the specified search criteria. How you specify the search criteria depends on which query parser you use. Amazon CloudSearch supports four query parsers:

  • simple: search all text and text-array fields for the specified string. Search for phrases, individual terms, and prefixes.
  • structured: search specific fields, construct compound queries using Boolean operators, and use advanced features such as term boosting and proximity searching.
  • lucene: specify search criteria using the Apache Lucene query parser syntax.
  • dismax: specify search criteria using the simplified subset of the Apache Lucene query parser syntax defined by the DisMax query parser.

For more information, see Searching Your Data in the Amazon CloudSearch Developer Guide.

The endpoint for submitting Search requests is domain-specific. You submit search requests to a domain's search endpoint. To get the search endpoint for your domain, use the Amazon CloudSearch configuration service DescribeDomains action. A domain's endpoints are also displayed on the domain dashboard in the Amazon CloudSearch console.

", + "Suggest": "

Retrieves autocomplete suggestions for a partial query string. You can use suggestions enable you to display likely matches before users finish typing. In Amazon CloudSearch, suggestions are based on the contents of a particular text field. When you request suggestions, Amazon CloudSearch finds all of the documents whose values in the suggester field start with the specified query string. The beginning of the field must match the query string to be considered a match.

For more information about configuring suggesters and retrieving suggestions, see Getting Suggestions in the Amazon CloudSearch Developer Guide.

The endpoint for submitting Suggest requests is domain-specific. You submit suggest requests to a domain's search endpoint. To get the search endpoint for your domain, use the Amazon CloudSearch configuration service DescribeDomains action. A domain's endpoints are also displayed on the domain dashboard in the Amazon CloudSearch console.

", + "UploadDocuments": "

Posts a batch of documents to a search domain for indexing. A document batch is a collection of add and delete operations that represent the documents you want to add, update, or delete from your domain. Batches can be described in either JSON or XML. Each item that you want Amazon CloudSearch to return as a search result (such as a product) is represented as a document. Every document has a unique ID and one or more fields that contain the data that you want to search and return in results. Individual documents cannot contain more than 1 MB of data. The entire batch cannot exceed 5 MB. To get the best possible upload performance, group add and delete operations in batches that are close the 5 MB limit. Submitting a large volume of single-document batches can overload a domain's document service.

The endpoint for submitting UploadDocuments requests is domain-specific. To get the document endpoint for your domain, use the Amazon CloudSearch configuration service DescribeDomains action. A domain's endpoints are also displayed on the domain dashboard in the Amazon CloudSearch console.

For more information about formatting your data for Amazon CloudSearch, see Preparing Your Data in the Amazon CloudSearch Developer Guide. For more information about uploading data for indexing, see Uploading Data in the Amazon CloudSearch Developer Guide.

" + }, + "service": "

You use the AmazonCloudSearch2013 API to upload documents to a search domain and search those documents.

The endpoints for submitting UploadDocuments, Search, and Suggest requests are domain-specific. To get the endpoints for your domain, use the Amazon CloudSearch configuration service DescribeDomains action. The domain endpoints are also displayed on the domain dashboard in the Amazon CloudSearch console. You submit suggest requests to the search endpoint.

For more information, see the Amazon CloudSearch Developer Guide.

", + "shapes": { + "Adds": { + "base": null, + "refs": { + "UploadDocumentsResponse$adds": "

The number of documents that were added to the search domain.

" + } + }, + "Blob": { + "base": null, + "refs": { + "UploadDocumentsRequest$documents": "

A batch of documents formatted in JSON or HTML.

" + } + }, + "Bucket": { + "base": "

A container for facet information.

", + "refs": { + "BucketList$member": null + } + }, + "BucketInfo": { + "base": "

A container for the calculated facet values and counts.

", + "refs": { + "Facets$value": null + } + }, + "BucketList": { + "base": null, + "refs": { + "BucketInfo$buckets": "

A list of the calculated facet values and counts.

" + } + }, + "ContentType": { + "base": null, + "refs": { + "UploadDocumentsRequest$contentType": "

The format of the batch you are uploading. Amazon CloudSearch supports two document batch formats:

  • application/json
  • application/xml
" + } + }, + "Cursor": { + "base": null, + "refs": { + "SearchRequest$cursor": "

Retrieves a cursor value you can use to page through large result sets. Use the size parameter to control the number of hits to include in each response. You can specify either the cursor or start parameter in a request; they are mutually exclusive. To get the first cursor, set the cursor value to initial. In subsequent requests, specify the cursor value returned in the hits section of the response.

For more information, see Paginating Results in the Amazon CloudSearch Developer Guide.

" + } + }, + "Deletes": { + "base": null, + "refs": { + "UploadDocumentsResponse$deletes": "

The number of documents that were deleted from the search domain.

" + } + }, + "DocumentServiceException": { + "base": "

Information about any problems encountered while processing an upload request.

", + "refs": { + } + }, + "DocumentServiceWarning": { + "base": "

A warning returned by the document service when an issue is discovered while processing an upload request.

", + "refs": { + "DocumentServiceWarnings$member": null + } + }, + "DocumentServiceWarnings": { + "base": null, + "refs": { + "UploadDocumentsResponse$warnings": "

Any warnings returned by the document service about the documents being uploaded.

" + } + }, + "Expr": { + "base": null, + "refs": { + "SearchRequest$expr": "

Defines one or more numeric expressions that can be used to sort results or specify search or filter criteria. You can also specify expressions as return fields.

You specify the expressions in JSON using the form {\"EXPRESSIONNAME\":\"EXPRESSION\"}. You can define and use multiple expressions in a search request. For example:

{\"expression1\":\"_score*rating\", \"expression2\":\"(1/rank)*year\"}

For information about the variables, operators, and functions you can use in expressions, see Writing Expressions in the Amazon CloudSearch Developer Guide.

" + } + }, + "Exprs": { + "base": null, + "refs": { + "Hit$exprs": "

The expressions returned from a document that matches the search request.

" + } + }, + "Facet": { + "base": null, + "refs": { + "SearchRequest$facet": "

Specifies one or more fields for which to get facet information, and options that control how the facet information is returned. Each specified field must be facet-enabled in the domain configuration. The fields and options are specified in JSON using the form {\"FIELD\":{\"OPTION\":VALUE,\"OPTION:\"STRING\"},\"FIELD\":{\"OPTION\":VALUE,\"OPTION\":\"STRING\"}}.

You can specify the following faceting options:

  • buckets specifies an array of the facet values or ranges to count. Ranges are specified using the same syntax that you use to search for a range of values. For more information, see Searching for a Range of Values in the Amazon CloudSearch Developer Guide. Buckets are returned in the order they are specified in the request. The sort and size options are not valid if you specify buckets.

  • size specifies the maximum number of facets to include in the results. By default, Amazon CloudSearch returns counts for the top 10. The size parameter is only valid when you specify the sort option; it cannot be used in conjunction with buckets.

  • sort specifies how you want to sort the facets in the results: bucket or count. Specify bucket to sort alphabetically or numerically by facet value (in ascending order). Specify count to sort by the facet counts computed for each facet value (in descending order). To retrieve facet counts for particular values or ranges of values, use the buckets option instead of sort.

If no facet options are specified, facet counts are computed for all field values, the facets are sorted by facet count, and the top 10 facets are returned in the results.

To count particular buckets of values, use the buckets option. For example, the following request uses the buckets option to calculate and return facet counts by decade.

{\"year\":{\"buckets\":[\"[1970,1979]\",\"[1980,1989]\",\"[1990,1999]\",\"[2000,2009]\",\"[2010,}\"]}}

To sort facets by facet count, use the count option. For example, the following request sets the sort option to count to sort the facet values by facet count, with the facet values that have the most matching documents listed first. Setting the size option to 3 returns only the top three facet values.

{\"year\":{\"sort\":\"count\",\"size\":3}}

To sort the facets by value, use the bucket option. For example, the following request sets the sort option to bucket to sort the facet values numerically by year, with earliest year listed first.

{\"year\":{\"sort\":\"bucket\"}}

For more information, see Getting and Using Facet Information in the Amazon CloudSearch Developer Guide.

" + } + }, + "Facets": { + "base": null, + "refs": { + "SearchResponse$facets": "

The requested facet information.

" + } + }, + "FieldValue": { + "base": null, + "refs": { + "Fields$value": null + } + }, + "Fields": { + "base": null, + "refs": { + "Hit$fields": "

The fields returned from a document that matches the search request.

" + } + }, + "FilterQuery": { + "base": null, + "refs": { + "SearchRequest$filterQuery": "

Specifies a structured query that filters the results of a search without affecting how the results are scored and sorted. You use filterQuery in conjunction with the query parameter to filter the documents that match the constraints specified in the query parameter. Specifying a filter controls only which matching documents are included in the results, it has no effect on how they are scored and sorted. The filterQuery parameter supports the full structured query syntax.

For more information about using filters, see Filtering Matching Documents in the Amazon CloudSearch Developer Guide.

" + } + }, + "Highlight": { + "base": null, + "refs": { + "SearchRequest$highlight": "

Retrieves highlights for matches in the specified text or text-array fields. Each specified field must be highlight enabled in the domain configuration. The fields and options are specified in JSON using the form {\"FIELD\":{\"OPTION\":VALUE,\"OPTION:\"STRING\"},\"FIELD\":{\"OPTION\":VALUE,\"OPTION\":\"STRING\"}}.

You can specify the following highlight options:

  • format: specifies the format of the data in the text field: text or html. When data is returned as HTML, all non-alphanumeric characters are encoded. The default is html.
  • max_phrases: specifies the maximum number of occurrences of the search term(s) you want to highlight. By default, the first occurrence is highlighted.
  • pre_tag: specifies the string to prepend to an occurrence of a search term. The default for HTML highlights is &lt;em&gt;. The default for text highlights is *.
  • post_tag: specifies the string to append to an occurrence of a search term. The default for HTML highlights is &lt;/em&gt;. The default for text highlights is *.

If no highlight options are specified for a field, the returned field text is treated as HTML and the first match is highlighted with emphasis tags: &lt;em>search-term&lt;/em&gt;.

For example, the following request retrieves highlights for the actors and title fields.

{ \"actors\": {}, \"title\": {\"format\": \"text\",\"max_phrases\": 2,\"pre_tag\": \"\",\"post_tag\": \"\"} }

" + } + }, + "Highlights": { + "base": null, + "refs": { + "Hit$highlights": "

The highlights returned from a document that matches the search request.

" + } + }, + "Hit": { + "base": "

Information about a document that matches the search request.

", + "refs": { + "HitList$member": null + } + }, + "HitList": { + "base": null, + "refs": { + "Hits$hit": "

A document that matches the search request.

" + } + }, + "Hits": { + "base": "

The collection of documents that match the search request.

", + "refs": { + "SearchResponse$hits": "

The documents that match the search criteria.

" + } + }, + "Long": { + "base": null, + "refs": { + "Bucket$count": "

The number of hits that contain the facet value in the specified facet field.

", + "Hits$found": "

The total number of documents that match the search request.

", + "Hits$start": "

The index of the first matching document.

", + "SearchStatus$timems": "

How long it took to process the request, in milliseconds.

", + "SuggestModel$found": "

The number of documents that were found to match the query string.

", + "SuggestStatus$timems": "

How long it took to process the request, in milliseconds.

", + "SuggestionMatch$score": "

The relevance score of a suggested match.

" + } + }, + "Partial": { + "base": null, + "refs": { + "SearchRequest$partial": "

Enables partial results to be returned if one or more index partitions are unavailable. When your search index is partitioned across multiple search instances, by default Amazon CloudSearch only returns results if every partition can be queried. This means that the failure of a single search instance can result in 5xx (internal server) errors. When you enable partial results, Amazon CloudSearch returns whatever results are available and includes the percentage of documents searched in the search results (percent-searched). This enables you to more gracefully degrade your users' search experience. For example, rather than displaying no results, you could display the partial results and a message indicating that the results might be incomplete due to a temporary system outage.

" + } + }, + "Query": { + "base": null, + "refs": { + "SearchRequest$query": "

Specifies the search criteria for the request. How you specify the search criteria depends on the query parser used for the request and the parser options specified in the queryOptions parameter. By default, the simple query parser is used to process requests. To use the structured, lucene, or dismax query parser, you must also specify the queryParser parameter.

For more information about specifying search criteria, see Searching Your Data in the Amazon CloudSearch Developer Guide.

", + "SuggestRequest$query": "

Specifies the string for which you want to get suggestions.

" + } + }, + "QueryOptions": { + "base": null, + "refs": { + "SearchRequest$queryOptions": "

Configures options for the query parser specified in the queryParser parameter. You specify the options in JSON using the following form {\"OPTION1\":\"VALUE1\",\"OPTION2\":VALUE2\"...\"OPTIONN\":\"VALUEN\"}.

The options you can configure vary according to which parser you use:

  • defaultOperator: The default operator used to combine individual terms in the search string. For example: defaultOperator: 'or'. For the dismax parser, you specify a percentage that represents the percentage of terms in the search string (rounded down) that must match, rather than a default operator. A value of 0% is the equivalent to OR, and a value of 100% is equivalent to AND. The percentage must be specified as a value in the range 0-100 followed by the percent (%) symbol. For example, defaultOperator: 50%. Valid values: and, or, a percentage in the range 0%-100% (dismax). Default: and (simple, structured, lucene) or 100 (dismax). Valid for: simple, structured, lucene, and dismax.
  • fields: An array of the fields to search when no fields are specified in a search. If no fields are specified in a search and this option is not specified, all text and text-array fields are searched. You can specify a weight for each field to control the relative importance of each field when Amazon CloudSearch calculates relevance scores. To specify a field weight, append a caret (^) symbol and the weight to the field name. For example, to boost the importance of the title field over the description field you could specify: \"fields\":[\"title^5\",\"description\"]. Valid values: The name of any configured field and an optional numeric value greater than zero. Default: All text and text-array fields. Valid for: simple, structured, lucene, and dismax.
  • operators: An array of the operators or special characters you want to disable for the simple query parser. If you disable the and, or, or not operators, the corresponding operators (+, |, -) have no special meaning and are dropped from the search string. Similarly, disabling prefix disables the wildcard operator (*) and disabling phrase disables the ability to search for phrases by enclosing phrases in double quotes. Disabling precedence disables the ability to control order of precedence using parentheses. Disabling near disables the ability to use the ~ operator to perform a sloppy phrase search. Disabling the fuzzy operator disables the ability to use the ~ operator to perform a fuzzy search. escape disables the ability to use a backslash (\\) to escape special characters within the search string. Disabling whitespace is an advanced option that prevents the parser from tokenizing on whitespace, which can be useful for Vietnamese. (It prevents Vietnamese words from being split incorrectly.) For example, you could disable all operators other than the phrase operator to support just simple term and phrase queries: \"operators\":[\"and\",\"not\",\"or\", \"prefix\"]. Valid values: and, escape, fuzzy, near, not, or, phrase, precedence, prefix, whitespace. Default: All operators and special characters are enabled. Valid for: simple.
  • phraseFields: An array of the text or text-array fields you want to use for phrase searches. When the terms in the search string appear in close proximity within a field, the field scores higher. You can specify a weight for each field to boost that score. The phraseSlop option controls how much the matches can deviate from the search string and still be boosted. To specify a field weight, append a caret (^) symbol and the weight to the field name. For example, to boost phrase matches in the title field over the abstract field, you could specify: \"phraseFields\":[\"title^3\", \"plot\"] Valid values: The name of any text or text-array field and an optional numeric value greater than zero. Default: No fields. If you don't specify any fields with phraseFields, proximity scoring is disabled even if phraseSlop is specified. Valid for: dismax.
  • phraseSlop: An integer value that specifies how much matches can deviate from the search phrase and still be boosted according to the weights specified in the phraseFields option; for example, phraseSlop: 2. You must also specify phraseFields to enable proximity scoring. Valid values: positive integers. Default: 0. Valid for: dismax.
  • explicitPhraseSlop: An integer value that specifies how much a match can deviate from the search phrase when the phrase is enclosed in double quotes in the search string. (Phrases that exceed this proximity distance are not considered a match.) For example, to specify a slop of three for dismax phrase queries, you would specify \"explicitPhraseSlop\":3. Valid values: positive integers. Default: 0. Valid for: dismax.
  • tieBreaker: When a term in the search string is found in a document's field, a score is calculated for that field based on how common the word is in that field compared to other documents. If the term occurs in multiple fields within a document, by default only the highest scoring field contributes to the document's overall score. You can specify a tieBreaker value to enable the matches in lower-scoring fields to contribute to the document's score. That way, if two documents have the same max field score for a particular term, the score for the document that has matches in more fields will be higher. The formula for calculating the score with a tieBreaker is (max field score) + (tieBreaker) * (sum of the scores for the rest of the matching fields). Set tieBreaker to 0 to disregard all but the highest scoring field (pure max): \"tieBreaker\":0. Set to 1 to sum the scores from all fields (pure sum): \"tieBreaker\":1. Valid values: 0.0 to 1.0. Default: 0.0. Valid for: dismax.
" + } + }, + "QueryParser": { + "base": null, + "refs": { + "SearchRequest$queryParser": "

Specifies which query parser to use to process the request. If queryParser is not specified, Amazon CloudSearch uses the simple query parser.

Amazon CloudSearch supports four query parsers:

  • simple: perform simple searches of text and text-array fields. By default, the simple query parser searches all text and text-array fields. You can specify which fields to search by with the queryOptions parameter. If you prefix a search term with a plus sign (+) documents must contain the term to be considered a match. (This is the default, unless you configure the default operator with the queryOptions parameter.) You can use the - (NOT), | (OR), and * (wildcard) operators to exclude particular terms, find results that match any of the specified terms, or search for a prefix. To search for a phrase rather than individual terms, enclose the phrase in double quotes. For more information, see Searching for Text in the Amazon CloudSearch Developer Guide.
  • structured: perform advanced searches by combining multiple expressions to define the search criteria. You can also search within particular fields, search for values and ranges of values, and use advanced options such as term boosting, matchall, and near. For more information, see Constructing Compound Queries in the Amazon CloudSearch Developer Guide.
  • lucene: search using the Apache Lucene query parser syntax. For more information, see Apache Lucene Query Parser Syntax.
  • dismax: search using the simplified subset of the Apache Lucene query parser syntax defined by the DisMax query parser. For more information, see DisMax Query Parser Syntax.
" + } + }, + "Return": { + "base": null, + "refs": { + "SearchRequest$return": "

Specifies the field and expression values to include in the response. Multiple fields or expressions are specified as a comma-separated list. By default, a search response includes all return enabled fields (_all_fields). To return only the document IDs for the matching documents, specify _no_fields. To retrieve the relevance score calculated for each document, specify _score.

" + } + }, + "SearchException": { + "base": "

Information about any problems encountered while processing a search request.

", + "refs": { + } + }, + "SearchRequest": { + "base": "

Container for the parameters to the Search request.

", + "refs": { + } + }, + "SearchResponse": { + "base": "

The result of a Search request. Contains the documents that match the specified search criteria and any requested fields, highlights, and facet information.

", + "refs": { + } + }, + "SearchStatus": { + "base": "

Contains the resource id (rid) and the time it took to process the request (timems).

", + "refs": { + "SearchResponse$status": "

The status information returned for the search request.

" + } + }, + "Size": { + "base": null, + "refs": { + "SearchRequest$size": "

Specifies the maximum number of search hits to include in the response.

" + } + }, + "Sort": { + "base": null, + "refs": { + "SearchRequest$sort": "

Specifies the fields or custom expressions to use to sort the search results. Multiple fields or expressions are specified as a comma-separated list. You must specify the sort direction (asc or desc) for each field; for example, year desc,title asc. To use a field to sort results, the field must be sort-enabled in the domain configuration. Array type fields cannot be used for sorting. If no sort parameter is specified, results are sorted by their default relevance scores in descending order: _score desc. You can also sort by document ID (_id asc) and version (_version desc).

For more information, see Sorting Results in the Amazon CloudSearch Developer Guide.

" + } + }, + "Start": { + "base": null, + "refs": { + "SearchRequest$start": "

Specifies the offset of the first search hit you want to return. Note that the result set is zero-based; the first result is at index 0. You can specify either the start or cursor parameter in a request, they are mutually exclusive.

For more information, see Paginating Results in the Amazon CloudSearch Developer Guide.

" + } + }, + "String": { + "base": null, + "refs": { + "Bucket$value": "

The facet value being counted.

", + "DocumentServiceException$status": "

The return status of a document upload request, error or success.

", + "DocumentServiceException$message": "

The description of the errors returned by the document service.

", + "DocumentServiceWarning$message": "

The description for a warning returned by the document service.

", + "Exprs$key": null, + "Exprs$value": null, + "Facets$key": null, + "FieldValue$member": null, + "Fields$key": null, + "Highlights$key": null, + "Highlights$value": null, + "Hit$id": "

The document ID of a document that matches the search request.

", + "Hits$cursor": "

A cursor that can be used to retrieve the next set of matching documents when you want to page through a large result set.

", + "SearchException$message": "

A description of the error returned by the search service.

", + "SearchStatus$rid": "

The encrypted resource ID for the request.

", + "SuggestModel$query": "

The query string specified in the suggest request.

", + "SuggestStatus$rid": "

The encrypted resource ID for the request.

", + "SuggestionMatch$suggestion": "

The string that matches the query string specified in the SuggestRequest.

", + "SuggestionMatch$id": "

The document ID of the suggested document.

", + "UploadDocumentsResponse$status": "

The status of an UploadDocumentsRequest.

" + } + }, + "SuggestModel": { + "base": "

Container for the suggestion information returned in a SuggestResponse.

", + "refs": { + "SuggestResponse$suggest": "

Container for the matching search suggestion information.

" + } + }, + "SuggestRequest": { + "base": "

Container for the parameters to the Suggest request.

", + "refs": { + } + }, + "SuggestResponse": { + "base": "

Contains the response to a Suggest request.

", + "refs": { + } + }, + "SuggestStatus": { + "base": "

Contains the resource id (rid) and the time it took to process the request (timems).

", + "refs": { + "SuggestResponse$status": "

The status of a SuggestRequest. Contains the resource ID (rid) and how long it took to process the request (timems).

" + } + }, + "Suggester": { + "base": null, + "refs": { + "SuggestRequest$suggester": "

Specifies the name of the suggester to use to find suggested matches.

" + } + }, + "SuggestionMatch": { + "base": "

An autocomplete suggestion that matches the query string specified in a SuggestRequest.

", + "refs": { + "Suggestions$member": null + } + }, + "Suggestions": { + "base": null, + "refs": { + "SuggestModel$suggestions": "

The documents that match the query string.

" + } + }, + "SuggestionsSize": { + "base": null, + "refs": { + "SuggestRequest$size": "

Specifies the maximum number of suggestions to return.

" + } + }, + "UploadDocumentsRequest": { + "base": "

Container for the parameters to the UploadDocuments request.

", + "refs": { + } + }, + "UploadDocumentsResponse": { + "base": "

Contains the response to an UploadDocuments request.

", + "refs": { + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/cloudtrail/2013-11-01/api-2.json b/lib/aws-sdk/Aws/data/cloudtrail/2013-11-01/api-2.json new file mode 100644 index 0000000..90f54a3 --- /dev/null +++ b/lib/aws-sdk/Aws/data/cloudtrail/2013-11-01/api-2.json @@ -0,0 +1,824 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2013-11-01", + "endpointPrefix":"cloudtrail", + "jsonVersion":"1.1", + "serviceAbbreviation":"CloudTrail", + "serviceFullName":"AWS CloudTrail", + "signatureVersion":"v4", + "targetPrefix":"com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101", + "protocol":"json" + }, + "operations":{ + "CreateTrail":{ + "name":"CreateTrail", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateTrailRequest"}, + "output":{"shape":"CreateTrailResponse"}, + "errors":[ + { + "shape":"MaximumNumberOfTrailsExceededException", + "error":{ + "code":"MaximumNumberOfTrailsExceeded", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TrailAlreadyExistsException", + "error":{ + "code":"TrailAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"S3BucketDoesNotExistException", + "error":{ + "code":"S3BucketDoesNotExist", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InsufficientS3BucketPolicyException", + "error":{ + "code":"InsufficientS3BucketPolicy", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InsufficientSnsTopicPolicyException", + "error":{ + "code":"InsufficientSnsTopicPolicy", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidS3BucketNameException", + "error":{ + "code":"InvalidS3BucketName", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidS3PrefixException", + "error":{ + "code":"InvalidS3Prefix", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidSnsTopicNameException", + "error":{ + "code":"InvalidSnsTopicName", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidTrailNameException", + "error":{ + "code":"InvalidTrailName", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidCloudWatchLogsLogGroupArnException", + "error":{ + "code":"InvalidCloudWatchLogsLogGroupArn", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidCloudWatchLogsRoleArnException", + "error":{ + "code":"InvalidCloudWatchLogsRoleArn", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CloudWatchLogsDeliveryUnavailableException", + "error":{ + "code":"CloudWatchLogsDeliveryUnavailable", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteTrail":{ + "name":"DeleteTrail", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTrailRequest"}, + "output":{"shape":"DeleteTrailResponse"}, + "errors":[ + { + "shape":"TrailNotFoundException", + "error":{ + "code":"TrailNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidTrailNameException", + "error":{ + "code":"InvalidTrailName", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeTrails":{ + "name":"DescribeTrails", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTrailsRequest"}, + "output":{"shape":"DescribeTrailsResponse"} + }, + "GetTrailStatus":{ + "name":"GetTrailStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetTrailStatusRequest"}, + "output":{"shape":"GetTrailStatusResponse"}, + "errors":[ + { + "shape":"TrailNotFoundException", + "error":{ + "code":"TrailNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidTrailNameException", + "error":{ + "code":"InvalidTrailName", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "LookupEvents":{ + "name":"LookupEvents", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"LookupEventsRequest"}, + "output":{"shape":"LookupEventsResponse"}, + "errors":[ + { + "shape":"InvalidLookupAttributesException", + "error":{ + "code":"InvalidLookupAttributes", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidTimeRangeException", + "error":{ + "code":"InvalidTimeRange", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidMaxResultsException", + "error":{ + "code":"InvalidMaxResults", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidNextTokenException", + "error":{ + "code":"InvalidNextToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "StartLogging":{ + "name":"StartLogging", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartLoggingRequest"}, + "output":{"shape":"StartLoggingResponse"}, + "errors":[ + { + "shape":"TrailNotFoundException", + "error":{ + "code":"TrailNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidTrailNameException", + "error":{ + "code":"InvalidTrailName", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "StopLogging":{ + "name":"StopLogging", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopLoggingRequest"}, + "output":{"shape":"StopLoggingResponse"}, + "errors":[ + { + "shape":"TrailNotFoundException", + "error":{ + "code":"TrailNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidTrailNameException", + "error":{ + "code":"InvalidTrailName", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "UpdateTrail":{ + "name":"UpdateTrail", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateTrailRequest"}, + "output":{"shape":"UpdateTrailResponse"}, + "errors":[ + { + "shape":"S3BucketDoesNotExistException", + "error":{ + "code":"S3BucketDoesNotExist", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InsufficientS3BucketPolicyException", + "error":{ + "code":"InsufficientS3BucketPolicy", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InsufficientSnsTopicPolicyException", + "error":{ + "code":"InsufficientSnsTopicPolicy", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TrailNotFoundException", + "error":{ + "code":"TrailNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidS3BucketNameException", + "error":{ + "code":"InvalidS3BucketName", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidS3PrefixException", + "error":{ + "code":"InvalidS3Prefix", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidSnsTopicNameException", + "error":{ + "code":"InvalidSnsTopicName", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidTrailNameException", + "error":{ + "code":"InvalidTrailName", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidCloudWatchLogsLogGroupArnException", + "error":{ + "code":"InvalidCloudWatchLogsLogGroupArn", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidCloudWatchLogsRoleArnException", + "error":{ + "code":"InvalidCloudWatchLogsRoleArn", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CloudWatchLogsDeliveryUnavailableException", + "error":{ + "code":"CloudWatchLogsDeliveryUnavailable", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + } + }, + "shapes":{ + "Boolean":{"type":"boolean"}, + "CloudWatchLogsDeliveryUnavailableException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"CloudWatchLogsDeliveryUnavailable", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "CreateTrailRequest":{ + "type":"structure", + "required":[ + "Name", + "S3BucketName" + ], + "members":{ + "Name":{"shape":"String"}, + "S3BucketName":{"shape":"String"}, + "S3KeyPrefix":{"shape":"String"}, + "SnsTopicName":{"shape":"String"}, + "IncludeGlobalServiceEvents":{"shape":"Boolean"}, + "CloudWatchLogsLogGroupArn":{"shape":"String"}, + "CloudWatchLogsRoleArn":{"shape":"String"} + } + }, + "CreateTrailResponse":{ + "type":"structure", + "members":{ + "Name":{"shape":"String"}, + "S3BucketName":{"shape":"String"}, + "S3KeyPrefix":{"shape":"String"}, + "SnsTopicName":{"shape":"String"}, + "IncludeGlobalServiceEvents":{"shape":"Boolean"}, + "CloudWatchLogsLogGroupArn":{"shape":"String"}, + "CloudWatchLogsRoleArn":{"shape":"String"} + } + }, + "Date":{"type":"timestamp"}, + "DeleteTrailRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"String"} + } + }, + "DeleteTrailResponse":{ + "type":"structure", + "members":{ + } + }, + "DescribeTrailsRequest":{ + "type":"structure", + "members":{ + "trailNameList":{"shape":"TrailNameList"} + } + }, + "DescribeTrailsResponse":{ + "type":"structure", + "members":{ + "trailList":{"shape":"TrailList"} + } + }, + "Event":{ + "type":"structure", + "members":{ + "EventId":{"shape":"String"}, + "EventName":{"shape":"String"}, + "EventTime":{"shape":"Date"}, + "Username":{"shape":"String"}, + "Resources":{"shape":"ResourceList"}, + "CloudTrailEvent":{"shape":"String"} + } + }, + "EventsList":{ + "type":"list", + "member":{"shape":"Event"} + }, + "GetTrailStatusRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"String"} + } + }, + "GetTrailStatusResponse":{ + "type":"structure", + "members":{ + "IsLogging":{"shape":"Boolean"}, + "LatestDeliveryError":{"shape":"String"}, + "LatestNotificationError":{"shape":"String"}, + "LatestDeliveryTime":{"shape":"Date"}, + "LatestNotificationTime":{"shape":"Date"}, + "StartLoggingTime":{"shape":"Date"}, + "StopLoggingTime":{"shape":"Date"}, + "LatestCloudWatchLogsDeliveryError":{"shape":"String"}, + "LatestCloudWatchLogsDeliveryTime":{"shape":"Date"} + } + }, + "InsufficientS3BucketPolicyException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InsufficientS3BucketPolicy", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "InsufficientSnsTopicPolicyException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InsufficientSnsTopicPolicy", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "InvalidCloudWatchLogsLogGroupArnException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidCloudWatchLogsLogGroupArn", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidCloudWatchLogsRoleArnException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidCloudWatchLogsRoleArn", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidLookupAttributesException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidLookupAttributes", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidMaxResultsException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidMaxResults", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidNextTokenException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidNextToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidS3BucketNameException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidS3BucketName", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidS3PrefixException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidS3Prefix", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidSnsTopicNameException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidSnsTopicName", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidTimeRangeException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidTimeRange", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidTrailNameException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidTrailName", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "LookupAttribute":{ + "type":"structure", + "required":[ + "AttributeKey", + "AttributeValue" + ], + "members":{ + "AttributeKey":{"shape":"LookupAttributeKey"}, + "AttributeValue":{"shape":"String"} + } + }, + "LookupAttributeKey":{ + "type":"string", + "enum":[ + "EventId", + "EventName", + "Username", + "ResourceType", + "ResourceName" + ] + }, + "LookupAttributesList":{ + "type":"list", + "member":{"shape":"LookupAttribute"} + }, + "LookupEventsRequest":{ + "type":"structure", + "members":{ + "LookupAttributes":{"shape":"LookupAttributesList"}, + "StartTime":{"shape":"Date"}, + "EndTime":{"shape":"Date"}, + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"NextToken"} + } + }, + "LookupEventsResponse":{ + "type":"structure", + "members":{ + "Events":{"shape":"EventsList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "MaxResults":{ + "type":"integer", + "min":1, + "max":50 + }, + "MaximumNumberOfTrailsExceededException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"MaximumNumberOfTrailsExceeded", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "NextToken":{"type":"string"}, + "Resource":{ + "type":"structure", + "members":{ + "ResourceType":{"shape":"String"}, + "ResourceName":{"shape":"String"} + } + }, + "ResourceList":{ + "type":"list", + "member":{"shape":"Resource"} + }, + "S3BucketDoesNotExistException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"S3BucketDoesNotExist", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "StartLoggingRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"String"} + } + }, + "StartLoggingResponse":{ + "type":"structure", + "members":{ + } + }, + "StopLoggingRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"String"} + } + }, + "StopLoggingResponse":{ + "type":"structure", + "members":{ + } + }, + "String":{"type":"string"}, + "Trail":{ + "type":"structure", + "members":{ + "Name":{"shape":"String"}, + "S3BucketName":{"shape":"String"}, + "S3KeyPrefix":{"shape":"String"}, + "SnsTopicName":{"shape":"String"}, + "IncludeGlobalServiceEvents":{"shape":"Boolean"}, + "CloudWatchLogsLogGroupArn":{"shape":"String"}, + "CloudWatchLogsRoleArn":{"shape":"String"} + } + }, + "TrailAlreadyExistsException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"TrailAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "TrailList":{ + "type":"list", + "member":{"shape":"Trail"} + }, + "TrailNameList":{ + "type":"list", + "member":{"shape":"String"} + }, + "TrailNotFoundException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"TrailNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "UpdateTrailRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"String"}, + "S3BucketName":{"shape":"String"}, + "S3KeyPrefix":{"shape":"String"}, + "SnsTopicName":{"shape":"String"}, + "IncludeGlobalServiceEvents":{"shape":"Boolean"}, + "CloudWatchLogsLogGroupArn":{"shape":"String"}, + "CloudWatchLogsRoleArn":{"shape":"String"} + } + }, + "UpdateTrailResponse":{ + "type":"structure", + "members":{ + "Name":{"shape":"String"}, + "S3BucketName":{"shape":"String"}, + "S3KeyPrefix":{"shape":"String"}, + "SnsTopicName":{"shape":"String"}, + "IncludeGlobalServiceEvents":{"shape":"Boolean"}, + "CloudWatchLogsLogGroupArn":{"shape":"String"}, + "CloudWatchLogsRoleArn":{"shape":"String"} + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/cloudtrail/2013-11-01/docs-2.json b/lib/aws-sdk/Aws/data/cloudtrail/2013-11-01/docs-2.json new file mode 100644 index 0000000..1d22c80 --- /dev/null +++ b/lib/aws-sdk/Aws/data/cloudtrail/2013-11-01/docs-2.json @@ -0,0 +1,328 @@ +{ + "version": "2.0", + "operations": { + "CreateTrail": "

From the command line, use create-subscription.

Creates a trail that specifies the settings for delivery of log data to an Amazon S3 bucket.

", + "DeleteTrail": "

Deletes a trail.

", + "DescribeTrails": "

Retrieves settings for the trail associated with the current region for your account.

", + "GetTrailStatus": "

Returns a JSON-formatted list of information about the specified trail. Fields include information on delivery errors, Amazon SNS and Amazon S3 errors, and start and stop logging times for each trail.

", + "LookupEvents": "

Looks up API activity events captured by CloudTrail that create, update, or delete resources in your account. Events for a region can be looked up for the times in which you had CloudTrail turned on in that region during the last seven days. Lookup supports five different attributes: time range (defined by a start time and end time), user name, event name, resource type, and resource name. All attributes are optional. The maximum number of attributes that can be specified in any one lookup request are time range and one other attribute. The default number of results returned is 10, with a maximum of 50 possible. The response includes a token that you can use to get the next page of results. The rate of lookup requests is limited to one per second per account.

Events that occurred during the selected time range will not be available for lookup if CloudTrail logging was not enabled when the events occurred.", + "StartLogging": "

Starts the recording of AWS API calls and log file delivery for a trail.

", + "StopLogging": "

Suspends the recording of AWS API calls and log file delivery for the specified trail. Under most circumstances, there is no need to use this action. You can update a trail without stopping it first. This action is the only way to stop recording.

", + "UpdateTrail": "

From the command line, use update-subscription.

Updates the settings that specify delivery of log files. Changes to a trail do not require stopping the CloudTrail service. Use this action to designate an existing bucket for log delivery. If the existing bucket has previously been a target for CloudTrail log files, an IAM policy exists for the bucket.

" + }, + "service": "AWS CloudTrail

This is the CloudTrail API Reference. It provides descriptions of actions, data types, common parameters, and common errors for CloudTrail.

CloudTrail is a web service that records AWS API calls for your AWS account and delivers log files to an Amazon S3 bucket. The recorded information includes the identity of the user, the start time of the AWS API call, the source IP address, the request parameters, and the response elements returned by the service.

As an alternative to using the API, you can use one of the AWS SDKs, which consist of libraries and sample code for various programming languages and platforms (Java, Ruby, .NET, iOS, Android, etc.). The SDKs provide a convenient way to create programmatic access to AWSCloudTrail. For example, the SDKs take care of cryptographically signing requests, managing errors, and retrying requests automatically. For information about the AWS SDKs, including how to download and install them, see the Tools for Amazon Web Services page.

See the CloudTrail User Guide for information about the data that is included with each AWS API call listed in the log files.

", + "shapes": { + "Boolean": { + "base": null, + "refs": { + "CreateTrailRequest$IncludeGlobalServiceEvents": "

Specifies whether the trail is publishing events from global services such as IAM to the log files.

", + "CreateTrailResponse$IncludeGlobalServiceEvents": "

Specifies whether the trail is publishing events from global services such as IAM to the log files.

", + "GetTrailStatusResponse$IsLogging": "

Whether the CloudTrail is currently logging AWS API calls.

", + "Trail$IncludeGlobalServiceEvents": "

Set to True to include AWS API calls from AWS global services such as IAM. Otherwise, False.

", + "UpdateTrailRequest$IncludeGlobalServiceEvents": "

Specifies whether the trail is publishing events from global services such as IAM to the log files.

", + "UpdateTrailResponse$IncludeGlobalServiceEvents": "

Specifies whether the trail is publishing events from global services such as IAM to the log files.

" + } + }, + "CloudWatchLogsDeliveryUnavailableException": { + "base": "

Cannot set a CloudWatch Logs delivery for this region.

", + "refs": { + } + }, + "CreateTrailRequest": { + "base": "

Specifies the settings for each trail.

", + "refs": { + } + }, + "CreateTrailResponse": { + "base": "Returns the objects or data listed below if successful. Otherwise, returns an error.", + "refs": { + } + }, + "Date": { + "base": null, + "refs": { + "Event$EventTime": "

The date and time of the event returned.

", + "GetTrailStatusResponse$LatestDeliveryTime": "

Specifies the date and time that CloudTrail last delivered log files to an account's Amazon S3 bucket.

", + "GetTrailStatusResponse$LatestNotificationTime": "

Specifies the date and time of the most recent Amazon SNS notification that CloudTrail has written a new log file to an account's Amazon S3 bucket.

", + "GetTrailStatusResponse$StartLoggingTime": "

Specifies the most recent date and time when CloudTrail started recording API calls for an AWS account.

", + "GetTrailStatusResponse$StopLoggingTime": "

Specifies the most recent date and time when CloudTrail stopped recording API calls for an AWS account.

", + "GetTrailStatusResponse$LatestCloudWatchLogsDeliveryTime": "

Displays the most recent date and time when CloudTrail delivered logs to CloudWatch Logs.

", + "LookupEventsRequest$StartTime": "

Specifies that only events that occur after or at the specified time are returned. If the specified start time is after the specified end time, an error is returned.

", + "LookupEventsRequest$EndTime": "

Specifies that only events that occur before or at the specified time are returned. If the specified end time is before the specified start time, an error is returned.

" + } + }, + "DeleteTrailRequest": { + "base": "The request that specifies the name of a trail to delete.", + "refs": { + } + }, + "DeleteTrailResponse": { + "base": "

Returns the objects or data listed below if successful. Otherwise, returns an error.

", + "refs": { + } + }, + "DescribeTrailsRequest": { + "base": "

Returns information about the trail.

", + "refs": { + } + }, + "DescribeTrailsResponse": { + "base": "

Returns the objects or data listed below if successful. Otherwise, returns an error.

", + "refs": { + } + }, + "Event": { + "base": "

Contains information about an event that was returned by a lookup request. The result includes a representation of a CloudTrail event.

", + "refs": { + "EventsList$member": null + } + }, + "EventsList": { + "base": null, + "refs": { + "LookupEventsResponse$Events": "

A list of events returned based on the lookup attributes specified and the CloudTrail event. The events list is sorted by time. The most recent event is listed first.

" + } + }, + "GetTrailStatusRequest": { + "base": "

The name of a trail about which you want the current status.

", + "refs": { + } + }, + "GetTrailStatusResponse": { + "base": "

Returns the objects or data listed below if successful. Otherwise, returns an error.

", + "refs": { + } + }, + "InsufficientS3BucketPolicyException": { + "base": "

This exception is thrown when the policy on the S3 bucket is not sufficient.

", + "refs": { + } + }, + "InsufficientSnsTopicPolicyException": { + "base": "

This exception is thrown when the policy on the SNS topic is not sufficient.

", + "refs": { + } + }, + "InvalidCloudWatchLogsLogGroupArnException": { + "base": "

This exception is thrown when the provided CloudWatch log group is not valid.

", + "refs": { + } + }, + "InvalidCloudWatchLogsRoleArnException": { + "base": "

This exception is thrown when the provided role is not valid.

", + "refs": { + } + }, + "InvalidLookupAttributesException": { + "base": "

Occurs when an invalid lookup attribute is specified.

", + "refs": { + } + }, + "InvalidMaxResultsException": { + "base": "

This exception is thrown if the limit specified is invalid.

", + "refs": { + } + }, + "InvalidNextTokenException": { + "base": "

Invalid token or token that was previously used in a request with different parameters. This exception is thrown if the token is invalid.

", + "refs": { + } + }, + "InvalidS3BucketNameException": { + "base": "

This exception is thrown when the provided S3 bucket name is not valid.

", + "refs": { + } + }, + "InvalidS3PrefixException": { + "base": "

This exception is thrown when the provided S3 prefix is not valid.

", + "refs": { + } + }, + "InvalidSnsTopicNameException": { + "base": "

This exception is thrown when the provided SNS topic name is not valid.

", + "refs": { + } + }, + "InvalidTimeRangeException": { + "base": "

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.

", + "refs": { + } + }, + "InvalidTrailNameException": { + "base": "

This exception is thrown when the provided trail name is not valid.

", + "refs": { + } + }, + "LookupAttribute": { + "base": "

Specifies an attribute and value that filter the events returned.

", + "refs": { + "LookupAttributesList$member": null + } + }, + "LookupAttributeKey": { + "base": null, + "refs": { + "LookupAttribute$AttributeKey": "

Specifies an attribute on which to filter the events returned.

" + } + }, + "LookupAttributesList": { + "base": null, + "refs": { + "LookupEventsRequest$LookupAttributes": "

Contains a list of lookup attributes. Currently the list can contain only one item.

" + } + }, + "LookupEventsRequest": { + "base": "

Contains a request for LookupEvents.

", + "refs": { + } + }, + "LookupEventsResponse": { + "base": "

Contains a response to a LookupEvents action.

", + "refs": { + } + }, + "MaxResults": { + "base": null, + "refs": { + "LookupEventsRequest$MaxResults": "

The number of events to return. Possible values are 1 through 50. The default is 10.

" + } + }, + "MaximumNumberOfTrailsExceededException": { + "base": "

This exception is thrown when the maximum number of trails is reached.

", + "refs": { + } + }, + "NextToken": { + "base": null, + "refs": { + "LookupEventsRequest$NextToken": "

The token to use to get the next page of results after a previous API call. This token must be passed in with the same parameters that were specified in the the original call. For example, if the original call specified an AttributeKey of 'Username' with a value of 'root', the call with NextToken should include those same parameters.

", + "LookupEventsResponse$NextToken": "

The token to use to get the next page of results after a previous API call. If the token does not appear, there are no more results to return. The token must be passed in with the same parameters as the previous call. For example, if the original call specified an AttributeKey of 'Username' with a value of 'root', the call with NextToken should include those same parameters.

" + } + }, + "Resource": { + "base": "

Specifies the type and name of a resource referenced by an event.

", + "refs": { + "ResourceList$member": null + } + }, + "ResourceList": { + "base": "

A list of resources referenced by the event returned.

", + "refs": { + "Event$Resources": "

A list of resources referenced by the event returned.

" + } + }, + "S3BucketDoesNotExistException": { + "base": "

This exception is thrown when the specified S3 bucket does not exist.

", + "refs": { + } + }, + "StartLoggingRequest": { + "base": "

The request to CloudTrail to start logging AWS API calls for an account.

", + "refs": { + } + }, + "StartLoggingResponse": { + "base": "

Returns the objects or data listed below if successful. Otherwise, returns an error.

", + "refs": { + } + }, + "StopLoggingRequest": { + "base": "

Passes the request to CloudTrail to stop logging AWS API calls for the specified account.

", + "refs": { + } + }, + "StopLoggingResponse": { + "base": "

Returns the objects or data listed below if successful. Otherwise, returns an error.

", + "refs": { + } + }, + "String": { + "base": null, + "refs": { + "CreateTrailRequest$Name": "

Specifies the name of the trail.

", + "CreateTrailRequest$S3BucketName": "

Specifies the name of the Amazon S3 bucket designated for publishing log files.

", + "CreateTrailRequest$S3KeyPrefix": "

Specifies the Amazon S3 key prefix that precedes the name of the bucket you have designated for log file delivery.

", + "CreateTrailRequest$SnsTopicName": "

Specifies the name of the Amazon SNS topic defined for notification of log file delivery.

", + "CreateTrailRequest$CloudWatchLogsLogGroupArn": "

Specifies a log group name using an Amazon Resource Name (ARN), a unique identifier that represents the log group to which CloudTrail logs will be delivered. Not required unless you specify CloudWatchLogsRoleArn.

", + "CreateTrailRequest$CloudWatchLogsRoleArn": "

Specifies the role for the CloudWatch Logs endpoint to assume to write to a user’s log group.

", + "CreateTrailResponse$Name": "

Specifies the name of the trail.

", + "CreateTrailResponse$S3BucketName": "

Specifies the name of the Amazon S3 bucket designated for publishing log files.

", + "CreateTrailResponse$S3KeyPrefix": "

Specifies the Amazon S3 key prefix that precedes the name of the bucket you have designated for log file delivery.

", + "CreateTrailResponse$SnsTopicName": "

Specifies the name of the Amazon SNS topic defined for notification of log file delivery.

", + "CreateTrailResponse$CloudWatchLogsLogGroupArn": "

Specifies the Amazon Resource Name (ARN) of the log group to which CloudTrail logs will be delivered.

", + "CreateTrailResponse$CloudWatchLogsRoleArn": "

Specifies the role for the CloudWatch Logs endpoint to assume to write to a user’s log group.

", + "DeleteTrailRequest$Name": "

The name of a trail to be deleted.

", + "Event$EventId": "

The CloudTrail ID of the event returned.

", + "Event$EventName": "

The name of the event returned.

", + "Event$Username": "

A user name or role name of the requester that called the API in the event returned.

", + "Event$CloudTrailEvent": "

A JSON string that contains a representation of the event returned.

", + "GetTrailStatusRequest$Name": "

The name of the trail for which you are requesting the current status.

", + "GetTrailStatusResponse$LatestDeliveryError": "

Displays any Amazon S3 error that CloudTrail encountered when attempting to deliver log files to the designated bucket. For more information see the topic Error Responses in the Amazon S3 API Reference.

", + "GetTrailStatusResponse$LatestNotificationError": "

Displays any Amazon SNS error that CloudTrail encountered when attempting to send a notification. For more information about Amazon SNS errors, see the Amazon SNS Developer Guide.

", + "GetTrailStatusResponse$LatestCloudWatchLogsDeliveryError": "

Displays any CloudWatch Logs error that CloudTrail encountered when attempting to deliver logs to CloudWatch Logs.

", + "LookupAttribute$AttributeValue": "

Specifies a value for the specified AttributeKey.

", + "Resource$ResourceType": "

The type of a resource referenced by the event returned. When the resource type cannot be determined, null is returned. Some examples of resource types are: Instance for EC2, Trail for CloudTrail, DBInstance for RDS, and AccessKey for IAM. For a list of resource types supported for event lookup, see Resource Types Supported for Event Lookup.

", + "Resource$ResourceName": "

The name of the resource referenced by the event returned. These are user-created names whose values will depend on the environment. For example, the resource name might be \"auto-scaling-test-group\" for an Auto Scaling Group or \"i-1234567\" for an EC2 Instance.

", + "StartLoggingRequest$Name": "

The name of the trail for which CloudTrail logs AWS API calls.

", + "StopLoggingRequest$Name": "

Communicates to CloudTrail the name of the trail for which to stop logging AWS API calls.

", + "Trail$Name": "

Name of the trail set by calling CreateTrail.

", + "Trail$S3BucketName": "

Name of the Amazon S3 bucket into which CloudTrail delivers your trail files.

", + "Trail$S3KeyPrefix": "

Value of the Amazon S3 prefix.

", + "Trail$SnsTopicName": "

Name of the existing Amazon SNS topic that CloudTrail uses to notify the account owner when new CloudTrail log files have been delivered.

", + "Trail$CloudWatchLogsLogGroupArn": "

Specifies an Amazon Resource Name (ARN), a unique identifier that represents the log group to which CloudTrail logs will be delivered.

", + "Trail$CloudWatchLogsRoleArn": "

Specifies the role for the CloudWatch Logs endpoint to assume to write to a user’s log group.

", + "TrailNameList$member": null, + "UpdateTrailRequest$Name": "

Specifies the name of the trail.

", + "UpdateTrailRequest$S3BucketName": "

Specifies the name of the Amazon S3 bucket designated for publishing log files.

", + "UpdateTrailRequest$S3KeyPrefix": "

Specifies the Amazon S3 key prefix that precedes the name of the bucket you have designated for log file delivery.

", + "UpdateTrailRequest$SnsTopicName": "

Specifies the name of the Amazon SNS topic defined for notification of log file delivery.

", + "UpdateTrailRequest$CloudWatchLogsLogGroupArn": "

Specifies a log group name using an Amazon Resource Name (ARN), a unique identifier that represents the log group to which CloudTrail logs will be delivered. Not required unless you specify CloudWatchLogsRoleArn.

", + "UpdateTrailRequest$CloudWatchLogsRoleArn": "

Specifies the role for the CloudWatch Logs endpoint to assume to write to a user’s log group.

", + "UpdateTrailResponse$Name": "

Specifies the name of the trail.

", + "UpdateTrailResponse$S3BucketName": "

Specifies the name of the Amazon S3 bucket designated for publishing log files.

", + "UpdateTrailResponse$S3KeyPrefix": "

Specifies the Amazon S3 key prefix that precedes the name of the bucket you have designated for log file delivery.

", + "UpdateTrailResponse$SnsTopicName": "

Specifies the name of the Amazon SNS topic defined for notification of log file delivery.

", + "UpdateTrailResponse$CloudWatchLogsLogGroupArn": "

Specifies the Amazon Resource Name (ARN) of the log group to which CloudTrail logs will be delivered.

", + "UpdateTrailResponse$CloudWatchLogsRoleArn": "

Specifies the role for the CloudWatch Logs endpoint to assume to write to a user’s log group.

" + } + }, + "Trail": { + "base": "

The settings for a trail.

", + "refs": { + "TrailList$member": null + } + }, + "TrailAlreadyExistsException": { + "base": "

This exception is thrown when the specified trail already exists.

", + "refs": { + } + }, + "TrailList": { + "base": null, + "refs": { + "DescribeTrailsResponse$trailList": "

The list of trails.

" + } + }, + "TrailNameList": { + "base": null, + "refs": { + "DescribeTrailsRequest$trailNameList": "

The trail returned.

" + } + }, + "TrailNotFoundException": { + "base": "

This exception is thrown when the trail with the given name is not found.

", + "refs": { + } + }, + "UpdateTrailRequest": { + "base": "

Specifies settings to update for the trail.

", + "refs": { + } + }, + "UpdateTrailResponse": { + "base": "Returns the objects or data listed below if successful. Otherwise, returns an error.", + "refs": { + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/cloudtrail/2013-11-01/paginators-1.json b/lib/aws-sdk/Aws/data/cloudtrail/2013-11-01/paginators-1.json new file mode 100644 index 0000000..a11f436 --- /dev/null +++ b/lib/aws-sdk/Aws/data/cloudtrail/2013-11-01/paginators-1.json @@ -0,0 +1,7 @@ +{ + "pagination": { + "DescribeTrails": { + "result_key": "trailList" + } + } +} diff --git a/lib/aws-sdk/Aws/data/codedeploy/2014-10-06/api-2.json b/lib/aws-sdk/Aws/data/codedeploy/2014-10-06/api-2.json new file mode 100644 index 0000000..7c6dd3d --- /dev/null +++ b/lib/aws-sdk/Aws/data/codedeploy/2014-10-06/api-2.json @@ -0,0 +1,2250 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2014-10-06", + "endpointPrefix":"codedeploy", + "jsonVersion":"1.1", + "serviceFullName":"AWS CodeDeploy", + "signatureVersion":"v4", + "targetPrefix":"CodeDeploy_20141006", + "timestampFormat":"unixTimestamp", + "protocol":"json" + }, + "operations":{ + "AddTagsToOnPremisesInstances":{ + "name":"AddTagsToOnPremisesInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddTagsToOnPremisesInstancesInput"}, + "errors":[ + { + "shape":"InstanceNameRequiredException", + "exception":true + }, + { + "shape":"TagRequiredException", + "exception":true + }, + { + "shape":"InvalidTagException", + "exception":true + }, + { + "shape":"TagLimitExceededException", + "exception":true + }, + { + "shape":"InstanceLimitExceededException", + "exception":true + }, + { + "shape":"InstanceNotRegisteredException", + "exception":true + } + ] + }, + "BatchGetApplications":{ + "name":"BatchGetApplications", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchGetApplicationsInput"}, + "output":{"shape":"BatchGetApplicationsOutput"}, + "errors":[ + { + "shape":"ApplicationNameRequiredException", + "exception":true + }, + { + "shape":"InvalidApplicationNameException", + "exception":true + }, + { + "shape":"ApplicationDoesNotExistException", + "exception":true + } + ] + }, + "BatchGetDeployments":{ + "name":"BatchGetDeployments", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchGetDeploymentsInput"}, + "output":{"shape":"BatchGetDeploymentsOutput"}, + "errors":[ + { + "shape":"DeploymentIdRequiredException", + "exception":true + }, + { + "shape":"InvalidDeploymentIdException", + "exception":true + } + ] + }, + "BatchGetOnPremisesInstances":{ + "name":"BatchGetOnPremisesInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchGetOnPremisesInstancesInput"}, + "output":{"shape":"BatchGetOnPremisesInstancesOutput"}, + "errors":[ + { + "shape":"InstanceNameRequiredException", + "exception":true + }, + { + "shape":"InvalidInstanceNameException", + "exception":true + } + ] + }, + "CreateApplication":{ + "name":"CreateApplication", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateApplicationInput"}, + "output":{"shape":"CreateApplicationOutput"}, + "errors":[ + { + "shape":"ApplicationNameRequiredException", + "exception":true + }, + { + "shape":"InvalidApplicationNameException", + "exception":true + }, + { + "shape":"ApplicationAlreadyExistsException", + "exception":true + }, + { + "shape":"ApplicationLimitExceededException", + "exception":true + } + ] + }, + "CreateDeployment":{ + "name":"CreateDeployment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDeploymentInput"}, + "output":{"shape":"CreateDeploymentOutput"}, + "errors":[ + { + "shape":"ApplicationNameRequiredException", + "exception":true + }, + { + "shape":"InvalidApplicationNameException", + "exception":true + }, + { + "shape":"ApplicationDoesNotExistException", + "exception":true + }, + { + "shape":"DeploymentGroupNameRequiredException", + "exception":true + }, + { + "shape":"InvalidDeploymentGroupNameException", + "exception":true + }, + { + "shape":"DeploymentGroupDoesNotExistException", + "exception":true + }, + { + "shape":"RevisionRequiredException", + "exception":true + }, + { + "shape":"InvalidRevisionException", + "exception":true + }, + { + "shape":"InvalidDeploymentConfigNameException", + "exception":true + }, + { + "shape":"DeploymentConfigDoesNotExistException", + "exception":true + }, + { + "shape":"DescriptionTooLongException", + "exception":true + }, + { + "shape":"DeploymentLimitExceededException", + "exception":true + } + ] + }, + "CreateDeploymentConfig":{ + "name":"CreateDeploymentConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDeploymentConfigInput"}, + "output":{"shape":"CreateDeploymentConfigOutput"}, + "errors":[ + { + "shape":"InvalidDeploymentConfigNameException", + "exception":true + }, + { + "shape":"DeploymentConfigNameRequiredException", + "exception":true + }, + { + "shape":"DeploymentConfigAlreadyExistsException", + "exception":true + }, + { + "shape":"InvalidMinimumHealthyHostValueException", + "exception":true + }, + { + "shape":"DeploymentConfigLimitExceededException", + "exception":true + } + ] + }, + "CreateDeploymentGroup":{ + "name":"CreateDeploymentGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDeploymentGroupInput"}, + "output":{"shape":"CreateDeploymentGroupOutput"}, + "errors":[ + { + "shape":"ApplicationNameRequiredException", + "exception":true + }, + { + "shape":"InvalidApplicationNameException", + "exception":true + }, + { + "shape":"ApplicationDoesNotExistException", + "exception":true + }, + { + "shape":"DeploymentGroupNameRequiredException", + "exception":true + }, + { + "shape":"InvalidDeploymentGroupNameException", + "exception":true + }, + { + "shape":"DeploymentGroupAlreadyExistsException", + "exception":true + }, + { + "shape":"InvalidEC2TagException", + "exception":true + }, + { + "shape":"InvalidTagException", + "exception":true + }, + { + "shape":"InvalidAutoScalingGroupException", + "exception":true + }, + { + "shape":"InvalidDeploymentConfigNameException", + "exception":true + }, + { + "shape":"DeploymentConfigDoesNotExistException", + "exception":true + }, + { + "shape":"RoleRequiredException", + "exception":true + }, + { + "shape":"InvalidRoleException", + "exception":true + }, + { + "shape":"DeploymentGroupLimitExceededException", + "exception":true + } + ] + }, + "DeleteApplication":{ + "name":"DeleteApplication", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteApplicationInput"}, + "errors":[ + { + "shape":"ApplicationNameRequiredException", + "exception":true + }, + { + "shape":"InvalidApplicationNameException", + "exception":true + } + ] + }, + "DeleteDeploymentConfig":{ + "name":"DeleteDeploymentConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDeploymentConfigInput"}, + "errors":[ + { + "shape":"InvalidDeploymentConfigNameException", + "exception":true + }, + { + "shape":"DeploymentConfigNameRequiredException", + "exception":true + }, + { + "shape":"DeploymentConfigInUseException", + "exception":true + }, + { + "shape":"InvalidOperationException", + "exception":true + } + ] + }, + "DeleteDeploymentGroup":{ + "name":"DeleteDeploymentGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDeploymentGroupInput"}, + "output":{"shape":"DeleteDeploymentGroupOutput"}, + "errors":[ + { + "shape":"ApplicationNameRequiredException", + "exception":true + }, + { + "shape":"InvalidApplicationNameException", + "exception":true + }, + { + "shape":"DeploymentGroupNameRequiredException", + "exception":true + }, + { + "shape":"InvalidDeploymentGroupNameException", + "exception":true + }, + { + "shape":"InvalidRoleException", + "exception":true + } + ] + }, + "DeregisterOnPremisesInstance":{ + "name":"DeregisterOnPremisesInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeregisterOnPremisesInstanceInput"}, + "errors":[ + { + "shape":"InstanceNameRequiredException", + "exception":true + }, + { + "shape":"InvalidInstanceNameException", + "exception":true + } + ] + }, + "GetApplication":{ + "name":"GetApplication", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetApplicationInput"}, + "output":{"shape":"GetApplicationOutput"}, + "errors":[ + { + "shape":"ApplicationNameRequiredException", + "exception":true + }, + { + "shape":"InvalidApplicationNameException", + "exception":true + }, + { + "shape":"ApplicationDoesNotExistException", + "exception":true + } + ] + }, + "GetApplicationRevision":{ + "name":"GetApplicationRevision", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetApplicationRevisionInput"}, + "output":{"shape":"GetApplicationRevisionOutput"}, + "errors":[ + { + "shape":"ApplicationDoesNotExistException", + "exception":true + }, + { + "shape":"ApplicationNameRequiredException", + "exception":true + }, + { + "shape":"InvalidApplicationNameException", + "exception":true + }, + { + "shape":"RevisionDoesNotExistException", + "exception":true + }, + { + "shape":"RevisionRequiredException", + "exception":true + }, + { + "shape":"InvalidRevisionException", + "exception":true + } + ] + }, + "GetDeployment":{ + "name":"GetDeployment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDeploymentInput"}, + "output":{"shape":"GetDeploymentOutput"}, + "errors":[ + { + "shape":"DeploymentIdRequiredException", + "exception":true + }, + { + "shape":"InvalidDeploymentIdException", + "exception":true + }, + { + "shape":"DeploymentDoesNotExistException", + "exception":true + } + ] + }, + "GetDeploymentConfig":{ + "name":"GetDeploymentConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDeploymentConfigInput"}, + "output":{"shape":"GetDeploymentConfigOutput"}, + "errors":[ + { + "shape":"InvalidDeploymentConfigNameException", + "exception":true + }, + { + "shape":"DeploymentConfigNameRequiredException", + "exception":true + }, + { + "shape":"DeploymentConfigDoesNotExistException", + "exception":true + } + ] + }, + "GetDeploymentGroup":{ + "name":"GetDeploymentGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDeploymentGroupInput"}, + "output":{"shape":"GetDeploymentGroupOutput"}, + "errors":[ + { + "shape":"ApplicationNameRequiredException", + "exception":true + }, + { + "shape":"InvalidApplicationNameException", + "exception":true + }, + { + "shape":"ApplicationDoesNotExistException", + "exception":true + }, + { + "shape":"DeploymentGroupNameRequiredException", + "exception":true + }, + { + "shape":"InvalidDeploymentGroupNameException", + "exception":true + }, + { + "shape":"DeploymentGroupDoesNotExistException", + "exception":true + } + ] + }, + "GetDeploymentInstance":{ + "name":"GetDeploymentInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDeploymentInstanceInput"}, + "output":{"shape":"GetDeploymentInstanceOutput"}, + "errors":[ + { + "shape":"DeploymentIdRequiredException", + "exception":true + }, + { + "shape":"DeploymentDoesNotExistException", + "exception":true + }, + { + "shape":"InstanceIdRequiredException", + "exception":true + }, + { + "shape":"InvalidDeploymentIdException", + "exception":true + }, + { + "shape":"InstanceDoesNotExistException", + "exception":true + } + ] + }, + "GetOnPremisesInstance":{ + "name":"GetOnPremisesInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetOnPremisesInstanceInput"}, + "output":{"shape":"GetOnPremisesInstanceOutput"}, + "errors":[ + { + "shape":"InstanceNameRequiredException", + "exception":true + }, + { + "shape":"InstanceNotRegisteredException", + "exception":true + }, + { + "shape":"InvalidInstanceNameException", + "exception":true + } + ] + }, + "ListApplicationRevisions":{ + "name":"ListApplicationRevisions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListApplicationRevisionsInput"}, + "output":{"shape":"ListApplicationRevisionsOutput"}, + "errors":[ + { + "shape":"ApplicationDoesNotExistException", + "exception":true + }, + { + "shape":"ApplicationNameRequiredException", + "exception":true + }, + { + "shape":"InvalidApplicationNameException", + "exception":true + }, + { + "shape":"InvalidSortByException", + "exception":true + }, + { + "shape":"InvalidSortOrderException", + "exception":true + }, + { + "shape":"InvalidBucketNameFilterException", + "exception":true + }, + { + "shape":"InvalidKeyPrefixFilterException", + "exception":true + }, + { + "shape":"BucketNameFilterRequiredException", + "exception":true + }, + { + "shape":"InvalidDeployedStateFilterException", + "exception":true + }, + { + "shape":"InvalidNextTokenException", + "exception":true + } + ] + }, + "ListApplications":{ + "name":"ListApplications", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListApplicationsInput"}, + "output":{"shape":"ListApplicationsOutput"}, + "errors":[ + { + "shape":"InvalidNextTokenException", + "exception":true + } + ] + }, + "ListDeploymentConfigs":{ + "name":"ListDeploymentConfigs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDeploymentConfigsInput"}, + "output":{"shape":"ListDeploymentConfigsOutput"}, + "errors":[ + { + "shape":"InvalidNextTokenException", + "exception":true + } + ] + }, + "ListDeploymentGroups":{ + "name":"ListDeploymentGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDeploymentGroupsInput"}, + "output":{"shape":"ListDeploymentGroupsOutput"}, + "errors":[ + { + "shape":"ApplicationNameRequiredException", + "exception":true + }, + { + "shape":"InvalidApplicationNameException", + "exception":true + }, + { + "shape":"ApplicationDoesNotExistException", + "exception":true + }, + { + "shape":"InvalidNextTokenException", + "exception":true + } + ] + }, + "ListDeploymentInstances":{ + "name":"ListDeploymentInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDeploymentInstancesInput"}, + "output":{"shape":"ListDeploymentInstancesOutput"}, + "errors":[ + { + "shape":"DeploymentIdRequiredException", + "exception":true + }, + { + "shape":"DeploymentDoesNotExistException", + "exception":true + }, + { + "shape":"DeploymentNotStartedException", + "exception":true + }, + { + "shape":"InvalidNextTokenException", + "exception":true + }, + { + "shape":"InvalidDeploymentIdException", + "exception":true + }, + { + "shape":"InvalidInstanceStatusException", + "exception":true + } + ] + }, + "ListDeployments":{ + "name":"ListDeployments", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDeploymentsInput"}, + "output":{"shape":"ListDeploymentsOutput"}, + "errors":[ + { + "shape":"ApplicationNameRequiredException", + "exception":true + }, + { + "shape":"InvalidApplicationNameException", + "exception":true + }, + { + "shape":"ApplicationDoesNotExistException", + "exception":true + }, + { + "shape":"InvalidDeploymentGroupNameException", + "exception":true + }, + { + "shape":"DeploymentGroupDoesNotExistException", + "exception":true + }, + { + "shape":"DeploymentGroupNameRequiredException", + "exception":true + }, + { + "shape":"InvalidTimeRangeException", + "exception":true + }, + { + "shape":"InvalidDeploymentStatusException", + "exception":true + }, + { + "shape":"InvalidNextTokenException", + "exception":true + } + ] + }, + "ListOnPremisesInstances":{ + "name":"ListOnPremisesInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListOnPremisesInstancesInput"}, + "output":{"shape":"ListOnPremisesInstancesOutput"}, + "errors":[ + { + "shape":"InvalidRegistrationStatusException", + "exception":true + }, + { + "shape":"InvalidTagFilterException", + "exception":true + }, + { + "shape":"InvalidNextTokenException", + "exception":true + } + ] + }, + "RegisterApplicationRevision":{ + "name":"RegisterApplicationRevision", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RegisterApplicationRevisionInput"}, + "errors":[ + { + "shape":"ApplicationDoesNotExistException", + "exception":true + }, + { + "shape":"ApplicationNameRequiredException", + "exception":true + }, + { + "shape":"InvalidApplicationNameException", + "exception":true + }, + { + "shape":"DescriptionTooLongException", + "exception":true + }, + { + "shape":"RevisionRequiredException", + "exception":true + }, + { + "shape":"InvalidRevisionException", + "exception":true + } + ] + }, + "RegisterOnPremisesInstance":{ + "name":"RegisterOnPremisesInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RegisterOnPremisesInstanceInput"}, + "errors":[ + { + "shape":"InstanceNameAlreadyRegisteredException", + "exception":true + }, + { + "shape":"IamUserArnAlreadyRegisteredException", + "exception":true + }, + { + "shape":"InstanceNameRequiredException", + "exception":true + }, + { + "shape":"IamUserArnRequiredException", + "exception":true + }, + { + "shape":"InvalidInstanceNameException", + "exception":true + }, + { + "shape":"InvalidIamUserArnException", + "exception":true + } + ] + }, + "RemoveTagsFromOnPremisesInstances":{ + "name":"RemoveTagsFromOnPremisesInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RemoveTagsFromOnPremisesInstancesInput"}, + "errors":[ + { + "shape":"InstanceNameRequiredException", + "exception":true + }, + { + "shape":"TagRequiredException", + "exception":true + }, + { + "shape":"InvalidTagException", + "exception":true + }, + { + "shape":"TagLimitExceededException", + "exception":true + }, + { + "shape":"InstanceLimitExceededException", + "exception":true + }, + { + "shape":"InstanceNotRegisteredException", + "exception":true + } + ] + }, + "StopDeployment":{ + "name":"StopDeployment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopDeploymentInput"}, + "output":{"shape":"StopDeploymentOutput"}, + "errors":[ + { + "shape":"DeploymentIdRequiredException", + "exception":true + }, + { + "shape":"DeploymentDoesNotExistException", + "exception":true + }, + { + "shape":"DeploymentAlreadyCompletedException", + "exception":true + }, + { + "shape":"InvalidDeploymentIdException", + "exception":true + } + ] + }, + "UpdateApplication":{ + "name":"UpdateApplication", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateApplicationInput"}, + "errors":[ + { + "shape":"ApplicationNameRequiredException", + "exception":true + }, + { + "shape":"InvalidApplicationNameException", + "exception":true + }, + { + "shape":"ApplicationAlreadyExistsException", + "exception":true + }, + { + "shape":"ApplicationDoesNotExistException", + "exception":true + } + ] + }, + "UpdateDeploymentGroup":{ + "name":"UpdateDeploymentGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateDeploymentGroupInput"}, + "output":{"shape":"UpdateDeploymentGroupOutput"}, + "errors":[ + { + "shape":"ApplicationNameRequiredException", + "exception":true + }, + { + "shape":"InvalidApplicationNameException", + "exception":true + }, + { + "shape":"ApplicationDoesNotExistException", + "exception":true + }, + { + "shape":"InvalidDeploymentGroupNameException", + "exception":true + }, + { + "shape":"DeploymentGroupAlreadyExistsException", + "exception":true + }, + { + "shape":"DeploymentGroupNameRequiredException", + "exception":true + }, + { + "shape":"DeploymentGroupDoesNotExistException", + "exception":true + }, + { + "shape":"InvalidEC2TagException", + "exception":true + }, + { + "shape":"InvalidTagException", + "exception":true + }, + { + "shape":"InvalidAutoScalingGroupException", + "exception":true + }, + { + "shape":"InvalidDeploymentConfigNameException", + "exception":true + }, + { + "shape":"DeploymentConfigDoesNotExistException", + "exception":true + }, + { + "shape":"InvalidRoleException", + "exception":true + } + ] + } + }, + "shapes":{ + "AddTagsToOnPremisesInstancesInput":{ + "type":"structure", + "required":[ + "tags", + "instanceNames" + ], + "members":{ + "tags":{"shape":"TagList"}, + "instanceNames":{"shape":"InstanceNameList"} + } + }, + "ApplicationAlreadyExistsException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "ApplicationDoesNotExistException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "ApplicationId":{"type":"string"}, + "ApplicationInfo":{ + "type":"structure", + "members":{ + "applicationId":{"shape":"ApplicationId"}, + "applicationName":{"shape":"ApplicationName"}, + "createTime":{"shape":"Timestamp"}, + "linkedToGitHub":{"shape":"Boolean"} + } + }, + "ApplicationLimitExceededException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "ApplicationName":{ + "type":"string", + "min":1, + "max":100 + }, + "ApplicationNameRequiredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "ApplicationRevisionSortBy":{ + "type":"string", + "enum":[ + "registerTime", + "firstUsedTime", + "lastUsedTime" + ] + }, + "ApplicationsInfoList":{ + "type":"list", + "member":{"shape":"ApplicationInfo"} + }, + "ApplicationsList":{ + "type":"list", + "member":{"shape":"ApplicationName"} + }, + "AutoScalingGroup":{ + "type":"structure", + "members":{ + "name":{"shape":"AutoScalingGroupName"}, + "hook":{"shape":"AutoScalingGroupHook"} + } + }, + "AutoScalingGroupHook":{"type":"string"}, + "AutoScalingGroupList":{ + "type":"list", + "member":{"shape":"AutoScalingGroup"} + }, + "AutoScalingGroupName":{"type":"string"}, + "AutoScalingGroupNameList":{ + "type":"list", + "member":{"shape":"AutoScalingGroupName"} + }, + "BatchGetApplicationsInput":{ + "type":"structure", + "members":{ + "applicationNames":{"shape":"ApplicationsList"} + } + }, + "BatchGetApplicationsOutput":{ + "type":"structure", + "members":{ + "applicationsInfo":{"shape":"ApplicationsInfoList"} + } + }, + "BatchGetDeploymentsInput":{ + "type":"structure", + "members":{ + "deploymentIds":{"shape":"DeploymentsList"} + } + }, + "BatchGetDeploymentsOutput":{ + "type":"structure", + "members":{ + "deploymentsInfo":{"shape":"DeploymentsInfoList"} + } + }, + "BatchGetOnPremisesInstancesInput":{ + "type":"structure", + "members":{ + "instanceNames":{"shape":"InstanceNameList"} + } + }, + "BatchGetOnPremisesInstancesOutput":{ + "type":"structure", + "members":{ + "instanceInfos":{"shape":"InstanceInfoList"} + } + }, + "Boolean":{"type":"boolean"}, + "BucketNameFilterRequiredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "BundleType":{ + "type":"string", + "enum":[ + "tar", + "tgz", + "zip" + ] + }, + "CommitId":{"type":"string"}, + "CreateApplicationInput":{ + "type":"structure", + "required":["applicationName"], + "members":{ + "applicationName":{"shape":"ApplicationName"} + } + }, + "CreateApplicationOutput":{ + "type":"structure", + "members":{ + "applicationId":{"shape":"ApplicationId"} + } + }, + "CreateDeploymentConfigInput":{ + "type":"structure", + "required":["deploymentConfigName"], + "members":{ + "deploymentConfigName":{"shape":"DeploymentConfigName"}, + "minimumHealthyHosts":{"shape":"MinimumHealthyHosts"} + } + }, + "CreateDeploymentConfigOutput":{ + "type":"structure", + "members":{ + "deploymentConfigId":{"shape":"DeploymentConfigId"} + } + }, + "CreateDeploymentGroupInput":{ + "type":"structure", + "required":[ + "applicationName", + "deploymentGroupName", + "serviceRoleArn" + ], + "members":{ + "applicationName":{"shape":"ApplicationName"}, + "deploymentGroupName":{"shape":"DeploymentGroupName"}, + "deploymentConfigName":{"shape":"DeploymentConfigName"}, + "ec2TagFilters":{"shape":"EC2TagFilterList"}, + "onPremisesInstanceTagFilters":{"shape":"TagFilterList"}, + "autoScalingGroups":{"shape":"AutoScalingGroupNameList"}, + "serviceRoleArn":{"shape":"Role"} + } + }, + "CreateDeploymentGroupOutput":{ + "type":"structure", + "members":{ + "deploymentGroupId":{"shape":"DeploymentGroupId"} + } + }, + "CreateDeploymentInput":{ + "type":"structure", + "required":["applicationName"], + "members":{ + "applicationName":{"shape":"ApplicationName"}, + "deploymentGroupName":{"shape":"DeploymentGroupName"}, + "revision":{"shape":"RevisionLocation"}, + "deploymentConfigName":{"shape":"DeploymentConfigName"}, + "description":{"shape":"Description"}, + "ignoreApplicationStopFailures":{"shape":"Boolean"} + } + }, + "CreateDeploymentOutput":{ + "type":"structure", + "members":{ + "deploymentId":{"shape":"DeploymentId"} + } + }, + "DeleteApplicationInput":{ + "type":"structure", + "required":["applicationName"], + "members":{ + "applicationName":{"shape":"ApplicationName"} + } + }, + "DeleteDeploymentConfigInput":{ + "type":"structure", + "required":["deploymentConfigName"], + "members":{ + "deploymentConfigName":{"shape":"DeploymentConfigName"} + } + }, + "DeleteDeploymentGroupInput":{ + "type":"structure", + "required":[ + "applicationName", + "deploymentGroupName" + ], + "members":{ + "applicationName":{"shape":"ApplicationName"}, + "deploymentGroupName":{"shape":"DeploymentGroupName"} + } + }, + "DeleteDeploymentGroupOutput":{ + "type":"structure", + "members":{ + "hooksNotCleanedUp":{"shape":"AutoScalingGroupList"} + } + }, + "DeploymentAlreadyCompletedException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "DeploymentConfigAlreadyExistsException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "DeploymentConfigDoesNotExistException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "DeploymentConfigId":{"type":"string"}, + "DeploymentConfigInUseException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "DeploymentConfigInfo":{ + "type":"structure", + "members":{ + "deploymentConfigId":{"shape":"DeploymentConfigId"}, + "deploymentConfigName":{"shape":"DeploymentConfigName"}, + "minimumHealthyHosts":{"shape":"MinimumHealthyHosts"}, + "createTime":{"shape":"Timestamp"} + } + }, + "DeploymentConfigLimitExceededException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "DeploymentConfigName":{ + "type":"string", + "min":1, + "max":100 + }, + "DeploymentConfigNameRequiredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "DeploymentConfigsList":{ + "type":"list", + "member":{"shape":"DeploymentConfigName"} + }, + "DeploymentCreator":{ + "type":"string", + "enum":[ + "user", + "autoscaling" + ] + }, + "DeploymentDoesNotExistException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "DeploymentGroupAlreadyExistsException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "DeploymentGroupDoesNotExistException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "DeploymentGroupId":{"type":"string"}, + "DeploymentGroupInfo":{ + "type":"structure", + "members":{ + "applicationName":{"shape":"ApplicationName"}, + "deploymentGroupId":{"shape":"DeploymentGroupId"}, + "deploymentGroupName":{"shape":"DeploymentGroupName"}, + "deploymentConfigName":{"shape":"DeploymentConfigName"}, + "ec2TagFilters":{"shape":"EC2TagFilterList"}, + "onPremisesInstanceTagFilters":{"shape":"TagFilterList"}, + "autoScalingGroups":{"shape":"AutoScalingGroupList"}, + "serviceRoleArn":{"shape":"Role"}, + "targetRevision":{"shape":"RevisionLocation"} + } + }, + "DeploymentGroupLimitExceededException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "DeploymentGroupName":{ + "type":"string", + "min":1, + "max":100 + }, + "DeploymentGroupNameRequiredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "DeploymentGroupsList":{ + "type":"list", + "member":{"shape":"DeploymentGroupName"} + }, + "DeploymentId":{"type":"string"}, + "DeploymentIdRequiredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "DeploymentInfo":{ + "type":"structure", + "members":{ + "applicationName":{"shape":"ApplicationName"}, + "deploymentGroupName":{"shape":"DeploymentGroupName"}, + "deploymentConfigName":{"shape":"DeploymentConfigName"}, + "deploymentId":{"shape":"DeploymentId"}, + "revision":{"shape":"RevisionLocation"}, + "status":{"shape":"DeploymentStatus"}, + "errorInformation":{"shape":"ErrorInformation"}, + "createTime":{"shape":"Timestamp"}, + "startTime":{"shape":"Timestamp"}, + "completeTime":{"shape":"Timestamp"}, + "deploymentOverview":{"shape":"DeploymentOverview"}, + "description":{"shape":"Description"}, + "creator":{"shape":"DeploymentCreator"}, + "ignoreApplicationStopFailures":{"shape":"Boolean"} + } + }, + "DeploymentLimitExceededException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "DeploymentNotStartedException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "DeploymentOverview":{ + "type":"structure", + "members":{ + "Pending":{"shape":"InstanceCount"}, + "InProgress":{"shape":"InstanceCount"}, + "Succeeded":{"shape":"InstanceCount"}, + "Failed":{"shape":"InstanceCount"}, + "Skipped":{"shape":"InstanceCount"} + } + }, + "DeploymentStatus":{ + "type":"string", + "enum":[ + "Created", + "Queued", + "InProgress", + "Succeeded", + "Failed", + "Stopped" + ] + }, + "DeploymentStatusList":{ + "type":"list", + "member":{"shape":"DeploymentStatus"} + }, + "DeploymentsInfoList":{ + "type":"list", + "member":{"shape":"DeploymentInfo"} + }, + "DeploymentsList":{ + "type":"list", + "member":{"shape":"DeploymentId"} + }, + "DeregisterOnPremisesInstanceInput":{ + "type":"structure", + "required":["instanceName"], + "members":{ + "instanceName":{"shape":"InstanceName"} + } + }, + "Description":{"type":"string"}, + "DescriptionTooLongException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "Diagnostics":{ + "type":"structure", + "members":{ + "errorCode":{"shape":"LifecycleErrorCode"}, + "scriptName":{"shape":"ScriptName"}, + "message":{"shape":"LifecycleMessage"}, + "logTail":{"shape":"LogTail"} + } + }, + "EC2TagFilter":{ + "type":"structure", + "members":{ + "Key":{"shape":"Key"}, + "Value":{"shape":"Value"}, + "Type":{"shape":"EC2TagFilterType"} + } + }, + "EC2TagFilterList":{ + "type":"list", + "member":{"shape":"EC2TagFilter"} + }, + "EC2TagFilterType":{ + "type":"string", + "enum":[ + "KEY_ONLY", + "VALUE_ONLY", + "KEY_AND_VALUE" + ] + }, + "ETag":{"type":"string"}, + "ErrorCode":{ + "type":"string", + "enum":[ + "DEPLOYMENT_GROUP_MISSING", + "APPLICATION_MISSING", + "REVISION_MISSING", + "IAM_ROLE_MISSING", + "IAM_ROLE_PERMISSIONS", + "NO_EC2_SUBSCRIPTION", + "OVER_MAX_INSTANCES", + "NO_INSTANCES", + "TIMEOUT", + "HEALTH_CONSTRAINTS_INVALID", + "HEALTH_CONSTRAINTS", + "INTERNAL_ERROR", + "THROTTLED" + ] + }, + "ErrorInformation":{ + "type":"structure", + "members":{ + "code":{"shape":"ErrorCode"}, + "message":{"shape":"ErrorMessage"} + } + }, + "ErrorMessage":{"type":"string"}, + "GenericRevisionInfo":{ + "type":"structure", + "members":{ + "description":{"shape":"Description"}, + "deploymentGroups":{"shape":"DeploymentGroupsList"}, + "firstUsedTime":{"shape":"Timestamp"}, + "lastUsedTime":{"shape":"Timestamp"}, + "registerTime":{"shape":"Timestamp"} + } + }, + "GetApplicationInput":{ + "type":"structure", + "required":["applicationName"], + "members":{ + "applicationName":{"shape":"ApplicationName"} + } + }, + "GetApplicationOutput":{ + "type":"structure", + "members":{ + "application":{"shape":"ApplicationInfo"} + } + }, + "GetApplicationRevisionInput":{ + "type":"structure", + "required":[ + "applicationName", + "revision" + ], + "members":{ + "applicationName":{"shape":"ApplicationName"}, + "revision":{"shape":"RevisionLocation"} + } + }, + "GetApplicationRevisionOutput":{ + "type":"structure", + "members":{ + "applicationName":{"shape":"ApplicationName"}, + "revision":{"shape":"RevisionLocation"}, + "revisionInfo":{"shape":"GenericRevisionInfo"} + } + }, + "GetDeploymentConfigInput":{ + "type":"structure", + "required":["deploymentConfigName"], + "members":{ + "deploymentConfigName":{"shape":"DeploymentConfigName"} + } + }, + "GetDeploymentConfigOutput":{ + "type":"structure", + "members":{ + "deploymentConfigInfo":{"shape":"DeploymentConfigInfo"} + } + }, + "GetDeploymentGroupInput":{ + "type":"structure", + "required":[ + "applicationName", + "deploymentGroupName" + ], + "members":{ + "applicationName":{"shape":"ApplicationName"}, + "deploymentGroupName":{"shape":"DeploymentGroupName"} + } + }, + "GetDeploymentGroupOutput":{ + "type":"structure", + "members":{ + "deploymentGroupInfo":{"shape":"DeploymentGroupInfo"} + } + }, + "GetDeploymentInput":{ + "type":"structure", + "required":["deploymentId"], + "members":{ + "deploymentId":{"shape":"DeploymentId"} + } + }, + "GetDeploymentInstanceInput":{ + "type":"structure", + "required":[ + "deploymentId", + "instanceId" + ], + "members":{ + "deploymentId":{"shape":"DeploymentId"}, + "instanceId":{"shape":"InstanceId"} + } + }, + "GetDeploymentInstanceOutput":{ + "type":"structure", + "members":{ + "instanceSummary":{"shape":"InstanceSummary"} + } + }, + "GetDeploymentOutput":{ + "type":"structure", + "members":{ + "deploymentInfo":{"shape":"DeploymentInfo"} + } + }, + "GetOnPremisesInstanceInput":{ + "type":"structure", + "required":["instanceName"], + "members":{ + "instanceName":{"shape":"InstanceName"} + } + }, + "GetOnPremisesInstanceOutput":{ + "type":"structure", + "members":{ + "instanceInfo":{"shape":"InstanceInfo"} + } + }, + "GitHubLocation":{ + "type":"structure", + "members":{ + "repository":{"shape":"Repository"}, + "commitId":{"shape":"CommitId"} + } + }, + "IamUserArn":{"type":"string"}, + "IamUserArnAlreadyRegisteredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "IamUserArnRequiredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InstanceArn":{"type":"string"}, + "InstanceCount":{"type":"long"}, + "InstanceDoesNotExistException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InstanceId":{"type":"string"}, + "InstanceIdRequiredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InstanceInfo":{ + "type":"structure", + "members":{ + "instanceName":{"shape":"InstanceName"}, + "iamUserArn":{"shape":"IamUserArn"}, + "instanceArn":{"shape":"InstanceArn"}, + "registerTime":{"shape":"Timestamp"}, + "deregisterTime":{"shape":"Timestamp"}, + "tags":{"shape":"TagList"} + } + }, + "InstanceInfoList":{ + "type":"list", + "member":{"shape":"InstanceInfo"} + }, + "InstanceLimitExceededException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InstanceName":{"type":"string"}, + "InstanceNameAlreadyRegisteredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InstanceNameList":{ + "type":"list", + "member":{"shape":"InstanceName"} + }, + "InstanceNameRequiredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InstanceNotRegisteredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InstanceStatus":{ + "type":"string", + "enum":[ + "Pending", + "InProgress", + "Succeeded", + "Failed", + "Skipped", + "Unknown" + ] + }, + "InstanceStatusList":{ + "type":"list", + "member":{"shape":"InstanceStatus"} + }, + "InstanceSummary":{ + "type":"structure", + "members":{ + "deploymentId":{"shape":"DeploymentId"}, + "instanceId":{"shape":"InstanceId"}, + "status":{"shape":"InstanceStatus"}, + "lastUpdatedAt":{"shape":"Timestamp"}, + "lifecycleEvents":{"shape":"LifecycleEventList"} + } + }, + "InstancesList":{ + "type":"list", + "member":{"shape":"InstanceId"} + }, + "InvalidApplicationNameException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidAutoScalingGroupException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidBucketNameFilterException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidDeployedStateFilterException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidDeploymentConfigNameException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidDeploymentGroupNameException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidDeploymentIdException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidDeploymentStatusException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidEC2TagException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidIamUserArnException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidInstanceNameException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidInstanceStatusException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidKeyPrefixFilterException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidMinimumHealthyHostValueException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidNextTokenException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidOperationException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidRegistrationStatusException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidRevisionException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidRoleException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidSortByException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidSortOrderException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidTagException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidTagFilterException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidTimeRangeException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "Key":{"type":"string"}, + "LifecycleErrorCode":{ + "type":"string", + "enum":[ + "Success", + "ScriptMissing", + "ScriptNotExecutable", + "ScriptTimedOut", + "ScriptFailed", + "UnknownError" + ] + }, + "LifecycleEvent":{ + "type":"structure", + "members":{ + "lifecycleEventName":{"shape":"LifecycleEventName"}, + "diagnostics":{"shape":"Diagnostics"}, + "startTime":{"shape":"Timestamp"}, + "endTime":{"shape":"Timestamp"}, + "status":{"shape":"LifecycleEventStatus"} + } + }, + "LifecycleEventList":{ + "type":"list", + "member":{"shape":"LifecycleEvent"} + }, + "LifecycleEventName":{"type":"string"}, + "LifecycleEventStatus":{ + "type":"string", + "enum":[ + "Pending", + "InProgress", + "Succeeded", + "Failed", + "Skipped", + "Unknown" + ] + }, + "LifecycleMessage":{"type":"string"}, + "ListApplicationRevisionsInput":{ + "type":"structure", + "required":["applicationName"], + "members":{ + "applicationName":{"shape":"ApplicationName"}, + "sortBy":{"shape":"ApplicationRevisionSortBy"}, + "sortOrder":{"shape":"SortOrder"}, + "s3Bucket":{"shape":"S3Bucket"}, + "s3KeyPrefix":{"shape":"S3Key"}, + "deployed":{"shape":"ListStateFilterAction"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListApplicationRevisionsOutput":{ + "type":"structure", + "members":{ + "revisions":{"shape":"RevisionLocationList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListApplicationsInput":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"NextToken"} + } + }, + "ListApplicationsOutput":{ + "type":"structure", + "members":{ + "applications":{"shape":"ApplicationsList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListDeploymentConfigsInput":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"NextToken"} + } + }, + "ListDeploymentConfigsOutput":{ + "type":"structure", + "members":{ + "deploymentConfigsList":{"shape":"DeploymentConfigsList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListDeploymentGroupsInput":{ + "type":"structure", + "required":["applicationName"], + "members":{ + "applicationName":{"shape":"ApplicationName"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListDeploymentGroupsOutput":{ + "type":"structure", + "members":{ + "applicationName":{"shape":"ApplicationName"}, + "deploymentGroups":{"shape":"DeploymentGroupsList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListDeploymentInstancesInput":{ + "type":"structure", + "required":["deploymentId"], + "members":{ + "deploymentId":{"shape":"DeploymentId"}, + "nextToken":{"shape":"NextToken"}, + "instanceStatusFilter":{"shape":"InstanceStatusList"} + } + }, + "ListDeploymentInstancesOutput":{ + "type":"structure", + "members":{ + "instancesList":{"shape":"InstancesList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListDeploymentsInput":{ + "type":"structure", + "members":{ + "applicationName":{"shape":"ApplicationName"}, + "deploymentGroupName":{"shape":"DeploymentGroupName"}, + "includeOnlyStatuses":{"shape":"DeploymentStatusList"}, + "createTimeRange":{"shape":"TimeRange"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListDeploymentsOutput":{ + "type":"structure", + "members":{ + "deployments":{"shape":"DeploymentsList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListOnPremisesInstancesInput":{ + "type":"structure", + "members":{ + "registrationStatus":{"shape":"RegistrationStatus"}, + "tagFilters":{"shape":"TagFilterList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListOnPremisesInstancesOutput":{ + "type":"structure", + "members":{ + "instanceNames":{"shape":"InstanceNameList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListStateFilterAction":{ + "type":"string", + "enum":[ + "include", + "exclude", + "ignore" + ] + }, + "LogTail":{"type":"string"}, + "Message":{"type":"string"}, + "MinimumHealthyHosts":{ + "type":"structure", + "members":{ + "value":{"shape":"MinimumHealthyHostsValue"}, + "type":{"shape":"MinimumHealthyHostsType"} + } + }, + "MinimumHealthyHostsType":{ + "type":"string", + "enum":[ + "HOST_COUNT", + "FLEET_PERCENT" + ] + }, + "MinimumHealthyHostsValue":{"type":"integer"}, + "NextToken":{"type":"string"}, + "RegisterApplicationRevisionInput":{ + "type":"structure", + "required":[ + "applicationName", + "revision" + ], + "members":{ + "applicationName":{"shape":"ApplicationName"}, + "description":{"shape":"Description"}, + "revision":{"shape":"RevisionLocation"} + } + }, + "RegisterOnPremisesInstanceInput":{ + "type":"structure", + "required":[ + "instanceName", + "iamUserArn" + ], + "members":{ + "instanceName":{"shape":"InstanceName"}, + "iamUserArn":{"shape":"IamUserArn"} + } + }, + "RegistrationStatus":{ + "type":"string", + "enum":[ + "Registered", + "Deregistered" + ] + }, + "RemoveTagsFromOnPremisesInstancesInput":{ + "type":"structure", + "required":[ + "tags", + "instanceNames" + ], + "members":{ + "tags":{"shape":"TagList"}, + "instanceNames":{"shape":"InstanceNameList"} + } + }, + "Repository":{"type":"string"}, + "RevisionDoesNotExistException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "RevisionLocation":{ + "type":"structure", + "members":{ + "revisionType":{"shape":"RevisionLocationType"}, + "s3Location":{"shape":"S3Location"}, + "gitHubLocation":{"shape":"GitHubLocation"} + } + }, + "RevisionLocationList":{ + "type":"list", + "member":{"shape":"RevisionLocation"} + }, + "RevisionLocationType":{ + "type":"string", + "enum":[ + "S3", + "GitHub" + ] + }, + "RevisionRequiredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "Role":{"type":"string"}, + "RoleRequiredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "S3Bucket":{"type":"string"}, + "S3Key":{"type":"string"}, + "S3Location":{ + "type":"structure", + "members":{ + "bucket":{"shape":"S3Bucket"}, + "key":{"shape":"S3Key"}, + "bundleType":{"shape":"BundleType"}, + "version":{"shape":"VersionId"}, + "eTag":{"shape":"ETag"} + } + }, + "ScriptName":{"type":"string"}, + "SortOrder":{ + "type":"string", + "enum":[ + "ascending", + "descending" + ] + }, + "StopDeploymentInput":{ + "type":"structure", + "required":["deploymentId"], + "members":{ + "deploymentId":{"shape":"DeploymentId"} + } + }, + "StopDeploymentOutput":{ + "type":"structure", + "members":{ + "status":{"shape":"StopStatus"}, + "statusMessage":{"shape":"Message"} + } + }, + "StopStatus":{ + "type":"string", + "enum":[ + "Pending", + "Succeeded" + ] + }, + "Tag":{ + "type":"structure", + "members":{ + "Key":{"shape":"Key"}, + "Value":{"shape":"Value"} + } + }, + "TagFilter":{ + "type":"structure", + "members":{ + "Key":{"shape":"Key"}, + "Value":{"shape":"Value"}, + "Type":{"shape":"TagFilterType"} + } + }, + "TagFilterList":{ + "type":"list", + "member":{"shape":"TagFilter"} + }, + "TagFilterType":{ + "type":"string", + "enum":[ + "KEY_ONLY", + "VALUE_ONLY", + "KEY_AND_VALUE" + ] + }, + "TagLimitExceededException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"} + }, + "TagRequiredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "TimeRange":{ + "type":"structure", + "members":{ + "start":{"shape":"Timestamp"}, + "end":{"shape":"Timestamp"} + } + }, + "Timestamp":{"type":"timestamp"}, + "UpdateApplicationInput":{ + "type":"structure", + "members":{ + "applicationName":{"shape":"ApplicationName"}, + "newApplicationName":{"shape":"ApplicationName"} + } + }, + "UpdateDeploymentGroupInput":{ + "type":"structure", + "required":[ + "applicationName", + "currentDeploymentGroupName" + ], + "members":{ + "applicationName":{"shape":"ApplicationName"}, + "currentDeploymentGroupName":{"shape":"DeploymentGroupName"}, + "newDeploymentGroupName":{"shape":"DeploymentGroupName"}, + "deploymentConfigName":{"shape":"DeploymentConfigName"}, + "ec2TagFilters":{"shape":"EC2TagFilterList"}, + "onPremisesInstanceTagFilters":{"shape":"TagFilterList"}, + "autoScalingGroups":{"shape":"AutoScalingGroupNameList"}, + "serviceRoleArn":{"shape":"Role"} + } + }, + "UpdateDeploymentGroupOutput":{ + "type":"structure", + "members":{ + "hooksNotCleanedUp":{"shape":"AutoScalingGroupList"} + } + }, + "Value":{"type":"string"}, + "VersionId":{"type":"string"} + } +} diff --git a/lib/aws-sdk/Aws/data/codedeploy/2014-10-06/docs-2.json b/lib/aws-sdk/Aws/data/codedeploy/2014-10-06/docs-2.json new file mode 100644 index 0000000..f3f5fd6 --- /dev/null +++ b/lib/aws-sdk/Aws/data/codedeploy/2014-10-06/docs-2.json @@ -0,0 +1,1261 @@ +{ + "version": "2.0", + "operations": { + "AddTagsToOnPremisesInstances": "

Adds tags to on-premises instances.

", + "BatchGetApplications": "

Gets information about one or more applications.

", + "BatchGetDeployments": "

Gets information about one or more deployments.

", + "BatchGetOnPremisesInstances": "

Gets information about one or more on-premises instances.

", + "CreateApplication": "

Creates a new application.

", + "CreateDeployment": "

Deploys an application revision through the specified deployment group.

", + "CreateDeploymentConfig": "

Creates a new deployment configuration.

", + "CreateDeploymentGroup": "

Creates a new deployment group for application revisions to be deployed to.

", + "DeleteApplication": "

Deletes an application.

", + "DeleteDeploymentConfig": "

Deletes a deployment configuration.

A deployment configuration cannot be deleted if it is currently in use. Also, predefined configurations cannot be deleted.", + "DeleteDeploymentGroup": "

Deletes a deployment group.

", + "DeregisterOnPremisesInstance": "

Deregisters an on-premises instance.

", + "GetApplication": "

Gets information about an application.

", + "GetApplicationRevision": "

Gets information about an application revision.

", + "GetDeployment": "

Gets information about a deployment.

", + "GetDeploymentConfig": "

Gets information about a deployment configuration.

", + "GetDeploymentGroup": "

Gets information about a deployment group.

", + "GetDeploymentInstance": "

Gets information about an instance as part of a deployment.

", + "GetOnPremisesInstance": "

Gets information about an on-premises instance.

", + "ListApplicationRevisions": "

Lists information about revisions for an application.

", + "ListApplications": "

Lists the applications registered with the applicable IAM user or AWS account.

", + "ListDeploymentConfigs": "

Lists the deployment configurations with the applicable IAM user or AWS account.

", + "ListDeploymentGroups": "

Lists the deployment groups for an application registered with the applicable IAM user or AWS account.

", + "ListDeploymentInstances": "

Lists the instances for a deployment associated with the applicable IAM user or AWS account.

", + "ListDeployments": "

Lists the deployments within a deployment group for an application registered with the applicable IAM user or AWS account.

", + "ListOnPremisesInstances": "

Gets a list of one or more on-premises instance names.

Unless otherwise specified, both registered and deregistered on-premises instance names will be listed. To list only registered or deregistered on-premises instance names, use the registration status parameter.

", + "RegisterApplicationRevision": "

Registers with AWS CodeDeploy a revision for the specified application.

", + "RegisterOnPremisesInstance": "

Registers an on-premises instance.

", + "RemoveTagsFromOnPremisesInstances": "

Removes one or more tags from one or more on-premises instances.

", + "StopDeployment": "

Attempts to stop an ongoing deployment.

", + "UpdateApplication": "

Changes an existing application's name.

", + "UpdateDeploymentGroup": "

Changes information about an existing deployment group.

" + }, + "service": "AWS CodeDeploy Overview

This is the AWS CodeDeploy API Reference. This guide provides descriptions of the AWS CodeDeploy APIs. For additional information, see the AWS CodeDeploy User Guide.

Using the APIs

You can use the AWS CodeDeploy APIs to work with the following items:

  • Applications are unique identifiers that AWS CodeDeploy uses to ensure that the correct combinations of revisions, deployment configurations, and deployment groups are being referenced during deployments.

    You can use the AWS CodeDeploy APIs to create, delete, get, list, and update applications.

  • Deployment configurations are sets of deployment rules and deployment success and failure conditions that AWS CodeDeploy uses during deployments.

    You can use the AWS CodeDeploy APIs to create, delete, get, and list deployment configurations.

  • Deployment groups are groups of instances to which application revisions can be deployed.

    You can use the AWS CodeDeploy APIs to create, delete, get, list, and update deployment groups.

  • Instances represent Amazon EC2 instances to which application revisions are deployed. Instances are identified by their Amazon EC2 tags or Auto Scaling group names. Instances belong to deployment groups.

    You can use the AWS CodeDeploy APIs to get and list instances.

  • Deployments represent the process of deploying revisions to instances.

    You can use the AWS CodeDeploy APIs to create, get, list, and stop deployments.

  • Application revisions are archive files that are stored in Amazon S3 buckets or GitHub repositories. These revisions contain source content (such as source code, web pages, executable files, any deployment scripts, and similar) along with an Application Specification file (AppSpec file). (The AppSpec file is unique to AWS CodeDeploy; it defines a series of deployment actions that you want AWS CodeDeploy to execute.) An application revision is uniquely identified by its Amazon S3 object key and its ETag, version, or both (for application revisions that are stored in Amazon S3 buckets) or by its repository name and commit ID (for applications revisions that are stored in GitHub repositories). Application revisions are deployed through deployment groups.

    You can use the AWS CodeDeploy APIs to get, list, and register application revisions.

", + "shapes": { + "AddTagsToOnPremisesInstancesInput": { + "base": "

Represents the input of an adds tags to on-premises instance operation.

", + "refs": { + } + }, + "ApplicationAlreadyExistsException": { + "base": "

An application with the specified name already exists with the applicable IAM user or AWS account.

", + "refs": { + } + }, + "ApplicationDoesNotExistException": { + "base": "

The application does not exist with the applicable IAM user or AWS account.

", + "refs": { + } + }, + "ApplicationId": { + "base": null, + "refs": { + "ApplicationInfo$applicationId": "

The application ID.

", + "CreateApplicationOutput$applicationId": "

A unique application ID.

" + } + }, + "ApplicationInfo": { + "base": "

Information about an application.

", + "refs": { + "ApplicationsInfoList$member": null, + "GetApplicationOutput$application": "

Information about the application.

" + } + }, + "ApplicationLimitExceededException": { + "base": "

More applications were attempted to be created than were allowed.

", + "refs": { + } + }, + "ApplicationName": { + "base": null, + "refs": { + "ApplicationInfo$applicationName": "

The application name.

", + "ApplicationsList$member": null, + "CreateApplicationInput$applicationName": "

The name of the application. This name must be unique with the applicable IAM user or AWS account.

", + "CreateDeploymentGroupInput$applicationName": "

The name of an existing AWS CodeDeploy application associated with the applicable IAM user or AWS account.

", + "CreateDeploymentInput$applicationName": "

The name of an existing AWS CodeDeploy application associated with the applicable IAM user or AWS account.

", + "DeleteApplicationInput$applicationName": "

The name of an existing AWS CodeDeploy application associated with the applicable IAM user or AWS account.

", + "DeleteDeploymentGroupInput$applicationName": "

The name of an existing AWS CodeDeploy application associated with the applicable IAM user or AWS account.

", + "DeploymentGroupInfo$applicationName": "

The application name.

", + "DeploymentInfo$applicationName": "

The application name.

", + "GetApplicationInput$applicationName": "

The name of an existing AWS CodeDeploy application associated with the applicable IAM user or AWS account.

", + "GetApplicationRevisionInput$applicationName": "

The name of the application that corresponds to the revision.

", + "GetApplicationRevisionOutput$applicationName": "

The name of the application that corresponds to the revision.

", + "GetDeploymentGroupInput$applicationName": "

The name of an existing AWS CodeDeploy application associated with the applicable IAM user or AWS account.

", + "ListApplicationRevisionsInput$applicationName": "

The name of an existing AWS CodeDeploy application associated with the applicable IAM user or AWS account.

", + "ListDeploymentGroupsInput$applicationName": "

The name of an existing AWS CodeDeploy application associated with the applicable IAM user or AWS account.

", + "ListDeploymentGroupsOutput$applicationName": "

The application name.

", + "ListDeploymentsInput$applicationName": "

The name of an existing AWS CodeDeploy application associated with the applicable IAM user or AWS account.

", + "RegisterApplicationRevisionInput$applicationName": "

The name of an existing AWS CodeDeploy application associated with the applicable IAM user or AWS account.

", + "UpdateApplicationInput$applicationName": "

The current name of the application that you want to change.

", + "UpdateApplicationInput$newApplicationName": "

The new name that you want to change the application to.

", + "UpdateDeploymentGroupInput$applicationName": "

The application name corresponding to the deployment group to update.

" + } + }, + "ApplicationNameRequiredException": { + "base": "

The minimum number of required application names was not specified.

", + "refs": { + } + }, + "ApplicationRevisionSortBy": { + "base": null, + "refs": { + "ListApplicationRevisionsInput$sortBy": "

The column name to sort the list results by:

  • registerTime: Sort the list results by when the revisions were registered with AWS CodeDeploy.
  • firstUsedTime: Sort the list results by when the revisions were first used by in a deployment.
  • lastUsedTime: Sort the list results by when the revisions were last used in a deployment.

If not specified or set to null, the results will be returned in an arbitrary order.

" + } + }, + "ApplicationsInfoList": { + "base": null, + "refs": { + "BatchGetApplicationsOutput$applicationsInfo": "

Information about the applications.

" + } + }, + "ApplicationsList": { + "base": null, + "refs": { + "BatchGetApplicationsInput$applicationNames": "

A list of application names, with multiple application names separated by spaces.

", + "ListApplicationsOutput$applications": "

A list of application names.

" + } + }, + "AutoScalingGroup": { + "base": "

Information about an Auto Scaling group.

", + "refs": { + "AutoScalingGroupList$member": null + } + }, + "AutoScalingGroupHook": { + "base": null, + "refs": { + "AutoScalingGroup$hook": "

An Auto Scaling lifecycle event hook name.

" + } + }, + "AutoScalingGroupList": { + "base": null, + "refs": { + "DeleteDeploymentGroupOutput$hooksNotCleanedUp": "

If the output contains no data, and the corresponding deployment group contained at least one Auto Scaling group, AWS CodeDeploy successfully removed all corresponding Auto Scaling lifecycle event hooks from the Amazon EC2 instances in the Auto Scaling. If the output does contain data, AWS CodeDeploy could not remove some Auto Scaling lifecycle event hooks from the Amazon EC2 instances in the Auto Scaling group.

", + "DeploymentGroupInfo$autoScalingGroups": "

A list of associated Auto Scaling groups.

", + "UpdateDeploymentGroupOutput$hooksNotCleanedUp": "

If the output contains no data, and the corresponding deployment group contained at least one Auto Scaling group, AWS CodeDeploy successfully removed all corresponding Auto Scaling lifecycle event hooks from the AWS account. If the output does contain data, AWS CodeDeploy could not remove some Auto Scaling lifecycle event hooks from the AWS account.

" + } + }, + "AutoScalingGroupName": { + "base": null, + "refs": { + "AutoScalingGroup$name": "

The Auto Scaling group name.

", + "AutoScalingGroupNameList$member": null + } + }, + "AutoScalingGroupNameList": { + "base": null, + "refs": { + "CreateDeploymentGroupInput$autoScalingGroups": "

A list of associated Auto Scaling groups.

", + "UpdateDeploymentGroupInput$autoScalingGroups": "

The replacement list of Auto Scaling groups to be included in the deployment group, if you want to change them.

" + } + }, + "BatchGetApplicationsInput": { + "base": "

Represents the input of a batch get applications operation.

", + "refs": { + } + }, + "BatchGetApplicationsOutput": { + "base": "

Represents the output of a batch get applications operation.

", + "refs": { + } + }, + "BatchGetDeploymentsInput": { + "base": "

Represents the input of a batch get deployments operation.

", + "refs": { + } + }, + "BatchGetDeploymentsOutput": { + "base": "

Represents the output of a batch get deployments operation.

", + "refs": { + } + }, + "BatchGetOnPremisesInstancesInput": { + "base": "

Represents the input of a batch get on-premises instances operation.

", + "refs": { + } + }, + "BatchGetOnPremisesInstancesOutput": { + "base": "

Represents the output of a batch get on-premises instances operation.

", + "refs": { + } + }, + "Boolean": { + "base": null, + "refs": { + "ApplicationInfo$linkedToGitHub": "

True if the user has authenticated with GitHub for the specified application; otherwise, false.

", + "CreateDeploymentInput$ignoreApplicationStopFailures": "

If set to true, then if the deployment causes the ApplicationStop deployment lifecycle event to fail to a specific instance, the deployment will not be considered to have failed to that instance at that point and will continue on to the BeforeInstall deployment lifecycle event.

If set to false or not specified, then if the deployment causes the ApplicationStop deployment lifecycle event to fail to a specific instance, the deployment will stop to that instance, and the deployment to that instance will be considered to have failed.

", + "DeploymentInfo$ignoreApplicationStopFailures": "

If true, then if the deployment causes the ApplicationStop deployment lifecycle event to fail to a specific instance, the deployment will not be considered to have failed to that instance at that point and will continue on to the BeforeInstall deployment lifecycle event.

If false or not specified, then if the deployment causes the ApplicationStop deployment lifecycle event to fail to a specific instance, the deployment will stop to that instance, and the deployment to that instance will be considered to have failed.

" + } + }, + "BucketNameFilterRequiredException": { + "base": "

A bucket name is required but was not provided.

", + "refs": { + } + }, + "BundleType": { + "base": null, + "refs": { + "S3Location$bundleType": "

The file type of the application revision. Must be one of the following:

  • tar: A tar archive file.
  • tgz: A compressed tar archive file.
  • zip: A zip archive file.
" + } + }, + "CommitId": { + "base": null, + "refs": { + "GitHubLocation$commitId": "

The SHA1 commit ID of the GitHub commit that references the that represents the bundled artifacts for the application revision.

" + } + }, + "CreateApplicationInput": { + "base": "

Represents the input of a create application operation.

", + "refs": { + } + }, + "CreateApplicationOutput": { + "base": "

Represents the output of a create application operation.

", + "refs": { + } + }, + "CreateDeploymentConfigInput": { + "base": "

Represents the input of a create deployment configuration operation.

", + "refs": { + } + }, + "CreateDeploymentConfigOutput": { + "base": "

Represents the output of a create deployment configuration operation.

", + "refs": { + } + }, + "CreateDeploymentGroupInput": { + "base": "

Represents the input of a create deployment group operation.

", + "refs": { + } + }, + "CreateDeploymentGroupOutput": { + "base": "

Represents the output of a create deployment group operation.

", + "refs": { + } + }, + "CreateDeploymentInput": { + "base": "

Represents the input of a create deployment operation.

", + "refs": { + } + }, + "CreateDeploymentOutput": { + "base": "

Represents the output of a create deployment operation.

", + "refs": { + } + }, + "DeleteApplicationInput": { + "base": "

Represents the input of a delete application operation.

", + "refs": { + } + }, + "DeleteDeploymentConfigInput": { + "base": "

Represents the input of a delete deployment configuration operation.

", + "refs": { + } + }, + "DeleteDeploymentGroupInput": { + "base": "

Represents the input of a delete deployment group operation.

", + "refs": { + } + }, + "DeleteDeploymentGroupOutput": { + "base": "

Represents the output of a delete deployment group operation.

", + "refs": { + } + }, + "DeploymentAlreadyCompletedException": { + "base": "

The deployment is already completed.

", + "refs": { + } + }, + "DeploymentConfigAlreadyExistsException": { + "base": "

A deployment configuration with the specified name already exists with the applicable IAM user or AWS account.

", + "refs": { + } + }, + "DeploymentConfigDoesNotExistException": { + "base": "

The deployment configuration does not exist with the applicable IAM user or AWS account.

", + "refs": { + } + }, + "DeploymentConfigId": { + "base": null, + "refs": { + "CreateDeploymentConfigOutput$deploymentConfigId": "

A unique deployment configuration ID.

", + "DeploymentConfigInfo$deploymentConfigId": "

The deployment configuration ID.

" + } + }, + "DeploymentConfigInUseException": { + "base": "

The deployment configuration is still in use.

", + "refs": { + } + }, + "DeploymentConfigInfo": { + "base": "

Information about a deployment configuration.

", + "refs": { + "GetDeploymentConfigOutput$deploymentConfigInfo": "

Information about the deployment configuration.

" + } + }, + "DeploymentConfigLimitExceededException": { + "base": "

The deployment configurations limit was exceeded.

", + "refs": { + } + }, + "DeploymentConfigName": { + "base": null, + "refs": { + "CreateDeploymentConfigInput$deploymentConfigName": "

The name of the deployment configuration to create.

", + "CreateDeploymentGroupInput$deploymentConfigName": "

If specified, the deployment configuration name must be one of the predefined values, or it can be a custom deployment configuration:

  • CodeDeployDefault.AllAtOnce deploys an application revision to up to all of the instances at once. The overall deployment succeeds if the application revision deploys to at least one of the instances. The overall deployment fails after the application revision fails to deploy to all of the instances. For example, for 9 instances, deploy to up to all 9 instances at once. The overall deployment succeeds if any of the 9 instances is successfully deployed to, and it fails if all 9 instances fail to be deployed to.
  • CodeDeployDefault.HalfAtATime deploys to up to half of the instances at a time (with fractions rounded down). The overall deployment succeeds if the application revision deploys to at least half of the instances (with fractions rounded up); otherwise, the deployment fails. For example, for 9 instances, deploy to up to 4 instances at a time. The overall deployment succeeds if 5 or more instances are successfully deployed to; otherwise, the deployment fails. Note that the deployment may successfully deploy to some instances, even if the overall deployment fails.
  • CodeDeployDefault.OneAtATime deploys the application revision to only one of the instances at a time. The overall deployment succeeds if the application revision deploys to all of the instances. The overall deployment fails after the application revision first fails to deploy to any one instances. For example, for 9 instances, deploy to one instance at a time. The overall deployment succeeds if all 9 instances are successfully deployed to, and it fails if any of one of the 9 instances fail to be deployed to. Note that the deployment may successfully deploy to some instances, even if the overall deployment fails. This is the default deployment configuration if a configuration isn't specified for either the deployment or the deployment group.

To create a custom deployment configuration, call the create deployment configuration operation.

", + "CreateDeploymentInput$deploymentConfigName": "

The name of an existing deployment configuration associated with the applicable IAM user or AWS account.

If not specified, the value configured in the deployment group will be used as the default. If the deployment group does not have a deployment configuration associated with it, then CodeDeployDefault.OneAtATime will be used by default.

", + "DeleteDeploymentConfigInput$deploymentConfigName": "

The name of an existing deployment configuration associated with the applicable IAM user or AWS account.

", + "DeploymentConfigInfo$deploymentConfigName": "

The deployment configuration name.

", + "DeploymentConfigsList$member": null, + "DeploymentGroupInfo$deploymentConfigName": "

The deployment configuration name.

", + "DeploymentInfo$deploymentConfigName": "

The deployment configuration name.

", + "GetDeploymentConfigInput$deploymentConfigName": "

The name of an existing deployment configuration associated with the applicable IAM user or AWS account.

", + "UpdateDeploymentGroupInput$deploymentConfigName": "

The replacement deployment configuration name to use, if you want to change it.

" + } + }, + "DeploymentConfigNameRequiredException": { + "base": "

The deployment configuration name was not specified.

", + "refs": { + } + }, + "DeploymentConfigsList": { + "base": null, + "refs": { + "ListDeploymentConfigsOutput$deploymentConfigsList": "

A list of deployment configurations, including the built-in configurations such as CodeDeployDefault.OneAtATime.

" + } + }, + "DeploymentCreator": { + "base": null, + "refs": { + "DeploymentInfo$creator": "

How the deployment was created:

  • user: A user created the deployment.
  • autoscaling: Auto Scaling created the deployment.
" + } + }, + "DeploymentDoesNotExistException": { + "base": "

The deployment does not exist with the applicable IAM user or AWS account.

", + "refs": { + } + }, + "DeploymentGroupAlreadyExistsException": { + "base": "

A deployment group with the specified name already exists with the applicable IAM user or AWS account.

", + "refs": { + } + }, + "DeploymentGroupDoesNotExistException": { + "base": "

The named deployment group does not exist with the applicable IAM user or AWS account.

", + "refs": { + } + }, + "DeploymentGroupId": { + "base": null, + "refs": { + "CreateDeploymentGroupOutput$deploymentGroupId": "

A unique deployment group ID.

", + "DeploymentGroupInfo$deploymentGroupId": "

The deployment group ID.

" + } + }, + "DeploymentGroupInfo": { + "base": "

Information about a deployment group.

", + "refs": { + "GetDeploymentGroupOutput$deploymentGroupInfo": "

Information about the deployment group.

" + } + }, + "DeploymentGroupLimitExceededException": { + "base": "

The deployment groups limit was exceeded.

", + "refs": { + } + }, + "DeploymentGroupName": { + "base": null, + "refs": { + "CreateDeploymentGroupInput$deploymentGroupName": "

The name of an existing deployment group for the specified application.

", + "CreateDeploymentInput$deploymentGroupName": "

The deployment group's name.

", + "DeleteDeploymentGroupInput$deploymentGroupName": "

The name of an existing deployment group for the specified application.

", + "DeploymentGroupInfo$deploymentGroupName": "

The deployment group name.

", + "DeploymentGroupsList$member": null, + "DeploymentInfo$deploymentGroupName": "

The deployment group name.

", + "GetDeploymentGroupInput$deploymentGroupName": "

The name of an existing deployment group for the specified application.

", + "ListDeploymentsInput$deploymentGroupName": "

The name of an existing deployment group for the specified application.

", + "UpdateDeploymentGroupInput$currentDeploymentGroupName": "

The current name of the existing deployment group.

", + "UpdateDeploymentGroupInput$newDeploymentGroupName": "

The new name of the deployment group, if you want to change it.

" + } + }, + "DeploymentGroupNameRequiredException": { + "base": "

The deployment group name was not specified.

", + "refs": { + } + }, + "DeploymentGroupsList": { + "base": null, + "refs": { + "GenericRevisionInfo$deploymentGroups": "

A list of deployment groups that use this revision.

", + "ListDeploymentGroupsOutput$deploymentGroups": "

A list of corresponding deployment group names.

" + } + }, + "DeploymentId": { + "base": null, + "refs": { + "CreateDeploymentOutput$deploymentId": "

A unique deployment ID.

", + "DeploymentInfo$deploymentId": "

The deployment ID.

", + "DeploymentsList$member": null, + "GetDeploymentInput$deploymentId": "

An existing deployment ID associated with the applicable IAM user or AWS account.

", + "GetDeploymentInstanceInput$deploymentId": "

The unique ID of a deployment.

", + "InstanceSummary$deploymentId": "

The deployment ID.

", + "ListDeploymentInstancesInput$deploymentId": "

The unique ID of a deployment.

", + "StopDeploymentInput$deploymentId": "

The unique ID of a deployment.

" + } + }, + "DeploymentIdRequiredException": { + "base": "

At least one deployment ID must be specified.

", + "refs": { + } + }, + "DeploymentInfo": { + "base": "

Information about a deployment.

", + "refs": { + "DeploymentsInfoList$member": null, + "GetDeploymentOutput$deploymentInfo": "

Information about the deployment.

" + } + }, + "DeploymentLimitExceededException": { + "base": "

The number of allowed deployments was exceeded.

", + "refs": { + } + }, + "DeploymentNotStartedException": { + "base": "

The specified deployment has not started.

", + "refs": { + } + }, + "DeploymentOverview": { + "base": "

Information about the deployment status of the instances in the deployment.

", + "refs": { + "DeploymentInfo$deploymentOverview": "

A summary of the deployment status of the instances in the deployment.

" + } + }, + "DeploymentStatus": { + "base": null, + "refs": { + "DeploymentInfo$status": "

The current state of the deployment as a whole.

", + "DeploymentStatusList$member": null + } + }, + "DeploymentStatusList": { + "base": null, + "refs": { + "ListDeploymentsInput$includeOnlyStatuses": "

A subset of deployments to list, by status:

  • Created: Include in the resulting list created deployments.
  • Queued: Include in the resulting list queued deployments.
  • In Progress: Include in the resulting list in-progress deployments.
  • Succeeded: Include in the resulting list succeeded deployments.
  • Failed: Include in the resulting list failed deployments.
  • Aborted: Include in the resulting list aborted deployments.
" + } + }, + "DeploymentsInfoList": { + "base": null, + "refs": { + "BatchGetDeploymentsOutput$deploymentsInfo": "

Information about the deployments.

" + } + }, + "DeploymentsList": { + "base": null, + "refs": { + "BatchGetDeploymentsInput$deploymentIds": "

A list of deployment IDs, with multiple deployment IDs separated by spaces.

", + "ListDeploymentsOutput$deployments": "

A list of deployment IDs.

" + } + }, + "DeregisterOnPremisesInstanceInput": { + "base": "

Represents the input of a deregister on-premises instance operation.

", + "refs": { + } + }, + "Description": { + "base": null, + "refs": { + "CreateDeploymentInput$description": "

A comment about the deployment.

", + "DeploymentInfo$description": "

A comment about the deployment.

", + "GenericRevisionInfo$description": "

A comment about the revision.

", + "RegisterApplicationRevisionInput$description": "

A comment about the revision.

" + } + }, + "DescriptionTooLongException": { + "base": "

The description that was provided is too long.

", + "refs": { + } + }, + "Diagnostics": { + "base": "

Diagnostic information about executable scripts that are part of a deployment.

", + "refs": { + "LifecycleEvent$diagnostics": "

Diagnostic information about the deployment lifecycle event.

" + } + }, + "EC2TagFilter": { + "base": "

Information about a tag filter.

", + "refs": { + "EC2TagFilterList$member": null + } + }, + "EC2TagFilterList": { + "base": null, + "refs": { + "CreateDeploymentGroupInput$ec2TagFilters": "

The Amazon EC2 tags to filter on.

", + "DeploymentGroupInfo$ec2TagFilters": "

The Amazon EC2 tags to filter on.

", + "UpdateDeploymentGroupInput$ec2TagFilters": "

The replacement set of Amazon EC2 tags to filter on, if you want to change them.

" + } + }, + "EC2TagFilterType": { + "base": null, + "refs": { + "EC2TagFilter$Type": "

The tag filter type:

  • KEY_ONLY: Key only.
  • VALUE_ONLY: Value only.
  • KEY_AND_VALUE: Key and value.
" + } + }, + "ETag": { + "base": null, + "refs": { + "S3Location$eTag": "

The ETag of the Amazon S3 object that represents the bundled artifacts for the application revision.

If the ETag is not specified as an input parameter, ETag validation of the object will be skipped.

" + } + }, + "ErrorCode": { + "base": null, + "refs": { + "ErrorInformation$code": "

The error code:

  • APPLICATION_MISSING: The application was missing. Note that this error code will most likely be raised if the application is deleted after the deployment is created but before it starts.
  • DEPLOYMENT_GROUP_MISSING: The deployment group was missing. Note that this error code will most likely be raised if the deployment group is deleted after the deployment is created but before it starts.
  • HEALTH_CONSTRAINTS: The deployment failed on too many instances to be able to successfully deploy within the specified instance health constraints.
  • HEALTH_CONSTRAINTS_INVALID: The revision can never successfully deploy within the instance health constraints as specified.
  • IAM_ROLE_MISSING: The service role cannot be accessed.
  • IAM_ROLE_PERMISSIONS: The service role does not have the correct permissions.
  • INTERNAL_ERROR: There was an internal error.
  • NO_EC2_SUBSCRIPTION: The calling account is not subscribed to the Amazon EC2 service.
  • NO_INSTANCES: No instances were specified, or no instances can be found.
  • OVER_MAX_INSTANCES: The maximum number of instances was exceeded.
  • THROTTLED: The operation was throttled because the calling account exceeded the throttling limits of one or more AWS services.
  • TIMEOUT: The deployment has timed out.
  • REVISION_MISSING: The revision ID was missing. Note that this error code will most likely be raised if the revision is deleted after the deployment is created but before it starts.
" + } + }, + "ErrorInformation": { + "base": "

Information about a deployment error.

", + "refs": { + "DeploymentInfo$errorInformation": "

Information about any error associated with this deployment.

" + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "ErrorInformation$message": "

An accompanying error message.

" + } + }, + "GenericRevisionInfo": { + "base": "

Information about an application revision.

", + "refs": { + "GetApplicationRevisionOutput$revisionInfo": "

General information about the revision.

" + } + }, + "GetApplicationInput": { + "base": "

Represents the input of a get application operation.

", + "refs": { + } + }, + "GetApplicationOutput": { + "base": "

Represents the output of a get application operation.

", + "refs": { + } + }, + "GetApplicationRevisionInput": { + "base": "

Represents the input of a get application revision operation.

", + "refs": { + } + }, + "GetApplicationRevisionOutput": { + "base": "

Represents the output of a get application revision operation.

", + "refs": { + } + }, + "GetDeploymentConfigInput": { + "base": "

Represents the input of a get deployment configuration operation.

", + "refs": { + } + }, + "GetDeploymentConfigOutput": { + "base": "

Represents the output of a get deployment configuration operation.

", + "refs": { + } + }, + "GetDeploymentGroupInput": { + "base": "

Represents the input of a get deployment group operation.

", + "refs": { + } + }, + "GetDeploymentGroupOutput": { + "base": "

Represents the output of a get deployment group operation.

", + "refs": { + } + }, + "GetDeploymentInput": { + "base": "

Represents the input of a get deployment operation.

", + "refs": { + } + }, + "GetDeploymentInstanceInput": { + "base": "

Represents the input of a get deployment instance operation.

", + "refs": { + } + }, + "GetDeploymentInstanceOutput": { + "base": "

Represents the output of a get deployment instance operation.

", + "refs": { + } + }, + "GetDeploymentOutput": { + "base": "

Represents the output of a get deployment operation.

", + "refs": { + } + }, + "GetOnPremisesInstanceInput": { + "base": "

Represents the input of a get on-premises instance operation.

", + "refs": { + } + }, + "GetOnPremisesInstanceOutput": { + "base": "

Represents the output of a get on-premises instance operation.

", + "refs": { + } + }, + "GitHubLocation": { + "base": "

Information about the location of application artifacts that are stored in GitHub.

", + "refs": { + "RevisionLocation$gitHubLocation": null + } + }, + "IamUserArn": { + "base": null, + "refs": { + "InstanceInfo$iamUserArn": "

The IAM user ARN associated with the on-premises instance.

", + "RegisterOnPremisesInstanceInput$iamUserArn": "

The ARN of the IAM user to associate with the on-premises instance.

" + } + }, + "IamUserArnAlreadyRegisteredException": { + "base": "

The specified IAM user ARN is already registered with an on-premises instance.

", + "refs": { + } + }, + "IamUserArnRequiredException": { + "base": "

An IAM user ARN was not specified.

", + "refs": { + } + }, + "InstanceArn": { + "base": null, + "refs": { + "InstanceInfo$instanceArn": "

The ARN of the on-premises instance.

" + } + }, + "InstanceCount": { + "base": null, + "refs": { + "DeploymentOverview$Pending": "

The number of instances that are pending in the deployment.

", + "DeploymentOverview$InProgress": "

The number of instances that are in progress in the deployment.

", + "DeploymentOverview$Succeeded": "

The number of instances that have succeeded in the deployment.

", + "DeploymentOverview$Failed": "

The number of instances that have failed in the deployment.

", + "DeploymentOverview$Skipped": "

The number of instances that have been skipped in the deployment.

" + } + }, + "InstanceDoesNotExistException": { + "base": "

The specified instance does not exist in the deployment group.

", + "refs": { + } + }, + "InstanceId": { + "base": null, + "refs": { + "GetDeploymentInstanceInput$instanceId": "

The unique ID of an instance in the deployment's deployment group.

", + "InstanceSummary$instanceId": "

The instance ID.

", + "InstancesList$member": null + } + }, + "InstanceIdRequiredException": { + "base": "

The instance ID was not specified.

", + "refs": { + } + }, + "InstanceInfo": { + "base": "

Information about an on-premises instance.

", + "refs": { + "GetOnPremisesInstanceOutput$instanceInfo": "

Information about the on-premises instance.

", + "InstanceInfoList$member": null + } + }, + "InstanceInfoList": { + "base": null, + "refs": { + "BatchGetOnPremisesInstancesOutput$instanceInfos": "

Information about the on-premises instances.

" + } + }, + "InstanceLimitExceededException": { + "base": "

The maximum number of allowed on-premises instances in a single call was exceeded.

", + "refs": { + } + }, + "InstanceName": { + "base": null, + "refs": { + "DeregisterOnPremisesInstanceInput$instanceName": "

The name of the on-premises instance to deregister.

", + "GetOnPremisesInstanceInput$instanceName": "

The name of the on-premises instance to get information about

", + "InstanceInfo$instanceName": "

The name of the on-premises instance.

", + "InstanceNameList$member": null, + "RegisterOnPremisesInstanceInput$instanceName": "

The name of the on-premises instance to register.

" + } + }, + "InstanceNameAlreadyRegisteredException": { + "base": "

The specified on-premises instance name is already registered.

", + "refs": { + } + }, + "InstanceNameList": { + "base": null, + "refs": { + "AddTagsToOnPremisesInstancesInput$instanceNames": "

The names of the on-premises instances to add tags to.

", + "BatchGetOnPremisesInstancesInput$instanceNames": "

The names of the on-premises instances to get information about.

", + "ListOnPremisesInstancesOutput$instanceNames": "

The list of matching on-premises instance names.

", + "RemoveTagsFromOnPremisesInstancesInput$instanceNames": "

The names of the on-premises instances to remove tags from.

" + } + }, + "InstanceNameRequiredException": { + "base": "

An on-premises instance name was not specified.

", + "refs": { + } + }, + "InstanceNotRegisteredException": { + "base": "

The specified on-premises instance is not registered.

", + "refs": { + } + }, + "InstanceStatus": { + "base": null, + "refs": { + "InstanceStatusList$member": null, + "InstanceSummary$status": "

The deployment status for this instance:

  • Pending: The deployment is pending for this instance.
  • In Progress: The deployment is in progress for this instance.
  • Succeeded: The deployment has succeeded for this instance.
  • Failed: The deployment has failed for this instance.
  • Skipped: The deployment has been skipped for this instance.
  • Unknown: The deployment status is unknown for this instance.
" + } + }, + "InstanceStatusList": { + "base": null, + "refs": { + "ListDeploymentInstancesInput$instanceStatusFilter": "

A subset of instances to list, by status:

  • Pending: Include in the resulting list those instances with pending deployments.
  • InProgress: Include in the resulting list those instances with in-progress deployments.
  • Succeeded: Include in the resulting list those instances with succeeded deployments.
  • Failed: Include in the resulting list those instances with failed deployments.
  • Skipped: Include in the resulting list those instances with skipped deployments.
  • Unknown: Include in the resulting list those instances with deployments in an unknown state.
" + } + }, + "InstanceSummary": { + "base": "

Information about an instance in a deployment.

", + "refs": { + "GetDeploymentInstanceOutput$instanceSummary": "

Information about the instance.

" + } + }, + "InstancesList": { + "base": null, + "refs": { + "ListDeploymentInstancesOutput$instancesList": "

A list of instances IDs.

" + } + }, + "InvalidApplicationNameException": { + "base": "

The application name was specified in an invalid format.

", + "refs": { + } + }, + "InvalidAutoScalingGroupException": { + "base": "

The Auto Scaling group was specified in an invalid format or does not exist.

", + "refs": { + } + }, + "InvalidBucketNameFilterException": { + "base": "

The bucket name either doesn't exist or was specified in an invalid format.

", + "refs": { + } + }, + "InvalidDeployedStateFilterException": { + "base": "

The deployed state filter was specified in an invalid format.

", + "refs": { + } + }, + "InvalidDeploymentConfigNameException": { + "base": "

The deployment configuration name was specified in an invalid format.

", + "refs": { + } + }, + "InvalidDeploymentGroupNameException": { + "base": "

The deployment group name was specified in an invalid format.

", + "refs": { + } + }, + "InvalidDeploymentIdException": { + "base": "

At least one of the deployment IDs was specified in an invalid format.

", + "refs": { + } + }, + "InvalidDeploymentStatusException": { + "base": "

The specified deployment status doesn't exist or cannot be determined.

", + "refs": { + } + }, + "InvalidEC2TagException": { + "base": "

The tag was specified in an invalid format.

", + "refs": { + } + }, + "InvalidIamUserArnException": { + "base": "

The IAM user ARN was specified in an invalid format.

", + "refs": { + } + }, + "InvalidInstanceNameException": { + "base": "

The specified on-premises instance name was specified in an invalid format.

", + "refs": { + } + }, + "InvalidInstanceStatusException": { + "base": "

The specified instance status does not exist.

", + "refs": { + } + }, + "InvalidKeyPrefixFilterException": { + "base": "

The specified key prefix filter was specified in an invalid format.

", + "refs": { + } + }, + "InvalidMinimumHealthyHostValueException": { + "base": "

The minimum healthy instances value was specified in an invalid format.

", + "refs": { + } + }, + "InvalidNextTokenException": { + "base": "

The next token was specified in an invalid format.

", + "refs": { + } + }, + "InvalidOperationException": { + "base": "

An invalid operation was detected.

", + "refs": { + } + }, + "InvalidRegistrationStatusException": { + "base": "

The registration status was specified in an invalid format.

", + "refs": { + } + }, + "InvalidRevisionException": { + "base": "

The revision was specified in an invalid format.

", + "refs": { + } + }, + "InvalidRoleException": { + "base": "

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.

", + "refs": { + } + }, + "InvalidSortByException": { + "base": "

The column name to sort by is either not present or was specified in an invalid format.

", + "refs": { + } + }, + "InvalidSortOrderException": { + "base": "

The sort order was specified in an invalid format.

", + "refs": { + } + }, + "InvalidTagException": { + "base": "

The specified tag was specified in an invalid format.

", + "refs": { + } + }, + "InvalidTagFilterException": { + "base": "

The specified tag filter was specified in an invalid format.

", + "refs": { + } + }, + "InvalidTimeRangeException": { + "base": "

The specified time range was specified in an invalid format.

", + "refs": { + } + }, + "Key": { + "base": null, + "refs": { + "EC2TagFilter$Key": "

The tag filter key.

", + "Tag$Key": "

The tag's key.

", + "TagFilter$Key": "

The on-premises instance tag filter key.

" + } + }, + "LifecycleErrorCode": { + "base": null, + "refs": { + "Diagnostics$errorCode": "

The associated error code:

  • Success: The specified script ran.
  • ScriptMissing: The specified script was not found in the specified location.
  • ScriptNotExecutable: The specified script is not a recognized executable file type.
  • ScriptTimedOut: The specified script did not finish running in the specified time period.
  • ScriptFailed: The specified script failed to run as expected.
  • UnknownError: The specified script did not run for an unknown reason.
" + } + }, + "LifecycleEvent": { + "base": "

Information about a deployment lifecycle event.

", + "refs": { + "LifecycleEventList$member": null + } + }, + "LifecycleEventList": { + "base": null, + "refs": { + "InstanceSummary$lifecycleEvents": "

A list of lifecycle events for this instance.

" + } + }, + "LifecycleEventName": { + "base": null, + "refs": { + "LifecycleEvent$lifecycleEventName": "

The deployment lifecycle event name, such as ApplicationStop, BeforeInstall, AfterInstall, ApplicationStart, or ValidateService.

" + } + }, + "LifecycleEventStatus": { + "base": null, + "refs": { + "LifecycleEvent$status": "

The deployment lifecycle event status:

  • Pending: The deployment lifecycle event is pending.
  • InProgress: The deployment lifecycle event is in progress.
  • Succeeded: The deployment lifecycle event has succeeded.
  • Failed: The deployment lifecycle event has failed.
  • Skipped: The deployment lifecycle event has been skipped.
  • Unknown: The deployment lifecycle event is unknown.
" + } + }, + "LifecycleMessage": { + "base": null, + "refs": { + "Diagnostics$message": "

The message associated with the error.

" + } + }, + "ListApplicationRevisionsInput": { + "base": "

Represents the input of a list application revisions operation.

", + "refs": { + } + }, + "ListApplicationRevisionsOutput": { + "base": "

Represents the output of a list application revisions operation.

", + "refs": { + } + }, + "ListApplicationsInput": { + "base": "

Represents the input of a list applications operation.

", + "refs": { + } + }, + "ListApplicationsOutput": { + "base": "

Represents the output of a list applications operation.

", + "refs": { + } + }, + "ListDeploymentConfigsInput": { + "base": "

Represents the input of a list deployment configurations operation.

", + "refs": { + } + }, + "ListDeploymentConfigsOutput": { + "base": "

Represents the output of a list deployment configurations operation.

", + "refs": { + } + }, + "ListDeploymentGroupsInput": { + "base": "

Represents the input of a list deployment groups operation.

", + "refs": { + } + }, + "ListDeploymentGroupsOutput": { + "base": "

Represents the output of a list deployment groups operation.

", + "refs": { + } + }, + "ListDeploymentInstancesInput": { + "base": "

Represents the input of a list deployment instances operation.

", + "refs": { + } + }, + "ListDeploymentInstancesOutput": { + "base": "

Represents the output of a list deployment instances operation.

", + "refs": { + } + }, + "ListDeploymentsInput": { + "base": "

Represents the input of a list deployments operation.

", + "refs": { + } + }, + "ListDeploymentsOutput": { + "base": "

Represents the output of a list deployments operation.

", + "refs": { + } + }, + "ListOnPremisesInstancesInput": { + "base": "

Represents the input of a list on-premises instances operation.

.", + "refs": { + } + }, + "ListOnPremisesInstancesOutput": { + "base": "

Represents the output of list on-premises instances operation.

", + "refs": { + } + }, + "ListStateFilterAction": { + "base": null, + "refs": { + "ListApplicationRevisionsInput$deployed": "

Whether to list revisions based on whether the revision is the target revision of an deployment group:

  • include: List revisions that are target revisions of a deployment group.
  • exclude: Do not list revisions that are target revisions of a deployment group.
  • ignore: List all revisions, regardless of whether they are target revisions of a deployment group.
" + } + }, + "LogTail": { + "base": null, + "refs": { + "Diagnostics$logTail": "

The last portion of the associated diagnostic log.

" + } + }, + "Message": { + "base": null, + "refs": { + "StopDeploymentOutput$statusMessage": "

An accompanying status message.

" + } + }, + "MinimumHealthyHosts": { + "base": "

Information about minimum healthy instances.

", + "refs": { + "CreateDeploymentConfigInput$minimumHealthyHosts": "

The minimum number of healthy instances that should be available at any time during the deployment. There are two parameters expected in the input: type and value.

The type parameter takes either of the following values:

  • HOST_COUNT: The value parameter represents the minimum number of healthy instances, as an absolute value.
  • FLEET_PERCENT: The value parameter represents the minimum number of healthy instances, as a percentage of the total number of instances in the deployment. If you specify FLEET_PERCENT, then at the start of the deployment AWS CodeDeploy converts the percentage to the equivalent number of instances and rounds fractional instances up.

The value parameter takes an integer.

For example, to set a minimum of 95% healthy instances, specify a type of FLEET_PERCENT and a value of 95.

", + "DeploymentConfigInfo$minimumHealthyHosts": "

Information about the number or percentage of minimum healthy instances.

" + } + }, + "MinimumHealthyHostsType": { + "base": null, + "refs": { + "MinimumHealthyHosts$type": "

The minimum healthy instances type:

  • HOST_COUNT: The minimum number of healthy instances, as an absolute value.
  • FLEET_PERCENT: The minimum number of healthy instances, as a percentage of the total number of instances in the deployment.

For example, for 9 instances, if a HOST_COUNT of 6 is specified, deploy to up to 3 instances at a time. The deployment succeeds if 6 or more instances are successfully deployed to; otherwise, the deployment fails. If a FLEET_PERCENT of 40 is specified, deploy to up to 5 instances at a time. The deployment succeeds if 4 or more instances are successfully deployed to; otherwise, the deployment fails.

In a call to the get deployment configuration operation, CodeDeployDefault.OneAtATime will return a minimum healthy instances type of MOST_CONCURRENCY and a value of 1. This means a deployment to only one instances at a time. (You cannot set the type to MOST_CONCURRENCY, only to HOST_COUNT or FLEET_PERCENT.)" + } + }, + "MinimumHealthyHostsValue": { + "base": null, + "refs": { + "MinimumHealthyHosts$value": "

The minimum healthy instances value.

" + } + }, + "NextToken": { + "base": null, + "refs": { + "ListApplicationRevisionsInput$nextToken": "

An identifier that was returned from the previous list application revisions call, which can be used to return the next set of applications in the list.

", + "ListApplicationRevisionsOutput$nextToken": "

If the amount of information that is returned is significantly large, an identifier will also be returned, which can be used in a subsequent list application revisions call to return the next set of application revisions in the list.

", + "ListApplicationsInput$nextToken": "

An identifier that was returned from the previous list applications call, which can be used to return the next set of applications in the list.

", + "ListApplicationsOutput$nextToken": "

If the amount of information that is returned is significantly large, an identifier will also be returned, which can be used in a subsequent list applications call to return the next set of applications in the list.

", + "ListDeploymentConfigsInput$nextToken": "

An identifier that was returned from the previous list deployment configurations call, which can be used to return the next set of deployment configurations in the list.

", + "ListDeploymentConfigsOutput$nextToken": "

If the amount of information that is returned is significantly large, an identifier will also be returned, which can be used in a subsequent list deployment configurations call to return the next set of deployment configurations in the list.

", + "ListDeploymentGroupsInput$nextToken": "

An identifier that was returned from the previous list deployment groups call, which can be used to return the next set of deployment groups in the list.

", + "ListDeploymentGroupsOutput$nextToken": "

If the amount of information that is returned is significantly large, an identifier will also be returned, which can be used in a subsequent list deployment groups call to return the next set of deployment groups in the list.

", + "ListDeploymentInstancesInput$nextToken": "

An identifier that was returned from the previous list deployment instances call, which can be used to return the next set of deployment instances in the list.

", + "ListDeploymentInstancesOutput$nextToken": "

If the amount of information that is returned is significantly large, an identifier will also be returned, which can be used in a subsequent list deployment instances call to return the next set of deployment instances in the list.

", + "ListDeploymentsInput$nextToken": "

An identifier that was returned from the previous list deployments call, which can be used to return the next set of deployments in the list.

", + "ListDeploymentsOutput$nextToken": "

If the amount of information that is returned is significantly large, an identifier will also be returned, which can be used in a subsequent list deployments call to return the next set of deployments in the list.

", + "ListOnPremisesInstancesInput$nextToken": "

An identifier that was returned from the previous list on-premises instances call, which can be used to return the next set of on-premises instances in the list.

", + "ListOnPremisesInstancesOutput$nextToken": "

If the amount of information that is returned is significantly large, an identifier will also be returned, which can be used in a subsequent list on-premises instances call to return the next set of on-premises instances in the list.

" + } + }, + "RegisterApplicationRevisionInput": { + "base": "

Represents the input of a register application revision operation.

", + "refs": { + } + }, + "RegisterOnPremisesInstanceInput": { + "base": "

Represents the input of register on-premises instance operation.

", + "refs": { + } + }, + "RegistrationStatus": { + "base": null, + "refs": { + "ListOnPremisesInstancesInput$registrationStatus": "

The on-premises instances registration status:

  • Deregistered: Include in the resulting list deregistered on-premises instances.
  • Registered: Include in the resulting list registered on-premises instances.
" + } + }, + "RemoveTagsFromOnPremisesInstancesInput": { + "base": "

Represents the input of a remove tags from on-premises instances operation.

", + "refs": { + } + }, + "Repository": { + "base": null, + "refs": { + "GitHubLocation$repository": "

The GitHub account and repository pair that stores a reference to the commit that represents the bundled artifacts for the application revision.

Specified as account/repository.

" + } + }, + "RevisionDoesNotExistException": { + "base": "

The named revision does not exist with the applicable IAM user or AWS account.

", + "refs": { + } + }, + "RevisionLocation": { + "base": "

Information about an application revision's location.

", + "refs": { + "CreateDeploymentInput$revision": "

The type of revision to deploy, along with information about the revision's location.

", + "DeploymentGroupInfo$targetRevision": "

Information about the deployment group's target revision, including the revision's type and its location.

", + "DeploymentInfo$revision": "

Information about the location of application artifacts that are stored and the service to retrieve them from.

", + "GetApplicationRevisionInput$revision": "

Information about the application revision to get, including the revision's type and its location.

", + "GetApplicationRevisionOutput$revision": "

Additional information about the revision, including the revision's type and its location.

", + "RegisterApplicationRevisionInput$revision": "

Information about the application revision to register, including the revision's type and its location.

", + "RevisionLocationList$member": null + } + }, + "RevisionLocationList": { + "base": null, + "refs": { + "ListApplicationRevisionsOutput$revisions": "

A list of revision locations that contain the matching revisions.

" + } + }, + "RevisionLocationType": { + "base": null, + "refs": { + "RevisionLocation$revisionType": "

The application revision's type:

  • S3: An application revision stored in Amazon S3.
  • GitHub: An application revision stored in GitHub.
" + } + }, + "RevisionRequiredException": { + "base": "

The revision ID was not specified.

", + "refs": { + } + }, + "Role": { + "base": null, + "refs": { + "CreateDeploymentGroupInput$serviceRoleArn": "

A service role ARN that allows AWS CodeDeploy to act on the user's behalf when interacting with AWS services.

", + "DeploymentGroupInfo$serviceRoleArn": "

A service role ARN.

", + "UpdateDeploymentGroupInput$serviceRoleArn": "

A replacement service role's ARN, if you want to change it.

" + } + }, + "RoleRequiredException": { + "base": "

The role ID was not specified.

", + "refs": { + } + }, + "S3Bucket": { + "base": null, + "refs": { + "ListApplicationRevisionsInput$s3Bucket": "

A specific Amazon S3 bucket name to limit the search for revisions.

If set to null, then all of the user's buckets will be searched.

", + "S3Location$bucket": "

The name of the Amazon S3 bucket where the application revision is stored.

" + } + }, + "S3Key": { + "base": null, + "refs": { + "ListApplicationRevisionsInput$s3KeyPrefix": "

A specific key prefix for the set of Amazon S3 objects to limit the search for revisions.

", + "S3Location$key": "

The name of the Amazon S3 object that represents the bundled artifacts for the application revision.

" + } + }, + "S3Location": { + "base": "

Information about the location of application artifacts that are stored in Amazon S3.

", + "refs": { + "RevisionLocation$s3Location": null + } + }, + "ScriptName": { + "base": null, + "refs": { + "Diagnostics$scriptName": "

The name of the script.

" + } + }, + "SortOrder": { + "base": null, + "refs": { + "ListApplicationRevisionsInput$sortOrder": "

The order to sort the list results by:

  • ascending: Sort the list of results in ascending order.
  • descending: Sort the list of results in descending order.

If not specified, the results will be sorted in ascending order.

If set to null, the results will be sorted in an arbitrary order.

" + } + }, + "StopDeploymentInput": { + "base": "

Represents the input of a stop deployment operation.

", + "refs": { + } + }, + "StopDeploymentOutput": { + "base": "

Represents the output of a stop deployment operation.

", + "refs": { + } + }, + "StopStatus": { + "base": null, + "refs": { + "StopDeploymentOutput$status": "

The status of the stop deployment operation:

  • Pending: The stop operation is pending.
  • Succeeded: The stop operation succeeded.
" + } + }, + "Tag": { + "base": "

Information about a tag.

", + "refs": { + "TagList$member": null + } + }, + "TagFilter": { + "base": "

Information about an on-premises instance tag filter.

", + "refs": { + "TagFilterList$member": null + } + }, + "TagFilterList": { + "base": null, + "refs": { + "CreateDeploymentGroupInput$onPremisesInstanceTagFilters": "

The on-premises instance tags to filter on.

", + "DeploymentGroupInfo$onPremisesInstanceTagFilters": "

The on-premises instance tags to filter on.

", + "ListOnPremisesInstancesInput$tagFilters": "

The on-premises instance tags that will be used to restrict the corresponding on-premises instance names that are returned.

", + "UpdateDeploymentGroupInput$onPremisesInstanceTagFilters": "

The replacement set of on-premises instance tags for filter on, if you want to change them.

" + } + }, + "TagFilterType": { + "base": null, + "refs": { + "TagFilter$Type": "

The on-premises instance tag filter type:

  • KEY_ONLY: Key only.
  • VALUE_ONLY: Value only.
  • KEY_AND_VALUE: Key and value.
" + } + }, + "TagLimitExceededException": { + "base": "

The maximum allowed number of tags was exceeded.

", + "refs": { + } + }, + "TagList": { + "base": null, + "refs": { + "AddTagsToOnPremisesInstancesInput$tags": "

The tag key-value pairs to add to the on-premises instances.

Keys and values are both required. Keys cannot be nulls or empty strings. Value-only tags are not allowed.

", + "InstanceInfo$tags": "

The tags that are currently associated with the on-premises instance.

", + "RemoveTagsFromOnPremisesInstancesInput$tags": "

The tag key-value pairs to remove from the on-premises instances.

" + } + }, + "TagRequiredException": { + "base": "

A tag was not specified.

", + "refs": { + } + }, + "TimeRange": { + "base": "

Information about a time range.

", + "refs": { + "ListDeploymentsInput$createTimeRange": "

A deployment creation start- and end-time range for returning a subset of the list of deployments.

" + } + }, + "Timestamp": { + "base": null, + "refs": { + "ApplicationInfo$createTime": "

The time that the application was created.

", + "DeploymentConfigInfo$createTime": "

The time that the deployment configuration was created.

", + "DeploymentInfo$createTime": "

A timestamp indicating when the deployment was created.

", + "DeploymentInfo$startTime": "

A timestamp indicating when the deployment began deploying to the deployment group.

Note that in some cases, the reported value of the start time may be later than the complete time. This is due to differences in the clock settings of various back-end servers that participate in the overall deployment process.

", + "DeploymentInfo$completeTime": "

A timestamp indicating when the deployment was completed.

", + "GenericRevisionInfo$firstUsedTime": "

When the revision was first used by AWS CodeDeploy.

", + "GenericRevisionInfo$lastUsedTime": "

When the revision was last used by AWS CodeDeploy.

", + "GenericRevisionInfo$registerTime": "

When the revision was registered with AWS CodeDeploy.

", + "InstanceInfo$registerTime": "

The time that the on-premises instance was registered.

", + "InstanceInfo$deregisterTime": "

If the on-premises instance was deregistered, the time that the on-premises instance was deregistered.

", + "InstanceSummary$lastUpdatedAt": "

A timestamp indicating when the instance information was last updated.

", + "LifecycleEvent$startTime": "

A timestamp indicating when the deployment lifecycle event started.

", + "LifecycleEvent$endTime": "

A timestamp indicating when the deployment lifecycle event ended.

", + "TimeRange$start": "

The time range's start time.

Specify null to leave the time range's start time open-ended.", + "TimeRange$end": "

The time range's end time.

Specify null to leave the time range's end time open-ended." + } + }, + "UpdateApplicationInput": { + "base": "

Represents the input of an update application operation.

", + "refs": { + } + }, + "UpdateDeploymentGroupInput": { + "base": "

Represents the input of an update deployment group operation.

", + "refs": { + } + }, + "UpdateDeploymentGroupOutput": { + "base": "

Represents the output of an update deployment group operation.

", + "refs": { + } + }, + "Value": { + "base": null, + "refs": { + "EC2TagFilter$Value": "

The tag filter value.

", + "Tag$Value": "

The tag's value.

", + "TagFilter$Value": "

The on-premises instance tag filter value.

" + } + }, + "VersionId": { + "base": null, + "refs": { + "S3Location$version": "

A specific version of the Amazon S3 object that represents the bundled artifacts for the application revision.

If the version is not specified, the system will use the most recent version by default.

" + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/codedeploy/2014-10-06/paginators-1.json b/lib/aws-sdk/Aws/data/codedeploy/2014-10-06/paginators-1.json new file mode 100644 index 0000000..cea07e6 --- /dev/null +++ b/lib/aws-sdk/Aws/data/codedeploy/2014-10-06/paginators-1.json @@ -0,0 +1,34 @@ +{ + "pagination": { + "ListApplicationRevisions": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "revisions" + }, + "ListApplications": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "applications" + }, + "ListDeploymentConfigs": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "deploymentConfigsList" + }, + "ListDeploymentGroups": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "deploymentGroups" + }, + "ListDeploymentInstances": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "instancesList" + }, + "ListDeployments": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "deployments" + } + } +} diff --git a/lib/aws-sdk/Aws/data/cognito-identity/2014-06-30/api-2.json b/lib/aws-sdk/Aws/data/cognito-identity/2014-06-30/api-2.json new file mode 100644 index 0000000..f90ceb1 --- /dev/null +++ b/lib/aws-sdk/Aws/data/cognito-identity/2014-06-30/api-2.json @@ -0,0 +1,1252 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2014-06-30", + "endpointPrefix":"cognito-identity", + "jsonVersion":"1.1", + "serviceFullName":"Amazon Cognito Identity", + "signatureVersion":"v4", + "targetPrefix":"AWSCognitoIdentityService", + "protocol":"json" + }, + "operations":{ + "CreateIdentityPool":{ + "name":"CreateIdentityPool", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateIdentityPoolInput"}, + "output":{"shape":"IdentityPool"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"NotAuthorizedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"ResourceConflictException", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + }, + { + "shape":"InternalErrorException", + "exception":true, + "fault":true + }, + { + "shape":"LimitExceededException", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "DeleteIdentities":{ + "name":"DeleteIdentities", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteIdentitiesInput"}, + "output":{"shape":"DeleteIdentitiesResponse"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + }, + { + "shape":"InternalErrorException", + "exception":true, + "fault":true + } + ] + }, + "DeleteIdentityPool":{ + "name":"DeleteIdentityPool", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteIdentityPoolInput"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"NotAuthorizedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + }, + { + "shape":"InternalErrorException", + "exception":true, + "fault":true + } + ] + }, + "DescribeIdentity":{ + "name":"DescribeIdentity", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeIdentityInput"}, + "output":{"shape":"IdentityDescription"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"NotAuthorizedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + }, + { + "shape":"InternalErrorException", + "exception":true, + "fault":true + } + ] + }, + "DescribeIdentityPool":{ + "name":"DescribeIdentityPool", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeIdentityPoolInput"}, + "output":{"shape":"IdentityPool"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"NotAuthorizedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + }, + { + "shape":"InternalErrorException", + "exception":true, + "fault":true + } + ] + }, + "GetCredentialsForIdentity":{ + "name":"GetCredentialsForIdentity", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetCredentialsForIdentityInput"}, + "output":{"shape":"GetCredentialsForIdentityResponse"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"NotAuthorizedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"ResourceConflictException", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + }, + { + "shape":"InvalidIdentityPoolConfigurationException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalErrorException", + "exception":true, + "fault":true + }, + { + "shape":"ExternalServiceException", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "GetId":{ + "name":"GetId", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetIdInput"}, + "output":{"shape":"GetIdResponse"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"NotAuthorizedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"ResourceConflictException", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + }, + { + "shape":"InternalErrorException", + "exception":true, + "fault":true + }, + { + "shape":"LimitExceededException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ExternalServiceException", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "GetIdentityPoolRoles":{ + "name":"GetIdentityPoolRoles", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetIdentityPoolRolesInput"}, + "output":{"shape":"GetIdentityPoolRolesResponse"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"NotAuthorizedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"ResourceConflictException", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + }, + { + "shape":"InternalErrorException", + "exception":true, + "fault":true + } + ] + }, + "GetOpenIdToken":{ + "name":"GetOpenIdToken", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetOpenIdTokenInput"}, + "output":{"shape":"GetOpenIdTokenResponse"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"NotAuthorizedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"ResourceConflictException", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + }, + { + "shape":"InternalErrorException", + "exception":true, + "fault":true + }, + { + "shape":"ExternalServiceException", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "GetOpenIdTokenForDeveloperIdentity":{ + "name":"GetOpenIdTokenForDeveloperIdentity", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetOpenIdTokenForDeveloperIdentityInput"}, + "output":{"shape":"GetOpenIdTokenForDeveloperIdentityResponse"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"NotAuthorizedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"ResourceConflictException", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + }, + { + "shape":"InternalErrorException", + "exception":true, + "fault":true + }, + { + "shape":"DeveloperUserAlreadyRegisteredException", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "ListIdentities":{ + "name":"ListIdentities", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListIdentitiesInput"}, + "output":{"shape":"ListIdentitiesResponse"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"NotAuthorizedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + }, + { + "shape":"InternalErrorException", + "exception":true, + "fault":true + } + ] + }, + "ListIdentityPools":{ + "name":"ListIdentityPools", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListIdentityPoolsInput"}, + "output":{"shape":"ListIdentityPoolsResponse"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"NotAuthorizedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + }, + { + "shape":"InternalErrorException", + "exception":true, + "fault":true + } + ] + }, + "LookupDeveloperIdentity":{ + "name":"LookupDeveloperIdentity", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"LookupDeveloperIdentityInput"}, + "output":{"shape":"LookupDeveloperIdentityResponse"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"NotAuthorizedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"ResourceConflictException", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + }, + { + "shape":"InternalErrorException", + "exception":true, + "fault":true + } + ] + }, + "MergeDeveloperIdentities":{ + "name":"MergeDeveloperIdentities", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"MergeDeveloperIdentitiesInput"}, + "output":{"shape":"MergeDeveloperIdentitiesResponse"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"NotAuthorizedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"ResourceConflictException", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + }, + { + "shape":"InternalErrorException", + "exception":true, + "fault":true + } + ] + }, + "SetIdentityPoolRoles":{ + "name":"SetIdentityPoolRoles", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetIdentityPoolRolesInput"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"NotAuthorizedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"ResourceConflictException", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + }, + { + "shape":"InternalErrorException", + "exception":true, + "fault":true + } + ] + }, + "UnlinkDeveloperIdentity":{ + "name":"UnlinkDeveloperIdentity", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UnlinkDeveloperIdentityInput"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"NotAuthorizedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"ResourceConflictException", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + }, + { + "shape":"InternalErrorException", + "exception":true, + "fault":true + } + ] + }, + "UnlinkIdentity":{ + "name":"UnlinkIdentity", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UnlinkIdentityInput"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"NotAuthorizedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"ResourceConflictException", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + }, + { + "shape":"InternalErrorException", + "exception":true, + "fault":true + }, + { + "shape":"ExternalServiceException", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "UpdateIdentityPool":{ + "name":"UpdateIdentityPool", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"IdentityPool"}, + "output":{"shape":"IdentityPool"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"NotAuthorizedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"ResourceConflictException", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + }, + { + "shape":"InternalErrorException", + "exception":true, + "fault":true + } + ] + } + }, + "shapes":{ + "ARNString":{ + "type":"string", + "min":20, + "max":2048 + }, + "AccessKeyString":{"type":"string"}, + "AccountId":{ + "type":"string", + "min":1, + "max":15, + "pattern":"\\d+" + }, + "CreateIdentityPoolInput":{ + "type":"structure", + "required":[ + "IdentityPoolName", + "AllowUnauthenticatedIdentities" + ], + "members":{ + "IdentityPoolName":{"shape":"IdentityPoolName"}, + "AllowUnauthenticatedIdentities":{"shape":"IdentityPoolUnauthenticated"}, + "SupportedLoginProviders":{"shape":"IdentityProviders"}, + "DeveloperProviderName":{"shape":"DeveloperProviderName"}, + "OpenIdConnectProviderARNs":{"shape":"OIDCProviderList"} + } + }, + "Credentials":{ + "type":"structure", + "members":{ + "AccessKeyId":{"shape":"AccessKeyString"}, + "SecretKey":{"shape":"SecretKeyString"}, + "SessionToken":{"shape":"SessionTokenString"}, + "Expiration":{"shape":"DateType"} + } + }, + "DateType":{"type":"timestamp"}, + "DeleteIdentitiesInput":{ + "type":"structure", + "required":["IdentityIdsToDelete"], + "members":{ + "IdentityIdsToDelete":{"shape":"IdentityIdList"} + } + }, + "DeleteIdentitiesResponse":{ + "type":"structure", + "members":{ + "UnprocessedIdentityIds":{"shape":"UnprocessedIdentityIdList"} + } + }, + "DeleteIdentityPoolInput":{ + "type":"structure", + "required":["IdentityPoolId"], + "members":{ + "IdentityPoolId":{"shape":"IdentityPoolId"} + } + }, + "DescribeIdentityInput":{ + "type":"structure", + "required":["IdentityId"], + "members":{ + "IdentityId":{"shape":"IdentityId"} + } + }, + "DescribeIdentityPoolInput":{ + "type":"structure", + "required":["IdentityPoolId"], + "members":{ + "IdentityPoolId":{"shape":"IdentityPoolId"} + } + }, + "DeveloperProviderName":{ + "type":"string", + "min":1, + "max":128, + "pattern":"[\\w._-]+" + }, + "DeveloperUserAlreadyRegisteredException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "DeveloperUserIdentifier":{ + "type":"string", + "min":1, + "max":1024, + "pattern":"[\\w.@_-]+" + }, + "DeveloperUserIdentifierList":{ + "type":"list", + "member":{"shape":"DeveloperUserIdentifier"} + }, + "ErrorCode":{ + "type":"string", + "enum":[ + "AccessDenied", + "InternalServerError" + ] + }, + "ExternalServiceException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "GetCredentialsForIdentityInput":{ + "type":"structure", + "required":["IdentityId"], + "members":{ + "IdentityId":{"shape":"IdentityId"}, + "Logins":{"shape":"LoginsMap"} + } + }, + "GetCredentialsForIdentityResponse":{ + "type":"structure", + "members":{ + "IdentityId":{"shape":"IdentityId"}, + "Credentials":{"shape":"Credentials"} + } + }, + "GetIdInput":{ + "type":"structure", + "required":["IdentityPoolId"], + "members":{ + "AccountId":{"shape":"AccountId"}, + "IdentityPoolId":{"shape":"IdentityPoolId"}, + "Logins":{"shape":"LoginsMap"} + } + }, + "GetIdResponse":{ + "type":"structure", + "members":{ + "IdentityId":{"shape":"IdentityId"} + } + }, + "GetIdentityPoolRolesInput":{ + "type":"structure", + "required":["IdentityPoolId"], + "members":{ + "IdentityPoolId":{"shape":"IdentityPoolId"} + } + }, + "GetIdentityPoolRolesResponse":{ + "type":"structure", + "members":{ + "IdentityPoolId":{"shape":"IdentityPoolId"}, + "Roles":{"shape":"RolesMap"} + } + }, + "GetOpenIdTokenForDeveloperIdentityInput":{ + "type":"structure", + "required":[ + "IdentityPoolId", + "Logins" + ], + "members":{ + "IdentityPoolId":{"shape":"IdentityPoolId"}, + "IdentityId":{"shape":"IdentityId"}, + "Logins":{"shape":"LoginsMap"}, + "TokenDuration":{"shape":"TokenDuration"} + } + }, + "GetOpenIdTokenForDeveloperIdentityResponse":{ + "type":"structure", + "members":{ + "IdentityId":{"shape":"IdentityId"}, + "Token":{"shape":"OIDCToken"} + } + }, + "GetOpenIdTokenInput":{ + "type":"structure", + "required":["IdentityId"], + "members":{ + "IdentityId":{"shape":"IdentityId"}, + "Logins":{"shape":"LoginsMap"} + } + }, + "GetOpenIdTokenResponse":{ + "type":"structure", + "members":{ + "IdentityId":{"shape":"IdentityId"}, + "Token":{"shape":"OIDCToken"} + } + }, + "HideDisabled":{"type":"boolean"}, + "IdentitiesList":{ + "type":"list", + "member":{"shape":"IdentityDescription"} + }, + "IdentityDescription":{ + "type":"structure", + "members":{ + "IdentityId":{"shape":"IdentityId"}, + "Logins":{"shape":"LoginsList"}, + "CreationDate":{"shape":"DateType"}, + "LastModifiedDate":{"shape":"DateType"} + } + }, + "IdentityId":{ + "type":"string", + "min":1, + "max":50, + "pattern":"[\\w-]+:[0-9a-f-]+" + }, + "IdentityIdList":{ + "type":"list", + "member":{"shape":"IdentityId"}, + "min":1, + "max":60 + }, + "IdentityPool":{ + "type":"structure", + "required":[ + "IdentityPoolId", + "IdentityPoolName", + "AllowUnauthenticatedIdentities" + ], + "members":{ + "IdentityPoolId":{"shape":"IdentityPoolId"}, + "IdentityPoolName":{"shape":"IdentityPoolName"}, + "AllowUnauthenticatedIdentities":{"shape":"IdentityPoolUnauthenticated"}, + "SupportedLoginProviders":{"shape":"IdentityProviders"}, + "DeveloperProviderName":{"shape":"DeveloperProviderName"}, + "OpenIdConnectProviderARNs":{"shape":"OIDCProviderList"} + } + }, + "IdentityPoolId":{ + "type":"string", + "min":1, + "max":50, + "pattern":"[\\w-]+:[0-9a-f-]+" + }, + "IdentityPoolName":{ + "type":"string", + "min":1, + "max":128, + "pattern":"[\\w ]+" + }, + "IdentityPoolShortDescription":{ + "type":"structure", + "members":{ + "IdentityPoolId":{"shape":"IdentityPoolId"}, + "IdentityPoolName":{"shape":"IdentityPoolName"} + } + }, + "IdentityPoolUnauthenticated":{"type":"boolean"}, + "IdentityPoolsList":{ + "type":"list", + "member":{"shape":"IdentityPoolShortDescription"} + }, + "IdentityProviderId":{ + "type":"string", + "min":1, + "max":128, + "pattern":"[\\w.;_-]+" + }, + "IdentityProviderName":{ + "type":"string", + "min":1, + "max":128, + "pattern":"[\\w._/-]+" + }, + "IdentityProviderToken":{ + "type":"string", + "min":1, + "max":2048, + "pattern":"[\\S]+" + }, + "IdentityProviders":{ + "type":"map", + "key":{"shape":"IdentityProviderName"}, + "value":{"shape":"IdentityProviderId"}, + "max":10 + }, + "InternalErrorException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "exception":true, + "fault":true + }, + "InvalidIdentityPoolConfigurationException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidParameterException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "LimitExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "ListIdentitiesInput":{ + "type":"structure", + "required":[ + "IdentityPoolId", + "MaxResults" + ], + "members":{ + "IdentityPoolId":{"shape":"IdentityPoolId"}, + "MaxResults":{"shape":"QueryLimit"}, + "NextToken":{"shape":"PaginationKey"}, + "HideDisabled":{"shape":"HideDisabled"} + } + }, + "ListIdentitiesResponse":{ + "type":"structure", + "members":{ + "IdentityPoolId":{"shape":"IdentityPoolId"}, + "Identities":{"shape":"IdentitiesList"}, + "NextToken":{"shape":"PaginationKey"} + } + }, + "ListIdentityPoolsInput":{ + "type":"structure", + "required":["MaxResults"], + "members":{ + "MaxResults":{"shape":"QueryLimit"}, + "NextToken":{"shape":"PaginationKey"} + } + }, + "ListIdentityPoolsResponse":{ + "type":"structure", + "members":{ + "IdentityPools":{"shape":"IdentityPoolsList"}, + "NextToken":{"shape":"PaginationKey"} + } + }, + "LoginsList":{ + "type":"list", + "member":{"shape":"IdentityProviderName"} + }, + "LoginsMap":{ + "type":"map", + "key":{"shape":"IdentityProviderName"}, + "value":{"shape":"IdentityProviderToken"}, + "max":10 + }, + "LookupDeveloperIdentityInput":{ + "type":"structure", + "required":["IdentityPoolId"], + "members":{ + "IdentityPoolId":{"shape":"IdentityPoolId"}, + "IdentityId":{"shape":"IdentityId"}, + "DeveloperUserIdentifier":{"shape":"DeveloperUserIdentifier"}, + "MaxResults":{"shape":"QueryLimit"}, + "NextToken":{"shape":"PaginationKey"} + } + }, + "LookupDeveloperIdentityResponse":{ + "type":"structure", + "members":{ + "IdentityId":{"shape":"IdentityId"}, + "DeveloperUserIdentifierList":{"shape":"DeveloperUserIdentifierList"}, + "NextToken":{"shape":"PaginationKey"} + } + }, + "MergeDeveloperIdentitiesInput":{ + "type":"structure", + "required":[ + "SourceUserIdentifier", + "DestinationUserIdentifier", + "DeveloperProviderName", + "IdentityPoolId" + ], + "members":{ + "SourceUserIdentifier":{"shape":"DeveloperUserIdentifier"}, + "DestinationUserIdentifier":{"shape":"DeveloperUserIdentifier"}, + "DeveloperProviderName":{"shape":"DeveloperProviderName"}, + "IdentityPoolId":{"shape":"IdentityPoolId"} + } + }, + "MergeDeveloperIdentitiesResponse":{ + "type":"structure", + "members":{ + "IdentityId":{"shape":"IdentityId"} + } + }, + "NotAuthorizedException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":403}, + "exception":true + }, + "OIDCProviderList":{ + "type":"list", + "member":{"shape":"ARNString"} + }, + "OIDCToken":{"type":"string"}, + "PaginationKey":{ + "type":"string", + "min":1, + "pattern":"[\\S]+" + }, + "QueryLimit":{ + "type":"integer", + "min":1, + "max":60 + }, + "ResourceConflictException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "RoleType":{ + "type":"string", + "pattern":"(un)?authenticated" + }, + "RolesMap":{ + "type":"map", + "key":{"shape":"RoleType"}, + "value":{"shape":"ARNString"}, + "max":2 + }, + "SecretKeyString":{"type":"string"}, + "SessionTokenString":{"type":"string"}, + "SetIdentityPoolRolesInput":{ + "type":"structure", + "required":[ + "IdentityPoolId", + "Roles" + ], + "members":{ + "IdentityPoolId":{"shape":"IdentityPoolId"}, + "Roles":{"shape":"RolesMap"} + } + }, + "String":{"type":"string"}, + "TokenDuration":{ + "type":"long", + "min":1, + "max":86400 + }, + "TooManyRequestsException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":429}, + "exception":true + }, + "UnlinkDeveloperIdentityInput":{ + "type":"structure", + "required":[ + "IdentityId", + "IdentityPoolId", + "DeveloperProviderName", + "DeveloperUserIdentifier" + ], + "members":{ + "IdentityId":{"shape":"IdentityId"}, + "IdentityPoolId":{"shape":"IdentityPoolId"}, + "DeveloperProviderName":{"shape":"DeveloperProviderName"}, + "DeveloperUserIdentifier":{"shape":"DeveloperUserIdentifier"} + } + }, + "UnlinkIdentityInput":{ + "type":"structure", + "required":[ + "IdentityId", + "Logins", + "LoginsToRemove" + ], + "members":{ + "IdentityId":{"shape":"IdentityId"}, + "Logins":{"shape":"LoginsMap"}, + "LoginsToRemove":{"shape":"LoginsList"} + } + }, + "UnprocessedIdentityId":{ + "type":"structure", + "members":{ + "IdentityId":{"shape":"IdentityId"}, + "ErrorCode":{"shape":"ErrorCode"} + } + }, + "UnprocessedIdentityIdList":{ + "type":"list", + "member":{"shape":"UnprocessedIdentityId"}, + "max":60 + } + } +} diff --git a/lib/aws-sdk/Aws/data/cognito-identity/2014-06-30/docs-2.json b/lib/aws-sdk/Aws/data/cognito-identity/2014-06-30/docs-2.json new file mode 100644 index 0000000..bb5e4da --- /dev/null +++ b/lib/aws-sdk/Aws/data/cognito-identity/2014-06-30/docs-2.json @@ -0,0 +1,506 @@ +{ + "version": "2.0", + "operations": { + "CreateIdentityPool": "

Creates a new identity pool. The identity pool is a store of user identity information that is specific to your AWS account. The limit on identity pools is 60 per account. You must use AWS Developer credentials to call this API.

", + "DeleteIdentities": "

Deletes identities from an identity pool. You can specify a list of 1-60 identities that you want to delete.

You must use AWS Developer credentials to call this API.

", + "DeleteIdentityPool": "

Deletes a user pool. Once a pool is deleted, users will not be able to authenticate with the pool.

You must use AWS Developer credentials to call this API.

", + "DescribeIdentity": "

Returns metadata related to the given identity, including when the identity was created and any associated linked logins.

You must use AWS Developer credentials to call this API.

", + "DescribeIdentityPool": "

Gets details about a particular identity pool, including the pool name, ID description, creation date, and current number of users.

You must use AWS Developer credentials to call this API.

", + "GetCredentialsForIdentity": "

Returns credentials for the the provided identity ID. Any provided logins will be validated against supported login providers. If the token is for cognito-identity.amazonaws.com, it will be passed through to AWS Security Token Service with the appropriate role for the token.

This is a public API. You do not need any credentials to call this API.

", + "GetId": "

Generates (or retrieves) a Cognito ID. Supplying multiple logins will create an implicit linked account.

token+\";\"+tokenSecret.

This is a public API. You do not need any credentials to call this API.

", + "GetIdentityPoolRoles": "

Gets the roles for an identity pool.

You must use AWS Developer credentials to call this API.

", + "GetOpenIdToken": "

Gets an OpenID token, using a known Cognito ID. This known Cognito ID is returned by GetId. You can optionally add additional logins for the identity. Supplying multiple logins creates an implicit link.

The OpenId token is valid for 15 minutes.

This is a public API. You do not need any credentials to call this API.

", + "GetOpenIdTokenForDeveloperIdentity": "

Registers (or retrieves) a Cognito IdentityId and an OpenID Connect token for a user authenticated by your backend authentication process. Supplying multiple logins will create an implicit linked account. You can only specify one developer provider as part of the Logins map, which is linked to the identity pool. The developer provider is the \"domain\" by which Cognito will refer to your users.

You can use GetOpenIdTokenForDeveloperIdentity to create a new identity and to link new logins (that is, user credentials issued by a public provider or developer provider) to an existing identity. When you want to create a new identity, the IdentityId should be null. When you want to associate a new login with an existing authenticated/unauthenticated identity, you can do so by providing the existing IdentityId. This API will create the identity in the specified IdentityPoolId.

You must use AWS Developer credentials to call this API.

", + "ListIdentities": "

Lists the identities in a pool.

You must use AWS Developer credentials to call this API.

", + "ListIdentityPools": "

Lists all of the Cognito identity pools registered for your account.

This is a public API. You do not need any credentials to call this API.

", + "LookupDeveloperIdentity": "

Retrieves the IdentityID associated with a DeveloperUserIdentifier or the list of DeveloperUserIdentifiers associated with an IdentityId for an existing identity. Either IdentityID or DeveloperUserIdentifier must not be null. If you supply only one of these values, the other value will be searched in the database and returned as a part of the response. If you supply both, DeveloperUserIdentifier will be matched against IdentityID. If the values are verified against the database, the response returns both values and is the same as the request. Otherwise a ResourceConflictException is thrown.

You must use AWS Developer credentials to call this API.

", + "MergeDeveloperIdentities": "

Merges two users having different IdentityIds, existing in the same identity pool, and identified by the same developer provider. You can use this action to request that discrete users be merged and identified as a single user in the Cognito environment. Cognito associates the given source user (SourceUserIdentifier) with the IdentityId of the DestinationUserIdentifier. Only developer-authenticated users can be merged. If the users to be merged are associated with the same public provider, but as two different users, an exception will be thrown.

You must use AWS Developer credentials to call this API.

", + "SetIdentityPoolRoles": "

Sets the roles for an identity pool. These roles are used when making calls to GetCredentialsForIdentity action.

You must use AWS Developer credentials to call this API.

", + "UnlinkDeveloperIdentity": "

Unlinks a DeveloperUserIdentifier from an existing identity. Unlinked developer users will be considered new identities next time they are seen. If, for a given Cognito identity, you remove all federated identities as well as the developer user identifier, the Cognito identity becomes inaccessible.

This is a public API. You do not need any credentials to call this API.

", + "UnlinkIdentity": "

Unlinks a federated identity from an existing account. Unlinked logins will be considered new identities next time they are seen. Removing the last linked login will make this identity inaccessible.

This is a public API. You do not need any credentials to call this API.

", + "UpdateIdentityPool": "

Updates a user pool.

You must use AWS Developer credentials to call this API.

" + }, + "service": "Amazon Cognito

Amazon Cognito is a web service that delivers scoped temporary credentials to mobile devices and other untrusted environments. Amazon Cognito uniquely identifies a device and supplies the user with a consistent identity over the lifetime of an application.

Using Amazon Cognito, you can enable authentication with one or more third-party identity providers (Facebook, Google, or Login with Amazon), and you can also choose to support unauthenticated access from your app. Cognito delivers a unique identifier for each user and acts as an OpenID token provider trusted by AWS Security Token Service (STS) to access temporary, limited-privilege AWS credentials.

To provide end-user credentials, first make an unsigned call to GetId. If the end user is authenticated with one of the supported identity providers, set the Logins map with the identity provider token. GetId returns a unique identifier for the user.

Next, make an unsigned call to GetCredentialsForIdentity. This call expects the same Logins map as the GetId call, as well as the IdentityID originally returned by GetId. Assuming your identity pool has been configured via the SetIdentityPoolRoles operation, GetCredentialsForIdentity will return AWS credentials for your use. If your pool has not been configured with SetIdentityPoolRoles, or if you want to follow legacy flow, make an unsigned call to GetOpenIdToken, which returns the OpenID token necessary to call STS and retrieve AWS credentials. This call expects the same Logins map as the GetId call, as well as the IdentityID originally returned by GetId. The token returned by GetOpenIdToken can be passed to the STS operation AssumeRoleWithWebIdentity to retrieve AWS credentials.

If you want to use Amazon Cognito in an Android, iOS, or Unity application, you will probably want to make API calls via the AWS Mobile SDK. To learn more, see the AWS Mobile SDK Developer Guide.

", + "shapes": { + "ARNString": { + "base": null, + "refs": { + "OIDCProviderList$member": null, + "RolesMap$value": null + } + }, + "AccessKeyString": { + "base": null, + "refs": { + "Credentials$AccessKeyId": "

The Access Key portion of the credentials.

" + } + }, + "AccountId": { + "base": null, + "refs": { + "GetIdInput$AccountId": "A standard AWS account ID (9+ digits)." + } + }, + "CreateIdentityPoolInput": { + "base": "

Input to the CreateIdentityPool action.

", + "refs": { + } + }, + "Credentials": { + "base": "

Credentials for the the provided identity ID.

", + "refs": { + "GetCredentialsForIdentityResponse$Credentials": "

Credentials for the the provided identity ID.

" + } + }, + "DateType": { + "base": null, + "refs": { + "Credentials$Expiration": "

The date at which these credentials will expire.

", + "IdentityDescription$CreationDate": "

Date on which the identity was created.

", + "IdentityDescription$LastModifiedDate": "

Date on which the identity was last modified.

" + } + }, + "DeleteIdentitiesInput": { + "base": "

Input to the DeleteIdentities action.

", + "refs": { + } + }, + "DeleteIdentitiesResponse": { + "base": "

Returned in response to a successful DeleteIdentities operation.

", + "refs": { + } + }, + "DeleteIdentityPoolInput": { + "base": "

Input to the DeleteIdentityPool action.

", + "refs": { + } + }, + "DescribeIdentityInput": { + "base": "

Input to the DescribeIdentity action.

", + "refs": { + } + }, + "DescribeIdentityPoolInput": { + "base": "Input to the DescribeIdentityPool action.", + "refs": { + } + }, + "DeveloperProviderName": { + "base": null, + "refs": { + "CreateIdentityPoolInput$DeveloperProviderName": "

The \"domain\" by which Cognito will refer to your users. This name acts as a placeholder that allows your backend and the Cognito service to communicate about the developer provider. For the DeveloperProviderName, you can use letters as well as period (.), underscore (_), and dash (-).

Once you have set a developer provider name, you cannot change it. Please take care in setting this parameter.

", + "IdentityPool$DeveloperProviderName": "

The \"domain\" by which Cognito will refer to your users.

", + "MergeDeveloperIdentitiesInput$DeveloperProviderName": "

The \"domain\" by which Cognito will refer to your users. This is a (pseudo) domain name that you provide while creating an identity pool. This name acts as a placeholder that allows your backend and the Cognito service to communicate about the developer provider. For the DeveloperProviderName, you can use letters as well as period (.), underscore (_), and dash (-).

", + "UnlinkDeveloperIdentityInput$DeveloperProviderName": "

The \"domain\" by which Cognito will refer to your users.

" + } + }, + "DeveloperUserAlreadyRegisteredException": { + "base": "

The provided developer user identifier is already registered with Cognito under a different identity ID.

", + "refs": { + } + }, + "DeveloperUserIdentifier": { + "base": null, + "refs": { + "DeveloperUserIdentifierList$member": null, + "LookupDeveloperIdentityInput$DeveloperUserIdentifier": "

A unique ID used by your backend authentication process to identify a user. Typically, a developer identity provider would issue many developer user identifiers, in keeping with the number of users.

", + "MergeDeveloperIdentitiesInput$SourceUserIdentifier": "

User identifier for the source user. The value should be a DeveloperUserIdentifier.

", + "MergeDeveloperIdentitiesInput$DestinationUserIdentifier": "

User identifier for the destination user. The value should be a DeveloperUserIdentifier.

", + "UnlinkDeveloperIdentityInput$DeveloperUserIdentifier": "A unique ID used by your backend authentication process to identify a user." + } + }, + "DeveloperUserIdentifierList": { + "base": null, + "refs": { + "LookupDeveloperIdentityResponse$DeveloperUserIdentifierList": "

This is the list of developer user identifiers associated with an identity ID. Cognito supports the association of multiple developer user identifiers with an identity ID.

" + } + }, + "ErrorCode": { + "base": null, + "refs": { + "UnprocessedIdentityId$ErrorCode": "

The error code indicating the type of error that occurred.

" + } + }, + "ExternalServiceException": { + "base": "

An exception thrown when a dependent service such as Facebook or Twitter is not responding

", + "refs": { + } + }, + "GetCredentialsForIdentityInput": { + "base": "

Input to the GetCredentialsForIdentity action.

", + "refs": { + } + }, + "GetCredentialsForIdentityResponse": { + "base": "

Returned in response to a successful GetCredentialsForIdentity operation.

", + "refs": { + } + }, + "GetIdInput": { + "base": "Input to the GetId action.", + "refs": { + } + }, + "GetIdResponse": { + "base": "Returned in response to a GetId request.", + "refs": { + } + }, + "GetIdentityPoolRolesInput": { + "base": "

Input to the GetIdentityPoolRoles action.

", + "refs": { + } + }, + "GetIdentityPoolRolesResponse": { + "base": "

Returned in response to a successful GetIdentityPoolRoles operation.

", + "refs": { + } + }, + "GetOpenIdTokenForDeveloperIdentityInput": { + "base": "

Input to the GetOpenIdTokenForDeveloperIdentity action.

", + "refs": { + } + }, + "GetOpenIdTokenForDeveloperIdentityResponse": { + "base": "

Returned in response to a successful GetOpenIdTokenForDeveloperIdentity request.

", + "refs": { + } + }, + "GetOpenIdTokenInput": { + "base": "Input to the GetOpenIdToken action.", + "refs": { + } + }, + "GetOpenIdTokenResponse": { + "base": "Returned in response to a successful GetOpenIdToken request.", + "refs": { + } + }, + "HideDisabled": { + "base": null, + "refs": { + "ListIdentitiesInput$HideDisabled": "

An optional boolean parameter that allows you to hide disabled identities. If omitted, the ListIdentities API will include disabled identities in the response.

" + } + }, + "IdentitiesList": { + "base": null, + "refs": { + "ListIdentitiesResponse$Identities": "An object containing a set of identities and associated mappings." + } + }, + "IdentityDescription": { + "base": "A description of the identity.", + "refs": { + "IdentitiesList$member": null + } + }, + "IdentityId": { + "base": null, + "refs": { + "DescribeIdentityInput$IdentityId": "

A unique identifier in the format REGION:GUID.

", + "GetCredentialsForIdentityInput$IdentityId": "

A unique identifier in the format REGION:GUID.

", + "GetCredentialsForIdentityResponse$IdentityId": "

A unique identifier in the format REGION:GUID.

", + "GetIdResponse$IdentityId": "A unique identifier in the format REGION:GUID.", + "GetOpenIdTokenForDeveloperIdentityInput$IdentityId": "

A unique identifier in the format REGION:GUID.

", + "GetOpenIdTokenForDeveloperIdentityResponse$IdentityId": "

A unique identifier in the format REGION:GUID.

", + "GetOpenIdTokenInput$IdentityId": "A unique identifier in the format REGION:GUID.", + "GetOpenIdTokenResponse$IdentityId": "A unique identifier in the format REGION:GUID. Note that the IdentityId returned may not match the one passed on input.", + "IdentityDescription$IdentityId": "A unique identifier in the format REGION:GUID.", + "IdentityIdList$member": null, + "LookupDeveloperIdentityInput$IdentityId": "

A unique identifier in the format REGION:GUID.

", + "LookupDeveloperIdentityResponse$IdentityId": "

A unique identifier in the format REGION:GUID.

", + "MergeDeveloperIdentitiesResponse$IdentityId": "

A unique identifier in the format REGION:GUID.

", + "UnlinkDeveloperIdentityInput$IdentityId": "

A unique identifier in the format REGION:GUID.

", + "UnlinkIdentityInput$IdentityId": "A unique identifier in the format REGION:GUID.", + "UnprocessedIdentityId$IdentityId": "

A unique identifier in the format REGION:GUID.

" + } + }, + "IdentityIdList": { + "base": null, + "refs": { + "DeleteIdentitiesInput$IdentityIdsToDelete": "

A list of 1-60 identities that you want to delete.

" + } + }, + "IdentityPool": { + "base": "An object representing a Cognito identity pool.", + "refs": { + } + }, + "IdentityPoolId": { + "base": null, + "refs": { + "DeleteIdentityPoolInput$IdentityPoolId": "An identity pool ID in the format REGION:GUID.", + "DescribeIdentityPoolInput$IdentityPoolId": "An identity pool ID in the format REGION:GUID.", + "GetIdInput$IdentityPoolId": "An identity pool ID in the format REGION:GUID.", + "GetIdentityPoolRolesInput$IdentityPoolId": "

An identity pool ID in the format REGION:GUID.

", + "GetIdentityPoolRolesResponse$IdentityPoolId": "

An identity pool ID in the format REGION:GUID.

", + "GetOpenIdTokenForDeveloperIdentityInput$IdentityPoolId": "

An identity pool ID in the format REGION:GUID.

", + "IdentityPool$IdentityPoolId": "An identity pool ID in the format REGION:GUID.", + "IdentityPoolShortDescription$IdentityPoolId": "An identity pool ID in the format REGION:GUID.", + "ListIdentitiesInput$IdentityPoolId": "An identity pool ID in the format REGION:GUID.", + "ListIdentitiesResponse$IdentityPoolId": "An identity pool ID in the format REGION:GUID.", + "LookupDeveloperIdentityInput$IdentityPoolId": "

An identity pool ID in the format REGION:GUID.

", + "MergeDeveloperIdentitiesInput$IdentityPoolId": "

An identity pool ID in the format REGION:GUID.

", + "SetIdentityPoolRolesInput$IdentityPoolId": "

An identity pool ID in the format REGION:GUID.

", + "UnlinkDeveloperIdentityInput$IdentityPoolId": "

An identity pool ID in the format REGION:GUID.

" + } + }, + "IdentityPoolName": { + "base": null, + "refs": { + "CreateIdentityPoolInput$IdentityPoolName": "

A string that you provide.

", + "IdentityPool$IdentityPoolName": "

A string that you provide.

", + "IdentityPoolShortDescription$IdentityPoolName": "A string that you provide." + } + }, + "IdentityPoolShortDescription": { + "base": "A description of the identity pool.", + "refs": { + "IdentityPoolsList$member": null + } + }, + "IdentityPoolUnauthenticated": { + "base": null, + "refs": { + "CreateIdentityPoolInput$AllowUnauthenticatedIdentities": "

TRUE if the identity pool supports unauthenticated logins.

", + "IdentityPool$AllowUnauthenticatedIdentities": "TRUE if the identity pool supports unauthenticated logins." + } + }, + "IdentityPoolsList": { + "base": null, + "refs": { + "ListIdentityPoolsResponse$IdentityPools": "The identity pools returned by the ListIdentityPools action." + } + }, + "IdentityProviderId": { + "base": null, + "refs": { + "IdentityProviders$value": null + } + }, + "IdentityProviderName": { + "base": null, + "refs": { + "IdentityProviders$key": null, + "LoginsList$member": null, + "LoginsMap$key": null + } + }, + "IdentityProviderToken": { + "base": null, + "refs": { + "LoginsMap$value": null + } + }, + "IdentityProviders": { + "base": null, + "refs": { + "CreateIdentityPoolInput$SupportedLoginProviders": "

Optional key:value pairs mapping provider names to provider app IDs.

", + "IdentityPool$SupportedLoginProviders": "

Optional key:value pairs mapping provider names to provider app IDs.

" + } + }, + "InternalErrorException": { + "base": "Thrown when the service encounters an error during processing the request.", + "refs": { + } + }, + "InvalidIdentityPoolConfigurationException": { + "base": "

Thrown if the identity pool has no role associated for the given auth type (auth/unauth) or if the AssumeRole fails.

", + "refs": { + } + }, + "InvalidParameterException": { + "base": "Thrown for missing or bad input parameter(s).", + "refs": { + } + }, + "LimitExceededException": { + "base": "Thrown when the total number of user pools has exceeded a preset limit.", + "refs": { + } + }, + "ListIdentitiesInput": { + "base": "Input to the ListIdentities action.", + "refs": { + } + }, + "ListIdentitiesResponse": { + "base": "The response to a ListIdentities request.", + "refs": { + } + }, + "ListIdentityPoolsInput": { + "base": "Input to the ListIdentityPools action.", + "refs": { + } + }, + "ListIdentityPoolsResponse": { + "base": "The result of a successful ListIdentityPools action.", + "refs": { + } + }, + "LoginsList": { + "base": null, + "refs": { + "IdentityDescription$Logins": "A set of optional name-value pairs that map provider names to provider tokens.", + "UnlinkIdentityInput$LoginsToRemove": "Provider names to unlink from this identity." + } + }, + "LoginsMap": { + "base": null, + "refs": { + "GetCredentialsForIdentityInput$Logins": "

A set of optional name-value pairs that map provider names to provider tokens.

", + "GetIdInput$Logins": "

A set of optional name-value pairs that map provider names to provider tokens.

The available provider names for Logins are as follows:

  • Facebook: graph.facebook.com
  • Google: accounts.google.com
  • Amazon: www.amazon.com
  • Twitter: www.twitter.com
  • Digits: www.digits.com

", + "GetOpenIdTokenForDeveloperIdentityInput$Logins": "

A set of optional name-value pairs that map provider names to provider tokens. Each name-value pair represents a user from a public provider or developer provider. If the user is from a developer provider, the name-value pair will follow the syntax \"developer_provider_name\": \"developer_user_identifier\". The developer provider is the \"domain\" by which Cognito will refer to your users; you provided this domain while creating/updating the identity pool. The developer user identifier is an identifier from your backend that uniquely identifies a user. When you create an identity pool, you can specify the supported logins.

", + "GetOpenIdTokenInput$Logins": "A set of optional name-value pairs that map provider names to provider tokens. When using graph.facebook.com and www.amazon.com, supply the access_token returned from the provider's authflow. For accounts.google.com or any other OpenId Connect provider, always include the id_token.", + "UnlinkIdentityInput$Logins": "A set of optional name-value pairs that map provider names to provider tokens." + } + }, + "LookupDeveloperIdentityInput": { + "base": "

Input to the LookupDeveloperIdentityInput action.

", + "refs": { + } + }, + "LookupDeveloperIdentityResponse": { + "base": "

Returned in response to a successful LookupDeveloperIdentity action.

", + "refs": { + } + }, + "MergeDeveloperIdentitiesInput": { + "base": "

Input to the MergeDeveloperIdentities action.

", + "refs": { + } + }, + "MergeDeveloperIdentitiesResponse": { + "base": "

Returned in response to a successful MergeDeveloperIdentities action.

", + "refs": { + } + }, + "NotAuthorizedException": { + "base": "Thrown when a user is not authorized to access the requested resource.", + "refs": { + } + }, + "OIDCProviderList": { + "base": null, + "refs": { + "CreateIdentityPoolInput$OpenIdConnectProviderARNs": "

A list of OpendID Connect provider ARNs.

", + "IdentityPool$OpenIdConnectProviderARNs": "

A list of OpendID Connect provider ARNs.

" + } + }, + "OIDCToken": { + "base": null, + "refs": { + "GetOpenIdTokenForDeveloperIdentityResponse$Token": "

An OpenID token.

", + "GetOpenIdTokenResponse$Token": "An OpenID token, valid for 15 minutes." + } + }, + "PaginationKey": { + "base": null, + "refs": { + "ListIdentitiesInput$NextToken": "A pagination token.", + "ListIdentitiesResponse$NextToken": "A pagination token.", + "ListIdentityPoolsInput$NextToken": "A pagination token.", + "ListIdentityPoolsResponse$NextToken": "A pagination token.", + "LookupDeveloperIdentityInput$NextToken": "

A pagination token. The first call you make will have NextToken set to null. After that the service will return NextToken values as needed. For example, let's say you make a request with MaxResults set to 10, and there are 20 matches in the database. The service will return a pagination token as a part of the response. This token can be used to call the API again and get results starting from the 11th match.

", + "LookupDeveloperIdentityResponse$NextToken": "

A pagination token. The first call you make will have NextToken set to null. After that the service will return NextToken values as needed. For example, let's say you make a request with MaxResults set to 10, and there are 20 matches in the database. The service will return a pagination token as a part of the response. This token can be used to call the API again and get results starting from the 11th match.

" + } + }, + "QueryLimit": { + "base": null, + "refs": { + "ListIdentitiesInput$MaxResults": "The maximum number of identities to return.", + "ListIdentityPoolsInput$MaxResults": "The maximum number of identities to return.", + "LookupDeveloperIdentityInput$MaxResults": "

The maximum number of identities to return.

" + } + }, + "ResourceConflictException": { + "base": "Thrown when a user tries to use a login which is already linked to another account.", + "refs": { + } + }, + "ResourceNotFoundException": { + "base": "Thrown when the requested resource (for example, a dataset or record) does not exist.", + "refs": { + } + }, + "RoleType": { + "base": null, + "refs": { + "RolesMap$key": null + } + }, + "RolesMap": { + "base": null, + "refs": { + "GetIdentityPoolRolesResponse$Roles": "

The map of roles associated with this pool. Currently only authenticated and unauthenticated roles are supported.

", + "SetIdentityPoolRolesInput$Roles": "

The map of roles associated with this pool. For a given role, the key will be either \"authenticated\" or \"unauthenticated\" and the value will be the Role ARN.

" + } + }, + "SecretKeyString": { + "base": null, + "refs": { + "Credentials$SecretKey": "

The Secret Access Key portion of the credentials

" + } + }, + "SessionTokenString": { + "base": null, + "refs": { + "Credentials$SessionToken": "

The Session Token portion of the credentials

" + } + }, + "SetIdentityPoolRolesInput": { + "base": "

Input to the SetIdentityPoolRoles action.

", + "refs": { + } + }, + "String": { + "base": null, + "refs": { + "DeveloperUserAlreadyRegisteredException$message": "

This developer user identifier is already registered with Cognito.

", + "ExternalServiceException$message": "

The message returned by an ExternalServiceException

", + "InternalErrorException$message": "The message returned by an InternalErrorException.", + "InvalidIdentityPoolConfigurationException$message": "

The message returned for an InvalidIdentityPoolConfigurationException

", + "InvalidParameterException$message": "The message returned by an InvalidParameterException.", + "LimitExceededException$message": "The message returned by a LimitExceededException.", + "NotAuthorizedException$message": "The message returned by a NotAuthorizedException", + "ResourceConflictException$message": "The message returned by a ResourceConflictException.", + "ResourceNotFoundException$message": "The message returned by a ResourceNotFoundException.", + "TooManyRequestsException$message": "Message returned by a TooManyRequestsException" + } + }, + "TokenDuration": { + "base": null, + "refs": { + "GetOpenIdTokenForDeveloperIdentityInput$TokenDuration": "

The expiration time of the token, in seconds. You can specify a custom expiration time for the token so that you can cache it. If you don't provide an expiration time, the token is valid for 15 minutes. You can exchange the token with Amazon STS for temporary AWS credentials, which are valid for a maximum of one hour. The maximum token duration you can set is 24 hours. You should take care in setting the expiration time for a token, as there are significant security implications: an attacker could use a leaked token to access your AWS resources for the token's duration.

" + } + }, + "TooManyRequestsException": { + "base": "Thrown when a request is throttled.", + "refs": { + } + }, + "UnlinkDeveloperIdentityInput": { + "base": "

Input to the UnlinkDeveloperIdentity action.

", + "refs": { + } + }, + "UnlinkIdentityInput": { + "base": "Input to the UnlinkIdentity action.", + "refs": { + } + }, + "UnprocessedIdentityId": { + "base": "

An array of UnprocessedIdentityId objects, each of which contains an ErrorCode and IdentityId.

", + "refs": { + "UnprocessedIdentityIdList$member": null + } + }, + "UnprocessedIdentityIdList": { + "base": null, + "refs": { + "DeleteIdentitiesResponse$UnprocessedIdentityIds": "

An array of UnprocessedIdentityId objects, each of which contains an ErrorCode and IdentityId.

" + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/cognito-sync/2014-06-30/api-2.json b/lib/aws-sdk/Aws/data/cognito-sync/2014-06-30/api-2.json new file mode 100644 index 0000000..5d20572 --- /dev/null +++ b/lib/aws-sdk/Aws/data/cognito-sync/2014-06-30/api-2.json @@ -0,0 +1,1852 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2014-06-30", + "endpointPrefix":"cognito-sync", + "jsonVersion":"1.1", + "serviceFullName":"Amazon Cognito Sync", + "signatureVersion":"v4", + "protocol":"rest-json" + }, + "operations":{ + "BulkPublish":{ + "name":"BulkPublish", + "http":{ + "method":"POST", + "requestUri":"/identitypools/{IdentityPoolId}/bulkpublish", + "responseCode":200 + }, + "input":{"shape":"BulkPublishRequest"}, + "output":{"shape":"BulkPublishResponse"}, + "errors":[ + { + "shape":"NotAuthorizedException", + "error":{ + "code":"NotAuthorizedError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"DuplicateRequestException", + "error":{ + "code":"DuplicateRequest", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AlreadyStreamedException", + "error":{ + "code":"AlreadyStreamed", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteDataset":{ + "name":"DeleteDataset", + "http":{ + "method":"DELETE", + "requestUri":"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}", + "responseCode":200 + }, + "input":{"shape":"DeleteDatasetRequest"}, + "output":{"shape":"DeleteDatasetResponse"}, + "errors":[ + { + "shape":"NotAuthorizedException", + "error":{ + "code":"NotAuthorizedError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"TooManyRequestsException", + "error":{ + "code":"TooManyRequests", + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceConflictException", + "error":{ + "code":"ResourceConflict", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeDataset":{ + "name":"DescribeDataset", + "http":{ + "method":"GET", + "requestUri":"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}", + "responseCode":200 + }, + "input":{"shape":"DescribeDatasetRequest"}, + "output":{"shape":"DescribeDatasetResponse"}, + "errors":[ + { + "shape":"NotAuthorizedException", + "error":{ + "code":"NotAuthorizedError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"TooManyRequestsException", + "error":{ + "code":"TooManyRequests", + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeIdentityPoolUsage":{ + "name":"DescribeIdentityPoolUsage", + "http":{ + "method":"GET", + "requestUri":"/identitypools/{IdentityPoolId}", + "responseCode":200 + }, + "input":{"shape":"DescribeIdentityPoolUsageRequest"}, + "output":{"shape":"DescribeIdentityPoolUsageResponse"}, + "errors":[ + { + "shape":"NotAuthorizedException", + "error":{ + "code":"NotAuthorizedError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"TooManyRequestsException", + "error":{ + "code":"TooManyRequests", + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeIdentityUsage":{ + "name":"DescribeIdentityUsage", + "http":{ + "method":"GET", + "requestUri":"/identitypools/{IdentityPoolId}/identities/{IdentityId}", + "responseCode":200 + }, + "input":{"shape":"DescribeIdentityUsageRequest"}, + "output":{"shape":"DescribeIdentityUsageResponse"}, + "errors":[ + { + "shape":"NotAuthorizedException", + "error":{ + "code":"NotAuthorizedError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"TooManyRequestsException", + "error":{ + "code":"TooManyRequests", + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + } + ] + }, + "GetBulkPublishDetails":{ + "name":"GetBulkPublishDetails", + "http":{ + "method":"POST", + "requestUri":"/identitypools/{IdentityPoolId}/getBulkPublishDetails", + "responseCode":200 + }, + "input":{"shape":"GetBulkPublishDetailsRequest"}, + "output":{"shape":"GetBulkPublishDetailsResponse"}, + "errors":[ + { + "shape":"NotAuthorizedException", + "error":{ + "code":"NotAuthorizedError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + } + ] + }, + "GetCognitoEvents":{ + "name":"GetCognitoEvents", + "http":{ + "method":"GET", + "requestUri":"/identitypools/{IdentityPoolId}/events", + "responseCode":200 + }, + "input":{"shape":"GetCognitoEventsRequest"}, + "output":{"shape":"GetCognitoEventsResponse"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NotAuthorizedException", + "error":{ + "code":"NotAuthorizedError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"TooManyRequestsException", + "error":{ + "code":"TooManyRequests", + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + } + ] + }, + "GetIdentityPoolConfiguration":{ + "name":"GetIdentityPoolConfiguration", + "http":{ + "method":"GET", + "requestUri":"/identitypools/{IdentityPoolId}/configuration", + "responseCode":200 + }, + "input":{"shape":"GetIdentityPoolConfigurationRequest"}, + "output":{"shape":"GetIdentityPoolConfigurationResponse"}, + "errors":[ + { + "shape":"NotAuthorizedException", + "error":{ + "code":"NotAuthorizedError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"TooManyRequestsException", + "error":{ + "code":"TooManyRequests", + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + } + ] + }, + "ListDatasets":{ + "name":"ListDatasets", + "http":{ + "method":"GET", + "requestUri":"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets", + "responseCode":200 + }, + "input":{"shape":"ListDatasetsRequest"}, + "output":{"shape":"ListDatasetsResponse"}, + "errors":[ + { + "shape":"NotAuthorizedException", + "error":{ + "code":"NotAuthorizedError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"TooManyRequestsException", + "error":{ + "code":"TooManyRequests", + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + } + ] + }, + "ListIdentityPoolUsage":{ + "name":"ListIdentityPoolUsage", + "http":{ + "method":"GET", + "requestUri":"/identitypools", + "responseCode":200 + }, + "input":{"shape":"ListIdentityPoolUsageRequest"}, + "output":{"shape":"ListIdentityPoolUsageResponse"}, + "errors":[ + { + "shape":"NotAuthorizedException", + "error":{ + "code":"NotAuthorizedError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"TooManyRequestsException", + "error":{ + "code":"TooManyRequests", + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + } + ] + }, + "ListRecords":{ + "name":"ListRecords", + "http":{ + "method":"GET", + "requestUri":"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}/records", + "responseCode":200 + }, + "input":{"shape":"ListRecordsRequest"}, + "output":{"shape":"ListRecordsResponse"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NotAuthorizedException", + "error":{ + "code":"NotAuthorizedError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{ + "code":"TooManyRequests", + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + } + ] + }, + "RegisterDevice":{ + "name":"RegisterDevice", + "http":{ + "method":"POST", + "requestUri":"/identitypools/{IdentityPoolId}/identity/{IdentityId}/device", + "responseCode":200 + }, + "input":{"shape":"RegisterDeviceRequest"}, + "output":{"shape":"RegisterDeviceResponse"}, + "errors":[ + { + "shape":"NotAuthorizedException", + "error":{ + "code":"NotAuthorizedError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"InvalidConfigurationException", + "error":{ + "code":"InvalidConfiguration", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{ + "code":"TooManyRequests", + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + } + ] + }, + "SetCognitoEvents":{ + "name":"SetCognitoEvents", + "http":{ + "method":"POST", + "requestUri":"/identitypools/{IdentityPoolId}/events", + "responseCode":200 + }, + "input":{"shape":"SetCognitoEventsRequest"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NotAuthorizedException", + "error":{ + "code":"NotAuthorizedError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"TooManyRequestsException", + "error":{ + "code":"TooManyRequests", + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + } + ] + }, + "SetIdentityPoolConfiguration":{ + "name":"SetIdentityPoolConfiguration", + "http":{ + "method":"POST", + "requestUri":"/identitypools/{IdentityPoolId}/configuration", + "responseCode":200 + }, + "input":{"shape":"SetIdentityPoolConfigurationRequest"}, + "output":{"shape":"SetIdentityPoolConfigurationResponse"}, + "errors":[ + { + "shape":"NotAuthorizedException", + "error":{ + "code":"NotAuthorizedError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"TooManyRequestsException", + "error":{ + "code":"TooManyRequests", + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + } + ] + }, + "SubscribeToDataset":{ + "name":"SubscribeToDataset", + "http":{ + "method":"POST", + "requestUri":"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}/subscriptions/{DeviceId}", + "responseCode":200 + }, + "input":{"shape":"SubscribeToDatasetRequest"}, + "output":{"shape":"SubscribeToDatasetResponse"}, + "errors":[ + { + "shape":"NotAuthorizedException", + "error":{ + "code":"NotAuthorizedError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"InvalidConfigurationException", + "error":{ + "code":"InvalidConfiguration", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{ + "code":"TooManyRequests", + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + } + ] + }, + "UnsubscribeFromDataset":{ + "name":"UnsubscribeFromDataset", + "http":{ + "method":"DELETE", + "requestUri":"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}/subscriptions/{DeviceId}", + "responseCode":200 + }, + "input":{"shape":"UnsubscribeFromDatasetRequest"}, + "output":{"shape":"UnsubscribeFromDatasetResponse"}, + "errors":[ + { + "shape":"NotAuthorizedException", + "error":{ + "code":"NotAuthorizedError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"InvalidConfigurationException", + "error":{ + "code":"InvalidConfiguration", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{ + "code":"TooManyRequests", + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + } + ] + }, + "UpdateRecords":{ + "name":"UpdateRecords", + "http":{ + "method":"POST", + "requestUri":"/identitypools/{IdentityPoolId}/identities/{IdentityId}/datasets/{DatasetName}", + "responseCode":200 + }, + "input":{"shape":"UpdateRecordsRequest"}, + "output":{"shape":"UpdateRecordsResponse"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NotAuthorizedException", + "error":{ + "code":"NotAuthorizedError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceConflictException", + "error":{ + "code":"ResourceConflict", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidLambdaFunctionOutputException", + "error":{ + "code":"InvalidLambdaFunctionOutput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LambdaThrottledException", + "error":{ + "code":"LambdaThrottled", + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{ + "code":"TooManyRequests", + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + } + ] + } + }, + "shapes":{ + "AlreadyStreamedException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "error":{ + "code":"AlreadyStreamed", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ApplicationArn":{ + "type":"string", + "pattern":"arn:aws:sns:[-0-9a-z]+:\\d+:app/[A-Z_]+/[a-zA-Z0-9_.-]+" + }, + "ApplicationArnList":{ + "type":"list", + "member":{"shape":"ApplicationArn"} + }, + "AssumeRoleArn":{ + "type":"string", + "min":20, + "max":2048, + "pattern":"arn:aws:iam::\\d+:role/.*" + }, + "Boolean":{"type":"boolean"}, + "BulkPublishRequest":{ + "type":"structure", + "required":["IdentityPoolId"], + "members":{ + "IdentityPoolId":{ + "shape":"IdentityPoolId", + "location":"uri", + "locationName":"IdentityPoolId" + } + } + }, + "BulkPublishResponse":{ + "type":"structure", + "members":{ + "IdentityPoolId":{"shape":"IdentityPoolId"} + } + }, + "BulkPublishStatus":{ + "type":"string", + "enum":[ + "NOT_STARTED", + "IN_PROGRESS", + "FAILED", + "SUCCEEDED" + ] + }, + "ClientContext":{"type":"string"}, + "CognitoEventType":{"type":"string"}, + "CognitoStreams":{ + "type":"structure", + "members":{ + "StreamName":{"shape":"StreamName"}, + "RoleArn":{"shape":"AssumeRoleArn"}, + "StreamingStatus":{"shape":"StreamingStatus"} + } + }, + "Dataset":{ + "type":"structure", + "members":{ + "IdentityId":{"shape":"IdentityId"}, + "DatasetName":{"shape":"DatasetName"}, + "CreationDate":{"shape":"Date"}, + "LastModifiedDate":{"shape":"Date"}, + "LastModifiedBy":{"shape":"String"}, + "DataStorage":{"shape":"Long"}, + "NumRecords":{"shape":"Long"} + } + }, + "DatasetList":{ + "type":"list", + "member":{"shape":"Dataset"} + }, + "DatasetName":{ + "type":"string", + "min":1, + "max":128, + "pattern":"[a-zA-Z0-9_.:-]+" + }, + "Date":{"type":"timestamp"}, + "DeleteDatasetRequest":{ + "type":"structure", + "required":[ + "IdentityPoolId", + "IdentityId", + "DatasetName" + ], + "members":{ + "IdentityPoolId":{ + "shape":"IdentityPoolId", + "location":"uri", + "locationName":"IdentityPoolId" + }, + "IdentityId":{ + "shape":"IdentityId", + "location":"uri", + "locationName":"IdentityId" + }, + "DatasetName":{ + "shape":"DatasetName", + "location":"uri", + "locationName":"DatasetName" + } + } + }, + "DeleteDatasetResponse":{ + "type":"structure", + "members":{ + "Dataset":{"shape":"Dataset"} + } + }, + "DescribeDatasetRequest":{ + "type":"structure", + "required":[ + "IdentityPoolId", + "IdentityId", + "DatasetName" + ], + "members":{ + "IdentityPoolId":{ + "shape":"IdentityPoolId", + "location":"uri", + "locationName":"IdentityPoolId" + }, + "IdentityId":{ + "shape":"IdentityId", + "location":"uri", + "locationName":"IdentityId" + }, + "DatasetName":{ + "shape":"DatasetName", + "location":"uri", + "locationName":"DatasetName" + } + } + }, + "DescribeDatasetResponse":{ + "type":"structure", + "members":{ + "Dataset":{"shape":"Dataset"} + } + }, + "DescribeIdentityPoolUsageRequest":{ + "type":"structure", + "required":["IdentityPoolId"], + "members":{ + "IdentityPoolId":{ + "shape":"IdentityPoolId", + "location":"uri", + "locationName":"IdentityPoolId" + } + } + }, + "DescribeIdentityPoolUsageResponse":{ + "type":"structure", + "members":{ + "IdentityPoolUsage":{"shape":"IdentityPoolUsage"} + } + }, + "DescribeIdentityUsageRequest":{ + "type":"structure", + "required":[ + "IdentityPoolId", + "IdentityId" + ], + "members":{ + "IdentityPoolId":{ + "shape":"IdentityPoolId", + "location":"uri", + "locationName":"IdentityPoolId" + }, + "IdentityId":{ + "shape":"IdentityId", + "location":"uri", + "locationName":"IdentityId" + } + } + }, + "DescribeIdentityUsageResponse":{ + "type":"structure", + "members":{ + "IdentityUsage":{"shape":"IdentityUsage"} + } + }, + "DeviceId":{ + "type":"string", + "min":1, + "max":256 + }, + "DuplicateRequestException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "error":{ + "code":"DuplicateRequest", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "Events":{ + "type":"map", + "key":{"shape":"CognitoEventType"}, + "value":{"shape":"LambdaFunctionArn"}, + "max":1 + }, + "ExceptionMessage":{"type":"string"}, + "GetBulkPublishDetailsRequest":{ + "type":"structure", + "required":["IdentityPoolId"], + "members":{ + "IdentityPoolId":{ + "shape":"IdentityPoolId", + "location":"uri", + "locationName":"IdentityPoolId" + } + } + }, + "GetBulkPublishDetailsResponse":{ + "type":"structure", + "members":{ + "IdentityPoolId":{"shape":"IdentityPoolId"}, + "BulkPublishStartTime":{"shape":"Date"}, + "BulkPublishCompleteTime":{"shape":"Date"}, + "BulkPublishStatus":{"shape":"BulkPublishStatus"}, + "FailureMessage":{"shape":"String"} + } + }, + "GetCognitoEventsRequest":{ + "type":"structure", + "required":["IdentityPoolId"], + "members":{ + "IdentityPoolId":{ + "shape":"IdentityPoolId", + "location":"uri", + "locationName":"IdentityPoolId" + } + } + }, + "GetCognitoEventsResponse":{ + "type":"structure", + "members":{ + "Events":{"shape":"Events"} + } + }, + "GetIdentityPoolConfigurationRequest":{ + "type":"structure", + "required":["IdentityPoolId"], + "members":{ + "IdentityPoolId":{ + "shape":"IdentityPoolId", + "location":"uri", + "locationName":"IdentityPoolId" + } + } + }, + "GetIdentityPoolConfigurationResponse":{ + "type":"structure", + "members":{ + "IdentityPoolId":{"shape":"IdentityPoolId"}, + "PushSync":{"shape":"PushSync"}, + "CognitoStreams":{"shape":"CognitoStreams"} + } + }, + "IdentityId":{ + "type":"string", + "min":1, + "max":50, + "pattern":"[\\w-]+:[0-9a-f-]+" + }, + "IdentityPoolId":{ + "type":"string", + "min":1, + "max":50, + "pattern":"[\\w-]+:[0-9a-f-]+" + }, + "IdentityPoolUsage":{ + "type":"structure", + "members":{ + "IdentityPoolId":{"shape":"IdentityPoolId"}, + "SyncSessionsCount":{"shape":"Long"}, + "DataStorage":{"shape":"Long"}, + "LastModifiedDate":{"shape":"Date"} + } + }, + "IdentityPoolUsageList":{ + "type":"list", + "member":{"shape":"IdentityPoolUsage"} + }, + "IdentityUsage":{ + "type":"structure", + "members":{ + "IdentityId":{"shape":"IdentityId"}, + "IdentityPoolId":{"shape":"IdentityPoolId"}, + "LastModifiedDate":{"shape":"Date"}, + "DatasetCount":{"shape":"Integer"}, + "DataStorage":{"shape":"Long"} + } + }, + "Integer":{"type":"integer"}, + "IntegerString":{"type":"integer"}, + "InternalErrorException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + "InvalidConfigurationException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "error":{ + "code":"InvalidConfiguration", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidLambdaFunctionOutputException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "error":{ + "code":"InvalidLambdaFunctionOutput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidParameterException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "LambdaFunctionArn":{"type":"string"}, + "LambdaThrottledException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "error":{ + "code":"LambdaThrottled", + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + }, + "LimitExceededException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "error":{ + "code":"LimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ListDatasetsRequest":{ + "type":"structure", + "required":[ + "IdentityId", + "IdentityPoolId" + ], + "members":{ + "IdentityPoolId":{ + "shape":"IdentityPoolId", + "location":"uri", + "locationName":"IdentityPoolId" + }, + "IdentityId":{ + "shape":"IdentityId", + "location":"uri", + "locationName":"IdentityId" + }, + "NextToken":{ + "shape":"String", + "location":"querystring", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"IntegerString", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListDatasetsResponse":{ + "type":"structure", + "members":{ + "Datasets":{"shape":"DatasetList"}, + "Count":{"shape":"Integer"}, + "NextToken":{"shape":"String"} + } + }, + "ListIdentityPoolUsageRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"String", + "location":"querystring", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"IntegerString", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListIdentityPoolUsageResponse":{ + "type":"structure", + "members":{ + "IdentityPoolUsages":{"shape":"IdentityPoolUsageList"}, + "MaxResults":{"shape":"Integer"}, + "Count":{"shape":"Integer"}, + "NextToken":{"shape":"String"} + } + }, + "ListRecordsRequest":{ + "type":"structure", + "required":[ + "IdentityPoolId", + "IdentityId", + "DatasetName" + ], + "members":{ + "IdentityPoolId":{ + "shape":"IdentityPoolId", + "location":"uri", + "locationName":"IdentityPoolId" + }, + "IdentityId":{ + "shape":"IdentityId", + "location":"uri", + "locationName":"IdentityId" + }, + "DatasetName":{ + "shape":"DatasetName", + "location":"uri", + "locationName":"DatasetName" + }, + "LastSyncCount":{ + "shape":"Long", + "location":"querystring", + "locationName":"lastSyncCount" + }, + "NextToken":{ + "shape":"String", + "location":"querystring", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"IntegerString", + "location":"querystring", + "locationName":"maxResults" + }, + "SyncSessionToken":{ + "shape":"SyncSessionToken", + "location":"querystring", + "locationName":"syncSessionToken" + } + } + }, + "ListRecordsResponse":{ + "type":"structure", + "members":{ + "Records":{"shape":"RecordList"}, + "NextToken":{"shape":"String"}, + "Count":{"shape":"Integer"}, + "DatasetSyncCount":{"shape":"Long"}, + "LastModifiedBy":{"shape":"String"}, + "MergedDatasetNames":{"shape":"MergedDatasetNameList"}, + "DatasetExists":{"shape":"Boolean"}, + "DatasetDeletedAfterRequestedSyncCount":{"shape":"Boolean"}, + "SyncSessionToken":{"shape":"String"} + } + }, + "Long":{"type":"long"}, + "MergedDatasetNameList":{ + "type":"list", + "member":{"shape":"String"} + }, + "NotAuthorizedException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "error":{ + "code":"NotAuthorizedError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "Operation":{ + "type":"string", + "enum":[ + "replace", + "remove" + ] + }, + "Platform":{ + "type":"string", + "enum":[ + "APNS", + "APNS_SANDBOX", + "GCM", + "ADM" + ] + }, + "PushSync":{ + "type":"structure", + "members":{ + "ApplicationArns":{"shape":"ApplicationArnList"}, + "RoleArn":{"shape":"AssumeRoleArn"} + } + }, + "PushToken":{"type":"string"}, + "Record":{ + "type":"structure", + "members":{ + "Key":{"shape":"RecordKey"}, + "Value":{"shape":"RecordValue"}, + "SyncCount":{"shape":"Long"}, + "LastModifiedDate":{"shape":"Date"}, + "LastModifiedBy":{"shape":"String"}, + "DeviceLastModifiedDate":{"shape":"Date"} + } + }, + "RecordKey":{ + "type":"string", + "min":1, + "max":1024 + }, + "RecordList":{ + "type":"list", + "member":{"shape":"Record"} + }, + "RecordPatch":{ + "type":"structure", + "required":[ + "Op", + "Key", + "SyncCount" + ], + "members":{ + "Op":{"shape":"Operation"}, + "Key":{"shape":"RecordKey"}, + "Value":{"shape":"RecordValue"}, + "SyncCount":{"shape":"Long"}, + "DeviceLastModifiedDate":{"shape":"Date"} + } + }, + "RecordPatchList":{ + "type":"list", + "member":{"shape":"RecordPatch"} + }, + "RecordValue":{ + "type":"string", + "max":1048575 + }, + "RegisterDeviceRequest":{ + "type":"structure", + "required":[ + "IdentityPoolId", + "IdentityId", + "Platform", + "Token" + ], + "members":{ + "IdentityPoolId":{ + "shape":"IdentityPoolId", + "location":"uri", + "locationName":"IdentityPoolId" + }, + "IdentityId":{ + "shape":"IdentityId", + "location":"uri", + "locationName":"IdentityId" + }, + "Platform":{"shape":"Platform"}, + "Token":{"shape":"PushToken"} + } + }, + "RegisterDeviceResponse":{ + "type":"structure", + "members":{ + "DeviceId":{"shape":"DeviceId"} + } + }, + "ResourceConflictException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "error":{ + "code":"ResourceConflict", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "SetCognitoEventsRequest":{ + "type":"structure", + "required":[ + "IdentityPoolId", + "Events" + ], + "members":{ + "IdentityPoolId":{ + "shape":"IdentityPoolId", + "location":"uri", + "locationName":"IdentityPoolId" + }, + "Events":{"shape":"Events"} + } + }, + "SetIdentityPoolConfigurationRequest":{ + "type":"structure", + "required":["IdentityPoolId"], + "members":{ + "IdentityPoolId":{ + "shape":"IdentityPoolId", + "location":"uri", + "locationName":"IdentityPoolId" + }, + "PushSync":{"shape":"PushSync"}, + "CognitoStreams":{"shape":"CognitoStreams"} + } + }, + "SetIdentityPoolConfigurationResponse":{ + "type":"structure", + "members":{ + "IdentityPoolId":{"shape":"IdentityPoolId"}, + "PushSync":{"shape":"PushSync"}, + "CognitoStreams":{"shape":"CognitoStreams"} + } + }, + "StreamName":{ + "type":"string", + "min":1, + "max":128 + }, + "StreamingStatus":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, + "String":{"type":"string"}, + "SubscribeToDatasetRequest":{ + "type":"structure", + "required":[ + "IdentityPoolId", + "IdentityId", + "DatasetName", + "DeviceId" + ], + "members":{ + "IdentityPoolId":{ + "shape":"IdentityPoolId", + "location":"uri", + "locationName":"IdentityPoolId" + }, + "IdentityId":{ + "shape":"IdentityId", + "location":"uri", + "locationName":"IdentityId" + }, + "DatasetName":{ + "shape":"DatasetName", + "location":"uri", + "locationName":"DatasetName" + }, + "DeviceId":{ + "shape":"DeviceId", + "location":"uri", + "locationName":"DeviceId" + } + } + }, + "SubscribeToDatasetResponse":{ + "type":"structure", + "members":{ + } + }, + "SyncSessionToken":{"type":"string"}, + "TooManyRequestsException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "error":{ + "code":"TooManyRequests", + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + }, + "UnsubscribeFromDatasetRequest":{ + "type":"structure", + "required":[ + "IdentityPoolId", + "IdentityId", + "DatasetName", + "DeviceId" + ], + "members":{ + "IdentityPoolId":{ + "shape":"IdentityPoolId", + "location":"uri", + "locationName":"IdentityPoolId" + }, + "IdentityId":{ + "shape":"IdentityId", + "location":"uri", + "locationName":"IdentityId" + }, + "DatasetName":{ + "shape":"DatasetName", + "location":"uri", + "locationName":"DatasetName" + }, + "DeviceId":{ + "shape":"DeviceId", + "location":"uri", + "locationName":"DeviceId" + } + } + }, + "UnsubscribeFromDatasetResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateRecordsRequest":{ + "type":"structure", + "required":[ + "IdentityPoolId", + "IdentityId", + "DatasetName", + "SyncSessionToken" + ], + "members":{ + "IdentityPoolId":{ + "shape":"IdentityPoolId", + "location":"uri", + "locationName":"IdentityPoolId" + }, + "IdentityId":{ + "shape":"IdentityId", + "location":"uri", + "locationName":"IdentityId" + }, + "DatasetName":{ + "shape":"DatasetName", + "location":"uri", + "locationName":"DatasetName" + }, + "DeviceId":{"shape":"DeviceId"}, + "RecordPatches":{"shape":"RecordPatchList"}, + "SyncSessionToken":{"shape":"SyncSessionToken"}, + "ClientContext":{ + "shape":"ClientContext", + "location":"header", + "locationName":"x-amz-Client-Context" + } + } + }, + "UpdateRecordsResponse":{ + "type":"structure", + "members":{ + "Records":{"shape":"RecordList"} + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/cognito-sync/2014-06-30/docs-2.json b/lib/aws-sdk/Aws/data/cognito-sync/2014-06-30/docs-2.json new file mode 100644 index 0000000..8446612 --- /dev/null +++ b/lib/aws-sdk/Aws/data/cognito-sync/2014-06-30/docs-2.json @@ -0,0 +1,582 @@ +{ + "version": "2.0", + "operations": { + "BulkPublish": "Initiates a bulk publish of all existing datasets for an Identity Pool to the configured stream. Customers are limited to one successful bulk publish per 24 hours. Bulk publish is an asynchronous request, customers can see the status of the request via the GetBulkPublishDetails operation.", + "DeleteDataset": "

Deletes the specific dataset. The dataset will be deleted permanently, and the action can't be undone. Datasets that this dataset was merged with will no longer report the merge. Any subsequent operation on this dataset will result in a ResourceNotFoundException.

DeleteDataset can be called with temporary user credentials provided by Cognito Identity or with developer credentials.

", + "DescribeDataset": "

Gets meta data about a dataset by identity and dataset name. With Amazon Cognito Sync, each identity has access only to its own data. Thus, the credentials used to make this API call need to have access to the identity data.

DescribeDataset can be called with temporary user credentials provided by Cognito Identity or with developer credentials. You should use Cognito Identity credentials to make this API call.

", + "DescribeIdentityPoolUsage": "

Gets usage details (for example, data storage) about a particular identity pool.

DescribeIdentityPoolUsage can only be called with developer credentials. You cannot make this API call with the temporary user credentials provided by Cognito Identity.

", + "DescribeIdentityUsage": "

Gets usage information for an identity, including number of datasets and data usage.

DescribeIdentityUsage can be called with temporary user credentials provided by Cognito Identity or with developer credentials.

", + "GetBulkPublishDetails": "Get the status of the last BulkPublish operation for an identity pool.", + "GetCognitoEvents": "

Gets the events and the corresponding Lambda functions associated with an identity pool

", + "GetIdentityPoolConfiguration": "

Gets the configuration settings of an identity pool.

", + "ListDatasets": "

Lists datasets for an identity. With Amazon Cognito Sync, each identity has access only to its own data. Thus, the credentials used to make this API call need to have access to the identity data.

ListDatasets can be called with temporary user credentials provided by Cognito Identity or with developer credentials. You should use the Cognito Identity credentials to make this API call.

", + "ListIdentityPoolUsage": "

Gets a list of identity pools registered with Cognito.

ListIdentityPoolUsage can only be called with developer credentials. You cannot make this API call with the temporary user credentials provided by Cognito Identity.

", + "ListRecords": "

Gets paginated records, optionally changed after a particular sync count for a dataset and identity. With Amazon Cognito Sync, each identity has access only to its own data. Thus, the credentials used to make this API call need to have access to the identity data.

ListRecords can be called with temporary user credentials provided by Cognito Identity or with developer credentials. You should use Cognito Identity credentials to make this API call.

", + "RegisterDevice": "

Registers a device to receive push sync notifications.

", + "SetCognitoEvents": "

Sets the AWS Lambda function for a given event type for an identity pool. This request only updates the key/value pair specified. Other key/values pairs are not updated. To remove a key value pair, pass a empty value for the particular key.

", + "SetIdentityPoolConfiguration": "

Sets the necessary configuration for push sync.

", + "SubscribeToDataset": "

Subscribes to receive notifications when a dataset is modified by another device.

", + "UnsubscribeFromDataset": "

Unsubscribes from receiving notifications when a dataset is modified by another device.

", + "UpdateRecords": "

Posts updates to records and adds and deletes records for a dataset and user.

UpdateRecords can only be called with temporary user credentials provided by Cognito Identity. You cannot make this API call with developer credentials.

" + }, + "service": "Amazon Cognito Sync

Amazon Cognito Sync provides an AWS service and client library that enable cross-device syncing of application-related user data. High-level client libraries are available for both iOS and Android. You can use these libraries to persist data locally so that it's available even if the device is offline. Developer credentials don't need to be stored on the mobile device to access the service. You can use Amazon Cognito to obtain a normalized user ID and credentials. User data is persisted in a dataset that can store up to 1 MB of key-value pairs, and you can have up to 20 datasets per user identity.

With Amazon Cognito Sync, the data stored for each identity is accessible only to credentials assigned to that identity. In order to use the Cognito Sync service, you need to make API calls using credentials retrieved with Amazon Cognito Identity service.

If you want to use Cognito Sync in an Android or iOS application, you will probably want to make API calls via the AWS Mobile SDK. To learn more, see the Developer Guide for Android and the Developer Guide for iOS.

", + "shapes": { + "AlreadyStreamedException": { + "base": "An exception thrown when a bulk publish operation is requested less than 24 hours after a previous bulk publish operation completed successfully.", + "refs": { + } + }, + "ApplicationArn": { + "base": null, + "refs": { + "ApplicationArnList$member": null + } + }, + "ApplicationArnList": { + "base": null, + "refs": { + "PushSync$ApplicationArns": "

List of SNS platform application ARNs that could be used by clients.

" + } + }, + "AssumeRoleArn": { + "base": null, + "refs": { + "CognitoStreams$RoleArn": "The ARN of the role Amazon Cognito can assume in order to publish to the stream. This role must grant access to Amazon Cognito (cognito-sync) to invoke PutRecord on your Cognito stream.", + "PushSync$RoleArn": "

A role configured to allow Cognito to call SNS on behalf of the developer.

" + } + }, + "Boolean": { + "base": null, + "refs": { + "ListRecordsResponse$DatasetExists": "Indicates whether the dataset exists.", + "ListRecordsResponse$DatasetDeletedAfterRequestedSyncCount": "A boolean value specifying whether to delete the dataset locally." + } + }, + "BulkPublishRequest": { + "base": "The input for the BulkPublish operation.", + "refs": { + } + }, + "BulkPublishResponse": { + "base": "The output for the BulkPublish operation.", + "refs": { + } + }, + "BulkPublishStatus": { + "base": null, + "refs": { + "GetBulkPublishDetailsResponse$BulkPublishStatus": "Status of the last bulk publish operation, valid values are:

NOT_STARTED - No bulk publish has been requested for this identity pool

IN_PROGRESS - Data is being published to the configured stream

SUCCEEDED - All data for the identity pool has been published to the configured stream

FAILED - Some portion of the data has failed to publish, check FailureMessage for the cause.

" + } + }, + "ClientContext": { + "base": null, + "refs": { + "UpdateRecordsRequest$ClientContext": "Intended to supply a device ID that will populate the lastModifiedBy field referenced in other methods. The ClientContext field is not yet implemented." + } + }, + "CognitoEventType": { + "base": null, + "refs": { + "Events$key": null + } + }, + "CognitoStreams": { + "base": "Configuration options for configure Cognito streams.", + "refs": { + "GetIdentityPoolConfigurationResponse$CognitoStreams": "Options to apply to this identity pool for Amazon Cognito streams.", + "SetIdentityPoolConfigurationRequest$CognitoStreams": "Options to apply to this identity pool for Amazon Cognito streams.", + "SetIdentityPoolConfigurationResponse$CognitoStreams": "Options to apply to this identity pool for Amazon Cognito streams." + } + }, + "Dataset": { + "base": "A collection of data for an identity pool. An identity pool can have multiple datasets. A dataset is per identity and can be general or associated with a particular entity in an application (like a saved game). Datasets are automatically created if they don't exist. Data is synced by dataset, and a dataset can hold up to 1MB of key-value pairs.", + "refs": { + "DatasetList$member": null, + "DeleteDatasetResponse$Dataset": "A collection of data for an identity pool. An identity pool can have multiple datasets. A dataset is per identity and can be general or associated with a particular entity in an application (like a saved game). Datasets are automatically created if they don't exist. Data is synced by dataset, and a dataset can hold up to 1MB of key-value pairs.", + "DescribeDatasetResponse$Dataset": "Meta data for a collection of data for an identity. An identity can have multiple datasets. A dataset can be general or associated with a particular entity in an application (like a saved game). Datasets are automatically created if they don't exist. Data is synced by dataset, and a dataset can hold up to 1MB of key-value pairs." + } + }, + "DatasetList": { + "base": null, + "refs": { + "ListDatasetsResponse$Datasets": "A set of datasets." + } + }, + "DatasetName": { + "base": null, + "refs": { + "Dataset$DatasetName": "A string of up to 128 characters. Allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (dash), and '.' (dot).", + "DeleteDatasetRequest$DatasetName": "A string of up to 128 characters. Allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (dash), and '.' (dot).", + "DescribeDatasetRequest$DatasetName": "A string of up to 128 characters. Allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (dash), and '.' (dot).", + "ListRecordsRequest$DatasetName": "A string of up to 128 characters. Allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (dash), and '.' (dot).", + "SubscribeToDatasetRequest$DatasetName": "

The name of the dataset to subcribe to.

", + "UnsubscribeFromDatasetRequest$DatasetName": "

The name of the dataset from which to unsubcribe.

", + "UpdateRecordsRequest$DatasetName": "A string of up to 128 characters. Allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (dash), and '.' (dot)." + } + }, + "Date": { + "base": null, + "refs": { + "Dataset$CreationDate": "Date on which the dataset was created.", + "Dataset$LastModifiedDate": "Date when the dataset was last modified.", + "GetBulkPublishDetailsResponse$BulkPublishStartTime": "The date/time at which the last bulk publish was initiated.", + "GetBulkPublishDetailsResponse$BulkPublishCompleteTime": "If BulkPublishStatus is SUCCEEDED, the time the last bulk publish operation completed.", + "IdentityPoolUsage$LastModifiedDate": "Date on which the identity pool was last modified.", + "IdentityUsage$LastModifiedDate": "Date on which the identity was last modified.", + "Record$LastModifiedDate": "The date on which the record was last modified.", + "Record$DeviceLastModifiedDate": "The last modified date of the client device.", + "RecordPatch$DeviceLastModifiedDate": "The last modified date of the client device." + } + }, + "DeleteDatasetRequest": { + "base": "A request to delete the specific dataset.", + "refs": { + } + }, + "DeleteDatasetResponse": { + "base": "Response to a successful DeleteDataset request.", + "refs": { + } + }, + "DescribeDatasetRequest": { + "base": "A request for meta data about a dataset (creation date, number of records, size) by owner and dataset name.", + "refs": { + } + }, + "DescribeDatasetResponse": { + "base": "Response to a successful DescribeDataset request.", + "refs": { + } + }, + "DescribeIdentityPoolUsageRequest": { + "base": "A request for usage information about the identity pool.", + "refs": { + } + }, + "DescribeIdentityPoolUsageResponse": { + "base": "Response to a successful DescribeIdentityPoolUsage request.", + "refs": { + } + }, + "DescribeIdentityUsageRequest": { + "base": "A request for information about the usage of an identity pool.", + "refs": { + } + }, + "DescribeIdentityUsageResponse": { + "base": "The response to a successful DescribeIdentityUsage request.", + "refs": { + } + }, + "DeviceId": { + "base": null, + "refs": { + "RegisterDeviceResponse$DeviceId": "

The unique ID generated for this device by Cognito.

", + "SubscribeToDatasetRequest$DeviceId": "

The unique ID generated for this device by Cognito.

", + "UnsubscribeFromDatasetRequest$DeviceId": "

The unique ID generated for this device by Cognito.

", + "UpdateRecordsRequest$DeviceId": "

The unique ID generated for this device by Cognito.

" + } + }, + "DuplicateRequestException": { + "base": "An exception thrown when there is an IN_PROGRESS bulk publish operation for the given identity pool.", + "refs": { + } + }, + "Events": { + "base": null, + "refs": { + "GetCognitoEventsResponse$Events": "

The Cognito Events returned from the GetCognitoEvents request

", + "SetCognitoEventsRequest$Events": "

The events to configure

" + } + }, + "ExceptionMessage": { + "base": null, + "refs": { + "AlreadyStreamedException$message": "The message associated with the AlreadyStreamedException exception.", + "DuplicateRequestException$message": "The message associated with the DuplicateRequestException exception.", + "InternalErrorException$message": "Message returned by InternalErrorException.", + "InvalidConfigurationException$message": "Message returned by InvalidConfigurationException.", + "InvalidLambdaFunctionOutputException$message": "

A message returned when an InvalidLambdaFunctionOutputException occurs

", + "InvalidParameterException$message": "Message returned by InvalidParameterException.", + "LambdaThrottledException$message": "

A message returned when an LambdaThrottledException is thrown

", + "LimitExceededException$message": "Message returned by LimitExceededException.", + "NotAuthorizedException$message": "The message returned by a NotAuthorizedException.", + "ResourceConflictException$message": "The message returned by a ResourceConflictException.", + "ResourceNotFoundException$message": "Message returned by a ResourceNotFoundException.", + "TooManyRequestsException$message": "Message returned by a TooManyRequestsException." + } + }, + "GetBulkPublishDetailsRequest": { + "base": "The input for the GetBulkPublishDetails operation.", + "refs": { + } + }, + "GetBulkPublishDetailsResponse": { + "base": "The output for the GetBulkPublishDetails operation.", + "refs": { + } + }, + "GetCognitoEventsRequest": { + "base": "

A request for a list of the configured Cognito Events

", + "refs": { + } + }, + "GetCognitoEventsResponse": { + "base": "

The response from the GetCognitoEvents request

", + "refs": { + } + }, + "GetIdentityPoolConfigurationRequest": { + "base": "

The input for the GetIdentityPoolConfiguration operation.

", + "refs": { + } + }, + "GetIdentityPoolConfigurationResponse": { + "base": "

The output for the GetIdentityPoolConfiguration operation.

", + "refs": { + } + }, + "IdentityId": { + "base": null, + "refs": { + "Dataset$IdentityId": "A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.", + "DeleteDatasetRequest$IdentityId": "A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.", + "DescribeDatasetRequest$IdentityId": "A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.", + "DescribeIdentityUsageRequest$IdentityId": "A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.", + "IdentityUsage$IdentityId": "A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.", + "ListDatasetsRequest$IdentityId": "A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.", + "ListRecordsRequest$IdentityId": "A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.", + "RegisterDeviceRequest$IdentityId": "

The unique ID for this identity.

", + "SubscribeToDatasetRequest$IdentityId": "

Unique ID for this identity.

", + "UnsubscribeFromDatasetRequest$IdentityId": "

Unique ID for this identity.

", + "UpdateRecordsRequest$IdentityId": "A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region." + } + }, + "IdentityPoolId": { + "base": null, + "refs": { + "BulkPublishRequest$IdentityPoolId": "A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.", + "BulkPublishResponse$IdentityPoolId": "A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.", + "DeleteDatasetRequest$IdentityPoolId": "A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.", + "DescribeDatasetRequest$IdentityPoolId": "A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.", + "DescribeIdentityPoolUsageRequest$IdentityPoolId": "A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.", + "DescribeIdentityUsageRequest$IdentityPoolId": "A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.", + "GetBulkPublishDetailsRequest$IdentityPoolId": "A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.", + "GetBulkPublishDetailsResponse$IdentityPoolId": "A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.", + "GetCognitoEventsRequest$IdentityPoolId": "

The Cognito Identity Pool ID for the request

", + "GetIdentityPoolConfigurationRequest$IdentityPoolId": "

A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. This is the ID of the pool for which to return a configuration.

", + "GetIdentityPoolConfigurationResponse$IdentityPoolId": "

A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.

", + "IdentityPoolUsage$IdentityPoolId": "A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.", + "IdentityUsage$IdentityPoolId": "A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.", + "ListDatasetsRequest$IdentityPoolId": "A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.", + "ListRecordsRequest$IdentityPoolId": "A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.", + "RegisterDeviceRequest$IdentityPoolId": "

A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. Here, the ID of the pool that the identity belongs to.

", + "SetCognitoEventsRequest$IdentityPoolId": "

The Cognito Identity Pool to use when configuring Cognito Events

", + "SetIdentityPoolConfigurationRequest$IdentityPoolId": "

A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. This is the ID of the pool to modify.

", + "SetIdentityPoolConfigurationResponse$IdentityPoolId": "

A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.

", + "SubscribeToDatasetRequest$IdentityPoolId": "

A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. The ID of the pool to which the identity belongs.

", + "UnsubscribeFromDatasetRequest$IdentityPoolId": "

A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. The ID of the pool to which this identity belongs.

", + "UpdateRecordsRequest$IdentityPoolId": "A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region." + } + }, + "IdentityPoolUsage": { + "base": "Usage information for the identity pool.", + "refs": { + "DescribeIdentityPoolUsageResponse$IdentityPoolUsage": "Information about the usage of the identity pool.", + "IdentityPoolUsageList$member": null + } + }, + "IdentityPoolUsageList": { + "base": null, + "refs": { + "ListIdentityPoolUsageResponse$IdentityPoolUsages": "Usage information for the identity pools." + } + }, + "IdentityUsage": { + "base": "Usage information for the identity.", + "refs": { + "DescribeIdentityUsageResponse$IdentityUsage": "Usage information for the identity." + } + }, + "Integer": { + "base": null, + "refs": { + "IdentityUsage$DatasetCount": "Number of datasets for the identity.", + "ListDatasetsResponse$Count": "Number of datasets returned.", + "ListIdentityPoolUsageResponse$MaxResults": "The maximum number of results to be returned.", + "ListIdentityPoolUsageResponse$Count": "Total number of identities for the identity pool.", + "ListRecordsResponse$Count": "Total number of records." + } + }, + "IntegerString": { + "base": null, + "refs": { + "ListDatasetsRequest$MaxResults": "The maximum number of results to be returned.", + "ListIdentityPoolUsageRequest$MaxResults": "The maximum number of results to be returned.", + "ListRecordsRequest$MaxResults": "The maximum number of results to be returned." + } + }, + "InternalErrorException": { + "base": "Indicates an internal service error.", + "refs": { + } + }, + "InvalidConfigurationException": { + "base": null, + "refs": { + } + }, + "InvalidLambdaFunctionOutputException": { + "base": "

The AWS Lambda function returned invalid output or an exception.

", + "refs": { + } + }, + "InvalidParameterException": { + "base": "Thrown when a request parameter does not comply with the associated constraints.", + "refs": { + } + }, + "LambdaFunctionArn": { + "base": null, + "refs": { + "Events$value": null + } + }, + "LambdaThrottledException": { + "base": "

AWS Lambda throttled your account, please contact AWS Support

", + "refs": { + } + }, + "LimitExceededException": { + "base": "Thrown when the limit on the number of objects or operations has been exceeded.", + "refs": { + } + }, + "ListDatasetsRequest": { + "base": "Request for a list of datasets for an identity.", + "refs": { + } + }, + "ListDatasetsResponse": { + "base": "Returned for a successful ListDatasets request.", + "refs": { + } + }, + "ListIdentityPoolUsageRequest": { + "base": "A request for usage information on an identity pool.", + "refs": { + } + }, + "ListIdentityPoolUsageResponse": { + "base": "Returned for a successful ListIdentityPoolUsage request.", + "refs": { + } + }, + "ListRecordsRequest": { + "base": "A request for a list of records.", + "refs": { + } + }, + "ListRecordsResponse": { + "base": "Returned for a successful ListRecordsRequest.", + "refs": { + } + }, + "Long": { + "base": null, + "refs": { + "Dataset$DataStorage": "Total size in bytes of the records in this dataset.", + "Dataset$NumRecords": "Number of records in this dataset.", + "IdentityPoolUsage$SyncSessionsCount": "Number of sync sessions for the identity pool.", + "IdentityPoolUsage$DataStorage": "Data storage information for the identity pool.", + "IdentityUsage$DataStorage": "Total data storage for this identity.", + "ListRecordsRequest$LastSyncCount": "The last server sync count for this record.", + "ListRecordsResponse$DatasetSyncCount": "Server sync count for this dataset.", + "Record$SyncCount": "The server sync count for this record.", + "RecordPatch$SyncCount": "Last known server sync count for this record. Set to 0 if unknown." + } + }, + "MergedDatasetNameList": { + "base": null, + "refs": { + "ListRecordsResponse$MergedDatasetNames": "Names of merged datasets." + } + }, + "NotAuthorizedException": { + "base": "Thrown when a user is not authorized to access the requested resource.", + "refs": { + } + }, + "Operation": { + "base": null, + "refs": { + "RecordPatch$Op": "An operation, either replace or remove." + } + }, + "Platform": { + "base": null, + "refs": { + "RegisterDeviceRequest$Platform": "

The SNS platform type (e.g. GCM, SDM, APNS, APNS_SANDBOX).

" + } + }, + "PushSync": { + "base": "

Configuration options to be applied to the identity pool.

", + "refs": { + "GetIdentityPoolConfigurationResponse$PushSync": "

Options to apply to this identity pool for push synchronization.

", + "SetIdentityPoolConfigurationRequest$PushSync": "

Options to apply to this identity pool for push synchronization.

", + "SetIdentityPoolConfigurationResponse$PushSync": "

Options to apply to this identity pool for push synchronization.

" + } + }, + "PushToken": { + "base": null, + "refs": { + "RegisterDeviceRequest$Token": "

The push token.

" + } + }, + "Record": { + "base": "The basic data structure of a dataset.", + "refs": { + "RecordList$member": null + } + }, + "RecordKey": { + "base": null, + "refs": { + "Record$Key": "The key for the record.", + "RecordPatch$Key": "The key associated with the record patch." + } + }, + "RecordList": { + "base": null, + "refs": { + "ListRecordsResponse$Records": "A list of all records.", + "UpdateRecordsResponse$Records": "A list of records that have been updated." + } + }, + "RecordPatch": { + "base": "An update operation for a record.", + "refs": { + "RecordPatchList$member": null + } + }, + "RecordPatchList": { + "base": null, + "refs": { + "UpdateRecordsRequest$RecordPatches": "A list of patch operations." + } + }, + "RecordValue": { + "base": null, + "refs": { + "Record$Value": "The value for the record.", + "RecordPatch$Value": "The value associated with the record patch." + } + }, + "RegisterDeviceRequest": { + "base": "

A request to RegisterDevice.

", + "refs": { + } + }, + "RegisterDeviceResponse": { + "base": "

Response to a RegisterDevice request.

", + "refs": { + } + }, + "ResourceConflictException": { + "base": "Thrown if an update can't be applied because the resource was changed by another call and this would result in a conflict.", + "refs": { + } + }, + "ResourceNotFoundException": { + "base": "Thrown if the resource doesn't exist.", + "refs": { + } + }, + "SetCognitoEventsRequest": { + "base": "

A request to configure Cognito Events\"

\"", + "refs": { + } + }, + "SetIdentityPoolConfigurationRequest": { + "base": "

The input for the SetIdentityPoolConfiguration operation.

", + "refs": { + } + }, + "SetIdentityPoolConfigurationResponse": { + "base": "

The output for the SetIdentityPoolConfiguration operation

", + "refs": { + } + }, + "StreamName": { + "base": null, + "refs": { + "CognitoStreams$StreamName": "The name of the Cognito stream to receive updates. This stream must be in the developers account and in the same region as the identity pool." + } + }, + "StreamingStatus": { + "base": null, + "refs": { + "CognitoStreams$StreamingStatus": "Status of the Cognito streams. Valid values are:

ENABLED - Streaming of updates to identity pool is enabled.

DISABLED - Streaming of updates to identity pool is disabled. Bulk publish will also fail if StreamingStatus is DISABLED.

" + } + }, + "String": { + "base": null, + "refs": { + "Dataset$LastModifiedBy": "The device that made the last change to this dataset.", + "GetBulkPublishDetailsResponse$FailureMessage": "If BulkPublishStatus is FAILED this field will contain the error message that caused the bulk publish to fail.", + "ListDatasetsRequest$NextToken": "A pagination token for obtaining the next page of results.", + "ListDatasetsResponse$NextToken": "A pagination token for obtaining the next page of results.", + "ListIdentityPoolUsageRequest$NextToken": "A pagination token for obtaining the next page of results.", + "ListIdentityPoolUsageResponse$NextToken": "A pagination token for obtaining the next page of results.", + "ListRecordsRequest$NextToken": "A pagination token for obtaining the next page of results.", + "ListRecordsResponse$NextToken": "A pagination token for obtaining the next page of results.", + "ListRecordsResponse$LastModifiedBy": "The user/device that made the last change to this record.", + "ListRecordsResponse$SyncSessionToken": "A token containing a session ID, identity ID, and expiration.", + "MergedDatasetNameList$member": null, + "Record$LastModifiedBy": "The user/device that made the last change to this record." + } + }, + "SubscribeToDatasetRequest": { + "base": "

A request to SubscribeToDatasetRequest.

", + "refs": { + } + }, + "SubscribeToDatasetResponse": { + "base": "

Response to a SubscribeToDataset request.

", + "refs": { + } + }, + "SyncSessionToken": { + "base": null, + "refs": { + "ListRecordsRequest$SyncSessionToken": "A token containing a session ID, identity ID, and expiration.", + "UpdateRecordsRequest$SyncSessionToken": "The SyncSessionToken returned by a previous call to ListRecords for this dataset and identity." + } + }, + "TooManyRequestsException": { + "base": "Thrown if the request is throttled.", + "refs": { + } + }, + "UnsubscribeFromDatasetRequest": { + "base": "

A request to UnsubscribeFromDataset.

", + "refs": { + } + }, + "UnsubscribeFromDatasetResponse": { + "base": "

Response to an UnsubscribeFromDataset request.

", + "refs": { + } + }, + "UpdateRecordsRequest": { + "base": "A request to post updates to records or add and delete records for a dataset and user.", + "refs": { + } + }, + "UpdateRecordsResponse": { + "base": "Returned for a successful UpdateRecordsRequest.", + "refs": { + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/config/2014-10-17/api-2.json b/lib/aws-sdk/Aws/data/config/2014-10-17/api-2.json new file mode 100644 index 0000000..e92e18b --- /dev/null +++ b/lib/aws-sdk/Aws/data/config/2014-10-17/api-2.json @@ -0,0 +1,694 @@ +{ + "metadata":{ + "apiVersion":"2014-10-17", + "endpointPrefix":"config", + "jsonVersion":"1.1", + "serviceAbbreviation":"Config Service", + "serviceFullName":"AWS Config", + "signatureVersion":"v4", + "targetPrefix":"StarlingDoveService", + "protocol":"json" + }, + "operations":{ + "DeleteDeliveryChannel":{ + "name":"DeleteDeliveryChannel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDeliveryChannelRequest"}, + "errors":[ + { + "shape":"NoSuchDeliveryChannelException", + "exception":true + }, + { + "shape":"LastDeliveryChannelDeleteFailedException", + "exception":true + } + ] + }, + "DeliverConfigSnapshot":{ + "name":"DeliverConfigSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeliverConfigSnapshotRequest"}, + "output":{"shape":"DeliverConfigSnapshotResponse"}, + "errors":[ + { + "shape":"NoSuchDeliveryChannelException", + "exception":true + }, + { + "shape":"NoAvailableConfigurationRecorderException", + "exception":true + }, + { + "shape":"NoRunningConfigurationRecorderException", + "exception":true + } + ] + }, + "DescribeConfigurationRecorderStatus":{ + "name":"DescribeConfigurationRecorderStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeConfigurationRecorderStatusRequest"}, + "output":{"shape":"DescribeConfigurationRecorderStatusResponse"}, + "errors":[ + { + "shape":"NoSuchConfigurationRecorderException", + "exception":true + } + ] + }, + "DescribeConfigurationRecorders":{ + "name":"DescribeConfigurationRecorders", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeConfigurationRecordersRequest"}, + "output":{"shape":"DescribeConfigurationRecordersResponse"}, + "errors":[ + { + "shape":"NoSuchConfigurationRecorderException", + "exception":true + } + ] + }, + "DescribeDeliveryChannelStatus":{ + "name":"DescribeDeliveryChannelStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDeliveryChannelStatusRequest"}, + "output":{"shape":"DescribeDeliveryChannelStatusResponse"}, + "errors":[ + { + "shape":"NoSuchDeliveryChannelException", + "exception":true + } + ] + }, + "DescribeDeliveryChannels":{ + "name":"DescribeDeliveryChannels", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDeliveryChannelsRequest"}, + "output":{"shape":"DescribeDeliveryChannelsResponse"}, + "errors":[ + { + "shape":"NoSuchDeliveryChannelException", + "exception":true + } + ] + }, + "GetResourceConfigHistory":{ + "name":"GetResourceConfigHistory", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetResourceConfigHistoryRequest"}, + "output":{"shape":"GetResourceConfigHistoryResponse"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"InvalidTimeRangeException", + "exception":true + }, + { + "shape":"InvalidLimitException", + "exception":true + }, + { + "shape":"InvalidNextTokenException", + "exception":true + }, + { + "shape":"NoAvailableConfigurationRecorderException", + "exception":true + }, + { + "shape":"ResourceNotDiscoveredException", + "exception":true + } + ] + }, + "PutConfigurationRecorder":{ + "name":"PutConfigurationRecorder", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutConfigurationRecorderRequest"}, + "errors":[ + { + "shape":"MaxNumberOfConfigurationRecordersExceededException", + "exception":true + }, + { + "shape":"InvalidConfigurationRecorderNameException", + "exception":true + }, + { + "shape":"InvalidRoleException", + "exception":true + } + ] + }, + "PutDeliveryChannel":{ + "name":"PutDeliveryChannel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutDeliveryChannelRequest"}, + "errors":[ + { + "shape":"MaxNumberOfDeliveryChannelsExceededException", + "exception":true + }, + { + "shape":"NoAvailableConfigurationRecorderException", + "exception":true + }, + { + "shape":"InvalidDeliveryChannelNameException", + "exception":true + }, + { + "shape":"NoSuchBucketException", + "exception":true + }, + { + "shape":"InvalidS3KeyPrefixException", + "exception":true + }, + { + "shape":"InvalidSNSTopicARNException", + "exception":true + }, + { + "shape":"InsufficientDeliveryPolicyException", + "exception":true + } + ] + }, + "StartConfigurationRecorder":{ + "name":"StartConfigurationRecorder", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartConfigurationRecorderRequest"}, + "errors":[ + { + "shape":"NoSuchConfigurationRecorderException", + "exception":true + }, + { + "shape":"NoAvailableDeliveryChannelException", + "exception":true + } + ] + }, + "StopConfigurationRecorder":{ + "name":"StopConfigurationRecorder", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopConfigurationRecorderRequest"}, + "errors":[ + { + "shape":"NoSuchConfigurationRecorderException", + "exception":true + } + ] + } + }, + "shapes":{ + "ARN":{"type":"string"}, + "AccountId":{"type":"string"}, + "AvailabilityZone":{"type":"string"}, + "Boolean":{"type":"boolean"}, + "ChannelName":{ + "type":"string", + "min":1, + "max":256 + }, + "ChronologicalOrder":{ + "type":"string", + "enum":[ + "Reverse", + "Forward" + ] + }, + "ConfigExportDeliveryInfo":{ + "type":"structure", + "members":{ + "lastStatus":{"shape":"DeliveryStatus"}, + "lastErrorCode":{"shape":"String"}, + "lastErrorMessage":{"shape":"String"}, + "lastAttemptTime":{"shape":"Date"}, + "lastSuccessfulTime":{"shape":"Date"} + } + }, + "ConfigStreamDeliveryInfo":{ + "type":"structure", + "members":{ + "lastStatus":{"shape":"DeliveryStatus"}, + "lastErrorCode":{"shape":"String"}, + "lastErrorMessage":{"shape":"String"}, + "lastStatusChangeTime":{"shape":"Date"} + } + }, + "Configuration":{"type":"string"}, + "ConfigurationItem":{ + "type":"structure", + "members":{ + "version":{"shape":"Version"}, + "accountId":{"shape":"AccountId"}, + "configurationItemCaptureTime":{"shape":"ConfigurationItemCaptureTime"}, + "configurationItemStatus":{"shape":"ConfigurationItemStatus"}, + "configurationStateId":{"shape":"ConfigurationStateId"}, + "configurationItemMD5Hash":{"shape":"ConfigurationItemMD5Hash"}, + "arn":{"shape":"ARN"}, + "resourceType":{"shape":"ResourceType"}, + "resourceId":{"shape":"ResourceId"}, + "availabilityZone":{"shape":"AvailabilityZone"}, + "resourceCreationTime":{"shape":"ResourceCreationTime"}, + "tags":{"shape":"Tags"}, + "relatedEvents":{"shape":"RelatedEventList"}, + "relationships":{"shape":"RelationshipList"}, + "configuration":{"shape":"Configuration"} + } + }, + "ConfigurationItemCaptureTime":{"type":"timestamp"}, + "ConfigurationItemList":{ + "type":"list", + "member":{"shape":"ConfigurationItem"} + }, + "ConfigurationItemMD5Hash":{"type":"string"}, + "ConfigurationItemStatus":{ + "type":"string", + "enum":[ + "Ok", + "Failed", + "Discovered", + "Deleted" + ] + }, + "ConfigurationRecorder":{ + "type":"structure", + "members":{ + "name":{"shape":"RecorderName"}, + "roleARN":{"shape":"String"} + } + }, + "ConfigurationRecorderList":{ + "type":"list", + "member":{"shape":"ConfigurationRecorder"} + }, + "ConfigurationRecorderNameList":{ + "type":"list", + "member":{"shape":"RecorderName"} + }, + "ConfigurationRecorderStatus":{ + "type":"structure", + "members":{ + "name":{"shape":"String"}, + "lastStartTime":{"shape":"Date"}, + "lastStopTime":{"shape":"Date"}, + "recording":{"shape":"Boolean"}, + "lastStatus":{"shape":"RecorderStatus"}, + "lastErrorCode":{"shape":"String"}, + "lastErrorMessage":{"shape":"String"}, + "lastStatusChangeTime":{"shape":"Date"} + } + }, + "ConfigurationRecorderStatusList":{ + "type":"list", + "member":{"shape":"ConfigurationRecorderStatus"} + }, + "ConfigurationStateId":{"type":"string"}, + "Date":{"type":"timestamp"}, + "DeleteDeliveryChannelRequest":{ + "type":"structure", + "required":["DeliveryChannelName"], + "members":{ + "DeliveryChannelName":{"shape":"ChannelName"} + } + }, + "DeliverConfigSnapshotRequest":{ + "type":"structure", + "required":["deliveryChannelName"], + "members":{ + "deliveryChannelName":{"shape":"ChannelName"} + } + }, + "DeliverConfigSnapshotResponse":{ + "type":"structure", + "members":{ + "configSnapshotId":{"shape":"String"} + } + }, + "DeliveryChannel":{ + "type":"structure", + "members":{ + "name":{"shape":"ChannelName"}, + "s3BucketName":{"shape":"String"}, + "s3KeyPrefix":{"shape":"String"}, + "snsTopicARN":{"shape":"String"} + } + }, + "DeliveryChannelList":{ + "type":"list", + "member":{"shape":"DeliveryChannel"} + }, + "DeliveryChannelNameList":{ + "type":"list", + "member":{"shape":"ChannelName"} + }, + "DeliveryChannelStatus":{ + "type":"structure", + "members":{ + "name":{"shape":"String"}, + "configSnapshotDeliveryInfo":{"shape":"ConfigExportDeliveryInfo"}, + "configHistoryDeliveryInfo":{"shape":"ConfigExportDeliveryInfo"}, + "configStreamDeliveryInfo":{"shape":"ConfigStreamDeliveryInfo"} + } + }, + "DeliveryChannelStatusList":{ + "type":"list", + "member":{"shape":"DeliveryChannelStatus"} + }, + "DeliveryStatus":{ + "type":"string", + "enum":[ + "Success", + "Failure" + ] + }, + "DescribeConfigurationRecorderStatusRequest":{ + "type":"structure", + "members":{ + "ConfigurationRecorderNames":{"shape":"ConfigurationRecorderNameList"} + } + }, + "DescribeConfigurationRecorderStatusResponse":{ + "type":"structure", + "members":{ + "ConfigurationRecordersStatus":{"shape":"ConfigurationRecorderStatusList"} + } + }, + "DescribeConfigurationRecordersRequest":{ + "type":"structure", + "members":{ + "ConfigurationRecorderNames":{"shape":"ConfigurationRecorderNameList"} + } + }, + "DescribeConfigurationRecordersResponse":{ + "type":"structure", + "members":{ + "ConfigurationRecorders":{"shape":"ConfigurationRecorderList"} + } + }, + "DescribeDeliveryChannelStatusRequest":{ + "type":"structure", + "members":{ + "DeliveryChannelNames":{"shape":"DeliveryChannelNameList"} + } + }, + "DescribeDeliveryChannelStatusResponse":{ + "type":"structure", + "members":{ + "DeliveryChannelsStatus":{"shape":"DeliveryChannelStatusList"} + } + }, + "DescribeDeliveryChannelsRequest":{ + "type":"structure", + "members":{ + "DeliveryChannelNames":{"shape":"DeliveryChannelNameList"} + } + }, + "DescribeDeliveryChannelsResponse":{ + "type":"structure", + "members":{ + "DeliveryChannels":{"shape":"DeliveryChannelList"} + } + }, + "EarlierTime":{"type":"timestamp"}, + "GetResourceConfigHistoryRequest":{ + "type":"structure", + "required":[ + "resourceType", + "resourceId" + ], + "members":{ + "resourceType":{"shape":"ResourceType"}, + "resourceId":{"shape":"ResourceId"}, + "laterTime":{"shape":"LaterTime"}, + "earlierTime":{"shape":"EarlierTime"}, + "chronologicalOrder":{"shape":"ChronologicalOrder"}, + "limit":{"shape":"Limit"}, + "nextToken":{"shape":"NextToken"} + } + }, + "GetResourceConfigHistoryResponse":{ + "type":"structure", + "members":{ + "configurationItems":{"shape":"ConfigurationItemList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "InsufficientDeliveryPolicyException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidConfigurationRecorderNameException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidDeliveryChannelNameException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidLimitException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidNextTokenException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidRoleException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidS3KeyPrefixException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidSNSTopicARNException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidTimeRangeException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "LastDeliveryChannelDeleteFailedException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "LaterTime":{"type":"timestamp"}, + "Limit":{ + "type":"integer", + "min":0, + "max":100 + }, + "MaxNumberOfConfigurationRecordersExceededException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "MaxNumberOfDeliveryChannelsExceededException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "Name":{"type":"string"}, + "NextToken":{"type":"string"}, + "NoAvailableConfigurationRecorderException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "NoAvailableDeliveryChannelException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "NoRunningConfigurationRecorderException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "NoSuchBucketException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "NoSuchConfigurationRecorderException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "NoSuchDeliveryChannelException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "PutConfigurationRecorderRequest":{ + "type":"structure", + "required":["ConfigurationRecorder"], + "members":{ + "ConfigurationRecorder":{"shape":"ConfigurationRecorder"} + } + }, + "PutDeliveryChannelRequest":{ + "type":"structure", + "required":["DeliveryChannel"], + "members":{ + "DeliveryChannel":{"shape":"DeliveryChannel"} + } + }, + "RecorderName":{ + "type":"string", + "min":1, + "max":256 + }, + "RecorderStatus":{ + "type":"string", + "enum":[ + "Pending", + "Success", + "Failure" + ] + }, + "RelatedEvent":{"type":"string"}, + "RelatedEventList":{ + "type":"list", + "member":{"shape":"RelatedEvent"} + }, + "Relationship":{ + "type":"structure", + "members":{ + "resourceType":{"shape":"ResourceType"}, + "resourceId":{"shape":"ResourceId"}, + "relationshipName":{"shape":"RelationshipName"} + } + }, + "RelationshipList":{ + "type":"list", + "member":{"shape":"Relationship"} + }, + "RelationshipName":{"type":"string"}, + "ResourceCreationTime":{"type":"timestamp"}, + "ResourceId":{"type":"string"}, + "ResourceNotDiscoveredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "ResourceType":{ + "type":"string", + "enum":[ + "AWS::EC2::CustomerGateway", + "AWS::EC2::EIP", + "AWS::EC2::Instance", + "AWS::EC2::InternetGateway", + "AWS::EC2::NetworkAcl", + "AWS::EC2::NetworkInterface", + "AWS::EC2::RouteTable", + "AWS::EC2::SecurityGroup", + "AWS::EC2::Subnet", + "AWS::CloudTrail::Trail", + "AWS::EC2::Volume", + "AWS::EC2::VPC", + "AWS::EC2::VPNConnection", + "AWS::EC2::VPNGateway" + ] + }, + "StartConfigurationRecorderRequest":{ + "type":"structure", + "required":["ConfigurationRecorderName"], + "members":{ + "ConfigurationRecorderName":{"shape":"RecorderName"} + } + }, + "StopConfigurationRecorderRequest":{ + "type":"structure", + "required":["ConfigurationRecorderName"], + "members":{ + "ConfigurationRecorderName":{"shape":"RecorderName"} + } + }, + "String":{"type":"string"}, + "Tags":{ + "type":"map", + "key":{"shape":"Name"}, + "value":{"shape":"Value"} + }, + "ValidationException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "Value":{"type":"string"}, + "Version":{"type":"string"} + } +} diff --git a/lib/aws-sdk/Aws/data/config/2014-10-17/docs-2.json b/lib/aws-sdk/Aws/data/config/2014-10-17/docs-2.json new file mode 100644 index 0000000..5476646 --- /dev/null +++ b/lib/aws-sdk/Aws/data/config/2014-10-17/docs-2.json @@ -0,0 +1,513 @@ +{ + "operations": { + "DeleteDeliveryChannel": "

Deletes the specified delivery channel.

The delivery channel cannot be deleted if it is the only delivery channel and the configuration recorder is still running. To delete the delivery channel, stop the running configuration recorder using the StopConfigurationRecorder action.

", + "DeliverConfigSnapshot": "

Schedules delivery of a configuration snapshot to the Amazon S3 bucket in the specified delivery channel. After the delivery has started, AWS Config sends following notifications using an Amazon SNS topic that you have specified.

  • Notification of starting the delivery.
  • Notification of delivery completed, if the delivery was successfully completed.
  • Notification of delivery failure, if the delivery failed to complete.
", + "DescribeConfigurationRecorderStatus": "

Returns the current status of the specified configuration recorder. If a configuration recorder is not specified, this action returns the status of all configuration recorder associated with the account.

", + "DescribeConfigurationRecorders": "

Returns the name of one or more specified configuration recorders. If the recorder name is not specified, this action returns the names of all the configuration recorders associated with the account.

", + "DescribeDeliveryChannelStatus": "

Returns the current status of the specified delivery channel. If a delivery channel is not specified, this action returns the current status of all delivery channels associated with the account.

", + "DescribeDeliveryChannels": "

Returns details about the specified delivery channel. If a delivery channel is not specified, this action returns the details of all delivery channels associated with the account.

", + "GetResourceConfigHistory": "

Returns a list of configuration items for the specified resource. The list contains details about each state of the resource during the specified time interval. You can specify a limit on the number of results returned on the page. If a limit is specified, a nextToken is returned as part of the result that you can use to continue this request.

", + "PutConfigurationRecorder": "

Creates a new configuration recorder to record the resource configurations.

You can use this action to change the role (roleARN) of an existing recorder. To change the role, call the action on the existing configuration recorder and specify a role.

", + "PutDeliveryChannel": "

Creates a new delivery channel object to deliver the configuration information to an Amazon S3 bucket, and to an Amazon SNS topic.

You can use this action to change the Amazon S3 bucket or an Amazon SNS topic of the existing delivery channel. To change the Amazon S3 bucket or an Amazon SNS topic, call this action and specify the changed values for the S3 bucket and the SNS topic. If you specify a different value for either the S3 bucket or the SNS topic, this action will keep the existing value for the parameter that is not changed.

", + "StartConfigurationRecorder": "

Starts recording configurations of all the resources associated with the account.

You must have created at least one delivery channel to successfully start the configuration recorder.

", + "StopConfigurationRecorder": "

Stops recording configurations of all the resources associated with the account.

" + }, + "service": "AWS Config

AWS Config provides a way to keep track of the configurations of all the AWS resources associated with your AWS account. You can use AWS Config to get the current and historical configurations of each AWS resource and also to get information about the relationship between the resources. An AWS resource can be an Amazon Compute Cloud (Amazon EC2) instance, an Elastic Block Store (EBS) volume, an Elastic network Interface (ENI), or a security group. For a complete list of resources currently supported by AWS Config, see Supported AWS Resources.

You can access and manage AWS Config through the AWS Management Console, the AWS Command Line Interface (AWS CLI), the AWS Config API, or the AWS SDKs for AWS Config

This reference guide contains documentation for the AWS Config API and the AWS CLI commands that you can use to manage AWS Config.

The AWS Config API uses the Signature Version 4 protocol for signing requests. For more information about how to sign a request with this protocol, see Signature Version 4 Signing Process.

For detailed information about AWS Config features and their associated actions or commands, as well as how to work with AWS Management Console, see What Is AWS Config? in the AWS Config Developer Guide.

", + "shapes": { + "ARN": { + "base": null, + "refs": { + "ConfigurationItem$arn": "

The Amazon Resource Name (ARN) of the resource.

" + } + }, + "AccountId": { + "base": null, + "refs": { + "ConfigurationItem$accountId": "

The 12 digit AWS account ID associated with the resource.

" + } + }, + "AvailabilityZone": { + "base": null, + "refs": { + "ConfigurationItem$availabilityZone": "

The Availability Zone associated with the resource.

" + } + }, + "Boolean": { + "base": null, + "refs": { + "ConfigurationRecorderStatus$recording": "

Specifies whether the recorder is currently recording or not.

" + } + }, + "ChannelName": { + "base": null, + "refs": { + "DeleteDeliveryChannelRequest$DeliveryChannelName": "

The name of the delivery channel to delete.

", + "DeliverConfigSnapshotRequest$deliveryChannelName": "

The name of the delivery channel through which the snapshot is delivered.

", + "DeliveryChannel$name": "

The name of the delivery channel. By default, AWS Config automatically assigns the name \"default\" when creating the delivery channel. You cannot change the assigned name.

", + "DeliveryChannelNameList$member": null + } + }, + "ChronologicalOrder": { + "base": null, + "refs": { + "GetResourceConfigHistoryRequest$chronologicalOrder": "

The chronological order for configuration items listed. By default the results are listed in reverse chronological order.

" + } + }, + "ConfigExportDeliveryInfo": { + "base": "

A list that contains the status of the delivery of either the snapshot or the configuration history to the specified Amazon S3 bucket.

", + "refs": { + "DeliveryChannelStatus$configSnapshotDeliveryInfo": "

A list containing the status of the delivery of the snapshot to the specified Amazon S3 bucket.

", + "DeliveryChannelStatus$configHistoryDeliveryInfo": "

A list that contains the status of the delivery of the configuration history to the specified Amazon S3 bucket.

" + } + }, + "ConfigStreamDeliveryInfo": { + "base": "

A list that contains the status of the delivery of the configuration stream notification to the Amazon SNS topic.

", + "refs": { + "DeliveryChannelStatus$configStreamDeliveryInfo": "

A list containing the status of the delivery of the configuration stream notification to the specified Amazon SNS topic.

" + } + }, + "Configuration": { + "base": null, + "refs": { + "ConfigurationItem$configuration": "

The description of the resource configuration.

" + } + }, + "ConfigurationItem": { + "base": "

A list that contains detailed configurations of a specified resource.

", + "refs": { + "ConfigurationItemList$member": null + } + }, + "ConfigurationItemCaptureTime": { + "base": null, + "refs": { + "ConfigurationItem$configurationItemCaptureTime": "

The time when the configuration recording was initiated.

" + } + }, + "ConfigurationItemList": { + "base": null, + "refs": { + "GetResourceConfigHistoryResponse$configurationItems": "

A list that contains the configuration history of one or more resources.

" + } + }, + "ConfigurationItemMD5Hash": { + "base": null, + "refs": { + "ConfigurationItem$configurationItemMD5Hash": "

Unique MD5 hash that represents the configuration item's state.

You can use MD5 hash to compare the states of two or more configuration items that are associated with the same resource.

" + } + }, + "ConfigurationItemStatus": { + "base": null, + "refs": { + "ConfigurationItem$configurationItemStatus": "

The configuration item status.

" + } + }, + "ConfigurationRecorder": { + "base": "

An object that represents the recording of configuration changes of an AWS resource.

", + "refs": { + "ConfigurationRecorderList$member": null, + "PutConfigurationRecorderRequest$ConfigurationRecorder": "

The configuration recorder object that records each configuration change made to the resources.

" + } + }, + "ConfigurationRecorderList": { + "base": null, + "refs": { + "DescribeConfigurationRecordersResponse$ConfigurationRecorders": "

A list that contains the descriptions of the specified configuration recorders.

" + } + }, + "ConfigurationRecorderNameList": { + "base": null, + "refs": { + "DescribeConfigurationRecorderStatusRequest$ConfigurationRecorderNames": "

The name(s) of the configuration recorder. If the name is not specified, the action returns the current status of all the configuration recorders associated with the account.

", + "DescribeConfigurationRecordersRequest$ConfigurationRecorderNames": "

A list of configuration recorder names.

" + } + }, + "ConfigurationRecorderStatus": { + "base": "

The current status of the configuration recorder.

", + "refs": { + "ConfigurationRecorderStatusList$member": null + } + }, + "ConfigurationRecorderStatusList": { + "base": null, + "refs": { + "DescribeConfigurationRecorderStatusResponse$ConfigurationRecordersStatus": "

A list that contains status of the specified recorders.

" + } + }, + "ConfigurationStateId": { + "base": null, + "refs": { + "ConfigurationItem$configurationStateId": "

An identifier that indicates the ordering of the configuration items of a resource.

" + } + }, + "Date": { + "base": null, + "refs": { + "ConfigExportDeliveryInfo$lastAttemptTime": "

The time of the last attempted delivery.

", + "ConfigExportDeliveryInfo$lastSuccessfulTime": "

The time of the last successful delivery.

", + "ConfigStreamDeliveryInfo$lastStatusChangeTime": "

The time from the last status change.

", + "ConfigurationRecorderStatus$lastStartTime": "

The time the recorder was last started.

", + "ConfigurationRecorderStatus$lastStopTime": "

The time the recorder was last stopped.

", + "ConfigurationRecorderStatus$lastStatusChangeTime": "

The time when the status was last changed.

" + } + }, + "DeleteDeliveryChannelRequest": { + "base": "

The input for the DeleteDeliveryChannel action. The action accepts the following data in JSON format.

", + "refs": { + } + }, + "DeliverConfigSnapshotRequest": { + "base": "

The input for the DeliverConfigSnapshot action.

", + "refs": { + } + }, + "DeliverConfigSnapshotResponse": { + "base": "

The output for the DeliverConfigSnapshot action in JSON format.

", + "refs": { + } + }, + "DeliveryChannel": { + "base": "

A logical container used for storing the configuration changes of an AWS resource.

", + "refs": { + "DeliveryChannelList$member": null, + "PutDeliveryChannelRequest$DeliveryChannel": "

The configuration delivery channel object that delivers the configuration information to an Amazon S3 bucket, and to an Amazon SNS topic.

" + } + }, + "DeliveryChannelList": { + "base": null, + "refs": { + "DescribeDeliveryChannelsResponse$DeliveryChannels": "

A list that contains the descriptions of the specified delivery channel.

" + } + }, + "DeliveryChannelNameList": { + "base": null, + "refs": { + "DescribeDeliveryChannelStatusRequest$DeliveryChannelNames": "

A list of delivery channel names.

", + "DescribeDeliveryChannelsRequest$DeliveryChannelNames": "

A list of delivery channel names.

" + } + }, + "DeliveryChannelStatus": { + "base": "

The status of a specified delivery channel.

Valid values: Success | Failure

", + "refs": { + "DeliveryChannelStatusList$member": null + } + }, + "DeliveryChannelStatusList": { + "base": null, + "refs": { + "DescribeDeliveryChannelStatusResponse$DeliveryChannelsStatus": "

A list that contains the status of a specified delivery channel.

" + } + }, + "DeliveryStatus": { + "base": null, + "refs": { + "ConfigExportDeliveryInfo$lastStatus": "

Status of the last attempted delivery.

", + "ConfigStreamDeliveryInfo$lastStatus": "

Status of the last attempted delivery.

" + } + }, + "DescribeConfigurationRecorderStatusRequest": { + "base": "

The input for the DescribeConfigurationRecorderStatus action.

", + "refs": { + } + }, + "DescribeConfigurationRecorderStatusResponse": { + "base": "

The output for the DescribeConfigurationRecorderStatus action in JSON format.

", + "refs": { + } + }, + "DescribeConfigurationRecordersRequest": { + "base": "

The input for the DescribeConfigurationRecorders action.

", + "refs": { + } + }, + "DescribeConfigurationRecordersResponse": { + "base": "

The output for the DescribeConfigurationRecorders action.

", + "refs": { + } + }, + "DescribeDeliveryChannelStatusRequest": { + "base": "

The input for the DeliveryChannelStatus action.

", + "refs": { + } + }, + "DescribeDeliveryChannelStatusResponse": { + "base": "

The output for the DescribeDeliveryChannelStatus action.

", + "refs": { + } + }, + "DescribeDeliveryChannelsRequest": { + "base": "

The input for the DescribeDeliveryChannels action.

", + "refs": { + } + }, + "DescribeDeliveryChannelsResponse": { + "base": "

The output for the DescribeDeliveryChannels action.

", + "refs": { + } + }, + "EarlierTime": { + "base": null, + "refs": { + "GetResourceConfigHistoryRequest$earlierTime": "

The time stamp that indicates an earlier time. If not specified, the action returns paginated results that contain configuration items that start from when the first configuration item was recorded.

" + } + }, + "GetResourceConfigHistoryRequest": { + "base": "

The input for the GetResourceConfigHistory action.

", + "refs": { + } + }, + "GetResourceConfigHistoryResponse": { + "base": "

The output for the GetResourceConfigHistory action.

", + "refs": { + } + }, + "InsufficientDeliveryPolicyException": { + "base": "

Your Amazon S3 bucket policy does not permit AWS Config to write to it.

", + "refs": { + } + }, + "InvalidConfigurationRecorderNameException": { + "base": "

You have provided a configuration recorder name that is not valid.

", + "refs": { + } + }, + "InvalidDeliveryChannelNameException": { + "base": "

The specified delivery channel name is not valid.

", + "refs": { + } + }, + "InvalidLimitException": { + "base": "

You have reached the limit on the pagination.

", + "refs": { + } + }, + "InvalidNextTokenException": { + "base": "

The specified nextToken for pagination is not valid.

", + "refs": { + } + }, + "InvalidRoleException": { + "base": "

You have provided a null or empty role ARN.

", + "refs": { + } + }, + "InvalidS3KeyPrefixException": { + "base": "

The specified Amazon S3 key prefix is not valid.

", + "refs": { + } + }, + "InvalidSNSTopicARNException": { + "base": "

The specified Amazon SNS topic does not exist.

", + "refs": { + } + }, + "InvalidTimeRangeException": { + "base": "

The specified time range is not valid. The earlier time is not chronologically before the later time.

", + "refs": { + } + }, + "LastDeliveryChannelDeleteFailedException": { + "base": "

You cannot delete the delivery channel you specified because the configuration recorder is running.

", + "refs": { + } + }, + "LaterTime": { + "base": null, + "refs": { + "GetResourceConfigHistoryRequest$laterTime": "

The time stamp that indicates a later time. If not specified, current time is taken.

" + } + }, + "Limit": { + "base": null, + "refs": { + "GetResourceConfigHistoryRequest$limit": "

The maximum number of configuration items returned in each page. The default is 10. You cannot specify a limit greater than 100.

" + } + }, + "MaxNumberOfConfigurationRecordersExceededException": { + "base": "

You have reached the limit on the number of recorders you can create.

", + "refs": { + } + }, + "MaxNumberOfDeliveryChannelsExceededException": { + "base": "

You have reached the limit on the number of delivery channels you can create.

", + "refs": { + } + }, + "Name": { + "base": null, + "refs": { + "Tags$key": null + } + }, + "NextToken": { + "base": null, + "refs": { + "GetResourceConfigHistoryRequest$nextToken": "

An optional parameter used for pagination of the results.

", + "GetResourceConfigHistoryResponse$nextToken": "

A token used for pagination of results.

" + } + }, + "NoAvailableConfigurationRecorderException": { + "base": "

There are no configuration recorders available to provide the role needed to describe your resources.

", + "refs": { + } + }, + "NoAvailableDeliveryChannelException": { + "base": "

There is no delivery channel available to record configurations.

", + "refs": { + } + }, + "NoRunningConfigurationRecorderException": { + "base": "

There is no configuration recorder running.

", + "refs": { + } + }, + "NoSuchBucketException": { + "base": "

The specified Amazon S3 bucket does not exist.

", + "refs": { + } + }, + "NoSuchConfigurationRecorderException": { + "base": "

You have specified a configuration recorder that does not exist.

", + "refs": { + } + }, + "NoSuchDeliveryChannelException": { + "base": "

You have specified a delivery channel that does not exist.

", + "refs": { + } + }, + "PutConfigurationRecorderRequest": { + "base": "

The input for the PutConfigurationRecorder action.

", + "refs": { + } + }, + "PutDeliveryChannelRequest": { + "base": "

The input for the PutDeliveryChannel action.

", + "refs": { + } + }, + "RecorderName": { + "base": null, + "refs": { + "ConfigurationRecorder$name": "

The name of the recorder. By default, AWS Config automatically assigns the name \"default\" when creating the configuration recorder. You cannot change the assigned name.

", + "ConfigurationRecorderNameList$member": null, + "StartConfigurationRecorderRequest$ConfigurationRecorderName": "

The name of the recorder object that records each configuration change made to the resources.

", + "StopConfigurationRecorderRequest$ConfigurationRecorderName": "

The name of the recorder object that records each configuration change made to the resources.

" + } + }, + "RecorderStatus": { + "base": null, + "refs": { + "ConfigurationRecorderStatus$lastStatus": "

The last (previous) status of the recorder.

" + } + }, + "RelatedEvent": { + "base": null, + "refs": { + "RelatedEventList$member": null + } + }, + "RelatedEventList": { + "base": null, + "refs": { + "ConfigurationItem$relatedEvents": "

A list of CloudTrail event IDs.

A populated field indicates that the current configuration was initiated by the events recorded in the CloudTrail log. For more information about CloudTrail, see What is AWS CloudTrail?.

An empty field indicates that the current configuration was not initiated by any event.

" + } + }, + "Relationship": { + "base": "

The relationship of the related resource to the main resource.

", + "refs": { + "RelationshipList$member": null + } + }, + "RelationshipList": { + "base": null, + "refs": { + "ConfigurationItem$relationships": "

A list of related AWS resources.

" + } + }, + "RelationshipName": { + "base": null, + "refs": { + "Relationship$relationshipName": "

The name of the related resource.

" + } + }, + "ResourceCreationTime": { + "base": null, + "refs": { + "ConfigurationItem$resourceCreationTime": "

The time stamp when the resource was created.

" + } + }, + "ResourceId": { + "base": null, + "refs": { + "ConfigurationItem$resourceId": "

The ID of the resource (for example., sg-xxxxxx).

", + "GetResourceConfigHistoryRequest$resourceId": "

The ID of the resource (for example., sg-xxxxxx).

", + "Relationship$resourceId": "

The resource ID of the related resource (for example, sg-xxxxxx.

" + } + }, + "ResourceNotDiscoveredException": { + "base": "

You have specified a resource that is either unknown or has not been discovered.

", + "refs": { + } + }, + "ResourceType": { + "base": null, + "refs": { + "ConfigurationItem$resourceType": "

The type of AWS resource.

", + "GetResourceConfigHistoryRequest$resourceType": "

The resource type.

", + "Relationship$resourceType": "

The resource type of the related resource.

" + } + }, + "StartConfigurationRecorderRequest": { + "base": "

The input for the StartConfigurationRecorder action.

", + "refs": { + } + }, + "StopConfigurationRecorderRequest": { + "base": "

The input for the StopConfigurationRecorder action.

", + "refs": { + } + }, + "String": { + "base": null, + "refs": { + "ConfigExportDeliveryInfo$lastErrorCode": "

The error code from the last attempted delivery.

", + "ConfigExportDeliveryInfo$lastErrorMessage": "

The error message from the last attempted delivery.

", + "ConfigStreamDeliveryInfo$lastErrorCode": "

The error code from the last attempted delivery.

", + "ConfigStreamDeliveryInfo$lastErrorMessage": "

The error message from the last attempted delivery.

", + "ConfigurationRecorder$roleARN": "

Amazon Resource Name (ARN) of the IAM role used to describe the AWS resources associated with the account.

", + "ConfigurationRecorderStatus$name": "

The name of the configuration recorder.

", + "ConfigurationRecorderStatus$lastErrorCode": "

The error code indicating that the recording failed.

", + "ConfigurationRecorderStatus$lastErrorMessage": "

The message indicating that the recording failed due to an error.

", + "DeliverConfigSnapshotResponse$configSnapshotId": "

The ID of the snapshot that is being created.

", + "DeliveryChannel$s3BucketName": "

The name of the Amazon S3 bucket used to store configuration history for the delivery channel.

", + "DeliveryChannel$s3KeyPrefix": "

The prefix for the specified Amazon S3 bucket.

", + "DeliveryChannel$snsTopicARN": "

The Amazon Resource Name (ARN) of the IAM role used for accessing the Amazon S3 bucket and the Amazon SNS topic.

", + "DeliveryChannelStatus$name": "

The name of the delivery channel.

" + } + }, + "Tags": { + "base": null, + "refs": { + "ConfigurationItem$tags": "

A mapping of key value tags associated with the resource.

" + } + }, + "ValidationException": { + "base": "

The requested action is not valid.

", + "refs": { + } + }, + "Value": { + "base": null, + "refs": { + "Tags$value": null + } + }, + "Version": { + "base": null, + "refs": { + "ConfigurationItem$version": "

The version number of the resource configuration.

" + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/config/2014-10-17/paginators-1.json b/lib/aws-sdk/Aws/data/config/2014-10-17/paginators-1.json new file mode 100644 index 0000000..45c365e --- /dev/null +++ b/lib/aws-sdk/Aws/data/config/2014-10-17/paginators-1.json @@ -0,0 +1,10 @@ +{ + "pagination": { + "GetResourceConfigHistory": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "limit", + "result_key": "configurationItems" + } + } +} diff --git a/lib/aws-sdk/Aws/data/config/2014-11-12/api-2.json b/lib/aws-sdk/Aws/data/config/2014-11-12/api-2.json new file mode 100644 index 0000000..d7b8161 --- /dev/null +++ b/lib/aws-sdk/Aws/data/config/2014-11-12/api-2.json @@ -0,0 +1,696 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2014-11-12", + "endpointPrefix":"config", + "jsonVersion":"1.1", + "serviceAbbreviation":"Config Service", + "serviceFullName":"AWS Config", + "signatureVersion":"v4", + "targetPrefix":"StarlingDoveService", + "protocol":"json" + }, + "operations":{ + "DeleteDeliveryChannel":{ + "name":"DeleteDeliveryChannel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDeliveryChannelRequest"}, + "errors":[ + { + "shape":"NoSuchDeliveryChannelException", + "exception":true + }, + { + "shape":"LastDeliveryChannelDeleteFailedException", + "exception":true + } + ] + }, + "DeliverConfigSnapshot":{ + "name":"DeliverConfigSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeliverConfigSnapshotRequest"}, + "output":{"shape":"DeliverConfigSnapshotResponse"}, + "errors":[ + { + "shape":"NoSuchDeliveryChannelException", + "exception":true + }, + { + "shape":"NoAvailableConfigurationRecorderException", + "exception":true + }, + { + "shape":"NoRunningConfigurationRecorderException", + "exception":true + } + ] + }, + "DescribeConfigurationRecorderStatus":{ + "name":"DescribeConfigurationRecorderStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeConfigurationRecorderStatusRequest"}, + "output":{"shape":"DescribeConfigurationRecorderStatusResponse"}, + "errors":[ + { + "shape":"NoSuchConfigurationRecorderException", + "exception":true + } + ] + }, + "DescribeConfigurationRecorders":{ + "name":"DescribeConfigurationRecorders", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeConfigurationRecordersRequest"}, + "output":{"shape":"DescribeConfigurationRecordersResponse"}, + "errors":[ + { + "shape":"NoSuchConfigurationRecorderException", + "exception":true + } + ] + }, + "DescribeDeliveryChannelStatus":{ + "name":"DescribeDeliveryChannelStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDeliveryChannelStatusRequest"}, + "output":{"shape":"DescribeDeliveryChannelStatusResponse"}, + "errors":[ + { + "shape":"NoSuchDeliveryChannelException", + "exception":true + } + ] + }, + "DescribeDeliveryChannels":{ + "name":"DescribeDeliveryChannels", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDeliveryChannelsRequest"}, + "output":{"shape":"DescribeDeliveryChannelsResponse"}, + "errors":[ + { + "shape":"NoSuchDeliveryChannelException", + "exception":true + } + ] + }, + "GetResourceConfigHistory":{ + "name":"GetResourceConfigHistory", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetResourceConfigHistoryRequest"}, + "output":{"shape":"GetResourceConfigHistoryResponse"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"InvalidTimeRangeException", + "exception":true + }, + { + "shape":"InvalidLimitException", + "exception":true + }, + { + "shape":"InvalidNextTokenException", + "exception":true + }, + { + "shape":"NoAvailableConfigurationRecorderException", + "exception":true + }, + { + "shape":"ResourceNotDiscoveredException", + "exception":true + } + ] + }, + "PutConfigurationRecorder":{ + "name":"PutConfigurationRecorder", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutConfigurationRecorderRequest"}, + "errors":[ + { + "shape":"MaxNumberOfConfigurationRecordersExceededException", + "exception":true + }, + { + "shape":"InvalidConfigurationRecorderNameException", + "exception":true + }, + { + "shape":"InvalidRoleException", + "exception":true + } + ] + }, + "PutDeliveryChannel":{ + "name":"PutDeliveryChannel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutDeliveryChannelRequest"}, + "errors":[ + { + "shape":"MaxNumberOfDeliveryChannelsExceededException", + "exception":true + }, + { + "shape":"NoAvailableConfigurationRecorderException", + "exception":true + }, + { + "shape":"InvalidDeliveryChannelNameException", + "exception":true + }, + { + "shape":"NoSuchBucketException", + "exception":true + }, + { + "shape":"InvalidS3KeyPrefixException", + "exception":true + }, + { + "shape":"InvalidSNSTopicARNException", + "exception":true + }, + { + "shape":"InsufficientDeliveryPolicyException", + "exception":true + } + ] + }, + "StartConfigurationRecorder":{ + "name":"StartConfigurationRecorder", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartConfigurationRecorderRequest"}, + "errors":[ + { + "shape":"NoSuchConfigurationRecorderException", + "exception":true + }, + { + "shape":"NoAvailableDeliveryChannelException", + "exception":true + } + ] + }, + "StopConfigurationRecorder":{ + "name":"StopConfigurationRecorder", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopConfigurationRecorderRequest"}, + "errors":[ + { + "shape":"NoSuchConfigurationRecorderException", + "exception":true + } + ] + } + }, + "shapes":{ + "ARN":{"type":"string"}, + "AccountId":{"type":"string"}, + "AvailabilityZone":{"type":"string"}, + "Boolean":{"type":"boolean"}, + "ChannelName":{ + "type":"string", + "min":1, + "max":256 + }, + "ChronologicalOrder":{ + "type":"string", + "enum":[ + "Reverse", + "Forward" + ] + }, + "ConfigExportDeliveryInfo":{ + "type":"structure", + "members":{ + "lastStatus":{"shape":"DeliveryStatus"}, + "lastErrorCode":{"shape":"String"}, + "lastErrorMessage":{"shape":"String"}, + "lastAttemptTime":{"shape":"Date"}, + "lastSuccessfulTime":{"shape":"Date"} + } + }, + "ConfigStreamDeliveryInfo":{ + "type":"structure", + "members":{ + "lastStatus":{"shape":"DeliveryStatus"}, + "lastErrorCode":{"shape":"String"}, + "lastErrorMessage":{"shape":"String"}, + "lastStatusChangeTime":{"shape":"Date"} + } + }, + "Configuration":{"type":"string"}, + "ConfigurationItem":{ + "type":"structure", + "members":{ + "version":{"shape":"Version"}, + "accountId":{"shape":"AccountId"}, + "configurationItemCaptureTime":{"shape":"ConfigurationItemCaptureTime"}, + "configurationItemStatus":{"shape":"ConfigurationItemStatus"}, + "configurationStateId":{"shape":"ConfigurationStateId"}, + "configurationItemMD5Hash":{"shape":"ConfigurationItemMD5Hash"}, + "arn":{"shape":"ARN"}, + "resourceType":{"shape":"ResourceType"}, + "resourceId":{"shape":"ResourceId"}, + "availabilityZone":{"shape":"AvailabilityZone"}, + "resourceCreationTime":{"shape":"ResourceCreationTime"}, + "tags":{"shape":"Tags"}, + "relatedEvents":{"shape":"RelatedEventList"}, + "relationships":{"shape":"RelationshipList"}, + "configuration":{"shape":"Configuration"} + } + }, + "ConfigurationItemCaptureTime":{"type":"timestamp"}, + "ConfigurationItemList":{ + "type":"list", + "member":{"shape":"ConfigurationItem"} + }, + "ConfigurationItemMD5Hash":{"type":"string"}, + "ConfigurationItemStatus":{ + "type":"string", + "enum":[ + "Ok", + "Failed", + "Discovered", + "Deleted" + ] + }, + "ConfigurationRecorder":{ + "type":"structure", + "members":{ + "name":{"shape":"RecorderName"}, + "roleARN":{"shape":"String"} + } + }, + "ConfigurationRecorderList":{ + "type":"list", + "member":{"shape":"ConfigurationRecorder"} + }, + "ConfigurationRecorderNameList":{ + "type":"list", + "member":{"shape":"RecorderName"} + }, + "ConfigurationRecorderStatus":{ + "type":"structure", + "members":{ + "name":{"shape":"String"}, + "lastStartTime":{"shape":"Date"}, + "lastStopTime":{"shape":"Date"}, + "recording":{"shape":"Boolean"}, + "lastStatus":{"shape":"RecorderStatus"}, + "lastErrorCode":{"shape":"String"}, + "lastErrorMessage":{"shape":"String"}, + "lastStatusChangeTime":{"shape":"Date"} + } + }, + "ConfigurationRecorderStatusList":{ + "type":"list", + "member":{"shape":"ConfigurationRecorderStatus"} + }, + "ConfigurationStateId":{"type":"string"}, + "Date":{"type":"timestamp"}, + "DeleteDeliveryChannelRequest":{ + "type":"structure", + "required":["DeliveryChannelName"], + "members":{ + "DeliveryChannelName":{"shape":"ChannelName"} + } + }, + "DeliverConfigSnapshotRequest":{ + "type":"structure", + "required":["deliveryChannelName"], + "members":{ + "deliveryChannelName":{"shape":"ChannelName"} + } + }, + "DeliverConfigSnapshotResponse":{ + "type":"structure", + "members":{ + "configSnapshotId":{"shape":"String"} + } + }, + "DeliveryChannel":{ + "type":"structure", + "members":{ + "name":{"shape":"ChannelName"}, + "s3BucketName":{"shape":"String"}, + "s3KeyPrefix":{"shape":"String"}, + "snsTopicARN":{"shape":"String"} + } + }, + "DeliveryChannelList":{ + "type":"list", + "member":{"shape":"DeliveryChannel"} + }, + "DeliveryChannelNameList":{ + "type":"list", + "member":{"shape":"ChannelName"} + }, + "DeliveryChannelStatus":{ + "type":"structure", + "members":{ + "name":{"shape":"String"}, + "configSnapshotDeliveryInfo":{"shape":"ConfigExportDeliveryInfo"}, + "configHistoryDeliveryInfo":{"shape":"ConfigExportDeliveryInfo"}, + "configStreamDeliveryInfo":{"shape":"ConfigStreamDeliveryInfo"} + } + }, + "DeliveryChannelStatusList":{ + "type":"list", + "member":{"shape":"DeliveryChannelStatus"} + }, + "DeliveryStatus":{ + "type":"string", + "enum":[ + "Success", + "Failure", + "Not_Applicable" + ] + }, + "DescribeConfigurationRecorderStatusRequest":{ + "type":"structure", + "members":{ + "ConfigurationRecorderNames":{"shape":"ConfigurationRecorderNameList"} + } + }, + "DescribeConfigurationRecorderStatusResponse":{ + "type":"structure", + "members":{ + "ConfigurationRecordersStatus":{"shape":"ConfigurationRecorderStatusList"} + } + }, + "DescribeConfigurationRecordersRequest":{ + "type":"structure", + "members":{ + "ConfigurationRecorderNames":{"shape":"ConfigurationRecorderNameList"} + } + }, + "DescribeConfigurationRecordersResponse":{ + "type":"structure", + "members":{ + "ConfigurationRecorders":{"shape":"ConfigurationRecorderList"} + } + }, + "DescribeDeliveryChannelStatusRequest":{ + "type":"structure", + "members":{ + "DeliveryChannelNames":{"shape":"DeliveryChannelNameList"} + } + }, + "DescribeDeliveryChannelStatusResponse":{ + "type":"structure", + "members":{ + "DeliveryChannelsStatus":{"shape":"DeliveryChannelStatusList"} + } + }, + "DescribeDeliveryChannelsRequest":{ + "type":"structure", + "members":{ + "DeliveryChannelNames":{"shape":"DeliveryChannelNameList"} + } + }, + "DescribeDeliveryChannelsResponse":{ + "type":"structure", + "members":{ + "DeliveryChannels":{"shape":"DeliveryChannelList"} + } + }, + "EarlierTime":{"type":"timestamp"}, + "GetResourceConfigHistoryRequest":{ + "type":"structure", + "required":[ + "resourceType", + "resourceId" + ], + "members":{ + "resourceType":{"shape":"ResourceType"}, + "resourceId":{"shape":"ResourceId"}, + "laterTime":{"shape":"LaterTime"}, + "earlierTime":{"shape":"EarlierTime"}, + "chronologicalOrder":{"shape":"ChronologicalOrder"}, + "limit":{"shape":"Limit"}, + "nextToken":{"shape":"NextToken"} + } + }, + "GetResourceConfigHistoryResponse":{ + "type":"structure", + "members":{ + "configurationItems":{"shape":"ConfigurationItemList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "InsufficientDeliveryPolicyException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidConfigurationRecorderNameException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidDeliveryChannelNameException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidLimitException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidNextTokenException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidRoleException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidS3KeyPrefixException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidSNSTopicARNException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidTimeRangeException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "LastDeliveryChannelDeleteFailedException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "LaterTime":{"type":"timestamp"}, + "Limit":{ + "type":"integer", + "min":0, + "max":100 + }, + "MaxNumberOfConfigurationRecordersExceededException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "MaxNumberOfDeliveryChannelsExceededException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "Name":{"type":"string"}, + "NextToken":{"type":"string"}, + "NoAvailableConfigurationRecorderException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "NoAvailableDeliveryChannelException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "NoRunningConfigurationRecorderException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "NoSuchBucketException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "NoSuchConfigurationRecorderException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "NoSuchDeliveryChannelException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "PutConfigurationRecorderRequest":{ + "type":"structure", + "required":["ConfigurationRecorder"], + "members":{ + "ConfigurationRecorder":{"shape":"ConfigurationRecorder"} + } + }, + "PutDeliveryChannelRequest":{ + "type":"structure", + "required":["DeliveryChannel"], + "members":{ + "DeliveryChannel":{"shape":"DeliveryChannel"} + } + }, + "RecorderName":{ + "type":"string", + "min":1, + "max":256 + }, + "RecorderStatus":{ + "type":"string", + "enum":[ + "Pending", + "Success", + "Failure" + ] + }, + "RelatedEvent":{"type":"string"}, + "RelatedEventList":{ + "type":"list", + "member":{"shape":"RelatedEvent"} + }, + "Relationship":{ + "type":"structure", + "members":{ + "resourceType":{"shape":"ResourceType"}, + "resourceId":{"shape":"ResourceId"}, + "relationshipName":{"shape":"RelationshipName"} + } + }, + "RelationshipList":{ + "type":"list", + "member":{"shape":"Relationship"} + }, + "RelationshipName":{"type":"string"}, + "ResourceCreationTime":{"type":"timestamp"}, + "ResourceId":{"type":"string"}, + "ResourceNotDiscoveredException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "ResourceType":{ + "type":"string", + "enum":[ + "AWS::EC2::CustomerGateway", + "AWS::EC2::EIP", + "AWS::EC2::Instance", + "AWS::EC2::InternetGateway", + "AWS::EC2::NetworkAcl", + "AWS::EC2::NetworkInterface", + "AWS::EC2::RouteTable", + "AWS::EC2::SecurityGroup", + "AWS::EC2::Subnet", + "AWS::CloudTrail::Trail", + "AWS::EC2::Volume", + "AWS::EC2::VPC", + "AWS::EC2::VPNConnection", + "AWS::EC2::VPNGateway" + ] + }, + "StartConfigurationRecorderRequest":{ + "type":"structure", + "required":["ConfigurationRecorderName"], + "members":{ + "ConfigurationRecorderName":{"shape":"RecorderName"} + } + }, + "StopConfigurationRecorderRequest":{ + "type":"structure", + "required":["ConfigurationRecorderName"], + "members":{ + "ConfigurationRecorderName":{"shape":"RecorderName"} + } + }, + "String":{"type":"string"}, + "Tags":{ + "type":"map", + "key":{"shape":"Name"}, + "value":{"shape":"Value"} + }, + "ValidationException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "Value":{"type":"string"}, + "Version":{"type":"string"} + } +} diff --git a/lib/aws-sdk/Aws/data/config/2014-11-12/docs-2.json b/lib/aws-sdk/Aws/data/config/2014-11-12/docs-2.json new file mode 100644 index 0000000..f797f37 --- /dev/null +++ b/lib/aws-sdk/Aws/data/config/2014-11-12/docs-2.json @@ -0,0 +1,514 @@ +{ + "version": "2.0", + "operations": { + "DeleteDeliveryChannel": "

Deletes the specified delivery channel.

The delivery channel cannot be deleted if it is the only delivery channel and the configuration recorder is still running. To delete the delivery channel, stop the running configuration recorder using the StopConfigurationRecorder action.

", + "DeliverConfigSnapshot": "

Schedules delivery of a configuration snapshot to the Amazon S3 bucket in the specified delivery channel. After the delivery has started, AWS Config sends following notifications using an Amazon SNS topic that you have specified.

  • Notification of starting the delivery.
  • Notification of delivery completed, if the delivery was successfully completed.
  • Notification of delivery failure, if the delivery failed to complete.
", + "DescribeConfigurationRecorderStatus": "

Returns the current status of the specified configuration recorder. If a configuration recorder is not specified, this action returns the status of all configuration recorder associated with the account.

Currently, you can specify only one configuration recorder per account.", + "DescribeConfigurationRecorders": "

Returns the name of one or more specified configuration recorders. If the recorder name is not specified, this action returns the names of all the configuration recorders associated with the account.

Currently, you can specify only one configuration recorder per account.

", + "DescribeDeliveryChannelStatus": "

Returns the current status of the specified delivery channel. If a delivery channel is not specified, this action returns the current status of all delivery channels associated with the account.

Currently, you can specify only one delivery channel per account.", + "DescribeDeliveryChannels": "

Returns details about the specified delivery channel. If a delivery channel is not specified, this action returns the details of all delivery channels associated with the account.

Currently, you can specify only one delivery channel per account.

", + "GetResourceConfigHistory": "

Returns a list of configuration items for the specified resource. The list contains details about each state of the resource during the specified time interval. You can specify a limit on the number of results returned on the page. If a limit is specified, a nextToken is returned as part of the result that you can use to continue this request.

Each call to the API is limited to span a duration of seven days. It is likely that the number of records returned is smaller than the specified limit. In such cases, you can make another call, using the nextToken .

", + "PutConfigurationRecorder": "

Creates a new configuration recorder to record the resource configurations.

You can use this action to change the role (roleARN) of an existing recorder. To change the role, call the action on the existing configuration recorder and specify a role.

Currently, you can specify only one configuration recorder per account.

", + "PutDeliveryChannel": "

Creates a new delivery channel object to deliver the configuration information to an Amazon S3 bucket, and to an Amazon SNS topic.

You can use this action to change the Amazon S3 bucket or an Amazon SNS topic of the existing delivery channel. To change the Amazon S3 bucket or an Amazon SNS topic, call this action and specify the changed values for the S3 bucket and the SNS topic. If you specify a different value for either the S3 bucket or the SNS topic, this action will keep the existing value for the parameter that is not changed.

Currently, you can specify only one delivery channel per account.

", + "StartConfigurationRecorder": "

Starts recording configurations of all the resources associated with the account.

You must have created at least one delivery channel to successfully start the configuration recorder.

", + "StopConfigurationRecorder": "

Stops recording configurations of all the resources associated with the account.

" + }, + "service": "AWS Config

AWS Config provides a way to keep track of the configurations of all the AWS resources associated with your AWS account. You can use AWS Config to get the current and historical configurations of each AWS resource and also to get information about the relationship between the resources. An AWS resource can be an Amazon Compute Cloud (Amazon EC2) instance, an Elastic Block Store (EBS) volume, an Elastic network Interface (ENI), or a security group. For a complete list of resources currently supported by AWS Config, see Supported AWS Resources.

You can access and manage AWS Config through the AWS Management Console, the AWS Command Line Interface (AWS CLI), the AWS Config API, or the AWS SDKs for AWS Config

This reference guide contains documentation for the AWS Config API and the AWS CLI commands that you can use to manage AWS Config.

The AWS Config API uses the Signature Version 4 protocol for signing requests. For more information about how to sign a request with this protocol, see Signature Version 4 Signing Process.

For detailed information about AWS Config features and their associated actions or commands, as well as how to work with AWS Management Console, see What Is AWS Config? in the AWS Config Developer Guide.

", + "shapes": { + "ARN": { + "base": null, + "refs": { + "ConfigurationItem$arn": "

The Amazon Resource Name (ARN) of the resource.

" + } + }, + "AccountId": { + "base": null, + "refs": { + "ConfigurationItem$accountId": "

The 12 digit AWS account ID associated with the resource.

" + } + }, + "AvailabilityZone": { + "base": null, + "refs": { + "ConfigurationItem$availabilityZone": "

The Availability Zone associated with the resource.

" + } + }, + "Boolean": { + "base": null, + "refs": { + "ConfigurationRecorderStatus$recording": "

Specifies whether the recorder is currently recording or not.

" + } + }, + "ChannelName": { + "base": null, + "refs": { + "DeleteDeliveryChannelRequest$DeliveryChannelName": "

The name of the delivery channel to delete.

", + "DeliverConfigSnapshotRequest$deliveryChannelName": "

The name of the delivery channel through which the snapshot is delivered.

", + "DeliveryChannel$name": "

The name of the delivery channel. By default, AWS Config automatically assigns the name \"default\" when creating the delivery channel. You cannot change the assigned name.

", + "DeliveryChannelNameList$member": null + } + }, + "ChronologicalOrder": { + "base": null, + "refs": { + "GetResourceConfigHistoryRequest$chronologicalOrder": "

The chronological order for configuration items listed. By default the results are listed in reverse chronological order.

" + } + }, + "ConfigExportDeliveryInfo": { + "base": "

A list that contains the status of the delivery of either the snapshot or the configuration history to the specified Amazon S3 bucket.

", + "refs": { + "DeliveryChannelStatus$configSnapshotDeliveryInfo": "

A list containing the status of the delivery of the snapshot to the specified Amazon S3 bucket.

", + "DeliveryChannelStatus$configHistoryDeliveryInfo": "

A list that contains the status of the delivery of the configuration history to the specified Amazon S3 bucket.

" + } + }, + "ConfigStreamDeliveryInfo": { + "base": "

A list that contains the status of the delivery of the configuration stream notification to the Amazon SNS topic.

", + "refs": { + "DeliveryChannelStatus$configStreamDeliveryInfo": "

A list containing the status of the delivery of the configuration stream notification to the specified Amazon SNS topic.

" + } + }, + "Configuration": { + "base": null, + "refs": { + "ConfigurationItem$configuration": "

The description of the resource configuration.

" + } + }, + "ConfigurationItem": { + "base": "

A list that contains detailed configurations of a specified resource.

Currently, the list does not contain information about non-AWS components (for example, applications on your Amazon EC2 instances).

", + "refs": { + "ConfigurationItemList$member": null + } + }, + "ConfigurationItemCaptureTime": { + "base": null, + "refs": { + "ConfigurationItem$configurationItemCaptureTime": "

The time when the configuration recording was initiated.

" + } + }, + "ConfigurationItemList": { + "base": null, + "refs": { + "GetResourceConfigHistoryResponse$configurationItems": "

A list that contains the configuration history of one or more resources.

" + } + }, + "ConfigurationItemMD5Hash": { + "base": null, + "refs": { + "ConfigurationItem$configurationItemMD5Hash": "

Unique MD5 hash that represents the configuration item's state.

You can use MD5 hash to compare the states of two or more configuration items that are associated with the same resource.

" + } + }, + "ConfigurationItemStatus": { + "base": null, + "refs": { + "ConfigurationItem$configurationItemStatus": "

The configuration item status.

" + } + }, + "ConfigurationRecorder": { + "base": "

An object that represents the recording of configuration changes of an AWS resource.

", + "refs": { + "ConfigurationRecorderList$member": null, + "PutConfigurationRecorderRequest$ConfigurationRecorder": "

The configuration recorder object that records each configuration change made to the resources.

" + } + }, + "ConfigurationRecorderList": { + "base": null, + "refs": { + "DescribeConfigurationRecordersResponse$ConfigurationRecorders": "

A list that contains the descriptions of the specified configuration recorders.

" + } + }, + "ConfigurationRecorderNameList": { + "base": null, + "refs": { + "DescribeConfigurationRecorderStatusRequest$ConfigurationRecorderNames": "

The name(s) of the configuration recorder. If the name is not specified, the action returns the current status of all the configuration recorders associated with the account.

", + "DescribeConfigurationRecordersRequest$ConfigurationRecorderNames": "

A list of configuration recorder names.

" + } + }, + "ConfigurationRecorderStatus": { + "base": "

The current status of the configuration recorder.

", + "refs": { + "ConfigurationRecorderStatusList$member": null + } + }, + "ConfigurationRecorderStatusList": { + "base": null, + "refs": { + "DescribeConfigurationRecorderStatusResponse$ConfigurationRecordersStatus": "

A list that contains status of the specified recorders.

" + } + }, + "ConfigurationStateId": { + "base": null, + "refs": { + "ConfigurationItem$configurationStateId": "

An identifier that indicates the ordering of the configuration items of a resource.

" + } + }, + "Date": { + "base": null, + "refs": { + "ConfigExportDeliveryInfo$lastAttemptTime": "

The time of the last attempted delivery.

", + "ConfigExportDeliveryInfo$lastSuccessfulTime": "

The time of the last successful delivery.

", + "ConfigStreamDeliveryInfo$lastStatusChangeTime": "

The time from the last status change.

", + "ConfigurationRecorderStatus$lastStartTime": "

The time the recorder was last started.

", + "ConfigurationRecorderStatus$lastStopTime": "

The time the recorder was last stopped.

", + "ConfigurationRecorderStatus$lastStatusChangeTime": "

The time when the status was last changed.

" + } + }, + "DeleteDeliveryChannelRequest": { + "base": "

The input for the DeleteDeliveryChannel action. The action accepts the following data in JSON format.

", + "refs": { + } + }, + "DeliverConfigSnapshotRequest": { + "base": "

The input for the DeliverConfigSnapshot action.

", + "refs": { + } + }, + "DeliverConfigSnapshotResponse": { + "base": "

The output for the DeliverConfigSnapshot action in JSON format.

", + "refs": { + } + }, + "DeliveryChannel": { + "base": "

A logical container used for storing the configuration changes of an AWS resource.

", + "refs": { + "DeliveryChannelList$member": null, + "PutDeliveryChannelRequest$DeliveryChannel": "

The configuration delivery channel object that delivers the configuration information to an Amazon S3 bucket, and to an Amazon SNS topic.

" + } + }, + "DeliveryChannelList": { + "base": null, + "refs": { + "DescribeDeliveryChannelsResponse$DeliveryChannels": "

A list that contains the descriptions of the specified delivery channel.

" + } + }, + "DeliveryChannelNameList": { + "base": null, + "refs": { + "DescribeDeliveryChannelStatusRequest$DeliveryChannelNames": "

A list of delivery channel names.

", + "DescribeDeliveryChannelsRequest$DeliveryChannelNames": "

A list of delivery channel names.

" + } + }, + "DeliveryChannelStatus": { + "base": "

The status of a specified delivery channel.

Valid values: Success | Failure

", + "refs": { + "DeliveryChannelStatusList$member": null + } + }, + "DeliveryChannelStatusList": { + "base": null, + "refs": { + "DescribeDeliveryChannelStatusResponse$DeliveryChannelsStatus": "

A list that contains the status of a specified delivery channel.

" + } + }, + "DeliveryStatus": { + "base": null, + "refs": { + "ConfigExportDeliveryInfo$lastStatus": "

Status of the last attempted delivery.

", + "ConfigStreamDeliveryInfo$lastStatus": "

Status of the last attempted delivery.

" + } + }, + "DescribeConfigurationRecorderStatusRequest": { + "base": "

The input for the DescribeConfigurationRecorderStatus action.

", + "refs": { + } + }, + "DescribeConfigurationRecorderStatusResponse": { + "base": "

The output for the DescribeConfigurationRecorderStatus action in JSON format.

", + "refs": { + } + }, + "DescribeConfigurationRecordersRequest": { + "base": "

The input for the DescribeConfigurationRecorders action.

", + "refs": { + } + }, + "DescribeConfigurationRecordersResponse": { + "base": "

The output for the DescribeConfigurationRecorders action.

", + "refs": { + } + }, + "DescribeDeliveryChannelStatusRequest": { + "base": "

The input for the DeliveryChannelStatus action.

", + "refs": { + } + }, + "DescribeDeliveryChannelStatusResponse": { + "base": "

The output for the DescribeDeliveryChannelStatus action.

", + "refs": { + } + }, + "DescribeDeliveryChannelsRequest": { + "base": "

The input for the DescribeDeliveryChannels action.

", + "refs": { + } + }, + "DescribeDeliveryChannelsResponse": { + "base": "

The output for the DescribeDeliveryChannels action.

", + "refs": { + } + }, + "EarlierTime": { + "base": null, + "refs": { + "GetResourceConfigHistoryRequest$earlierTime": "

The time stamp that indicates an earlier time. If not specified, the action returns paginated results that contain configuration items that start from when the first configuration item was recorded.

" + } + }, + "GetResourceConfigHistoryRequest": { + "base": "

The input for the GetResourceConfigHistory action.

", + "refs": { + } + }, + "GetResourceConfigHistoryResponse": { + "base": "

The output for the GetResourceConfigHistory action.

", + "refs": { + } + }, + "InsufficientDeliveryPolicyException": { + "base": "

Your Amazon S3 bucket policy does not permit AWS Config to write to it.

", + "refs": { + } + }, + "InvalidConfigurationRecorderNameException": { + "base": "

You have provided a configuration recorder name that is not valid.

", + "refs": { + } + }, + "InvalidDeliveryChannelNameException": { + "base": "

The specified delivery channel name is not valid.

", + "refs": { + } + }, + "InvalidLimitException": { + "base": "

You have reached the limit on the pagination.

", + "refs": { + } + }, + "InvalidNextTokenException": { + "base": "

The specified nextToken for pagination is not valid.

", + "refs": { + } + }, + "InvalidRoleException": { + "base": "

You have provided a null or empty role ARN.

", + "refs": { + } + }, + "InvalidS3KeyPrefixException": { + "base": "

The specified Amazon S3 key prefix is not valid.

", + "refs": { + } + }, + "InvalidSNSTopicARNException": { + "base": "

The specified Amazon SNS topic does not exist.

", + "refs": { + } + }, + "InvalidTimeRangeException": { + "base": "

The specified time range is not valid. The earlier time is not chronologically before the later time.

", + "refs": { + } + }, + "LastDeliveryChannelDeleteFailedException": { + "base": "

You cannot delete the delivery channel you specified because the configuration recorder is running.

", + "refs": { + } + }, + "LaterTime": { + "base": null, + "refs": { + "GetResourceConfigHistoryRequest$laterTime": "

The time stamp that indicates a later time. If not specified, current time is taken.

" + } + }, + "Limit": { + "base": null, + "refs": { + "GetResourceConfigHistoryRequest$limit": "

The maximum number of configuration items returned in each page. The default is 10. You cannot specify a limit greater than 100.

" + } + }, + "MaxNumberOfConfigurationRecordersExceededException": { + "base": "

You have reached the limit on the number of recorders you can create.

", + "refs": { + } + }, + "MaxNumberOfDeliveryChannelsExceededException": { + "base": "

You have reached the limit on the number of delivery channels you can create.

", + "refs": { + } + }, + "Name": { + "base": null, + "refs": { + "Tags$key": null + } + }, + "NextToken": { + "base": null, + "refs": { + "GetResourceConfigHistoryRequest$nextToken": "

An optional parameter used for pagination of the results.

", + "GetResourceConfigHistoryResponse$nextToken": "

A token used for pagination of results.

" + } + }, + "NoAvailableConfigurationRecorderException": { + "base": "

There are no configuration recorders available to provide the role needed to describe your resources.

", + "refs": { + } + }, + "NoAvailableDeliveryChannelException": { + "base": "

There is no delivery channel available to record configurations.

", + "refs": { + } + }, + "NoRunningConfigurationRecorderException": { + "base": "

There is no configuration recorder running.

", + "refs": { + } + }, + "NoSuchBucketException": { + "base": "

The specified Amazon S3 bucket does not exist.

", + "refs": { + } + }, + "NoSuchConfigurationRecorderException": { + "base": "

You have specified a configuration recorder that does not exist.

", + "refs": { + } + }, + "NoSuchDeliveryChannelException": { + "base": "

You have specified a delivery channel that does not exist.

", + "refs": { + } + }, + "PutConfigurationRecorderRequest": { + "base": "

The input for the PutConfigurationRecorder action.

", + "refs": { + } + }, + "PutDeliveryChannelRequest": { + "base": "

The input for the PutDeliveryChannel action.

", + "refs": { + } + }, + "RecorderName": { + "base": null, + "refs": { + "ConfigurationRecorder$name": "

The name of the recorder. By default, AWS Config automatically assigns the name \"default\" when creating the configuration recorder. You cannot change the assigned name.

", + "ConfigurationRecorderNameList$member": null, + "StartConfigurationRecorderRequest$ConfigurationRecorderName": "

The name of the recorder object that records each configuration change made to the resources.

", + "StopConfigurationRecorderRequest$ConfigurationRecorderName": "

The name of the recorder object that records each configuration change made to the resources.

" + } + }, + "RecorderStatus": { + "base": null, + "refs": { + "ConfigurationRecorderStatus$lastStatus": "

The last (previous) status of the recorder.

" + } + }, + "RelatedEvent": { + "base": null, + "refs": { + "RelatedEventList$member": null + } + }, + "RelatedEventList": { + "base": null, + "refs": { + "ConfigurationItem$relatedEvents": "

A list of CloudTrail event IDs.

A populated field indicates that the current configuration was initiated by the events recorded in the CloudTrail log. For more information about CloudTrail, see What is AWS CloudTrail?.

An empty field indicates that the current configuration was not initiated by any event.

" + } + }, + "Relationship": { + "base": "

The relationship of the related resource to the main resource.

", + "refs": { + "RelationshipList$member": null + } + }, + "RelationshipList": { + "base": null, + "refs": { + "ConfigurationItem$relationships": "

A list of related AWS resources.

" + } + }, + "RelationshipName": { + "base": null, + "refs": { + "Relationship$relationshipName": "

The name of the related resource.

" + } + }, + "ResourceCreationTime": { + "base": null, + "refs": { + "ConfigurationItem$resourceCreationTime": "

The time stamp when the resource was created.

" + } + }, + "ResourceId": { + "base": null, + "refs": { + "ConfigurationItem$resourceId": "

The ID of the resource (for example., sg-xxxxxx).

", + "GetResourceConfigHistoryRequest$resourceId": "

The ID of the resource (for example., sg-xxxxxx).

", + "Relationship$resourceId": "

The resource ID of the related resource (for example, sg-xxxxxx.

" + } + }, + "ResourceNotDiscoveredException": { + "base": "

You have specified a resource that is either unknown or has not been discovered.

", + "refs": { + } + }, + "ResourceType": { + "base": null, + "refs": { + "ConfigurationItem$resourceType": "

The type of AWS resource.

", + "GetResourceConfigHistoryRequest$resourceType": "

The resource type.

", + "Relationship$resourceType": "

The resource type of the related resource.

" + } + }, + "StartConfigurationRecorderRequest": { + "base": "

The input for the StartConfigurationRecorder action.

", + "refs": { + } + }, + "StopConfigurationRecorderRequest": { + "base": "

The input for the StopConfigurationRecorder action.

", + "refs": { + } + }, + "String": { + "base": null, + "refs": { + "ConfigExportDeliveryInfo$lastErrorCode": "

The error code from the last attempted delivery.

", + "ConfigExportDeliveryInfo$lastErrorMessage": "

The error message from the last attempted delivery.

", + "ConfigStreamDeliveryInfo$lastErrorCode": "

The error code from the last attempted delivery.

", + "ConfigStreamDeliveryInfo$lastErrorMessage": "

The error message from the last attempted delivery.

", + "ConfigurationRecorder$roleARN": "

Amazon Resource Name (ARN) of the IAM role used to describe the AWS resources associated with the account.

", + "ConfigurationRecorderStatus$name": "

The name of the configuration recorder.

", + "ConfigurationRecorderStatus$lastErrorCode": "

The error code indicating that the recording failed.

", + "ConfigurationRecorderStatus$lastErrorMessage": "

The message indicating that the recording failed due to an error.

", + "DeliverConfigSnapshotResponse$configSnapshotId": "

The ID of the snapshot that is being created.

", + "DeliveryChannel$s3BucketName": "

The name of the Amazon S3 bucket used to store configuration history for the delivery channel.

", + "DeliveryChannel$s3KeyPrefix": "

The prefix for the specified Amazon S3 bucket.

", + "DeliveryChannel$snsTopicARN": "

The Amazon Resource Name (ARN) of the IAM role used for accessing the Amazon S3 bucket and the Amazon SNS topic.

", + "DeliveryChannelStatus$name": "

The name of the delivery channel.

" + } + }, + "Tags": { + "base": null, + "refs": { + "ConfigurationItem$tags": "

A mapping of key value tags associated with the resource.

" + } + }, + "ValidationException": { + "base": "

The requested action is not valid.

", + "refs": { + } + }, + "Value": { + "base": null, + "refs": { + "Tags$value": null + } + }, + "Version": { + "base": null, + "refs": { + "ConfigurationItem$version": "

The version number of the resource configuration.

" + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/config/2014-11-12/paginators-1.json b/lib/aws-sdk/Aws/data/config/2014-11-12/paginators-1.json new file mode 100644 index 0000000..45c365e --- /dev/null +++ b/lib/aws-sdk/Aws/data/config/2014-11-12/paginators-1.json @@ -0,0 +1,10 @@ +{ + "pagination": { + "GetResourceConfigHistory": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "limit", + "result_key": "configurationItems" + } + } +} diff --git a/lib/aws-sdk/Aws/data/datapipeline/2012-10-29/api-2.json b/lib/aws-sdk/Aws/data/datapipeline/2012-10-29/api-2.json new file mode 100644 index 0000000..da8ae4e --- /dev/null +++ b/lib/aws-sdk/Aws/data/datapipeline/2012-10-29/api-2.json @@ -0,0 +1,1167 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2012-10-29", + "endpointPrefix":"datapipeline", + "jsonVersion":"1.1", + "serviceFullName":"AWS Data Pipeline", + "signatureVersion":"v4", + "targetPrefix":"DataPipeline", + "protocol":"json" + }, + "operations":{ + "ActivatePipeline":{ + "name":"ActivatePipeline", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ActivatePipelineInput"}, + "output":{"shape":"ActivatePipelineOutput"}, + "errors":[ + { + "shape":"PipelineNotFoundException", + "exception":true + }, + { + "shape":"PipelineDeletedException", + "exception":true + }, + { + "shape":"InternalServiceError", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "AddTags":{ + "name":"AddTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddTagsInput"}, + "output":{"shape":"AddTagsOutput"}, + "errors":[ + { + "shape":"InternalServiceError", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + }, + { + "shape":"PipelineNotFoundException", + "exception":true + }, + { + "shape":"PipelineDeletedException", + "exception":true + } + ] + }, + "CreatePipeline":{ + "name":"CreatePipeline", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreatePipelineInput"}, + "output":{"shape":"CreatePipelineOutput"}, + "errors":[ + { + "shape":"InternalServiceError", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "DeactivatePipeline":{ + "name":"DeactivatePipeline", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeactivatePipelineInput"}, + "output":{"shape":"DeactivatePipelineOutput"}, + "errors":[ + { + "shape":"PipelineNotFoundException", + "exception":true + }, + { + "shape":"PipelineDeletedException", + "exception":true + }, + { + "shape":"InternalServiceError", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "DeletePipeline":{ + "name":"DeletePipeline", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeletePipelineInput"}, + "errors":[ + { + "shape":"PipelineNotFoundException", + "exception":true + }, + { + "shape":"InternalServiceError", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "DescribeObjects":{ + "name":"DescribeObjects", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeObjectsInput"}, + "output":{"shape":"DescribeObjectsOutput"}, + "errors":[ + { + "shape":"InternalServiceError", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + }, + { + "shape":"PipelineNotFoundException", + "exception":true + }, + { + "shape":"PipelineDeletedException", + "exception":true + } + ] + }, + "DescribePipelines":{ + "name":"DescribePipelines", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribePipelinesInput"}, + "output":{"shape":"DescribePipelinesOutput"}, + "errors":[ + { + "shape":"PipelineNotFoundException", + "exception":true + }, + { + "shape":"PipelineDeletedException", + "exception":true + }, + { + "shape":"InternalServiceError", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "EvaluateExpression":{ + "name":"EvaluateExpression", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EvaluateExpressionInput"}, + "output":{"shape":"EvaluateExpressionOutput"}, + "errors":[ + { + "shape":"InternalServiceError", + "exception":true, + "fault":true + }, + { + "shape":"TaskNotFoundException", + "exception":true + }, + { + "shape":"InvalidRequestException", + "exception":true + }, + { + "shape":"PipelineNotFoundException", + "exception":true + }, + { + "shape":"PipelineDeletedException", + "exception":true + } + ] + }, + "GetPipelineDefinition":{ + "name":"GetPipelineDefinition", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetPipelineDefinitionInput"}, + "output":{"shape":"GetPipelineDefinitionOutput"}, + "errors":[ + { + "shape":"InternalServiceError", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + }, + { + "shape":"PipelineNotFoundException", + "exception":true + }, + { + "shape":"PipelineDeletedException", + "exception":true + } + ] + }, + "ListPipelines":{ + "name":"ListPipelines", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListPipelinesInput"}, + "output":{"shape":"ListPipelinesOutput"}, + "errors":[ + { + "shape":"InternalServiceError", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "PollForTask":{ + "name":"PollForTask", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PollForTaskInput"}, + "output":{"shape":"PollForTaskOutput"}, + "errors":[ + { + "shape":"InternalServiceError", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + }, + { + "shape":"TaskNotFoundException", + "exception":true + } + ] + }, + "PutPipelineDefinition":{ + "name":"PutPipelineDefinition", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutPipelineDefinitionInput"}, + "output":{"shape":"PutPipelineDefinitionOutput"}, + "errors":[ + { + "shape":"InternalServiceError", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + }, + { + "shape":"PipelineNotFoundException", + "exception":true + }, + { + "shape":"PipelineDeletedException", + "exception":true + } + ] + }, + "QueryObjects":{ + "name":"QueryObjects", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"QueryObjectsInput"}, + "output":{"shape":"QueryObjectsOutput"}, + "errors":[ + { + "shape":"PipelineNotFoundException", + "exception":true + }, + { + "shape":"PipelineDeletedException", + "exception":true + }, + { + "shape":"InternalServiceError", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "RemoveTags":{ + "name":"RemoveTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RemoveTagsInput"}, + "output":{"shape":"RemoveTagsOutput"}, + "errors":[ + { + "shape":"InternalServiceError", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + }, + { + "shape":"PipelineNotFoundException", + "exception":true + }, + { + "shape":"PipelineDeletedException", + "exception":true + } + ] + }, + "ReportTaskProgress":{ + "name":"ReportTaskProgress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ReportTaskProgressInput"}, + "output":{"shape":"ReportTaskProgressOutput"}, + "errors":[ + { + "shape":"InternalServiceError", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + }, + { + "shape":"TaskNotFoundException", + "exception":true + }, + { + "shape":"PipelineNotFoundException", + "exception":true + }, + { + "shape":"PipelineDeletedException", + "exception":true + } + ] + }, + "ReportTaskRunnerHeartbeat":{ + "name":"ReportTaskRunnerHeartbeat", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ReportTaskRunnerHeartbeatInput"}, + "output":{"shape":"ReportTaskRunnerHeartbeatOutput"}, + "errors":[ + { + "shape":"InternalServiceError", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "SetStatus":{ + "name":"SetStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetStatusInput"}, + "errors":[ + { + "shape":"PipelineNotFoundException", + "exception":true + }, + { + "shape":"PipelineDeletedException", + "exception":true + }, + { + "shape":"InternalServiceError", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "SetTaskStatus":{ + "name":"SetTaskStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetTaskStatusInput"}, + "output":{"shape":"SetTaskStatusOutput"}, + "errors":[ + { + "shape":"InternalServiceError", + "exception":true, + "fault":true + }, + { + "shape":"TaskNotFoundException", + "exception":true + }, + { + "shape":"InvalidRequestException", + "exception":true + }, + { + "shape":"PipelineNotFoundException", + "exception":true + }, + { + "shape":"PipelineDeletedException", + "exception":true + } + ] + }, + "ValidatePipelineDefinition":{ + "name":"ValidatePipelineDefinition", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ValidatePipelineDefinitionInput"}, + "output":{"shape":"ValidatePipelineDefinitionOutput"}, + "errors":[ + { + "shape":"InternalServiceError", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + }, + { + "shape":"PipelineNotFoundException", + "exception":true + }, + { + "shape":"PipelineDeletedException", + "exception":true + } + ] + } + }, + "shapes":{ + "ActivatePipelineInput":{ + "type":"structure", + "required":["pipelineId"], + "members":{ + "pipelineId":{"shape":"id"}, + "parameterValues":{"shape":"ParameterValueList"}, + "startTimestamp":{"shape":"timestamp"} + } + }, + "ActivatePipelineOutput":{ + "type":"structure", + "members":{ + } + }, + "AddTagsInput":{ + "type":"structure", + "required":[ + "pipelineId", + "tags" + ], + "members":{ + "pipelineId":{"shape":"id"}, + "tags":{"shape":"tagList"} + } + }, + "AddTagsOutput":{ + "type":"structure", + "members":{ + } + }, + "CreatePipelineInput":{ + "type":"structure", + "required":[ + "name", + "uniqueId" + ], + "members":{ + "name":{"shape":"id"}, + "uniqueId":{"shape":"id"}, + "description":{"shape":"string"}, + "tags":{"shape":"tagList"} + } + }, + "CreatePipelineOutput":{ + "type":"structure", + "required":["pipelineId"], + "members":{ + "pipelineId":{"shape":"id"} + } + }, + "DeactivatePipelineInput":{ + "type":"structure", + "required":["pipelineId"], + "members":{ + "pipelineId":{"shape":"id"}, + "cancelActive":{"shape":"cancelActive"} + } + }, + "DeactivatePipelineOutput":{ + "type":"structure", + "members":{ + } + }, + "DeletePipelineInput":{ + "type":"structure", + "required":["pipelineId"], + "members":{ + "pipelineId":{"shape":"id"} + } + }, + "DescribeObjectsInput":{ + "type":"structure", + "required":[ + "pipelineId", + "objectIds" + ], + "members":{ + "pipelineId":{"shape":"id"}, + "objectIds":{"shape":"idList"}, + "evaluateExpressions":{"shape":"boolean"}, + "marker":{"shape":"string"} + } + }, + "DescribeObjectsOutput":{ + "type":"structure", + "required":["pipelineObjects"], + "members":{ + "pipelineObjects":{"shape":"PipelineObjectList"}, + "marker":{"shape":"string"}, + "hasMoreResults":{"shape":"boolean"} + } + }, + "DescribePipelinesInput":{ + "type":"structure", + "required":["pipelineIds"], + "members":{ + "pipelineIds":{"shape":"idList"} + } + }, + "DescribePipelinesOutput":{ + "type":"structure", + "required":["pipelineDescriptionList"], + "members":{ + "pipelineDescriptionList":{"shape":"PipelineDescriptionList"} + } + }, + "EvaluateExpressionInput":{ + "type":"structure", + "required":[ + "pipelineId", + "objectId", + "expression" + ], + "members":{ + "pipelineId":{"shape":"id"}, + "objectId":{"shape":"id"}, + "expression":{"shape":"longString"} + } + }, + "EvaluateExpressionOutput":{ + "type":"structure", + "required":["evaluatedExpression"], + "members":{ + "evaluatedExpression":{"shape":"longString"} + } + }, + "Field":{ + "type":"structure", + "required":["key"], + "members":{ + "key":{"shape":"fieldNameString"}, + "stringValue":{"shape":"fieldStringValue"}, + "refValue":{"shape":"fieldNameString"} + } + }, + "GetPipelineDefinitionInput":{ + "type":"structure", + "required":["pipelineId"], + "members":{ + "pipelineId":{"shape":"id"}, + "version":{"shape":"string"} + } + }, + "GetPipelineDefinitionOutput":{ + "type":"structure", + "members":{ + "pipelineObjects":{"shape":"PipelineObjectList"}, + "parameterObjects":{"shape":"ParameterObjectList"}, + "parameterValues":{"shape":"ParameterValueList"} + } + }, + "InstanceIdentity":{ + "type":"structure", + "members":{ + "document":{"shape":"string"}, + "signature":{"shape":"string"} + } + }, + "InternalServiceError":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "exception":true, + "fault":true + }, + "InvalidRequestException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "exception":true + }, + "ListPipelinesInput":{ + "type":"structure", + "members":{ + "marker":{"shape":"string"} + } + }, + "ListPipelinesOutput":{ + "type":"structure", + "required":["pipelineIdList"], + "members":{ + "pipelineIdList":{"shape":"pipelineList"}, + "marker":{"shape":"string"}, + "hasMoreResults":{"shape":"boolean"} + } + }, + "Operator":{ + "type":"structure", + "members":{ + "type":{"shape":"OperatorType"}, + "values":{"shape":"stringList"} + } + }, + "OperatorType":{ + "type":"string", + "enum":[ + "EQ", + "REF_EQ", + "LE", + "GE", + "BETWEEN" + ] + }, + "ParameterAttribute":{ + "type":"structure", + "required":[ + "key", + "stringValue" + ], + "members":{ + "key":{"shape":"attributeNameString"}, + "stringValue":{"shape":"attributeValueString"} + } + }, + "ParameterAttributeList":{ + "type":"list", + "member":{"shape":"ParameterAttribute"} + }, + "ParameterObject":{ + "type":"structure", + "required":[ + "id", + "attributes" + ], + "members":{ + "id":{"shape":"fieldNameString"}, + "attributes":{"shape":"ParameterAttributeList"} + } + }, + "ParameterObjectList":{ + "type":"list", + "member":{"shape":"ParameterObject"} + }, + "ParameterValue":{ + "type":"structure", + "required":[ + "id", + "stringValue" + ], + "members":{ + "id":{"shape":"fieldNameString"}, + "stringValue":{"shape":"fieldStringValue"} + } + }, + "ParameterValueList":{ + "type":"list", + "member":{"shape":"ParameterValue"} + }, + "PipelineDeletedException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "exception":true + }, + "PipelineDescription":{ + "type":"structure", + "required":[ + "pipelineId", + "name", + "fields" + ], + "members":{ + "pipelineId":{"shape":"id"}, + "name":{"shape":"id"}, + "fields":{"shape":"fieldList"}, + "description":{"shape":"string"}, + "tags":{"shape":"tagList"} + } + }, + "PipelineDescriptionList":{ + "type":"list", + "member":{"shape":"PipelineDescription"} + }, + "PipelineIdName":{ + "type":"structure", + "members":{ + "id":{"shape":"id"}, + "name":{"shape":"id"} + } + }, + "PipelineNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "exception":true + }, + "PipelineObject":{ + "type":"structure", + "required":[ + "id", + "name", + "fields" + ], + "members":{ + "id":{"shape":"id"}, + "name":{"shape":"id"}, + "fields":{"shape":"fieldList"} + } + }, + "PipelineObjectList":{ + "type":"list", + "member":{"shape":"PipelineObject"} + }, + "PipelineObjectMap":{ + "type":"map", + "key":{"shape":"id"}, + "value":{"shape":"PipelineObject"} + }, + "PollForTaskInput":{ + "type":"structure", + "required":["workerGroup"], + "members":{ + "workerGroup":{"shape":"string"}, + "hostname":{"shape":"id"}, + "instanceIdentity":{"shape":"InstanceIdentity"} + } + }, + "PollForTaskOutput":{ + "type":"structure", + "members":{ + "taskObject":{"shape":"TaskObject"} + } + }, + "PutPipelineDefinitionInput":{ + "type":"structure", + "required":[ + "pipelineId", + "pipelineObjects" + ], + "members":{ + "pipelineId":{"shape":"id"}, + "pipelineObjects":{"shape":"PipelineObjectList"}, + "parameterObjects":{"shape":"ParameterObjectList"}, + "parameterValues":{"shape":"ParameterValueList"} + } + }, + "PutPipelineDefinitionOutput":{ + "type":"structure", + "required":["errored"], + "members":{ + "validationErrors":{"shape":"ValidationErrors"}, + "validationWarnings":{"shape":"ValidationWarnings"}, + "errored":{"shape":"boolean"} + } + }, + "Query":{ + "type":"structure", + "members":{ + "selectors":{"shape":"SelectorList"} + } + }, + "QueryObjectsInput":{ + "type":"structure", + "required":[ + "pipelineId", + "sphere" + ], + "members":{ + "pipelineId":{"shape":"id"}, + "query":{"shape":"Query"}, + "sphere":{"shape":"string"}, + "marker":{"shape":"string"}, + "limit":{"shape":"int"} + } + }, + "QueryObjectsOutput":{ + "type":"structure", + "members":{ + "ids":{"shape":"idList"}, + "marker":{"shape":"string"}, + "hasMoreResults":{"shape":"boolean"} + } + }, + "RemoveTagsInput":{ + "type":"structure", + "required":[ + "pipelineId", + "tagKeys" + ], + "members":{ + "pipelineId":{"shape":"id"}, + "tagKeys":{"shape":"stringList"} + } + }, + "RemoveTagsOutput":{ + "type":"structure", + "members":{ + } + }, + "ReportTaskProgressInput":{ + "type":"structure", + "required":["taskId"], + "members":{ + "taskId":{"shape":"taskId"}, + "fields":{"shape":"fieldList"} + } + }, + "ReportTaskProgressOutput":{ + "type":"structure", + "required":["canceled"], + "members":{ + "canceled":{"shape":"boolean"} + } + }, + "ReportTaskRunnerHeartbeatInput":{ + "type":"structure", + "required":["taskrunnerId"], + "members":{ + "taskrunnerId":{"shape":"id"}, + "workerGroup":{"shape":"string"}, + "hostname":{"shape":"id"} + } + }, + "ReportTaskRunnerHeartbeatOutput":{ + "type":"structure", + "required":["terminate"], + "members":{ + "terminate":{"shape":"boolean"} + } + }, + "Selector":{ + "type":"structure", + "members":{ + "fieldName":{"shape":"string"}, + "operator":{"shape":"Operator"} + } + }, + "SelectorList":{ + "type":"list", + "member":{"shape":"Selector"} + }, + "SetStatusInput":{ + "type":"structure", + "required":[ + "pipelineId", + "objectIds", + "status" + ], + "members":{ + "pipelineId":{"shape":"id"}, + "objectIds":{"shape":"idList"}, + "status":{"shape":"string"} + } + }, + "SetTaskStatusInput":{ + "type":"structure", + "required":[ + "taskId", + "taskStatus" + ], + "members":{ + "taskId":{"shape":"taskId"}, + "taskStatus":{"shape":"TaskStatus"}, + "errorId":{"shape":"string"}, + "errorMessage":{"shape":"errorMessage"}, + "errorStackTrace":{"shape":"string"} + } + }, + "SetTaskStatusOutput":{ + "type":"structure", + "members":{ + } + }, + "Tag":{ + "type":"structure", + "required":[ + "key", + "value" + ], + "members":{ + "key":{"shape":"tagKey"}, + "value":{"shape":"tagValue"} + } + }, + "TaskNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "exception":true + }, + "TaskObject":{ + "type":"structure", + "members":{ + "taskId":{"shape":"taskId"}, + "pipelineId":{"shape":"id"}, + "attemptId":{"shape":"id"}, + "objects":{"shape":"PipelineObjectMap"} + } + }, + "TaskStatus":{ + "type":"string", + "enum":[ + "FINISHED", + "FAILED", + "FALSE" + ] + }, + "ValidatePipelineDefinitionInput":{ + "type":"structure", + "required":[ + "pipelineId", + "pipelineObjects" + ], + "members":{ + "pipelineId":{"shape":"id"}, + "pipelineObjects":{"shape":"PipelineObjectList"}, + "parameterObjects":{"shape":"ParameterObjectList"}, + "parameterValues":{"shape":"ParameterValueList"} + } + }, + "ValidatePipelineDefinitionOutput":{ + "type":"structure", + "required":["errored"], + "members":{ + "validationErrors":{"shape":"ValidationErrors"}, + "validationWarnings":{"shape":"ValidationWarnings"}, + "errored":{"shape":"boolean"} + } + }, + "ValidationError":{ + "type":"structure", + "members":{ + "id":{"shape":"id"}, + "errors":{"shape":"validationMessages"} + } + }, + "ValidationErrors":{ + "type":"list", + "member":{"shape":"ValidationError"} + }, + "ValidationWarning":{ + "type":"structure", + "members":{ + "id":{"shape":"id"}, + "warnings":{"shape":"validationMessages"} + } + }, + "ValidationWarnings":{ + "type":"list", + "member":{"shape":"ValidationWarning"} + }, + "attributeNameString":{ + "type":"string", + "min":1, + "max":256, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "attributeValueString":{ + "type":"string", + "min":0, + "max":10240, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "boolean":{"type":"boolean"}, + "cancelActive":{"type":"boolean"}, + "errorMessage":{"type":"string"}, + "fieldList":{ + "type":"list", + "member":{"shape":"Field"} + }, + "fieldNameString":{ + "type":"string", + "min":1, + "max":256, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "fieldStringValue":{ + "type":"string", + "min":0, + "max":10240, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "id":{ + "type":"string", + "min":1, + "max":1024, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "idList":{ + "type":"list", + "member":{"shape":"id"} + }, + "int":{"type":"integer"}, + "longString":{ + "type":"string", + "min":0, + "max":20971520, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "pipelineList":{ + "type":"list", + "member":{"shape":"PipelineIdName"} + }, + "string":{ + "type":"string", + "min":0, + "max":1024, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "stringList":{ + "type":"list", + "member":{"shape":"string"} + }, + "tagKey":{ + "type":"string", + "min":1, + "max":128 + }, + "tagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "min":0, + "max":10 + }, + "tagValue":{ + "type":"string", + "min":0, + "max":256 + }, + "taskId":{ + "type":"string", + "min":1, + "max":2048, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "timestamp":{"type":"timestamp"}, + "validationMessage":{ + "type":"string", + "min":0, + "max":10000, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "validationMessages":{ + "type":"list", + "member":{"shape":"validationMessage"} + } + } +} diff --git a/lib/aws-sdk/Aws/data/datapipeline/2012-10-29/docs-2.json b/lib/aws-sdk/Aws/data/datapipeline/2012-10-29/docs-2.json new file mode 100644 index 0000000..7675f10 --- /dev/null +++ b/lib/aws-sdk/Aws/data/datapipeline/2012-10-29/docs-2.json @@ -0,0 +1,607 @@ +{ + "version": "2.0", + "operations": { + "ActivatePipeline": "

Validates the specified pipeline and starts processing pipeline tasks. If the pipeline does not pass validation, activation fails.

If you need to pause the pipeline to investigate an issue with a component, such as a data source or script, call DeactivatePipeline.

To activate a finished pipeline, modify the end date for the pipeline and then activate it.

", + "AddTags": "

Adds or modifies tags for the specified pipeline.

", + "CreatePipeline": "

Creates a new, empty pipeline. Use PutPipelineDefinition to populate the pipeline.

", + "DeactivatePipeline": "

Deactivates the specified running pipeline. The pipeline is set to the DEACTIVATING state until the deactivation process completes.

To resume a deactivated pipeline, use ActivatePipeline. By default, the pipeline resumes from the last completed execution. Optionally, you can specify the date and time to resume the pipeline.

", + "DeletePipeline": "

Deletes a pipeline, its pipeline definition, and its run history. AWS Data Pipeline attempts to cancel instances associated with the pipeline that are currently being processed by task runners.

Deleting a pipeline cannot be undone. You cannot query or restore a deleted pipeline. To temporarily pause a pipeline instead of deleting it, call SetStatus with the status set to PAUSE on individual components. Components that are paused by SetStatus can be resumed.

", + "DescribeObjects": "

Gets the object definitions for a set of objects associated with the pipeline. Object definitions are composed of a set of fields that define the properties of the object.

", + "DescribePipelines": "

Retrieves metadata about one or more pipelines. The information retrieved includes the name of the pipeline, the pipeline identifier, its current state, and the user account that owns the pipeline. Using account credentials, you can retrieve metadata about pipelines that you or your IAM users have created. If you are using an IAM user account, you can retrieve metadata about only those pipelines for which you have read permissions.

To retrieve the full pipeline definition instead of metadata about the pipeline, call GetPipelineDefinition.

", + "EvaluateExpression": "

Task runners call EvaluateExpression to evaluate a string in the context of the specified object. For example, a task runner can evaluate SQL queries stored in Amazon S3.

", + "GetPipelineDefinition": "

Gets the definition of the specified pipeline. You can call GetPipelineDefinition to retrieve the pipeline definition that you provided using PutPipelineDefinition.

", + "ListPipelines": "

Lists the pipeline identifiers for all active pipelines that you have permission to access.

", + "PollForTask": "

Task runners call PollForTask to receive a task to perform from AWS Data Pipeline. The task runner specifies which tasks it can perform by setting a value for the workerGroup parameter. The task returned can come from any of the pipelines that match the workerGroup value passed in by the task runner and that was launched using the IAM user credentials specified by the task runner.

If tasks are ready in the work queue, PollForTask returns a response immediately. If no tasks are available in the queue, PollForTask uses long-polling and holds on to a poll connection for up to a 90 seconds, during which time the first newly scheduled task is handed to the task runner. To accomodate this, set the socket timeout in your task runner to 90 seconds. The task runner should not call PollForTask again on the same workerGroup until it receives a response, and this can take up to 90 seconds.

", + "PutPipelineDefinition": "

Adds tasks, schedules, and preconditions to the specified pipeline. You can use PutPipelineDefinition to populate a new pipeline.

PutPipelineDefinition also validates the configuration as it adds it to the pipeline. Changes to the pipeline are saved unless one of the following three validation errors exists in the pipeline.

  1. An object is missing a name or identifier field.
  2. A string or reference field is empty.
  3. The number of objects in the pipeline exceeds the maximum allowed objects.
  4. The pipeline is in a FINISHED state.

Pipeline object definitions are passed to the PutPipelineDefinition action and returned by the GetPipelineDefinition action.

", + "QueryObjects": "

Queries the specified pipeline for the names of objects that match the specified set of conditions.

", + "RemoveTags": "

Removes existing tags from the specified pipeline.

", + "ReportTaskProgress": "

Task runners call ReportTaskProgress when assigned a task to acknowledge that it has the task. If the web service does not receive this acknowledgement within 2 minutes, it assigns the task in a subsequent PollForTask call. After this initial acknowledgement, the task runner only needs to report progress every 15 minutes to maintain its ownership of the task. You can change this reporting time from 15 minutes by specifying a reportProgressTimeout field in your pipeline.

If a task runner does not report its status after 5 minutes, AWS Data Pipeline assumes that the task runner is unable to process the task and reassigns the task in a subsequent response to PollForTask. Task runners should call ReportTaskProgress every 60 seconds.

", + "ReportTaskRunnerHeartbeat": "

Task runners call ReportTaskRunnerHeartbeat every 15 minutes to indicate that they are operational. If the AWS Data Pipeline Task Runner is launched on a resource managed by AWS Data Pipeline, the web service can use this call to detect when the task runner application has failed and restart a new instance.

", + "SetStatus": "

Requests that the status of the specified physical or logical pipeline objects be updated in the specified pipeline. This update might not occur immediately, but is eventually consistent. The status that can be set depends on the type of object (for example, DataNode or Activity). You cannot perform this operation on FINISHED pipelines and attempting to do so returns InvalidRequestException.

", + "SetTaskStatus": "

Task runners call SetTaskStatus to notify AWS Data Pipeline that a task is completed and provide information about the final status. A task runner makes this call regardless of whether the task was sucessful. A task runner does not need to call SetTaskStatus for tasks that are canceled by the web service during a call to ReportTaskProgress.

", + "ValidatePipelineDefinition": "

Validates the specified pipeline definition to ensure that it is well formed and can be run without error.

" + }, + "service": "

AWS Data Pipeline configures and manages a data-driven workflow called a pipeline. AWS Data Pipeline handles the details of scheduling and ensuring that data dependencies are met so that your application can focus on processing the data.

AWS Data Pipeline provides a JAR implementation of a task runner called AWS Data Pipeline Task Runner. AWS Data Pipeline Task Runner provides logic for common data management scenarios, such as performing database queries and running data analysis using Amazon Elastic MapReduce (Amazon EMR). You can use AWS Data Pipeline Task Runner as your task runner, or you can write your own task runner to provide custom data management.

AWS Data Pipeline implements two main sets of functionality. Use the first set to create a pipeline and define data sources, schedules, dependencies, and the transforms to be performed on the data. Use the second set in your task runner application to receive the next task ready for processing. The logic for performing the task, such as querying the data, running data analysis, or converting the data from one format to another, is contained within the task runner. The task runner performs the task assigned to it by the web service, reporting progress to the web service as it does so. When the task is done, the task runner reports the final success or failure of the task to the web service.

", + "shapes": { + "ActivatePipelineInput": { + "base": "

Contains the parameters for ActivatePipeline.

", + "refs": { + } + }, + "ActivatePipelineOutput": { + "base": "

Contains the output of ActivatePipeline.

", + "refs": { + } + }, + "AddTagsInput": { + "base": "

Contains the parameters for AddTags.

", + "refs": { + } + }, + "AddTagsOutput": { + "base": "

Contains the output of AddTags.

", + "refs": { + } + }, + "CreatePipelineInput": { + "base": "

Contains the parameters for CreatePipeline.

", + "refs": { + } + }, + "CreatePipelineOutput": { + "base": "

Contains the output of CreatePipeline.

", + "refs": { + } + }, + "DeactivatePipelineInput": { + "base": "

Contains the parameters for DeactivatePipeline.

", + "refs": { + } + }, + "DeactivatePipelineOutput": { + "base": "

Contains the output of DeactivatePipeline.

", + "refs": { + } + }, + "DeletePipelineInput": { + "base": "

Contains the parameters for DeletePipeline.

", + "refs": { + } + }, + "DescribeObjectsInput": { + "base": "

Contains the parameters for DescribeObjects.

", + "refs": { + } + }, + "DescribeObjectsOutput": { + "base": "

Contains the output of DescribeObjects.

", + "refs": { + } + }, + "DescribePipelinesInput": { + "base": "

Contains the parameters for DescribePipelines.

", + "refs": { + } + }, + "DescribePipelinesOutput": { + "base": "

Contains the output of DescribePipelines.

", + "refs": { + } + }, + "EvaluateExpressionInput": { + "base": "

Contains the parameters for EvaluateExpression.

", + "refs": { + } + }, + "EvaluateExpressionOutput": { + "base": "

Contains the output of EvaluateExpression.

", + "refs": { + } + }, + "Field": { + "base": "

A key-value pair that describes a property of a pipeline object. The value is specified as either a string value (StringValue) or a reference to another object (RefValue) but not as both.

", + "refs": { + "fieldList$member": null + } + }, + "GetPipelineDefinitionInput": { + "base": "

Contains the parameters for GetPipelineDefinition.

", + "refs": { + } + }, + "GetPipelineDefinitionOutput": { + "base": "

Contains the output of GetPipelineDefinition.

", + "refs": { + } + }, + "InstanceIdentity": { + "base": "

Identity information for the EC2 instance that is hosting the task runner. You can get this value by calling a metadata URI from the EC2 instance. For more information, see Instance Metadata in the Amazon Elastic Compute Cloud User Guide. Passing in this value proves that your task runner is running on an EC2 instance, and ensures the proper AWS Data Pipeline service charges are applied to your pipeline.

", + "refs": { + "PollForTaskInput$instanceIdentity": "

Identity information for the EC2 instance that is hosting the task runner. You can get this value from the instance using http://169.254.169.254/latest/meta-data/instance-id. For more information, see Instance Metadata in the Amazon Elastic Compute Cloud User Guide. Passing in this value proves that your task runner is running on an EC2 instance, and ensures the proper AWS Data Pipeline service charges are applied to your pipeline.

" + } + }, + "InternalServiceError": { + "base": "

An internal service error occurred.

", + "refs": { + } + }, + "InvalidRequestException": { + "base": "

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.

", + "refs": { + } + }, + "ListPipelinesInput": { + "base": "

Contains the parameters for ListPipelines.

", + "refs": { + } + }, + "ListPipelinesOutput": { + "base": "

Contains the output of ListPipelines.

", + "refs": { + } + }, + "Operator": { + "base": "

Contains a logical operation for comparing the value of a field with a specified value.

", + "refs": { + "Selector$operator": null + } + }, + "OperatorType": { + "base": null, + "refs": { + "Operator$type": "

The logical operation to be performed: equal (EQ), equal reference (REF_EQ), less than or equal (LE), greater than or equal (GE), or between (BETWEEN). Equal reference (REF_EQ) can be used only with reference fields. The other comparison types can be used only with String fields. The comparison types you can use apply only to certain object fields, as detailed below.

The comparison operators EQ and REF_EQ act on the following fields:

  • name
  • @sphere
  • parent
  • @componentParent
  • @instanceParent
  • @status
  • @scheduledStartTime
  • @scheduledEndTime
  • @actualStartTime
  • @actualEndTime

The comparison operators GE, LE, and BETWEEN act on the following fields:

  • @scheduledStartTime
  • @scheduledEndTime
  • @actualStartTime
  • @actualEndTime

Note that fields beginning with the at sign (@) are read-only and set by the web service. When you name fields, you should choose names containing only alpha-numeric values, as symbols may be reserved by AWS Data Pipeline. User-defined fields that you add to a pipeline should prefix their name with the string \"my\".

" + } + }, + "ParameterAttribute": { + "base": "

The attributes allowed or specified with a parameter object.

", + "refs": { + "ParameterAttributeList$member": null + } + }, + "ParameterAttributeList": { + "base": null, + "refs": { + "ParameterObject$attributes": "

The attributes of the parameter object.

" + } + }, + "ParameterObject": { + "base": "

Contains information about a parameter object.

", + "refs": { + "ParameterObjectList$member": null + } + }, + "ParameterObjectList": { + "base": null, + "refs": { + "GetPipelineDefinitionOutput$parameterObjects": "

The parameter objects used in the pipeline definition.

", + "PutPipelineDefinitionInput$parameterObjects": "

The parameter objects used with the pipeline.

", + "ValidatePipelineDefinitionInput$parameterObjects": "

The parameter objects used with the pipeline.

" + } + }, + "ParameterValue": { + "base": "

A value or list of parameter values.

", + "refs": { + "ParameterValueList$member": null + } + }, + "ParameterValueList": { + "base": null, + "refs": { + "ActivatePipelineInput$parameterValues": "

A list of parameter values to pass to the pipeline at activation.

", + "GetPipelineDefinitionOutput$parameterValues": "

The parameter values used in the pipeline definition.

", + "PutPipelineDefinitionInput$parameterValues": "

The parameter values used with the pipeline.

", + "ValidatePipelineDefinitionInput$parameterValues": "

The parameter values used with the pipeline.

" + } + }, + "PipelineDeletedException": { + "base": "

The specified pipeline has been deleted.

", + "refs": { + } + }, + "PipelineDescription": { + "base": "

Contains pipeline metadata.

", + "refs": { + "PipelineDescriptionList$member": null + } + }, + "PipelineDescriptionList": { + "base": null, + "refs": { + "DescribePipelinesOutput$pipelineDescriptionList": "

An array of descriptions for the specified pipelines.

" + } + }, + "PipelineIdName": { + "base": "

Contains the name and identifier of a pipeline.

", + "refs": { + "pipelineList$member": null + } + }, + "PipelineNotFoundException": { + "base": "

The specified pipeline was not found. Verify that you used the correct user and account identifiers.

", + "refs": { + } + }, + "PipelineObject": { + "base": "

Contains information about a pipeline object. This can be a logical, physical, or physical attempt pipeline object. The complete set of components of a pipeline defines the pipeline.

", + "refs": { + "PipelineObjectList$member": null, + "PipelineObjectMap$value": null + } + }, + "PipelineObjectList": { + "base": null, + "refs": { + "DescribeObjectsOutput$pipelineObjects": "

An array of object definitions.

", + "GetPipelineDefinitionOutput$pipelineObjects": "

The objects defined in the pipeline.

", + "PutPipelineDefinitionInput$pipelineObjects": "

The objects that define the pipeline. These objects overwrite the existing pipeline definition.

", + "ValidatePipelineDefinitionInput$pipelineObjects": "

The objects that define the pipeline changes to validate against the pipeline.

" + } + }, + "PipelineObjectMap": { + "base": null, + "refs": { + "TaskObject$objects": "

Connection information for the location where the task runner will publish the output of the task.

" + } + }, + "PollForTaskInput": { + "base": "

Contains the parameters for PollForTask.

", + "refs": { + } + }, + "PollForTaskOutput": { + "base": "

Contains the output of PollForTask.

", + "refs": { + } + }, + "PutPipelineDefinitionInput": { + "base": "

Contains the parameters for PutPipelineDefinition.

", + "refs": { + } + }, + "PutPipelineDefinitionOutput": { + "base": "

Contains the output of PutPipelineDefinition.

", + "refs": { + } + }, + "Query": { + "base": "

Defines the query to run against an object.

", + "refs": { + "QueryObjectsInput$query": "

The query that defines the objects to be returned. The Query object can contain a maximum of ten selectors. The conditions in the query are limited to top-level String fields in the object. These filters can be applied to components, instances, and attempts.

" + } + }, + "QueryObjectsInput": { + "base": "

Contains the parameters for QueryObjects.

", + "refs": { + } + }, + "QueryObjectsOutput": { + "base": "

Contains the output of QueryObjects.

", + "refs": { + } + }, + "RemoveTagsInput": { + "base": "

Contains the parameters for RemoveTags.

", + "refs": { + } + }, + "RemoveTagsOutput": { + "base": "

Contains the output of RemoveTags.

", + "refs": { + } + }, + "ReportTaskProgressInput": { + "base": "

Contains the parameters for ReportTaskProgress.

", + "refs": { + } + }, + "ReportTaskProgressOutput": { + "base": "

Contains the output of ReportTaskProgress.

", + "refs": { + } + }, + "ReportTaskRunnerHeartbeatInput": { + "base": "

Contains the parameters for ReportTaskRunnerHeartbeat.

", + "refs": { + } + }, + "ReportTaskRunnerHeartbeatOutput": { + "base": "

Contains the output of ReportTaskRunnerHeartbeat.

", + "refs": { + } + }, + "Selector": { + "base": "

A comparision that is used to determine whether a query should return this object.

", + "refs": { + "SelectorList$member": null + } + }, + "SelectorList": { + "base": "

The list of Selectors that define queries on individual fields.

", + "refs": { + "Query$selectors": "

List of selectors that define the query. An object must satisfy all of the selectors to match the query.

" + } + }, + "SetStatusInput": { + "base": "

Contains the parameters for SetStatus.

", + "refs": { + } + }, + "SetTaskStatusInput": { + "base": "

Contains the parameters for SetTaskStatus.

", + "refs": { + } + }, + "SetTaskStatusOutput": { + "base": "

Contains the output of SetTaskStatus.

", + "refs": { + } + }, + "Tag": { + "base": "

Tags are key/value pairs defined by a user and associated with a pipeline to control access. AWS Data Pipeline allows you to associate ten tags per pipeline. For more information, see Controlling User Access to Pipelines in the AWS Data Pipeline Developer Guide.

", + "refs": { + "tagList$member": null + } + }, + "TaskNotFoundException": { + "base": "

The specified task was not found.

", + "refs": { + } + }, + "TaskObject": { + "base": "

Contains information about a pipeline task that is assigned to a task runner.

", + "refs": { + "PollForTaskOutput$taskObject": "

The information needed to complete the task that is being assigned to the task runner. One of the fields returned in this object is taskId, which contains an identifier for the task being assigned. The calling task runner uses taskId in subsequent calls to ReportTaskProgress and SetTaskStatus.

" + } + }, + "TaskStatus": { + "base": null, + "refs": { + "SetTaskStatusInput$taskStatus": "

If FINISHED, the task successfully completed. If FAILED, the task ended unsuccessfully. Preconditions use false.

" + } + }, + "ValidatePipelineDefinitionInput": { + "base": "

Contains the parameters for ValidatePipelineDefinition.

", + "refs": { + } + }, + "ValidatePipelineDefinitionOutput": { + "base": "

Contains the output of ValidatePipelineDefinition.

", + "refs": { + } + }, + "ValidationError": { + "base": "

Defines a validation error. Validation errors prevent pipeline activation. The set of validation errors that can be returned are defined by AWS Data Pipeline.

", + "refs": { + "ValidationErrors$member": null + } + }, + "ValidationErrors": { + "base": null, + "refs": { + "PutPipelineDefinitionOutput$validationErrors": "

The validation errors that are associated with the objects defined in pipelineObjects.

", + "ValidatePipelineDefinitionOutput$validationErrors": "

Any validation errors that were found.

" + } + }, + "ValidationWarning": { + "base": "

Defines a validation warning. Validation warnings do not prevent pipeline activation. The set of validation warnings that can be returned are defined by AWS Data Pipeline.

", + "refs": { + "ValidationWarnings$member": null + } + }, + "ValidationWarnings": { + "base": null, + "refs": { + "PutPipelineDefinitionOutput$validationWarnings": "

The validation warnings that are associated with the objects defined in pipelineObjects.

", + "ValidatePipelineDefinitionOutput$validationWarnings": "

Any validation warnings that were found.

" + } + }, + "attributeNameString": { + "base": null, + "refs": { + "ParameterAttribute$key": "

The field identifier.

" + } + }, + "attributeValueString": { + "base": null, + "refs": { + "ParameterAttribute$stringValue": "

The field value, expressed as a String.

" + } + }, + "boolean": { + "base": null, + "refs": { + "DescribeObjectsInput$evaluateExpressions": "

Indicates whether any expressions in the object should be evaluated when the object descriptions are returned.

", + "DescribeObjectsOutput$hasMoreResults": "

Indicates whether there are more results to return.

", + "ListPipelinesOutput$hasMoreResults": "

Indicates whether there are more results that can be obtained by a subsequent call.

", + "PutPipelineDefinitionOutput$errored": "

Indicates whether there were validation errors, and the pipeline definition is stored but cannot be activated until you correct the pipeline and call PutPipelineDefinition to commit the corrected pipeline.

", + "QueryObjectsOutput$hasMoreResults": "

Indicates whether there are more results that can be obtained by a subsequent call.

", + "ReportTaskProgressOutput$canceled": "

If true, the calling task runner should cancel processing of the task. The task runner does not need to call SetTaskStatus for canceled tasks.

", + "ReportTaskRunnerHeartbeatOutput$terminate": "

Indicates whether the calling task runner should terminate.

", + "ValidatePipelineDefinitionOutput$errored": "

Indicates whether there were validation errors.

" + } + }, + "cancelActive": { + "base": null, + "refs": { + "DeactivatePipelineInput$cancelActive": "

Indicates whether to cancel any running objects. The default is true, which sets the state of any running objects to CANCELED. If this value is false, the pipeline is deactivated after all running objects finish.

" + } + }, + "errorMessage": { + "base": null, + "refs": { + "InternalServiceError$message": "

Description of the error message.

", + "InvalidRequestException$message": "

Description of the error message.

", + "PipelineDeletedException$message": "

Description of the error message.

", + "PipelineNotFoundException$message": "

Description of the error message.

", + "SetTaskStatusInput$errorMessage": "

If an error occurred during the task, this value specifies a text description of the error. This value is set on the physical attempt object. It is used to display error information to the user. The web service does not parse this value.

", + "TaskNotFoundException$message": "

Description of the error message.

" + } + }, + "fieldList": { + "base": null, + "refs": { + "PipelineDescription$fields": "

A list of read-only fields that contain metadata about the pipeline: @userId, @accountId, and @pipelineState.

", + "PipelineObject$fields": "

Key-value pairs that define the properties of the object.

", + "ReportTaskProgressInput$fields": "

Key-value pairs that define the properties of the ReportTaskProgressInput object.

" + } + }, + "fieldNameString": { + "base": null, + "refs": { + "Field$key": "

The field identifier.

", + "Field$refValue": "

The field value, expressed as the identifier of another object.

", + "ParameterObject$id": "

The ID of the parameter object.

", + "ParameterValue$id": "

The ID of the parameter value.

" + } + }, + "fieldStringValue": { + "base": null, + "refs": { + "Field$stringValue": "

The field value, expressed as a String.

", + "ParameterValue$stringValue": "

The field value, expressed as a String.

" + } + }, + "id": { + "base": null, + "refs": { + "ActivatePipelineInput$pipelineId": "

The ID of the pipeline.

", + "AddTagsInput$pipelineId": "

The ID of the pipeline.

", + "CreatePipelineInput$name": "

The name for the pipeline. You can use the same name for multiple pipelines associated with your AWS account, because AWS Data Pipeline assigns each pipeline a unique pipeline identifier.

", + "CreatePipelineInput$uniqueId": "

A unique identifier. This identifier is not the same as the pipeline identifier assigned by AWS Data Pipeline. You are responsible for defining the format and ensuring the uniqueness of this identifier. You use this parameter to ensure idempotency during repeated calls to CreatePipeline. For example, if the first call to CreatePipeline does not succeed, you can pass in the same unique identifier and pipeline name combination on a subsequent call to CreatePipeline. CreatePipeline ensures that if a pipeline already exists with the same name and unique identifier, a new pipeline is not created. Instead, you'll receive the pipeline identifier from the previous attempt. The uniqueness of the name and unique identifier combination is scoped to the AWS account or IAM user credentials.

", + "CreatePipelineOutput$pipelineId": "

The ID that AWS Data Pipeline assigns the newly created pipeline. For example, df-06372391ZG65EXAMPLE.

", + "DeactivatePipelineInput$pipelineId": "

The ID of the pipeline.

", + "DeletePipelineInput$pipelineId": "

The ID of the pipeline.

", + "DescribeObjectsInput$pipelineId": "

The ID of the pipeline that contains the object definitions.

", + "EvaluateExpressionInput$pipelineId": "

The ID of the pipeline.

", + "EvaluateExpressionInput$objectId": "

The ID of the object.

", + "GetPipelineDefinitionInput$pipelineId": "

The ID of the pipeline.

", + "PipelineDescription$pipelineId": "

The pipeline identifier that was assigned by AWS Data Pipeline. This is a string of the form df-297EG78HU43EEXAMPLE.

", + "PipelineDescription$name": "

The name of the pipeline.

", + "PipelineIdName$id": "

The ID of the pipeline that was assigned by AWS Data Pipeline. This is a string of the form df-297EG78HU43EEXAMPLE.

", + "PipelineIdName$name": "

The name of the pipeline.

", + "PipelineObject$id": "

The ID of the object.

", + "PipelineObject$name": "

The name of the object.

", + "PipelineObjectMap$key": null, + "PollForTaskInput$hostname": "

The public DNS name of the calling task runner.

", + "PutPipelineDefinitionInput$pipelineId": "

The ID of the pipeline.

", + "QueryObjectsInput$pipelineId": "

The ID of the pipeline.

", + "RemoveTagsInput$pipelineId": "

The ID of the pipeline.

", + "ReportTaskRunnerHeartbeatInput$taskrunnerId": "

The ID of the task runner. This value should be unique across your AWS account. In the case of AWS Data Pipeline Task Runner launched on a resource managed by AWS Data Pipeline, the web service provides a unique identifier when it launches the application. If you have written a custom task runner, you should assign a unique identifier for the task runner.

", + "ReportTaskRunnerHeartbeatInput$hostname": "

The public DNS name of the task runner.

", + "SetStatusInput$pipelineId": "

The ID of the pipeline that contains the objects.

", + "TaskObject$pipelineId": "

The ID of the pipeline that provided the task.

", + "TaskObject$attemptId": "

The ID of the pipeline task attempt object. AWS Data Pipeline uses this value to track how many times a task is attempted.

", + "ValidatePipelineDefinitionInput$pipelineId": "

The ID of the pipeline.

", + "ValidationError$id": "

The identifier of the object that contains the validation error.

", + "ValidationWarning$id": "

The identifier of the object that contains the validation warning.

", + "idList$member": null + } + }, + "idList": { + "base": null, + "refs": { + "DescribeObjectsInput$objectIds": "

The IDs of the pipeline objects that contain the definitions to be described. You can pass as many as 25 identifiers in a single call to DescribeObjects.

", + "DescribePipelinesInput$pipelineIds": "

The IDs of the pipelines to describe. You can pass as many as 25 identifiers in a single call. To obtain pipeline IDs, call ListPipelines.

", + "QueryObjectsOutput$ids": "

The identifiers that match the query selectors.

", + "SetStatusInput$objectIds": "

The IDs of the objects. The corresponding objects can be either physical or components, but not a mix of both types.

" + } + }, + "int": { + "base": null, + "refs": { + "QueryObjectsInput$limit": "

The maximum number of object names that QueryObjects will return in a single call. The default value is 100.

" + } + }, + "longString": { + "base": null, + "refs": { + "EvaluateExpressionInput$expression": "

The expression to evaluate.

", + "EvaluateExpressionOutput$evaluatedExpression": "

The evaluated expression.

" + } + }, + "pipelineList": { + "base": null, + "refs": { + "ListPipelinesOutput$pipelineIdList": "

The pipeline identifiers. If you require additional information about the pipelines, you can use these identifiers to call DescribePipelines and GetPipelineDefinition.

" + } + }, + "string": { + "base": null, + "refs": { + "CreatePipelineInput$description": "

The description for the pipeline.

", + "DescribeObjectsInput$marker": "

The starting point for the results to be returned. For the first call, this value should be empty. As long as there are more results, continue to call DescribeObjects with the marker value from the previous call to retrieve the next set of results.

", + "DescribeObjectsOutput$marker": "

The starting point for the next page of results. To view the next page of results, call DescribeObjects again with this marker value. If the value is null, there are no more results.

", + "GetPipelineDefinitionInput$version": "

The version of the pipeline definition to retrieve. Set this parameter to latest (default) to use the last definition saved to the pipeline or active to use the last definition that was activated.

", + "InstanceIdentity$document": "

A description of an EC2 instance that is generated when the instance is launched and exposed to the instance via the instance metadata service in the form of a JSON representation of an object.

", + "InstanceIdentity$signature": "

A signature which can be used to verify the accuracy and authenticity of the information provided in the instance identity document.

", + "ListPipelinesInput$marker": "

The starting point for the results to be returned. For the first call, this value should be empty. As long as there are more results, continue to call ListPipelines with the marker value from the previous call to retrieve the next set of results.

", + "ListPipelinesOutput$marker": "

The starting point for the next page of results. To view the next page of results, call ListPipelinesOutput again with this marker value. If the value is null, there are no more results.

", + "PipelineDescription$description": "

Description of the pipeline.

", + "PollForTaskInput$workerGroup": "

The type of task the task runner is configured to accept and process. The worker group is set as a field on objects in the pipeline when they are created. You can only specify a single value for workerGroup in the call to PollForTask. There are no wildcard values permitted in workerGroup; the string must be an exact, case-sensitive, match.

", + "QueryObjectsInput$sphere": "

Indicates whether the query applies to components or instances. The possible values are: COMPONENT, INSTANCE, and ATTEMPT.

", + "QueryObjectsInput$marker": "

The starting point for the results to be returned. For the first call, this value should be empty. As long as there are more results, continue to call QueryObjects with the marker value from the previous call to retrieve the next set of results.

", + "QueryObjectsOutput$marker": "

The starting point for the next page of results. To view the next page of results, call QueryObjects again with this marker value. If the value is null, there are no more results.

", + "ReportTaskRunnerHeartbeatInput$workerGroup": "

The type of task the task runner is configured to accept and process. The worker group is set as a field on objects in the pipeline when they are created. You can only specify a single value for workerGroup. There are no wildcard values permitted in workerGroup; the string must be an exact, case-sensitive, match.

", + "Selector$fieldName": "

The name of the field that the operator will be applied to. The field name is the \"key\" portion of the field definition in the pipeline definition syntax that is used by the AWS Data Pipeline API. If the field is not set on the object, the condition fails.

", + "SetStatusInput$status": "

The status to be set on all the objects specified in objectIds. For components, use PAUSE or RESUME. For instances, use TRY_CANCEL, RERUN, or MARK_FINISHED.

", + "SetTaskStatusInput$errorId": "

If an error occurred during the task, this value specifies the error code. This value is set on the physical attempt object. It is used to display error information to the user. It should not start with string \"Service_\" which is reserved by the system.

", + "SetTaskStatusInput$errorStackTrace": "

If an error occurred during the task, this value specifies the stack trace associated with the error. This value is set on the physical attempt object. It is used to display error information to the user. The web service does not parse this value.

", + "stringList$member": null + } + }, + "stringList": { + "base": null, + "refs": { + "Operator$values": "

The value that the actual field value will be compared with.

", + "RemoveTagsInput$tagKeys": "

The keys of the tags to remove.

" + } + }, + "tagKey": { + "base": null, + "refs": { + "Tag$key": "

The key name of a tag defined by a user. For more information, see Controlling User Access to Pipelines in the AWS Data Pipeline Developer Guide.

" + } + }, + "tagList": { + "base": null, + "refs": { + "AddTagsInput$tags": "

The tags to add, as key/value pairs.

", + "CreatePipelineInput$tags": "

A list of tags to associate with the pipeline at creation. Tags let you control access to pipelines. For more information, see Controlling User Access to Pipelines in the AWS Data Pipeline Developer Guide.

", + "PipelineDescription$tags": "

A list of tags to associated with a pipeline. Tags let you control access to pipelines. For more information, see Controlling User Access to Pipelines in the AWS Data Pipeline Developer Guide.

" + } + }, + "tagValue": { + "base": null, + "refs": { + "Tag$value": "

The optional value portion of a tag defined by a user. For more information, see Controlling User Access to Pipelines in the AWS Data Pipeline Developer Guide.

" + } + }, + "taskId": { + "base": null, + "refs": { + "ReportTaskProgressInput$taskId": "

The ID of the task assigned to the task runner. This value is provided in the response for PollForTask.

", + "SetTaskStatusInput$taskId": "

The ID of the task assigned to the task runner. This value is provided in the response for PollForTask.

", + "TaskObject$taskId": "

An internal identifier for the task. This ID is passed to the SetTaskStatus and ReportTaskProgress actions.

" + } + }, + "timestamp": { + "base": null, + "refs": { + "ActivatePipelineInput$startTimestamp": "

The date and time to resume the pipeline. By default, the pipeline resumes from the last completed execution.

" + } + }, + "validationMessage": { + "base": null, + "refs": { + "validationMessages$member": null + } + }, + "validationMessages": { + "base": null, + "refs": { + "ValidationError$errors": "

A description of the validation error.

", + "ValidationWarning$warnings": "

A description of the validation warning.

" + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/datapipeline/2012-10-29/paginators-1.json b/lib/aws-sdk/Aws/data/datapipeline/2012-10-29/paginators-1.json new file mode 100644 index 0000000..db94193 --- /dev/null +++ b/lib/aws-sdk/Aws/data/datapipeline/2012-10-29/paginators-1.json @@ -0,0 +1,26 @@ +{ + "pagination": { + "ListPipelines": { + "input_token": "marker", + "output_token": "marker", + "more_results": "hasMoreResults", + "result_key": "pipelineIdList" + }, + "DescribeObjects": { + "input_token": "marker", + "output_token": "marker", + "more_results": "hasMoreResults", + "result_key": "pipelineObjects" + }, + "DescribePipelines": { + "result_key": "pipelineDescriptionList" + }, + "QueryObjects": { + "input_token": "marker", + "output_token": "marker", + "more_results": "hasMoreResults", + "limit_key": "limit", + "result_key": "ids" + } + } +} diff --git a/lib/aws-sdk/Aws/data/directconnect/2012-10-25/api-2.json b/lib/aws-sdk/Aws/data/directconnect/2012-10-25/api-2.json new file mode 100644 index 0000000..2710f7d --- /dev/null +++ b/lib/aws-sdk/Aws/data/directconnect/2012-10-25/api-2.json @@ -0,0 +1,833 @@ +{ + "metadata":{ + "apiVersion":"2012-10-25", + "endpointPrefix":"directconnect", + "jsonVersion":"1.1", + "serviceFullName":"AWS Direct Connect", + "signatureVersion":"v4", + "targetPrefix":"OvertureService", + "protocol":"json" + }, + "operations":{ + "AllocateConnectionOnInterconnect":{ + "name":"AllocateConnectionOnInterconnect", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AllocateConnectionOnInterconnectRequest"}, + "output":{"shape":"Connection"}, + "errors":[ + { + "shape":"DirectConnectServerException", + "exception":true + }, + { + "shape":"DirectConnectClientException", + "exception":true + } + ] + }, + "AllocatePrivateVirtualInterface":{ + "name":"AllocatePrivateVirtualInterface", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AllocatePrivateVirtualInterfaceRequest"}, + "output":{"shape":"VirtualInterface"}, + "errors":[ + { + "shape":"DirectConnectServerException", + "exception":true + }, + { + "shape":"DirectConnectClientException", + "exception":true + } + ] + }, + "AllocatePublicVirtualInterface":{ + "name":"AllocatePublicVirtualInterface", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AllocatePublicVirtualInterfaceRequest"}, + "output":{"shape":"VirtualInterface"}, + "errors":[ + { + "shape":"DirectConnectServerException", + "exception":true + }, + { + "shape":"DirectConnectClientException", + "exception":true + } + ] + }, + "ConfirmConnection":{ + "name":"ConfirmConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ConfirmConnectionRequest"}, + "output":{"shape":"ConfirmConnectionResponse"}, + "errors":[ + { + "shape":"DirectConnectServerException", + "exception":true + }, + { + "shape":"DirectConnectClientException", + "exception":true + } + ] + }, + "ConfirmPrivateVirtualInterface":{ + "name":"ConfirmPrivateVirtualInterface", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ConfirmPrivateVirtualInterfaceRequest"}, + "output":{"shape":"ConfirmPrivateVirtualInterfaceResponse"}, + "errors":[ + { + "shape":"DirectConnectServerException", + "exception":true + }, + { + "shape":"DirectConnectClientException", + "exception":true + } + ] + }, + "ConfirmPublicVirtualInterface":{ + "name":"ConfirmPublicVirtualInterface", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ConfirmPublicVirtualInterfaceRequest"}, + "output":{"shape":"ConfirmPublicVirtualInterfaceResponse"}, + "errors":[ + { + "shape":"DirectConnectServerException", + "exception":true + }, + { + "shape":"DirectConnectClientException", + "exception":true + } + ] + }, + "CreateConnection":{ + "name":"CreateConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateConnectionRequest"}, + "output":{"shape":"Connection"}, + "errors":[ + { + "shape":"DirectConnectServerException", + "exception":true + }, + { + "shape":"DirectConnectClientException", + "exception":true + } + ] + }, + "CreateInterconnect":{ + "name":"CreateInterconnect", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateInterconnectRequest"}, + "output":{"shape":"Interconnect"}, + "errors":[ + { + "shape":"DirectConnectServerException", + "exception":true + }, + { + "shape":"DirectConnectClientException", + "exception":true + } + ] + }, + "CreatePrivateVirtualInterface":{ + "name":"CreatePrivateVirtualInterface", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreatePrivateVirtualInterfaceRequest"}, + "output":{"shape":"VirtualInterface"}, + "errors":[ + { + "shape":"DirectConnectServerException", + "exception":true + }, + { + "shape":"DirectConnectClientException", + "exception":true + } + ] + }, + "CreatePublicVirtualInterface":{ + "name":"CreatePublicVirtualInterface", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreatePublicVirtualInterfaceRequest"}, + "output":{"shape":"VirtualInterface"}, + "errors":[ + { + "shape":"DirectConnectServerException", + "exception":true + }, + { + "shape":"DirectConnectClientException", + "exception":true + } + ] + }, + "DeleteConnection":{ + "name":"DeleteConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteConnectionRequest"}, + "output":{"shape":"Connection"}, + "errors":[ + { + "shape":"DirectConnectServerException", + "exception":true + }, + { + "shape":"DirectConnectClientException", + "exception":true + } + ] + }, + "DeleteInterconnect":{ + "name":"DeleteInterconnect", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteInterconnectRequest"}, + "output":{"shape":"DeleteInterconnectResponse"}, + "errors":[ + { + "shape":"DirectConnectServerException", + "exception":true + }, + { + "shape":"DirectConnectClientException", + "exception":true + } + ] + }, + "DeleteVirtualInterface":{ + "name":"DeleteVirtualInterface", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVirtualInterfaceRequest"}, + "output":{"shape":"DeleteVirtualInterfaceResponse"}, + "errors":[ + { + "shape":"DirectConnectServerException", + "exception":true + }, + { + "shape":"DirectConnectClientException", + "exception":true + } + ] + }, + "DescribeConnections":{ + "name":"DescribeConnections", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeConnectionsRequest"}, + "output":{"shape":"Connections"}, + "errors":[ + { + "shape":"DirectConnectServerException", + "exception":true + }, + { + "shape":"DirectConnectClientException", + "exception":true + } + ] + }, + "DescribeConnectionsOnInterconnect":{ + "name":"DescribeConnectionsOnInterconnect", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeConnectionsOnInterconnectRequest"}, + "output":{"shape":"Connections"}, + "errors":[ + { + "shape":"DirectConnectServerException", + "exception":true + }, + { + "shape":"DirectConnectClientException", + "exception":true + } + ] + }, + "DescribeInterconnects":{ + "name":"DescribeInterconnects", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeInterconnectsRequest"}, + "output":{"shape":"Interconnects"}, + "errors":[ + { + "shape":"DirectConnectServerException", + "exception":true + }, + { + "shape":"DirectConnectClientException", + "exception":true + } + ] + }, + "DescribeLocations":{ + "name":"DescribeLocations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "output":{"shape":"Locations"}, + "errors":[ + { + "shape":"DirectConnectServerException", + "exception":true + }, + { + "shape":"DirectConnectClientException", + "exception":true + } + ] + }, + "DescribeVirtualGateways":{ + "name":"DescribeVirtualGateways", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "output":{"shape":"VirtualGateways"}, + "errors":[ + { + "shape":"DirectConnectServerException", + "exception":true + }, + { + "shape":"DirectConnectClientException", + "exception":true + } + ] + }, + "DescribeVirtualInterfaces":{ + "name":"DescribeVirtualInterfaces", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVirtualInterfacesRequest"}, + "output":{"shape":"VirtualInterfaces"}, + "errors":[ + { + "shape":"DirectConnectServerException", + "exception":true + }, + { + "shape":"DirectConnectClientException", + "exception":true + } + ] + } + }, + "shapes":{ + "ASN":{"type":"integer"}, + "AllocateConnectionOnInterconnectRequest":{ + "type":"structure", + "required":[ + "bandwidth", + "connectionName", + "ownerAccount", + "interconnectId", + "vlan" + ], + "members":{ + "bandwidth":{"shape":"Bandwidth"}, + "connectionName":{"shape":"ConnectionName"}, + "ownerAccount":{"shape":"OwnerAccount"}, + "interconnectId":{"shape":"InterconnectId"}, + "vlan":{"shape":"VLAN"} + } + }, + "AllocatePrivateVirtualInterfaceRequest":{ + "type":"structure", + "required":[ + "connectionId", + "ownerAccount", + "newPrivateVirtualInterfaceAllocation" + ], + "members":{ + "connectionId":{"shape":"ConnectionId"}, + "ownerAccount":{"shape":"OwnerAccount"}, + "newPrivateVirtualInterfaceAllocation":{"shape":"NewPrivateVirtualInterfaceAllocation"} + } + }, + "AllocatePublicVirtualInterfaceRequest":{ + "type":"structure", + "required":[ + "connectionId", + "ownerAccount", + "newPublicVirtualInterfaceAllocation" + ], + "members":{ + "connectionId":{"shape":"ConnectionId"}, + "ownerAccount":{"shape":"OwnerAccount"}, + "newPublicVirtualInterfaceAllocation":{"shape":"NewPublicVirtualInterfaceAllocation"} + } + }, + "AmazonAddress":{"type":"string"}, + "BGPAuthKey":{"type":"string"}, + "Bandwidth":{"type":"string"}, + "CIDR":{"type":"string"}, + "ConfirmConnectionRequest":{ + "type":"structure", + "required":["connectionId"], + "members":{ + "connectionId":{"shape":"ConnectionId"} + } + }, + "ConfirmConnectionResponse":{ + "type":"structure", + "members":{ + "connectionState":{"shape":"ConnectionState"} + } + }, + "ConfirmPrivateVirtualInterfaceRequest":{ + "type":"structure", + "required":[ + "virtualInterfaceId", + "virtualGatewayId" + ], + "members":{ + "virtualInterfaceId":{"shape":"VirtualInterfaceId"}, + "virtualGatewayId":{"shape":"VirtualGatewayId"} + } + }, + "ConfirmPrivateVirtualInterfaceResponse":{ + "type":"structure", + "members":{ + "virtualInterfaceState":{"shape":"VirtualInterfaceState"} + } + }, + "ConfirmPublicVirtualInterfaceRequest":{ + "type":"structure", + "required":["virtualInterfaceId"], + "members":{ + "virtualInterfaceId":{"shape":"VirtualInterfaceId"} + } + }, + "ConfirmPublicVirtualInterfaceResponse":{ + "type":"structure", + "members":{ + "virtualInterfaceState":{"shape":"VirtualInterfaceState"} + } + }, + "Connection":{ + "type":"structure", + "members":{ + "ownerAccount":{"shape":"OwnerAccount"}, + "connectionId":{"shape":"ConnectionId"}, + "connectionName":{"shape":"ConnectionName"}, + "connectionState":{"shape":"ConnectionState"}, + "region":{"shape":"Region"}, + "location":{"shape":"LocationCode"}, + "bandwidth":{"shape":"Bandwidth"}, + "vlan":{"shape":"VLAN"}, + "partnerName":{"shape":"PartnerName"} + } + }, + "ConnectionId":{"type":"string"}, + "ConnectionList":{ + "type":"list", + "member":{"shape":"Connection"} + }, + "ConnectionName":{"type":"string"}, + "ConnectionState":{ + "type":"string", + "enum":[ + "ordering", + "requested", + "pending", + "available", + "down", + "deleting", + "deleted", + "rejected" + ] + }, + "Connections":{ + "type":"structure", + "members":{ + "connections":{"shape":"ConnectionList"} + } + }, + "CreateConnectionRequest":{ + "type":"structure", + "required":[ + "location", + "bandwidth", + "connectionName" + ], + "members":{ + "location":{"shape":"LocationCode"}, + "bandwidth":{"shape":"Bandwidth"}, + "connectionName":{"shape":"ConnectionName"} + } + }, + "CreateInterconnectRequest":{ + "type":"structure", + "required":[ + "interconnectName", + "bandwidth", + "location" + ], + "members":{ + "interconnectName":{"shape":"InterconnectName"}, + "bandwidth":{"shape":"Bandwidth"}, + "location":{"shape":"LocationCode"} + } + }, + "CreatePrivateVirtualInterfaceRequest":{ + "type":"structure", + "required":[ + "connectionId", + "newPrivateVirtualInterface" + ], + "members":{ + "connectionId":{"shape":"ConnectionId"}, + "newPrivateVirtualInterface":{"shape":"NewPrivateVirtualInterface"} + } + }, + "CreatePublicVirtualInterfaceRequest":{ + "type":"structure", + "required":[ + "connectionId", + "newPublicVirtualInterface" + ], + "members":{ + "connectionId":{"shape":"ConnectionId"}, + "newPublicVirtualInterface":{"shape":"NewPublicVirtualInterface"} + } + }, + "CustomerAddress":{"type":"string"}, + "DeleteConnectionRequest":{ + "type":"structure", + "required":["connectionId"], + "members":{ + "connectionId":{"shape":"ConnectionId"} + } + }, + "DeleteInterconnectRequest":{ + "type":"structure", + "required":["interconnectId"], + "members":{ + "interconnectId":{"shape":"InterconnectId"} + } + }, + "DeleteInterconnectResponse":{ + "type":"structure", + "members":{ + "interconnectState":{"shape":"InterconnectState"} + } + }, + "DeleteVirtualInterfaceRequest":{ + "type":"structure", + "required":["virtualInterfaceId"], + "members":{ + "virtualInterfaceId":{"shape":"VirtualInterfaceId"} + } + }, + "DeleteVirtualInterfaceResponse":{ + "type":"structure", + "members":{ + "virtualInterfaceState":{"shape":"VirtualInterfaceState"} + } + }, + "DescribeConnectionsOnInterconnectRequest":{ + "type":"structure", + "required":["interconnectId"], + "members":{ + "interconnectId":{"shape":"InterconnectId"} + } + }, + "DescribeConnectionsRequest":{ + "type":"structure", + "members":{ + "connectionId":{"shape":"ConnectionId"} + } + }, + "DescribeInterconnectsRequest":{ + "type":"structure", + "members":{ + "interconnectId":{"shape":"InterconnectId"} + } + }, + "DescribeVirtualInterfacesRequest":{ + "type":"structure", + "members":{ + "connectionId":{"shape":"ConnectionId"}, + "virtualInterfaceId":{"shape":"VirtualInterfaceId"} + } + }, + "DirectConnectClientException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "DirectConnectServerException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ErrorMessage":{"type":"string"}, + "Interconnect":{ + "type":"structure", + "members":{ + "interconnectId":{"shape":"InterconnectId"}, + "interconnectName":{"shape":"InterconnectName"}, + "interconnectState":{"shape":"InterconnectState"}, + "region":{"shape":"Region"}, + "location":{"shape":"LocationCode"}, + "bandwidth":{"shape":"Bandwidth"} + } + }, + "InterconnectId":{"type":"string"}, + "InterconnectList":{ + "type":"list", + "member":{"shape":"Interconnect"} + }, + "InterconnectName":{"type":"string"}, + "InterconnectState":{ + "type":"string", + "enum":[ + "requested", + "pending", + "available", + "down", + "deleting", + "deleted" + ] + }, + "Interconnects":{ + "type":"structure", + "members":{ + "interconnects":{"shape":"InterconnectList"} + } + }, + "Location":{ + "type":"structure", + "members":{ + "locationCode":{"shape":"LocationCode"}, + "locationName":{"shape":"LocationName"} + } + }, + "LocationCode":{"type":"string"}, + "LocationList":{ + "type":"list", + "member":{"shape":"Location"} + }, + "LocationName":{"type":"string"}, + "Locations":{ + "type":"structure", + "members":{ + "locations":{"shape":"LocationList"} + } + }, + "NewPrivateVirtualInterface":{ + "type":"structure", + "required":[ + "virtualInterfaceName", + "vlan", + "asn", + "virtualGatewayId" + ], + "members":{ + "virtualInterfaceName":{"shape":"VirtualInterfaceName"}, + "vlan":{"shape":"VLAN"}, + "asn":{"shape":"ASN"}, + "authKey":{"shape":"BGPAuthKey"}, + "amazonAddress":{"shape":"AmazonAddress"}, + "customerAddress":{"shape":"CustomerAddress"}, + "virtualGatewayId":{"shape":"VirtualGatewayId"} + } + }, + "NewPrivateVirtualInterfaceAllocation":{ + "type":"structure", + "required":[ + "virtualInterfaceName", + "vlan", + "asn" + ], + "members":{ + "virtualInterfaceName":{"shape":"VirtualInterfaceName"}, + "vlan":{"shape":"VLAN"}, + "asn":{"shape":"ASN"}, + "authKey":{"shape":"BGPAuthKey"}, + "amazonAddress":{"shape":"AmazonAddress"}, + "customerAddress":{"shape":"CustomerAddress"} + } + }, + "NewPublicVirtualInterface":{ + "type":"structure", + "required":[ + "virtualInterfaceName", + "vlan", + "asn", + "amazonAddress", + "customerAddress", + "routeFilterPrefixes" + ], + "members":{ + "virtualInterfaceName":{"shape":"VirtualInterfaceName"}, + "vlan":{"shape":"VLAN"}, + "asn":{"shape":"ASN"}, + "authKey":{"shape":"BGPAuthKey"}, + "amazonAddress":{"shape":"AmazonAddress"}, + "customerAddress":{"shape":"CustomerAddress"}, + "routeFilterPrefixes":{"shape":"RouteFilterPrefixList"} + } + }, + "NewPublicVirtualInterfaceAllocation":{ + "type":"structure", + "required":[ + "virtualInterfaceName", + "vlan", + "asn", + "amazonAddress", + "customerAddress", + "routeFilterPrefixes" + ], + "members":{ + "virtualInterfaceName":{"shape":"VirtualInterfaceName"}, + "vlan":{"shape":"VLAN"}, + "asn":{"shape":"ASN"}, + "authKey":{"shape":"BGPAuthKey"}, + "amazonAddress":{"shape":"AmazonAddress"}, + "customerAddress":{"shape":"CustomerAddress"}, + "routeFilterPrefixes":{"shape":"RouteFilterPrefixList"} + } + }, + "OwnerAccount":{"type":"string"}, + "PartnerName":{"type":"string"}, + "Region":{"type":"string"}, + "RouteFilterPrefix":{ + "type":"structure", + "members":{ + "cidr":{"shape":"CIDR"} + } + }, + "RouteFilterPrefixList":{ + "type":"list", + "member":{"shape":"RouteFilterPrefix"} + }, + "RouterConfig":{"type":"string"}, + "VLAN":{"type":"integer"}, + "VirtualGateway":{ + "type":"structure", + "members":{ + "virtualGatewayId":{"shape":"VirtualGatewayId"}, + "virtualGatewayState":{"shape":"VirtualGatewayState"} + } + }, + "VirtualGatewayId":{"type":"string"}, + "VirtualGatewayList":{ + "type":"list", + "member":{"shape":"VirtualGateway"} + }, + "VirtualGatewayState":{"type":"string"}, + "VirtualGateways":{ + "type":"structure", + "members":{ + "virtualGateways":{"shape":"VirtualGatewayList"} + } + }, + "VirtualInterface":{ + "type":"structure", + "members":{ + "ownerAccount":{"shape":"OwnerAccount"}, + "virtualInterfaceId":{"shape":"VirtualInterfaceId"}, + "location":{"shape":"LocationCode"}, + "connectionId":{"shape":"ConnectionId"}, + "virtualInterfaceType":{"shape":"VirtualInterfaceType"}, + "virtualInterfaceName":{"shape":"VirtualInterfaceName"}, + "vlan":{"shape":"VLAN"}, + "asn":{"shape":"ASN"}, + "authKey":{"shape":"BGPAuthKey"}, + "amazonAddress":{"shape":"AmazonAddress"}, + "customerAddress":{"shape":"CustomerAddress"}, + "virtualInterfaceState":{"shape":"VirtualInterfaceState"}, + "customerRouterConfig":{"shape":"RouterConfig"}, + "virtualGatewayId":{"shape":"VirtualGatewayId"}, + "routeFilterPrefixes":{"shape":"RouteFilterPrefixList"} + } + }, + "VirtualInterfaceId":{"type":"string"}, + "VirtualInterfaceList":{ + "type":"list", + "member":{"shape":"VirtualInterface"} + }, + "VirtualInterfaceName":{"type":"string"}, + "VirtualInterfaceState":{ + "type":"string", + "enum":[ + "confirming", + "verifying", + "pending", + "available", + "deleting", + "deleted", + "rejected" + ] + }, + "VirtualInterfaceType":{"type":"string"}, + "VirtualInterfaces":{ + "type":"structure", + "members":{ + "virtualInterfaces":{"shape":"VirtualInterfaceList"} + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/directconnect/2012-10-25/docs-2.json b/lib/aws-sdk/Aws/data/directconnect/2012-10-25/docs-2.json new file mode 100644 index 0000000..818ca24 --- /dev/null +++ b/lib/aws-sdk/Aws/data/directconnect/2012-10-25/docs-2.json @@ -0,0 +1,494 @@ +{ + "operations": { + "AllocateConnectionOnInterconnect": "

Creates a hosted connection on an interconnect.

Allocates a VLAN number and a specified amount of bandwidth for use by a hosted connection on the given interconnect.

", + "AllocatePrivateVirtualInterface": "

Provisions a private virtual interface to be owned by a different customer.

The owner of a connection calls this function to provision a private virtual interface which will be owned by another AWS customer.

Virtual interfaces created using this function must be confirmed by the virtual interface owner by calling ConfirmPrivateVirtualInterface. Until this step has been completed, the virtual interface will be in 'Confirming' state, and will not be available for handling traffic.

", + "AllocatePublicVirtualInterface": "

Provisions a public virtual interface to be owned by a different customer.

The owner of a connection calls this function to provision a public virtual interface which will be owned by another AWS customer.

Virtual interfaces created using this function must be confirmed by the virtual interface owner by calling ConfirmPublicVirtualInterface. Until this step has been completed, the virtual interface will be in 'Confirming' state, and will not be available for handling traffic.

", + "ConfirmConnection": "

Confirm the creation of a hosted connection on an interconnect.

Upon creation, the hosted connection is initially in the 'Ordering' state, and will remain in this state until the owner calls ConfirmConnection to confirm creation of the hosted connection.

", + "ConfirmPrivateVirtualInterface": "

Accept ownership of a private virtual interface created by another customer.

After the virtual interface owner calls this function, the virtual interface will be created and attached to the given virtual private gateway, and will be available for handling traffic.

", + "ConfirmPublicVirtualInterface": "

Accept ownership of a public virtual interface created by another customer.

After the virtual interface owner calls this function, the specified virtual interface will be created and made available for handling traffic.

", + "CreateConnection": "

Creates a new connection between the customer network and a specific AWS Direct Connect location.

A connection links your internal network to an AWS Direct Connect location over a standard 1 gigabit or 10 gigabit Ethernet fiber-optic cable. One end of the cable is connected to your router, the other to an AWS Direct Connect router. An AWS Direct Connect location provides access to Amazon Web Services in the region it is associated with. You can establish connections with AWS Direct Connect locations in multiple regions, but a connection in one region does not provide connectivity to other regions.

", + "CreateInterconnect": "

Creates a new interconnect between a AWS Direct Connect partner's network and a specific AWS Direct Connect location.

An interconnect is a connection which is capable of hosting other connections. The AWS Direct Connect partner can use an interconnect to provide sub-1Gbps AWS Direct Connect service to tier 2 customers who do not have their own connections. Like a standard connection, an interconnect links the AWS Direct Connect partner's network to an AWS Direct Connect location over a standard 1 Gbps or 10 Gbps Ethernet fiber-optic cable. One end is connected to the partner's router, the other to an AWS Direct Connect router.

For each end customer, the AWS Direct Connect partner provisions a connection on their interconnect by calling AllocateConnectionOnInterconnect. The end customer can then connect to AWS resources by creating a virtual interface on their connection, using the VLAN assigned to them by the AWS Direct Connect partner.

", + "CreatePrivateVirtualInterface": "

Creates a new private virtual interface. A virtual interface is the VLAN that transports AWS Direct Connect traffic. A private virtual interface supports sending traffic to a single virtual private cloud (VPC).

", + "CreatePublicVirtualInterface": "

Creates a new public virtual interface. A virtual interface is the VLAN that transports AWS Direct Connect traffic. A public virtual interface supports sending traffic to public services of AWS such as Amazon Simple Storage Service (Amazon S3).

", + "DeleteConnection": "

Deletes the connection.

Deleting a connection only stops the AWS Direct Connect port hour and data transfer charges. You need to cancel separately with the providers any services or charges for cross-connects or network circuits that connect you to the AWS Direct Connect location.

", + "DeleteInterconnect": "

Deletes the specified interconnect.

", + "DeleteVirtualInterface": "

Deletes a virtual interface.

", + "DescribeConnections": "

Displays all connections in this region.

If a connection ID is provided, the call returns only that particular connection.

", + "DescribeConnectionsOnInterconnect": "

Return a list of connections that have been provisioned on the given interconnect.

", + "DescribeInterconnects": "

Returns a list of interconnects owned by the AWS account.

If an interconnect ID is provided, it will only return this particular interconnect.

", + "DescribeLocations": "

Returns the list of AWS Direct Connect locations in the current AWS region. These are the locations that may be selected when calling CreateConnection or CreateInterconnect.

", + "DescribeVirtualGateways": "

Returns a list of virtual private gateways owned by the AWS account.

You can create one or more AWS Direct Connect private virtual interfaces linking to a virtual private gateway. A virtual private gateway can be managed via Amazon Virtual Private Cloud (VPC) console or the EC2 CreateVpnGateway action.

", + "DescribeVirtualInterfaces": "

Displays all virtual interfaces for an AWS account. Virtual interfaces deleted fewer than 15 minutes before DescribeVirtualInterfaces is called are also returned. If a connection ID is included then only virtual interfaces associated with this connection will be returned. If a virtual interface ID is included then only a single virtual interface will be returned.

A virtual interface (VLAN) transmits the traffic between the AWS Direct Connect location and the customer.

If a connection ID is provided, only virtual interfaces provisioned on the specified connection will be returned. If a virtual interface ID is provided, only this particular virtual interface will be returned.

" + }, + "service": "

AWS Direct Connect makes it easy to establish a dedicated network connection from your premises to Amazon Web Services (AWS). Using AWS Direct Connect, you can establish private connectivity between AWS and your data center, office, or colocation environment, which in many cases can reduce your network costs, increase bandwidth throughput, and provide a more consistent network experience than Internet-based connections.

The AWS Direct Connect API Reference provides descriptions, syntax, and usage examples for each of the actions and data types for AWS Direct Connect. Use the following links to get started using the AWS Direct Connect API Reference:

  • Actions: An alphabetical list of all AWS Direct Connect actions.
  • Data Types: An alphabetical list of all AWS Direct Connect data types.
  • Common Query Parameters: Parameters that all Query actions can use.
  • Common Errors: Client and server errors that all actions can return.
", + "shapes": { + "ASN": { + "base": "

Autonomous system (AS) number for Border Gateway Protocol (BGP) configuration.

Example: 65000

", + "refs": { + "NewPrivateVirtualInterface$asn": null, + "NewPrivateVirtualInterfaceAllocation$asn": null, + "NewPublicVirtualInterface$asn": null, + "NewPublicVirtualInterfaceAllocation$asn": null, + "VirtualInterface$asn": null + } + }, + "AllocateConnectionOnInterconnectRequest": { + "base": "

Container for the parameters to the AllocateConnectionOnInterconnect operation.

", + "refs": { + } + }, + "AllocatePrivateVirtualInterfaceRequest": { + "base": "

Container for the parameters to the AllocatePrivateVirtualInterface operation.

", + "refs": { + } + }, + "AllocatePublicVirtualInterfaceRequest": { + "base": "

Container for the parameters to the AllocatePublicVirtualInterface operation.

", + "refs": { + } + }, + "AmazonAddress": { + "base": "

IP address assigned to the Amazon interface.

Example: 192.168.1.1/30

", + "refs": { + "NewPrivateVirtualInterface$amazonAddress": null, + "NewPrivateVirtualInterfaceAllocation$amazonAddress": null, + "NewPublicVirtualInterface$amazonAddress": null, + "NewPublicVirtualInterfaceAllocation$amazonAddress": null, + "VirtualInterface$amazonAddress": null + } + }, + "BGPAuthKey": { + "base": "

Authentication key for BGP configuration.

Example: asdf34example

", + "refs": { + "NewPrivateVirtualInterface$authKey": null, + "NewPrivateVirtualInterfaceAllocation$authKey": null, + "NewPublicVirtualInterface$authKey": null, + "NewPublicVirtualInterfaceAllocation$authKey": null, + "VirtualInterface$authKey": null + } + }, + "Bandwidth": { + "base": "

Bandwidth of the connection.

Example: 1Gbps

Default: None

", + "refs": { + "AllocateConnectionOnInterconnectRequest$bandwidth": "

Bandwidth of the connection.

Example: \"500Mbps\"

Default: None

", + "Connection$bandwidth": "

Bandwidth of the connection.

Example: 1Gbps (for regular connections), or 500Mbps (for hosted connections)

Default: None

", + "CreateConnectionRequest$bandwidth": null, + "CreateInterconnectRequest$bandwidth": "

The port bandwidth

Example: 1Gbps

Default: None

Available values: 1Gbps,10Gbps

", + "Interconnect$bandwidth": null + } + }, + "CIDR": { + "base": null, + "refs": { + "RouteFilterPrefix$cidr": "

CIDR notation for the advertised route. Multiple routes are separated by commas.

Example: 10.10.10.0/24,10.10.11.0/24

" + } + }, + "ConfirmConnectionRequest": { + "base": "

Container for the parameters to the ConfirmConnection operation.

", + "refs": { + } + }, + "ConfirmConnectionResponse": { + "base": "

The response received when ConfirmConnection is called.

", + "refs": { + } + }, + "ConfirmPrivateVirtualInterfaceRequest": { + "base": "

Container for the parameters to the ConfirmPrivateVirtualInterface operation.

", + "refs": { + } + }, + "ConfirmPrivateVirtualInterfaceResponse": { + "base": "

The response received when ConfirmPrivateVirtualInterface is called.

", + "refs": { + } + }, + "ConfirmPublicVirtualInterfaceRequest": { + "base": "

Container for the parameters to the ConfirmPublicVirtualInterface operation.

", + "refs": { + } + }, + "ConfirmPublicVirtualInterfaceResponse": { + "base": "

The response received when ConfirmPublicVirtualInterface is called.

", + "refs": { + } + }, + "Connection": { + "base": "

A connection represents the physical network connection between the AWS Direct Connect location and the customer.

", + "refs": { + "ConnectionList$member": null + } + }, + "ConnectionId": { + "base": "

ID of the connection.

Example: dxcon-fg5678gh

Default: None

", + "refs": { + "AllocatePrivateVirtualInterfaceRequest$connectionId": "

The connection ID on which the private virtual interface is provisioned.

Default: None

", + "AllocatePublicVirtualInterfaceRequest$connectionId": "

The connection ID on which the public virtual interface is provisioned.

Default: None

", + "ConfirmConnectionRequest$connectionId": null, + "Connection$connectionId": null, + "CreatePrivateVirtualInterfaceRequest$connectionId": null, + "CreatePublicVirtualInterfaceRequest$connectionId": null, + "DeleteConnectionRequest$connectionId": null, + "DescribeConnectionsRequest$connectionId": null, + "DescribeVirtualInterfacesRequest$connectionId": null, + "VirtualInterface$connectionId": null + } + }, + "ConnectionList": { + "base": "

A list of connections.

", + "refs": { + "Connections$connections": "

A list of connections.

" + } + }, + "ConnectionName": { + "base": "

The name of the connection.

Example: \"My Connection to AWS\"

Default: None

", + "refs": { + "AllocateConnectionOnInterconnectRequest$connectionName": "

Name of the provisioned connection.

Example: \"500M Connection to AWS\"

Default: None

", + "Connection$connectionName": null, + "CreateConnectionRequest$connectionName": null + } + }, + "ConnectionState": { + "base": "State of the connection.
  • Ordering: The initial state of a hosted connection provisioned on an interconnect. The connection stays in the ordering state until the owner of the hosted connection confirms or declines the connection order.
  • Requested: The initial state of a standard connection. The connection stays in the requested state until the Letter of Authorization (LOA) is sent to the customer.
  • Pending: The connection has been approved, and is being initialized.
  • Available: The network link is up, and the connection is ready for use.
  • Down: The network link is down.
  • Deleted: The connection has been deleted.
  • Rejected: A hosted connection in the 'Ordering' state will enter the 'Rejected' state if it is deleted by the end customer.
", + "refs": { + "ConfirmConnectionResponse$connectionState": null, + "Connection$connectionState": null + } + }, + "Connections": { + "base": "

A structure containing a list of connections.

", + "refs": { + } + }, + "CreateConnectionRequest": { + "base": "

Container for the parameters to the CreateConnection operation.

", + "refs": { + } + }, + "CreateInterconnectRequest": { + "base": "

Container for the parameters to the CreateInterconnect operation.

", + "refs": { + } + }, + "CreatePrivateVirtualInterfaceRequest": { + "base": "

Container for the parameters to the CreatePrivateVirtualInterface operation.

", + "refs": { + } + }, + "CreatePublicVirtualInterfaceRequest": { + "base": "

Container for the parameters to the CreatePublicVirtualInterface operation.

", + "refs": { + } + }, + "CustomerAddress": { + "base": "

IP address assigned to the customer interface.

Example: 192.168.1.2/30

", + "refs": { + "NewPrivateVirtualInterface$customerAddress": null, + "NewPrivateVirtualInterfaceAllocation$customerAddress": null, + "NewPublicVirtualInterface$customerAddress": null, + "NewPublicVirtualInterfaceAllocation$customerAddress": null, + "VirtualInterface$customerAddress": null + } + }, + "DeleteConnectionRequest": { + "base": "

Container for the parameters to the DeleteConnection operation.

", + "refs": { + } + }, + "DeleteInterconnectRequest": { + "base": "

Container for the parameters to the DeleteInterconnect operation.

", + "refs": { + } + }, + "DeleteInterconnectResponse": { + "base": "

The response received when DeleteInterconnect is called.

", + "refs": { + } + }, + "DeleteVirtualInterfaceRequest": { + "base": "

Container for the parameters to the DeleteVirtualInterface operation.

", + "refs": { + } + }, + "DeleteVirtualInterfaceResponse": { + "base": "

The response received when DeleteVirtualInterface is called.

", + "refs": { + } + }, + "DescribeConnectionsOnInterconnectRequest": { + "base": "

Container for the parameters to the DescribeConnectionsOnInterconnect operation.

", + "refs": { + } + }, + "DescribeConnectionsRequest": { + "base": "

Container for the parameters to the DescribeConnections operation.

", + "refs": { + } + }, + "DescribeInterconnectsRequest": { + "base": "

Container for the parameters to the DescribeInterconnects operation.

", + "refs": { + } + }, + "DescribeVirtualInterfacesRequest": { + "base": "

Container for the parameters to the DescribeVirtualInterfaces operation.

", + "refs": { + } + }, + "DirectConnectClientException": { + "base": "

The API was called with invalid parameters. The error message will contain additional details about the cause.

", + "refs": { + } + }, + "DirectConnectServerException": { + "base": "

A server-side error occurred during the API call. The error message will contain additional details about the cause.

", + "refs": { + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "DirectConnectClientException$message": null, + "DirectConnectServerException$message": null + } + }, + "Interconnect": { + "base": "

An interconnect is a connection that can host other connections.

Like a standard AWS Direct Connect connection, an interconnect represents the physical connection between an AWS Direct Connect partner's network and a specific Direct Connect location. An AWS Direct Connect partner who owns an interconnect can provision hosted connections on the interconnect for their end customers, thereby providing the end customers with connectivity to AWS services.

The resources of the interconnect, including bandwidth and VLAN numbers, are shared by all of the hosted connections on the interconnect, and the owner of the interconnect determines how these resources are assigned.

", + "refs": { + "InterconnectList$member": null + } + }, + "InterconnectId": { + "base": "

The ID of the interconnect.

Example: dxcon-abc123

", + "refs": { + "AllocateConnectionOnInterconnectRequest$interconnectId": "

ID of the interconnect on which the connection will be provisioned.

Example: dxcon-456abc78

Default: None

", + "DeleteInterconnectRequest$interconnectId": null, + "DescribeConnectionsOnInterconnectRequest$interconnectId": "

ID of the interconnect on which a list of connection is provisioned.

Example: dxcon-abc123

Default: None

", + "DescribeInterconnectsRequest$interconnectId": null, + "Interconnect$interconnectId": null + } + }, + "InterconnectList": { + "base": "

A list of interconnects.

", + "refs": { + "Interconnects$interconnects": "

A list of interconnects.

" + } + }, + "InterconnectName": { + "base": "

The name of the interconnect.

Example: \"1G Interconnect to AWS\"

", + "refs": { + "CreateInterconnectRequest$interconnectName": "

The name of the interconnect.

Example: \"1G Interconnect to AWS\"

Default: None

", + "Interconnect$interconnectName": null + } + }, + "InterconnectState": { + "base": "State of the interconnect.
  • Requested: The initial state of an interconnect. The interconnect stays in the requested state until the Letter of Authorization (LOA) is sent to the customer.
  • Pending: The interconnect has been approved, and is being initialized.
  • Available: The network link is up, and the interconnect is ready for use.
  • Down: The network link is down.
  • Deleted: The interconnect has been deleted.
", + "refs": { + "DeleteInterconnectResponse$interconnectState": null, + "Interconnect$interconnectState": null + } + }, + "Interconnects": { + "base": "

A structure containing a list of interconnects.

", + "refs": { + } + }, + "Location": { + "base": "

An AWS Direct Connect location where connections and interconnects can be requested.

", + "refs": { + "LocationList$member": null + } + }, + "LocationCode": { + "base": "

Where the connection is located.

Example: EqSV5

Default: None

", + "refs": { + "Connection$location": null, + "CreateConnectionRequest$location": null, + "CreateInterconnectRequest$location": "

Where the interconnect is located

Example: EqSV5

Default: None

", + "Interconnect$location": null, + "Location$locationCode": "

The code used to indicate the AWS Direct Connect location.

", + "VirtualInterface$location": null + } + }, + "LocationList": { + "base": null, + "refs": { + "Locations$locations": null + } + }, + "LocationName": { + "base": null, + "refs": { + "Location$locationName": "

The name of the AWS Direct Connect location. The name includes the colocation partner name and the physical site of the lit building.

" + } + }, + "Locations": { + "base": null, + "refs": { + } + }, + "NewPrivateVirtualInterface": { + "base": "

A structure containing information about a new private virtual interface.

", + "refs": { + "CreatePrivateVirtualInterfaceRequest$newPrivateVirtualInterface": "

Detailed information for the private virtual interface to be created.

Default: None

" + } + }, + "NewPrivateVirtualInterfaceAllocation": { + "base": "

A structure containing information about a private virtual interface that will be provisioned on a connection.

", + "refs": { + "AllocatePrivateVirtualInterfaceRequest$newPrivateVirtualInterfaceAllocation": "

Detailed information for the private virtual interface to be provisioned.

Default: None

" + } + }, + "NewPublicVirtualInterface": { + "base": "

A structure containing information about a new public virtual interface.

", + "refs": { + "CreatePublicVirtualInterfaceRequest$newPublicVirtualInterface": "

Detailed information for the public virtual interface to be created.

Default: None

" + } + }, + "NewPublicVirtualInterfaceAllocation": { + "base": "

A structure containing information about a public virtual interface that will be provisioned on a connection.

", + "refs": { + "AllocatePublicVirtualInterfaceRequest$newPublicVirtualInterfaceAllocation": "

Detailed information for the public virtual interface to be provisioned.

Default: None

" + } + }, + "OwnerAccount": { + "base": null, + "refs": { + "AllocateConnectionOnInterconnectRequest$ownerAccount": "

Numeric account Id of the customer for whom the connection will be provisioned.

Example: 123443215678

Default: None

", + "AllocatePrivateVirtualInterfaceRequest$ownerAccount": "

The AWS account that will own the new private virtual interface.

Default: None

", + "AllocatePublicVirtualInterfaceRequest$ownerAccount": "

The AWS account that will own the new public virtual interface.

Default: None

", + "Connection$ownerAccount": null, + "VirtualInterface$ownerAccount": null + } + }, + "PartnerName": { + "base": null, + "refs": { + "Connection$partnerName": null + } + }, + "Region": { + "base": "

The AWS region where the connection is located.

Example: us-east-1

Default: None

", + "refs": { + "Connection$region": null, + "Interconnect$region": null + } + }, + "RouteFilterPrefix": { + "base": "

A route filter prefix that the customer can advertise through Border Gateway Protocol (BGP) over a public virtual interface.

", + "refs": { + "RouteFilterPrefixList$member": null + } + }, + "RouteFilterPrefixList": { + "base": "

A list of routes to be advertised to the AWS network in this region (public virtual interface) or your VPC (private virtual interface).

", + "refs": { + "NewPublicVirtualInterface$routeFilterPrefixes": null, + "NewPublicVirtualInterfaceAllocation$routeFilterPrefixes": null, + "VirtualInterface$routeFilterPrefixes": null + } + }, + "RouterConfig": { + "base": null, + "refs": { + "VirtualInterface$customerRouterConfig": "

Information for generating the customer router configuration.

" + } + }, + "VLAN": { + "base": "

The VLAN ID.

Example: 101

", + "refs": { + "AllocateConnectionOnInterconnectRequest$vlan": "

The dedicated VLAN provisioned to the connection.

Example: 101

Default: None

", + "Connection$vlan": null, + "NewPrivateVirtualInterface$vlan": null, + "NewPrivateVirtualInterfaceAllocation$vlan": null, + "NewPublicVirtualInterface$vlan": null, + "NewPublicVirtualInterfaceAllocation$vlan": null, + "VirtualInterface$vlan": null + } + }, + "VirtualGateway": { + "base": "

You can create one or more AWS Direct Connect private virtual interfaces linking to your virtual private gateway.

Virtual private gateways can be managed using the Amazon Virtual Private Cloud (Amazon VPC) console or the Amazon EC2 CreateVpnGateway action.

", + "refs": { + "VirtualGatewayList$member": null + } + }, + "VirtualGatewayId": { + "base": "

The ID of the virtual private gateway to a VPC. This only applies to private virtual interfaces.

Example: vgw-123er56

", + "refs": { + "ConfirmPrivateVirtualInterfaceRequest$virtualGatewayId": "

ID of the virtual private gateway that will be attached to the virtual interface.

A virtual private gateway can be managed via the Amazon Virtual Private Cloud (VPC) console or the EC2 CreateVpnGateway action.

Default: None

", + "NewPrivateVirtualInterface$virtualGatewayId": null, + "VirtualGateway$virtualGatewayId": null, + "VirtualInterface$virtualGatewayId": null + } + }, + "VirtualGatewayList": { + "base": "

A list of virtual private gateways.

", + "refs": { + "VirtualGateways$virtualGateways": "

A list of virtual private gateways.

" + } + }, + "VirtualGatewayState": { + "base": "State of the virtual private gateway.
  • Pending: This is the initial state after calling CreateVpnGateway.
  • Available: Ready for use by a private virtual interface.
  • Deleting: This is the initial state after calling DeleteVpnGateway.
  • Deleted: In this state, a private virtual interface is unable to send traffic over this gateway.
", + "refs": { + "VirtualGateway$virtualGatewayState": null + } + }, + "VirtualGateways": { + "base": "

A structure containing a list of virtual private gateways.

", + "refs": { + } + }, + "VirtualInterface": { + "base": "

A virtual interface (VLAN) transmits the traffic between the AWS Direct Connect location and the customer.

", + "refs": { + "VirtualInterfaceList$member": null + } + }, + "VirtualInterfaceId": { + "base": "

ID of the virtual interface.

Example: dxvif-123dfg56

Default: None

", + "refs": { + "ConfirmPrivateVirtualInterfaceRequest$virtualInterfaceId": null, + "ConfirmPublicVirtualInterfaceRequest$virtualInterfaceId": null, + "DeleteVirtualInterfaceRequest$virtualInterfaceId": null, + "DescribeVirtualInterfacesRequest$virtualInterfaceId": null, + "VirtualInterface$virtualInterfaceId": null + } + }, + "VirtualInterfaceList": { + "base": "

A list of virtual interfaces.

", + "refs": { + "VirtualInterfaces$virtualInterfaces": "

A list of virtual interfaces.

" + } + }, + "VirtualInterfaceName": { + "base": "

The name of the virtual interface assigned by the customer.

Example: \"My VPC\"

", + "refs": { + "NewPrivateVirtualInterface$virtualInterfaceName": null, + "NewPrivateVirtualInterfaceAllocation$virtualInterfaceName": null, + "NewPublicVirtualInterface$virtualInterfaceName": null, + "NewPublicVirtualInterfaceAllocation$virtualInterfaceName": null, + "VirtualInterface$virtualInterfaceName": null + } + }, + "VirtualInterfaceState": { + "base": "State of the virtual interface.
  • Confirming: The creation of the virtual interface is pending confirmation from the virtual interface owner. If the owner of the virtual interface is different from the owner of the connection on which it is provisioned, then the virtual interface will remain in this state until it is confirmed by the virtual interface owner.
  • Verifying: This state only applies to public virtual interfaces. Each public virtual interface needs validation before the virtual interface can be created.
  • Pending: A virtual interface is in this state from the time that it is created until the virtual interface is ready to forward traffic.
  • Available: A virtual interface that is able to forward traffic.
  • Deleting: A virtual interface is in this state immediately after calling DeleteVirtualInterface until it can no longer forward traffic.
  • Deleted: A virtual interface that cannot forward traffic.
  • Rejected: The virtual interface owner has declined creation of the virtual interface. If a virtual interface in the 'Confirming' state is deleted by the virtual interface owner, the virtual interface will enter the 'Rejected' state.
", + "refs": { + "ConfirmPrivateVirtualInterfaceResponse$virtualInterfaceState": null, + "ConfirmPublicVirtualInterfaceResponse$virtualInterfaceState": null, + "DeleteVirtualInterfaceResponse$virtualInterfaceState": null, + "VirtualInterface$virtualInterfaceState": null + } + }, + "VirtualInterfaceType": { + "base": "

The type of virtual interface.

Example: private (Amazon VPC) or public (Amazon S3, Amazon DynamoDB, and so on.)

", + "refs": { + "VirtualInterface$virtualInterfaceType": null + } + }, + "VirtualInterfaces": { + "base": "

A structure containing a list of virtual interfaces.

", + "refs": { + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/directconnect/2012-10-25/paginators-1.json b/lib/aws-sdk/Aws/data/directconnect/2012-10-25/paginators-1.json new file mode 100644 index 0000000..cc93bed --- /dev/null +++ b/lib/aws-sdk/Aws/data/directconnect/2012-10-25/paginators-1.json @@ -0,0 +1,22 @@ +{ + "pagination": { + "DescribeConnections": { + "result_key": "connections" + }, + "DescribeConnectionsOnInterconnect": { + "result_key": "connections" + }, + "DescribeInterconnects": { + "result_key": "interconnects" + }, + "DescribeLocations": { + "result_key": "locations" + }, + "DescribeVirtualGateways": { + "result_key": "virtualGateways" + }, + "DescribeVirtualInterfaces": { + "result_key": "virtualInterfaces" + } + } +} diff --git a/lib/aws-sdk/Aws/data/ds/2015-04-16/api-2.json b/lib/aws-sdk/Aws/data/ds/2015-04-16/api-2.json new file mode 100644 index 0000000..ee7759f --- /dev/null +++ b/lib/aws-sdk/Aws/data/ds/2015-04-16/api-2.json @@ -0,0 +1,1260 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2015-04-16", + "endpointPrefix":"ds", + "jsonVersion":"1.1", + "serviceAbbreviation":"Directory Service", + "serviceFullName":"AWS Directory Service", + "signatureVersion":"v4", + "targetPrefix":"DirectoryService_20150416", + "protocol":"json" + }, + "operations":{ + "ConnectDirectory":{ + "name":"ConnectDirectory", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ConnectDirectoryRequest"}, + "output":{"shape":"ConnectDirectoryResult"}, + "errors":[ + { + "shape":"DirectoryLimitExceededException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"ServiceException", + "exception":true, + "fault":true + } + ] + }, + "CreateAlias":{ + "name":"CreateAlias", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateAliasRequest"}, + "output":{"shape":"CreateAliasResult"}, + "errors":[ + { + "shape":"EntityAlreadyExistsException", + "exception":true + }, + { + "shape":"EntityDoesNotExistException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"ServiceException", + "exception":true, + "fault":true + } + ] + }, + "CreateComputer":{ + "name":"CreateComputer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateComputerRequest"}, + "output":{"shape":"CreateComputerResult"}, + "errors":[ + { + "shape":"AuthenticationFailedException", + "exception":true + }, + { + "shape":"DirectoryUnavailableException", + "exception":true + }, + { + "shape":"EntityAlreadyExistsException", + "exception":true + }, + { + "shape":"EntityDoesNotExistException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"UnsupportedOperationException", + "exception":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"ServiceException", + "exception":true, + "fault":true + } + ] + }, + "CreateDirectory":{ + "name":"CreateDirectory", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDirectoryRequest"}, + "output":{"shape":"CreateDirectoryResult"}, + "errors":[ + { + "shape":"DirectoryLimitExceededException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"ServiceException", + "exception":true, + "fault":true + } + ] + }, + "CreateSnapshot":{ + "name":"CreateSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateSnapshotRequest"}, + "output":{"shape":"CreateSnapshotResult"}, + "errors":[ + { + "shape":"EntityDoesNotExistException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"SnapshotLimitExceededException", + "exception":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"ServiceException", + "exception":true, + "fault":true + } + ] + }, + "DeleteDirectory":{ + "name":"DeleteDirectory", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDirectoryRequest"}, + "output":{"shape":"DeleteDirectoryResult"}, + "errors":[ + { + "shape":"EntityDoesNotExistException", + "exception":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"ServiceException", + "exception":true, + "fault":true + } + ] + }, + "DeleteSnapshot":{ + "name":"DeleteSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteSnapshotRequest"}, + "output":{"shape":"DeleteSnapshotResult"}, + "errors":[ + { + "shape":"EntityDoesNotExistException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"ServiceException", + "exception":true, + "fault":true + } + ] + }, + "DescribeDirectories":{ + "name":"DescribeDirectories", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDirectoriesRequest"}, + "output":{"shape":"DescribeDirectoriesResult"}, + "errors":[ + { + "shape":"EntityDoesNotExistException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"InvalidNextTokenException", + "exception":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"ServiceException", + "exception":true, + "fault":true + } + ] + }, + "DescribeSnapshots":{ + "name":"DescribeSnapshots", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSnapshotsRequest"}, + "output":{"shape":"DescribeSnapshotsResult"}, + "errors":[ + { + "shape":"EntityDoesNotExistException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"InvalidNextTokenException", + "exception":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"ServiceException", + "exception":true, + "fault":true + } + ] + }, + "DisableRadius":{ + "name":"DisableRadius", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisableRadiusRequest"}, + "output":{"shape":"DisableRadiusResult"}, + "errors":[ + { + "shape":"EntityDoesNotExistException", + "exception":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"ServiceException", + "exception":true, + "fault":true + } + ] + }, + "DisableSso":{ + "name":"DisableSso", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisableSsoRequest"}, + "output":{"shape":"DisableSsoResult"}, + "errors":[ + { + "shape":"EntityDoesNotExistException", + "exception":true + }, + { + "shape":"InsufficientPermissionsException", + "exception":true + }, + { + "shape":"AuthenticationFailedException", + "exception":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"ServiceException", + "exception":true, + "fault":true + } + ] + }, + "EnableRadius":{ + "name":"EnableRadius", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableRadiusRequest"}, + "output":{"shape":"EnableRadiusResult"}, + "errors":[ + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"EntityAlreadyExistsException", + "exception":true + }, + { + "shape":"EntityDoesNotExistException", + "exception":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"ServiceException", + "exception":true, + "fault":true + } + ] + }, + "EnableSso":{ + "name":"EnableSso", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableSsoRequest"}, + "output":{"shape":"EnableSsoResult"}, + "errors":[ + { + "shape":"EntityDoesNotExistException", + "exception":true + }, + { + "shape":"InsufficientPermissionsException", + "exception":true + }, + { + "shape":"AuthenticationFailedException", + "exception":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"ServiceException", + "exception":true, + "fault":true + } + ] + }, + "GetDirectoryLimits":{ + "name":"GetDirectoryLimits", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDirectoryLimitsRequest"}, + "output":{"shape":"GetDirectoryLimitsResult"}, + "errors":[ + { + "shape":"EntityDoesNotExistException", + "exception":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"ServiceException", + "exception":true, + "fault":true + } + ] + }, + "GetSnapshotLimits":{ + "name":"GetSnapshotLimits", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetSnapshotLimitsRequest"}, + "output":{"shape":"GetSnapshotLimitsResult"}, + "errors":[ + { + "shape":"EntityDoesNotExistException", + "exception":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"ServiceException", + "exception":true, + "fault":true + } + ] + }, + "RestoreFromSnapshot":{ + "name":"RestoreFromSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RestoreFromSnapshotRequest"}, + "output":{"shape":"RestoreFromSnapshotResult"}, + "errors":[ + { + "shape":"EntityDoesNotExistException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"ServiceException", + "exception":true, + "fault":true + } + ] + }, + "UpdateRadius":{ + "name":"UpdateRadius", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateRadiusRequest"}, + "output":{"shape":"UpdateRadiusResult"}, + "errors":[ + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"EntityDoesNotExistException", + "exception":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"ServiceException", + "exception":true, + "fault":true + } + ] + } + }, + "shapes":{ + "AccessUrl":{ + "type":"string", + "min":1, + "max":128 + }, + "AliasName":{ + "type":"string", + "min":1, + "max":62, + "pattern":"^(?!d-)([\\da-zA-Z]+)([-]*[\\da-zA-Z])*" + }, + "Attribute":{ + "type":"structure", + "members":{ + "Name":{"shape":"AttributeName"}, + "Value":{"shape":"AttributeValue"} + } + }, + "AttributeName":{ + "type":"string", + "min":1 + }, + "AttributeValue":{"type":"string"}, + "Attributes":{ + "type":"list", + "member":{"shape":"Attribute"} + }, + "AuthenticationFailedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{"shape":"RequestId"} + }, + "exception":true + }, + "AvailabilityZone":{"type":"string"}, + "AvailabilityZones":{ + "type":"list", + "member":{"shape":"AvailabilityZone"} + }, + "ClientException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{"shape":"RequestId"} + }, + "exception":true + }, + "CloudOnlyDirectoriesLimitReached":{"type":"boolean"}, + "Computer":{ + "type":"structure", + "members":{ + "ComputerId":{"shape":"SID"}, + "ComputerName":{"shape":"ComputerName"}, + "ComputerAttributes":{"shape":"Attributes"} + } + }, + "ComputerName":{ + "type":"string", + "min":1, + "max":15 + }, + "ComputerPassword":{ + "type":"string", + "min":8, + "max":64, + "pattern":"[\\u0020-\\u00FF]+", + "sensitive":true + }, + "ConnectDirectoryRequest":{ + "type":"structure", + "required":[ + "Name", + "Password", + "Size", + "ConnectSettings" + ], + "members":{ + "Name":{"shape":"DirectoryName"}, + "ShortName":{"shape":"DirectoryShortName"}, + "Password":{"shape":"ConnectPassword"}, + "Description":{"shape":"Description"}, + "Size":{"shape":"DirectorySize"}, + "ConnectSettings":{"shape":"DirectoryConnectSettings"} + } + }, + "ConnectDirectoryResult":{ + "type":"structure", + "members":{ + "DirectoryId":{"shape":"DirectoryId"} + } + }, + "ConnectPassword":{ + "type":"string", + "min":1, + "max":128, + "sensitive":true + }, + "ConnectedDirectoriesLimitReached":{"type":"boolean"}, + "CreateAliasRequest":{ + "type":"structure", + "required":[ + "DirectoryId", + "Alias" + ], + "members":{ + "DirectoryId":{"shape":"DirectoryId"}, + "Alias":{"shape":"AliasName"} + } + }, + "CreateAliasResult":{ + "type":"structure", + "members":{ + "DirectoryId":{"shape":"DirectoryId"}, + "Alias":{"shape":"AliasName"} + } + }, + "CreateComputerRequest":{ + "type":"structure", + "required":[ + "DirectoryId", + "ComputerName", + "Password" + ], + "members":{ + "DirectoryId":{"shape":"DirectoryId"}, + "ComputerName":{"shape":"ComputerName"}, + "Password":{"shape":"ComputerPassword"}, + "OrganizationalUnitDistinguishedName":{"shape":"OrganizationalUnitDN"}, + "ComputerAttributes":{"shape":"Attributes"} + } + }, + "CreateComputerResult":{ + "type":"structure", + "members":{ + "Computer":{"shape":"Computer"} + } + }, + "CreateDirectoryRequest":{ + "type":"structure", + "required":[ + "Name", + "Password", + "Size" + ], + "members":{ + "Name":{"shape":"DirectoryName"}, + "ShortName":{"shape":"DirectoryShortName"}, + "Password":{"shape":"Password"}, + "Description":{"shape":"Description"}, + "Size":{"shape":"DirectorySize"}, + "VpcSettings":{"shape":"DirectoryVpcSettings"} + } + }, + "CreateDirectoryResult":{ + "type":"structure", + "members":{ + "DirectoryId":{"shape":"DirectoryId"} + } + }, + "CreateSnapshotRequest":{ + "type":"structure", + "required":["DirectoryId"], + "members":{ + "DirectoryId":{"shape":"DirectoryId"}, + "Name":{"shape":"SnapshotName"} + } + }, + "CreateSnapshotResult":{ + "type":"structure", + "members":{ + "SnapshotId":{"shape":"SnapshotId"} + } + }, + "DeleteDirectoryRequest":{ + "type":"structure", + "required":["DirectoryId"], + "members":{ + "DirectoryId":{"shape":"DirectoryId"} + } + }, + "DeleteDirectoryResult":{ + "type":"structure", + "members":{ + "DirectoryId":{"shape":"DirectoryId"} + } + }, + "DeleteSnapshotRequest":{ + "type":"structure", + "required":["SnapshotId"], + "members":{ + "SnapshotId":{"shape":"SnapshotId"} + } + }, + "DeleteSnapshotResult":{ + "type":"structure", + "members":{ + "SnapshotId":{"shape":"SnapshotId"} + } + }, + "DescribeDirectoriesRequest":{ + "type":"structure", + "members":{ + "DirectoryIds":{"shape":"DirectoryIds"}, + "NextToken":{"shape":"NextToken"}, + "Limit":{"shape":"Limit"} + } + }, + "DescribeDirectoriesResult":{ + "type":"structure", + "members":{ + "DirectoryDescriptions":{"shape":"DirectoryDescriptions"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DescribeSnapshotsRequest":{ + "type":"structure", + "members":{ + "DirectoryId":{"shape":"DirectoryId"}, + "SnapshotIds":{"shape":"SnapshotIds"}, + "NextToken":{"shape":"NextToken"}, + "Limit":{"shape":"Limit"} + } + }, + "DescribeSnapshotsResult":{ + "type":"structure", + "members":{ + "Snapshots":{"shape":"Snapshots"}, + "NextToken":{"shape":"NextToken"} + } + }, + "Description":{ + "type":"string", + "min":0, + "max":128, + "pattern":"^([a-zA-Z0-9_])[\\\\a-zA-Z0-9_@#%*+=:?./!\\s-]*$" + }, + "DirectoryConnectSettings":{ + "type":"structure", + "required":[ + "VpcId", + "SubnetIds", + "CustomerDnsIps", + "CustomerUserName" + ], + "members":{ + "VpcId":{"shape":"VpcId"}, + "SubnetIds":{"shape":"SubnetIds"}, + "CustomerDnsIps":{"shape":"DnsIpAddrs"}, + "CustomerUserName":{"shape":"UserName"} + } + }, + "DirectoryConnectSettingsDescription":{ + "type":"structure", + "members":{ + "VpcId":{"shape":"VpcId"}, + "SubnetIds":{"shape":"SubnetIds"}, + "CustomerUserName":{"shape":"UserName"}, + "SecurityGroupId":{"shape":"SecurityGroupId"}, + "AvailabilityZones":{"shape":"AvailabilityZones"}, + "ConnectIps":{"shape":"IpAddrs"} + } + }, + "DirectoryDescription":{ + "type":"structure", + "members":{ + "DirectoryId":{"shape":"DirectoryId"}, + "Name":{"shape":"DirectoryName"}, + "ShortName":{"shape":"DirectoryShortName"}, + "Size":{"shape":"DirectorySize"}, + "Alias":{"shape":"AliasName"}, + "AccessUrl":{"shape":"AccessUrl"}, + "Description":{"shape":"Description"}, + "DnsIpAddrs":{"shape":"DnsIpAddrs"}, + "Stage":{"shape":"DirectoryStage"}, + "LaunchTime":{"shape":"LaunchTime"}, + "StageLastUpdatedDateTime":{"shape":"LastUpdatedDateTime"}, + "Type":{"shape":"DirectoryType"}, + "VpcSettings":{"shape":"DirectoryVpcSettingsDescription"}, + "ConnectSettings":{"shape":"DirectoryConnectSettingsDescription"}, + "RadiusSettings":{"shape":"RadiusSettings"}, + "RadiusStatus":{"shape":"RadiusStatus"}, + "StageReason":{"shape":"StageReason"}, + "SsoEnabled":{"shape":"SsoEnabled"} + } + }, + "DirectoryDescriptions":{ + "type":"list", + "member":{"shape":"DirectoryDescription"} + }, + "DirectoryId":{ + "type":"string", + "pattern":"^d-[0-9a-f]{10}$" + }, + "DirectoryIds":{ + "type":"list", + "member":{"shape":"DirectoryId"} + }, + "DirectoryLimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{"shape":"RequestId"} + }, + "exception":true + }, + "DirectoryLimits":{ + "type":"structure", + "members":{ + "CloudOnlyDirectoriesLimit":{"shape":"Limit"}, + "CloudOnlyDirectoriesCurrentCount":{"shape":"Limit"}, + "CloudOnlyDirectoriesLimitReached":{"shape":"CloudOnlyDirectoriesLimitReached"}, + "ConnectedDirectoriesLimit":{"shape":"Limit"}, + "ConnectedDirectoriesCurrentCount":{"shape":"Limit"}, + "ConnectedDirectoriesLimitReached":{"shape":"ConnectedDirectoriesLimitReached"} + } + }, + "DirectoryName":{ + "type":"string", + "pattern":"^([a-zA-Z0-9]+[\\\\.-])+([a-zA-Z0-9])+$" + }, + "DirectoryShortName":{ + "type":"string", + "pattern":"^[^\\\\/:*?\\\"\\<\\>|.]+[^\\\\/:*?\\\"<>|]*$" + }, + "DirectorySize":{ + "type":"string", + "enum":[ + "Small", + "Large" + ] + }, + "DirectoryStage":{ + "type":"string", + "enum":[ + "Requested", + "Creating", + "Created", + "Active", + "Inoperable", + "Impaired", + "Restoring", + "RestoreFailed", + "Deleting", + "Deleted", + "Failed" + ] + }, + "DirectoryType":{ + "type":"string", + "enum":[ + "SimpleAD", + "ADConnector" + ] + }, + "DirectoryUnavailableException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{"shape":"RequestId"} + }, + "exception":true + }, + "DirectoryVpcSettings":{ + "type":"structure", + "required":[ + "VpcId", + "SubnetIds" + ], + "members":{ + "VpcId":{"shape":"VpcId"}, + "SubnetIds":{"shape":"SubnetIds"} + } + }, + "DirectoryVpcSettingsDescription":{ + "type":"structure", + "members":{ + "VpcId":{"shape":"VpcId"}, + "SubnetIds":{"shape":"SubnetIds"}, + "SecurityGroupId":{"shape":"SecurityGroupId"}, + "AvailabilityZones":{"shape":"AvailabilityZones"} + } + }, + "DisableRadiusRequest":{ + "type":"structure", + "required":["DirectoryId"], + "members":{ + "DirectoryId":{"shape":"DirectoryId"} + } + }, + "DisableRadiusResult":{ + "type":"structure", + "members":{ + } + }, + "DisableSsoRequest":{ + "type":"structure", + "required":["DirectoryId"], + "members":{ + "DirectoryId":{"shape":"DirectoryId"}, + "UserName":{"shape":"UserName"}, + "Password":{"shape":"ConnectPassword"} + } + }, + "DisableSsoResult":{ + "type":"structure", + "members":{ + } + }, + "DnsIpAddrs":{ + "type":"list", + "member":{"shape":"IpAddr"} + }, + "EnableRadiusRequest":{ + "type":"structure", + "required":[ + "DirectoryId", + "RadiusSettings" + ], + "members":{ + "DirectoryId":{"shape":"DirectoryId"}, + "RadiusSettings":{"shape":"RadiusSettings"} + } + }, + "EnableRadiusResult":{ + "type":"structure", + "members":{ + } + }, + "EnableSsoRequest":{ + "type":"structure", + "required":["DirectoryId"], + "members":{ + "DirectoryId":{"shape":"DirectoryId"}, + "UserName":{"shape":"UserName"}, + "Password":{"shape":"ConnectPassword"} + } + }, + "EnableSsoResult":{ + "type":"structure", + "members":{ + } + }, + "EntityAlreadyExistsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{"shape":"RequestId"} + }, + "exception":true + }, + "EntityDoesNotExistException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{"shape":"RequestId"} + }, + "exception":true + }, + "ExceptionMessage":{"type":"string"}, + "GetDirectoryLimitsRequest":{ + "type":"structure", + "members":{ + } + }, + "GetDirectoryLimitsResult":{ + "type":"structure", + "members":{ + "DirectoryLimits":{"shape":"DirectoryLimits"} + } + }, + "GetSnapshotLimitsRequest":{ + "type":"structure", + "required":["DirectoryId"], + "members":{ + "DirectoryId":{"shape":"DirectoryId"} + } + }, + "GetSnapshotLimitsResult":{ + "type":"structure", + "members":{ + "SnapshotLimits":{"shape":"SnapshotLimits"} + } + }, + "InsufficientPermissionsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{"shape":"RequestId"} + }, + "exception":true + }, + "InvalidNextTokenException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{"shape":"RequestId"} + }, + "exception":true + }, + "InvalidParameterException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{"shape":"RequestId"} + }, + "exception":true + }, + "IpAddr":{ + "type":"string", + "pattern":"^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" + }, + "IpAddrs":{ + "type":"list", + "member":{"shape":"IpAddr"} + }, + "LastUpdatedDateTime":{"type":"timestamp"}, + "LaunchTime":{"type":"timestamp"}, + "Limit":{ + "type":"integer", + "min":0 + }, + "ManualSnapshotsLimitReached":{"type":"boolean"}, + "NextToken":{"type":"string"}, + "OrganizationalUnitDN":{ + "type":"string", + "min":1, + "max":2000 + }, + "Password":{ + "type":"string", + "pattern":"(?=^.{8,64}$)((?=.*\\d)(?=.*[A-Z])(?=.*[a-z])|(?=.*\\d)(?=.*[^A-Za-z0-9])(?=.*[a-z])|(?=.*[^A-Za-z0-9])(?=.*[A-Z])(?=.*[a-z])|(?=.*\\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9]))^.*", + "sensitive":true + }, + "PortNumber":{ + "type":"integer", + "min":1025, + "max":65535 + }, + "RadiusAuthenticationProtocol":{ + "type":"string", + "enum":[ + "PAP", + "CHAP", + "MS-CHAPv1", + "MS-CHAPv2" + ] + }, + "RadiusDisplayLabel":{ + "type":"string", + "min":1, + "max":64 + }, + "RadiusRetries":{ + "type":"integer", + "min":0, + "max":10 + }, + "RadiusSettings":{ + "type":"structure", + "members":{ + "RadiusServers":{"shape":"Servers"}, + "RadiusPort":{"shape":"PortNumber"}, + "RadiusTimeout":{"shape":"RadiusTimeout"}, + "RadiusRetries":{"shape":"RadiusRetries"}, + "SharedSecret":{"shape":"RadiusSharedSecret"}, + "AuthenticationProtocol":{"shape":"RadiusAuthenticationProtocol"}, + "DisplayLabel":{"shape":"RadiusDisplayLabel"}, + "UseSameUsername":{"shape":"UseSameUsername"} + } + }, + "RadiusSharedSecret":{ + "type":"string", + "min":8, + "max":512, + "sensitive":true + }, + "RadiusStatus":{ + "type":"string", + "enum":[ + "Creating", + "Completed", + "Failed" + ] + }, + "RadiusTimeout":{ + "type":"integer", + "min":1, + "max":20 + }, + "RequestId":{ + "type":"string", + "pattern":"^([A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12})$" + }, + "RestoreFromSnapshotRequest":{ + "type":"structure", + "required":["SnapshotId"], + "members":{ + "SnapshotId":{"shape":"SnapshotId"} + } + }, + "RestoreFromSnapshotResult":{ + "type":"structure", + "members":{ + } + }, + "SID":{ + "type":"string", + "min":1, + "max":256, + "pattern":"[&\\w+-.@]+" + }, + "SecurityGroupId":{ + "type":"string", + "pattern":"^(sg-[0-9a-f]{8})$" + }, + "Server":{ + "type":"string", + "min":1, + "max":256 + }, + "Servers":{ + "type":"list", + "member":{"shape":"Server"} + }, + "ServiceException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{"shape":"RequestId"} + }, + "exception":true, + "fault":true + }, + "Snapshot":{ + "type":"structure", + "members":{ + "DirectoryId":{"shape":"DirectoryId"}, + "SnapshotId":{"shape":"SnapshotId"}, + "Type":{"shape":"SnapshotType"}, + "Name":{"shape":"SnapshotName"}, + "Status":{"shape":"SnapshotStatus"}, + "StartTime":{"shape":"StartTime"} + } + }, + "SnapshotId":{ + "type":"string", + "pattern":"^s-[0-9a-f]{10}$" + }, + "SnapshotIds":{ + "type":"list", + "member":{"shape":"SnapshotId"} + }, + "SnapshotLimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{"shape":"RequestId"} + }, + "exception":true + }, + "SnapshotLimits":{ + "type":"structure", + "members":{ + "ManualSnapshotsLimit":{"shape":"Limit"}, + "ManualSnapshotsCurrentCount":{"shape":"Limit"}, + "ManualSnapshotsLimitReached":{"shape":"ManualSnapshotsLimitReached"} + } + }, + "SnapshotName":{ + "type":"string", + "min":0, + "max":128, + "pattern":"^([a-zA-Z0-9_])[\\\\a-zA-Z0-9_@#%*+=:?./!\\s-]*$" + }, + "SnapshotStatus":{ + "type":"string", + "enum":[ + "Creating", + "Completed", + "Failed" + ] + }, + "SnapshotType":{ + "type":"string", + "enum":[ + "Auto", + "Manual" + ] + }, + "Snapshots":{ + "type":"list", + "member":{"shape":"Snapshot"} + }, + "SsoEnabled":{"type":"boolean"}, + "StageReason":{"type":"string"}, + "StartTime":{"type":"timestamp"}, + "SubnetId":{ + "type":"string", + "pattern":"^(subnet-[0-9a-f]{8})$" + }, + "SubnetIds":{ + "type":"list", + "member":{"shape":"SubnetId"} + }, + "UnsupportedOperationException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{"shape":"RequestId"} + }, + "exception":true + }, + "UpdateRadiusRequest":{ + "type":"structure", + "required":[ + "DirectoryId", + "RadiusSettings" + ], + "members":{ + "DirectoryId":{"shape":"DirectoryId"}, + "RadiusSettings":{"shape":"RadiusSettings"} + } + }, + "UpdateRadiusResult":{ + "type":"structure", + "members":{ + } + }, + "UseSameUsername":{"type":"boolean"}, + "UserName":{ + "type":"string", + "min":1, + "pattern":"[a-zA-Z0-9._-]+" + }, + "VpcId":{ + "type":"string", + "pattern":"^(vpc-[0-9a-f]{8})$" + } + } +} diff --git a/lib/aws-sdk/Aws/data/ds/2015-04-16/docs-2.json b/lib/aws-sdk/Aws/data/ds/2015-04-16/docs-2.json new file mode 100644 index 0000000..37b6968 --- /dev/null +++ b/lib/aws-sdk/Aws/data/ds/2015-04-16/docs-2.json @@ -0,0 +1,753 @@ +{ + "version": "2.0", + "operations": { + "ConnectDirectory": "

Creates an AD Connector to connect an on-premises directory.

", + "CreateAlias": "

Creates an alias for a directory and assigns the alias to the directory. The alias is used to construct the access URL for the directory, such as http://<alias>.awsapps.com.

After an alias has been created, it cannot be deleted or reused, so this operation should only be used when absolutely necessary.

", + "CreateComputer": "

Creates a computer account in the specified directory, and joins the computer to the directory.

", + "CreateDirectory": "

Creates a Simple AD directory.

", + "CreateSnapshot": "

Creates a snapshot of an existing directory.

You cannot take snapshots of extended or connected directories.

", + "DeleteDirectory": "

Deletes an AWS Directory Service directory.

", + "DeleteSnapshot": "

Deletes a directory snapshot.

", + "DescribeDirectories": "

Obtains information about the directories that belong to this account.

You can retrieve information about specific directories by passing the directory identifiers in the DirectoryIds parameter. Otherwise, all directories that belong to the current account are returned.

This operation supports pagination with the use of the NextToken request and response parameters. If more results are available, the DescribeDirectoriesResult.NextToken member contains a token that you pass in the next call to DescribeDirectories to retrieve the next set of items.

You can also specify a maximum number of return results with the Limit parameter.

", + "DescribeSnapshots": "

Obtains information about the directory snapshots that belong to this account.

This operation supports pagination with the use of the NextToken request and response parameters. If more results are available, the DescribeSnapshots.NextToken member contains a token that you pass in the next call to DescribeSnapshots to retrieve the next set of items.

You can also specify a maximum number of return results with the Limit parameter.

", + "DisableRadius": "

Disables multi-factor authentication (MFA) with Remote Authentication Dial In User Service (RADIUS) for an AD Connector directory.

", + "DisableSso": "

Disables single-sign on for a directory.

", + "EnableRadius": "

Enables multi-factor authentication (MFA) with Remote Authentication Dial In User Service (RADIUS) for an AD Connector directory.

", + "EnableSso": "

Enables single-sign on for a directory.

", + "GetDirectoryLimits": "

Obtains directory limit information for the current region.

", + "GetSnapshotLimits": "

Obtains the manual snapshot limits for a directory.

", + "RestoreFromSnapshot": "

Restores a directory using an existing directory snapshot.

When you restore a directory from a snapshot, any changes made to the directory after the snapshot date are overwritten.

This action returns as soon as the restore operation is initiated. You can monitor the progress of the restore operation by calling the DescribeDirectories operation with the directory identifier. When the DirectoryDescription.Stage value changes to Active, the restore operation is complete.

", + "UpdateRadius": "

Updates the Remote Authentication Dial In User Service (RADIUS) server information for an AD Connector directory.

" + }, + "service": "AWS Directory Service

This is the AWS Directory Service API Reference. This guide provides detailed information about AWS Directory Service operations, data types, parameters, and errors.

", + "shapes": { + "AccessUrl": { + "base": null, + "refs": { + "DirectoryDescription$AccessUrl": "

The access URL for the directory, such as http://<alias>.awsapps.com.

" + } + }, + "AliasName": { + "base": null, + "refs": { + "CreateAliasRequest$Alias": "

The requested alias.

The alias must be unique amongst all aliases in AWS. This operation will throw an EntityAlreadyExistsException if this alias already exists.

", + "CreateAliasResult$Alias": "

The alias for the directory.

", + "DirectoryDescription$Alias": "

The alias for the directory.

" + } + }, + "Attribute": { + "base": "

Represents a named directory attribute.

", + "refs": { + "Attributes$member": null + } + }, + "AttributeName": { + "base": null, + "refs": { + "Attribute$Name": "

The name of the attribute.

" + } + }, + "AttributeValue": { + "base": null, + "refs": { + "Attribute$Value": "

The value of the attribute.

" + } + }, + "Attributes": { + "base": null, + "refs": { + "Computer$ComputerAttributes": "

An array of Attribute objects that contain the LDAP attributes that belong to the computer account.

", + "CreateComputerRequest$ComputerAttributes": "

An array of Attribute objects that contain any LDAP attributes to apply to the computer account.

" + } + }, + "AuthenticationFailedException": { + "base": "

An authentication error occurred.

", + "refs": { + } + }, + "AvailabilityZone": { + "base": null, + "refs": { + "AvailabilityZones$member": null + } + }, + "AvailabilityZones": { + "base": null, + "refs": { + "DirectoryConnectSettingsDescription$AvailabilityZones": "

A list of the Availability Zones that the directory is in.

", + "DirectoryVpcSettingsDescription$AvailabilityZones": "

The list of Availability Zones that the directory is in.

" + } + }, + "ClientException": { + "base": "

A client exception has occurred.

", + "refs": { + } + }, + "CloudOnlyDirectoriesLimitReached": { + "base": null, + "refs": { + "DirectoryLimits$CloudOnlyDirectoriesLimitReached": "

Indicates if the cloud directory limit has been reached.

" + } + }, + "Computer": { + "base": "

Contains information about a computer account in a directory.

", + "refs": { + "CreateComputerResult$Computer": "

A Computer object the represents the computer account.

" + } + }, + "ComputerName": { + "base": null, + "refs": { + "Computer$ComputerName": "

The computer name.

", + "CreateComputerRequest$ComputerName": "

The name of the computer account.

" + } + }, + "ComputerPassword": { + "base": null, + "refs": { + "CreateComputerRequest$Password": "

A one-time password that is used to join the computer to the directory. You should generate a random, strong password to use for this parameter.

" + } + }, + "ConnectDirectoryRequest": { + "base": "

Contains the inputs for the ConnectDirectory operation.

", + "refs": { + } + }, + "ConnectDirectoryResult": { + "base": "

Contains the results of the ConnectDirectory operation.

", + "refs": { + } + }, + "ConnectPassword": { + "base": null, + "refs": { + "ConnectDirectoryRequest$Password": "

The password for the on-premises user account.

", + "DisableSsoRequest$Password": "

The password of an alternate account to use to disable single-sign on. This is only used for AD Connector directories. See the UserName parameter for more information.

", + "EnableSsoRequest$Password": "

The password of an alternate account to use to enable single-sign on. This is only used for AD Connector directories. See the UserName parameter for more information.

" + } + }, + "ConnectedDirectoriesLimitReached": { + "base": null, + "refs": { + "DirectoryLimits$ConnectedDirectoriesLimitReached": "

Indicates if the connected directory limit has been reached.

" + } + }, + "CreateAliasRequest": { + "base": "

Contains the inputs for the CreateAlias operation.

", + "refs": { + } + }, + "CreateAliasResult": { + "base": "

Contains the results of the CreateAlias operation.

", + "refs": { + } + }, + "CreateComputerRequest": { + "base": "

Contains the inputs for the CreateComputer operation.

", + "refs": { + } + }, + "CreateComputerResult": { + "base": "

Contains the results for the CreateComputer operation.

", + "refs": { + } + }, + "CreateDirectoryRequest": { + "base": "

Contains the inputs for the CreateDirectory operation.

", + "refs": { + } + }, + "CreateDirectoryResult": { + "base": "

Contains the results of the CreateDirectory operation.

", + "refs": { + } + }, + "CreateSnapshotRequest": { + "base": "

Contains the inputs for the CreateSnapshot operation.

", + "refs": { + } + }, + "CreateSnapshotResult": { + "base": "

Contains the results of the CreateSnapshot operation.

", + "refs": { + } + }, + "DeleteDirectoryRequest": { + "base": "

Contains the inputs for the DeleteDirectory operation.

", + "refs": { + } + }, + "DeleteDirectoryResult": { + "base": "

Contains the results of the DeleteDirectory operation.

", + "refs": { + } + }, + "DeleteSnapshotRequest": { + "base": "

Contains the inputs for the DeleteSnapshot operation.

", + "refs": { + } + }, + "DeleteSnapshotResult": { + "base": "

Contains the results of the DeleteSnapshot operation.

", + "refs": { + } + }, + "DescribeDirectoriesRequest": { + "base": "

Contains the inputs for the DescribeDirectories operation.

", + "refs": { + } + }, + "DescribeDirectoriesResult": { + "base": "

Contains the results of the DescribeDirectories operation.

", + "refs": { + } + }, + "DescribeSnapshotsRequest": { + "base": "

Contains the inputs for the DescribeSnapshots operation.

", + "refs": { + } + }, + "DescribeSnapshotsResult": { + "base": "

Contains the results of the DescribeSnapshots operation.

", + "refs": { + } + }, + "Description": { + "base": null, + "refs": { + "ConnectDirectoryRequest$Description": "

A textual description for the directory.

", + "CreateDirectoryRequest$Description": "

A textual description for the directory.

", + "DirectoryDescription$Description": "

The textual description for the directory.

" + } + }, + "DirectoryConnectSettings": { + "base": "

Contains information for the ConnectDirectory operation when an AD Connector directory is being created.

", + "refs": { + "ConnectDirectoryRequest$ConnectSettings": "

A DirectoryConnectSettings object that contains additional information for the operation.

" + } + }, + "DirectoryConnectSettingsDescription": { + "base": "

Contains information about an AD Connector directory.

", + "refs": { + "DirectoryDescription$ConnectSettings": "

A DirectoryConnectSettingsDescription object that contains additional information about an AD Connector directory. This member is only present if the directory is an AD Connector directory.

" + } + }, + "DirectoryDescription": { + "base": "

Contains information about an AWS Directory Service directory.

", + "refs": { + "DirectoryDescriptions$member": null + } + }, + "DirectoryDescriptions": { + "base": "

A list of directory descriptions.

", + "refs": { + "DescribeDirectoriesResult$DirectoryDescriptions": "

The list of DirectoryDescription objects that were retrieved.

It is possible that this list contains less than the number of items specified in the Limit member of the request. This occurs if there are less than the requested number of items left to retrieve, or if the limitations of the operation have been exceeded.

" + } + }, + "DirectoryId": { + "base": null, + "refs": { + "ConnectDirectoryResult$DirectoryId": "

The identifier of the new directory.

", + "CreateAliasRequest$DirectoryId": "

The identifier of the directory to create the alias for.

", + "CreateAliasResult$DirectoryId": "

The identifier of the directory.

", + "CreateComputerRequest$DirectoryId": "

The identifier of the directory to create the computer account in.

", + "CreateDirectoryResult$DirectoryId": "

The identifier of the directory that was created.

", + "CreateSnapshotRequest$DirectoryId": "

The identifier of the directory to take a snapshot of.

", + "DeleteDirectoryRequest$DirectoryId": "

The identifier of the directory to delete.

", + "DeleteDirectoryResult$DirectoryId": "

The directory identifier.

", + "DescribeSnapshotsRequest$DirectoryId": "

The identifier of the directory to retrieve snapshot information for.

", + "DirectoryDescription$DirectoryId": "

The directory identifier.

", + "DirectoryIds$member": null, + "DisableRadiusRequest$DirectoryId": "

The identifier of the directory to disable MFA for.

", + "DisableSsoRequest$DirectoryId": "

The identifier of the directory to disable single-sign on for.

", + "EnableRadiusRequest$DirectoryId": "

The identifier of the directory to enable MFA for.

", + "EnableSsoRequest$DirectoryId": "

The identifier of the directory to enable single-sign on for.

", + "GetSnapshotLimitsRequest$DirectoryId": "

Contains the identifier of the directory to obtain the limits for.

", + "Snapshot$DirectoryId": "

The directory identifier.

", + "UpdateRadiusRequest$DirectoryId": "

The identifier of the directory to update the RADIUS server information for.

" + } + }, + "DirectoryIds": { + "base": "

A list of directory identifiers.

", + "refs": { + "DescribeDirectoriesRequest$DirectoryIds": "

A list of identifiers of the directories to obtain the information for. If this member is null, all directories that belong to the current account are returned.

An empty list results in an InvalidParameterException being thrown.

" + } + }, + "DirectoryLimitExceededException": { + "base": "

The maximum number of directories in the region has been reached. You can use the GetDirectoryLimits operation to determine your directory limits in the region.

", + "refs": { + } + }, + "DirectoryLimits": { + "base": "

Contains directory limit information for a region.

", + "refs": { + "GetDirectoryLimitsResult$DirectoryLimits": "

A DirectoryLimits object that contains the directory limits for the current region.

" + } + }, + "DirectoryName": { + "base": null, + "refs": { + "ConnectDirectoryRequest$Name": "

The fully-qualified name of the on-premises directory, such as corp.example.com.

", + "CreateDirectoryRequest$Name": "

The fully qualified name for the directory, such as corp.example.com.

", + "DirectoryDescription$Name": "

The fully-qualified name of the directory.

" + } + }, + "DirectoryShortName": { + "base": null, + "refs": { + "ConnectDirectoryRequest$ShortName": "

The NetBIOS name of the on-premises directory, such as CORP.

", + "CreateDirectoryRequest$ShortName": "

The short name of the directory, such as CORP.

", + "DirectoryDescription$ShortName": "

The short name of the directory.

" + } + }, + "DirectorySize": { + "base": null, + "refs": { + "ConnectDirectoryRequest$Size": "

The size of the directory.

", + "CreateDirectoryRequest$Size": "

The size of the directory.

", + "DirectoryDescription$Size": "

The directory size.

" + } + }, + "DirectoryStage": { + "base": null, + "refs": { + "DirectoryDescription$Stage": "

The current stage of the directory.

" + } + }, + "DirectoryType": { + "base": null, + "refs": { + "DirectoryDescription$Type": "

The directory size.

" + } + }, + "DirectoryUnavailableException": { + "base": "

The specified directory is unavailable or could not be found.

", + "refs": { + } + }, + "DirectoryVpcSettings": { + "base": "

Contains information for the CreateDirectory operation when a Simple AD directory is being created.

", + "refs": { + "CreateDirectoryRequest$VpcSettings": "

A DirectoryVpcSettings object that contains additional information for the operation.

" + } + }, + "DirectoryVpcSettingsDescription": { + "base": "

Contains information about a Simple AD directory.

", + "refs": { + "DirectoryDescription$VpcSettings": "

A DirectoryVpcSettingsDescription object that contains additional information about a Simple AD directory. This member is only present if the directory is a Simple AD directory.

" + } + }, + "DisableRadiusRequest": { + "base": "

Contains the inputs for the DisableRadius operation.

", + "refs": { + } + }, + "DisableRadiusResult": { + "base": "

Contains the results of the DisableRadius operation.

", + "refs": { + } + }, + "DisableSsoRequest": { + "base": "

Contains the inputs for the DisableSso operation.

", + "refs": { + } + }, + "DisableSsoResult": { + "base": "

Contains the results of the DisableSso operation.

", + "refs": { + } + }, + "DnsIpAddrs": { + "base": null, + "refs": { + "DirectoryConnectSettings$CustomerDnsIps": "

A list of one or more IP addresses of DNS servers or domain controllers in the on-premises directory.

", + "DirectoryDescription$DnsIpAddrs": "

The IP addresses of the DNS servers for the directory. For a Simple AD directory, these are the IP addresses of the Simple AD directory servers. For an AD Connector directory, these are the IP addresses of the DNS servers or domain controllers in the on-premises directory that the AD Connector is connected to.

" + } + }, + "EnableRadiusRequest": { + "base": "

Contains the inputs for the EnableRadius operation.

", + "refs": { + } + }, + "EnableRadiusResult": { + "base": "

Contains the results of the EnableRadius operation.

", + "refs": { + } + }, + "EnableSsoRequest": { + "base": "

Contains the inputs for the EnableSso operation.

", + "refs": { + } + }, + "EnableSsoResult": { + "base": "

Contains the results of the EnableSso operation.

", + "refs": { + } + }, + "EntityAlreadyExistsException": { + "base": "

The specified entity already exists.

", + "refs": { + } + }, + "EntityDoesNotExistException": { + "base": "

The specified entity could not be found.

", + "refs": { + } + }, + "ExceptionMessage": { + "base": "

The descriptive message for the exception.

", + "refs": { + "AuthenticationFailedException$Message": "

The textual message for the exception.

", + "ClientException$Message": null, + "DirectoryLimitExceededException$Message": null, + "DirectoryUnavailableException$Message": null, + "EntityAlreadyExistsException$Message": null, + "EntityDoesNotExistException$Message": null, + "InsufficientPermissionsException$Message": null, + "InvalidNextTokenException$Message": null, + "InvalidParameterException$Message": null, + "ServiceException$Message": null, + "SnapshotLimitExceededException$Message": null, + "UnsupportedOperationException$Message": null + } + }, + "GetDirectoryLimitsRequest": { + "base": "

Contains the inputs for the GetDirectoryLimits operation.

", + "refs": { + } + }, + "GetDirectoryLimitsResult": { + "base": "

Contains the results of the GetDirectoryLimits operation.

", + "refs": { + } + }, + "GetSnapshotLimitsRequest": { + "base": "

Contains the inputs for the GetSnapshotLimits operation.

", + "refs": { + } + }, + "GetSnapshotLimitsResult": { + "base": "

Contains the results of the GetSnapshotLimits operation.

", + "refs": { + } + }, + "InsufficientPermissionsException": { + "base": "

The account does not have sufficient permission to perform the operation.

", + "refs": { + } + }, + "InvalidNextTokenException": { + "base": "

The NextToken value is not valid.

", + "refs": { + } + }, + "InvalidParameterException": { + "base": "

One or more parameters are not valid.

", + "refs": { + } + }, + "IpAddr": { + "base": null, + "refs": { + "DnsIpAddrs$member": null, + "IpAddrs$member": null + } + }, + "IpAddrs": { + "base": null, + "refs": { + "DirectoryConnectSettingsDescription$ConnectIps": "

The IP addresses of the AD Connector servers.

" + } + }, + "LastUpdatedDateTime": { + "base": null, + "refs": { + "DirectoryDescription$StageLastUpdatedDateTime": "

The date and time that the stage was last updated.

" + } + }, + "LaunchTime": { + "base": null, + "refs": { + "DirectoryDescription$LaunchTime": "

Specifies when the directory was created.

" + } + }, + "Limit": { + "base": null, + "refs": { + "DescribeDirectoriesRequest$Limit": "

The maximum number of items to return. If this value is zero, the maximum number of items is specified by the limitations of the operation.

", + "DescribeSnapshotsRequest$Limit": "

The maximum number of objects to return.

", + "DirectoryLimits$CloudOnlyDirectoriesLimit": "

The maximum number of cloud directories allowed in the region.

", + "DirectoryLimits$CloudOnlyDirectoriesCurrentCount": "

The current number of cloud directories in the region.

", + "DirectoryLimits$ConnectedDirectoriesLimit": "

The maximum number of connected directories allowed in the region.

", + "DirectoryLimits$ConnectedDirectoriesCurrentCount": "

The current number of connected directories in the region.

", + "SnapshotLimits$ManualSnapshotsLimit": "

The maximum number of manual snapshots allowed.

", + "SnapshotLimits$ManualSnapshotsCurrentCount": "

The current number of manual snapshots of the directory.

" + } + }, + "ManualSnapshotsLimitReached": { + "base": null, + "refs": { + "SnapshotLimits$ManualSnapshotsLimitReached": "

Indicates if the manual snapshot limit has been reached.

" + } + }, + "NextToken": { + "base": null, + "refs": { + "DescribeDirectoriesRequest$NextToken": "

The DescribeDirectoriesResult.NextToken value from a previous call to DescribeDirectories. Pass null if this is the first call.

", + "DescribeDirectoriesResult$NextToken": "

If not null, more results are available. Pass this value for the NextToken parameter in a subsequent call to DescribeDirectories to retrieve the next set of items.

", + "DescribeSnapshotsRequest$NextToken": "

The DescribeSnapshotsResult.NextToken value from a previous call to DescribeSnapshots. Pass null if this is the first call.

", + "DescribeSnapshotsResult$NextToken": "

If not null, more results are available. Pass this value in the NextToken member of a subsequent call to DescribeSnapshots.

" + } + }, + "OrganizationalUnitDN": { + "base": null, + "refs": { + "CreateComputerRequest$OrganizationalUnitDistinguishedName": "

The fully-qualified distinguished name of the organizational unit to place the computer account in.

" + } + }, + "Password": { + "base": null, + "refs": { + "CreateDirectoryRequest$Password": "

The password for the directory administrator. The directory creation process creates a directory administrator account with the username Administrator and this password.

" + } + }, + "PortNumber": { + "base": null, + "refs": { + "RadiusSettings$RadiusPort": "

The port that your RADIUS server is using for communications. Your on-premises network must allow inbound traffic over this port from the AWS Directory Service servers.

" + } + }, + "RadiusAuthenticationProtocol": { + "base": null, + "refs": { + "RadiusSettings$AuthenticationProtocol": "

The protocol specified for your RADIUS endpoints.

" + } + }, + "RadiusDisplayLabel": { + "base": null, + "refs": { + "RadiusSettings$DisplayLabel": "

Not currently used.

" + } + }, + "RadiusRetries": { + "base": null, + "refs": { + "RadiusSettings$RadiusRetries": "

The maximum number of times that communication with the RADIUS server is attempted.

" + } + }, + "RadiusSettings": { + "base": "

Contains information about a Remote Authentication Dial In User Service (RADIUS) server.

", + "refs": { + "DirectoryDescription$RadiusSettings": "

A RadiusSettings object that contains information about the RADIUS server configured for this directory.

", + "EnableRadiusRequest$RadiusSettings": "

A RadiusSettings object that contains information about the RADIUS server.

", + "UpdateRadiusRequest$RadiusSettings": "

A RadiusSettings object that contains information about the RADIUS server.

" + } + }, + "RadiusSharedSecret": { + "base": null, + "refs": { + "RadiusSettings$SharedSecret": "

The shared secret code that was specified when your RADIUS endpoints were created.

" + } + }, + "RadiusStatus": { + "base": null, + "refs": { + "DirectoryDescription$RadiusStatus": "

The status of the RADIUS MFA server connection.

" + } + }, + "RadiusTimeout": { + "base": null, + "refs": { + "RadiusSettings$RadiusTimeout": "

The amount of time, in seconds, to wait for the RADIUS server to respond.

" + } + }, + "RequestId": { + "base": "

The AWS request identifier.

", + "refs": { + "AuthenticationFailedException$RequestId": "

The identifier of the request that caused the exception.

", + "ClientException$RequestId": null, + "DirectoryLimitExceededException$RequestId": null, + "DirectoryUnavailableException$RequestId": null, + "EntityAlreadyExistsException$RequestId": null, + "EntityDoesNotExistException$RequestId": null, + "InsufficientPermissionsException$RequestId": null, + "InvalidNextTokenException$RequestId": null, + "InvalidParameterException$RequestId": null, + "ServiceException$RequestId": null, + "SnapshotLimitExceededException$RequestId": null, + "UnsupportedOperationException$RequestId": null + } + }, + "RestoreFromSnapshotRequest": { + "base": "

An object representing the inputs for the RestoreFromSnapshot operation.

", + "refs": { + } + }, + "RestoreFromSnapshotResult": { + "base": "

Contains the results of the RestoreFromSnapshot operation.

", + "refs": { + } + }, + "SID": { + "base": null, + "refs": { + "Computer$ComputerId": "

The identifier of the computer.

" + } + }, + "SecurityGroupId": { + "base": null, + "refs": { + "DirectoryConnectSettingsDescription$SecurityGroupId": "

The security group identifier for the AD Connector directory.

", + "DirectoryVpcSettingsDescription$SecurityGroupId": "

The security group identifier for the directory.

" + } + }, + "Server": { + "base": null, + "refs": { + "Servers$member": null + } + }, + "Servers": { + "base": null, + "refs": { + "RadiusSettings$RadiusServers": "

An array of strings that contains the IP addresses of the RADIUS server endpoints, or the IP addresses of your RADIUS server load balancer.

" + } + }, + "ServiceException": { + "base": "

An exception has occurred in AWS Directory Service.

", + "refs": { + } + }, + "Snapshot": { + "base": "

Describes a directory snapshot.

", + "refs": { + "Snapshots$member": null + } + }, + "SnapshotId": { + "base": null, + "refs": { + "CreateSnapshotResult$SnapshotId": "

The identifier of the snapshot that was created.

", + "DeleteSnapshotRequest$SnapshotId": "

The identifier of the directory snapshot to be deleted.

", + "DeleteSnapshotResult$SnapshotId": "

The identifier of the directory snapshot that was deleted.

", + "RestoreFromSnapshotRequest$SnapshotId": "

The identifier of the snapshot to restore from.

", + "Snapshot$SnapshotId": "

The snapshot identifier.

", + "SnapshotIds$member": null + } + }, + "SnapshotIds": { + "base": "

A list of directory snapshot identifiers.

", + "refs": { + "DescribeSnapshotsRequest$SnapshotIds": "

A list of identifiers of the snapshots to obtain the information for. If this member is null or empty, all snapshots are returned using the Limit and NextToken members.

" + } + }, + "SnapshotLimitExceededException": { + "base": "

The maximum number of manual snapshots for the directory has been reached. You can use the GetSnapshotLimits operation to determine the snapshot limits for a directory.

", + "refs": { + } + }, + "SnapshotLimits": { + "base": "

Contains manual snapshot limit information for a directory.

", + "refs": { + "GetSnapshotLimitsResult$SnapshotLimits": "

A SnapshotLimits object that contains the manual snapshot limits for the specified directory.

" + } + }, + "SnapshotName": { + "base": null, + "refs": { + "CreateSnapshotRequest$Name": "

The descriptive name to apply to the snapshot.

", + "Snapshot$Name": "

The descriptive name of the snapshot.

" + } + }, + "SnapshotStatus": { + "base": null, + "refs": { + "Snapshot$Status": "

The snapshot status.

" + } + }, + "SnapshotType": { + "base": null, + "refs": { + "Snapshot$Type": "

The snapshot type.

" + } + }, + "Snapshots": { + "base": "

A list of descriptions of directory snapshots.

", + "refs": { + "DescribeSnapshotsResult$Snapshots": "

The list of Snapshot objects that were retrieved.

It is possible that this list contains less than the number of items specified in the Limit member of the request. This occurs if there are less than the requested number of items left to retrieve, or if the limitations of the operation have been exceeded.

" + } + }, + "SsoEnabled": { + "base": null, + "refs": { + "DirectoryDescription$SsoEnabled": "

Indicates if single-sign on is enabled for the directory. For more information, see EnableSso and DisableSso.

" + } + }, + "StageReason": { + "base": null, + "refs": { + "DirectoryDescription$StageReason": "

Additional information about the directory stage.

" + } + }, + "StartTime": { + "base": null, + "refs": { + "Snapshot$StartTime": "

The date and time that the snapshot was taken.

" + } + }, + "SubnetId": { + "base": null, + "refs": { + "SubnetIds$member": null + } + }, + "SubnetIds": { + "base": null, + "refs": { + "DirectoryConnectSettings$SubnetIds": "

A list of subnet identifiers in the VPC that the AD Connector is created in.

", + "DirectoryConnectSettingsDescription$SubnetIds": "

A list of subnet identifiers in the VPC that the AD connector is in.

", + "DirectoryVpcSettings$SubnetIds": "

The identifiers of the subnets for the directory servers. The two subnets must be in different Availability Zones. AWS Directory Service creates a directory server and a DNS server in each of these subnets.

", + "DirectoryVpcSettingsDescription$SubnetIds": "

The identifiers of the subnets for the directory servers.

" + } + }, + "UnsupportedOperationException": { + "base": "

The operation is not supported.

", + "refs": { + } + }, + "UpdateRadiusRequest": { + "base": "

Contains the inputs for the UpdateRadius operation.

", + "refs": { + } + }, + "UpdateRadiusResult": { + "base": "

Contains the results of the UpdateRadius operation.

", + "refs": { + } + }, + "UseSameUsername": { + "base": null, + "refs": { + "RadiusSettings$UseSameUsername": "

Not currently used.

" + } + }, + "UserName": { + "base": null, + "refs": { + "DirectoryConnectSettings$CustomerUserName": "

The username of an account in the on-premises directory that is used to connect to the directory. This account must have the following privileges:

  • Read users and groups
  • Create computer objects
  • Join computers to the domain
", + "DirectoryConnectSettingsDescription$CustomerUserName": "

The username of the service account in the on-premises directory.

", + "DisableSsoRequest$UserName": "

The username of an alternate account to use to disable single-sign on. This is only used for AD Connector directories. This account must have privileges to remove a service principle name.

If the AD Connector service account does not have privileges to remove a service principle name, you can specify an alternate account with the UserName and Password parameters. These credentials are only used to disable single sign-on and are not stored by the service. The AD Connector service account is not changed.

", + "EnableSsoRequest$UserName": "

The username of an alternate account to use to enable single-sign on. This is only used for AD Connector directories. This account must have privileges to add a service principle name.

If the AD Connector service account does not have privileges to add a service principle name, you can specify an alternate account with the UserName and Password parameters. These credentials are only used to enable single sign-on and are not stored by the service. The AD Connector service account is not changed.

" + } + }, + "VpcId": { + "base": null, + "refs": { + "DirectoryConnectSettings$VpcId": "

The identifier of the VPC that the AD Connector is created in.

", + "DirectoryConnectSettingsDescription$VpcId": "

The identifier of the VPC that the AD Connector is in.

", + "DirectoryVpcSettings$VpcId": "

The identifier of the VPC to create the Simple AD directory in.

", + "DirectoryVpcSettingsDescription$VpcId": "

The identifier of the VPC that the directory is in.

" + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/dynamodb/2012-08-10/api-2.json b/lib/aws-sdk/Aws/data/dynamodb/2012-08-10/api-2.json new file mode 100644 index 0000000..b7a1fbc --- /dev/null +++ b/lib/aws-sdk/Aws/data/dynamodb/2012-08-10/api-2.json @@ -0,0 +1,1290 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2012-08-10", + "endpointPrefix":"dynamodb", + "jsonVersion":"1.0", + "serviceAbbreviation":"DynamoDB", + "serviceFullName":"Amazon DynamoDB", + "signatureVersion":"v4", + "targetPrefix":"DynamoDB_20120810", + "protocol":"json" + }, + "operations":{ + "BatchGetItem":{ + "name":"BatchGetItem", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchGetItemInput"}, + "output":{"shape":"BatchGetItemOutput"}, + "errors":[ + { + "shape":"ProvisionedThroughputExceededException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"InternalServerError", + "exception":true, + "fault":true + } + ] + }, + "BatchWriteItem":{ + "name":"BatchWriteItem", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchWriteItemInput"}, + "output":{"shape":"BatchWriteItemOutput"}, + "errors":[ + { + "shape":"ProvisionedThroughputExceededException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"ItemCollectionSizeLimitExceededException", + "exception":true + }, + { + "shape":"InternalServerError", + "exception":true, + "fault":true + } + ] + }, + "CreateTable":{ + "name":"CreateTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateTableInput"}, + "output":{"shape":"CreateTableOutput"}, + "errors":[ + { + "shape":"ResourceInUseException", + "exception":true + }, + { + "shape":"LimitExceededException", + "exception":true + }, + { + "shape":"InternalServerError", + "exception":true, + "fault":true + } + ] + }, + "DeleteItem":{ + "name":"DeleteItem", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteItemInput"}, + "output":{"shape":"DeleteItemOutput"}, + "errors":[ + { + "shape":"ConditionalCheckFailedException", + "exception":true + }, + { + "shape":"ProvisionedThroughputExceededException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"ItemCollectionSizeLimitExceededException", + "exception":true + }, + { + "shape":"InternalServerError", + "exception":true, + "fault":true + } + ] + }, + "DeleteTable":{ + "name":"DeleteTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTableInput"}, + "output":{"shape":"DeleteTableOutput"}, + "errors":[ + { + "shape":"ResourceInUseException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"LimitExceededException", + "exception":true + }, + { + "shape":"InternalServerError", + "exception":true, + "fault":true + } + ] + }, + "DescribeTable":{ + "name":"DescribeTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTableInput"}, + "output":{"shape":"DescribeTableOutput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"InternalServerError", + "exception":true, + "fault":true + } + ] + }, + "GetItem":{ + "name":"GetItem", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetItemInput"}, + "output":{"shape":"GetItemOutput"}, + "errors":[ + { + "shape":"ProvisionedThroughputExceededException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"InternalServerError", + "exception":true, + "fault":true + } + ] + }, + "ListTables":{ + "name":"ListTables", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTablesInput"}, + "output":{"shape":"ListTablesOutput"}, + "errors":[ + { + "shape":"InternalServerError", + "exception":true, + "fault":true + } + ] + }, + "PutItem":{ + "name":"PutItem", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutItemInput"}, + "output":{"shape":"PutItemOutput"}, + "errors":[ + { + "shape":"ConditionalCheckFailedException", + "exception":true + }, + { + "shape":"ProvisionedThroughputExceededException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"ItemCollectionSizeLimitExceededException", + "exception":true + }, + { + "shape":"InternalServerError", + "exception":true, + "fault":true + } + ] + }, + "Query":{ + "name":"Query", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"QueryInput"}, + "output":{"shape":"QueryOutput"}, + "errors":[ + { + "shape":"ProvisionedThroughputExceededException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"InternalServerError", + "exception":true, + "fault":true + } + ] + }, + "Scan":{ + "name":"Scan", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ScanInput"}, + "output":{"shape":"ScanOutput"}, + "errors":[ + { + "shape":"ProvisionedThroughputExceededException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"InternalServerError", + "exception":true, + "fault":true + } + ] + }, + "UpdateItem":{ + "name":"UpdateItem", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateItemInput"}, + "output":{"shape":"UpdateItemOutput"}, + "errors":[ + { + "shape":"ConditionalCheckFailedException", + "exception":true + }, + { + "shape":"ProvisionedThroughputExceededException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"ItemCollectionSizeLimitExceededException", + "exception":true + }, + { + "shape":"InternalServerError", + "exception":true, + "fault":true + } + ] + }, + "UpdateTable":{ + "name":"UpdateTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateTableInput"}, + "output":{"shape":"UpdateTableOutput"}, + "errors":[ + { + "shape":"ResourceInUseException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"LimitExceededException", + "exception":true + }, + { + "shape":"InternalServerError", + "exception":true, + "fault":true + } + ] + } + }, + "shapes":{ + "AttributeAction":{ + "type":"string", + "enum":[ + "ADD", + "PUT", + "DELETE" + ] + }, + "AttributeDefinition":{ + "type":"structure", + "required":[ + "AttributeName", + "AttributeType" + ], + "members":{ + "AttributeName":{"shape":"KeySchemaAttributeName"}, + "AttributeType":{"shape":"ScalarAttributeType"} + } + }, + "AttributeDefinitions":{ + "type":"list", + "member":{"shape":"AttributeDefinition"} + }, + "AttributeMap":{ + "type":"map", + "key":{"shape":"AttributeName"}, + "value":{"shape":"AttributeValue"} + }, + "AttributeName":{ + "type":"string", + "max":65535 + }, + "AttributeNameList":{ + "type":"list", + "member":{"shape":"AttributeName"}, + "min":1 + }, + "AttributeUpdates":{ + "type":"map", + "key":{"shape":"AttributeName"}, + "value":{"shape":"AttributeValueUpdate"} + }, + "AttributeValue":{ + "type":"structure", + "members":{ + "S":{"shape":"StringAttributeValue"}, + "N":{"shape":"NumberAttributeValue"}, + "B":{"shape":"BinaryAttributeValue"}, + "SS":{"shape":"StringSetAttributeValue"}, + "NS":{"shape":"NumberSetAttributeValue"}, + "BS":{"shape":"BinarySetAttributeValue"}, + "M":{"shape":"MapAttributeValue"}, + "L":{"shape":"ListAttributeValue"}, + "NULL":{"shape":"NullAttributeValue"}, + "BOOL":{"shape":"BooleanAttributeValue"} + } + }, + "AttributeValueList":{ + "type":"list", + "member":{"shape":"AttributeValue"} + }, + "AttributeValueUpdate":{ + "type":"structure", + "members":{ + "Value":{"shape":"AttributeValue"}, + "Action":{"shape":"AttributeAction"} + } + }, + "Backfilling":{"type":"boolean"}, + "BatchGetItemInput":{ + "type":"structure", + "required":["RequestItems"], + "members":{ + "RequestItems":{"shape":"BatchGetRequestMap"}, + "ReturnConsumedCapacity":{"shape":"ReturnConsumedCapacity"} + } + }, + "BatchGetItemOutput":{ + "type":"structure", + "members":{ + "Responses":{"shape":"BatchGetResponseMap"}, + "UnprocessedKeys":{"shape":"BatchGetRequestMap"}, + "ConsumedCapacity":{"shape":"ConsumedCapacityMultiple"} + } + }, + "BatchGetRequestMap":{ + "type":"map", + "key":{"shape":"TableName"}, + "value":{"shape":"KeysAndAttributes"}, + "min":1, + "max":100 + }, + "BatchGetResponseMap":{ + "type":"map", + "key":{"shape":"TableName"}, + "value":{"shape":"ItemList"} + }, + "BatchWriteItemInput":{ + "type":"structure", + "required":["RequestItems"], + "members":{ + "RequestItems":{"shape":"BatchWriteItemRequestMap"}, + "ReturnConsumedCapacity":{"shape":"ReturnConsumedCapacity"}, + "ReturnItemCollectionMetrics":{"shape":"ReturnItemCollectionMetrics"} + } + }, + "BatchWriteItemOutput":{ + "type":"structure", + "members":{ + "UnprocessedItems":{"shape":"BatchWriteItemRequestMap"}, + "ItemCollectionMetrics":{"shape":"ItemCollectionMetricsPerTable"}, + "ConsumedCapacity":{"shape":"ConsumedCapacityMultiple"} + } + }, + "BatchWriteItemRequestMap":{ + "type":"map", + "key":{"shape":"TableName"}, + "value":{"shape":"WriteRequests"}, + "min":1, + "max":25 + }, + "BinaryAttributeValue":{"type":"blob"}, + "BinarySetAttributeValue":{ + "type":"list", + "member":{"shape":"BinaryAttributeValue"} + }, + "BooleanAttributeValue":{"type":"boolean"}, + "BooleanObject":{"type":"boolean"}, + "Capacity":{ + "type":"structure", + "members":{ + "CapacityUnits":{"shape":"ConsumedCapacityUnits"} + } + }, + "ComparisonOperator":{ + "type":"string", + "enum":[ + "EQ", + "NE", + "IN", + "LE", + "LT", + "GE", + "GT", + "BETWEEN", + "NOT_NULL", + "NULL", + "CONTAINS", + "NOT_CONTAINS", + "BEGINS_WITH" + ] + }, + "Condition":{ + "type":"structure", + "required":["ComparisonOperator"], + "members":{ + "AttributeValueList":{"shape":"AttributeValueList"}, + "ComparisonOperator":{"shape":"ComparisonOperator"} + } + }, + "ConditionExpression":{"type":"string"}, + "ConditionalCheckFailedException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ConditionalOperator":{ + "type":"string", + "enum":[ + "AND", + "OR" + ] + }, + "ConsistentRead":{"type":"boolean"}, + "ConsumedCapacity":{ + "type":"structure", + "members":{ + "TableName":{"shape":"TableName"}, + "CapacityUnits":{"shape":"ConsumedCapacityUnits"}, + "Table":{"shape":"Capacity"}, + "LocalSecondaryIndexes":{"shape":"SecondaryIndexesCapacityMap"}, + "GlobalSecondaryIndexes":{"shape":"SecondaryIndexesCapacityMap"} + } + }, + "ConsumedCapacityMultiple":{ + "type":"list", + "member":{"shape":"ConsumedCapacity"} + }, + "ConsumedCapacityUnits":{"type":"double"}, + "CreateGlobalSecondaryIndexAction":{ + "type":"structure", + "required":[ + "IndexName", + "KeySchema", + "Projection", + "ProvisionedThroughput" + ], + "members":{ + "IndexName":{"shape":"IndexName"}, + "KeySchema":{"shape":"KeySchema"}, + "Projection":{"shape":"Projection"}, + "ProvisionedThroughput":{"shape":"ProvisionedThroughput"} + } + }, + "CreateTableInput":{ + "type":"structure", + "required":[ + "AttributeDefinitions", + "TableName", + "KeySchema", + "ProvisionedThroughput" + ], + "members":{ + "AttributeDefinitions":{"shape":"AttributeDefinitions"}, + "TableName":{"shape":"TableName"}, + "KeySchema":{"shape":"KeySchema"}, + "LocalSecondaryIndexes":{"shape":"LocalSecondaryIndexList"}, + "GlobalSecondaryIndexes":{"shape":"GlobalSecondaryIndexList"}, + "ProvisionedThroughput":{"shape":"ProvisionedThroughput"} + } + }, + "CreateTableOutput":{ + "type":"structure", + "members":{ + "TableDescription":{"shape":"TableDescription"} + } + }, + "Date":{"type":"timestamp"}, + "DeleteGlobalSecondaryIndexAction":{ + "type":"structure", + "required":["IndexName"], + "members":{ + "IndexName":{"shape":"IndexName"} + } + }, + "DeleteItemInput":{ + "type":"structure", + "required":[ + "TableName", + "Key" + ], + "members":{ + "TableName":{"shape":"TableName"}, + "Key":{"shape":"Key"}, + "Expected":{"shape":"ExpectedAttributeMap"}, + "ConditionalOperator":{"shape":"ConditionalOperator"}, + "ReturnValues":{"shape":"ReturnValue"}, + "ReturnConsumedCapacity":{"shape":"ReturnConsumedCapacity"}, + "ReturnItemCollectionMetrics":{"shape":"ReturnItemCollectionMetrics"}, + "ConditionExpression":{"shape":"ConditionExpression"}, + "ExpressionAttributeNames":{"shape":"ExpressionAttributeNameMap"}, + "ExpressionAttributeValues":{"shape":"ExpressionAttributeValueMap"} + } + }, + "DeleteItemOutput":{ + "type":"structure", + "members":{ + "Attributes":{"shape":"AttributeMap"}, + "ConsumedCapacity":{"shape":"ConsumedCapacity"}, + "ItemCollectionMetrics":{"shape":"ItemCollectionMetrics"} + } + }, + "DeleteRequest":{ + "type":"structure", + "required":["Key"], + "members":{ + "Key":{"shape":"Key"} + } + }, + "DeleteTableInput":{ + "type":"structure", + "required":["TableName"], + "members":{ + "TableName":{"shape":"TableName"} + } + }, + "DeleteTableOutput":{ + "type":"structure", + "members":{ + "TableDescription":{"shape":"TableDescription"} + } + }, + "DescribeTableInput":{ + "type":"structure", + "required":["TableName"], + "members":{ + "TableName":{"shape":"TableName"} + } + }, + "DescribeTableOutput":{ + "type":"structure", + "members":{ + "Table":{"shape":"TableDescription"} + } + }, + "ErrorMessage":{"type":"string"}, + "ExpectedAttributeMap":{ + "type":"map", + "key":{"shape":"AttributeName"}, + "value":{"shape":"ExpectedAttributeValue"} + }, + "ExpectedAttributeValue":{ + "type":"structure", + "members":{ + "Value":{"shape":"AttributeValue"}, + "Exists":{"shape":"BooleanObject"}, + "ComparisonOperator":{"shape":"ComparisonOperator"}, + "AttributeValueList":{"shape":"AttributeValueList"} + } + }, + "ExpressionAttributeNameMap":{ + "type":"map", + "key":{"shape":"ExpressionAttributeNameVariable"}, + "value":{"shape":"AttributeName"} + }, + "ExpressionAttributeNameVariable":{"type":"string"}, + "ExpressionAttributeValueMap":{ + "type":"map", + "key":{"shape":"ExpressionAttributeValueVariable"}, + "value":{"shape":"AttributeValue"} + }, + "ExpressionAttributeValueVariable":{"type":"string"}, + "FilterConditionMap":{ + "type":"map", + "key":{"shape":"AttributeName"}, + "value":{"shape":"Condition"} + }, + "GetItemInput":{ + "type":"structure", + "required":[ + "TableName", + "Key" + ], + "members":{ + "TableName":{"shape":"TableName"}, + "Key":{"shape":"Key"}, + "AttributesToGet":{"shape":"AttributeNameList"}, + "ConsistentRead":{"shape":"ConsistentRead"}, + "ReturnConsumedCapacity":{"shape":"ReturnConsumedCapacity"}, + "ProjectionExpression":{"shape":"ProjectionExpression"}, + "ExpressionAttributeNames":{"shape":"ExpressionAttributeNameMap"} + } + }, + "GetItemOutput":{ + "type":"structure", + "members":{ + "Item":{"shape":"AttributeMap"}, + "ConsumedCapacity":{"shape":"ConsumedCapacity"} + } + }, + "GlobalSecondaryIndex":{ + "type":"structure", + "required":[ + "IndexName", + "KeySchema", + "Projection", + "ProvisionedThroughput" + ], + "members":{ + "IndexName":{"shape":"IndexName"}, + "KeySchema":{"shape":"KeySchema"}, + "Projection":{"shape":"Projection"}, + "ProvisionedThroughput":{"shape":"ProvisionedThroughput"} + } + }, + "GlobalSecondaryIndexDescription":{ + "type":"structure", + "members":{ + "IndexName":{"shape":"IndexName"}, + "KeySchema":{"shape":"KeySchema"}, + "Projection":{"shape":"Projection"}, + "IndexStatus":{"shape":"IndexStatus"}, + "Backfilling":{"shape":"Backfilling"}, + "ProvisionedThroughput":{"shape":"ProvisionedThroughputDescription"}, + "IndexSizeBytes":{"shape":"Long"}, + "ItemCount":{"shape":"Long"} + } + }, + "GlobalSecondaryIndexDescriptionList":{ + "type":"list", + "member":{"shape":"GlobalSecondaryIndexDescription"} + }, + "GlobalSecondaryIndexList":{ + "type":"list", + "member":{"shape":"GlobalSecondaryIndex"} + }, + "GlobalSecondaryIndexUpdate":{ + "type":"structure", + "members":{ + "Update":{"shape":"UpdateGlobalSecondaryIndexAction"}, + "Create":{"shape":"CreateGlobalSecondaryIndexAction"}, + "Delete":{"shape":"DeleteGlobalSecondaryIndexAction"} + } + }, + "GlobalSecondaryIndexUpdateList":{ + "type":"list", + "member":{"shape":"GlobalSecondaryIndexUpdate"} + }, + "IndexName":{ + "type":"string", + "min":3, + "max":255, + "pattern":"[a-zA-Z0-9_.-]+" + }, + "IndexStatus":{ + "type":"string", + "enum":[ + "CREATING", + "UPDATING", + "DELETING", + "ACTIVE" + ] + }, + "Integer":{"type":"integer"}, + "InternalServerError":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true, + "fault":true + }, + "ItemCollectionKeyAttributeMap":{ + "type":"map", + "key":{"shape":"AttributeName"}, + "value":{"shape":"AttributeValue"} + }, + "ItemCollectionMetrics":{ + "type":"structure", + "members":{ + "ItemCollectionKey":{"shape":"ItemCollectionKeyAttributeMap"}, + "SizeEstimateRangeGB":{"shape":"ItemCollectionSizeEstimateRange"} + } + }, + "ItemCollectionMetricsMultiple":{ + "type":"list", + "member":{"shape":"ItemCollectionMetrics"} + }, + "ItemCollectionMetricsPerTable":{ + "type":"map", + "key":{"shape":"TableName"}, + "value":{"shape":"ItemCollectionMetricsMultiple"} + }, + "ItemCollectionSizeEstimateBound":{"type":"double"}, + "ItemCollectionSizeEstimateRange":{ + "type":"list", + "member":{"shape":"ItemCollectionSizeEstimateBound"} + }, + "ItemCollectionSizeLimitExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ItemList":{ + "type":"list", + "member":{"shape":"AttributeMap"} + }, + "Key":{ + "type":"map", + "key":{"shape":"AttributeName"}, + "value":{"shape":"AttributeValue"} + }, + "KeyConditions":{ + "type":"map", + "key":{"shape":"AttributeName"}, + "value":{"shape":"Condition"} + }, + "KeyExpression":{"type":"string"}, + "KeyList":{ + "type":"list", + "member":{"shape":"Key"}, + "min":1, + "max":100 + }, + "KeySchema":{ + "type":"list", + "member":{"shape":"KeySchemaElement"}, + "min":1, + "max":2 + }, + "KeySchemaAttributeName":{ + "type":"string", + "min":1, + "max":255 + }, + "KeySchemaElement":{ + "type":"structure", + "required":[ + "AttributeName", + "KeyType" + ], + "members":{ + "AttributeName":{"shape":"KeySchemaAttributeName"}, + "KeyType":{"shape":"KeyType"} + } + }, + "KeyType":{ + "type":"string", + "enum":[ + "HASH", + "RANGE" + ] + }, + "KeysAndAttributes":{ + "type":"structure", + "required":["Keys"], + "members":{ + "Keys":{"shape":"KeyList"}, + "AttributesToGet":{"shape":"AttributeNameList"}, + "ConsistentRead":{"shape":"ConsistentRead"}, + "ProjectionExpression":{"shape":"ProjectionExpression"}, + "ExpressionAttributeNames":{"shape":"ExpressionAttributeNameMap"} + } + }, + "LimitExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ListAttributeValue":{ + "type":"list", + "member":{"shape":"AttributeValue"} + }, + "ListTablesInput":{ + "type":"structure", + "members":{ + "ExclusiveStartTableName":{"shape":"TableName"}, + "Limit":{"shape":"ListTablesInputLimit"} + } + }, + "ListTablesInputLimit":{ + "type":"integer", + "min":1, + "max":100 + }, + "ListTablesOutput":{ + "type":"structure", + "members":{ + "TableNames":{"shape":"TableNameList"}, + "LastEvaluatedTableName":{"shape":"TableName"} + } + }, + "LocalSecondaryIndex":{ + "type":"structure", + "required":[ + "IndexName", + "KeySchema", + "Projection" + ], + "members":{ + "IndexName":{"shape":"IndexName"}, + "KeySchema":{"shape":"KeySchema"}, + "Projection":{"shape":"Projection"} + } + }, + "LocalSecondaryIndexDescription":{ + "type":"structure", + "members":{ + "IndexName":{"shape":"IndexName"}, + "KeySchema":{"shape":"KeySchema"}, + "Projection":{"shape":"Projection"}, + "IndexSizeBytes":{"shape":"Long"}, + "ItemCount":{"shape":"Long"} + } + }, + "LocalSecondaryIndexDescriptionList":{ + "type":"list", + "member":{"shape":"LocalSecondaryIndexDescription"} + }, + "LocalSecondaryIndexList":{ + "type":"list", + "member":{"shape":"LocalSecondaryIndex"} + }, + "Long":{"type":"long"}, + "MapAttributeValue":{ + "type":"map", + "key":{"shape":"AttributeName"}, + "value":{"shape":"AttributeValue"} + }, + "NonKeyAttributeName":{ + "type":"string", + "min":1, + "max":255 + }, + "NonKeyAttributeNameList":{ + "type":"list", + "member":{"shape":"NonKeyAttributeName"}, + "min":1, + "max":20 + }, + "NullAttributeValue":{"type":"boolean"}, + "NumberAttributeValue":{"type":"string"}, + "NumberSetAttributeValue":{ + "type":"list", + "member":{"shape":"NumberAttributeValue"} + }, + "PositiveIntegerObject":{ + "type":"integer", + "min":1 + }, + "PositiveLongObject":{ + "type":"long", + "min":1 + }, + "Projection":{ + "type":"structure", + "members":{ + "ProjectionType":{"shape":"ProjectionType"}, + "NonKeyAttributes":{"shape":"NonKeyAttributeNameList"} + } + }, + "ProjectionExpression":{"type":"string"}, + "ProjectionType":{ + "type":"string", + "enum":[ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ] + }, + "ProvisionedThroughput":{ + "type":"structure", + "required":[ + "ReadCapacityUnits", + "WriteCapacityUnits" + ], + "members":{ + "ReadCapacityUnits":{"shape":"PositiveLongObject"}, + "WriteCapacityUnits":{"shape":"PositiveLongObject"} + } + }, + "ProvisionedThroughputDescription":{ + "type":"structure", + "members":{ + "LastIncreaseDateTime":{"shape":"Date"}, + "LastDecreaseDateTime":{"shape":"Date"}, + "NumberOfDecreasesToday":{"shape":"PositiveLongObject"}, + "ReadCapacityUnits":{"shape":"PositiveLongObject"}, + "WriteCapacityUnits":{"shape":"PositiveLongObject"} + } + }, + "ProvisionedThroughputExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "PutItemInput":{ + "type":"structure", + "required":[ + "TableName", + "Item" + ], + "members":{ + "TableName":{"shape":"TableName"}, + "Item":{"shape":"PutItemInputAttributeMap"}, + "Expected":{"shape":"ExpectedAttributeMap"}, + "ReturnValues":{"shape":"ReturnValue"}, + "ReturnConsumedCapacity":{"shape":"ReturnConsumedCapacity"}, + "ReturnItemCollectionMetrics":{"shape":"ReturnItemCollectionMetrics"}, + "ConditionalOperator":{"shape":"ConditionalOperator"}, + "ConditionExpression":{"shape":"ConditionExpression"}, + "ExpressionAttributeNames":{"shape":"ExpressionAttributeNameMap"}, + "ExpressionAttributeValues":{"shape":"ExpressionAttributeValueMap"} + } + }, + "PutItemInputAttributeMap":{ + "type":"map", + "key":{"shape":"AttributeName"}, + "value":{"shape":"AttributeValue"} + }, + "PutItemOutput":{ + "type":"structure", + "members":{ + "Attributes":{"shape":"AttributeMap"}, + "ConsumedCapacity":{"shape":"ConsumedCapacity"}, + "ItemCollectionMetrics":{"shape":"ItemCollectionMetrics"} + } + }, + "PutRequest":{ + "type":"structure", + "required":["Item"], + "members":{ + "Item":{"shape":"PutItemInputAttributeMap"} + } + }, + "QueryInput":{ + "type":"structure", + "required":["TableName"], + "members":{ + "TableName":{"shape":"TableName"}, + "IndexName":{"shape":"IndexName"}, + "Select":{"shape":"Select"}, + "AttributesToGet":{"shape":"AttributeNameList"}, + "Limit":{"shape":"PositiveIntegerObject"}, + "ConsistentRead":{"shape":"ConsistentRead"}, + "KeyConditions":{"shape":"KeyConditions"}, + "QueryFilter":{"shape":"FilterConditionMap"}, + "ConditionalOperator":{"shape":"ConditionalOperator"}, + "ScanIndexForward":{"shape":"BooleanObject"}, + "ExclusiveStartKey":{"shape":"Key"}, + "ReturnConsumedCapacity":{"shape":"ReturnConsumedCapacity"}, + "ProjectionExpression":{"shape":"ProjectionExpression"}, + "FilterExpression":{"shape":"ConditionExpression"}, + "KeyConditionExpression":{"shape":"KeyExpression"}, + "ExpressionAttributeNames":{"shape":"ExpressionAttributeNameMap"}, + "ExpressionAttributeValues":{"shape":"ExpressionAttributeValueMap"} + } + }, + "QueryOutput":{ + "type":"structure", + "members":{ + "Items":{"shape":"ItemList"}, + "Count":{"shape":"Integer"}, + "ScannedCount":{"shape":"Integer"}, + "LastEvaluatedKey":{"shape":"Key"}, + "ConsumedCapacity":{"shape":"ConsumedCapacity"} + } + }, + "ResourceInUseException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ReturnConsumedCapacity":{ + "type":"string", + "enum":[ + "INDEXES", + "TOTAL", + "NONE" + ] + }, + "ReturnItemCollectionMetrics":{ + "type":"string", + "enum":[ + "SIZE", + "NONE" + ] + }, + "ReturnValue":{ + "type":"string", + "enum":[ + "NONE", + "ALL_OLD", + "UPDATED_OLD", + "ALL_NEW", + "UPDATED_NEW" + ] + }, + "ScalarAttributeType":{ + "type":"string", + "enum":[ + "S", + "N", + "B" + ] + }, + "ScanInput":{ + "type":"structure", + "required":["TableName"], + "members":{ + "TableName":{"shape":"TableName"}, + "IndexName":{"shape":"IndexName"}, + "AttributesToGet":{"shape":"AttributeNameList"}, + "Limit":{"shape":"PositiveIntegerObject"}, + "Select":{"shape":"Select"}, + "ScanFilter":{"shape":"FilterConditionMap"}, + "ConditionalOperator":{"shape":"ConditionalOperator"}, + "ExclusiveStartKey":{"shape":"Key"}, + "ReturnConsumedCapacity":{"shape":"ReturnConsumedCapacity"}, + "TotalSegments":{"shape":"ScanTotalSegments"}, + "Segment":{"shape":"ScanSegment"}, + "ProjectionExpression":{"shape":"ProjectionExpression"}, + "FilterExpression":{"shape":"ConditionExpression"}, + "ExpressionAttributeNames":{"shape":"ExpressionAttributeNameMap"}, + "ExpressionAttributeValues":{"shape":"ExpressionAttributeValueMap"} + } + }, + "ScanOutput":{ + "type":"structure", + "members":{ + "Items":{"shape":"ItemList"}, + "Count":{"shape":"Integer"}, + "ScannedCount":{"shape":"Integer"}, + "LastEvaluatedKey":{"shape":"Key"}, + "ConsumedCapacity":{"shape":"ConsumedCapacity"} + } + }, + "ScanSegment":{ + "type":"integer", + "min":0, + "max":999999 + }, + "ScanTotalSegments":{ + "type":"integer", + "min":1, + "max":1000000 + }, + "SecondaryIndexesCapacityMap":{ + "type":"map", + "key":{"shape":"IndexName"}, + "value":{"shape":"Capacity"} + }, + "Select":{ + "type":"string", + "enum":[ + "ALL_ATTRIBUTES", + "ALL_PROJECTED_ATTRIBUTES", + "SPECIFIC_ATTRIBUTES", + "COUNT" + ] + }, + "StringAttributeValue":{"type":"string"}, + "StringSetAttributeValue":{ + "type":"list", + "member":{"shape":"StringAttributeValue"} + }, + "TableDescription":{ + "type":"structure", + "members":{ + "AttributeDefinitions":{"shape":"AttributeDefinitions"}, + "TableName":{"shape":"TableName"}, + "KeySchema":{"shape":"KeySchema"}, + "TableStatus":{"shape":"TableStatus"}, + "CreationDateTime":{"shape":"Date"}, + "ProvisionedThroughput":{"shape":"ProvisionedThroughputDescription"}, + "TableSizeBytes":{"shape":"Long"}, + "ItemCount":{"shape":"Long"}, + "LocalSecondaryIndexes":{"shape":"LocalSecondaryIndexDescriptionList"}, + "GlobalSecondaryIndexes":{"shape":"GlobalSecondaryIndexDescriptionList"} + } + }, + "TableName":{ + "type":"string", + "min":3, + "max":255, + "pattern":"[a-zA-Z0-9_.-]+" + }, + "TableNameList":{ + "type":"list", + "member":{"shape":"TableName"} + }, + "TableStatus":{ + "type":"string", + "enum":[ + "CREATING", + "UPDATING", + "DELETING", + "ACTIVE" + ] + }, + "UpdateExpression":{"type":"string"}, + "UpdateGlobalSecondaryIndexAction":{ + "type":"structure", + "required":[ + "IndexName", + "ProvisionedThroughput" + ], + "members":{ + "IndexName":{"shape":"IndexName"}, + "ProvisionedThroughput":{"shape":"ProvisionedThroughput"} + } + }, + "UpdateItemInput":{ + "type":"structure", + "required":[ + "TableName", + "Key" + ], + "members":{ + "TableName":{"shape":"TableName"}, + "Key":{"shape":"Key"}, + "AttributeUpdates":{"shape":"AttributeUpdates"}, + "Expected":{"shape":"ExpectedAttributeMap"}, + "ConditionalOperator":{"shape":"ConditionalOperator"}, + "ReturnValues":{"shape":"ReturnValue"}, + "ReturnConsumedCapacity":{"shape":"ReturnConsumedCapacity"}, + "ReturnItemCollectionMetrics":{"shape":"ReturnItemCollectionMetrics"}, + "UpdateExpression":{"shape":"UpdateExpression"}, + "ConditionExpression":{"shape":"ConditionExpression"}, + "ExpressionAttributeNames":{"shape":"ExpressionAttributeNameMap"}, + "ExpressionAttributeValues":{"shape":"ExpressionAttributeValueMap"} + } + }, + "UpdateItemOutput":{ + "type":"structure", + "members":{ + "Attributes":{"shape":"AttributeMap"}, + "ConsumedCapacity":{"shape":"ConsumedCapacity"}, + "ItemCollectionMetrics":{"shape":"ItemCollectionMetrics"} + } + }, + "UpdateTableInput":{ + "type":"structure", + "required":["TableName"], + "members":{ + "AttributeDefinitions":{"shape":"AttributeDefinitions"}, + "TableName":{"shape":"TableName"}, + "ProvisionedThroughput":{"shape":"ProvisionedThroughput"}, + "GlobalSecondaryIndexUpdates":{"shape":"GlobalSecondaryIndexUpdateList"} + } + }, + "UpdateTableOutput":{ + "type":"structure", + "members":{ + "TableDescription":{"shape":"TableDescription"} + } + }, + "WriteRequest":{ + "type":"structure", + "members":{ + "PutRequest":{"shape":"PutRequest"}, + "DeleteRequest":{"shape":"DeleteRequest"} + } + }, + "WriteRequests":{ + "type":"list", + "member":{"shape":"WriteRequest"}, + "min":1, + "max":25 + } + } +} diff --git a/lib/aws-sdk/Aws/data/dynamodb/2012-08-10/docs-2.json b/lib/aws-sdk/Aws/data/dynamodb/2012-08-10/docs-2.json new file mode 100644 index 0000000..33d21cf --- /dev/null +++ b/lib/aws-sdk/Aws/data/dynamodb/2012-08-10/docs-2.json @@ -0,0 +1,977 @@ +{ + "version": "2.0", + "operations": { + "BatchGetItem": "

The BatchGetItem operation returns the attributes of one or more items from one or more tables. You identify requested items by primary key.

A single operation can retrieve up to 16 MB of data, which can contain as many as 100 items. BatchGetItem will return a partial result if the response size limit is exceeded, the table's provisioned throughput is exceeded, or an internal processing failure occurs. If a partial result is returned, the operation returns a value for UnprocessedKeys. You can use this value to retry the operation starting with the next item to get.

For example, if you ask to retrieve 100 items, but each individual item is 300 KB in size, the system returns 52 items (so as not to exceed the 16 MB limit). It also returns an appropriate UnprocessedKeys value so you can get the next page of results. If desired, your application can include its own logic to assemble the pages of results into one data set.

If none of the items can be processed due to insufficient provisioned throughput on all of the tables in the request, then BatchGetItem will return a ProvisionedThroughputExceededException. If at least one of the items is successfully processed, then BatchGetItem completes successfully, while returning the keys of the unread items in UnprocessedKeys.

If DynamoDB returns any unprocessed items, you should retry the batch operation on those items. However, we strongly recommend that you use an exponential backoff algorithm. If you retry the batch operation immediately, the underlying read or write requests can still fail due to throttling on the individual tables. If you delay the batch operation using exponential backoff, the individual requests in the batch are much more likely to succeed.

For more information, see Batch Operations and Error Handling in the Amazon DynamoDB Developer Guide.

By default, BatchGetItem performs eventually consistent reads on every table in the request. If you want strongly consistent reads instead, you can set ConsistentRead to true for any or all tables.

In order to minimize response latency, BatchGetItem retrieves items in parallel.

When designing your application, keep in mind that DynamoDB does not return attributes in any particular order. To help parse the response by item, include the primary key values for the items in your request in the AttributesToGet parameter.

If a requested item does not exist, it is not returned in the result. Requests for nonexistent items consume the minimum read capacity units according to the type of read. For more information, see Capacity Units Calculations in the Amazon DynamoDB Developer Guide.

", + "BatchWriteItem": "

The BatchWriteItem operation puts or deletes multiple items in one or more tables. A single call to BatchWriteItem can write up to 16 MB of data, which can comprise as many as 25 put or delete requests. Individual items to be written can be as large as 400 KB.

BatchWriteItem cannot update items. To update items, use the UpdateItem API.

The individual PutItem and DeleteItem operations specified in BatchWriteItem are atomic; however BatchWriteItem as a whole is not. If any requested operations fail because the table's provisioned throughput is exceeded or an internal processing failure occurs, the failed operations are returned in the UnprocessedItems response parameter. You can investigate and optionally resend the requests. Typically, you would call BatchWriteItem in a loop. Each iteration would check for unprocessed items and submit a new BatchWriteItem request with those unprocessed items until all items have been processed.

Note that if none of the items can be processed due to insufficient provisioned throughput on all of the tables in the request, then BatchWriteItem will return a ProvisionedThroughputExceededException.

If DynamoDB returns any unprocessed items, you should retry the batch operation on those items. However, we strongly recommend that you use an exponential backoff algorithm. If you retry the batch operation immediately, the underlying read or write requests can still fail due to throttling on the individual tables. If you delay the batch operation using exponential backoff, the individual requests in the batch are much more likely to succeed.

For more information, see Batch Operations and Error Handling in the Amazon DynamoDB Developer Guide.

With BatchWriteItem, you can efficiently write or delete large amounts of data, such as from Amazon Elastic MapReduce (EMR), or copy data from another database into DynamoDB. In order to improve performance with these large-scale operations, BatchWriteItem does not behave in the same way as individual PutItem and DeleteItem calls would. For example, you cannot specify conditions on individual put and delete requests, and BatchWriteItem does not return deleted items in the response.

If you use a programming language that supports concurrency, such as Java, you can use threads to write items in parallel. Your application must include the necessary logic to manage the threads. With languages that don't support threading, such as PHP, you must update or delete the specified items one at a time. In both situations, BatchWriteItem provides an alternative where the API performs the specified put and delete operations in parallel, giving you the power of the thread pool approach without having to introduce complexity into your application.

Parallel processing reduces latency, but each specified put and delete request consumes the same number of write capacity units whether it is processed in parallel or not. Delete operations on nonexistent items consume one write capacity unit.

If one or more of the following is true, DynamoDB rejects the entire batch write operation:

  • One or more tables specified in the BatchWriteItem request does not exist.

  • Primary key attributes specified on an item in the request do not match those in the corresponding table's primary key schema.

  • You try to perform multiple operations on the same item in the same BatchWriteItem request. For example, you cannot put and delete the same item in the same BatchWriteItem request.

  • There are more than 25 requests in the batch.

  • Any individual item in a batch exceeds 400 KB.

  • The total request size exceeds 16 MB.

", + "CreateTable": "

The CreateTable operation adds a new table to your account. In an AWS account, table names must be unique within each region. That is, you can have two tables with same name if you create the tables in different regions.

CreateTable is an asynchronous operation. Upon receiving a CreateTable request, DynamoDB immediately returns a response with a TableStatus of CREATING. After the table is created, DynamoDB sets the TableStatus to ACTIVE. You can perform read and write operations only on an ACTIVE table.

You can optionally define secondary indexes on the new table, as part of the CreateTable operation. If you want to create multiple tables with secondary indexes on them, you must create the tables sequentially. Only one table with secondary indexes can be in the CREATING state at any given time.

You can use the DescribeTable API to check the table status.

", + "DeleteItem": "

Deletes a single item in a table by primary key. You can perform a conditional delete operation that deletes the item if it exists, or if it has an expected attribute value.

In addition to deleting an item, you can also return the item's attribute values in the same operation, using the ReturnValues parameter.

Unless you specify conditions, the DeleteItem is an idempotent operation; running it multiple times on the same item or attribute does not result in an error response.

Conditional deletes are useful for deleting items only if specific conditions are met. If those conditions are met, DynamoDB performs the delete. Otherwise, the item is not deleted.

", + "DeleteTable": "

The DeleteTable operation deletes a table and all of its items. After a DeleteTable request, the specified table is in the DELETING state until DynamoDB completes the deletion. If the table is in the ACTIVE state, you can delete it. If a table is in CREATING or UPDATING states, then DynamoDB returns a ResourceInUseException. If the specified table does not exist, DynamoDB returns a ResourceNotFoundException. If table is already in the DELETING state, no error is returned.

DynamoDB might continue to accept data read and write operations, such as GetItem and PutItem, on a table in the DELETING state until the table deletion is complete.

When you delete a table, any indexes on that table are also deleted.

Use the DescribeTable API to check the status of the table.

", + "DescribeTable": "

Returns information about the table, including the current status of the table, when it was created, the primary key schema, and any indexes on the table.

If you issue a DescribeTable request immediately after a CreateTable request, DynamoDB might return a ResourceNotFoundException. This is because DescribeTable uses an eventually consistent query, and the metadata for your table might not be available at that moment. Wait for a few seconds, and then try the DescribeTable request again.

", + "GetItem": "

The GetItem operation returns a set of attributes for the item with the given primary key. If there is no matching item, GetItem does not return any data.

GetItem provides an eventually consistent read by default. If your application requires a strongly consistent read, set ConsistentRead to true. Although a strongly consistent read might take more time than an eventually consistent read, it always returns the last updated value.

", + "ListTables": "

Returns an array of table names associated with the current account and endpoint. The output from ListTables is paginated, with each page returning a maximum of 100 table names.

", + "PutItem": "

Creates a new item, or replaces an old item with a new item. If an item that has the same primary key as the new item already exists in the specified table, the new item completely replaces the existing item. You can perform a conditional put operation (add a new item if one with the specified primary key doesn't exist), or replace an existing item if it has certain attribute values.

In addition to putting an item, you can also return the item's attribute values in the same operation, using the ReturnValues parameter.

When you add an item, the primary key attribute(s) are the only required attributes. Attribute values cannot be null. String and Binary type attributes must have lengths greater than zero. Set type attributes cannot be empty. Requests with empty values will be rejected with a ValidationException exception.

You can request that PutItem return either a copy of the original item (before the update) or a copy of the updated item (after the update). For more information, see the ReturnValues description below.

To prevent a new item from replacing an existing item, use a conditional put operation with ComparisonOperator set to NULL for the primary key attribute, or attributes.

For more information about using this API, see Working with Items in the Amazon DynamoDB Developer Guide.

", + "Query": "

A Query operation uses the primary key of a table or a secondary index to directly access items from that table or index.

Use the KeyConditionExpression parameter to provide a specific hash key value. The Query operation will return all of the items from the table or index with that hash key value. You can optionally narrow the scope of the Query by specifying a range key value and a comparison operator in the KeyConditionExpression. You can use the ScanIndexForward parameter to get results in forward or reverse order, by range key or by index key.

Queries that do not return results consume the minimum number of read capacity units for that type of read operation.

If the total number of items meeting the query criteria exceeds the result set size limit of 1 MB, the query stops and results are returned to the user with LastEvaluatedKey to continue the query in a subsequent operation. Unlike a Scan operation, a Query operation never returns both an empty result set and a LastEvaluatedKey. The LastEvaluatedKey is only provided if the results exceed 1 MB, or if you have used Limit.

You can query a table, a local secondary index, or a global secondary index. For a query on a table or on a local secondary index, you can set ConsistentRead to true and obtain a strongly consistent result. Global secondary indexes support eventually consistent reads only, so do not specify ConsistentRead when querying a global secondary index.

", + "Scan": "

The Scan operation returns one or more items and item attributes by accessing every item in a table or a secondary index. To have DynamoDB return fewer items, you can provide a ScanFilter operation.

If the total number of scanned items exceeds the maximum data set size limit of 1 MB, the scan stops and results are returned to the user as a LastEvaluatedKey value to continue the scan in a subsequent operation. The results also include the number of items exceeding the limit. A scan can result in no table data meeting the filter criteria.

The result set is eventually consistent.

By default, Scan operations proceed sequentially; however, for faster performance on a large table or secondary index, applications can request a parallel Scan operation by providing the Segment and TotalSegments parameters. For more information, see Parallel Scan in the Amazon DynamoDB Developer Guide.

", + "UpdateItem": "

Edits an existing item's attributes, or adds a new item to the table if it does not already exist. You can put, delete, or add attribute values. You can also perform a conditional update on an existing item (insert a new attribute name-value pair if it doesn't exist, or replace an existing name-value pair if it has certain expected attribute values). If conditions are specified and the item does not exist, then the operation fails and a new item is not created.

You can also return the item's attribute values in the same UpdateItem operation using the ReturnValues parameter.

", + "UpdateTable": "

Updates the provisioned throughput for the given table, or manages the global secondary indexes on the table.

You can increase or decrease the table's provisioned throughput values within the maximums and minimums listed in the Limits section in the Amazon DynamoDB Developer Guide.

In addition, you can use UpdateTable to add, modify or delete global secondary indexes on the table. For more information, see Managing Global Secondary Indexes in the Amazon DynamoDB Developer Guide.

The table must be in the ACTIVE state for UpdateTable to succeed. UpdateTable is an asynchronous operation; while executing the operation, the table is in the UPDATING state. While the table is in the UPDATING state, the table still has the provisioned throughput from before the call. The table's new provisioned throughput settings go into effect when the table returns to the ACTIVE state; at that point, the UpdateTable operation is complete.

" + }, + "service": "Amazon DynamoDB

Overview

This is the Amazon DynamoDB API Reference. This guide provides descriptions and samples of the low-level DynamoDB API. For information about DynamoDB application development, see the Amazon DynamoDB Developer Guide.

Instead of making the requests to the low-level DynamoDB API directly from your application, we recommend that you use the AWS Software Development Kits (SDKs). The easy-to-use libraries in the AWS SDKs make it unnecessary to call the low-level DynamoDB API directly from your application. The libraries take care of request authentication, serialization, and connection management. For more information, see Using the AWS SDKs with DynamoDB in the Amazon DynamoDB Developer Guide.

If you decide to code against the low-level DynamoDB API directly, you will need to write the necessary code to authenticate your requests. For more information on signing your requests, see Using the DynamoDB API in the Amazon DynamoDB Developer Guide.

The following are short descriptions of each low-level API action, organized by function.

Managing Tables

  • CreateTable - Creates a table with user-specified provisioned throughput settings. You must designate one attribute as the hash primary key for the table; you can optionally designate a second attribute as the range primary key. DynamoDB creates indexes on these key attributes for fast data access. Optionally, you can create one or more secondary indexes, which provide fast data access using non-key attributes.

  • DescribeTable - Returns metadata for a table, such as table size, status, and index information.

  • UpdateTable - Modifies the provisioned throughput settings for a table. Optionally, you can modify the provisioned throughput settings for global secondary indexes on the table.

  • ListTables - Returns a list of all tables associated with the current AWS account and endpoint.

  • DeleteTable - Deletes a table and all of its indexes.

For conceptual information about managing tables, see Working with Tables in the Amazon DynamoDB Developer Guide.

Reading Data

  • GetItem - Returns a set of attributes for the item that has a given primary key. By default, GetItem performs an eventually consistent read; however, applications can request a strongly consistent read instead.

  • BatchGetItem - Performs multiple GetItem requests for data items using their primary keys, from one table or multiple tables. The response from BatchGetItem has a size limit of 16 MB and returns a maximum of 100 items. Both eventually consistent and strongly consistent reads can be used.

  • Query - Returns one or more items from a table or a secondary index. You must provide a specific hash key value. You can narrow the scope of the query using comparison operators against a range key value, or on the index key. Query supports either eventual or strong consistency. A single response has a size limit of 1 MB.

  • Scan - Reads every item in a table; the result set is eventually consistent. You can limit the number of items returned by filtering the data attributes, using conditional expressions. Scan can be used to enable ad-hoc querying of a table against non-key attributes; however, since this is a full table scan without using an index, Scan should not be used for any application query use case that requires predictable performance.

For conceptual information about reading data, see Working with Items and Query and Scan Operations in the Amazon DynamoDB Developer Guide.

Modifying Data

  • PutItem - Creates a new item, or replaces an existing item with a new item (including all the attributes). By default, if an item in the table already exists with the same primary key, the new item completely replaces the existing item. You can use conditional operators to replace an item only if its attribute values match certain conditions, or to insert a new item only if that item doesn't already exist.

  • UpdateItem - Modifies the attributes of an existing item. You can also use conditional operators to perform an update only if the item's attribute values match certain conditions.

  • DeleteItem - Deletes an item in a table by primary key. You can use conditional operators to perform a delete an item only if the item's attribute values match certain conditions.

  • BatchWriteItem - Performs multiple PutItem and DeleteItem requests across multiple tables in a single request. A failure of any request(s) in the batch will not cause the entire BatchWriteItem operation to fail. Supports batches of up to 25 items to put or delete, with a maximum total request size of 16 MB.

For conceptual information about modifying data, see Working with Items and Query and Scan Operations in the Amazon DynamoDB Developer Guide.

", + "shapes": { + "AttributeAction": { + "base": null, + "refs": { + "AttributeValueUpdate$Action": "

Specifies how to perform the update. Valid values are PUT (default), DELETE, and ADD. The behavior depends on whether the specified primary key already exists in the table.

If an item with the specified Key is found in the table:

  • PUT - Adds the specified attribute to the item. If the attribute already exists, it is replaced by the new value.

  • DELETE - If no value is specified, the attribute and its value are removed from the item. The data type of the specified value must match the existing value's data type.

    If a set of values is specified, then those values are subtracted from the old set. For example, if the attribute value was the set [a,b,c] and the DELETE action specified [a,c], then the final attribute value would be [b]. Specifying an empty set is an error.

  • ADD - If the attribute does not already exist, then the attribute and its values are added to the item. If the attribute does exist, then the behavior of ADD depends on the data type of the attribute:

    • If the existing attribute is a number, and if Value is also a number, then the Value is mathematically added to the existing attribute. If Value is a negative number, then it is subtracted from the existing attribute.

      If you use ADD to increment or decrement a number value for an item that doesn't exist before the update, DynamoDB uses 0 as the initial value.

      In addition, if you use ADD to update an existing item, and intend to increment or decrement an attribute value which does not yet exist, DynamoDB uses 0 as the initial value. For example, suppose that the item you want to update does not yet have an attribute named itemcount, but you decide to ADD the number 3 to this attribute anyway, even though it currently does not exist. DynamoDB will create the itemcount attribute, set its initial value to 0, and finally add 3 to it. The result will be a new itemcount attribute in the item, with a value of 3.

    • If the existing data type is a set, and if the Value is also a set, then the Value is added to the existing set. (This is a set operation, not mathematical addition.) For example, if the attribute value was the set [1,2], and the ADD action specified [3], then the final attribute value would be [1,2,3]. An error occurs if an Add action is specified for a set attribute and the attribute type specified does not match the existing set type.

      Both sets must have the same primitive data type. For example, if the existing data type is a set of strings, the Value must also be a set of strings. The same holds true for number sets and binary sets.

    This action is only valid for an existing attribute whose data type is number or is a set. Do not use ADD for any other data types.

If no item with the specified Key is found:

  • PUT - DynamoDB creates a new item with the specified primary key, and then adds the attribute.

  • DELETE - Nothing happens; there is no attribute to delete.

  • ADD - DynamoDB creates an item with the supplied primary key and number (or set of numbers) for the attribute value. The only data types allowed are number and number set; no other data types can be specified.

" + } + }, + "AttributeDefinition": { + "base": "

Represents an attribute for describing the key schema for the table and indexes.

", + "refs": { + "AttributeDefinitions$member": null + } + }, + "AttributeDefinitions": { + "base": null, + "refs": { + "CreateTableInput$AttributeDefinitions": "

An array of attributes that describe the key schema for the table and indexes.

", + "TableDescription$AttributeDefinitions": "

An array of AttributeDefinition objects. Each of these objects describes one attribute in the table and index key schema.

Each AttributeDefinition object in this array is composed of:

  • AttributeName - The name of the attribute.

  • AttributeType - The data type for the attribute.

", + "UpdateTableInput$AttributeDefinitions": "

An array of attributes that describe the key schema for the table and indexes. If you are adding a new global secondary index to the table, AttributeDefinitions must include the key element(s) of the new index.

" + } + }, + "AttributeMap": { + "base": null, + "refs": { + "DeleteItemOutput$Attributes": "

A map of attribute names to AttributeValue objects, representing the item as it appeared before the DeleteItem operation. This map appears in the response only if ReturnValues was specified as ALL_OLD in the request.

", + "GetItemOutput$Item": "

A map of attribute names to AttributeValue objects, as specified by AttributesToGet.

", + "ItemList$member": null, + "PutItemOutput$Attributes": "

The attribute values as they appeared before the PutItem operation, but only if ReturnValues is specified as ALL_OLD in the request. Each element consists of an attribute name and an attribute value.

", + "UpdateItemOutput$Attributes": "

A map of attribute values as they appeared before the UpdateItem operation. This map only appears if ReturnValues was specified as something other than NONE in the request. Each element represents one attribute.

" + } + }, + "AttributeName": { + "base": null, + "refs": { + "AttributeMap$key": null, + "AttributeNameList$member": null, + "AttributeUpdates$key": null, + "ExpectedAttributeMap$key": null, + "ExpressionAttributeNameMap$value": null, + "FilterConditionMap$key": null, + "ItemCollectionKeyAttributeMap$key": null, + "Key$key": null, + "KeyConditions$key": null, + "MapAttributeValue$key": null, + "PutItemInputAttributeMap$key": null + } + }, + "AttributeNameList": { + "base": null, + "refs": { + "GetItemInput$AttributesToGet": "

This is a legacy parameter, for backward compatibility. New applications should use ProjectionExpression instead. Do not combine legacy parameters and expression parameters in a single API call; otherwise, DynamoDB will return a ValidationException exception.

This parameter allows you to retrieve attributes of type List or Map; however, it cannot retrieve individual elements within a List or a Map.

The names of one or more attributes to retrieve. If no attribute names are provided, then all attributes will be returned. If any of the requested attributes are not found, they will not appear in the result.

Note that AttributesToGet has no effect on provisioned throughput consumption. DynamoDB determines capacity units consumed based on item size, not on the amount of data that is returned to an application.

", + "KeysAndAttributes$AttributesToGet": "

One or more attributes to retrieve from the table or index. If no attribute names are specified then all attributes will be returned. If any of the specified attributes are not found, they will not appear in the result.

", + "QueryInput$AttributesToGet": "

This is a legacy parameter, for backward compatibility. New applications should use ProjectionExpression instead. Do not combine legacy parameters and expression parameters in a single API call; otherwise, DynamoDB will return a ValidationException exception.

This parameter allows you to retrieve attributes of type List or Map; however, it cannot retrieve individual elements within a List or a Map.

The names of one or more attributes to retrieve. If no attribute names are provided, then all attributes will be returned. If any of the requested attributes are not found, they will not appear in the result.

Note that AttributesToGet has no effect on provisioned throughput consumption. DynamoDB determines capacity units consumed based on item size, not on the amount of data that is returned to an application.

You cannot use both AttributesToGet and Select together in a Query request, unless the value for Select is SPECIFIC_ATTRIBUTES. (This usage is equivalent to specifying AttributesToGet without any value for Select.)

If you query a local secondary index and request only attributes that are projected into that index, the operation will read only the index and not the table. If any of the requested attributes are not projected into the local secondary index, DynamoDB will fetch each of these attributes from the parent table. This extra fetching incurs additional throughput cost and latency.

If you query a global secondary index, you can only request attributes that are projected into the index. Global secondary index queries cannot fetch attributes from the parent table.

", + "ScanInput$AttributesToGet": "

This is a legacy parameter, for backward compatibility. New applications should use ProjectionExpression instead. Do not combine legacy parameters and expression parameters in a single API call; otherwise, DynamoDB will return a ValidationException exception.

This parameter allows you to retrieve attributes of type List or Map; however, it cannot retrieve individual elements within a List or a Map.

The names of one or more attributes to retrieve. If no attribute names are provided, then all attributes will be returned. If any of the requested attributes are not found, they will not appear in the result.

Note that AttributesToGet has no effect on provisioned throughput consumption. DynamoDB determines capacity units consumed based on item size, not on the amount of data that is returned to an application.

" + } + }, + "AttributeUpdates": { + "base": null, + "refs": { + "UpdateItemInput$AttributeUpdates": "

This is a legacy parameter, for backward compatibility. New applications should use UpdateExpression instead. Do not combine legacy parameters and expression parameters in a single API call; otherwise, DynamoDB will return a ValidationException exception.

This parameter can be used for modifying top-level attributes; however, it does not support individual list or map elements.

The names of attributes to be modified, the action to perform on each, and the new value for each. If you are updating an attribute that is an index key attribute for any indexes on that table, the attribute type must match the index key type defined in the AttributesDefinition of the table description. You can use UpdateItem to update any nonkey attributes.

Attribute values cannot be null. String and Binary type attributes must have lengths greater than zero. Set type attributes must not be empty. Requests with empty values will be rejected with a ValidationException exception.

Each AttributeUpdates element consists of an attribute name to modify, along with the following:

  • Value - The new value, if applicable, for this attribute.

  • Action - A value that specifies how to perform the update. This action is only valid for an existing attribute whose data type is Number or is a set; do not use ADD for other data types.

    If an item with the specified primary key is found in the table, the following values perform the following actions:

    • PUT - Adds the specified attribute to the item. If the attribute already exists, it is replaced by the new value.

    • DELETE - Removes the attribute and its value, if no value is specified for DELETE. The data type of the specified value must match the existing value's data type.

      If a set of values is specified, then those values are subtracted from the old set. For example, if the attribute value was the set [a,b,c] and the DELETE action specifies [a,c], then the final attribute value is [b]. Specifying an empty set is an error.

    • ADD - Adds the specified value to the item, if the attribute does not already exist. If the attribute does exist, then the behavior of ADD depends on the data type of the attribute:

      • If the existing attribute is a number, and if Value is also a number, then Value is mathematically added to the existing attribute. If Value is a negative number, then it is subtracted from the existing attribute.

        If you use ADD to increment or decrement a number value for an item that doesn't exist before the update, DynamoDB uses 0 as the initial value.

        Similarly, if you use ADD for an existing item to increment or decrement an attribute value that doesn't exist before the update, DynamoDB uses 0 as the initial value. For example, suppose that the item you want to update doesn't have an attribute named itemcount, but you decide to ADD the number 3 to this attribute anyway. DynamoDB will create the itemcount attribute, set its initial value to 0, and finally add 3 to it. The result will be a new itemcount attribute, with a value of 3.

      • If the existing data type is a set, and if Value is also a set, then Value is appended to the existing set. For example, if the attribute value is the set [1,2], and the ADD action specified [3], then the final attribute value is [1,2,3]. An error occurs if an ADD action is specified for a set attribute and the attribute type specified does not match the existing set type.

        Both sets must have the same primitive data type. For example, if the existing data type is a set of strings, Value must also be a set of strings.

    If no item with the specified key is found in the table, the following values perform the following actions:

    • PUT - Causes DynamoDB to create a new item with the specified primary key, and then adds the attribute.

    • DELETE - Nothing happens, because attributes cannot be deleted from a nonexistent item. The operation succeeds, but DynamoDB does not create a new item.

    • ADD - Causes DynamoDB to create an item with the supplied primary key and number (or set of numbers) for the attribute value. The only data types allowed are Number and Number Set.

If you provide any attributes that are part of an index key, then the data types for those attributes must match those of the schema in the table's attribute definition.

" + } + }, + "AttributeValue": { + "base": "

Represents the data for an attribute. You can set one, and only one, of the elements.

Each attribute in an item is a name-value pair. An attribute can be single-valued or multi-valued set. For example, a book item can have title and authors attributes. Each book has one title but can have many authors. The multi-valued attribute is a set; duplicate values are not allowed.

", + "refs": { + "AttributeMap$value": null, + "AttributeValueList$member": null, + "AttributeValueUpdate$Value": null, + "ExpectedAttributeValue$Value": null, + "ExpressionAttributeValueMap$value": null, + "ItemCollectionKeyAttributeMap$value": null, + "Key$value": null, + "ListAttributeValue$member": null, + "MapAttributeValue$value": null, + "PutItemInputAttributeMap$value": null + } + }, + "AttributeValueList": { + "base": null, + "refs": { + "Condition$AttributeValueList": "

One or more values to evaluate against the supplied attribute. The number of values in the list depends on the ComparisonOperator being used.

For type Number, value comparisons are numeric.

String value comparisons for greater than, equals, or less than are based on ASCII character code values. For example, a is greater than A, and a is greater than B. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters.

For Binary, DynamoDB treats each byte of the binary data as unsigned when it compares binary values.

", + "ExpectedAttributeValue$AttributeValueList": "

One or more values to evaluate against the supplied attribute. The number of values in the list depends on the ComparisonOperator being used.

For type Number, value comparisons are numeric.

String value comparisons for greater than, equals, or less than are based on ASCII character code values. For example, a is greater than A, and a is greater than B. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters.

For Binary, DynamoDB treats each byte of the binary data as unsigned when it compares binary values.

For information on specifying data types in JSON, see JSON Data Format in the Amazon DynamoDB Developer Guide.

" + } + }, + "AttributeValueUpdate": { + "base": "

For the UpdateItem operation, represents the attributes to be modified, the action to perform on each, and the new value for each.

You cannot use UpdateItem to update any primary key attributes. Instead, you will need to delete the item, and then use PutItem to create a new item with new attributes.

Attribute values cannot be null; string and binary type attributes must have lengths greater than zero; and set type attributes must not be empty. Requests with empty values will be rejected with a ValidationException exception.

", + "refs": { + "AttributeUpdates$value": null + } + }, + "Backfilling": { + "base": null, + "refs": { + "GlobalSecondaryIndexDescription$Backfilling": "

Indicates whether the index is currently backfilling. Backfilling is the process of reading items from the table and determining whether they can be added to the index. (Not all items will qualify: For example, a hash key attribute cannot have any duplicates.) If an item can be added to the index, DynamoDB will do so. After all items have been processed, the backfilling operation is complete and Backfilling is false.

For indexes that were created during a CreateTable operation, the Backfilling attribute does not appear in the DescribeTable output.

" + } + }, + "BatchGetItemInput": { + "base": "

Represents the input of a BatchGetItem operation.

", + "refs": { + } + }, + "BatchGetItemOutput": { + "base": "

Represents the output of a BatchGetItem operation.

", + "refs": { + } + }, + "BatchGetRequestMap": { + "base": null, + "refs": { + "BatchGetItemInput$RequestItems": "

A map of one or more table names and, for each table, a map that describes one or more items to retrieve from that table. Each table name can be used only once per BatchGetItem request.

Each element in the map of items to retrieve consists of the following:

  • ConsistentRead - If true, a strongly consistent read is used; if false (the default), an eventually consistent read is used.

  • ExpressionAttributeNames - One or more substitution tokens for attribute names in the ProjectionExpression parameter. The following are some use cases for using ExpressionAttributeNames:

    • To access an attribute whose name conflicts with a DynamoDB reserved word.

    • To create a placeholder for repeating occurrences of an attribute name in an expression.

    • To prevent special characters in an attribute name from being misinterpreted in an expression.

    Use the # character in an expression to dereference an attribute name. For example, consider the following attribute name:

    • Percentile

    The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see Reserved Words in the Amazon DynamoDB Developer Guide). To work around this, you could specify the following for ExpressionAttributeNames:

    • {\"#P\":\"Percentile\"}

    You could then use this substitution in an expression, as in this example:

    • #P = :val

    Tokens that begin with the : character are expression attribute values, which are placeholders for the actual value at runtime.

    For more information on expression attribute names, see Accessing Item Attributes in the Amazon DynamoDB Developer Guide.

  • Keys - An array of primary key attribute values that define specific items in the table. For each primary key, you must provide all of the key attributes. For example, with a hash type primary key, you only need to provide the hash attribute. For a hash-and-range type primary key, you must provide both the hash attribute and the range attribute.

  • ProjectionExpression - A string that identifies one or more attributes to retrieve from the table. These attributes can include scalars, sets, or elements of a JSON document. The attributes in the expression must be separated by commas.

    If no attribute names are specified, then all attributes will be returned. If any of the requested attributes are not found, they will not appear in the result.

    For more information, see Accessing Item Attributes in the Amazon DynamoDB Developer Guide.

  • AttributesToGet -

    This is a legacy parameter, for backward compatibility. New applications should use ProjectionExpression instead. Do not combine legacy parameters and expression parameters in a single API call; otherwise, DynamoDB will return a ValidationException exception.

    This parameter allows you to retrieve attributes of type List or Map; however, it cannot retrieve individual elements within a List or a Map.

    The names of one or more attributes to retrieve. If no attribute names are provided, then all attributes will be returned. If any of the requested attributes are not found, they will not appear in the result.

    Note that AttributesToGet has no effect on provisioned throughput consumption. DynamoDB determines capacity units consumed based on item size, not on the amount of data that is returned to an application.

", + "BatchGetItemOutput$UnprocessedKeys": "

A map of tables and their respective keys that were not processed with the current response. The UnprocessedKeys value is in the same form as RequestItems, so the value can be provided directly to a subsequent BatchGetItem operation. For more information, see RequestItems in the Request Parameters section.

Each element consists of:

  • Keys - An array of primary key attribute values that define specific items in the table.

  • AttributesToGet - One or more attributes to be retrieved from the table or index. By default, all attributes are returned. If a requested attribute is not found, it does not appear in the result.

  • ConsistentRead - The consistency of a read operation. If set to true, then a strongly consistent read is used; otherwise, an eventually consistent read is used.

If there are no unprocessed keys remaining, the response contains an empty UnprocessedKeys map.

" + } + }, + "BatchGetResponseMap": { + "base": null, + "refs": { + "BatchGetItemOutput$Responses": "

A map of table name to a list of items. Each object in Responses consists of a table name, along with a map of attribute data consisting of the data type and attribute value.

" + } + }, + "BatchWriteItemInput": { + "base": "

Represents the input of a BatchWriteItem operation.

", + "refs": { + } + }, + "BatchWriteItemOutput": { + "base": "

Represents the output of a BatchWriteItem operation.

", + "refs": { + } + }, + "BatchWriteItemRequestMap": { + "base": null, + "refs": { + "BatchWriteItemInput$RequestItems": "

A map of one or more table names and, for each table, a list of operations to be performed (DeleteRequest or PutRequest). Each element in the map consists of the following:

  • DeleteRequest - Perform a DeleteItem operation on the specified item. The item to be deleted is identified by a Key subelement:

    • Key - A map of primary key attribute values that uniquely identify the ! item. Each entry in this map consists of an attribute name and an attribute value. For each primary key, you must provide all of the key attributes. For example, with a hash type primary key, you only need to provide the hash attribute. For a hash-and-range type primary key, you must provide both the hash attribute and the range attribute.

  • PutRequest - Perform a PutItem operation on the specified item. The item to be put is identified by an Item subelement:

    • Item - A map of attributes and their values. Each entry in this map consists of an attribute name and an attribute value. Attribute values must not be null; string and binary type attributes must have lengths greater than zero; and set type attributes must not be empty. Requests that contain empty values will be rejected with a ValidationException exception.

      If you specify any attributes that are part of an index key, then the data types for those attributes must match those of the schema in the table's attribute definition.

", + "BatchWriteItemOutput$UnprocessedItems": "

A map of tables and requests against those tables that were not processed. The UnprocessedItems value is in the same form as RequestItems, so you can provide this value directly to a subsequent BatchGetItem operation. For more information, see RequestItems in the Request Parameters section.

Each UnprocessedItems entry consists of a table name and, for that table, a list of operations to perform (DeleteRequest or PutRequest).

  • DeleteRequest - Perform a DeleteItem operation on the specified item. The item to be deleted is identified by a Key subelement:

    • Key - A map of primary key attribute values that uniquely identify the item. Each entry in this map consists of an attribute name and an attribute value.

  • PutRequest - Perform a PutItem operation on the specified item. The item to be put is identified by an Item subelement:

    • Item - A map of attributes and their values. Each entry in this map consists of an attribute name and an attribute value. Attribute values must not be null; string and binary type attributes must have lengths greater than zero; and set type attributes must not be empty. Requests that contain empty values will be rejected with a ValidationException exception.

      If you specify any attributes that are part of an index key, then the data types for those attributes must match those of the schema in the table's attribute definition.

If there are no unprocessed items remaining, the response contains an empty UnprocessedItems map.

" + } + }, + "BinaryAttributeValue": { + "base": null, + "refs": { + "AttributeValue$B": "

A Binary data type.

", + "BinarySetAttributeValue$member": null + } + }, + "BinarySetAttributeValue": { + "base": null, + "refs": { + "AttributeValue$BS": "

A Binary Set data type.

" + } + }, + "BooleanAttributeValue": { + "base": null, + "refs": { + "AttributeValue$BOOL": "

A Boolean data type.

" + } + }, + "BooleanObject": { + "base": null, + "refs": { + "ExpectedAttributeValue$Exists": "

Causes DynamoDB to evaluate the value before attempting a conditional operation:

  • If Exists is true, DynamoDB will check to see if that attribute value already exists in the table. If it is found, then the operation succeeds. If it is not found, the operation fails with a ConditionalCheckFailedException.

  • If Exists is false, DynamoDB assumes that the attribute value does not exist in the table. If in fact the value does not exist, then the assumption is valid and the operation succeeds. If the value is found, despite the assumption that it does not exist, the operation fails with a ConditionalCheckFailedException.

The default setting for Exists is true. If you supply a Value all by itself, DynamoDB assumes the attribute exists: You don't have to set Exists to true, because it is implied.

DynamoDB returns a ValidationException if:

  • Exists is true but there is no Value to check. (You expect a value to exist, but don't specify what that value is.)

  • Exists is false but you also provide a Value. (You cannot expect an attribute to have a value, while also expecting it not to exist.)

", + "QueryInput$ScanIndexForward": "

A value that specifies ascending (true) or descending (false) traversal of the index. DynamoDB returns results reflecting the requested order determined by the range key. If the data type is Number, the results are returned in numeric order. For type String, the results are returned in order of ASCII character code values. For type Binary, DynamoDB treats each byte of the binary data as unsigned when it compares binary values.

If ScanIndexForward is not specified, the results are returned in ascending order.

" + } + }, + "Capacity": { + "base": "

Represents the amount of provisioned throughput capacity consumed on a table or an index.

", + "refs": { + "ConsumedCapacity$Table": "

The amount of throughput consumed on the table affected by the operation.

", + "SecondaryIndexesCapacityMap$value": null + } + }, + "ComparisonOperator": { + "base": null, + "refs": { + "Condition$ComparisonOperator": "

A comparator for evaluating attributes. For example, equals, greater than, less than, etc.

The following comparison operators are available:

EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS | BEGINS_WITH | IN | BETWEEN

The following are descriptions of each comparison operator.

  • EQ : Equal. EQ is supported for all datatypes, including lists and maps.

    AttributeValueList can contain only one AttributeValue element of type String, Number, Binary, String Set, Number Set, or Binary Set. If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not equal {\"NS\":[\"6\", \"2\", \"1\"]}.

  • NE : Not equal. NE is supported for all datatypes, including lists and maps.

    AttributeValueList can contain only one AttributeValue of type String, Number, Binary, String Set, Number Set, or Binary Set. If an item contains an AttributeValue of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not equal {\"NS\":[\"6\", \"2\", \"1\"]}.

  • LE : Less than or equal.

    AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

  • LT : Less than.

    AttributeValueList can contain only one AttributeValue of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

  • GE : Greater than or equal.

    AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

  • GT : Greater than.

    AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

  • NOT_NULL : The attribute exists. NOT_NULL is supported for all datatypes, including lists and maps.

    This operator tests for the existence of an attribute, not its data type. If the data type of attribute \"a\" is null, and you evaluate it using NOT_NULL, the result is a Boolean true. This result is because the attribute \"a\" exists; its data type is not relevant to the NOT_NULL comparison operator.

  • NULL : The attribute does not exist. NULL is supported for all datatypes, including lists and maps.

    This operator tests for the nonexistence of an attribute, not its data type. If the data type of attribute \"a\" is null, and you evaluate it using NULL, the result is a Boolean false. This is because the attribute \"a\" exists; its data type is not relevant to the NULL comparison operator.

  • CONTAINS : Checks for a subsequence, or value in a set.

    AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If the target attribute of the comparison is of type String, then the operator checks for a substring match. If the target attribute of the comparison is of type Binary, then the operator looks for a subsequence of the target that matches the input. If the target attribute of the comparison is a set (\"SS\", \"NS\", or \"BS\"), then the operator evaluates to true if it finds an exact match with any member of the set.

    CONTAINS is supported for lists: When evaluating \"a CONTAINS b\", \"a\" can be a list; however, \"b\" cannot be a set, a map, or a list.

  • NOT_CONTAINS : Checks for absence of a subsequence, or absence of a value in a set.

    AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If the target attribute of the comparison is a String, then the operator checks for the absence of a substring match. If the target attribute of the comparison is Binary, then the operator checks for the absence of a subsequence of the target that matches the input. If the target attribute of the comparison is a set (\"SS\", \"NS\", or \"BS\"), then the operator evaluates to true if it does not find an exact match with any member of the set.

    NOT_CONTAINS is supported for lists: When evaluating \"a NOT CONTAINS b\", \"a\" can be a list; however, \"b\" cannot be a set, a map, or a list.

  • BEGINS_WITH : Checks for a prefix.

    AttributeValueList can contain only one AttributeValue of type String or Binary (not a Number or a set type). The target attribute of the comparison must be of type String or Binary (not a Number or a set type).

  • IN : Checks for matching elements within two sets.

    AttributeValueList can contain one or more AttributeValue elements of type String, Number, or Binary (not a set type). These attributes are compared against an existing set type attribute of an item. If any elements of the input set are present in the item attribute, the expression evaluates to true.

  • BETWEEN : Greater than or equal to the first value, and less than or equal to the second value.

    AttributeValueList must contain two AttributeValue elements of the same type, either String, Number, or Binary (not a set type). A target attribute matches if the target value is greater than, or equal to, the first element and less than, or equal to, the second element. If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not compare to {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}

For usage examples of AttributeValueList and ComparisonOperator, see Legacy Conditional Parameters in the Amazon DynamoDB Developer Guide.

", + "ExpectedAttributeValue$ComparisonOperator": "

A comparator for evaluating attributes in the AttributeValueList. For example, equals, greater than, less than, etc.

The following comparison operators are available:

EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS | BEGINS_WITH | IN | BETWEEN

The following are descriptions of each comparison operator.

  • EQ : Equal. EQ is supported for all datatypes, including lists and maps.

    AttributeValueList can contain only one AttributeValue element of type String, Number, Binary, String Set, Number Set, or Binary Set. If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not equal {\"NS\":[\"6\", \"2\", \"1\"]}.

  • NE : Not equal. NE is supported for all datatypes, including lists and maps.

    AttributeValueList can contain only one AttributeValue of type String, Number, Binary, String Set, Number Set, or Binary Set. If an item contains an AttributeValue of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not equal {\"NS\":[\"6\", \"2\", \"1\"]}.

  • LE : Less than or equal.

    AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

  • LT : Less than.

    AttributeValueList can contain only one AttributeValue of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

  • GE : Greater than or equal.

    AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

  • GT : Greater than.

    AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

  • NOT_NULL : The attribute exists. NOT_NULL is supported for all datatypes, including lists and maps.

    This operator tests for the existence of an attribute, not its data type. If the data type of attribute \"a\" is null, and you evaluate it using NOT_NULL, the result is a Boolean true. This result is because the attribute \"a\" exists; its data type is not relevant to the NOT_NULL comparison operator.

  • NULL : The attribute does not exist. NULL is supported for all datatypes, including lists and maps.

    This operator tests for the nonexistence of an attribute, not its data type. If the data type of attribute \"a\" is null, and you evaluate it using NULL, the result is a Boolean false. This is because the attribute \"a\" exists; its data type is not relevant to the NULL comparison operator.

  • CONTAINS : Checks for a subsequence, or value in a set.

    AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If the target attribute of the comparison is of type String, then the operator checks for a substring match. If the target attribute of the comparison is of type Binary, then the operator looks for a subsequence of the target that matches the input. If the target attribute of the comparison is a set (\"SS\", \"NS\", or \"BS\"), then the operator evaluates to true if it finds an exact match with any member of the set.

    CONTAINS is supported for lists: When evaluating \"a CONTAINS b\", \"a\" can be a list; however, \"b\" cannot be a set, a map, or a list.

  • NOT_CONTAINS : Checks for absence of a subsequence, or absence of a value in a set.

    AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If the target attribute of the comparison is a String, then the operator checks for the absence of a substring match. If the target attribute of the comparison is Binary, then the operator checks for the absence of a subsequence of the target that matches the input. If the target attribute of the comparison is a set (\"SS\", \"NS\", or \"BS\"), then the operator evaluates to true if it does not find an exact match with any member of the set.

    NOT_CONTAINS is supported for lists: When evaluating \"a NOT CONTAINS b\", \"a\" can be a list; however, \"b\" cannot be a set, a map, or a list.

  • BEGINS_WITH : Checks for a prefix.

    AttributeValueList can contain only one AttributeValue of type String or Binary (not a Number or a set type). The target attribute of the comparison must be of type String or Binary (not a Number or a set type).

  • IN : Checks for matching elements within two sets.

    AttributeValueList can contain one or more AttributeValue elements of type String, Number, or Binary (not a set type). These attributes are compared against an existing set type attribute of an item. If any elements of the input set are present in the item attribute, the expression evaluates to true.

  • BETWEEN : Greater than or equal to the first value, and less than or equal to the second value.

    AttributeValueList must contain two AttributeValue elements of the same type, either String, Number, or Binary (not a set type). A target attribute matches if the target value is greater than, or equal to, the first element and less than, or equal to, the second element. If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not compare to {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}

" + } + }, + "Condition": { + "base": "

Represents the selection criteria for a Query or Scan operation:

  • For a Query operation, Condition is used for specifying the KeyConditions to use when querying a table or an index. For KeyConditions, only the following comparison operators are supported:

    EQ | LE | LT | GE | GT | BEGINS_WITH | BETWEEN

    Condition is also used in a QueryFilter, which evaluates the query results and returns only the desired values.

  • For a Scan operation, Condition is used in a ScanFilter, which evaluates the scan results and returns only the desired values.

", + "refs": { + "FilterConditionMap$value": null, + "KeyConditions$value": null + } + }, + "ConditionExpression": { + "base": null, + "refs": { + "DeleteItemInput$ConditionExpression": "

A condition that must be satisfied in order for a conditional DeleteItem to succeed.

An expression can contain any of the following:

  • Boolean functions: attribute_exists | attribute_not_exists | contains | begins_with

    These function names are case-sensitive.

  • Comparison operators: = | <> | < | > | <= | >= | BETWEEN | IN

  • Logical operators: AND | OR | NOT

For more information on condition expressions, see Specifying Conditions in the Amazon DynamoDB Developer Guide.

ConditionExpression replaces the legacy ConditionalOperator and Expected parameters.

", + "PutItemInput$ConditionExpression": "

A condition that must be satisfied in order for a conditional PutItem operation to succeed.

An expression can contain any of the following:

  • Boolean functions: attribute_exists | attribute_not_exists | contains | begins_with

    These function names are case-sensitive.

  • Comparison operators: = | <> | < | > | <= | >= | BETWEEN | IN

  • Logical operators: AND | OR | NOT

For more information on condition expressions, see Specifying Conditions in the Amazon DynamoDB Developer Guide.

ConditionExpression replaces the legacy ConditionalOperator and Expected parameters.

", + "QueryInput$FilterExpression": "

A string that contains conditions that DynamoDB applies after the Query operation, but before the data is returned to you. Items that do not satisfy the FilterExpression criteria are not returned.

A FilterExpression is applied after the items have already been read; the process of filtering does not consume any additional read capacity units.

For more information, see Filter Expressions in the Amazon DynamoDB Developer Guide.

FilterExpression replaces the legacy QueryFilter and ConditionalOperator parameters.

", + "ScanInput$FilterExpression": "

A string that contains conditions that DynamoDB applies after the Scan operation, but before the data is returned to you. Items that do not satisfy the FilterExpression criteria are not returned.

A FilterExpression is applied after the items have already been read; the process of filtering does not consume any additional read capacity units.

For more information, see Filter Expressions in the Amazon DynamoDB Developer Guide.

FilterExpression replaces the legacy ScanFilter and ConditionalOperator parameters.

", + "UpdateItemInput$ConditionExpression": "

A condition that must be satisfied in order for a conditional update to succeed.

An expression can contain any of the following:

  • Boolean functions: attribute_exists | attribute_not_exists | contains | begins_with

    These function names are case-sensitive.

  • Comparison operators: = | <> | < | > | <= | >= | BETWEEN | IN

  • Logical operators: AND | OR | NOT

For more information on condition expressions, see Specifying Conditions in the Amazon DynamoDB Developer Guide.

ConditionExpression replaces the legacy ConditionalOperator and Expected parameters.

" + } + }, + "ConditionalCheckFailedException": { + "base": "

A condition specified in the operation could not be evaluated.

", + "refs": { + } + }, + "ConditionalOperator": { + "base": null, + "refs": { + "DeleteItemInput$ConditionalOperator": "

This is a legacy parameter, for backward compatibility. New applications should use ConditionExpression instead. Do not combine legacy parameters and expression parameters in a single API call; otherwise, DynamoDB will return a ValidationException exception.

A logical operator to apply to the conditions in the Expected map:

  • AND - If all of the conditions evaluate to true, then the entire map evaluates to true.

  • OR - If at least one of the conditions evaluate to true, then the entire map evaluates to true.

If you omit ConditionalOperator, then AND is the default.

The operation will succeed only if the entire map evaluates to true.

This parameter does not support attributes of type List or Map.

", + "PutItemInput$ConditionalOperator": "

This is a legacy parameter, for backward compatibility. New applications should use ConditionExpression instead. Do not combine legacy parameters and expression parameters in a single API call; otherwise, DynamoDB will return a ValidationException exception.

A logical operator to apply to the conditions in the Expected map:

  • AND - If all of the conditions evaluate to true, then the entire map evaluates to true.

  • OR - If at least one of the conditions evaluate to true, then the entire map evaluates to true.

If you omit ConditionalOperator, then AND is the default.

The operation will succeed only if the entire map evaluates to true.

This parameter does not support attributes of type List or Map.

", + "QueryInput$ConditionalOperator": "

This is a legacy parameter, for backward compatibility. New applications should use FilterExpression instead. Do not combine legacy parameters and expression parameters in a single API call; otherwise, DynamoDB will return a ValidationException exception.

A logical operator to apply to the conditions in a QueryFilter map:

  • AND - If all of the conditions evaluate to true, then the entire map evaluates to true.

  • OR - If at least one of the conditions evaluate to true, then the entire map evaluates to true.

If you omit ConditionalOperator, then AND is the default.

The operation will succeed only if the entire map evaluates to true.

This parameter does not support attributes of type List or Map.

", + "ScanInput$ConditionalOperator": "

This is a legacy parameter, for backward compatibility. New applications should use FilterExpression instead. Do not combine legacy parameters and expression parameters in a single API call; otherwise, DynamoDB will return a ValidationException exception.

A logical operator to apply to the conditions in a ScanFilter map:

  • AND - If all of the conditions evaluate to true, then the entire map evaluates to true.

  • OR - If at least one of the conditions evaluate to true, then the entire map evaluates to true.

If you omit ConditionalOperator, then AND is the default.

The operation will succeed only if the entire map evaluates to true.

This parameter does not support attributes of type List or Map.

", + "UpdateItemInput$ConditionalOperator": "

This is a legacy parameter, for backward compatibility. New applications should use ConditionExpression instead. Do not combine legacy parameters and expression parameters in a single API call; otherwise, DynamoDB will return a ValidationException exception.

A logical operator to apply to the conditions in the Expected map:

  • AND - If all of the conditions evaluate to true, then the entire map evaluates to true.

  • OR - If at least one of the conditions evaluate to true, then the entire map evaluates to true.

If you omit ConditionalOperator, then AND is the default.

The operation will succeed only if the entire map evaluates to true.

This parameter does not support attributes of type List or Map.

" + } + }, + "ConsistentRead": { + "base": null, + "refs": { + "GetItemInput$ConsistentRead": "

A value that if set to true, then the operation uses strongly consistent reads; otherwise, eventually consistent reads are used.

", + "KeysAndAttributes$ConsistentRead": "

The consistency of a read operation. If set to true, then a strongly consistent read is used; otherwise, an eventually consistent read is used.

", + "QueryInput$ConsistentRead": "

A value that if set to true, then the operation uses strongly consistent reads; otherwise, eventually consistent reads are used.

Strongly consistent reads are not supported on global secondary indexes. If you query a global secondary index with ConsistentRead set to true, you will receive an error message.

" + } + }, + "ConsumedCapacity": { + "base": "

The capacity units consumed by an operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. ConsumedCapacity is only returned if the request asked for it. For more information, see Provisioned Throughput in the Amazon DynamoDB Developer Guide.

", + "refs": { + "ConsumedCapacityMultiple$member": null, + "DeleteItemOutput$ConsumedCapacity": null, + "GetItemOutput$ConsumedCapacity": null, + "PutItemOutput$ConsumedCapacity": null, + "QueryOutput$ConsumedCapacity": null, + "ScanOutput$ConsumedCapacity": null, + "UpdateItemOutput$ConsumedCapacity": null + } + }, + "ConsumedCapacityMultiple": { + "base": null, + "refs": { + "BatchGetItemOutput$ConsumedCapacity": "

The read capacity units consumed by the operation.

Each element consists of:

  • TableName - The table that consumed the provisioned throughput.

  • CapacityUnits - The total number of capacity units consumed.

", + "BatchWriteItemOutput$ConsumedCapacity": "

The capacity units consumed by the operation.

Each element consists of:

  • TableName - The table that consumed the provisioned throughput.

  • CapacityUnits - The total number of capacity units consumed.

" + } + }, + "ConsumedCapacityUnits": { + "base": null, + "refs": { + "Capacity$CapacityUnits": "

The total number of capacity units consumed on a table or an index.

", + "ConsumedCapacity$CapacityUnits": "

The total number of capacity units consumed by the operation.

" + } + }, + "CreateGlobalSecondaryIndexAction": { + "base": "

Represents a new global secondary index to be added to an existing table.

", + "refs": { + "GlobalSecondaryIndexUpdate$Create": "

The parameters required for creating a global secondary index on an existing table:

  • IndexName

  • KeySchema

  • AttributeDefinitions

  • Projection

  • ProvisionedThroughput

" + } + }, + "CreateTableInput": { + "base": "

Represents the input of a CreateTable operation.

", + "refs": { + } + }, + "CreateTableOutput": { + "base": "

Represents the output of a CreateTable operation.

", + "refs": { + } + }, + "Date": { + "base": null, + "refs": { + "ProvisionedThroughputDescription$LastIncreaseDateTime": "

The date and time of the last provisioned throughput increase for this table.

", + "ProvisionedThroughputDescription$LastDecreaseDateTime": "

The date and time of the last provisioned throughput decrease for this table.

", + "TableDescription$CreationDateTime": "

The date and time when the table was created, in UNIX epoch time format.

" + } + }, + "DeleteGlobalSecondaryIndexAction": { + "base": "

Represents a global secondary index to be deleted from an existing table.

", + "refs": { + "GlobalSecondaryIndexUpdate$Delete": "

The name of an existing global secondary index to be removed.

" + } + }, + "DeleteItemInput": { + "base": "

Represents the input of a DeleteItem operation.

", + "refs": { + } + }, + "DeleteItemOutput": { + "base": "

Represents the output of a DeleteItem operation.

", + "refs": { + } + }, + "DeleteRequest": { + "base": "

Represents a request to perform a DeleteItem operation on an item.

", + "refs": { + "WriteRequest$DeleteRequest": "

A request to perform a DeleteItem operation.

" + } + }, + "DeleteTableInput": { + "base": "

Represents the input of a DeleteTable operation.

", + "refs": { + } + }, + "DeleteTableOutput": { + "base": "

Represents the output of a DeleteTable operation.

", + "refs": { + } + }, + "DescribeTableInput": { + "base": "

Represents the input of a DescribeTable operation.

", + "refs": { + } + }, + "DescribeTableOutput": { + "base": "

Represents the output of a DescribeTable operation.

", + "refs": { + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "ConditionalCheckFailedException$message": "

The conditional request failed.

", + "InternalServerError$message": "

The server encountered an internal error trying to fulfill the request.

", + "ItemCollectionSizeLimitExceededException$message": "

The total size of an item collection has exceeded the maximum limit of 10 gigabytes.

", + "LimitExceededException$message": "

Too many operations for a given subscriber.

", + "ProvisionedThroughputExceededException$message": "

You exceeded your maximum allowed provisioned throughput.

", + "ResourceInUseException$message": "

The resource which is being attempted to be changed is in use.

", + "ResourceNotFoundException$message": "

The resource which is being requested does not exist.

" + } + }, + "ExpectedAttributeMap": { + "base": null, + "refs": { + "DeleteItemInput$Expected": "

This is a legacy parameter, for backward compatibility. New applications should use ConditionExpression instead. Do not combine legacy parameters and expression parameters in a single API call; otherwise, DynamoDB will return a ValidationException exception.

A map of attribute/condition pairs. Expected provides a conditional block for the DeleteItem operation.

Each element of Expected consists of an attribute name, a comparison operator, and one or more values. DynamoDB compares the attribute with the value(s) you supplied, using the comparison operator. For each Expected element, the result of the evaluation is either true or false.

If you specify more than one element in the Expected map, then by default all of the conditions must evaluate to true. In other words, the conditions are ANDed together. (You can use the ConditionalOperator parameter to OR the conditions instead. If you do this, then at least one of the conditions must evaluate to true, rather than all of them.)

If the Expected map evaluates to true, then the conditional operation succeeds; otherwise, it fails.

Expected contains the following:

  • AttributeValueList - One or more values to evaluate against the supplied attribute. The number of values in the list depends on the ComparisonOperator being used.

    For type Number, value comparisons are numeric.

    String value comparisons for greater than, equals, or less than are based on ASCII character code values. For example, a is greater than A, and a is greater than B. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters.

    For type Binary, DynamoDB treats each byte of the binary data as unsigned when it compares binary values.

  • ComparisonOperator - A comparator for evaluating attributes in the AttributeValueList. When performing the comparison, DynamoDB uses strongly consistent reads.

    The following comparison operators are available:

    EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS | BEGINS_WITH | IN | BETWEEN

    The following are descriptions of each comparison operator.

    • EQ : Equal. EQ is supported for all datatypes, including lists and maps.

      AttributeValueList can contain only one AttributeValue element of type String, Number, Binary, String Set, Number Set, or Binary Set. If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not equal {\"NS\":[\"6\", \"2\", \"1\"]}.

    • NE : Not equal. NE is supported for all datatypes, including lists and maps.

      AttributeValueList can contain only one AttributeValue of type String, Number, Binary, String Set, Number Set, or Binary Set. If an item contains an AttributeValue of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not equal {\"NS\":[\"6\", \"2\", \"1\"]}.

    • LE : Less than or equal.

      AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

    • LT : Less than.

      AttributeValueList can contain only one AttributeValue of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

    • GE : Greater than or equal.

      AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

    • GT : Greater than.

      AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

    • NOT_NULL : The attribute exists. NOT_NULL is supported for all datatypes, including lists and maps.

      This operator tests for the existence of an attribute, not its data type. If the data type of attribute \"a\" is null, and you evaluate it using NOT_NULL, the result is a Boolean true. This result is because the attribute \"a\" exists; its data type is not relevant to the NOT_NULL comparison operator.

    • NULL : The attribute does not exist. NULL is supported for all datatypes, including lists and maps.

      This operator tests for the nonexistence of an attribute, not its data type. If the data type of attribute \"a\" is null, and you evaluate it using NULL, the result is a Boolean false. This is because the attribute \"a\" exists; its data type is not relevant to the NULL comparison operator.

    • CONTAINS : Checks for a subsequence, or value in a set.

      AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If the target attribute of the comparison is of type String, then the operator checks for a substring match. If the target attribute of the comparison is of type Binary, then the operator looks for a subsequence of the target that matches the input. If the target attribute of the comparison is a set (\"SS\", \"NS\", or \"BS\"), then the operator evaluates to true if it finds an exact match with any member of the set.

      CONTAINS is supported for lists: When evaluating \"a CONTAINS b\", \"a\" can be a list; however, \"b\" cannot be a set, a map, or a list.

    • NOT_CONTAINS : Checks for absence of a subsequence, or absence of a value in a set.

      AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If the target attribute of the comparison is a String, then the operator checks for the absence of a substring match. If the target attribute of the comparison is Binary, then the operator checks for the absence of a subsequence of the target that matches the input. If the target attribute of the comparison is a set (\"SS\", \"NS\", or \"BS\"), then the operator evaluates to true if it does not find an exact match with any member of the set.

      NOT_CONTAINS is supported for lists: When evaluating \"a NOT CONTAINS b\", \"a\" can be a list; however, \"b\" cannot be a set, a map, or a list.

    • BEGINS_WITH : Checks for a prefix.

      AttributeValueList can contain only one AttributeValue of type String or Binary (not a Number or a set type). The target attribute of the comparison must be of type String or Binary (not a Number or a set type).

    • IN : Checks for matching elements within two sets.

      AttributeValueList can contain one or more AttributeValue elements of type String, Number, or Binary (not a set type). These attributes are compared against an existing set type attribute of an item. If any elements of the input set are present in the item attribute, the expression evaluates to true.

    • BETWEEN : Greater than or equal to the first value, and less than or equal to the second value.

      AttributeValueList must contain two AttributeValue elements of the same type, either String, Number, or Binary (not a set type). A target attribute matches if the target value is greater than, or equal to, the first element and less than, or equal to, the second element. If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not compare to {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}

For usage examples of AttributeValueList and ComparisonOperator, see Legacy Conditional Parameters in the Amazon DynamoDB Developer Guide.

For backward compatibility with previous DynamoDB releases, the following parameters can be used instead of AttributeValueList and ComparisonOperator:

  • Value - A value for DynamoDB to compare with an attribute.

  • Exists - A Boolean value that causes DynamoDB to evaluate the value before attempting the conditional operation:

    • If Exists is true, DynamoDB will check to see if that attribute value already exists in the table. If it is found, then the condition evaluates to true; otherwise the condition evaluate to false.

    • If Exists is false, DynamoDB assumes that the attribute value does not exist in the table. If in fact the value does not exist, then the assumption is valid and the condition evaluates to true. If the value is found, despite the assumption that it does not exist, the condition evaluates to false.

    Note that the default value for Exists is true.

The Value and Exists parameters are incompatible with AttributeValueList and ComparisonOperator. Note that if you use both sets of parameters at once, DynamoDB will return a ValidationException exception.

This parameter does not support attributes of type List or Map.

", + "PutItemInput$Expected": "

This is a legacy parameter, for backward compatibility. New applications should use ConditionExpression instead. Do not combine legacy parameters and expression parameters in a single API call; otherwise, DynamoDB will return a ValidationException exception.

A map of attribute/condition pairs. Expected provides a conditional block for the PutItem operation.

This parameter does not support attributes of type List or Map.

Each element of Expected consists of an attribute name, a comparison operator, and one or more values. DynamoDB compares the attribute with the value(s) you supplied, using the comparison operator. For each Expected element, the result of the evaluation is either true or false.

If you specify more than one element in the Expected map, then by default all of the conditions must evaluate to true. In other words, the conditions are ANDed together. (You can use the ConditionalOperator parameter to OR the conditions instead. If you do this, then at least one of the conditions must evaluate to true, rather than all of them.)

If the Expected map evaluates to true, then the conditional operation succeeds; otherwise, it fails.

Expected contains the following:

  • AttributeValueList - One or more values to evaluate against the supplied attribute. The number of values in the list depends on the ComparisonOperator being used.

    For type Number, value comparisons are numeric.

    String value comparisons for greater than, equals, or less than are based on ASCII character code values. For example, a is greater than A, and a is greater than B. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters.

    For type Binary, DynamoDB treats each byte of the binary data as unsigned when it compares binary values.

  • ComparisonOperator - A comparator for evaluating attributes in the AttributeValueList. When performing the comparison, DynamoDB uses strongly consistent reads.

    The following comparison operators are available:

    EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS | BEGINS_WITH | IN | BETWEEN

    The following are descriptions of each comparison operator.

    • EQ : Equal. EQ is supported for all datatypes, including lists and maps.

      AttributeValueList can contain only one AttributeValue element of type String, Number, Binary, String Set, Number Set, or Binary Set. If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not equal {\"NS\":[\"6\", \"2\", \"1\"]}.

    • NE : Not equal. NE is supported for all datatypes, including lists and maps.

      AttributeValueList can contain only one AttributeValue of type String, Number, Binary, String Set, Number Set, or Binary Set. If an item contains an AttributeValue of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not equal {\"NS\":[\"6\", \"2\", \"1\"]}.

    • LE : Less than or equal.

      AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

    • LT : Less than.

      AttributeValueList can contain only one AttributeValue of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

    • GE : Greater than or equal.

      AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

    • GT : Greater than.

      AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

    • NOT_NULL : The attribute exists. NOT_NULL is supported for all datatypes, including lists and maps.

      This operator tests for the existence of an attribute, not its data type. If the data type of attribute \"a\" is null, and you evaluate it using NOT_NULL, the result is a Boolean true. This result is because the attribute \"a\" exists; its data type is not relevant to the NOT_NULL comparison operator.

    • NULL : The attribute does not exist. NULL is supported for all datatypes, including lists and maps.

      This operator tests for the nonexistence of an attribute, not its data type. If the data type of attribute \"a\" is null, and you evaluate it using NULL, the result is a Boolean false. This is because the attribute \"a\" exists; its data type is not relevant to the NULL comparison operator.

    • CONTAINS : Checks for a subsequence, or value in a set.

      AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If the target attribute of the comparison is of type String, then the operator checks for a substring match. If the target attribute of the comparison is of type Binary, then the operator looks for a subsequence of the target that matches the input. If the target attribute of the comparison is a set (\"SS\", \"NS\", or \"BS\"), then the operator evaluates to true if it finds an exact match with any member of the set.

      CONTAINS is supported for lists: When evaluating \"a CONTAINS b\", \"a\" can be a list; however, \"b\" cannot be a set, a map, or a list.

    • NOT_CONTAINS : Checks for absence of a subsequence, or absence of a value in a set.

      AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If the target attribute of the comparison is a String, then the operator checks for the absence of a substring match. If the target attribute of the comparison is Binary, then the operator checks for the absence of a subsequence of the target that matches the input. If the target attribute of the comparison is a set (\"SS\", \"NS\", or \"BS\"), then the operator evaluates to true if it does not find an exact match with any member of the set.

      NOT_CONTAINS is supported for lists: When evaluating \"a NOT CONTAINS b\", \"a\" can be a list; however, \"b\" cannot be a set, a map, or a list.

    • BEGINS_WITH : Checks for a prefix.

      AttributeValueList can contain only one AttributeValue of type String or Binary (not a Number or a set type). The target attribute of the comparison must be of type String or Binary (not a Number or a set type).

    • IN : Checks for matching elements within two sets.

      AttributeValueList can contain one or more AttributeValue elements of type String, Number, or Binary (not a set type). These attributes are compared against an existing set type attribute of an item. If any elements of the input set are present in the item attribute, the expression evaluates to true.

    • BETWEEN : Greater than or equal to the first value, and less than or equal to the second value.

      AttributeValueList must contain two AttributeValue elements of the same type, either String, Number, or Binary (not a set type). A target attribute matches if the target value is greater than, or equal to, the first element and less than, or equal to, the second element. If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not compare to {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}

For usage examples of AttributeValueList and ComparisonOperator, see Legacy Conditional Parameters in the Amazon DynamoDB Developer Guide.

For backward compatibility with previous DynamoDB releases, the following parameters can be used instead of AttributeValueList and ComparisonOperator:

  • Value - A value for DynamoDB to compare with an attribute.

  • Exists - A Boolean value that causes DynamoDB to evaluate the value before attempting the conditional operation:

    • If Exists is true, DynamoDB will check to see if that attribute value already exists in the table. If it is found, then the condition evaluates to true; otherwise the condition evaluate to false.

    • If Exists is false, DynamoDB assumes that the attribute value does not exist in the table. If in fact the value does not exist, then the assumption is valid and the condition evaluates to true. If the value is found, despite the assumption that it does not exist, the condition evaluates to false.

    Note that the default value for Exists is true.

The Value and Exists parameters are incompatible with AttributeValueList and ComparisonOperator. Note that if you use both sets of parameters at once, DynamoDB will return a ValidationException exception.

", + "UpdateItemInput$Expected": "

This is a legacy parameter, for backward compatibility. New applications should use ConditionExpression instead. Do not combine legacy parameters and expression parameters in a single API call; otherwise, DynamoDB will return a ValidationException exception.

A map of attribute/condition pairs. Expected provides a conditional block for the UpdateItem operation.

Each element of Expected consists of an attribute name, a comparison operator, and one or more values. DynamoDB compares the attribute with the value(s) you supplied, using the comparison operator. For each Expected element, the result of the evaluation is either true or false.

If you specify more than one element in the Expected map, then by default all of the conditions must evaluate to true. In other words, the conditions are ANDed together. (You can use the ConditionalOperator parameter to OR the conditions instead. If you do this, then at least one of the conditions must evaluate to true, rather than all of them.)

If the Expected map evaluates to true, then the conditional operation succeeds; otherwise, it fails.

Expected contains the following:

  • AttributeValueList - One or more values to evaluate against the supplied attribute. The number of values in the list depends on the ComparisonOperator being used.

    For type Number, value comparisons are numeric.

    String value comparisons for greater than, equals, or less than are based on ASCII character code values. For example, a is greater than A, and a is greater than B. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters.

    For type Binary, DynamoDB treats each byte of the binary data as unsigned when it compares binary values.

  • ComparisonOperator - A comparator for evaluating attributes in the AttributeValueList. When performing the comparison, DynamoDB uses strongly consistent reads.

    The following comparison operators are available:

    EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS | BEGINS_WITH | IN | BETWEEN

    The following are descriptions of each comparison operator.

    • EQ : Equal. EQ is supported for all datatypes, including lists and maps.

      AttributeValueList can contain only one AttributeValue element of type String, Number, Binary, String Set, Number Set, or Binary Set. If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not equal {\"NS\":[\"6\", \"2\", \"1\"]}.

    • NE : Not equal. NE is supported for all datatypes, including lists and maps.

      AttributeValueList can contain only one AttributeValue of type String, Number, Binary, String Set, Number Set, or Binary Set. If an item contains an AttributeValue of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not equal {\"NS\":[\"6\", \"2\", \"1\"]}.

    • LE : Less than or equal.

      AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

    • LT : Less than.

      AttributeValueList can contain only one AttributeValue of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

    • GE : Greater than or equal.

      AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

    • GT : Greater than.

      AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

    • NOT_NULL : The attribute exists. NOT_NULL is supported for all datatypes, including lists and maps.

      This operator tests for the existence of an attribute, not its data type. If the data type of attribute \"a\" is null, and you evaluate it using NOT_NULL, the result is a Boolean true. This result is because the attribute \"a\" exists; its data type is not relevant to the NOT_NULL comparison operator.

    • NULL : The attribute does not exist. NULL is supported for all datatypes, including lists and maps.

      This operator tests for the nonexistence of an attribute, not its data type. If the data type of attribute \"a\" is null, and you evaluate it using NULL, the result is a Boolean false. This is because the attribute \"a\" exists; its data type is not relevant to the NULL comparison operator.

    • CONTAINS : Checks for a subsequence, or value in a set.

      AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If the target attribute of the comparison is of type String, then the operator checks for a substring match. If the target attribute of the comparison is of type Binary, then the operator looks for a subsequence of the target that matches the input. If the target attribute of the comparison is a set (\"SS\", \"NS\", or \"BS\"), then the operator evaluates to true if it finds an exact match with any member of the set.

      CONTAINS is supported for lists: When evaluating \"a CONTAINS b\", \"a\" can be a list; however, \"b\" cannot be a set, a map, or a list.

    • NOT_CONTAINS : Checks for absence of a subsequence, or absence of a value in a set.

      AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If the target attribute of the comparison is a String, then the operator checks for the absence of a substring match. If the target attribute of the comparison is Binary, then the operator checks for the absence of a subsequence of the target that matches the input. If the target attribute of the comparison is a set (\"SS\", \"NS\", or \"BS\"), then the operator evaluates to true if it does not find an exact match with any member of the set.

      NOT_CONTAINS is supported for lists: When evaluating \"a NOT CONTAINS b\", \"a\" can be a list; however, \"b\" cannot be a set, a map, or a list.

    • BEGINS_WITH : Checks for a prefix.

      AttributeValueList can contain only one AttributeValue of type String or Binary (not a Number or a set type). The target attribute of the comparison must be of type String or Binary (not a Number or a set type).

    • IN : Checks for matching elements within two sets.

      AttributeValueList can contain one or more AttributeValue elements of type String, Number, or Binary (not a set type). These attributes are compared against an existing set type attribute of an item. If any elements of the input set are present in the item attribute, the expression evaluates to true.

    • BETWEEN : Greater than or equal to the first value, and less than or equal to the second value.

      AttributeValueList must contain two AttributeValue elements of the same type, either String, Number, or Binary (not a set type). A target attribute matches if the target value is greater than, or equal to, the first element and less than, or equal to, the second element. If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not compare to {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}

For usage examples of AttributeValueList and ComparisonOperator, see Legacy Conditional Parameters in the Amazon DynamoDB Developer Guide.

For backward compatibility with previous DynamoDB releases, the following parameters can be used instead of AttributeValueList and ComparisonOperator:

  • Value - A value for DynamoDB to compare with an attribute.

  • Exists - A Boolean value that causes DynamoDB to evaluate the value before attempting the conditional operation:

    • If Exists is true, DynamoDB will check to see if that attribute value already exists in the table. If it is found, then the condition evaluates to true; otherwise the condition evaluate to false.

    • If Exists is false, DynamoDB assumes that the attribute value does not exist in the table. If in fact the value does not exist, then the assumption is valid and the condition evaluates to true. If the value is found, despite the assumption that it does not exist, the condition evaluates to false.

    Note that the default value for Exists is true.

The Value and Exists parameters are incompatible with AttributeValueList and ComparisonOperator. Note that if you use both sets of parameters at once, DynamoDB will return a ValidationException exception.

This parameter does not support attributes of type List or Map.

" + } + }, + "ExpectedAttributeValue": { + "base": "

Represents a condition to be compared with an attribute value. This condition can be used with DeleteItem, PutItem or UpdateItem operations; if the comparison evaluates to true, the operation succeeds; if not, the operation fails. You can use ExpectedAttributeValue in one of two different ways:

  • Use AttributeValueList to specify one or more values to compare against an attribute. Use ComparisonOperator to specify how you want to perform the comparison. If the comparison evaluates to true, then the conditional operation succeeds.

  • Use Value to specify a value that DynamoDB will compare against an attribute. If the values match, then ExpectedAttributeValue evaluates to true and the conditional operation succeeds. Optionally, you can also set Exists to false, indicating that you do not expect to find the attribute value in the table. In this case, the conditional operation succeeds only if the comparison evaluates to false.

Value and Exists are incompatible with AttributeValueList and ComparisonOperator. Note that if you use both sets of parameters at once, DynamoDB will return a ValidationException exception.

", + "refs": { + "ExpectedAttributeMap$value": null + } + }, + "ExpressionAttributeNameMap": { + "base": null, + "refs": { + "DeleteItemInput$ExpressionAttributeNames": "

One or more substitution tokens for attribute names in an expression. The following are some use cases for using ExpressionAttributeNames:

  • To access an attribute whose name conflicts with a DynamoDB reserved word.

  • To create a placeholder for repeating occurrences of an attribute name in an expression.

  • To prevent special characters in an attribute name from being misinterpreted in an expression.

Use the # character in an expression to dereference an attribute name. For example, consider the following attribute name:

  • Percentile

The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see Reserved Words in the Amazon DynamoDB Developer Guide). To work around this, you could specify the following for ExpressionAttributeNames:

  • {\"#P\":\"Percentile\"}

You could then use this substitution in an expression, as in this example:

  • #P = :val

Tokens that begin with the : character are expression attribute values, which are placeholders for the actual value at runtime.

For more information on expression attribute names, see Using Placeholders for Attribute Names and Values in the Amazon DynamoDB Developer Guide.

", + "GetItemInput$ExpressionAttributeNames": "

One or more substitution tokens for attribute names in an expression. The following are some use cases for using ExpressionAttributeNames:

  • To access an attribute whose name conflicts with a DynamoDB reserved word.

  • To create a placeholder for repeating occurrences of an attribute name in an expression.

  • To prevent special characters in an attribute name from being misinterpreted in an expression.

Use the # character in an expression to dereference an attribute name. For example, consider the following attribute name:

  • Percentile

The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see Reserved Words in the Amazon DynamoDB Developer Guide). To work around this, you could specify the following for ExpressionAttributeNames:

  • {\"#P\":\"Percentile\"}

You could then use this substitution in an expression, as in this example:

  • #P = :val

Tokens that begin with the : character are expression attribute values, which are placeholders for the actual value at runtime.

For more information on expression attribute names, see Using Placeholders for Attribute Names and Values in the Amazon DynamoDB Developer Guide.

", + "KeysAndAttributes$ExpressionAttributeNames": "

One or more substitution tokens for attribute names in an expression. The following are some use cases for using ExpressionAttributeNames:

  • To access an attribute whose name conflicts with a DynamoDB reserved word.

  • To create a placeholder for repeating occurrences of an attribute name in an expression.

  • To prevent special characters in an attribute name from being misinterpreted in an expression.

Use the # character in an expression to dereference an attribute name. For example, consider the following attribute name:

  • Percentile

The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see Reserved Words in the Amazon DynamoDB Developer Guide). To work around this, you could specify the following for ExpressionAttributeNames:

  • {\"#P\":\"Percentile\"}

You could then use this substitution in an expression, as in this example:

  • #P = :val

Tokens that begin with the : character are expression attribute values, which are placeholders for the actual value at runtime.

For more information on expression attribute names, see Using Placeholders for Attribute Names and Values in the Amazon DynamoDB Developer Guide.

", + "PutItemInput$ExpressionAttributeNames": "

One or more substitution tokens for attribute names in an expression. The following are some use cases for using ExpressionAttributeNames:

  • To access an attribute whose name conflicts with a DynamoDB reserved word.

  • To create a placeholder for repeating occurrences of an attribute name in an expression.

  • To prevent special characters in an attribute name from being misinterpreted in an expression.

Use the # character in an expression to dereference an attribute name. For example, consider the following attribute name:

  • Percentile

The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see Reserved Words in the Amazon DynamoDB Developer Guide). To work around this, you could specify the following for ExpressionAttributeNames:

  • {\"#P\":\"Percentile\"}

You could then use this substitution in an expression, as in this example:

  • #P = :val

Tokens that begin with the : character are expression attribute values, which are placeholders for the actual value at runtime.

For more information on expression attribute names, see Using Placeholders for Attribute Names and Values in the Amazon DynamoDB Developer Guide.

", + "QueryInput$ExpressionAttributeNames": "

One or more substitution tokens for attribute names in an expression. The following are some use cases for using ExpressionAttributeNames:

  • To access an attribute whose name conflicts with a DynamoDB reserved word.

  • To create a placeholder for repeating occurrences of an attribute name in an expression.

  • To prevent special characters in an attribute name from being misinterpreted in an expression.

Use the # character in an expression to dereference an attribute name. For example, consider the following attribute name:

  • Percentile

The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see Reserved Words in the Amazon DynamoDB Developer Guide). To work around this, you could specify the following for ExpressionAttributeNames:

  • {\"#P\":\"Percentile\"}

You could then use this substitution in an expression, as in this example:

  • #P = :val

Tokens that begin with the : character are expression attribute values, which are placeholders for the actual value at runtime.

For more information on expression attribute names, see Using Placeholders for Attribute Names and Values in the Amazon DynamoDB Developer Guide.

", + "ScanInput$ExpressionAttributeNames": "

One or more substitution tokens for attribute names in an expression. The following are some use cases for using ExpressionAttributeNames:

  • To access an attribute whose name conflicts with a DynamoDB reserved word.

  • To create a placeholder for repeating occurrences of an attribute name in an expression.

  • To prevent special characters in an attribute name from being misinterpreted in an expression.

Use the # character in an expression to dereference an attribute name. For example, consider the following attribute name:

  • Percentile

The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see Reserved Words in the Amazon DynamoDB Developer Guide). To work around this, you could specify the following for ExpressionAttributeNames:

  • {\"#P\":\"Percentile\"}

You could then use this substitution in an expression, as in this example:

  • #P = :val

Tokens that begin with the : character are expression attribute values, which are placeholders for the actual value at runtime.

For more information on expression attribute names, see Using Placeholders for Attribute Names and Values in the Amazon DynamoDB Developer Guide.

", + "UpdateItemInput$ExpressionAttributeNames": "

One or more substitution tokens for attribute names in an expression. The following are some use cases for using ExpressionAttributeNames:

  • To access an attribute whose name conflicts with a DynamoDB reserved word.

  • To create a placeholder for repeating occurrences of an attribute name in an expression.

  • To prevent special characters in an attribute name from being misinterpreted in an expression.

Use the # character in an expression to dereference an attribute name. For example, consider the following attribute name:

  • Percentile

The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see Reserved Words in the Amazon DynamoDB Developer Guide). To work around this, you could specify the following for ExpressionAttributeNames:

  • {\"#P\":\"Percentile\"}

You could then use this substitution in an expression, as in this example:

  • #P = :val

Tokens that begin with the : character are expression attribute values, which are placeholders for the actual value at runtime.

For more information on expression attribute names, see Using Placeholders for Attribute Names and Values in the Amazon DynamoDB Developer Guide.

" + } + }, + "ExpressionAttributeNameVariable": { + "base": null, + "refs": { + "ExpressionAttributeNameMap$key": null + } + }, + "ExpressionAttributeValueMap": { + "base": null, + "refs": { + "DeleteItemInput$ExpressionAttributeValues": "

One or more values that can be substituted in an expression.

Use the : (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the ProductStatus attribute was one of the following:

Available | Backordered | Discontinued

You would first need to specify ExpressionAttributeValues as follows:

{ \":avail\":{\"S\":\"Available\"}, \":back\":{\"S\":\"Backordered\"}, \":disc\":{\"S\":\"Discontinued\"} }

You could then use these values in an expression, such as this:

ProductStatus IN (:avail, :back, :disc)

For more information on expression attribute values, see Using Placeholders for Attribute Names and Values in the Amazon DynamoDB Developer Guide.

", + "PutItemInput$ExpressionAttributeValues": "

One or more values that can be substituted in an expression.

Use the : (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the ProductStatus attribute was one of the following:

Available | Backordered | Discontinued

You would first need to specify ExpressionAttributeValues as follows:

{ \":avail\":{\"S\":\"Available\"}, \":back\":{\"S\":\"Backordered\"}, \":disc\":{\"S\":\"Discontinued\"} }

You could then use these values in an expression, such as this:

ProductStatus IN (:avail, :back, :disc)

For more information on expression attribute values, see Using Placeholders for Attribute Names and Values in the Amazon DynamoDB Developer Guide.

", + "QueryInput$ExpressionAttributeValues": "

One or more values that can be substituted in an expression.

Use the : (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the ProductStatus attribute was one of the following:

Available | Backordered | Discontinued

You would first need to specify ExpressionAttributeValues as follows:

{ \":avail\":{\"S\":\"Available\"}, \":back\":{\"S\":\"Backordered\"}, \":disc\":{\"S\":\"Discontinued\"} }

You could then use these values in an expression, such as this:

ProductStatus IN (:avail, :back, :disc)

For more information on expression attribute values, see Using Placeholders for Attribute Names and Values in the Amazon DynamoDB Developer Guide.

", + "ScanInput$ExpressionAttributeValues": "

One or more values that can be substituted in an expression.

Use the : (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the ProductStatus attribute was one of the following:

Available | Backordered | Discontinued

You would first need to specify ExpressionAttributeValues as follows:

{ \":avail\":{\"S\":\"Available\"}, \":back\":{\"S\":\"Backordered\"}, \":disc\":{\"S\":\"Discontinued\"} }

You could then use these values in an expression, such as this:

ProductStatus IN (:avail, :back, :disc)

For more information on expression attribute values, see Using Placeholders for Attribute Names and Values in the Amazon DynamoDB Developer Guide.

", + "UpdateItemInput$ExpressionAttributeValues": "

One or more values that can be substituted in an expression.

Use the : (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the ProductStatus attribute was one of the following:

Available | Backordered | Discontinued

You would first need to specify ExpressionAttributeValues as follows:

{ \":avail\":{\"S\":\"Available\"}, \":back\":{\"S\":\"Backordered\"}, \":disc\":{\"S\":\"Discontinued\"} }

You could then use these values in an expression, such as this:

ProductStatus IN (:avail, :back, :disc)

For more information on expression attribute values, see Using Placeholders for Attribute Names and Values in the Amazon DynamoDB Developer Guide.

" + } + }, + "ExpressionAttributeValueVariable": { + "base": null, + "refs": { + "ExpressionAttributeValueMap$key": null + } + }, + "FilterConditionMap": { + "base": null, + "refs": { + "QueryInput$QueryFilter": "

This is a legacy parameter, for backward compatibility. New applications should use FilterExpression instead. Do not combine legacy parameters and expression parameters in a single API call; otherwise, DynamoDB will return a ValidationException exception.

A condition that evaluates the query results after the items are read and returns only the desired values.

This parameter does not support attributes of type List or Map.

A QueryFilter is applied after the items have already been read; the process of filtering does not consume any additional read capacity units.

If you provide more than one condition in the QueryFilter map, then by default all of the conditions must evaluate to true. In other words, the conditions are ANDed together. (You can use the ConditionalOperator parameter to OR the conditions instead. If you do this, then at least one of the conditions must evaluate to true, rather than all of them.)

Note that QueryFilter does not allow key attributes. You cannot define a filter condition on a hash key or range key.

Each QueryFilter element consists of an attribute name to compare, along with the following:

  • AttributeValueList - One or more values to evaluate against the supplied attribute. The number of values in the list depends on the operator specified in ComparisonOperator.

    For type Number, value comparisons are numeric.

    String value comparisons for greater than, equals, or less than are based on ASCII character code values. For example, a is greater than A, and a is greater than B. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters.

    For type Binary, DynamoDB treats each byte of the binary data as unsigned when it compares binary values.

    For information on specifying data types in JSON, see JSON Data Format in the Amazon DynamoDB Developer Guide.

  • ComparisonOperator - A comparator for evaluating attributes. For example, equals, greater than, less than, etc.

    The following comparison operators are available:

    EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS | BEGINS_WITH | IN | BETWEEN

    For complete descriptions of all comparison operators, see the Condition data type.

", + "ScanInput$ScanFilter": "

This is a legacy parameter, for backward compatibility. New applications should use FilterExpression instead. Do not combine legacy parameters and expression parameters in a single API call; otherwise, DynamoDB will return a ValidationException exception.

A condition that evaluates the scan results and returns only the desired values.

This parameter does not support attributes of type List or Map.

If you specify more than one condition in the ScanFilter map, then by default all of the conditions must evaluate to true. In other words, the conditions are ANDed together. (You can use the ConditionalOperator parameter to OR the conditions instead. If you do this, then at least one of the conditions must evaluate to true, rather than all of them.)

Each ScanFilter element consists of an attribute name to compare, along with the following:

  • AttributeValueList - One or more values to evaluate against the supplied attribute. The number of values in the list depends on the operator specified in ComparisonOperator .

    For type Number, value comparisons are numeric.

    String value comparisons for greater than, equals, or less than are based on ASCII character code values. For example, a is greater than A, and a is greater than B. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters.

    For Binary, DynamoDB treats each byte of the binary data as unsigned when it compares binary values.

    For information on specifying data types in JSON, see JSON Data Format in the Amazon DynamoDB Developer Guide.

  • ComparisonOperator - A comparator for evaluating attributes. For example, equals, greater than, less than, etc.

    The following comparison operators are available:

    EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS | BEGINS_WITH | IN | BETWEEN

    For complete descriptions of all comparison operators, see Condition.

" + } + }, + "GetItemInput": { + "base": "

Represents the input of a GetItem operation.

", + "refs": { + } + }, + "GetItemOutput": { + "base": "

Represents the output of a GetItem operation.

", + "refs": { + } + }, + "GlobalSecondaryIndex": { + "base": "

Represents the properties of a global secondary index.

", + "refs": { + "GlobalSecondaryIndexList$member": null + } + }, + "GlobalSecondaryIndexDescription": { + "base": "

Represents the properties of a global secondary index.

", + "refs": { + "GlobalSecondaryIndexDescriptionList$member": null + } + }, + "GlobalSecondaryIndexDescriptionList": { + "base": null, + "refs": { + "TableDescription$GlobalSecondaryIndexes": "

The global secondary indexes, if any, on the table. Each index is scoped to a given hash key value. Each element is composed of:

  • Backfilling - If true, then the index is currently in the backfilling phase. Backfilling occurs only when a new global secondary index is added to the table; it is the process by which DynamoDB populates the new index with data from the table. (This attribute does not appear for indexes that were created during a CreateTable operation.)

  • IndexName - The name of the global secondary index.

  • IndexSizeBytes - The total size of the global secondary index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

  • IndexStatus - The current status of the global secondary index:

    • CREATING - The index is being created.

    • UPDATING - The index is being updated.

    • DELETING - The index is being deleted.

    • ACTIVE - The index is ready for use.

  • ItemCount - The number of items in the global secondary index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

  • KeySchema - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same hash key attribute as the table.

  • Projection - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:

    • ProjectionType - One of the following:

      • KEYS_ONLY - Only the index and primary keys are projected into the index.

      • INCLUDE - Only the specified table attributes are projected into the index. The list of projected attributes are in NonKeyAttributes.

      • ALL - All of the table attributes are projected into the index.

    • NonKeyAttributes - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in NonKeyAttributes, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.

  • ProvisionedThroughput - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units, along with data about increases and decreases.

If the table is in the DELETING state, no information about indexes will be returned.

" + } + }, + "GlobalSecondaryIndexList": { + "base": null, + "refs": { + "CreateTableInput$GlobalSecondaryIndexes": "

One or more global secondary indexes (the maximum is five) to be created on the table. Each global secondary index in the array includes the following:

  • IndexName - The name of the global secondary index. Must be unique only for this table.

  • KeySchema - Specifies the key schema for the global secondary index.

  • Projection - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:

    • ProjectionType - One of the following:

      • KEYS_ONLY - Only the index and primary keys are projected into the index.

      • INCLUDE - Only the specified table attributes are projected into the index. The list of projected attributes are in NonKeyAttributes.

      • ALL - All of the table attributes are projected into the index.

    • NonKeyAttributes - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in NonKeyAttributes, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.

  • ProvisionedThroughput - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units.

" + } + }, + "GlobalSecondaryIndexUpdate": { + "base": "

Represents one of the following:

  • A new global secondary index to be added to an existing table.

  • New provisioned throughput parameters for an existing global secondary index.

  • An existing global secondary index to be removed from an existing table.

", + "refs": { + "GlobalSecondaryIndexUpdateList$member": null + } + }, + "GlobalSecondaryIndexUpdateList": { + "base": null, + "refs": { + "UpdateTableInput$GlobalSecondaryIndexUpdates": "

An array of one or more global secondary indexes for the table. For each index in the array, you can request one action:

  • Create - add a new global secondary index to the table.

  • Update - modify the provisioned throughput settings of an existing global secondary index.

  • Delete - remove a global secondary index from the table.

" + } + }, + "IndexName": { + "base": null, + "refs": { + "CreateGlobalSecondaryIndexAction$IndexName": "

The name of the global secondary index to be created.

", + "DeleteGlobalSecondaryIndexAction$IndexName": "

The name of the global secondary index to be deleted.

", + "GlobalSecondaryIndex$IndexName": "

The name of the global secondary index. The name must be unique among all other indexes on this table.

", + "GlobalSecondaryIndexDescription$IndexName": "

The name of the global secondary index.

", + "LocalSecondaryIndex$IndexName": "

The name of the local secondary index. The name must be unique among all other indexes on this table.

", + "LocalSecondaryIndexDescription$IndexName": "

Represents the name of the local secondary index.

", + "QueryInput$IndexName": "

The name of an index to query. This index can be any local secondary index or global secondary index on the table. Note that if you use the IndexName parameter, you must also provide TableName.

", + "ScanInput$IndexName": "

The name of a secondary index to scan. This index can be any local secondary index or global secondary index. Note that if you use the IndexName parameter, you must also provide TableName.

", + "SecondaryIndexesCapacityMap$key": null, + "UpdateGlobalSecondaryIndexAction$IndexName": "

The name of the global secondary index to be updated.

" + } + }, + "IndexStatus": { + "base": null, + "refs": { + "GlobalSecondaryIndexDescription$IndexStatus": "

The current state of the global secondary index:

  • CREATING - The index is being created.

  • UPDATING - The index is being updated.

  • DELETING - The index is being deleted.

  • ACTIVE - The index is ready for use.

" + } + }, + "Integer": { + "base": null, + "refs": { + "QueryOutput$Count": "

The number of items in the response.

If you used a QueryFilter in the request, then Count is the number of items returned after the filter was applied, and ScannedCount is the number of matching items before> the filter was applied.

If you did not use a filter in the request, then Count and ScannedCount are the same.

", + "QueryOutput$ScannedCount": "

The number of items evaluated, before any QueryFilter is applied. A high ScannedCount value with few, or no, Count results indicates an inefficient Query operation. For more information, see Count and ScannedCount in the Amazon DynamoDB Developer Guide.

If you did not use a filter in the request, then ScannedCount is the same as Count.

", + "ScanOutput$Count": "

The number of items in the response.

If you set ScanFilter in the request, then Count is the number of items returned after the filter was applied, and ScannedCount is the number of matching items before the filter was applied.

If you did not use a filter in the request, then Count is the same as ScannedCount.

", + "ScanOutput$ScannedCount": "

The number of items evaluated, before any ScanFilter is applied. A high ScannedCount value with few, or no, Count results indicates an inefficient Scan operation. For more information, see Count and ScannedCount in the Amazon DynamoDB Developer Guide.

If you did not use a filter in the request, then ScannedCount is the same as Count.

" + } + }, + "InternalServerError": { + "base": "

An error occurred on the server side.

", + "refs": { + } + }, + "ItemCollectionKeyAttributeMap": { + "base": null, + "refs": { + "ItemCollectionMetrics$ItemCollectionKey": "

The hash key value of the item collection. This value is the same as the hash key of the item.

" + } + }, + "ItemCollectionMetrics": { + "base": "

Information about item collections, if any, that were affected by the operation. ItemCollectionMetrics is only returned if the request asked for it. If the table does not have any local secondary indexes, this information is not returned in the response.

", + "refs": { + "DeleteItemOutput$ItemCollectionMetrics": "

Information about item collections, if any, that were affected by the operation. ItemCollectionMetrics is only returned if the request asked for it. If the table does not have any local secondary indexes, this information is not returned in the response.

Each ItemCollectionMetrics element consists of:

  • ItemCollectionKey - The hash key value of the item collection. This is the same as the hash key of the item.

  • SizeEstimateRange - An estimate of item collection size, in gigabytes. This value is a two-element array containing a lower bound and an upper bound for the estimate. The estimate includes the size of all the items in the table, plus the size of all attributes projected into all of the local secondary indexes on that table. Use this estimate to measure whether a local secondary index is approaching its size limit.

    The estimate is subject to change over time; therefore, do not rely on the precision or accuracy of the estimate.

", + "ItemCollectionMetricsMultiple$member": null, + "PutItemOutput$ItemCollectionMetrics": "

Information about item collections, if any, that were affected by the operation. ItemCollectionMetrics is only returned if the request asked for it. If the table does not have any local secondary indexes, this information is not returned in the response.

Each ItemCollectionMetrics element consists of:

  • ItemCollectionKey - The hash key value of the item collection. This is the same as the hash key of the item.

  • SizeEstimateRange - An estimate of item collection size, in gigabytes. This value is a two-element array containing a lower bound and an upper bound for the estimate. The estimate includes the size of all the items in the table, plus the size of all attributes projected into all of the local secondary indexes on that table. Use this estimate to measure whether a local secondary index is approaching its size limit.

    The estimate is subject to change over time; therefore, do not rely on the precision or accuracy of the estimate.

", + "UpdateItemOutput$ItemCollectionMetrics": null + } + }, + "ItemCollectionMetricsMultiple": { + "base": null, + "refs": { + "ItemCollectionMetricsPerTable$value": null + } + }, + "ItemCollectionMetricsPerTable": { + "base": null, + "refs": { + "BatchWriteItemOutput$ItemCollectionMetrics": "

A list of tables that were processed by BatchWriteItem and, for each table, information about any item collections that were affected by individual DeleteItem or PutItem operations.

Each entry consists of the following subelements:

  • ItemCollectionKey - The hash key value of the item collection. This is the same as the hash key of the item.

  • SizeEstimateRange - An estimate of item collection size, expressed in GB. This is a two-element array containing a lower bound and an upper bound for the estimate. The estimate includes the size of all the items in the table, plus the size of all attributes projected into all of the local secondary indexes on the table. Use this estimate to measure whether a local secondary index is approaching its size limit.

    The estimate is subject to change over time; therefore, do not rely on the precision or accuracy of the estimate.

" + } + }, + "ItemCollectionSizeEstimateBound": { + "base": null, + "refs": { + "ItemCollectionSizeEstimateRange$member": null + } + }, + "ItemCollectionSizeEstimateRange": { + "base": null, + "refs": { + "ItemCollectionMetrics$SizeEstimateRangeGB": "

An estimate of item collection size, in gigabytes. This value is a two-element array containing a lower bound and an upper bound for the estimate. The estimate includes the size of all the items in the table, plus the size of all attributes projected into all of the local secondary indexes on that table. Use this estimate to measure whether a local secondary index is approaching its size limit.

The estimate is subject to change over time; therefore, do not rely on the precision or accuracy of the estimate.

" + } + }, + "ItemCollectionSizeLimitExceededException": { + "base": "

An item collection is too large. This exception is only returned for tables that have one or more local secondary indexes.

", + "refs": { + } + }, + "ItemList": { + "base": null, + "refs": { + "BatchGetResponseMap$value": null, + "QueryOutput$Items": "

An array of item attributes that match the query criteria. Each element in this array consists of an attribute name and the value for that attribute.

", + "ScanOutput$Items": "

An array of item attributes that match the scan criteria. Each element in this array consists of an attribute name and the value for that attribute.

" + } + }, + "Key": { + "base": null, + "refs": { + "DeleteItemInput$Key": "

A map of attribute names to AttributeValue objects, representing the primary key of the item to delete.

For the primary key, you must provide all of the attributes. For example, with a hash type primary key, you only need to provide the hash attribute. For a hash-and-range type primary key, you must provide both the hash attribute and the range attribute.

", + "DeleteRequest$Key": "

A map of attribute name to attribute values, representing the primary key of the item to delete. All of the table's primary key attributes must be specified, and their data types must match those of the table's key schema.

", + "GetItemInput$Key": "

A map of attribute names to AttributeValue objects, representing the primary key of the item to retrieve.

For the primary key, you must provide all of the attributes. For example, with a hash type primary key, you only need to provide the hash attribute. For a hash-and-range type primary key, you must provide both the hash attribute and the range attribute.

", + "KeyList$member": null, + "QueryInput$ExclusiveStartKey": "

The primary key of the first item that this operation will evaluate. Use the value that was returned for LastEvaluatedKey in the previous operation.

The data type for ExclusiveStartKey must be String, Number or Binary. No set data types are allowed.

", + "QueryOutput$LastEvaluatedKey": "

The primary key of the item where the operation stopped, inclusive of the previous result set. Use this value to start a new operation, excluding this value in the new request.

If LastEvaluatedKey is empty, then the \"last page\" of results has been processed and there is no more data to be retrieved.

If LastEvaluatedKey is not empty, it does not necessarily mean that there is more data in the result set. The only way to know when you have reached the end of the result set is when LastEvaluatedKey is empty.

", + "ScanInput$ExclusiveStartKey": "

The primary key of the first item that this operation will evaluate. Use the value that was returned for LastEvaluatedKey in the previous operation.

The data type for ExclusiveStartKey must be String, Number or Binary. No set data types are allowed.

In a parallel scan, a Scan request that includes ExclusiveStartKey must specify the same segment whose previous Scan returned the corresponding value of LastEvaluatedKey.

", + "ScanOutput$LastEvaluatedKey": "

The primary key of the item where the operation stopped, inclusive of the previous result set. Use this value to start a new operation, excluding this value in the new request.

If LastEvaluatedKey is empty, then the \"last page\" of results has been processed and there is no more data to be retrieved.

If LastEvaluatedKey is not empty, it does not necessarily mean that there is more data in the result set. The only way to know when you have reached the end of the result set is when LastEvaluatedKey is empty.

", + "UpdateItemInput$Key": "

The primary key of the item to be updated. Each element consists of an attribute name and a value for that attribute.

For the primary key, you must provide all of the attributes. For example, with a hash type primary key, you only need to provide the hash attribute. For a hash-and-range type primary key, you must provide both the hash attribute and the range attribute.

" + } + }, + "KeyConditions": { + "base": null, + "refs": { + "QueryInput$KeyConditions": "

This is a legacy parameter, for backward compatibility. New applications should use KeyConditionExpression instead. Do not combine legacy parameters and expression parameters in a single API call; otherwise, DynamoDB will return a ValidationException exception.

The selection criteria for the query. For a query on a table, you can have conditions only on the table primary key attributes. You must provide the hash key attribute name and value as an EQ condition. You can optionally provide a second condition, referring to the range key attribute.

If you don't provide a range key condition, all of the items that match the hash key will be retrieved. If a FilterExpression or QueryFilter is present, it will be applied after the items are retrieved.

For a query on an index, you can have conditions only on the index key attributes. You must provide the index hash attribute name and value as an EQ condition. You can optionally provide a second condition, referring to the index key range attribute.

Each KeyConditions element consists of an attribute name to compare, along with the following:

  • AttributeValueList - One or more values to evaluate against the supplied attribute. The number of values in the list depends on the ComparisonOperator being used.

    For type Number, value comparisons are numeric.

    String value comparisons for greater than, equals, or less than are based on ASCII character code values. For example, a is greater than A, and a is greater than B. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters.

    For Binary, DynamoDB treats each byte of the binary data as unsigned when it compares binary values.

  • ComparisonOperator - A comparator for evaluating attributes, for example, equals, greater than, less than, and so on.

    For KeyConditions, only the following comparison operators are supported:

    EQ | LE | LT | GE | GT | BEGINS_WITH | BETWEEN

    The following are descriptions of these comparison operators.

    • EQ : Equal.

      AttributeValueList can contain only one AttributeValue of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one specified in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not equal {\"NS\":[\"6\", \"2\", \"1\"]}.

    • LE : Less than or equal.

      AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

    • LT : Less than.

      AttributeValueList can contain only one AttributeValue of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

    • GE : Greater than or equal.

      AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

    • GT : Greater than.

      AttributeValueList can contain only one AttributeValue element of type String, Number, or Binary (not a set type). If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not equal {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}.

    • BEGINS_WITH : Checks for a prefix.

      AttributeValueList can contain only one AttributeValue of type String or Binary (not a Number or a set type). The target attribute of the comparison must be of type String or Binary (not a Number or a set type).

    • BETWEEN : Greater than or equal to the first value, and less than or equal to the second value.

      AttributeValueList must contain two AttributeValue elements of the same type, either String, Number, or Binary (not a set type). A target attribute matches if the target value is greater than, or equal to, the first element and less than, or equal to, the second element. If an item contains an AttributeValue element of a different type than the one provided in the request, the value does not match. For example, {\"S\":\"6\"} does not compare to {\"N\":\"6\"}. Also, {\"N\":\"6\"} does not compare to {\"NS\":[\"6\", \"2\", \"1\"]}

For usage examples of AttributeValueList and ComparisonOperator, see Legacy Conditional Parameters in the Amazon DynamoDB Developer Guide.

" + } + }, + "KeyExpression": { + "base": null, + "refs": { + "QueryInput$KeyConditionExpression": "

The condition that specifies the key value(s) for items to be retrieved by the Query action.

The condition must perform an equality test on a single hash key value. The condition can also test for one or more range key values. A Query can use KeyConditionExpression to retrieve a single item with a given hash and range key value, or several items that have the same hash key value but different range key values.

The hash key equality test is required, and must be specified in the following format:

hashAttributeName = :hashval

If you also want to provide a range key condition, it must be combined using AND with the hash key condition. Following is an example, using the = comparison operator for the range key:

hashAttributeName = :hashval AND rangeAttributeName = :rangeval

Valid comparisons for the range key condition are as follows:

  • rangeAttributeName = :rangeval - true if the range key is equal to :rangeval.

  • rangeAttributeName < :rangeval - true if the range key is less than :rangeval.

  • rangeAttributeName <= :rangeval - true if the range key is less than or equal to :rangeval.

  • rangeAttributeName > :rangeval - true if the range key is greater than :rangeval.

  • rangeAttributeName >= :rangeval - true if the range key is greater than or equal to :rangeval.

  • rangeAttributeName BETWEEN :rangeval1 AND :rangeval2 - true if the range key is less than or greater than :rangeval1, and less than or equal to :rangeval2.

  • begins_with (rangeAttributeName, :rangeval) - true if the range key begins with a particular operand. Note that the function name begins_with is case-sensitive.

Use the ExpressionAttributeValues parameter to replace tokens such as :hashval and :rangeval with actual values at runtime.

You can optionally use the ExpressionAttributeNames parameter to replace the names of the hash and range attributes with placeholder tokens. This might be necessary if an attribute name conflicts with a DynamoDB reserved word. For example, the following KeyConditionExpression causes an error because Size is a reserved word:

  • Size = :myval

To work around this, define a placeholder (such a #myval) to represent the attribute name Size. KeyConditionExpression then is as follows:

  • #S = :myval

For a list of reserved words, see Reserved Words in the Amazon DynamoDB Developer Guide.

For more information on ExpressionAttributeNames and ExpressionAttributeValues, see Using Placeholders for Attribute Names and Values in the Amazon DynamoDB Developer Guide.

KeyConditionExpression replaces the legacy KeyConditions parameter.

" + } + }, + "KeyList": { + "base": null, + "refs": { + "KeysAndAttributes$Keys": "

The primary key attribute values that define the items and the attributes associated with the items.

" + } + }, + "KeySchema": { + "base": null, + "refs": { + "CreateGlobalSecondaryIndexAction$KeySchema": "

The key schema for the global secondary index.

", + "CreateTableInput$KeySchema": "

Specifies the attributes that make up the primary key for a table or an index. The attributes in KeySchema must also be defined in the AttributeDefinitions array. For more information, see Data Model in the Amazon DynamoDB Developer Guide.

Each KeySchemaElement in the array is composed of:

  • AttributeName - The name of this key attribute.

  • KeyType - Determines whether the key attribute is HASH or RANGE.

For a primary key that consists of a hash attribute, you must provide exactly one element with a KeyType of HASH.

For a primary key that consists of hash and range attributes, you must provide exactly two elements, in this order: The first element must have a KeyType of HASH, and the second element must have a KeyType of RANGE.

For more information, see Specifying the Primary Key in the Amazon DynamoDB Developer Guide.

", + "GlobalSecondaryIndex$KeySchema": "

The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types (HASH or RANGE).

", + "GlobalSecondaryIndexDescription$KeySchema": "

The complete key schema for the global secondary index, consisting of one or more pairs of attribute names and key types (HASH or RANGE).

", + "LocalSecondaryIndex$KeySchema": "

The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types (HASH or RANGE).

", + "LocalSecondaryIndexDescription$KeySchema": "

The complete index key schema, which consists of one or more pairs of attribute names and key types (HASH or RANGE).

", + "TableDescription$KeySchema": "

The primary key structure for the table. Each KeySchemaElement consists of:

  • AttributeName - The name of the attribute.

  • KeyType - The key type for the attribute. Can be either HASH or RANGE.

For more information about primary keys, see Primary Key in the Amazon DynamoDB Developer Guide.

" + } + }, + "KeySchemaAttributeName": { + "base": null, + "refs": { + "AttributeDefinition$AttributeName": "

A name for the attribute.

", + "KeySchemaElement$AttributeName": "

The name of a key attribute.

" + } + }, + "KeySchemaElement": { + "base": "

Represents a single element of a key schema. A key schema specifies the attributes that make up the primary key of a table, or the key attributes of an index.

A KeySchemaElement represents exactly one attribute of the primary key. For example, a hash type primary key would be represented by one KeySchemaElement. A hash-and-range type primary key would require one KeySchemaElement for the hash attribute, and another KeySchemaElement for the range attribute.

", + "refs": { + "KeySchema$member": null + } + }, + "KeyType": { + "base": null, + "refs": { + "KeySchemaElement$KeyType": "

The attribute data, consisting of the data type and the attribute value itself.

" + } + }, + "KeysAndAttributes": { + "base": "

Represents a set of primary keys and, for each key, the attributes to retrieve from the table.

For each primary key, you must provide all of the key attributes. For example, with a hash type primary key, you only need to provide the hash attribute. For a hash-and-range type primary key, you must provide both the hash attribute and the range attribute.

", + "refs": { + "BatchGetRequestMap$value": null + } + }, + "LimitExceededException": { + "base": "

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 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.

", + "refs": { + } + }, + "ListAttributeValue": { + "base": null, + "refs": { + "AttributeValue$L": "

A List of attribute values.

" + } + }, + "ListTablesInput": { + "base": "

Represents the input of a ListTables operation.

", + "refs": { + } + }, + "ListTablesInputLimit": { + "base": null, + "refs": { + "ListTablesInput$Limit": "

A maximum number of table names to return. If this parameter is not specified, the limit is 100.

" + } + }, + "ListTablesOutput": { + "base": "

Represents the output of a ListTables operation.

", + "refs": { + } + }, + "LocalSecondaryIndex": { + "base": "

Represents the properties of a local secondary index.

", + "refs": { + "LocalSecondaryIndexList$member": null + } + }, + "LocalSecondaryIndexDescription": { + "base": "

Represents the properties of a local secondary index.

", + "refs": { + "LocalSecondaryIndexDescriptionList$member": null + } + }, + "LocalSecondaryIndexDescriptionList": { + "base": null, + "refs": { + "TableDescription$LocalSecondaryIndexes": "

Represents one or more local secondary indexes on the table. Each index is scoped to a given hash key value. Tables with one or more local secondary indexes are subject to an item collection size limit, where the amount of data within a given item collection cannot exceed 10 GB. Each element is composed of:

  • IndexName - The name of the local secondary index.

  • KeySchema - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same hash key attribute as the table.

  • Projection - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:

    • ProjectionType - One of the following:

      • KEYS_ONLY - Only the index and primary keys are projected into the index.

      • INCLUDE - Only the specified table attributes are projected into the index. The list of projected attributes are in NonKeyAttributes.

      • ALL - All of the table attributes are projected into the index.

    • NonKeyAttributes - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in NonKeyAttributes, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.

  • IndexSizeBytes - Represents the total size of the index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

  • ItemCount - Represents the number of items in the index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

If the table is in the DELETING state, no information about indexes will be returned.

" + } + }, + "LocalSecondaryIndexList": { + "base": null, + "refs": { + "CreateTableInput$LocalSecondaryIndexes": "

One or more local secondary indexes (the maximum is five) to be created on the table. Each index is scoped to a given hash key value. There is a 10 GB size limit per hash key; otherwise, the size of a local secondary index is unconstrained.

Each local secondary index in the array includes the following:

  • IndexName - The name of the local secondary index. Must be unique only for this table.

  • KeySchema - Specifies the key schema for the local secondary index. The key schema must begin with the same hash key attribute as the table.

  • Projection - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:

    • ProjectionType - One of the following:

      • KEYS_ONLY - Only the index and primary keys are projected into the index.

      • INCLUDE - Only the specified table attributes are projected into the index. The list of projected attributes are in NonKeyAttributes.

      • ALL - All of the table attributes are projected into the index.

    • NonKeyAttributes - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in NonKeyAttributes, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.

" + } + }, + "Long": { + "base": null, + "refs": { + "GlobalSecondaryIndexDescription$IndexSizeBytes": "

The total size of the specified index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

", + "GlobalSecondaryIndexDescription$ItemCount": "

The number of items in the specified index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

", + "LocalSecondaryIndexDescription$IndexSizeBytes": "

The total size of the specified index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

", + "LocalSecondaryIndexDescription$ItemCount": "

The number of items in the specified index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

", + "TableDescription$TableSizeBytes": "

The total size of the specified table, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

", + "TableDescription$ItemCount": "

The number of items in the specified table. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

" + } + }, + "MapAttributeValue": { + "base": null, + "refs": { + "AttributeValue$M": "

A Map of attribute values.

" + } + }, + "NonKeyAttributeName": { + "base": null, + "refs": { + "NonKeyAttributeNameList$member": null + } + }, + "NonKeyAttributeNameList": { + "base": null, + "refs": { + "Projection$NonKeyAttributes": "

Represents the non-key attribute names which will be projected into the index.

For local secondary indexes, the total count of NonKeyAttributes summed across all of the local secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.

" + } + }, + "NullAttributeValue": { + "base": null, + "refs": { + "AttributeValue$NULL": "

A Null data type.

" + } + }, + "NumberAttributeValue": { + "base": null, + "refs": { + "AttributeValue$N": "

A Number data type.

", + "NumberSetAttributeValue$member": null + } + }, + "NumberSetAttributeValue": { + "base": null, + "refs": { + "AttributeValue$NS": "

A Number Set data type.

" + } + }, + "PositiveIntegerObject": { + "base": null, + "refs": { + "QueryInput$Limit": "

The maximum number of items to evaluate (not necessarily the number of matching items). If DynamoDB processes the number of items up to the limit while processing the results, it stops the operation and returns the matching values up to that point, and a key in LastEvaluatedKey to apply in a subsequent operation, so that you can pick up where you left off. Also, if the processed data set size exceeds 1 MB before DynamoDB reaches this limit, it stops the operation and returns the matching values up to the limit, and a key in LastEvaluatedKey to apply in a subsequent operation to continue the operation. For more information, see Query and Scan in the Amazon DynamoDB Developer Guide.

", + "ScanInput$Limit": "

The maximum number of items to evaluate (not necessarily the number of matching items). If DynamoDB processes the number of items up to the limit while processing the results, it stops the operation and returns the matching values up to that point, and a key in LastEvaluatedKey to apply in a subsequent operation, so that you can pick up where you left off. Also, if the processed data set size exceeds 1 MB before DynamoDB reaches this limit, it stops the operation and returns the matching values up to the limit, and a key in LastEvaluatedKey to apply in a subsequent operation to continue the operation. For more information, see Query and Scan in the Amazon DynamoDB Developer Guide.

" + } + }, + "PositiveLongObject": { + "base": null, + "refs": { + "ProvisionedThroughput$ReadCapacityUnits": "

The maximum number of strongly consistent reads consumed per second before DynamoDB returns a ThrottlingException. For more information, see Specifying Read and Write Requirements in the Amazon DynamoDB Developer Guide.

", + "ProvisionedThroughput$WriteCapacityUnits": "

The maximum number of writes consumed per second before DynamoDB returns a ThrottlingException. For more information, see Specifying Read and Write Requirements in the Amazon DynamoDB Developer Guide.

", + "ProvisionedThroughputDescription$NumberOfDecreasesToday": "

The number of provisioned throughput decreases for this table during this UTC calendar day. For current maximums on provisioned throughput decreases, see Limits in the Amazon DynamoDB Developer Guide.

", + "ProvisionedThroughputDescription$ReadCapacityUnits": "

The maximum number of strongly consistent reads consumed per second before DynamoDB returns a ThrottlingException. Eventually consistent reads require less effort than strongly consistent reads, so a setting of 50 ReadCapacityUnits per second provides 100 eventually consistent ReadCapacityUnits per second.

", + "ProvisionedThroughputDescription$WriteCapacityUnits": "

The maximum number of writes consumed per second before DynamoDB returns a ThrottlingException.

" + } + }, + "Projection": { + "base": "

Represents attributes that are copied (projected) from the table into an index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.

", + "refs": { + "CreateGlobalSecondaryIndexAction$Projection": null, + "GlobalSecondaryIndex$Projection": null, + "GlobalSecondaryIndexDescription$Projection": null, + "LocalSecondaryIndex$Projection": null, + "LocalSecondaryIndexDescription$Projection": null + } + }, + "ProjectionExpression": { + "base": null, + "refs": { + "GetItemInput$ProjectionExpression": "

A string that identifies one or more attributes to retrieve from the table. These attributes can include scalars, sets, or elements of a JSON document. The attributes in the expression must be separated by commas.

If no attribute names are specified, then all attributes will be returned. If any of the requested attributes are not found, they will not appear in the result.

For more information, see Accessing Item Attributes in the Amazon DynamoDB Developer Guide.

ProjectionExpression replaces the legacy AttributesToGet parameter.

", + "KeysAndAttributes$ProjectionExpression": "

A string that identifies one or more attributes to retrieve from the table. These attributes can include scalars, sets, or elements of a JSON document. The attributes in the ProjectionExpression must be separated by commas.

If no attribute names are specified, then all attributes will be returned. If any of the requested attributes are not found, they will not appear in the result.

For more information, see Accessing Item Attributes in the Amazon DynamoDB Developer Guide.

ProjectionExpression replaces the legacy AttributesToGet parameter.

", + "QueryInput$ProjectionExpression": "

A string that identifies one or more attributes to retrieve from the table. These attributes can include scalars, sets, or elements of a JSON document. The attributes in the expression must be separated by commas.

If no attribute names are specified, then all attributes will be returned. If any of the requested attributes are not found, they will not appear in the result.

For more information, see Accessing Item Attributes in the Amazon DynamoDB Developer Guide.

ProjectionExpression replaces the legacy AttributesToGet parameter.

", + "ScanInput$ProjectionExpression": "

A string that identifies one or more attributes to retrieve from the specified table or index. These attributes can include scalars, sets, or elements of a JSON document. The attributes in the expression must be separated by commas.

If no attribute names are specified, then all attributes will be returned. If any of the requested attributes are not found, they will not appear in the result.

For more information, see Accessing Item Attributes in the Amazon DynamoDB Developer Guide.

ProjectionExpression replaces the legacy AttributesToGet parameter.

" + } + }, + "ProjectionType": { + "base": null, + "refs": { + "Projection$ProjectionType": "

The set of attributes that are projected into the index:

  • KEYS_ONLY - Only the index and primary keys are projected into the index.

  • INCLUDE - Only the specified table attributes are projected into the index. The list of projected attributes are in NonKeyAttributes.

  • ALL - All of the table attributes are projected into the index.

" + } + }, + "ProvisionedThroughput": { + "base": "

Represents the provisioned throughput settings for a specified table or index. The settings can be modified using the UpdateTable operation.

For current minimum and maximum provisioned throughput values, see Limits in the Amazon DynamoDB Developer Guide.

", + "refs": { + "CreateGlobalSecondaryIndexAction$ProvisionedThroughput": null, + "CreateTableInput$ProvisionedThroughput": null, + "GlobalSecondaryIndex$ProvisionedThroughput": null, + "UpdateGlobalSecondaryIndexAction$ProvisionedThroughput": null, + "UpdateTableInput$ProvisionedThroughput": null + } + }, + "ProvisionedThroughputDescription": { + "base": "

Represents the provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.

", + "refs": { + "GlobalSecondaryIndexDescription$ProvisionedThroughput": null, + "TableDescription$ProvisionedThroughput": "

The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.

" + } + }, + "ProvisionedThroughputExceededException": { + "base": "

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.

", + "refs": { + } + }, + "PutItemInput": { + "base": "

Represents the input of a PutItem operation.

", + "refs": { + } + }, + "PutItemInputAttributeMap": { + "base": null, + "refs": { + "PutItemInput$Item": "

A map of attribute name/value pairs, one for each attribute. Only the primary key attributes are required; you can optionally provide other attribute name-value pairs for the item.

You must provide all of the attributes for the primary key. For example, with a hash type primary key, you only need to provide the hash attribute. For a hash-and-range type primary key, you must provide both the hash attribute and the range attribute.

If you specify any attributes that are part of an index key, then the data types for those attributes must match those of the schema in the table's attribute definition.

For more information about primary keys, see Primary Key in the Amazon DynamoDB Developer Guide.

Each element in the Item map is an AttributeValue object.

", + "PutRequest$Item": "

A map of attribute name to attribute values, representing the primary key of an item to be processed by PutItem. All of the table's primary key attributes must be specified, and their data types must match those of the table's key schema. If any attributes are present in the item which are part of an index key schema for the table, their types must match the index key schema.

" + } + }, + "PutItemOutput": { + "base": "

Represents the output of a PutItem operation.

", + "refs": { + } + }, + "PutRequest": { + "base": "

Represents a request to perform a PutItem operation on an item.

", + "refs": { + "WriteRequest$PutRequest": "

A request to perform a PutItem operation.

" + } + }, + "QueryInput": { + "base": "

Represents the input of a Query operation.

", + "refs": { + } + }, + "QueryOutput": { + "base": "

Represents the output of a Query operation.

", + "refs": { + } + }, + "ResourceInUseException": { + "base": "

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.

", + "refs": { + } + }, + "ResourceNotFoundException": { + "base": "

The operation tried to access a nonexistent table or index. The resource might not be specified correctly, or its status might not be ACTIVE.

", + "refs": { + } + }, + "ReturnConsumedCapacity": { + "base": "

A value that if set to TOTAL, the response includes ConsumedCapacity data for tables and indexes. If set to INDEXES, the response includes ConsumedCapacity for indexes. If set to NONE (the default), ConsumedCapacity is not included in the response.

", + "refs": { + "BatchGetItemInput$ReturnConsumedCapacity": null, + "BatchWriteItemInput$ReturnConsumedCapacity": null, + "DeleteItemInput$ReturnConsumedCapacity": null, + "GetItemInput$ReturnConsumedCapacity": null, + "PutItemInput$ReturnConsumedCapacity": null, + "QueryInput$ReturnConsumedCapacity": null, + "ScanInput$ReturnConsumedCapacity": null, + "UpdateItemInput$ReturnConsumedCapacity": null + } + }, + "ReturnItemCollectionMetrics": { + "base": null, + "refs": { + "BatchWriteItemInput$ReturnItemCollectionMetrics": "

A value that if set to SIZE, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to NONE (the default), no statistics are returned.

", + "DeleteItemInput$ReturnItemCollectionMetrics": "

A value that if set to SIZE, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to NONE (the default), no statistics are returned.

", + "PutItemInput$ReturnItemCollectionMetrics": "

A value that if set to SIZE, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to NONE (the default), no statistics are returned.

", + "UpdateItemInput$ReturnItemCollectionMetrics": "

A value that if set to SIZE, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to NONE (the default), no statistics are returned.

" + } + }, + "ReturnValue": { + "base": null, + "refs": { + "DeleteItemInput$ReturnValues": "

Use ReturnValues if you want to get the item attributes as they appeared before they were deleted. For DeleteItem, the valid values are:

  • NONE - If ReturnValues is not specified, or if its value is NONE, then nothing is returned. (This setting is the default for ReturnValues.)

  • ALL_OLD - The content of the old item is returned.

", + "PutItemInput$ReturnValues": "

Use ReturnValues if you want to get the item attributes as they appeared before they were updated with the PutItem request. For PutItem, the valid values are:

  • NONE - If ReturnValues is not specified, or if its value is NONE, then nothing is returned. (This setting is the default for ReturnValues.)

  • ALL_OLD - If PutItem overwrote an attribute name-value pair, then the content of the old item is returned.

", + "UpdateItemInput$ReturnValues": "

Use ReturnValues if you want to get the item attributes as they appeared either before or after they were updated. For UpdateItem, the valid values are:

  • NONE - If ReturnValues is not specified, or if its value is NONE, then nothing is returned. (This setting is the default for ReturnValues.)

  • ALL_OLD - If UpdateItem overwrote an attribute name-value pair, then the content of the old item is returned.

  • UPDATED_OLD - The old versions of only the updated attributes are returned.

  • ALL_NEW - All of the attributes of the new version of the item are returned.

  • UPDATED_NEW - The new versions of only the updated attributes are returned.

" + } + }, + "ScalarAttributeType": { + "base": null, + "refs": { + "AttributeDefinition$AttributeType": "

The data type for the attribute.

" + } + }, + "ScanInput": { + "base": "

Represents the input of a Scan operation.

", + "refs": { + } + }, + "ScanOutput": { + "base": "

Represents the output of a Scan operation.

", + "refs": { + } + }, + "ScanSegment": { + "base": null, + "refs": { + "ScanInput$Segment": "

For a parallel Scan request, Segment identifies an individual segment to be scanned by an application worker.

Segment IDs are zero-based, so the first segment is always 0. For example, if you want to use four application threads to scan a table or an index, then the first thread specifies a Segment value of 0, the second thread specifies 1, and so on.

The value of LastEvaluatedKey returned from a parallel Scan request must be used as ExclusiveStartKey with the same segment ID in a subsequent Scan operation.

The value for Segment must be greater than or equal to 0, and less than the value provided for TotalSegments.

If you provide Segment, you must also provide TotalSegments.

" + } + }, + "ScanTotalSegments": { + "base": null, + "refs": { + "ScanInput$TotalSegments": "

For a parallel Scan request, TotalSegments represents the total number of segments into which the Scan operation will be divided. The value of TotalSegments corresponds to the number of application workers that will perform the parallel scan. For example, if you want to use four application threads to scan a table or an index, specify a TotalSegments value of 4.

The value for TotalSegments must be greater than or equal to 1, and less than or equal to 1000000. If you specify a TotalSegments value of 1, the Scan operation will be sequential rather than parallel.

If you specify TotalSegments, you must also specify Segment.

" + } + }, + "SecondaryIndexesCapacityMap": { + "base": null, + "refs": { + "ConsumedCapacity$LocalSecondaryIndexes": "

The amount of throughput consumed on each local index affected by the operation.

", + "ConsumedCapacity$GlobalSecondaryIndexes": "

The amount of throughput consumed on each global index affected by the operation.

" + } + }, + "Select": { + "base": null, + "refs": { + "QueryInput$Select": "

The attributes to be returned in the result. You can retrieve all item attributes, specific item attributes, the count of matching items, or in the case of an index, some or all of the attributes projected into the index.

  • ALL_ATTRIBUTES - Returns all of the item attributes from the specified table or index. If you query a local secondary index, then for each matching item in the index DynamoDB will fetch the entire item from the parent table. If the index is configured to project all item attributes, then all of the data can be obtained from the local secondary index, and no fetching is required.

  • ALL_PROJECTED_ATTRIBUTES - Allowed only when querying an index. Retrieves all attributes that have been projected into the index. If the index is configured to project all attributes, this return value is equivalent to specifying ALL_ATTRIBUTES.

  • COUNT - Returns the number of matching items, rather than the matching items themselves.

  • SPECIFIC_ATTRIBUTES - Returns only the attributes listed in AttributesToGet. This return value is equivalent to specifying AttributesToGet without specifying any value for Select.

    If you query a local secondary index and request only attributes that are projected into that index, the operation will read only the index and not the table. If any of the requested attributes are not projected into the local secondary index, DynamoDB will fetch each of these attributes from the parent table. This extra fetching incurs additional throughput cost and latency.

    If you query a global secondary index, you can only request attributes that are projected into the index. Global secondary index queries cannot fetch attributes from the parent table.

If neither Select nor AttributesToGet are specified, DynamoDB defaults to ALL_ATTRIBUTES when accessing a table, and ALL_PROJECTED_ATTRIBUTES when accessing an index. You cannot use both Select and AttributesToGet together in a single request, unless the value for Select is SPECIFIC_ATTRIBUTES. (This usage is equivalent to specifying AttributesToGet without any value for Select.)

If you use the ProjectionExpression parameter, then the value for Select can only be SPECIFIC_ATTRIBUTES. Any other value for Select will return an error.

", + "ScanInput$Select": "

The attributes to be returned in the result. You can retrieve all item attributes, specific item attributes, or the count of matching items.

  • ALL_ATTRIBUTES - Returns all of the item attributes.

  • COUNT - Returns the number of matching items, rather than the matching items themselves.

  • SPECIFIC_ATTRIBUTES - Returns only the attributes listed in AttributesToGet. This return value is equivalent to specifying AttributesToGet without specifying any value for Select.

If neither Select nor AttributesToGet are specified, DynamoDB defaults to ALL_ATTRIBUTES. You cannot use both AttributesToGet and Select together in a single request, unless the value for Select is SPECIFIC_ATTRIBUTES. (This usage is equivalent to specifying AttributesToGet without any value for Select.)

" + } + }, + "StringAttributeValue": { + "base": null, + "refs": { + "AttributeValue$S": "

A String data type.

", + "StringSetAttributeValue$member": null + } + }, + "StringSetAttributeValue": { + "base": null, + "refs": { + "AttributeValue$SS": "

A String Set data type.

" + } + }, + "TableDescription": { + "base": "

Represents the properties of a table.

", + "refs": { + "CreateTableOutput$TableDescription": null, + "DeleteTableOutput$TableDescription": null, + "DescribeTableOutput$Table": null, + "UpdateTableOutput$TableDescription": null + } + }, + "TableName": { + "base": null, + "refs": { + "BatchGetRequestMap$key": null, + "BatchGetResponseMap$key": null, + "BatchWriteItemRequestMap$key": null, + "ConsumedCapacity$TableName": "

The name of the table that was affected by the operation.

", + "CreateTableInput$TableName": "

The name of the table to create.

", + "DeleteItemInput$TableName": "

The name of the table from which to delete the item.

", + "DeleteTableInput$TableName": "

The name of the table to delete.

", + "DescribeTableInput$TableName": "

The name of the table to describe.

", + "GetItemInput$TableName": "

The name of the table containing the requested item.

", + "ItemCollectionMetricsPerTable$key": null, + "ListTablesInput$ExclusiveStartTableName": "

The first table name that this operation will evaluate. Use the value that was returned for LastEvaluatedTableName in a previous operation, so that you can obtain the next page of results.

", + "ListTablesOutput$LastEvaluatedTableName": "

The name of the last table in the current page of results. Use this value as the ExclusiveStartTableName in a new request to obtain the next page of results, until all the table names are returned.

If you do not receive a LastEvaluatedTableName value in the response, this means that there are no more table names to be retrieved.

", + "PutItemInput$TableName": "

The name of the table to contain the item.

", + "QueryInput$TableName": "

The name of the table containing the requested items.

", + "ScanInput$TableName": "

The name of the table containing the requested items; or, if you provide IndexName, the name of the table to which that index belongs.

", + "TableDescription$TableName": "

The name of the table.

", + "TableNameList$member": null, + "UpdateItemInput$TableName": "

The name of the table containing the item to update.

", + "UpdateTableInput$TableName": "

The name of the table to be updated.

" + } + }, + "TableNameList": { + "base": null, + "refs": { + "ListTablesOutput$TableNames": "

The names of the tables associated with the current account at the current endpoint. The maximum size of this array is 100.

If LastEvaluatedTableName also appears in the output, you can use this value as the ExclusiveStartTableName parameter in a subsequent ListTables request and obtain the next page of results.

" + } + }, + "TableStatus": { + "base": null, + "refs": { + "TableDescription$TableStatus": "

The current state of the table:

  • CREATING - The table is being created.

  • UPDATING - The table is being updated.

  • DELETING - The table is being deleted.

  • ACTIVE - The table is ready for use.

" + } + }, + "UpdateExpression": { + "base": null, + "refs": { + "UpdateItemInput$UpdateExpression": "

An expression that defines one or more attributes to be updated, the action to be performed on them, and new value(s) for them.

The following action values are available for UpdateExpression.

  • SET - Adds one or more attributes and values to an item. If any of these attribute already exist, they are replaced by the new values. You can also use SET to add or subtract from an attribute that is of type Number.

    SET supports the following functions:

    • if_not_exists (path, operand) - if the item does not contain an attribute at the specified path, then if_not_exists evaluates to operand; otherwise, it evaluates to path. You can use this function to avoid overwriting an attribute that may already be present in the item.

    • list_append (operand, operand) - evaluates to a list with a new element added to it. You can append the new element to the start or the end of the list by reversing the order of the operands.

    These function names are case-sensitive.

  • REMOVE - Removes one or more attributes from an item.

  • ADD - Adds the specified value to the item, if the attribute does not already exist. If the attribute does exist, then the behavior of ADD depends on the data type of the attribute:

    • If the existing attribute is a number, and if Value is also a number, then Value is mathematically added to the existing attribute. If Value is a negative number, then it is subtracted from the existing attribute.

      If you use ADD to increment or decrement a number value for an item that doesn't exist before the update, DynamoDB uses 0 as the initial value.

      Similarly, if you use ADD for an existing item to increment or decrement an attribute value that doesn't exist before the update, DynamoDB uses 0 as the initial value. For example, suppose that the item you want to update doesn't have an attribute named itemcount, but you decide to ADD the number 3 to this attribute anyway. DynamoDB will create the itemcount attribute, set its initial value to 0, and finally add 3 to it. The result will be a new itemcount attribute in the item, with a value of 3.

    • If the existing data type is a set and if Value is also a set, then Value is added to the existing set. For example, if the attribute value is the set [1,2], and the ADD action specified [3], then the final attribute value is [1,2,3]. An error occurs if an ADD action is specified for a set attribute and the attribute type specified does not match the existing set type.

      Both sets must have the same primitive data type. For example, if the existing data type is a set of strings, the Value must also be a set of strings.

    The ADD action only supports Number and set data types. In addition, ADD can only be used on top-level attributes, not nested attributes.

  • DELETE - Deletes an element from a set.

    If a set of values is specified, then those values are subtracted from the old set. For example, if the attribute value was the set [a,b,c] and the DELETE action specifies [a,c], then the final attribute value is [b]. Specifying an empty set is an error.

    The DELETE action only supports Number and set data types. In addition, DELETE can only be used on top-level attributes, not nested attributes.

You can have many actions in a single expression, such as the following: SET a=:value1, b=:value2 DELETE :value3, :value4, :value5

For more information on update expressions, see Modifying Items and Attributes in the Amazon DynamoDB Developer Guide.

UpdateExpression replaces the legacy AttributeUpdates parameter.

" + } + }, + "UpdateGlobalSecondaryIndexAction": { + "base": "

Represents the new provisioned throughput settings to be applied to a global secondary index.

", + "refs": { + "GlobalSecondaryIndexUpdate$Update": "

The name of an existing global secondary index, along with new provisioned throughput settings to be applied to that index.

" + } + }, + "UpdateItemInput": { + "base": "

Represents the input of an UpdateItem operation.

", + "refs": { + } + }, + "UpdateItemOutput": { + "base": "

Represents the output of an UpdateItem operation.

", + "refs": { + } + }, + "UpdateTableInput": { + "base": "

Represents the input of an UpdateTable operation.

", + "refs": { + } + }, + "UpdateTableOutput": { + "base": "

Represents the output of an UpdateTable operation.

", + "refs": { + } + }, + "WriteRequest": { + "base": "

Represents an operation to perform - either DeleteItem or PutItem. You can only request one of these operations, not both, in a single WriteRequest. If you do need to perform both of these operations, you will need to provide two separate WriteRequest objects.

", + "refs": { + "WriteRequests$member": null + } + }, + "WriteRequests": { + "base": null, + "refs": { + "BatchWriteItemRequestMap$value": null + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/dynamodb/2012-08-10/paginators-1.json b/lib/aws-sdk/Aws/data/dynamodb/2012-08-10/paginators-1.json new file mode 100644 index 0000000..5cb87c9 --- /dev/null +++ b/lib/aws-sdk/Aws/data/dynamodb/2012-08-10/paginators-1.json @@ -0,0 +1,25 @@ +{ + "pagination": { + "BatchGetItem": { + "input_token": "RequestItems", + "output_token": "UnprocessedKeys" + }, + "ListTables": { + "input_token": "ExclusiveStartTableName", + "output_token": "LastEvaluatedTableName", + "limit_key": "Limit", + "result_key": "TableNames" + }, + "Query": { + "input_token": "ExclusiveStartKey", + "output_token": "LastEvaluatedKey", + "limit_key": "Limit", + "result_key": "Items" + }, + "Scan": { + "input_token": "ExclusiveStartKey", + "output_token": "LastEvaluatedKey", + "result_key": "Items" + } + } +} diff --git a/lib/aws-sdk/Aws/data/dynamodb/2012-08-10/waiters-2.json b/lib/aws-sdk/Aws/data/dynamodb/2012-08-10/waiters-2.json new file mode 100644 index 0000000..43a55ca --- /dev/null +++ b/lib/aws-sdk/Aws/data/dynamodb/2012-08-10/waiters-2.json @@ -0,0 +1,35 @@ +{ + "version": 2, + "waiters": { + "TableExists": { + "delay": 20, + "operation": "DescribeTable", + "maxAttempts": 25, + "acceptors": [ + { + "expected": "ACTIVE", + "matcher": "path", + "state": "success", + "argument": "Table.TableStatus" + }, + { + "expected": "ResourceNotFoundException", + "matcher": "error", + "state": "retry" + } + ] + }, + "TableNotExists": { + "delay": 20, + "operation": "DescribeTable", + "maxAttempts": 25, + "acceptors": [ + { + "expected": "ResourceNotFoundException", + "matcher": "error", + "state": "success" + } + ] + } + } +} diff --git a/lib/aws-sdk/Aws/data/ec2/2015-03-01/api-2.json b/lib/aws-sdk/Aws/data/ec2/2015-03-01/api-2.json new file mode 100644 index 0000000..4a22352 --- /dev/null +++ b/lib/aws-sdk/Aws/data/ec2/2015-03-01/api-2.json @@ -0,0 +1,10722 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2015-03-01", + "endpointPrefix":"ec2", + "serviceAbbreviation":"Amazon EC2", + "serviceFullName":"Amazon Elastic Compute Cloud", + "signatureVersion":"v4", + "xmlNamespace":"http://ec2.amazonaws.com/doc/2015-03-01", + "protocol":"ec2" + }, + "operations":{ + "AcceptVpcPeeringConnection":{ + "name":"AcceptVpcPeeringConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AcceptVpcPeeringConnectionRequest"}, + "output":{"shape":"AcceptVpcPeeringConnectionResult"} + }, + "AllocateAddress":{ + "name":"AllocateAddress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AllocateAddressRequest"}, + "output":{"shape":"AllocateAddressResult"} + }, + "AssignPrivateIpAddresses":{ + "name":"AssignPrivateIpAddresses", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssignPrivateIpAddressesRequest"} + }, + "AssociateAddress":{ + "name":"AssociateAddress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateAddressRequest"}, + "output":{"shape":"AssociateAddressResult"} + }, + "AssociateDhcpOptions":{ + "name":"AssociateDhcpOptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateDhcpOptionsRequest"} + }, + "AssociateRouteTable":{ + "name":"AssociateRouteTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateRouteTableRequest"}, + "output":{"shape":"AssociateRouteTableResult"} + }, + "AttachClassicLinkVpc":{ + "name":"AttachClassicLinkVpc", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AttachClassicLinkVpcRequest"}, + "output":{"shape":"AttachClassicLinkVpcResult"} + }, + "AttachInternetGateway":{ + "name":"AttachInternetGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AttachInternetGatewayRequest"} + }, + "AttachNetworkInterface":{ + "name":"AttachNetworkInterface", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AttachNetworkInterfaceRequest"}, + "output":{"shape":"AttachNetworkInterfaceResult"} + }, + "AttachVolume":{ + "name":"AttachVolume", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AttachVolumeRequest"}, + "output":{ + "shape":"VolumeAttachment", + "locationName":"attachment" + } + }, + "AttachVpnGateway":{ + "name":"AttachVpnGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AttachVpnGatewayRequest"}, + "output":{"shape":"AttachVpnGatewayResult"} + }, + "AuthorizeSecurityGroupEgress":{ + "name":"AuthorizeSecurityGroupEgress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AuthorizeSecurityGroupEgressRequest"} + }, + "AuthorizeSecurityGroupIngress":{ + "name":"AuthorizeSecurityGroupIngress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AuthorizeSecurityGroupIngressRequest"} + }, + "BundleInstance":{ + "name":"BundleInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BundleInstanceRequest"}, + "output":{"shape":"BundleInstanceResult"} + }, + "CancelBundleTask":{ + "name":"CancelBundleTask", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CancelBundleTaskRequest"}, + "output":{"shape":"CancelBundleTaskResult"} + }, + "CancelConversionTask":{ + "name":"CancelConversionTask", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CancelConversionRequest"} + }, + "CancelExportTask":{ + "name":"CancelExportTask", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CancelExportTaskRequest"} + }, + "CancelImportTask":{ + "name":"CancelImportTask", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CancelImportTaskRequest"}, + "output":{"shape":"CancelImportTaskResult"} + }, + "CancelReservedInstancesListing":{ + "name":"CancelReservedInstancesListing", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CancelReservedInstancesListingRequest"}, + "output":{"shape":"CancelReservedInstancesListingResult"} + }, + "CancelSpotInstanceRequests":{ + "name":"CancelSpotInstanceRequests", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CancelSpotInstanceRequestsRequest"}, + "output":{"shape":"CancelSpotInstanceRequestsResult"} + }, + "ConfirmProductInstance":{ + "name":"ConfirmProductInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ConfirmProductInstanceRequest"}, + "output":{"shape":"ConfirmProductInstanceResult"} + }, + "CopyImage":{ + "name":"CopyImage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CopyImageRequest"}, + "output":{"shape":"CopyImageResult"} + }, + "CopySnapshot":{ + "name":"CopySnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CopySnapshotRequest"}, + "output":{"shape":"CopySnapshotResult"} + }, + "CreateCustomerGateway":{ + "name":"CreateCustomerGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateCustomerGatewayRequest"}, + "output":{"shape":"CreateCustomerGatewayResult"} + }, + "CreateDhcpOptions":{ + "name":"CreateDhcpOptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDhcpOptionsRequest"}, + "output":{"shape":"CreateDhcpOptionsResult"} + }, + "CreateImage":{ + "name":"CreateImage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateImageRequest"}, + "output":{"shape":"CreateImageResult"} + }, + "CreateInstanceExportTask":{ + "name":"CreateInstanceExportTask", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateInstanceExportTaskRequest"}, + "output":{"shape":"CreateInstanceExportTaskResult"} + }, + "CreateInternetGateway":{ + "name":"CreateInternetGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateInternetGatewayRequest"}, + "output":{"shape":"CreateInternetGatewayResult"} + }, + "CreateKeyPair":{ + "name":"CreateKeyPair", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateKeyPairRequest"}, + "output":{ + "shape":"KeyPair", + "locationName":"keyPair" + } + }, + "CreateNetworkAcl":{ + "name":"CreateNetworkAcl", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateNetworkAclRequest"}, + "output":{"shape":"CreateNetworkAclResult"} + }, + "CreateNetworkAclEntry":{ + "name":"CreateNetworkAclEntry", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateNetworkAclEntryRequest"} + }, + "CreateNetworkInterface":{ + "name":"CreateNetworkInterface", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateNetworkInterfaceRequest"}, + "output":{"shape":"CreateNetworkInterfaceResult"} + }, + "CreatePlacementGroup":{ + "name":"CreatePlacementGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreatePlacementGroupRequest"} + }, + "CreateReservedInstancesListing":{ + "name":"CreateReservedInstancesListing", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateReservedInstancesListingRequest"}, + "output":{"shape":"CreateReservedInstancesListingResult"} + }, + "CreateRoute":{ + "name":"CreateRoute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateRouteRequest"} + }, + "CreateRouteTable":{ + "name":"CreateRouteTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateRouteTableRequest"}, + "output":{"shape":"CreateRouteTableResult"} + }, + "CreateSecurityGroup":{ + "name":"CreateSecurityGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateSecurityGroupRequest"}, + "output":{"shape":"CreateSecurityGroupResult"} + }, + "CreateSnapshot":{ + "name":"CreateSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateSnapshotRequest"}, + "output":{ + "shape":"Snapshot", + "locationName":"snapshot" + } + }, + "CreateSpotDatafeedSubscription":{ + "name":"CreateSpotDatafeedSubscription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateSpotDatafeedSubscriptionRequest"}, + "output":{"shape":"CreateSpotDatafeedSubscriptionResult"} + }, + "CreateSubnet":{ + "name":"CreateSubnet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateSubnetRequest"}, + "output":{"shape":"CreateSubnetResult"} + }, + "CreateTags":{ + "name":"CreateTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateTagsRequest"} + }, + "CreateVolume":{ + "name":"CreateVolume", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVolumeRequest"}, + "output":{ + "shape":"Volume", + "locationName":"volume" + } + }, + "CreateVpc":{ + "name":"CreateVpc", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVpcRequest"}, + "output":{"shape":"CreateVpcResult"} + }, + "CreateVpcPeeringConnection":{ + "name":"CreateVpcPeeringConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVpcPeeringConnectionRequest"}, + "output":{"shape":"CreateVpcPeeringConnectionResult"} + }, + "CreateVpnConnection":{ + "name":"CreateVpnConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVpnConnectionRequest"}, + "output":{"shape":"CreateVpnConnectionResult"} + }, + "CreateVpnConnectionRoute":{ + "name":"CreateVpnConnectionRoute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVpnConnectionRouteRequest"} + }, + "CreateVpnGateway":{ + "name":"CreateVpnGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVpnGatewayRequest"}, + "output":{"shape":"CreateVpnGatewayResult"} + }, + "DeleteCustomerGateway":{ + "name":"DeleteCustomerGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteCustomerGatewayRequest"} + }, + "DeleteDhcpOptions":{ + "name":"DeleteDhcpOptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDhcpOptionsRequest"} + }, + "DeleteInternetGateway":{ + "name":"DeleteInternetGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteInternetGatewayRequest"} + }, + "DeleteKeyPair":{ + "name":"DeleteKeyPair", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteKeyPairRequest"} + }, + "DeleteNetworkAcl":{ + "name":"DeleteNetworkAcl", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteNetworkAclRequest"} + }, + "DeleteNetworkAclEntry":{ + "name":"DeleteNetworkAclEntry", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteNetworkAclEntryRequest"} + }, + "DeleteNetworkInterface":{ + "name":"DeleteNetworkInterface", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteNetworkInterfaceRequest"} + }, + "DeletePlacementGroup":{ + "name":"DeletePlacementGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeletePlacementGroupRequest"} + }, + "DeleteRoute":{ + "name":"DeleteRoute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRouteRequest"} + }, + "DeleteRouteTable":{ + "name":"DeleteRouteTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRouteTableRequest"} + }, + "DeleteSecurityGroup":{ + "name":"DeleteSecurityGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteSecurityGroupRequest"} + }, + "DeleteSnapshot":{ + "name":"DeleteSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteSnapshotRequest"} + }, + "DeleteSpotDatafeedSubscription":{ + "name":"DeleteSpotDatafeedSubscription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteSpotDatafeedSubscriptionRequest"} + }, + "DeleteSubnet":{ + "name":"DeleteSubnet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteSubnetRequest"} + }, + "DeleteTags":{ + "name":"DeleteTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTagsRequest"} + }, + "DeleteVolume":{ + "name":"DeleteVolume", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVolumeRequest"} + }, + "DeleteVpc":{ + "name":"DeleteVpc", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVpcRequest"} + }, + "DeleteVpcPeeringConnection":{ + "name":"DeleteVpcPeeringConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVpcPeeringConnectionRequest"}, + "output":{"shape":"DeleteVpcPeeringConnectionResult"} + }, + "DeleteVpnConnection":{ + "name":"DeleteVpnConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVpnConnectionRequest"} + }, + "DeleteVpnConnectionRoute":{ + "name":"DeleteVpnConnectionRoute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVpnConnectionRouteRequest"} + }, + "DeleteVpnGateway":{ + "name":"DeleteVpnGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVpnGatewayRequest"} + }, + "DeregisterImage":{ + "name":"DeregisterImage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeregisterImageRequest"} + }, + "DescribeAccountAttributes":{ + "name":"DescribeAccountAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAccountAttributesRequest"}, + "output":{"shape":"DescribeAccountAttributesResult"} + }, + "DescribeAddresses":{ + "name":"DescribeAddresses", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAddressesRequest"}, + "output":{"shape":"DescribeAddressesResult"} + }, + "DescribeAvailabilityZones":{ + "name":"DescribeAvailabilityZones", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAvailabilityZonesRequest"}, + "output":{"shape":"DescribeAvailabilityZonesResult"} + }, + "DescribeBundleTasks":{ + "name":"DescribeBundleTasks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeBundleTasksRequest"}, + "output":{"shape":"DescribeBundleTasksResult"} + }, + "DescribeClassicLinkInstances":{ + "name":"DescribeClassicLinkInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeClassicLinkInstancesRequest"}, + "output":{"shape":"DescribeClassicLinkInstancesResult"} + }, + "DescribeConversionTasks":{ + "name":"DescribeConversionTasks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeConversionTasksRequest"}, + "output":{"shape":"DescribeConversionTasksResult"} + }, + "DescribeCustomerGateways":{ + "name":"DescribeCustomerGateways", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeCustomerGatewaysRequest"}, + "output":{"shape":"DescribeCustomerGatewaysResult"} + }, + "DescribeDhcpOptions":{ + "name":"DescribeDhcpOptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDhcpOptionsRequest"}, + "output":{"shape":"DescribeDhcpOptionsResult"} + }, + "DescribeExportTasks":{ + "name":"DescribeExportTasks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeExportTasksRequest"}, + "output":{"shape":"DescribeExportTasksResult"} + }, + "DescribeImageAttribute":{ + "name":"DescribeImageAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeImageAttributeRequest"}, + "output":{ + "shape":"ImageAttribute", + "locationName":"imageAttribute" + } + }, + "DescribeImages":{ + "name":"DescribeImages", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeImagesRequest"}, + "output":{"shape":"DescribeImagesResult"} + }, + "DescribeImportImageTasks":{ + "name":"DescribeImportImageTasks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeImportImageTasksRequest"}, + "output":{"shape":"DescribeImportImageTasksResult"} + }, + "DescribeImportSnapshotTasks":{ + "name":"DescribeImportSnapshotTasks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeImportSnapshotTasksRequest"}, + "output":{"shape":"DescribeImportSnapshotTasksResult"} + }, + "DescribeInstanceAttribute":{ + "name":"DescribeInstanceAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeInstanceAttributeRequest"}, + "output":{"shape":"InstanceAttribute"} + }, + "DescribeInstanceStatus":{ + "name":"DescribeInstanceStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeInstanceStatusRequest"}, + "output":{"shape":"DescribeInstanceStatusResult"} + }, + "DescribeInstances":{ + "name":"DescribeInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeInstancesRequest"}, + "output":{"shape":"DescribeInstancesResult"} + }, + "DescribeInternetGateways":{ + "name":"DescribeInternetGateways", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeInternetGatewaysRequest"}, + "output":{"shape":"DescribeInternetGatewaysResult"} + }, + "DescribeKeyPairs":{ + "name":"DescribeKeyPairs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeKeyPairsRequest"}, + "output":{"shape":"DescribeKeyPairsResult"} + }, + "DescribeNetworkAcls":{ + "name":"DescribeNetworkAcls", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeNetworkAclsRequest"}, + "output":{"shape":"DescribeNetworkAclsResult"} + }, + "DescribeNetworkInterfaceAttribute":{ + "name":"DescribeNetworkInterfaceAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeNetworkInterfaceAttributeRequest"}, + "output":{"shape":"DescribeNetworkInterfaceAttributeResult"} + }, + "DescribeNetworkInterfaces":{ + "name":"DescribeNetworkInterfaces", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeNetworkInterfacesRequest"}, + "output":{"shape":"DescribeNetworkInterfacesResult"} + }, + "DescribePlacementGroups":{ + "name":"DescribePlacementGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribePlacementGroupsRequest"}, + "output":{"shape":"DescribePlacementGroupsResult"} + }, + "DescribeRegions":{ + "name":"DescribeRegions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeRegionsRequest"}, + "output":{"shape":"DescribeRegionsResult"} + }, + "DescribeReservedInstances":{ + "name":"DescribeReservedInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeReservedInstancesRequest"}, + "output":{"shape":"DescribeReservedInstancesResult"} + }, + "DescribeReservedInstancesListings":{ + "name":"DescribeReservedInstancesListings", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeReservedInstancesListingsRequest"}, + "output":{"shape":"DescribeReservedInstancesListingsResult"} + }, + "DescribeReservedInstancesModifications":{ + "name":"DescribeReservedInstancesModifications", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeReservedInstancesModificationsRequest"}, + "output":{"shape":"DescribeReservedInstancesModificationsResult"} + }, + "DescribeReservedInstancesOfferings":{ + "name":"DescribeReservedInstancesOfferings", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeReservedInstancesOfferingsRequest"}, + "output":{"shape":"DescribeReservedInstancesOfferingsResult"} + }, + "DescribeRouteTables":{ + "name":"DescribeRouteTables", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeRouteTablesRequest"}, + "output":{"shape":"DescribeRouteTablesResult"} + }, + "DescribeSecurityGroups":{ + "name":"DescribeSecurityGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSecurityGroupsRequest"}, + "output":{"shape":"DescribeSecurityGroupsResult"} + }, + "DescribeSnapshotAttribute":{ + "name":"DescribeSnapshotAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSnapshotAttributeRequest"}, + "output":{"shape":"DescribeSnapshotAttributeResult"} + }, + "DescribeSnapshots":{ + "name":"DescribeSnapshots", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSnapshotsRequest"}, + "output":{"shape":"DescribeSnapshotsResult"} + }, + "DescribeSpotDatafeedSubscription":{ + "name":"DescribeSpotDatafeedSubscription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSpotDatafeedSubscriptionRequest"}, + "output":{"shape":"DescribeSpotDatafeedSubscriptionResult"} + }, + "DescribeSpotInstanceRequests":{ + "name":"DescribeSpotInstanceRequests", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSpotInstanceRequestsRequest"}, + "output":{"shape":"DescribeSpotInstanceRequestsResult"} + }, + "DescribeSpotPriceHistory":{ + "name":"DescribeSpotPriceHistory", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSpotPriceHistoryRequest"}, + "output":{"shape":"DescribeSpotPriceHistoryResult"} + }, + "DescribeSubnets":{ + "name":"DescribeSubnets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSubnetsRequest"}, + "output":{"shape":"DescribeSubnetsResult"} + }, + "DescribeTags":{ + "name":"DescribeTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTagsRequest"}, + "output":{"shape":"DescribeTagsResult"} + }, + "DescribeVolumeAttribute":{ + "name":"DescribeVolumeAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVolumeAttributeRequest"}, + "output":{"shape":"DescribeVolumeAttributeResult"} + }, + "DescribeVolumeStatus":{ + "name":"DescribeVolumeStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVolumeStatusRequest"}, + "output":{"shape":"DescribeVolumeStatusResult"} + }, + "DescribeVolumes":{ + "name":"DescribeVolumes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVolumesRequest"}, + "output":{"shape":"DescribeVolumesResult"} + }, + "DescribeVpcAttribute":{ + "name":"DescribeVpcAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVpcAttributeRequest"}, + "output":{"shape":"DescribeVpcAttributeResult"} + }, + "DescribeVpcClassicLink":{ + "name":"DescribeVpcClassicLink", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVpcClassicLinkRequest"}, + "output":{"shape":"DescribeVpcClassicLinkResult"} + }, + "DescribeVpcPeeringConnections":{ + "name":"DescribeVpcPeeringConnections", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVpcPeeringConnectionsRequest"}, + "output":{"shape":"DescribeVpcPeeringConnectionsResult"} + }, + "DescribeVpcs":{ + "name":"DescribeVpcs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVpcsRequest"}, + "output":{"shape":"DescribeVpcsResult"} + }, + "DescribeVpnConnections":{ + "name":"DescribeVpnConnections", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVpnConnectionsRequest"}, + "output":{"shape":"DescribeVpnConnectionsResult"} + }, + "DescribeVpnGateways":{ + "name":"DescribeVpnGateways", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVpnGatewaysRequest"}, + "output":{"shape":"DescribeVpnGatewaysResult"} + }, + "DetachClassicLinkVpc":{ + "name":"DetachClassicLinkVpc", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetachClassicLinkVpcRequest"}, + "output":{"shape":"DetachClassicLinkVpcResult"} + }, + "DetachInternetGateway":{ + "name":"DetachInternetGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetachInternetGatewayRequest"} + }, + "DetachNetworkInterface":{ + "name":"DetachNetworkInterface", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetachNetworkInterfaceRequest"} + }, + "DetachVolume":{ + "name":"DetachVolume", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetachVolumeRequest"}, + "output":{ + "shape":"VolumeAttachment", + "locationName":"attachment" + } + }, + "DetachVpnGateway":{ + "name":"DetachVpnGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetachVpnGatewayRequest"} + }, + "DisableVgwRoutePropagation":{ + "name":"DisableVgwRoutePropagation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisableVgwRoutePropagationRequest"} + }, + "DisableVpcClassicLink":{ + "name":"DisableVpcClassicLink", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisableVpcClassicLinkRequest"}, + "output":{"shape":"DisableVpcClassicLinkResult"} + }, + "DisassociateAddress":{ + "name":"DisassociateAddress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisassociateAddressRequest"} + }, + "DisassociateRouteTable":{ + "name":"DisassociateRouteTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisassociateRouteTableRequest"} + }, + "EnableVgwRoutePropagation":{ + "name":"EnableVgwRoutePropagation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableVgwRoutePropagationRequest"} + }, + "EnableVolumeIO":{ + "name":"EnableVolumeIO", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableVolumeIORequest"} + }, + "EnableVpcClassicLink":{ + "name":"EnableVpcClassicLink", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableVpcClassicLinkRequest"}, + "output":{"shape":"EnableVpcClassicLinkResult"} + }, + "GetConsoleOutput":{ + "name":"GetConsoleOutput", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetConsoleOutputRequest"}, + "output":{"shape":"GetConsoleOutputResult"} + }, + "GetPasswordData":{ + "name":"GetPasswordData", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetPasswordDataRequest"}, + "output":{"shape":"GetPasswordDataResult"} + }, + "ImportImage":{ + "name":"ImportImage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ImportImageRequest"}, + "output":{"shape":"ImportImageResult"} + }, + "ImportInstance":{ + "name":"ImportInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ImportInstanceRequest"}, + "output":{"shape":"ImportInstanceResult"} + }, + "ImportKeyPair":{ + "name":"ImportKeyPair", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ImportKeyPairRequest"}, + "output":{"shape":"ImportKeyPairResult"} + }, + "ImportSnapshot":{ + "name":"ImportSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ImportSnapshotRequest"}, + "output":{"shape":"ImportSnapshotResult"} + }, + "ImportVolume":{ + "name":"ImportVolume", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ImportVolumeRequest"}, + "output":{"shape":"ImportVolumeResult"} + }, + "ModifyImageAttribute":{ + "name":"ModifyImageAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyImageAttributeRequest"} + }, + "ModifyInstanceAttribute":{ + "name":"ModifyInstanceAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyInstanceAttributeRequest"} + }, + "ModifyNetworkInterfaceAttribute":{ + "name":"ModifyNetworkInterfaceAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyNetworkInterfaceAttributeRequest"} + }, + "ModifyReservedInstances":{ + "name":"ModifyReservedInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyReservedInstancesRequest"}, + "output":{"shape":"ModifyReservedInstancesResult"} + }, + "ModifySnapshotAttribute":{ + "name":"ModifySnapshotAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifySnapshotAttributeRequest"} + }, + "ModifySubnetAttribute":{ + "name":"ModifySubnetAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifySubnetAttributeRequest"} + }, + "ModifyVolumeAttribute":{ + "name":"ModifyVolumeAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyVolumeAttributeRequest"} + }, + "ModifyVpcAttribute":{ + "name":"ModifyVpcAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyVpcAttributeRequest"} + }, + "MonitorInstances":{ + "name":"MonitorInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"MonitorInstancesRequest"}, + "output":{"shape":"MonitorInstancesResult"} + }, + "PurchaseReservedInstancesOffering":{ + "name":"PurchaseReservedInstancesOffering", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PurchaseReservedInstancesOfferingRequest"}, + "output":{"shape":"PurchaseReservedInstancesOfferingResult"} + }, + "RebootInstances":{ + "name":"RebootInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RebootInstancesRequest"} + }, + "RegisterImage":{ + "name":"RegisterImage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RegisterImageRequest"}, + "output":{"shape":"RegisterImageResult"} + }, + "RejectVpcPeeringConnection":{ + "name":"RejectVpcPeeringConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RejectVpcPeeringConnectionRequest"}, + "output":{"shape":"RejectVpcPeeringConnectionResult"} + }, + "ReleaseAddress":{ + "name":"ReleaseAddress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ReleaseAddressRequest"} + }, + "ReplaceNetworkAclAssociation":{ + "name":"ReplaceNetworkAclAssociation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ReplaceNetworkAclAssociationRequest"}, + "output":{"shape":"ReplaceNetworkAclAssociationResult"} + }, + "ReplaceNetworkAclEntry":{ + "name":"ReplaceNetworkAclEntry", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ReplaceNetworkAclEntryRequest"} + }, + "ReplaceRoute":{ + "name":"ReplaceRoute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ReplaceRouteRequest"} + }, + "ReplaceRouteTableAssociation":{ + "name":"ReplaceRouteTableAssociation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ReplaceRouteTableAssociationRequest"}, + "output":{"shape":"ReplaceRouteTableAssociationResult"} + }, + "ReportInstanceStatus":{ + "name":"ReportInstanceStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ReportInstanceStatusRequest"} + }, + "RequestSpotInstances":{ + "name":"RequestSpotInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RequestSpotInstancesRequest"}, + "output":{"shape":"RequestSpotInstancesResult"} + }, + "ResetImageAttribute":{ + "name":"ResetImageAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ResetImageAttributeRequest"} + }, + "ResetInstanceAttribute":{ + "name":"ResetInstanceAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ResetInstanceAttributeRequest"} + }, + "ResetNetworkInterfaceAttribute":{ + "name":"ResetNetworkInterfaceAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ResetNetworkInterfaceAttributeRequest"} + }, + "ResetSnapshotAttribute":{ + "name":"ResetSnapshotAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ResetSnapshotAttributeRequest"} + }, + "RevokeSecurityGroupEgress":{ + "name":"RevokeSecurityGroupEgress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RevokeSecurityGroupEgressRequest"} + }, + "RevokeSecurityGroupIngress":{ + "name":"RevokeSecurityGroupIngress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RevokeSecurityGroupIngressRequest"} + }, + "RunInstances":{ + "name":"RunInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RunInstancesRequest"}, + "output":{ + "shape":"Reservation", + "locationName":"reservation" + } + }, + "StartInstances":{ + "name":"StartInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartInstancesRequest"}, + "output":{"shape":"StartInstancesResult"} + }, + "StopInstances":{ + "name":"StopInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopInstancesRequest"}, + "output":{"shape":"StopInstancesResult"} + }, + "TerminateInstances":{ + "name":"TerminateInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TerminateInstancesRequest"}, + "output":{"shape":"TerminateInstancesResult"} + }, + "UnassignPrivateIpAddresses":{ + "name":"UnassignPrivateIpAddresses", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UnassignPrivateIpAddressesRequest"} + }, + "UnmonitorInstances":{ + "name":"UnmonitorInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UnmonitorInstancesRequest"}, + "output":{"shape":"UnmonitorInstancesResult"} + } + }, + "shapes":{ + "AcceptVpcPeeringConnectionRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcPeeringConnectionId":{ + "shape":"String", + "locationName":"vpcPeeringConnectionId" + } + } + }, + "AcceptVpcPeeringConnectionResult":{ + "type":"structure", + "members":{ + "VpcPeeringConnection":{ + "shape":"VpcPeeringConnection", + "locationName":"vpcPeeringConnection" + } + } + }, + "AccountAttribute":{ + "type":"structure", + "members":{ + "AttributeName":{ + "shape":"String", + "locationName":"attributeName" + }, + "AttributeValues":{ + "shape":"AccountAttributeValueList", + "locationName":"attributeValueSet" + } + } + }, + "AccountAttributeList":{ + "type":"list", + "member":{ + "shape":"AccountAttribute", + "locationName":"item" + } + }, + "AccountAttributeName":{ + "type":"string", + "enum":[ + "supported-platforms", + "default-vpc" + ] + }, + "AccountAttributeNameStringList":{ + "type":"list", + "member":{ + "shape":"AccountAttributeName", + "locationName":"attributeName" + } + }, + "AccountAttributeValue":{ + "type":"structure", + "members":{ + "AttributeValue":{ + "shape":"String", + "locationName":"attributeValue" + } + } + }, + "AccountAttributeValueList":{ + "type":"list", + "member":{ + "shape":"AccountAttributeValue", + "locationName":"item" + } + }, + "Address":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "PublicIp":{ + "shape":"String", + "locationName":"publicIp" + }, + "AllocationId":{ + "shape":"String", + "locationName":"allocationId" + }, + "AssociationId":{ + "shape":"String", + "locationName":"associationId" + }, + "Domain":{ + "shape":"DomainType", + "locationName":"domain" + }, + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "NetworkInterfaceOwnerId":{ + "shape":"String", + "locationName":"networkInterfaceOwnerId" + }, + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + } + } + }, + "AddressList":{ + "type":"list", + "member":{ + "shape":"Address", + "locationName":"item" + } + }, + "AllocateAddressRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "Domain":{"shape":"DomainType"} + } + }, + "AllocateAddressResult":{ + "type":"structure", + "members":{ + "PublicIp":{ + "shape":"String", + "locationName":"publicIp" + }, + "Domain":{ + "shape":"DomainType", + "locationName":"domain" + }, + "AllocationId":{ + "shape":"String", + "locationName":"allocationId" + } + } + }, + "AllocationIdList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"AllocationId" + } + }, + "ArchitectureValues":{ + "type":"string", + "enum":[ + "i386", + "x86_64" + ] + }, + "AssignPrivateIpAddressesRequest":{ + "type":"structure", + "required":["NetworkInterfaceId"], + "members":{ + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "PrivateIpAddresses":{ + "shape":"PrivateIpAddressStringList", + "locationName":"privateIpAddress" + }, + "SecondaryPrivateIpAddressCount":{ + "shape":"Integer", + "locationName":"secondaryPrivateIpAddressCount" + }, + "AllowReassignment":{ + "shape":"Boolean", + "locationName":"allowReassignment" + } + } + }, + "AssociateAddressRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceId":{"shape":"String"}, + "PublicIp":{"shape":"String"}, + "AllocationId":{"shape":"String"}, + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + }, + "AllowReassociation":{ + "shape":"Boolean", + "locationName":"allowReassociation" + } + } + }, + "AssociateAddressResult":{ + "type":"structure", + "members":{ + "AssociationId":{ + "shape":"String", + "locationName":"associationId" + } + } + }, + "AssociateDhcpOptionsRequest":{ + "type":"structure", + "required":[ + "DhcpOptionsId", + "VpcId" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "DhcpOptionsId":{"shape":"String"}, + "VpcId":{"shape":"String"} + } + }, + "AssociateRouteTableRequest":{ + "type":"structure", + "required":[ + "SubnetId", + "RouteTableId" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "RouteTableId":{ + "shape":"String", + "locationName":"routeTableId" + } + } + }, + "AssociateRouteTableResult":{ + "type":"structure", + "members":{ + "AssociationId":{ + "shape":"String", + "locationName":"associationId" + } + } + }, + "AttachClassicLinkVpcRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "VpcId", + "Groups" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "Groups":{ + "shape":"GroupIdStringList", + "locationName":"SecurityGroupId" + } + } + }, + "AttachClassicLinkVpcResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, + "AttachInternetGatewayRequest":{ + "type":"structure", + "required":[ + "InternetGatewayId", + "VpcId" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InternetGatewayId":{ + "shape":"String", + "locationName":"internetGatewayId" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + } + } + }, + "AttachNetworkInterfaceRequest":{ + "type":"structure", + "required":[ + "NetworkInterfaceId", + "InstanceId", + "DeviceIndex" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "DeviceIndex":{ + "shape":"Integer", + "locationName":"deviceIndex" + } + } + }, + "AttachNetworkInterfaceResult":{ + "type":"structure", + "members":{ + "AttachmentId":{ + "shape":"String", + "locationName":"attachmentId" + } + } + }, + "AttachVolumeRequest":{ + "type":"structure", + "required":[ + "VolumeId", + "InstanceId", + "Device" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VolumeId":{"shape":"String"}, + "InstanceId":{"shape":"String"}, + "Device":{"shape":"String"} + } + }, + "AttachVpnGatewayRequest":{ + "type":"structure", + "required":[ + "VpnGatewayId", + "VpcId" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpnGatewayId":{"shape":"String"}, + "VpcId":{"shape":"String"} + } + }, + "AttachVpnGatewayResult":{ + "type":"structure", + "members":{ + "VpcAttachment":{ + "shape":"VpcAttachment", + "locationName":"attachment" + } + } + }, + "AttachmentStatus":{ + "type":"string", + "enum":[ + "attaching", + "attached", + "detaching", + "detached" + ] + }, + "AttributeBooleanValue":{ + "type":"structure", + "members":{ + "Value":{ + "shape":"Boolean", + "locationName":"value" + } + } + }, + "AttributeValue":{ + "type":"structure", + "members":{ + "Value":{ + "shape":"String", + "locationName":"value" + } + } + }, + "AuthorizeSecurityGroupEgressRequest":{ + "type":"structure", + "required":["GroupId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "GroupId":{ + "shape":"String", + "locationName":"groupId" + }, + "SourceSecurityGroupName":{ + "shape":"String", + "locationName":"sourceSecurityGroupName" + }, + "SourceSecurityGroupOwnerId":{ + "shape":"String", + "locationName":"sourceSecurityGroupOwnerId" + }, + "IpProtocol":{ + "shape":"String", + "locationName":"ipProtocol" + }, + "FromPort":{ + "shape":"Integer", + "locationName":"fromPort" + }, + "ToPort":{ + "shape":"Integer", + "locationName":"toPort" + }, + "CidrIp":{ + "shape":"String", + "locationName":"cidrIp" + }, + "IpPermissions":{ + "shape":"IpPermissionList", + "locationName":"ipPermissions" + } + } + }, + "AuthorizeSecurityGroupIngressRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "GroupName":{"shape":"String"}, + "GroupId":{"shape":"String"}, + "SourceSecurityGroupName":{"shape":"String"}, + "SourceSecurityGroupOwnerId":{"shape":"String"}, + "IpProtocol":{"shape":"String"}, + "FromPort":{"shape":"Integer"}, + "ToPort":{"shape":"Integer"}, + "CidrIp":{"shape":"String"}, + "IpPermissions":{"shape":"IpPermissionList"} + } + }, + "AvailabilityZone":{ + "type":"structure", + "members":{ + "ZoneName":{ + "shape":"String", + "locationName":"zoneName" + }, + "State":{ + "shape":"AvailabilityZoneState", + "locationName":"zoneState" + }, + "RegionName":{ + "shape":"String", + "locationName":"regionName" + }, + "Messages":{ + "shape":"AvailabilityZoneMessageList", + "locationName":"messageSet" + } + } + }, + "AvailabilityZoneList":{ + "type":"list", + "member":{ + "shape":"AvailabilityZone", + "locationName":"item" + } + }, + "AvailabilityZoneMessage":{ + "type":"structure", + "members":{ + "Message":{ + "shape":"String", + "locationName":"message" + } + } + }, + "AvailabilityZoneMessageList":{ + "type":"list", + "member":{ + "shape":"AvailabilityZoneMessage", + "locationName":"item" + } + }, + "AvailabilityZoneState":{ + "type":"string", + "enum":["available"] + }, + "BlockDeviceMapping":{ + "type":"structure", + "members":{ + "VirtualName":{ + "shape":"String", + "locationName":"virtualName" + }, + "DeviceName":{ + "shape":"String", + "locationName":"deviceName" + }, + "Ebs":{ + "shape":"EbsBlockDevice", + "locationName":"ebs" + }, + "NoDevice":{ + "shape":"String", + "locationName":"noDevice" + } + } + }, + "BlockDeviceMappingList":{ + "type":"list", + "member":{ + "shape":"BlockDeviceMapping", + "locationName":"item" + } + }, + "BlockDeviceMappingRequestList":{ + "type":"list", + "member":{ + "shape":"BlockDeviceMapping", + "locationName":"BlockDeviceMapping" + } + }, + "Boolean":{"type":"boolean"}, + "BundleIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"BundleId" + } + }, + "BundleInstanceRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "Storage" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceId":{"shape":"String"}, + "Storage":{"shape":"Storage"} + } + }, + "BundleInstanceResult":{ + "type":"structure", + "members":{ + "BundleTask":{ + "shape":"BundleTask", + "locationName":"bundleInstanceTask" + } + } + }, + "BundleTask":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "BundleId":{ + "shape":"String", + "locationName":"bundleId" + }, + "State":{ + "shape":"BundleTaskState", + "locationName":"state" + }, + "StartTime":{ + "shape":"DateTime", + "locationName":"startTime" + }, + "UpdateTime":{ + "shape":"DateTime", + "locationName":"updateTime" + }, + "Storage":{ + "shape":"Storage", + "locationName":"storage" + }, + "Progress":{ + "shape":"String", + "locationName":"progress" + }, + "BundleTaskError":{ + "shape":"BundleTaskError", + "locationName":"error" + } + } + }, + "BundleTaskError":{ + "type":"structure", + "members":{ + "Code":{ + "shape":"String", + "locationName":"code" + }, + "Message":{ + "shape":"String", + "locationName":"message" + } + } + }, + "BundleTaskList":{ + "type":"list", + "member":{ + "shape":"BundleTask", + "locationName":"item" + } + }, + "BundleTaskState":{ + "type":"string", + "enum":[ + "pending", + "waiting-for-shutdown", + "bundling", + "storing", + "cancelling", + "complete", + "failed" + ] + }, + "CancelBundleTaskRequest":{ + "type":"structure", + "required":["BundleId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "BundleId":{"shape":"String"} + } + }, + "CancelBundleTaskResult":{ + "type":"structure", + "members":{ + "BundleTask":{ + "shape":"BundleTask", + "locationName":"bundleInstanceTask" + } + } + }, + "CancelConversionRequest":{ + "type":"structure", + "required":["ConversionTaskId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ConversionTaskId":{ + "shape":"String", + "locationName":"conversionTaskId" + }, + "ReasonMessage":{ + "shape":"String", + "locationName":"reasonMessage" + } + } + }, + "CancelExportTaskRequest":{ + "type":"structure", + "required":["ExportTaskId"], + "members":{ + "ExportTaskId":{ + "shape":"String", + "locationName":"exportTaskId" + } + } + }, + "CancelImportTaskRequest":{ + "type":"structure", + "members":{ + "DryRun":{"shape":"Boolean"}, + "ImportTaskId":{"shape":"String"}, + "CancelReason":{"shape":"String"} + } + }, + "CancelImportTaskResult":{ + "type":"structure", + "members":{ + "ImportTaskId":{ + "shape":"String", + "locationName":"importTaskId" + }, + "State":{ + "shape":"String", + "locationName":"state" + }, + "PreviousState":{ + "shape":"String", + "locationName":"previousState" + } + } + }, + "CancelReservedInstancesListingRequest":{ + "type":"structure", + "required":["ReservedInstancesListingId"], + "members":{ + "ReservedInstancesListingId":{ + "shape":"String", + "locationName":"reservedInstancesListingId" + } + } + }, + "CancelReservedInstancesListingResult":{ + "type":"structure", + "members":{ + "ReservedInstancesListings":{ + "shape":"ReservedInstancesListingList", + "locationName":"reservedInstancesListingsSet" + } + } + }, + "CancelSpotInstanceRequestState":{ + "type":"string", + "enum":[ + "active", + "open", + "closed", + "cancelled", + "completed" + ] + }, + "CancelSpotInstanceRequestsRequest":{ + "type":"structure", + "required":["SpotInstanceRequestIds"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SpotInstanceRequestIds":{ + "shape":"SpotInstanceRequestIdList", + "locationName":"SpotInstanceRequestId" + } + } + }, + "CancelSpotInstanceRequestsResult":{ + "type":"structure", + "members":{ + "CancelledSpotInstanceRequests":{ + "shape":"CancelledSpotInstanceRequestList", + "locationName":"spotInstanceRequestSet" + } + } + }, + "CancelledSpotInstanceRequest":{ + "type":"structure", + "members":{ + "SpotInstanceRequestId":{ + "shape":"String", + "locationName":"spotInstanceRequestId" + }, + "State":{ + "shape":"CancelSpotInstanceRequestState", + "locationName":"state" + } + } + }, + "CancelledSpotInstanceRequestList":{ + "type":"list", + "member":{ + "shape":"CancelledSpotInstanceRequest", + "locationName":"item" + } + }, + "ClassicLinkInstance":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "Groups":{ + "shape":"GroupIdentifierList", + "locationName":"groupSet" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + } + } + }, + "ClassicLinkInstanceList":{ + "type":"list", + "member":{ + "shape":"ClassicLinkInstance", + "locationName":"item" + } + }, + "ClientData":{ + "type":"structure", + "members":{ + "UploadStart":{"shape":"DateTime"}, + "UploadEnd":{"shape":"DateTime"}, + "UploadSize":{"shape":"Double"}, + "Comment":{"shape":"String"} + } + }, + "ConfirmProductInstanceRequest":{ + "type":"structure", + "required":[ + "ProductCode", + "InstanceId" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ProductCode":{"shape":"String"}, + "InstanceId":{"shape":"String"} + } + }, + "ConfirmProductInstanceResult":{ + "type":"structure", + "members":{ + "OwnerId":{ + "shape":"String", + "locationName":"ownerId" + } + } + }, + "ContainerFormat":{ + "type":"string", + "enum":["ova"] + }, + "ConversionIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"item" + } + }, + "ConversionTask":{ + "type":"structure", + "required":[ + "ConversionTaskId", + "State" + ], + "members":{ + "ConversionTaskId":{ + "shape":"String", + "locationName":"conversionTaskId" + }, + "ExpirationTime":{ + "shape":"String", + "locationName":"expirationTime" + }, + "ImportInstance":{ + "shape":"ImportInstanceTaskDetails", + "locationName":"importInstance" + }, + "ImportVolume":{ + "shape":"ImportVolumeTaskDetails", + "locationName":"importVolume" + }, + "State":{ + "shape":"ConversionTaskState", + "locationName":"state" + }, + "StatusMessage":{ + "shape":"String", + "locationName":"statusMessage" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + } + } + }, + "ConversionTaskState":{ + "type":"string", + "enum":[ + "active", + "cancelling", + "cancelled", + "completed" + ] + }, + "CopyImageRequest":{ + "type":"structure", + "required":[ + "SourceRegion", + "SourceImageId", + "Name" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SourceRegion":{"shape":"String"}, + "SourceImageId":{"shape":"String"}, + "Name":{"shape":"String"}, + "Description":{"shape":"String"}, + "ClientToken":{"shape":"String"} + } + }, + "CopyImageResult":{ + "type":"structure", + "members":{ + "ImageId":{ + "shape":"String", + "locationName":"imageId" + } + } + }, + "CopySnapshotRequest":{ + "type":"structure", + "required":[ + "SourceRegion", + "SourceSnapshotId" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SourceRegion":{"shape":"String"}, + "SourceSnapshotId":{"shape":"String"}, + "Description":{"shape":"String"}, + "DestinationRegion":{ + "shape":"String", + "locationName":"destinationRegion" + }, + "PresignedUrl":{ + "shape":"String", + "locationName":"presignedUrl" + } + } + }, + "CopySnapshotResult":{ + "type":"structure", + "members":{ + "SnapshotId":{ + "shape":"String", + "locationName":"snapshotId" + } + } + }, + "CreateCustomerGatewayRequest":{ + "type":"structure", + "required":[ + "Type", + "PublicIp", + "BgpAsn" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "Type":{"shape":"GatewayType"}, + "PublicIp":{ + "shape":"String", + "locationName":"IpAddress" + }, + "BgpAsn":{"shape":"Integer"} + } + }, + "CreateCustomerGatewayResult":{ + "type":"structure", + "members":{ + "CustomerGateway":{ + "shape":"CustomerGateway", + "locationName":"customerGateway" + } + } + }, + "CreateDhcpOptionsRequest":{ + "type":"structure", + "required":["DhcpConfigurations"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "DhcpConfigurations":{ + "shape":"NewDhcpConfigurationList", + "locationName":"dhcpConfiguration" + } + } + }, + "CreateDhcpOptionsResult":{ + "type":"structure", + "members":{ + "DhcpOptions":{ + "shape":"DhcpOptions", + "locationName":"dhcpOptions" + } + } + }, + "CreateImageRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "Name" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "Name":{ + "shape":"String", + "locationName":"name" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "NoReboot":{ + "shape":"Boolean", + "locationName":"noReboot" + }, + "BlockDeviceMappings":{ + "shape":"BlockDeviceMappingRequestList", + "locationName":"blockDeviceMapping" + } + } + }, + "CreateImageResult":{ + "type":"structure", + "members":{ + "ImageId":{ + "shape":"String", + "locationName":"imageId" + } + } + }, + "CreateInstanceExportTaskRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "Description":{ + "shape":"String", + "locationName":"description" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "TargetEnvironment":{ + "shape":"ExportEnvironment", + "locationName":"targetEnvironment" + }, + "ExportToS3Task":{ + "shape":"ExportToS3TaskSpecification", + "locationName":"exportToS3" + } + } + }, + "CreateInstanceExportTaskResult":{ + "type":"structure", + "members":{ + "ExportTask":{ + "shape":"ExportTask", + "locationName":"exportTask" + } + } + }, + "CreateInternetGatewayRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + } + } + }, + "CreateInternetGatewayResult":{ + "type":"structure", + "members":{ + "InternetGateway":{ + "shape":"InternetGateway", + "locationName":"internetGateway" + } + } + }, + "CreateKeyPairRequest":{ + "type":"structure", + "required":["KeyName"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "KeyName":{"shape":"String"} + } + }, + "CreateNetworkAclEntryRequest":{ + "type":"structure", + "required":[ + "NetworkAclId", + "RuleNumber", + "Protocol", + "RuleAction", + "Egress", + "CidrBlock" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "NetworkAclId":{ + "shape":"String", + "locationName":"networkAclId" + }, + "RuleNumber":{ + "shape":"Integer", + "locationName":"ruleNumber" + }, + "Protocol":{ + "shape":"String", + "locationName":"protocol" + }, + "RuleAction":{ + "shape":"RuleAction", + "locationName":"ruleAction" + }, + "Egress":{ + "shape":"Boolean", + "locationName":"egress" + }, + "CidrBlock":{ + "shape":"String", + "locationName":"cidrBlock" + }, + "IcmpTypeCode":{ + "shape":"IcmpTypeCode", + "locationName":"Icmp" + }, + "PortRange":{ + "shape":"PortRange", + "locationName":"portRange" + } + } + }, + "CreateNetworkAclRequest":{ + "type":"structure", + "required":["VpcId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + } + } + }, + "CreateNetworkAclResult":{ + "type":"structure", + "members":{ + "NetworkAcl":{ + "shape":"NetworkAcl", + "locationName":"networkAcl" + } + } + }, + "CreateNetworkInterfaceRequest":{ + "type":"structure", + "required":["SubnetId"], + "members":{ + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + }, + "Groups":{ + "shape":"SecurityGroupIdStringList", + "locationName":"SecurityGroupId" + }, + "PrivateIpAddresses":{ + "shape":"PrivateIpAddressSpecificationList", + "locationName":"privateIpAddresses" + }, + "SecondaryPrivateIpAddressCount":{ + "shape":"Integer", + "locationName":"secondaryPrivateIpAddressCount" + }, + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + } + } + }, + "CreateNetworkInterfaceResult":{ + "type":"structure", + "members":{ + "NetworkInterface":{ + "shape":"NetworkInterface", + "locationName":"networkInterface" + } + } + }, + "CreatePlacementGroupRequest":{ + "type":"structure", + "required":[ + "GroupName", + "Strategy" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "GroupName":{ + "shape":"String", + "locationName":"groupName" + }, + "Strategy":{ + "shape":"PlacementStrategy", + "locationName":"strategy" + } + } + }, + "CreateReservedInstancesListingRequest":{ + "type":"structure", + "required":[ + "ReservedInstancesId", + "InstanceCount", + "PriceSchedules", + "ClientToken" + ], + "members":{ + "ReservedInstancesId":{ + "shape":"String", + "locationName":"reservedInstancesId" + }, + "InstanceCount":{ + "shape":"Integer", + "locationName":"instanceCount" + }, + "PriceSchedules":{ + "shape":"PriceScheduleSpecificationList", + "locationName":"priceSchedules" + }, + "ClientToken":{ + "shape":"String", + "locationName":"clientToken" + } + } + }, + "CreateReservedInstancesListingResult":{ + "type":"structure", + "members":{ + "ReservedInstancesListings":{ + "shape":"ReservedInstancesListingList", + "locationName":"reservedInstancesListingsSet" + } + } + }, + "CreateRouteRequest":{ + "type":"structure", + "required":[ + "RouteTableId", + "DestinationCidrBlock" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "RouteTableId":{ + "shape":"String", + "locationName":"routeTableId" + }, + "DestinationCidrBlock":{ + "shape":"String", + "locationName":"destinationCidrBlock" + }, + "GatewayId":{ + "shape":"String", + "locationName":"gatewayId" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "VpcPeeringConnectionId":{ + "shape":"String", + "locationName":"vpcPeeringConnectionId" + } + } + }, + "CreateRouteTableRequest":{ + "type":"structure", + "required":["VpcId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + } + } + }, + "CreateRouteTableResult":{ + "type":"structure", + "members":{ + "RouteTable":{ + "shape":"RouteTable", + "locationName":"routeTable" + } + } + }, + "CreateSecurityGroupRequest":{ + "type":"structure", + "required":[ + "GroupName", + "Description" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "GroupName":{"shape":"String"}, + "Description":{ + "shape":"String", + "locationName":"GroupDescription" + }, + "VpcId":{"shape":"String"} + } + }, + "CreateSecurityGroupResult":{ + "type":"structure", + "members":{ + "GroupId":{ + "shape":"String", + "locationName":"groupId" + } + } + }, + "CreateSnapshotRequest":{ + "type":"structure", + "required":["VolumeId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VolumeId":{"shape":"String"}, + "Description":{"shape":"String"} + } + }, + "CreateSpotDatafeedSubscriptionRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "Bucket":{ + "shape":"String", + "locationName":"bucket" + }, + "Prefix":{ + "shape":"String", + "locationName":"prefix" + } + } + }, + "CreateSpotDatafeedSubscriptionResult":{ + "type":"structure", + "members":{ + "SpotDatafeedSubscription":{ + "shape":"SpotDatafeedSubscription", + "locationName":"spotDatafeedSubscription" + } + } + }, + "CreateSubnetRequest":{ + "type":"structure", + "required":[ + "VpcId", + "CidrBlock" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcId":{"shape":"String"}, + "CidrBlock":{"shape":"String"}, + "AvailabilityZone":{"shape":"String"} + } + }, + "CreateSubnetResult":{ + "type":"structure", + "members":{ + "Subnet":{ + "shape":"Subnet", + "locationName":"subnet" + } + } + }, + "CreateTagsRequest":{ + "type":"structure", + "required":[ + "Resources", + "Tags" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "Resources":{ + "shape":"ResourceIdList", + "locationName":"ResourceId" + }, + "Tags":{ + "shape":"TagList", + "locationName":"Tag" + } + } + }, + "CreateVolumePermission":{ + "type":"structure", + "members":{ + "UserId":{ + "shape":"String", + "locationName":"userId" + }, + "Group":{ + "shape":"PermissionGroup", + "locationName":"group" + } + } + }, + "CreateVolumePermissionList":{ + "type":"list", + "member":{ + "shape":"CreateVolumePermission", + "locationName":"item" + } + }, + "CreateVolumePermissionModifications":{ + "type":"structure", + "members":{ + "Add":{"shape":"CreateVolumePermissionList"}, + "Remove":{"shape":"CreateVolumePermissionList"} + } + }, + "CreateVolumeRequest":{ + "type":"structure", + "required":["AvailabilityZone"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "Size":{"shape":"Integer"}, + "SnapshotId":{"shape":"String"}, + "AvailabilityZone":{"shape":"String"}, + "VolumeType":{"shape":"VolumeType"}, + "Iops":{"shape":"Integer"}, + "Encrypted":{ + "shape":"Boolean", + "locationName":"encrypted" + }, + "KmsKeyId":{"shape":"String"} + } + }, + "CreateVpcPeeringConnectionRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "PeerVpcId":{ + "shape":"String", + "locationName":"peerVpcId" + }, + "PeerOwnerId":{ + "shape":"String", + "locationName":"peerOwnerId" + } + } + }, + "CreateVpcPeeringConnectionResult":{ + "type":"structure", + "members":{ + "VpcPeeringConnection":{ + "shape":"VpcPeeringConnection", + "locationName":"vpcPeeringConnection" + } + } + }, + "CreateVpcRequest":{ + "type":"structure", + "required":["CidrBlock"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "CidrBlock":{"shape":"String"}, + "InstanceTenancy":{ + "shape":"Tenancy", + "locationName":"instanceTenancy" + } + } + }, + "CreateVpcResult":{ + "type":"structure", + "members":{ + "Vpc":{ + "shape":"Vpc", + "locationName":"vpc" + } + } + }, + "CreateVpnConnectionRequest":{ + "type":"structure", + "required":[ + "Type", + "CustomerGatewayId", + "VpnGatewayId" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "Type":{"shape":"String"}, + "CustomerGatewayId":{"shape":"String"}, + "VpnGatewayId":{"shape":"String"}, + "Options":{ + "shape":"VpnConnectionOptionsSpecification", + "locationName":"options" + } + } + }, + "CreateVpnConnectionResult":{ + "type":"structure", + "members":{ + "VpnConnection":{ + "shape":"VpnConnection", + "locationName":"vpnConnection" + } + } + }, + "CreateVpnConnectionRouteRequest":{ + "type":"structure", + "required":[ + "VpnConnectionId", + "DestinationCidrBlock" + ], + "members":{ + "VpnConnectionId":{"shape":"String"}, + "DestinationCidrBlock":{"shape":"String"} + } + }, + "CreateVpnGatewayRequest":{ + "type":"structure", + "required":["Type"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "Type":{"shape":"GatewayType"}, + "AvailabilityZone":{"shape":"String"} + } + }, + "CreateVpnGatewayResult":{ + "type":"structure", + "members":{ + "VpnGateway":{ + "shape":"VpnGateway", + "locationName":"vpnGateway" + } + } + }, + "CurrencyCodeValues":{ + "type":"string", + "enum":["USD"] + }, + "CustomerGateway":{ + "type":"structure", + "members":{ + "CustomerGatewayId":{ + "shape":"String", + "locationName":"customerGatewayId" + }, + "State":{ + "shape":"String", + "locationName":"state" + }, + "Type":{ + "shape":"String", + "locationName":"type" + }, + "IpAddress":{ + "shape":"String", + "locationName":"ipAddress" + }, + "BgpAsn":{ + "shape":"String", + "locationName":"bgpAsn" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + } + } + }, + "CustomerGatewayIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"CustomerGatewayId" + } + }, + "CustomerGatewayList":{ + "type":"list", + "member":{ + "shape":"CustomerGateway", + "locationName":"item" + } + }, + "DatafeedSubscriptionState":{ + "type":"string", + "enum":[ + "Active", + "Inactive" + ] + }, + "DateTime":{"type":"timestamp"}, + "DeleteCustomerGatewayRequest":{ + "type":"structure", + "required":["CustomerGatewayId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "CustomerGatewayId":{"shape":"String"} + } + }, + "DeleteDhcpOptionsRequest":{ + "type":"structure", + "required":["DhcpOptionsId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "DhcpOptionsId":{"shape":"String"} + } + }, + "DeleteInternetGatewayRequest":{ + "type":"structure", + "required":["InternetGatewayId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InternetGatewayId":{ + "shape":"String", + "locationName":"internetGatewayId" + } + } + }, + "DeleteKeyPairRequest":{ + "type":"structure", + "required":["KeyName"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "KeyName":{"shape":"String"} + } + }, + "DeleteNetworkAclEntryRequest":{ + "type":"structure", + "required":[ + "NetworkAclId", + "RuleNumber", + "Egress" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "NetworkAclId":{ + "shape":"String", + "locationName":"networkAclId" + }, + "RuleNumber":{ + "shape":"Integer", + "locationName":"ruleNumber" + }, + "Egress":{ + "shape":"Boolean", + "locationName":"egress" + } + } + }, + "DeleteNetworkAclRequest":{ + "type":"structure", + "required":["NetworkAclId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "NetworkAclId":{ + "shape":"String", + "locationName":"networkAclId" + } + } + }, + "DeleteNetworkInterfaceRequest":{ + "type":"structure", + "required":["NetworkInterfaceId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + } + } + }, + "DeletePlacementGroupRequest":{ + "type":"structure", + "required":["GroupName"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "GroupName":{ + "shape":"String", + "locationName":"groupName" + } + } + }, + "DeleteRouteRequest":{ + "type":"structure", + "required":[ + "RouteTableId", + "DestinationCidrBlock" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "RouteTableId":{ + "shape":"String", + "locationName":"routeTableId" + }, + "DestinationCidrBlock":{ + "shape":"String", + "locationName":"destinationCidrBlock" + } + } + }, + "DeleteRouteTableRequest":{ + "type":"structure", + "required":["RouteTableId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "RouteTableId":{ + "shape":"String", + "locationName":"routeTableId" + } + } + }, + "DeleteSecurityGroupRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "GroupName":{"shape":"String"}, + "GroupId":{"shape":"String"} + } + }, + "DeleteSnapshotRequest":{ + "type":"structure", + "required":["SnapshotId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SnapshotId":{"shape":"String"} + } + }, + "DeleteSpotDatafeedSubscriptionRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + } + } + }, + "DeleteSubnetRequest":{ + "type":"structure", + "required":["SubnetId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SubnetId":{"shape":"String"} + } + }, + "DeleteTagsRequest":{ + "type":"structure", + "required":["Resources"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "Resources":{ + "shape":"ResourceIdList", + "locationName":"resourceId" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tag" + } + } + }, + "DeleteVolumeRequest":{ + "type":"structure", + "required":["VolumeId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VolumeId":{"shape":"String"} + } + }, + "DeleteVpcPeeringConnectionRequest":{ + "type":"structure", + "required":["VpcPeeringConnectionId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcPeeringConnectionId":{ + "shape":"String", + "locationName":"vpcPeeringConnectionId" + } + } + }, + "DeleteVpcPeeringConnectionResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, + "DeleteVpcRequest":{ + "type":"structure", + "required":["VpcId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcId":{"shape":"String"} + } + }, + "DeleteVpnConnectionRequest":{ + "type":"structure", + "required":["VpnConnectionId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpnConnectionId":{"shape":"String"} + } + }, + "DeleteVpnConnectionRouteRequest":{ + "type":"structure", + "required":[ + "VpnConnectionId", + "DestinationCidrBlock" + ], + "members":{ + "VpnConnectionId":{"shape":"String"}, + "DestinationCidrBlock":{"shape":"String"} + } + }, + "DeleteVpnGatewayRequest":{ + "type":"structure", + "required":["VpnGatewayId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpnGatewayId":{"shape":"String"} + } + }, + "DeregisterImageRequest":{ + "type":"structure", + "required":["ImageId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ImageId":{"shape":"String"} + } + }, + "DescribeAccountAttributesRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "AttributeNames":{ + "shape":"AccountAttributeNameStringList", + "locationName":"attributeName" + } + } + }, + "DescribeAccountAttributesResult":{ + "type":"structure", + "members":{ + "AccountAttributes":{ + "shape":"AccountAttributeList", + "locationName":"accountAttributeSet" + } + } + }, + "DescribeAddressesRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "PublicIps":{ + "shape":"PublicIpStringList", + "locationName":"PublicIp" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "AllocationIds":{ + "shape":"AllocationIdList", + "locationName":"AllocationId" + } + } + }, + "DescribeAddressesResult":{ + "type":"structure", + "members":{ + "Addresses":{ + "shape":"AddressList", + "locationName":"addressesSet" + } + } + }, + "DescribeAvailabilityZonesRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ZoneNames":{ + "shape":"ZoneNameStringList", + "locationName":"ZoneName" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeAvailabilityZonesResult":{ + "type":"structure", + "members":{ + "AvailabilityZones":{ + "shape":"AvailabilityZoneList", + "locationName":"availabilityZoneInfo" + } + } + }, + "DescribeBundleTasksRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "BundleIds":{ + "shape":"BundleIdStringList", + "locationName":"BundleId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeBundleTasksResult":{ + "type":"structure", + "members":{ + "BundleTasks":{ + "shape":"BundleTaskList", + "locationName":"bundleInstanceTasksSet" + } + } + }, + "DescribeClassicLinkInstancesRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceIds":{ + "shape":"InstanceIdStringList", + "locationName":"InstanceId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"Integer", + "locationName":"maxResults" + } + } + }, + "DescribeClassicLinkInstancesResult":{ + "type":"structure", + "members":{ + "Instances":{ + "shape":"ClassicLinkInstanceList", + "locationName":"instancesSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeConversionTaskList":{ + "type":"list", + "member":{ + "shape":"ConversionTask", + "locationName":"item" + } + }, + "DescribeConversionTasksRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"filter" + }, + "ConversionTaskIds":{ + "shape":"ConversionIdStringList", + "locationName":"conversionTaskId" + } + } + }, + "DescribeConversionTasksResult":{ + "type":"structure", + "members":{ + "ConversionTasks":{ + "shape":"DescribeConversionTaskList", + "locationName":"conversionTasks" + } + } + }, + "DescribeCustomerGatewaysRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "CustomerGatewayIds":{ + "shape":"CustomerGatewayIdStringList", + "locationName":"CustomerGatewayId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeCustomerGatewaysResult":{ + "type":"structure", + "members":{ + "CustomerGateways":{ + "shape":"CustomerGatewayList", + "locationName":"customerGatewaySet" + } + } + }, + "DescribeDhcpOptionsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "DhcpOptionsIds":{ + "shape":"DhcpOptionsIdStringList", + "locationName":"DhcpOptionsId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeDhcpOptionsResult":{ + "type":"structure", + "members":{ + "DhcpOptions":{ + "shape":"DhcpOptionsList", + "locationName":"dhcpOptionsSet" + } + } + }, + "DescribeExportTasksRequest":{ + "type":"structure", + "members":{ + "ExportTaskIds":{ + "shape":"ExportTaskIdStringList", + "locationName":"exportTaskId" + } + } + }, + "DescribeExportTasksResult":{ + "type":"structure", + "members":{ + "ExportTasks":{ + "shape":"ExportTaskList", + "locationName":"exportTaskSet" + } + } + }, + "DescribeImageAttributeRequest":{ + "type":"structure", + "required":[ + "ImageId", + "Attribute" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ImageId":{"shape":"String"}, + "Attribute":{"shape":"ImageAttributeName"} + } + }, + "DescribeImagesRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ImageIds":{ + "shape":"ImageIdStringList", + "locationName":"ImageId" + }, + "Owners":{ + "shape":"OwnerStringList", + "locationName":"Owner" + }, + "ExecutableUsers":{ + "shape":"ExecutableByStringList", + "locationName":"ExecutableBy" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeImagesResult":{ + "type":"structure", + "members":{ + "Images":{ + "shape":"ImageList", + "locationName":"imagesSet" + } + } + }, + "DescribeImportImageTasksRequest":{ + "type":"structure", + "members":{ + "DryRun":{"shape":"Boolean"}, + "ImportTaskIds":{ + "shape":"ImportTaskIdList", + "locationName":"ImportTaskId" + }, + "NextToken":{"shape":"String"}, + "MaxResults":{"shape":"Integer"}, + "Filters":{"shape":"FilterList"} + } + }, + "DescribeImportImageTasksResult":{ + "type":"structure", + "members":{ + "ImportImageTasks":{ + "shape":"ImportImageTaskList", + "locationName":"importImageTaskSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeImportSnapshotTasksRequest":{ + "type":"structure", + "members":{ + "DryRun":{"shape":"Boolean"}, + "ImportTaskIds":{ + "shape":"ImportTaskIdList", + "locationName":"ImportTaskId" + }, + "NextToken":{"shape":"String"}, + "MaxResults":{"shape":"Integer"}, + "Filters":{"shape":"FilterList"} + } + }, + "DescribeImportSnapshotTasksResult":{ + "type":"structure", + "members":{ + "ImportSnapshotTasks":{ + "shape":"ImportSnapshotTaskList", + "locationName":"importSnapshotTaskSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeInstanceAttributeRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "Attribute" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "Attribute":{ + "shape":"InstanceAttributeName", + "locationName":"attribute" + } + } + }, + "DescribeInstanceStatusRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceIds":{ + "shape":"InstanceIdStringList", + "locationName":"InstanceId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "NextToken":{"shape":"String"}, + "MaxResults":{"shape":"Integer"}, + "IncludeAllInstances":{ + "shape":"Boolean", + "locationName":"includeAllInstances" + } + } + }, + "DescribeInstanceStatusResult":{ + "type":"structure", + "members":{ + "InstanceStatuses":{ + "shape":"InstanceStatusList", + "locationName":"instanceStatusSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeInstancesRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceIds":{ + "shape":"InstanceIdStringList", + "locationName":"InstanceId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"Integer", + "locationName":"maxResults" + } + } + }, + "DescribeInstancesResult":{ + "type":"structure", + "members":{ + "Reservations":{ + "shape":"ReservationList", + "locationName":"reservationSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeInternetGatewaysRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InternetGatewayIds":{ + "shape":"ValueStringList", + "locationName":"internetGatewayId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeInternetGatewaysResult":{ + "type":"structure", + "members":{ + "InternetGateways":{ + "shape":"InternetGatewayList", + "locationName":"internetGatewaySet" + } + } + }, + "DescribeKeyPairsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "KeyNames":{ + "shape":"KeyNameStringList", + "locationName":"KeyName" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeKeyPairsResult":{ + "type":"structure", + "members":{ + "KeyPairs":{ + "shape":"KeyPairList", + "locationName":"keySet" + } + } + }, + "DescribeNetworkAclsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "NetworkAclIds":{ + "shape":"ValueStringList", + "locationName":"NetworkAclId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeNetworkAclsResult":{ + "type":"structure", + "members":{ + "NetworkAcls":{ + "shape":"NetworkAclList", + "locationName":"networkAclSet" + } + } + }, + "DescribeNetworkInterfaceAttributeRequest":{ + "type":"structure", + "required":["NetworkInterfaceId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "Attribute":{ + "shape":"NetworkInterfaceAttribute", + "locationName":"attribute" + } + } + }, + "DescribeNetworkInterfaceAttributeResult":{ + "type":"structure", + "members":{ + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "Description":{ + "shape":"AttributeValue", + "locationName":"description" + }, + "SourceDestCheck":{ + "shape":"AttributeBooleanValue", + "locationName":"sourceDestCheck" + }, + "Groups":{ + "shape":"GroupIdentifierList", + "locationName":"groupSet" + }, + "Attachment":{ + "shape":"NetworkInterfaceAttachment", + "locationName":"attachment" + } + } + }, + "DescribeNetworkInterfacesRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "NetworkInterfaceIds":{ + "shape":"NetworkInterfaceIdList", + "locationName":"NetworkInterfaceId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"filter" + } + } + }, + "DescribeNetworkInterfacesResult":{ + "type":"structure", + "members":{ + "NetworkInterfaces":{ + "shape":"NetworkInterfaceList", + "locationName":"networkInterfaceSet" + } + } + }, + "DescribePlacementGroupsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "GroupNames":{ + "shape":"PlacementGroupStringList", + "locationName":"groupName" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribePlacementGroupsResult":{ + "type":"structure", + "members":{ + "PlacementGroups":{ + "shape":"PlacementGroupList", + "locationName":"placementGroupSet" + } + } + }, + "DescribeRegionsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "RegionNames":{ + "shape":"RegionNameStringList", + "locationName":"RegionName" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeRegionsResult":{ + "type":"structure", + "members":{ + "Regions":{ + "shape":"RegionList", + "locationName":"regionInfo" + } + } + }, + "DescribeReservedInstancesListingsRequest":{ + "type":"structure", + "members":{ + "ReservedInstancesId":{ + "shape":"String", + "locationName":"reservedInstancesId" + }, + "ReservedInstancesListingId":{ + "shape":"String", + "locationName":"reservedInstancesListingId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"filters" + } + } + }, + "DescribeReservedInstancesListingsResult":{ + "type":"structure", + "members":{ + "ReservedInstancesListings":{ + "shape":"ReservedInstancesListingList", + "locationName":"reservedInstancesListingsSet" + } + } + }, + "DescribeReservedInstancesModificationsRequest":{ + "type":"structure", + "members":{ + "ReservedInstancesModificationIds":{ + "shape":"ReservedInstancesModificationIdStringList", + "locationName":"ReservedInstancesModificationId" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeReservedInstancesModificationsResult":{ + "type":"structure", + "members":{ + "ReservedInstancesModifications":{ + "shape":"ReservedInstancesModificationList", + "locationName":"reservedInstancesModificationsSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeReservedInstancesOfferingsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ReservedInstancesOfferingIds":{ + "shape":"ReservedInstancesOfferingIdStringList", + "locationName":"ReservedInstancesOfferingId" + }, + "InstanceType":{"shape":"InstanceType"}, + "AvailabilityZone":{"shape":"String"}, + "ProductDescription":{"shape":"RIProductDescription"}, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "InstanceTenancy":{ + "shape":"Tenancy", + "locationName":"instanceTenancy" + }, + "OfferingType":{ + "shape":"OfferingTypeValues", + "locationName":"offeringType" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"Integer", + "locationName":"maxResults" + }, + "IncludeMarketplace":{"shape":"Boolean"}, + "MinDuration":{"shape":"Long"}, + "MaxDuration":{"shape":"Long"}, + "MaxInstanceCount":{"shape":"Integer"} + } + }, + "DescribeReservedInstancesOfferingsResult":{ + "type":"structure", + "members":{ + "ReservedInstancesOfferings":{ + "shape":"ReservedInstancesOfferingList", + "locationName":"reservedInstancesOfferingsSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeReservedInstancesRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ReservedInstancesIds":{ + "shape":"ReservedInstancesIdStringList", + "locationName":"ReservedInstancesId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "OfferingType":{ + "shape":"OfferingTypeValues", + "locationName":"offeringType" + } + } + }, + "DescribeReservedInstancesResult":{ + "type":"structure", + "members":{ + "ReservedInstances":{ + "shape":"ReservedInstancesList", + "locationName":"reservedInstancesSet" + } + } + }, + "DescribeRouteTablesRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "RouteTableIds":{ + "shape":"ValueStringList", + "locationName":"RouteTableId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeRouteTablesResult":{ + "type":"structure", + "members":{ + "RouteTables":{ + "shape":"RouteTableList", + "locationName":"routeTableSet" + } + } + }, + "DescribeSecurityGroupsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "GroupNames":{ + "shape":"GroupNameStringList", + "locationName":"GroupName" + }, + "GroupIds":{ + "shape":"GroupIdStringList", + "locationName":"GroupId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeSecurityGroupsResult":{ + "type":"structure", + "members":{ + "SecurityGroups":{ + "shape":"SecurityGroupList", + "locationName":"securityGroupInfo" + } + } + }, + "DescribeSnapshotAttributeRequest":{ + "type":"structure", + "required":[ + "SnapshotId", + "Attribute" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SnapshotId":{"shape":"String"}, + "Attribute":{"shape":"SnapshotAttributeName"} + } + }, + "DescribeSnapshotAttributeResult":{ + "type":"structure", + "members":{ + "SnapshotId":{ + "shape":"String", + "locationName":"snapshotId" + }, + "CreateVolumePermissions":{ + "shape":"CreateVolumePermissionList", + "locationName":"createVolumePermission" + }, + "ProductCodes":{ + "shape":"ProductCodeList", + "locationName":"productCodes" + } + } + }, + "DescribeSnapshotsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SnapshotIds":{ + "shape":"SnapshotIdStringList", + "locationName":"SnapshotId" + }, + "OwnerIds":{ + "shape":"OwnerStringList", + "locationName":"Owner" + }, + "RestorableByUserIds":{ + "shape":"RestorableByStringList", + "locationName":"RestorableBy" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "NextToken":{"shape":"String"}, + "MaxResults":{"shape":"Integer"} + } + }, + "DescribeSnapshotsResult":{ + "type":"structure", + "members":{ + "Snapshots":{ + "shape":"SnapshotList", + "locationName":"snapshotSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeSpotDatafeedSubscriptionRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + } + } + }, + "DescribeSpotDatafeedSubscriptionResult":{ + "type":"structure", + "members":{ + "SpotDatafeedSubscription":{ + "shape":"SpotDatafeedSubscription", + "locationName":"spotDatafeedSubscription" + } + } + }, + "DescribeSpotInstanceRequestsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SpotInstanceRequestIds":{ + "shape":"SpotInstanceRequestIdList", + "locationName":"SpotInstanceRequestId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeSpotInstanceRequestsResult":{ + "type":"structure", + "members":{ + "SpotInstanceRequests":{ + "shape":"SpotInstanceRequestList", + "locationName":"spotInstanceRequestSet" + } + } + }, + "DescribeSpotPriceHistoryRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "StartTime":{ + "shape":"DateTime", + "locationName":"startTime" + }, + "EndTime":{ + "shape":"DateTime", + "locationName":"endTime" + }, + "InstanceTypes":{ + "shape":"InstanceTypeList", + "locationName":"InstanceType" + }, + "ProductDescriptions":{ + "shape":"ProductDescriptionList", + "locationName":"ProductDescription" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "MaxResults":{ + "shape":"Integer", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeSpotPriceHistoryResult":{ + "type":"structure", + "members":{ + "SpotPriceHistory":{ + "shape":"SpotPriceHistoryList", + "locationName":"spotPriceHistorySet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeSubnetsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SubnetIds":{ + "shape":"SubnetIdStringList", + "locationName":"SubnetId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeSubnetsResult":{ + "type":"structure", + "members":{ + "Subnets":{ + "shape":"SubnetList", + "locationName":"subnetSet" + } + } + }, + "DescribeTagsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "MaxResults":{ + "shape":"Integer", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeTagsResult":{ + "type":"structure", + "members":{ + "Tags":{ + "shape":"TagDescriptionList", + "locationName":"tagSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeVolumeAttributeRequest":{ + "type":"structure", + "required":["VolumeId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VolumeId":{"shape":"String"}, + "Attribute":{"shape":"VolumeAttributeName"} + } + }, + "DescribeVolumeAttributeResult":{ + "type":"structure", + "members":{ + "VolumeId":{ + "shape":"String", + "locationName":"volumeId" + }, + "AutoEnableIO":{ + "shape":"AttributeBooleanValue", + "locationName":"autoEnableIO" + }, + "ProductCodes":{ + "shape":"ProductCodeList", + "locationName":"productCodes" + } + } + }, + "DescribeVolumeStatusRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VolumeIds":{ + "shape":"VolumeIdStringList", + "locationName":"VolumeId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "NextToken":{"shape":"String"}, + "MaxResults":{"shape":"Integer"} + } + }, + "DescribeVolumeStatusResult":{ + "type":"structure", + "members":{ + "VolumeStatuses":{ + "shape":"VolumeStatusList", + "locationName":"volumeStatusSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeVolumesRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VolumeIds":{ + "shape":"VolumeIdStringList", + "locationName":"VolumeId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"Integer", + "locationName":"maxResults" + } + } + }, + "DescribeVolumesResult":{ + "type":"structure", + "members":{ + "Volumes":{ + "shape":"VolumeList", + "locationName":"volumeSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeVpcAttributeRequest":{ + "type":"structure", + "required":["VpcId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcId":{"shape":"String"}, + "Attribute":{"shape":"VpcAttributeName"} + } + }, + "DescribeVpcAttributeResult":{ + "type":"structure", + "members":{ + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "EnableDnsSupport":{ + "shape":"AttributeBooleanValue", + "locationName":"enableDnsSupport" + }, + "EnableDnsHostnames":{ + "shape":"AttributeBooleanValue", + "locationName":"enableDnsHostnames" + } + } + }, + "DescribeVpcClassicLinkRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcIds":{ + "shape":"VpcClassicLinkIdList", + "locationName":"VpcId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeVpcClassicLinkResult":{ + "type":"structure", + "members":{ + "Vpcs":{ + "shape":"VpcClassicLinkList", + "locationName":"vpcSet" + } + } + }, + "DescribeVpcPeeringConnectionsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcPeeringConnectionIds":{ + "shape":"ValueStringList", + "locationName":"VpcPeeringConnectionId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeVpcPeeringConnectionsResult":{ + "type":"structure", + "members":{ + "VpcPeeringConnections":{ + "shape":"VpcPeeringConnectionList", + "locationName":"vpcPeeringConnectionSet" + } + } + }, + "DescribeVpcsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcIds":{ + "shape":"VpcIdStringList", + "locationName":"VpcId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeVpcsResult":{ + "type":"structure", + "members":{ + "Vpcs":{ + "shape":"VpcList", + "locationName":"vpcSet" + } + } + }, + "DescribeVpnConnectionsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpnConnectionIds":{ + "shape":"VpnConnectionIdStringList", + "locationName":"VpnConnectionId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeVpnConnectionsResult":{ + "type":"structure", + "members":{ + "VpnConnections":{ + "shape":"VpnConnectionList", + "locationName":"vpnConnectionSet" + } + } + }, + "DescribeVpnGatewaysRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpnGatewayIds":{ + "shape":"VpnGatewayIdStringList", + "locationName":"VpnGatewayId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeVpnGatewaysResult":{ + "type":"structure", + "members":{ + "VpnGateways":{ + "shape":"VpnGatewayList", + "locationName":"vpnGatewaySet" + } + } + }, + "DetachClassicLinkVpcRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "VpcId" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + } + } + }, + "DetachClassicLinkVpcResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, + "DetachInternetGatewayRequest":{ + "type":"structure", + "required":[ + "InternetGatewayId", + "VpcId" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InternetGatewayId":{ + "shape":"String", + "locationName":"internetGatewayId" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + } + } + }, + "DetachNetworkInterfaceRequest":{ + "type":"structure", + "required":["AttachmentId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "AttachmentId":{ + "shape":"String", + "locationName":"attachmentId" + }, + "Force":{ + "shape":"Boolean", + "locationName":"force" + } + } + }, + "DetachVolumeRequest":{ + "type":"structure", + "required":["VolumeId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VolumeId":{"shape":"String"}, + "InstanceId":{"shape":"String"}, + "Device":{"shape":"String"}, + "Force":{"shape":"Boolean"} + } + }, + "DetachVpnGatewayRequest":{ + "type":"structure", + "required":[ + "VpnGatewayId", + "VpcId" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpnGatewayId":{"shape":"String"}, + "VpcId":{"shape":"String"} + } + }, + "DeviceType":{ + "type":"string", + "enum":[ + "ebs", + "instance-store" + ] + }, + "DhcpConfiguration":{ + "type":"structure", + "members":{ + "Key":{ + "shape":"String", + "locationName":"key" + }, + "Values":{ + "shape":"DhcpConfigurationValueList", + "locationName":"valueSet" + } + } + }, + "DhcpConfigurationList":{ + "type":"list", + "member":{ + "shape":"DhcpConfiguration", + "locationName":"item" + } + }, + "DhcpOptions":{ + "type":"structure", + "members":{ + "DhcpOptionsId":{ + "shape":"String", + "locationName":"dhcpOptionsId" + }, + "DhcpConfigurations":{ + "shape":"DhcpConfigurationList", + "locationName":"dhcpConfigurationSet" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + } + } + }, + "DhcpOptionsIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"DhcpOptionsId" + } + }, + "DhcpOptionsList":{ + "type":"list", + "member":{ + "shape":"DhcpOptions", + "locationName":"item" + } + }, + "DisableVgwRoutePropagationRequest":{ + "type":"structure", + "required":[ + "RouteTableId", + "GatewayId" + ], + "members":{ + "RouteTableId":{"shape":"String"}, + "GatewayId":{"shape":"String"} + } + }, + "DisableVpcClassicLinkRequest":{ + "type":"structure", + "required":["VpcId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + } + } + }, + "DisableVpcClassicLinkResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, + "DisassociateAddressRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "PublicIp":{"shape":"String"}, + "AssociationId":{"shape":"String"} + } + }, + "DisassociateRouteTableRequest":{ + "type":"structure", + "required":["AssociationId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "AssociationId":{ + "shape":"String", + "locationName":"associationId" + } + } + }, + "DiskImage":{ + "type":"structure", + "members":{ + "Image":{"shape":"DiskImageDetail"}, + "Description":{"shape":"String"}, + "Volume":{"shape":"VolumeDetail"} + } + }, + "DiskImageDescription":{ + "type":"structure", + "required":[ + "Format", + "Size", + "ImportManifestUrl" + ], + "members":{ + "Format":{ + "shape":"DiskImageFormat", + "locationName":"format" + }, + "Size":{ + "shape":"Long", + "locationName":"size" + }, + "ImportManifestUrl":{ + "shape":"String", + "locationName":"importManifestUrl" + }, + "Checksum":{ + "shape":"String", + "locationName":"checksum" + } + } + }, + "DiskImageDetail":{ + "type":"structure", + "required":[ + "Format", + "Bytes", + "ImportManifestUrl" + ], + "members":{ + "Format":{ + "shape":"DiskImageFormat", + "locationName":"format" + }, + "Bytes":{ + "shape":"Long", + "locationName":"bytes" + }, + "ImportManifestUrl":{ + "shape":"String", + "locationName":"importManifestUrl" + } + } + }, + "DiskImageFormat":{ + "type":"string", + "enum":[ + "VMDK", + "RAW", + "VHD" + ] + }, + "DiskImageList":{ + "type":"list", + "member":{"shape":"DiskImage"} + }, + "DiskImageVolumeDescription":{ + "type":"structure", + "required":["Id"], + "members":{ + "Size":{ + "shape":"Long", + "locationName":"size" + }, + "Id":{ + "shape":"String", + "locationName":"id" + } + } + }, + "DomainType":{ + "type":"string", + "enum":[ + "vpc", + "standard" + ] + }, + "Double":{"type":"double"}, + "EbsBlockDevice":{ + "type":"structure", + "members":{ + "SnapshotId":{ + "shape":"String", + "locationName":"snapshotId" + }, + "VolumeSize":{ + "shape":"Integer", + "locationName":"volumeSize" + }, + "DeleteOnTermination":{ + "shape":"Boolean", + "locationName":"deleteOnTermination" + }, + "VolumeType":{ + "shape":"VolumeType", + "locationName":"volumeType" + }, + "Iops":{ + "shape":"Integer", + "locationName":"iops" + }, + "Encrypted":{ + "shape":"Boolean", + "locationName":"encrypted" + } + } + }, + "EbsInstanceBlockDevice":{ + "type":"structure", + "members":{ + "VolumeId":{ + "shape":"String", + "locationName":"volumeId" + }, + "Status":{ + "shape":"AttachmentStatus", + "locationName":"status" + }, + "AttachTime":{ + "shape":"DateTime", + "locationName":"attachTime" + }, + "DeleteOnTermination":{ + "shape":"Boolean", + "locationName":"deleteOnTermination" + } + } + }, + "EbsInstanceBlockDeviceSpecification":{ + "type":"structure", + "members":{ + "VolumeId":{ + "shape":"String", + "locationName":"volumeId" + }, + "DeleteOnTermination":{ + "shape":"Boolean", + "locationName":"deleteOnTermination" + } + } + }, + "EnableVgwRoutePropagationRequest":{ + "type":"structure", + "required":[ + "RouteTableId", + "GatewayId" + ], + "members":{ + "RouteTableId":{"shape":"String"}, + "GatewayId":{"shape":"String"} + } + }, + "EnableVolumeIORequest":{ + "type":"structure", + "required":["VolumeId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VolumeId":{ + "shape":"String", + "locationName":"volumeId" + } + } + }, + "EnableVpcClassicLinkRequest":{ + "type":"structure", + "required":["VpcId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + } + } + }, + "EnableVpcClassicLinkResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, + "EventCode":{ + "type":"string", + "enum":[ + "instance-reboot", + "system-reboot", + "system-maintenance", + "instance-retirement", + "instance-stop" + ] + }, + "ExecutableByStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"ExecutableBy" + } + }, + "ExportEnvironment":{ + "type":"string", + "enum":[ + "citrix", + "vmware", + "microsoft" + ] + }, + "ExportTask":{ + "type":"structure", + "members":{ + "ExportTaskId":{ + "shape":"String", + "locationName":"exportTaskId" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "State":{ + "shape":"ExportTaskState", + "locationName":"state" + }, + "StatusMessage":{ + "shape":"String", + "locationName":"statusMessage" + }, + "InstanceExportDetails":{ + "shape":"InstanceExportDetails", + "locationName":"instanceExport" + }, + "ExportToS3Task":{ + "shape":"ExportToS3Task", + "locationName":"exportToS3" + } + } + }, + "ExportTaskIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"ExportTaskId" + } + }, + "ExportTaskList":{ + "type":"list", + "member":{ + "shape":"ExportTask", + "locationName":"item" + } + }, + "ExportTaskState":{ + "type":"string", + "enum":[ + "active", + "cancelling", + "cancelled", + "completed" + ] + }, + "ExportToS3Task":{ + "type":"structure", + "members":{ + "DiskImageFormat":{ + "shape":"DiskImageFormat", + "locationName":"diskImageFormat" + }, + "ContainerFormat":{ + "shape":"ContainerFormat", + "locationName":"containerFormat" + }, + "S3Bucket":{ + "shape":"String", + "locationName":"s3Bucket" + }, + "S3Key":{ + "shape":"String", + "locationName":"s3Key" + } + } + }, + "ExportToS3TaskSpecification":{ + "type":"structure", + "members":{ + "DiskImageFormat":{ + "shape":"DiskImageFormat", + "locationName":"diskImageFormat" + }, + "ContainerFormat":{ + "shape":"ContainerFormat", + "locationName":"containerFormat" + }, + "S3Bucket":{ + "shape":"String", + "locationName":"s3Bucket" + }, + "S3Prefix":{ + "shape":"String", + "locationName":"s3Prefix" + } + } + }, + "Filter":{ + "type":"structure", + "members":{ + "Name":{"shape":"String"}, + "Values":{ + "shape":"ValueStringList", + "locationName":"Value" + } + } + }, + "FilterList":{ + "type":"list", + "member":{ + "shape":"Filter", + "locationName":"Filter" + } + }, + "Float":{"type":"float"}, + "GatewayType":{ + "type":"string", + "enum":["ipsec.1"] + }, + "GetConsoleOutputRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceId":{"shape":"String"} + } + }, + "GetConsoleOutputResult":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "Timestamp":{ + "shape":"DateTime", + "locationName":"timestamp" + }, + "Output":{ + "shape":"String", + "locationName":"output" + } + } + }, + "GetPasswordDataRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceId":{"shape":"String"} + } + }, + "GetPasswordDataResult":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "Timestamp":{ + "shape":"DateTime", + "locationName":"timestamp" + }, + "PasswordData":{ + "shape":"String", + "locationName":"passwordData" + } + } + }, + "GroupIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"groupId" + } + }, + "GroupIdentifier":{ + "type":"structure", + "members":{ + "GroupName":{ + "shape":"String", + "locationName":"groupName" + }, + "GroupId":{ + "shape":"String", + "locationName":"groupId" + } + } + }, + "GroupIdentifierList":{ + "type":"list", + "member":{ + "shape":"GroupIdentifier", + "locationName":"item" + } + }, + "GroupNameStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"GroupName" + } + }, + "HypervisorType":{ + "type":"string", + "enum":[ + "ovm", + "xen" + ] + }, + "IamInstanceProfile":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"String", + "locationName":"arn" + }, + "Id":{ + "shape":"String", + "locationName":"id" + } + } + }, + "IamInstanceProfileSpecification":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"String", + "locationName":"arn" + }, + "Name":{ + "shape":"String", + "locationName":"name" + } + } + }, + "IcmpTypeCode":{ + "type":"structure", + "members":{ + "Type":{ + "shape":"Integer", + "locationName":"type" + }, + "Code":{ + "shape":"Integer", + "locationName":"code" + } + } + }, + "Image":{ + "type":"structure", + "members":{ + "ImageId":{ + "shape":"String", + "locationName":"imageId" + }, + "ImageLocation":{ + "shape":"String", + "locationName":"imageLocation" + }, + "State":{ + "shape":"ImageState", + "locationName":"imageState" + }, + "OwnerId":{ + "shape":"String", + "locationName":"imageOwnerId" + }, + "CreationDate":{ + "shape":"String", + "locationName":"creationDate" + }, + "Public":{ + "shape":"Boolean", + "locationName":"isPublic" + }, + "ProductCodes":{ + "shape":"ProductCodeList", + "locationName":"productCodes" + }, + "Architecture":{ + "shape":"ArchitectureValues", + "locationName":"architecture" + }, + "ImageType":{ + "shape":"ImageTypeValues", + "locationName":"imageType" + }, + "KernelId":{ + "shape":"String", + "locationName":"kernelId" + }, + "RamdiskId":{ + "shape":"String", + "locationName":"ramdiskId" + }, + "Platform":{ + "shape":"PlatformValues", + "locationName":"platform" + }, + "SriovNetSupport":{ + "shape":"String", + "locationName":"sriovNetSupport" + }, + "StateReason":{ + "shape":"StateReason", + "locationName":"stateReason" + }, + "ImageOwnerAlias":{ + "shape":"String", + "locationName":"imageOwnerAlias" + }, + "Name":{ + "shape":"String", + "locationName":"name" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "RootDeviceType":{ + "shape":"DeviceType", + "locationName":"rootDeviceType" + }, + "RootDeviceName":{ + "shape":"String", + "locationName":"rootDeviceName" + }, + "BlockDeviceMappings":{ + "shape":"BlockDeviceMappingList", + "locationName":"blockDeviceMapping" + }, + "VirtualizationType":{ + "shape":"VirtualizationType", + "locationName":"virtualizationType" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "Hypervisor":{ + "shape":"HypervisorType", + "locationName":"hypervisor" + } + } + }, + "ImageAttribute":{ + "type":"structure", + "members":{ + "ImageId":{ + "shape":"String", + "locationName":"imageId" + }, + "LaunchPermissions":{ + "shape":"LaunchPermissionList", + "locationName":"launchPermission" + }, + "ProductCodes":{ + "shape":"ProductCodeList", + "locationName":"productCodes" + }, + "KernelId":{ + "shape":"AttributeValue", + "locationName":"kernel" + }, + "RamdiskId":{ + "shape":"AttributeValue", + "locationName":"ramdisk" + }, + "Description":{ + "shape":"AttributeValue", + "locationName":"description" + }, + "SriovNetSupport":{ + "shape":"AttributeValue", + "locationName":"sriovNetSupport" + }, + "BlockDeviceMappings":{ + "shape":"BlockDeviceMappingList", + "locationName":"blockDeviceMapping" + } + } + }, + "ImageAttributeName":{ + "type":"string", + "enum":[ + "description", + "kernel", + "ramdisk", + "launchPermission", + "productCodes", + "blockDeviceMapping", + "sriovNetSupport" + ] + }, + "ImageDiskContainer":{ + "type":"structure", + "members":{ + "Description":{"shape":"String"}, + "Format":{"shape":"String"}, + "Url":{"shape":"String"}, + "UserBucket":{"shape":"UserBucket"}, + "DeviceName":{"shape":"String"}, + "SnapshotId":{"shape":"String"} + } + }, + "ImageDiskContainerList":{ + "type":"list", + "member":{ + "shape":"ImageDiskContainer", + "locationName":"item" + } + }, + "ImageIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"ImageId" + } + }, + "ImageList":{ + "type":"list", + "member":{ + "shape":"Image", + "locationName":"item" + } + }, + "ImageState":{ + "type":"string", + "enum":[ + "available", + "deregistered" + ] + }, + "ImageTypeValues":{ + "type":"string", + "enum":[ + "machine", + "kernel", + "ramdisk" + ] + }, + "ImportImageRequest":{ + "type":"structure", + "members":{ + "DryRun":{"shape":"Boolean"}, + "Description":{"shape":"String"}, + "DiskContainers":{ + "shape":"ImageDiskContainerList", + "locationName":"DiskContainer" + }, + "LicenseType":{"shape":"String"}, + "Hypervisor":{"shape":"String"}, + "Architecture":{"shape":"String"}, + "Platform":{"shape":"String"}, + "ClientData":{"shape":"ClientData"}, + "ClientToken":{"shape":"String"}, + "RoleName":{"shape":"String"} + } + }, + "ImportImageResult":{ + "type":"structure", + "members":{ + "ImportTaskId":{ + "shape":"String", + "locationName":"importTaskId" + }, + "Architecture":{ + "shape":"String", + "locationName":"architecture" + }, + "LicenseType":{ + "shape":"String", + "locationName":"licenseType" + }, + "Platform":{ + "shape":"String", + "locationName":"platform" + }, + "Hypervisor":{ + "shape":"String", + "locationName":"hypervisor" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "SnapshotDetails":{ + "shape":"SnapshotDetailList", + "locationName":"snapshotDetailSet" + }, + "ImageId":{ + "shape":"String", + "locationName":"imageId" + }, + "Progress":{ + "shape":"String", + "locationName":"progress" + }, + "StatusMessage":{ + "shape":"String", + "locationName":"statusMessage" + }, + "Status":{ + "shape":"String", + "locationName":"status" + } + } + }, + "ImportImageTask":{ + "type":"structure", + "members":{ + "ImportTaskId":{ + "shape":"String", + "locationName":"importTaskId" + }, + "Architecture":{ + "shape":"String", + "locationName":"architecture" + }, + "LicenseType":{ + "shape":"String", + "locationName":"licenseType" + }, + "Platform":{ + "shape":"String", + "locationName":"platform" + }, + "Hypervisor":{ + "shape":"String", + "locationName":"hypervisor" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "SnapshotDetails":{ + "shape":"SnapshotDetailList", + "locationName":"snapshotDetailSet" + }, + "ImageId":{ + "shape":"String", + "locationName":"imageId" + }, + "Progress":{ + "shape":"String", + "locationName":"progress" + }, + "StatusMessage":{ + "shape":"String", + "locationName":"statusMessage" + }, + "Status":{ + "shape":"String", + "locationName":"status" + } + } + }, + "ImportImageTaskList":{ + "type":"list", + "member":{ + "shape":"ImportImageTask", + "locationName":"item" + } + }, + "ImportInstanceLaunchSpecification":{ + "type":"structure", + "members":{ + "Architecture":{ + "shape":"ArchitectureValues", + "locationName":"architecture" + }, + "GroupNames":{ + "shape":"SecurityGroupStringList", + "locationName":"GroupName" + }, + "GroupIds":{ + "shape":"SecurityGroupIdStringList", + "locationName":"GroupId" + }, + "AdditionalInfo":{ + "shape":"String", + "locationName":"additionalInfo" + }, + "UserData":{ + "shape":"UserData", + "locationName":"userData" + }, + "InstanceType":{ + "shape":"InstanceType", + "locationName":"instanceType" + }, + "Placement":{ + "shape":"Placement", + "locationName":"placement" + }, + "Monitoring":{ + "shape":"Boolean", + "locationName":"monitoring" + }, + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "InstanceInitiatedShutdownBehavior":{ + "shape":"ShutdownBehavior", + "locationName":"instanceInitiatedShutdownBehavior" + }, + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + } + } + }, + "ImportInstanceRequest":{ + "type":"structure", + "required":["Platform"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "LaunchSpecification":{ + "shape":"ImportInstanceLaunchSpecification", + "locationName":"launchSpecification" + }, + "DiskImages":{ + "shape":"DiskImageList", + "locationName":"diskImage" + }, + "Platform":{ + "shape":"PlatformValues", + "locationName":"platform" + } + } + }, + "ImportInstanceResult":{ + "type":"structure", + "members":{ + "ConversionTask":{ + "shape":"ConversionTask", + "locationName":"conversionTask" + } + } + }, + "ImportInstanceTaskDetails":{ + "type":"structure", + "required":["Volumes"], + "members":{ + "Volumes":{ + "shape":"ImportInstanceVolumeDetailSet", + "locationName":"volumes" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "Platform":{ + "shape":"PlatformValues", + "locationName":"platform" + }, + "Description":{ + "shape":"String", + "locationName":"description" + } + } + }, + "ImportInstanceVolumeDetailItem":{ + "type":"structure", + "required":[ + "BytesConverted", + "AvailabilityZone", + "Image", + "Volume", + "Status" + ], + "members":{ + "BytesConverted":{ + "shape":"Long", + "locationName":"bytesConverted" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "Image":{ + "shape":"DiskImageDescription", + "locationName":"image" + }, + "Volume":{ + "shape":"DiskImageVolumeDescription", + "locationName":"volume" + }, + "Status":{ + "shape":"String", + "locationName":"status" + }, + "StatusMessage":{ + "shape":"String", + "locationName":"statusMessage" + }, + "Description":{ + "shape":"String", + "locationName":"description" + } + } + }, + "ImportInstanceVolumeDetailSet":{ + "type":"list", + "member":{ + "shape":"ImportInstanceVolumeDetailItem", + "locationName":"item" + } + }, + "ImportKeyPairRequest":{ + "type":"structure", + "required":[ + "KeyName", + "PublicKeyMaterial" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "KeyName":{ + "shape":"String", + "locationName":"keyName" + }, + "PublicKeyMaterial":{ + "shape":"Blob", + "locationName":"publicKeyMaterial" + } + } + }, + "ImportKeyPairResult":{ + "type":"structure", + "members":{ + "KeyName":{ + "shape":"String", + "locationName":"keyName" + }, + "KeyFingerprint":{ + "shape":"String", + "locationName":"keyFingerprint" + } + } + }, + "ImportSnapshotRequest":{ + "type":"structure", + "members":{ + "DryRun":{"shape":"Boolean"}, + "Description":{"shape":"String"}, + "DiskContainer":{"shape":"SnapshotDiskContainer"}, + "ClientData":{"shape":"ClientData"}, + "ClientToken":{"shape":"String"}, + "RoleName":{"shape":"String"} + } + }, + "ImportSnapshotResult":{ + "type":"structure", + "members":{ + "ImportTaskId":{ + "shape":"String", + "locationName":"importTaskId" + }, + "SnapshotTaskDetail":{ + "shape":"SnapshotTaskDetail", + "locationName":"snapshotTaskDetail" + }, + "Description":{ + "shape":"String", + "locationName":"description" + } + } + }, + "ImportSnapshotTask":{ + "type":"structure", + "members":{ + "ImportTaskId":{ + "shape":"String", + "locationName":"importTaskId" + }, + "SnapshotTaskDetail":{ + "shape":"SnapshotTaskDetail", + "locationName":"snapshotTaskDetail" + }, + "Description":{ + "shape":"String", + "locationName":"description" + } + } + }, + "ImportSnapshotTaskList":{ + "type":"list", + "member":{ + "shape":"ImportSnapshotTask", + "locationName":"item" + } + }, + "ImportTaskIdList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"ImportTaskId" + } + }, + "ImportVolumeRequest":{ + "type":"structure", + "required":[ + "AvailabilityZone", + "Image", + "Volume" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "Image":{ + "shape":"DiskImageDetail", + "locationName":"image" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "Volume":{ + "shape":"VolumeDetail", + "locationName":"volume" + } + } + }, + "ImportVolumeResult":{ + "type":"structure", + "members":{ + "ConversionTask":{ + "shape":"ConversionTask", + "locationName":"conversionTask" + } + } + }, + "ImportVolumeTaskDetails":{ + "type":"structure", + "required":[ + "BytesConverted", + "AvailabilityZone", + "Image", + "Volume" + ], + "members":{ + "BytesConverted":{ + "shape":"Long", + "locationName":"bytesConverted" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "Image":{ + "shape":"DiskImageDescription", + "locationName":"image" + }, + "Volume":{ + "shape":"DiskImageVolumeDescription", + "locationName":"volume" + } + } + }, + "Instance":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "ImageId":{ + "shape":"String", + "locationName":"imageId" + }, + "State":{ + "shape":"InstanceState", + "locationName":"instanceState" + }, + "PrivateDnsName":{ + "shape":"String", + "locationName":"privateDnsName" + }, + "PublicDnsName":{ + "shape":"String", + "locationName":"dnsName" + }, + "StateTransitionReason":{ + "shape":"String", + "locationName":"reason" + }, + "KeyName":{ + "shape":"String", + "locationName":"keyName" + }, + "AmiLaunchIndex":{ + "shape":"Integer", + "locationName":"amiLaunchIndex" + }, + "ProductCodes":{ + "shape":"ProductCodeList", + "locationName":"productCodes" + }, + "InstanceType":{ + "shape":"InstanceType", + "locationName":"instanceType" + }, + "LaunchTime":{ + "shape":"DateTime", + "locationName":"launchTime" + }, + "Placement":{ + "shape":"Placement", + "locationName":"placement" + }, + "KernelId":{ + "shape":"String", + "locationName":"kernelId" + }, + "RamdiskId":{ + "shape":"String", + "locationName":"ramdiskId" + }, + "Platform":{ + "shape":"PlatformValues", + "locationName":"platform" + }, + "Monitoring":{ + "shape":"Monitoring", + "locationName":"monitoring" + }, + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + }, + "PublicIpAddress":{ + "shape":"String", + "locationName":"ipAddress" + }, + "StateReason":{ + "shape":"StateReason", + "locationName":"stateReason" + }, + "Architecture":{ + "shape":"ArchitectureValues", + "locationName":"architecture" + }, + "RootDeviceType":{ + "shape":"DeviceType", + "locationName":"rootDeviceType" + }, + "RootDeviceName":{ + "shape":"String", + "locationName":"rootDeviceName" + }, + "BlockDeviceMappings":{ + "shape":"InstanceBlockDeviceMappingList", + "locationName":"blockDeviceMapping" + }, + "VirtualizationType":{ + "shape":"VirtualizationType", + "locationName":"virtualizationType" + }, + "InstanceLifecycle":{ + "shape":"InstanceLifecycleType", + "locationName":"instanceLifecycle" + }, + "SpotInstanceRequestId":{ + "shape":"String", + "locationName":"spotInstanceRequestId" + }, + "ClientToken":{ + "shape":"String", + "locationName":"clientToken" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "SecurityGroups":{ + "shape":"GroupIdentifierList", + "locationName":"groupSet" + }, + "SourceDestCheck":{ + "shape":"Boolean", + "locationName":"sourceDestCheck" + }, + "Hypervisor":{ + "shape":"HypervisorType", + "locationName":"hypervisor" + }, + "NetworkInterfaces":{ + "shape":"InstanceNetworkInterfaceList", + "locationName":"networkInterfaceSet" + }, + "IamInstanceProfile":{ + "shape":"IamInstanceProfile", + "locationName":"iamInstanceProfile" + }, + "EbsOptimized":{ + "shape":"Boolean", + "locationName":"ebsOptimized" + }, + "SriovNetSupport":{ + "shape":"String", + "locationName":"sriovNetSupport" + } + } + }, + "InstanceAttribute":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "InstanceType":{ + "shape":"AttributeValue", + "locationName":"instanceType" + }, + "KernelId":{ + "shape":"AttributeValue", + "locationName":"kernel" + }, + "RamdiskId":{ + "shape":"AttributeValue", + "locationName":"ramdisk" + }, + "UserData":{ + "shape":"AttributeValue", + "locationName":"userData" + }, + "DisableApiTermination":{ + "shape":"AttributeBooleanValue", + "locationName":"disableApiTermination" + }, + "InstanceInitiatedShutdownBehavior":{ + "shape":"AttributeValue", + "locationName":"instanceInitiatedShutdownBehavior" + }, + "RootDeviceName":{ + "shape":"AttributeValue", + "locationName":"rootDeviceName" + }, + "BlockDeviceMappings":{ + "shape":"InstanceBlockDeviceMappingList", + "locationName":"blockDeviceMapping" + }, + "ProductCodes":{ + "shape":"ProductCodeList", + "locationName":"productCodes" + }, + "EbsOptimized":{ + "shape":"AttributeBooleanValue", + "locationName":"ebsOptimized" + }, + "SriovNetSupport":{ + "shape":"AttributeValue", + "locationName":"sriovNetSupport" + }, + "SourceDestCheck":{ + "shape":"AttributeBooleanValue", + "locationName":"sourceDestCheck" + }, + "Groups":{ + "shape":"GroupIdentifierList", + "locationName":"groupSet" + } + } + }, + "InstanceAttributeName":{ + "type":"string", + "enum":[ + "instanceType", + "kernel", + "ramdisk", + "userData", + "disableApiTermination", + "instanceInitiatedShutdownBehavior", + "rootDeviceName", + "blockDeviceMapping", + "productCodes", + "sourceDestCheck", + "groupSet", + "ebsOptimized", + "sriovNetSupport" + ] + }, + "InstanceBlockDeviceMapping":{ + "type":"structure", + "members":{ + "DeviceName":{ + "shape":"String", + "locationName":"deviceName" + }, + "Ebs":{ + "shape":"EbsInstanceBlockDevice", + "locationName":"ebs" + } + } + }, + "InstanceBlockDeviceMappingList":{ + "type":"list", + "member":{ + "shape":"InstanceBlockDeviceMapping", + "locationName":"item" + } + }, + "InstanceBlockDeviceMappingSpecification":{ + "type":"structure", + "members":{ + "DeviceName":{ + "shape":"String", + "locationName":"deviceName" + }, + "Ebs":{ + "shape":"EbsInstanceBlockDeviceSpecification", + "locationName":"ebs" + }, + "VirtualName":{ + "shape":"String", + "locationName":"virtualName" + }, + "NoDevice":{ + "shape":"String", + "locationName":"noDevice" + } + } + }, + "InstanceBlockDeviceMappingSpecificationList":{ + "type":"list", + "member":{ + "shape":"InstanceBlockDeviceMappingSpecification", + "locationName":"item" + } + }, + "InstanceCount":{ + "type":"structure", + "members":{ + "State":{ + "shape":"ListingState", + "locationName":"state" + }, + "InstanceCount":{ + "shape":"Integer", + "locationName":"instanceCount" + } + } + }, + "InstanceCountList":{ + "type":"list", + "member":{ + "shape":"InstanceCount", + "locationName":"item" + } + }, + "InstanceExportDetails":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "TargetEnvironment":{ + "shape":"ExportEnvironment", + "locationName":"targetEnvironment" + } + } + }, + "InstanceIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"InstanceId" + } + }, + "InstanceLifecycleType":{ + "type":"string", + "enum":["spot"] + }, + "InstanceList":{ + "type":"list", + "member":{ + "shape":"Instance", + "locationName":"item" + } + }, + "InstanceMonitoring":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "Monitoring":{ + "shape":"Monitoring", + "locationName":"monitoring" + } + } + }, + "InstanceMonitoringList":{ + "type":"list", + "member":{ + "shape":"InstanceMonitoring", + "locationName":"item" + } + }, + "InstanceNetworkInterface":{ + "type":"structure", + "members":{ + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "OwnerId":{ + "shape":"String", + "locationName":"ownerId" + }, + "Status":{ + "shape":"NetworkInterfaceStatus", + "locationName":"status" + }, + "MacAddress":{ + "shape":"String", + "locationName":"macAddress" + }, + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + }, + "PrivateDnsName":{ + "shape":"String", + "locationName":"privateDnsName" + }, + "SourceDestCheck":{ + "shape":"Boolean", + "locationName":"sourceDestCheck" + }, + "Groups":{ + "shape":"GroupIdentifierList", + "locationName":"groupSet" + }, + "Attachment":{ + "shape":"InstanceNetworkInterfaceAttachment", + "locationName":"attachment" + }, + "Association":{ + "shape":"InstanceNetworkInterfaceAssociation", + "locationName":"association" + }, + "PrivateIpAddresses":{ + "shape":"InstancePrivateIpAddressList", + "locationName":"privateIpAddressesSet" + } + } + }, + "InstanceNetworkInterfaceAssociation":{ + "type":"structure", + "members":{ + "PublicIp":{ + "shape":"String", + "locationName":"publicIp" + }, + "PublicDnsName":{ + "shape":"String", + "locationName":"publicDnsName" + }, + "IpOwnerId":{ + "shape":"String", + "locationName":"ipOwnerId" + } + } + }, + "InstanceNetworkInterfaceAttachment":{ + "type":"structure", + "members":{ + "AttachmentId":{ + "shape":"String", + "locationName":"attachmentId" + }, + "DeviceIndex":{ + "shape":"Integer", + "locationName":"deviceIndex" + }, + "Status":{ + "shape":"AttachmentStatus", + "locationName":"status" + }, + "AttachTime":{ + "shape":"DateTime", + "locationName":"attachTime" + }, + "DeleteOnTermination":{ + "shape":"Boolean", + "locationName":"deleteOnTermination" + } + } + }, + "InstanceNetworkInterfaceList":{ + "type":"list", + "member":{ + "shape":"InstanceNetworkInterface", + "locationName":"item" + } + }, + "InstanceNetworkInterfaceSpecification":{ + "type":"structure", + "members":{ + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "DeviceIndex":{ + "shape":"Integer", + "locationName":"deviceIndex" + }, + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + }, + "Groups":{ + "shape":"SecurityGroupIdStringList", + "locationName":"SecurityGroupId" + }, + "DeleteOnTermination":{ + "shape":"Boolean", + "locationName":"deleteOnTermination" + }, + "PrivateIpAddresses":{ + "shape":"PrivateIpAddressSpecificationList", + "locationName":"privateIpAddressesSet", + "queryName":"PrivateIpAddresses" + }, + "SecondaryPrivateIpAddressCount":{ + "shape":"Integer", + "locationName":"secondaryPrivateIpAddressCount" + }, + "AssociatePublicIpAddress":{ + "shape":"Boolean", + "locationName":"associatePublicIpAddress" + } + } + }, + "InstanceNetworkInterfaceSpecificationList":{ + "type":"list", + "member":{ + "shape":"InstanceNetworkInterfaceSpecification", + "locationName":"item" + } + }, + "InstancePrivateIpAddress":{ + "type":"structure", + "members":{ + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + }, + "PrivateDnsName":{ + "shape":"String", + "locationName":"privateDnsName" + }, + "Primary":{ + "shape":"Boolean", + "locationName":"primary" + }, + "Association":{ + "shape":"InstanceNetworkInterfaceAssociation", + "locationName":"association" + } + } + }, + "InstancePrivateIpAddressList":{ + "type":"list", + "member":{ + "shape":"InstancePrivateIpAddress", + "locationName":"item" + } + }, + "InstanceState":{ + "type":"structure", + "members":{ + "Code":{ + "shape":"Integer", + "locationName":"code" + }, + "Name":{ + "shape":"InstanceStateName", + "locationName":"name" + } + } + }, + "InstanceStateChange":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "CurrentState":{ + "shape":"InstanceState", + "locationName":"currentState" + }, + "PreviousState":{ + "shape":"InstanceState", + "locationName":"previousState" + } + } + }, + "InstanceStateChangeList":{ + "type":"list", + "member":{ + "shape":"InstanceStateChange", + "locationName":"item" + } + }, + "InstanceStateName":{ + "type":"string", + "enum":[ + "pending", + "running", + "shutting-down", + "terminated", + "stopping", + "stopped" + ] + }, + "InstanceStatus":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "Events":{ + "shape":"InstanceStatusEventList", + "locationName":"eventsSet" + }, + "InstanceState":{ + "shape":"InstanceState", + "locationName":"instanceState" + }, + "SystemStatus":{ + "shape":"InstanceStatusSummary", + "locationName":"systemStatus" + }, + "InstanceStatus":{ + "shape":"InstanceStatusSummary", + "locationName":"instanceStatus" + } + } + }, + "InstanceStatusDetails":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"StatusName", + "locationName":"name" + }, + "Status":{ + "shape":"StatusType", + "locationName":"status" + }, + "ImpairedSince":{ + "shape":"DateTime", + "locationName":"impairedSince" + } + } + }, + "InstanceStatusDetailsList":{ + "type":"list", + "member":{ + "shape":"InstanceStatusDetails", + "locationName":"item" + } + }, + "InstanceStatusEvent":{ + "type":"structure", + "members":{ + "Code":{ + "shape":"EventCode", + "locationName":"code" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "NotBefore":{ + "shape":"DateTime", + "locationName":"notBefore" + }, + "NotAfter":{ + "shape":"DateTime", + "locationName":"notAfter" + } + } + }, + "InstanceStatusEventList":{ + "type":"list", + "member":{ + "shape":"InstanceStatusEvent", + "locationName":"item" + } + }, + "InstanceStatusList":{ + "type":"list", + "member":{ + "shape":"InstanceStatus", + "locationName":"item" + } + }, + "InstanceStatusSummary":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"SummaryStatus", + "locationName":"status" + }, + "Details":{ + "shape":"InstanceStatusDetailsList", + "locationName":"details" + } + } + }, + "InstanceType":{ + "type":"string", + "enum":[ + "t1.micro", + "m1.small", + "m1.medium", + "m1.large", + "m1.xlarge", + "m3.medium", + "m3.large", + "m3.xlarge", + "m3.2xlarge", + "t2.micro", + "t2.small", + "t2.medium", + "m2.xlarge", + "m2.2xlarge", + "m2.4xlarge", + "cr1.8xlarge", + "i2.xlarge", + "i2.2xlarge", + "i2.4xlarge", + "i2.8xlarge", + "hi1.4xlarge", + "hs1.8xlarge", + "c1.medium", + "c1.xlarge", + "c3.large", + "c3.xlarge", + "c3.2xlarge", + "c3.4xlarge", + "c3.8xlarge", + "c4.large", + "c4.xlarge", + "c4.2xlarge", + "c4.4xlarge", + "c4.8xlarge", + "cc1.4xlarge", + "cc2.8xlarge", + "g2.2xlarge", + "cg1.4xlarge", + "r3.large", + "r3.xlarge", + "r3.2xlarge", + "r3.4xlarge", + "r3.8xlarge", + "d2.xlarge", + "d2.2xlarge", + "d2.4xlarge", + "d2.8xlarge" + ] + }, + "InstanceTypeList":{ + "type":"list", + "member":{"shape":"InstanceType"} + }, + "Integer":{"type":"integer"}, + "InternetGateway":{ + "type":"structure", + "members":{ + "InternetGatewayId":{ + "shape":"String", + "locationName":"internetGatewayId" + }, + "Attachments":{ + "shape":"InternetGatewayAttachmentList", + "locationName":"attachmentSet" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + } + } + }, + "InternetGatewayAttachment":{ + "type":"structure", + "members":{ + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "State":{ + "shape":"AttachmentStatus", + "locationName":"state" + } + } + }, + "InternetGatewayAttachmentList":{ + "type":"list", + "member":{ + "shape":"InternetGatewayAttachment", + "locationName":"item" + } + }, + "InternetGatewayList":{ + "type":"list", + "member":{ + "shape":"InternetGateway", + "locationName":"item" + } + }, + "IpPermission":{ + "type":"structure", + "members":{ + "IpProtocol":{ + "shape":"String", + "locationName":"ipProtocol" + }, + "FromPort":{ + "shape":"Integer", + "locationName":"fromPort" + }, + "ToPort":{ + "shape":"Integer", + "locationName":"toPort" + }, + "UserIdGroupPairs":{ + "shape":"UserIdGroupPairList", + "locationName":"groups" + }, + "IpRanges":{ + "shape":"IpRangeList", + "locationName":"ipRanges" + } + } + }, + "IpPermissionList":{ + "type":"list", + "member":{ + "shape":"IpPermission", + "locationName":"item" + } + }, + "IpRange":{ + "type":"structure", + "members":{ + "CidrIp":{ + "shape":"String", + "locationName":"cidrIp" + } + } + }, + "IpRangeList":{ + "type":"list", + "member":{ + "shape":"IpRange", + "locationName":"item" + } + }, + "KeyNameStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"KeyName" + } + }, + "KeyPair":{ + "type":"structure", + "members":{ + "KeyName":{ + "shape":"String", + "locationName":"keyName" + }, + "KeyFingerprint":{ + "shape":"String", + "locationName":"keyFingerprint" + }, + "KeyMaterial":{ + "shape":"String", + "locationName":"keyMaterial" + } + } + }, + "KeyPairInfo":{ + "type":"structure", + "members":{ + "KeyName":{ + "shape":"String", + "locationName":"keyName" + }, + "KeyFingerprint":{ + "shape":"String", + "locationName":"keyFingerprint" + } + } + }, + "KeyPairList":{ + "type":"list", + "member":{ + "shape":"KeyPairInfo", + "locationName":"item" + } + }, + "LaunchPermission":{ + "type":"structure", + "members":{ + "UserId":{ + "shape":"String", + "locationName":"userId" + }, + "Group":{ + "shape":"PermissionGroup", + "locationName":"group" + } + } + }, + "LaunchPermissionList":{ + "type":"list", + "member":{ + "shape":"LaunchPermission", + "locationName":"item" + } + }, + "LaunchPermissionModifications":{ + "type":"structure", + "members":{ + "Add":{"shape":"LaunchPermissionList"}, + "Remove":{"shape":"LaunchPermissionList"} + } + }, + "LaunchSpecification":{ + "type":"structure", + "members":{ + "ImageId":{ + "shape":"String", + "locationName":"imageId" + }, + "KeyName":{ + "shape":"String", + "locationName":"keyName" + }, + "SecurityGroups":{ + "shape":"GroupIdentifierList", + "locationName":"groupSet" + }, + "UserData":{ + "shape":"String", + "locationName":"userData" + }, + "AddressingType":{ + "shape":"String", + "locationName":"addressingType" + }, + "InstanceType":{ + "shape":"InstanceType", + "locationName":"instanceType" + }, + "Placement":{ + "shape":"SpotPlacement", + "locationName":"placement" + }, + "KernelId":{ + "shape":"String", + "locationName":"kernelId" + }, + "RamdiskId":{ + "shape":"String", + "locationName":"ramdiskId" + }, + "BlockDeviceMappings":{ + "shape":"BlockDeviceMappingList", + "locationName":"blockDeviceMapping" + }, + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "NetworkInterfaces":{ + "shape":"InstanceNetworkInterfaceSpecificationList", + "locationName":"networkInterfaceSet" + }, + "IamInstanceProfile":{ + "shape":"IamInstanceProfileSpecification", + "locationName":"iamInstanceProfile" + }, + "EbsOptimized":{ + "shape":"Boolean", + "locationName":"ebsOptimized" + }, + "Monitoring":{ + "shape":"RunInstancesMonitoringEnabled", + "locationName":"monitoring" + } + } + }, + "ListingState":{ + "type":"string", + "enum":[ + "available", + "sold", + "cancelled", + "pending" + ] + }, + "ListingStatus":{ + "type":"string", + "enum":[ + "active", + "pending", + "cancelled", + "closed" + ] + }, + "Long":{"type":"long"}, + "ModifyImageAttributeRequest":{ + "type":"structure", + "required":["ImageId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ImageId":{"shape":"String"}, + "Attribute":{"shape":"String"}, + "OperationType":{"shape":"String"}, + "UserIds":{ + "shape":"UserIdStringList", + "locationName":"UserId" + }, + "UserGroups":{ + "shape":"UserGroupStringList", + "locationName":"UserGroup" + }, + "ProductCodes":{ + "shape":"ProductCodeStringList", + "locationName":"ProductCode" + }, + "Value":{"shape":"String"}, + "LaunchPermission":{"shape":"LaunchPermissionModifications"}, + "Description":{"shape":"AttributeValue"} + } + }, + "ModifyInstanceAttributeRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "Attribute":{ + "shape":"InstanceAttributeName", + "locationName":"attribute" + }, + "Value":{ + "shape":"String", + "locationName":"value" + }, + "BlockDeviceMappings":{ + "shape":"InstanceBlockDeviceMappingSpecificationList", + "locationName":"blockDeviceMapping" + }, + "SourceDestCheck":{"shape":"AttributeBooleanValue"}, + "DisableApiTermination":{ + "shape":"AttributeBooleanValue", + "locationName":"disableApiTermination" + }, + "InstanceType":{ + "shape":"AttributeValue", + "locationName":"instanceType" + }, + "Kernel":{ + "shape":"AttributeValue", + "locationName":"kernel" + }, + "Ramdisk":{ + "shape":"AttributeValue", + "locationName":"ramdisk" + }, + "UserData":{ + "shape":"BlobAttributeValue", + "locationName":"userData" + }, + "InstanceInitiatedShutdownBehavior":{ + "shape":"AttributeValue", + "locationName":"instanceInitiatedShutdownBehavior" + }, + "Groups":{ + "shape":"GroupIdStringList", + "locationName":"GroupId" + }, + "EbsOptimized":{ + "shape":"AttributeBooleanValue", + "locationName":"ebsOptimized" + }, + "SriovNetSupport":{ + "shape":"AttributeValue", + "locationName":"sriovNetSupport" + } + } + }, + "ModifyNetworkInterfaceAttributeRequest":{ + "type":"structure", + "required":["NetworkInterfaceId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "Description":{ + "shape":"AttributeValue", + "locationName":"description" + }, + "SourceDestCheck":{ + "shape":"AttributeBooleanValue", + "locationName":"sourceDestCheck" + }, + "Groups":{ + "shape":"SecurityGroupIdStringList", + "locationName":"SecurityGroupId" + }, + "Attachment":{ + "shape":"NetworkInterfaceAttachmentChanges", + "locationName":"attachment" + } + } + }, + "ModifyReservedInstancesRequest":{ + "type":"structure", + "required":[ + "ReservedInstancesIds", + "TargetConfigurations" + ], + "members":{ + "ClientToken":{ + "shape":"String", + "locationName":"clientToken" + }, + "ReservedInstancesIds":{ + "shape":"ReservedInstancesIdStringList", + "locationName":"ReservedInstancesId" + }, + "TargetConfigurations":{ + "shape":"ReservedInstancesConfigurationList", + "locationName":"ReservedInstancesConfigurationSetItemType" + } + } + }, + "ModifyReservedInstancesResult":{ + "type":"structure", + "members":{ + "ReservedInstancesModificationId":{ + "shape":"String", + "locationName":"reservedInstancesModificationId" + } + } + }, + "ModifySnapshotAttributeRequest":{ + "type":"structure", + "required":["SnapshotId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SnapshotId":{"shape":"String"}, + "Attribute":{"shape":"SnapshotAttributeName"}, + "OperationType":{"shape":"String"}, + "UserIds":{ + "shape":"UserIdStringList", + "locationName":"UserId" + }, + "GroupNames":{ + "shape":"GroupNameStringList", + "locationName":"UserGroup" + }, + "CreateVolumePermission":{"shape":"CreateVolumePermissionModifications"} + } + }, + "ModifySubnetAttributeRequest":{ + "type":"structure", + "required":["SubnetId"], + "members":{ + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "MapPublicIpOnLaunch":{"shape":"AttributeBooleanValue"} + } + }, + "ModifyVolumeAttributeRequest":{ + "type":"structure", + "required":["VolumeId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VolumeId":{"shape":"String"}, + "AutoEnableIO":{"shape":"AttributeBooleanValue"} + } + }, + "ModifyVpcAttributeRequest":{ + "type":"structure", + "required":["VpcId"], + "members":{ + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "EnableDnsSupport":{"shape":"AttributeBooleanValue"}, + "EnableDnsHostnames":{"shape":"AttributeBooleanValue"} + } + }, + "MonitorInstancesRequest":{ + "type":"structure", + "required":["InstanceIds"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceIds":{ + "shape":"InstanceIdStringList", + "locationName":"InstanceId" + } + } + }, + "MonitorInstancesResult":{ + "type":"structure", + "members":{ + "InstanceMonitorings":{ + "shape":"InstanceMonitoringList", + "locationName":"instancesSet" + } + } + }, + "Monitoring":{ + "type":"structure", + "members":{ + "State":{ + "shape":"MonitoringState", + "locationName":"state" + } + } + }, + "MonitoringState":{ + "type":"string", + "enum":[ + "disabled", + "disabling", + "enabled", + "pending" + ] + }, + "NetworkAcl":{ + "type":"structure", + "members":{ + "NetworkAclId":{ + "shape":"String", + "locationName":"networkAclId" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "IsDefault":{ + "shape":"Boolean", + "locationName":"default" + }, + "Entries":{ + "shape":"NetworkAclEntryList", + "locationName":"entrySet" + }, + "Associations":{ + "shape":"NetworkAclAssociationList", + "locationName":"associationSet" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + } + } + }, + "NetworkAclAssociation":{ + "type":"structure", + "members":{ + "NetworkAclAssociationId":{ + "shape":"String", + "locationName":"networkAclAssociationId" + }, + "NetworkAclId":{ + "shape":"String", + "locationName":"networkAclId" + }, + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + } + } + }, + "NetworkAclAssociationList":{ + "type":"list", + "member":{ + "shape":"NetworkAclAssociation", + "locationName":"item" + } + }, + "NetworkAclEntry":{ + "type":"structure", + "members":{ + "RuleNumber":{ + "shape":"Integer", + "locationName":"ruleNumber" + }, + "Protocol":{ + "shape":"String", + "locationName":"protocol" + }, + "RuleAction":{ + "shape":"RuleAction", + "locationName":"ruleAction" + }, + "Egress":{ + "shape":"Boolean", + "locationName":"egress" + }, + "CidrBlock":{ + "shape":"String", + "locationName":"cidrBlock" + }, + "IcmpTypeCode":{ + "shape":"IcmpTypeCode", + "locationName":"icmpTypeCode" + }, + "PortRange":{ + "shape":"PortRange", + "locationName":"portRange" + } + } + }, + "NetworkAclEntryList":{ + "type":"list", + "member":{ + "shape":"NetworkAclEntry", + "locationName":"item" + } + }, + "NetworkAclList":{ + "type":"list", + "member":{ + "shape":"NetworkAcl", + "locationName":"item" + } + }, + "NetworkInterface":{ + "type":"structure", + "members":{ + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "OwnerId":{ + "shape":"String", + "locationName":"ownerId" + }, + "RequesterId":{ + "shape":"String", + "locationName":"requesterId" + }, + "RequesterManaged":{ + "shape":"Boolean", + "locationName":"requesterManaged" + }, + "Status":{ + "shape":"NetworkInterfaceStatus", + "locationName":"status" + }, + "MacAddress":{ + "shape":"String", + "locationName":"macAddress" + }, + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + }, + "PrivateDnsName":{ + "shape":"String", + "locationName":"privateDnsName" + }, + "SourceDestCheck":{ + "shape":"Boolean", + "locationName":"sourceDestCheck" + }, + "Groups":{ + "shape":"GroupIdentifierList", + "locationName":"groupSet" + }, + "Attachment":{ + "shape":"NetworkInterfaceAttachment", + "locationName":"attachment" + }, + "Association":{ + "shape":"NetworkInterfaceAssociation", + "locationName":"association" + }, + "TagSet":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "PrivateIpAddresses":{ + "shape":"NetworkInterfacePrivateIpAddressList", + "locationName":"privateIpAddressesSet" + } + } + }, + "NetworkInterfaceAssociation":{ + "type":"structure", + "members":{ + "PublicIp":{ + "shape":"String", + "locationName":"publicIp" + }, + "PublicDnsName":{ + "shape":"String", + "locationName":"publicDnsName" + }, + "IpOwnerId":{ + "shape":"String", + "locationName":"ipOwnerId" + }, + "AllocationId":{ + "shape":"String", + "locationName":"allocationId" + }, + "AssociationId":{ + "shape":"String", + "locationName":"associationId" + } + } + }, + "NetworkInterfaceAttachment":{ + "type":"structure", + "members":{ + "AttachmentId":{ + "shape":"String", + "locationName":"attachmentId" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "InstanceOwnerId":{ + "shape":"String", + "locationName":"instanceOwnerId" + }, + "DeviceIndex":{ + "shape":"Integer", + "locationName":"deviceIndex" + }, + "Status":{ + "shape":"AttachmentStatus", + "locationName":"status" + }, + "AttachTime":{ + "shape":"DateTime", + "locationName":"attachTime" + }, + "DeleteOnTermination":{ + "shape":"Boolean", + "locationName":"deleteOnTermination" + } + } + }, + "NetworkInterfaceAttachmentChanges":{ + "type":"structure", + "members":{ + "AttachmentId":{ + "shape":"String", + "locationName":"attachmentId" + }, + "DeleteOnTermination":{ + "shape":"Boolean", + "locationName":"deleteOnTermination" + } + } + }, + "NetworkInterfaceAttribute":{ + "type":"string", + "enum":[ + "description", + "groupSet", + "sourceDestCheck", + "attachment" + ] + }, + "NetworkInterfaceIdList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"item" + } + }, + "NetworkInterfaceList":{ + "type":"list", + "member":{ + "shape":"NetworkInterface", + "locationName":"item" + } + }, + "NetworkInterfacePrivateIpAddress":{ + "type":"structure", + "members":{ + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + }, + "PrivateDnsName":{ + "shape":"String", + "locationName":"privateDnsName" + }, + "Primary":{ + "shape":"Boolean", + "locationName":"primary" + }, + "Association":{ + "shape":"NetworkInterfaceAssociation", + "locationName":"association" + } + } + }, + "NetworkInterfacePrivateIpAddressList":{ + "type":"list", + "member":{ + "shape":"NetworkInterfacePrivateIpAddress", + "locationName":"item" + } + }, + "NetworkInterfaceStatus":{ + "type":"string", + "enum":[ + "available", + "attaching", + "in-use", + "detaching" + ] + }, + "OfferingTypeValues":{ + "type":"string", + "enum":[ + "Heavy Utilization", + "Medium Utilization", + "Light Utilization", + "No Upfront", + "Partial Upfront", + "All Upfront" + ] + }, + "OwnerStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"Owner" + } + }, + "PermissionGroup":{ + "type":"string", + "enum":["all"] + }, + "Placement":{ + "type":"structure", + "members":{ + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "GroupName":{ + "shape":"String", + "locationName":"groupName" + }, + "Tenancy":{ + "shape":"Tenancy", + "locationName":"tenancy" + } + } + }, + "PlacementGroup":{ + "type":"structure", + "members":{ + "GroupName":{ + "shape":"String", + "locationName":"groupName" + }, + "Strategy":{ + "shape":"PlacementStrategy", + "locationName":"strategy" + }, + "State":{ + "shape":"PlacementGroupState", + "locationName":"state" + } + } + }, + "PlacementGroupList":{ + "type":"list", + "member":{ + "shape":"PlacementGroup", + "locationName":"item" + } + }, + "PlacementGroupState":{ + "type":"string", + "enum":[ + "pending", + "available", + "deleting", + "deleted" + ] + }, + "PlacementGroupStringList":{ + "type":"list", + "member":{"shape":"String"} + }, + "PlacementStrategy":{ + "type":"string", + "enum":["cluster"] + }, + "PlatformValues":{ + "type":"string", + "enum":["Windows"] + }, + "PortRange":{ + "type":"structure", + "members":{ + "From":{ + "shape":"Integer", + "locationName":"from" + }, + "To":{ + "shape":"Integer", + "locationName":"to" + } + } + }, + "PriceSchedule":{ + "type":"structure", + "members":{ + "Term":{ + "shape":"Long", + "locationName":"term" + }, + "Price":{ + "shape":"Double", + "locationName":"price" + }, + "CurrencyCode":{ + "shape":"CurrencyCodeValues", + "locationName":"currencyCode" + }, + "Active":{ + "shape":"Boolean", + "locationName":"active" + } + } + }, + "PriceScheduleList":{ + "type":"list", + "member":{ + "shape":"PriceSchedule", + "locationName":"item" + } + }, + "PriceScheduleSpecification":{ + "type":"structure", + "members":{ + "Term":{ + "shape":"Long", + "locationName":"term" + }, + "Price":{ + "shape":"Double", + "locationName":"price" + }, + "CurrencyCode":{ + "shape":"CurrencyCodeValues", + "locationName":"currencyCode" + } + } + }, + "PriceScheduleSpecificationList":{ + "type":"list", + "member":{ + "shape":"PriceScheduleSpecification", + "locationName":"item" + } + }, + "PricingDetail":{ + "type":"structure", + "members":{ + "Price":{ + "shape":"Double", + "locationName":"price" + }, + "Count":{ + "shape":"Integer", + "locationName":"count" + } + } + }, + "PricingDetailsList":{ + "type":"list", + "member":{ + "shape":"PricingDetail", + "locationName":"item" + } + }, + "PrivateIpAddressSpecification":{ + "type":"structure", + "required":["PrivateIpAddress"], + "members":{ + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + }, + "Primary":{ + "shape":"Boolean", + "locationName":"primary" + } + } + }, + "PrivateIpAddressSpecificationList":{ + "type":"list", + "member":{ + "shape":"PrivateIpAddressSpecification", + "locationName":"item" + } + }, + "PrivateIpAddressStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"PrivateIpAddress" + } + }, + "ProductCode":{ + "type":"structure", + "members":{ + "ProductCodeId":{ + "shape":"String", + "locationName":"productCode" + }, + "ProductCodeType":{ + "shape":"ProductCodeValues", + "locationName":"type" + } + } + }, + "ProductCodeList":{ + "type":"list", + "member":{ + "shape":"ProductCode", + "locationName":"item" + } + }, + "ProductCodeStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"ProductCode" + } + }, + "ProductCodeValues":{ + "type":"string", + "enum":[ + "devpay", + "marketplace" + ] + }, + "ProductDescriptionList":{ + "type":"list", + "member":{"shape":"String"} + }, + "PropagatingVgw":{ + "type":"structure", + "members":{ + "GatewayId":{ + "shape":"String", + "locationName":"gatewayId" + } + } + }, + "PropagatingVgwList":{ + "type":"list", + "member":{ + "shape":"PropagatingVgw", + "locationName":"item" + } + }, + "PublicIpStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"PublicIp" + } + }, + "PurchaseReservedInstancesOfferingRequest":{ + "type":"structure", + "required":[ + "ReservedInstancesOfferingId", + "InstanceCount" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ReservedInstancesOfferingId":{"shape":"String"}, + "InstanceCount":{"shape":"Integer"}, + "LimitPrice":{ + "shape":"ReservedInstanceLimitPrice", + "locationName":"limitPrice" + } + } + }, + "PurchaseReservedInstancesOfferingResult":{ + "type":"structure", + "members":{ + "ReservedInstancesId":{ + "shape":"String", + "locationName":"reservedInstancesId" + } + } + }, + "RIProductDescription":{ + "type":"string", + "enum":[ + "Linux/UNIX", + "Linux/UNIX (Amazon VPC)", + "Windows", + "Windows (Amazon VPC)" + ] + }, + "ReasonCodesList":{ + "type":"list", + "member":{ + "shape":"ReportInstanceReasonCodes", + "locationName":"item" + } + }, + "RebootInstancesRequest":{ + "type":"structure", + "required":["InstanceIds"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceIds":{ + "shape":"InstanceIdStringList", + "locationName":"InstanceId" + } + } + }, + "RecurringCharge":{ + "type":"structure", + "members":{ + "Frequency":{ + "shape":"RecurringChargeFrequency", + "locationName":"frequency" + }, + "Amount":{ + "shape":"Double", + "locationName":"amount" + } + } + }, + "RecurringChargeFrequency":{ + "type":"string", + "enum":["Hourly"] + }, + "RecurringChargesList":{ + "type":"list", + "member":{ + "shape":"RecurringCharge", + "locationName":"item" + } + }, + "Region":{ + "type":"structure", + "members":{ + "RegionName":{ + "shape":"String", + "locationName":"regionName" + }, + "Endpoint":{ + "shape":"String", + "locationName":"regionEndpoint" + } + } + }, + "RegionList":{ + "type":"list", + "member":{ + "shape":"Region", + "locationName":"item" + } + }, + "RegionNameStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"RegionName" + } + }, + "RegisterImageRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ImageLocation":{"shape":"String"}, + "Name":{ + "shape":"String", + "locationName":"name" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "Architecture":{ + "shape":"ArchitectureValues", + "locationName":"architecture" + }, + "KernelId":{ + "shape":"String", + "locationName":"kernelId" + }, + "RamdiskId":{ + "shape":"String", + "locationName":"ramdiskId" + }, + "RootDeviceName":{ + "shape":"String", + "locationName":"rootDeviceName" + }, + "BlockDeviceMappings":{ + "shape":"BlockDeviceMappingRequestList", + "locationName":"BlockDeviceMapping" + }, + "VirtualizationType":{ + "shape":"String", + "locationName":"virtualizationType" + }, + "SriovNetSupport":{ + "shape":"String", + "locationName":"sriovNetSupport" + } + } + }, + "RegisterImageResult":{ + "type":"structure", + "members":{ + "ImageId":{ + "shape":"String", + "locationName":"imageId" + } + } + }, + "RejectVpcPeeringConnectionRequest":{ + "type":"structure", + "required":["VpcPeeringConnectionId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcPeeringConnectionId":{ + "shape":"String", + "locationName":"vpcPeeringConnectionId" + } + } + }, + "RejectVpcPeeringConnectionResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, + "ReleaseAddressRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "PublicIp":{"shape":"String"}, + "AllocationId":{"shape":"String"} + } + }, + "ReplaceNetworkAclAssociationRequest":{ + "type":"structure", + "required":[ + "AssociationId", + "NetworkAclId" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "AssociationId":{ + "shape":"String", + "locationName":"associationId" + }, + "NetworkAclId":{ + "shape":"String", + "locationName":"networkAclId" + } + } + }, + "ReplaceNetworkAclAssociationResult":{ + "type":"structure", + "members":{ + "NewAssociationId":{ + "shape":"String", + "locationName":"newAssociationId" + } + } + }, + "ReplaceNetworkAclEntryRequest":{ + "type":"structure", + "required":[ + "NetworkAclId", + "RuleNumber", + "Protocol", + "RuleAction", + "Egress", + "CidrBlock" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "NetworkAclId":{ + "shape":"String", + "locationName":"networkAclId" + }, + "RuleNumber":{ + "shape":"Integer", + "locationName":"ruleNumber" + }, + "Protocol":{ + "shape":"String", + "locationName":"protocol" + }, + "RuleAction":{ + "shape":"RuleAction", + "locationName":"ruleAction" + }, + "Egress":{ + "shape":"Boolean", + "locationName":"egress" + }, + "CidrBlock":{ + "shape":"String", + "locationName":"cidrBlock" + }, + "IcmpTypeCode":{ + "shape":"IcmpTypeCode", + "locationName":"Icmp" + }, + "PortRange":{ + "shape":"PortRange", + "locationName":"portRange" + } + } + }, + "ReplaceRouteRequest":{ + "type":"structure", + "required":[ + "RouteTableId", + "DestinationCidrBlock" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "RouteTableId":{ + "shape":"String", + "locationName":"routeTableId" + }, + "DestinationCidrBlock":{ + "shape":"String", + "locationName":"destinationCidrBlock" + }, + "GatewayId":{ + "shape":"String", + "locationName":"gatewayId" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "VpcPeeringConnectionId":{ + "shape":"String", + "locationName":"vpcPeeringConnectionId" + } + } + }, + "ReplaceRouteTableAssociationRequest":{ + "type":"structure", + "required":[ + "AssociationId", + "RouteTableId" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "AssociationId":{ + "shape":"String", + "locationName":"associationId" + }, + "RouteTableId":{ + "shape":"String", + "locationName":"routeTableId" + } + } + }, + "ReplaceRouteTableAssociationResult":{ + "type":"structure", + "members":{ + "NewAssociationId":{ + "shape":"String", + "locationName":"newAssociationId" + } + } + }, + "ReportInstanceReasonCodes":{ + "type":"string", + "enum":[ + "instance-stuck-in-state", + "unresponsive", + "not-accepting-credentials", + "password-not-available", + "performance-network", + "performance-instance-store", + "performance-ebs-volume", + "performance-other", + "other" + ] + }, + "ReportInstanceStatusRequest":{ + "type":"structure", + "required":[ + "Instances", + "Status", + "ReasonCodes" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "Instances":{ + "shape":"InstanceIdStringList", + "locationName":"instanceId" + }, + "Status":{ + "shape":"ReportStatusType", + "locationName":"status" + }, + "StartTime":{ + "shape":"DateTime", + "locationName":"startTime" + }, + "EndTime":{ + "shape":"DateTime", + "locationName":"endTime" + }, + "ReasonCodes":{ + "shape":"ReasonCodesList", + "locationName":"reasonCode" + }, + "Description":{ + "shape":"String", + "locationName":"description" + } + } + }, + "ReportStatusType":{ + "type":"string", + "enum":[ + "ok", + "impaired" + ] + }, + "RequestSpotInstancesRequest":{ + "type":"structure", + "required":["SpotPrice"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SpotPrice":{ + "shape":"String", + "locationName":"spotPrice" + }, + "InstanceCount":{ + "shape":"Integer", + "locationName":"instanceCount" + }, + "Type":{ + "shape":"SpotInstanceType", + "locationName":"type" + }, + "ValidFrom":{ + "shape":"DateTime", + "locationName":"validFrom" + }, + "ValidUntil":{ + "shape":"DateTime", + "locationName":"validUntil" + }, + "LaunchGroup":{ + "shape":"String", + "locationName":"launchGroup" + }, + "AvailabilityZoneGroup":{ + "shape":"String", + "locationName":"availabilityZoneGroup" + }, + "LaunchSpecification":{"shape":"RequestSpotLaunchSpecification"} + } + }, + "RequestSpotInstancesResult":{ + "type":"structure", + "members":{ + "SpotInstanceRequests":{ + "shape":"SpotInstanceRequestList", + "locationName":"spotInstanceRequestSet" + } + } + }, + "Reservation":{ + "type":"structure", + "members":{ + "ReservationId":{ + "shape":"String", + "locationName":"reservationId" + }, + "OwnerId":{ + "shape":"String", + "locationName":"ownerId" + }, + "RequesterId":{ + "shape":"String", + "locationName":"requesterId" + }, + "Groups":{ + "shape":"GroupIdentifierList", + "locationName":"groupSet" + }, + "Instances":{ + "shape":"InstanceList", + "locationName":"instancesSet" + } + } + }, + "ReservationList":{ + "type":"list", + "member":{ + "shape":"Reservation", + "locationName":"item" + } + }, + "ReservedInstanceLimitPrice":{ + "type":"structure", + "members":{ + "Amount":{ + "shape":"Double", + "locationName":"amount" + }, + "CurrencyCode":{ + "shape":"CurrencyCodeValues", + "locationName":"currencyCode" + } + } + }, + "ReservedInstanceState":{ + "type":"string", + "enum":[ + "payment-pending", + "active", + "payment-failed", + "retired" + ] + }, + "ReservedInstances":{ + "type":"structure", + "members":{ + "ReservedInstancesId":{ + "shape":"String", + "locationName":"reservedInstancesId" + }, + "InstanceType":{ + "shape":"InstanceType", + "locationName":"instanceType" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "Start":{ + "shape":"DateTime", + "locationName":"start" + }, + "End":{ + "shape":"DateTime", + "locationName":"end" + }, + "Duration":{ + "shape":"Long", + "locationName":"duration" + }, + "UsagePrice":{ + "shape":"Float", + "locationName":"usagePrice" + }, + "FixedPrice":{ + "shape":"Float", + "locationName":"fixedPrice" + }, + "InstanceCount":{ + "shape":"Integer", + "locationName":"instanceCount" + }, + "ProductDescription":{ + "shape":"RIProductDescription", + "locationName":"productDescription" + }, + "State":{ + "shape":"ReservedInstanceState", + "locationName":"state" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "InstanceTenancy":{ + "shape":"Tenancy", + "locationName":"instanceTenancy" + }, + "CurrencyCode":{ + "shape":"CurrencyCodeValues", + "locationName":"currencyCode" + }, + "OfferingType":{ + "shape":"OfferingTypeValues", + "locationName":"offeringType" + }, + "RecurringCharges":{ + "shape":"RecurringChargesList", + "locationName":"recurringCharges" + } + } + }, + "ReservedInstancesConfiguration":{ + "type":"structure", + "members":{ + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "Platform":{ + "shape":"String", + "locationName":"platform" + }, + "InstanceCount":{ + "shape":"Integer", + "locationName":"instanceCount" + }, + "InstanceType":{ + "shape":"InstanceType", + "locationName":"instanceType" + } + } + }, + "ReservedInstancesConfigurationList":{ + "type":"list", + "member":{ + "shape":"ReservedInstancesConfiguration", + "locationName":"item" + } + }, + "ReservedInstancesId":{ + "type":"structure", + "members":{ + "ReservedInstancesId":{ + "shape":"String", + "locationName":"reservedInstancesId" + } + } + }, + "ReservedInstancesIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"ReservedInstancesId" + } + }, + "ReservedInstancesList":{ + "type":"list", + "member":{ + "shape":"ReservedInstances", + "locationName":"item" + } + }, + "ReservedInstancesListing":{ + "type":"structure", + "members":{ + "ReservedInstancesListingId":{ + "shape":"String", + "locationName":"reservedInstancesListingId" + }, + "ReservedInstancesId":{ + "shape":"String", + "locationName":"reservedInstancesId" + }, + "CreateDate":{ + "shape":"DateTime", + "locationName":"createDate" + }, + "UpdateDate":{ + "shape":"DateTime", + "locationName":"updateDate" + }, + "Status":{ + "shape":"ListingStatus", + "locationName":"status" + }, + "StatusMessage":{ + "shape":"String", + "locationName":"statusMessage" + }, + "InstanceCounts":{ + "shape":"InstanceCountList", + "locationName":"instanceCounts" + }, + "PriceSchedules":{ + "shape":"PriceScheduleList", + "locationName":"priceSchedules" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "ClientToken":{ + "shape":"String", + "locationName":"clientToken" + } + } + }, + "ReservedInstancesListingList":{ + "type":"list", + "member":{ + "shape":"ReservedInstancesListing", + "locationName":"item" + } + }, + "ReservedInstancesModification":{ + "type":"structure", + "members":{ + "ReservedInstancesModificationId":{ + "shape":"String", + "locationName":"reservedInstancesModificationId" + }, + "ReservedInstancesIds":{ + "shape":"ReservedIntancesIds", + "locationName":"reservedInstancesSet" + }, + "ModificationResults":{ + "shape":"ReservedInstancesModificationResultList", + "locationName":"modificationResultSet" + }, + "CreateDate":{ + "shape":"DateTime", + "locationName":"createDate" + }, + "UpdateDate":{ + "shape":"DateTime", + "locationName":"updateDate" + }, + "EffectiveDate":{ + "shape":"DateTime", + "locationName":"effectiveDate" + }, + "Status":{ + "shape":"String", + "locationName":"status" + }, + "StatusMessage":{ + "shape":"String", + "locationName":"statusMessage" + }, + "ClientToken":{ + "shape":"String", + "locationName":"clientToken" + } + } + }, + "ReservedInstancesModificationIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"ReservedInstancesModificationId" + } + }, + "ReservedInstancesModificationList":{ + "type":"list", + "member":{ + "shape":"ReservedInstancesModification", + "locationName":"item" + } + }, + "ReservedInstancesModificationResult":{ + "type":"structure", + "members":{ + "ReservedInstancesId":{ + "shape":"String", + "locationName":"reservedInstancesId" + }, + "TargetConfiguration":{ + "shape":"ReservedInstancesConfiguration", + "locationName":"targetConfiguration" + } + } + }, + "ReservedInstancesModificationResultList":{ + "type":"list", + "member":{ + "shape":"ReservedInstancesModificationResult", + "locationName":"item" + } + }, + "ReservedInstancesOffering":{ + "type":"structure", + "members":{ + "ReservedInstancesOfferingId":{ + "shape":"String", + "locationName":"reservedInstancesOfferingId" + }, + "InstanceType":{ + "shape":"InstanceType", + "locationName":"instanceType" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "Duration":{ + "shape":"Long", + "locationName":"duration" + }, + "UsagePrice":{ + "shape":"Float", + "locationName":"usagePrice" + }, + "FixedPrice":{ + "shape":"Float", + "locationName":"fixedPrice" + }, + "ProductDescription":{ + "shape":"RIProductDescription", + "locationName":"productDescription" + }, + "InstanceTenancy":{ + "shape":"Tenancy", + "locationName":"instanceTenancy" + }, + "CurrencyCode":{ + "shape":"CurrencyCodeValues", + "locationName":"currencyCode" + }, + "OfferingType":{ + "shape":"OfferingTypeValues", + "locationName":"offeringType" + }, + "RecurringCharges":{ + "shape":"RecurringChargesList", + "locationName":"recurringCharges" + }, + "Marketplace":{ + "shape":"Boolean", + "locationName":"marketplace" + }, + "PricingDetails":{ + "shape":"PricingDetailsList", + "locationName":"pricingDetailsSet" + } + } + }, + "ReservedInstancesOfferingIdStringList":{ + "type":"list", + "member":{"shape":"String"} + }, + "ReservedInstancesOfferingList":{ + "type":"list", + "member":{ + "shape":"ReservedInstancesOffering", + "locationName":"item" + } + }, + "ReservedIntancesIds":{ + "type":"list", + "member":{ + "shape":"ReservedInstancesId", + "locationName":"item" + } + }, + "ResetImageAttributeName":{ + "type":"string", + "enum":["launchPermission"] + }, + "ResetImageAttributeRequest":{ + "type":"structure", + "required":[ + "ImageId", + "Attribute" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ImageId":{"shape":"String"}, + "Attribute":{"shape":"ResetImageAttributeName"} + } + }, + "ResetInstanceAttributeRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "Attribute" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "Attribute":{ + "shape":"InstanceAttributeName", + "locationName":"attribute" + } + } + }, + "ResetNetworkInterfaceAttributeRequest":{ + "type":"structure", + "required":["NetworkInterfaceId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "SourceDestCheck":{ + "shape":"String", + "locationName":"sourceDestCheck" + } + } + }, + "ResetSnapshotAttributeRequest":{ + "type":"structure", + "required":[ + "SnapshotId", + "Attribute" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SnapshotId":{"shape":"String"}, + "Attribute":{"shape":"SnapshotAttributeName"} + } + }, + "ResourceIdList":{ + "type":"list", + "member":{"shape":"String"} + }, + "ResourceType":{ + "type":"string", + "enum":[ + "customer-gateway", + "dhcp-options", + "image", + "instance", + "internet-gateway", + "network-acl", + "network-interface", + "reserved-instances", + "route-table", + "snapshot", + "spot-instances-request", + "subnet", + "security-group", + "volume", + "vpc", + "vpn-connection", + "vpn-gateway" + ] + }, + "RestorableByStringList":{ + "type":"list", + "member":{"shape":"String"} + }, + "RevokeSecurityGroupEgressRequest":{ + "type":"structure", + "required":["GroupId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "GroupId":{ + "shape":"String", + "locationName":"groupId" + }, + "SourceSecurityGroupName":{ + "shape":"String", + "locationName":"sourceSecurityGroupName" + }, + "SourceSecurityGroupOwnerId":{ + "shape":"String", + "locationName":"sourceSecurityGroupOwnerId" + }, + "IpProtocol":{ + "shape":"String", + "locationName":"ipProtocol" + }, + "FromPort":{ + "shape":"Integer", + "locationName":"fromPort" + }, + "ToPort":{ + "shape":"Integer", + "locationName":"toPort" + }, + "CidrIp":{ + "shape":"String", + "locationName":"cidrIp" + }, + "IpPermissions":{ + "shape":"IpPermissionList", + "locationName":"ipPermissions" + } + } + }, + "RevokeSecurityGroupIngressRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "GroupName":{"shape":"String"}, + "GroupId":{"shape":"String"}, + "SourceSecurityGroupName":{"shape":"String"}, + "SourceSecurityGroupOwnerId":{"shape":"String"}, + "IpProtocol":{"shape":"String"}, + "FromPort":{"shape":"Integer"}, + "ToPort":{"shape":"Integer"}, + "CidrIp":{"shape":"String"}, + "IpPermissions":{"shape":"IpPermissionList"} + } + }, + "Route":{ + "type":"structure", + "members":{ + "DestinationCidrBlock":{ + "shape":"String", + "locationName":"destinationCidrBlock" + }, + "GatewayId":{ + "shape":"String", + "locationName":"gatewayId" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "InstanceOwnerId":{ + "shape":"String", + "locationName":"instanceOwnerId" + }, + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "VpcPeeringConnectionId":{ + "shape":"String", + "locationName":"vpcPeeringConnectionId" + }, + "State":{ + "shape":"RouteState", + "locationName":"state" + }, + "Origin":{ + "shape":"RouteOrigin", + "locationName":"origin" + } + } + }, + "RouteList":{ + "type":"list", + "member":{ + "shape":"Route", + "locationName":"item" + } + }, + "RouteOrigin":{ + "type":"string", + "enum":[ + "CreateRouteTable", + "CreateRoute", + "EnableVgwRoutePropagation" + ] + }, + "RouteState":{ + "type":"string", + "enum":[ + "active", + "blackhole" + ] + }, + "RouteTable":{ + "type":"structure", + "members":{ + "RouteTableId":{ + "shape":"String", + "locationName":"routeTableId" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "Routes":{ + "shape":"RouteList", + "locationName":"routeSet" + }, + "Associations":{ + "shape":"RouteTableAssociationList", + "locationName":"associationSet" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "PropagatingVgws":{ + "shape":"PropagatingVgwList", + "locationName":"propagatingVgwSet" + } + } + }, + "RouteTableAssociation":{ + "type":"structure", + "members":{ + "RouteTableAssociationId":{ + "shape":"String", + "locationName":"routeTableAssociationId" + }, + "RouteTableId":{ + "shape":"String", + "locationName":"routeTableId" + }, + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "Main":{ + "shape":"Boolean", + "locationName":"main" + } + } + }, + "RouteTableAssociationList":{ + "type":"list", + "member":{ + "shape":"RouteTableAssociation", + "locationName":"item" + } + }, + "RouteTableList":{ + "type":"list", + "member":{ + "shape":"RouteTable", + "locationName":"item" + } + }, + "RuleAction":{ + "type":"string", + "enum":[ + "allow", + "deny" + ] + }, + "RunInstancesMonitoringEnabled":{ + "type":"structure", + "required":["Enabled"], + "members":{ + "Enabled":{ + "shape":"Boolean", + "locationName":"enabled" + } + } + }, + "RunInstancesRequest":{ + "type":"structure", + "required":[ + "ImageId", + "MinCount", + "MaxCount" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ImageId":{"shape":"String"}, + "MinCount":{"shape":"Integer"}, + "MaxCount":{"shape":"Integer"}, + "KeyName":{"shape":"String"}, + "SecurityGroups":{ + "shape":"SecurityGroupStringList", + "locationName":"SecurityGroup" + }, + "SecurityGroupIds":{ + "shape":"SecurityGroupIdStringList", + "locationName":"SecurityGroupId" + }, + "UserData":{"shape":"String"}, + "InstanceType":{"shape":"InstanceType"}, + "Placement":{"shape":"Placement"}, + "KernelId":{"shape":"String"}, + "RamdiskId":{"shape":"String"}, + "BlockDeviceMappings":{ + "shape":"BlockDeviceMappingRequestList", + "locationName":"BlockDeviceMapping" + }, + "Monitoring":{"shape":"RunInstancesMonitoringEnabled"}, + "SubnetId":{"shape":"String"}, + "DisableApiTermination":{ + "shape":"Boolean", + "locationName":"disableApiTermination" + }, + "InstanceInitiatedShutdownBehavior":{ + "shape":"ShutdownBehavior", + "locationName":"instanceInitiatedShutdownBehavior" + }, + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + }, + "ClientToken":{ + "shape":"String", + "locationName":"clientToken" + }, + "AdditionalInfo":{ + "shape":"String", + "locationName":"additionalInfo" + }, + "NetworkInterfaces":{ + "shape":"InstanceNetworkInterfaceSpecificationList", + "locationName":"networkInterface" + }, + "IamInstanceProfile":{ + "shape":"IamInstanceProfileSpecification", + "locationName":"iamInstanceProfile" + }, + "EbsOptimized":{ + "shape":"Boolean", + "locationName":"ebsOptimized" + } + } + }, + "S3Storage":{ + "type":"structure", + "members":{ + "Bucket":{ + "shape":"String", + "locationName":"bucket" + }, + "Prefix":{ + "shape":"String", + "locationName":"prefix" + }, + "AWSAccessKeyId":{"shape":"String"}, + "UploadPolicy":{ + "shape":"Blob", + "locationName":"uploadPolicy" + }, + "UploadPolicySignature":{ + "shape":"String", + "locationName":"uploadPolicySignature" + } + } + }, + "SecurityGroup":{ + "type":"structure", + "members":{ + "OwnerId":{ + "shape":"String", + "locationName":"ownerId" + }, + "GroupName":{ + "shape":"String", + "locationName":"groupName" + }, + "GroupId":{ + "shape":"String", + "locationName":"groupId" + }, + "Description":{ + "shape":"String", + "locationName":"groupDescription" + }, + "IpPermissions":{ + "shape":"IpPermissionList", + "locationName":"ipPermissions" + }, + "IpPermissionsEgress":{ + "shape":"IpPermissionList", + "locationName":"ipPermissionsEgress" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + } + } + }, + "SecurityGroupIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"SecurityGroupId" + } + }, + "SecurityGroupList":{ + "type":"list", + "member":{ + "shape":"SecurityGroup", + "locationName":"item" + } + }, + "SecurityGroupStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"SecurityGroup" + } + }, + "ShutdownBehavior":{ + "type":"string", + "enum":[ + "stop", + "terminate" + ] + }, + "Snapshot":{ + "type":"structure", + "members":{ + "SnapshotId":{ + "shape":"String", + "locationName":"snapshotId" + }, + "VolumeId":{ + "shape":"String", + "locationName":"volumeId" + }, + "State":{ + "shape":"SnapshotState", + "locationName":"status" + }, + "StartTime":{ + "shape":"DateTime", + "locationName":"startTime" + }, + "Progress":{ + "shape":"String", + "locationName":"progress" + }, + "OwnerId":{ + "shape":"String", + "locationName":"ownerId" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "VolumeSize":{ + "shape":"Integer", + "locationName":"volumeSize" + }, + "OwnerAlias":{ + "shape":"String", + "locationName":"ownerAlias" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "Encrypted":{ + "shape":"Boolean", + "locationName":"encrypted" + }, + "KmsKeyId":{ + "shape":"String", + "locationName":"kmsKeyId" + } + } + }, + "SnapshotAttributeName":{ + "type":"string", + "enum":[ + "productCodes", + "createVolumePermission" + ] + }, + "SnapshotDetail":{ + "type":"structure", + "members":{ + "DiskImageSize":{ + "shape":"Double", + "locationName":"diskImageSize" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "Format":{ + "shape":"String", + "locationName":"format" + }, + "Url":{ + "shape":"String", + "locationName":"url" + }, + "UserBucket":{ + "shape":"UserBucketDetails", + "locationName":"userBucket" + }, + "DeviceName":{ + "shape":"String", + "locationName":"deviceName" + }, + "SnapshotId":{ + "shape":"String", + "locationName":"snapshotId" + }, + "Progress":{ + "shape":"String", + "locationName":"progress" + }, + "StatusMessage":{ + "shape":"String", + "locationName":"statusMessage" + }, + "Status":{ + "shape":"String", + "locationName":"status" + } + } + }, + "SnapshotDetailList":{ + "type":"list", + "member":{ + "shape":"SnapshotDetail", + "locationName":"item" + } + }, + "SnapshotDiskContainer":{ + "type":"structure", + "members":{ + "Description":{"shape":"String"}, + "Format":{"shape":"String"}, + "Url":{"shape":"String"}, + "UserBucket":{"shape":"UserBucket"} + } + }, + "SnapshotIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"SnapshotId" + } + }, + "SnapshotList":{ + "type":"list", + "member":{ + "shape":"Snapshot", + "locationName":"item" + } + }, + "SnapshotState":{ + "type":"string", + "enum":[ + "pending", + "completed", + "error" + ] + }, + "SnapshotTaskDetail":{ + "type":"structure", + "members":{ + "DiskImageSize":{ + "shape":"Double", + "locationName":"diskImageSize" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "Format":{ + "shape":"String", + "locationName":"format" + }, + "Url":{ + "shape":"String", + "locationName":"url" + }, + "UserBucket":{ + "shape":"UserBucketDetails", + "locationName":"userBucket" + }, + "SnapshotId":{ + "shape":"String", + "locationName":"snapshotId" + }, + "Progress":{ + "shape":"String", + "locationName":"progress" + }, + "StatusMessage":{ + "shape":"String", + "locationName":"statusMessage" + }, + "Status":{ + "shape":"String", + "locationName":"status" + } + } + }, + "SpotDatafeedSubscription":{ + "type":"structure", + "members":{ + "OwnerId":{ + "shape":"String", + "locationName":"ownerId" + }, + "Bucket":{ + "shape":"String", + "locationName":"bucket" + }, + "Prefix":{ + "shape":"String", + "locationName":"prefix" + }, + "State":{ + "shape":"DatafeedSubscriptionState", + "locationName":"state" + }, + "Fault":{ + "shape":"SpotInstanceStateFault", + "locationName":"fault" + } + } + }, + "SpotInstanceRequest":{ + "type":"structure", + "members":{ + "SpotInstanceRequestId":{ + "shape":"String", + "locationName":"spotInstanceRequestId" + }, + "SpotPrice":{ + "shape":"String", + "locationName":"spotPrice" + }, + "Type":{ + "shape":"SpotInstanceType", + "locationName":"type" + }, + "State":{ + "shape":"SpotInstanceState", + "locationName":"state" + }, + "Fault":{ + "shape":"SpotInstanceStateFault", + "locationName":"fault" + }, + "Status":{ + "shape":"SpotInstanceStatus", + "locationName":"status" + }, + "ValidFrom":{ + "shape":"DateTime", + "locationName":"validFrom" + }, + "ValidUntil":{ + "shape":"DateTime", + "locationName":"validUntil" + }, + "LaunchGroup":{ + "shape":"String", + "locationName":"launchGroup" + }, + "AvailabilityZoneGroup":{ + "shape":"String", + "locationName":"availabilityZoneGroup" + }, + "LaunchSpecification":{ + "shape":"LaunchSpecification", + "locationName":"launchSpecification" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "CreateTime":{ + "shape":"DateTime", + "locationName":"createTime" + }, + "ProductDescription":{ + "shape":"RIProductDescription", + "locationName":"productDescription" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "LaunchedAvailabilityZone":{ + "shape":"String", + "locationName":"launchedAvailabilityZone" + } + } + }, + "SpotInstanceRequestIdList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"SpotInstanceRequestId" + } + }, + "SpotInstanceRequestList":{ + "type":"list", + "member":{ + "shape":"SpotInstanceRequest", + "locationName":"item" + } + }, + "SpotInstanceState":{ + "type":"string", + "enum":[ + "open", + "active", + "closed", + "cancelled", + "failed" + ] + }, + "SpotInstanceStateFault":{ + "type":"structure", + "members":{ + "Code":{ + "shape":"String", + "locationName":"code" + }, + "Message":{ + "shape":"String", + "locationName":"message" + } + } + }, + "SpotInstanceStatus":{ + "type":"structure", + "members":{ + "Code":{ + "shape":"String", + "locationName":"code" + }, + "UpdateTime":{ + "shape":"DateTime", + "locationName":"updateTime" + }, + "Message":{ + "shape":"String", + "locationName":"message" + } + } + }, + "SpotInstanceType":{ + "type":"string", + "enum":[ + "one-time", + "persistent" + ] + }, + "SpotPlacement":{ + "type":"structure", + "members":{ + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "GroupName":{ + "shape":"String", + "locationName":"groupName" + } + } + }, + "SpotPrice":{ + "type":"structure", + "members":{ + "InstanceType":{ + "shape":"InstanceType", + "locationName":"instanceType" + }, + "ProductDescription":{ + "shape":"RIProductDescription", + "locationName":"productDescription" + }, + "SpotPrice":{ + "shape":"String", + "locationName":"spotPrice" + }, + "Timestamp":{ + "shape":"DateTime", + "locationName":"timestamp" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + } + } + }, + "SpotPriceHistoryList":{ + "type":"list", + "member":{ + "shape":"SpotPrice", + "locationName":"item" + } + }, + "StartInstancesRequest":{ + "type":"structure", + "required":["InstanceIds"], + "members":{ + "InstanceIds":{ + "shape":"InstanceIdStringList", + "locationName":"InstanceId" + }, + "AdditionalInfo":{ + "shape":"String", + "locationName":"additionalInfo" + }, + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + } + } + }, + "StartInstancesResult":{ + "type":"structure", + "members":{ + "StartingInstances":{ + "shape":"InstanceStateChangeList", + "locationName":"instancesSet" + } + } + }, + "StateReason":{ + "type":"structure", + "members":{ + "Code":{ + "shape":"String", + "locationName":"code" + }, + "Message":{ + "shape":"String", + "locationName":"message" + } + } + }, + "StatusName":{ + "type":"string", + "enum":["reachability"] + }, + "StatusType":{ + "type":"string", + "enum":[ + "passed", + "failed", + "insufficient-data" + ] + }, + "StopInstancesRequest":{ + "type":"structure", + "required":["InstanceIds"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceIds":{ + "shape":"InstanceIdStringList", + "locationName":"InstanceId" + }, + "Force":{ + "shape":"Boolean", + "locationName":"force" + } + } + }, + "StopInstancesResult":{ + "type":"structure", + "members":{ + "StoppingInstances":{ + "shape":"InstanceStateChangeList", + "locationName":"instancesSet" + } + } + }, + "Storage":{ + "type":"structure", + "members":{ + "S3":{"shape":"S3Storage"} + } + }, + "String":{"type":"string"}, + "Subnet":{ + "type":"structure", + "members":{ + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "State":{ + "shape":"SubnetState", + "locationName":"state" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "CidrBlock":{ + "shape":"String", + "locationName":"cidrBlock" + }, + "AvailableIpAddressCount":{ + "shape":"Integer", + "locationName":"availableIpAddressCount" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "DefaultForAz":{ + "shape":"Boolean", + "locationName":"defaultForAz" + }, + "MapPublicIpOnLaunch":{ + "shape":"Boolean", + "locationName":"mapPublicIpOnLaunch" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + } + } + }, + "SubnetIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"SubnetId" + } + }, + "SubnetList":{ + "type":"list", + "member":{ + "shape":"Subnet", + "locationName":"item" + } + }, + "SubnetState":{ + "type":"string", + "enum":[ + "pending", + "available" + ] + }, + "SummaryStatus":{ + "type":"string", + "enum":[ + "ok", + "impaired", + "insufficient-data", + "not-applicable" + ] + }, + "Tag":{ + "type":"structure", + "members":{ + "Key":{ + "shape":"String", + "locationName":"key" + }, + "Value":{ + "shape":"String", + "locationName":"value" + } + } + }, + "TagDescription":{ + "type":"structure", + "members":{ + "ResourceId":{ + "shape":"String", + "locationName":"resourceId" + }, + "ResourceType":{ + "shape":"ResourceType", + "locationName":"resourceType" + }, + "Key":{ + "shape":"String", + "locationName":"key" + }, + "Value":{ + "shape":"String", + "locationName":"value" + } + } + }, + "TagDescriptionList":{ + "type":"list", + "member":{ + "shape":"TagDescription", + "locationName":"item" + } + }, + "TagList":{ + "type":"list", + "member":{ + "shape":"Tag", + "locationName":"item" + } + }, + "TelemetryStatus":{ + "type":"string", + "enum":[ + "UP", + "DOWN" + ] + }, + "Tenancy":{ + "type":"string", + "enum":[ + "default", + "dedicated" + ] + }, + "TerminateInstancesRequest":{ + "type":"structure", + "required":["InstanceIds"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceIds":{ + "shape":"InstanceIdStringList", + "locationName":"InstanceId" + } + } + }, + "TerminateInstancesResult":{ + "type":"structure", + "members":{ + "TerminatingInstances":{ + "shape":"InstanceStateChangeList", + "locationName":"instancesSet" + } + } + }, + "UnassignPrivateIpAddressesRequest":{ + "type":"structure", + "required":[ + "NetworkInterfaceId", + "PrivateIpAddresses" + ], + "members":{ + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "PrivateIpAddresses":{ + "shape":"PrivateIpAddressStringList", + "locationName":"privateIpAddress" + } + } + }, + "UnmonitorInstancesRequest":{ + "type":"structure", + "required":["InstanceIds"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceIds":{ + "shape":"InstanceIdStringList", + "locationName":"InstanceId" + } + } + }, + "UnmonitorInstancesResult":{ + "type":"structure", + "members":{ + "InstanceMonitorings":{ + "shape":"InstanceMonitoringList", + "locationName":"instancesSet" + } + } + }, + "UserBucket":{ + "type":"structure", + "members":{ + "S3Bucket":{"shape":"String"}, + "S3Key":{"shape":"String"} + } + }, + "UserBucketDetails":{ + "type":"structure", + "members":{ + "S3Bucket":{ + "shape":"String", + "locationName":"s3Bucket" + }, + "S3Key":{ + "shape":"String", + "locationName":"s3Key" + } + } + }, + "UserData":{ + "type":"structure", + "members":{ + "Data":{ + "shape":"String", + "locationName":"data" + } + } + }, + "UserGroupStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"UserGroup" + } + }, + "UserIdGroupPair":{ + "type":"structure", + "members":{ + "UserId":{ + "shape":"String", + "locationName":"userId" + }, + "GroupName":{ + "shape":"String", + "locationName":"groupName" + }, + "GroupId":{ + "shape":"String", + "locationName":"groupId" + } + } + }, + "UserIdGroupPairList":{ + "type":"list", + "member":{ + "shape":"UserIdGroupPair", + "locationName":"item" + } + }, + "UserIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"UserId" + } + }, + "ValueStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"item" + } + }, + "VgwTelemetry":{ + "type":"structure", + "members":{ + "OutsideIpAddress":{ + "shape":"String", + "locationName":"outsideIpAddress" + }, + "Status":{ + "shape":"TelemetryStatus", + "locationName":"status" + }, + "LastStatusChange":{ + "shape":"DateTime", + "locationName":"lastStatusChange" + }, + "StatusMessage":{ + "shape":"String", + "locationName":"statusMessage" + }, + "AcceptedRouteCount":{ + "shape":"Integer", + "locationName":"acceptedRouteCount" + } + } + }, + "VgwTelemetryList":{ + "type":"list", + "member":{ + "shape":"VgwTelemetry", + "locationName":"item" + } + }, + "VirtualizationType":{ + "type":"string", + "enum":[ + "hvm", + "paravirtual" + ] + }, + "Volume":{ + "type":"structure", + "members":{ + "VolumeId":{ + "shape":"String", + "locationName":"volumeId" + }, + "Size":{ + "shape":"Integer", + "locationName":"size" + }, + "SnapshotId":{ + "shape":"String", + "locationName":"snapshotId" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "State":{ + "shape":"VolumeState", + "locationName":"status" + }, + "CreateTime":{ + "shape":"DateTime", + "locationName":"createTime" + }, + "Attachments":{ + "shape":"VolumeAttachmentList", + "locationName":"attachmentSet" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "VolumeType":{ + "shape":"VolumeType", + "locationName":"volumeType" + }, + "Iops":{ + "shape":"Integer", + "locationName":"iops" + }, + "Encrypted":{ + "shape":"Boolean", + "locationName":"encrypted" + }, + "KmsKeyId":{ + "shape":"String", + "locationName":"kmsKeyId" + } + } + }, + "VolumeAttachment":{ + "type":"structure", + "members":{ + "VolumeId":{ + "shape":"String", + "locationName":"volumeId" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "Device":{ + "shape":"String", + "locationName":"device" + }, + "State":{ + "shape":"VolumeAttachmentState", + "locationName":"status" + }, + "AttachTime":{ + "shape":"DateTime", + "locationName":"attachTime" + }, + "DeleteOnTermination":{ + "shape":"Boolean", + "locationName":"deleteOnTermination" + } + } + }, + "VolumeAttachmentList":{ + "type":"list", + "member":{ + "shape":"VolumeAttachment", + "locationName":"item" + } + }, + "VolumeAttachmentState":{ + "type":"string", + "enum":[ + "attaching", + "attached", + "detaching", + "detached" + ] + }, + "VolumeAttributeName":{ + "type":"string", + "enum":[ + "autoEnableIO", + "productCodes" + ] + }, + "VolumeDetail":{ + "type":"structure", + "required":["Size"], + "members":{ + "Size":{ + "shape":"Long", + "locationName":"size" + } + } + }, + "VolumeIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"VolumeId" + } + }, + "VolumeList":{ + "type":"list", + "member":{ + "shape":"Volume", + "locationName":"item" + } + }, + "VolumeState":{ + "type":"string", + "enum":[ + "creating", + "available", + "in-use", + "deleting", + "deleted", + "error" + ] + }, + "VolumeStatusAction":{ + "type":"structure", + "members":{ + "Code":{ + "shape":"String", + "locationName":"code" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "EventType":{ + "shape":"String", + "locationName":"eventType" + }, + "EventId":{ + "shape":"String", + "locationName":"eventId" + } + } + }, + "VolumeStatusActionsList":{ + "type":"list", + "member":{ + "shape":"VolumeStatusAction", + "locationName":"item" + } + }, + "VolumeStatusDetails":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"VolumeStatusName", + "locationName":"name" + }, + "Status":{ + "shape":"String", + "locationName":"status" + } + } + }, + "VolumeStatusDetailsList":{ + "type":"list", + "member":{ + "shape":"VolumeStatusDetails", + "locationName":"item" + } + }, + "VolumeStatusEvent":{ + "type":"structure", + "members":{ + "EventType":{ + "shape":"String", + "locationName":"eventType" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "NotBefore":{ + "shape":"DateTime", + "locationName":"notBefore" + }, + "NotAfter":{ + "shape":"DateTime", + "locationName":"notAfter" + }, + "EventId":{ + "shape":"String", + "locationName":"eventId" + } + } + }, + "VolumeStatusEventsList":{ + "type":"list", + "member":{ + "shape":"VolumeStatusEvent", + "locationName":"item" + } + }, + "VolumeStatusInfo":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"VolumeStatusInfoStatus", + "locationName":"status" + }, + "Details":{ + "shape":"VolumeStatusDetailsList", + "locationName":"details" + } + } + }, + "VolumeStatusInfoStatus":{ + "type":"string", + "enum":[ + "ok", + "impaired", + "insufficient-data" + ] + }, + "VolumeStatusItem":{ + "type":"structure", + "members":{ + "VolumeId":{ + "shape":"String", + "locationName":"volumeId" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "VolumeStatus":{ + "shape":"VolumeStatusInfo", + "locationName":"volumeStatus" + }, + "Events":{ + "shape":"VolumeStatusEventsList", + "locationName":"eventsSet" + }, + "Actions":{ + "shape":"VolumeStatusActionsList", + "locationName":"actionsSet" + } + } + }, + "VolumeStatusList":{ + "type":"list", + "member":{ + "shape":"VolumeStatusItem", + "locationName":"item" + } + }, + "VolumeStatusName":{ + "type":"string", + "enum":[ + "io-enabled", + "io-performance" + ] + }, + "VolumeType":{ + "type":"string", + "enum":[ + "standard", + "io1", + "gp2" + ] + }, + "Vpc":{ + "type":"structure", + "members":{ + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "State":{ + "shape":"VpcState", + "locationName":"state" + }, + "CidrBlock":{ + "shape":"String", + "locationName":"cidrBlock" + }, + "DhcpOptionsId":{ + "shape":"String", + "locationName":"dhcpOptionsId" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "InstanceTenancy":{ + "shape":"Tenancy", + "locationName":"instanceTenancy" + }, + "IsDefault":{ + "shape":"Boolean", + "locationName":"isDefault" + } + } + }, + "VpcAttachment":{ + "type":"structure", + "members":{ + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "State":{ + "shape":"AttachmentStatus", + "locationName":"state" + } + } + }, + "VpcAttachmentList":{ + "type":"list", + "member":{ + "shape":"VpcAttachment", + "locationName":"item" + } + }, + "VpcAttributeName":{ + "type":"string", + "enum":[ + "enableDnsSupport", + "enableDnsHostnames" + ] + }, + "VpcClassicLink":{ + "type":"structure", + "members":{ + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "ClassicLinkEnabled":{ + "shape":"Boolean", + "locationName":"classicLinkEnabled" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + } + } + }, + "VpcClassicLinkIdList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"VpcId" + } + }, + "VpcClassicLinkList":{ + "type":"list", + "member":{ + "shape":"VpcClassicLink", + "locationName":"item" + } + }, + "VpcIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"VpcId" + } + }, + "VpcList":{ + "type":"list", + "member":{ + "shape":"Vpc", + "locationName":"item" + } + }, + "VpcPeeringConnection":{ + "type":"structure", + "members":{ + "AccepterVpcInfo":{ + "shape":"VpcPeeringConnectionVpcInfo", + "locationName":"accepterVpcInfo" + }, + "ExpirationTime":{ + "shape":"DateTime", + "locationName":"expirationTime" + }, + "RequesterVpcInfo":{ + "shape":"VpcPeeringConnectionVpcInfo", + "locationName":"requesterVpcInfo" + }, + "Status":{ + "shape":"VpcPeeringConnectionStateReason", + "locationName":"status" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "VpcPeeringConnectionId":{ + "shape":"String", + "locationName":"vpcPeeringConnectionId" + } + } + }, + "VpcPeeringConnectionList":{ + "type":"list", + "member":{ + "shape":"VpcPeeringConnection", + "locationName":"item" + } + }, + "VpcPeeringConnectionStateReason":{ + "type":"structure", + "members":{ + "Code":{ + "shape":"String", + "locationName":"code" + }, + "Message":{ + "shape":"String", + "locationName":"message" + } + } + }, + "VpcPeeringConnectionVpcInfo":{ + "type":"structure", + "members":{ + "CidrBlock":{ + "shape":"String", + "locationName":"cidrBlock" + }, + "OwnerId":{ + "shape":"String", + "locationName":"ownerId" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + } + } + }, + "VpcState":{ + "type":"string", + "enum":[ + "pending", + "available" + ] + }, + "VpnConnection":{ + "type":"structure", + "members":{ + "VpnConnectionId":{ + "shape":"String", + "locationName":"vpnConnectionId" + }, + "State":{ + "shape":"VpnState", + "locationName":"state" + }, + "CustomerGatewayConfiguration":{ + "shape":"String", + "locationName":"customerGatewayConfiguration" + }, + "Type":{ + "shape":"GatewayType", + "locationName":"type" + }, + "CustomerGatewayId":{ + "shape":"String", + "locationName":"customerGatewayId" + }, + "VpnGatewayId":{ + "shape":"String", + "locationName":"vpnGatewayId" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "VgwTelemetry":{ + "shape":"VgwTelemetryList", + "locationName":"vgwTelemetry" + }, + "Options":{ + "shape":"VpnConnectionOptions", + "locationName":"options" + }, + "Routes":{ + "shape":"VpnStaticRouteList", + "locationName":"routes" + } + } + }, + "VpnConnectionIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"VpnConnectionId" + } + }, + "VpnConnectionList":{ + "type":"list", + "member":{ + "shape":"VpnConnection", + "locationName":"item" + } + }, + "VpnConnectionOptions":{ + "type":"structure", + "members":{ + "StaticRoutesOnly":{ + "shape":"Boolean", + "locationName":"staticRoutesOnly" + } + } + }, + "VpnConnectionOptionsSpecification":{ + "type":"structure", + "members":{ + "StaticRoutesOnly":{ + "shape":"Boolean", + "locationName":"staticRoutesOnly" + } + } + }, + "VpnGateway":{ + "type":"structure", + "members":{ + "VpnGatewayId":{ + "shape":"String", + "locationName":"vpnGatewayId" + }, + "State":{ + "shape":"VpnState", + "locationName":"state" + }, + "Type":{ + "shape":"GatewayType", + "locationName":"type" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "VpcAttachments":{ + "shape":"VpcAttachmentList", + "locationName":"attachments" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + } + } + }, + "VpnGatewayIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"VpnGatewayId" + } + }, + "VpnGatewayList":{ + "type":"list", + "member":{ + "shape":"VpnGateway", + "locationName":"item" + } + }, + "VpnState":{ + "type":"string", + "enum":[ + "pending", + "available", + "deleting", + "deleted" + ] + }, + "VpnStaticRoute":{ + "type":"structure", + "members":{ + "DestinationCidrBlock":{ + "shape":"String", + "locationName":"destinationCidrBlock" + }, + "Source":{ + "shape":"VpnStaticRouteSource", + "locationName":"source" + }, + "State":{ + "shape":"VpnState", + "locationName":"state" + } + } + }, + "VpnStaticRouteList":{ + "type":"list", + "member":{ + "shape":"VpnStaticRoute", + "locationName":"item" + } + }, + "VpnStaticRouteSource":{ + "type":"string", + "enum":["Static"] + }, + "ZoneNameStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"ZoneName" + } + }, + "NewDhcpConfigurationList":{ + "type":"list", + "member":{ + "shape":"NewDhcpConfiguration", + "locationName":"item" + } + }, + "NewDhcpConfiguration":{ + "type":"structure", + "members":{ + "Key":{ + "shape":"String", + "locationName":"key" + }, + "Values":{ + "shape":"ValueStringList", + "locationName":"Value" + } + } + }, + "DhcpConfigurationValueList":{ + "type":"list", + "member":{ + "shape":"AttributeValue", + "locationName":"item" + } + }, + "Blob":{"type":"blob"}, + "BlobAttributeValue":{ + "type":"structure", + "members":{ + "Value":{ + "shape":"Blob", + "locationName":"value" + } + } + }, + "RequestSpotLaunchSpecification":{ + "type":"structure", + "members":{ + "ImageId":{ + "shape":"String", + "locationName":"imageId" + }, + "KeyName":{ + "shape":"String", + "locationName":"keyName" + }, + "SecurityGroups":{ + "shape":"ValueStringList", + "locationName":"SecurityGroup" + }, + "UserData":{ + "shape":"String", + "locationName":"userData" + }, + "AddressingType":{ + "shape":"String", + "locationName":"addressingType" + }, + "InstanceType":{ + "shape":"InstanceType", + "locationName":"instanceType" + }, + "Placement":{ + "shape":"SpotPlacement", + "locationName":"placement" + }, + "KernelId":{ + "shape":"String", + "locationName":"kernelId" + }, + "RamdiskId":{ + "shape":"String", + "locationName":"ramdiskId" + }, + "BlockDeviceMappings":{ + "shape":"BlockDeviceMappingList", + "locationName":"blockDeviceMapping" + }, + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "NetworkInterfaces":{ + "shape":"InstanceNetworkInterfaceSpecificationList", + "locationName":"NetworkInterface" + }, + "IamInstanceProfile":{ + "shape":"IamInstanceProfileSpecification", + "locationName":"iamInstanceProfile" + }, + "EbsOptimized":{ + "shape":"Boolean", + "locationName":"ebsOptimized" + }, + "Monitoring":{ + "shape":"RunInstancesMonitoringEnabled", + "locationName":"monitoring" + }, + "SecurityGroupIds":{ + "shape":"ValueStringList", + "locationName":"SecurityGroupId" + } + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/ec2/2015-03-01/docs-2.json b/lib/aws-sdk/Aws/data/ec2/2015-03-01/docs-2.json new file mode 100644 index 0000000..db08cbe --- /dev/null +++ b/lib/aws-sdk/Aws/data/ec2/2015-03-01/docs-2.json @@ -0,0 +1,4909 @@ +{ + "version": "2.0", + "operations": { + "AcceptVpcPeeringConnection": "

Accept a VPC peering connection request. To accept a request, the VPC peering connection must be in the pending-acceptance state, and you must be the owner of the peer VPC. Use the DescribeVpcPeeringConnections request to view your outstanding VPC peering connection requests.

", + "AllocateAddress": "

Acquires an Elastic IP address.

An Elastic IP address is for use either in the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

", + "AssignPrivateIpAddresses": "

Assigns one or more secondary private IP addresses to the specified network interface. You can specify one or more specific secondary IP addresses, or you can specify the number of secondary IP addresses to be automatically assigned within the subnet's CIDR block range. The number of secondary IP addresses that you can assign to an instance varies by instance type. For information about instance types, see Instance Types in the Amazon Elastic Compute Cloud User Guide. For more information about Elastic IP addresses, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

AssignPrivateIpAddresses is available only in EC2-VPC.

", + "AssociateAddress": "

Associates an Elastic IP address with an instance or a network interface.

An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

[EC2-Classic, VPC in an EC2-VPC-only account] If the Elastic IP address is already associated with a different instance, it is disassociated from that instance and associated with the specified instance.

[VPC in an EC2-Classic account] If you don't specify a private IP address, the Elastic IP address is associated with the primary IP address. If the Elastic IP address is already associated with a different instance or a network interface, you get an error unless you allow reassociation.

This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error.

", + "AssociateDhcpOptions": "

Associates a set of DHCP options (that you've previously created) with the specified VPC, or associates no DHCP options with the VPC.

After you associate the options with the VPC, any existing instances and all new instances that you launch in that VPC use the options. You don't need to restart or relaunch the instances. They automatically pick up the changes within a few hours, depending on how frequently the instance renews its DHCP lease. You can explicitly renew the lease using the operating system on the instance.

For more information, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide.

", + "AssociateRouteTable": "

Associates a subnet with a route table. The subnet and route table must be in the same VPC. This association causes traffic originating from the subnet to be routed according to the routes in the route table. The action returns an association ID, which you need in order to disassociate the route table from the subnet later. A route table can be associated with multiple subnets.

For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", + "AttachClassicLinkVpc": "

Links an EC2-Classic instance to a ClassicLink-enabled VPC through one or more of the VPC's security groups. You cannot link an EC2-Classic instance to more than one VPC at a time. You can only link an instance that's in the running state. An instance is automatically unlinked from a VPC when it's stopped - you can link it to the VPC again when you restart it.

After you've linked an instance, you cannot change the VPC security groups that are associated with it. To change the security groups, you must first unlink the instance, and then link it again.

Linking your instance to a VPC is sometimes referred to as attaching your instance.

", + "AttachInternetGateway": "

Attaches an Internet gateway to a VPC, enabling connectivity between the Internet and the VPC. For more information about your VPC and Internet gateway, see the Amazon Virtual Private Cloud User Guide.

", + "AttachNetworkInterface": "

Attaches a network interface to an instance.

", + "AttachVolume": "

Attaches an Amazon EBS volume to a running or stopped instance and exposes it to the instance with the specified device name.

Encrypted Amazon EBS volumes may only be attached to instances that support Amazon EBS encryption. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

For a list of supported device names, see Attaching an Amazon EBS Volume to an Instance. Any device names that aren't reserved for instance store volumes can be used for Amazon EBS volumes. For more information, see Amazon EC2 Instance Store in the Amazon Elastic Compute Cloud User Guide.

If a volume has an AWS Marketplace product code:

  • The volume can be attached only to a stopped instance.
  • AWS Marketplace product codes are copied from the volume to the instance.
  • You must be subscribed to the product.
  • The instance type and operating system of the instance must support the product. For example, you can't detach a volume from a Windows instance and attach it to a Linux instance.

For an overview of the AWS Marketplace, see Introducing AWS Marketplace.

For more information about Amazon EBS volumes, see Attaching Amazon EBS Volumes in the Amazon Elastic Compute Cloud User Guide.

", + "AttachVpnGateway": "

Attaches a virtual private gateway to a VPC. For more information, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

", + "AuthorizeSecurityGroupEgress": "

Adds one or more egress rules to a security group for use with a VPC. Specifically, this action permits instances to send traffic to one or more destination CIDR IP address ranges, or to one or more destination security groups for the same VPC.

You can have up to 50 rules per security group (covering both ingress and egress rules).

A security group is for use with instances either in the EC2-Classic platform or in a specific VPC. This action doesn't apply to security groups for use in EC2-Classic. For more information, see Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide.

Each rule consists of the protocol (for example, TCP), plus either a CIDR range or a source group. For the TCP and UDP protocols, you must also specify the destination port or port range. For the ICMP protocol, you must also specify the ICMP type and code. You can use -1 for the type or code to mean all types or all codes.

Rule changes are propagated to affected instances as quickly as possible. However, a small delay might occur.

", + "AuthorizeSecurityGroupIngress": "

Adds one or more ingress rules to a security group.

EC2-Classic: You can have up to 100 rules per group.

EC2-VPC: You can have up to 50 rules per group (covering both ingress and egress rules).

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

[EC2-Classic] This action gives one or more CIDR IP address ranges permission to access a security group in your account, or gives one or more security groups (called the source groups) permission to access a security group for your account. A source group can be for your own AWS account, or another.

[EC2-VPC] This action gives one or more CIDR IP address ranges permission to access a security group in your VPC, or gives one or more other security groups (called the source groups) permission to access a security group for your VPC. The security groups must all be for the same VPC.

", + "BundleInstance": "

Bundles an Amazon instance store-backed Windows instance.

During bundling, only the root device volume (C:\\) is bundled. Data on other instance store volumes is not preserved.

This action is not applicable for Linux/Unix instances or Windows instances that are backed by Amazon EBS.

For more information, see Creating an Instance Store-Backed Windows AMI.

", + "CancelBundleTask": "

Cancels a bundling operation for an instance store-backed Windows instance.

", + "CancelConversionTask": "

Cancels an active conversion task. The task can be the import of an instance or volume. The action removes all artifacts of the conversion, including a partially uploaded volume or instance. If the conversion is complete or is in the process of transferring the final disk image, the command fails and returns an exception.

For more information, see Using the Command Line Tools to Import Your Virtual Machine to Amazon EC2 in the Amazon Elastic Compute Cloud User Guide.

", + "CancelExportTask": "

Cancels an active export task. The request removes all artifacts of the export, including any partially-created Amazon S3 objects. If the export task is complete or is in the process of transferring the final disk image, the command fails and returns an error.

", + "CancelImportTask": "

Cancels an in-process import virtual machine or import snapshot task.

", + "CancelReservedInstancesListing": "

Cancels the specified Reserved Instance listing in the Reserved Instance Marketplace.

For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.

", + "CancelSpotInstanceRequests": "

Cancels one or more Spot Instance requests. Spot Instances are instances that Amazon EC2 starts on your behalf when the bid price that you specify exceeds the current Spot Price. Amazon EC2 periodically sets the Spot Price based on available Spot Instance capacity and current Spot Instance requests. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide.

Canceling a Spot Instance request does not terminate running Spot Instances associated with the request.

", + "ConfirmProductInstance": "

Determines whether a product code is associated with an instance. This action can only be used by the owner of the product code. It is useful when a product code owner needs to verify whether another user's instance is eligible for support.

", + "CopyImage": "

Initiates the copy of an AMI from the specified source region to the current region. You specify the destination region by using its endpoint when making the request. AMIs that use encrypted Amazon EBS snapshots cannot be copied with this method.

For more information, see Copying AMIs in the Amazon Elastic Compute Cloud User Guide.

", + "CopySnapshot": "

Copies a point-in-time snapshot of an Amazon EBS volume and stores it in Amazon S3. You can copy the snapshot within the same region or from one region to another. You can use the snapshot to create Amazon EBS volumes or Amazon Machine Images (AMIs). The snapshot is copied to the regional endpoint that you send the HTTP request to.

Copies of encrypted Amazon EBS snapshots remain encrypted. Copies of unencrypted snapshots remain unencrypted.

Copying snapshots that were encrypted with non-default AWS Key Management Service (KMS) master keys is not supported at this time.

For more information, see Copying an Amazon EBS Snapshot in the Amazon Elastic Compute Cloud User Guide.

", + "CreateCustomerGateway": "

Provides information to AWS about your VPN customer gateway device. The customer gateway is the appliance at your end of the VPN connection. (The device on the AWS side of the VPN connection is the virtual private gateway.) You must provide the Internet-routable IP address of the customer gateway's external interface. The IP address must be static and can't be behind a device performing network address translation (NAT).

For devices that use Border Gateway Protocol (BGP), you can also provide the device's BGP Autonomous System Number (ASN). You can use an existing ASN assigned to your network. If you don't have an ASN already, you can use a private ASN (in the 64512 - 65534 range).

Amazon EC2 supports all 2-byte ASN numbers in the range of 1 - 65534, with the exception of 7224, which is reserved in the us-east-1 region, and 9059, which is reserved in the eu-west-1 region.

For more information about VPN customer gateways, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

You cannot create more than one customer gateway with the same VPN type, IP address, and BGP ASN parameter values. If you run an identical request more than one time, the first request creates the customer gateway, and subsequent requests return information about the existing customer gateway. The subsequent requests do not create new customer gateway resources.

", + "CreateDhcpOptions": "

Creates a set of DHCP options for your VPC. After creating the set, you must associate it with the VPC, causing all existing and new instances that you launch in the VPC to use this set of DHCP options. The following are the individual DHCP options you can specify. For more information about the options, see RFC 2132.

  • domain-name-servers - The IP addresses of up to four domain name servers, or AmazonProvidedDNS. The default DHCP option set specifies AmazonProvidedDNS. If specifying more than one domain name server, specify the IP addresses in a single parameter, separated by commas.
  • domain-name - If you're using AmazonProvidedDNS in us-east-1, specify ec2.internal. If you're using AmazonProvidedDNS in another region, specify region.compute.internal (for example, ap-northeast-1.compute.internal). Otherwise, specify a domain name (for example, MyCompany.com). Important: Some Linux operating systems accept multiple domain names separated by spaces. However, Windows and other Linux operating systems treat the value as a single domain, which results in unexpected behavior. If your DHCP options set is associated with a VPC that has instances with multiple operating systems, specify only one domain name.
  • ntp-servers - The IP addresses of up to four Network Time Protocol (NTP) servers.
  • netbios-name-servers - The IP addresses of up to four NetBIOS name servers.
  • netbios-node-type - The NetBIOS node type (1, 2, 4, or 8). We recommend that you specify 2 (broadcast and multicast are not currently supported). For more information about these node types, see RFC 2132.

Your VPC automatically starts out with a set of DHCP options that includes only a DNS server that we provide (AmazonProvidedDNS). If you create a set of options, and if your VPC has an Internet gateway, make sure to set the domain-name-servers option either to AmazonProvidedDNS or to a domain name server of your choice. For more information about DHCP options, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide.

", + "CreateImage": "

Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is either running or stopped.

If you customized your instance with instance store volumes or EBS volumes in addition to the root device volume, the new AMI contains block device mapping information for those volumes. When you launch an instance from this new AMI, the instance automatically launches with those additional volumes.

For more information, see Creating Amazon EBS-Backed Linux AMIs in the Amazon Elastic Compute Cloud User Guide.

", + "CreateInstanceExportTask": "

Exports a running or stopped instance to an Amazon S3 bucket.

For information about the supported operating systems, image formats, and known limitations for the types of instances you can export, see Exporting EC2 Instances in the Amazon Elastic Compute Cloud User Guide.

", + "CreateInternetGateway": "

Creates an Internet gateway for use with a VPC. After creating the Internet gateway, you attach it to a VPC using AttachInternetGateway.

For more information about your VPC and Internet gateway, see the Amazon Virtual Private Cloud User Guide.

", + "CreateKeyPair": "

Creates a 2048-bit RSA key pair with the specified name. Amazon EC2 stores the public key and displays the private key for you to save to a file. The private key is returned as an unencrypted PEM encoded PKCS#8 private key. If a key with the specified name already exists, Amazon EC2 returns an error.

You can have up to five thousand key pairs per region.

The key pair returned to you is available only in the region in which you create it. To create a key pair that is available in all regions, use ImportKeyPair.

For more information about key pairs, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.

", + "CreateNetworkAcl": "

Creates a network ACL in a VPC. Network ACLs provide an optional layer of security (in addition to security groups) for the instances in your VPC.

For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.

", + "CreateNetworkAclEntry": "

Creates an entry (a rule) in a network ACL with the specified rule number. Each network ACL has a set of numbered ingress rules and a separate set of numbered egress rules. When determining whether a packet should be allowed in or out of a subnet associated with the ACL, we process the entries in the ACL according to the rule numbers, in ascending order. Each network ACL has a set of ingress rules and a separate set of egress rules.

We recommend that you leave room between the rule numbers (for example, 100, 110, 120, ...), and not number them one right after the other (for example, 101, 102, 103, ...). This makes it easier to add a rule between existing ones without having to renumber the rules.

After you add an entry, you can't modify it; you must either replace it, or create an entry and delete the old one.

For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.

", + "CreateNetworkInterface": "

Creates a network interface in the specified subnet.

For more information about network interfaces, see Elastic Network Interfaces in the Amazon Elastic Compute Cloud User Guide.

", + "CreatePlacementGroup": "

Creates a placement group that you launch cluster instances into. You must give the group a name that's unique within the scope of your account.

For more information about placement groups and cluster instances, see Cluster Instances in the Amazon Elastic Compute Cloud User Guide.

", + "CreateReservedInstancesListing": "

Creates a listing for Amazon EC2 Reserved Instances to be sold in the Reserved Instance Marketplace. You can submit one Reserved Instance listing at a time. To get a list of your Reserved Instances, you can use the DescribeReservedInstances operation.

The Reserved Instance Marketplace matches sellers who want to resell Reserved Instance capacity that they no longer need with buyers who want to purchase additional capacity. Reserved Instances bought and sold through the Reserved Instance Marketplace work like any other Reserved Instances.

To sell your Reserved Instances, you must first register as a Seller in the Reserved Instance Marketplace. After completing the registration process, you can create a Reserved Instance Marketplace listing of some or all of your Reserved Instances, and specify the upfront price to receive for them. Your Reserved Instance listings then become available for purchase. To view the details of your Reserved Instance listing, you can use the DescribeReservedInstancesListings operation.

For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.

", + "CreateRoute": "

Creates a route in a route table within a VPC.

You must specify one of the following targets: Internet gateway or virtual private gateway, NAT instance, VPC peering connection, or network interface.

When determining how to route traffic, we use the route with the most specific match. For example, let's say the traffic is destined for 192.0.2.3, and the route table includes the following two routes:

  • 192.0.2.0/24 (goes to some target A)

  • 192.0.2.0/28 (goes to some target B)

Both routes apply to the traffic destined for 192.0.2.3. However, the second route in the list covers a smaller number of IP addresses and is therefore more specific, so we use that route to determine where to target the traffic.

For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", + "CreateRouteTable": "

Creates a route table for the specified VPC. After you create a route table, you can add routes and associate the table with a subnet.

For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", + "CreateSecurityGroup": "

Creates a security group.

A security group is for use with instances either in the EC2-Classic platform or in a specific VPC. For more information, see Amazon EC2 Security Groups in the Amazon Elastic Compute Cloud User Guide and Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide.

EC2-Classic: You can have up to 500 security groups.

EC2-VPC: You can create up to 100 security groups per VPC.

When you create a security group, you specify a friendly name of your choice. You can have a security group for use in EC2-Classic with the same name as a security group for use in a VPC. However, you can't have two security groups for use in EC2-Classic with the same name or two security groups for use in a VPC with the same name.

You have a default security group for use in EC2-Classic and a default security group for use in your VPC. If you don't specify a security group when you launch an instance, the instance is launched into the appropriate default security group. A default security group includes a default rule that grants instances unrestricted network access to each other.

You can add or remove rules from your security groups using AuthorizeSecurityGroupIngress, AuthorizeSecurityGroupEgress, RevokeSecurityGroupIngress, and RevokeSecurityGroupEgress.

", + "CreateSnapshot": "

Creates a snapshot of an Amazon EBS volume and stores it in Amazon S3. You can use snapshots for backups, to make copies of Amazon EBS volumes, and to save data before shutting down an instance.

When a snapshot is created, any AWS Marketplace product codes that are associated with the source volume are propagated to the snapshot.

You can take a snapshot of an attached volume that is in use. However, snapshots only capture data that has been written to your Amazon EBS volume at the time the snapshot command is issued; this may exclude any data that has been cached by any applications or the operating system. If you can pause any file systems on the volume long enough to take a snapshot, your snapshot should be complete. However, if you cannot pause all file writes to the volume, you should unmount the volume from within the instance, issue the snapshot command, and then remount the volume to ensure a consistent and complete snapshot. You may remount and use your volume while the snapshot status is pending.

To create a snapshot for Amazon EBS volumes that serve as root devices, you should stop the instance before taking the snapshot.

Snapshots that are taken from encrypted volumes are automatically encrypted. Volumes that are created from encrypted snapshots are also automatically encrypted. Your encrypted volumes and any associated snapshots always remain protected.

For more information, see Amazon Elastic Block Store and Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

", + "CreateSpotDatafeedSubscription": "

Creates a data feed for Spot Instances, enabling you to view Spot Instance usage logs. You can create one data feed per AWS account. For more information, see Spot Instance Data Feed in the Amazon Elastic Compute Cloud User Guide.

", + "CreateSubnet": "

Creates a subnet in an existing VPC.

When you create each subnet, you provide the VPC ID and the CIDR block you want for the subnet. After you create a subnet, you can't change its CIDR block. The subnet's CIDR block can be the same as the VPC's CIDR block (assuming you want only a single subnet in the VPC), or a subset of the VPC's CIDR block. If you create more than one subnet in a VPC, the subnets' CIDR blocks must not overlap. The smallest subnet (and VPC) you can create uses a /28 netmask (16 IP addresses), and the largest uses a /16 netmask (65,536 IP addresses).

AWS reserves both the first four and the last IP address in each subnet's CIDR block. They're not available for use.

If you add more than one subnet to a VPC, they're set up in a star topology with a logical router in the middle.

If you launch an instance in a VPC using an Amazon EBS-backed AMI, the IP address doesn't change if you stop and restart the instance (unlike a similar instance launched outside a VPC, which gets a new IP address when restarted). It's therefore possible to have a subnet with no running instances (they're all stopped), but no remaining IP addresses available.

For more information about subnets, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide.

", + "CreateTags": "

Adds or overwrites one or more tags for the specified Amazon EC2 resource or resources. Each resource can have a maximum of 10 tags. Each tag consists of a key and optional value. Tag keys must be unique per resource.

For more information about tags, see Tagging Your Resources in the Amazon Elastic Compute Cloud User Guide.

", + "CreateVolume": "

Creates an Amazon EBS volume that can be attached to an instance in the same Availability Zone. The volume is created in the regional endpoint that you send the HTTP request to. For more information see Regions and Endpoints.

You can create a new empty volume or restore a volume from an Amazon EBS snapshot. Any AWS Marketplace product codes from the snapshot are propagated to the volume.

You can create encrypted volumes with the Encrypted parameter. Encrypted volumes may only be attached to instances that support Amazon EBS encryption. Volumes that are created from encrypted snapshots are also automatically encrypted. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

For more information, see Creating or Restoring an Amazon EBS Volume in the Amazon Elastic Compute Cloud User Guide.

", + "CreateVpc": "

Creates a VPC with the specified CIDR block.

The smallest VPC you can create uses a /28 netmask (16 IP addresses), and the largest uses a /16 netmask (65,536 IP addresses). To help you decide how big to make your VPC, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide.

By default, each instance you launch in the VPC has the default DHCP options, which includes only a default DNS server that we provide (AmazonProvidedDNS). For more information about DHCP options, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide.

", + "CreateVpcPeeringConnection": "

Requests a VPC peering connection between two VPCs: a requester VPC that you own and a peer VPC with which to create the connection. The peer VPC can belong to another AWS account. The requester VPC and peer VPC cannot have overlapping CIDR blocks.

The owner of the peer VPC must accept the peering request to activate the peering connection. The VPC peering connection request expires after 7 days, after which it cannot be accepted or rejected.

A CreateVpcPeeringConnection request between VPCs with overlapping CIDR blocks results in the VPC peering connection having a status of failed.

", + "CreateVpnConnection": "

Creates a VPN connection between an existing virtual private gateway and a VPN customer gateway. The only supported connection type is ipsec.1.

The response includes information that you need to give to your network administrator to configure your customer gateway.

We strongly recommend that you use HTTPS when calling this operation because the response contains sensitive cryptographic information for configuring your customer gateway.

If you decide to shut down your VPN connection for any reason and later create a new VPN connection, you must reconfigure your customer gateway with the new information returned from this call.

For more information about VPN connections, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

", + "CreateVpnConnectionRoute": "

Creates a static route associated with a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway.

For more information about VPN connections, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

", + "CreateVpnGateway": "

Creates a virtual private gateway. A virtual private gateway is the endpoint on the VPC side of your VPN connection. You can create a virtual private gateway before creating the VPC itself.

For more information about virtual private gateways, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

", + "DeleteCustomerGateway": "

Deletes the specified customer gateway. You must delete the VPN connection before you can delete the customer gateway.

", + "DeleteDhcpOptions": "

Deletes the specified set of DHCP options. You must disassociate the set of DHCP options before you can delete it. You can disassociate the set of DHCP options by associating either a new set of options or the default set of options with the VPC.

", + "DeleteInternetGateway": "

Deletes the specified Internet gateway. You must detach the Internet gateway from the VPC before you can delete it.

", + "DeleteKeyPair": "

Deletes the specified key pair, by removing the public key from Amazon EC2.

", + "DeleteNetworkAcl": "

Deletes the specified network ACL. You can't delete the ACL if it's associated with any subnets. You can't delete the default network ACL.

", + "DeleteNetworkAclEntry": "

Deletes the specified ingress or egress entry (rule) from the specified network ACL.

", + "DeleteNetworkInterface": "

Deletes the specified network interface. You must detach the network interface before you can delete it.

", + "DeletePlacementGroup": "

Deletes the specified placement group. You must terminate all instances in the placement group before you can delete the placement group. For more information about placement groups and cluster instances, see Cluster Instances in the Amazon Elastic Compute Cloud User Guide.

", + "DeleteRoute": "

Deletes the specified route from the specified route table.

", + "DeleteRouteTable": "

Deletes the specified route table. You must disassociate the route table from any subnets before you can delete it. You can't delete the main route table.

", + "DeleteSecurityGroup": "

Deletes a security group.

If you attempt to delete a security group that is associated with an instance, or is referenced by another security group, the operation fails with InvalidGroup.InUse in EC2-Classic or DependencyViolation in EC2-VPC.

", + "DeleteSnapshot": "

Deletes the specified snapshot.

When you make periodic snapshots of a volume, the snapshots are incremental, and only the blocks on the device that have changed since your last snapshot are saved in the new snapshot. When you delete a snapshot, only the data not needed for any other snapshot is removed. So regardless of which prior snapshots have been deleted, all active snapshots will have access to all the information needed to restore the volume.

You cannot delete a snapshot of the root device of an Amazon EBS volume used by a registered AMI. You must first de-register the AMI before you can delete the snapshot.

For more information, see Deleting an Amazon EBS Snapshot in the Amazon Elastic Compute Cloud User Guide.

", + "DeleteSpotDatafeedSubscription": "

Deletes the data feed for Spot Instances. For more information, see Spot Instance Data Feed in the Amazon Elastic Compute Cloud User Guide.

", + "DeleteSubnet": "

Deletes the specified subnet. You must terminate all running instances in the subnet before you can delete the subnet.

", + "DeleteTags": "

Deletes the specified set of tags from the specified set of resources. This call is designed to follow a DescribeTags request.

For more information about tags, see Tagging Your Resources in the Amazon Elastic Compute Cloud User Guide.

", + "DeleteVolume": "

Deletes the specified Amazon EBS volume. The volume must be in the available state (not attached to an instance).

The volume may remain in the deleting state for several minutes.

For more information, see Deleting an Amazon EBS Volume in the Amazon Elastic Compute Cloud User Guide.

", + "DeleteVpc": "

Deletes the specified VPC. You must detach or delete all gateways and resources that are associated with the VPC before you can delete it. For example, you must terminate all instances running in the VPC, delete all security groups associated with the VPC (except the default one), delete all route tables associated with the VPC (except the default one), and so on.

", + "DeleteVpcPeeringConnection": "

Deletes a VPC peering connection. Either the owner of the requester VPC or the owner of the peer VPC can delete the VPC peering connection if it's in the active state. The owner of the requester VPC can delete a VPC peering connection in the pending-acceptance state.

", + "DeleteVpnConnection": "

Deletes the specified VPN connection.

If you're deleting the VPC and its associated components, we recommend that you detach the virtual private gateway from the VPC and delete the VPC before deleting the VPN connection. If you believe that the tunnel credentials for your VPN connection have been compromised, you can delete the VPN connection and create a new one that has new keys, without needing to delete the VPC or virtual private gateway. If you create a new VPN connection, you must reconfigure the customer gateway using the new configuration information returned with the new VPN connection ID.

", + "DeleteVpnConnectionRoute": "

Deletes the specified static route associated with a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway.

", + "DeleteVpnGateway": "

Deletes the specified virtual private gateway. We recommend that before you delete a virtual private gateway, you detach it from the VPC and delete the VPN connection. Note that you don't need to delete the virtual private gateway if you plan to delete and recreate the VPN connection between your VPC and your network.

", + "DeregisterImage": "

Deregisters the specified AMI. After you deregister an AMI, it can't be used to launch new instances.

This command does not delete the AMI.

", + "DescribeAccountAttributes": "

Describes attributes of your AWS account. The following are the supported account attributes:

  • supported-platforms: Indicates whether your account can launch instances into EC2-Classic and EC2-VPC, or only into EC2-VPC.

  • default-vpc: The ID of the default VPC for your account, or none.

  • max-instances: The maximum number of On-Demand instances that you can run.

  • vpc-max-security-groups-per-interface: The maximum number of security groups that you can assign to a network interface.

  • max-elastic-ips: The maximum number of Elastic IP addresses that you can allocate for use with EC2-Classic.

  • vpc-max-elastic-ips: The maximum number of Elastic IP addresses that you can allocate for use with EC2-VPC.

", + "DescribeAddresses": "

Describes one or more of your Elastic IP addresses.

An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeAvailabilityZones": "

Describes one or more of the Availability Zones that are available to you. The results include zones only for the region you're currently using. If there is an event impacting an Availability Zone, you can use this request to view the state and any provided message for that Availability Zone.

For more information, see Regions and Availability Zones in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeBundleTasks": "

Describes one or more of your bundling tasks.

Completed bundle tasks are listed for only a limited time. If your bundle task is no longer in the list, you can still register an AMI from it. Just use RegisterImage with the Amazon S3 bucket name and image manifest name you provided to the bundle task.

", + "DescribeClassicLinkInstances": "

Describes one or more of your linked EC2-Classic instances. This request only returns information about EC2-Classic instances linked to a VPC through ClassicLink; you cannot use this request to return information about other instances.

", + "DescribeConversionTasks": "

Describes one or more of your conversion tasks. For more information, see Using the Command Line Tools to Import Your Virtual Machine to Amazon EC2 in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeCustomerGateways": "

Describes one or more of your VPN customer gateways.

For more information about VPN customer gateways, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

", + "DescribeDhcpOptions": "

Describes one or more of your DHCP options sets.

For more information about DHCP options sets, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide.

", + "DescribeExportTasks": "

Describes one or more of your export tasks.

", + "DescribeImageAttribute": "

Describes the specified attribute of the specified AMI. You can specify only one attribute at a time.

", + "DescribeImages": "

Describes one or more of the images (AMIs, AKIs, and ARIs) available to you. Images available to you include public images, private images that you own, and private images owned by other AWS accounts but for which you have explicit launch permissions.

Deregistered images are included in the returned results for an unspecified interval after deregistration.

", + "DescribeImportImageTasks": "

Displays details about an import virtual machine or import snapshot tasks that are already created.

", + "DescribeImportSnapshotTasks": "

Displays details about an import snapshot tasks that is already created.

", + "DescribeInstanceAttribute": "

Describes the specified attribute of the specified instance. You can specify only one attribute at a time. Valid attribute values are: instanceType | kernel | ramdisk | userData | disableApiTermination | instanceInitiatedShutdownBehavior | rootDeviceName | blockDeviceMapping | productCodes | sourceDestCheck | groupSet | ebsOptimized | sriovNetSupport

", + "DescribeInstanceStatus": "

Describes the status of one or more instances, including any scheduled events.

Instance status has two main components:

  • System Status reports impaired functionality that stems from issues related to the systems that support an instance, such as such as hardware failures and network connectivity problems. This call reports such problems as impaired reachability.

  • Instance Status reports impaired functionality that arises from problems internal to the instance. This call reports such problems as impaired reachability.

Instance status provides information about four types of scheduled events for an instance that may require your attention:

  • Scheduled Reboot: When Amazon EC2 determines that an instance must be rebooted, the instances status returns one of two event codes: system-reboot or instance-reboot. System reboot commonly occurs if certain maintenance or upgrade operations require a reboot of the underlying host that supports an instance. Instance reboot commonly occurs if the instance must be rebooted, rather than the underlying host. Rebooting events include a scheduled start and end time.

  • System Maintenance: When Amazon EC2 determines that an instance requires maintenance that requires power or network impact, the instance status is the event code system-maintenance. System maintenance is either power maintenance or network maintenance. For power maintenance, your instance will be unavailable for a brief period of time and then rebooted. For network maintenance, your instance will experience a brief loss of network connectivity. System maintenance events include a scheduled start and end time. You will also be notified by email if one of your instances is set for system maintenance. The email message indicates when your instance is scheduled for maintenance.

  • Scheduled Retirement: When Amazon EC2 determines that an instance must be shut down, the instance status is the event code instance-retirement. Retirement commonly occurs when the underlying host is degraded and must be replaced. Retirement events include a scheduled start and end time. You will also be notified by email if one of your instances is set to retiring. The email message indicates when your instance will be permanently retired.

  • Scheduled Stop: When Amazon EC2 determines that an instance must be shut down, the instances status returns an event code called instance-stop. Stop events include a scheduled start and end time. You will also be notified by email if one of your instances is set to stop. The email message indicates when your instance will be stopped.

When your instance is retired, it will either be terminated (if its root device type is the instance-store) or stopped (if its root device type is an EBS volume). Instances stopped due to retirement will not be restarted, but you can do so manually. You can also avoid retirement of EBS-backed instances by manually restarting your instance when its event code is instance-retirement. This ensures that your instance is started on a different underlying host.

For more information about failed status checks, see Troubleshooting Instances with Failed Status Checks in the Amazon Elastic Compute Cloud User Guide. For more information about working with scheduled events, see Working with an Instance That Has a Scheduled Event in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeInstances": "

Describes one or more of your instances.

If you specify one or more instance IDs, Amazon EC2 returns information for those instances. If you do not specify instance IDs, Amazon EC2 returns information for all relevant instances. If you specify an instance ID that is not valid, an error is returned. If you specify an instance that you do not own, it is not included in the returned results.

Recently terminated instances might appear in the returned results. This interval is usually less than one hour.

", + "DescribeInternetGateways": "

Describes one or more of your Internet gateways.

", + "DescribeKeyPairs": "

Describes one or more of your key pairs.

For more information about key pairs, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeNetworkAcls": "

Describes one or more of your network ACLs.

For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.

", + "DescribeNetworkInterfaceAttribute": "

Describes a network interface attribute. You can specify only one attribute at a time.

", + "DescribeNetworkInterfaces": "

Describes one or more of your network interfaces.

", + "DescribePlacementGroups": "

Describes one or more of your placement groups. For more information about placement groups and cluster instances, see Cluster Instances in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeRegions": "

Describes one or more regions that are currently available to you.

For a list of the regions supported by Amazon EC2, see Regions and Endpoints.

", + "DescribeReservedInstances": "

Describes one or more of the Reserved Instances that you purchased.

For more information about Reserved Instances, see Reserved Instances in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeReservedInstancesListings": "

Describes your account's Reserved Instance listings in the Reserved Instance Marketplace.

The Reserved Instance Marketplace matches sellers who want to resell Reserved Instance capacity that they no longer need with buyers who want to purchase additional capacity. Reserved Instances bought and sold through the Reserved Instance Marketplace work like any other Reserved Instances.

As a seller, you choose to list some or all of your Reserved Instances, and you specify the upfront price to receive for them. Your Reserved Instances are then listed in the Reserved Instance Marketplace and are available for purchase.

As a buyer, you specify the configuration of the Reserved Instance to purchase, and the Marketplace matches what you're searching for with what's available. The Marketplace first sells the lowest priced Reserved Instances to you, and continues to sell available Reserved Instance listings to you until your demand is met. You are charged based on the total price of all of the listings that you purchase.

For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeReservedInstancesModifications": "

Describes the modifications made to your Reserved Instances. If no parameter is specified, information about all your Reserved Instances modification requests is returned. If a modification ID is specified, only information about the specific modification is returned.

For more information, see Modifying Reserved Instances in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeReservedInstancesOfferings": "

Describes Reserved Instance offerings that are available for purchase. With Reserved Instances, you purchase the right to launch instances for a period of time. During that time period, you do not receive insufficient capacity errors, and you pay a lower usage rate than the rate charged for On-Demand instances for the actual time used.

For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeRouteTables": "

Describes one or more of your route tables.

For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", + "DescribeSecurityGroups": "

Describes one or more of your security groups.

A security group is for use with instances either in the EC2-Classic platform or in a specific VPC. For more information, see Amazon EC2 Security Groups in the Amazon Elastic Compute Cloud User Guide and Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide.

", + "DescribeSnapshotAttribute": "

Describes the specified attribute of the specified snapshot. You can specify only one attribute at a time.

For more information about Amazon EBS snapshots, see Amazon EBS Snapshots in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeSnapshots": "

Describes one or more of the Amazon EBS snapshots available to you. Available snapshots include public snapshots available for any AWS account to launch, private snapshots that you own, and private snapshots owned by another AWS account but for which you've been given explicit create volume permissions.

The create volume permissions fall into the following categories:

  • public: The owner of the snapshot granted create volume permissions for the snapshot to the all group. All AWS accounts have create volume permissions for these snapshots.
  • explicit: The owner of the snapshot granted create volume permissions to a specific AWS account.
  • implicit: An AWS account has implicit create volume permissions for all snapshots it owns.

The list of snapshots returned can be modified by specifying snapshot IDs, snapshot owners, or AWS accounts with create volume permissions. If no options are specified, Amazon EC2 returns all snapshots for which you have create volume permissions.

If you specify one or more snapshot IDs, only snapshots that have the specified IDs are returned. If you specify an invalid snapshot ID, an error is returned. If you specify a snapshot ID for which you do not have access, it is not included in the returned results.

If you specify one or more snapshot owners, only snapshots from the specified owners and for which you have access are returned. The results can include the AWS account IDs of the specified owners, amazon for snapshots owned by Amazon, or self for snapshots that you own.

If you specify a list of restorable users, only snapshots with create snapshot permissions for those users are returned. You can specify AWS account IDs (if you own the snapshots), self for snapshots for which you own or have explicit permissions, or all for public snapshots.

If you are describing a long list of snapshots, you can paginate the output to make the list more manageable. The MaxResults parameter sets the maximum number of results returned in a single page. If the list of results exceeds your MaxResults value, then that number of results is returned along with a NextToken value that can be passed to a subsequent DescribeSnapshots request to retrieve the remaining results.

For more information about Amazon EBS snapshots, see Amazon EBS Snapshots in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeSpotDatafeedSubscription": "

Describes the data feed for Spot Instances. For more information, see Spot Instance Data Feed in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeSpotInstanceRequests": "

Describes the Spot Instance requests that belong to your account. Spot Instances are instances that Amazon EC2 launches when the bid price that you specify exceeds the current Spot Price. Amazon EC2 periodically sets the Spot Price based on available Spot Instance capacity and current Spot Instance requests. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide.

You can use DescribeSpotInstanceRequests to find a running Spot Instance by examining the response. If the status of the Spot Instance is fulfilled, the instance ID appears in the response and contains the identifier of the instance. Alternatively, you can use DescribeInstances with a filter to look for instances where the instance lifecycle is spot.

", + "DescribeSpotPriceHistory": "

Describes the Spot Price history. The prices returned are listed in chronological order, from the oldest to the most recent, for up to the past 90 days. For more information, see Spot Instance Pricing History in the Amazon Elastic Compute Cloud User Guide.

When you specify a start and end time, this operation returns the prices of the instance types within the time range that you specified and the time when the price changed. The price is valid within the time period that you specified; the response merely indicates the last time that the price changed.

", + "DescribeSubnets": "

Describes one or more of your subnets.

For more information about subnets, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide.

", + "DescribeTags": "

Describes one or more of the tags for your EC2 resources.

For more information about tags, see Tagging Your Resources in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeVolumeAttribute": "

Describes the specified attribute of the specified volume. You can specify only one attribute at a time.

For more information about Amazon EBS volumes, see Amazon EBS Volumes in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeVolumeStatus": "

Describes the status of the specified volumes. Volume status provides the result of the checks performed on your volumes to determine events that can impair the performance of your volumes. The performance of a volume can be affected if an issue occurs on the volume's underlying host. If the volume's underlying host experiences a power outage or system issue, after the system is restored, there could be data inconsistencies on the volume. Volume events notify you if this occurs. Volume actions notify you if any action needs to be taken in response to the event.

The DescribeVolumeStatus operation provides the following information about the specified volumes:

Status: Reflects the current status of the volume. The possible values are ok, impaired , warning, or insufficient-data. If all checks pass, the overall status of the volume is ok. If the check fails, the overall status is impaired. If the status is insufficient-data, then the checks may still be taking place on your volume at the time. We recommend that you retry the request. For more information on volume status, see Monitoring the Status of Your Volumes.

Events: Reflect the cause of a volume status and may require you to take action. For example, if your volume returns an impaired status, then the volume event might be potential-data-inconsistency. This means that your volume has been affected by an issue with the underlying host, has all I/O operations disabled, and may have inconsistent data.

Actions: Reflect the actions you may have to take in response to an event. For example, if the status of the volume is impaired and the volume event shows potential-data-inconsistency, then the action shows enable-volume-io. This means that you may want to enable the I/O operations for the volume by calling the EnableVolumeIO action and then check the volume for data consistency.

Volume status is based on the volume status checks, and does not reflect the volume state. Therefore, volume status does not indicate volumes in the error state (for example, when a volume is incapable of accepting I/O.)

", + "DescribeVolumes": "

Describes the specified Amazon EBS volumes.

If you are describing a long list of volumes, you can paginate the output to make the list more manageable. The MaxResults parameter sets the maximum number of results returned in a single page. If the list of results exceeds your MaxResults value, then that number of results is returned along with a NextToken value that can be passed to a subsequent DescribeVolumes request to retrieve the remaining results.

For more information about Amazon EBS volumes, see Amazon EBS Volumes in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeVpcAttribute": "

Describes the specified attribute of the specified VPC. You can specify only one attribute at a time.

", + "DescribeVpcClassicLink": "

Describes the ClassicLink status of one or more VPCs.

", + "DescribeVpcPeeringConnections": "

Describes one or more of your VPC peering connections.

", + "DescribeVpcs": "

Describes one or more of your VPCs.

", + "DescribeVpnConnections": "

Describes one or more of your VPN connections.

For more information about VPN connections, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

", + "DescribeVpnGateways": "

Describes one or more of your virtual private gateways.

For more information about virtual private gateways, see Adding an IPsec Hardware VPN to Your VPC in the Amazon Virtual Private Cloud User Guide.

", + "DetachClassicLinkVpc": "

Unlinks (detaches) a linked EC2-Classic instance from a VPC. After the instance has been unlinked, the VPC security groups are no longer associated with it. An instance is automatically unlinked from a VPC when it's stopped.

", + "DetachInternetGateway": "

Detaches an Internet gateway from a VPC, disabling connectivity between the Internet and the VPC. The VPC must not contain any running instances with Elastic IP addresses.

", + "DetachNetworkInterface": "

Detaches a network interface from an instance.

", + "DetachVolume": "

Detaches an Amazon EBS volume from an instance. Make sure to unmount any file systems on the device within your operating system before detaching the volume. Failure to do so results in the volume being stuck in a busy state while detaching.

If an Amazon EBS volume is the root device of an instance, it can't be detached while the instance is running. To detach the root volume, stop the instance first.

When a volume with an AWS Marketplace product code is detached from an instance, the product code is no longer associated with the instance.

For more information, see Detaching an Amazon EBS Volume in the Amazon Elastic Compute Cloud User Guide.

", + "DetachVpnGateway": "

Detaches a virtual private gateway from a VPC. You do this if you're planning to turn off the VPC and not use it anymore. You can confirm a virtual private gateway has been completely detached from a VPC by describing the virtual private gateway (any attachments to the virtual private gateway are also described).

You must wait for the attachment's state to switch to detached before you can delete the VPC or attach a different VPC to the virtual private gateway.

", + "DisableVgwRoutePropagation": "

Disables a virtual private gateway (VGW) from propagating routes to a specified route table of a VPC.

", + "DisableVpcClassicLink": "

Disables ClassicLink for a VPC. You cannot disable ClassicLink for a VPC that has EC2-Classic instances linked to it.

", + "DisassociateAddress": "

Disassociates an Elastic IP address from the instance or network interface it's associated with.

An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error.

", + "DisassociateRouteTable": "

Disassociates a subnet from a route table.

After you perform this action, the subnet no longer uses the routes in the route table. Instead, it uses the routes in the VPC's main route table. For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", + "EnableVgwRoutePropagation": "

Enables a virtual private gateway (VGW) to propagate routes to the specified route table of a VPC.

", + "EnableVolumeIO": "

Enables I/O operations for a volume that had I/O operations disabled because the data on the volume was potentially inconsistent.

", + "EnableVpcClassicLink": "

Enables a VPC for ClassicLink. You can then link EC2-Classic instances to your ClassicLink-enabled VPC to allow communication over private IP addresses. You cannot enable your VPC for ClassicLink if any of your VPC's route tables have existing routes for address ranges within the 10.0.0.0/8 IP address range, excluding local routes for VPCs in the 10.0.0.0/16 and 10.1.0.0/16 IP address ranges. For more information, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.

", + "GetConsoleOutput": "

Gets the console output for the specified instance.

Instances do not have a physical monitor through which you can view their console output. They also lack physical controls that allow you to power up, reboot, or shut them down. To allow these actions, we provide them through the Amazon EC2 API and command line interface.

Instance console output is buffered and posted shortly after instance boot, reboot, and termination. Amazon EC2 preserves the most recent 64 KB output which is available for at least one hour after the most recent post.

For Linux instances, the instance console output displays the exact console output that would normally be displayed on a physical monitor attached to a computer. This output is buffered because the instance produces it and then posts it to a store where the instance's owner can retrieve it.

For Windows instances, the instance console output includes output from the EC2Config service.

", + "GetPasswordData": "

Retrieves the encrypted administrator password for an instance running Windows.

The Windows password is generated at boot if the EC2Config service plugin, Ec2SetPassword, is enabled. This usually only happens the first time an AMI is launched, and then Ec2SetPassword is automatically disabled. The password is not generated for rebundled AMIs unless Ec2SetPassword is enabled before bundling.

The password is encrypted using the key pair that you specified when you launched the instance. You must provide the corresponding key pair file.

Password generation and encryption takes a few moments. We recommend that you wait up to 15 minutes after launching an instance before trying to retrieve the generated password.

", + "ImportImage": "

Import single or multi-volume disk images or Amazon EBS snapshots into an Amazon Machine Image (AMI).

", + "ImportInstance": "

Creates an import instance task using metadata from the specified disk image. ImportInstance only supports single-volume VMs. To import multi-volume VMs, use ImportImage. After importing the image, you then upload it using the ec2-import-volume command in the EC2 command line tools. For more information, see Using the Command Line Tools to Import Your Virtual Machine to Amazon EC2 in the Amazon Elastic Compute Cloud User Guide.

", + "ImportKeyPair": "

Imports the public key from an RSA key pair that you created with a third-party tool. Compare this with CreateKeyPair, in which AWS creates the key pair and gives the keys to you (AWS keeps a copy of the public key). With ImportKeyPair, you create the key pair and give AWS just the public key. The private key is never transferred between you and AWS.

For more information about key pairs, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.

", + "ImportSnapshot": "

Import a disk into an Amazon Elastic Block Store (Amazon EBS) snapshot.

", + "ImportVolume": "

Creates an import volume task using metadata from the specified disk image. After importing the image, you then upload it using the ec2-import-volume command in the Amazon EC2 command-line interface (CLI) tools. For more information, see Using the Command Line Tools to Import Your Virtual Machine to Amazon EC2 in the Amazon Elastic Compute Cloud User Guide.

", + "ModifyImageAttribute": "

Modifies the specified attribute of the specified AMI. You can specify only one attribute at a time.

AWS Marketplace product codes cannot be modified. Images with an AWS Marketplace product code cannot be made public.

", + "ModifyInstanceAttribute": "

Modifies the specified attribute of the specified instance. You can specify only one attribute at a time.

To modify some attributes, the instance must be stopped. For more information, see Modifying Attributes of a Stopped Instance in the Amazon Elastic Compute Cloud User Guide.

", + "ModifyNetworkInterfaceAttribute": "

Modifies the specified network interface attribute. You can specify only one attribute at a time.

", + "ModifyReservedInstances": "

Modifies the Availability Zone, instance count, instance type, or network platform (EC2-Classic or EC2-VPC) of your Reserved Instances. The Reserved Instances to be modified must be identical, except for Availability Zone, network platform, and instance type.

For more information, see Modifying Reserved Instances in the Amazon Elastic Compute Cloud User Guide.

", + "ModifySnapshotAttribute": "

Adds or removes permission settings for the specified snapshot. You may add or remove specified AWS account IDs from a snapshot's list of create volume permissions, but you cannot do both in a single API call. If you need to both add and remove account IDs for a snapshot, you must use multiple API calls.

For more information on modifying snapshot permissions, see Sharing Snapshots in the Amazon Elastic Compute Cloud User Guide.

Snapshots with AWS Marketplace product codes cannot be made public.

", + "ModifySubnetAttribute": "

Modifies a subnet attribute.

", + "ModifyVolumeAttribute": "

Modifies a volume attribute.

By default, all I/O operations for the volume are suspended when the data on the volume is determined to be potentially inconsistent, to prevent undetectable, latent data corruption. The I/O access to the volume can be resumed by first enabling I/O access and then checking the data consistency on your volume.

You can change the default behavior to resume I/O operations. We recommend that you change this only for boot volumes or for volumes that are stateless or disposable.

", + "ModifyVpcAttribute": "

Modifies the specified attribute of the specified VPC.

", + "MonitorInstances": "

Enables monitoring for a running instance. For more information about monitoring instances, see Monitoring Your Instances and Volumes in the Amazon Elastic Compute Cloud User Guide.

", + "PurchaseReservedInstancesOffering": "

Purchases a Reserved Instance for use with your account. With Amazon EC2 Reserved Instances, you obtain a capacity reservation for a certain instance configuration over a specified period of time. You pay a lower usage rate than with On-Demand instances for the time that you actually use the capacity reservation.

Use DescribeReservedInstancesOfferings to get a list of Reserved Instance offerings that match your specifications. After you've purchased a Reserved Instance, you can check for your new Reserved Instance with DescribeReservedInstances.

For more information, see Reserved Instances and Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.

", + "RebootInstances": "

Requests a reboot of one or more instances. This operation is asynchronous; it only queues a request to reboot the specified instances. The operation succeeds if the instances are valid and belong to you. Requests to reboot terminated instances are ignored.

If a Linux/Unix instance does not cleanly shut down within four minutes, Amazon EC2 performs a hard reboot.

For more information about troubleshooting, see Getting Console Output and Rebooting Instances in the Amazon Elastic Compute Cloud User Guide.

", + "RegisterImage": "

Registers an AMI. When you're creating an AMI, this is the final step you must complete before you can launch an instance from the AMI. For more information about creating AMIs, see Creating Your Own AMIs in the Amazon Elastic Compute Cloud User Guide.

For Amazon EBS-backed instances, CreateImage creates and registers the AMI in a single request, so you don't have to register the AMI yourself.

You can also use RegisterImage to create an Amazon EBS-backed AMI from a snapshot of a root device volume. For more information, see Launching an Instance from a Snapshot in the Amazon Elastic Compute Cloud User Guide.

If needed, you can deregister an AMI at any time. Any modifications you make to an AMI backed by an instance store volume invalidates its registration. If you make changes to an image, deregister the previous image and register the new image.

You can't register an image where a secondary (non-root) snapshot has AWS Marketplace product codes.

", + "RejectVpcPeeringConnection": "

Rejects a VPC peering connection request. The VPC peering connection must be in the pending-acceptance state. Use the DescribeVpcPeeringConnections request to view your outstanding VPC peering connection requests. To delete an active VPC peering connection, or to delete a VPC peering connection request that you initiated, use DeleteVpcPeeringConnection.

", + "ReleaseAddress": "

Releases the specified Elastic IP address.

After releasing an Elastic IP address, it is released to the IP address pool and might be unavailable to you. Be sure to update your DNS records and any servers or devices that communicate with the address. If you attempt to release an Elastic IP address that you already released, you'll get an AuthFailure error if the address is already allocated to another AWS account.

[EC2-Classic, default VPC] Releasing an Elastic IP address automatically disassociates it from any instance that it's associated with. To disassociate an Elastic IP address without releasing it, use DisassociateAddress.

[Nondefault VPC] You must use DisassociateAddress to disassociate the Elastic IP address before you try to release it. Otherwise, Amazon EC2 returns an error (InvalidIPAddress.InUse).

", + "ReplaceNetworkAclAssociation": "

Changes which network ACL a subnet is associated with. By default when you create a subnet, it's automatically associated with the default network ACL. For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.

", + "ReplaceNetworkAclEntry": "

Replaces an entry (rule) in a network ACL. For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.

", + "ReplaceRoute": "

Replaces an existing route within a route table in a VPC. You must provide only one of the following: Internet gateway or virtual private gateway, NAT instance, VPC peering connection, or network interface.

For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", + "ReplaceRouteTableAssociation": "

Changes the route table associated with a given subnet in a VPC. After the operation completes, the subnet uses the routes in the new route table it's associated with. For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

You can also use ReplaceRouteTableAssociation to change which table is the main route table in the VPC. You just specify the main route table's association ID and the route table to be the new main route table.

", + "ReportInstanceStatus": "

Submits feedback about the status of an instance. The instance must be in the running state. If your experience with the instance differs from the instance status returned by DescribeInstanceStatus, use ReportInstanceStatus to report your experience with the instance. Amazon EC2 collects this information to improve the accuracy of status checks.

Use of this action does not change the value returned by DescribeInstanceStatus.

", + "RequestSpotInstances": "

Creates a Spot Instance request. Spot Instances are instances that Amazon EC2 launches when the bid price that you specify exceeds the current Spot Price. Amazon EC2 periodically sets the Spot Price based on available Spot Instance capacity and current Spot Instance requests. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide.

", + "ResetImageAttribute": "

Resets an attribute of an AMI to its default value.

The productCodes attribute can't be reset.

", + "ResetInstanceAttribute": "

Resets an attribute of an instance to its default value. To reset the kernel or ramdisk, the instance must be in a stopped state. To reset the SourceDestCheck, the instance can be either running or stopped.

The SourceDestCheck attribute controls whether source/destination checking is enabled. The default value is true, which means checking is enabled. This value must be false for a NAT instance to perform NAT. For more information, see NAT Instances in the Amazon Virtual Private Cloud User Guide.

", + "ResetNetworkInterfaceAttribute": "

Resets a network interface attribute. You can specify only one attribute at a time.

", + "ResetSnapshotAttribute": "

Resets permission settings for the specified snapshot.

For more information on modifying snapshot permissions, see Sharing Snapshots in the Amazon Elastic Compute Cloud User Guide.

", + "RevokeSecurityGroupEgress": "

Removes one or more egress rules from a security group for EC2-VPC. The values that you specify in the revoke request (for example, ports) must match the existing rule's values for the rule to be revoked.

Each rule consists of the protocol and the CIDR range or source security group. For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code.

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

", + "RevokeSecurityGroupIngress": "

Removes one or more ingress rules from a security group. The values that you specify in the revoke request (for example, ports) must match the existing rule's values for the rule to be removed.

Each rule consists of the protocol and the CIDR range or source security group. For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code.

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

", + "RunInstances": "

Launches the specified number of instances using an AMI for which you have permissions.

When you launch an instance, it enters the pending state. After the instance is ready for you, it enters the running state. To check the state of your instance, call DescribeInstances.

If you don't specify a security group when launching an instance, Amazon EC2 uses the default security group. For more information, see Security Groups in the Amazon Elastic Compute Cloud User Guide.

Linux instances have access to the public key of the key pair at boot. You can use this key to provide secure access to the instance. Amazon EC2 public images use this feature to provide secure access without passwords. For more information, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.

You can provide optional user data when launching an instance. For more information, see Instance Metadata in the Amazon Elastic Compute Cloud User Guide.

If any of the AMIs have a product code attached for which the user has not subscribed, RunInstances fails.

T2 instance types can only be launched into a VPC. If you do not have a default VPC, or if you do not specify a subnet ID in the request, RunInstances fails.

For more information about troubleshooting, see What To Do If An Instance Immediately Terminates, and Troubleshooting Connecting to Your Instance in the Amazon Elastic Compute Cloud User Guide.

", + "StartInstances": "

Starts an Amazon EBS-backed AMI that you've previously stopped.

Instances that use Amazon EBS volumes as their root devices can be quickly stopped and started. When an instance is stopped, the compute resources are released and you are not billed for hourly instance usage. However, your root partition Amazon EBS volume remains, continues to persist your data, and you are charged for Amazon EBS volume usage. You can restart your instance at any time. Each time you transition an instance from stopped to started, Amazon EC2 charges a full instance hour, even if transitions happen multiple times within a single hour.

Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM.

Performing this operation on an instance that uses an instance store as its root device returns an error.

For more information, see Stopping Instances in the Amazon Elastic Compute Cloud User Guide.

", + "StopInstances": "

Stops an Amazon EBS-backed instance. Each time you transition an instance from stopped to started, Amazon EC2 charges a full instance hour, even if transitions happen multiple times within a single hour.

You can't start or stop Spot Instances.

Instances that use Amazon EBS volumes as their root devices can be quickly stopped and started. When an instance is stopped, the compute resources are released and you are not billed for hourly instance usage. However, your root partition Amazon EBS volume remains, continues to persist your data, and you are charged for Amazon EBS volume usage. You can restart your instance at any time.

Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM.

Performing this operation on an instance that uses an instance store as its root device returns an error.

You can stop, start, and terminate EBS-backed instances. You can only terminate instance store-backed instances. What happens to an instance differs if you stop it or terminate it. For example, when you stop an instance, the root device and any other devices attached to the instance persist. When you terminate an instance, the root device and any other devices attached during the instance launch are automatically deleted. For more information about the differences between stopping and terminating instances, see Instance Lifecycle in the Amazon Elastic Compute Cloud User Guide.

For more information about troubleshooting, see Troubleshooting Stopping Your Instance in the Amazon Elastic Compute Cloud User Guide.

", + "TerminateInstances": "

Shuts down one or more instances. This operation is idempotent; if you terminate an instance more than once, each call succeeds.

Terminated instances remain visible after termination (for approximately one hour).

By default, Amazon EC2 deletes all Amazon EBS volumes that were attached when the instance launched. Volumes attached after instance launch continue running.

You can stop, start, and terminate EBS-backed instances. You can only terminate instance store-backed instances. What happens to an instance differs if you stop it or terminate it. For example, when you stop an instance, the root device and any other devices attached to the instance persist. When you terminate an instance, the root device and any other devices attached during the instance launch are automatically deleted. For more information about the differences between stopping and terminating instances, see Instance Lifecycle in the Amazon Elastic Compute Cloud User Guide.

For more information about troubleshooting, see Troubleshooting Terminating Your Instance in the Amazon Elastic Compute Cloud User Guide.

", + "UnassignPrivateIpAddresses": "

Unassigns one or more secondary private IP addresses from a network interface.

", + "UnmonitorInstances": "

Disables monitoring for a running instance. For more information about monitoring instances, see Monitoring Your Instances and Volumes in the Amazon Elastic Compute Cloud User Guide.

" + }, + "service": "Amazon Elastic Compute Cloud

Amazon Elastic Compute Cloud (Amazon EC2) provides resizable computing capacity in the Amazon Web Services (AWS) cloud. Using Amazon EC2 eliminates your need to invest in hardware up front, so you can develop and deploy applications faster.

", + "shapes": { + "AcceptVpcPeeringConnectionRequest": { + "base": null, + "refs": { + } + }, + "AcceptVpcPeeringConnectionResult": { + "base": null, + "refs": { + } + }, + "AccountAttribute": { + "base": "

Describes an account attribute.

", + "refs": { + "AccountAttributeList$member": null + } + }, + "AccountAttributeList": { + "base": null, + "refs": { + "DescribeAccountAttributesResult$AccountAttributes": "

Information about one or more account attributes.

" + } + }, + "AccountAttributeName": { + "base": null, + "refs": { + "AccountAttributeNameStringList$member": null + } + }, + "AccountAttributeNameStringList": { + "base": null, + "refs": { + "DescribeAccountAttributesRequest$AttributeNames": "

One or more account attribute names.

" + } + }, + "AccountAttributeValue": { + "base": "

Describes a value of an account attribute.

", + "refs": { + "AccountAttributeValueList$member": null + } + }, + "AccountAttributeValueList": { + "base": null, + "refs": { + "AccountAttribute$AttributeValues": "

One or more values for the account attribute.

" + } + }, + "Address": { + "base": "

Describes an Elastic IP address.

", + "refs": { + "AddressList$member": null + } + }, + "AddressList": { + "base": null, + "refs": { + "DescribeAddressesResult$Addresses": "

Information about one or more Elastic IP addresses.

" + } + }, + "AllocateAddressRequest": { + "base": null, + "refs": { + } + }, + "AllocateAddressResult": { + "base": null, + "refs": { + } + }, + "AllocationIdList": { + "base": null, + "refs": { + "DescribeAddressesRequest$AllocationIds": "

[EC2-VPC] One or more allocation IDs.

Default: Describes all your Elastic IP addresses.

" + } + }, + "ArchitectureValues": { + "base": null, + "refs": { + "Image$Architecture": "

The architecture of the image.

", + "ImportInstanceLaunchSpecification$Architecture": "

The architecture of the instance.

", + "Instance$Architecture": "

The architecture of the image.

", + "RegisterImageRequest$Architecture": "

The architecture of the AMI.

Default: For Amazon EBS-backed AMIs, i386. For instance store-backed AMIs, the architecture specified in the manifest file.

" + } + }, + "AssignPrivateIpAddressesRequest": { + "base": null, + "refs": { + } + }, + "AssociateAddressRequest": { + "base": null, + "refs": { + } + }, + "AssociateAddressResult": { + "base": null, + "refs": { + } + }, + "AssociateDhcpOptionsRequest": { + "base": null, + "refs": { + } + }, + "AssociateRouteTableRequest": { + "base": null, + "refs": { + } + }, + "AssociateRouteTableResult": { + "base": null, + "refs": { + } + }, + "AttachClassicLinkVpcRequest": { + "base": null, + "refs": { + } + }, + "AttachClassicLinkVpcResult": { + "base": null, + "refs": { + } + }, + "AttachInternetGatewayRequest": { + "base": null, + "refs": { + } + }, + "AttachNetworkInterfaceRequest": { + "base": null, + "refs": { + } + }, + "AttachNetworkInterfaceResult": { + "base": null, + "refs": { + } + }, + "AttachVolumeRequest": { + "base": null, + "refs": { + } + }, + "AttachVpnGatewayRequest": { + "base": null, + "refs": { + } + }, + "AttachVpnGatewayResult": { + "base": null, + "refs": { + } + }, + "AttachmentStatus": { + "base": null, + "refs": { + "EbsInstanceBlockDevice$Status": "

The attachment state.

", + "InstanceNetworkInterfaceAttachment$Status": "

The attachment state.

", + "InternetGatewayAttachment$State": "

The current state of the attachment.

", + "NetworkInterfaceAttachment$Status": "

The attachment state.

", + "VpcAttachment$State": "

The current state of the attachment.

" + } + }, + "AttributeBooleanValue": { + "base": "

The value to use when a resource attribute accepts a Boolean value.

", + "refs": { + "DescribeNetworkInterfaceAttributeResult$SourceDestCheck": "

Indicates whether source/destination checking is enabled.

", + "DescribeVolumeAttributeResult$AutoEnableIO": "

The state of autoEnableIO attribute.

", + "DescribeVpcAttributeResult$EnableDnsSupport": "

Indicates whether DNS resolution is enabled for the VPC. If this attribute is true, the Amazon DNS server resolves DNS hostnames for your instances to their corresponding IP addresses; otherwise, it does not.

", + "DescribeVpcAttributeResult$EnableDnsHostnames": "

Indicates whether the instances launched in the VPC get DNS hostnames. If this attribute is true, instances in the VPC get DNS hostnames; otherwise, they do not.

", + "InstanceAttribute$DisableApiTermination": "

If the value is true, you can't terminate the instance through the Amazon EC2 console, CLI, or API; otherwise, you can.

", + "InstanceAttribute$EbsOptimized": "

Indicates whether the instance is optimized for EBS I/O.

", + "InstanceAttribute$SourceDestCheck": "

Indicates whether source/destination checking is enabled. A value of true means checking is enabled, and false means checking is disabled. This value must be false for a NAT instance to perform NAT.

", + "ModifyInstanceAttributeRequest$SourceDestCheck": "

Specifies whether source/destination checking is enabled. A value of true means that checking is enabled, and false means checking is disabled. This value must be false for a NAT instance to perform NAT.

", + "ModifyInstanceAttributeRequest$DisableApiTermination": "

If the value is true, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can.

", + "ModifyInstanceAttributeRequest$EbsOptimized": "

Specifies whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

", + "ModifyNetworkInterfaceAttributeRequest$SourceDestCheck": "

Indicates whether source/destination checking is enabled. A value of true means checking is enabled, and false means checking is disabled. This value must be false for a NAT instance to perform NAT. For more information, see NAT Instances in the Amazon Virtual Private Cloud User Guide.

", + "ModifySubnetAttributeRequest$MapPublicIpOnLaunch": "

Specify true to indicate that instances launched into the specified subnet should be assigned public IP address.

", + "ModifyVolumeAttributeRequest$AutoEnableIO": "

Indicates whether the volume should be auto-enabled for I/O operations.

", + "ModifyVpcAttributeRequest$EnableDnsSupport": "

Indicates whether the DNS resolution is supported for the VPC. If enabled, queries to the Amazon provided DNS server at the 169.254.169.253 IP address, or the reserved IP address at the base of the VPC network range \"plus two\" will succeed. If disabled, the Amazon provided DNS service in the VPC that resolves public DNS hostnames to IP addresses is not enabled.

", + "ModifyVpcAttributeRequest$EnableDnsHostnames": "

Indicates whether the instances launched in the VPC get DNS hostnames. If enabled, instances in the VPC get DNS hostnames; otherwise, they do not.

You can only enable DNS hostnames if you also enable DNS support.

" + } + }, + "AttributeValue": { + "base": "

The value to use for a resource attribute.

", + "refs": { + "DescribeNetworkInterfaceAttributeResult$Description": "

The description of the network interface.

", + "ImageAttribute$KernelId": "

The kernel ID.

", + "ImageAttribute$RamdiskId": "

The RAM disk ID.

", + "ImageAttribute$Description": "

A description for the AMI.

", + "ImageAttribute$SriovNetSupport": null, + "InstanceAttribute$InstanceType": "

The instance type.

", + "InstanceAttribute$KernelId": "

The kernel ID.

", + "InstanceAttribute$RamdiskId": "

The RAM disk ID.

", + "InstanceAttribute$UserData": "

The Base64-encoded MIME user data.

", + "InstanceAttribute$InstanceInitiatedShutdownBehavior": "

Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).

", + "InstanceAttribute$RootDeviceName": "

The name of the root device (for example, /dev/sda1 or /dev/xvda).

", + "InstanceAttribute$SriovNetSupport": null, + "ModifyImageAttributeRequest$Description": "

A description for the AMI.

", + "ModifyInstanceAttributeRequest$InstanceType": "

Changes the instance type to the specified value. For more information, see Instance Types. If the instance type is not valid, the error returned is InvalidInstanceAttributeValue.

", + "ModifyInstanceAttributeRequest$Kernel": "

Changes the instance's kernel to the specified value. We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB.

", + "ModifyInstanceAttributeRequest$Ramdisk": "

Changes the instance's RAM disk to the specified value. We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB.

", + "ModifyInstanceAttributeRequest$InstanceInitiatedShutdownBehavior": "

Specifies whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).

", + "ModifyInstanceAttributeRequest$SriovNetSupport": "

Set to simple to enable enhanced networking for the instance.

There is no way to disable enhanced networking at this time.

This option is supported only for HVM instances. Specifying this option with a PV instance can make it unreachable.

", + "ModifyNetworkInterfaceAttributeRequest$Description": "

A description for the network interface.

", + "DhcpConfigurationValueList$member": null + } + }, + "AuthorizeSecurityGroupEgressRequest": { + "base": null, + "refs": { + } + }, + "AuthorizeSecurityGroupIngressRequest": { + "base": null, + "refs": { + } + }, + "AvailabilityZone": { + "base": "

Describes an Availability Zone.

", + "refs": { + "AvailabilityZoneList$member": null + } + }, + "AvailabilityZoneList": { + "base": null, + "refs": { + "DescribeAvailabilityZonesResult$AvailabilityZones": "

Information about one or more Availability Zones.

" + } + }, + "AvailabilityZoneMessage": { + "base": "

Describes a message about an Availability Zone.

", + "refs": { + "AvailabilityZoneMessageList$member": null + } + }, + "AvailabilityZoneMessageList": { + "base": null, + "refs": { + "AvailabilityZone$Messages": "

Any messages about the Availability Zone.

" + } + }, + "AvailabilityZoneState": { + "base": null, + "refs": { + "AvailabilityZone$State": "

The state of the Availability Zone (available | impaired | unavailable).

" + } + }, + "BlockDeviceMapping": { + "base": "

Describes a block device mapping.

", + "refs": { + "BlockDeviceMappingList$member": null, + "BlockDeviceMappingRequestList$member": null + } + }, + "BlockDeviceMappingList": { + "base": null, + "refs": { + "Image$BlockDeviceMappings": "

Any block device mapping entries.

", + "ImageAttribute$BlockDeviceMappings": "

One or more block device mapping entries.

", + "LaunchSpecification$BlockDeviceMappings": "

One or more block device mapping entries.

", + "RequestSpotLaunchSpecification$BlockDeviceMappings": "

One or more block device mapping entries.

" + } + }, + "BlockDeviceMappingRequestList": { + "base": null, + "refs": { + "CreateImageRequest$BlockDeviceMappings": "

Information about one or more block device mappings.

", + "RegisterImageRequest$BlockDeviceMappings": "

One or more block device mapping entries.

", + "RunInstancesRequest$BlockDeviceMappings": "

The block device mapping.

" + } + }, + "Boolean": { + "base": null, + "refs": { + "AcceptVpcPeeringConnectionRequest$DryRun": null, + "AllocateAddressRequest$DryRun": null, + "AssignPrivateIpAddressesRequest$AllowReassignment": "

Indicates whether to allow an IP address that is already assigned to another network interface or instance to be reassigned to the specified network interface.

", + "AssociateAddressRequest$DryRun": null, + "AssociateAddressRequest$AllowReassociation": "

[EC2-VPC] Allows an Elastic IP address that is already associated with an instance or network interface to be re-associated with the specified instance or network interface. Otherwise, the operation fails.

Default: false

", + "AssociateDhcpOptionsRequest$DryRun": null, + "AssociateRouteTableRequest$DryRun": null, + "AttachClassicLinkVpcRequest$DryRun": null, + "AttachClassicLinkVpcResult$Return": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "AttachInternetGatewayRequest$DryRun": null, + "AttachNetworkInterfaceRequest$DryRun": null, + "AttachVolumeRequest$DryRun": null, + "AttachVpnGatewayRequest$DryRun": null, + "AttributeBooleanValue$Value": "

Valid values are true or false.

", + "AuthorizeSecurityGroupEgressRequest$DryRun": null, + "AuthorizeSecurityGroupIngressRequest$DryRun": null, + "BundleInstanceRequest$DryRun": null, + "CancelBundleTaskRequest$DryRun": null, + "CancelConversionRequest$DryRun": null, + "CancelImportTaskRequest$DryRun": null, + "CancelSpotInstanceRequestsRequest$DryRun": null, + "ConfirmProductInstanceRequest$DryRun": null, + "CopyImageRequest$DryRun": null, + "CopySnapshotRequest$DryRun": null, + "CreateCustomerGatewayRequest$DryRun": null, + "CreateDhcpOptionsRequest$DryRun": null, + "CreateImageRequest$DryRun": null, + "CreateImageRequest$NoReboot": "

By default, this parameter is set to false, which means Amazon EC2 attempts to shut down the instance cleanly before image creation and then reboots the instance. When the parameter is set to true, Amazon EC2 doesn't shut down the instance before creating the image. When this option is used, file system integrity on the created image can't be guaranteed.

", + "CreateInternetGatewayRequest$DryRun": null, + "CreateKeyPairRequest$DryRun": null, + "CreateNetworkAclEntryRequest$DryRun": null, + "CreateNetworkAclEntryRequest$Egress": "

Indicates whether this is an egress rule (rule is applied to traffic leaving the subnet).

", + "CreateNetworkAclRequest$DryRun": null, + "CreateNetworkInterfaceRequest$DryRun": null, + "CreatePlacementGroupRequest$DryRun": null, + "CreateRouteRequest$DryRun": null, + "CreateRouteTableRequest$DryRun": null, + "CreateSecurityGroupRequest$DryRun": null, + "CreateSnapshotRequest$DryRun": null, + "CreateSpotDatafeedSubscriptionRequest$DryRun": null, + "CreateSubnetRequest$DryRun": null, + "CreateTagsRequest$DryRun": null, + "CreateVolumeRequest$DryRun": null, + "CreateVolumeRequest$Encrypted": "

Specifies whether the volume should be encrypted. Encrypted Amazon EBS volumes may only be attached to instances that support Amazon EBS encryption. Volumes that are created from encrypted snapshots are automatically encrypted. There is no way to create an encrypted volume from an unencrypted snapshot or vice versa. If your AMI uses encrypted volumes, you can only launch it on supported instance types. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

", + "CreateVpcPeeringConnectionRequest$DryRun": null, + "CreateVpcRequest$DryRun": null, + "CreateVpnConnectionRequest$DryRun": null, + "CreateVpnGatewayRequest$DryRun": null, + "DeleteCustomerGatewayRequest$DryRun": null, + "DeleteDhcpOptionsRequest$DryRun": null, + "DeleteInternetGatewayRequest$DryRun": null, + "DeleteKeyPairRequest$DryRun": null, + "DeleteNetworkAclEntryRequest$DryRun": null, + "DeleteNetworkAclEntryRequest$Egress": "

Indicates whether the rule is an egress rule.

", + "DeleteNetworkAclRequest$DryRun": null, + "DeleteNetworkInterfaceRequest$DryRun": null, + "DeletePlacementGroupRequest$DryRun": null, + "DeleteRouteRequest$DryRun": null, + "DeleteRouteTableRequest$DryRun": null, + "DeleteSecurityGroupRequest$DryRun": null, + "DeleteSnapshotRequest$DryRun": null, + "DeleteSpotDatafeedSubscriptionRequest$DryRun": null, + "DeleteSubnetRequest$DryRun": null, + "DeleteTagsRequest$DryRun": null, + "DeleteVolumeRequest$DryRun": null, + "DeleteVpcPeeringConnectionRequest$DryRun": null, + "DeleteVpcPeeringConnectionResult$Return": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "DeleteVpcRequest$DryRun": null, + "DeleteVpnConnectionRequest$DryRun": null, + "DeleteVpnGatewayRequest$DryRun": null, + "DeregisterImageRequest$DryRun": null, + "DescribeAccountAttributesRequest$DryRun": null, + "DescribeAddressesRequest$DryRun": null, + "DescribeAvailabilityZonesRequest$DryRun": null, + "DescribeBundleTasksRequest$DryRun": null, + "DescribeClassicLinkInstancesRequest$DryRun": null, + "DescribeConversionTasksRequest$DryRun": null, + "DescribeCustomerGatewaysRequest$DryRun": null, + "DescribeDhcpOptionsRequest$DryRun": null, + "DescribeImageAttributeRequest$DryRun": null, + "DescribeImagesRequest$DryRun": null, + "DescribeImportImageTasksRequest$DryRun": null, + "DescribeImportSnapshotTasksRequest$DryRun": null, + "DescribeInstanceAttributeRequest$DryRun": null, + "DescribeInstanceStatusRequest$DryRun": null, + "DescribeInstanceStatusRequest$IncludeAllInstances": "

When true, includes the health status for all instances. When false, includes the health status for running instances only.

Default: false

", + "DescribeInstancesRequest$DryRun": null, + "DescribeInternetGatewaysRequest$DryRun": null, + "DescribeKeyPairsRequest$DryRun": null, + "DescribeNetworkAclsRequest$DryRun": null, + "DescribeNetworkInterfaceAttributeRequest$DryRun": null, + "DescribeNetworkInterfacesRequest$DryRun": null, + "DescribePlacementGroupsRequest$DryRun": null, + "DescribeRegionsRequest$DryRun": null, + "DescribeReservedInstancesOfferingsRequest$DryRun": null, + "DescribeReservedInstancesOfferingsRequest$IncludeMarketplace": "

Include Marketplace offerings in the response.

", + "DescribeReservedInstancesRequest$DryRun": null, + "DescribeRouteTablesRequest$DryRun": null, + "DescribeSecurityGroupsRequest$DryRun": null, + "DescribeSnapshotAttributeRequest$DryRun": null, + "DescribeSnapshotsRequest$DryRun": null, + "DescribeSpotDatafeedSubscriptionRequest$DryRun": null, + "DescribeSpotInstanceRequestsRequest$DryRun": null, + "DescribeSpotPriceHistoryRequest$DryRun": null, + "DescribeSubnetsRequest$DryRun": null, + "DescribeTagsRequest$DryRun": null, + "DescribeVolumeAttributeRequest$DryRun": null, + "DescribeVolumeStatusRequest$DryRun": null, + "DescribeVolumesRequest$DryRun": null, + "DescribeVpcAttributeRequest$DryRun": null, + "DescribeVpcClassicLinkRequest$DryRun": null, + "DescribeVpcPeeringConnectionsRequest$DryRun": null, + "DescribeVpcsRequest$DryRun": null, + "DescribeVpnConnectionsRequest$DryRun": null, + "DescribeVpnGatewaysRequest$DryRun": null, + "DetachClassicLinkVpcRequest$DryRun": null, + "DetachClassicLinkVpcResult$Return": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "DetachInternetGatewayRequest$DryRun": null, + "DetachNetworkInterfaceRequest$DryRun": null, + "DetachNetworkInterfaceRequest$Force": "

Specifies whether to force a detachment.

", + "DetachVolumeRequest$DryRun": null, + "DetachVolumeRequest$Force": "

Forces detachment if the previous detachment attempt did not occur cleanly (for example, logging into an instance, unmounting the volume, and detaching normally). This option can lead to data loss or a corrupted file system. Use this option only as a last resort to detach a volume from a failed instance. The instance won't have an opportunity to flush file system caches or file system metadata. If you use this option, you must perform file system check and repair procedures.

", + "DetachVpnGatewayRequest$DryRun": null, + "DisableVpcClassicLinkRequest$DryRun": null, + "DisableVpcClassicLinkResult$Return": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "DisassociateAddressRequest$DryRun": null, + "DisassociateRouteTableRequest$DryRun": null, + "EbsBlockDevice$DeleteOnTermination": "

Indicates whether the Amazon EBS volume is deleted on instance termination.

", + "EbsBlockDevice$Encrypted": "

Indicates whether the Amazon EBS volume is encrypted. Encrypted Amazon EBS volumes may only be attached to instances that support Amazon EBS encryption.

", + "EbsInstanceBlockDevice$DeleteOnTermination": "

Indicates whether the volume is deleted on instance termination.

", + "EbsInstanceBlockDeviceSpecification$DeleteOnTermination": "

Indicates whether the volume is deleted on instance termination.

", + "EnableVolumeIORequest$DryRun": null, + "EnableVpcClassicLinkRequest$DryRun": null, + "EnableVpcClassicLinkResult$Return": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "GetConsoleOutputRequest$DryRun": null, + "GetPasswordDataRequest$DryRun": null, + "Image$Public": "

Indicates whether the image has public launch permissions. The value is true if this image has public launch permissions or false if it has only implicit and explicit launch permissions.

", + "ImportImageRequest$DryRun": null, + "ImportInstanceLaunchSpecification$Monitoring": null, + "ImportInstanceRequest$DryRun": null, + "ImportKeyPairRequest$DryRun": null, + "ImportSnapshotRequest$DryRun": null, + "ImportVolumeRequest$DryRun": null, + "Instance$SourceDestCheck": "

Specifies whether to enable an instance launched in a VPC to perform NAT. This controls whether source/destination checking is enabled on the instance. A value of true means checking is enabled, and false means checking is disabled. The value must be false for the instance to perform NAT. For more information, see NAT Instances in the Amazon Virtual Private Cloud User Guide.

", + "Instance$EbsOptimized": "

Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

", + "InstanceNetworkInterface$SourceDestCheck": "

Indicates whether to validate network traffic to or from this network interface.

", + "InstanceNetworkInterfaceAttachment$DeleteOnTermination": "

Indicates whether the network interface is deleted when the instance is terminated.

", + "InstanceNetworkInterfaceSpecification$DeleteOnTermination": "

If set to true, the interface is deleted when the instance is terminated. You can specify true only if creating a new network interface when launching an instance.

", + "InstanceNetworkInterfaceSpecification$AssociatePublicIpAddress": "

Indicates whether to assign a public IP address to an instance you launch in a VPC. The public IP address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one. You cannot specify more than one network interface in the request. If launching into a default subnet, the default value is true.

", + "InstancePrivateIpAddress$Primary": "

Indicates whether this IP address is the primary private IP address of the network interface.

", + "LaunchSpecification$EbsOptimized": "

Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

Default: false

", + "ModifyImageAttributeRequest$DryRun": null, + "ModifyInstanceAttributeRequest$DryRun": null, + "ModifyNetworkInterfaceAttributeRequest$DryRun": null, + "ModifySnapshotAttributeRequest$DryRun": null, + "ModifyVolumeAttributeRequest$DryRun": null, + "MonitorInstancesRequest$DryRun": null, + "NetworkAcl$IsDefault": "

Indicates whether this is the default network ACL for the VPC.

", + "NetworkAclEntry$Egress": "

Indicates whether the rule is an egress rule (applied to traffic leaving the subnet).

", + "NetworkInterface$RequesterManaged": "

Indicates whether the network interface is being managed by AWS.

", + "NetworkInterface$SourceDestCheck": "

Indicates whether traffic to or from the instance is validated.

", + "NetworkInterfaceAttachment$DeleteOnTermination": "

Indicates whether the network interface is deleted when the instance is terminated.

", + "NetworkInterfaceAttachmentChanges$DeleteOnTermination": "

Indicates whether the network interface is deleted when the instance is terminated.

", + "NetworkInterfacePrivateIpAddress$Primary": "

Indicates whether this IP address is the primary private IP address of the network interface.

", + "PriceSchedule$Active": "

The current price schedule, as determined by the term remaining for the Reserved Instance in the listing.

A specific price schedule is always in effect, but only one price schedule can be active at any time. Take, for example, a Reserved Instance listing that has five months remaining in its term. When you specify price schedules for five months and two months, this means that schedule 1, covering the first three months of the remaining term, will be active during months 5, 4, and 3. Then schedule 2, covering the last two months of the term, will be active for months 2 and 1.

", + "PrivateIpAddressSpecification$Primary": "

Indicates whether the private IP address is the primary private IP address. Only one IP address can be designated as primary.

", + "PurchaseReservedInstancesOfferingRequest$DryRun": null, + "RebootInstancesRequest$DryRun": null, + "RegisterImageRequest$DryRun": null, + "RejectVpcPeeringConnectionRequest$DryRun": null, + "RejectVpcPeeringConnectionResult$Return": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "ReleaseAddressRequest$DryRun": null, + "ReplaceNetworkAclAssociationRequest$DryRun": null, + "ReplaceNetworkAclEntryRequest$DryRun": null, + "ReplaceNetworkAclEntryRequest$Egress": "

Indicates whether to replace the egress rule.

Default: If no value is specified, we replace the ingress rule.

", + "ReplaceRouteRequest$DryRun": null, + "ReplaceRouteTableAssociationRequest$DryRun": null, + "ReportInstanceStatusRequest$DryRun": null, + "RequestSpotInstancesRequest$DryRun": null, + "ReservedInstancesOffering$Marketplace": "

Indicates whether the offering is available through the Reserved Instance Marketplace (resale) or AWS. If it's a Reserved Instance Marketplace offering, this is true.

", + "ResetImageAttributeRequest$DryRun": null, + "ResetInstanceAttributeRequest$DryRun": null, + "ResetNetworkInterfaceAttributeRequest$DryRun": null, + "ResetSnapshotAttributeRequest$DryRun": null, + "RevokeSecurityGroupEgressRequest$DryRun": null, + "RevokeSecurityGroupIngressRequest$DryRun": null, + "RouteTableAssociation$Main": "

Indicates whether this is the main route table.

", + "RunInstancesMonitoringEnabled$Enabled": "

Indicates whether monitoring is enabled for the instance.

", + "RunInstancesRequest$DryRun": null, + "RunInstancesRequest$DisableApiTermination": "

If you set this parameter to true, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. If you set this parameter to true and then later want to be able to terminate the instance, you must first change the value of the disableApiTermination attribute to false using ModifyInstanceAttribute. Alternatively, if you set InstanceInitiatedShutdownBehavior to terminate, you can terminate the instance by running the shutdown command from the instance.

Default: false

", + "RunInstancesRequest$EbsOptimized": "

Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance.

Default: false

", + "Snapshot$Encrypted": "

Indicates whether the snapshot is encrypted.

", + "StartInstancesRequest$DryRun": null, + "StopInstancesRequest$DryRun": null, + "StopInstancesRequest$Force": "

Forces the instances to stop. The instances do not have an opportunity to flush file system caches or file system metadata. If you use this option, you must perform file system check and repair procedures. This option is not recommended for Windows instances.

Default: false

", + "Subnet$DefaultForAz": "

Indicates whether this is the default subnet for the Availability Zone.

", + "Subnet$MapPublicIpOnLaunch": "

Indicates whether instances launched in this subnet receive a public IP address.

", + "TerminateInstancesRequest$DryRun": null, + "UnmonitorInstancesRequest$DryRun": null, + "Volume$Encrypted": "

Indicates whether the volume will be encrypted.

", + "VolumeAttachment$DeleteOnTermination": "

Indicates whether the Amazon EBS volume is deleted on instance termination.

", + "Vpc$IsDefault": "

Indicates whether the VPC is the default VPC.

", + "VpcClassicLink$ClassicLinkEnabled": "

Indicates whether the VPC is enabled for ClassicLink.

", + "VpnConnectionOptions$StaticRoutesOnly": "

Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.

", + "VpnConnectionOptionsSpecification$StaticRoutesOnly": "

Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.

", + "RequestSpotLaunchSpecification$EbsOptimized": "

Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

Default: false

" + } + }, + "BundleIdStringList": { + "base": null, + "refs": { + "DescribeBundleTasksRequest$BundleIds": "

One or more bundle task IDs.

Default: Describes all your bundle tasks.

" + } + }, + "BundleInstanceRequest": { + "base": null, + "refs": { + } + }, + "BundleInstanceResult": { + "base": null, + "refs": { + } + }, + "BundleTask": { + "base": "

Describes a bundle task.

", + "refs": { + "BundleInstanceResult$BundleTask": "

Information about the bundle task.

", + "BundleTaskList$member": null, + "CancelBundleTaskResult$BundleTask": "

The bundle task.

" + } + }, + "BundleTaskError": { + "base": "

Describes an error for BundleInstance.

", + "refs": { + "BundleTask$BundleTaskError": "

If the task fails, a description of the error.

" + } + }, + "BundleTaskList": { + "base": null, + "refs": { + "DescribeBundleTasksResult$BundleTasks": "

Information about one or more bundle tasks.

" + } + }, + "BundleTaskState": { + "base": null, + "refs": { + "BundleTask$State": "

The state of the task.

" + } + }, + "CancelBundleTaskRequest": { + "base": null, + "refs": { + } + }, + "CancelBundleTaskResult": { + "base": null, + "refs": { + } + }, + "CancelConversionRequest": { + "base": null, + "refs": { + } + }, + "CancelExportTaskRequest": { + "base": null, + "refs": { + } + }, + "CancelImportTaskRequest": { + "base": null, + "refs": { + } + }, + "CancelImportTaskResult": { + "base": null, + "refs": { + } + }, + "CancelReservedInstancesListingRequest": { + "base": null, + "refs": { + } + }, + "CancelReservedInstancesListingResult": { + "base": null, + "refs": { + } + }, + "CancelSpotInstanceRequestState": { + "base": null, + "refs": { + "CancelledSpotInstanceRequest$State": "

The state of the Spot Instance request.

" + } + }, + "CancelSpotInstanceRequestsRequest": { + "base": null, + "refs": { + } + }, + "CancelSpotInstanceRequestsResult": { + "base": null, + "refs": { + } + }, + "CancelledSpotInstanceRequest": { + "base": "

Describes a request to cancel a Spot Instance.

", + "refs": { + "CancelledSpotInstanceRequestList$member": null + } + }, + "CancelledSpotInstanceRequestList": { + "base": null, + "refs": { + "CancelSpotInstanceRequestsResult$CancelledSpotInstanceRequests": "

One or more Spot Instance requests.

" + } + }, + "ClassicLinkInstance": { + "base": "

Describes a linked EC2-Classic instance.

", + "refs": { + "ClassicLinkInstanceList$member": null + } + }, + "ClassicLinkInstanceList": { + "base": null, + "refs": { + "DescribeClassicLinkInstancesResult$Instances": "

Information about one or more linked EC2-Classic instances.

" + } + }, + "ClientData": { + "base": "

Client-specific data.

", + "refs": { + "ImportImageRequest$ClientData": "

Client-specific data.

", + "ImportSnapshotRequest$ClientData": null + } + }, + "ConfirmProductInstanceRequest": { + "base": null, + "refs": { + } + }, + "ConfirmProductInstanceResult": { + "base": null, + "refs": { + } + }, + "ContainerFormat": { + "base": null, + "refs": { + "ExportToS3Task$ContainerFormat": "

The container format used to combine disk images with metadata (such as OVF). If absent, only the disk image is exported.

", + "ExportToS3TaskSpecification$ContainerFormat": null + } + }, + "ConversionIdStringList": { + "base": null, + "refs": { + "DescribeConversionTasksRequest$ConversionTaskIds": "

One or more conversion task IDs.

" + } + }, + "ConversionTask": { + "base": "

Describes a conversion task.

", + "refs": { + "DescribeConversionTaskList$member": null, + "ImportInstanceResult$ConversionTask": null, + "ImportVolumeResult$ConversionTask": null + } + }, + "ConversionTaskState": { + "base": null, + "refs": { + "ConversionTask$State": "

The state of the conversion task.

" + } + }, + "CopyImageRequest": { + "base": null, + "refs": { + } + }, + "CopyImageResult": { + "base": null, + "refs": { + } + }, + "CopySnapshotRequest": { + "base": null, + "refs": { + } + }, + "CopySnapshotResult": { + "base": null, + "refs": { + } + }, + "CreateCustomerGatewayRequest": { + "base": null, + "refs": { + } + }, + "CreateCustomerGatewayResult": { + "base": null, + "refs": { + } + }, + "CreateDhcpOptionsRequest": { + "base": null, + "refs": { + } + }, + "CreateDhcpOptionsResult": { + "base": null, + "refs": { + } + }, + "CreateImageRequest": { + "base": null, + "refs": { + } + }, + "CreateImageResult": { + "base": null, + "refs": { + } + }, + "CreateInstanceExportTaskRequest": { + "base": null, + "refs": { + } + }, + "CreateInstanceExportTaskResult": { + "base": null, + "refs": { + } + }, + "CreateInternetGatewayRequest": { + "base": null, + "refs": { + } + }, + "CreateInternetGatewayResult": { + "base": null, + "refs": { + } + }, + "CreateKeyPairRequest": { + "base": null, + "refs": { + } + }, + "CreateNetworkAclEntryRequest": { + "base": null, + "refs": { + } + }, + "CreateNetworkAclRequest": { + "base": null, + "refs": { + } + }, + "CreateNetworkAclResult": { + "base": null, + "refs": { + } + }, + "CreateNetworkInterfaceRequest": { + "base": null, + "refs": { + } + }, + "CreateNetworkInterfaceResult": { + "base": null, + "refs": { + } + }, + "CreatePlacementGroupRequest": { + "base": null, + "refs": { + } + }, + "CreateReservedInstancesListingRequest": { + "base": null, + "refs": { + } + }, + "CreateReservedInstancesListingResult": { + "base": null, + "refs": { + } + }, + "CreateRouteRequest": { + "base": null, + "refs": { + } + }, + "CreateRouteTableRequest": { + "base": null, + "refs": { + } + }, + "CreateRouteTableResult": { + "base": null, + "refs": { + } + }, + "CreateSecurityGroupRequest": { + "base": null, + "refs": { + } + }, + "CreateSecurityGroupResult": { + "base": null, + "refs": { + } + }, + "CreateSnapshotRequest": { + "base": null, + "refs": { + } + }, + "CreateSpotDatafeedSubscriptionRequest": { + "base": null, + "refs": { + } + }, + "CreateSpotDatafeedSubscriptionResult": { + "base": null, + "refs": { + } + }, + "CreateSubnetRequest": { + "base": null, + "refs": { + } + }, + "CreateSubnetResult": { + "base": null, + "refs": { + } + }, + "CreateTagsRequest": { + "base": null, + "refs": { + } + }, + "CreateVolumePermission": { + "base": null, + "refs": { + "CreateVolumePermissionList$member": null + } + }, + "CreateVolumePermissionList": { + "base": null, + "refs": { + "CreateVolumePermissionModifications$Add": "

Adds a specific AWS account ID or group to a volume's list of create volume permissions.

", + "CreateVolumePermissionModifications$Remove": "

Removes a specific AWS account ID or group from a volume's list of create volume permissions.

", + "DescribeSnapshotAttributeResult$CreateVolumePermissions": "

A list of permissions for creating volumes from the snapshot.

" + } + }, + "CreateVolumePermissionModifications": { + "base": null, + "refs": { + "ModifySnapshotAttributeRequest$CreateVolumePermission": "

A JSON representation of the snapshot attribute modification.

" + } + }, + "CreateVolumeRequest": { + "base": null, + "refs": { + } + }, + "CreateVpcPeeringConnectionRequest": { + "base": null, + "refs": { + } + }, + "CreateVpcPeeringConnectionResult": { + "base": null, + "refs": { + } + }, + "CreateVpcRequest": { + "base": null, + "refs": { + } + }, + "CreateVpcResult": { + "base": null, + "refs": { + } + }, + "CreateVpnConnectionRequest": { + "base": null, + "refs": { + } + }, + "CreateVpnConnectionResult": { + "base": null, + "refs": { + } + }, + "CreateVpnConnectionRouteRequest": { + "base": null, + "refs": { + } + }, + "CreateVpnGatewayRequest": { + "base": null, + "refs": { + } + }, + "CreateVpnGatewayResult": { + "base": null, + "refs": { + } + }, + "CurrencyCodeValues": { + "base": null, + "refs": { + "PriceSchedule$CurrencyCode": "

The currency for transacting the Reserved Instance resale. At this time, the only supported currency is USD.

", + "PriceScheduleSpecification$CurrencyCode": "

The currency for transacting the Reserved Instance resale. At this time, the only supported currency is USD.

", + "ReservedInstanceLimitPrice$CurrencyCode": "

The currency in which the limitPrice amount is specified. At this time, the only supported currency is USD.

", + "ReservedInstances$CurrencyCode": "

The currency of the Reserved Instance. It's specified using ISO 4217 standard currency codes. At this time, the only supported currency is USD.

", + "ReservedInstancesOffering$CurrencyCode": "

The currency of the Reserved Instance offering you are purchasing. It's specified using ISO 4217 standard currency codes. At this time, the only supported currency is USD.

" + } + }, + "CustomerGateway": { + "base": "

Describes a customer gateway.

", + "refs": { + "CreateCustomerGatewayResult$CustomerGateway": "

Information about the customer gateway.

", + "CustomerGatewayList$member": null + } + }, + "CustomerGatewayIdStringList": { + "base": null, + "refs": { + "DescribeCustomerGatewaysRequest$CustomerGatewayIds": "

One or more customer gateway IDs.

Default: Describes all your customer gateways.

" + } + }, + "CustomerGatewayList": { + "base": null, + "refs": { + "DescribeCustomerGatewaysResult$CustomerGateways": "

Information about one or more customer gateways.

" + } + }, + "DatafeedSubscriptionState": { + "base": null, + "refs": { + "SpotDatafeedSubscription$State": "

The state of the Spot Instance data feed subscription.

" + } + }, + "DateTime": { + "base": null, + "refs": { + "BundleTask$StartTime": "

The time this task started.

", + "BundleTask$UpdateTime": "

The time of the most recent update for the task.

", + "ClientData$UploadStart": "

The time that the disk upload starts.

", + "ClientData$UploadEnd": "

The time that the disk upload ends.

", + "DescribeSpotPriceHistoryRequest$StartTime": "

The date and time, up to the past 90 days, from which to start retrieving the price history data.

", + "DescribeSpotPriceHistoryRequest$EndTime": "

The date and time, up to the current date, from which to stop retrieving the price history data.

", + "EbsInstanceBlockDevice$AttachTime": "

The time stamp when the attachment initiated.

", + "GetConsoleOutputResult$Timestamp": "

The time the output was last updated.

", + "GetPasswordDataResult$Timestamp": "

The time the data was last updated.

", + "Instance$LaunchTime": "

The time the instance was launched.

", + "InstanceNetworkInterfaceAttachment$AttachTime": "

The time stamp when the attachment initiated.

", + "InstanceStatusDetails$ImpairedSince": "

The time when a status check failed. For an instance that was launched and impaired, this is the time when the instance was launched.

", + "InstanceStatusEvent$NotBefore": "

The earliest scheduled start time for the event.

", + "InstanceStatusEvent$NotAfter": "

The latest scheduled end time for the event.

", + "NetworkInterfaceAttachment$AttachTime": "

The timestamp indicating when the attachment initiated.

", + "ReportInstanceStatusRequest$StartTime": "

The time at which the reported instance health state began.

", + "ReportInstanceStatusRequest$EndTime": "

The time at which the reported instance health state ended.

", + "RequestSpotInstancesRequest$ValidFrom": "

The start date of the request. If this is a one-time request, the request becomes active at this date and time and remains active until all instances launch, the request expires, or the request is canceled. If the request is persistent, the request becomes active at this date and time and remains active until it expires or is canceled.

Default: The request is effective indefinitely.

", + "RequestSpotInstancesRequest$ValidUntil": "

The end date of the request. If this is a one-time request, the request remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date and time is reached.

Default: The request is effective indefinitely.

", + "ReservedInstances$Start": "

The date and time the Reserved Instance started.

", + "ReservedInstances$End": "

The time when the Reserved Instance expires.

", + "ReservedInstancesListing$CreateDate": "

The time the listing was created.

", + "ReservedInstancesListing$UpdateDate": "

The last modified timestamp of the listing.

", + "ReservedInstancesModification$CreateDate": "

The time when the modification request was created.

", + "ReservedInstancesModification$UpdateDate": "

The time when the modification request was last updated.

", + "ReservedInstancesModification$EffectiveDate": "

The time for the modification to become effective.

", + "Snapshot$StartTime": "

The time stamp when the snapshot was initiated.

", + "SpotInstanceRequest$ValidFrom": "

The start date of the request. If this is a one-time request, the request becomes active at this date and time and remains active until all instances launch, the request expires, or the request is canceled. If the request is persistent, the request becomes active at this date and time and remains active until it expires or is canceled.

", + "SpotInstanceRequest$ValidUntil": "

The end date of the request. If this is a one-time request, the request remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date is reached.

", + "SpotInstanceRequest$CreateTime": "

The time stamp when the Spot Instance request was created.

", + "SpotInstanceStatus$UpdateTime": "

The time of the most recent status update.

", + "SpotPrice$Timestamp": "

The date and time the request was created.

", + "VgwTelemetry$LastStatusChange": "

The date and time of the last change in status.

", + "Volume$CreateTime": "

The time stamp when volume creation was initiated.

", + "VolumeAttachment$AttachTime": "

The time stamp when the attachment initiated.

", + "VolumeStatusEvent$NotBefore": "

The earliest start time of the event.

", + "VolumeStatusEvent$NotAfter": "

The latest end time of the event.

", + "VpcPeeringConnection$ExpirationTime": "

The time that an unaccepted VPC peering connection will expire.

" + } + }, + "DeleteCustomerGatewayRequest": { + "base": null, + "refs": { + } + }, + "DeleteDhcpOptionsRequest": { + "base": null, + "refs": { + } + }, + "DeleteInternetGatewayRequest": { + "base": null, + "refs": { + } + }, + "DeleteKeyPairRequest": { + "base": null, + "refs": { + } + }, + "DeleteNetworkAclEntryRequest": { + "base": null, + "refs": { + } + }, + "DeleteNetworkAclRequest": { + "base": null, + "refs": { + } + }, + "DeleteNetworkInterfaceRequest": { + "base": null, + "refs": { + } + }, + "DeletePlacementGroupRequest": { + "base": null, + "refs": { + } + }, + "DeleteRouteRequest": { + "base": null, + "refs": { + } + }, + "DeleteRouteTableRequest": { + "base": null, + "refs": { + } + }, + "DeleteSecurityGroupRequest": { + "base": null, + "refs": { + } + }, + "DeleteSnapshotRequest": { + "base": null, + "refs": { + } + }, + "DeleteSpotDatafeedSubscriptionRequest": { + "base": null, + "refs": { + } + }, + "DeleteSubnetRequest": { + "base": null, + "refs": { + } + }, + "DeleteTagsRequest": { + "base": null, + "refs": { + } + }, + "DeleteVolumeRequest": { + "base": null, + "refs": { + } + }, + "DeleteVpcPeeringConnectionRequest": { + "base": null, + "refs": { + } + }, + "DeleteVpcPeeringConnectionResult": { + "base": null, + "refs": { + } + }, + "DeleteVpcRequest": { + "base": null, + "refs": { + } + }, + "DeleteVpnConnectionRequest": { + "base": null, + "refs": { + } + }, + "DeleteVpnConnectionRouteRequest": { + "base": null, + "refs": { + } + }, + "DeleteVpnGatewayRequest": { + "base": null, + "refs": { + } + }, + "DeregisterImageRequest": { + "base": null, + "refs": { + } + }, + "DescribeAccountAttributesRequest": { + "base": null, + "refs": { + } + }, + "DescribeAccountAttributesResult": { + "base": null, + "refs": { + } + }, + "DescribeAddressesRequest": { + "base": null, + "refs": { + } + }, + "DescribeAddressesResult": { + "base": null, + "refs": { + } + }, + "DescribeAvailabilityZonesRequest": { + "base": null, + "refs": { + } + }, + "DescribeAvailabilityZonesResult": { + "base": null, + "refs": { + } + }, + "DescribeBundleTasksRequest": { + "base": null, + "refs": { + } + }, + "DescribeBundleTasksResult": { + "base": null, + "refs": { + } + }, + "DescribeClassicLinkInstancesRequest": { + "base": null, + "refs": { + } + }, + "DescribeClassicLinkInstancesResult": { + "base": null, + "refs": { + } + }, + "DescribeConversionTaskList": { + "base": null, + "refs": { + "DescribeConversionTasksResult$ConversionTasks": null + } + }, + "DescribeConversionTasksRequest": { + "base": null, + "refs": { + } + }, + "DescribeConversionTasksResult": { + "base": null, + "refs": { + } + }, + "DescribeCustomerGatewaysRequest": { + "base": null, + "refs": { + } + }, + "DescribeCustomerGatewaysResult": { + "base": null, + "refs": { + } + }, + "DescribeDhcpOptionsRequest": { + "base": null, + "refs": { + } + }, + "DescribeDhcpOptionsResult": { + "base": null, + "refs": { + } + }, + "DescribeExportTasksRequest": { + "base": null, + "refs": { + } + }, + "DescribeExportTasksResult": { + "base": null, + "refs": { + } + }, + "DescribeImageAttributeRequest": { + "base": null, + "refs": { + } + }, + "DescribeImagesRequest": { + "base": null, + "refs": { + } + }, + "DescribeImagesResult": { + "base": null, + "refs": { + } + }, + "DescribeImportImageTasksRequest": { + "base": null, + "refs": { + } + }, + "DescribeImportImageTasksResult": { + "base": null, + "refs": { + } + }, + "DescribeImportSnapshotTasksRequest": { + "base": null, + "refs": { + } + }, + "DescribeImportSnapshotTasksResult": { + "base": null, + "refs": { + } + }, + "DescribeInstanceAttributeRequest": { + "base": null, + "refs": { + } + }, + "DescribeInstanceStatusRequest": { + "base": null, + "refs": { + } + }, + "DescribeInstanceStatusResult": { + "base": null, + "refs": { + } + }, + "DescribeInstancesRequest": { + "base": null, + "refs": { + } + }, + "DescribeInstancesResult": { + "base": null, + "refs": { + } + }, + "DescribeInternetGatewaysRequest": { + "base": null, + "refs": { + } + }, + "DescribeInternetGatewaysResult": { + "base": null, + "refs": { + } + }, + "DescribeKeyPairsRequest": { + "base": null, + "refs": { + } + }, + "DescribeKeyPairsResult": { + "base": null, + "refs": { + } + }, + "DescribeNetworkAclsRequest": { + "base": null, + "refs": { + } + }, + "DescribeNetworkAclsResult": { + "base": null, + "refs": { + } + }, + "DescribeNetworkInterfaceAttributeRequest": { + "base": null, + "refs": { + } + }, + "DescribeNetworkInterfaceAttributeResult": { + "base": null, + "refs": { + } + }, + "DescribeNetworkInterfacesRequest": { + "base": null, + "refs": { + } + }, + "DescribeNetworkInterfacesResult": { + "base": null, + "refs": { + } + }, + "DescribePlacementGroupsRequest": { + "base": null, + "refs": { + } + }, + "DescribePlacementGroupsResult": { + "base": null, + "refs": { + } + }, + "DescribeRegionsRequest": { + "base": null, + "refs": { + } + }, + "DescribeRegionsResult": { + "base": null, + "refs": { + } + }, + "DescribeReservedInstancesListingsRequest": { + "base": null, + "refs": { + } + }, + "DescribeReservedInstancesListingsResult": { + "base": null, + "refs": { + } + }, + "DescribeReservedInstancesModificationsRequest": { + "base": null, + "refs": { + } + }, + "DescribeReservedInstancesModificationsResult": { + "base": null, + "refs": { + } + }, + "DescribeReservedInstancesOfferingsRequest": { + "base": null, + "refs": { + } + }, + "DescribeReservedInstancesOfferingsResult": { + "base": null, + "refs": { + } + }, + "DescribeReservedInstancesRequest": { + "base": null, + "refs": { + } + }, + "DescribeReservedInstancesResult": { + "base": null, + "refs": { + } + }, + "DescribeRouteTablesRequest": { + "base": null, + "refs": { + } + }, + "DescribeRouteTablesResult": { + "base": null, + "refs": { + } + }, + "DescribeSecurityGroupsRequest": { + "base": null, + "refs": { + } + }, + "DescribeSecurityGroupsResult": { + "base": null, + "refs": { + } + }, + "DescribeSnapshotAttributeRequest": { + "base": null, + "refs": { + } + }, + "DescribeSnapshotAttributeResult": { + "base": null, + "refs": { + } + }, + "DescribeSnapshotsRequest": { + "base": null, + "refs": { + } + }, + "DescribeSnapshotsResult": { + "base": null, + "refs": { + } + }, + "DescribeSpotDatafeedSubscriptionRequest": { + "base": null, + "refs": { + } + }, + "DescribeSpotDatafeedSubscriptionResult": { + "base": null, + "refs": { + } + }, + "DescribeSpotInstanceRequestsRequest": { + "base": null, + "refs": { + } + }, + "DescribeSpotInstanceRequestsResult": { + "base": null, + "refs": { + } + }, + "DescribeSpotPriceHistoryRequest": { + "base": null, + "refs": { + } + }, + "DescribeSpotPriceHistoryResult": { + "base": null, + "refs": { + } + }, + "DescribeSubnetsRequest": { + "base": null, + "refs": { + } + }, + "DescribeSubnetsResult": { + "base": null, + "refs": { + } + }, + "DescribeTagsRequest": { + "base": null, + "refs": { + } + }, + "DescribeTagsResult": { + "base": null, + "refs": { + } + }, + "DescribeVolumeAttributeRequest": { + "base": null, + "refs": { + } + }, + "DescribeVolumeAttributeResult": { + "base": null, + "refs": { + } + }, + "DescribeVolumeStatusRequest": { + "base": null, + "refs": { + } + }, + "DescribeVolumeStatusResult": { + "base": null, + "refs": { + } + }, + "DescribeVolumesRequest": { + "base": null, + "refs": { + } + }, + "DescribeVolumesResult": { + "base": null, + "refs": { + } + }, + "DescribeVpcAttributeRequest": { + "base": null, + "refs": { + } + }, + "DescribeVpcAttributeResult": { + "base": null, + "refs": { + } + }, + "DescribeVpcClassicLinkRequest": { + "base": null, + "refs": { + } + }, + "DescribeVpcClassicLinkResult": { + "base": null, + "refs": { + } + }, + "DescribeVpcPeeringConnectionsRequest": { + "base": null, + "refs": { + } + }, + "DescribeVpcPeeringConnectionsResult": { + "base": null, + "refs": { + } + }, + "DescribeVpcsRequest": { + "base": null, + "refs": { + } + }, + "DescribeVpcsResult": { + "base": null, + "refs": { + } + }, + "DescribeVpnConnectionsRequest": { + "base": null, + "refs": { + } + }, + "DescribeVpnConnectionsResult": { + "base": null, + "refs": { + } + }, + "DescribeVpnGatewaysRequest": { + "base": null, + "refs": { + } + }, + "DescribeVpnGatewaysResult": { + "base": null, + "refs": { + } + }, + "DetachClassicLinkVpcRequest": { + "base": null, + "refs": { + } + }, + "DetachClassicLinkVpcResult": { + "base": null, + "refs": { + } + }, + "DetachInternetGatewayRequest": { + "base": null, + "refs": { + } + }, + "DetachNetworkInterfaceRequest": { + "base": null, + "refs": { + } + }, + "DetachVolumeRequest": { + "base": null, + "refs": { + } + }, + "DetachVpnGatewayRequest": { + "base": null, + "refs": { + } + }, + "DeviceType": { + "base": null, + "refs": { + "Image$RootDeviceType": "

The type of root device used by the AMI. The AMI can use an Amazon EBS volume or an instance store volume.

", + "Instance$RootDeviceType": "

The root device type used by the AMI. The AMI can use an Amazon EBS volume or an instance store volume.

" + } + }, + "DhcpConfiguration": { + "base": "

Describes a DHCP configuration option.

", + "refs": { + "DhcpConfigurationList$member": null + } + }, + "DhcpConfigurationList": { + "base": null, + "refs": { + "DhcpOptions$DhcpConfigurations": "

One or more DHCP options in the set.

" + } + }, + "DhcpOptions": { + "base": "

Describes a set of DHCP options.

", + "refs": { + "CreateDhcpOptionsResult$DhcpOptions": "

A set of DHCP options.

", + "DhcpOptionsList$member": null + } + }, + "DhcpOptionsIdStringList": { + "base": null, + "refs": { + "DescribeDhcpOptionsRequest$DhcpOptionsIds": "

The IDs of one or more DHCP options sets.

Default: Describes all your DHCP options sets.

" + } + }, + "DhcpOptionsList": { + "base": null, + "refs": { + "DescribeDhcpOptionsResult$DhcpOptions": "

Information about one or more DHCP options sets.

" + } + }, + "DisableVgwRoutePropagationRequest": { + "base": null, + "refs": { + } + }, + "DisableVpcClassicLinkRequest": { + "base": null, + "refs": { + } + }, + "DisableVpcClassicLinkResult": { + "base": null, + "refs": { + } + }, + "DisassociateAddressRequest": { + "base": null, + "refs": { + } + }, + "DisassociateRouteTableRequest": { + "base": null, + "refs": { + } + }, + "DiskImage": { + "base": "

Describes a disk image.

", + "refs": { + "DiskImageList$member": null + } + }, + "DiskImageDescription": { + "base": null, + "refs": { + "ImportInstanceVolumeDetailItem$Image": "

The image.

", + "ImportVolumeTaskDetails$Image": "

The image.

" + } + }, + "DiskImageDetail": { + "base": null, + "refs": { + "DiskImage$Image": null, + "ImportVolumeRequest$Image": null + } + }, + "DiskImageFormat": { + "base": null, + "refs": { + "DiskImageDescription$Format": "

The disk image format.

", + "DiskImageDetail$Format": "

The disk image format.

", + "ExportToS3Task$DiskImageFormat": "

The format for the exported image.

", + "ExportToS3TaskSpecification$DiskImageFormat": null + } + }, + "DiskImageList": { + "base": null, + "refs": { + "ImportInstanceRequest$DiskImages": null + } + }, + "DiskImageVolumeDescription": { + "base": null, + "refs": { + "ImportInstanceVolumeDetailItem$Volume": "

The volume.

", + "ImportVolumeTaskDetails$Volume": "

The volume.

" + } + }, + "DomainType": { + "base": null, + "refs": { + "Address$Domain": "

Indicates whether this Elastic IP address is for use with instances in EC2-Classic (standard) or instances in a VPC (vpc).

", + "AllocateAddressRequest$Domain": "

Set to vpc to allocate the address for use with instances in a VPC.

Default: The address is for use with instances in EC2-Classic.

", + "AllocateAddressResult$Domain": "

Indicates whether this Elastic IP address is for use with instances in EC2-Classic (standard) or instances in a VPC (vpc).

" + } + }, + "Double": { + "base": null, + "refs": { + "ClientData$UploadSize": "

The size of the uploaded disk image.

", + "PriceSchedule$Price": "

The fixed price for the term.

", + "PriceScheduleSpecification$Price": "

The fixed price for the term.

", + "PricingDetail$Price": "

The price per instance.

", + "RecurringCharge$Amount": "

The amount of the recurring charge.

", + "ReservedInstanceLimitPrice$Amount": "

Used for Reserved Instance Marketplace offerings. Specifies the limit price on the total order (instanceCount * price).

", + "SnapshotDetail$DiskImageSize": "

The size of the disk in the snapshot.

", + "SnapshotTaskDetail$DiskImageSize": "

The size of the disk in the snapshot.

" + } + }, + "EbsBlockDevice": { + "base": "

Describes an Amazon EBS block device.

", + "refs": { + "BlockDeviceMapping$Ebs": "

Parameters used to automatically set up Amazon EBS volumes when the instance is launched.

" + } + }, + "EbsInstanceBlockDevice": { + "base": "

Describes a parameter used to set up an Amazon EBS volume in a block device mapping.

", + "refs": { + "InstanceBlockDeviceMapping$Ebs": "

Parameters used to automatically set up Amazon EBS volumes when the instance is launched.

" + } + }, + "EbsInstanceBlockDeviceSpecification": { + "base": null, + "refs": { + "InstanceBlockDeviceMappingSpecification$Ebs": "

Parameters used to automatically set up Amazon EBS volumes when the instance is launched.

" + } + }, + "EnableVgwRoutePropagationRequest": { + "base": null, + "refs": { + } + }, + "EnableVolumeIORequest": { + "base": null, + "refs": { + } + }, + "EnableVpcClassicLinkRequest": { + "base": null, + "refs": { + } + }, + "EnableVpcClassicLinkResult": { + "base": null, + "refs": { + } + }, + "EventCode": { + "base": null, + "refs": { + "InstanceStatusEvent$Code": "

The associated code of the event.

" + } + }, + "ExecutableByStringList": { + "base": null, + "refs": { + "DescribeImagesRequest$ExecutableUsers": "

Scopes the images by users with explicit launch permissions. Specify an AWS account ID, self (the sender of the request), or all (public AMIs).

" + } + }, + "ExportEnvironment": { + "base": null, + "refs": { + "CreateInstanceExportTaskRequest$TargetEnvironment": "

The target virtualization environment.

", + "InstanceExportDetails$TargetEnvironment": "

The target virtualization environment.

" + } + }, + "ExportTask": { + "base": "

Describes an export task.

", + "refs": { + "CreateInstanceExportTaskResult$ExportTask": null, + "ExportTaskList$member": null + } + }, + "ExportTaskIdStringList": { + "base": null, + "refs": { + "DescribeExportTasksRequest$ExportTaskIds": "

One or more export task IDs.

" + } + }, + "ExportTaskList": { + "base": null, + "refs": { + "DescribeExportTasksResult$ExportTasks": null + } + }, + "ExportTaskState": { + "base": null, + "refs": { + "ExportTask$State": "

The state of the conversion task.

" + } + }, + "ExportToS3Task": { + "base": null, + "refs": { + "ExportTask$ExportToS3Task": null + } + }, + "ExportToS3TaskSpecification": { + "base": null, + "refs": { + "CreateInstanceExportTaskRequest$ExportToS3Task": null + } + }, + "Filter": { + "base": "

A filter name and value pair that is used to return a more specific list of results. Filters can be used to match a set of resources by various criteria, such as tags, attributes, or IDs.

", + "refs": { + "FilterList$member": null + } + }, + "FilterList": { + "base": null, + "refs": { + "DescribeAddressesRequest$Filters": "

One or more filters. Filter names and values are case-sensitive.

  • allocation-id - [EC2-VPC] The allocation ID for the address.

  • association-id - [EC2-VPC] The association ID for the address.

  • domain - Indicates whether the address is for use in EC2-Classic (standard) or in a VPC (vpc).

  • instance-id - The ID of the instance the address is associated with, if any.

  • network-interface-id - [EC2-VPC] The ID of the network interface that the address is associated with, if any.

  • network-interface-owner-id - The AWS account ID of the owner.

  • private-ip-address - [EC2-VPC] The private IP address associated with the Elastic IP address.

  • public-ip - The Elastic IP address.

", + "DescribeAvailabilityZonesRequest$Filters": "

One or more filters.

  • message - Information about the Availability Zone.

  • region-name - The name of the region for the Availability Zone (for example, us-east-1).

  • state - The state of the Availability Zone (available | impaired | unavailable).

  • zone-name - The name of the Availability Zone (for example, us-east-1a).

", + "DescribeBundleTasksRequest$Filters": "

One or more filters.

  • bundle-id - The ID of the bundle task.

  • error-code - If the task failed, the error code returned.

  • error-message - If the task failed, the error message returned.

  • instance-id - The ID of the instance.

  • progress - The level of task completion, as a percentage (for example, 20%).

  • s3-bucket - The Amazon S3 bucket to store the AMI.

  • s3-prefix - The beginning of the AMI name.

  • start-time - The time the task started (for example, 2013-09-15T17:15:20.000Z).

  • state - The state of the task (pending | waiting-for-shutdown | bundling | storing | cancelling | complete | failed).

  • update-time - The time of the most recent update for the task.

", + "DescribeClassicLinkInstancesRequest$Filters": "

One or more filters.

  • group-id - The ID of a VPC security group that's associated with the instance.

  • instance-id - The ID of the instance.

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • vpc-id - The ID of the VPC that the instance is linked to.

", + "DescribeConversionTasksRequest$Filters": null, + "DescribeCustomerGatewaysRequest$Filters": "

One or more filters.

  • bgp-asn - The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN).

  • customer-gateway-id - The ID of the customer gateway.

  • ip-address - The IP address of the customer gateway's Internet-routable external interface.

  • state - The state of the customer gateway (pending | available | deleting | deleted).

  • type - The type of customer gateway. Currently, the only supported type is ipsec.1.

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

", + "DescribeDhcpOptionsRequest$Filters": "

One or more filters.

  • dhcp-options-id - The ID of a set of DHCP options.

  • key - The key for one of the options (for example, domain-name).

  • value - The value for one of the options.

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

", + "DescribeImagesRequest$Filters": "

One or more filters.

  • architecture - The image architecture (i386 | x86_64).

  • block-device-mapping.delete-on-termination - A Boolean value that indicates whether the Amazon EBS volume is deleted on instance termination.

  • block-device-mapping.device-name - The device name for the Amazon EBS volume (for example, /dev/sdh).

  • block-device-mapping.snapshot-id - The ID of the snapshot used for the Amazon EBS volume.

  • block-device-mapping.volume-size - The volume size of the Amazon EBS volume, in GiB.

  • block-device-mapping.volume-type - The volume type of the Amazon EBS volume (gp2 | standard | io1).

  • description - The description of the image (provided during image creation).

  • hypervisor - The hypervisor type (ovm | xen).

  • image-id - The ID of the image.

  • image-type - The image type (machine | kernel | ramdisk).

  • is-public - A Boolean that indicates whether the image is public.

  • kernel-id - The kernel ID.

  • manifest-location - The location of the image manifest.

  • name - The name of the AMI (provided during image creation).

  • owner-alias - The AWS account alias (for example, amazon).

  • owner-id - The AWS account ID of the image owner.

  • platform - The platform. To only list Windows-based AMIs, use windows.

  • product-code - The product code.

  • product-code.type - The type of the product code (devpay | marketplace).

  • ramdisk-id - The RAM disk ID.

  • root-device-name - The name of the root device volume (for example, /dev/sda1).

  • root-device-type - The type of the root device volume (ebs | instance-store).

  • state - The state of the image (available | pending | failed).

  • state-reason-code - The reason code for the state change.

  • state-reason-message - The message for the state change.

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • virtualization-type - The virtualization type (paravirtual | hvm).

", + "DescribeImportImageTasksRequest$Filters": "

Filters to be applied on a describe request.

", + "DescribeImportSnapshotTasksRequest$Filters": "

The filters to be applied on a describe request.

", + "DescribeInstanceStatusRequest$Filters": "

One or more filters.

  • availability-zone - The Availability Zone of the instance.

  • event.code - The code identifying the type of event (instance-reboot | system-reboot | system-maintenance | instance-retirement | instance-stop).

  • event.description - A description of the event.

  • event.not-after - The latest end time for the scheduled event, for example: 2010-09-15T17:15:20.000Z.

  • event.not-before - The earliest start time for the scheduled event, for example: 2010-09-15T17:15:20.000Z.

  • instance-state-code - A code representing the state of the instance, as a 16-bit unsigned integer. The high byte is an opaque internal value and should be ignored. The low byte is set based on the state represented. The valid values are 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 (stopping), and 80 (stopped).

  • instance-state-name - The state of the instance (pending | running | shutting-down | terminated | stopping | stopped).

  • instance-status.reachability - Filters on instance status where the name is reachability (passed | failed | initializing | insufficient-data).

  • instance-status.status - The status of the instance (ok | impaired | initializing | insufficient-data | not-applicable).

  • system-status.reachability - Filters on system status where the name is reachability (passed | failed | initializing | insufficient-data).

  • system-status.status - The system status of the instance (ok | impaired | initializing | insufficient-data | not-applicable).

", + "DescribeInstancesRequest$Filters": "

One or more filters.

  • architecture - The instance architecture (i386 | x86_64).

  • availability-zone - The Availability Zone of the instance.

  • block-device-mapping.attach-time - The attach time for an Amazon EBS volume mapped to the instance, for example, 2010-09-15T17:15:20.000Z.

  • block-device-mapping.delete-on-termination - A Boolean that indicates whether the Amazon EBS volume is deleted on instance termination.

  • block-device-mapping.device-name - The device name for the Amazon EBS volume (for example, /dev/sdh or xvdh).

  • block-device-mapping.status - The status for the Amazon EBS volume (attaching | attached | detaching | detached).

  • block-device-mapping.volume-id - The volume ID of the Amazon EBS volume.

  • client-token - The idempotency token you provided when you launched the instance.

  • dns-name - The public DNS name of the instance.

  • group-id - The ID of the security group for the instance. EC2-Classic only.

  • group-name - The name of the security group for the instance. EC2-Classic only.

  • hypervisor - The hypervisor type of the instance (ovm | xen).

  • iam-instance-profile.arn - The instance profile associated with the instance. Specified as an ARN.

  • image-id - The ID of the image used to launch the instance.

  • instance-id - The ID of the instance.

  • instance-lifecycle - Indicates whether this is a Spot Instance (spot).

  • instance-state-code - The state of the instance, as a 16-bit unsigned integer. The high byte is an opaque internal value and should be ignored. The low byte is set based on the state represented. The valid values are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 (stopping), and 80 (stopped).

  • instance-state-name - The state of the instance (pending | running | shutting-down | terminated | stopping | stopped).

  • instance-type - The type of instance (for example, t2.micro).

  • instance.group-id - The ID of the security group for the instance.

  • instance.group-name - The name of the security group for the instance.

  • ip-address - The public IP address of the instance.

  • kernel-id - The kernel ID.

  • key-name - The name of the key pair used when the instance was launched.

  • launch-index - When launching multiple instances, this is the index for the instance in the launch group (for example, 0, 1, 2, and so on).

  • launch-time - The time when the instance was launched.

  • monitoring-state - Indicates whether monitoring is enabled for the instance (disabled | enabled).

  • owner-id - The AWS account ID of the instance owner.

  • placement-group-name - The name of the placement group for the instance.

  • platform - The platform. Use windows if you have Windows instances; otherwise, leave blank.

  • private-dns-name - The private DNS name of the instance.

  • private-ip-address - The private IP address of the instance.

  • product-code - The product code associated with the AMI used to launch the instance.

  • product-code.type - The type of product code (devpay | marketplace).

  • ramdisk-id - The RAM disk ID.

  • reason - The reason for the current state of the instance (for example, shows \"User Initiated [date]\" when you stop or terminate the instance). Similar to the state-reason-code filter.

  • requester-id - The ID of the entity that launched the instance on your behalf (for example, AWS Management Console, Auto Scaling, and so on).

  • reservation-id - The ID of the instance's reservation. A reservation ID is created any time you launch an instance. A reservation ID has a one-to-one relationship with an instance launch request, but can be associated with more than one instance if you launch multiple instances using the same launch request. For example, if you launch one instance, you'll get one reservation ID. If you launch ten instances using the same launch request, you'll also get one reservation ID.

  • root-device-name - The name of the root device for the instance (for example, /dev/sda1 or /dev/xvda).

  • root-device-type - The type of root device that the instance uses (ebs | instance-store).

  • source-dest-check - Indicates whether the instance performs source/destination checking. A value of true means that checking is enabled, and false means checking is disabled. The value must be false for the instance to perform network address translation (NAT) in your VPC.

  • spot-instance-request-id - The ID of the Spot Instance request.

  • state-reason-code - The reason code for the state change.

  • state-reason-message - A message that describes the state change.

  • subnet-id - The ID of the subnet for the instance.

  • tag:key=value - The key/value combination of a tag assigned to the resource, where tag:key is the tag's key.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • tenancy - The tenancy of an instance (dedicated | default).

  • virtualization-type - The virtualization type of the instance (paravirtual | hvm).

  • vpc-id - The ID of the VPC that the instance is running in.

  • network-interface.description - The description of the network interface.

  • network-interface.subnet-id - The ID of the subnet for the network interface.

  • network-interface.vpc-id - The ID of the VPC for the network interface.

  • network-interface.network-interface.id - The ID of the network interface.

  • network-interface.owner-id - The ID of the owner of the network interface.

  • network-interface.availability-zone - The Availability Zone for the network interface.

  • network-interface.requester-id - The requester ID for the network interface.

  • network-interface.requester-managed - Indicates whether the network interface is being managed by AWS.

  • network-interface.status - The status of the network interface (available) | in-use).

  • network-interface.mac-address - The MAC address of the network interface.

  • network-interface-private-dns-name - The private DNS name of the network interface.

  • network-interface.source-dest-check - Whether the network interface performs source/destination checking. A value of true means checking is enabled, and false means checking is disabled. The value must be false for the network interface to perform network address translation (NAT) in your VPC.

  • network-interface.group-id - The ID of a security group associated with the network interface.

  • network-interface.group-name - The name of a security group associated with the network interface.

  • network-interface.attachment.attachment-id - The ID of the interface attachment.

  • network-interface.attachment.instance-id - The ID of the instance to which the network interface is attached.

  • network-interface.attachment.instance-owner-id - The owner ID of the instance to which the network interface is attached.

  • network-interface.addresses.private-ip-address - The private IP address associated with the network interface.

  • network-interface.attachment.device-index - The device index to which the network interface is attached.

  • network-interface.attachment.status - The status of the attachment (attaching | attached | detaching | detached).

  • network-interface.attachment.attach-time - The time that the network interface was attached to an instance.

  • network-interface.attachment.delete-on-termination - Specifies whether the attachment is deleted when an instance is terminated.

  • network-interface.addresses.primary - Specifies whether the IP address of the network interface is the primary private IP address.

  • network-interface.addresses.association.public-ip - The ID of the association of an Elastic IP address with a network interface.

  • network-interface.addresses.association.ip-owner-id - The owner ID of the private IP address associated with the network interface.

  • association.public-ip - The address of the Elastic IP address bound to the network interface.

  • association.ip-owner-id - The owner of the Elastic IP address associated with the network interface.

  • association.allocation-id - The allocation ID returned when you allocated the Elastic IP address for your network interface.

  • association.association-id - The association ID returned when the network interface was associated with an IP address.

", + "DescribeInternetGatewaysRequest$Filters": "

One or more filters.

  • attachment.state - The current state of the attachment between the gateway and the VPC (available). Present only if a VPC is attached.

  • attachment.vpc-id - The ID of an attached VPC.

  • internet-gateway-id - The ID of the Internet gateway.

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

", + "DescribeKeyPairsRequest$Filters": "

One or more filters.

  • fingerprint - The fingerprint of the key pair.

  • key-name - The name of the key pair.

", + "DescribeNetworkAclsRequest$Filters": "

One or more filters.

  • association.association-id - The ID of an association ID for the ACL.

  • association.network-acl-id - The ID of the network ACL involved in the association.

  • association.subnet-id - The ID of the subnet involved in the association.

  • default - Indicates whether the ACL is the default network ACL for the VPC.

  • entry.cidr - The CIDR range specified in the entry.

  • entry.egress - Indicates whether the entry applies to egress traffic.

  • entry.icmp.code - The ICMP code specified in the entry, if any.

  • entry.icmp.type - The ICMP type specified in the entry, if any.

  • entry.port-range.from - The start of the port range specified in the entry.

  • entry.port-range.to - The end of the port range specified in the entry.

  • entry.protocol - The protocol specified in the entry (tcp | udp | icmp or a protocol number).

  • entry.rule-action - Allows or denies the matching traffic (allow | deny).

  • entry.rule-number - The number of an entry (in other words, rule) in the ACL's set of entries.

  • network-acl-id - The ID of the network ACL.

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • vpc-id - The ID of the VPC for the network ACL.

", + "DescribeNetworkInterfacesRequest$Filters": "

One or more filters.

  • addresses.private-ip-address - The private IP addresses associated with the network interface.

  • addresses.primary - Whether the private IP address is the primary IP address associated with the network interface.

  • addresses.association.public-ip - The association ID returned when the network interface was associated with the Elastic IP address.

  • addresses.association.owner-id - The owner ID of the addresses associated with the network interface.

  • association.association-id - The association ID returned when the network interface was associated with an IP address.

  • association.allocation-id - The allocation ID returned when you allocated the Elastic IP address for your network interface.

  • association.ip-owner-id - The owner of the Elastic IP address associated with the network interface.

  • association.public-ip - The address of the Elastic IP address bound to the network interface.

  • association.public-dns-name - The public DNS name for the network interface.

  • attachment.attachment-id - The ID of the interface attachment.

  • attachment.instance-id - The ID of the instance to which the network interface is attached.

  • attachment.instance-owner-id - The owner ID of the instance to which the network interface is attached.

  • attachment.device-index - The device index to which the network interface is attached.

  • attachment.status - The status of the attachment (attaching | attached | detaching | detached).

  • attachment.attach.time - The time that the network interface was attached to an instance.

  • attachment.delete-on-termination - Indicates whether the attachment is deleted when an instance is terminated.

  • availability-zone - The Availability Zone of the network interface.

  • description - The description of the network interface.

  • group-id - The ID of a security group associated with the network interface.

  • group-name - The name of a security group associated with the network interface.

  • mac-address - The MAC address of the network interface.

  • network-interface-id - The ID of the network interface.

  • owner-id - The AWS account ID of the network interface owner.

  • private-ip-address - The private IP address or addresses of the network interface.

  • private-dns-name - The private DNS name of the network interface.

  • requester-id - The ID of the entity that launched the instance on your behalf (for example, AWS Management Console, Auto Scaling, and so on).

  • requester-managed - Indicates whether the network interface is being managed by an AWS service (for example, AWS Management Console, Auto Scaling, and so on).

  • source-desk-check - Indicates whether the network interface performs source/destination checking. A value of true means checking is enabled, and false means checking is disabled. The value must be false for the network interface to perform Network Address Translation (NAT) in your VPC.

  • status - The status of the network interface. If the network interface is not attached to an instance, the status is available; if a network interface is attached to an instance the status is in-use.

  • subnet-id - The ID of the subnet for the network interface.

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • vpc-id - The ID of the VPC for the network interface.

", + "DescribePlacementGroupsRequest$Filters": "

One or more filters.

  • group-name - The name of the placement group.

  • state - The state of the placement group (pending | available | deleting | deleted).

  • strategy - The strategy of the placement group (cluster).

", + "DescribeRegionsRequest$Filters": "

One or more filters.

  • endpoint - The endpoint of the region (for example, ec2.us-east-1.amazonaws.com).

  • region-name - The name of the region (for example, us-east-1).

", + "DescribeReservedInstancesListingsRequest$Filters": "

One or more filters.

  • reserved-instances-id - The ID of the Reserved Instances.

  • reserved-instances-listing-id - The ID of the Reserved Instances listing.

  • status - The status of the Reserved Instance listing (pending | active | cancelled | closed).

  • status-message - The reason for the status.

", + "DescribeReservedInstancesModificationsRequest$Filters": "

One or more filters.

  • client-token - The idempotency token for the modification request.

  • create-date - The time when the modification request was created.

  • effective-date - The time when the modification becomes effective.

  • modification-result.reserved-instances-id - The ID for the Reserved Instances created as part of the modification request. This ID is only available when the status of the modification is fulfilled.

  • modification-result.target-configuration.availability-zone - The Availability Zone for the new Reserved Instances.

  • modification-result.target-configuration.instance-count - The number of new Reserved Instances.

  • modification-result.target-configuration.instance-type - The instance type of the new Reserved Instances.

  • modification-result.target-configuration.platform - The network platform of the new Reserved Instances (EC2-Classic | EC2-VPC).

  • reserved-instances-id - The ID of the Reserved Instances modified.

  • reserved-instances-modification-id - The ID of the modification request.

  • status - The status of the Reserved Instances modification request (processing | fulfilled | failed).

  • status-message - The reason for the status.

  • update-date - The time when the modification request was last updated.

", + "DescribeReservedInstancesOfferingsRequest$Filters": "

One or more filters.

  • availability-zone - The Availability Zone where the Reserved Instance can be used.

  • duration - The duration of the Reserved Instance (for example, one year or three years), in seconds (31536000 | 94608000).

  • fixed-price - The purchase price of the Reserved Instance (for example, 9800.0).

  • instance-type - The instance type on which the Reserved Instance can be used.

  • marketplace - Set to true to show only Reserved Instance Marketplace offerings. When this filter is not used, which is the default behavior, all offerings from AWS and Reserved Instance Marketplace are listed.

  • product-description - The description of the Reserved Instance (Linux/UNIX | Linux/UNIX (Amazon VPC) | Windows | Windows (Amazon VPC)).

  • reserved-instances-offering-id - The Reserved Instances offering ID.

  • usage-price - The usage price of the Reserved Instance, per hour (for example, 0.84).

", + "DescribeReservedInstancesRequest$Filters": "

One or more filters.

  • availability-zone - The Availability Zone where the Reserved Instance can be used.

  • duration - The duration of the Reserved Instance (one year or three years), in seconds (31536000 | 94608000).

  • end - The time when the Reserved Instance expires (for example, 2014-08-07T11:54:42.000Z).

  • fixed-price - The purchase price of the Reserved Instance (for example, 9800.0).

  • instance-type - The instance type on which the Reserved Instance can be used.

  • product-description - The product description of the Reserved Instance (Linux/UNIX | Linux/UNIX (Amazon VPC) | Windows | Windows (Amazon VPC)).

  • reserved-instances-id - The ID of the Reserved Instance.

  • start - The time at which the Reserved Instance purchase request was placed (for example, 2014-08-07T11:54:42.000Z).

  • state - The state of the Reserved Instance (pending-payment | active | payment-failed | retired).

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • usage-price - The usage price of the Reserved Instance, per hour (for example, 0.84).

", + "DescribeRouteTablesRequest$Filters": "

One or more filters.

  • association.route-table-association-id - The ID of an association ID for the route table.

  • association.route-table-id - The ID of the route table involved in the association.

  • association.subnet-id - The ID of the subnet involved in the association.

  • association.main - Indicates whether the route table is the main route table for the VPC.

  • route-table-id - The ID of the route table.

  • route.destination-cidr-block - The CIDR range specified in a route in the table.

  • route.gateway-id - The ID of a gateway specified in a route in the table.

  • route.instance-id - The ID of an instance specified in a route in the table.

  • route.origin - Describes how the route was created. CreateRouteTable indicates that the route was automatically created when the route table was created; CreateRoute indicates that the route was manually added to the route table; EnableVgwRoutePropagation indicates that the route was propagated by route propagation.

  • route.state - The state of a route in the route table (active | blackhole). The blackhole state indicates that the route's target isn't available (for example, the specified gateway isn't attached to the VPC, the specified NAT instance has been terminated, and so on).

  • route.vpc-peering-connection-id - The ID of a VPC peering connection specified in a route in the table.

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • vpc-id - The ID of the VPC for the route table.

", + "DescribeSecurityGroupsRequest$Filters": "

One or more filters.

  • description - The description of the security group.

  • group-id - The ID of the security group.

  • group-name - The name of the security group.

  • ip-permission.cidr - A CIDR range that has been granted permission.

  • ip-permission.from-port - The start of port range for the TCP and UDP protocols, or an ICMP type number.

  • ip-permission.group-id - The ID of a security group that has been granted permission.

  • ip-permission.group-name - The name of a security group that has been granted permission.

  • ip-permission.protocol - The IP protocol for the permission (tcp | udp | icmp or a protocol number).

  • ip-permission.to-port - The end of port range for the TCP and UDP protocols, or an ICMP code.

  • ip-permission.user-id - The ID of an AWS account that has been granted permission.

  • owner-id - The AWS account ID of the owner of the security group.

  • tag-key - The key of a tag assigned to the security group.

  • tag-value - The value of a tag assigned to the security group.

  • vpc-id - The ID of the VPC specified when the security group was created.

", + "DescribeSnapshotsRequest$Filters": "

One or more filters.

  • description - A description of the snapshot.

  • owner-alias - The AWS account alias (for example, amazon) that owns the snapshot.

  • owner-id - The ID of the AWS account that owns the snapshot.

  • progress - The progress of the snapshot, as a percentage (for example, 80%).

  • snapshot-id - The snapshot ID.

  • start-time - The time stamp when the snapshot was initiated.

  • status - The status of the snapshot (pending | completed | error).

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • volume-id - The ID of the volume the snapshot is for.

  • volume-size - The size of the volume, in GiB.

", + "DescribeSpotInstanceRequestsRequest$Filters": "

One or more filters.

  • availability-zone-group - The Availability Zone group.

  • create-time - The time stamp when the Spot Instance request was created.

  • fault-code - The fault code related to the request.

  • fault-message - The fault message related to the request.

  • instance-id - The ID of the instance that fulfilled the request.

  • launch-group - The Spot Instance launch group.

  • launch.block-device-mapping.delete-on-termination - Indicates whether the Amazon EBS volume is deleted on instance termination.

  • launch.block-device-mapping.device-name - The device name for the Amazon EBS volume (for example, /dev/sdh).

  • launch.block-device-mapping.snapshot-id - The ID of the snapshot used for the Amazon EBS volume.

  • launch.block-device-mapping.volume-size - The size of the Amazon EBS volume, in GiB.

  • launch.block-device-mapping.volume-type - The type of the Amazon EBS volume (gp2 | standard | io1).

  • launch.group-id - The security group for the instance.

  • launch.image-id - The ID of the AMI.

  • launch.instance-type - The type of instance (for example, m1.small).

  • launch.kernel-id - The kernel ID.

  • launch.key-name - The name of the key pair the instance launched with.

  • launch.monitoring-enabled - Whether monitoring is enabled for the Spot Instance.

  • launch.ramdisk-id - The RAM disk ID.

  • network-interface.network-interface-id - The ID of the network interface.

  • network-interface.device-index - The index of the device for the network interface attachment on the instance.

  • network-interface.subnet-id - The ID of the subnet for the instance.

  • network-interface.description - A description of the network interface.

  • network-interface.private-ip-address - The primary private IP address of the network interface.

  • network-interface.delete-on-termination - Indicates whether the network interface is deleted when the instance is terminated.

  • network-interface.group-id - The ID of the security group associated with the network interface.

  • network-interface.group-name - The name of the security group associated with the network interface.

  • network-interface.addresses.primary - Indicates whether the IP address is the primary private IP address.

  • product-description - The product description associated with the instance (Linux/UNIX | Windows).

  • spot-instance-request-id - The Spot Instance request ID.

  • spot-price - The maximum hourly price for any Spot Instance launched to fulfill the request.

  • state - The state of the Spot Instance request (open | active | closed | cancelled | failed). Spot bid status information can help you track your Amazon EC2 Spot Instance requests. For more information, see Spot Bid Status in the Amazon Elastic Compute Cloud User Guide.

  • status-code - The short code describing the most recent evaluation of your Spot Instance request.

  • status-message - The message explaining the status of the Spot Instance request.

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • type - The type of Spot Instance request (one-time | persistent).

  • launched-availability-zone - The Availability Zone in which the bid is launched.

  • valid-from - The start date of the request.

  • valid-until - The end date of the request.

", + "DescribeSpotPriceHistoryRequest$Filters": "

One or more filters.

  • availability-zone - The Availability Zone for which prices should be returned.

  • instance-type - The type of instance (for example, m1.small).

  • product-description - The product description for the Spot Price (Linux/UNIX | SUSE Linux | Windows | Linux/UNIX (Amazon VPC) | SUSE Linux (Amazon VPC) | Windows (Amazon VPC)).

  • spot-price - The Spot Price. The value must match exactly (or use wildcards; greater than or less than comparison is not supported).

  • timestamp - The timestamp of the Spot Price history (for example, 2010-08-16T05:06:11.000Z). You can use wildcards (* and ?). Greater than or less than comparison is not supported.

", + "DescribeSubnetsRequest$Filters": "

One or more filters.

  • availabilityZone - The Availability Zone for the subnet. You can also use availability-zone as the filter name.

  • available-ip-address-count - The number of IP addresses in the subnet that are available.

  • cidrBlock - The CIDR block of the subnet. The CIDR block you specify must exactly match the subnet's CIDR block for information to be returned for the subnet. You can also use cidr or cidr-block as the filter names.

  • defaultForAz - Indicates whether this is the default subnet for the Availability Zone. You can also use default-for-az as the filter name.

  • state - The state of the subnet (pending | available).

  • subnet-id - The ID of the subnet.

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • vpc-id - The ID of the VPC for the subnet.

", + "DescribeTagsRequest$Filters": "

One or more filters.

  • key - The tag key.

  • resource-id - The resource ID.

  • resource-type - The resource type (customer-gateway | dhcp-options | image | instance | internet-gateway | network-acl | network-interface | reserved-instances | route-table | security-group | snapshot | spot-instances-request | subnet | volume | vpc | vpn-connection | vpn-gateway).

  • value - The tag value.

", + "DescribeVolumeStatusRequest$Filters": "

One or more filters.

  • action.code - The action code for the event (for example, enable-volume-io).

  • action.description - A description of the action.

  • action.event-id - The event ID associated with the action.

  • availability-zone - The Availability Zone of the instance.

  • event.description - A description of the event.

  • event.event-id - The event ID.

  • event.event-type - The event type (for io-enabled: passed | failed; for io-performance: io-performance:degraded | io-performance:severely-degraded | io-performance:stalled).

  • event.not-after - The latest end time for the event.

  • event.not-before - The earliest start time for the event.

  • volume-status.details-name - The cause for volume-status.status (io-enabled | io-performance).

  • volume-status.details-status - The status of volume-status.details-name (for io-enabled: passed | failed; for io-performance: normal | degraded | severely-degraded | stalled).

  • volume-status.status - The status of the volume (ok | impaired | warning | insufficient-data).

", + "DescribeVolumesRequest$Filters": "

One or more filters.

  • attachment.attach-time - The time stamp when the attachment initiated.

  • attachment.delete-on-termination - Whether the volume is deleted on instance termination.

  • attachment.device - The device name that is exposed to the instance (for example, /dev/sda1).

  • attachment.instance-id - The ID of the instance the volume is attached to.

  • attachment.status - The attachment state (attaching | attached | detaching | detached).

  • availability-zone - The Availability Zone in which the volume was created.

  • create-time - The time stamp when the volume was created.

  • encrypted - The encryption status of the volume.

  • size - The size of the volume, in GiB.

  • snapshot-id - The snapshot from which the volume was created.

  • status - The status of the volume (creating | available | in-use | deleting | deleted | error).

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • volume-id - The volume ID.

  • volume-type - The Amazon EBS volume type. This can be gp2 for General Purpose (SSD) volumes, io1 for Provisioned IOPS (SSD) volumes, or standard for Magnetic volumes.

", + "DescribeVpcClassicLinkRequest$Filters": "

One or more filters.

  • is-classic-link-enabled - Whether the VPC is enabled for ClassicLink (true | false).

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

", + "DescribeVpcPeeringConnectionsRequest$Filters": "

One or more filters.

  • accepter-vpc-info.cidr-block - The CIDR block of the peer VPC.

  • accepter-vpc-info.owner-id - The AWS account ID of the owner of the peer VPC.

  • accepter-vpc-info.vpc-id - The ID of the peer VPC.

  • expiration-time - The expiration date and time for the VPC peering connection.

  • requester-vpc-info.cidr-block - The CIDR block of the requester's VPC.

  • requester-vpc-info.owner-id - The AWS account ID of the owner of the requester VPC.

  • requester-vpc-info.vpc-id - The ID of the requester VPC.

  • status-code - The status of the VPC peering connection (pending-acceptance | failed | expired | provisioning | active | deleted | rejected).

  • status-message - A message that provides more information about the status of the VPC peering connection, if applicable.

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • vpc-peering-connection-id - The ID of the VPC peering connection.

", + "DescribeVpcsRequest$Filters": "

One or more filters.

  • cidr - The CIDR block of the VPC. The CIDR block you specify must exactly match the VPC's CIDR block for information to be returned for the VPC. Must contain the slash followed by one or two digits (for example, /28).

  • dhcp-options-id - The ID of a set of DHCP options.

  • isDefault - Indicates whether the VPC is the default VPC.

  • state - The state of the VPC (pending | available).

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • vpc-id - The ID of the VPC.

", + "DescribeVpnConnectionsRequest$Filters": "

One or more filters.

  • customer-gateway-configuration - The configuration information for the customer gateway.

  • customer-gateway-id - The ID of a customer gateway associated with the VPN connection.

  • state - The state of the VPN connection (pending | available | deleting | deleted).

  • option.static-routes-only - Indicates whether the connection has static routes only. Used for devices that do not support Border Gateway Protocol (BGP).

  • route.destination-cidr-block - The destination CIDR block. This corresponds to the subnet used in a customer data center.

  • bgp-asn - The BGP Autonomous System Number (ASN) associated with a BGP device.

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • type - The type of VPN connection. Currently the only supported type is ipsec.1.

  • vpn-connection-id - The ID of the VPN connection.

  • vpn-gateway-id - The ID of a virtual private gateway associated with the VPN connection.

", + "DescribeVpnGatewaysRequest$Filters": "

One or more filters.

  • attachment.state - The current state of the attachment between the gateway and the VPC (attaching | attached | detaching | detached).

  • attachment.vpc-id - The ID of an attached VPC.

  • availability-zone - The Availability Zone for the virtual private gateway.

  • state - The state of the virtual private gateway (pending | available | deleting | deleted).

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • type - The type of virtual private gateway. Currently the only supported type is ipsec.1.

  • vpn-gateway-id - The ID of the virtual private gateway.

" + } + }, + "Float": { + "base": null, + "refs": { + "ReservedInstances$UsagePrice": "

The usage price of the Reserved Instance, per hour.

", + "ReservedInstances$FixedPrice": "

The purchase price of the Reserved Instance.

", + "ReservedInstancesOffering$UsagePrice": "

The usage price of the Reserved Instance, per hour.

", + "ReservedInstancesOffering$FixedPrice": "

The purchase price of the Reserved Instance.

" + } + }, + "GatewayType": { + "base": null, + "refs": { + "CreateCustomerGatewayRequest$Type": "

The type of VPN connection that this customer gateway supports (ipsec.1).

", + "CreateVpnGatewayRequest$Type": "

The type of VPN connection this virtual private gateway supports.

", + "VpnConnection$Type": "

The type of VPN connection.

", + "VpnGateway$Type": "

The type of VPN connection the virtual private gateway supports.

" + } + }, + "GetConsoleOutputRequest": { + "base": null, + "refs": { + } + }, + "GetConsoleOutputResult": { + "base": null, + "refs": { + } + }, + "GetPasswordDataRequest": { + "base": null, + "refs": { + } + }, + "GetPasswordDataResult": { + "base": null, + "refs": { + } + }, + "GroupIdStringList": { + "base": null, + "refs": { + "AttachClassicLinkVpcRequest$Groups": "

The ID of one or more of the VPC's security groups. You cannot specify security groups from a different VPC.

", + "DescribeSecurityGroupsRequest$GroupIds": "

One or more security group IDs. Required for security groups in a nondefault VPC.

Default: Describes all your security groups.

", + "ModifyInstanceAttributeRequest$Groups": "

[EC2-VPC] Changes the security groups of the instance. You must specify at least one security group, even if it's just the default security group for the VPC. You must specify the security group ID, not the security group name.

" + } + }, + "GroupIdentifier": { + "base": "

Describes a security group.

", + "refs": { + "GroupIdentifierList$member": null + } + }, + "GroupIdentifierList": { + "base": null, + "refs": { + "ClassicLinkInstance$Groups": "

A list of security groups.

", + "DescribeNetworkInterfaceAttributeResult$Groups": "

The security groups associated with the network interface.

", + "Instance$SecurityGroups": "

One or more security groups for the instance.

", + "InstanceAttribute$Groups": "

The security groups associated with the instance.

", + "InstanceNetworkInterface$Groups": "

One or more security groups.

", + "LaunchSpecification$SecurityGroups": "

One or more security groups. To request an instance in a nondefault VPC, you must specify the ID of the security group. To request an instance in EC2-Classic or a default VPC, you can specify the name or the ID of the security group.

", + "NetworkInterface$Groups": "

Any security groups for the network interface.

", + "Reservation$Groups": "

One or more security groups.

" + } + }, + "GroupNameStringList": { + "base": null, + "refs": { + "DescribeSecurityGroupsRequest$GroupNames": "

[EC2-Classic and default VPC only] One or more security group names. You can specify either the security group name or the security group ID. For security groups in a nondefault VPC, use the group-name filter to describe security groups by name.

Default: Describes all your security groups.

", + "ModifySnapshotAttributeRequest$GroupNames": "

The group to modify for the snapshot.

" + } + }, + "HypervisorType": { + "base": null, + "refs": { + "Image$Hypervisor": "

The hypervisor type of the image.

", + "Instance$Hypervisor": "

The hypervisor type of the instance.

" + } + }, + "IamInstanceProfile": { + "base": "

Describes an IAM instance profile.

", + "refs": { + "Instance$IamInstanceProfile": "

The IAM instance profile associated with the instance.

" + } + }, + "IamInstanceProfileSpecification": { + "base": "

Describes an IAM instance profile.

", + "refs": { + "LaunchSpecification$IamInstanceProfile": "

The IAM instance profile.

", + "RunInstancesRequest$IamInstanceProfile": "

The IAM instance profile.

", + "RequestSpotLaunchSpecification$IamInstanceProfile": "

The IAM instance profile.

" + } + }, + "IcmpTypeCode": { + "base": "

Describes the ICMP type and code.

", + "refs": { + "CreateNetworkAclEntryRequest$IcmpTypeCode": "

ICMP protocol: The ICMP type and code. Required if specifying ICMP for the protocol.

", + "NetworkAclEntry$IcmpTypeCode": "

ICMP protocol: The ICMP type and code.

", + "ReplaceNetworkAclEntryRequest$IcmpTypeCode": "

ICMP protocol: The ICMP type and code. Required if specifying 1 (ICMP) for the protocol.

" + } + }, + "Image": { + "base": "

Describes an image.

", + "refs": { + "ImageList$member": null + } + }, + "ImageAttribute": { + "base": "

Describes an image attribute.

", + "refs": { + } + }, + "ImageAttributeName": { + "base": null, + "refs": { + "DescribeImageAttributeRequest$Attribute": "

The AMI attribute.

Note: Depending on your account privileges, the blockDeviceMapping attribute may return a Client.AuthFailure error. If this happens, use DescribeImages to get information about the block device mapping for the AMI.

" + } + }, + "ImageDiskContainer": { + "base": "

The disk container object for an ImportImage task.

", + "refs": { + "ImageDiskContainerList$member": null + } + }, + "ImageDiskContainerList": { + "base": null, + "refs": { + "ImportImageRequest$DiskContainers": null + } + }, + "ImageIdStringList": { + "base": null, + "refs": { + "DescribeImagesRequest$ImageIds": "

One or more image IDs.

Default: Describes all images available to you.

" + } + }, + "ImageList": { + "base": null, + "refs": { + "DescribeImagesResult$Images": "

Information about one or more images.

" + } + }, + "ImageState": { + "base": null, + "refs": { + "Image$State": "

The current state of the AMI. If the state is available, the image is successfully registered and can be used to launch an instance.

" + } + }, + "ImageTypeValues": { + "base": null, + "refs": { + "Image$ImageType": "

The type of image.

" + } + }, + "ImportImageRequest": { + "base": null, + "refs": { + } + }, + "ImportImageResult": { + "base": null, + "refs": { + } + }, + "ImportImageTask": { + "base": null, + "refs": { + "ImportImageTaskList$member": null + } + }, + "ImportImageTaskList": { + "base": null, + "refs": { + "DescribeImportImageTasksResult$ImportImageTasks": "

A list of zero or more ImportImage tasks that are currently active or completed/cancelled in the previous 7 days.

" + } + }, + "ImportInstanceLaunchSpecification": { + "base": null, + "refs": { + "ImportInstanceRequest$LaunchSpecification": null + } + }, + "ImportInstanceRequest": { + "base": null, + "refs": { + } + }, + "ImportInstanceResult": { + "base": null, + "refs": { + } + }, + "ImportInstanceTaskDetails": { + "base": null, + "refs": { + "ConversionTask$ImportInstance": "

If the task is for importing an instance, this contains information about the import instance task.

" + } + }, + "ImportInstanceVolumeDetailItem": { + "base": "

Describes an import volume task.

", + "refs": { + "ImportInstanceVolumeDetailSet$member": null + } + }, + "ImportInstanceVolumeDetailSet": { + "base": null, + "refs": { + "ImportInstanceTaskDetails$Volumes": null + } + }, + "ImportKeyPairRequest": { + "base": null, + "refs": { + } + }, + "ImportKeyPairResult": { + "base": null, + "refs": { + } + }, + "ImportSnapshotRequest": { + "base": null, + "refs": { + } + }, + "ImportSnapshotResult": { + "base": null, + "refs": { + } + }, + "ImportSnapshotTask": { + "base": null, + "refs": { + "ImportSnapshotTaskList$member": null + } + }, + "ImportSnapshotTaskList": { + "base": null, + "refs": { + "DescribeImportSnapshotTasksResult$ImportSnapshotTasks": "

A list of zero or more ImportSnapshot tasks that are currently active or completed/cancelled in the previous 7 days.

" + } + }, + "ImportTaskIdList": { + "base": null, + "refs": { + "DescribeImportImageTasksRequest$ImportTaskIds": "

A list of ImportImage task IDs to describe.

", + "DescribeImportSnapshotTasksRequest$ImportTaskIds": "

A list of IDs of the ImportSnapshot tasks to describe.

" + } + }, + "ImportVolumeRequest": { + "base": null, + "refs": { + } + }, + "ImportVolumeResult": { + "base": null, + "refs": { + } + }, + "ImportVolumeTaskDetails": { + "base": "

Describes an import volume task.

", + "refs": { + "ConversionTask$ImportVolume": "

If the task is for importing a volume, this contains information about the import volume task.

" + } + }, + "Instance": { + "base": "

Describes an instance.

", + "refs": { + "InstanceList$member": null + } + }, + "InstanceAttribute": { + "base": "

Describes an instance attribute.

", + "refs": { + } + }, + "InstanceAttributeName": { + "base": null, + "refs": { + "DescribeInstanceAttributeRequest$Attribute": "

The instance attribute.

", + "ModifyInstanceAttributeRequest$Attribute": "

The name of the attribute.

", + "ResetInstanceAttributeRequest$Attribute": "

The attribute to reset.

" + } + }, + "InstanceBlockDeviceMapping": { + "base": "

Describes a block device mapping.

", + "refs": { + "InstanceBlockDeviceMappingList$member": null + } + }, + "InstanceBlockDeviceMappingList": { + "base": null, + "refs": { + "Instance$BlockDeviceMappings": "

Any block device mapping entries for the instance.

", + "InstanceAttribute$BlockDeviceMappings": "

The block device mapping of the instance.

" + } + }, + "InstanceBlockDeviceMappingSpecification": { + "base": "

Describes a block device mapping entry.

", + "refs": { + "InstanceBlockDeviceMappingSpecificationList$member": null + } + }, + "InstanceBlockDeviceMappingSpecificationList": { + "base": null, + "refs": { + "ModifyInstanceAttributeRequest$BlockDeviceMappings": "

Modifies the DeleteOnTermination attribute for volumes that are currently attached. The volume must be owned by the caller. If no value is specified for DeleteOnTermination, the default is true and the volume is deleted when the instance is terminated.

To add instance store volumes to an Amazon EBS-backed instance, you must add them when you launch the instance. For more information, see Updating the Block Device Mapping when Launching an Instance in the Amazon Elastic Compute Cloud User Guide.

" + } + }, + "InstanceCount": { + "base": "

Describes a Reserved Instance listing state.

", + "refs": { + "InstanceCountList$member": null + } + }, + "InstanceCountList": { + "base": null, + "refs": { + "ReservedInstancesListing$InstanceCounts": "

The number of instances in this state.

" + } + }, + "InstanceExportDetails": { + "base": "

Describes an instance export task.

", + "refs": { + "ExportTask$InstanceExportDetails": "

The instance being exported.

" + } + }, + "InstanceIdStringList": { + "base": null, + "refs": { + "DescribeClassicLinkInstancesRequest$InstanceIds": "

One or more instance IDs. Must be instances linked to a VPC through ClassicLink.

", + "DescribeInstanceStatusRequest$InstanceIds": "

One or more instance IDs.

Default: Describes all your instances.

Constraints: Maximum 100 explicitly specified instance IDs.

", + "DescribeInstancesRequest$InstanceIds": "

One or more instance IDs.

Default: Describes all your instances.

", + "MonitorInstancesRequest$InstanceIds": "

One or more instance IDs.

", + "RebootInstancesRequest$InstanceIds": "

One or more instance IDs.

", + "ReportInstanceStatusRequest$Instances": "

One or more instances.

", + "StartInstancesRequest$InstanceIds": "

One or more instance IDs.

", + "StopInstancesRequest$InstanceIds": "

One or more instance IDs.

", + "TerminateInstancesRequest$InstanceIds": "

One or more instance IDs.

", + "UnmonitorInstancesRequest$InstanceIds": "

One or more instance IDs.

" + } + }, + "InstanceLifecycleType": { + "base": null, + "refs": { + "Instance$InstanceLifecycle": "

Indicates whether this is a Spot Instance.

" + } + }, + "InstanceList": { + "base": null, + "refs": { + "Reservation$Instances": "

One or more instances.

" + } + }, + "InstanceMonitoring": { + "base": "

Describes the monitoring information of the instance.

", + "refs": { + "InstanceMonitoringList$member": null + } + }, + "InstanceMonitoringList": { + "base": null, + "refs": { + "MonitorInstancesResult$InstanceMonitorings": "

Monitoring information for one or more instances.

", + "UnmonitorInstancesResult$InstanceMonitorings": "

Monitoring information for one or more instances.

" + } + }, + "InstanceNetworkInterface": { + "base": "

Describes a network interface.

", + "refs": { + "InstanceNetworkInterfaceList$member": null + } + }, + "InstanceNetworkInterfaceAssociation": { + "base": "

Describes association information for an Elastic IP address.

", + "refs": { + "InstanceNetworkInterface$Association": "

The association information for an Elastic IP associated with the network interface.

", + "InstancePrivateIpAddress$Association": "

The association information for an Elastic IP address for the network interface.

" + } + }, + "InstanceNetworkInterfaceAttachment": { + "base": "

Describes a network interface attachment.

", + "refs": { + "InstanceNetworkInterface$Attachment": "

The network interface attachment.

" + } + }, + "InstanceNetworkInterfaceList": { + "base": null, + "refs": { + "Instance$NetworkInterfaces": "

[EC2-VPC] One or more network interfaces for the instance.

" + } + }, + "InstanceNetworkInterfaceSpecification": { + "base": "

Describes a network interface.

", + "refs": { + "InstanceNetworkInterfaceSpecificationList$member": null + } + }, + "InstanceNetworkInterfaceSpecificationList": { + "base": null, + "refs": { + "LaunchSpecification$NetworkInterfaces": "

One or more network interfaces.

", + "RunInstancesRequest$NetworkInterfaces": "

One or more network interfaces.

", + "RequestSpotLaunchSpecification$NetworkInterfaces": "

One or more network interfaces.

" + } + }, + "InstancePrivateIpAddress": { + "base": "

Describes a private IP address.

", + "refs": { + "InstancePrivateIpAddressList$member": null + } + }, + "InstancePrivateIpAddressList": { + "base": null, + "refs": { + "InstanceNetworkInterface$PrivateIpAddresses": "

The private IP addresses associated with the network interface.

" + } + }, + "InstanceState": { + "base": "

Describes the current state of the instance.

", + "refs": { + "Instance$State": "

The current state of the instance.

", + "InstanceStateChange$CurrentState": "

The current state of the instance.

", + "InstanceStateChange$PreviousState": "

The previous state of the instance.

", + "InstanceStatus$InstanceState": "

The intended state of the instance. DescribeInstanceStatus requires that an instance be in the running state.

" + } + }, + "InstanceStateChange": { + "base": "

Describes an instance state change.

", + "refs": { + "InstanceStateChangeList$member": null + } + }, + "InstanceStateChangeList": { + "base": null, + "refs": { + "StartInstancesResult$StartingInstances": "

Information about one or more started instances.

", + "StopInstancesResult$StoppingInstances": "

Information about one or more stopped instances.

", + "TerminateInstancesResult$TerminatingInstances": "

Information about one or more terminated instances.

" + } + }, + "InstanceStateName": { + "base": null, + "refs": { + "InstanceState$Name": "

The current state of the instance.

" + } + }, + "InstanceStatus": { + "base": "

Describes the status of an instance.

", + "refs": { + "InstanceStatusList$member": null + } + }, + "InstanceStatusDetails": { + "base": "

Describes the instance status.

", + "refs": { + "InstanceStatusDetailsList$member": null + } + }, + "InstanceStatusDetailsList": { + "base": null, + "refs": { + "InstanceStatusSummary$Details": "

The system instance health or application instance health.

" + } + }, + "InstanceStatusEvent": { + "base": "

Describes an instance event.

", + "refs": { + "InstanceStatusEventList$member": null + } + }, + "InstanceStatusEventList": { + "base": null, + "refs": { + "InstanceStatus$Events": "

Extra information regarding events associated with the instance.

" + } + }, + "InstanceStatusList": { + "base": null, + "refs": { + "DescribeInstanceStatusResult$InstanceStatuses": "

One or more instance status descriptions.

" + } + }, + "InstanceStatusSummary": { + "base": "

Describes the status of an instance.

", + "refs": { + "InstanceStatus$SystemStatus": "

Reports impaired functionality that stems from issues related to the systems that support an instance, such as hardware failures and network connectivity problems.

", + "InstanceStatus$InstanceStatus": "

Reports impaired functionality that stems from issues internal to the instance, such as impaired reachability.

" + } + }, + "InstanceType": { + "base": null, + "refs": { + "DescribeReservedInstancesOfferingsRequest$InstanceType": "

The instance type on which the Reserved Instance can be used. For more information, see Instance Types in the Amazon Elastic Compute Cloud User Guide.

", + "ImportInstanceLaunchSpecification$InstanceType": "

The instance type. This is not supported for VMs imported into a VPC, which are assigned the default security group. After a VM is imported into a VPC, you can specify another security group using the AWS Management Console. For more information, see Instance Types in the Amazon Elastic Compute Cloud User Guide. For more information about the Linux instance types you can import, see Before You Get Started in the Amazon Elastic Compute Cloud User Guide.

", + "Instance$InstanceType": "

The instance type.

", + "InstanceTypeList$member": null, + "LaunchSpecification$InstanceType": "

The instance type.

", + "ReservedInstances$InstanceType": "

The instance type on which the Reserved Instance can be used.

", + "ReservedInstancesConfiguration$InstanceType": "

The instance type for the modified Reserved Instances.

", + "ReservedInstancesOffering$InstanceType": "

The instance type on which the Reserved Instance can be used.

", + "RunInstancesRequest$InstanceType": "

The instance type. For more information, see Instance Types in the Amazon Elastic Compute Cloud User Guide.

Default: m1.small

", + "SpotPrice$InstanceType": "

The instance type.

", + "RequestSpotLaunchSpecification$InstanceType": "

The instance type.

" + } + }, + "InstanceTypeList": { + "base": null, + "refs": { + "DescribeSpotPriceHistoryRequest$InstanceTypes": "

Filters the results by the specified instance types.

" + } + }, + "Integer": { + "base": null, + "refs": { + "AssignPrivateIpAddressesRequest$SecondaryPrivateIpAddressCount": "

The number of secondary IP addresses to assign to the network interface. You can't specify this parameter when also specifying private IP addresses.

", + "AttachNetworkInterfaceRequest$DeviceIndex": "

The index of the device for the network interface attachment.

", + "AuthorizeSecurityGroupEgressRequest$FromPort": "

The start of port range for the TCP and UDP protocols, or an ICMP type number. For the ICMP type number, use -1 to specify all ICMP types.

", + "AuthorizeSecurityGroupEgressRequest$ToPort": "

The end of port range for the TCP and UDP protocols, or an ICMP code number. For the ICMP code number, use -1 to specify all ICMP codes for the ICMP type.

", + "AuthorizeSecurityGroupIngressRequest$FromPort": "

The start of port range for the TCP and UDP protocols, or an ICMP type number. For the ICMP type number, use -1 to specify all ICMP types.

", + "AuthorizeSecurityGroupIngressRequest$ToPort": "

The end of port range for the TCP and UDP protocols, or an ICMP code number. For the ICMP code number, use -1 to specify all ICMP codes for the ICMP type.

", + "CreateCustomerGatewayRequest$BgpAsn": "

For devices that support BGP, the customer gateway's BGP ASN.

Default: 65000

", + "CreateNetworkAclEntryRequest$RuleNumber": "

The rule number for the entry (for example, 100). ACL entries are processed in ascending order by rule number.

Constraints: Positive integer from 1 to 32766

", + "CreateNetworkInterfaceRequest$SecondaryPrivateIpAddressCount": "

The number of secondary private IP addresses to assign to a network interface. When you specify a number of secondary IP addresses, Amazon EC2 selects these IP addresses within the subnet range. You can't specify this option and specify more than one private IP address using privateIpAddresses.

The number of IP addresses you can assign to a network interface varies by instance type. For more information, see Private IP Addresses Per ENI Per Instance Type in the Amazon Elastic Compute Cloud User Guide.

", + "CreateReservedInstancesListingRequest$InstanceCount": "

The number of instances that are a part of a Reserved Instance account to be listed in the Reserved Instance Marketplace. This number should be less than or equal to the instance count associated with the Reserved Instance ID specified in this call.

", + "CreateVolumeRequest$Size": "

The size of the volume, in GiBs.

Constraints: 1-1024 for standard volumes, 1-16384 for gp2 volumes, and 4-16384 for io1 volumes. If you specify a snapshot, the volume size must be equal to or larger than the snapshot size.

Default: If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size.

", + "CreateVolumeRequest$Iops": "

Only valid for Provisioned IOPS (SSD) volumes. The number of I/O operations per second (IOPS) to provision for the volume, with a maximum ratio of 30 IOPS/GiB.

Constraint: Range is 100 to 20000 for Provisioned IOPS (SSD) volumes

", + "DeleteNetworkAclEntryRequest$RuleNumber": "

The rule number of the entry to delete.

", + "DescribeClassicLinkInstancesRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. You cannot specify this parameter and the instance IDs parameter in the same request.

Constraint: If the value is greater than 1000, we return only 1000 items.

", + "DescribeImportImageTasksRequest$MaxResults": "

The maximum number of results in a page.

", + "DescribeImportSnapshotTasksRequest$MaxResults": "

The maximum number of results in a page.

", + "DescribeInstanceStatusRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. You cannot specify this parameter and the instance IDs parameter in the same request.

", + "DescribeInstancesRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. You cannot specify this parameter and the instance IDs parameter in the same request.

", + "DescribeReservedInstancesOfferingsRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. The maximum is 100.

Default: 100

", + "DescribeReservedInstancesOfferingsRequest$MaxInstanceCount": "

The maximum number of instances to filter when searching for offerings.

Default: 20

", + "DescribeSnapshotsRequest$MaxResults": "

The maximum number of snapshot results returned by DescribeSnapshots in paginated output. When this parameter is used, DescribeSnapshots only returns MaxResults results in a single page along with a NextToken response element. The remaining results of the initial request can be seen by sending another DescribeSnapshots request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. If this parameter is not used, then DescribeSnapshots returns all results. You cannot specify this parameter and the snapshot IDs parameter in the same request.

", + "DescribeSpotPriceHistoryRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned.

", + "DescribeTagsRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned.

", + "DescribeVolumeStatusRequest$MaxResults": "

The maximum number of volume results returned by DescribeVolumeStatus in paginated output. When this parameter is used, the request only returns MaxResults results in a single page along with a NextToken response element. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. If this parameter is not used, then DescribeVolumeStatus returns all results. You cannot specify this parameter and the volume IDs parameter in the same request.

", + "DescribeVolumesRequest$MaxResults": "

The maximum number of volume results returned by DescribeVolumes in paginated output. When this parameter is used, DescribeVolumes only returns MaxResults results in a single page along with a NextToken response element. The remaining results of the initial request can be seen by sending another DescribeVolumes request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. If this parameter is not used, then DescribeVolumes returns all results. You cannot specify this parameter and the volume IDs parameter in the same request.

", + "EbsBlockDevice$VolumeSize": "

The size of the volume, in GiB.

Constraints: 1-1024 for standard volumes, 1-16384 for gp2 volumes, and 4-16384 for io1 volumes. If you specify a snapshot, the volume size must be equal to or larger than the snapshot size.

Default: If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size.

", + "EbsBlockDevice$Iops": "

The number of I/O operations per second (IOPS) that the volume supports. For Provisioned IOPS (SSD) volumes, this represents the number of IOPS that are provisioned for the volume. For General Purpose (SSD) volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. For more information on General Purpose (SSD) baseline performance, I/O credits, and bursting, see Amazon EBS Volume Types in the Amazon Elastic Compute Cloud User Guide.

Constraint: Range is 100 to 20000 for Provisioned IOPS (SSD) volumes and 3 to 10000 for General Purpose (SSD) volumes.

Condition: This parameter is required for requests to create io1 volumes; it is not used in requests to create standard or gp2 volumes.

", + "IcmpTypeCode$Type": "

The ICMP code. A value of -1 means all codes for the specified ICMP type.

", + "IcmpTypeCode$Code": "

The ICMP type. A value of -1 means all types.

", + "Instance$AmiLaunchIndex": "

The AMI launch index, which can be used to find this instance in the launch group.

", + "InstanceCount$InstanceCount": "

he number of listed Reserved Instances in the state specified by the state.

", + "InstanceNetworkInterfaceAttachment$DeviceIndex": "

The index of the device on the instance for the network interface attachment.

", + "InstanceNetworkInterfaceSpecification$DeviceIndex": "

The index of the device on the instance for the network interface attachment. If you are specifying a network interface in a RunInstances request, you must provide the device index.

", + "InstanceNetworkInterfaceSpecification$SecondaryPrivateIpAddressCount": "

The number of secondary private IP addresses. You can't specify this option and specify more than one private IP address using the private IP addresses option.

", + "InstanceState$Code": "

The low byte represents the state. The high byte is an opaque internal value and should be ignored.

  • 0 : pending

  • 16 : running

  • 32 : shutting-down

  • 48 : terminated

  • 64 : stopping

  • 80 : stopped

", + "IpPermission$FromPort": "

The start of port range for the TCP and UDP protocols, or an ICMP type number. A value of -1 indicates all ICMP types.

", + "IpPermission$ToPort": "

The end of port range for the TCP and UDP protocols, or an ICMP code. A value of -1 indicates all ICMP codes for the specified ICMP type.

", + "NetworkAclEntry$RuleNumber": "

The rule number for the entry. ACL entries are processed in ascending order by rule number.

", + "NetworkInterfaceAttachment$DeviceIndex": "

The device index of the network interface attachment on the instance.

", + "PortRange$From": "

The first port in the range.

", + "PortRange$To": "

The last port in the range.

", + "PricingDetail$Count": "

The number of instances available for the price.

", + "PurchaseReservedInstancesOfferingRequest$InstanceCount": "

The number of Reserved Instances to purchase.

", + "ReplaceNetworkAclEntryRequest$RuleNumber": "

The rule number of the entry to replace.

", + "RequestSpotInstancesRequest$InstanceCount": "

The maximum number of Spot Instances to launch.

Default: 1

", + "ReservedInstances$InstanceCount": "

The number of Reserved Instances purchased.

", + "ReservedInstancesConfiguration$InstanceCount": "

The number of modified Reserved Instances.

", + "RevokeSecurityGroupEgressRequest$FromPort": "

The start of port range for the TCP and UDP protocols, or an ICMP type number. For the ICMP type number, use -1 to specify all ICMP types.

", + "RevokeSecurityGroupEgressRequest$ToPort": "

The end of port range for the TCP and UDP protocols, or an ICMP code number. For the ICMP code number, use -1 to specify all ICMP codes for the ICMP type.

", + "RevokeSecurityGroupIngressRequest$FromPort": "

The start of port range for the TCP and UDP protocols, or an ICMP type number. For the ICMP type number, use -1 to specify all ICMP types.

", + "RevokeSecurityGroupIngressRequest$ToPort": "

The end of port range for the TCP and UDP protocols, or an ICMP code number. For the ICMP code number, use -1 to specify all ICMP codes for the ICMP type.

", + "RunInstancesRequest$MinCount": "

The minimum number of instances to launch. If you specify a minimum that is more instances than Amazon EC2 can launch in the target Availability Zone, Amazon EC2 launches no instances.

Constraints: Between 1 and the maximum number you're allowed for the specified instance type. For more information about the default limits, and how to request an increase, see How many instances can I run in Amazon EC2 in the Amazon EC2 General FAQ.

", + "RunInstancesRequest$MaxCount": "

The maximum number of instances to launch. If you specify more instances than Amazon EC2 can launch in the target Availability Zone, Amazon EC2 launches the largest possible number of instances above MinCount.

Constraints: Between 1 and the maximum number you're allowed for the specified instance type. For more information about the default limits, and how to request an increase, see How many instances can I run in Amazon EC2 in the Amazon EC2 General FAQ.

", + "Snapshot$VolumeSize": "

The size of the volume, in GiB.

", + "Subnet$AvailableIpAddressCount": "

The number of unused IP addresses in the subnet. Note that the IP addresses for any stopped instances are considered unavailable.

", + "VgwTelemetry$AcceptedRouteCount": "

The number of accepted routes.

", + "Volume$Size": "

The size of the volume, in GiBs.

", + "Volume$Iops": "

The number of I/O operations per second (IOPS) that the volume supports. For Provisioned IOPS (SSD) volumes, this represents the number of IOPS that are provisioned for the volume. For General Purpose (SSD) volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. For more information on General Purpose (SSD) baseline performance, I/O credits, and bursting, see Amazon EBS Volume Types in the Amazon Elastic Compute Cloud User Guide.

Constraint: Range is 100 to 20000 for Provisioned IOPS (SSD) volumes and 3 to 10000 for General Purpose (SSD) volumes.

Condition: This parameter is required for requests to create io1 volumes; it is not used in requests to create standard or gp2 volumes.

" + } + }, + "InternetGateway": { + "base": "

Describes an Internet gateway.

", + "refs": { + "CreateInternetGatewayResult$InternetGateway": "

Information about the Internet gateway.

", + "InternetGatewayList$member": null + } + }, + "InternetGatewayAttachment": { + "base": "

Describes the attachment of a VPC to an Internet gateway.

", + "refs": { + "InternetGatewayAttachmentList$member": null + } + }, + "InternetGatewayAttachmentList": { + "base": null, + "refs": { + "InternetGateway$Attachments": "

Any VPCs attached to the Internet gateway.

" + } + }, + "InternetGatewayList": { + "base": null, + "refs": { + "DescribeInternetGatewaysResult$InternetGateways": "

Information about one or more Internet gateways.

" + } + }, + "IpPermission": { + "base": "

Describes a security group rule.

", + "refs": { + "IpPermissionList$member": null + } + }, + "IpPermissionList": { + "base": null, + "refs": { + "AuthorizeSecurityGroupEgressRequest$IpPermissions": "

A set of IP permissions. You can't specify a destination security group and a CIDR IP address range.

", + "AuthorizeSecurityGroupIngressRequest$IpPermissions": "

A set of IP permissions. Can be used to specify multiple rules in a single command.

", + "RevokeSecurityGroupEgressRequest$IpPermissions": "

A set of IP permissions. You can't specify a destination security group and a CIDR IP address range.

", + "RevokeSecurityGroupIngressRequest$IpPermissions": "

A set of IP permissions. You can't specify a source security group and a CIDR IP address range.

", + "SecurityGroup$IpPermissions": "

One or more inbound rules associated with the security group.

", + "SecurityGroup$IpPermissionsEgress": "

[EC2-VPC] One or more outbound rules associated with the security group.

" + } + }, + "IpRange": { + "base": "

Describes an IP range.

", + "refs": { + "IpRangeList$member": null + } + }, + "IpRangeList": { + "base": null, + "refs": { + "IpPermission$IpRanges": "

One or more IP ranges.

" + } + }, + "KeyNameStringList": { + "base": null, + "refs": { + "DescribeKeyPairsRequest$KeyNames": "

One or more key pair names.

Default: Describes all your key pairs.

" + } + }, + "KeyPair": { + "base": "

Describes a key pair.

", + "refs": { + } + }, + "KeyPairInfo": { + "base": "

Describes a key pair.

", + "refs": { + "KeyPairList$member": null + } + }, + "KeyPairList": { + "base": null, + "refs": { + "DescribeKeyPairsResult$KeyPairs": "

Information about one or more key pairs.

" + } + }, + "LaunchPermission": { + "base": "

Describes a launch permission.

", + "refs": { + "LaunchPermissionList$member": null + } + }, + "LaunchPermissionList": { + "base": null, + "refs": { + "ImageAttribute$LaunchPermissions": "

One or more launch permissions.

", + "LaunchPermissionModifications$Add": "

The AWS account ID to add to the list of launch permissions for the AMI.

", + "LaunchPermissionModifications$Remove": "

The AWS account ID to remove from the list of launch permissions for the AMI.

" + } + }, + "LaunchPermissionModifications": { + "base": "

Describes a launch permission modification.

", + "refs": { + "ModifyImageAttributeRequest$LaunchPermission": "

A launch permission modification.

" + } + }, + "LaunchSpecification": { + "base": "

Describes the launch specification for an instance.

", + "refs": { + "SpotInstanceRequest$LaunchSpecification": "

Additional information for launching instances.

" + } + }, + "ListingState": { + "base": null, + "refs": { + "InstanceCount$State": "

The states of the listed Reserved Instances.

" + } + }, + "ListingStatus": { + "base": null, + "refs": { + "ReservedInstancesListing$Status": "

The status of the Reserved Instance listing.

" + } + }, + "Long": { + "base": null, + "refs": { + "DescribeReservedInstancesOfferingsRequest$MinDuration": "

The minimum duration (in seconds) to filter when searching for offerings.

Default: 2592000 (1 month)

", + "DescribeReservedInstancesOfferingsRequest$MaxDuration": "

The maximum duration (in seconds) to filter when searching for offerings.

Default: 94608000 (3 years)

", + "DiskImageDescription$Size": "

The size of the disk image.

", + "DiskImageDetail$Bytes": null, + "DiskImageVolumeDescription$Size": "

The size of the volume.

", + "ImportInstanceVolumeDetailItem$BytesConverted": "

The number of bytes converted so far.

", + "ImportVolumeTaskDetails$BytesConverted": "

The number of bytes converted so far.

", + "PriceSchedule$Term": "

The number of months remaining in the reservation. For example, 2 is the second to the last month before the capacity reservation expires.

", + "PriceScheduleSpecification$Term": "

The number of months remaining in the reservation. For example, 2 is the second to the last month before the capacity reservation expires.

", + "ReservedInstances$Duration": "

The duration of the Reserved Instance, in seconds.

", + "ReservedInstancesOffering$Duration": "

The duration of the Reserved Instance, in seconds.

", + "VolumeDetail$Size": "

The size of the volume, in GiB.

" + } + }, + "ModifyImageAttributeRequest": { + "base": null, + "refs": { + } + }, + "ModifyInstanceAttributeRequest": { + "base": null, + "refs": { + } + }, + "ModifyNetworkInterfaceAttributeRequest": { + "base": null, + "refs": { + } + }, + "ModifyReservedInstancesRequest": { + "base": null, + "refs": { + } + }, + "ModifyReservedInstancesResult": { + "base": null, + "refs": { + } + }, + "ModifySnapshotAttributeRequest": { + "base": null, + "refs": { + } + }, + "ModifySubnetAttributeRequest": { + "base": null, + "refs": { + } + }, + "ModifyVolumeAttributeRequest": { + "base": null, + "refs": { + } + }, + "ModifyVpcAttributeRequest": { + "base": null, + "refs": { + } + }, + "MonitorInstancesRequest": { + "base": null, + "refs": { + } + }, + "MonitorInstancesResult": { + "base": null, + "refs": { + } + }, + "Monitoring": { + "base": "

Describes the monitoring for the instance.

", + "refs": { + "Instance$Monitoring": "

The monitoring information for the instance.

", + "InstanceMonitoring$Monitoring": "

The monitoring information.

" + } + }, + "MonitoringState": { + "base": null, + "refs": { + "Monitoring$State": "

Indicates whether monitoring is enabled for the instance.

" + } + }, + "NetworkAcl": { + "base": "

Describes a network ACL.

", + "refs": { + "CreateNetworkAclResult$NetworkAcl": "

Information about the network ACL.

", + "NetworkAclList$member": null + } + }, + "NetworkAclAssociation": { + "base": "

Describes an association between a network ACL and a subnet.

", + "refs": { + "NetworkAclAssociationList$member": null + } + }, + "NetworkAclAssociationList": { + "base": null, + "refs": { + "NetworkAcl$Associations": "

Any associations between the network ACL and one or more subnets

" + } + }, + "NetworkAclEntry": { + "base": "

Describes an entry in a network ACL.

", + "refs": { + "NetworkAclEntryList$member": null + } + }, + "NetworkAclEntryList": { + "base": null, + "refs": { + "NetworkAcl$Entries": "

One or more entries (rules) in the network ACL.

" + } + }, + "NetworkAclList": { + "base": null, + "refs": { + "DescribeNetworkAclsResult$NetworkAcls": "

Information about one or more network ACLs.

" + } + }, + "NetworkInterface": { + "base": "

Describes a network interface.

", + "refs": { + "CreateNetworkInterfaceResult$NetworkInterface": "

Information about the network interface.

", + "NetworkInterfaceList$member": null + } + }, + "NetworkInterfaceAssociation": { + "base": "

Describes association information for an Elastic IP address.

", + "refs": { + "NetworkInterface$Association": "

The association information for an Elastic IP associated with the network interface.

", + "NetworkInterfacePrivateIpAddress$Association": "

The association information for an Elastic IP address associated with the network interface.

" + } + }, + "NetworkInterfaceAttachment": { + "base": "

Describes a network interface attachment.

", + "refs": { + "DescribeNetworkInterfaceAttributeResult$Attachment": "

The attachment (if any) of the network interface.

", + "NetworkInterface$Attachment": "

The network interface attachment.

" + } + }, + "NetworkInterfaceAttachmentChanges": { + "base": "

Describes an attachment change.

", + "refs": { + "ModifyNetworkInterfaceAttributeRequest$Attachment": "

Information about the interface attachment. If modifying the 'delete on termination' attribute, you must specify the ID of the interface attachment.

" + } + }, + "NetworkInterfaceAttribute": { + "base": null, + "refs": { + "DescribeNetworkInterfaceAttributeRequest$Attribute": "

The attribute of the network interface.

" + } + }, + "NetworkInterfaceIdList": { + "base": null, + "refs": { + "DescribeNetworkInterfacesRequest$NetworkInterfaceIds": "

One or more network interface IDs.

Default: Describes all your network interfaces.

" + } + }, + "NetworkInterfaceList": { + "base": null, + "refs": { + "DescribeNetworkInterfacesResult$NetworkInterfaces": "

Information about one or more network interfaces.

" + } + }, + "NetworkInterfacePrivateIpAddress": { + "base": "

Describes the private IP address of a network interface.

", + "refs": { + "NetworkInterfacePrivateIpAddressList$member": null + } + }, + "NetworkInterfacePrivateIpAddressList": { + "base": null, + "refs": { + "NetworkInterface$PrivateIpAddresses": "

The private IP addresses associated with the network interface.

" + } + }, + "NetworkInterfaceStatus": { + "base": null, + "refs": { + "InstanceNetworkInterface$Status": "

The status of the network interface.

", + "NetworkInterface$Status": "

The status of the network interface.

" + } + }, + "OfferingTypeValues": { + "base": null, + "refs": { + "DescribeReservedInstancesOfferingsRequest$OfferingType": "

The Reserved Instance offering type. If you are using tools that predate the 2011-11-01 API version, you only have access to the Medium Utilization Reserved Instance offering type.

", + "DescribeReservedInstancesRequest$OfferingType": "

The Reserved Instance offering type. If you are using tools that predate the 2011-11-01 API version, you only have access to the Medium Utilization Reserved Instance offering type.

", + "ReservedInstances$OfferingType": "

The Reserved Instance offering type.

", + "ReservedInstancesOffering$OfferingType": "

The Reserved Instance offering type.

" + } + }, + "OwnerStringList": { + "base": null, + "refs": { + "DescribeImagesRequest$Owners": "

Filters the images by the owner. Specify an AWS account ID, amazon (owner is Amazon), aws-marketplace (owner is AWS Marketplace), self (owner is the sender of the request). Omitting this option returns all images for which you have launch permissions, regardless of ownership.

", + "DescribeSnapshotsRequest$OwnerIds": "

Returns the snapshots owned by the specified owner. Multiple owners can be specified.

" + } + }, + "PermissionGroup": { + "base": null, + "refs": { + "CreateVolumePermission$Group": "

The specific group that is to be added or removed from a volume's list of create volume permissions.

", + "LaunchPermission$Group": "

The name of the group.

" + } + }, + "Placement": { + "base": "

Describes the placement for the instance.

", + "refs": { + "ImportInstanceLaunchSpecification$Placement": null, + "Instance$Placement": "

The location where the instance launched.

", + "RunInstancesRequest$Placement": "

The placement for the instance.

" + } + }, + "PlacementGroup": { + "base": "

Describes a placement group.

", + "refs": { + "PlacementGroupList$member": null + } + }, + "PlacementGroupList": { + "base": null, + "refs": { + "DescribePlacementGroupsResult$PlacementGroups": "

One or more placement groups.

" + } + }, + "PlacementGroupState": { + "base": null, + "refs": { + "PlacementGroup$State": "

The state of the placement group.

" + } + }, + "PlacementGroupStringList": { + "base": null, + "refs": { + "DescribePlacementGroupsRequest$GroupNames": "

One or more placement group names.

Default: Describes all your placement groups, or only those otherwise specified.

" + } + }, + "PlacementStrategy": { + "base": null, + "refs": { + "CreatePlacementGroupRequest$Strategy": "

The placement strategy.

", + "PlacementGroup$Strategy": "

The placement strategy.

" + } + }, + "PlatformValues": { + "base": null, + "refs": { + "Image$Platform": "

The value is Windows for Windows AMIs; otherwise blank.

", + "ImportInstanceRequest$Platform": "

The instance operating system.

", + "ImportInstanceTaskDetails$Platform": "

The instance operating system.

", + "Instance$Platform": "

The value is Windows for Windows instances; otherwise blank.

" + } + }, + "PortRange": { + "base": "

Describes a range of ports.

", + "refs": { + "CreateNetworkAclEntryRequest$PortRange": "

TCP or UDP protocols: The range of ports the rule applies to.

", + "NetworkAclEntry$PortRange": "

TCP or UDP protocols: The range of ports the rule applies to.

", + "ReplaceNetworkAclEntryRequest$PortRange": "

TCP or UDP protocols: The range of ports the rule applies to. Required if specifying 6 (TCP) or 17 (UDP) for the protocol.

" + } + }, + "PriceSchedule": { + "base": "

Describes the price for a Reserved Instance.

", + "refs": { + "PriceScheduleList$member": null + } + }, + "PriceScheduleList": { + "base": null, + "refs": { + "ReservedInstancesListing$PriceSchedules": "

The price of the Reserved Instance listing.

" + } + }, + "PriceScheduleSpecification": { + "base": "

Describes the price for a Reserved Instance.

", + "refs": { + "PriceScheduleSpecificationList$member": null + } + }, + "PriceScheduleSpecificationList": { + "base": null, + "refs": { + "CreateReservedInstancesListingRequest$PriceSchedules": "

A list specifying the price of the Reserved Instance for each month remaining in the Reserved Instance term.

" + } + }, + "PricingDetail": { + "base": "

Describes a Reserved Instance offering.

", + "refs": { + "PricingDetailsList$member": null + } + }, + "PricingDetailsList": { + "base": null, + "refs": { + "ReservedInstancesOffering$PricingDetails": "

The pricing details of the Reserved Instance offering.

" + } + }, + "PrivateIpAddressSpecification": { + "base": "

Describes a secondary private IP address for a network interface.

", + "refs": { + "PrivateIpAddressSpecificationList$member": null + } + }, + "PrivateIpAddressSpecificationList": { + "base": null, + "refs": { + "CreateNetworkInterfaceRequest$PrivateIpAddresses": "

One or more private IP addresses.

", + "InstanceNetworkInterfaceSpecification$PrivateIpAddresses": "

One or more private IP addresses to assign to the network interface. Only one private IP address can be designated as primary.

" + } + }, + "PrivateIpAddressStringList": { + "base": null, + "refs": { + "AssignPrivateIpAddressesRequest$PrivateIpAddresses": "

One or more IP addresses to be assigned as a secondary private IP address to the network interface. You can't specify this parameter when also specifying a number of secondary IP addresses.

If you don't specify an IP address, Amazon EC2 automatically selects an IP address within the subnet range.

", + "UnassignPrivateIpAddressesRequest$PrivateIpAddresses": "

The secondary private IP addresses to unassign from the network interface. You can specify this option multiple times to unassign more than one IP address.

" + } + }, + "ProductCode": { + "base": "

Describes a product code.

", + "refs": { + "ProductCodeList$member": null + } + }, + "ProductCodeList": { + "base": null, + "refs": { + "DescribeSnapshotAttributeResult$ProductCodes": "

A list of product codes.

", + "DescribeVolumeAttributeResult$ProductCodes": "

A list of product codes.

", + "Image$ProductCodes": "

Any product codes associated with the AMI.

", + "ImageAttribute$ProductCodes": "

One or more product codes.

", + "Instance$ProductCodes": "

The product codes attached to this instance.

", + "InstanceAttribute$ProductCodes": "

A list of product codes.

" + } + }, + "ProductCodeStringList": { + "base": null, + "refs": { + "ModifyImageAttributeRequest$ProductCodes": "

One or more product codes. After you add a product code to an AMI, it can't be removed. This is only valid when modifying the productCodes attribute.

" + } + }, + "ProductCodeValues": { + "base": null, + "refs": { + "ProductCode$ProductCodeType": "

The type of product code.

" + } + }, + "ProductDescriptionList": { + "base": null, + "refs": { + "DescribeSpotPriceHistoryRequest$ProductDescriptions": "

Filters the results by the specified basic product descriptions.

" + } + }, + "PropagatingVgw": { + "base": "

Describes a virtual private gateway propagating route.

", + "refs": { + "PropagatingVgwList$member": null + } + }, + "PropagatingVgwList": { + "base": null, + "refs": { + "RouteTable$PropagatingVgws": "

Any virtual private gateway (VGW) propagating routes.

" + } + }, + "PublicIpStringList": { + "base": null, + "refs": { + "DescribeAddressesRequest$PublicIps": "

[EC2-Classic] One or more Elastic IP addresses.

Default: Describes all your Elastic IP addresses.

" + } + }, + "PurchaseReservedInstancesOfferingRequest": { + "base": null, + "refs": { + } + }, + "PurchaseReservedInstancesOfferingResult": { + "base": null, + "refs": { + } + }, + "RIProductDescription": { + "base": null, + "refs": { + "DescribeReservedInstancesOfferingsRequest$ProductDescription": "

The Reserved Instance description. Instances that include (Amazon VPC) in the description are for use with Amazon VPC.

", + "ReservedInstances$ProductDescription": "

The Reserved Instance description.

", + "ReservedInstancesOffering$ProductDescription": "

The Reserved Instance description.

", + "SpotInstanceRequest$ProductDescription": "

The product description associated with the Spot Instance.

", + "SpotPrice$ProductDescription": "

A general description of the AMI.

" + } + }, + "ReasonCodesList": { + "base": null, + "refs": { + "ReportInstanceStatusRequest$ReasonCodes": "

One or more reason codes that describes the health state of your instance.

  • instance-stuck-in-state: My instance is stuck in a state.

  • unresponsive: My instance is unresponsive.

  • not-accepting-credentials: My instance is not accepting my credentials.

  • password-not-available: A password is not available for my instance.

  • performance-network: My instance is experiencing performance problems which I believe are network related.

  • performance-instance-store: My instance is experiencing performance problems which I believe are related to the instance stores.

  • performance-ebs-volume: My instance is experiencing performance problems which I believe are related to an EBS volume.

  • performance-other: My instance is experiencing performance problems.

  • other: [explain using the description parameter]

" + } + }, + "RebootInstancesRequest": { + "base": null, + "refs": { + } + }, + "RecurringCharge": { + "base": "

Describes a recurring charge.

", + "refs": { + "RecurringChargesList$member": null + } + }, + "RecurringChargeFrequency": { + "base": null, + "refs": { + "RecurringCharge$Frequency": "

The frequency of the recurring charge.

" + } + }, + "RecurringChargesList": { + "base": null, + "refs": { + "ReservedInstances$RecurringCharges": "

The recurring charge tag assigned to the resource.

", + "ReservedInstancesOffering$RecurringCharges": "

The recurring charge tag assigned to the resource.

" + } + }, + "Region": { + "base": "

Describes a region.

", + "refs": { + "RegionList$member": null + } + }, + "RegionList": { + "base": null, + "refs": { + "DescribeRegionsResult$Regions": "

Information about one or more regions.

" + } + }, + "RegionNameStringList": { + "base": null, + "refs": { + "DescribeRegionsRequest$RegionNames": "

The names of one or more regions.

" + } + }, + "RegisterImageRequest": { + "base": null, + "refs": { + } + }, + "RegisterImageResult": { + "base": null, + "refs": { + } + }, + "RejectVpcPeeringConnectionRequest": { + "base": null, + "refs": { + } + }, + "RejectVpcPeeringConnectionResult": { + "base": null, + "refs": { + } + }, + "ReleaseAddressRequest": { + "base": null, + "refs": { + } + }, + "ReplaceNetworkAclAssociationRequest": { + "base": null, + "refs": { + } + }, + "ReplaceNetworkAclAssociationResult": { + "base": null, + "refs": { + } + }, + "ReplaceNetworkAclEntryRequest": { + "base": null, + "refs": { + } + }, + "ReplaceRouteRequest": { + "base": null, + "refs": { + } + }, + "ReplaceRouteTableAssociationRequest": { + "base": null, + "refs": { + } + }, + "ReplaceRouteTableAssociationResult": { + "base": null, + "refs": { + } + }, + "ReportInstanceReasonCodes": { + "base": null, + "refs": { + "ReasonCodesList$member": null + } + }, + "ReportInstanceStatusRequest": { + "base": null, + "refs": { + } + }, + "ReportStatusType": { + "base": null, + "refs": { + "ReportInstanceStatusRequest$Status": "

The status of all instances listed.

" + } + }, + "RequestSpotInstancesRequest": { + "base": null, + "refs": { + } + }, + "RequestSpotInstancesResult": { + "base": null, + "refs": { + } + }, + "Reservation": { + "base": "

Describes a reservation.

", + "refs": { + "ReservationList$member": null + } + }, + "ReservationList": { + "base": null, + "refs": { + "DescribeInstancesResult$Reservations": "

One or more reservations.

" + } + }, + "ReservedInstanceLimitPrice": { + "base": "

Describes the limit price of a Reserved Instance offering.

", + "refs": { + "PurchaseReservedInstancesOfferingRequest$LimitPrice": "

Specified for Reserved Instance Marketplace offerings to limit the total order and ensure that the Reserved Instances are not purchased at unexpected prices.

" + } + }, + "ReservedInstanceState": { + "base": null, + "refs": { + "ReservedInstances$State": "

The state of the Reserved Instance purchase.

" + } + }, + "ReservedInstances": { + "base": "

Describes a Reserved Instance.

", + "refs": { + "ReservedInstancesList$member": null + } + }, + "ReservedInstancesConfiguration": { + "base": "

Describes the configuration settings for the modified Reserved Instances.

", + "refs": { + "ReservedInstancesConfigurationList$member": null, + "ReservedInstancesModificationResult$TargetConfiguration": "

The target Reserved Instances configurations supplied as part of the modification request.

" + } + }, + "ReservedInstancesConfigurationList": { + "base": null, + "refs": { + "ModifyReservedInstancesRequest$TargetConfigurations": "

The configuration settings for the Reserved Instances to modify.

" + } + }, + "ReservedInstancesId": { + "base": "

Describes the ID of a Reserved Instance.

", + "refs": { + "ReservedIntancesIds$member": null + } + }, + "ReservedInstancesIdStringList": { + "base": null, + "refs": { + "DescribeReservedInstancesRequest$ReservedInstancesIds": "

One or more Reserved Instance IDs.

Default: Describes all your Reserved Instances, or only those otherwise specified.

", + "ModifyReservedInstancesRequest$ReservedInstancesIds": "

The IDs of the Reserved Instances to modify.

" + } + }, + "ReservedInstancesList": { + "base": null, + "refs": { + "DescribeReservedInstancesResult$ReservedInstances": "

A list of Reserved Instances.

" + } + }, + "ReservedInstancesListing": { + "base": "

Describes a Reserved Instance listing.

", + "refs": { + "ReservedInstancesListingList$member": null + } + }, + "ReservedInstancesListingList": { + "base": null, + "refs": { + "CancelReservedInstancesListingResult$ReservedInstancesListings": "

The Reserved Instance listing.

", + "CreateReservedInstancesListingResult$ReservedInstancesListings": "

Information about the Reserved Instances listing.

", + "DescribeReservedInstancesListingsResult$ReservedInstancesListings": "

Information about the Reserved Instance listing.

" + } + }, + "ReservedInstancesModification": { + "base": "

Describes a Reserved Instance modification.

", + "refs": { + "ReservedInstancesModificationList$member": null + } + }, + "ReservedInstancesModificationIdStringList": { + "base": null, + "refs": { + "DescribeReservedInstancesModificationsRequest$ReservedInstancesModificationIds": "

IDs for the submitted modification request.

" + } + }, + "ReservedInstancesModificationList": { + "base": null, + "refs": { + "DescribeReservedInstancesModificationsResult$ReservedInstancesModifications": "

The Reserved Instance modification information.

" + } + }, + "ReservedInstancesModificationResult": { + "base": null, + "refs": { + "ReservedInstancesModificationResultList$member": null + } + }, + "ReservedInstancesModificationResultList": { + "base": null, + "refs": { + "ReservedInstancesModification$ModificationResults": "

Contains target configurations along with their corresponding new Reserved Instance IDs.

" + } + }, + "ReservedInstancesOffering": { + "base": "

Describes a Reserved Instance offering.

", + "refs": { + "ReservedInstancesOfferingList$member": null + } + }, + "ReservedInstancesOfferingIdStringList": { + "base": null, + "refs": { + "DescribeReservedInstancesOfferingsRequest$ReservedInstancesOfferingIds": "

One or more Reserved Instances offering IDs.

" + } + }, + "ReservedInstancesOfferingList": { + "base": null, + "refs": { + "DescribeReservedInstancesOfferingsResult$ReservedInstancesOfferings": "

A list of Reserved Instances offerings.

" + } + }, + "ReservedIntancesIds": { + "base": null, + "refs": { + "ReservedInstancesModification$ReservedInstancesIds": "

The IDs of one or more Reserved Instances.

" + } + }, + "ResetImageAttributeName": { + "base": null, + "refs": { + "ResetImageAttributeRequest$Attribute": "

The attribute to reset (currently you can only reset the launch permission attribute).

" + } + }, + "ResetImageAttributeRequest": { + "base": null, + "refs": { + } + }, + "ResetInstanceAttributeRequest": { + "base": null, + "refs": { + } + }, + "ResetNetworkInterfaceAttributeRequest": { + "base": null, + "refs": { + } + }, + "ResetSnapshotAttributeRequest": { + "base": null, + "refs": { + } + }, + "ResourceIdList": { + "base": null, + "refs": { + "CreateTagsRequest$Resources": "

The IDs of one or more resources to tag. For example, ami-1a2b3c4d.

", + "DeleteTagsRequest$Resources": "

The ID of the resource. For example, ami-1a2b3c4d. You can specify more than one resource ID.

" + } + }, + "ResourceType": { + "base": null, + "refs": { + "TagDescription$ResourceType": "

The resource type.

" + } + }, + "RestorableByStringList": { + "base": null, + "refs": { + "DescribeSnapshotsRequest$RestorableByUserIds": "

One or more AWS accounts IDs that can create volumes from the snapshot.

" + } + }, + "RevokeSecurityGroupEgressRequest": { + "base": null, + "refs": { + } + }, + "RevokeSecurityGroupIngressRequest": { + "base": null, + "refs": { + } + }, + "Route": { + "base": "

Describes a route in a route table.

", + "refs": { + "RouteList$member": null + } + }, + "RouteList": { + "base": null, + "refs": { + "RouteTable$Routes": "

The routes in the route table.

" + } + }, + "RouteOrigin": { + "base": null, + "refs": { + "Route$Origin": "

Describes how the route was created.

  • CreateRouteTable indicates that route was automatically created when the route table was created.
  • CreateRoute indicates that the route was manually added to the route table.
  • EnableVgwRoutePropagation indicates that the route was propagated by route propagation.
" + } + }, + "RouteState": { + "base": null, + "refs": { + "Route$State": "

The state of the route. The blackhole state indicates that the route's target isn't available (for example, the specified gateway isn't attached to the VPC, or the specified NAT instance has been terminated).

" + } + }, + "RouteTable": { + "base": "

Describes a route table.

", + "refs": { + "CreateRouteTableResult$RouteTable": "

Information about the route table.

", + "RouteTableList$member": null + } + }, + "RouteTableAssociation": { + "base": "

Describes an association between a route table and a subnet.

", + "refs": { + "RouteTableAssociationList$member": null + } + }, + "RouteTableAssociationList": { + "base": null, + "refs": { + "RouteTable$Associations": "

The associations between the route table and one or more subnets.

" + } + }, + "RouteTableList": { + "base": null, + "refs": { + "DescribeRouteTablesResult$RouteTables": "

Information about one or more route tables.

" + } + }, + "RuleAction": { + "base": null, + "refs": { + "CreateNetworkAclEntryRequest$RuleAction": "

Indicates whether to allow or deny the traffic that matches the rule.

", + "NetworkAclEntry$RuleAction": "

Indicates whether to allow or deny the traffic that matches the rule.

", + "ReplaceNetworkAclEntryRequest$RuleAction": "

Indicates whether to allow or deny the traffic that matches the rule.

" + } + }, + "RunInstancesMonitoringEnabled": { + "base": "

Describes the monitoring for the instance.

", + "refs": { + "LaunchSpecification$Monitoring": null, + "RunInstancesRequest$Monitoring": "

The monitoring for the instance.

", + "RequestSpotLaunchSpecification$Monitoring": null + } + }, + "RunInstancesRequest": { + "base": null, + "refs": { + } + }, + "S3Storage": { + "base": "

Describes the storage parameters for S3 and S3 buckets for an instance store-backed AMI.

", + "refs": { + "Storage$S3": "

An Amazon S3 storage location.

" + } + }, + "SecurityGroup": { + "base": "

Describes a security group

", + "refs": { + "SecurityGroupList$member": null + } + }, + "SecurityGroupIdStringList": { + "base": null, + "refs": { + "CreateNetworkInterfaceRequest$Groups": "

The IDs of one or more security groups.

", + "ImportInstanceLaunchSpecification$GroupIds": "

One or more security group IDs.

", + "InstanceNetworkInterfaceSpecification$Groups": "

The IDs of the security groups for the network interface. Applies only if creating a network interface when launching an instance.

", + "ModifyNetworkInterfaceAttributeRequest$Groups": "

Changes the security groups for the network interface. The new set of groups you specify replaces the current set. You must specify at least one group, even if it's just the default security group in the VPC. You must specify the ID of the security group, not the name.

", + "RunInstancesRequest$SecurityGroupIds": "

One or more security group IDs. You can create a security group using CreateSecurityGroup.

Default: Amazon EC2 uses the default security group.

" + } + }, + "SecurityGroupList": { + "base": null, + "refs": { + "DescribeSecurityGroupsResult$SecurityGroups": "

Information about one or more security groups.

" + } + }, + "SecurityGroupStringList": { + "base": null, + "refs": { + "ImportInstanceLaunchSpecification$GroupNames": "

One or more security group names.

", + "RunInstancesRequest$SecurityGroups": "

[EC2-Classic, default VPC] One or more security group names. For a nondefault VPC, you must use security group IDs instead.

Default: Amazon EC2 uses the default security group.

" + } + }, + "ShutdownBehavior": { + "base": null, + "refs": { + "ImportInstanceLaunchSpecification$InstanceInitiatedShutdownBehavior": "

Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).

", + "RunInstancesRequest$InstanceInitiatedShutdownBehavior": "

Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).

Default: stop

" + } + }, + "Snapshot": { + "base": "

Describes a snapshot.

", + "refs": { + "SnapshotList$member": null + } + }, + "SnapshotAttributeName": { + "base": null, + "refs": { + "DescribeSnapshotAttributeRequest$Attribute": "

The snapshot attribute you would like to view.

", + "ModifySnapshotAttributeRequest$Attribute": "

The snapshot attribute to modify.

", + "ResetSnapshotAttributeRequest$Attribute": "

The attribute to reset (currently only the attribute for permission to create volumes can be reset).

" + } + }, + "SnapshotDetail": { + "base": "

The details of the snapshot created from the imported disk.

", + "refs": { + "SnapshotDetailList$member": null + } + }, + "SnapshotDetailList": { + "base": null, + "refs": { + "ImportImageResult$SnapshotDetails": null, + "ImportImageTask$SnapshotDetails": null + } + }, + "SnapshotDiskContainer": { + "base": "

The disk container object for the ImportSnapshot request.

", + "refs": { + "ImportSnapshotRequest$DiskContainer": null + } + }, + "SnapshotIdStringList": { + "base": null, + "refs": { + "DescribeSnapshotsRequest$SnapshotIds": "

One or more snapshot IDs.

Default: Describes snapshots for which you have launch permissions.

" + } + }, + "SnapshotList": { + "base": null, + "refs": { + "DescribeSnapshotsResult$Snapshots": null + } + }, + "SnapshotState": { + "base": null, + "refs": { + "Snapshot$State": "

The snapshot state.

" + } + }, + "SnapshotTaskDetail": { + "base": "

Details about the import snapshot task.

", + "refs": { + "ImportSnapshotResult$SnapshotTaskDetail": null, + "ImportSnapshotTask$SnapshotTaskDetail": null + } + }, + "SpotDatafeedSubscription": { + "base": "

Describes the data feed for a Spot Instance.

", + "refs": { + "CreateSpotDatafeedSubscriptionResult$SpotDatafeedSubscription": "

The Spot Instance data feed subscription.

", + "DescribeSpotDatafeedSubscriptionResult$SpotDatafeedSubscription": "

The Spot Instance data feed subscription.

" + } + }, + "SpotInstanceRequest": { + "base": "

Describe a Spot Instance request.

", + "refs": { + "SpotInstanceRequestList$member": null + } + }, + "SpotInstanceRequestIdList": { + "base": null, + "refs": { + "CancelSpotInstanceRequestsRequest$SpotInstanceRequestIds": "

One or more Spot Instance request IDs.

", + "DescribeSpotInstanceRequestsRequest$SpotInstanceRequestIds": "

One or more Spot Instance request IDs.

" + } + }, + "SpotInstanceRequestList": { + "base": null, + "refs": { + "DescribeSpotInstanceRequestsResult$SpotInstanceRequests": "

One or more Spot Instance requests.

", + "RequestSpotInstancesResult$SpotInstanceRequests": "

One or more Spot Instance requests.

" + } + }, + "SpotInstanceState": { + "base": null, + "refs": { + "SpotInstanceRequest$State": "

The state of the Spot Instance request. Spot bid status information can help you track your Spot Instance requests. For more information, see Spot Bid Status in the Amazon Elastic Compute Cloud User Guide.

" + } + }, + "SpotInstanceStateFault": { + "base": "

Describes a Spot Instance state change.

", + "refs": { + "SpotDatafeedSubscription$Fault": "

The fault codes for the Spot Instance request, if any.

", + "SpotInstanceRequest$Fault": "

The fault codes for the Spot Instance request, if any.

" + } + }, + "SpotInstanceStatus": { + "base": "

Describes the status of a Spot Instance request.

", + "refs": { + "SpotInstanceRequest$Status": "

The status code and status message describing the Spot Instance request.

" + } + }, + "SpotInstanceType": { + "base": null, + "refs": { + "RequestSpotInstancesRequest$Type": "

The Spot Instance request type.

Default: one-time

", + "SpotInstanceRequest$Type": "

The Spot Instance request type.

" + } + }, + "SpotPlacement": { + "base": "

Describes Spot Instance placement.

", + "refs": { + "LaunchSpecification$Placement": "

The placement information for the instance.

", + "RequestSpotLaunchSpecification$Placement": "

The placement information for the instance.

" + } + }, + "SpotPrice": { + "base": "

Describes the maximum hourly price (bid) for any Spot Instance launched to fulfill the request.

", + "refs": { + "SpotPriceHistoryList$member": null + } + }, + "SpotPriceHistoryList": { + "base": null, + "refs": { + "DescribeSpotPriceHistoryResult$SpotPriceHistory": "

The historical Spot Prices.

" + } + }, + "StartInstancesRequest": { + "base": null, + "refs": { + } + }, + "StartInstancesResult": { + "base": null, + "refs": { + } + }, + "StateReason": { + "base": "

Describes a state change.

", + "refs": { + "Image$StateReason": "

The reason for the state change.

", + "Instance$StateReason": "

The reason for the most recent state transition.

" + } + }, + "StatusName": { + "base": null, + "refs": { + "InstanceStatusDetails$Name": "

The type of instance status.

" + } + }, + "StatusType": { + "base": null, + "refs": { + "InstanceStatusDetails$Status": "

The status.

" + } + }, + "StopInstancesRequest": { + "base": null, + "refs": { + } + }, + "StopInstancesResult": { + "base": null, + "refs": { + } + }, + "Storage": { + "base": "

Describes the storage location for an instance store-backed AMI.

", + "refs": { + "BundleInstanceRequest$Storage": "

The bucket in which to store the AMI. You can specify a bucket that you already own or a new bucket that Amazon EC2 creates on your behalf. If you specify a bucket that belongs to someone else, Amazon EC2 returns an error.

", + "BundleTask$Storage": "

The Amazon S3 storage locations.

" + } + }, + "String": { + "base": null, + "refs": { + "AcceptVpcPeeringConnectionRequest$VpcPeeringConnectionId": "

The ID of the VPC peering connection.

", + "AccountAttribute$AttributeName": "

The name of the account attribute.

", + "AccountAttributeValue$AttributeValue": "

The value of the attribute.

", + "Address$InstanceId": "

The ID of the instance the address is associated with (if any).

", + "Address$PublicIp": "

The Elastic IP address.

", + "Address$AllocationId": "

The ID representing the allocation of the address for use with EC2-VPC.

", + "Address$AssociationId": "

The ID representing the association of the address with an instance in a VPC.

", + "Address$NetworkInterfaceId": "

The ID of the network interface.

", + "Address$NetworkInterfaceOwnerId": "

The ID of the AWS account that owns the network interface.

", + "Address$PrivateIpAddress": "

The private IP address associated with the Elastic IP address.

", + "AllocateAddressResult$PublicIp": "

The Elastic IP address.

", + "AllocateAddressResult$AllocationId": "

[EC2-VPC] The ID that AWS assigns to represent the allocation of the Elastic IP address for use with instances in a VPC.

", + "AllocationIdList$member": null, + "AssignPrivateIpAddressesRequest$NetworkInterfaceId": "

The ID of the network interface.

", + "AssociateAddressRequest$InstanceId": "

The ID of the instance. This is required for EC2-Classic. For EC2-VPC, you can specify either the instance ID or the network interface ID, but not both. The operation fails if you specify an instance ID unless exactly one network interface is attached.

", + "AssociateAddressRequest$PublicIp": "

The Elastic IP address. This is required for EC2-Classic.

", + "AssociateAddressRequest$AllocationId": "

[EC2-VPC] The allocation ID. This is required for EC2-VPC.

", + "AssociateAddressRequest$NetworkInterfaceId": "

[EC2-VPC] The ID of the network interface. If the instance has more than one network interface, you must specify a network interface ID.

", + "AssociateAddressRequest$PrivateIpAddress": "

[EC2-VPC] The primary or secondary private IP address to associate with the Elastic IP address. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address.

", + "AssociateAddressResult$AssociationId": "

[EC2-VPC] The ID that represents the association of the Elastic IP address with an instance.

", + "AssociateDhcpOptionsRequest$DhcpOptionsId": "

The ID of the DHCP options set, or default to associate no DHCP options with the VPC.

", + "AssociateDhcpOptionsRequest$VpcId": "

The ID of the VPC.

", + "AssociateRouteTableRequest$SubnetId": "

The ID of the subnet.

", + "AssociateRouteTableRequest$RouteTableId": "

The ID of the route table.

", + "AssociateRouteTableResult$AssociationId": "

The route table association ID (needed to disassociate the route table).

", + "AttachClassicLinkVpcRequest$InstanceId": "

The ID of an EC2-Classic instance to link to the ClassicLink-enabled VPC.

", + "AttachClassicLinkVpcRequest$VpcId": "

The ID of a ClassicLink-enabled VPC.

", + "AttachInternetGatewayRequest$InternetGatewayId": "

The ID of the Internet gateway.

", + "AttachInternetGatewayRequest$VpcId": "

The ID of the VPC.

", + "AttachNetworkInterfaceRequest$NetworkInterfaceId": "

The ID of the network interface.

", + "AttachNetworkInterfaceRequest$InstanceId": "

The ID of the instance.

", + "AttachNetworkInterfaceResult$AttachmentId": "

The ID of the network interface attachment.

", + "AttachVolumeRequest$VolumeId": "

The ID of the Amazon EBS volume. The volume and instance must be within the same Availability Zone.

", + "AttachVolumeRequest$InstanceId": "

The ID of the instance.

", + "AttachVolumeRequest$Device": "

The device name to expose to the instance (for example, /dev/sdh or xvdh).

", + "AttachVpnGatewayRequest$VpnGatewayId": "

The ID of the virtual private gateway.

", + "AttachVpnGatewayRequest$VpcId": "

The ID of the VPC.

", + "AttributeValue$Value": "

Valid values are case-sensitive and vary by action.

", + "AuthorizeSecurityGroupEgressRequest$GroupId": "

The ID of the security group.

", + "AuthorizeSecurityGroupEgressRequest$SourceSecurityGroupName": "

[EC2-Classic, default VPC] The name of the destination security group. You can't specify a destination security group and a CIDR IP address range.

", + "AuthorizeSecurityGroupEgressRequest$SourceSecurityGroupOwnerId": "

The ID of the destination security group. You can't specify a destination security group and a CIDR IP address range.

", + "AuthorizeSecurityGroupEgressRequest$IpProtocol": "

The IP protocol name (tcp, udp, icmp) or number (see Protocol Numbers). Use -1 to specify all.

", + "AuthorizeSecurityGroupEgressRequest$CidrIp": "

The CIDR IP address range. You can't specify this parameter when specifying a source security group.

", + "AuthorizeSecurityGroupIngressRequest$GroupName": "

[EC2-Classic, default VPC] The name of the security group.

", + "AuthorizeSecurityGroupIngressRequest$GroupId": "

The ID of the security group. Required for a nondefault VPC.

", + "AuthorizeSecurityGroupIngressRequest$SourceSecurityGroupName": "

[EC2-Classic, default VPC] The name of the source security group. You can't specify a source security group and a CIDR IP address range.

", + "AuthorizeSecurityGroupIngressRequest$SourceSecurityGroupOwnerId": "

The ID of the source security group. You can't specify a source security group and a CIDR IP address range.

", + "AuthorizeSecurityGroupIngressRequest$IpProtocol": "

The IP protocol name (tcp, udp, icmp) or number (see Protocol Numbers). (VPC only) Use -1 to specify all.

", + "AuthorizeSecurityGroupIngressRequest$CidrIp": "

The CIDR IP address range. You can't specify this parameter when specifying a source security group.

", + "AvailabilityZone$ZoneName": "

The name of the Availability Zone.

", + "AvailabilityZone$RegionName": "

The name of the region.

", + "AvailabilityZoneMessage$Message": "

The message about the Availability Zone.

", + "BlockDeviceMapping$VirtualName": "

The virtual device name (ephemeralN). Instance store volumes are numbered starting from 0. An instance type with 2 available instance store volumes can specify mappings for ephemeral0 and ephemeral1.The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume.

Constraints: For M3 instances, you must specify instance store volumes in the block device mapping for the instance. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI.

", + "BlockDeviceMapping$DeviceName": "

The device name exposed to the instance (for example, /dev/sdh or xvdh).

", + "BlockDeviceMapping$NoDevice": "

Suppresses the specified device included in the block device mapping of the AMI.

", + "BundleIdStringList$member": null, + "BundleInstanceRequest$InstanceId": "

The ID of the instance to bundle.

Type: String

Default: None

Required: Yes

", + "BundleTask$InstanceId": "

The ID of the instance associated with this bundle task.

", + "BundleTask$BundleId": "

The ID of the bundle task.

", + "BundleTask$Progress": "

The level of task completion, as a percent (for example, 20%).

", + "BundleTaskError$Code": "

The error code.

", + "BundleTaskError$Message": "

The error message.

", + "CancelBundleTaskRequest$BundleId": "

The ID of the bundle task.

", + "CancelConversionRequest$ConversionTaskId": "

The ID of the conversion task.

", + "CancelConversionRequest$ReasonMessage": null, + "CancelExportTaskRequest$ExportTaskId": "

The ID of the export task. This is the ID returned by CreateInstanceExportTask.

", + "CancelImportTaskRequest$ImportTaskId": "

The ID of the ImportImage or ImportSnapshot task to be cancelled.

", + "CancelImportTaskRequest$CancelReason": "

The reason for canceling the task.

", + "CancelImportTaskResult$ImportTaskId": "

The task ID of the ImportImage or ImportSnapshot task being canceled.

", + "CancelImportTaskResult$State": "

The current state of the ImportImage or ImportSnapshot task being canceled.

", + "CancelImportTaskResult$PreviousState": "

The current state of the ImportImage or ImportSnapshot task being canceled.

", + "CancelReservedInstancesListingRequest$ReservedInstancesListingId": "

The ID of the Reserved Instance listing.

", + "CancelledSpotInstanceRequest$SpotInstanceRequestId": "

The ID of the Spot Instance request.

", + "ClassicLinkInstance$InstanceId": "

The ID of the instance.

", + "ClassicLinkInstance$VpcId": "

The ID of the VPC.

", + "ClientData$Comment": "

User-defined comment about the upload.

", + "ConfirmProductInstanceRequest$ProductCode": "

The product code. This must be a product code that you own.

", + "ConfirmProductInstanceRequest$InstanceId": "

The ID of the instance.

", + "ConfirmProductInstanceResult$OwnerId": "

The AWS account ID of the instance owner. This is only present if the product code is attached to the instance.

", + "ConversionIdStringList$member": null, + "ConversionTask$ConversionTaskId": "

The ID of the conversion task.

", + "ConversionTask$ExpirationTime": "

The time when the task expires. If the upload isn't complete before the expiration time, we automatically cancel the task.

", + "ConversionTask$StatusMessage": "

The status message related to the conversion task.

", + "CopyImageRequest$SourceRegion": "

The name of the region that contains the AMI to copy.

", + "CopyImageRequest$SourceImageId": "

The ID of the AMI to copy.

", + "CopyImageRequest$Name": "

The name of the new AMI in the destination region.

", + "CopyImageRequest$Description": "

A description for the new AMI in the destination region.

", + "CopyImageRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see How to Ensure Idempotency in the Amazon Elastic Compute Cloud User Guide.

", + "CopyImageResult$ImageId": "

The ID of the new AMI.

", + "CopySnapshotRequest$SourceRegion": "

The ID of the region that contains the snapshot to be copied.

", + "CopySnapshotRequest$SourceSnapshotId": "

The ID of the Amazon EBS snapshot to copy.

", + "CopySnapshotRequest$Description": "

A description for the new Amazon EBS snapshot.

", + "CopySnapshotRequest$DestinationRegion": "

The destination region to use in the PresignedUrl parameter of a snapshot copy operation. This parameter is only valid for specifying the destination region in a PresignedUrl parameter, where it is required.

CopySnapshot sends the snapshot copy to the regional endpoint that you send the HTTP request to, such as ec2.us-east-1.amazonaws.com (in the AWS CLI, this is specified with the --region parameter or the default region in your AWS configuration file).

", + "CopySnapshotRequest$PresignedUrl": "

The pre-signed URL that facilitates copying an encrypted snapshot. This parameter is only required when copying an encrypted snapshot with the Amazon EC2 Query API; it is available as an optional parameter in all other cases. The PresignedUrl should use the snapshot source endpoint, the CopySnapshot action, and include the SourceRegion, SourceSnapshotId, and DestinationRegion parameters. The PresignedUrl must be signed using AWS Signature Version 4. Because Amazon EBS snapshots are stored in Amazon S3, the signing algorithm for this parameter uses the same logic that is described in Authenticating Requests by Using Query Parameters (AWS Signature Version 4) in the Amazon Simple Storage Service API Reference. An invalid or improperly signed PresignedUrl will cause the copy operation to fail asynchronously, and the snapshot will move to an error state.

", + "CopySnapshotResult$SnapshotId": "

The ID of the new snapshot.

", + "CreateCustomerGatewayRequest$PublicIp": "

The Internet-routable IP address for the customer gateway's outside interface. The address must be static.

", + "CreateImageRequest$InstanceId": "

The ID of the instance.

", + "CreateImageRequest$Name": "

A name for the new image.

Constraints: 3-128 alphanumeric characters, parentheses (()), square brackets ([]), spaces ( ), periods (.), slashes (/), dashes (-), single quotes ('), at-signs (@), or underscores(_)

", + "CreateImageRequest$Description": "

A description for the new image.

", + "CreateImageResult$ImageId": "

The ID of the new AMI.

", + "CreateInstanceExportTaskRequest$Description": "

A description for the conversion task or the resource being exported. The maximum length is 255 bytes.

", + "CreateInstanceExportTaskRequest$InstanceId": "

The ID of the instance.

", + "CreateKeyPairRequest$KeyName": "

A unique name for the key pair.

Constraints: Up to 255 ASCII characters

", + "CreateNetworkAclEntryRequest$NetworkAclId": "

The ID of the network ACL.

", + "CreateNetworkAclEntryRequest$Protocol": "

The protocol. A value of -1 means all protocols.

", + "CreateNetworkAclEntryRequest$CidrBlock": "

The network range to allow or deny, in CIDR notation (for example 172.16.0.0/24).

", + "CreateNetworkAclRequest$VpcId": "

The ID of the VPC.

", + "CreateNetworkInterfaceRequest$SubnetId": "

The ID of the subnet to associate with the network interface.

", + "CreateNetworkInterfaceRequest$Description": "

A description for the network interface.

", + "CreateNetworkInterfaceRequest$PrivateIpAddress": "

The primary private IP address of the network interface. If you don't specify an IP address, Amazon EC2 selects one for you from the subnet range. If you specify an IP address, you cannot indicate any IP addresses specified in privateIpAddresses as primary (only one IP address can be designated as primary).

", + "CreatePlacementGroupRequest$GroupName": "

A name for the placement group.

Constraints: Up to 255 ASCII characters

", + "CreateReservedInstancesListingRequest$ReservedInstancesId": "

The ID of the active Reserved Instance.

", + "CreateReservedInstancesListingRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure idempotency of your listings. This helps avoid duplicate listings. For more information, see Ensuring Idempotency.

", + "CreateRouteRequest$RouteTableId": "

The ID of the route table for the route.

", + "CreateRouteRequest$DestinationCidrBlock": "

The CIDR address block used for the destination match. Routing decisions are based on the most specific match.

", + "CreateRouteRequest$GatewayId": "

The ID of an Internet gateway or virtual private gateway attached to your VPC.

", + "CreateRouteRequest$InstanceId": "

The ID of a NAT instance in your VPC. The operation fails if you specify an instance ID unless exactly one network interface is attached.

", + "CreateRouteRequest$NetworkInterfaceId": "

The ID of a network interface.

", + "CreateRouteRequest$VpcPeeringConnectionId": "

The ID of a VPC peering connection.

", + "CreateRouteTableRequest$VpcId": "

The ID of the VPC.

", + "CreateSecurityGroupRequest$GroupName": "

The name of the security group.

Constraints: Up to 255 characters in length

Constraints for EC2-Classic: ASCII characters

Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*

", + "CreateSecurityGroupRequest$Description": "

A description for the security group. This is informational only.

Constraints: Up to 255 characters in length

Constraints for EC2-Classic: ASCII characters

Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*

", + "CreateSecurityGroupRequest$VpcId": "

[EC2-VPC] The ID of the VPC. Required for EC2-VPC.

", + "CreateSecurityGroupResult$GroupId": "

The ID of the security group.

", + "CreateSnapshotRequest$VolumeId": "

The ID of the Amazon EBS volume.

", + "CreateSnapshotRequest$Description": "

A description for the snapshot.

", + "CreateSpotDatafeedSubscriptionRequest$Bucket": "

The Amazon S3 bucket in which to store the Spot Instance data feed.

", + "CreateSpotDatafeedSubscriptionRequest$Prefix": "

A prefix for the data feed file names.

", + "CreateSubnetRequest$VpcId": "

The ID of the VPC.

", + "CreateSubnetRequest$CidrBlock": "

The network range for the subnet, in CIDR notation. For example, 10.0.0.0/24.

", + "CreateSubnetRequest$AvailabilityZone": "

The Availability Zone for the subnet.

Default: Amazon EC2 selects one for you (recommended).

", + "CreateVolumePermission$UserId": "

The specific AWS account ID that is to be added or removed from a volume's list of create volume permissions.

", + "CreateVolumeRequest$SnapshotId": "

The snapshot from which to create the volume.

", + "CreateVolumeRequest$AvailabilityZone": "

The Availability Zone in which to create the volume. Use DescribeAvailabilityZones to list the Availability Zones that are currently available to you.

", + "CreateVolumeRequest$KmsKeyId": "

The full ARN of the AWS Key Management Service (KMS) master key to use when creating the encrypted volume. This parameter is only required if you want to use a non-default master key; if this parameter is not specified, the default master key is used. The ARN contains the arn:aws:kms namespace, followed by the region of the master key, the AWS account ID of the master key owner, the key namespace, and then the master key ID. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef.

", + "CreateVpcPeeringConnectionRequest$VpcId": "

The ID of the requester VPC.

", + "CreateVpcPeeringConnectionRequest$PeerVpcId": "

The ID of the VPC with which you are creating the VPC peering connection.

", + "CreateVpcPeeringConnectionRequest$PeerOwnerId": "

The AWS account ID of the owner of the peer VPC.

Default: Your AWS account ID

", + "CreateVpcRequest$CidrBlock": "

The network range for the VPC, in CIDR notation. For example, 10.0.0.0/16.

", + "CreateVpnConnectionRequest$Type": "

The type of VPN connection (ipsec.1).

", + "CreateVpnConnectionRequest$CustomerGatewayId": "

The ID of the customer gateway.

", + "CreateVpnConnectionRequest$VpnGatewayId": "

The ID of the virtual private gateway.

", + "CreateVpnConnectionRouteRequest$VpnConnectionId": "

The ID of the VPN connection.

", + "CreateVpnConnectionRouteRequest$DestinationCidrBlock": "

The CIDR block associated with the local subnet of the customer network.

", + "CreateVpnGatewayRequest$AvailabilityZone": "

The Availability Zone for the virtual private gateway.

", + "CustomerGateway$CustomerGatewayId": "

The ID of the customer gateway.

", + "CustomerGateway$State": "

The current state of the customer gateway (pending | available | deleting | deleted).

", + "CustomerGateway$Type": "

The type of VPN connection the customer gateway supports (ipsec.1).

", + "CustomerGateway$IpAddress": "

The Internet-routable IP address of the customer gateway's outside interface.

", + "CustomerGateway$BgpAsn": "

The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN).

", + "CustomerGatewayIdStringList$member": null, + "DeleteCustomerGatewayRequest$CustomerGatewayId": "

The ID of the customer gateway.

", + "DeleteDhcpOptionsRequest$DhcpOptionsId": "

The ID of the DHCP options set.

", + "DeleteInternetGatewayRequest$InternetGatewayId": "

The ID of the Internet gateway.

", + "DeleteKeyPairRequest$KeyName": "

The name of the key pair.

", + "DeleteNetworkAclEntryRequest$NetworkAclId": "

The ID of the network ACL.

", + "DeleteNetworkAclRequest$NetworkAclId": "

The ID of the network ACL.

", + "DeleteNetworkInterfaceRequest$NetworkInterfaceId": "

The ID of the network interface.

", + "DeletePlacementGroupRequest$GroupName": "

The name of the placement group.

", + "DeleteRouteRequest$RouteTableId": "

The ID of the route table.

", + "DeleteRouteRequest$DestinationCidrBlock": "

The CIDR range for the route. The value you specify must match the CIDR for the route exactly.

", + "DeleteRouteTableRequest$RouteTableId": "

The ID of the route table.

", + "DeleteSecurityGroupRequest$GroupName": "

[EC2-Classic, default VPC] The name of the security group. You can specify either the security group name or the security group ID.

", + "DeleteSecurityGroupRequest$GroupId": "

The ID of the security group. Required for a nondefault VPC.

", + "DeleteSnapshotRequest$SnapshotId": "

The ID of the Amazon EBS snapshot.

", + "DeleteSubnetRequest$SubnetId": "

The ID of the subnet.

", + "DeleteVolumeRequest$VolumeId": "

The ID of the volume.

", + "DeleteVpcPeeringConnectionRequest$VpcPeeringConnectionId": "

The ID of the VPC peering connection.

", + "DeleteVpcRequest$VpcId": "

The ID of the VPC.

", + "DeleteVpnConnectionRequest$VpnConnectionId": "

The ID of the VPN connection.

", + "DeleteVpnConnectionRouteRequest$VpnConnectionId": "

The ID of the VPN connection.

", + "DeleteVpnConnectionRouteRequest$DestinationCidrBlock": "

The CIDR block associated with the local subnet of the customer network.

", + "DeleteVpnGatewayRequest$VpnGatewayId": "

The ID of the virtual private gateway.

", + "DeregisterImageRequest$ImageId": "

The ID of the AMI.

", + "DescribeClassicLinkInstancesRequest$NextToken": "

The token to retrieve the next page of results.

", + "DescribeClassicLinkInstancesResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeImageAttributeRequest$ImageId": "

The ID of the AMI.

", + "DescribeImportImageTasksRequest$NextToken": "

The token to get the next page of paginated describe requests.

", + "DescribeImportImageTasksResult$NextToken": "

The token to get the next page of paginated describe requests.

", + "DescribeImportSnapshotTasksRequest$NextToken": "

The token to get to the next page of paginated describe requests.

", + "DescribeImportSnapshotTasksResult$NextToken": "

The token to get to the next page of paginated describe requests.

", + "DescribeInstanceAttributeRequest$InstanceId": "

The ID of the instance.

", + "DescribeInstanceStatusRequest$NextToken": "

The token to retrieve the next page of results.

", + "DescribeInstanceStatusResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeInstancesRequest$NextToken": "

The token to request the next page of results.

", + "DescribeInstancesResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeNetworkInterfaceAttributeRequest$NetworkInterfaceId": "

The ID of the network interface.

", + "DescribeNetworkInterfaceAttributeResult$NetworkInterfaceId": "

The ID of the network interface.

", + "DescribeReservedInstancesListingsRequest$ReservedInstancesId": "

One or more Reserved Instance IDs.

", + "DescribeReservedInstancesListingsRequest$ReservedInstancesListingId": "

One or more Reserved Instance Listing IDs.

", + "DescribeReservedInstancesModificationsRequest$NextToken": "

The token to retrieve the next page of results.

", + "DescribeReservedInstancesModificationsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeReservedInstancesOfferingsRequest$AvailabilityZone": "

The Availability Zone in which the Reserved Instance can be used.

", + "DescribeReservedInstancesOfferingsRequest$NextToken": "

The token to retrieve the next page of results.

", + "DescribeReservedInstancesOfferingsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeSnapshotAttributeRequest$SnapshotId": "

The ID of the Amazon EBS snapshot.

", + "DescribeSnapshotAttributeResult$SnapshotId": "

The ID of the Amazon EBS snapshot.

", + "DescribeSnapshotsRequest$NextToken": "

The NextToken value returned from a previous paginated DescribeSnapshots request where MaxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the NextToken value. This value is null when there are no more results to return.

", + "DescribeSnapshotsResult$NextToken": "

The NextToken value to include in a future DescribeSnapshots request. When the results of a DescribeSnapshots request exceed MaxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeSpotPriceHistoryRequest$AvailabilityZone": "

Filters the results by the specified Availability Zone.

", + "DescribeSpotPriceHistoryRequest$NextToken": "

The token to retrieve the next page of results.

", + "DescribeSpotPriceHistoryResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeTagsRequest$NextToken": "

The token to retrieve the next page of results.

", + "DescribeTagsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return..

", + "DescribeVolumeAttributeRequest$VolumeId": "

The ID of the volume.

", + "DescribeVolumeAttributeResult$VolumeId": "

The ID of the volume.

", + "DescribeVolumeStatusRequest$NextToken": "

The NextToken value to include in a future DescribeVolumeStatus request. When the results of the request exceed MaxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeVolumeStatusResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeVolumesRequest$NextToken": "

The NextToken value returned from a previous paginated DescribeVolumes request where MaxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the NextToken value. This value is null when there are no more results to return.

", + "DescribeVolumesResult$NextToken": "

The NextToken value to include in a future DescribeVolumes request. When the results of a DescribeVolumes request exceed MaxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeVpcAttributeRequest$VpcId": "

The ID of the VPC.

", + "DescribeVpcAttributeResult$VpcId": "

The ID of the VPC.

", + "DetachClassicLinkVpcRequest$InstanceId": "

The ID of the instance to unlink from the VPC.

", + "DetachClassicLinkVpcRequest$VpcId": "

The ID of the VPC to which the instance is linked.

", + "DetachInternetGatewayRequest$InternetGatewayId": "

The ID of the Internet gateway.

", + "DetachInternetGatewayRequest$VpcId": "

The ID of the VPC.

", + "DetachNetworkInterfaceRequest$AttachmentId": "

The ID of the attachment.

", + "DetachVolumeRequest$VolumeId": "

The ID of the volume.

", + "DetachVolumeRequest$InstanceId": "

The ID of the instance.

", + "DetachVolumeRequest$Device": "

The device name.

", + "DetachVpnGatewayRequest$VpnGatewayId": "

The ID of the virtual private gateway.

", + "DetachVpnGatewayRequest$VpcId": "

The ID of the VPC.

", + "DhcpConfiguration$Key": "

The name of a DHCP option.

", + "DhcpOptions$DhcpOptionsId": "

The ID of the set of DHCP options.

", + "DhcpOptionsIdStringList$member": null, + "DisableVgwRoutePropagationRequest$RouteTableId": "

The ID of the route table.

", + "DisableVgwRoutePropagationRequest$GatewayId": "

The ID of the virtual private gateway.

", + "DisableVpcClassicLinkRequest$VpcId": "

The ID of the VPC.

", + "DisassociateAddressRequest$PublicIp": "

[EC2-Classic] The Elastic IP address. Required for EC2-Classic.

", + "DisassociateAddressRequest$AssociationId": "

[EC2-VPC] The association ID. Required for EC2-VPC.

", + "DisassociateRouteTableRequest$AssociationId": "

The association ID representing the current association between the route table and subnet.

", + "DiskImage$Description": null, + "DiskImageDescription$ImportManifestUrl": "

A presigned URL for the import manifest stored in Amazon S3. For information about creating a presigned URL for an Amazon S3 object, read the \"Query String Request Authentication Alternative\" section of the Authenticating REST Requests topic in the Amazon Simple Storage Service Developer Guide.

", + "DiskImageDescription$Checksum": "

The checksum computed for the disk image.

", + "DiskImageDetail$ImportManifestUrl": "

A presigned URL for the import manifest stored in Amazon S3 and presented here as an Amazon S3 presigned URL. For information about creating a presigned URL for an Amazon S3 object, read the \"Query String Request Authentication Alternative\" section of the Authenticating REST Requests topic in the Amazon Simple Storage Service Developer Guide.

", + "DiskImageVolumeDescription$Id": "

The volume identifier.

", + "EbsBlockDevice$SnapshotId": "

The ID of the snapshot.

", + "EbsInstanceBlockDevice$VolumeId": "

The ID of the Amazon EBS volume.

", + "EbsInstanceBlockDeviceSpecification$VolumeId": "

The ID of the Amazon EBS volume.

", + "EnableVgwRoutePropagationRequest$RouteTableId": "

The ID of the route table.

", + "EnableVgwRoutePropagationRequest$GatewayId": "

The ID of the virtual private gateway.

", + "EnableVolumeIORequest$VolumeId": "

The ID of the volume.

", + "EnableVpcClassicLinkRequest$VpcId": "

The ID of the VPC.

", + "ExecutableByStringList$member": null, + "ExportTask$ExportTaskId": "

The ID of the export task.

", + "ExportTask$Description": "

A description of the resource being exported.

", + "ExportTask$StatusMessage": "

The status message related to the export task.

", + "ExportTaskIdStringList$member": null, + "ExportToS3Task$S3Bucket": "

The Amazon S3 bucket for the destination image. The destination bucket must exist and grant WRITE and READ_ACP permissions to the AWS account vm-import-export@amazon.com.

", + "ExportToS3Task$S3Key": null, + "ExportToS3TaskSpecification$S3Bucket": null, + "ExportToS3TaskSpecification$S3Prefix": "

The image is written to a single object in the Amazon S3 bucket at the S3 key s3prefix + exportTaskId + '.' + diskImageFormat.

", + "Filter$Name": "

The name of the filter. Filter names are case-sensitive.

", + "GetConsoleOutputRequest$InstanceId": "

The ID of the instance.

", + "GetConsoleOutputResult$InstanceId": "

The ID of the instance.

", + "GetConsoleOutputResult$Output": "

The console output, Base64 encoded.

", + "GetPasswordDataRequest$InstanceId": "

The ID of the Windows instance.

", + "GetPasswordDataResult$InstanceId": "

The ID of the Windows instance.

", + "GetPasswordDataResult$PasswordData": "

The password of the instance.

", + "GroupIdStringList$member": null, + "GroupIdentifier$GroupName": "

The name of the security group.

", + "GroupIdentifier$GroupId": "

The ID of the security group.

", + "GroupNameStringList$member": null, + "IamInstanceProfile$Arn": "

The Amazon Resource Name (ARN) of the instance profile.

", + "IamInstanceProfile$Id": "

The ID of the instance profile.

", + "IamInstanceProfileSpecification$Arn": "

The Amazon Resource Name (ARN) of the instance profile.

", + "IamInstanceProfileSpecification$Name": "

The name of the instance profile.

", + "Image$ImageId": "

The ID of the AMI.

", + "Image$ImageLocation": "

The location of the AMI.

", + "Image$OwnerId": "

The AWS account ID of the image owner.

", + "Image$CreationDate": "

The date and time the image was created.

", + "Image$KernelId": "

The kernel associated with the image, if any. Only applicable for machine images.

", + "Image$RamdiskId": "

The RAM disk associated with the image, if any. Only applicable for machine images.

", + "Image$SriovNetSupport": "

Specifies whether enhanced networking is enabled.

", + "Image$ImageOwnerAlias": "

The AWS account alias (for example, amazon, self) or the AWS account ID of the AMI owner.

", + "Image$Name": "

The name of the AMI that was provided during image creation.

", + "Image$Description": "

The description of the AMI that was provided during image creation.

", + "Image$RootDeviceName": "

The device name of the root device (for example, /dev/sda1 or /dev/xvda).

", + "ImageAttribute$ImageId": "

The ID of the AMI.

", + "ImageDiskContainer$Description": "

The description of the disk image (optional).

", + "ImageDiskContainer$Format": "

The format of the disk image being imported (optional).

", + "ImageDiskContainer$Url": "

The URL to the Amazon S3-based disk image being imported. The URL can either be a https URL (https://..) or an Amazon S3 URL (s3://..)

", + "ImageDiskContainer$DeviceName": "

The Amazon EBS block device mapping for the disk (optional).

", + "ImageDiskContainer$SnapshotId": "

The Amazon EBS snapshot ID to be used for importing the snapshot.

", + "ImageIdStringList$member": null, + "ImportImageRequest$Description": "

A description string for the import image task (optional).

", + "ImportImageRequest$LicenseType": "

The license type to be used for the Amazon Machine Image (AMI) after importing (optional).

Note: You may only use BYOL if you have existing licenses with rights to use these licenses in a third party cloud like AWS. For more information, see VM Import/Export Prerequisites in the Amazon Elastic Compute Cloud User Guide.

Valid Values: AWS | BYOL

", + "ImportImageRequest$Hypervisor": "

The target hypervisor platform to use (optional).

", + "ImportImageRequest$Architecture": "

The architecture of the virtual machine being imported (optional).

", + "ImportImageRequest$Platform": "

The operating system of the virtual machine being imported (optional).

", + "ImportImageRequest$ClientToken": "

The token to enable idempotency for VM import requests (optional).

", + "ImportImageRequest$RoleName": "

The name of the role to use when not using the default role name 'vmimport' (optional).

", + "ImportImageResult$ImportTaskId": "

The task id of the ImportImage task.

", + "ImportImageResult$Architecture": "

Architecture of the virtual machine being imported.

", + "ImportImageResult$LicenseType": "

License type of the virtual machine being imported.

", + "ImportImageResult$Platform": "

Operating system of the VM being imported.

", + "ImportImageResult$Hypervisor": "

Target hypervisor of the import task.

", + "ImportImageResult$Description": "

A description of the import task.

", + "ImportImageResult$ImageId": "

The Amazon Machine Image (AMI) ID created by the import task.

", + "ImportImageResult$Progress": "

The task's progress.

", + "ImportImageResult$StatusMessage": "

A detailed status message of the import task.

", + "ImportImageResult$Status": "

A brief status of the task.

", + "ImportImageTask$ImportTaskId": "

The ID of the import task.

", + "ImportImageTask$Architecture": "

Architecture of the VM being imported.

", + "ImportImageTask$LicenseType": "

License type of the VM being imported.

", + "ImportImageTask$Platform": "

The description string for the import image task.

", + "ImportImageTask$Hypervisor": "

Target hypervisor for the import task.

", + "ImportImageTask$Description": "

Description of the import task.

", + "ImportImageTask$ImageId": "

The Amazon Machine Image (AMI) ID of the imported virtual machine.

", + "ImportImageTask$Progress": "

The percentage of progress of the ImportImage task.

", + "ImportImageTask$StatusMessage": "

A descriptive status message for the ImportImage task.

", + "ImportImageTask$Status": "

A brief status for the ImportImage task.

", + "ImportInstanceLaunchSpecification$AdditionalInfo": null, + "ImportInstanceLaunchSpecification$SubnetId": "

[EC2-VPC] The ID of the subnet to launch the instance into.

", + "ImportInstanceLaunchSpecification$PrivateIpAddress": "

[EC2-VPC] Optionally, you can use this parameter to assign the instance a specific available IP address from the IP address range of the subnet.

", + "ImportInstanceRequest$Description": "

A description for the instance being imported.

", + "ImportInstanceTaskDetails$InstanceId": null, + "ImportInstanceTaskDetails$Description": null, + "ImportInstanceVolumeDetailItem$AvailabilityZone": "

The Availability Zone where the resulting instance will reside.

", + "ImportInstanceVolumeDetailItem$Status": "

The status of the import of this particular disk image.

", + "ImportInstanceVolumeDetailItem$StatusMessage": "

The status information or errors related to the disk image.

", + "ImportInstanceVolumeDetailItem$Description": null, + "ImportKeyPairRequest$KeyName": "

A unique name for the key pair.

", + "ImportKeyPairResult$KeyName": "

The key pair name you provided.

", + "ImportKeyPairResult$KeyFingerprint": "

The MD5 public key fingerprint as specified in section 4 of RFC 4716.

", + "ImportSnapshotRequest$Description": "

The description string for the ImportSnapshot task.

", + "ImportSnapshotRequest$ClientToken": "

Token to enable idempotency for VM import requests (optional).

", + "ImportSnapshotRequest$RoleName": "

The name of the role to use when not using the default role name 'vmimport' (optional).

", + "ImportSnapshotResult$ImportTaskId": "

Task ID of the ImportSnapshot task.

", + "ImportSnapshotResult$Description": "

Description of the import snapshot task.

", + "ImportSnapshotTask$ImportTaskId": "

The task ID of the ImportSnapshot task.

", + "ImportSnapshotTask$Description": "

Description for the import snapshot task.

", + "ImportTaskIdList$member": null, + "ImportVolumeRequest$AvailabilityZone": "

The Availability Zone for the resulting Amazon EBS volume.

", + "ImportVolumeRequest$Description": "

An optional description for the volume being imported.

", + "ImportVolumeTaskDetails$AvailabilityZone": "

The Availability Zone where the resulting volume will reside.

", + "ImportVolumeTaskDetails$Description": "

The description you provided when starting the import volume task.

", + "Instance$InstanceId": "

The ID of the instance.

", + "Instance$ImageId": "

The ID of the AMI used to launch the instance.

", + "Instance$PrivateDnsName": "

The private DNS name assigned to the instance. This DNS name can only be used inside the Amazon EC2 network. This name is not available until the instance enters the running state.

", + "Instance$PublicDnsName": "

The public DNS name assigned to the instance. This name is not available until the instance enters the running state.

", + "Instance$StateTransitionReason": "

The reason for the most recent state transition. This might be an empty string.

", + "Instance$KeyName": "

The name of the key pair, if this instance was launched with an associated key pair.

", + "Instance$KernelId": "

The kernel associated with this instance.

", + "Instance$RamdiskId": "

The RAM disk associated with this instance.

", + "Instance$SubnetId": "

The ID of the subnet in which the instance is running.

", + "Instance$VpcId": "

The ID of the VPC in which the instance is running.

", + "Instance$PrivateIpAddress": "

The private IP address assigned to the instance.

", + "Instance$PublicIpAddress": "

The public IP address assigned to the instance.

", + "Instance$RootDeviceName": "

The root device name (for example, /dev/sda1 or /dev/xvda).

", + "Instance$SpotInstanceRequestId": "

The ID of the Spot Instance request.

", + "Instance$ClientToken": "

The idempotency token you provided when you launched the instance.

", + "Instance$SriovNetSupport": "

Specifies whether enhanced networking is enabled.

", + "InstanceAttribute$InstanceId": "

The ID of the instance.

", + "InstanceBlockDeviceMapping$DeviceName": "

The device name exposed to the instance (for example, /dev/sdh or xvdh).

", + "InstanceBlockDeviceMappingSpecification$DeviceName": "

The device name exposed to the instance (for example, /dev/sdh or xvdh).

", + "InstanceBlockDeviceMappingSpecification$VirtualName": "

The virtual device name.

", + "InstanceBlockDeviceMappingSpecification$NoDevice": "

suppress the specified device included in the block device mapping.

", + "InstanceExportDetails$InstanceId": "

The ID of the resource being exported.

", + "InstanceIdStringList$member": null, + "InstanceMonitoring$InstanceId": "

The ID of the instance.

", + "InstanceNetworkInterface$NetworkInterfaceId": "

The ID of the network interface.

", + "InstanceNetworkInterface$SubnetId": "

The ID of the subnet.

", + "InstanceNetworkInterface$VpcId": "

The ID of the VPC.

", + "InstanceNetworkInterface$Description": "

The description.

", + "InstanceNetworkInterface$OwnerId": "

The ID of the AWS account that created the network interface.

", + "InstanceNetworkInterface$MacAddress": "

The MAC address.

", + "InstanceNetworkInterface$PrivateIpAddress": "

The IP address of the network interface within the subnet.

", + "InstanceNetworkInterface$PrivateDnsName": "

The private DNS name.

", + "InstanceNetworkInterfaceAssociation$PublicIp": "

The public IP address or Elastic IP address bound to the network interface.

", + "InstanceNetworkInterfaceAssociation$PublicDnsName": "

The public DNS name.

", + "InstanceNetworkInterfaceAssociation$IpOwnerId": "

The ID of the owner of the Elastic IP address.

", + "InstanceNetworkInterfaceAttachment$AttachmentId": "

The ID of the network interface attachment.

", + "InstanceNetworkInterfaceSpecification$NetworkInterfaceId": "

The ID of the network interface.

", + "InstanceNetworkInterfaceSpecification$SubnetId": "

The ID of the subnet associated with the network string. Applies only if creating a network interface when launching an instance.

", + "InstanceNetworkInterfaceSpecification$Description": "

The description of the network interface. Applies only if creating a network interface when launching an instance.

", + "InstanceNetworkInterfaceSpecification$PrivateIpAddress": "

The private IP address of the network interface. Applies only if creating a network interface when launching an instance.

", + "InstancePrivateIpAddress$PrivateIpAddress": "

The private IP address of the network interface.

", + "InstancePrivateIpAddress$PrivateDnsName": "

The private DNS name.

", + "InstanceStateChange$InstanceId": "

The ID of the instance.

", + "InstanceStatus$InstanceId": "

The ID of the instance.

", + "InstanceStatus$AvailabilityZone": "

The Availability Zone of the instance.

", + "InstanceStatusEvent$Description": "

A description of the event.

", + "InternetGateway$InternetGatewayId": "

The ID of the Internet gateway.

", + "InternetGatewayAttachment$VpcId": "

The ID of the VPC.

", + "IpPermission$IpProtocol": "

The protocol.

When you call DescribeSecurityGroups, the protocol value returned is the number. Exception: For TCP, UDP, and ICMP, the value returned is the name (for example, tcp, udp, or icmp). For a list of protocol numbers, see Protocol Numbers. (VPC only) When you call AuthorizeSecurityGroupIngress, you can use -1 to specify all.

", + "IpRange$CidrIp": "

The CIDR range. You can either specify a CIDR range or a source security group, not both.

", + "KeyNameStringList$member": null, + "KeyPair$KeyName": "

The name of the key pair.

", + "KeyPair$KeyFingerprint": "

The SHA-1 digest of the DER encoded private key.

", + "KeyPair$KeyMaterial": "

An unencrypted PEM encoded RSA private key.

", + "KeyPairInfo$KeyName": "

The name of the key pair.

", + "KeyPairInfo$KeyFingerprint": "

If you used CreateKeyPair to create the key pair, this is the SHA-1 digest of the DER encoded private key. If you used ImportKeyPair to provide AWS the public key, this is the MD5 public key fingerprint as specified in section 4 of RFC4716.

", + "LaunchPermission$UserId": "

The AWS account ID.

", + "LaunchSpecification$ImageId": "

The ID of the AMI.

", + "LaunchSpecification$KeyName": "

The name of the key pair.

", + "LaunchSpecification$UserData": "

The Base64-encoded MIME user data to make available to the instances.

", + "LaunchSpecification$AddressingType": "

Deprecated.

", + "LaunchSpecification$KernelId": "

The ID of the kernel.

", + "LaunchSpecification$RamdiskId": "

The ID of the RAM disk.

", + "LaunchSpecification$SubnetId": "

The ID of the subnet in which to launch the instance.

", + "ModifyImageAttributeRequest$ImageId": "

The ID of the AMI.

", + "ModifyImageAttributeRequest$Attribute": "

The name of the attribute to modify.

", + "ModifyImageAttributeRequest$OperationType": "

The operation type.

", + "ModifyImageAttributeRequest$Value": "

The value of the attribute being modified. This is only valid when modifying the description attribute.

", + "ModifyInstanceAttributeRequest$InstanceId": "

The ID of the instance.

", + "ModifyInstanceAttributeRequest$Value": "

A new value for the attribute. Use only with the kernel, ramdisk, userData, disableApiTermination, or intanceInitiateShutdownBehavior attribute.

", + "ModifyNetworkInterfaceAttributeRequest$NetworkInterfaceId": "

The ID of the network interface.

", + "ModifyReservedInstancesRequest$ClientToken": "

A unique, case-sensitive token you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.

", + "ModifyReservedInstancesResult$ReservedInstancesModificationId": "

The ID for the modification.

", + "ModifySnapshotAttributeRequest$SnapshotId": "

The ID of the snapshot.

", + "ModifySnapshotAttributeRequest$OperationType": "

The type of operation to perform to the attribute.

", + "ModifySubnetAttributeRequest$SubnetId": "

The ID of the subnet.

", + "ModifyVolumeAttributeRequest$VolumeId": "

The ID of the volume.

", + "ModifyVpcAttributeRequest$VpcId": "

The ID of the VPC.

", + "NetworkAcl$NetworkAclId": "

The ID of the network ACL.

", + "NetworkAcl$VpcId": "

The ID of the VPC for the network ACL.

", + "NetworkAclAssociation$NetworkAclAssociationId": "

The ID of the association between a network ACL and a subnet.

", + "NetworkAclAssociation$NetworkAclId": "

The ID of the network ACL.

", + "NetworkAclAssociation$SubnetId": "

The ID of the subnet.

", + "NetworkAclEntry$Protocol": "

The protocol. A value of -1 means all protocols.

", + "NetworkAclEntry$CidrBlock": "

The network range to allow or deny, in CIDR notation.

", + "NetworkInterface$NetworkInterfaceId": "

The ID of the network interface.

", + "NetworkInterface$SubnetId": "

The ID of the subnet.

", + "NetworkInterface$VpcId": "

The ID of the VPC.

", + "NetworkInterface$AvailabilityZone": "

The Availability Zone.

", + "NetworkInterface$Description": "

A description.

", + "NetworkInterface$OwnerId": "

The AWS account ID of the owner of the network interface.

", + "NetworkInterface$RequesterId": "

The ID of the entity that launched the instance on your behalf (for example, AWS Management Console or Auto Scaling).

", + "NetworkInterface$MacAddress": "

The MAC address.

", + "NetworkInterface$PrivateIpAddress": "

The IP address of the network interface within the subnet.

", + "NetworkInterface$PrivateDnsName": "

The private DNS name.

", + "NetworkInterfaceAssociation$PublicIp": "

The address of the Elastic IP address bound to the network interface.

", + "NetworkInterfaceAssociation$PublicDnsName": "

The public DNS name.

", + "NetworkInterfaceAssociation$IpOwnerId": "

The ID of the Elastic IP address owner.

", + "NetworkInterfaceAssociation$AllocationId": "

The allocation ID.

", + "NetworkInterfaceAssociation$AssociationId": "

The association ID.

", + "NetworkInterfaceAttachment$AttachmentId": "

The ID of the network interface attachment.

", + "NetworkInterfaceAttachment$InstanceId": "

The ID of the instance.

", + "NetworkInterfaceAttachment$InstanceOwnerId": "

The AWS account ID of the owner of the instance.

", + "NetworkInterfaceAttachmentChanges$AttachmentId": "

The ID of the network interface attachment.

", + "NetworkInterfaceIdList$member": null, + "NetworkInterfacePrivateIpAddress$PrivateIpAddress": "

The private IP address.

", + "NetworkInterfacePrivateIpAddress$PrivateDnsName": "

The private DNS name.

", + "OwnerStringList$member": null, + "Placement$AvailabilityZone": "

The Availability Zone of the instance.

", + "Placement$GroupName": "

The name of the placement group the instance is in (for cluster compute instances).

", + "PlacementGroup$GroupName": "

The name of the placement group.

", + "PlacementGroupStringList$member": null, + "PrivateIpAddressSpecification$PrivateIpAddress": "

The private IP addresses.

", + "PrivateIpAddressStringList$member": null, + "ProductCode$ProductCodeId": "

The product code.

", + "ProductCodeStringList$member": null, + "ProductDescriptionList$member": null, + "PropagatingVgw$GatewayId": "

The ID of the virtual private gateway (VGW).

", + "PublicIpStringList$member": null, + "PurchaseReservedInstancesOfferingRequest$ReservedInstancesOfferingId": "

The ID of the Reserved Instance offering to purchase.

", + "PurchaseReservedInstancesOfferingResult$ReservedInstancesId": "

The IDs of the purchased Reserved Instances.

", + "Region$RegionName": "

The name of the region.

", + "Region$Endpoint": "

The region service endpoint.

", + "RegionNameStringList$member": null, + "RegisterImageRequest$ImageLocation": "

The full path to your AMI manifest in Amazon S3 storage.

", + "RegisterImageRequest$Name": "

A name for your AMI.

Constraints: 3-128 alphanumeric characters, parentheses (()), square brackets ([]), spaces ( ), periods (.), slashes (/), dashes (-), single quotes ('), at-signs (@), or underscores(_)

", + "RegisterImageRequest$Description": "

A description for your AMI.

", + "RegisterImageRequest$KernelId": "

The ID of the kernel.

", + "RegisterImageRequest$RamdiskId": "

The ID of the RAM disk.

", + "RegisterImageRequest$RootDeviceName": "

The name of the root device (for example, /dev/sda1, or /dev/xvda).

", + "RegisterImageRequest$VirtualizationType": "

The type of virtualization.

Default: paravirtual

", + "RegisterImageRequest$SriovNetSupport": "

Set to simple to enable enhanced networking for the AMI and any instances that you launch from the AMI.

There is no way to disable enhanced networking at this time.

This option is supported only for HVM AMIs. Specifying this option with a PV AMI can make instances launched from the AMI unreachable.

", + "RegisterImageResult$ImageId": "

The ID of the newly registered AMI.

", + "RejectVpcPeeringConnectionRequest$VpcPeeringConnectionId": "

The ID of the VPC peering connection.

", + "ReleaseAddressRequest$PublicIp": "

[EC2-Classic] The Elastic IP address. Required for EC2-Classic.

", + "ReleaseAddressRequest$AllocationId": "

[EC2-VPC] The allocation ID. Required for EC2-VPC.

", + "ReplaceNetworkAclAssociationRequest$AssociationId": "

The ID of the current association between the original network ACL and the subnet.

", + "ReplaceNetworkAclAssociationRequest$NetworkAclId": "

The ID of the new network ACL to associate with the subnet.

", + "ReplaceNetworkAclAssociationResult$NewAssociationId": "

The ID of the new association.

", + "ReplaceNetworkAclEntryRequest$NetworkAclId": "

The ID of the ACL.

", + "ReplaceNetworkAclEntryRequest$Protocol": "

The IP protocol. You can specify all or -1 to mean all protocols.

", + "ReplaceNetworkAclEntryRequest$CidrBlock": "

The network range to allow or deny, in CIDR notation.

", + "ReplaceRouteRequest$RouteTableId": "

The ID of the route table.

", + "ReplaceRouteRequest$DestinationCidrBlock": "

The CIDR address block used for the destination match. The value you provide must match the CIDR of an existing route in the table.

", + "ReplaceRouteRequest$GatewayId": "

The ID of an Internet gateway or virtual private gateway.

", + "ReplaceRouteRequest$InstanceId": "

The ID of a NAT instance in your VPC.

", + "ReplaceRouteRequest$NetworkInterfaceId": "

The ID of a network interface.

", + "ReplaceRouteRequest$VpcPeeringConnectionId": "

The ID of a VPC peering connection.

", + "ReplaceRouteTableAssociationRequest$AssociationId": "

The association ID.

", + "ReplaceRouteTableAssociationRequest$RouteTableId": "

The ID of the new route table to associate with the subnet.

", + "ReplaceRouteTableAssociationResult$NewAssociationId": "

The ID of the new association.

", + "ReportInstanceStatusRequest$Description": "

Descriptive text about the health state of your instance.

", + "RequestSpotInstancesRequest$SpotPrice": "

The maximum hourly price (bid) for any Spot Instance launched to fulfill the request.

", + "RequestSpotInstancesRequest$LaunchGroup": "

The instance launch group. Launch groups are Spot Instances that launch together and terminate together.

Default: Instances are launched and terminated individually

", + "RequestSpotInstancesRequest$AvailabilityZoneGroup": "

The user-specified name for a logical grouping of bids.

When you specify an Availability Zone group in a Spot Instance request, all Spot Instances in the request are launched in the same Availability Zone. Instance proximity is maintained with this parameter, but the choice of Availability Zone is not. The group applies only to bids for Spot Instances of the same instance type. Any additional Spot Instance requests that are specified with the same Availability Zone group name are launched in that same Availability Zone, as long as at least one instance from the group is still active.

If there is no active instance running in the Availability Zone group that you specify for a new Spot Instance request (all instances are terminated, the bid is expired, or the bid falls below current market), then Amazon EC2 launches the instance in any Availability Zone where the constraint can be met. Consequently, the subsequent set of Spot Instances could be placed in a different zone from the original request, even if you specified the same Availability Zone group.

Default: Instances are launched in any available Availability Zone.

", + "Reservation$ReservationId": "

The ID of the reservation.

", + "Reservation$OwnerId": "

The ID of the AWS account that owns the reservation.

", + "Reservation$RequesterId": "

The ID of the requester that launched the instances on your behalf (for example, AWS Management Console or Auto Scaling).

", + "ReservedInstances$ReservedInstancesId": "

The ID of the Reserved Instance.

", + "ReservedInstances$AvailabilityZone": "

The Availability Zone in which the Reserved Instance can be used.

", + "ReservedInstancesConfiguration$AvailabilityZone": "

The Availability Zone for the modified Reserved Instances.

", + "ReservedInstancesConfiguration$Platform": "

The network platform of the modified Reserved Instances, which is either EC2-Classic or EC2-VPC.

", + "ReservedInstancesId$ReservedInstancesId": "

The ID of the Reserved Instance.

", + "ReservedInstancesIdStringList$member": null, + "ReservedInstancesListing$ReservedInstancesListingId": "

The ID of the Reserved Instance listing.

", + "ReservedInstancesListing$ReservedInstancesId": "

The ID of the Reserved Instance.

", + "ReservedInstancesListing$StatusMessage": "

The reason for the current status of the Reserved Instance listing. The response can be blank.

", + "ReservedInstancesListing$ClientToken": "

A unique, case-sensitive key supplied by the client to ensure that the request is idempotent. For more information, see Ensuring Idempotency.

", + "ReservedInstancesModification$ReservedInstancesModificationId": "

A unique ID for the Reserved Instance modification.

", + "ReservedInstancesModification$Status": "

The status of the Reserved Instances modification request.

", + "ReservedInstancesModification$StatusMessage": "

The reason for the status.

", + "ReservedInstancesModification$ClientToken": "

A unique, case-sensitive key supplied by the client to ensure that the request is idempotent. For more information, see Ensuring Idempotency.

", + "ReservedInstancesModificationIdStringList$member": null, + "ReservedInstancesModificationResult$ReservedInstancesId": "

The ID for the Reserved Instances that were created as part of the modification request. This field is only available when the modification is fulfilled.

", + "ReservedInstancesOffering$ReservedInstancesOfferingId": "

The ID of the Reserved Instance offering.

", + "ReservedInstancesOffering$AvailabilityZone": "

The Availability Zone in which the Reserved Instance can be used.

", + "ReservedInstancesOfferingIdStringList$member": null, + "ResetImageAttributeRequest$ImageId": "

The ID of the AMI.

", + "ResetInstanceAttributeRequest$InstanceId": "

The ID of the instance.

", + "ResetNetworkInterfaceAttributeRequest$NetworkInterfaceId": "

The ID of the network interface.

", + "ResetNetworkInterfaceAttributeRequest$SourceDestCheck": "

The source/destination checking attribute. Resets the value to true.

", + "ResetSnapshotAttributeRequest$SnapshotId": "

The ID of the snapshot.

", + "ResourceIdList$member": null, + "RestorableByStringList$member": null, + "RevokeSecurityGroupEgressRequest$GroupId": "

The ID of the security group.

", + "RevokeSecurityGroupEgressRequest$SourceSecurityGroupName": "

[EC2-Classic, default VPC] The name of the destination security group. You can't specify a destination security group and a CIDR IP address range.

", + "RevokeSecurityGroupEgressRequest$SourceSecurityGroupOwnerId": "

The ID of the destination security group. You can't specify a destination security group and a CIDR IP address range.

", + "RevokeSecurityGroupEgressRequest$IpProtocol": "

The IP protocol name (tcp, udp, icmp) or number (see Protocol Numbers). Use -1 to specify all.

", + "RevokeSecurityGroupEgressRequest$CidrIp": "

The CIDR IP address range. You can't specify this parameter when specifying a source security group.

", + "RevokeSecurityGroupIngressRequest$GroupName": "

[EC2-Classic, default VPC] The name of the security group.

", + "RevokeSecurityGroupIngressRequest$GroupId": "

The ID of the security group.

", + "RevokeSecurityGroupIngressRequest$SourceSecurityGroupName": "

[EC2-Classic, default VPC] The name of the source security group. You can't specify a source security group and a CIDR IP address range.

", + "RevokeSecurityGroupIngressRequest$SourceSecurityGroupOwnerId": "

The ID of the source security group. You can't specify a source security group and a CIDR IP address range.

", + "RevokeSecurityGroupIngressRequest$IpProtocol": "

The IP protocol name (tcp, udp, icmp) or number (see Protocol Numbers). Use -1 to specify all.

", + "RevokeSecurityGroupIngressRequest$CidrIp": "

The CIDR IP address range. You can't specify this parameter when specifying a source security group.

", + "Route$DestinationCidrBlock": "

The CIDR block used for the destination match.

", + "Route$GatewayId": "

The ID of a gateway attached to your VPC.

", + "Route$InstanceId": "

The ID of a NAT instance in your VPC.

", + "Route$InstanceOwnerId": "

The AWS account ID of the owner of the instance.

", + "Route$NetworkInterfaceId": "

The ID of the network interface.

", + "Route$VpcPeeringConnectionId": "

The ID of the VPC peering connection.

", + "RouteTable$RouteTableId": "

The ID of the route table.

", + "RouteTable$VpcId": "

The ID of the VPC.

", + "RouteTableAssociation$RouteTableAssociationId": "

The ID of the association between a route table and a subnet.

", + "RouteTableAssociation$RouteTableId": "

The ID of the route table.

", + "RouteTableAssociation$SubnetId": "

The ID of the subnet.

", + "RunInstancesRequest$ImageId": "

The ID of the AMI, which you can get by calling DescribeImages.

", + "RunInstancesRequest$KeyName": "

The name of the key pair. You can create a key pair using CreateKeyPair or ImportKeyPair.

If you launch an instance without specifying a key pair, you can't connect to the instance.

", + "RunInstancesRequest$UserData": "

The Base64-encoded MIME user data for the instances.

", + "RunInstancesRequest$KernelId": "

The ID of the kernel.

We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB in the Amazon Elastic Compute Cloud User Guide.

", + "RunInstancesRequest$RamdiskId": "

The ID of the RAM disk.

We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB in the Amazon Elastic Compute Cloud User Guide.

", + "RunInstancesRequest$SubnetId": "

[EC2-VPC] The ID of the subnet to launch the instance into.

", + "RunInstancesRequest$PrivateIpAddress": "

[EC2-VPC] The primary IP address. You must specify a value from the IP address range of the subnet.

Only one private IP address can be designated as primary. Therefore, you can't specify this parameter if PrivateIpAddresses.n.Primary is set to true and PrivateIpAddresses.n.PrivateIpAddress is set to an IP address.

Default: We select an IP address from the IP address range of the subnet.

", + "RunInstancesRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.

Constraints: Maximum 64 ASCII characters

", + "RunInstancesRequest$AdditionalInfo": "

Reserved.

", + "S3Storage$Bucket": "

The bucket in which to store the AMI. You can specify a bucket that you already own or a new bucket that Amazon EC2 creates on your behalf. If you specify a bucket that belongs to someone else, Amazon EC2 returns an error.

", + "S3Storage$Prefix": "

The beginning of the file name of the AMI.

", + "S3Storage$AWSAccessKeyId": "

The access key ID of the owner of the bucket. Before you specify a value for your access key ID, review and follow the guidance in Best Practices for Managing AWS Access Keys.

", + "S3Storage$UploadPolicySignature": "

The signature of the Base64 encoded JSON document.

", + "SecurityGroup$OwnerId": "

The AWS account ID of the owner of the security group.

", + "SecurityGroup$GroupName": "

The name of the security group.

", + "SecurityGroup$GroupId": "

The ID of the security group.

", + "SecurityGroup$Description": "

A description of the security group.

", + "SecurityGroup$VpcId": "

[EC2-VPC] The ID of the VPC for the security group.

", + "SecurityGroupIdStringList$member": null, + "SecurityGroupStringList$member": null, + "Snapshot$SnapshotId": "

The ID of the snapshot.

", + "Snapshot$VolumeId": "

The ID of the volume.

", + "Snapshot$Progress": "

The progress of the snapshot, as a percentage.

", + "Snapshot$OwnerId": "

The AWS account ID of the Amazon EBS snapshot owner.

", + "Snapshot$Description": "

The description for the snapshot.

", + "Snapshot$OwnerAlias": "

The AWS account alias (for example, amazon, self) or AWS account ID that owns the snapshot.

", + "Snapshot$KmsKeyId": "

The full ARN of the AWS Key Management Service (KMS) master key that was used to protect the volume encryption key for the parent volume.

", + "SnapshotDetail$Description": "

Description for the snapshot.

", + "SnapshotDetail$Format": "

The format of the disk image from which the snapshot is created.

", + "SnapshotDetail$Url": "

The URL used to access the disk image.

", + "SnapshotDetail$DeviceName": "

The Amazon EBS block device mapping for the snapshot.

", + "SnapshotDetail$SnapshotId": "

The snapshot ID of the disk being imported.

", + "SnapshotDetail$Progress": "

The percentage of progress for the task.

", + "SnapshotDetail$StatusMessage": "

A detailed status message for the snapshot creation.

", + "SnapshotDetail$Status": "

A brief status of the snapshot creation.

", + "SnapshotDiskContainer$Description": "

The description of the disk image being imported.

", + "SnapshotDiskContainer$Format": "

The format of the disk image being imported.

", + "SnapshotDiskContainer$Url": "

The URL to the Amazon S3-based disk image being imported. It can either be a https URL (https://..) or an Amazon S3 URL (s3://..).

", + "SnapshotIdStringList$member": null, + "SnapshotTaskDetail$Description": "

The description of the snapshot.

", + "SnapshotTaskDetail$Format": "

The format of the disk image from which the snapshot is created.

", + "SnapshotTaskDetail$Url": "

The URL of the disk image from which the snapshot is created.

", + "SnapshotTaskDetail$SnapshotId": "

The snapshot ID of the disk being imported.

", + "SnapshotTaskDetail$Progress": "

The percentage of completion for the ImportSnapshot task.

", + "SnapshotTaskDetail$StatusMessage": "

A detailed status message for the ImportSnapshot task.

", + "SnapshotTaskDetail$Status": "

A brief status for the ImportSnapshot task.

", + "SpotDatafeedSubscription$OwnerId": "

The AWS account ID of the account.

", + "SpotDatafeedSubscription$Bucket": "

The Amazon S3 bucket where the Spot Instance data feed is located.

", + "SpotDatafeedSubscription$Prefix": "

The prefix that is prepended to data feed files.

", + "SpotInstanceRequest$SpotInstanceRequestId": "

The ID of the Spot Instance request.

", + "SpotInstanceRequest$SpotPrice": "

The maximum hourly price (bid) for any Spot Instance launched to fulfill the request.

", + "SpotInstanceRequest$LaunchGroup": "

The instance launch group. Launch groups are Spot Instances that launch together and terminate together.

", + "SpotInstanceRequest$AvailabilityZoneGroup": "

The Availability Zone group. If you specify the same Availability Zone group for all Spot Instance requests, all Spot Instances are launched in the same Availability Zone.

", + "SpotInstanceRequest$InstanceId": "

The instance ID, if an instance has been launched to fulfill the Spot Instance request.

", + "SpotInstanceRequest$LaunchedAvailabilityZone": "

The Availability Zone in which the bid is launched.

", + "SpotInstanceRequestIdList$member": null, + "SpotInstanceStateFault$Code": "

The reason code for the Spot Instance state change.

", + "SpotInstanceStateFault$Message": "

The message for the Spot Instance state change.

", + "SpotInstanceStatus$Code": "

The status code.

", + "SpotInstanceStatus$Message": "

The description for the status code.

", + "SpotPlacement$AvailabilityZone": "

The Availability Zone.

", + "SpotPlacement$GroupName": "

The name of the placement group (for cluster instances).

", + "SpotPrice$SpotPrice": "

The maximum price (bid) that you are willing to pay for a Spot Instance.

", + "SpotPrice$AvailabilityZone": "

The Availability Zone.

", + "StartInstancesRequest$AdditionalInfo": "

Reserved.

", + "StateReason$Code": "

The reason code for the state change.

", + "StateReason$Message": "

The message for the state change.

  • Server.SpotInstanceTermination: A Spot Instance was terminated due to an increase in the market price.

  • Server.InternalError: An internal error occurred during instance launch, resulting in termination.

  • Server.InsufficientInstanceCapacity: There was insufficient instance capacity to satisfy the launch request.

  • Client.InternalError: A client error caused the instance to terminate on launch.

  • Client.InstanceInitiatedShutdown: The instance was shut down using the shutdown -h command from the instance.

  • Client.UserInitiatedShutdown: The instance was shut down using the Amazon EC2 API.

  • Client.VolumeLimitExceeded: The volume limit was exceeded.

  • Client.InvalidSnapshot.NotFound: The specified snapshot was not found.

", + "Subnet$SubnetId": "

The ID of the subnet.

", + "Subnet$VpcId": "

The ID of the VPC the subnet is in.

", + "Subnet$CidrBlock": "

The CIDR block assigned to the subnet.

", + "Subnet$AvailabilityZone": "

The Availability Zone of the subnet.

", + "SubnetIdStringList$member": null, + "Tag$Key": "

The key of the tag.

Constraints: Tag keys are case-sensitive and accept a maximum of 127 Unicode characters. May not begin with aws:

", + "Tag$Value": "

The value of the tag.

Constraints: Tag values are case-sensitive and accept a maximum of 255 Unicode characters.

", + "TagDescription$ResourceId": "

The ID of the resource. For example, ami-1a2b3c4d.

", + "TagDescription$Key": "

The tag key.

", + "TagDescription$Value": "

The tag value.

", + "UnassignPrivateIpAddressesRequest$NetworkInterfaceId": "

The ID of the network interface.

", + "UserBucket$S3Bucket": "

The Amazon S3 bucket name where the disk image is located.

", + "UserBucket$S3Key": "

The Amazon S3 Key for the disk image.

", + "UserBucketDetails$S3Bucket": "

The Amazon S3 bucket from which the disk image was created.

", + "UserBucketDetails$S3Key": "

The Amazon S3 key from which the disk image was created.

", + "UserData$Data": null, + "UserGroupStringList$member": null, + "UserIdGroupPair$UserId": "

The ID of an AWS account. EC2-Classic only.

", + "UserIdGroupPair$GroupName": "

The name of the security group. In a request, use this parameter for a security group in EC2-Classic or a default VPC only. For a security group in a nondefault VPC, use GroupId.

", + "UserIdGroupPair$GroupId": "

The ID of the security group.

", + "UserIdStringList$member": null, + "ValueStringList$member": null, + "VgwTelemetry$OutsideIpAddress": "

The Internet-routable IP address of the virtual private gateway's outside interface.

", + "VgwTelemetry$StatusMessage": "

If an error occurs, a description of the error.

", + "Volume$VolumeId": "

The ID of the volume.

", + "Volume$SnapshotId": "

The snapshot from which the volume was created, if applicable.

", + "Volume$AvailabilityZone": "

The Availability Zone for the volume.

", + "Volume$KmsKeyId": "

The full ARN of the AWS Key Management Service (KMS) master key that was used to protect the volume encryption key for the volume.

", + "VolumeAttachment$VolumeId": "

The ID of the volume.

", + "VolumeAttachment$InstanceId": "

The ID of the instance.

", + "VolumeAttachment$Device": "

The device name.

", + "VolumeIdStringList$member": null, + "VolumeStatusAction$Code": "

The code identifying the operation, for example, enable-volume-io.

", + "VolumeStatusAction$Description": "

A description of the operation.

", + "VolumeStatusAction$EventType": "

The event type associated with this operation.

", + "VolumeStatusAction$EventId": "

The ID of the event associated with this operation.

", + "VolumeStatusDetails$Status": "

The intended status of the volume status.

", + "VolumeStatusEvent$EventType": "

The type of this event.

", + "VolumeStatusEvent$Description": "

A description of the event.

", + "VolumeStatusEvent$EventId": "

The ID of this event.

", + "VolumeStatusItem$VolumeId": "

The volume ID.

", + "VolumeStatusItem$AvailabilityZone": "

The Availability Zone of the volume.

", + "Vpc$VpcId": "

The ID of the VPC.

", + "Vpc$CidrBlock": "

The CIDR block for the VPC.

", + "Vpc$DhcpOptionsId": "

The ID of the set of DHCP options you've associated with the VPC (or default if the default options are associated with the VPC).

", + "VpcAttachment$VpcId": "

The ID of the VPC.

", + "VpcClassicLink$VpcId": "

The ID of the VPC.

", + "VpcClassicLinkIdList$member": null, + "VpcIdStringList$member": null, + "VpcPeeringConnection$VpcPeeringConnectionId": "

The ID of the VPC peering connection.

", + "VpcPeeringConnectionStateReason$Code": "

The status of the VPC peering connection.

", + "VpcPeeringConnectionStateReason$Message": "

A message that provides more information about the status, if applicable.

", + "VpcPeeringConnectionVpcInfo$CidrBlock": "

The CIDR block for the VPC.

", + "VpcPeeringConnectionVpcInfo$OwnerId": "

The AWS account ID of the VPC owner.

", + "VpcPeeringConnectionVpcInfo$VpcId": "

The ID of the VPC.

", + "VpnConnection$VpnConnectionId": "

The ID of the VPN connection.

", + "VpnConnection$CustomerGatewayConfiguration": "

The configuration information for the VPN connection's customer gateway (in the native XML format). This element is always present in the CreateVpnConnection response; however, it's present in the DescribeVpnConnections response only if the VPN connection is in the pending or available state.

", + "VpnConnection$CustomerGatewayId": "

The ID of the customer gateway at your end of the VPN connection.

", + "VpnConnection$VpnGatewayId": "

The ID of the virtual private gateway at the AWS side of the VPN connection.

", + "VpnConnectionIdStringList$member": null, + "VpnGateway$VpnGatewayId": "

The ID of the virtual private gateway.

", + "VpnGateway$AvailabilityZone": "

The Availability Zone where the virtual private gateway was created.

", + "VpnGatewayIdStringList$member": null, + "VpnStaticRoute$DestinationCidrBlock": "

The CIDR block associated with the local subnet of the customer data center.

", + "ZoneNameStringList$member": null, + "NewDhcpConfiguration$Key": null, + "RequestSpotLaunchSpecification$ImageId": "

The ID of the AMI.

", + "RequestSpotLaunchSpecification$KeyName": "

The name of the key pair.

", + "RequestSpotLaunchSpecification$UserData": "

The Base64-encoded MIME user data to make available to the instances.

", + "RequestSpotLaunchSpecification$AddressingType": "

Deprecated.

", + "RequestSpotLaunchSpecification$KernelId": "

The ID of the kernel.

", + "RequestSpotLaunchSpecification$RamdiskId": "

The ID of the RAM disk.

", + "RequestSpotLaunchSpecification$SubnetId": "

The ID of the subnet in which to launch the instance.

" + } + }, + "Subnet": { + "base": "

Describes a subnet.

", + "refs": { + "CreateSubnetResult$Subnet": "

Information about the subnet.

", + "SubnetList$member": null + } + }, + "SubnetIdStringList": { + "base": null, + "refs": { + "DescribeSubnetsRequest$SubnetIds": "

One or more subnet IDs.

Default: Describes all your subnets.

" + } + }, + "SubnetList": { + "base": null, + "refs": { + "DescribeSubnetsResult$Subnets": "

Information about one or more subnets.

" + } + }, + "SubnetState": { + "base": null, + "refs": { + "Subnet$State": "

The current state of the subnet.

" + } + }, + "SummaryStatus": { + "base": null, + "refs": { + "InstanceStatusSummary$Status": "

The status.

" + } + }, + "Tag": { + "base": "

Describes a tag.

", + "refs": { + "TagList$member": null + } + }, + "TagDescription": { + "base": "

Describes a tag.

", + "refs": { + "TagDescriptionList$member": null + } + }, + "TagDescriptionList": { + "base": null, + "refs": { + "DescribeTagsResult$Tags": "

A list of tags.

" + } + }, + "TagList": { + "base": null, + "refs": { + "ClassicLinkInstance$Tags": "

Any tags assigned to the instance.

", + "ConversionTask$Tags": null, + "CreateTagsRequest$Tags": "

One or more tags. The value parameter is required, but if you don't want the tag to have a value, specify the parameter with no value, and we set the value to an empty string.

", + "CustomerGateway$Tags": "

Any tags assigned to the customer gateway.

", + "DeleteTagsRequest$Tags": "

One or more tags to delete. If you omit the value parameter, we delete the tag regardless of its value. If you specify this parameter with an empty string as the value, we delete the key only if its value is an empty string.

", + "DhcpOptions$Tags": "

Any tags assigned to the DHCP options set.

", + "Image$Tags": "

Any tags assigned to the image.

", + "Instance$Tags": "

Any tags assigned to the instance.

", + "InternetGateway$Tags": "

Any tags assigned to the Internet gateway.

", + "NetworkAcl$Tags": "

Any tags assigned to the network ACL.

", + "NetworkInterface$TagSet": "

Any tags assigned to the network interface.

", + "ReservedInstances$Tags": "

Any tags assigned to the resource.

", + "ReservedInstancesListing$Tags": "

Any tags assigned to the resource.

", + "RouteTable$Tags": "

Any tags assigned to the route table.

", + "SecurityGroup$Tags": "

Any tags assigned to the security group.

", + "Snapshot$Tags": "

Any tags assigned to the snapshot.

", + "SpotInstanceRequest$Tags": "

Any tags assigned to the resource.

", + "Subnet$Tags": "

Any tags assigned to the subnet.

", + "Volume$Tags": "

Any tags assigned to the volume.

", + "Vpc$Tags": "

Any tags assigned to the VPC.

", + "VpcClassicLink$Tags": "

Any tags assigned to the VPC.

", + "VpcPeeringConnection$Tags": "

Any tags assigned to the resource.

", + "VpnConnection$Tags": "

Any tags assigned to the VPN connection.

", + "VpnGateway$Tags": "

Any tags assigned to the virtual private gateway.

" + } + }, + "TelemetryStatus": { + "base": null, + "refs": { + "VgwTelemetry$Status": "

The status of the VPN tunnel.

" + } + }, + "Tenancy": { + "base": null, + "refs": { + "CreateVpcRequest$InstanceTenancy": "

The supported tenancy options for instances launched into the VPC. A value of default means that instances can be launched with any tenancy; a value of dedicated means all instances launched into the VPC are launched as dedicated tenancy instances regardless of the tenancy assigned to the instance at launch. Dedicated tenancy instances run on single-tenant hardware.

Default: default

", + "DescribeReservedInstancesOfferingsRequest$InstanceTenancy": "

The tenancy of the Reserved Instance offering. A Reserved Instance with dedicated tenancy runs on single-tenant hardware and can only be launched within a VPC.

Default: default

", + "Placement$Tenancy": "

The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware.

", + "ReservedInstances$InstanceTenancy": "

The tenancy of the reserved instance.

", + "ReservedInstancesOffering$InstanceTenancy": "

The tenancy of the reserved instance.

", + "Vpc$InstanceTenancy": "

The allowed tenancy of instances launched into the VPC.

" + } + }, + "TerminateInstancesRequest": { + "base": null, + "refs": { + } + }, + "TerminateInstancesResult": { + "base": null, + "refs": { + } + }, + "UnassignPrivateIpAddressesRequest": { + "base": null, + "refs": { + } + }, + "UnmonitorInstancesRequest": { + "base": null, + "refs": { + } + }, + "UnmonitorInstancesResult": { + "base": null, + "refs": { + } + }, + "UserBucket": { + "base": "

User's Amazon S3 bucket details used to access the image.

", + "refs": { + "ImageDiskContainer$UserBucket": null, + "SnapshotDiskContainer$UserBucket": null + } + }, + "UserBucketDetails": { + "base": "

User's Amazon S3 bucket details used to access the image.

", + "refs": { + "SnapshotDetail$UserBucket": null, + "SnapshotTaskDetail$UserBucket": null + } + }, + "UserData": { + "base": null, + "refs": { + "ImportInstanceLaunchSpecification$UserData": "

User data to be made available to the instance.

" + } + }, + "UserGroupStringList": { + "base": null, + "refs": { + "ModifyImageAttributeRequest$UserGroups": "

One or more user groups. This is only valid when modifying the launchPermission attribute.

" + } + }, + "UserIdGroupPair": { + "base": "

Describes a security group and AWS account ID pair.

", + "refs": { + "UserIdGroupPairList$member": null + } + }, + "UserIdGroupPairList": { + "base": null, + "refs": { + "IpPermission$UserIdGroupPairs": "

One or more security group and AWS account ID pairs.

" + } + }, + "UserIdStringList": { + "base": null, + "refs": { + "ModifyImageAttributeRequest$UserIds": "

One or more AWS account IDs. This is only valid when modifying the launchPermission attribute.

", + "ModifySnapshotAttributeRequest$UserIds": "

The account ID to modify for the snapshot.

" + } + }, + "ValueStringList": { + "base": null, + "refs": { + "DescribeInternetGatewaysRequest$InternetGatewayIds": "

One or more Internet gateway IDs.

Default: Describes all your Internet gateways.

", + "DescribeNetworkAclsRequest$NetworkAclIds": "

One or more network ACL IDs.

Default: Describes all your network ACLs.

", + "DescribeRouteTablesRequest$RouteTableIds": "

One or more route table IDs.

Default: Describes all your route tables.

", + "DescribeVpcPeeringConnectionsRequest$VpcPeeringConnectionIds": "

One or more VPC peering connection IDs.

Default: Describes all your VPC peering connections.

", + "Filter$Values": "

One or more filter values. Filter values are case-sensitive.

", + "NewDhcpConfiguration$Values": null, + "RequestSpotLaunchSpecification$SecurityGroups": null, + "RequestSpotLaunchSpecification$SecurityGroupIds": null + } + }, + "VgwTelemetry": { + "base": "

Describes telemetry for a VPN tunnel.

", + "refs": { + "VgwTelemetryList$member": null + } + }, + "VgwTelemetryList": { + "base": null, + "refs": { + "VpnConnection$VgwTelemetry": "

Information about the VPN tunnel.

" + } + }, + "VirtualizationType": { + "base": null, + "refs": { + "Image$VirtualizationType": "

The type of virtualization of the AMI.

", + "Instance$VirtualizationType": "

The virtualization type of the instance.

" + } + }, + "Volume": { + "base": "

Describes a volume.

", + "refs": { + "VolumeList$member": null + } + }, + "VolumeAttachment": { + "base": "

Describes volume attachment details.

", + "refs": { + "VolumeAttachmentList$member": null + } + }, + "VolumeAttachmentList": { + "base": null, + "refs": { + "Volume$Attachments": null + } + }, + "VolumeAttachmentState": { + "base": null, + "refs": { + "VolumeAttachment$State": "

The attachment state of the volume.

" + } + }, + "VolumeAttributeName": { + "base": null, + "refs": { + "DescribeVolumeAttributeRequest$Attribute": "

The instance attribute.

" + } + }, + "VolumeDetail": { + "base": "

Describes an Amazon EBS volume.

", + "refs": { + "DiskImage$Volume": null, + "ImportVolumeRequest$Volume": null + } + }, + "VolumeIdStringList": { + "base": null, + "refs": { + "DescribeVolumeStatusRequest$VolumeIds": "

One or more volume IDs.

Default: Describes all your volumes.

", + "DescribeVolumesRequest$VolumeIds": "

One or more volume IDs.

" + } + }, + "VolumeList": { + "base": null, + "refs": { + "DescribeVolumesResult$Volumes": null + } + }, + "VolumeState": { + "base": null, + "refs": { + "Volume$State": "

The volume state.

" + } + }, + "VolumeStatusAction": { + "base": "

Describes a volume status operation code.

", + "refs": { + "VolumeStatusActionsList$member": null + } + }, + "VolumeStatusActionsList": { + "base": null, + "refs": { + "VolumeStatusItem$Actions": "

The details of the operation.

" + } + }, + "VolumeStatusDetails": { + "base": "

Describes a volume status.

", + "refs": { + "VolumeStatusDetailsList$member": null + } + }, + "VolumeStatusDetailsList": { + "base": null, + "refs": { + "VolumeStatusInfo$Details": "

The details of the volume status.

" + } + }, + "VolumeStatusEvent": { + "base": "

Describes a volume status event.

", + "refs": { + "VolumeStatusEventsList$member": null + } + }, + "VolumeStatusEventsList": { + "base": null, + "refs": { + "VolumeStatusItem$Events": "

A list of events associated with the volume.

" + } + }, + "VolumeStatusInfo": { + "base": "

Describes the status of a volume.

", + "refs": { + "VolumeStatusItem$VolumeStatus": "

The volume status.

" + } + }, + "VolumeStatusInfoStatus": { + "base": null, + "refs": { + "VolumeStatusInfo$Status": "

The status of the volume.

" + } + }, + "VolumeStatusItem": { + "base": "

Describes the volume status.

", + "refs": { + "VolumeStatusList$member": null + } + }, + "VolumeStatusList": { + "base": null, + "refs": { + "DescribeVolumeStatusResult$VolumeStatuses": "

A list of volumes.

" + } + }, + "VolumeStatusName": { + "base": null, + "refs": { + "VolumeStatusDetails$Name": "

The name of the volume status.

" + } + }, + "VolumeType": { + "base": null, + "refs": { + "CreateVolumeRequest$VolumeType": "

The volume type. This can be gp2 for General Purpose (SSD) volumes, io1 for Provisioned IOPS (SSD) volumes, or standard for Magnetic volumes.

Default: standard

", + "EbsBlockDevice$VolumeType": "

The volume type. gp2 for General Purpose (SSD) volumes, io1 for Provisioned IOPS (SSD) volumes, and standard for Magnetic volumes.

Default: standard

", + "Volume$VolumeType": "

The volume type. This can be gp2 for General Purpose (SSD) volumes, io1 for Provisioned IOPS (SSD) volumes, or standard for Magnetic volumes.

" + } + }, + "Vpc": { + "base": "

Describes a VPC.

", + "refs": { + "CreateVpcResult$Vpc": "

Information about the VPC.

", + "VpcList$member": null + } + }, + "VpcAttachment": { + "base": "

Describes an attachment between a virtual private gateway and a VPC.

", + "refs": { + "AttachVpnGatewayResult$VpcAttachment": "

Information about the attachment.

", + "VpcAttachmentList$member": null + } + }, + "VpcAttachmentList": { + "base": null, + "refs": { + "VpnGateway$VpcAttachments": "

Any VPCs attached to the virtual private gateway.

" + } + }, + "VpcAttributeName": { + "base": null, + "refs": { + "DescribeVpcAttributeRequest$Attribute": "

The VPC attribute.

" + } + }, + "VpcClassicLink": { + "base": "

Describes whether a VPC is enabled for ClassicLink.

", + "refs": { + "VpcClassicLinkList$member": null + } + }, + "VpcClassicLinkIdList": { + "base": null, + "refs": { + "DescribeVpcClassicLinkRequest$VpcIds": "

One or more VPCs for which you want to describe the ClassicLink status.

" + } + }, + "VpcClassicLinkList": { + "base": null, + "refs": { + "DescribeVpcClassicLinkResult$Vpcs": "

The ClassicLink status of one or more VPCs.

" + } + }, + "VpcIdStringList": { + "base": null, + "refs": { + "DescribeVpcsRequest$VpcIds": "

One or more VPC IDs.

Default: Describes all your VPCs.

" + } + }, + "VpcList": { + "base": null, + "refs": { + "DescribeVpcsResult$Vpcs": "

Information about one or more VPCs.

" + } + }, + "VpcPeeringConnection": { + "base": "

Describes a VPC peering connection.

", + "refs": { + "AcceptVpcPeeringConnectionResult$VpcPeeringConnection": "

Information about the VPC peering connection.

", + "CreateVpcPeeringConnectionResult$VpcPeeringConnection": "

Information about the VPC peering connection.

", + "VpcPeeringConnectionList$member": null + } + }, + "VpcPeeringConnectionList": { + "base": null, + "refs": { + "DescribeVpcPeeringConnectionsResult$VpcPeeringConnections": "

Information about the VPC peering connections.

" + } + }, + "VpcPeeringConnectionStateReason": { + "base": "

Describes the status of a VPC peering connection.

", + "refs": { + "VpcPeeringConnection$Status": "

The status of the VPC peering connection.

" + } + }, + "VpcPeeringConnectionVpcInfo": { + "base": "

Describes a VPC in a VPC peering connection.

", + "refs": { + "VpcPeeringConnection$AccepterVpcInfo": "

The information of the peer VPC.

", + "VpcPeeringConnection$RequesterVpcInfo": "

The information of the requester VPC.

" + } + }, + "VpcState": { + "base": null, + "refs": { + "Vpc$State": "

The current state of the VPC.

" + } + }, + "VpnConnection": { + "base": "

Describes a VPN connection.

", + "refs": { + "CreateVpnConnectionResult$VpnConnection": "

Information about the VPN connection.

", + "VpnConnectionList$member": null + } + }, + "VpnConnectionIdStringList": { + "base": null, + "refs": { + "DescribeVpnConnectionsRequest$VpnConnectionIds": "

One or more VPN connection IDs.

Default: Describes your VPN connections.

" + } + }, + "VpnConnectionList": { + "base": null, + "refs": { + "DescribeVpnConnectionsResult$VpnConnections": "

Information about one or more VPN connections.

" + } + }, + "VpnConnectionOptions": { + "base": "

Describes VPN connection options.

", + "refs": { + "VpnConnection$Options": "

The VPN connection options.

" + } + }, + "VpnConnectionOptionsSpecification": { + "base": "

Describes VPN connection options.

", + "refs": { + "CreateVpnConnectionRequest$Options": "

Indicates whether the VPN connection requires static routes. If you are creating a VPN connection for a device that does not support BGP, you must specify true.

Default: false

" + } + }, + "VpnGateway": { + "base": "

Describes a virtual private gateway.

", + "refs": { + "CreateVpnGatewayResult$VpnGateway": "

Information about the virtual private gateway.

", + "VpnGatewayList$member": null + } + }, + "VpnGatewayIdStringList": { + "base": null, + "refs": { + "DescribeVpnGatewaysRequest$VpnGatewayIds": "

One or more virtual private gateway IDs.

Default: Describes all your virtual private gateways.

" + } + }, + "VpnGatewayList": { + "base": null, + "refs": { + "DescribeVpnGatewaysResult$VpnGateways": "

Information about one or more virtual private gateways.

" + } + }, + "VpnState": { + "base": null, + "refs": { + "VpnConnection$State": "

The current state of the VPN connection.

", + "VpnGateway$State": "

The current state of the virtual private gateway.

", + "VpnStaticRoute$State": "

The current state of the static route.

" + } + }, + "VpnStaticRoute": { + "base": "

Describes a static route for a VPN connection.

", + "refs": { + "VpnStaticRouteList$member": null + } + }, + "VpnStaticRouteList": { + "base": null, + "refs": { + "VpnConnection$Routes": "

The static routes associated with the VPN connection.

" + } + }, + "VpnStaticRouteSource": { + "base": null, + "refs": { + "VpnStaticRoute$Source": "

Indicates how the routes were provided.

" + } + }, + "ZoneNameStringList": { + "base": null, + "refs": { + "DescribeAvailabilityZonesRequest$ZoneNames": "

The names of one or more Availability Zones.

" + } + }, + "NewDhcpConfigurationList": { + "base": null, + "refs": { + "CreateDhcpOptionsRequest$DhcpConfigurations": "

A DHCP configuration option.

" + } + }, + "NewDhcpConfiguration": { + "base": null, + "refs": { + "NewDhcpConfigurationList$member": null + } + }, + "DhcpConfigurationValueList": { + "base": null, + "refs": { + "DhcpConfiguration$Values": "

One or more values for the DHCP option.

" + } + }, + "Blob": { + "base": null, + "refs": { + "ImportKeyPairRequest$PublicKeyMaterial": "

The public key. You must base64 encode the public key material before sending it to AWS.

", + "S3Storage$UploadPolicy": "

A Base64-encoded Amazon S3 upload policy that gives Amazon EC2 permission to upload items into Amazon S3 on your behalf.

", + "BlobAttributeValue$Value": null + } + }, + "BlobAttributeValue": { + "base": null, + "refs": { + "ModifyInstanceAttributeRequest$UserData": "

Changes the instance's user data to the specified value.

" + } + }, + "RequestSpotLaunchSpecification": { + "base": "

Describes the launch specification for an instance.

", + "refs": { + "RequestSpotInstancesRequest$LaunchSpecification": null + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/ec2/2015-03-01/paginators-1.json b/lib/aws-sdk/Aws/data/ec2/2015-03-01/paginators-1.json new file mode 100644 index 0000000..740f2e3 --- /dev/null +++ b/lib/aws-sdk/Aws/data/ec2/2015-03-01/paginators-1.json @@ -0,0 +1,125 @@ +{ + "pagination": { + "DescribeAccountAttributes": { + "result_key": "AccountAttributes" + }, + "DescribeAddresses": { + "result_key": "Addresses" + }, + "DescribeAvailabilityZones": { + "result_key": "AvailabilityZones" + }, + "DescribeBundleTasks": { + "result_key": "BundleTasks" + }, + "DescribeConversionTasks": { + "result_key": "ConversionTasks" + }, + "DescribeCustomerGateways": { + "result_key": "CustomerGateways" + }, + "DescribeDhcpOptions": { + "result_key": "DhcpOptions" + }, + "DescribeExportTasks": { + "result_key": "ExportTasks" + }, + "DescribeImages": { + "result_key": "Images" + }, + "DescribeInstanceStatus": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "InstanceStatuses" + }, + "DescribeInstances": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Reservations" + }, + "DescribeInternetGateways": { + "result_key": "InternetGateways" + }, + "DescribeKeyPairs": { + "result_key": "KeyPairs" + }, + "DescribeNetworkAcls": { + "result_key": "NetworkAcls" + }, + "DescribeNetworkInterfaces": { + "result_key": "NetworkInterfaces" + }, + "DescribePlacementGroups": { + "result_key": "PlacementGroups" + }, + "DescribeRegions": { + "result_key": "Regions" + }, + "DescribeReservedInstances": { + "result_key": "ReservedInstances" + }, + "DescribeReservedInstancesListings": { + "result_key": "ReservedInstancesListings" + }, + "DescribeReservedInstancesOfferings": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "ReservedInstancesOfferings" + }, + "DescribeReservedInstancesModifications": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "ReservedInstancesModifications" + }, + "DescribeRouteTables": { + "result_key": "RouteTables" + }, + "DescribeSecurityGroups": { + "result_key": "SecurityGroups" + }, + "DescribeSnapshots": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Snapshots" + }, + "DescribeSpotInstanceRequests": { + "result_key": "SpotInstanceRequests" + }, + "DescribeSpotPriceHistory": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "SpotPriceHistory" + }, + "DescribeSubnets": { + "result_key": "Subnets" + }, + "DescribeTags": { + "result_key": "Tags" + }, + "DescribeVolumeStatus": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "VolumeStatuses" + }, + "DescribeVolumes": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Volumes" + }, + "DescribeVpcs": { + "result_key": "Vpcs" + }, + "DescribeVpnConnections": { + "result_key": "VpnConnections" + }, + "DescribeVpnGateways": { + "result_key": "VpnGateways" + } + } +} diff --git a/lib/aws-sdk/Aws/data/ec2/2015-03-01/waiters-2.json b/lib/aws-sdk/Aws/data/ec2/2015-03-01/waiters-2.json new file mode 100644 index 0000000..8647c7d --- /dev/null +++ b/lib/aws-sdk/Aws/data/ec2/2015-03-01/waiters-2.json @@ -0,0 +1,453 @@ +{ + "version": 2, + "waiters": { + "InstanceExists": { + "delay": 5, + "maxAttempts": 40, + "operation": "DescribeInstances", + "acceptors": [ + { + "matcher": "status", + "expected": 200, + "state": "success" + }, + { + "matcher": "error", + "expected": "InvalidInstanceIDNotFound", + "state": "retry" + } + ] + }, + "BundleTaskComplete": { + "delay": 15, + "operation": "DescribeBundleTasks", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "complete", + "matcher": "pathAll", + "state": "success", + "argument": "BundleTasks[].State" + }, + { + "expected": "failed", + "matcher": "pathAny", + "state": "failure", + "argument": "BundleTasks[].State" + } + ] + }, + "ConversionTaskCancelled": { + "delay": 15, + "operation": "DescribeConversionTasks", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "cancelled", + "matcher": "pathAll", + "state": "success", + "argument": "ConversionTasks[].State" + } + ] + }, + "ConversionTaskCompleted": { + "delay": 15, + "operation": "DescribeConversionTasks", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "completed", + "matcher": "pathAll", + "state": "success", + "argument": "ConversionTasks[].State" + }, + { + "expected": "cancelled", + "matcher": "pathAny", + "state": "failure", + "argument": "ConversionTasks[].State" + }, + { + "expected": "cancelling", + "matcher": "pathAny", + "state": "failure", + "argument": "ConversionTasks[].State" + } + ] + }, + "ConversionTaskDeleted": { + "delay": 15, + "operation": "DescribeConversionTasks", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "deleted", + "matcher": "pathAll", + "state": "success", + "argument": "ConversionTasks[].State" + } + ] + }, + "CustomerGatewayAvailable": { + "delay": 15, + "operation": "DescribeCustomerGateways", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "CustomerGateways[].State" + }, + { + "expected": "deleted", + "matcher": "pathAny", + "state": "failure", + "argument": "CustomerGateways[].State" + }, + { + "expected": "deleting", + "matcher": "pathAny", + "state": "failure", + "argument": "CustomerGateways[].State" + } + ] + }, + "ExportTaskCancelled": { + "delay": 15, + "operation": "DescribeExportTasks", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "cancelled", + "matcher": "pathAll", + "state": "success", + "argument": "ExportTasks[].State" + } + ] + }, + "ExportTaskCompleted": { + "delay": 15, + "operation": "DescribeExportTasks", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "completed", + "matcher": "pathAll", + "state": "success", + "argument": "ExportTasks[].State" + } + ] + }, + "ImageAvailable": { + "operation": "DescribeImages", + "maxAttempts": 40, + "delay": 15, + "acceptors": [ + { + "state": "success", + "matcher": "pathAll", + "argument": "Images[].State", + "expected": "available" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "Images[].State", + "expected": "failed" + } + ] + }, + "InstanceRunning": { + "delay": 15, + "operation": "DescribeInstances", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "running", + "matcher": "pathAll", + "state": "success", + "argument": "Reservations[].Instances[].State.Name" + }, + { + "expected": "shutting-down", + "matcher": "pathAny", + "state": "failure", + "argument": "Reservations[].Instances[].State.Name" + }, + { + "expected": "terminated", + "matcher": "pathAny", + "state": "failure", + "argument": "Reservations[].Instances[].State.Name" + }, + { + "expected": "stopping", + "matcher": "pathAny", + "state": "failure", + "argument": "Reservations[].Instances[].State.Name" + } + ] + }, + "InstanceStatusOk": { + "operation": "DescribeInstanceStatus", + "maxAttempts": 40, + "delay": 15, + "acceptors": [ + { + "state": "success", + "matcher": "pathAll", + "argument": "InstanceStatuses[].InstanceStatus.Status", + "expected": "ok" + } + ] + }, + "InstanceStopped": { + "delay": 15, + "operation": "DescribeInstances", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "stopped", + "matcher": "pathAll", + "state": "success", + "argument": "Reservations[].Instances[].State.Name" + }, + { + "expected": "pending", + "matcher": "pathAny", + "state": "failure", + "argument": "Reservations[].Instances[].State.Name" + }, + { + "expected": "terminated", + "matcher": "pathAny", + "state": "failure", + "argument": "Reservations[].Instances[].State.Name" + } + ] + }, + "InstanceTerminated": { + "delay": 15, + "operation": "DescribeInstances", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "terminated", + "matcher": "pathAll", + "state": "success", + "argument": "Reservations[].Instances[].State.Name" + }, + { + "expected": "pending", + "matcher": "pathAny", + "state": "failure", + "argument": "Reservations[].Instances[].State.Name" + }, + { + "expected": "stopping", + "matcher": "pathAny", + "state": "failure", + "argument": "Reservations[].Instances[].State.Name" + } + ] + }, + "PasswordDataAvailable": { + "operation": "GetPasswordData", + "maxAttempts": 40, + "delay": 15, + "acceptors": [ + { + "state": "success", + "matcher": "path", + "argument": "length(PasswordData) > `0`", + "expected": true + } + ] + }, + "SnapshotCompleted": { + "delay": 15, + "operation": "DescribeSnapshots", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "completed", + "matcher": "pathAll", + "state": "success", + "argument": "Snapshots[].State" + } + ] + }, + "SpotInstanceRequestFulfilled": { + "operation": "DescribeSpotInstanceRequests", + "maxAttempts": 40, + "delay": 15, + "acceptors": [ + { + "state": "success", + "matcher": "pathAll", + "argument": "SpotInstanceRequests[].Status.Code", + "expected": "fulfilled" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "SpotInstanceRequests[].Status.Code", + "expected": "schedule-expired" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "SpotInstanceRequests[].Status.Code", + "expected": "canceled-before-fulfillment" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "SpotInstanceRequests[].Status.Code", + "expected": "bad-parameters" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "SpotInstanceRequests[].Status.Code", + "expected": "system-error" + } + ] + }, + "SubnetAvailable": { + "delay": 15, + "operation": "DescribeSubnets", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "Subnets[].State" + } + ] + }, + "SystemStatusOk": { + "operation": "DescribeInstanceStatus", + "maxAttempts": 40, + "delay": 15, + "acceptors": [ + { + "state": "success", + "matcher": "pathAll", + "argument": "InstanceStatuses[].SystemStatus.Status", + "expected": "ok" + } + ] + }, + "VolumeAvailable": { + "delay": 15, + "operation": "DescribeVolumes", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "Volumes[].State" + }, + { + "expected": "deleted", + "matcher": "pathAny", + "state": "failure", + "argument": "Volumes[].State" + } + ] + }, + "VolumeDeleted": { + "delay": 15, + "operation": "DescribeVolumes", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "deleted", + "matcher": "pathAll", + "state": "success", + "argument": "Volumes[].State" + } + ] + }, + "VolumeInUse": { + "delay": 15, + "operation": "DescribeVolumes", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "in-use", + "matcher": "pathAll", + "state": "success", + "argument": "Volumes[].State" + }, + { + "expected": "deleted", + "matcher": "pathAny", + "state": "failure", + "argument": "Volumes[].State" + } + ] + }, + "VpcAvailable": { + "delay": 15, + "operation": "DescribeVpcs", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "Vpcs[].State" + } + ] + }, + "VpnConnectionAvailable": { + "delay": 15, + "operation": "DescribeVpnConnections", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "VpnConnections[].State" + }, + { + "expected": "deleting", + "matcher": "pathAny", + "state": "failure", + "argument": "VpnConnections[].State" + }, + { + "expected": "deleted", + "matcher": "pathAny", + "state": "failure", + "argument": "VpnConnections[].State" + } + ] + }, + "VpnConnectionDeleted": { + "delay": 15, + "operation": "DescribeVpnConnections", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "deleted", + "matcher": "pathAll", + "state": "success", + "argument": "VpnConnections[].State" + }, + { + "expected": "pending", + "matcher": "pathAny", + "state": "failure", + "argument": "VpnConnections[].State" + } + ] + } + } +} diff --git a/lib/aws-sdk/Aws/data/ec2/2015-04-15/api-2.json b/lib/aws-sdk/Aws/data/ec2/2015-04-15/api-2.json new file mode 100644 index 0000000..ff046dc --- /dev/null +++ b/lib/aws-sdk/Aws/data/ec2/2015-04-15/api-2.json @@ -0,0 +1,11922 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2015-04-15", + "endpointPrefix":"ec2", + "serviceAbbreviation":"Amazon EC2", + "serviceFullName":"Amazon Elastic Compute Cloud", + "signatureVersion":"v4", + "xmlNamespace":"http://ec2.amazonaws.com/doc/2015-04-15", + "protocol":"ec2" + }, + "operations":{ + "AcceptVpcPeeringConnection":{ + "name":"AcceptVpcPeeringConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AcceptVpcPeeringConnectionRequest"}, + "output":{"shape":"AcceptVpcPeeringConnectionResult"} + }, + "AllocateAddress":{ + "name":"AllocateAddress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AllocateAddressRequest"}, + "output":{"shape":"AllocateAddressResult"} + }, + "AssignPrivateIpAddresses":{ + "name":"AssignPrivateIpAddresses", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssignPrivateIpAddressesRequest"} + }, + "AssociateAddress":{ + "name":"AssociateAddress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateAddressRequest"}, + "output":{"shape":"AssociateAddressResult"} + }, + "AssociateDhcpOptions":{ + "name":"AssociateDhcpOptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateDhcpOptionsRequest"} + }, + "AssociateRouteTable":{ + "name":"AssociateRouteTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateRouteTableRequest"}, + "output":{"shape":"AssociateRouteTableResult"} + }, + "AttachClassicLinkVpc":{ + "name":"AttachClassicLinkVpc", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AttachClassicLinkVpcRequest"}, + "output":{"shape":"AttachClassicLinkVpcResult"} + }, + "AttachInternetGateway":{ + "name":"AttachInternetGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AttachInternetGatewayRequest"} + }, + "AttachNetworkInterface":{ + "name":"AttachNetworkInterface", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AttachNetworkInterfaceRequest"}, + "output":{"shape":"AttachNetworkInterfaceResult"} + }, + "AttachVolume":{ + "name":"AttachVolume", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AttachVolumeRequest"}, + "output":{ + "shape":"VolumeAttachment", + "locationName":"attachment" + } + }, + "AttachVpnGateway":{ + "name":"AttachVpnGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AttachVpnGatewayRequest"}, + "output":{"shape":"AttachVpnGatewayResult"} + }, + "AuthorizeSecurityGroupEgress":{ + "name":"AuthorizeSecurityGroupEgress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AuthorizeSecurityGroupEgressRequest"} + }, + "AuthorizeSecurityGroupIngress":{ + "name":"AuthorizeSecurityGroupIngress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AuthorizeSecurityGroupIngressRequest"} + }, + "BundleInstance":{ + "name":"BundleInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BundleInstanceRequest"}, + "output":{"shape":"BundleInstanceResult"} + }, + "CancelBundleTask":{ + "name":"CancelBundleTask", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CancelBundleTaskRequest"}, + "output":{"shape":"CancelBundleTaskResult"} + }, + "CancelConversionTask":{ + "name":"CancelConversionTask", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CancelConversionRequest"} + }, + "CancelExportTask":{ + "name":"CancelExportTask", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CancelExportTaskRequest"} + }, + "CancelImportTask":{ + "name":"CancelImportTask", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CancelImportTaskRequest"}, + "output":{"shape":"CancelImportTaskResult"} + }, + "CancelReservedInstancesListing":{ + "name":"CancelReservedInstancesListing", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CancelReservedInstancesListingRequest"}, + "output":{"shape":"CancelReservedInstancesListingResult"} + }, + "CancelSpotFleetRequests":{ + "name":"CancelSpotFleetRequests", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CancelSpotFleetRequestsRequest"}, + "output":{"shape":"CancelSpotFleetRequestsResponse"} + }, + "CancelSpotInstanceRequests":{ + "name":"CancelSpotInstanceRequests", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CancelSpotInstanceRequestsRequest"}, + "output":{"shape":"CancelSpotInstanceRequestsResult"} + }, + "ConfirmProductInstance":{ + "name":"ConfirmProductInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ConfirmProductInstanceRequest"}, + "output":{"shape":"ConfirmProductInstanceResult"} + }, + "CopyImage":{ + "name":"CopyImage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CopyImageRequest"}, + "output":{"shape":"CopyImageResult"} + }, + "CopySnapshot":{ + "name":"CopySnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CopySnapshotRequest"}, + "output":{"shape":"CopySnapshotResult"} + }, + "CreateCustomerGateway":{ + "name":"CreateCustomerGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateCustomerGatewayRequest"}, + "output":{"shape":"CreateCustomerGatewayResult"} + }, + "CreateDhcpOptions":{ + "name":"CreateDhcpOptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDhcpOptionsRequest"}, + "output":{"shape":"CreateDhcpOptionsResult"} + }, + "CreateFlowLogs":{ + "name":"CreateFlowLogs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateFlowLogsRequest"}, + "output":{"shape":"CreateFlowLogsResult"} + }, + "CreateImage":{ + "name":"CreateImage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateImageRequest"}, + "output":{"shape":"CreateImageResult"} + }, + "CreateInstanceExportTask":{ + "name":"CreateInstanceExportTask", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateInstanceExportTaskRequest"}, + "output":{"shape":"CreateInstanceExportTaskResult"} + }, + "CreateInternetGateway":{ + "name":"CreateInternetGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateInternetGatewayRequest"}, + "output":{"shape":"CreateInternetGatewayResult"} + }, + "CreateKeyPair":{ + "name":"CreateKeyPair", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateKeyPairRequest"}, + "output":{ + "shape":"KeyPair", + "locationName":"keyPair" + } + }, + "CreateNetworkAcl":{ + "name":"CreateNetworkAcl", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateNetworkAclRequest"}, + "output":{"shape":"CreateNetworkAclResult"} + }, + "CreateNetworkAclEntry":{ + "name":"CreateNetworkAclEntry", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateNetworkAclEntryRequest"} + }, + "CreateNetworkInterface":{ + "name":"CreateNetworkInterface", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateNetworkInterfaceRequest"}, + "output":{"shape":"CreateNetworkInterfaceResult"} + }, + "CreatePlacementGroup":{ + "name":"CreatePlacementGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreatePlacementGroupRequest"} + }, + "CreateReservedInstancesListing":{ + "name":"CreateReservedInstancesListing", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateReservedInstancesListingRequest"}, + "output":{"shape":"CreateReservedInstancesListingResult"} + }, + "CreateRoute":{ + "name":"CreateRoute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateRouteRequest"}, + "output":{"shape":"CreateRouteResult"} + }, + "CreateRouteTable":{ + "name":"CreateRouteTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateRouteTableRequest"}, + "output":{"shape":"CreateRouteTableResult"} + }, + "CreateSecurityGroup":{ + "name":"CreateSecurityGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateSecurityGroupRequest"}, + "output":{"shape":"CreateSecurityGroupResult"} + }, + "CreateSnapshot":{ + "name":"CreateSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateSnapshotRequest"}, + "output":{ + "shape":"Snapshot", + "locationName":"snapshot" + } + }, + "CreateSpotDatafeedSubscription":{ + "name":"CreateSpotDatafeedSubscription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateSpotDatafeedSubscriptionRequest"}, + "output":{"shape":"CreateSpotDatafeedSubscriptionResult"} + }, + "CreateSubnet":{ + "name":"CreateSubnet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateSubnetRequest"}, + "output":{"shape":"CreateSubnetResult"} + }, + "CreateTags":{ + "name":"CreateTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateTagsRequest"} + }, + "CreateVolume":{ + "name":"CreateVolume", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVolumeRequest"}, + "output":{ + "shape":"Volume", + "locationName":"volume" + } + }, + "CreateVpc":{ + "name":"CreateVpc", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVpcRequest"}, + "output":{"shape":"CreateVpcResult"} + }, + "CreateVpcEndpoint":{ + "name":"CreateVpcEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVpcEndpointRequest"}, + "output":{"shape":"CreateVpcEndpointResult"} + }, + "CreateVpcPeeringConnection":{ + "name":"CreateVpcPeeringConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVpcPeeringConnectionRequest"}, + "output":{"shape":"CreateVpcPeeringConnectionResult"} + }, + "CreateVpnConnection":{ + "name":"CreateVpnConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVpnConnectionRequest"}, + "output":{"shape":"CreateVpnConnectionResult"} + }, + "CreateVpnConnectionRoute":{ + "name":"CreateVpnConnectionRoute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVpnConnectionRouteRequest"} + }, + "CreateVpnGateway":{ + "name":"CreateVpnGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVpnGatewayRequest"}, + "output":{"shape":"CreateVpnGatewayResult"} + }, + "DeleteCustomerGateway":{ + "name":"DeleteCustomerGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteCustomerGatewayRequest"} + }, + "DeleteDhcpOptions":{ + "name":"DeleteDhcpOptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDhcpOptionsRequest"} + }, + "DeleteFlowLogs":{ + "name":"DeleteFlowLogs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteFlowLogsRequest"}, + "output":{"shape":"DeleteFlowLogsResult"} + }, + "DeleteInternetGateway":{ + "name":"DeleteInternetGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteInternetGatewayRequest"} + }, + "DeleteKeyPair":{ + "name":"DeleteKeyPair", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteKeyPairRequest"} + }, + "DeleteNetworkAcl":{ + "name":"DeleteNetworkAcl", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteNetworkAclRequest"} + }, + "DeleteNetworkAclEntry":{ + "name":"DeleteNetworkAclEntry", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteNetworkAclEntryRequest"} + }, + "DeleteNetworkInterface":{ + "name":"DeleteNetworkInterface", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteNetworkInterfaceRequest"} + }, + "DeletePlacementGroup":{ + "name":"DeletePlacementGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeletePlacementGroupRequest"} + }, + "DeleteRoute":{ + "name":"DeleteRoute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRouteRequest"} + }, + "DeleteRouteTable":{ + "name":"DeleteRouteTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRouteTableRequest"} + }, + "DeleteSecurityGroup":{ + "name":"DeleteSecurityGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteSecurityGroupRequest"} + }, + "DeleteSnapshot":{ + "name":"DeleteSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteSnapshotRequest"} + }, + "DeleteSpotDatafeedSubscription":{ + "name":"DeleteSpotDatafeedSubscription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteSpotDatafeedSubscriptionRequest"} + }, + "DeleteSubnet":{ + "name":"DeleteSubnet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteSubnetRequest"} + }, + "DeleteTags":{ + "name":"DeleteTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTagsRequest"} + }, + "DeleteVolume":{ + "name":"DeleteVolume", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVolumeRequest"} + }, + "DeleteVpc":{ + "name":"DeleteVpc", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVpcRequest"} + }, + "DeleteVpcEndpoints":{ + "name":"DeleteVpcEndpoints", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVpcEndpointsRequest"}, + "output":{"shape":"DeleteVpcEndpointsResult"} + }, + "DeleteVpcPeeringConnection":{ + "name":"DeleteVpcPeeringConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVpcPeeringConnectionRequest"}, + "output":{"shape":"DeleteVpcPeeringConnectionResult"} + }, + "DeleteVpnConnection":{ + "name":"DeleteVpnConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVpnConnectionRequest"} + }, + "DeleteVpnConnectionRoute":{ + "name":"DeleteVpnConnectionRoute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVpnConnectionRouteRequest"} + }, + "DeleteVpnGateway":{ + "name":"DeleteVpnGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVpnGatewayRequest"} + }, + "DeregisterImage":{ + "name":"DeregisterImage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeregisterImageRequest"} + }, + "DescribeAccountAttributes":{ + "name":"DescribeAccountAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAccountAttributesRequest"}, + "output":{"shape":"DescribeAccountAttributesResult"} + }, + "DescribeAddresses":{ + "name":"DescribeAddresses", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAddressesRequest"}, + "output":{"shape":"DescribeAddressesResult"} + }, + "DescribeAvailabilityZones":{ + "name":"DescribeAvailabilityZones", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAvailabilityZonesRequest"}, + "output":{"shape":"DescribeAvailabilityZonesResult"} + }, + "DescribeBundleTasks":{ + "name":"DescribeBundleTasks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeBundleTasksRequest"}, + "output":{"shape":"DescribeBundleTasksResult"} + }, + "DescribeClassicLinkInstances":{ + "name":"DescribeClassicLinkInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeClassicLinkInstancesRequest"}, + "output":{"shape":"DescribeClassicLinkInstancesResult"} + }, + "DescribeConversionTasks":{ + "name":"DescribeConversionTasks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeConversionTasksRequest"}, + "output":{"shape":"DescribeConversionTasksResult"} + }, + "DescribeCustomerGateways":{ + "name":"DescribeCustomerGateways", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeCustomerGatewaysRequest"}, + "output":{"shape":"DescribeCustomerGatewaysResult"} + }, + "DescribeDhcpOptions":{ + "name":"DescribeDhcpOptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDhcpOptionsRequest"}, + "output":{"shape":"DescribeDhcpOptionsResult"} + }, + "DescribeExportTasks":{ + "name":"DescribeExportTasks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeExportTasksRequest"}, + "output":{"shape":"DescribeExportTasksResult"} + }, + "DescribeFlowLogs":{ + "name":"DescribeFlowLogs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeFlowLogsRequest"}, + "output":{"shape":"DescribeFlowLogsResult"} + }, + "DescribeImageAttribute":{ + "name":"DescribeImageAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeImageAttributeRequest"}, + "output":{ + "shape":"ImageAttribute", + "locationName":"imageAttribute" + } + }, + "DescribeImages":{ + "name":"DescribeImages", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeImagesRequest"}, + "output":{"shape":"DescribeImagesResult"} + }, + "DescribeImportImageTasks":{ + "name":"DescribeImportImageTasks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeImportImageTasksRequest"}, + "output":{"shape":"DescribeImportImageTasksResult"} + }, + "DescribeImportSnapshotTasks":{ + "name":"DescribeImportSnapshotTasks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeImportSnapshotTasksRequest"}, + "output":{"shape":"DescribeImportSnapshotTasksResult"} + }, + "DescribeInstanceAttribute":{ + "name":"DescribeInstanceAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeInstanceAttributeRequest"}, + "output":{"shape":"InstanceAttribute"} + }, + "DescribeInstanceStatus":{ + "name":"DescribeInstanceStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeInstanceStatusRequest"}, + "output":{"shape":"DescribeInstanceStatusResult"} + }, + "DescribeInstances":{ + "name":"DescribeInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeInstancesRequest"}, + "output":{"shape":"DescribeInstancesResult"} + }, + "DescribeInternetGateways":{ + "name":"DescribeInternetGateways", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeInternetGatewaysRequest"}, + "output":{"shape":"DescribeInternetGatewaysResult"} + }, + "DescribeKeyPairs":{ + "name":"DescribeKeyPairs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeKeyPairsRequest"}, + "output":{"shape":"DescribeKeyPairsResult"} + }, + "DescribeMovingAddresses":{ + "name":"DescribeMovingAddresses", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeMovingAddressesRequest"}, + "output":{"shape":"DescribeMovingAddressesResult"} + }, + "DescribeNetworkAcls":{ + "name":"DescribeNetworkAcls", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeNetworkAclsRequest"}, + "output":{"shape":"DescribeNetworkAclsResult"} + }, + "DescribeNetworkInterfaceAttribute":{ + "name":"DescribeNetworkInterfaceAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeNetworkInterfaceAttributeRequest"}, + "output":{"shape":"DescribeNetworkInterfaceAttributeResult"} + }, + "DescribeNetworkInterfaces":{ + "name":"DescribeNetworkInterfaces", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeNetworkInterfacesRequest"}, + "output":{"shape":"DescribeNetworkInterfacesResult"} + }, + "DescribePlacementGroups":{ + "name":"DescribePlacementGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribePlacementGroupsRequest"}, + "output":{"shape":"DescribePlacementGroupsResult"} + }, + "DescribePrefixLists":{ + "name":"DescribePrefixLists", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribePrefixListsRequest"}, + "output":{"shape":"DescribePrefixListsResult"} + }, + "DescribeRegions":{ + "name":"DescribeRegions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeRegionsRequest"}, + "output":{"shape":"DescribeRegionsResult"} + }, + "DescribeReservedInstances":{ + "name":"DescribeReservedInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeReservedInstancesRequest"}, + "output":{"shape":"DescribeReservedInstancesResult"} + }, + "DescribeReservedInstancesListings":{ + "name":"DescribeReservedInstancesListings", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeReservedInstancesListingsRequest"}, + "output":{"shape":"DescribeReservedInstancesListingsResult"} + }, + "DescribeReservedInstancesModifications":{ + "name":"DescribeReservedInstancesModifications", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeReservedInstancesModificationsRequest"}, + "output":{"shape":"DescribeReservedInstancesModificationsResult"} + }, + "DescribeReservedInstancesOfferings":{ + "name":"DescribeReservedInstancesOfferings", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeReservedInstancesOfferingsRequest"}, + "output":{"shape":"DescribeReservedInstancesOfferingsResult"} + }, + "DescribeRouteTables":{ + "name":"DescribeRouteTables", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeRouteTablesRequest"}, + "output":{"shape":"DescribeRouteTablesResult"} + }, + "DescribeSecurityGroups":{ + "name":"DescribeSecurityGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSecurityGroupsRequest"}, + "output":{"shape":"DescribeSecurityGroupsResult"} + }, + "DescribeSnapshotAttribute":{ + "name":"DescribeSnapshotAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSnapshotAttributeRequest"}, + "output":{"shape":"DescribeSnapshotAttributeResult"} + }, + "DescribeSnapshots":{ + "name":"DescribeSnapshots", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSnapshotsRequest"}, + "output":{"shape":"DescribeSnapshotsResult"} + }, + "DescribeSpotDatafeedSubscription":{ + "name":"DescribeSpotDatafeedSubscription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSpotDatafeedSubscriptionRequest"}, + "output":{"shape":"DescribeSpotDatafeedSubscriptionResult"} + }, + "DescribeSpotFleetInstances":{ + "name":"DescribeSpotFleetInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSpotFleetInstancesRequest"}, + "output":{"shape":"DescribeSpotFleetInstancesResponse"} + }, + "DescribeSpotFleetRequestHistory":{ + "name":"DescribeSpotFleetRequestHistory", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSpotFleetRequestHistoryRequest"}, + "output":{"shape":"DescribeSpotFleetRequestHistoryResponse"} + }, + "DescribeSpotFleetRequests":{ + "name":"DescribeSpotFleetRequests", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSpotFleetRequestsRequest"}, + "output":{"shape":"DescribeSpotFleetRequestsResponse"} + }, + "DescribeSpotInstanceRequests":{ + "name":"DescribeSpotInstanceRequests", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSpotInstanceRequestsRequest"}, + "output":{"shape":"DescribeSpotInstanceRequestsResult"} + }, + "DescribeSpotPriceHistory":{ + "name":"DescribeSpotPriceHistory", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSpotPriceHistoryRequest"}, + "output":{"shape":"DescribeSpotPriceHistoryResult"} + }, + "DescribeSubnets":{ + "name":"DescribeSubnets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSubnetsRequest"}, + "output":{"shape":"DescribeSubnetsResult"} + }, + "DescribeTags":{ + "name":"DescribeTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTagsRequest"}, + "output":{"shape":"DescribeTagsResult"} + }, + "DescribeVolumeAttribute":{ + "name":"DescribeVolumeAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVolumeAttributeRequest"}, + "output":{"shape":"DescribeVolumeAttributeResult"} + }, + "DescribeVolumeStatus":{ + "name":"DescribeVolumeStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVolumeStatusRequest"}, + "output":{"shape":"DescribeVolumeStatusResult"} + }, + "DescribeVolumes":{ + "name":"DescribeVolumes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVolumesRequest"}, + "output":{"shape":"DescribeVolumesResult"} + }, + "DescribeVpcAttribute":{ + "name":"DescribeVpcAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVpcAttributeRequest"}, + "output":{"shape":"DescribeVpcAttributeResult"} + }, + "DescribeVpcClassicLink":{ + "name":"DescribeVpcClassicLink", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVpcClassicLinkRequest"}, + "output":{"shape":"DescribeVpcClassicLinkResult"} + }, + "DescribeVpcEndpointServices":{ + "name":"DescribeVpcEndpointServices", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVpcEndpointServicesRequest"}, + "output":{"shape":"DescribeVpcEndpointServicesResult"} + }, + "DescribeVpcEndpoints":{ + "name":"DescribeVpcEndpoints", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVpcEndpointsRequest"}, + "output":{"shape":"DescribeVpcEndpointsResult"} + }, + "DescribeVpcPeeringConnections":{ + "name":"DescribeVpcPeeringConnections", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVpcPeeringConnectionsRequest"}, + "output":{"shape":"DescribeVpcPeeringConnectionsResult"} + }, + "DescribeVpcs":{ + "name":"DescribeVpcs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVpcsRequest"}, + "output":{"shape":"DescribeVpcsResult"} + }, + "DescribeVpnConnections":{ + "name":"DescribeVpnConnections", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVpnConnectionsRequest"}, + "output":{"shape":"DescribeVpnConnectionsResult"} + }, + "DescribeVpnGateways":{ + "name":"DescribeVpnGateways", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVpnGatewaysRequest"}, + "output":{"shape":"DescribeVpnGatewaysResult"} + }, + "DetachClassicLinkVpc":{ + "name":"DetachClassicLinkVpc", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetachClassicLinkVpcRequest"}, + "output":{"shape":"DetachClassicLinkVpcResult"} + }, + "DetachInternetGateway":{ + "name":"DetachInternetGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetachInternetGatewayRequest"} + }, + "DetachNetworkInterface":{ + "name":"DetachNetworkInterface", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetachNetworkInterfaceRequest"} + }, + "DetachVolume":{ + "name":"DetachVolume", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetachVolumeRequest"}, + "output":{ + "shape":"VolumeAttachment", + "locationName":"attachment" + } + }, + "DetachVpnGateway":{ + "name":"DetachVpnGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetachVpnGatewayRequest"} + }, + "DisableVgwRoutePropagation":{ + "name":"DisableVgwRoutePropagation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisableVgwRoutePropagationRequest"} + }, + "DisableVpcClassicLink":{ + "name":"DisableVpcClassicLink", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisableVpcClassicLinkRequest"}, + "output":{"shape":"DisableVpcClassicLinkResult"} + }, + "DisassociateAddress":{ + "name":"DisassociateAddress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisassociateAddressRequest"} + }, + "DisassociateRouteTable":{ + "name":"DisassociateRouteTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisassociateRouteTableRequest"} + }, + "EnableVgwRoutePropagation":{ + "name":"EnableVgwRoutePropagation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableVgwRoutePropagationRequest"} + }, + "EnableVolumeIO":{ + "name":"EnableVolumeIO", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableVolumeIORequest"} + }, + "EnableVpcClassicLink":{ + "name":"EnableVpcClassicLink", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableVpcClassicLinkRequest"}, + "output":{"shape":"EnableVpcClassicLinkResult"} + }, + "GetConsoleOutput":{ + "name":"GetConsoleOutput", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetConsoleOutputRequest"}, + "output":{"shape":"GetConsoleOutputResult"} + }, + "GetPasswordData":{ + "name":"GetPasswordData", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetPasswordDataRequest"}, + "output":{"shape":"GetPasswordDataResult"} + }, + "ImportImage":{ + "name":"ImportImage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ImportImageRequest"}, + "output":{"shape":"ImportImageResult"} + }, + "ImportInstance":{ + "name":"ImportInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ImportInstanceRequest"}, + "output":{"shape":"ImportInstanceResult"} + }, + "ImportKeyPair":{ + "name":"ImportKeyPair", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ImportKeyPairRequest"}, + "output":{"shape":"ImportKeyPairResult"} + }, + "ImportSnapshot":{ + "name":"ImportSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ImportSnapshotRequest"}, + "output":{"shape":"ImportSnapshotResult"} + }, + "ImportVolume":{ + "name":"ImportVolume", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ImportVolumeRequest"}, + "output":{"shape":"ImportVolumeResult"} + }, + "ModifyImageAttribute":{ + "name":"ModifyImageAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyImageAttributeRequest"} + }, + "ModifyInstanceAttribute":{ + "name":"ModifyInstanceAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyInstanceAttributeRequest"} + }, + "ModifyNetworkInterfaceAttribute":{ + "name":"ModifyNetworkInterfaceAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyNetworkInterfaceAttributeRequest"} + }, + "ModifyReservedInstances":{ + "name":"ModifyReservedInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyReservedInstancesRequest"}, + "output":{"shape":"ModifyReservedInstancesResult"} + }, + "ModifySnapshotAttribute":{ + "name":"ModifySnapshotAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifySnapshotAttributeRequest"} + }, + "ModifySubnetAttribute":{ + "name":"ModifySubnetAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifySubnetAttributeRequest"} + }, + "ModifyVolumeAttribute":{ + "name":"ModifyVolumeAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyVolumeAttributeRequest"} + }, + "ModifyVpcAttribute":{ + "name":"ModifyVpcAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyVpcAttributeRequest"} + }, + "ModifyVpcEndpoint":{ + "name":"ModifyVpcEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyVpcEndpointRequest"}, + "output":{"shape":"ModifyVpcEndpointResult"} + }, + "MonitorInstances":{ + "name":"MonitorInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"MonitorInstancesRequest"}, + "output":{"shape":"MonitorInstancesResult"} + }, + "MoveAddressToVpc":{ + "name":"MoveAddressToVpc", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"MoveAddressToVpcRequest"}, + "output":{"shape":"MoveAddressToVpcResult"} + }, + "PurchaseReservedInstancesOffering":{ + "name":"PurchaseReservedInstancesOffering", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PurchaseReservedInstancesOfferingRequest"}, + "output":{"shape":"PurchaseReservedInstancesOfferingResult"} + }, + "RebootInstances":{ + "name":"RebootInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RebootInstancesRequest"} + }, + "RegisterImage":{ + "name":"RegisterImage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RegisterImageRequest"}, + "output":{"shape":"RegisterImageResult"} + }, + "RejectVpcPeeringConnection":{ + "name":"RejectVpcPeeringConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RejectVpcPeeringConnectionRequest"}, + "output":{"shape":"RejectVpcPeeringConnectionResult"} + }, + "ReleaseAddress":{ + "name":"ReleaseAddress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ReleaseAddressRequest"} + }, + "ReplaceNetworkAclAssociation":{ + "name":"ReplaceNetworkAclAssociation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ReplaceNetworkAclAssociationRequest"}, + "output":{"shape":"ReplaceNetworkAclAssociationResult"} + }, + "ReplaceNetworkAclEntry":{ + "name":"ReplaceNetworkAclEntry", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ReplaceNetworkAclEntryRequest"} + }, + "ReplaceRoute":{ + "name":"ReplaceRoute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ReplaceRouteRequest"} + }, + "ReplaceRouteTableAssociation":{ + "name":"ReplaceRouteTableAssociation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ReplaceRouteTableAssociationRequest"}, + "output":{"shape":"ReplaceRouteTableAssociationResult"} + }, + "ReportInstanceStatus":{ + "name":"ReportInstanceStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ReportInstanceStatusRequest"} + }, + "RequestSpotFleet":{ + "name":"RequestSpotFleet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RequestSpotFleetRequest"}, + "output":{"shape":"RequestSpotFleetResponse"} + }, + "RequestSpotInstances":{ + "name":"RequestSpotInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RequestSpotInstancesRequest"}, + "output":{"shape":"RequestSpotInstancesResult"} + }, + "ResetImageAttribute":{ + "name":"ResetImageAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ResetImageAttributeRequest"} + }, + "ResetInstanceAttribute":{ + "name":"ResetInstanceAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ResetInstanceAttributeRequest"} + }, + "ResetNetworkInterfaceAttribute":{ + "name":"ResetNetworkInterfaceAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ResetNetworkInterfaceAttributeRequest"} + }, + "ResetSnapshotAttribute":{ + "name":"ResetSnapshotAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ResetSnapshotAttributeRequest"} + }, + "RestoreAddressToClassic":{ + "name":"RestoreAddressToClassic", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RestoreAddressToClassicRequest"}, + "output":{"shape":"RestoreAddressToClassicResult"} + }, + "RevokeSecurityGroupEgress":{ + "name":"RevokeSecurityGroupEgress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RevokeSecurityGroupEgressRequest"} + }, + "RevokeSecurityGroupIngress":{ + "name":"RevokeSecurityGroupIngress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RevokeSecurityGroupIngressRequest"} + }, + "RunInstances":{ + "name":"RunInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RunInstancesRequest"}, + "output":{ + "shape":"Reservation", + "locationName":"reservation" + } + }, + "StartInstances":{ + "name":"StartInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartInstancesRequest"}, + "output":{"shape":"StartInstancesResult"} + }, + "StopInstances":{ + "name":"StopInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopInstancesRequest"}, + "output":{"shape":"StopInstancesResult"} + }, + "TerminateInstances":{ + "name":"TerminateInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TerminateInstancesRequest"}, + "output":{"shape":"TerminateInstancesResult"} + }, + "UnassignPrivateIpAddresses":{ + "name":"UnassignPrivateIpAddresses", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UnassignPrivateIpAddressesRequest"} + }, + "UnmonitorInstances":{ + "name":"UnmonitorInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UnmonitorInstancesRequest"}, + "output":{"shape":"UnmonitorInstancesResult"} + } + }, + "shapes":{ + "AcceptVpcPeeringConnectionRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcPeeringConnectionId":{ + "shape":"String", + "locationName":"vpcPeeringConnectionId" + } + } + }, + "AcceptVpcPeeringConnectionResult":{ + "type":"structure", + "members":{ + "VpcPeeringConnection":{ + "shape":"VpcPeeringConnection", + "locationName":"vpcPeeringConnection" + } + } + }, + "AccountAttribute":{ + "type":"structure", + "members":{ + "AttributeName":{ + "shape":"String", + "locationName":"attributeName" + }, + "AttributeValues":{ + "shape":"AccountAttributeValueList", + "locationName":"attributeValueSet" + } + } + }, + "AccountAttributeList":{ + "type":"list", + "member":{ + "shape":"AccountAttribute", + "locationName":"item" + } + }, + "AccountAttributeName":{ + "type":"string", + "enum":[ + "supported-platforms", + "default-vpc" + ] + }, + "AccountAttributeNameStringList":{ + "type":"list", + "member":{ + "shape":"AccountAttributeName", + "locationName":"attributeName" + } + }, + "AccountAttributeValue":{ + "type":"structure", + "members":{ + "AttributeValue":{ + "shape":"String", + "locationName":"attributeValue" + } + } + }, + "AccountAttributeValueList":{ + "type":"list", + "member":{ + "shape":"AccountAttributeValue", + "locationName":"item" + } + }, + "ActiveInstance":{ + "type":"structure", + "members":{ + "InstanceType":{ + "shape":"String", + "locationName":"instanceType" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "SpotInstanceRequestId":{ + "shape":"String", + "locationName":"spotInstanceRequestId" + } + } + }, + "ActiveInstanceSet":{ + "type":"list", + "member":{ + "shape":"ActiveInstance", + "locationName":"item" + } + }, + "Address":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "PublicIp":{ + "shape":"String", + "locationName":"publicIp" + }, + "AllocationId":{ + "shape":"String", + "locationName":"allocationId" + }, + "AssociationId":{ + "shape":"String", + "locationName":"associationId" + }, + "Domain":{ + "shape":"DomainType", + "locationName":"domain" + }, + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "NetworkInterfaceOwnerId":{ + "shape":"String", + "locationName":"networkInterfaceOwnerId" + }, + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + } + } + }, + "AddressList":{ + "type":"list", + "member":{ + "shape":"Address", + "locationName":"item" + } + }, + "AllocateAddressRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "Domain":{"shape":"DomainType"} + } + }, + "AllocateAddressResult":{ + "type":"structure", + "members":{ + "PublicIp":{ + "shape":"String", + "locationName":"publicIp" + }, + "Domain":{ + "shape":"DomainType", + "locationName":"domain" + }, + "AllocationId":{ + "shape":"String", + "locationName":"allocationId" + } + } + }, + "AllocationIdList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"AllocationId" + } + }, + "ArchitectureValues":{ + "type":"string", + "enum":[ + "i386", + "x86_64" + ] + }, + "AssignPrivateIpAddressesRequest":{ + "type":"structure", + "required":["NetworkInterfaceId"], + "members":{ + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "PrivateIpAddresses":{ + "shape":"PrivateIpAddressStringList", + "locationName":"privateIpAddress" + }, + "SecondaryPrivateIpAddressCount":{ + "shape":"Integer", + "locationName":"secondaryPrivateIpAddressCount" + }, + "AllowReassignment":{ + "shape":"Boolean", + "locationName":"allowReassignment" + } + } + }, + "AssociateAddressRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceId":{"shape":"String"}, + "PublicIp":{"shape":"String"}, + "AllocationId":{"shape":"String"}, + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + }, + "AllowReassociation":{ + "shape":"Boolean", + "locationName":"allowReassociation" + } + } + }, + "AssociateAddressResult":{ + "type":"structure", + "members":{ + "AssociationId":{ + "shape":"String", + "locationName":"associationId" + } + } + }, + "AssociateDhcpOptionsRequest":{ + "type":"structure", + "required":[ + "DhcpOptionsId", + "VpcId" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "DhcpOptionsId":{"shape":"String"}, + "VpcId":{"shape":"String"} + } + }, + "AssociateRouteTableRequest":{ + "type":"structure", + "required":[ + "SubnetId", + "RouteTableId" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "RouteTableId":{ + "shape":"String", + "locationName":"routeTableId" + } + } + }, + "AssociateRouteTableResult":{ + "type":"structure", + "members":{ + "AssociationId":{ + "shape":"String", + "locationName":"associationId" + } + } + }, + "AttachClassicLinkVpcRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "VpcId", + "Groups" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "Groups":{ + "shape":"GroupIdStringList", + "locationName":"SecurityGroupId" + } + } + }, + "AttachClassicLinkVpcResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, + "AttachInternetGatewayRequest":{ + "type":"structure", + "required":[ + "InternetGatewayId", + "VpcId" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InternetGatewayId":{ + "shape":"String", + "locationName":"internetGatewayId" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + } + } + }, + "AttachNetworkInterfaceRequest":{ + "type":"structure", + "required":[ + "NetworkInterfaceId", + "InstanceId", + "DeviceIndex" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "DeviceIndex":{ + "shape":"Integer", + "locationName":"deviceIndex" + } + } + }, + "AttachNetworkInterfaceResult":{ + "type":"structure", + "members":{ + "AttachmentId":{ + "shape":"String", + "locationName":"attachmentId" + } + } + }, + "AttachVolumeRequest":{ + "type":"structure", + "required":[ + "VolumeId", + "InstanceId", + "Device" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VolumeId":{"shape":"String"}, + "InstanceId":{"shape":"String"}, + "Device":{"shape":"String"} + } + }, + "AttachVpnGatewayRequest":{ + "type":"structure", + "required":[ + "VpnGatewayId", + "VpcId" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpnGatewayId":{"shape":"String"}, + "VpcId":{"shape":"String"} + } + }, + "AttachVpnGatewayResult":{ + "type":"structure", + "members":{ + "VpcAttachment":{ + "shape":"VpcAttachment", + "locationName":"attachment" + } + } + }, + "AttachmentStatus":{ + "type":"string", + "enum":[ + "attaching", + "attached", + "detaching", + "detached" + ] + }, + "AttributeBooleanValue":{ + "type":"structure", + "members":{ + "Value":{ + "shape":"Boolean", + "locationName":"value" + } + } + }, + "AttributeValue":{ + "type":"structure", + "members":{ + "Value":{ + "shape":"String", + "locationName":"value" + } + } + }, + "AuthorizeSecurityGroupEgressRequest":{ + "type":"structure", + "required":["GroupId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "GroupId":{ + "shape":"String", + "locationName":"groupId" + }, + "SourceSecurityGroupName":{ + "shape":"String", + "locationName":"sourceSecurityGroupName" + }, + "SourceSecurityGroupOwnerId":{ + "shape":"String", + "locationName":"sourceSecurityGroupOwnerId" + }, + "IpProtocol":{ + "shape":"String", + "locationName":"ipProtocol" + }, + "FromPort":{ + "shape":"Integer", + "locationName":"fromPort" + }, + "ToPort":{ + "shape":"Integer", + "locationName":"toPort" + }, + "CidrIp":{ + "shape":"String", + "locationName":"cidrIp" + }, + "IpPermissions":{ + "shape":"IpPermissionList", + "locationName":"ipPermissions" + } + } + }, + "AuthorizeSecurityGroupIngressRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "GroupName":{"shape":"String"}, + "GroupId":{"shape":"String"}, + "SourceSecurityGroupName":{"shape":"String"}, + "SourceSecurityGroupOwnerId":{"shape":"String"}, + "IpProtocol":{"shape":"String"}, + "FromPort":{"shape":"Integer"}, + "ToPort":{"shape":"Integer"}, + "CidrIp":{"shape":"String"}, + "IpPermissions":{"shape":"IpPermissionList"} + } + }, + "AvailabilityZone":{ + "type":"structure", + "members":{ + "ZoneName":{ + "shape":"String", + "locationName":"zoneName" + }, + "State":{ + "shape":"AvailabilityZoneState", + "locationName":"zoneState" + }, + "RegionName":{ + "shape":"String", + "locationName":"regionName" + }, + "Messages":{ + "shape":"AvailabilityZoneMessageList", + "locationName":"messageSet" + } + } + }, + "AvailabilityZoneList":{ + "type":"list", + "member":{ + "shape":"AvailabilityZone", + "locationName":"item" + } + }, + "AvailabilityZoneMessage":{ + "type":"structure", + "members":{ + "Message":{ + "shape":"String", + "locationName":"message" + } + } + }, + "AvailabilityZoneMessageList":{ + "type":"list", + "member":{ + "shape":"AvailabilityZoneMessage", + "locationName":"item" + } + }, + "AvailabilityZoneState":{ + "type":"string", + "enum":["available"] + }, + "BatchState":{ + "type":"string", + "enum":[ + "submitted", + "active", + "cancelled", + "failed", + "cancelled_running", + "cancelled_terminating" + ] + }, + "BlockDeviceMapping":{ + "type":"structure", + "members":{ + "VirtualName":{ + "shape":"String", + "locationName":"virtualName" + }, + "DeviceName":{ + "shape":"String", + "locationName":"deviceName" + }, + "Ebs":{ + "shape":"EbsBlockDevice", + "locationName":"ebs" + }, + "NoDevice":{ + "shape":"String", + "locationName":"noDevice" + } + } + }, + "BlockDeviceMappingList":{ + "type":"list", + "member":{ + "shape":"BlockDeviceMapping", + "locationName":"item" + } + }, + "BlockDeviceMappingRequestList":{ + "type":"list", + "member":{ + "shape":"BlockDeviceMapping", + "locationName":"BlockDeviceMapping" + } + }, + "Boolean":{"type":"boolean"}, + "BundleIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"BundleId" + } + }, + "BundleInstanceRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "Storage" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceId":{"shape":"String"}, + "Storage":{"shape":"Storage"} + } + }, + "BundleInstanceResult":{ + "type":"structure", + "members":{ + "BundleTask":{ + "shape":"BundleTask", + "locationName":"bundleInstanceTask" + } + } + }, + "BundleTask":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "BundleId":{ + "shape":"String", + "locationName":"bundleId" + }, + "State":{ + "shape":"BundleTaskState", + "locationName":"state" + }, + "StartTime":{ + "shape":"DateTime", + "locationName":"startTime" + }, + "UpdateTime":{ + "shape":"DateTime", + "locationName":"updateTime" + }, + "Storage":{ + "shape":"Storage", + "locationName":"storage" + }, + "Progress":{ + "shape":"String", + "locationName":"progress" + }, + "BundleTaskError":{ + "shape":"BundleTaskError", + "locationName":"error" + } + } + }, + "BundleTaskError":{ + "type":"structure", + "members":{ + "Code":{ + "shape":"String", + "locationName":"code" + }, + "Message":{ + "shape":"String", + "locationName":"message" + } + } + }, + "BundleTaskList":{ + "type":"list", + "member":{ + "shape":"BundleTask", + "locationName":"item" + } + }, + "BundleTaskState":{ + "type":"string", + "enum":[ + "pending", + "waiting-for-shutdown", + "bundling", + "storing", + "cancelling", + "complete", + "failed" + ] + }, + "CancelBatchErrorCode":{ + "type":"string", + "enum":[ + "fleetRequestIdDoesNotExist", + "fleetRequestIdMalformed", + "fleetRequestNotInCancellableState", + "unexpectedError" + ] + }, + "CancelBundleTaskRequest":{ + "type":"structure", + "required":["BundleId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "BundleId":{"shape":"String"} + } + }, + "CancelBundleTaskResult":{ + "type":"structure", + "members":{ + "BundleTask":{ + "shape":"BundleTask", + "locationName":"bundleInstanceTask" + } + } + }, + "CancelConversionRequest":{ + "type":"structure", + "required":["ConversionTaskId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ConversionTaskId":{ + "shape":"String", + "locationName":"conversionTaskId" + }, + "ReasonMessage":{ + "shape":"String", + "locationName":"reasonMessage" + } + } + }, + "CancelExportTaskRequest":{ + "type":"structure", + "required":["ExportTaskId"], + "members":{ + "ExportTaskId":{ + "shape":"String", + "locationName":"exportTaskId" + } + } + }, + "CancelImportTaskRequest":{ + "type":"structure", + "members":{ + "DryRun":{"shape":"Boolean"}, + "ImportTaskId":{"shape":"String"}, + "CancelReason":{"shape":"String"} + } + }, + "CancelImportTaskResult":{ + "type":"structure", + "members":{ + "ImportTaskId":{ + "shape":"String", + "locationName":"importTaskId" + }, + "State":{ + "shape":"String", + "locationName":"state" + }, + "PreviousState":{ + "shape":"String", + "locationName":"previousState" + } + } + }, + "CancelReservedInstancesListingRequest":{ + "type":"structure", + "required":["ReservedInstancesListingId"], + "members":{ + "ReservedInstancesListingId":{ + "shape":"String", + "locationName":"reservedInstancesListingId" + } + } + }, + "CancelReservedInstancesListingResult":{ + "type":"structure", + "members":{ + "ReservedInstancesListings":{ + "shape":"ReservedInstancesListingList", + "locationName":"reservedInstancesListingsSet" + } + } + }, + "CancelSpotFleetRequestsError":{ + "type":"structure", + "required":[ + "Code", + "Message" + ], + "members":{ + "Code":{ + "shape":"CancelBatchErrorCode", + "locationName":"code" + }, + "Message":{ + "shape":"String", + "locationName":"message" + } + } + }, + "CancelSpotFleetRequestsErrorItem":{ + "type":"structure", + "required":[ + "SpotFleetRequestId", + "Error" + ], + "members":{ + "SpotFleetRequestId":{ + "shape":"String", + "locationName":"spotFleetRequestId" + }, + "Error":{ + "shape":"CancelSpotFleetRequestsError", + "locationName":"error" + } + } + }, + "CancelSpotFleetRequestsErrorSet":{ + "type":"list", + "member":{ + "shape":"CancelSpotFleetRequestsErrorItem", + "locationName":"item" + } + }, + "CancelSpotFleetRequestsRequest":{ + "type":"structure", + "required":[ + "SpotFleetRequestIds", + "TerminateInstances" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SpotFleetRequestIds":{ + "shape":"ValueStringList", + "locationName":"spotFleetRequestId" + }, + "TerminateInstances":{ + "shape":"Boolean", + "locationName":"terminateInstances" + } + } + }, + "CancelSpotFleetRequestsResponse":{ + "type":"structure", + "members":{ + "UnsuccessfulFleetRequests":{ + "shape":"CancelSpotFleetRequestsErrorSet", + "locationName":"unsuccessfulFleetRequestSet" + }, + "SuccessfulFleetRequests":{ + "shape":"CancelSpotFleetRequestsSuccessSet", + "locationName":"successfulFleetRequestSet" + } + } + }, + "CancelSpotFleetRequestsSuccessItem":{ + "type":"structure", + "required":[ + "SpotFleetRequestId", + "CurrentSpotFleetRequestState", + "PreviousSpotFleetRequestState" + ], + "members":{ + "SpotFleetRequestId":{ + "shape":"String", + "locationName":"spotFleetRequestId" + }, + "CurrentSpotFleetRequestState":{ + "shape":"BatchState", + "locationName":"currentSpotFleetRequestState" + }, + "PreviousSpotFleetRequestState":{ + "shape":"BatchState", + "locationName":"previousSpotFleetRequestState" + } + } + }, + "CancelSpotFleetRequestsSuccessSet":{ + "type":"list", + "member":{ + "shape":"CancelSpotFleetRequestsSuccessItem", + "locationName":"item" + } + }, + "CancelSpotInstanceRequestState":{ + "type":"string", + "enum":[ + "active", + "open", + "closed", + "cancelled", + "completed" + ] + }, + "CancelSpotInstanceRequestsRequest":{ + "type":"structure", + "required":["SpotInstanceRequestIds"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SpotInstanceRequestIds":{ + "shape":"SpotInstanceRequestIdList", + "locationName":"SpotInstanceRequestId" + } + } + }, + "CancelSpotInstanceRequestsResult":{ + "type":"structure", + "members":{ + "CancelledSpotInstanceRequests":{ + "shape":"CancelledSpotInstanceRequestList", + "locationName":"spotInstanceRequestSet" + } + } + }, + "CancelledSpotInstanceRequest":{ + "type":"structure", + "members":{ + "SpotInstanceRequestId":{ + "shape":"String", + "locationName":"spotInstanceRequestId" + }, + "State":{ + "shape":"CancelSpotInstanceRequestState", + "locationName":"state" + } + } + }, + "CancelledSpotInstanceRequestList":{ + "type":"list", + "member":{ + "shape":"CancelledSpotInstanceRequest", + "locationName":"item" + } + }, + "ClassicLinkInstance":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "Groups":{ + "shape":"GroupIdentifierList", + "locationName":"groupSet" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + } + } + }, + "ClassicLinkInstanceList":{ + "type":"list", + "member":{ + "shape":"ClassicLinkInstance", + "locationName":"item" + } + }, + "ClientData":{ + "type":"structure", + "members":{ + "UploadStart":{"shape":"DateTime"}, + "UploadEnd":{"shape":"DateTime"}, + "UploadSize":{"shape":"Double"}, + "Comment":{"shape":"String"} + } + }, + "ConfirmProductInstanceRequest":{ + "type":"structure", + "required":[ + "ProductCode", + "InstanceId" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ProductCode":{"shape":"String"}, + "InstanceId":{"shape":"String"} + } + }, + "ConfirmProductInstanceResult":{ + "type":"structure", + "members":{ + "OwnerId":{ + "shape":"String", + "locationName":"ownerId" + } + } + }, + "ContainerFormat":{ + "type":"string", + "enum":["ova"] + }, + "ConversionIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"item" + } + }, + "ConversionTask":{ + "type":"structure", + "required":[ + "ConversionTaskId", + "State" + ], + "members":{ + "ConversionTaskId":{ + "shape":"String", + "locationName":"conversionTaskId" + }, + "ExpirationTime":{ + "shape":"String", + "locationName":"expirationTime" + }, + "ImportInstance":{ + "shape":"ImportInstanceTaskDetails", + "locationName":"importInstance" + }, + "ImportVolume":{ + "shape":"ImportVolumeTaskDetails", + "locationName":"importVolume" + }, + "State":{ + "shape":"ConversionTaskState", + "locationName":"state" + }, + "StatusMessage":{ + "shape":"String", + "locationName":"statusMessage" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + } + } + }, + "ConversionTaskState":{ + "type":"string", + "enum":[ + "active", + "cancelling", + "cancelled", + "completed" + ] + }, + "CopyImageRequest":{ + "type":"structure", + "required":[ + "SourceRegion", + "SourceImageId", + "Name" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SourceRegion":{"shape":"String"}, + "SourceImageId":{"shape":"String"}, + "Name":{"shape":"String"}, + "Description":{"shape":"String"}, + "ClientToken":{"shape":"String"} + } + }, + "CopyImageResult":{ + "type":"structure", + "members":{ + "ImageId":{ + "shape":"String", + "locationName":"imageId" + } + } + }, + "CopySnapshotRequest":{ + "type":"structure", + "required":[ + "SourceRegion", + "SourceSnapshotId" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SourceRegion":{"shape":"String"}, + "SourceSnapshotId":{"shape":"String"}, + "Description":{"shape":"String"}, + "DestinationRegion":{ + "shape":"String", + "locationName":"destinationRegion" + }, + "PresignedUrl":{ + "shape":"String", + "locationName":"presignedUrl" + } + } + }, + "CopySnapshotResult":{ + "type":"structure", + "members":{ + "SnapshotId":{ + "shape":"String", + "locationName":"snapshotId" + } + } + }, + "CreateCustomerGatewayRequest":{ + "type":"structure", + "required":[ + "Type", + "PublicIp", + "BgpAsn" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "Type":{"shape":"GatewayType"}, + "PublicIp":{ + "shape":"String", + "locationName":"IpAddress" + }, + "BgpAsn":{"shape":"Integer"} + } + }, + "CreateCustomerGatewayResult":{ + "type":"structure", + "members":{ + "CustomerGateway":{ + "shape":"CustomerGateway", + "locationName":"customerGateway" + } + } + }, + "CreateDhcpOptionsRequest":{ + "type":"structure", + "required":["DhcpConfigurations"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "DhcpConfigurations":{ + "shape":"NewDhcpConfigurationList", + "locationName":"dhcpConfiguration" + } + } + }, + "CreateDhcpOptionsResult":{ + "type":"structure", + "members":{ + "DhcpOptions":{ + "shape":"DhcpOptions", + "locationName":"dhcpOptions" + } + } + }, + "CreateFlowLogsRequest":{ + "type":"structure", + "required":[ + "ResourceIds", + "ResourceType", + "TrafficType", + "LogGroupName", + "DeliverLogsPermissionArn" + ], + "members":{ + "ResourceIds":{ + "shape":"ValueStringList", + "locationName":"ResourceId" + }, + "ResourceType":{"shape":"FlowLogsResourceType"}, + "TrafficType":{"shape":"TrafficType"}, + "LogGroupName":{"shape":"String"}, + "DeliverLogsPermissionArn":{"shape":"String"}, + "ClientToken":{"shape":"String"} + } + }, + "CreateFlowLogsResult":{ + "type":"structure", + "members":{ + "FlowLogIds":{ + "shape":"ValueStringList", + "locationName":"flowLogIdSet" + }, + "ClientToken":{ + "shape":"String", + "locationName":"clientToken" + }, + "Unsuccessful":{ + "shape":"UnsuccessfulItemSet", + "locationName":"unsuccessful" + } + } + }, + "CreateImageRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "Name" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "Name":{ + "shape":"String", + "locationName":"name" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "NoReboot":{ + "shape":"Boolean", + "locationName":"noReboot" + }, + "BlockDeviceMappings":{ + "shape":"BlockDeviceMappingRequestList", + "locationName":"blockDeviceMapping" + } + } + }, + "CreateImageResult":{ + "type":"structure", + "members":{ + "ImageId":{ + "shape":"String", + "locationName":"imageId" + } + } + }, + "CreateInstanceExportTaskRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "Description":{ + "shape":"String", + "locationName":"description" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "TargetEnvironment":{ + "shape":"ExportEnvironment", + "locationName":"targetEnvironment" + }, + "ExportToS3Task":{ + "shape":"ExportToS3TaskSpecification", + "locationName":"exportToS3" + } + } + }, + "CreateInstanceExportTaskResult":{ + "type":"structure", + "members":{ + "ExportTask":{ + "shape":"ExportTask", + "locationName":"exportTask" + } + } + }, + "CreateInternetGatewayRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + } + } + }, + "CreateInternetGatewayResult":{ + "type":"structure", + "members":{ + "InternetGateway":{ + "shape":"InternetGateway", + "locationName":"internetGateway" + } + } + }, + "CreateKeyPairRequest":{ + "type":"structure", + "required":["KeyName"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "KeyName":{"shape":"String"} + } + }, + "CreateNetworkAclEntryRequest":{ + "type":"structure", + "required":[ + "NetworkAclId", + "RuleNumber", + "Protocol", + "RuleAction", + "Egress", + "CidrBlock" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "NetworkAclId":{ + "shape":"String", + "locationName":"networkAclId" + }, + "RuleNumber":{ + "shape":"Integer", + "locationName":"ruleNumber" + }, + "Protocol":{ + "shape":"String", + "locationName":"protocol" + }, + "RuleAction":{ + "shape":"RuleAction", + "locationName":"ruleAction" + }, + "Egress":{ + "shape":"Boolean", + "locationName":"egress" + }, + "CidrBlock":{ + "shape":"String", + "locationName":"cidrBlock" + }, + "IcmpTypeCode":{ + "shape":"IcmpTypeCode", + "locationName":"Icmp" + }, + "PortRange":{ + "shape":"PortRange", + "locationName":"portRange" + } + } + }, + "CreateNetworkAclRequest":{ + "type":"structure", + "required":["VpcId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + } + } + }, + "CreateNetworkAclResult":{ + "type":"structure", + "members":{ + "NetworkAcl":{ + "shape":"NetworkAcl", + "locationName":"networkAcl" + } + } + }, + "CreateNetworkInterfaceRequest":{ + "type":"structure", + "required":["SubnetId"], + "members":{ + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + }, + "Groups":{ + "shape":"SecurityGroupIdStringList", + "locationName":"SecurityGroupId" + }, + "PrivateIpAddresses":{ + "shape":"PrivateIpAddressSpecificationList", + "locationName":"privateIpAddresses" + }, + "SecondaryPrivateIpAddressCount":{ + "shape":"Integer", + "locationName":"secondaryPrivateIpAddressCount" + }, + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + } + } + }, + "CreateNetworkInterfaceResult":{ + "type":"structure", + "members":{ + "NetworkInterface":{ + "shape":"NetworkInterface", + "locationName":"networkInterface" + } + } + }, + "CreatePlacementGroupRequest":{ + "type":"structure", + "required":[ + "GroupName", + "Strategy" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "GroupName":{ + "shape":"String", + "locationName":"groupName" + }, + "Strategy":{ + "shape":"PlacementStrategy", + "locationName":"strategy" + } + } + }, + "CreateReservedInstancesListingRequest":{ + "type":"structure", + "required":[ + "ReservedInstancesId", + "InstanceCount", + "PriceSchedules", + "ClientToken" + ], + "members":{ + "ReservedInstancesId":{ + "shape":"String", + "locationName":"reservedInstancesId" + }, + "InstanceCount":{ + "shape":"Integer", + "locationName":"instanceCount" + }, + "PriceSchedules":{ + "shape":"PriceScheduleSpecificationList", + "locationName":"priceSchedules" + }, + "ClientToken":{ + "shape":"String", + "locationName":"clientToken" + } + } + }, + "CreateReservedInstancesListingResult":{ + "type":"structure", + "members":{ + "ReservedInstancesListings":{ + "shape":"ReservedInstancesListingList", + "locationName":"reservedInstancesListingsSet" + } + } + }, + "CreateRouteRequest":{ + "type":"structure", + "required":[ + "RouteTableId", + "DestinationCidrBlock" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "RouteTableId":{ + "shape":"String", + "locationName":"routeTableId" + }, + "DestinationCidrBlock":{ + "shape":"String", + "locationName":"destinationCidrBlock" + }, + "GatewayId":{ + "shape":"String", + "locationName":"gatewayId" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "VpcPeeringConnectionId":{ + "shape":"String", + "locationName":"vpcPeeringConnectionId" + }, + "ClientToken":{ + "shape":"String", + "locationName":"clientToken" + } + } + }, + "CreateRouteResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "locationName":"return" + }, + "ClientToken":{ + "shape":"String", + "locationName":"clientToken" + } + } + }, + "CreateRouteTableRequest":{ + "type":"structure", + "required":["VpcId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + } + } + }, + "CreateRouteTableResult":{ + "type":"structure", + "members":{ + "RouteTable":{ + "shape":"RouteTable", + "locationName":"routeTable" + } + } + }, + "CreateSecurityGroupRequest":{ + "type":"structure", + "required":[ + "GroupName", + "Description" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "GroupName":{"shape":"String"}, + "Description":{ + "shape":"String", + "locationName":"GroupDescription" + }, + "VpcId":{"shape":"String"} + } + }, + "CreateSecurityGroupResult":{ + "type":"structure", + "members":{ + "GroupId":{ + "shape":"String", + "locationName":"groupId" + } + } + }, + "CreateSnapshotRequest":{ + "type":"structure", + "required":["VolumeId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VolumeId":{"shape":"String"}, + "Description":{"shape":"String"} + } + }, + "CreateSpotDatafeedSubscriptionRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "Bucket":{ + "shape":"String", + "locationName":"bucket" + }, + "Prefix":{ + "shape":"String", + "locationName":"prefix" + } + } + }, + "CreateSpotDatafeedSubscriptionResult":{ + "type":"structure", + "members":{ + "SpotDatafeedSubscription":{ + "shape":"SpotDatafeedSubscription", + "locationName":"spotDatafeedSubscription" + } + } + }, + "CreateSubnetRequest":{ + "type":"structure", + "required":[ + "VpcId", + "CidrBlock" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcId":{"shape":"String"}, + "CidrBlock":{"shape":"String"}, + "AvailabilityZone":{"shape":"String"} + } + }, + "CreateSubnetResult":{ + "type":"structure", + "members":{ + "Subnet":{ + "shape":"Subnet", + "locationName":"subnet" + } + } + }, + "CreateTagsRequest":{ + "type":"structure", + "required":[ + "Resources", + "Tags" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "Resources":{ + "shape":"ResourceIdList", + "locationName":"ResourceId" + }, + "Tags":{ + "shape":"TagList", + "locationName":"Tag" + } + } + }, + "CreateVolumePermission":{ + "type":"structure", + "members":{ + "UserId":{ + "shape":"String", + "locationName":"userId" + }, + "Group":{ + "shape":"PermissionGroup", + "locationName":"group" + } + } + }, + "CreateVolumePermissionList":{ + "type":"list", + "member":{ + "shape":"CreateVolumePermission", + "locationName":"item" + } + }, + "CreateVolumePermissionModifications":{ + "type":"structure", + "members":{ + "Add":{"shape":"CreateVolumePermissionList"}, + "Remove":{"shape":"CreateVolumePermissionList"} + } + }, + "CreateVolumeRequest":{ + "type":"structure", + "required":["AvailabilityZone"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "Size":{"shape":"Integer"}, + "SnapshotId":{"shape":"String"}, + "AvailabilityZone":{"shape":"String"}, + "VolumeType":{"shape":"VolumeType"}, + "Iops":{"shape":"Integer"}, + "Encrypted":{ + "shape":"Boolean", + "locationName":"encrypted" + }, + "KmsKeyId":{"shape":"String"} + } + }, + "CreateVpcEndpointRequest":{ + "type":"structure", + "required":[ + "VpcId", + "ServiceName" + ], + "members":{ + "DryRun":{"shape":"Boolean"}, + "VpcId":{"shape":"String"}, + "ServiceName":{"shape":"String"}, + "PolicyDocument":{"shape":"String"}, + "RouteTableIds":{ + "shape":"ValueStringList", + "locationName":"RouteTableId" + }, + "ClientToken":{"shape":"String"} + } + }, + "CreateVpcEndpointResult":{ + "type":"structure", + "members":{ + "VpcEndpoint":{ + "shape":"VpcEndpoint", + "locationName":"vpcEndpoint" + }, + "ClientToken":{ + "shape":"String", + "locationName":"clientToken" + } + } + }, + "CreateVpcPeeringConnectionRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "PeerVpcId":{ + "shape":"String", + "locationName":"peerVpcId" + }, + "PeerOwnerId":{ + "shape":"String", + "locationName":"peerOwnerId" + } + } + }, + "CreateVpcPeeringConnectionResult":{ + "type":"structure", + "members":{ + "VpcPeeringConnection":{ + "shape":"VpcPeeringConnection", + "locationName":"vpcPeeringConnection" + } + } + }, + "CreateVpcRequest":{ + "type":"structure", + "required":["CidrBlock"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "CidrBlock":{"shape":"String"}, + "InstanceTenancy":{ + "shape":"Tenancy", + "locationName":"instanceTenancy" + } + } + }, + "CreateVpcResult":{ + "type":"structure", + "members":{ + "Vpc":{ + "shape":"Vpc", + "locationName":"vpc" + } + } + }, + "CreateVpnConnectionRequest":{ + "type":"structure", + "required":[ + "Type", + "CustomerGatewayId", + "VpnGatewayId" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "Type":{"shape":"String"}, + "CustomerGatewayId":{"shape":"String"}, + "VpnGatewayId":{"shape":"String"}, + "Options":{ + "shape":"VpnConnectionOptionsSpecification", + "locationName":"options" + } + } + }, + "CreateVpnConnectionResult":{ + "type":"structure", + "members":{ + "VpnConnection":{ + "shape":"VpnConnection", + "locationName":"vpnConnection" + } + } + }, + "CreateVpnConnectionRouteRequest":{ + "type":"structure", + "required":[ + "VpnConnectionId", + "DestinationCidrBlock" + ], + "members":{ + "VpnConnectionId":{"shape":"String"}, + "DestinationCidrBlock":{"shape":"String"} + } + }, + "CreateVpnGatewayRequest":{ + "type":"structure", + "required":["Type"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "Type":{"shape":"GatewayType"}, + "AvailabilityZone":{"shape":"String"} + } + }, + "CreateVpnGatewayResult":{ + "type":"structure", + "members":{ + "VpnGateway":{ + "shape":"VpnGateway", + "locationName":"vpnGateway" + } + } + }, + "CurrencyCodeValues":{ + "type":"string", + "enum":["USD"] + }, + "CustomerGateway":{ + "type":"structure", + "members":{ + "CustomerGatewayId":{ + "shape":"String", + "locationName":"customerGatewayId" + }, + "State":{ + "shape":"String", + "locationName":"state" + }, + "Type":{ + "shape":"String", + "locationName":"type" + }, + "IpAddress":{ + "shape":"String", + "locationName":"ipAddress" + }, + "BgpAsn":{ + "shape":"String", + "locationName":"bgpAsn" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + } + } + }, + "CustomerGatewayIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"CustomerGatewayId" + } + }, + "CustomerGatewayList":{ + "type":"list", + "member":{ + "shape":"CustomerGateway", + "locationName":"item" + } + }, + "DatafeedSubscriptionState":{ + "type":"string", + "enum":[ + "Active", + "Inactive" + ] + }, + "DateTime":{"type":"timestamp"}, + "DeleteCustomerGatewayRequest":{ + "type":"structure", + "required":["CustomerGatewayId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "CustomerGatewayId":{"shape":"String"} + } + }, + "DeleteDhcpOptionsRequest":{ + "type":"structure", + "required":["DhcpOptionsId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "DhcpOptionsId":{"shape":"String"} + } + }, + "DeleteFlowLogsRequest":{ + "type":"structure", + "required":["FlowLogIds"], + "members":{ + "FlowLogIds":{ + "shape":"ValueStringList", + "locationName":"FlowLogId" + } + } + }, + "DeleteFlowLogsResult":{ + "type":"structure", + "members":{ + "Unsuccessful":{ + "shape":"UnsuccessfulItemSet", + "locationName":"unsuccessful" + } + } + }, + "DeleteInternetGatewayRequest":{ + "type":"structure", + "required":["InternetGatewayId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InternetGatewayId":{ + "shape":"String", + "locationName":"internetGatewayId" + } + } + }, + "DeleteKeyPairRequest":{ + "type":"structure", + "required":["KeyName"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "KeyName":{"shape":"String"} + } + }, + "DeleteNetworkAclEntryRequest":{ + "type":"structure", + "required":[ + "NetworkAclId", + "RuleNumber", + "Egress" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "NetworkAclId":{ + "shape":"String", + "locationName":"networkAclId" + }, + "RuleNumber":{ + "shape":"Integer", + "locationName":"ruleNumber" + }, + "Egress":{ + "shape":"Boolean", + "locationName":"egress" + } + } + }, + "DeleteNetworkAclRequest":{ + "type":"structure", + "required":["NetworkAclId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "NetworkAclId":{ + "shape":"String", + "locationName":"networkAclId" + } + } + }, + "DeleteNetworkInterfaceRequest":{ + "type":"structure", + "required":["NetworkInterfaceId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + } + } + }, + "DeletePlacementGroupRequest":{ + "type":"structure", + "required":["GroupName"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "GroupName":{ + "shape":"String", + "locationName":"groupName" + } + } + }, + "DeleteRouteRequest":{ + "type":"structure", + "required":[ + "RouteTableId", + "DestinationCidrBlock" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "RouteTableId":{ + "shape":"String", + "locationName":"routeTableId" + }, + "DestinationCidrBlock":{ + "shape":"String", + "locationName":"destinationCidrBlock" + } + } + }, + "DeleteRouteTableRequest":{ + "type":"structure", + "required":["RouteTableId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "RouteTableId":{ + "shape":"String", + "locationName":"routeTableId" + } + } + }, + "DeleteSecurityGroupRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "GroupName":{"shape":"String"}, + "GroupId":{"shape":"String"} + } + }, + "DeleteSnapshotRequest":{ + "type":"structure", + "required":["SnapshotId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SnapshotId":{"shape":"String"} + } + }, + "DeleteSpotDatafeedSubscriptionRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + } + } + }, + "DeleteSubnetRequest":{ + "type":"structure", + "required":["SubnetId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SubnetId":{"shape":"String"} + } + }, + "DeleteTagsRequest":{ + "type":"structure", + "required":["Resources"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "Resources":{ + "shape":"ResourceIdList", + "locationName":"resourceId" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tag" + } + } + }, + "DeleteVolumeRequest":{ + "type":"structure", + "required":["VolumeId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VolumeId":{"shape":"String"} + } + }, + "DeleteVpcEndpointsRequest":{ + "type":"structure", + "required":["VpcEndpointIds"], + "members":{ + "DryRun":{"shape":"Boolean"}, + "VpcEndpointIds":{ + "shape":"ValueStringList", + "locationName":"VpcEndpointId" + } + } + }, + "DeleteVpcEndpointsResult":{ + "type":"structure", + "members":{ + "Unsuccessful":{ + "shape":"UnsuccessfulItemSet", + "locationName":"unsuccessful" + } + } + }, + "DeleteVpcPeeringConnectionRequest":{ + "type":"structure", + "required":["VpcPeeringConnectionId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcPeeringConnectionId":{ + "shape":"String", + "locationName":"vpcPeeringConnectionId" + } + } + }, + "DeleteVpcPeeringConnectionResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, + "DeleteVpcRequest":{ + "type":"structure", + "required":["VpcId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcId":{"shape":"String"} + } + }, + "DeleteVpnConnectionRequest":{ + "type":"structure", + "required":["VpnConnectionId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpnConnectionId":{"shape":"String"} + } + }, + "DeleteVpnConnectionRouteRequest":{ + "type":"structure", + "required":[ + "VpnConnectionId", + "DestinationCidrBlock" + ], + "members":{ + "VpnConnectionId":{"shape":"String"}, + "DestinationCidrBlock":{"shape":"String"} + } + }, + "DeleteVpnGatewayRequest":{ + "type":"structure", + "required":["VpnGatewayId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpnGatewayId":{"shape":"String"} + } + }, + "DeregisterImageRequest":{ + "type":"structure", + "required":["ImageId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ImageId":{"shape":"String"} + } + }, + "DescribeAccountAttributesRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "AttributeNames":{ + "shape":"AccountAttributeNameStringList", + "locationName":"attributeName" + } + } + }, + "DescribeAccountAttributesResult":{ + "type":"structure", + "members":{ + "AccountAttributes":{ + "shape":"AccountAttributeList", + "locationName":"accountAttributeSet" + } + } + }, + "DescribeAddressesRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "PublicIps":{ + "shape":"PublicIpStringList", + "locationName":"PublicIp" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "AllocationIds":{ + "shape":"AllocationIdList", + "locationName":"AllocationId" + } + } + }, + "DescribeAddressesResult":{ + "type":"structure", + "members":{ + "Addresses":{ + "shape":"AddressList", + "locationName":"addressesSet" + } + } + }, + "DescribeAvailabilityZonesRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ZoneNames":{ + "shape":"ZoneNameStringList", + "locationName":"ZoneName" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeAvailabilityZonesResult":{ + "type":"structure", + "members":{ + "AvailabilityZones":{ + "shape":"AvailabilityZoneList", + "locationName":"availabilityZoneInfo" + } + } + }, + "DescribeBundleTasksRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "BundleIds":{ + "shape":"BundleIdStringList", + "locationName":"BundleId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeBundleTasksResult":{ + "type":"structure", + "members":{ + "BundleTasks":{ + "shape":"BundleTaskList", + "locationName":"bundleInstanceTasksSet" + } + } + }, + "DescribeClassicLinkInstancesRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceIds":{ + "shape":"InstanceIdStringList", + "locationName":"InstanceId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"Integer", + "locationName":"maxResults" + } + } + }, + "DescribeClassicLinkInstancesResult":{ + "type":"structure", + "members":{ + "Instances":{ + "shape":"ClassicLinkInstanceList", + "locationName":"instancesSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeConversionTaskList":{ + "type":"list", + "member":{ + "shape":"ConversionTask", + "locationName":"item" + } + }, + "DescribeConversionTasksRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"filter" + }, + "ConversionTaskIds":{ + "shape":"ConversionIdStringList", + "locationName":"conversionTaskId" + } + } + }, + "DescribeConversionTasksResult":{ + "type":"structure", + "members":{ + "ConversionTasks":{ + "shape":"DescribeConversionTaskList", + "locationName":"conversionTasks" + } + } + }, + "DescribeCustomerGatewaysRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "CustomerGatewayIds":{ + "shape":"CustomerGatewayIdStringList", + "locationName":"CustomerGatewayId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeCustomerGatewaysResult":{ + "type":"structure", + "members":{ + "CustomerGateways":{ + "shape":"CustomerGatewayList", + "locationName":"customerGatewaySet" + } + } + }, + "DescribeDhcpOptionsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "DhcpOptionsIds":{ + "shape":"DhcpOptionsIdStringList", + "locationName":"DhcpOptionsId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeDhcpOptionsResult":{ + "type":"structure", + "members":{ + "DhcpOptions":{ + "shape":"DhcpOptionsList", + "locationName":"dhcpOptionsSet" + } + } + }, + "DescribeExportTasksRequest":{ + "type":"structure", + "members":{ + "ExportTaskIds":{ + "shape":"ExportTaskIdStringList", + "locationName":"exportTaskId" + } + } + }, + "DescribeExportTasksResult":{ + "type":"structure", + "members":{ + "ExportTasks":{ + "shape":"ExportTaskList", + "locationName":"exportTaskSet" + } + } + }, + "DescribeFlowLogsRequest":{ + "type":"structure", + "members":{ + "FlowLogIds":{ + "shape":"ValueStringList", + "locationName":"FlowLogId" + }, + "Filter":{"shape":"FilterList"}, + "NextToken":{"shape":"String"}, + "MaxResults":{"shape":"Integer"} + } + }, + "DescribeFlowLogsResult":{ + "type":"structure", + "members":{ + "FlowLogs":{ + "shape":"FlowLogSet", + "locationName":"flowLogSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeImageAttributeRequest":{ + "type":"structure", + "required":[ + "ImageId", + "Attribute" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ImageId":{"shape":"String"}, + "Attribute":{"shape":"ImageAttributeName"} + } + }, + "DescribeImagesRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ImageIds":{ + "shape":"ImageIdStringList", + "locationName":"ImageId" + }, + "Owners":{ + "shape":"OwnerStringList", + "locationName":"Owner" + }, + "ExecutableUsers":{ + "shape":"ExecutableByStringList", + "locationName":"ExecutableBy" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeImagesResult":{ + "type":"structure", + "members":{ + "Images":{ + "shape":"ImageList", + "locationName":"imagesSet" + } + } + }, + "DescribeImportImageTasksRequest":{ + "type":"structure", + "members":{ + "DryRun":{"shape":"Boolean"}, + "ImportTaskIds":{ + "shape":"ImportTaskIdList", + "locationName":"ImportTaskId" + }, + "NextToken":{"shape":"String"}, + "MaxResults":{"shape":"Integer"}, + "Filters":{"shape":"FilterList"} + } + }, + "DescribeImportImageTasksResult":{ + "type":"structure", + "members":{ + "ImportImageTasks":{ + "shape":"ImportImageTaskList", + "locationName":"importImageTaskSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeImportSnapshotTasksRequest":{ + "type":"structure", + "members":{ + "DryRun":{"shape":"Boolean"}, + "ImportTaskIds":{ + "shape":"ImportTaskIdList", + "locationName":"ImportTaskId" + }, + "NextToken":{"shape":"String"}, + "MaxResults":{"shape":"Integer"}, + "Filters":{"shape":"FilterList"} + } + }, + "DescribeImportSnapshotTasksResult":{ + "type":"structure", + "members":{ + "ImportSnapshotTasks":{ + "shape":"ImportSnapshotTaskList", + "locationName":"importSnapshotTaskSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeInstanceAttributeRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "Attribute" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "Attribute":{ + "shape":"InstanceAttributeName", + "locationName":"attribute" + } + } + }, + "DescribeInstanceStatusRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceIds":{ + "shape":"InstanceIdStringList", + "locationName":"InstanceId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "NextToken":{"shape":"String"}, + "MaxResults":{"shape":"Integer"}, + "IncludeAllInstances":{ + "shape":"Boolean", + "locationName":"includeAllInstances" + } + } + }, + "DescribeInstanceStatusResult":{ + "type":"structure", + "members":{ + "InstanceStatuses":{ + "shape":"InstanceStatusList", + "locationName":"instanceStatusSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeInstancesRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceIds":{ + "shape":"InstanceIdStringList", + "locationName":"InstanceId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"Integer", + "locationName":"maxResults" + } + } + }, + "DescribeInstancesResult":{ + "type":"structure", + "members":{ + "Reservations":{ + "shape":"ReservationList", + "locationName":"reservationSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeInternetGatewaysRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InternetGatewayIds":{ + "shape":"ValueStringList", + "locationName":"internetGatewayId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeInternetGatewaysResult":{ + "type":"structure", + "members":{ + "InternetGateways":{ + "shape":"InternetGatewayList", + "locationName":"internetGatewaySet" + } + } + }, + "DescribeKeyPairsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "KeyNames":{ + "shape":"KeyNameStringList", + "locationName":"KeyName" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeKeyPairsResult":{ + "type":"structure", + "members":{ + "KeyPairs":{ + "shape":"KeyPairList", + "locationName":"keySet" + } + } + }, + "DescribeMovingAddressesRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "PublicIps":{ + "shape":"ValueStringList", + "locationName":"publicIp" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"filter" + }, + "MaxResults":{ + "shape":"Integer", + "locationName":"maxResults" + } + } + }, + "DescribeMovingAddressesResult":{ + "type":"structure", + "members":{ + "MovingAddressStatuses":{ + "shape":"MovingAddressStatusSet", + "locationName":"movingAddressStatusSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeNetworkAclsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "NetworkAclIds":{ + "shape":"ValueStringList", + "locationName":"NetworkAclId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeNetworkAclsResult":{ + "type":"structure", + "members":{ + "NetworkAcls":{ + "shape":"NetworkAclList", + "locationName":"networkAclSet" + } + } + }, + "DescribeNetworkInterfaceAttributeRequest":{ + "type":"structure", + "required":["NetworkInterfaceId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "Attribute":{ + "shape":"NetworkInterfaceAttribute", + "locationName":"attribute" + } + } + }, + "DescribeNetworkInterfaceAttributeResult":{ + "type":"structure", + "members":{ + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "Description":{ + "shape":"AttributeValue", + "locationName":"description" + }, + "SourceDestCheck":{ + "shape":"AttributeBooleanValue", + "locationName":"sourceDestCheck" + }, + "Groups":{ + "shape":"GroupIdentifierList", + "locationName":"groupSet" + }, + "Attachment":{ + "shape":"NetworkInterfaceAttachment", + "locationName":"attachment" + } + } + }, + "DescribeNetworkInterfacesRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "NetworkInterfaceIds":{ + "shape":"NetworkInterfaceIdList", + "locationName":"NetworkInterfaceId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"filter" + } + } + }, + "DescribeNetworkInterfacesResult":{ + "type":"structure", + "members":{ + "NetworkInterfaces":{ + "shape":"NetworkInterfaceList", + "locationName":"networkInterfaceSet" + } + } + }, + "DescribePlacementGroupsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "GroupNames":{ + "shape":"PlacementGroupStringList", + "locationName":"groupName" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribePlacementGroupsResult":{ + "type":"structure", + "members":{ + "PlacementGroups":{ + "shape":"PlacementGroupList", + "locationName":"placementGroupSet" + } + } + }, + "DescribePrefixListsRequest":{ + "type":"structure", + "members":{ + "DryRun":{"shape":"Boolean"}, + "PrefixListIds":{ + "shape":"ValueStringList", + "locationName":"PrefixListId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "MaxResults":{"shape":"Integer"}, + "NextToken":{"shape":"String"} + } + }, + "DescribePrefixListsResult":{ + "type":"structure", + "members":{ + "PrefixLists":{ + "shape":"PrefixListSet", + "locationName":"prefixListSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeRegionsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "RegionNames":{ + "shape":"RegionNameStringList", + "locationName":"RegionName" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeRegionsResult":{ + "type":"structure", + "members":{ + "Regions":{ + "shape":"RegionList", + "locationName":"regionInfo" + } + } + }, + "DescribeReservedInstancesListingsRequest":{ + "type":"structure", + "members":{ + "ReservedInstancesId":{ + "shape":"String", + "locationName":"reservedInstancesId" + }, + "ReservedInstancesListingId":{ + "shape":"String", + "locationName":"reservedInstancesListingId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"filters" + } + } + }, + "DescribeReservedInstancesListingsResult":{ + "type":"structure", + "members":{ + "ReservedInstancesListings":{ + "shape":"ReservedInstancesListingList", + "locationName":"reservedInstancesListingsSet" + } + } + }, + "DescribeReservedInstancesModificationsRequest":{ + "type":"structure", + "members":{ + "ReservedInstancesModificationIds":{ + "shape":"ReservedInstancesModificationIdStringList", + "locationName":"ReservedInstancesModificationId" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeReservedInstancesModificationsResult":{ + "type":"structure", + "members":{ + "ReservedInstancesModifications":{ + "shape":"ReservedInstancesModificationList", + "locationName":"reservedInstancesModificationsSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeReservedInstancesOfferingsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ReservedInstancesOfferingIds":{ + "shape":"ReservedInstancesOfferingIdStringList", + "locationName":"ReservedInstancesOfferingId" + }, + "InstanceType":{"shape":"InstanceType"}, + "AvailabilityZone":{"shape":"String"}, + "ProductDescription":{"shape":"RIProductDescription"}, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "InstanceTenancy":{ + "shape":"Tenancy", + "locationName":"instanceTenancy" + }, + "OfferingType":{ + "shape":"OfferingTypeValues", + "locationName":"offeringType" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"Integer", + "locationName":"maxResults" + }, + "IncludeMarketplace":{"shape":"Boolean"}, + "MinDuration":{"shape":"Long"}, + "MaxDuration":{"shape":"Long"}, + "MaxInstanceCount":{"shape":"Integer"} + } + }, + "DescribeReservedInstancesOfferingsResult":{ + "type":"structure", + "members":{ + "ReservedInstancesOfferings":{ + "shape":"ReservedInstancesOfferingList", + "locationName":"reservedInstancesOfferingsSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeReservedInstancesRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ReservedInstancesIds":{ + "shape":"ReservedInstancesIdStringList", + "locationName":"ReservedInstancesId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "OfferingType":{ + "shape":"OfferingTypeValues", + "locationName":"offeringType" + } + } + }, + "DescribeReservedInstancesResult":{ + "type":"structure", + "members":{ + "ReservedInstances":{ + "shape":"ReservedInstancesList", + "locationName":"reservedInstancesSet" + } + } + }, + "DescribeRouteTablesRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "RouteTableIds":{ + "shape":"ValueStringList", + "locationName":"RouteTableId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeRouteTablesResult":{ + "type":"structure", + "members":{ + "RouteTables":{ + "shape":"RouteTableList", + "locationName":"routeTableSet" + } + } + }, + "DescribeSecurityGroupsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "GroupNames":{ + "shape":"GroupNameStringList", + "locationName":"GroupName" + }, + "GroupIds":{ + "shape":"GroupIdStringList", + "locationName":"GroupId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeSecurityGroupsResult":{ + "type":"structure", + "members":{ + "SecurityGroups":{ + "shape":"SecurityGroupList", + "locationName":"securityGroupInfo" + } + } + }, + "DescribeSnapshotAttributeRequest":{ + "type":"structure", + "required":[ + "SnapshotId", + "Attribute" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SnapshotId":{"shape":"String"}, + "Attribute":{"shape":"SnapshotAttributeName"} + } + }, + "DescribeSnapshotAttributeResult":{ + "type":"structure", + "members":{ + "SnapshotId":{ + "shape":"String", + "locationName":"snapshotId" + }, + "CreateVolumePermissions":{ + "shape":"CreateVolumePermissionList", + "locationName":"createVolumePermission" + }, + "ProductCodes":{ + "shape":"ProductCodeList", + "locationName":"productCodes" + } + } + }, + "DescribeSnapshotsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SnapshotIds":{ + "shape":"SnapshotIdStringList", + "locationName":"SnapshotId" + }, + "OwnerIds":{ + "shape":"OwnerStringList", + "locationName":"Owner" + }, + "RestorableByUserIds":{ + "shape":"RestorableByStringList", + "locationName":"RestorableBy" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "NextToken":{"shape":"String"}, + "MaxResults":{"shape":"Integer"} + } + }, + "DescribeSnapshotsResult":{ + "type":"structure", + "members":{ + "Snapshots":{ + "shape":"SnapshotList", + "locationName":"snapshotSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeSpotDatafeedSubscriptionRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + } + } + }, + "DescribeSpotDatafeedSubscriptionResult":{ + "type":"structure", + "members":{ + "SpotDatafeedSubscription":{ + "shape":"SpotDatafeedSubscription", + "locationName":"spotDatafeedSubscription" + } + } + }, + "DescribeSpotFleetInstancesRequest":{ + "type":"structure", + "required":["SpotFleetRequestId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SpotFleetRequestId":{ + "shape":"String", + "locationName":"spotFleetRequestId" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"Integer", + "locationName":"maxResults" + } + } + }, + "DescribeSpotFleetInstancesResponse":{ + "type":"structure", + "required":[ + "SpotFleetRequestId", + "ActiveInstances" + ], + "members":{ + "SpotFleetRequestId":{ + "shape":"String", + "locationName":"spotFleetRequestId" + }, + "ActiveInstances":{ + "shape":"ActiveInstanceSet", + "locationName":"activeInstanceSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeSpotFleetRequestHistoryRequest":{ + "type":"structure", + "required":[ + "SpotFleetRequestId", + "StartTime" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SpotFleetRequestId":{ + "shape":"String", + "locationName":"spotFleetRequestId" + }, + "EventType":{ + "shape":"EventType", + "locationName":"eventType" + }, + "StartTime":{ + "shape":"DateTime", + "locationName":"startTime" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"Integer", + "locationName":"maxResults" + } + } + }, + "DescribeSpotFleetRequestHistoryResponse":{ + "type":"structure", + "required":[ + "SpotFleetRequestId", + "StartTime", + "LastEvaluatedTime", + "HistoryRecords" + ], + "members":{ + "SpotFleetRequestId":{ + "shape":"String", + "locationName":"spotFleetRequestId" + }, + "StartTime":{ + "shape":"DateTime", + "locationName":"startTime" + }, + "LastEvaluatedTime":{ + "shape":"DateTime", + "locationName":"lastEvaluatedTime" + }, + "HistoryRecords":{ + "shape":"HistoryRecords", + "locationName":"historyRecordSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeSpotFleetRequestsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SpotFleetRequestIds":{ + "shape":"ValueStringList", + "locationName":"spotFleetRequestId" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"Integer", + "locationName":"maxResults" + } + } + }, + "DescribeSpotFleetRequestsResponse":{ + "type":"structure", + "required":["SpotFleetRequestConfigs"], + "members":{ + "SpotFleetRequestConfigs":{ + "shape":"SpotFleetRequestConfigSet", + "locationName":"spotFleetRequestConfigSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeSpotInstanceRequestsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SpotInstanceRequestIds":{ + "shape":"SpotInstanceRequestIdList", + "locationName":"SpotInstanceRequestId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeSpotInstanceRequestsResult":{ + "type":"structure", + "members":{ + "SpotInstanceRequests":{ + "shape":"SpotInstanceRequestList", + "locationName":"spotInstanceRequestSet" + } + } + }, + "DescribeSpotPriceHistoryRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "StartTime":{ + "shape":"DateTime", + "locationName":"startTime" + }, + "EndTime":{ + "shape":"DateTime", + "locationName":"endTime" + }, + "InstanceTypes":{ + "shape":"InstanceTypeList", + "locationName":"InstanceType" + }, + "ProductDescriptions":{ + "shape":"ProductDescriptionList", + "locationName":"ProductDescription" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "MaxResults":{ + "shape":"Integer", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeSpotPriceHistoryResult":{ + "type":"structure", + "members":{ + "SpotPriceHistory":{ + "shape":"SpotPriceHistoryList", + "locationName":"spotPriceHistorySet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeSubnetsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SubnetIds":{ + "shape":"SubnetIdStringList", + "locationName":"SubnetId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeSubnetsResult":{ + "type":"structure", + "members":{ + "Subnets":{ + "shape":"SubnetList", + "locationName":"subnetSet" + } + } + }, + "DescribeTagsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "MaxResults":{ + "shape":"Integer", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeTagsResult":{ + "type":"structure", + "members":{ + "Tags":{ + "shape":"TagDescriptionList", + "locationName":"tagSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeVolumeAttributeRequest":{ + "type":"structure", + "required":["VolumeId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VolumeId":{"shape":"String"}, + "Attribute":{"shape":"VolumeAttributeName"} + } + }, + "DescribeVolumeAttributeResult":{ + "type":"structure", + "members":{ + "VolumeId":{ + "shape":"String", + "locationName":"volumeId" + }, + "AutoEnableIO":{ + "shape":"AttributeBooleanValue", + "locationName":"autoEnableIO" + }, + "ProductCodes":{ + "shape":"ProductCodeList", + "locationName":"productCodes" + } + } + }, + "DescribeVolumeStatusRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VolumeIds":{ + "shape":"VolumeIdStringList", + "locationName":"VolumeId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "NextToken":{"shape":"String"}, + "MaxResults":{"shape":"Integer"} + } + }, + "DescribeVolumeStatusResult":{ + "type":"structure", + "members":{ + "VolumeStatuses":{ + "shape":"VolumeStatusList", + "locationName":"volumeStatusSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeVolumesRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VolumeIds":{ + "shape":"VolumeIdStringList", + "locationName":"VolumeId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"Integer", + "locationName":"maxResults" + } + } + }, + "DescribeVolumesResult":{ + "type":"structure", + "members":{ + "Volumes":{ + "shape":"VolumeList", + "locationName":"volumeSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeVpcAttributeRequest":{ + "type":"structure", + "required":["VpcId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcId":{"shape":"String"}, + "Attribute":{"shape":"VpcAttributeName"} + } + }, + "DescribeVpcAttributeResult":{ + "type":"structure", + "members":{ + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "EnableDnsSupport":{ + "shape":"AttributeBooleanValue", + "locationName":"enableDnsSupport" + }, + "EnableDnsHostnames":{ + "shape":"AttributeBooleanValue", + "locationName":"enableDnsHostnames" + } + } + }, + "DescribeVpcClassicLinkRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcIds":{ + "shape":"VpcClassicLinkIdList", + "locationName":"VpcId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeVpcClassicLinkResult":{ + "type":"structure", + "members":{ + "Vpcs":{ + "shape":"VpcClassicLinkList", + "locationName":"vpcSet" + } + } + }, + "DescribeVpcEndpointServicesRequest":{ + "type":"structure", + "members":{ + "DryRun":{"shape":"Boolean"}, + "MaxResults":{"shape":"Integer"}, + "NextToken":{"shape":"String"} + } + }, + "DescribeVpcEndpointServicesResult":{ + "type":"structure", + "members":{ + "ServiceNames":{ + "shape":"ValueStringList", + "locationName":"serviceNameSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeVpcEndpointsRequest":{ + "type":"structure", + "members":{ + "DryRun":{"shape":"Boolean"}, + "VpcEndpointIds":{ + "shape":"ValueStringList", + "locationName":"VpcEndpointId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + }, + "MaxResults":{"shape":"Integer"}, + "NextToken":{"shape":"String"} + } + }, + "DescribeVpcEndpointsResult":{ + "type":"structure", + "members":{ + "VpcEndpoints":{ + "shape":"VpcEndpointSet", + "locationName":"vpcEndpointSet" + }, + "NextToken":{ + "shape":"String", + "locationName":"nextToken" + } + } + }, + "DescribeVpcPeeringConnectionsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcPeeringConnectionIds":{ + "shape":"ValueStringList", + "locationName":"VpcPeeringConnectionId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeVpcPeeringConnectionsResult":{ + "type":"structure", + "members":{ + "VpcPeeringConnections":{ + "shape":"VpcPeeringConnectionList", + "locationName":"vpcPeeringConnectionSet" + } + } + }, + "DescribeVpcsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcIds":{ + "shape":"VpcIdStringList", + "locationName":"VpcId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeVpcsResult":{ + "type":"structure", + "members":{ + "Vpcs":{ + "shape":"VpcList", + "locationName":"vpcSet" + } + } + }, + "DescribeVpnConnectionsRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpnConnectionIds":{ + "shape":"VpnConnectionIdStringList", + "locationName":"VpnConnectionId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeVpnConnectionsResult":{ + "type":"structure", + "members":{ + "VpnConnections":{ + "shape":"VpnConnectionList", + "locationName":"vpnConnectionSet" + } + } + }, + "DescribeVpnGatewaysRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpnGatewayIds":{ + "shape":"VpnGatewayIdStringList", + "locationName":"VpnGatewayId" + }, + "Filters":{ + "shape":"FilterList", + "locationName":"Filter" + } + } + }, + "DescribeVpnGatewaysResult":{ + "type":"structure", + "members":{ + "VpnGateways":{ + "shape":"VpnGatewayList", + "locationName":"vpnGatewaySet" + } + } + }, + "DetachClassicLinkVpcRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "VpcId" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + } + } + }, + "DetachClassicLinkVpcResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, + "DetachInternetGatewayRequest":{ + "type":"structure", + "required":[ + "InternetGatewayId", + "VpcId" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InternetGatewayId":{ + "shape":"String", + "locationName":"internetGatewayId" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + } + } + }, + "DetachNetworkInterfaceRequest":{ + "type":"structure", + "required":["AttachmentId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "AttachmentId":{ + "shape":"String", + "locationName":"attachmentId" + }, + "Force":{ + "shape":"Boolean", + "locationName":"force" + } + } + }, + "DetachVolumeRequest":{ + "type":"structure", + "required":["VolumeId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VolumeId":{"shape":"String"}, + "InstanceId":{"shape":"String"}, + "Device":{"shape":"String"}, + "Force":{"shape":"Boolean"} + } + }, + "DetachVpnGatewayRequest":{ + "type":"structure", + "required":[ + "VpnGatewayId", + "VpcId" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpnGatewayId":{"shape":"String"}, + "VpcId":{"shape":"String"} + } + }, + "DeviceType":{ + "type":"string", + "enum":[ + "ebs", + "instance-store" + ] + }, + "DhcpConfiguration":{ + "type":"structure", + "members":{ + "Key":{ + "shape":"String", + "locationName":"key" + }, + "Values":{ + "shape":"DhcpConfigurationValueList", + "locationName":"valueSet" + } + } + }, + "DhcpConfigurationList":{ + "type":"list", + "member":{ + "shape":"DhcpConfiguration", + "locationName":"item" + } + }, + "DhcpOptions":{ + "type":"structure", + "members":{ + "DhcpOptionsId":{ + "shape":"String", + "locationName":"dhcpOptionsId" + }, + "DhcpConfigurations":{ + "shape":"DhcpConfigurationList", + "locationName":"dhcpConfigurationSet" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + } + } + }, + "DhcpOptionsIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"DhcpOptionsId" + } + }, + "DhcpOptionsList":{ + "type":"list", + "member":{ + "shape":"DhcpOptions", + "locationName":"item" + } + }, + "DisableVgwRoutePropagationRequest":{ + "type":"structure", + "required":[ + "RouteTableId", + "GatewayId" + ], + "members":{ + "RouteTableId":{"shape":"String"}, + "GatewayId":{"shape":"String"} + } + }, + "DisableVpcClassicLinkRequest":{ + "type":"structure", + "required":["VpcId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + } + } + }, + "DisableVpcClassicLinkResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, + "DisassociateAddressRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "PublicIp":{"shape":"String"}, + "AssociationId":{"shape":"String"} + } + }, + "DisassociateRouteTableRequest":{ + "type":"structure", + "required":["AssociationId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "AssociationId":{ + "shape":"String", + "locationName":"associationId" + } + } + }, + "DiskImage":{ + "type":"structure", + "members":{ + "Image":{"shape":"DiskImageDetail"}, + "Description":{"shape":"String"}, + "Volume":{"shape":"VolumeDetail"} + } + }, + "DiskImageDescription":{ + "type":"structure", + "required":[ + "Format", + "Size", + "ImportManifestUrl" + ], + "members":{ + "Format":{ + "shape":"DiskImageFormat", + "locationName":"format" + }, + "Size":{ + "shape":"Long", + "locationName":"size" + }, + "ImportManifestUrl":{ + "shape":"String", + "locationName":"importManifestUrl" + }, + "Checksum":{ + "shape":"String", + "locationName":"checksum" + } + } + }, + "DiskImageDetail":{ + "type":"structure", + "required":[ + "Format", + "Bytes", + "ImportManifestUrl" + ], + "members":{ + "Format":{ + "shape":"DiskImageFormat", + "locationName":"format" + }, + "Bytes":{ + "shape":"Long", + "locationName":"bytes" + }, + "ImportManifestUrl":{ + "shape":"String", + "locationName":"importManifestUrl" + } + } + }, + "DiskImageFormat":{ + "type":"string", + "enum":[ + "VMDK", + "RAW", + "VHD" + ] + }, + "DiskImageList":{ + "type":"list", + "member":{"shape":"DiskImage"} + }, + "DiskImageVolumeDescription":{ + "type":"structure", + "required":["Id"], + "members":{ + "Size":{ + "shape":"Long", + "locationName":"size" + }, + "Id":{ + "shape":"String", + "locationName":"id" + } + } + }, + "DomainType":{ + "type":"string", + "enum":[ + "vpc", + "standard" + ] + }, + "Double":{"type":"double"}, + "EbsBlockDevice":{ + "type":"structure", + "members":{ + "SnapshotId":{ + "shape":"String", + "locationName":"snapshotId" + }, + "VolumeSize":{ + "shape":"Integer", + "locationName":"volumeSize" + }, + "DeleteOnTermination":{ + "shape":"Boolean", + "locationName":"deleteOnTermination" + }, + "VolumeType":{ + "shape":"VolumeType", + "locationName":"volumeType" + }, + "Iops":{ + "shape":"Integer", + "locationName":"iops" + }, + "Encrypted":{ + "shape":"Boolean", + "locationName":"encrypted" + } + } + }, + "EbsInstanceBlockDevice":{ + "type":"structure", + "members":{ + "VolumeId":{ + "shape":"String", + "locationName":"volumeId" + }, + "Status":{ + "shape":"AttachmentStatus", + "locationName":"status" + }, + "AttachTime":{ + "shape":"DateTime", + "locationName":"attachTime" + }, + "DeleteOnTermination":{ + "shape":"Boolean", + "locationName":"deleteOnTermination" + } + } + }, + "EbsInstanceBlockDeviceSpecification":{ + "type":"structure", + "members":{ + "VolumeId":{ + "shape":"String", + "locationName":"volumeId" + }, + "DeleteOnTermination":{ + "shape":"Boolean", + "locationName":"deleteOnTermination" + } + } + }, + "EnableVgwRoutePropagationRequest":{ + "type":"structure", + "required":[ + "RouteTableId", + "GatewayId" + ], + "members":{ + "RouteTableId":{"shape":"String"}, + "GatewayId":{"shape":"String"} + } + }, + "EnableVolumeIORequest":{ + "type":"structure", + "required":["VolumeId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VolumeId":{ + "shape":"String", + "locationName":"volumeId" + } + } + }, + "EnableVpcClassicLinkRequest":{ + "type":"structure", + "required":["VpcId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + } + } + }, + "EnableVpcClassicLinkResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, + "EventCode":{ + "type":"string", + "enum":[ + "instance-reboot", + "system-reboot", + "system-maintenance", + "instance-retirement", + "instance-stop" + ] + }, + "EventInformation":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "EventSubType":{ + "shape":"String", + "locationName":"eventSubType" + }, + "EventDescription":{ + "shape":"String", + "locationName":"eventDescription" + } + } + }, + "EventType":{ + "type":"string", + "enum":[ + "instanceChange", + "fleetRequestChange", + "error" + ] + }, + "ExecutableByStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"ExecutableBy" + } + }, + "ExportEnvironment":{ + "type":"string", + "enum":[ + "citrix", + "vmware", + "microsoft" + ] + }, + "ExportTask":{ + "type":"structure", + "members":{ + "ExportTaskId":{ + "shape":"String", + "locationName":"exportTaskId" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "State":{ + "shape":"ExportTaskState", + "locationName":"state" + }, + "StatusMessage":{ + "shape":"String", + "locationName":"statusMessage" + }, + "InstanceExportDetails":{ + "shape":"InstanceExportDetails", + "locationName":"instanceExport" + }, + "ExportToS3Task":{ + "shape":"ExportToS3Task", + "locationName":"exportToS3" + } + } + }, + "ExportTaskIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"ExportTaskId" + } + }, + "ExportTaskList":{ + "type":"list", + "member":{ + "shape":"ExportTask", + "locationName":"item" + } + }, + "ExportTaskState":{ + "type":"string", + "enum":[ + "active", + "cancelling", + "cancelled", + "completed" + ] + }, + "ExportToS3Task":{ + "type":"structure", + "members":{ + "DiskImageFormat":{ + "shape":"DiskImageFormat", + "locationName":"diskImageFormat" + }, + "ContainerFormat":{ + "shape":"ContainerFormat", + "locationName":"containerFormat" + }, + "S3Bucket":{ + "shape":"String", + "locationName":"s3Bucket" + }, + "S3Key":{ + "shape":"String", + "locationName":"s3Key" + } + } + }, + "ExportToS3TaskSpecification":{ + "type":"structure", + "members":{ + "DiskImageFormat":{ + "shape":"DiskImageFormat", + "locationName":"diskImageFormat" + }, + "ContainerFormat":{ + "shape":"ContainerFormat", + "locationName":"containerFormat" + }, + "S3Bucket":{ + "shape":"String", + "locationName":"s3Bucket" + }, + "S3Prefix":{ + "shape":"String", + "locationName":"s3Prefix" + } + } + }, + "Filter":{ + "type":"structure", + "members":{ + "Name":{"shape":"String"}, + "Values":{ + "shape":"ValueStringList", + "locationName":"Value" + } + } + }, + "FilterList":{ + "type":"list", + "member":{ + "shape":"Filter", + "locationName":"Filter" + } + }, + "Float":{"type":"float"}, + "FlowLog":{ + "type":"structure", + "members":{ + "CreationTime":{ + "shape":"DateTime", + "locationName":"creationTime" + }, + "FlowLogId":{ + "shape":"String", + "locationName":"flowLogId" + }, + "FlowLogStatus":{ + "shape":"String", + "locationName":"flowLogStatus" + }, + "ResourceId":{ + "shape":"String", + "locationName":"resourceId" + }, + "TrafficType":{ + "shape":"TrafficType", + "locationName":"trafficType" + }, + "LogGroupName":{ + "shape":"String", + "locationName":"logGroupName" + }, + "DeliverLogsStatus":{ + "shape":"String", + "locationName":"deliverLogsStatus" + }, + "DeliverLogsErrorMessage":{ + "shape":"String", + "locationName":"deliverLogsErrorMessage" + }, + "DeliverLogsPermissionArn":{ + "shape":"String", + "locationName":"deliverLogsPermissionArn" + } + } + }, + "FlowLogSet":{ + "type":"list", + "member":{ + "shape":"FlowLog", + "locationName":"item" + } + }, + "FlowLogsResourceType":{ + "type":"string", + "enum":[ + "VPC", + "Subnet", + "NetworkInterface" + ] + }, + "GatewayType":{ + "type":"string", + "enum":["ipsec.1"] + }, + "GetConsoleOutputRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceId":{"shape":"String"} + } + }, + "GetConsoleOutputResult":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "Timestamp":{ + "shape":"DateTime", + "locationName":"timestamp" + }, + "Output":{ + "shape":"String", + "locationName":"output" + } + } + }, + "GetPasswordDataRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceId":{"shape":"String"} + } + }, + "GetPasswordDataResult":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "Timestamp":{ + "shape":"DateTime", + "locationName":"timestamp" + }, + "PasswordData":{ + "shape":"String", + "locationName":"passwordData" + } + } + }, + "GroupIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"groupId" + } + }, + "GroupIdentifier":{ + "type":"structure", + "members":{ + "GroupName":{ + "shape":"String", + "locationName":"groupName" + }, + "GroupId":{ + "shape":"String", + "locationName":"groupId" + } + } + }, + "GroupIdentifierList":{ + "type":"list", + "member":{ + "shape":"GroupIdentifier", + "locationName":"item" + } + }, + "GroupNameStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"GroupName" + } + }, + "HistoryRecord":{ + "type":"structure", + "required":[ + "Timestamp", + "EventType", + "EventInformation" + ], + "members":{ + "Timestamp":{ + "shape":"DateTime", + "locationName":"timestamp" + }, + "EventType":{ + "shape":"EventType", + "locationName":"eventType" + }, + "EventInformation":{ + "shape":"EventInformation", + "locationName":"eventInformation" + } + } + }, + "HistoryRecords":{ + "type":"list", + "member":{ + "shape":"HistoryRecord", + "locationName":"item" + } + }, + "HypervisorType":{ + "type":"string", + "enum":[ + "ovm", + "xen" + ] + }, + "IamInstanceProfile":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"String", + "locationName":"arn" + }, + "Id":{ + "shape":"String", + "locationName":"id" + } + } + }, + "IamInstanceProfileSpecification":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"String", + "locationName":"arn" + }, + "Name":{ + "shape":"String", + "locationName":"name" + } + } + }, + "IcmpTypeCode":{ + "type":"structure", + "members":{ + "Type":{ + "shape":"Integer", + "locationName":"type" + }, + "Code":{ + "shape":"Integer", + "locationName":"code" + } + } + }, + "Image":{ + "type":"structure", + "members":{ + "ImageId":{ + "shape":"String", + "locationName":"imageId" + }, + "ImageLocation":{ + "shape":"String", + "locationName":"imageLocation" + }, + "State":{ + "shape":"ImageState", + "locationName":"imageState" + }, + "OwnerId":{ + "shape":"String", + "locationName":"imageOwnerId" + }, + "CreationDate":{ + "shape":"String", + "locationName":"creationDate" + }, + "Public":{ + "shape":"Boolean", + "locationName":"isPublic" + }, + "ProductCodes":{ + "shape":"ProductCodeList", + "locationName":"productCodes" + }, + "Architecture":{ + "shape":"ArchitectureValues", + "locationName":"architecture" + }, + "ImageType":{ + "shape":"ImageTypeValues", + "locationName":"imageType" + }, + "KernelId":{ + "shape":"String", + "locationName":"kernelId" + }, + "RamdiskId":{ + "shape":"String", + "locationName":"ramdiskId" + }, + "Platform":{ + "shape":"PlatformValues", + "locationName":"platform" + }, + "SriovNetSupport":{ + "shape":"String", + "locationName":"sriovNetSupport" + }, + "StateReason":{ + "shape":"StateReason", + "locationName":"stateReason" + }, + "ImageOwnerAlias":{ + "shape":"String", + "locationName":"imageOwnerAlias" + }, + "Name":{ + "shape":"String", + "locationName":"name" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "RootDeviceType":{ + "shape":"DeviceType", + "locationName":"rootDeviceType" + }, + "RootDeviceName":{ + "shape":"String", + "locationName":"rootDeviceName" + }, + "BlockDeviceMappings":{ + "shape":"BlockDeviceMappingList", + "locationName":"blockDeviceMapping" + }, + "VirtualizationType":{ + "shape":"VirtualizationType", + "locationName":"virtualizationType" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "Hypervisor":{ + "shape":"HypervisorType", + "locationName":"hypervisor" + } + } + }, + "ImageAttribute":{ + "type":"structure", + "members":{ + "ImageId":{ + "shape":"String", + "locationName":"imageId" + }, + "LaunchPermissions":{ + "shape":"LaunchPermissionList", + "locationName":"launchPermission" + }, + "ProductCodes":{ + "shape":"ProductCodeList", + "locationName":"productCodes" + }, + "KernelId":{ + "shape":"AttributeValue", + "locationName":"kernel" + }, + "RamdiskId":{ + "shape":"AttributeValue", + "locationName":"ramdisk" + }, + "Description":{ + "shape":"AttributeValue", + "locationName":"description" + }, + "SriovNetSupport":{ + "shape":"AttributeValue", + "locationName":"sriovNetSupport" + }, + "BlockDeviceMappings":{ + "shape":"BlockDeviceMappingList", + "locationName":"blockDeviceMapping" + } + } + }, + "ImageAttributeName":{ + "type":"string", + "enum":[ + "description", + "kernel", + "ramdisk", + "launchPermission", + "productCodes", + "blockDeviceMapping", + "sriovNetSupport" + ] + }, + "ImageDiskContainer":{ + "type":"structure", + "members":{ + "Description":{"shape":"String"}, + "Format":{"shape":"String"}, + "Url":{"shape":"String"}, + "UserBucket":{"shape":"UserBucket"}, + "DeviceName":{"shape":"String"}, + "SnapshotId":{"shape":"String"} + } + }, + "ImageDiskContainerList":{ + "type":"list", + "member":{ + "shape":"ImageDiskContainer", + "locationName":"item" + } + }, + "ImageIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"ImageId" + } + }, + "ImageList":{ + "type":"list", + "member":{ + "shape":"Image", + "locationName":"item" + } + }, + "ImageState":{ + "type":"string", + "enum":[ + "pending", + "available", + "invalid", + "deregistered", + "transient", + "failed", + "error" + ] + }, + "ImageTypeValues":{ + "type":"string", + "enum":[ + "machine", + "kernel", + "ramdisk" + ] + }, + "ImportImageRequest":{ + "type":"structure", + "members":{ + "DryRun":{"shape":"Boolean"}, + "Description":{"shape":"String"}, + "DiskContainers":{ + "shape":"ImageDiskContainerList", + "locationName":"DiskContainer" + }, + "LicenseType":{"shape":"String"}, + "Hypervisor":{"shape":"String"}, + "Architecture":{"shape":"String"}, + "Platform":{"shape":"String"}, + "ClientData":{"shape":"ClientData"}, + "ClientToken":{"shape":"String"}, + "RoleName":{"shape":"String"} + } + }, + "ImportImageResult":{ + "type":"structure", + "members":{ + "ImportTaskId":{ + "shape":"String", + "locationName":"importTaskId" + }, + "Architecture":{ + "shape":"String", + "locationName":"architecture" + }, + "LicenseType":{ + "shape":"String", + "locationName":"licenseType" + }, + "Platform":{ + "shape":"String", + "locationName":"platform" + }, + "Hypervisor":{ + "shape":"String", + "locationName":"hypervisor" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "SnapshotDetails":{ + "shape":"SnapshotDetailList", + "locationName":"snapshotDetailSet" + }, + "ImageId":{ + "shape":"String", + "locationName":"imageId" + }, + "Progress":{ + "shape":"String", + "locationName":"progress" + }, + "StatusMessage":{ + "shape":"String", + "locationName":"statusMessage" + }, + "Status":{ + "shape":"String", + "locationName":"status" + } + } + }, + "ImportImageTask":{ + "type":"structure", + "members":{ + "ImportTaskId":{ + "shape":"String", + "locationName":"importTaskId" + }, + "Architecture":{ + "shape":"String", + "locationName":"architecture" + }, + "LicenseType":{ + "shape":"String", + "locationName":"licenseType" + }, + "Platform":{ + "shape":"String", + "locationName":"platform" + }, + "Hypervisor":{ + "shape":"String", + "locationName":"hypervisor" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "SnapshotDetails":{ + "shape":"SnapshotDetailList", + "locationName":"snapshotDetailSet" + }, + "ImageId":{ + "shape":"String", + "locationName":"imageId" + }, + "Progress":{ + "shape":"String", + "locationName":"progress" + }, + "StatusMessage":{ + "shape":"String", + "locationName":"statusMessage" + }, + "Status":{ + "shape":"String", + "locationName":"status" + } + } + }, + "ImportImageTaskList":{ + "type":"list", + "member":{ + "shape":"ImportImageTask", + "locationName":"item" + } + }, + "ImportInstanceLaunchSpecification":{ + "type":"structure", + "members":{ + "Architecture":{ + "shape":"ArchitectureValues", + "locationName":"architecture" + }, + "GroupNames":{ + "shape":"SecurityGroupStringList", + "locationName":"GroupName" + }, + "GroupIds":{ + "shape":"SecurityGroupIdStringList", + "locationName":"GroupId" + }, + "AdditionalInfo":{ + "shape":"String", + "locationName":"additionalInfo" + }, + "UserData":{ + "shape":"UserData", + "locationName":"userData" + }, + "InstanceType":{ + "shape":"InstanceType", + "locationName":"instanceType" + }, + "Placement":{ + "shape":"Placement", + "locationName":"placement" + }, + "Monitoring":{ + "shape":"Boolean", + "locationName":"monitoring" + }, + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "InstanceInitiatedShutdownBehavior":{ + "shape":"ShutdownBehavior", + "locationName":"instanceInitiatedShutdownBehavior" + }, + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + } + } + }, + "ImportInstanceRequest":{ + "type":"structure", + "required":["Platform"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "LaunchSpecification":{ + "shape":"ImportInstanceLaunchSpecification", + "locationName":"launchSpecification" + }, + "DiskImages":{ + "shape":"DiskImageList", + "locationName":"diskImage" + }, + "Platform":{ + "shape":"PlatformValues", + "locationName":"platform" + } + } + }, + "ImportInstanceResult":{ + "type":"structure", + "members":{ + "ConversionTask":{ + "shape":"ConversionTask", + "locationName":"conversionTask" + } + } + }, + "ImportInstanceTaskDetails":{ + "type":"structure", + "required":["Volumes"], + "members":{ + "Volumes":{ + "shape":"ImportInstanceVolumeDetailSet", + "locationName":"volumes" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "Platform":{ + "shape":"PlatformValues", + "locationName":"platform" + }, + "Description":{ + "shape":"String", + "locationName":"description" + } + } + }, + "ImportInstanceVolumeDetailItem":{ + "type":"structure", + "required":[ + "BytesConverted", + "AvailabilityZone", + "Image", + "Volume", + "Status" + ], + "members":{ + "BytesConverted":{ + "shape":"Long", + "locationName":"bytesConverted" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "Image":{ + "shape":"DiskImageDescription", + "locationName":"image" + }, + "Volume":{ + "shape":"DiskImageVolumeDescription", + "locationName":"volume" + }, + "Status":{ + "shape":"String", + "locationName":"status" + }, + "StatusMessage":{ + "shape":"String", + "locationName":"statusMessage" + }, + "Description":{ + "shape":"String", + "locationName":"description" + } + } + }, + "ImportInstanceVolumeDetailSet":{ + "type":"list", + "member":{ + "shape":"ImportInstanceVolumeDetailItem", + "locationName":"item" + } + }, + "ImportKeyPairRequest":{ + "type":"structure", + "required":[ + "KeyName", + "PublicKeyMaterial" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "KeyName":{ + "shape":"String", + "locationName":"keyName" + }, + "PublicKeyMaterial":{ + "shape":"Blob", + "locationName":"publicKeyMaterial" + } + } + }, + "ImportKeyPairResult":{ + "type":"structure", + "members":{ + "KeyName":{ + "shape":"String", + "locationName":"keyName" + }, + "KeyFingerprint":{ + "shape":"String", + "locationName":"keyFingerprint" + } + } + }, + "ImportSnapshotRequest":{ + "type":"structure", + "members":{ + "DryRun":{"shape":"Boolean"}, + "Description":{"shape":"String"}, + "DiskContainer":{"shape":"SnapshotDiskContainer"}, + "ClientData":{"shape":"ClientData"}, + "ClientToken":{"shape":"String"}, + "RoleName":{"shape":"String"} + } + }, + "ImportSnapshotResult":{ + "type":"structure", + "members":{ + "ImportTaskId":{ + "shape":"String", + "locationName":"importTaskId" + }, + "SnapshotTaskDetail":{ + "shape":"SnapshotTaskDetail", + "locationName":"snapshotTaskDetail" + }, + "Description":{ + "shape":"String", + "locationName":"description" + } + } + }, + "ImportSnapshotTask":{ + "type":"structure", + "members":{ + "ImportTaskId":{ + "shape":"String", + "locationName":"importTaskId" + }, + "SnapshotTaskDetail":{ + "shape":"SnapshotTaskDetail", + "locationName":"snapshotTaskDetail" + }, + "Description":{ + "shape":"String", + "locationName":"description" + } + } + }, + "ImportSnapshotTaskList":{ + "type":"list", + "member":{ + "shape":"ImportSnapshotTask", + "locationName":"item" + } + }, + "ImportTaskIdList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"ImportTaskId" + } + }, + "ImportVolumeRequest":{ + "type":"structure", + "required":[ + "AvailabilityZone", + "Image", + "Volume" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "Image":{ + "shape":"DiskImageDetail", + "locationName":"image" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "Volume":{ + "shape":"VolumeDetail", + "locationName":"volume" + } + } + }, + "ImportVolumeResult":{ + "type":"structure", + "members":{ + "ConversionTask":{ + "shape":"ConversionTask", + "locationName":"conversionTask" + } + } + }, + "ImportVolumeTaskDetails":{ + "type":"structure", + "required":[ + "BytesConverted", + "AvailabilityZone", + "Image", + "Volume" + ], + "members":{ + "BytesConverted":{ + "shape":"Long", + "locationName":"bytesConverted" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "Image":{ + "shape":"DiskImageDescription", + "locationName":"image" + }, + "Volume":{ + "shape":"DiskImageVolumeDescription", + "locationName":"volume" + } + } + }, + "Instance":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "ImageId":{ + "shape":"String", + "locationName":"imageId" + }, + "State":{ + "shape":"InstanceState", + "locationName":"instanceState" + }, + "PrivateDnsName":{ + "shape":"String", + "locationName":"privateDnsName" + }, + "PublicDnsName":{ + "shape":"String", + "locationName":"dnsName" + }, + "StateTransitionReason":{ + "shape":"String", + "locationName":"reason" + }, + "KeyName":{ + "shape":"String", + "locationName":"keyName" + }, + "AmiLaunchIndex":{ + "shape":"Integer", + "locationName":"amiLaunchIndex" + }, + "ProductCodes":{ + "shape":"ProductCodeList", + "locationName":"productCodes" + }, + "InstanceType":{ + "shape":"InstanceType", + "locationName":"instanceType" + }, + "LaunchTime":{ + "shape":"DateTime", + "locationName":"launchTime" + }, + "Placement":{ + "shape":"Placement", + "locationName":"placement" + }, + "KernelId":{ + "shape":"String", + "locationName":"kernelId" + }, + "RamdiskId":{ + "shape":"String", + "locationName":"ramdiskId" + }, + "Platform":{ + "shape":"PlatformValues", + "locationName":"platform" + }, + "Monitoring":{ + "shape":"Monitoring", + "locationName":"monitoring" + }, + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + }, + "PublicIpAddress":{ + "shape":"String", + "locationName":"ipAddress" + }, + "StateReason":{ + "shape":"StateReason", + "locationName":"stateReason" + }, + "Architecture":{ + "shape":"ArchitectureValues", + "locationName":"architecture" + }, + "RootDeviceType":{ + "shape":"DeviceType", + "locationName":"rootDeviceType" + }, + "RootDeviceName":{ + "shape":"String", + "locationName":"rootDeviceName" + }, + "BlockDeviceMappings":{ + "shape":"InstanceBlockDeviceMappingList", + "locationName":"blockDeviceMapping" + }, + "VirtualizationType":{ + "shape":"VirtualizationType", + "locationName":"virtualizationType" + }, + "InstanceLifecycle":{ + "shape":"InstanceLifecycleType", + "locationName":"instanceLifecycle" + }, + "SpotInstanceRequestId":{ + "shape":"String", + "locationName":"spotInstanceRequestId" + }, + "ClientToken":{ + "shape":"String", + "locationName":"clientToken" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "SecurityGroups":{ + "shape":"GroupIdentifierList", + "locationName":"groupSet" + }, + "SourceDestCheck":{ + "shape":"Boolean", + "locationName":"sourceDestCheck" + }, + "Hypervisor":{ + "shape":"HypervisorType", + "locationName":"hypervisor" + }, + "NetworkInterfaces":{ + "shape":"InstanceNetworkInterfaceList", + "locationName":"networkInterfaceSet" + }, + "IamInstanceProfile":{ + "shape":"IamInstanceProfile", + "locationName":"iamInstanceProfile" + }, + "EbsOptimized":{ + "shape":"Boolean", + "locationName":"ebsOptimized" + }, + "SriovNetSupport":{ + "shape":"String", + "locationName":"sriovNetSupport" + } + } + }, + "InstanceAttribute":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "InstanceType":{ + "shape":"AttributeValue", + "locationName":"instanceType" + }, + "KernelId":{ + "shape":"AttributeValue", + "locationName":"kernel" + }, + "RamdiskId":{ + "shape":"AttributeValue", + "locationName":"ramdisk" + }, + "UserData":{ + "shape":"AttributeValue", + "locationName":"userData" + }, + "DisableApiTermination":{ + "shape":"AttributeBooleanValue", + "locationName":"disableApiTermination" + }, + "InstanceInitiatedShutdownBehavior":{ + "shape":"AttributeValue", + "locationName":"instanceInitiatedShutdownBehavior" + }, + "RootDeviceName":{ + "shape":"AttributeValue", + "locationName":"rootDeviceName" + }, + "BlockDeviceMappings":{ + "shape":"InstanceBlockDeviceMappingList", + "locationName":"blockDeviceMapping" + }, + "ProductCodes":{ + "shape":"ProductCodeList", + "locationName":"productCodes" + }, + "EbsOptimized":{ + "shape":"AttributeBooleanValue", + "locationName":"ebsOptimized" + }, + "SriovNetSupport":{ + "shape":"AttributeValue", + "locationName":"sriovNetSupport" + }, + "SourceDestCheck":{ + "shape":"AttributeBooleanValue", + "locationName":"sourceDestCheck" + }, + "Groups":{ + "shape":"GroupIdentifierList", + "locationName":"groupSet" + } + } + }, + "InstanceAttributeName":{ + "type":"string", + "enum":[ + "instanceType", + "kernel", + "ramdisk", + "userData", + "disableApiTermination", + "instanceInitiatedShutdownBehavior", + "rootDeviceName", + "blockDeviceMapping", + "productCodes", + "sourceDestCheck", + "groupSet", + "ebsOptimized", + "sriovNetSupport" + ] + }, + "InstanceBlockDeviceMapping":{ + "type":"structure", + "members":{ + "DeviceName":{ + "shape":"String", + "locationName":"deviceName" + }, + "Ebs":{ + "shape":"EbsInstanceBlockDevice", + "locationName":"ebs" + } + } + }, + "InstanceBlockDeviceMappingList":{ + "type":"list", + "member":{ + "shape":"InstanceBlockDeviceMapping", + "locationName":"item" + } + }, + "InstanceBlockDeviceMappingSpecification":{ + "type":"structure", + "members":{ + "DeviceName":{ + "shape":"String", + "locationName":"deviceName" + }, + "Ebs":{ + "shape":"EbsInstanceBlockDeviceSpecification", + "locationName":"ebs" + }, + "VirtualName":{ + "shape":"String", + "locationName":"virtualName" + }, + "NoDevice":{ + "shape":"String", + "locationName":"noDevice" + } + } + }, + "InstanceBlockDeviceMappingSpecificationList":{ + "type":"list", + "member":{ + "shape":"InstanceBlockDeviceMappingSpecification", + "locationName":"item" + } + }, + "InstanceCount":{ + "type":"structure", + "members":{ + "State":{ + "shape":"ListingState", + "locationName":"state" + }, + "InstanceCount":{ + "shape":"Integer", + "locationName":"instanceCount" + } + } + }, + "InstanceCountList":{ + "type":"list", + "member":{ + "shape":"InstanceCount", + "locationName":"item" + } + }, + "InstanceExportDetails":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "TargetEnvironment":{ + "shape":"ExportEnvironment", + "locationName":"targetEnvironment" + } + } + }, + "InstanceIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"InstanceId" + } + }, + "InstanceLifecycleType":{ + "type":"string", + "enum":["spot"] + }, + "InstanceList":{ + "type":"list", + "member":{ + "shape":"Instance", + "locationName":"item" + } + }, + "InstanceMonitoring":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "Monitoring":{ + "shape":"Monitoring", + "locationName":"monitoring" + } + } + }, + "InstanceMonitoringList":{ + "type":"list", + "member":{ + "shape":"InstanceMonitoring", + "locationName":"item" + } + }, + "InstanceNetworkInterface":{ + "type":"structure", + "members":{ + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "OwnerId":{ + "shape":"String", + "locationName":"ownerId" + }, + "Status":{ + "shape":"NetworkInterfaceStatus", + "locationName":"status" + }, + "MacAddress":{ + "shape":"String", + "locationName":"macAddress" + }, + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + }, + "PrivateDnsName":{ + "shape":"String", + "locationName":"privateDnsName" + }, + "SourceDestCheck":{ + "shape":"Boolean", + "locationName":"sourceDestCheck" + }, + "Groups":{ + "shape":"GroupIdentifierList", + "locationName":"groupSet" + }, + "Attachment":{ + "shape":"InstanceNetworkInterfaceAttachment", + "locationName":"attachment" + }, + "Association":{ + "shape":"InstanceNetworkInterfaceAssociation", + "locationName":"association" + }, + "PrivateIpAddresses":{ + "shape":"InstancePrivateIpAddressList", + "locationName":"privateIpAddressesSet" + } + } + }, + "InstanceNetworkInterfaceAssociation":{ + "type":"structure", + "members":{ + "PublicIp":{ + "shape":"String", + "locationName":"publicIp" + }, + "PublicDnsName":{ + "shape":"String", + "locationName":"publicDnsName" + }, + "IpOwnerId":{ + "shape":"String", + "locationName":"ipOwnerId" + } + } + }, + "InstanceNetworkInterfaceAttachment":{ + "type":"structure", + "members":{ + "AttachmentId":{ + "shape":"String", + "locationName":"attachmentId" + }, + "DeviceIndex":{ + "shape":"Integer", + "locationName":"deviceIndex" + }, + "Status":{ + "shape":"AttachmentStatus", + "locationName":"status" + }, + "AttachTime":{ + "shape":"DateTime", + "locationName":"attachTime" + }, + "DeleteOnTermination":{ + "shape":"Boolean", + "locationName":"deleteOnTermination" + } + } + }, + "InstanceNetworkInterfaceList":{ + "type":"list", + "member":{ + "shape":"InstanceNetworkInterface", + "locationName":"item" + } + }, + "InstanceNetworkInterfaceSpecification":{ + "type":"structure", + "members":{ + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "DeviceIndex":{ + "shape":"Integer", + "locationName":"deviceIndex" + }, + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + }, + "Groups":{ + "shape":"SecurityGroupIdStringList", + "locationName":"SecurityGroupId" + }, + "DeleteOnTermination":{ + "shape":"Boolean", + "locationName":"deleteOnTermination" + }, + "PrivateIpAddresses":{ + "shape":"PrivateIpAddressSpecificationList", + "locationName":"privateIpAddressesSet", + "queryName":"PrivateIpAddresses" + }, + "SecondaryPrivateIpAddressCount":{ + "shape":"Integer", + "locationName":"secondaryPrivateIpAddressCount" + }, + "AssociatePublicIpAddress":{ + "shape":"Boolean", + "locationName":"associatePublicIpAddress" + } + } + }, + "InstanceNetworkInterfaceSpecificationList":{ + "type":"list", + "member":{ + "shape":"InstanceNetworkInterfaceSpecification", + "locationName":"item" + } + }, + "InstancePrivateIpAddress":{ + "type":"structure", + "members":{ + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + }, + "PrivateDnsName":{ + "shape":"String", + "locationName":"privateDnsName" + }, + "Primary":{ + "shape":"Boolean", + "locationName":"primary" + }, + "Association":{ + "shape":"InstanceNetworkInterfaceAssociation", + "locationName":"association" + } + } + }, + "InstancePrivateIpAddressList":{ + "type":"list", + "member":{ + "shape":"InstancePrivateIpAddress", + "locationName":"item" + } + }, + "InstanceState":{ + "type":"structure", + "members":{ + "Code":{ + "shape":"Integer", + "locationName":"code" + }, + "Name":{ + "shape":"InstanceStateName", + "locationName":"name" + } + } + }, + "InstanceStateChange":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "CurrentState":{ + "shape":"InstanceState", + "locationName":"currentState" + }, + "PreviousState":{ + "shape":"InstanceState", + "locationName":"previousState" + } + } + }, + "InstanceStateChangeList":{ + "type":"list", + "member":{ + "shape":"InstanceStateChange", + "locationName":"item" + } + }, + "InstanceStateName":{ + "type":"string", + "enum":[ + "pending", + "running", + "shutting-down", + "terminated", + "stopping", + "stopped" + ] + }, + "InstanceStatus":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "Events":{ + "shape":"InstanceStatusEventList", + "locationName":"eventsSet" + }, + "InstanceState":{ + "shape":"InstanceState", + "locationName":"instanceState" + }, + "SystemStatus":{ + "shape":"InstanceStatusSummary", + "locationName":"systemStatus" + }, + "InstanceStatus":{ + "shape":"InstanceStatusSummary", + "locationName":"instanceStatus" + } + } + }, + "InstanceStatusDetails":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"StatusName", + "locationName":"name" + }, + "Status":{ + "shape":"StatusType", + "locationName":"status" + }, + "ImpairedSince":{ + "shape":"DateTime", + "locationName":"impairedSince" + } + } + }, + "InstanceStatusDetailsList":{ + "type":"list", + "member":{ + "shape":"InstanceStatusDetails", + "locationName":"item" + } + }, + "InstanceStatusEvent":{ + "type":"structure", + "members":{ + "Code":{ + "shape":"EventCode", + "locationName":"code" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "NotBefore":{ + "shape":"DateTime", + "locationName":"notBefore" + }, + "NotAfter":{ + "shape":"DateTime", + "locationName":"notAfter" + } + } + }, + "InstanceStatusEventList":{ + "type":"list", + "member":{ + "shape":"InstanceStatusEvent", + "locationName":"item" + } + }, + "InstanceStatusList":{ + "type":"list", + "member":{ + "shape":"InstanceStatus", + "locationName":"item" + } + }, + "InstanceStatusSummary":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"SummaryStatus", + "locationName":"status" + }, + "Details":{ + "shape":"InstanceStatusDetailsList", + "locationName":"details" + } + } + }, + "InstanceType":{ + "type":"string", + "enum":[ + "t1.micro", + "m1.small", + "m1.medium", + "m1.large", + "m1.xlarge", + "m3.medium", + "m3.large", + "m3.xlarge", + "m3.2xlarge", + "m4.large", + "m4.xlarge", + "m4.2xlarge", + "m4.4xlarge", + "m4.10xlarge", + "t2.micro", + "t2.small", + "t2.medium", + "m2.xlarge", + "m2.2xlarge", + "m2.4xlarge", + "cr1.8xlarge", + "i2.xlarge", + "i2.2xlarge", + "i2.4xlarge", + "i2.8xlarge", + "hi1.4xlarge", + "hs1.8xlarge", + "c1.medium", + "c1.xlarge", + "c3.large", + "c3.xlarge", + "c3.2xlarge", + "c3.4xlarge", + "c3.8xlarge", + "c4.large", + "c4.xlarge", + "c4.2xlarge", + "c4.4xlarge", + "c4.8xlarge", + "cc1.4xlarge", + "cc2.8xlarge", + "g2.2xlarge", + "cg1.4xlarge", + "r3.large", + "r3.xlarge", + "r3.2xlarge", + "r3.4xlarge", + "r3.8xlarge", + "d2.xlarge", + "d2.2xlarge", + "d2.4xlarge", + "d2.8xlarge" + ] + }, + "InstanceTypeList":{ + "type":"list", + "member":{"shape":"InstanceType"} + }, + "Integer":{"type":"integer"}, + "InternetGateway":{ + "type":"structure", + "members":{ + "InternetGatewayId":{ + "shape":"String", + "locationName":"internetGatewayId" + }, + "Attachments":{ + "shape":"InternetGatewayAttachmentList", + "locationName":"attachmentSet" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + } + } + }, + "InternetGatewayAttachment":{ + "type":"structure", + "members":{ + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "State":{ + "shape":"AttachmentStatus", + "locationName":"state" + } + } + }, + "InternetGatewayAttachmentList":{ + "type":"list", + "member":{ + "shape":"InternetGatewayAttachment", + "locationName":"item" + } + }, + "InternetGatewayList":{ + "type":"list", + "member":{ + "shape":"InternetGateway", + "locationName":"item" + } + }, + "IpPermission":{ + "type":"structure", + "members":{ + "IpProtocol":{ + "shape":"String", + "locationName":"ipProtocol" + }, + "FromPort":{ + "shape":"Integer", + "locationName":"fromPort" + }, + "ToPort":{ + "shape":"Integer", + "locationName":"toPort" + }, + "UserIdGroupPairs":{ + "shape":"UserIdGroupPairList", + "locationName":"groups" + }, + "IpRanges":{ + "shape":"IpRangeList", + "locationName":"ipRanges" + }, + "PrefixListIds":{ + "shape":"PrefixListIdList", + "locationName":"prefixListIds" + } + } + }, + "IpPermissionList":{ + "type":"list", + "member":{ + "shape":"IpPermission", + "locationName":"item" + } + }, + "IpRange":{ + "type":"structure", + "members":{ + "CidrIp":{ + "shape":"String", + "locationName":"cidrIp" + } + } + }, + "IpRangeList":{ + "type":"list", + "member":{ + "shape":"IpRange", + "locationName":"item" + } + }, + "KeyNameStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"KeyName" + } + }, + "KeyPair":{ + "type":"structure", + "members":{ + "KeyName":{ + "shape":"String", + "locationName":"keyName" + }, + "KeyFingerprint":{ + "shape":"String", + "locationName":"keyFingerprint" + }, + "KeyMaterial":{ + "shape":"String", + "locationName":"keyMaterial" + } + } + }, + "KeyPairInfo":{ + "type":"structure", + "members":{ + "KeyName":{ + "shape":"String", + "locationName":"keyName" + }, + "KeyFingerprint":{ + "shape":"String", + "locationName":"keyFingerprint" + } + } + }, + "KeyPairList":{ + "type":"list", + "member":{ + "shape":"KeyPairInfo", + "locationName":"item" + } + }, + "LaunchPermission":{ + "type":"structure", + "members":{ + "UserId":{ + "shape":"String", + "locationName":"userId" + }, + "Group":{ + "shape":"PermissionGroup", + "locationName":"group" + } + } + }, + "LaunchPermissionList":{ + "type":"list", + "member":{ + "shape":"LaunchPermission", + "locationName":"item" + } + }, + "LaunchPermissionModifications":{ + "type":"structure", + "members":{ + "Add":{"shape":"LaunchPermissionList"}, + "Remove":{"shape":"LaunchPermissionList"} + } + }, + "LaunchSpecification":{ + "type":"structure", + "members":{ + "ImageId":{ + "shape":"String", + "locationName":"imageId" + }, + "KeyName":{ + "shape":"String", + "locationName":"keyName" + }, + "SecurityGroups":{ + "shape":"GroupIdentifierList", + "locationName":"groupSet" + }, + "UserData":{ + "shape":"String", + "locationName":"userData" + }, + "AddressingType":{ + "shape":"String", + "locationName":"addressingType" + }, + "InstanceType":{ + "shape":"InstanceType", + "locationName":"instanceType" + }, + "Placement":{ + "shape":"SpotPlacement", + "locationName":"placement" + }, + "KernelId":{ + "shape":"String", + "locationName":"kernelId" + }, + "RamdiskId":{ + "shape":"String", + "locationName":"ramdiskId" + }, + "BlockDeviceMappings":{ + "shape":"BlockDeviceMappingList", + "locationName":"blockDeviceMapping" + }, + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "NetworkInterfaces":{ + "shape":"InstanceNetworkInterfaceSpecificationList", + "locationName":"networkInterfaceSet" + }, + "IamInstanceProfile":{ + "shape":"IamInstanceProfileSpecification", + "locationName":"iamInstanceProfile" + }, + "EbsOptimized":{ + "shape":"Boolean", + "locationName":"ebsOptimized" + }, + "Monitoring":{ + "shape":"RunInstancesMonitoringEnabled", + "locationName":"monitoring" + } + } + }, + "LaunchSpecsList":{ + "type":"list", + "member":{ + "shape":"LaunchSpecification", + "locationName":"item" + }, + "min":1 + }, + "ListingState":{ + "type":"string", + "enum":[ + "available", + "sold", + "cancelled", + "pending" + ] + }, + "ListingStatus":{ + "type":"string", + "enum":[ + "active", + "pending", + "cancelled", + "closed" + ] + }, + "Long":{"type":"long"}, + "ModifyImageAttributeRequest":{ + "type":"structure", + "required":["ImageId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ImageId":{"shape":"String"}, + "Attribute":{"shape":"String"}, + "OperationType":{"shape":"String"}, + "UserIds":{ + "shape":"UserIdStringList", + "locationName":"UserId" + }, + "UserGroups":{ + "shape":"UserGroupStringList", + "locationName":"UserGroup" + }, + "ProductCodes":{ + "shape":"ProductCodeStringList", + "locationName":"ProductCode" + }, + "Value":{"shape":"String"}, + "LaunchPermission":{"shape":"LaunchPermissionModifications"}, + "Description":{"shape":"AttributeValue"} + } + }, + "ModifyInstanceAttributeRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "Attribute":{ + "shape":"InstanceAttributeName", + "locationName":"attribute" + }, + "Value":{ + "shape":"String", + "locationName":"value" + }, + "BlockDeviceMappings":{ + "shape":"InstanceBlockDeviceMappingSpecificationList", + "locationName":"blockDeviceMapping" + }, + "SourceDestCheck":{"shape":"AttributeBooleanValue"}, + "DisableApiTermination":{ + "shape":"AttributeBooleanValue", + "locationName":"disableApiTermination" + }, + "InstanceType":{ + "shape":"AttributeValue", + "locationName":"instanceType" + }, + "Kernel":{ + "shape":"AttributeValue", + "locationName":"kernel" + }, + "Ramdisk":{ + "shape":"AttributeValue", + "locationName":"ramdisk" + }, + "UserData":{ + "shape":"BlobAttributeValue", + "locationName":"userData" + }, + "InstanceInitiatedShutdownBehavior":{ + "shape":"AttributeValue", + "locationName":"instanceInitiatedShutdownBehavior" + }, + "Groups":{ + "shape":"GroupIdStringList", + "locationName":"GroupId" + }, + "EbsOptimized":{ + "shape":"AttributeBooleanValue", + "locationName":"ebsOptimized" + }, + "SriovNetSupport":{ + "shape":"AttributeValue", + "locationName":"sriovNetSupport" + } + } + }, + "ModifyNetworkInterfaceAttributeRequest":{ + "type":"structure", + "required":["NetworkInterfaceId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "Description":{ + "shape":"AttributeValue", + "locationName":"description" + }, + "SourceDestCheck":{ + "shape":"AttributeBooleanValue", + "locationName":"sourceDestCheck" + }, + "Groups":{ + "shape":"SecurityGroupIdStringList", + "locationName":"SecurityGroupId" + }, + "Attachment":{ + "shape":"NetworkInterfaceAttachmentChanges", + "locationName":"attachment" + } + } + }, + "ModifyReservedInstancesRequest":{ + "type":"structure", + "required":[ + "ReservedInstancesIds", + "TargetConfigurations" + ], + "members":{ + "ClientToken":{ + "shape":"String", + "locationName":"clientToken" + }, + "ReservedInstancesIds":{ + "shape":"ReservedInstancesIdStringList", + "locationName":"ReservedInstancesId" + }, + "TargetConfigurations":{ + "shape":"ReservedInstancesConfigurationList", + "locationName":"ReservedInstancesConfigurationSetItemType" + } + } + }, + "ModifyReservedInstancesResult":{ + "type":"structure", + "members":{ + "ReservedInstancesModificationId":{ + "shape":"String", + "locationName":"reservedInstancesModificationId" + } + } + }, + "ModifySnapshotAttributeRequest":{ + "type":"structure", + "required":["SnapshotId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SnapshotId":{"shape":"String"}, + "Attribute":{"shape":"SnapshotAttributeName"}, + "OperationType":{"shape":"String"}, + "UserIds":{ + "shape":"UserIdStringList", + "locationName":"UserId" + }, + "GroupNames":{ + "shape":"GroupNameStringList", + "locationName":"UserGroup" + }, + "CreateVolumePermission":{"shape":"CreateVolumePermissionModifications"} + } + }, + "ModifySubnetAttributeRequest":{ + "type":"structure", + "required":["SubnetId"], + "members":{ + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "MapPublicIpOnLaunch":{"shape":"AttributeBooleanValue"} + } + }, + "ModifyVolumeAttributeRequest":{ + "type":"structure", + "required":["VolumeId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VolumeId":{"shape":"String"}, + "AutoEnableIO":{"shape":"AttributeBooleanValue"} + } + }, + "ModifyVpcAttributeRequest":{ + "type":"structure", + "required":["VpcId"], + "members":{ + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "EnableDnsSupport":{"shape":"AttributeBooleanValue"}, + "EnableDnsHostnames":{"shape":"AttributeBooleanValue"} + } + }, + "ModifyVpcEndpointRequest":{ + "type":"structure", + "required":["VpcEndpointId"], + "members":{ + "DryRun":{"shape":"Boolean"}, + "VpcEndpointId":{"shape":"String"}, + "ResetPolicy":{"shape":"Boolean"}, + "PolicyDocument":{"shape":"String"}, + "AddRouteTableIds":{ + "shape":"ValueStringList", + "locationName":"AddRouteTableId" + }, + "RemoveRouteTableIds":{ + "shape":"ValueStringList", + "locationName":"RemoveRouteTableId" + } + } + }, + "ModifyVpcEndpointResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, + "MonitorInstancesRequest":{ + "type":"structure", + "required":["InstanceIds"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceIds":{ + "shape":"InstanceIdStringList", + "locationName":"InstanceId" + } + } + }, + "MonitorInstancesResult":{ + "type":"structure", + "members":{ + "InstanceMonitorings":{ + "shape":"InstanceMonitoringList", + "locationName":"instancesSet" + } + } + }, + "Monitoring":{ + "type":"structure", + "members":{ + "State":{ + "shape":"MonitoringState", + "locationName":"state" + } + } + }, + "MonitoringState":{ + "type":"string", + "enum":[ + "disabled", + "disabling", + "enabled", + "pending" + ] + }, + "MoveAddressToVpcRequest":{ + "type":"structure", + "required":["PublicIp"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "PublicIp":{ + "shape":"String", + "locationName":"publicIp" + } + } + }, + "MoveAddressToVpcResult":{ + "type":"structure", + "members":{ + "AllocationId":{ + "shape":"String", + "locationName":"allocationId" + }, + "Status":{ + "shape":"Status", + "locationName":"status" + } + } + }, + "MoveStatus":{ + "type":"string", + "enum":[ + "movingToVpc", + "restoringToClassic" + ] + }, + "MovingAddressStatus":{ + "type":"structure", + "members":{ + "PublicIp":{ + "shape":"String", + "locationName":"publicIp" + }, + "MoveStatus":{ + "shape":"MoveStatus", + "locationName":"moveStatus" + } + } + }, + "MovingAddressStatusSet":{ + "type":"list", + "member":{ + "shape":"MovingAddressStatus", + "locationName":"item" + } + }, + "NetworkAcl":{ + "type":"structure", + "members":{ + "NetworkAclId":{ + "shape":"String", + "locationName":"networkAclId" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "IsDefault":{ + "shape":"Boolean", + "locationName":"default" + }, + "Entries":{ + "shape":"NetworkAclEntryList", + "locationName":"entrySet" + }, + "Associations":{ + "shape":"NetworkAclAssociationList", + "locationName":"associationSet" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + } + } + }, + "NetworkAclAssociation":{ + "type":"structure", + "members":{ + "NetworkAclAssociationId":{ + "shape":"String", + "locationName":"networkAclAssociationId" + }, + "NetworkAclId":{ + "shape":"String", + "locationName":"networkAclId" + }, + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + } + } + }, + "NetworkAclAssociationList":{ + "type":"list", + "member":{ + "shape":"NetworkAclAssociation", + "locationName":"item" + } + }, + "NetworkAclEntry":{ + "type":"structure", + "members":{ + "RuleNumber":{ + "shape":"Integer", + "locationName":"ruleNumber" + }, + "Protocol":{ + "shape":"String", + "locationName":"protocol" + }, + "RuleAction":{ + "shape":"RuleAction", + "locationName":"ruleAction" + }, + "Egress":{ + "shape":"Boolean", + "locationName":"egress" + }, + "CidrBlock":{ + "shape":"String", + "locationName":"cidrBlock" + }, + "IcmpTypeCode":{ + "shape":"IcmpTypeCode", + "locationName":"icmpTypeCode" + }, + "PortRange":{ + "shape":"PortRange", + "locationName":"portRange" + } + } + }, + "NetworkAclEntryList":{ + "type":"list", + "member":{ + "shape":"NetworkAclEntry", + "locationName":"item" + } + }, + "NetworkAclList":{ + "type":"list", + "member":{ + "shape":"NetworkAcl", + "locationName":"item" + } + }, + "NetworkInterface":{ + "type":"structure", + "members":{ + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "OwnerId":{ + "shape":"String", + "locationName":"ownerId" + }, + "RequesterId":{ + "shape":"String", + "locationName":"requesterId" + }, + "RequesterManaged":{ + "shape":"Boolean", + "locationName":"requesterManaged" + }, + "Status":{ + "shape":"NetworkInterfaceStatus", + "locationName":"status" + }, + "MacAddress":{ + "shape":"String", + "locationName":"macAddress" + }, + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + }, + "PrivateDnsName":{ + "shape":"String", + "locationName":"privateDnsName" + }, + "SourceDestCheck":{ + "shape":"Boolean", + "locationName":"sourceDestCheck" + }, + "Groups":{ + "shape":"GroupIdentifierList", + "locationName":"groupSet" + }, + "Attachment":{ + "shape":"NetworkInterfaceAttachment", + "locationName":"attachment" + }, + "Association":{ + "shape":"NetworkInterfaceAssociation", + "locationName":"association" + }, + "TagSet":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "PrivateIpAddresses":{ + "shape":"NetworkInterfacePrivateIpAddressList", + "locationName":"privateIpAddressesSet" + } + } + }, + "NetworkInterfaceAssociation":{ + "type":"structure", + "members":{ + "PublicIp":{ + "shape":"String", + "locationName":"publicIp" + }, + "PublicDnsName":{ + "shape":"String", + "locationName":"publicDnsName" + }, + "IpOwnerId":{ + "shape":"String", + "locationName":"ipOwnerId" + }, + "AllocationId":{ + "shape":"String", + "locationName":"allocationId" + }, + "AssociationId":{ + "shape":"String", + "locationName":"associationId" + } + } + }, + "NetworkInterfaceAttachment":{ + "type":"structure", + "members":{ + "AttachmentId":{ + "shape":"String", + "locationName":"attachmentId" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "InstanceOwnerId":{ + "shape":"String", + "locationName":"instanceOwnerId" + }, + "DeviceIndex":{ + "shape":"Integer", + "locationName":"deviceIndex" + }, + "Status":{ + "shape":"AttachmentStatus", + "locationName":"status" + }, + "AttachTime":{ + "shape":"DateTime", + "locationName":"attachTime" + }, + "DeleteOnTermination":{ + "shape":"Boolean", + "locationName":"deleteOnTermination" + } + } + }, + "NetworkInterfaceAttachmentChanges":{ + "type":"structure", + "members":{ + "AttachmentId":{ + "shape":"String", + "locationName":"attachmentId" + }, + "DeleteOnTermination":{ + "shape":"Boolean", + "locationName":"deleteOnTermination" + } + } + }, + "NetworkInterfaceAttribute":{ + "type":"string", + "enum":[ + "description", + "groupSet", + "sourceDestCheck", + "attachment" + ] + }, + "NetworkInterfaceIdList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"item" + } + }, + "NetworkInterfaceList":{ + "type":"list", + "member":{ + "shape":"NetworkInterface", + "locationName":"item" + } + }, + "NetworkInterfacePrivateIpAddress":{ + "type":"structure", + "members":{ + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + }, + "PrivateDnsName":{ + "shape":"String", + "locationName":"privateDnsName" + }, + "Primary":{ + "shape":"Boolean", + "locationName":"primary" + }, + "Association":{ + "shape":"NetworkInterfaceAssociation", + "locationName":"association" + } + } + }, + "NetworkInterfacePrivateIpAddressList":{ + "type":"list", + "member":{ + "shape":"NetworkInterfacePrivateIpAddress", + "locationName":"item" + } + }, + "NetworkInterfaceStatus":{ + "type":"string", + "enum":[ + "available", + "attaching", + "in-use", + "detaching" + ] + }, + "OfferingTypeValues":{ + "type":"string", + "enum":[ + "Heavy Utilization", + "Medium Utilization", + "Light Utilization", + "No Upfront", + "Partial Upfront", + "All Upfront" + ] + }, + "OwnerStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"Owner" + } + }, + "PermissionGroup":{ + "type":"string", + "enum":["all"] + }, + "Placement":{ + "type":"structure", + "members":{ + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "GroupName":{ + "shape":"String", + "locationName":"groupName" + }, + "Tenancy":{ + "shape":"Tenancy", + "locationName":"tenancy" + } + } + }, + "PlacementGroup":{ + "type":"structure", + "members":{ + "GroupName":{ + "shape":"String", + "locationName":"groupName" + }, + "Strategy":{ + "shape":"PlacementStrategy", + "locationName":"strategy" + }, + "State":{ + "shape":"PlacementGroupState", + "locationName":"state" + } + } + }, + "PlacementGroupList":{ + "type":"list", + "member":{ + "shape":"PlacementGroup", + "locationName":"item" + } + }, + "PlacementGroupState":{ + "type":"string", + "enum":[ + "pending", + "available", + "deleting", + "deleted" + ] + }, + "PlacementGroupStringList":{ + "type":"list", + "member":{"shape":"String"} + }, + "PlacementStrategy":{ + "type":"string", + "enum":["cluster"] + }, + "PlatformValues":{ + "type":"string", + "enum":["Windows"] + }, + "PortRange":{ + "type":"structure", + "members":{ + "From":{ + "shape":"Integer", + "locationName":"from" + }, + "To":{ + "shape":"Integer", + "locationName":"to" + } + } + }, + "PrefixList":{ + "type":"structure", + "members":{ + "PrefixListId":{ + "shape":"String", + "locationName":"prefixListId" + }, + "PrefixListName":{ + "shape":"String", + "locationName":"prefixListName" + }, + "Cidrs":{ + "shape":"ValueStringList", + "locationName":"cidrSet" + } + } + }, + "PrefixListId":{ + "type":"structure", + "members":{ + "PrefixListId":{ + "shape":"String", + "locationName":"prefixListId" + } + } + }, + "PrefixListIdList":{ + "type":"list", + "member":{ + "shape":"PrefixListId", + "locationName":"item" + } + }, + "PrefixListSet":{ + "type":"list", + "member":{ + "shape":"PrefixList", + "locationName":"item" + } + }, + "PriceSchedule":{ + "type":"structure", + "members":{ + "Term":{ + "shape":"Long", + "locationName":"term" + }, + "Price":{ + "shape":"Double", + "locationName":"price" + }, + "CurrencyCode":{ + "shape":"CurrencyCodeValues", + "locationName":"currencyCode" + }, + "Active":{ + "shape":"Boolean", + "locationName":"active" + } + } + }, + "PriceScheduleList":{ + "type":"list", + "member":{ + "shape":"PriceSchedule", + "locationName":"item" + } + }, + "PriceScheduleSpecification":{ + "type":"structure", + "members":{ + "Term":{ + "shape":"Long", + "locationName":"term" + }, + "Price":{ + "shape":"Double", + "locationName":"price" + }, + "CurrencyCode":{ + "shape":"CurrencyCodeValues", + "locationName":"currencyCode" + } + } + }, + "PriceScheduleSpecificationList":{ + "type":"list", + "member":{ + "shape":"PriceScheduleSpecification", + "locationName":"item" + } + }, + "PricingDetail":{ + "type":"structure", + "members":{ + "Price":{ + "shape":"Double", + "locationName":"price" + }, + "Count":{ + "shape":"Integer", + "locationName":"count" + } + } + }, + "PricingDetailsList":{ + "type":"list", + "member":{ + "shape":"PricingDetail", + "locationName":"item" + } + }, + "PrivateIpAddressSpecification":{ + "type":"structure", + "required":["PrivateIpAddress"], + "members":{ + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + }, + "Primary":{ + "shape":"Boolean", + "locationName":"primary" + } + } + }, + "PrivateIpAddressSpecificationList":{ + "type":"list", + "member":{ + "shape":"PrivateIpAddressSpecification", + "locationName":"item" + } + }, + "PrivateIpAddressStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"PrivateIpAddress" + } + }, + "ProductCode":{ + "type":"structure", + "members":{ + "ProductCodeId":{ + "shape":"String", + "locationName":"productCode" + }, + "ProductCodeType":{ + "shape":"ProductCodeValues", + "locationName":"type" + } + } + }, + "ProductCodeList":{ + "type":"list", + "member":{ + "shape":"ProductCode", + "locationName":"item" + } + }, + "ProductCodeStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"ProductCode" + } + }, + "ProductCodeValues":{ + "type":"string", + "enum":[ + "devpay", + "marketplace" + ] + }, + "ProductDescriptionList":{ + "type":"list", + "member":{"shape":"String"} + }, + "PropagatingVgw":{ + "type":"structure", + "members":{ + "GatewayId":{ + "shape":"String", + "locationName":"gatewayId" + } + } + }, + "PropagatingVgwList":{ + "type":"list", + "member":{ + "shape":"PropagatingVgw", + "locationName":"item" + } + }, + "PublicIpStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"PublicIp" + } + }, + "PurchaseReservedInstancesOfferingRequest":{ + "type":"structure", + "required":[ + "ReservedInstancesOfferingId", + "InstanceCount" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ReservedInstancesOfferingId":{"shape":"String"}, + "InstanceCount":{"shape":"Integer"}, + "LimitPrice":{ + "shape":"ReservedInstanceLimitPrice", + "locationName":"limitPrice" + } + } + }, + "PurchaseReservedInstancesOfferingResult":{ + "type":"structure", + "members":{ + "ReservedInstancesId":{ + "shape":"String", + "locationName":"reservedInstancesId" + } + } + }, + "RIProductDescription":{ + "type":"string", + "enum":[ + "Linux/UNIX", + "Linux/UNIX (Amazon VPC)", + "Windows", + "Windows (Amazon VPC)" + ] + }, + "ReasonCodesList":{ + "type":"list", + "member":{ + "shape":"ReportInstanceReasonCodes", + "locationName":"item" + } + }, + "RebootInstancesRequest":{ + "type":"structure", + "required":["InstanceIds"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceIds":{ + "shape":"InstanceIdStringList", + "locationName":"InstanceId" + } + } + }, + "RecurringCharge":{ + "type":"structure", + "members":{ + "Frequency":{ + "shape":"RecurringChargeFrequency", + "locationName":"frequency" + }, + "Amount":{ + "shape":"Double", + "locationName":"amount" + } + } + }, + "RecurringChargeFrequency":{ + "type":"string", + "enum":["Hourly"] + }, + "RecurringChargesList":{ + "type":"list", + "member":{ + "shape":"RecurringCharge", + "locationName":"item" + } + }, + "Region":{ + "type":"structure", + "members":{ + "RegionName":{ + "shape":"String", + "locationName":"regionName" + }, + "Endpoint":{ + "shape":"String", + "locationName":"regionEndpoint" + } + } + }, + "RegionList":{ + "type":"list", + "member":{ + "shape":"Region", + "locationName":"item" + } + }, + "RegionNameStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"RegionName" + } + }, + "RegisterImageRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ImageLocation":{"shape":"String"}, + "Name":{ + "shape":"String", + "locationName":"name" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "Architecture":{ + "shape":"ArchitectureValues", + "locationName":"architecture" + }, + "KernelId":{ + "shape":"String", + "locationName":"kernelId" + }, + "RamdiskId":{ + "shape":"String", + "locationName":"ramdiskId" + }, + "RootDeviceName":{ + "shape":"String", + "locationName":"rootDeviceName" + }, + "BlockDeviceMappings":{ + "shape":"BlockDeviceMappingRequestList", + "locationName":"BlockDeviceMapping" + }, + "VirtualizationType":{ + "shape":"String", + "locationName":"virtualizationType" + }, + "SriovNetSupport":{ + "shape":"String", + "locationName":"sriovNetSupport" + } + } + }, + "RegisterImageResult":{ + "type":"structure", + "members":{ + "ImageId":{ + "shape":"String", + "locationName":"imageId" + } + } + }, + "RejectVpcPeeringConnectionRequest":{ + "type":"structure", + "required":["VpcPeeringConnectionId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "VpcPeeringConnectionId":{ + "shape":"String", + "locationName":"vpcPeeringConnectionId" + } + } + }, + "RejectVpcPeeringConnectionResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "locationName":"return" + } + } + }, + "ReleaseAddressRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "PublicIp":{"shape":"String"}, + "AllocationId":{"shape":"String"} + } + }, + "ReplaceNetworkAclAssociationRequest":{ + "type":"structure", + "required":[ + "AssociationId", + "NetworkAclId" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "AssociationId":{ + "shape":"String", + "locationName":"associationId" + }, + "NetworkAclId":{ + "shape":"String", + "locationName":"networkAclId" + } + } + }, + "ReplaceNetworkAclAssociationResult":{ + "type":"structure", + "members":{ + "NewAssociationId":{ + "shape":"String", + "locationName":"newAssociationId" + } + } + }, + "ReplaceNetworkAclEntryRequest":{ + "type":"structure", + "required":[ + "NetworkAclId", + "RuleNumber", + "Protocol", + "RuleAction", + "Egress", + "CidrBlock" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "NetworkAclId":{ + "shape":"String", + "locationName":"networkAclId" + }, + "RuleNumber":{ + "shape":"Integer", + "locationName":"ruleNumber" + }, + "Protocol":{ + "shape":"String", + "locationName":"protocol" + }, + "RuleAction":{ + "shape":"RuleAction", + "locationName":"ruleAction" + }, + "Egress":{ + "shape":"Boolean", + "locationName":"egress" + }, + "CidrBlock":{ + "shape":"String", + "locationName":"cidrBlock" + }, + "IcmpTypeCode":{ + "shape":"IcmpTypeCode", + "locationName":"Icmp" + }, + "PortRange":{ + "shape":"PortRange", + "locationName":"portRange" + } + } + }, + "ReplaceRouteRequest":{ + "type":"structure", + "required":[ + "RouteTableId", + "DestinationCidrBlock" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "RouteTableId":{ + "shape":"String", + "locationName":"routeTableId" + }, + "DestinationCidrBlock":{ + "shape":"String", + "locationName":"destinationCidrBlock" + }, + "GatewayId":{ + "shape":"String", + "locationName":"gatewayId" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "VpcPeeringConnectionId":{ + "shape":"String", + "locationName":"vpcPeeringConnectionId" + } + } + }, + "ReplaceRouteTableAssociationRequest":{ + "type":"structure", + "required":[ + "AssociationId", + "RouteTableId" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "AssociationId":{ + "shape":"String", + "locationName":"associationId" + }, + "RouteTableId":{ + "shape":"String", + "locationName":"routeTableId" + } + } + }, + "ReplaceRouteTableAssociationResult":{ + "type":"structure", + "members":{ + "NewAssociationId":{ + "shape":"String", + "locationName":"newAssociationId" + } + } + }, + "ReportInstanceReasonCodes":{ + "type":"string", + "enum":[ + "instance-stuck-in-state", + "unresponsive", + "not-accepting-credentials", + "password-not-available", + "performance-network", + "performance-instance-store", + "performance-ebs-volume", + "performance-other", + "other" + ] + }, + "ReportInstanceStatusRequest":{ + "type":"structure", + "required":[ + "Instances", + "Status", + "ReasonCodes" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "Instances":{ + "shape":"InstanceIdStringList", + "locationName":"instanceId" + }, + "Status":{ + "shape":"ReportStatusType", + "locationName":"status" + }, + "StartTime":{ + "shape":"DateTime", + "locationName":"startTime" + }, + "EndTime":{ + "shape":"DateTime", + "locationName":"endTime" + }, + "ReasonCodes":{ + "shape":"ReasonCodesList", + "locationName":"reasonCode" + }, + "Description":{ + "shape":"String", + "locationName":"description" + } + } + }, + "ReportStatusType":{ + "type":"string", + "enum":[ + "ok", + "impaired" + ] + }, + "RequestSpotFleetRequest":{ + "type":"structure", + "required":["SpotFleetRequestConfig"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SpotFleetRequestConfig":{ + "shape":"SpotFleetRequestConfigData", + "locationName":"spotFleetRequestConfig" + } + } + }, + "RequestSpotFleetResponse":{ + "type":"structure", + "required":["SpotFleetRequestId"], + "members":{ + "SpotFleetRequestId":{ + "shape":"String", + "locationName":"spotFleetRequestId" + } + } + }, + "RequestSpotInstancesRequest":{ + "type":"structure", + "required":["SpotPrice"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SpotPrice":{ + "shape":"String", + "locationName":"spotPrice" + }, + "ClientToken":{ + "shape":"String", + "locationName":"clientToken" + }, + "InstanceCount":{ + "shape":"Integer", + "locationName":"instanceCount" + }, + "Type":{ + "shape":"SpotInstanceType", + "locationName":"type" + }, + "ValidFrom":{ + "shape":"DateTime", + "locationName":"validFrom" + }, + "ValidUntil":{ + "shape":"DateTime", + "locationName":"validUntil" + }, + "LaunchGroup":{ + "shape":"String", + "locationName":"launchGroup" + }, + "AvailabilityZoneGroup":{ + "shape":"String", + "locationName":"availabilityZoneGroup" + }, + "LaunchSpecification":{"shape":"RequestSpotLaunchSpecification"} + } + }, + "RequestSpotInstancesResult":{ + "type":"structure", + "members":{ + "SpotInstanceRequests":{ + "shape":"SpotInstanceRequestList", + "locationName":"spotInstanceRequestSet" + } + } + }, + "Reservation":{ + "type":"structure", + "members":{ + "ReservationId":{ + "shape":"String", + "locationName":"reservationId" + }, + "OwnerId":{ + "shape":"String", + "locationName":"ownerId" + }, + "RequesterId":{ + "shape":"String", + "locationName":"requesterId" + }, + "Groups":{ + "shape":"GroupIdentifierList", + "locationName":"groupSet" + }, + "Instances":{ + "shape":"InstanceList", + "locationName":"instancesSet" + } + } + }, + "ReservationList":{ + "type":"list", + "member":{ + "shape":"Reservation", + "locationName":"item" + } + }, + "ReservedInstanceLimitPrice":{ + "type":"structure", + "members":{ + "Amount":{ + "shape":"Double", + "locationName":"amount" + }, + "CurrencyCode":{ + "shape":"CurrencyCodeValues", + "locationName":"currencyCode" + } + } + }, + "ReservedInstanceState":{ + "type":"string", + "enum":[ + "payment-pending", + "active", + "payment-failed", + "retired" + ] + }, + "ReservedInstances":{ + "type":"structure", + "members":{ + "ReservedInstancesId":{ + "shape":"String", + "locationName":"reservedInstancesId" + }, + "InstanceType":{ + "shape":"InstanceType", + "locationName":"instanceType" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "Start":{ + "shape":"DateTime", + "locationName":"start" + }, + "End":{ + "shape":"DateTime", + "locationName":"end" + }, + "Duration":{ + "shape":"Long", + "locationName":"duration" + }, + "UsagePrice":{ + "shape":"Float", + "locationName":"usagePrice" + }, + "FixedPrice":{ + "shape":"Float", + "locationName":"fixedPrice" + }, + "InstanceCount":{ + "shape":"Integer", + "locationName":"instanceCount" + }, + "ProductDescription":{ + "shape":"RIProductDescription", + "locationName":"productDescription" + }, + "State":{ + "shape":"ReservedInstanceState", + "locationName":"state" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "InstanceTenancy":{ + "shape":"Tenancy", + "locationName":"instanceTenancy" + }, + "CurrencyCode":{ + "shape":"CurrencyCodeValues", + "locationName":"currencyCode" + }, + "OfferingType":{ + "shape":"OfferingTypeValues", + "locationName":"offeringType" + }, + "RecurringCharges":{ + "shape":"RecurringChargesList", + "locationName":"recurringCharges" + } + } + }, + "ReservedInstancesConfiguration":{ + "type":"structure", + "members":{ + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "Platform":{ + "shape":"String", + "locationName":"platform" + }, + "InstanceCount":{ + "shape":"Integer", + "locationName":"instanceCount" + }, + "InstanceType":{ + "shape":"InstanceType", + "locationName":"instanceType" + } + } + }, + "ReservedInstancesConfigurationList":{ + "type":"list", + "member":{ + "shape":"ReservedInstancesConfiguration", + "locationName":"item" + } + }, + "ReservedInstancesId":{ + "type":"structure", + "members":{ + "ReservedInstancesId":{ + "shape":"String", + "locationName":"reservedInstancesId" + } + } + }, + "ReservedInstancesIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"ReservedInstancesId" + } + }, + "ReservedInstancesList":{ + "type":"list", + "member":{ + "shape":"ReservedInstances", + "locationName":"item" + } + }, + "ReservedInstancesListing":{ + "type":"structure", + "members":{ + "ReservedInstancesListingId":{ + "shape":"String", + "locationName":"reservedInstancesListingId" + }, + "ReservedInstancesId":{ + "shape":"String", + "locationName":"reservedInstancesId" + }, + "CreateDate":{ + "shape":"DateTime", + "locationName":"createDate" + }, + "UpdateDate":{ + "shape":"DateTime", + "locationName":"updateDate" + }, + "Status":{ + "shape":"ListingStatus", + "locationName":"status" + }, + "StatusMessage":{ + "shape":"String", + "locationName":"statusMessage" + }, + "InstanceCounts":{ + "shape":"InstanceCountList", + "locationName":"instanceCounts" + }, + "PriceSchedules":{ + "shape":"PriceScheduleList", + "locationName":"priceSchedules" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "ClientToken":{ + "shape":"String", + "locationName":"clientToken" + } + } + }, + "ReservedInstancesListingList":{ + "type":"list", + "member":{ + "shape":"ReservedInstancesListing", + "locationName":"item" + } + }, + "ReservedInstancesModification":{ + "type":"structure", + "members":{ + "ReservedInstancesModificationId":{ + "shape":"String", + "locationName":"reservedInstancesModificationId" + }, + "ReservedInstancesIds":{ + "shape":"ReservedIntancesIds", + "locationName":"reservedInstancesSet" + }, + "ModificationResults":{ + "shape":"ReservedInstancesModificationResultList", + "locationName":"modificationResultSet" + }, + "CreateDate":{ + "shape":"DateTime", + "locationName":"createDate" + }, + "UpdateDate":{ + "shape":"DateTime", + "locationName":"updateDate" + }, + "EffectiveDate":{ + "shape":"DateTime", + "locationName":"effectiveDate" + }, + "Status":{ + "shape":"String", + "locationName":"status" + }, + "StatusMessage":{ + "shape":"String", + "locationName":"statusMessage" + }, + "ClientToken":{ + "shape":"String", + "locationName":"clientToken" + } + } + }, + "ReservedInstancesModificationIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"ReservedInstancesModificationId" + } + }, + "ReservedInstancesModificationList":{ + "type":"list", + "member":{ + "shape":"ReservedInstancesModification", + "locationName":"item" + } + }, + "ReservedInstancesModificationResult":{ + "type":"structure", + "members":{ + "ReservedInstancesId":{ + "shape":"String", + "locationName":"reservedInstancesId" + }, + "TargetConfiguration":{ + "shape":"ReservedInstancesConfiguration", + "locationName":"targetConfiguration" + } + } + }, + "ReservedInstancesModificationResultList":{ + "type":"list", + "member":{ + "shape":"ReservedInstancesModificationResult", + "locationName":"item" + } + }, + "ReservedInstancesOffering":{ + "type":"structure", + "members":{ + "ReservedInstancesOfferingId":{ + "shape":"String", + "locationName":"reservedInstancesOfferingId" + }, + "InstanceType":{ + "shape":"InstanceType", + "locationName":"instanceType" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "Duration":{ + "shape":"Long", + "locationName":"duration" + }, + "UsagePrice":{ + "shape":"Float", + "locationName":"usagePrice" + }, + "FixedPrice":{ + "shape":"Float", + "locationName":"fixedPrice" + }, + "ProductDescription":{ + "shape":"RIProductDescription", + "locationName":"productDescription" + }, + "InstanceTenancy":{ + "shape":"Tenancy", + "locationName":"instanceTenancy" + }, + "CurrencyCode":{ + "shape":"CurrencyCodeValues", + "locationName":"currencyCode" + }, + "OfferingType":{ + "shape":"OfferingTypeValues", + "locationName":"offeringType" + }, + "RecurringCharges":{ + "shape":"RecurringChargesList", + "locationName":"recurringCharges" + }, + "Marketplace":{ + "shape":"Boolean", + "locationName":"marketplace" + }, + "PricingDetails":{ + "shape":"PricingDetailsList", + "locationName":"pricingDetailsSet" + } + } + }, + "ReservedInstancesOfferingIdStringList":{ + "type":"list", + "member":{"shape":"String"} + }, + "ReservedInstancesOfferingList":{ + "type":"list", + "member":{ + "shape":"ReservedInstancesOffering", + "locationName":"item" + } + }, + "ReservedIntancesIds":{ + "type":"list", + "member":{ + "shape":"ReservedInstancesId", + "locationName":"item" + } + }, + "ResetImageAttributeName":{ + "type":"string", + "enum":["launchPermission"] + }, + "ResetImageAttributeRequest":{ + "type":"structure", + "required":[ + "ImageId", + "Attribute" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ImageId":{"shape":"String"}, + "Attribute":{"shape":"ResetImageAttributeName"} + } + }, + "ResetInstanceAttributeRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "Attribute" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "Attribute":{ + "shape":"InstanceAttributeName", + "locationName":"attribute" + } + } + }, + "ResetNetworkInterfaceAttributeRequest":{ + "type":"structure", + "required":["NetworkInterfaceId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "SourceDestCheck":{ + "shape":"String", + "locationName":"sourceDestCheck" + } + } + }, + "ResetSnapshotAttributeRequest":{ + "type":"structure", + "required":[ + "SnapshotId", + "Attribute" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "SnapshotId":{"shape":"String"}, + "Attribute":{"shape":"SnapshotAttributeName"} + } + }, + "ResourceIdList":{ + "type":"list", + "member":{"shape":"String"} + }, + "ResourceType":{ + "type":"string", + "enum":[ + "customer-gateway", + "dhcp-options", + "image", + "instance", + "internet-gateway", + "network-acl", + "network-interface", + "reserved-instances", + "route-table", + "snapshot", + "spot-instances-request", + "subnet", + "security-group", + "volume", + "vpc", + "vpn-connection", + "vpn-gateway" + ] + }, + "RestorableByStringList":{ + "type":"list", + "member":{"shape":"String"} + }, + "RestoreAddressToClassicRequest":{ + "type":"structure", + "required":["PublicIp"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "PublicIp":{ + "shape":"String", + "locationName":"publicIp" + } + } + }, + "RestoreAddressToClassicResult":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"Status", + "locationName":"status" + }, + "PublicIp":{ + "shape":"String", + "locationName":"publicIp" + } + } + }, + "RevokeSecurityGroupEgressRequest":{ + "type":"structure", + "required":["GroupId"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "GroupId":{ + "shape":"String", + "locationName":"groupId" + }, + "SourceSecurityGroupName":{ + "shape":"String", + "locationName":"sourceSecurityGroupName" + }, + "SourceSecurityGroupOwnerId":{ + "shape":"String", + "locationName":"sourceSecurityGroupOwnerId" + }, + "IpProtocol":{ + "shape":"String", + "locationName":"ipProtocol" + }, + "FromPort":{ + "shape":"Integer", + "locationName":"fromPort" + }, + "ToPort":{ + "shape":"Integer", + "locationName":"toPort" + }, + "CidrIp":{ + "shape":"String", + "locationName":"cidrIp" + }, + "IpPermissions":{ + "shape":"IpPermissionList", + "locationName":"ipPermissions" + } + } + }, + "RevokeSecurityGroupIngressRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "GroupName":{"shape":"String"}, + "GroupId":{"shape":"String"}, + "SourceSecurityGroupName":{"shape":"String"}, + "SourceSecurityGroupOwnerId":{"shape":"String"}, + "IpProtocol":{"shape":"String"}, + "FromPort":{"shape":"Integer"}, + "ToPort":{"shape":"Integer"}, + "CidrIp":{"shape":"String"}, + "IpPermissions":{"shape":"IpPermissionList"} + } + }, + "Route":{ + "type":"structure", + "members":{ + "DestinationCidrBlock":{ + "shape":"String", + "locationName":"destinationCidrBlock" + }, + "DestinationPrefixListId":{ + "shape":"String", + "locationName":"destinationPrefixListId" + }, + "GatewayId":{ + "shape":"String", + "locationName":"gatewayId" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "InstanceOwnerId":{ + "shape":"String", + "locationName":"instanceOwnerId" + }, + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "VpcPeeringConnectionId":{ + "shape":"String", + "locationName":"vpcPeeringConnectionId" + }, + "State":{ + "shape":"RouteState", + "locationName":"state" + }, + "Origin":{ + "shape":"RouteOrigin", + "locationName":"origin" + } + } + }, + "RouteList":{ + "type":"list", + "member":{ + "shape":"Route", + "locationName":"item" + } + }, + "RouteOrigin":{ + "type":"string", + "enum":[ + "CreateRouteTable", + "CreateRoute", + "EnableVgwRoutePropagation" + ] + }, + "RouteState":{ + "type":"string", + "enum":[ + "active", + "blackhole" + ] + }, + "RouteTable":{ + "type":"structure", + "members":{ + "RouteTableId":{ + "shape":"String", + "locationName":"routeTableId" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "Routes":{ + "shape":"RouteList", + "locationName":"routeSet" + }, + "Associations":{ + "shape":"RouteTableAssociationList", + "locationName":"associationSet" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "PropagatingVgws":{ + "shape":"PropagatingVgwList", + "locationName":"propagatingVgwSet" + } + } + }, + "RouteTableAssociation":{ + "type":"structure", + "members":{ + "RouteTableAssociationId":{ + "shape":"String", + "locationName":"routeTableAssociationId" + }, + "RouteTableId":{ + "shape":"String", + "locationName":"routeTableId" + }, + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "Main":{ + "shape":"Boolean", + "locationName":"main" + } + } + }, + "RouteTableAssociationList":{ + "type":"list", + "member":{ + "shape":"RouteTableAssociation", + "locationName":"item" + } + }, + "RouteTableList":{ + "type":"list", + "member":{ + "shape":"RouteTable", + "locationName":"item" + } + }, + "RuleAction":{ + "type":"string", + "enum":[ + "allow", + "deny" + ] + }, + "RunInstancesMonitoringEnabled":{ + "type":"structure", + "required":["Enabled"], + "members":{ + "Enabled":{ + "shape":"Boolean", + "locationName":"enabled" + } + } + }, + "RunInstancesRequest":{ + "type":"structure", + "required":[ + "ImageId", + "MinCount", + "MaxCount" + ], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "ImageId":{"shape":"String"}, + "MinCount":{"shape":"Integer"}, + "MaxCount":{"shape":"Integer"}, + "KeyName":{"shape":"String"}, + "SecurityGroups":{ + "shape":"SecurityGroupStringList", + "locationName":"SecurityGroup" + }, + "SecurityGroupIds":{ + "shape":"SecurityGroupIdStringList", + "locationName":"SecurityGroupId" + }, + "UserData":{"shape":"String"}, + "InstanceType":{"shape":"InstanceType"}, + "Placement":{"shape":"Placement"}, + "KernelId":{"shape":"String"}, + "RamdiskId":{"shape":"String"}, + "BlockDeviceMappings":{ + "shape":"BlockDeviceMappingRequestList", + "locationName":"BlockDeviceMapping" + }, + "Monitoring":{"shape":"RunInstancesMonitoringEnabled"}, + "SubnetId":{"shape":"String"}, + "DisableApiTermination":{ + "shape":"Boolean", + "locationName":"disableApiTermination" + }, + "InstanceInitiatedShutdownBehavior":{ + "shape":"ShutdownBehavior", + "locationName":"instanceInitiatedShutdownBehavior" + }, + "PrivateIpAddress":{ + "shape":"String", + "locationName":"privateIpAddress" + }, + "ClientToken":{ + "shape":"String", + "locationName":"clientToken" + }, + "AdditionalInfo":{ + "shape":"String", + "locationName":"additionalInfo" + }, + "NetworkInterfaces":{ + "shape":"InstanceNetworkInterfaceSpecificationList", + "locationName":"networkInterface" + }, + "IamInstanceProfile":{ + "shape":"IamInstanceProfileSpecification", + "locationName":"iamInstanceProfile" + }, + "EbsOptimized":{ + "shape":"Boolean", + "locationName":"ebsOptimized" + } + } + }, + "S3Storage":{ + "type":"structure", + "members":{ + "Bucket":{ + "shape":"String", + "locationName":"bucket" + }, + "Prefix":{ + "shape":"String", + "locationName":"prefix" + }, + "AWSAccessKeyId":{"shape":"String"}, + "UploadPolicy":{ + "shape":"Blob", + "locationName":"uploadPolicy" + }, + "UploadPolicySignature":{ + "shape":"String", + "locationName":"uploadPolicySignature" + } + } + }, + "SecurityGroup":{ + "type":"structure", + "members":{ + "OwnerId":{ + "shape":"String", + "locationName":"ownerId" + }, + "GroupName":{ + "shape":"String", + "locationName":"groupName" + }, + "GroupId":{ + "shape":"String", + "locationName":"groupId" + }, + "Description":{ + "shape":"String", + "locationName":"groupDescription" + }, + "IpPermissions":{ + "shape":"IpPermissionList", + "locationName":"ipPermissions" + }, + "IpPermissionsEgress":{ + "shape":"IpPermissionList", + "locationName":"ipPermissionsEgress" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + } + } + }, + "SecurityGroupIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"SecurityGroupId" + } + }, + "SecurityGroupList":{ + "type":"list", + "member":{ + "shape":"SecurityGroup", + "locationName":"item" + } + }, + "SecurityGroupStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"SecurityGroup" + } + }, + "ShutdownBehavior":{ + "type":"string", + "enum":[ + "stop", + "terminate" + ] + }, + "Snapshot":{ + "type":"structure", + "members":{ + "SnapshotId":{ + "shape":"String", + "locationName":"snapshotId" + }, + "VolumeId":{ + "shape":"String", + "locationName":"volumeId" + }, + "State":{ + "shape":"SnapshotState", + "locationName":"status" + }, + "StartTime":{ + "shape":"DateTime", + "locationName":"startTime" + }, + "Progress":{ + "shape":"String", + "locationName":"progress" + }, + "OwnerId":{ + "shape":"String", + "locationName":"ownerId" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "VolumeSize":{ + "shape":"Integer", + "locationName":"volumeSize" + }, + "OwnerAlias":{ + "shape":"String", + "locationName":"ownerAlias" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "Encrypted":{ + "shape":"Boolean", + "locationName":"encrypted" + }, + "KmsKeyId":{ + "shape":"String", + "locationName":"kmsKeyId" + } + } + }, + "SnapshotAttributeName":{ + "type":"string", + "enum":[ + "productCodes", + "createVolumePermission" + ] + }, + "SnapshotDetail":{ + "type":"structure", + "members":{ + "DiskImageSize":{ + "shape":"Double", + "locationName":"diskImageSize" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "Format":{ + "shape":"String", + "locationName":"format" + }, + "Url":{ + "shape":"String", + "locationName":"url" + }, + "UserBucket":{ + "shape":"UserBucketDetails", + "locationName":"userBucket" + }, + "DeviceName":{ + "shape":"String", + "locationName":"deviceName" + }, + "SnapshotId":{ + "shape":"String", + "locationName":"snapshotId" + }, + "Progress":{ + "shape":"String", + "locationName":"progress" + }, + "StatusMessage":{ + "shape":"String", + "locationName":"statusMessage" + }, + "Status":{ + "shape":"String", + "locationName":"status" + } + } + }, + "SnapshotDetailList":{ + "type":"list", + "member":{ + "shape":"SnapshotDetail", + "locationName":"item" + } + }, + "SnapshotDiskContainer":{ + "type":"structure", + "members":{ + "Description":{"shape":"String"}, + "Format":{"shape":"String"}, + "Url":{"shape":"String"}, + "UserBucket":{"shape":"UserBucket"} + } + }, + "SnapshotIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"SnapshotId" + } + }, + "SnapshotList":{ + "type":"list", + "member":{ + "shape":"Snapshot", + "locationName":"item" + } + }, + "SnapshotState":{ + "type":"string", + "enum":[ + "pending", + "completed", + "error" + ] + }, + "SnapshotTaskDetail":{ + "type":"structure", + "members":{ + "DiskImageSize":{ + "shape":"Double", + "locationName":"diskImageSize" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "Format":{ + "shape":"String", + "locationName":"format" + }, + "Url":{ + "shape":"String", + "locationName":"url" + }, + "UserBucket":{ + "shape":"UserBucketDetails", + "locationName":"userBucket" + }, + "SnapshotId":{ + "shape":"String", + "locationName":"snapshotId" + }, + "Progress":{ + "shape":"String", + "locationName":"progress" + }, + "StatusMessage":{ + "shape":"String", + "locationName":"statusMessage" + }, + "Status":{ + "shape":"String", + "locationName":"status" + } + } + }, + "SpotDatafeedSubscription":{ + "type":"structure", + "members":{ + "OwnerId":{ + "shape":"String", + "locationName":"ownerId" + }, + "Bucket":{ + "shape":"String", + "locationName":"bucket" + }, + "Prefix":{ + "shape":"String", + "locationName":"prefix" + }, + "State":{ + "shape":"DatafeedSubscriptionState", + "locationName":"state" + }, + "Fault":{ + "shape":"SpotInstanceStateFault", + "locationName":"fault" + } + } + }, + "SpotFleetRequestConfig":{ + "type":"structure", + "required":[ + "SpotFleetRequestId", + "SpotFleetRequestState", + "SpotFleetRequestConfig" + ], + "members":{ + "SpotFleetRequestId":{ + "shape":"String", + "locationName":"spotFleetRequestId" + }, + "SpotFleetRequestState":{ + "shape":"BatchState", + "locationName":"spotFleetRequestState" + }, + "SpotFleetRequestConfig":{ + "shape":"SpotFleetRequestConfigData", + "locationName":"spotFleetRequestConfig" + } + } + }, + "SpotFleetRequestConfigData":{ + "type":"structure", + "required":[ + "SpotPrice", + "TargetCapacity", + "IamFleetRole", + "LaunchSpecifications" + ], + "members":{ + "ClientToken":{ + "shape":"String", + "locationName":"clientToken" + }, + "SpotPrice":{ + "shape":"String", + "locationName":"spotPrice" + }, + "TargetCapacity":{ + "shape":"Integer", + "locationName":"targetCapacity" + }, + "ValidFrom":{ + "shape":"DateTime", + "locationName":"validFrom" + }, + "ValidUntil":{ + "shape":"DateTime", + "locationName":"validUntil" + }, + "TerminateInstancesWithExpiration":{ + "shape":"Boolean", + "locationName":"terminateInstancesWithExpiration" + }, + "IamFleetRole":{ + "shape":"String", + "locationName":"iamFleetRole" + }, + "LaunchSpecifications":{ + "shape":"LaunchSpecsList", + "locationName":"launchSpecifications" + } + } + }, + "SpotFleetRequestConfigSet":{ + "type":"list", + "member":{ + "shape":"SpotFleetRequestConfig", + "locationName":"item" + } + }, + "SpotInstanceRequest":{ + "type":"structure", + "members":{ + "SpotInstanceRequestId":{ + "shape":"String", + "locationName":"spotInstanceRequestId" + }, + "SpotPrice":{ + "shape":"String", + "locationName":"spotPrice" + }, + "Type":{ + "shape":"SpotInstanceType", + "locationName":"type" + }, + "State":{ + "shape":"SpotInstanceState", + "locationName":"state" + }, + "Fault":{ + "shape":"SpotInstanceStateFault", + "locationName":"fault" + }, + "Status":{ + "shape":"SpotInstanceStatus", + "locationName":"status" + }, + "ValidFrom":{ + "shape":"DateTime", + "locationName":"validFrom" + }, + "ValidUntil":{ + "shape":"DateTime", + "locationName":"validUntil" + }, + "LaunchGroup":{ + "shape":"String", + "locationName":"launchGroup" + }, + "AvailabilityZoneGroup":{ + "shape":"String", + "locationName":"availabilityZoneGroup" + }, + "LaunchSpecification":{ + "shape":"LaunchSpecification", + "locationName":"launchSpecification" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "CreateTime":{ + "shape":"DateTime", + "locationName":"createTime" + }, + "ProductDescription":{ + "shape":"RIProductDescription", + "locationName":"productDescription" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "LaunchedAvailabilityZone":{ + "shape":"String", + "locationName":"launchedAvailabilityZone" + } + } + }, + "SpotInstanceRequestIdList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"SpotInstanceRequestId" + } + }, + "SpotInstanceRequestList":{ + "type":"list", + "member":{ + "shape":"SpotInstanceRequest", + "locationName":"item" + } + }, + "SpotInstanceState":{ + "type":"string", + "enum":[ + "open", + "active", + "closed", + "cancelled", + "failed" + ] + }, + "SpotInstanceStateFault":{ + "type":"structure", + "members":{ + "Code":{ + "shape":"String", + "locationName":"code" + }, + "Message":{ + "shape":"String", + "locationName":"message" + } + } + }, + "SpotInstanceStatus":{ + "type":"structure", + "members":{ + "Code":{ + "shape":"String", + "locationName":"code" + }, + "UpdateTime":{ + "shape":"DateTime", + "locationName":"updateTime" + }, + "Message":{ + "shape":"String", + "locationName":"message" + } + } + }, + "SpotInstanceType":{ + "type":"string", + "enum":[ + "one-time", + "persistent" + ] + }, + "SpotPlacement":{ + "type":"structure", + "members":{ + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "GroupName":{ + "shape":"String", + "locationName":"groupName" + } + } + }, + "SpotPrice":{ + "type":"structure", + "members":{ + "InstanceType":{ + "shape":"InstanceType", + "locationName":"instanceType" + }, + "ProductDescription":{ + "shape":"RIProductDescription", + "locationName":"productDescription" + }, + "SpotPrice":{ + "shape":"String", + "locationName":"spotPrice" + }, + "Timestamp":{ + "shape":"DateTime", + "locationName":"timestamp" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + } + } + }, + "SpotPriceHistoryList":{ + "type":"list", + "member":{ + "shape":"SpotPrice", + "locationName":"item" + } + }, + "StartInstancesRequest":{ + "type":"structure", + "required":["InstanceIds"], + "members":{ + "InstanceIds":{ + "shape":"InstanceIdStringList", + "locationName":"InstanceId" + }, + "AdditionalInfo":{ + "shape":"String", + "locationName":"additionalInfo" + }, + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + } + } + }, + "StartInstancesResult":{ + "type":"structure", + "members":{ + "StartingInstances":{ + "shape":"InstanceStateChangeList", + "locationName":"instancesSet" + } + } + }, + "State":{ + "type":"string", + "enum":[ + "Pending", + "Available", + "Deleting", + "Deleted" + ] + }, + "StateReason":{ + "type":"structure", + "members":{ + "Code":{ + "shape":"String", + "locationName":"code" + }, + "Message":{ + "shape":"String", + "locationName":"message" + } + } + }, + "Status":{ + "type":"string", + "enum":[ + "MoveInProgress", + "InVpc", + "InClassic" + ] + }, + "StatusName":{ + "type":"string", + "enum":["reachability"] + }, + "StatusType":{ + "type":"string", + "enum":[ + "passed", + "failed", + "insufficient-data", + "initializing" + ] + }, + "StopInstancesRequest":{ + "type":"structure", + "required":["InstanceIds"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceIds":{ + "shape":"InstanceIdStringList", + "locationName":"InstanceId" + }, + "Force":{ + "shape":"Boolean", + "locationName":"force" + } + } + }, + "StopInstancesResult":{ + "type":"structure", + "members":{ + "StoppingInstances":{ + "shape":"InstanceStateChangeList", + "locationName":"instancesSet" + } + } + }, + "Storage":{ + "type":"structure", + "members":{ + "S3":{"shape":"S3Storage"} + } + }, + "String":{"type":"string"}, + "Subnet":{ + "type":"structure", + "members":{ + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "State":{ + "shape":"SubnetState", + "locationName":"state" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "CidrBlock":{ + "shape":"String", + "locationName":"cidrBlock" + }, + "AvailableIpAddressCount":{ + "shape":"Integer", + "locationName":"availableIpAddressCount" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "DefaultForAz":{ + "shape":"Boolean", + "locationName":"defaultForAz" + }, + "MapPublicIpOnLaunch":{ + "shape":"Boolean", + "locationName":"mapPublicIpOnLaunch" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + } + } + }, + "SubnetIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"SubnetId" + } + }, + "SubnetList":{ + "type":"list", + "member":{ + "shape":"Subnet", + "locationName":"item" + } + }, + "SubnetState":{ + "type":"string", + "enum":[ + "pending", + "available" + ] + }, + "SummaryStatus":{ + "type":"string", + "enum":[ + "ok", + "impaired", + "insufficient-data", + "not-applicable", + "initializing" + ] + }, + "Tag":{ + "type":"structure", + "members":{ + "Key":{ + "shape":"String", + "locationName":"key" + }, + "Value":{ + "shape":"String", + "locationName":"value" + } + } + }, + "TagDescription":{ + "type":"structure", + "members":{ + "ResourceId":{ + "shape":"String", + "locationName":"resourceId" + }, + "ResourceType":{ + "shape":"ResourceType", + "locationName":"resourceType" + }, + "Key":{ + "shape":"String", + "locationName":"key" + }, + "Value":{ + "shape":"String", + "locationName":"value" + } + } + }, + "TagDescriptionList":{ + "type":"list", + "member":{ + "shape":"TagDescription", + "locationName":"item" + } + }, + "TagList":{ + "type":"list", + "member":{ + "shape":"Tag", + "locationName":"item" + } + }, + "TelemetryStatus":{ + "type":"string", + "enum":[ + "UP", + "DOWN" + ] + }, + "Tenancy":{ + "type":"string", + "enum":[ + "default", + "dedicated" + ] + }, + "TerminateInstancesRequest":{ + "type":"structure", + "required":["InstanceIds"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceIds":{ + "shape":"InstanceIdStringList", + "locationName":"InstanceId" + } + } + }, + "TerminateInstancesResult":{ + "type":"structure", + "members":{ + "TerminatingInstances":{ + "shape":"InstanceStateChangeList", + "locationName":"instancesSet" + } + } + }, + "TrafficType":{ + "type":"string", + "enum":[ + "ACCEPT", + "REJECT", + "ALL" + ] + }, + "UnassignPrivateIpAddressesRequest":{ + "type":"structure", + "required":[ + "NetworkInterfaceId", + "PrivateIpAddresses" + ], + "members":{ + "NetworkInterfaceId":{ + "shape":"String", + "locationName":"networkInterfaceId" + }, + "PrivateIpAddresses":{ + "shape":"PrivateIpAddressStringList", + "locationName":"privateIpAddress" + } + } + }, + "UnmonitorInstancesRequest":{ + "type":"structure", + "required":["InstanceIds"], + "members":{ + "DryRun":{ + "shape":"Boolean", + "locationName":"dryRun" + }, + "InstanceIds":{ + "shape":"InstanceIdStringList", + "locationName":"InstanceId" + } + } + }, + "UnmonitorInstancesResult":{ + "type":"structure", + "members":{ + "InstanceMonitorings":{ + "shape":"InstanceMonitoringList", + "locationName":"instancesSet" + } + } + }, + "UnsuccessfulItem":{ + "type":"structure", + "required":["Error"], + "members":{ + "ResourceId":{ + "shape":"String", + "locationName":"resourceId" + }, + "Error":{ + "shape":"UnsuccessfulItemError", + "locationName":"error" + } + } + }, + "UnsuccessfulItemError":{ + "type":"structure", + "required":[ + "Code", + "Message" + ], + "members":{ + "Code":{ + "shape":"String", + "locationName":"code" + }, + "Message":{ + "shape":"String", + "locationName":"message" + } + } + }, + "UnsuccessfulItemSet":{ + "type":"list", + "member":{ + "shape":"UnsuccessfulItem", + "locationName":"item" + } + }, + "UserBucket":{ + "type":"structure", + "members":{ + "S3Bucket":{"shape":"String"}, + "S3Key":{"shape":"String"} + } + }, + "UserBucketDetails":{ + "type":"structure", + "members":{ + "S3Bucket":{ + "shape":"String", + "locationName":"s3Bucket" + }, + "S3Key":{ + "shape":"String", + "locationName":"s3Key" + } + } + }, + "UserData":{ + "type":"structure", + "members":{ + "Data":{ + "shape":"String", + "locationName":"data" + } + } + }, + "UserGroupStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"UserGroup" + } + }, + "UserIdGroupPair":{ + "type":"structure", + "members":{ + "UserId":{ + "shape":"String", + "locationName":"userId" + }, + "GroupName":{ + "shape":"String", + "locationName":"groupName" + }, + "GroupId":{ + "shape":"String", + "locationName":"groupId" + } + } + }, + "UserIdGroupPairList":{ + "type":"list", + "member":{ + "shape":"UserIdGroupPair", + "locationName":"item" + } + }, + "UserIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"UserId" + } + }, + "ValueStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"item" + } + }, + "VgwTelemetry":{ + "type":"structure", + "members":{ + "OutsideIpAddress":{ + "shape":"String", + "locationName":"outsideIpAddress" + }, + "Status":{ + "shape":"TelemetryStatus", + "locationName":"status" + }, + "LastStatusChange":{ + "shape":"DateTime", + "locationName":"lastStatusChange" + }, + "StatusMessage":{ + "shape":"String", + "locationName":"statusMessage" + }, + "AcceptedRouteCount":{ + "shape":"Integer", + "locationName":"acceptedRouteCount" + } + } + }, + "VgwTelemetryList":{ + "type":"list", + "member":{ + "shape":"VgwTelemetry", + "locationName":"item" + } + }, + "VirtualizationType":{ + "type":"string", + "enum":[ + "hvm", + "paravirtual" + ] + }, + "Volume":{ + "type":"structure", + "members":{ + "VolumeId":{ + "shape":"String", + "locationName":"volumeId" + }, + "Size":{ + "shape":"Integer", + "locationName":"size" + }, + "SnapshotId":{ + "shape":"String", + "locationName":"snapshotId" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "State":{ + "shape":"VolumeState", + "locationName":"status" + }, + "CreateTime":{ + "shape":"DateTime", + "locationName":"createTime" + }, + "Attachments":{ + "shape":"VolumeAttachmentList", + "locationName":"attachmentSet" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "VolumeType":{ + "shape":"VolumeType", + "locationName":"volumeType" + }, + "Iops":{ + "shape":"Integer", + "locationName":"iops" + }, + "Encrypted":{ + "shape":"Boolean", + "locationName":"encrypted" + }, + "KmsKeyId":{ + "shape":"String", + "locationName":"kmsKeyId" + } + } + }, + "VolumeAttachment":{ + "type":"structure", + "members":{ + "VolumeId":{ + "shape":"String", + "locationName":"volumeId" + }, + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "Device":{ + "shape":"String", + "locationName":"device" + }, + "State":{ + "shape":"VolumeAttachmentState", + "locationName":"status" + }, + "AttachTime":{ + "shape":"DateTime", + "locationName":"attachTime" + }, + "DeleteOnTermination":{ + "shape":"Boolean", + "locationName":"deleteOnTermination" + } + } + }, + "VolumeAttachmentList":{ + "type":"list", + "member":{ + "shape":"VolumeAttachment", + "locationName":"item" + } + }, + "VolumeAttachmentState":{ + "type":"string", + "enum":[ + "attaching", + "attached", + "detaching", + "detached" + ] + }, + "VolumeAttributeName":{ + "type":"string", + "enum":[ + "autoEnableIO", + "productCodes" + ] + }, + "VolumeDetail":{ + "type":"structure", + "required":["Size"], + "members":{ + "Size":{ + "shape":"Long", + "locationName":"size" + } + } + }, + "VolumeIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"VolumeId" + } + }, + "VolumeList":{ + "type":"list", + "member":{ + "shape":"Volume", + "locationName":"item" + } + }, + "VolumeState":{ + "type":"string", + "enum":[ + "creating", + "available", + "in-use", + "deleting", + "deleted", + "error" + ] + }, + "VolumeStatusAction":{ + "type":"structure", + "members":{ + "Code":{ + "shape":"String", + "locationName":"code" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "EventType":{ + "shape":"String", + "locationName":"eventType" + }, + "EventId":{ + "shape":"String", + "locationName":"eventId" + } + } + }, + "VolumeStatusActionsList":{ + "type":"list", + "member":{ + "shape":"VolumeStatusAction", + "locationName":"item" + } + }, + "VolumeStatusDetails":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"VolumeStatusName", + "locationName":"name" + }, + "Status":{ + "shape":"String", + "locationName":"status" + } + } + }, + "VolumeStatusDetailsList":{ + "type":"list", + "member":{ + "shape":"VolumeStatusDetails", + "locationName":"item" + } + }, + "VolumeStatusEvent":{ + "type":"structure", + "members":{ + "EventType":{ + "shape":"String", + "locationName":"eventType" + }, + "Description":{ + "shape":"String", + "locationName":"description" + }, + "NotBefore":{ + "shape":"DateTime", + "locationName":"notBefore" + }, + "NotAfter":{ + "shape":"DateTime", + "locationName":"notAfter" + }, + "EventId":{ + "shape":"String", + "locationName":"eventId" + } + } + }, + "VolumeStatusEventsList":{ + "type":"list", + "member":{ + "shape":"VolumeStatusEvent", + "locationName":"item" + } + }, + "VolumeStatusInfo":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"VolumeStatusInfoStatus", + "locationName":"status" + }, + "Details":{ + "shape":"VolumeStatusDetailsList", + "locationName":"details" + } + } + }, + "VolumeStatusInfoStatus":{ + "type":"string", + "enum":[ + "ok", + "impaired", + "insufficient-data" + ] + }, + "VolumeStatusItem":{ + "type":"structure", + "members":{ + "VolumeId":{ + "shape":"String", + "locationName":"volumeId" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "VolumeStatus":{ + "shape":"VolumeStatusInfo", + "locationName":"volumeStatus" + }, + "Events":{ + "shape":"VolumeStatusEventsList", + "locationName":"eventsSet" + }, + "Actions":{ + "shape":"VolumeStatusActionsList", + "locationName":"actionsSet" + } + } + }, + "VolumeStatusList":{ + "type":"list", + "member":{ + "shape":"VolumeStatusItem", + "locationName":"item" + } + }, + "VolumeStatusName":{ + "type":"string", + "enum":[ + "io-enabled", + "io-performance" + ] + }, + "VolumeType":{ + "type":"string", + "enum":[ + "standard", + "io1", + "gp2" + ] + }, + "Vpc":{ + "type":"structure", + "members":{ + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "State":{ + "shape":"VpcState", + "locationName":"state" + }, + "CidrBlock":{ + "shape":"String", + "locationName":"cidrBlock" + }, + "DhcpOptionsId":{ + "shape":"String", + "locationName":"dhcpOptionsId" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "InstanceTenancy":{ + "shape":"Tenancy", + "locationName":"instanceTenancy" + }, + "IsDefault":{ + "shape":"Boolean", + "locationName":"isDefault" + } + } + }, + "VpcAttachment":{ + "type":"structure", + "members":{ + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "State":{ + "shape":"AttachmentStatus", + "locationName":"state" + } + } + }, + "VpcAttachmentList":{ + "type":"list", + "member":{ + "shape":"VpcAttachment", + "locationName":"item" + } + }, + "VpcAttributeName":{ + "type":"string", + "enum":[ + "enableDnsSupport", + "enableDnsHostnames" + ] + }, + "VpcClassicLink":{ + "type":"structure", + "members":{ + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "ClassicLinkEnabled":{ + "shape":"Boolean", + "locationName":"classicLinkEnabled" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + } + } + }, + "VpcClassicLinkIdList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"VpcId" + } + }, + "VpcClassicLinkList":{ + "type":"list", + "member":{ + "shape":"VpcClassicLink", + "locationName":"item" + } + }, + "VpcEndpoint":{ + "type":"structure", + "members":{ + "VpcEndpointId":{ + "shape":"String", + "locationName":"vpcEndpointId" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + }, + "ServiceName":{ + "shape":"String", + "locationName":"serviceName" + }, + "State":{ + "shape":"State", + "locationName":"state" + }, + "PolicyDocument":{ + "shape":"String", + "locationName":"policyDocument" + }, + "RouteTableIds":{ + "shape":"ValueStringList", + "locationName":"routeTableIdSet" + }, + "CreationTimestamp":{ + "shape":"DateTime", + "locationName":"creationTimestamp" + } + } + }, + "VpcEndpointSet":{ + "type":"list", + "member":{ + "shape":"VpcEndpoint", + "locationName":"item" + } + }, + "VpcIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"VpcId" + } + }, + "VpcList":{ + "type":"list", + "member":{ + "shape":"Vpc", + "locationName":"item" + } + }, + "VpcPeeringConnection":{ + "type":"structure", + "members":{ + "AccepterVpcInfo":{ + "shape":"VpcPeeringConnectionVpcInfo", + "locationName":"accepterVpcInfo" + }, + "ExpirationTime":{ + "shape":"DateTime", + "locationName":"expirationTime" + }, + "RequesterVpcInfo":{ + "shape":"VpcPeeringConnectionVpcInfo", + "locationName":"requesterVpcInfo" + }, + "Status":{ + "shape":"VpcPeeringConnectionStateReason", + "locationName":"status" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "VpcPeeringConnectionId":{ + "shape":"String", + "locationName":"vpcPeeringConnectionId" + } + } + }, + "VpcPeeringConnectionList":{ + "type":"list", + "member":{ + "shape":"VpcPeeringConnection", + "locationName":"item" + } + }, + "VpcPeeringConnectionStateReason":{ + "type":"structure", + "members":{ + "Code":{ + "shape":"String", + "locationName":"code" + }, + "Message":{ + "shape":"String", + "locationName":"message" + } + } + }, + "VpcPeeringConnectionVpcInfo":{ + "type":"structure", + "members":{ + "CidrBlock":{ + "shape":"String", + "locationName":"cidrBlock" + }, + "OwnerId":{ + "shape":"String", + "locationName":"ownerId" + }, + "VpcId":{ + "shape":"String", + "locationName":"vpcId" + } + } + }, + "VpcState":{ + "type":"string", + "enum":[ + "pending", + "available" + ] + }, + "VpnConnection":{ + "type":"structure", + "members":{ + "VpnConnectionId":{ + "shape":"String", + "locationName":"vpnConnectionId" + }, + "State":{ + "shape":"VpnState", + "locationName":"state" + }, + "CustomerGatewayConfiguration":{ + "shape":"String", + "locationName":"customerGatewayConfiguration" + }, + "Type":{ + "shape":"GatewayType", + "locationName":"type" + }, + "CustomerGatewayId":{ + "shape":"String", + "locationName":"customerGatewayId" + }, + "VpnGatewayId":{ + "shape":"String", + "locationName":"vpnGatewayId" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + }, + "VgwTelemetry":{ + "shape":"VgwTelemetryList", + "locationName":"vgwTelemetry" + }, + "Options":{ + "shape":"VpnConnectionOptions", + "locationName":"options" + }, + "Routes":{ + "shape":"VpnStaticRouteList", + "locationName":"routes" + } + } + }, + "VpnConnectionIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"VpnConnectionId" + } + }, + "VpnConnectionList":{ + "type":"list", + "member":{ + "shape":"VpnConnection", + "locationName":"item" + } + }, + "VpnConnectionOptions":{ + "type":"structure", + "members":{ + "StaticRoutesOnly":{ + "shape":"Boolean", + "locationName":"staticRoutesOnly" + } + } + }, + "VpnConnectionOptionsSpecification":{ + "type":"structure", + "members":{ + "StaticRoutesOnly":{ + "shape":"Boolean", + "locationName":"staticRoutesOnly" + } + } + }, + "VpnGateway":{ + "type":"structure", + "members":{ + "VpnGatewayId":{ + "shape":"String", + "locationName":"vpnGatewayId" + }, + "State":{ + "shape":"VpnState", + "locationName":"state" + }, + "Type":{ + "shape":"GatewayType", + "locationName":"type" + }, + "AvailabilityZone":{ + "shape":"String", + "locationName":"availabilityZone" + }, + "VpcAttachments":{ + "shape":"VpcAttachmentList", + "locationName":"attachments" + }, + "Tags":{ + "shape":"TagList", + "locationName":"tagSet" + } + } + }, + "VpnGatewayIdStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"VpnGatewayId" + } + }, + "VpnGatewayList":{ + "type":"list", + "member":{ + "shape":"VpnGateway", + "locationName":"item" + } + }, + "VpnState":{ + "type":"string", + "enum":[ + "pending", + "available", + "deleting", + "deleted" + ] + }, + "VpnStaticRoute":{ + "type":"structure", + "members":{ + "DestinationCidrBlock":{ + "shape":"String", + "locationName":"destinationCidrBlock" + }, + "Source":{ + "shape":"VpnStaticRouteSource", + "locationName":"source" + }, + "State":{ + "shape":"VpnState", + "locationName":"state" + } + } + }, + "VpnStaticRouteList":{ + "type":"list", + "member":{ + "shape":"VpnStaticRoute", + "locationName":"item" + } + }, + "VpnStaticRouteSource":{ + "type":"string", + "enum":["Static"] + }, + "ZoneNameStringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"ZoneName" + } + }, + "NewDhcpConfigurationList":{ + "type":"list", + "member":{ + "shape":"NewDhcpConfiguration", + "locationName":"item" + } + }, + "NewDhcpConfiguration":{ + "type":"structure", + "members":{ + "Key":{ + "shape":"String", + "locationName":"key" + }, + "Values":{ + "shape":"ValueStringList", + "locationName":"Value" + } + } + }, + "DhcpConfigurationValueList":{ + "type":"list", + "member":{ + "shape":"AttributeValue", + "locationName":"item" + } + }, + "Blob":{"type":"blob"}, + "BlobAttributeValue":{ + "type":"structure", + "members":{ + "Value":{ + "shape":"Blob", + "locationName":"value" + } + } + }, + "RequestSpotLaunchSpecification":{ + "type":"structure", + "members":{ + "ImageId":{ + "shape":"String", + "locationName":"imageId" + }, + "KeyName":{ + "shape":"String", + "locationName":"keyName" + }, + "SecurityGroups":{ + "shape":"ValueStringList", + "locationName":"SecurityGroup" + }, + "UserData":{ + "shape":"String", + "locationName":"userData" + }, + "AddressingType":{ + "shape":"String", + "locationName":"addressingType" + }, + "InstanceType":{ + "shape":"InstanceType", + "locationName":"instanceType" + }, + "Placement":{ + "shape":"SpotPlacement", + "locationName":"placement" + }, + "KernelId":{ + "shape":"String", + "locationName":"kernelId" + }, + "RamdiskId":{ + "shape":"String", + "locationName":"ramdiskId" + }, + "BlockDeviceMappings":{ + "shape":"BlockDeviceMappingList", + "locationName":"blockDeviceMapping" + }, + "SubnetId":{ + "shape":"String", + "locationName":"subnetId" + }, + "NetworkInterfaces":{ + "shape":"InstanceNetworkInterfaceSpecificationList", + "locationName":"NetworkInterface" + }, + "IamInstanceProfile":{ + "shape":"IamInstanceProfileSpecification", + "locationName":"iamInstanceProfile" + }, + "EbsOptimized":{ + "shape":"Boolean", + "locationName":"ebsOptimized" + }, + "Monitoring":{ + "shape":"RunInstancesMonitoringEnabled", + "locationName":"monitoring" + }, + "SecurityGroupIds":{ + "shape":"ValueStringList", + "locationName":"SecurityGroupId" + } + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/ec2/2015-04-15/docs-2.json b/lib/aws-sdk/Aws/data/ec2/2015-04-15/docs-2.json new file mode 100644 index 0000000..db01adf --- /dev/null +++ b/lib/aws-sdk/Aws/data/ec2/2015-04-15/docs-2.json @@ -0,0 +1,5448 @@ +{ + "version": "2.0", + "operations": { + "AcceptVpcPeeringConnection": "

Accept a VPC peering connection request. To accept a request, the VPC peering connection must be in the pending-acceptance state, and you must be the owner of the peer VPC. Use the DescribeVpcPeeringConnections request to view your outstanding VPC peering connection requests.

", + "AllocateAddress": "

Acquires an Elastic IP address.

An Elastic IP address is for use either in the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

", + "AssignPrivateIpAddresses": "

Assigns one or more secondary private IP addresses to the specified network interface. You can specify one or more specific secondary IP addresses, or you can specify the number of secondary IP addresses to be automatically assigned within the subnet's CIDR block range. The number of secondary IP addresses that you can assign to an instance varies by instance type. For information about instance types, see Instance Types in the Amazon Elastic Compute Cloud User Guide. For more information about Elastic IP addresses, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

AssignPrivateIpAddresses is available only in EC2-VPC.

", + "AssociateAddress": "

Associates an Elastic IP address with an instance or a network interface.

An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

[EC2-Classic, VPC in an EC2-VPC-only account] If the Elastic IP address is already associated with a different instance, it is disassociated from that instance and associated with the specified instance.

[VPC in an EC2-Classic account] If you don't specify a private IP address, the Elastic IP address is associated with the primary IP address. If the Elastic IP address is already associated with a different instance or a network interface, you get an error unless you allow reassociation.

This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error.

", + "AssociateDhcpOptions": "

Associates a set of DHCP options (that you've previously created) with the specified VPC, or associates no DHCP options with the VPC.

After you associate the options with the VPC, any existing instances and all new instances that you launch in that VPC use the options. You don't need to restart or relaunch the instances. They automatically pick up the changes within a few hours, depending on how frequently the instance renews its DHCP lease. You can explicitly renew the lease using the operating system on the instance.

For more information, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide.

", + "AssociateRouteTable": "

Associates a subnet with a route table. The subnet and route table must be in the same VPC. This association causes traffic originating from the subnet to be routed according to the routes in the route table. The action returns an association ID, which you need in order to disassociate the route table from the subnet later. A route table can be associated with multiple subnets.

For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", + "AttachClassicLinkVpc": "

Links an EC2-Classic instance to a ClassicLink-enabled VPC through one or more of the VPC's security groups. You cannot link an EC2-Classic instance to more than one VPC at a time. You can only link an instance that's in the running state. An instance is automatically unlinked from a VPC when it's stopped - you can link it to the VPC again when you restart it.

After you've linked an instance, you cannot change the VPC security groups that are associated with it. To change the security groups, you must first unlink the instance, and then link it again.

Linking your instance to a VPC is sometimes referred to as attaching your instance.

", + "AttachInternetGateway": "

Attaches an Internet gateway to a VPC, enabling connectivity between the Internet and the VPC. For more information about your VPC and Internet gateway, see the Amazon Virtual Private Cloud User Guide.

", + "AttachNetworkInterface": "

Attaches a network interface to an instance.

", + "AttachVolume": "

Attaches an EBS volume to a running or stopped instance and exposes it to the instance with the specified device name.

Encrypted EBS volumes may only be attached to instances that support Amazon EBS encryption. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

For a list of supported device names, see Attaching an EBS Volume to an Instance. Any device names that aren't reserved for instance store volumes can be used for EBS volumes. For more information, see Amazon EC2 Instance Store in the Amazon Elastic Compute Cloud User Guide.

If a volume has an AWS Marketplace product code:

  • The volume can be attached only to a stopped instance.
  • AWS Marketplace product codes are copied from the volume to the instance.
  • You must be subscribed to the product.
  • The instance type and operating system of the instance must support the product. For example, you can't detach a volume from a Windows instance and attach it to a Linux instance.

For an overview of the AWS Marketplace, see Introducing AWS Marketplace.

For more information about EBS volumes, see Attaching Amazon EBS Volumes in the Amazon Elastic Compute Cloud User Guide.

", + "AttachVpnGateway": "

Attaches a virtual private gateway to a VPC. For more information, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

", + "AuthorizeSecurityGroupEgress": "

Adds one or more egress rules to a security group for use with a VPC. Specifically, this action permits instances to send traffic to one or more destination CIDR IP address ranges, or to one or more destination security groups for the same VPC.

You can have up to 50 rules per security group (covering both ingress and egress rules).

A security group is for use with instances either in the EC2-Classic platform or in a specific VPC. This action doesn't apply to security groups for use in EC2-Classic. For more information, see Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide.

Each rule consists of the protocol (for example, TCP), plus either a CIDR range or a source group. For the TCP and UDP protocols, you must also specify the destination port or port range. For the ICMP protocol, you must also specify the ICMP type and code. You can use -1 for the type or code to mean all types or all codes.

Rule changes are propagated to affected instances as quickly as possible. However, a small delay might occur.

", + "AuthorizeSecurityGroupIngress": "

Adds one or more ingress rules to a security group.

EC2-Classic: You can have up to 100 rules per group.

EC2-VPC: You can have up to 50 rules per group (covering both ingress and egress rules).

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

[EC2-Classic] This action gives one or more CIDR IP address ranges permission to access a security group in your account, or gives one or more security groups (called the source groups) permission to access a security group for your account. A source group can be for your own AWS account, or another.

[EC2-VPC] This action gives one or more CIDR IP address ranges permission to access a security group in your VPC, or gives one or more other security groups (called the source groups) permission to access a security group for your VPC. The security groups must all be for the same VPC.

", + "BundleInstance": "

Bundles an Amazon instance store-backed Windows instance.

During bundling, only the root device volume (C:\\) is bundled. Data on other instance store volumes is not preserved.

This action is not applicable for Linux/Unix instances or Windows instances that are backed by Amazon EBS.

For more information, see Creating an Instance Store-Backed Windows AMI.

", + "CancelBundleTask": "

Cancels a bundling operation for an instance store-backed Windows instance.

", + "CancelConversionTask": "

Cancels an active conversion task. The task can be the import of an instance or volume. The action removes all artifacts of the conversion, including a partially uploaded volume or instance. If the conversion is complete or is in the process of transferring the final disk image, the command fails and returns an exception.

For more information, see Using the Command Line Tools to Import Your Virtual Machine to Amazon EC2 in the Amazon Elastic Compute Cloud User Guide.

", + "CancelExportTask": "

Cancels an active export task. The request removes all artifacts of the export, including any partially-created Amazon S3 objects. If the export task is complete or is in the process of transferring the final disk image, the command fails and returns an error.

", + "CancelImportTask": "

Cancels an in-process import virtual machine or import snapshot task.

", + "CancelReservedInstancesListing": "

Cancels the specified Reserved Instance listing in the Reserved Instance Marketplace.

For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.

", + "CancelSpotFleetRequests": "

Cancels the specified Spot fleet requests.

", + "CancelSpotInstanceRequests": "

Cancels one or more Spot Instance requests. Spot Instances are instances that Amazon EC2 starts on your behalf when the bid price that you specify exceeds the current Spot Price. Amazon EC2 periodically sets the Spot Price based on available Spot Instance capacity and current Spot Instance requests. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide.

Canceling a Spot Instance request does not terminate running Spot Instances associated with the request.

", + "ConfirmProductInstance": "

Determines whether a product code is associated with an instance. This action can only be used by the owner of the product code. It is useful when a product code owner needs to verify whether another user's instance is eligible for support.

", + "CopyImage": "

Initiates the copy of an AMI from the specified source region to the current region. You specify the destination region by using its endpoint when making the request. AMIs that use encrypted EBS snapshots cannot be copied with this method.

For more information, see Copying AMIs in the Amazon Elastic Compute Cloud User Guide.

", + "CopySnapshot": "

Copies a point-in-time snapshot of an EBS volume and stores it in Amazon S3. You can copy the snapshot within the same region or from one region to another. You can use the snapshot to create EBS volumes or Amazon Machine Images (AMIs). The snapshot is copied to the regional endpoint that you send the HTTP request to.

Copies of encrypted EBS snapshots remain encrypted. Copies of unencrypted snapshots remain unencrypted.

Copying snapshots that were encrypted with non-default AWS Key Management Service (KMS) master keys is not supported at this time.

For more information, see Copying an Amazon EBS Snapshot in the Amazon Elastic Compute Cloud User Guide.

", + "CreateCustomerGateway": "

Provides information to AWS about your VPN customer gateway device. The customer gateway is the appliance at your end of the VPN connection. (The device on the AWS side of the VPN connection is the virtual private gateway.) You must provide the Internet-routable IP address of the customer gateway's external interface. The IP address must be static and can't be behind a device performing network address translation (NAT).

For devices that use Border Gateway Protocol (BGP), you can also provide the device's BGP Autonomous System Number (ASN). You can use an existing ASN assigned to your network. If you don't have an ASN already, you can use a private ASN (in the 64512 - 65534 range).

Amazon EC2 supports all 2-byte ASN numbers in the range of 1 - 65534, with the exception of 7224, which is reserved in the us-east-1 region, and 9059, which is reserved in the eu-west-1 region.

For more information about VPN customer gateways, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

You cannot create more than one customer gateway with the same VPN type, IP address, and BGP ASN parameter values. If you run an identical request more than one time, the first request creates the customer gateway, and subsequent requests return information about the existing customer gateway. The subsequent requests do not create new customer gateway resources.

", + "CreateDhcpOptions": "

Creates a set of DHCP options for your VPC. After creating the set, you must associate it with the VPC, causing all existing and new instances that you launch in the VPC to use this set of DHCP options. The following are the individual DHCP options you can specify. For more information about the options, see RFC 2132.

  • domain-name-servers - The IP addresses of up to four domain name servers, or AmazonProvidedDNS. The default DHCP option set specifies AmazonProvidedDNS. If specifying more than one domain name server, specify the IP addresses in a single parameter, separated by commas.
  • domain-name - If you're using AmazonProvidedDNS in us-east-1, specify ec2.internal. If you're using AmazonProvidedDNS in another region, specify region.compute.internal (for example, ap-northeast-1.compute.internal). Otherwise, specify a domain name (for example, MyCompany.com). Important: Some Linux operating systems accept multiple domain names separated by spaces. However, Windows and other Linux operating systems treat the value as a single domain, which results in unexpected behavior. If your DHCP options set is associated with a VPC that has instances with multiple operating systems, specify only one domain name.
  • ntp-servers - The IP addresses of up to four Network Time Protocol (NTP) servers.
  • netbios-name-servers - The IP addresses of up to four NetBIOS name servers.
  • netbios-node-type - The NetBIOS node type (1, 2, 4, or 8). We recommend that you specify 2 (broadcast and multicast are not currently supported). For more information about these node types, see RFC 2132.

Your VPC automatically starts out with a set of DHCP options that includes only a DNS server that we provide (AmazonProvidedDNS). If you create a set of options, and if your VPC has an Internet gateway, make sure to set the domain-name-servers option either to AmazonProvidedDNS or to a domain name server of your choice. For more information about DHCP options, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide.

", + "CreateFlowLogs": "

Creates one or more flow logs to capture IP traffic for a specific network interface, subnet, or VPC. Flow logs are delivered to a specified log group in Amazon CloudWatch Logs. If you specify a VPC or subnet in the request, a log stream is created in CloudWatch Logs for each network interface in the subnet or VPC. Log streams can include information about accepted and rejected traffic to a network interface. You can view the data in your log streams using Amazon CloudWatch Logs.

In your request, you must also specify an IAM role that has permission to publish logs to CloudWatch Logs.

", + "CreateImage": "

Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is either running or stopped.

If you customized your instance with instance store volumes or EBS volumes in addition to the root device volume, the new AMI contains block device mapping information for those volumes. When you launch an instance from this new AMI, the instance automatically launches with those additional volumes.

For more information, see Creating Amazon EBS-Backed Linux AMIs in the Amazon Elastic Compute Cloud User Guide.

", + "CreateInstanceExportTask": "

Exports a running or stopped instance to an S3 bucket.

For information about the supported operating systems, image formats, and known limitations for the types of instances you can export, see Exporting EC2 Instances in the Amazon Elastic Compute Cloud User Guide.

", + "CreateInternetGateway": "

Creates an Internet gateway for use with a VPC. After creating the Internet gateway, you attach it to a VPC using AttachInternetGateway.

For more information about your VPC and Internet gateway, see the Amazon Virtual Private Cloud User Guide.

", + "CreateKeyPair": "

Creates a 2048-bit RSA key pair with the specified name. Amazon EC2 stores the public key and displays the private key for you to save to a file. The private key is returned as an unencrypted PEM encoded PKCS#8 private key. If a key with the specified name already exists, Amazon EC2 returns an error.

You can have up to five thousand key pairs per region.

The key pair returned to you is available only in the region in which you create it. To create a key pair that is available in all regions, use ImportKeyPair.

For more information about key pairs, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.

", + "CreateNetworkAcl": "

Creates a network ACL in a VPC. Network ACLs provide an optional layer of security (in addition to security groups) for the instances in your VPC.

For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.

", + "CreateNetworkAclEntry": "

Creates an entry (a rule) in a network ACL with the specified rule number. Each network ACL has a set of numbered ingress rules and a separate set of numbered egress rules. When determining whether a packet should be allowed in or out of a subnet associated with the ACL, we process the entries in the ACL according to the rule numbers, in ascending order. Each network ACL has a set of ingress rules and a separate set of egress rules.

We recommend that you leave room between the rule numbers (for example, 100, 110, 120, ...), and not number them one right after the other (for example, 101, 102, 103, ...). This makes it easier to add a rule between existing ones without having to renumber the rules.

After you add an entry, you can't modify it; you must either replace it, or create an entry and delete the old one.

For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.

", + "CreateNetworkInterface": "

Creates a network interface in the specified subnet.

For more information about network interfaces, see Elastic Network Interfaces in the Amazon Elastic Compute Cloud User Guide.

", + "CreatePlacementGroup": "

Creates a placement group that you launch cluster instances into. You must give the group a name that's unique within the scope of your account.

For more information about placement groups and cluster instances, see Cluster Instances in the Amazon Elastic Compute Cloud User Guide.

", + "CreateReservedInstancesListing": "

Creates a listing for Amazon EC2 Reserved Instances to be sold in the Reserved Instance Marketplace. You can submit one Reserved Instance listing at a time. To get a list of your Reserved Instances, you can use the DescribeReservedInstances operation.

The Reserved Instance Marketplace matches sellers who want to resell Reserved Instance capacity that they no longer need with buyers who want to purchase additional capacity. Reserved Instances bought and sold through the Reserved Instance Marketplace work like any other Reserved Instances.

To sell your Reserved Instances, you must first register as a seller in the Reserved Instance Marketplace. After completing the registration process, you can create a Reserved Instance Marketplace listing of some or all of your Reserved Instances, and specify the upfront price to receive for them. Your Reserved Instance listings then become available for purchase. To view the details of your Reserved Instance listing, you can use the DescribeReservedInstancesListings operation.

For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.

", + "CreateRoute": "

Creates a route in a route table within a VPC.

You must specify one of the following targets: Internet gateway or virtual private gateway, NAT instance, VPC peering connection, or network interface.

When determining how to route traffic, we use the route with the most specific match. For example, let's say the traffic is destined for 192.0.2.3, and the route table includes the following two routes:

  • 192.0.2.0/24 (goes to some target A)

  • 192.0.2.0/28 (goes to some target B)

Both routes apply to the traffic destined for 192.0.2.3. However, the second route in the list covers a smaller number of IP addresses and is therefore more specific, so we use that route to determine where to target the traffic.

For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", + "CreateRouteTable": "

Creates a route table for the specified VPC. After you create a route table, you can add routes and associate the table with a subnet.

For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", + "CreateSecurityGroup": "

Creates a security group.

A security group is for use with instances either in the EC2-Classic platform or in a specific VPC. For more information, see Amazon EC2 Security Groups in the Amazon Elastic Compute Cloud User Guide and Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide.

EC2-Classic: You can have up to 500 security groups.

EC2-VPC: You can create up to 100 security groups per VPC.

When you create a security group, you specify a friendly name of your choice. You can have a security group for use in EC2-Classic with the same name as a security group for use in a VPC. However, you can't have two security groups for use in EC2-Classic with the same name or two security groups for use in a VPC with the same name.

You have a default security group for use in EC2-Classic and a default security group for use in your VPC. If you don't specify a security group when you launch an instance, the instance is launched into the appropriate default security group. A default security group includes a default rule that grants instances unrestricted network access to each other.

You can add or remove rules from your security groups using AuthorizeSecurityGroupIngress, AuthorizeSecurityGroupEgress, RevokeSecurityGroupIngress, and RevokeSecurityGroupEgress.

", + "CreateSnapshot": "

Creates a snapshot of an EBS volume and stores it in Amazon S3. You can use snapshots for backups, to make copies of EBS volumes, and to save data before shutting down an instance.

When a snapshot is created, any AWS Marketplace product codes that are associated with the source volume are propagated to the snapshot.

You can take a snapshot of an attached volume that is in use. However, snapshots only capture data that has been written to your EBS volume at the time the snapshot command is issued; this may exclude any data that has been cached by any applications or the operating system. If you can pause any file systems on the volume long enough to take a snapshot, your snapshot should be complete. However, if you cannot pause all file writes to the volume, you should unmount the volume from within the instance, issue the snapshot command, and then remount the volume to ensure a consistent and complete snapshot. You may remount and use your volume while the snapshot status is pending.

To create a snapshot for EBS volumes that serve as root devices, you should stop the instance before taking the snapshot.

Snapshots that are taken from encrypted volumes are automatically encrypted. Volumes that are created from encrypted snapshots are also automatically encrypted. Your encrypted volumes and any associated snapshots always remain protected.

For more information, see Amazon Elastic Block Store and Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

", + "CreateSpotDatafeedSubscription": "

Creates a data feed for Spot Instances, enabling you to view Spot Instance usage logs. You can create one data feed per AWS account. For more information, see Spot Instance Data Feed in the Amazon Elastic Compute Cloud User Guide.

", + "CreateSubnet": "

Creates a subnet in an existing VPC.

When you create each subnet, you provide the VPC ID and the CIDR block you want for the subnet. After you create a subnet, you can't change its CIDR block. The subnet's CIDR block can be the same as the VPC's CIDR block (assuming you want only a single subnet in the VPC), or a subset of the VPC's CIDR block. If you create more than one subnet in a VPC, the subnets' CIDR blocks must not overlap. The smallest subnet (and VPC) you can create uses a /28 netmask (16 IP addresses), and the largest uses a /16 netmask (65,536 IP addresses).

AWS reserves both the first four and the last IP address in each subnet's CIDR block. They're not available for use.

If you add more than one subnet to a VPC, they're set up in a star topology with a logical router in the middle.

If you launch an instance in a VPC using an Amazon EBS-backed AMI, the IP address doesn't change if you stop and restart the instance (unlike a similar instance launched outside a VPC, which gets a new IP address when restarted). It's therefore possible to have a subnet with no running instances (they're all stopped), but no remaining IP addresses available.

For more information about subnets, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide.

", + "CreateTags": "

Adds or overwrites one or more tags for the specified Amazon EC2 resource or resources. Each resource can have a maximum of 10 tags. Each tag consists of a key and optional value. Tag keys must be unique per resource.

For more information about tags, see Tagging Your Resources in the Amazon Elastic Compute Cloud User Guide.

", + "CreateVolume": "

Creates an EBS volume that can be attached to an instance in the same Availability Zone. The volume is created in the regional endpoint that you send the HTTP request to. For more information see Regions and Endpoints.

You can create a new empty volume or restore a volume from an EBS snapshot. Any AWS Marketplace product codes from the snapshot are propagated to the volume.

You can create encrypted volumes with the Encrypted parameter. Encrypted volumes may only be attached to instances that support Amazon EBS encryption. Volumes that are created from encrypted snapshots are also automatically encrypted. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

For more information, see Creating or Restoring an Amazon EBS Volume in the Amazon Elastic Compute Cloud User Guide.

", + "CreateVpc": "

Creates a VPC with the specified CIDR block.

The smallest VPC you can create uses a /28 netmask (16 IP addresses), and the largest uses a /16 netmask (65,536 IP addresses). To help you decide how big to make your VPC, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide.

By default, each instance you launch in the VPC has the default DHCP options, which includes only a default DNS server that we provide (AmazonProvidedDNS). For more information about DHCP options, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide.

", + "CreateVpcEndpoint": "

Creates a VPC endpoint for a specified AWS service. An endpoint enables you to create a private connection between your VPC and another AWS service in your account. You can specify an endpoint policy to attach to the endpoint that will control access to the service from your VPC. You can also specify the VPC route tables that use the endpoint.

Currently, only endpoints to Amazon S3 are supported.

", + "CreateVpcPeeringConnection": "

Requests a VPC peering connection between two VPCs: a requester VPC that you own and a peer VPC with which to create the connection. The peer VPC can belong to another AWS account. The requester VPC and peer VPC cannot have overlapping CIDR blocks.

The owner of the peer VPC must accept the peering request to activate the peering connection. The VPC peering connection request expires after 7 days, after which it cannot be accepted or rejected.

A CreateVpcPeeringConnection request between VPCs with overlapping CIDR blocks results in the VPC peering connection having a status of failed.

", + "CreateVpnConnection": "

Creates a VPN connection between an existing virtual private gateway and a VPN customer gateway. The only supported connection type is ipsec.1.

The response includes information that you need to give to your network administrator to configure your customer gateway.

We strongly recommend that you use HTTPS when calling this operation because the response contains sensitive cryptographic information for configuring your customer gateway.

If you decide to shut down your VPN connection for any reason and later create a new VPN connection, you must reconfigure your customer gateway with the new information returned from this call.

For more information about VPN connections, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

", + "CreateVpnConnectionRoute": "

Creates a static route associated with a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway.

For more information about VPN connections, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

", + "CreateVpnGateway": "

Creates a virtual private gateway. A virtual private gateway is the endpoint on the VPC side of your VPN connection. You can create a virtual private gateway before creating the VPC itself.

For more information about virtual private gateways, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

", + "DeleteCustomerGateway": "

Deletes the specified customer gateway. You must delete the VPN connection before you can delete the customer gateway.

", + "DeleteDhcpOptions": "

Deletes the specified set of DHCP options. You must disassociate the set of DHCP options before you can delete it. You can disassociate the set of DHCP options by associating either a new set of options or the default set of options with the VPC.

", + "DeleteFlowLogs": "

Deletes one or more flow logs.

", + "DeleteInternetGateway": "

Deletes the specified Internet gateway. You must detach the Internet gateway from the VPC before you can delete it.

", + "DeleteKeyPair": "

Deletes the specified key pair, by removing the public key from Amazon EC2.

", + "DeleteNetworkAcl": "

Deletes the specified network ACL. You can't delete the ACL if it's associated with any subnets. You can't delete the default network ACL.

", + "DeleteNetworkAclEntry": "

Deletes the specified ingress or egress entry (rule) from the specified network ACL.

", + "DeleteNetworkInterface": "

Deletes the specified network interface. You must detach the network interface before you can delete it.

", + "DeletePlacementGroup": "

Deletes the specified placement group. You must terminate all instances in the placement group before you can delete the placement group. For more information about placement groups and cluster instances, see Cluster Instances in the Amazon Elastic Compute Cloud User Guide.

", + "DeleteRoute": "

Deletes the specified route from the specified route table.

", + "DeleteRouteTable": "

Deletes the specified route table. You must disassociate the route table from any subnets before you can delete it. You can't delete the main route table.

", + "DeleteSecurityGroup": "

Deletes a security group.

If you attempt to delete a security group that is associated with an instance, or is referenced by another security group, the operation fails with InvalidGroup.InUse in EC2-Classic or DependencyViolation in EC2-VPC.

", + "DeleteSnapshot": "

Deletes the specified snapshot.

When you make periodic snapshots of a volume, the snapshots are incremental, and only the blocks on the device that have changed since your last snapshot are saved in the new snapshot. When you delete a snapshot, only the data not needed for any other snapshot is removed. So regardless of which prior snapshots have been deleted, all active snapshots will have access to all the information needed to restore the volume.

You cannot delete a snapshot of the root device of an EBS volume used by a registered AMI. You must first de-register the AMI before you can delete the snapshot.

For more information, see Deleting an Amazon EBS Snapshot in the Amazon Elastic Compute Cloud User Guide.

", + "DeleteSpotDatafeedSubscription": "

Deletes the data feed for Spot Instances. For more information, see Spot Instance Data Feed in the Amazon Elastic Compute Cloud User Guide.

", + "DeleteSubnet": "

Deletes the specified subnet. You must terminate all running instances in the subnet before you can delete the subnet.

", + "DeleteTags": "

Deletes the specified set of tags from the specified set of resources. This call is designed to follow a DescribeTags request.

For more information about tags, see Tagging Your Resources in the Amazon Elastic Compute Cloud User Guide.

", + "DeleteVolume": "

Deletes the specified EBS volume. The volume must be in the available state (not attached to an instance).

The volume may remain in the deleting state for several minutes.

For more information, see Deleting an Amazon EBS Volume in the Amazon Elastic Compute Cloud User Guide.

", + "DeleteVpc": "

Deletes the specified VPC. You must detach or delete all gateways and resources that are associated with the VPC before you can delete it. For example, you must terminate all instances running in the VPC, delete all security groups associated with the VPC (except the default one), delete all route tables associated with the VPC (except the default one), and so on.

", + "DeleteVpcEndpoints": "

Deletes one or more specified VPC endpoints. Deleting the endpoint also deletes the endpoint routes in the route tables that were associated with the endpoint.

", + "DeleteVpcPeeringConnection": "

Deletes a VPC peering connection. Either the owner of the requester VPC or the owner of the peer VPC can delete the VPC peering connection if it's in the active state. The owner of the requester VPC can delete a VPC peering connection in the pending-acceptance state.

", + "DeleteVpnConnection": "

Deletes the specified VPN connection.

If you're deleting the VPC and its associated components, we recommend that you detach the virtual private gateway from the VPC and delete the VPC before deleting the VPN connection. If you believe that the tunnel credentials for your VPN connection have been compromised, you can delete the VPN connection and create a new one that has new keys, without needing to delete the VPC or virtual private gateway. If you create a new VPN connection, you must reconfigure the customer gateway using the new configuration information returned with the new VPN connection ID.

", + "DeleteVpnConnectionRoute": "

Deletes the specified static route associated with a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway.

", + "DeleteVpnGateway": "

Deletes the specified virtual private gateway. We recommend that before you delete a virtual private gateway, you detach it from the VPC and delete the VPN connection. Note that you don't need to delete the virtual private gateway if you plan to delete and recreate the VPN connection between your VPC and your network.

", + "DeregisterImage": "

Deregisters the specified AMI. After you deregister an AMI, it can't be used to launch new instances.

This command does not delete the AMI.

", + "DescribeAccountAttributes": "

Describes attributes of your AWS account. The following are the supported account attributes:

  • supported-platforms: Indicates whether your account can launch instances into EC2-Classic and EC2-VPC, or only into EC2-VPC.

  • default-vpc: The ID of the default VPC for your account, or none.

  • max-instances: The maximum number of On-Demand instances that you can run.

  • vpc-max-security-groups-per-interface: The maximum number of security groups that you can assign to a network interface.

  • max-elastic-ips: The maximum number of Elastic IP addresses that you can allocate for use with EC2-Classic.

  • vpc-max-elastic-ips: The maximum number of Elastic IP addresses that you can allocate for use with EC2-VPC.

", + "DescribeAddresses": "

Describes one or more of your Elastic IP addresses.

An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeAvailabilityZones": "

Describes one or more of the Availability Zones that are available to you. The results include zones only for the region you're currently using. If there is an event impacting an Availability Zone, you can use this request to view the state and any provided message for that Availability Zone.

For more information, see Regions and Availability Zones in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeBundleTasks": "

Describes one or more of your bundling tasks.

Completed bundle tasks are listed for only a limited time. If your bundle task is no longer in the list, you can still register an AMI from it. Just use RegisterImage with the Amazon S3 bucket name and image manifest name you provided to the bundle task.

", + "DescribeClassicLinkInstances": "

Describes one or more of your linked EC2-Classic instances. This request only returns information about EC2-Classic instances linked to a VPC through ClassicLink; you cannot use this request to return information about other instances.

", + "DescribeConversionTasks": "

Describes one or more of your conversion tasks. For more information, see Using the Command Line Tools to Import Your Virtual Machine to Amazon EC2 in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeCustomerGateways": "

Describes one or more of your VPN customer gateways.

For more information about VPN customer gateways, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

", + "DescribeDhcpOptions": "

Describes one or more of your DHCP options sets.

For more information about DHCP options sets, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide.

", + "DescribeExportTasks": "

Describes one or more of your export tasks.

", + "DescribeFlowLogs": "

Describes one or more flow logs. To view the information in your flow logs (the log streams for the network interfaces), you must use the CloudWatch Logs console or the CloudWatch Logs API.

", + "DescribeImageAttribute": "

Describes the specified attribute of the specified AMI. You can specify only one attribute at a time.

", + "DescribeImages": "

Describes one or more of the images (AMIs, AKIs, and ARIs) available to you. Images available to you include public images, private images that you own, and private images owned by other AWS accounts but for which you have explicit launch permissions.

Deregistered images are included in the returned results for an unspecified interval after deregistration.

", + "DescribeImportImageTasks": "

Displays details about an import virtual machine or import snapshot tasks that are already created.

", + "DescribeImportSnapshotTasks": "

Describes your import snapshot tasks.

", + "DescribeInstanceAttribute": "

Describes the specified attribute of the specified instance. You can specify only one attribute at a time. Valid attribute values are: instanceType | kernel | ramdisk | userData | disableApiTermination | instanceInitiatedShutdownBehavior | rootDeviceName | blockDeviceMapping | productCodes | sourceDestCheck | groupSet | ebsOptimized | sriovNetSupport

", + "DescribeInstanceStatus": "

Describes the status of one or more instances.

Instance status includes the following components:

  • Status checks - Amazon EC2 performs status checks on running EC2 instances to identify hardware and software issues. For more information, see Status Checks for Your Instances and Troubleshooting Instances with Failed Status Checks in the Amazon Elastic Compute Cloud User Guide.

  • Scheduled events - Amazon EC2 can schedule events (such as reboot, stop, or terminate) for your instances related to hardware issues, software updates, or system maintenance. For more information, see Scheduled Events for Your Instances in the Amazon Elastic Compute Cloud User Guide.

  • Instance state - You can manage your instances from the moment you launch them through their termination. For more information, see Instance Lifecycle in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeInstances": "

Describes one or more of your instances.

If you specify one or more instance IDs, Amazon EC2 returns information for those instances. If you do not specify instance IDs, Amazon EC2 returns information for all relevant instances. If you specify an instance ID that is not valid, an error is returned. If you specify an instance that you do not own, it is not included in the returned results.

Recently terminated instances might appear in the returned results. This interval is usually less than one hour.

", + "DescribeInternetGateways": "

Describes one or more of your Internet gateways.

", + "DescribeKeyPairs": "

Describes one or more of your key pairs.

For more information about key pairs, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeMovingAddresses": "

Describes your Elastic IP addresses that are being moved to the EC2-VPC platform, or that are being restored to the EC2-Classic platform. This request does not return information about any other Elastic IP addresses in your account.

", + "DescribeNetworkAcls": "

Describes one or more of your network ACLs.

For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.

", + "DescribeNetworkInterfaceAttribute": "

Describes a network interface attribute. You can specify only one attribute at a time.

", + "DescribeNetworkInterfaces": "

Describes one or more of your network interfaces.

", + "DescribePlacementGroups": "

Describes one or more of your placement groups. For more information about placement groups and cluster instances, see Cluster Instances in the Amazon Elastic Compute Cloud User Guide.

", + "DescribePrefixLists": "

Describes available AWS services in a prefix list format, which includes the prefix list name and prefix list ID of the service and the IP address range for the service. A prefix list ID is required for creating an outbound security group rule that allows traffic from a VPC to access an AWS service through a VPC endpoint.

", + "DescribeRegions": "

Describes one or more regions that are currently available to you.

For a list of the regions supported by Amazon EC2, see Regions and Endpoints.

", + "DescribeReservedInstances": "

Describes one or more of the Reserved Instances that you purchased.

For more information about Reserved Instances, see Reserved Instances in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeReservedInstancesListings": "

Describes your account's Reserved Instance listings in the Reserved Instance Marketplace.

The Reserved Instance Marketplace matches sellers who want to resell Reserved Instance capacity that they no longer need with buyers who want to purchase additional capacity. Reserved Instances bought and sold through the Reserved Instance Marketplace work like any other Reserved Instances.

As a seller, you choose to list some or all of your Reserved Instances, and you specify the upfront price to receive for them. Your Reserved Instances are then listed in the Reserved Instance Marketplace and are available for purchase.

As a buyer, you specify the configuration of the Reserved Instance to purchase, and the Marketplace matches what you're searching for with what's available. The Marketplace first sells the lowest priced Reserved Instances to you, and continues to sell available Reserved Instance listings to you until your demand is met. You are charged based on the total price of all of the listings that you purchase.

For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeReservedInstancesModifications": "

Describes the modifications made to your Reserved Instances. If no parameter is specified, information about all your Reserved Instances modification requests is returned. If a modification ID is specified, only information about the specific modification is returned.

For more information, see Modifying Reserved Instances in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeReservedInstancesOfferings": "

Describes Reserved Instance offerings that are available for purchase. With Reserved Instances, you purchase the right to launch instances for a period of time. During that time period, you do not receive insufficient capacity errors, and you pay a lower usage rate than the rate charged for On-Demand instances for the actual time used.

For more information, see Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeRouteTables": "

Describes one or more of your route tables.

For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", + "DescribeSecurityGroups": "

Describes one or more of your security groups.

A security group is for use with instances either in the EC2-Classic platform or in a specific VPC. For more information, see Amazon EC2 Security Groups in the Amazon Elastic Compute Cloud User Guide and Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide.

", + "DescribeSnapshotAttribute": "

Describes the specified attribute of the specified snapshot. You can specify only one attribute at a time.

For more information about EBS snapshots, see Amazon EBS Snapshots in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeSnapshots": "

Describes one or more of the EBS snapshots available to you. Available snapshots include public snapshots available for any AWS account to launch, private snapshots that you own, and private snapshots owned by another AWS account but for which you've been given explicit create volume permissions.

The create volume permissions fall into the following categories:

  • public: The owner of the snapshot granted create volume permissions for the snapshot to the all group. All AWS accounts have create volume permissions for these snapshots.
  • explicit: The owner of the snapshot granted create volume permissions to a specific AWS account.
  • implicit: An AWS account has implicit create volume permissions for all snapshots it owns.

The list of snapshots returned can be modified by specifying snapshot IDs, snapshot owners, or AWS accounts with create volume permissions. If no options are specified, Amazon EC2 returns all snapshots for which you have create volume permissions.

If you specify one or more snapshot IDs, only snapshots that have the specified IDs are returned. If you specify an invalid snapshot ID, an error is returned. If you specify a snapshot ID for which you do not have access, it is not included in the returned results.

If you specify one or more snapshot owners, only snapshots from the specified owners and for which you have access are returned. The results can include the AWS account IDs of the specified owners, amazon for snapshots owned by Amazon, or self for snapshots that you own.

If you specify a list of restorable users, only snapshots with create snapshot permissions for those users are returned. You can specify AWS account IDs (if you own the snapshots), self for snapshots for which you own or have explicit permissions, or all for public snapshots.

If you are describing a long list of snapshots, you can paginate the output to make the list more manageable. The MaxResults parameter sets the maximum number of results returned in a single page. If the list of results exceeds your MaxResults value, then that number of results is returned along with a NextToken value that can be passed to a subsequent DescribeSnapshots request to retrieve the remaining results.

For more information about EBS snapshots, see Amazon EBS Snapshots in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeSpotDatafeedSubscription": "

Describes the data feed for Spot Instances. For more information, see Spot Instance Data Feed in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeSpotFleetInstances": "

Describes the running instances for the specified Spot fleet.

", + "DescribeSpotFleetRequestHistory": "

Describes the events for the specified Spot fleet request during the specified time.

Spot fleet events are delayed by up to 30 seconds before they can be described. This ensures that you can query by the last evaluated time and not miss a recorded event.

", + "DescribeSpotFleetRequests": "

Describes your Spot fleet requests.

", + "DescribeSpotInstanceRequests": "

Describes the Spot Instance requests that belong to your account. Spot Instances are instances that Amazon EC2 launches when the bid price that you specify exceeds the current Spot Price. Amazon EC2 periodically sets the Spot Price based on available Spot Instance capacity and current Spot Instance requests. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide.

You can use DescribeSpotInstanceRequests to find a running Spot Instance by examining the response. If the status of the Spot Instance is fulfilled, the instance ID appears in the response and contains the identifier of the instance. Alternatively, you can use DescribeInstances with a filter to look for instances where the instance lifecycle is spot.

", + "DescribeSpotPriceHistory": "

Describes the Spot Price history. The prices returned are listed in chronological order, from the oldest to the most recent, for up to the past 90 days. For more information, see Spot Instance Pricing History in the Amazon Elastic Compute Cloud User Guide.

When you specify a start and end time, this operation returns the prices of the instance types within the time range that you specified and the time when the price changed. The price is valid within the time period that you specified; the response merely indicates the last time that the price changed.

", + "DescribeSubnets": "

Describes one or more of your subnets.

For more information about subnets, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide.

", + "DescribeTags": "

Describes one or more of the tags for your EC2 resources.

For more information about tags, see Tagging Your Resources in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeVolumeAttribute": "

Describes the specified attribute of the specified volume. You can specify only one attribute at a time.

For more information about EBS volumes, see Amazon EBS Volumes in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeVolumeStatus": "

Describes the status of the specified volumes. Volume status provides the result of the checks performed on your volumes to determine events that can impair the performance of your volumes. The performance of a volume can be affected if an issue occurs on the volume's underlying host. If the volume's underlying host experiences a power outage or system issue, after the system is restored, there could be data inconsistencies on the volume. Volume events notify you if this occurs. Volume actions notify you if any action needs to be taken in response to the event.

The DescribeVolumeStatus operation provides the following information about the specified volumes:

Status: Reflects the current status of the volume. The possible values are ok, impaired , warning, or insufficient-data. If all checks pass, the overall status of the volume is ok. If the check fails, the overall status is impaired. If the status is insufficient-data, then the checks may still be taking place on your volume at the time. We recommend that you retry the request. For more information on volume status, see Monitoring the Status of Your Volumes.

Events: Reflect the cause of a volume status and may require you to take action. For example, if your volume returns an impaired status, then the volume event might be potential-data-inconsistency. This means that your volume has been affected by an issue with the underlying host, has all I/O operations disabled, and may have inconsistent data.

Actions: Reflect the actions you may have to take in response to an event. For example, if the status of the volume is impaired and the volume event shows potential-data-inconsistency, then the action shows enable-volume-io. This means that you may want to enable the I/O operations for the volume by calling the EnableVolumeIO action and then check the volume for data consistency.

Volume status is based on the volume status checks, and does not reflect the volume state. Therefore, volume status does not indicate volumes in the error state (for example, when a volume is incapable of accepting I/O.)

", + "DescribeVolumes": "

Describes the specified EBS volumes.

If you are describing a long list of volumes, you can paginate the output to make the list more manageable. The MaxResults parameter sets the maximum number of results returned in a single page. If the list of results exceeds your MaxResults value, then that number of results is returned along with a NextToken value that can be passed to a subsequent DescribeVolumes request to retrieve the remaining results.

For more information about EBS volumes, see Amazon EBS Volumes in the Amazon Elastic Compute Cloud User Guide.

", + "DescribeVpcAttribute": "

Describes the specified attribute of the specified VPC. You can specify only one attribute at a time.

", + "DescribeVpcClassicLink": "

Describes the ClassicLink status of one or more VPCs.

", + "DescribeVpcEndpointServices": "

Describes all supported AWS services that can be specified when creating a VPC endpoint.

", + "DescribeVpcEndpoints": "

Describes one or more of your VPC endpoints.

", + "DescribeVpcPeeringConnections": "

Describes one or more of your VPC peering connections.

", + "DescribeVpcs": "

Describes one or more of your VPCs.

", + "DescribeVpnConnections": "

Describes one or more of your VPN connections.

For more information about VPN connections, see Adding a Hardware Virtual Private Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide.

", + "DescribeVpnGateways": "

Describes one or more of your virtual private gateways.

For more information about virtual private gateways, see Adding an IPsec Hardware VPN to Your VPC in the Amazon Virtual Private Cloud User Guide.

", + "DetachClassicLinkVpc": "

Unlinks (detaches) a linked EC2-Classic instance from a VPC. After the instance has been unlinked, the VPC security groups are no longer associated with it. An instance is automatically unlinked from a VPC when it's stopped.

", + "DetachInternetGateway": "

Detaches an Internet gateway from a VPC, disabling connectivity between the Internet and the VPC. The VPC must not contain any running instances with Elastic IP addresses.

", + "DetachNetworkInterface": "

Detaches a network interface from an instance.

", + "DetachVolume": "

Detaches an EBS volume from an instance. Make sure to unmount any file systems on the device within your operating system before detaching the volume. Failure to do so results in the volume being stuck in a busy state while detaching.

If an Amazon EBS volume is the root device of an instance, it can't be detached while the instance is running. To detach the root volume, stop the instance first.

When a volume with an AWS Marketplace product code is detached from an instance, the product code is no longer associated with the instance.

For more information, see Detaching an Amazon EBS Volume in the Amazon Elastic Compute Cloud User Guide.

", + "DetachVpnGateway": "

Detaches a virtual private gateway from a VPC. You do this if you're planning to turn off the VPC and not use it anymore. You can confirm a virtual private gateway has been completely detached from a VPC by describing the virtual private gateway (any attachments to the virtual private gateway are also described).

You must wait for the attachment's state to switch to detached before you can delete the VPC or attach a different VPC to the virtual private gateway.

", + "DisableVgwRoutePropagation": "

Disables a virtual private gateway (VGW) from propagating routes to a specified route table of a VPC.

", + "DisableVpcClassicLink": "

Disables ClassicLink for a VPC. You cannot disable ClassicLink for a VPC that has EC2-Classic instances linked to it.

", + "DisassociateAddress": "

Disassociates an Elastic IP address from the instance or network interface it's associated with.

An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error.

", + "DisassociateRouteTable": "

Disassociates a subnet from a route table.

After you perform this action, the subnet no longer uses the routes in the route table. Instead, it uses the routes in the VPC's main route table. For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", + "EnableVgwRoutePropagation": "

Enables a virtual private gateway (VGW) to propagate routes to the specified route table of a VPC.

", + "EnableVolumeIO": "

Enables I/O operations for a volume that had I/O operations disabled because the data on the volume was potentially inconsistent.

", + "EnableVpcClassicLink": "

Enables a VPC for ClassicLink. You can then link EC2-Classic instances to your ClassicLink-enabled VPC to allow communication over private IP addresses. You cannot enable your VPC for ClassicLink if any of your VPC's route tables have existing routes for address ranges within the 10.0.0.0/8 IP address range, excluding local routes for VPCs in the 10.0.0.0/16 and 10.1.0.0/16 IP address ranges. For more information, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.

", + "GetConsoleOutput": "

Gets the console output for the specified instance.

Instances do not have a physical monitor through which you can view their console output. They also lack physical controls that allow you to power up, reboot, or shut them down. To allow these actions, we provide them through the Amazon EC2 API and command line interface.

Instance console output is buffered and posted shortly after instance boot, reboot, and termination. Amazon EC2 preserves the most recent 64 KB output which is available for at least one hour after the most recent post.

For Linux instances, the instance console output displays the exact console output that would normally be displayed on a physical monitor attached to a computer. This output is buffered because the instance produces it and then posts it to a store where the instance's owner can retrieve it.

For Windows instances, the instance console output includes output from the EC2Config service.

", + "GetPasswordData": "

Retrieves the encrypted administrator password for an instance running Windows.

The Windows password is generated at boot if the EC2Config service plugin, Ec2SetPassword, is enabled. This usually only happens the first time an AMI is launched, and then Ec2SetPassword is automatically disabled. The password is not generated for rebundled AMIs unless Ec2SetPassword is enabled before bundling.

The password is encrypted using the key pair that you specified when you launched the instance. You must provide the corresponding key pair file.

Password generation and encryption takes a few moments. We recommend that you wait up to 15 minutes after launching an instance before trying to retrieve the generated password.

", + "ImportImage": "

Import single or multi-volume disk images or EBS snapshots into an Amazon Machine Image (AMI).

", + "ImportInstance": "

Creates an import instance task using metadata from the specified disk image. ImportInstance only supports single-volume VMs. To import multi-volume VMs, use ImportImage. After importing the image, you then upload it using the ec2-import-volume command in the EC2 command line tools. For more information, see Using the Command Line Tools to Import Your Virtual Machine to Amazon EC2 in the Amazon Elastic Compute Cloud User Guide.

", + "ImportKeyPair": "

Imports the public key from an RSA key pair that you created with a third-party tool. Compare this with CreateKeyPair, in which AWS creates the key pair and gives the keys to you (AWS keeps a copy of the public key). With ImportKeyPair, you create the key pair and give AWS just the public key. The private key is never transferred between you and AWS.

For more information about key pairs, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.

", + "ImportSnapshot": "

Imports a disk into an EBS snapshot.

", + "ImportVolume": "

Creates an import volume task using metadata from the specified disk image. After importing the image, you then upload it using the ec2-import-volume command in the Amazon EC2 command-line interface (CLI) tools. For more information, see Using the Command Line Tools to Import Your Virtual Machine to Amazon EC2 in the Amazon Elastic Compute Cloud User Guide.

", + "ModifyImageAttribute": "

Modifies the specified attribute of the specified AMI. You can specify only one attribute at a time.

AWS Marketplace product codes cannot be modified. Images with an AWS Marketplace product code cannot be made public.

", + "ModifyInstanceAttribute": "

Modifies the specified attribute of the specified instance. You can specify only one attribute at a time.

To modify some attributes, the instance must be stopped. For more information, see Modifying Attributes of a Stopped Instance in the Amazon Elastic Compute Cloud User Guide.

", + "ModifyNetworkInterfaceAttribute": "

Modifies the specified network interface attribute. You can specify only one attribute at a time.

", + "ModifyReservedInstances": "

Modifies the Availability Zone, instance count, instance type, or network platform (EC2-Classic or EC2-VPC) of your Reserved Instances. The Reserved Instances to be modified must be identical, except for Availability Zone, network platform, and instance type.

For more information, see Modifying Reserved Instances in the Amazon Elastic Compute Cloud User Guide.

", + "ModifySnapshotAttribute": "

Adds or removes permission settings for the specified snapshot. You may add or remove specified AWS account IDs from a snapshot's list of create volume permissions, but you cannot do both in a single API call. If you need to both add and remove account IDs for a snapshot, you must use multiple API calls.

For more information on modifying snapshot permissions, see Sharing Snapshots in the Amazon Elastic Compute Cloud User Guide.

Snapshots with AWS Marketplace product codes cannot be made public.

", + "ModifySubnetAttribute": "

Modifies a subnet attribute.

", + "ModifyVolumeAttribute": "

Modifies a volume attribute.

By default, all I/O operations for the volume are suspended when the data on the volume is determined to be potentially inconsistent, to prevent undetectable, latent data corruption. The I/O access to the volume can be resumed by first enabling I/O access and then checking the data consistency on your volume.

You can change the default behavior to resume I/O operations. We recommend that you change this only for boot volumes or for volumes that are stateless or disposable.

", + "ModifyVpcAttribute": "

Modifies the specified attribute of the specified VPC.

", + "ModifyVpcEndpoint": "

Modifies attributes of a specified VPC endpoint. You can modify the policy associated with the endpoint, and you can add and remove route tables associated with the endpoint.

", + "MonitorInstances": "

Enables monitoring for a running instance. For more information about monitoring instances, see Monitoring Your Instances and Volumes in the Amazon Elastic Compute Cloud User Guide.

", + "MoveAddressToVpc": "

Moves an Elastic IP address from the EC2-Classic platform to the EC2-VPC platform. The Elastic IP address must be allocated to your account, and it must not be associated with an instance. After the Elastic IP address is moved, it is no longer available for use in the EC2-Classic platform, unless you move it back using the RestoreAddressToClassic request. You cannot move an Elastic IP address that's allocated for use in the EC2-VPC platform to the EC2-Classic platform.

", + "PurchaseReservedInstancesOffering": "

Purchases a Reserved Instance for use with your account. With Amazon EC2 Reserved Instances, you obtain a capacity reservation for a certain instance configuration over a specified period of time and pay a lower hourly rate compared to on-Demand Instance pricing.

Use DescribeReservedInstancesOfferings to get a list of Reserved Instance offerings that match your specifications. After you've purchased a Reserved Instance, you can check for your new Reserved Instance with DescribeReservedInstances.

For more information, see Reserved Instances and Reserved Instance Marketplace in the Amazon Elastic Compute Cloud User Guide.

", + "RebootInstances": "

Requests a reboot of one or more instances. This operation is asynchronous; it only queues a request to reboot the specified instances. The operation succeeds if the instances are valid and belong to you. Requests to reboot terminated instances are ignored.

If a Linux/Unix instance does not cleanly shut down within four minutes, Amazon EC2 performs a hard reboot.

For more information about troubleshooting, see Getting Console Output and Rebooting Instances in the Amazon Elastic Compute Cloud User Guide.

", + "RegisterImage": "

Registers an AMI. When you're creating an AMI, this is the final step you must complete before you can launch an instance from the AMI. For more information about creating AMIs, see Creating Your Own AMIs in the Amazon Elastic Compute Cloud User Guide.

For Amazon EBS-backed instances, CreateImage creates and registers the AMI in a single request, so you don't have to register the AMI yourself.

You can also use RegisterImage to create an Amazon EBS-backed AMI from a snapshot of a root device volume. For more information, see Launching an Instance from a Snapshot in the Amazon Elastic Compute Cloud User Guide.

If needed, you can deregister an AMI at any time. Any modifications you make to an AMI backed by an instance store volume invalidates its registration. If you make changes to an image, deregister the previous image and register the new image.

You can't register an image where a secondary (non-root) snapshot has AWS Marketplace product codes.

", + "RejectVpcPeeringConnection": "

Rejects a VPC peering connection request. The VPC peering connection must be in the pending-acceptance state. Use the DescribeVpcPeeringConnections request to view your outstanding VPC peering connection requests. To delete an active VPC peering connection, or to delete a VPC peering connection request that you initiated, use DeleteVpcPeeringConnection.

", + "ReleaseAddress": "

Releases the specified Elastic IP address.

After releasing an Elastic IP address, it is released to the IP address pool and might be unavailable to you. Be sure to update your DNS records and any servers or devices that communicate with the address. If you attempt to release an Elastic IP address that you already released, you'll get an AuthFailure error if the address is already allocated to another AWS account.

[EC2-Classic, default VPC] Releasing an Elastic IP address automatically disassociates it from any instance that it's associated with. To disassociate an Elastic IP address without releasing it, use DisassociateAddress.

[Nondefault VPC] You must use DisassociateAddress to disassociate the Elastic IP address before you try to release it. Otherwise, Amazon EC2 returns an error (InvalidIPAddress.InUse).

", + "ReplaceNetworkAclAssociation": "

Changes which network ACL a subnet is associated with. By default when you create a subnet, it's automatically associated with the default network ACL. For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.

", + "ReplaceNetworkAclEntry": "

Replaces an entry (rule) in a network ACL. For more information about network ACLs, see Network ACLs in the Amazon Virtual Private Cloud User Guide.

", + "ReplaceRoute": "

Replaces an existing route within a route table in a VPC. You must provide only one of the following: Internet gateway or virtual private gateway, NAT instance, VPC peering connection, or network interface.

For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", + "ReplaceRouteTableAssociation": "

Changes the route table associated with a given subnet in a VPC. After the operation completes, the subnet uses the routes in the new route table it's associated with. For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

You can also use ReplaceRouteTableAssociation to change which table is the main route table in the VPC. You just specify the main route table's association ID and the route table to be the new main route table.

", + "ReportInstanceStatus": "

Submits feedback about the status of an instance. The instance must be in the running state. If your experience with the instance differs from the instance status returned by DescribeInstanceStatus, use ReportInstanceStatus to report your experience with the instance. Amazon EC2 collects this information to improve the accuracy of status checks.

Use of this action does not change the value returned by DescribeInstanceStatus.

", + "RequestSpotFleet": "

Creates a Spot fleet request.

For more information, see Spot Fleets in the Amazon Elastic Compute Cloud User Guide.

", + "RequestSpotInstances": "

Creates a Spot Instance request. Spot Instances are instances that Amazon EC2 launches when the bid price that you specify exceeds the current Spot Price. Amazon EC2 periodically sets the Spot Price based on available Spot Instance capacity and current Spot Instance requests. For more information, see Spot Instance Requests in the Amazon Elastic Compute Cloud User Guide.

", + "ResetImageAttribute": "

Resets an attribute of an AMI to its default value.

The productCodes attribute can't be reset.

", + "ResetInstanceAttribute": "

Resets an attribute of an instance to its default value. To reset the kernel or ramdisk, the instance must be in a stopped state. To reset the SourceDestCheck, the instance can be either running or stopped.

The SourceDestCheck attribute controls whether source/destination checking is enabled. The default value is true, which means checking is enabled. This value must be false for a NAT instance to perform NAT. For more information, see NAT Instances in the Amazon Virtual Private Cloud User Guide.

", + "ResetNetworkInterfaceAttribute": "

Resets a network interface attribute. You can specify only one attribute at a time.

", + "ResetSnapshotAttribute": "

Resets permission settings for the specified snapshot.

For more information on modifying snapshot permissions, see Sharing Snapshots in the Amazon Elastic Compute Cloud User Guide.

", + "RestoreAddressToClassic": "

Restores an Elastic IP address that was previously moved to the EC2-VPC platform back to the EC2-Classic platform. You cannot move an Elastic IP address that was originally allocated for use in EC2-VPC. The Elastic IP address must not be associated with an instance or network interface.

", + "RevokeSecurityGroupEgress": "

Removes one or more egress rules from a security group for EC2-VPC. The values that you specify in the revoke request (for example, ports) must match the existing rule's values for the rule to be revoked.

Each rule consists of the protocol and the CIDR range or source security group. For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code.

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

", + "RevokeSecurityGroupIngress": "

Removes one or more ingress rules from a security group. The values that you specify in the revoke request (for example, ports) must match the existing rule's values for the rule to be removed.

Each rule consists of the protocol and the CIDR range or source security group. For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code.

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

", + "RunInstances": "

Launches the specified number of instances using an AMI for which you have permissions.

When you launch an instance, it enters the pending state. After the instance is ready for you, it enters the running state. To check the state of your instance, call DescribeInstances.

If you don't specify a security group when launching an instance, Amazon EC2 uses the default security group. For more information, see Security Groups in the Amazon Elastic Compute Cloud User Guide.

Linux instances have access to the public key of the key pair at boot. You can use this key to provide secure access to the instance. Amazon EC2 public images use this feature to provide secure access without passwords. For more information, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.

You can provide optional user data when launching an instance. For more information, see Instance Metadata in the Amazon Elastic Compute Cloud User Guide.

If any of the AMIs have a product code attached for which the user has not subscribed, RunInstances fails.

T2 instance types can only be launched into a VPC. If you do not have a default VPC, or if you do not specify a subnet ID in the request, RunInstances fails.

For more information about troubleshooting, see What To Do If An Instance Immediately Terminates, and Troubleshooting Connecting to Your Instance in the Amazon Elastic Compute Cloud User Guide.

", + "StartInstances": "

Starts an Amazon EBS-backed AMI that you've previously stopped.

Instances that use Amazon EBS volumes as their root devices can be quickly stopped and started. When an instance is stopped, the compute resources are released and you are not billed for hourly instance usage. However, your root partition Amazon EBS volume remains, continues to persist your data, and you are charged for Amazon EBS volume usage. You can restart your instance at any time. Each time you transition an instance from stopped to started, Amazon EC2 charges a full instance hour, even if transitions happen multiple times within a single hour.

Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM.

Performing this operation on an instance that uses an instance store as its root device returns an error.

For more information, see Stopping Instances in the Amazon Elastic Compute Cloud User Guide.

", + "StopInstances": "

Stops an Amazon EBS-backed instance. Each time you transition an instance from stopped to started, Amazon EC2 charges a full instance hour, even if transitions happen multiple times within a single hour.

You can't start or stop Spot Instances.

Instances that use Amazon EBS volumes as their root devices can be quickly stopped and started. When an instance is stopped, the compute resources are released and you are not billed for hourly instance usage. However, your root partition Amazon EBS volume remains, continues to persist your data, and you are charged for Amazon EBS volume usage. You can restart your instance at any time.

Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM.

Performing this operation on an instance that uses an instance store as its root device returns an error.

You can stop, start, and terminate EBS-backed instances. You can only terminate instance store-backed instances. What happens to an instance differs if you stop it or terminate it. For example, when you stop an instance, the root device and any other devices attached to the instance persist. When you terminate an instance, the root device and any other devices attached during the instance launch are automatically deleted. For more information about the differences between stopping and terminating instances, see Instance Lifecycle in the Amazon Elastic Compute Cloud User Guide.

For more information about troubleshooting, see Troubleshooting Stopping Your Instance in the Amazon Elastic Compute Cloud User Guide.

", + "TerminateInstances": "

Shuts down one or more instances. This operation is idempotent; if you terminate an instance more than once, each call succeeds.

Terminated instances remain visible after termination (for approximately one hour).

By default, Amazon EC2 deletes all EBS volumes that were attached when the instance launched. Volumes attached after instance launch continue running.

You can stop, start, and terminate EBS-backed instances. You can only terminate instance store-backed instances. What happens to an instance differs if you stop it or terminate it. For example, when you stop an instance, the root device and any other devices attached to the instance persist. When you terminate an instance, the root device and any other devices attached during the instance launch are automatically deleted. For more information about the differences between stopping and terminating instances, see Instance Lifecycle in the Amazon Elastic Compute Cloud User Guide.

For more information about troubleshooting, see Troubleshooting Terminating Your Instance in the Amazon Elastic Compute Cloud User Guide.

", + "UnassignPrivateIpAddresses": "

Unassigns one or more secondary private IP addresses from a network interface.

", + "UnmonitorInstances": "

Disables monitoring for a running instance. For more information about monitoring instances, see Monitoring Your Instances and Volumes in the Amazon Elastic Compute Cloud User Guide.

" + }, + "service": "Amazon Elastic Compute Cloud

Amazon Elastic Compute Cloud (Amazon EC2) provides resizable computing capacity in the Amazon Web Services (AWS) cloud. Using Amazon EC2 eliminates your need to invest in hardware up front, so you can develop and deploy applications faster.

", + "shapes": { + "AcceptVpcPeeringConnectionRequest": { + "base": null, + "refs": { + } + }, + "AcceptVpcPeeringConnectionResult": { + "base": null, + "refs": { + } + }, + "AccountAttribute": { + "base": "

Describes an account attribute.

", + "refs": { + "AccountAttributeList$member": null + } + }, + "AccountAttributeList": { + "base": null, + "refs": { + "DescribeAccountAttributesResult$AccountAttributes": "

Information about one or more account attributes.

" + } + }, + "AccountAttributeName": { + "base": null, + "refs": { + "AccountAttributeNameStringList$member": null + } + }, + "AccountAttributeNameStringList": { + "base": null, + "refs": { + "DescribeAccountAttributesRequest$AttributeNames": "

One or more account attribute names.

" + } + }, + "AccountAttributeValue": { + "base": "

Describes a value of an account attribute.

", + "refs": { + "AccountAttributeValueList$member": null + } + }, + "AccountAttributeValueList": { + "base": null, + "refs": { + "AccountAttribute$AttributeValues": "

One or more values for the account attribute.

" + } + }, + "ActiveInstance": { + "base": "

Describes a running instance in a Spot fleet.

", + "refs": { + "ActiveInstanceSet$member": null + } + }, + "ActiveInstanceSet": { + "base": null, + "refs": { + "DescribeSpotFleetInstancesResponse$ActiveInstances": "

The running instances. Note that this list is refreshed periodically and might be out of date.

" + } + }, + "Address": { + "base": "

Describes an Elastic IP address.

", + "refs": { + "AddressList$member": null + } + }, + "AddressList": { + "base": null, + "refs": { + "DescribeAddressesResult$Addresses": "

Information about one or more Elastic IP addresses.

" + } + }, + "AllocateAddressRequest": { + "base": null, + "refs": { + } + }, + "AllocateAddressResult": { + "base": null, + "refs": { + } + }, + "AllocationIdList": { + "base": null, + "refs": { + "DescribeAddressesRequest$AllocationIds": "

[EC2-VPC] One or more allocation IDs.

Default: Describes all your Elastic IP addresses.

" + } + }, + "ArchitectureValues": { + "base": null, + "refs": { + "Image$Architecture": "

The architecture of the image.

", + "ImportInstanceLaunchSpecification$Architecture": "

The architecture of the instance.

", + "Instance$Architecture": "

The architecture of the image.

", + "RegisterImageRequest$Architecture": "

The architecture of the AMI.

Default: For Amazon EBS-backed AMIs, i386. For instance store-backed AMIs, the architecture specified in the manifest file.

" + } + }, + "AssignPrivateIpAddressesRequest": { + "base": null, + "refs": { + } + }, + "AssociateAddressRequest": { + "base": null, + "refs": { + } + }, + "AssociateAddressResult": { + "base": null, + "refs": { + } + }, + "AssociateDhcpOptionsRequest": { + "base": null, + "refs": { + } + }, + "AssociateRouteTableRequest": { + "base": null, + "refs": { + } + }, + "AssociateRouteTableResult": { + "base": null, + "refs": { + } + }, + "AttachClassicLinkVpcRequest": { + "base": null, + "refs": { + } + }, + "AttachClassicLinkVpcResult": { + "base": null, + "refs": { + } + }, + "AttachInternetGatewayRequest": { + "base": null, + "refs": { + } + }, + "AttachNetworkInterfaceRequest": { + "base": null, + "refs": { + } + }, + "AttachNetworkInterfaceResult": { + "base": null, + "refs": { + } + }, + "AttachVolumeRequest": { + "base": null, + "refs": { + } + }, + "AttachVpnGatewayRequest": { + "base": null, + "refs": { + } + }, + "AttachVpnGatewayResult": { + "base": null, + "refs": { + } + }, + "AttachmentStatus": { + "base": null, + "refs": { + "EbsInstanceBlockDevice$Status": "

The attachment state.

", + "InstanceNetworkInterfaceAttachment$Status": "

The attachment state.

", + "InternetGatewayAttachment$State": "

The current state of the attachment.

", + "NetworkInterfaceAttachment$Status": "

The attachment state.

", + "VpcAttachment$State": "

The current state of the attachment.

" + } + }, + "AttributeBooleanValue": { + "base": "

The value to use when a resource attribute accepts a Boolean value.

", + "refs": { + "DescribeNetworkInterfaceAttributeResult$SourceDestCheck": "

Indicates whether source/destination checking is enabled.

", + "DescribeVolumeAttributeResult$AutoEnableIO": "

The state of autoEnableIO attribute.

", + "DescribeVpcAttributeResult$EnableDnsSupport": "

Indicates whether DNS resolution is enabled for the VPC. If this attribute is true, the Amazon DNS server resolves DNS hostnames for your instances to their corresponding IP addresses; otherwise, it does not.

", + "DescribeVpcAttributeResult$EnableDnsHostnames": "

Indicates whether the instances launched in the VPC get DNS hostnames. If this attribute is true, instances in the VPC get DNS hostnames; otherwise, they do not.

", + "InstanceAttribute$DisableApiTermination": "

If the value is true, you can't terminate the instance through the Amazon EC2 console, CLI, or API; otherwise, you can.

", + "InstanceAttribute$EbsOptimized": "

Indicates whether the instance is optimized for EBS I/O.

", + "InstanceAttribute$SourceDestCheck": "

Indicates whether source/destination checking is enabled. A value of true means checking is enabled, and false means checking is disabled. This value must be false for a NAT instance to perform NAT.

", + "ModifyInstanceAttributeRequest$SourceDestCheck": "

Specifies whether source/destination checking is enabled. A value of true means that checking is enabled, and false means checking is disabled. This value must be false for a NAT instance to perform NAT.

", + "ModifyInstanceAttributeRequest$DisableApiTermination": "

If the value is true, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can.

", + "ModifyInstanceAttributeRequest$EbsOptimized": "

Specifies whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

", + "ModifyNetworkInterfaceAttributeRequest$SourceDestCheck": "

Indicates whether source/destination checking is enabled. A value of true means checking is enabled, and false means checking is disabled. This value must be false for a NAT instance to perform NAT. For more information, see NAT Instances in the Amazon Virtual Private Cloud User Guide.

", + "ModifySubnetAttributeRequest$MapPublicIpOnLaunch": "

Specify true to indicate that instances launched into the specified subnet should be assigned public IP address.

", + "ModifyVolumeAttributeRequest$AutoEnableIO": "

Indicates whether the volume should be auto-enabled for I/O operations.

", + "ModifyVpcAttributeRequest$EnableDnsSupport": "

Indicates whether the DNS resolution is supported for the VPC. If enabled, queries to the Amazon provided DNS server at the 169.254.169.253 IP address, or the reserved IP address at the base of the VPC network range \"plus two\" will succeed. If disabled, the Amazon provided DNS service in the VPC that resolves public DNS hostnames to IP addresses is not enabled.

", + "ModifyVpcAttributeRequest$EnableDnsHostnames": "

Indicates whether the instances launched in the VPC get DNS hostnames. If enabled, instances in the VPC get DNS hostnames; otherwise, they do not.

You can only enable DNS hostnames if you also enable DNS support.

" + } + }, + "AttributeValue": { + "base": "

The value to use for a resource attribute.

", + "refs": { + "DescribeNetworkInterfaceAttributeResult$Description": "

The description of the network interface.

", + "ImageAttribute$KernelId": "

The kernel ID.

", + "ImageAttribute$RamdiskId": "

The RAM disk ID.

", + "ImageAttribute$Description": "

A description for the AMI.

", + "ImageAttribute$SriovNetSupport": null, + "InstanceAttribute$InstanceType": "

The instance type.

", + "InstanceAttribute$KernelId": "

The kernel ID.

", + "InstanceAttribute$RamdiskId": "

The RAM disk ID.

", + "InstanceAttribute$UserData": "

The Base64-encoded MIME user data.

", + "InstanceAttribute$InstanceInitiatedShutdownBehavior": "

Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).

", + "InstanceAttribute$RootDeviceName": "

The name of the root device (for example, /dev/sda1 or /dev/xvda).

", + "InstanceAttribute$SriovNetSupport": null, + "ModifyImageAttributeRequest$Description": "

A description for the AMI.

", + "ModifyInstanceAttributeRequest$InstanceType": "

Changes the instance type to the specified value. For more information, see Instance Types. If the instance type is not valid, the error returned is InvalidInstanceAttributeValue.

", + "ModifyInstanceAttributeRequest$Kernel": "

Changes the instance's kernel to the specified value. We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB.

", + "ModifyInstanceAttributeRequest$Ramdisk": "

Changes the instance's RAM disk to the specified value. We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB.

", + "ModifyInstanceAttributeRequest$InstanceInitiatedShutdownBehavior": "

Specifies whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).

", + "ModifyInstanceAttributeRequest$SriovNetSupport": "

Set to simple to enable enhanced networking for the instance.

There is no way to disable enhanced networking at this time.

This option is supported only for HVM instances. Specifying this option with a PV instance can make it unreachable.

", + "ModifyNetworkInterfaceAttributeRequest$Description": "

A description for the network interface.

", + "DhcpConfigurationValueList$member": null + } + }, + "AuthorizeSecurityGroupEgressRequest": { + "base": null, + "refs": { + } + }, + "AuthorizeSecurityGroupIngressRequest": { + "base": null, + "refs": { + } + }, + "AvailabilityZone": { + "base": "

Describes an Availability Zone.

", + "refs": { + "AvailabilityZoneList$member": null + } + }, + "AvailabilityZoneList": { + "base": null, + "refs": { + "DescribeAvailabilityZonesResult$AvailabilityZones": "

Information about one or more Availability Zones.

" + } + }, + "AvailabilityZoneMessage": { + "base": "

Describes a message about an Availability Zone.

", + "refs": { + "AvailabilityZoneMessageList$member": null + } + }, + "AvailabilityZoneMessageList": { + "base": null, + "refs": { + "AvailabilityZone$Messages": "

Any messages about the Availability Zone.

" + } + }, + "AvailabilityZoneState": { + "base": null, + "refs": { + "AvailabilityZone$State": "

The state of the Availability Zone (available | impaired | unavailable).

" + } + }, + "BatchState": { + "base": null, + "refs": { + "CancelSpotFleetRequestsSuccessItem$CurrentSpotFleetRequestState": "

The current state of the Spot fleet request.

", + "CancelSpotFleetRequestsSuccessItem$PreviousSpotFleetRequestState": "

The previous state of the Spot fleet request.

", + "SpotFleetRequestConfig$SpotFleetRequestState": "

The state of the Spot fleet request.

" + } + }, + "BlockDeviceMapping": { + "base": "

Describes a block device mapping.

", + "refs": { + "BlockDeviceMappingList$member": null, + "BlockDeviceMappingRequestList$member": null + } + }, + "BlockDeviceMappingList": { + "base": null, + "refs": { + "Image$BlockDeviceMappings": "

Any block device mapping entries.

", + "ImageAttribute$BlockDeviceMappings": "

One or more block device mapping entries.

", + "LaunchSpecification$BlockDeviceMappings": "

One or more block device mapping entries.

", + "RequestSpotLaunchSpecification$BlockDeviceMappings": "

One or more block device mapping entries.

" + } + }, + "BlockDeviceMappingRequestList": { + "base": null, + "refs": { + "CreateImageRequest$BlockDeviceMappings": "

Information about one or more block device mappings.

", + "RegisterImageRequest$BlockDeviceMappings": "

One or more block device mapping entries.

", + "RunInstancesRequest$BlockDeviceMappings": "

The block device mapping.

" + } + }, + "Boolean": { + "base": null, + "refs": { + "AcceptVpcPeeringConnectionRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "AllocateAddressRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "AssignPrivateIpAddressesRequest$AllowReassignment": "

Indicates whether to allow an IP address that is already assigned to another network interface or instance to be reassigned to the specified network interface.

", + "AssociateAddressRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "AssociateAddressRequest$AllowReassociation": "

[EC2-VPC] Allows an Elastic IP address that is already associated with an instance or network interface to be re-associated with the specified instance or network interface. Otherwise, the operation fails.

Default: false

", + "AssociateDhcpOptionsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "AssociateRouteTableRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "AttachClassicLinkVpcRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "AttachClassicLinkVpcResult$Return": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "AttachInternetGatewayRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "AttachNetworkInterfaceRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "AttachVolumeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "AttachVpnGatewayRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "AttributeBooleanValue$Value": "

Valid values are true or false.

", + "AuthorizeSecurityGroupEgressRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "AuthorizeSecurityGroupIngressRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "BundleInstanceRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CancelBundleTaskRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CancelConversionRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CancelImportTaskRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CancelSpotFleetRequestsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CancelSpotFleetRequestsRequest$TerminateInstances": "

Indicates whether to terminate instances for a Spot fleet request if it is canceled successfully.

", + "CancelSpotInstanceRequestsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "ConfirmProductInstanceRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CopyImageRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CopySnapshotRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CreateCustomerGatewayRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CreateDhcpOptionsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CreateImageRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CreateImageRequest$NoReboot": "

By default, this parameter is set to false, which means Amazon EC2 attempts to shut down the instance cleanly before image creation and then reboots the instance. When the parameter is set to true, Amazon EC2 doesn't shut down the instance before creating the image. When this option is used, file system integrity on the created image can't be guaranteed.

", + "CreateInternetGatewayRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CreateKeyPairRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CreateNetworkAclEntryRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CreateNetworkAclEntryRequest$Egress": "

Indicates whether this is an egress rule (rule is applied to traffic leaving the subnet).

", + "CreateNetworkAclRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CreateNetworkInterfaceRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CreatePlacementGroupRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CreateRouteRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CreateRouteResult$Return": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "CreateRouteTableRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CreateSecurityGroupRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CreateSnapshotRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CreateSpotDatafeedSubscriptionRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CreateSubnetRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CreateTagsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CreateVolumeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CreateVolumeRequest$Encrypted": "

Specifies whether the volume should be encrypted. Encrypted Amazon EBS volumes may only be attached to instances that support Amazon EBS encryption. Volumes that are created from encrypted snapshots are automatically encrypted. There is no way to create an encrypted volume from an unencrypted snapshot or vice versa. If your AMI uses encrypted volumes, you can only launch it on supported instance types. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

", + "CreateVpcEndpointRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CreateVpcPeeringConnectionRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CreateVpcRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CreateVpnConnectionRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "CreateVpnGatewayRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DeleteCustomerGatewayRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DeleteDhcpOptionsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DeleteInternetGatewayRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DeleteKeyPairRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DeleteNetworkAclEntryRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DeleteNetworkAclEntryRequest$Egress": "

Indicates whether the rule is an egress rule.

", + "DeleteNetworkAclRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DeleteNetworkInterfaceRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DeletePlacementGroupRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DeleteRouteRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DeleteRouteTableRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DeleteSecurityGroupRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DeleteSnapshotRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DeleteSpotDatafeedSubscriptionRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DeleteSubnetRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DeleteTagsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DeleteVolumeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DeleteVpcEndpointsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DeleteVpcPeeringConnectionRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DeleteVpcPeeringConnectionResult$Return": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "DeleteVpcRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DeleteVpnConnectionRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DeleteVpnGatewayRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DeregisterImageRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeAccountAttributesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeAddressesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeAvailabilityZonesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeBundleTasksRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeClassicLinkInstancesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeConversionTasksRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeCustomerGatewaysRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeDhcpOptionsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeImageAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeImagesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeImportImageTasksRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeImportSnapshotTasksRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeInstanceAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeInstanceStatusRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeInstanceStatusRequest$IncludeAllInstances": "

When true, includes the health status for all instances. When false, includes the health status for running instances only.

Default: false

", + "DescribeInstancesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeInternetGatewaysRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeKeyPairsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeMovingAddressesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeNetworkAclsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeNetworkInterfaceAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeNetworkInterfacesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribePlacementGroupsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribePrefixListsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeRegionsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeReservedInstancesOfferingsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeReservedInstancesOfferingsRequest$IncludeMarketplace": "

Include Marketplace offerings in the response.

", + "DescribeReservedInstancesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeRouteTablesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeSecurityGroupsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeSnapshotAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeSnapshotsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeSpotDatafeedSubscriptionRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeSpotFleetInstancesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeSpotFleetRequestHistoryRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeSpotFleetRequestsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeSpotInstanceRequestsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeSpotPriceHistoryRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeSubnetsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeTagsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeVolumeAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeVolumeStatusRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeVolumesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeVpcAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeVpcClassicLinkRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeVpcEndpointServicesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeVpcEndpointsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeVpcPeeringConnectionsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeVpcsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeVpnConnectionsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DescribeVpnGatewaysRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DetachClassicLinkVpcRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DetachClassicLinkVpcResult$Return": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "DetachInternetGatewayRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DetachNetworkInterfaceRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DetachNetworkInterfaceRequest$Force": "

Specifies whether to force a detachment.

", + "DetachVolumeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DetachVolumeRequest$Force": "

Forces detachment if the previous detachment attempt did not occur cleanly (for example, logging into an instance, unmounting the volume, and detaching normally). This option can lead to data loss or a corrupted file system. Use this option only as a last resort to detach a volume from a failed instance. The instance won't have an opportunity to flush file system caches or file system metadata. If you use this option, you must perform file system check and repair procedures.

", + "DetachVpnGatewayRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DisableVpcClassicLinkRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DisableVpcClassicLinkResult$Return": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "DisassociateAddressRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "DisassociateRouteTableRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "EbsBlockDevice$DeleteOnTermination": "

Indicates whether the EBS volume is deleted on instance termination.

", + "EbsBlockDevice$Encrypted": "

Indicates whether the EBS volume is encrypted. Encrypted Amazon EBS volumes may only be attached to instances that support Amazon EBS encryption.

", + "EbsInstanceBlockDevice$DeleteOnTermination": "

Indicates whether the volume is deleted on instance termination.

", + "EbsInstanceBlockDeviceSpecification$DeleteOnTermination": "

Indicates whether the volume is deleted on instance termination.

", + "EnableVolumeIORequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "EnableVpcClassicLinkRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "EnableVpcClassicLinkResult$Return": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "GetConsoleOutputRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "GetPasswordDataRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "Image$Public": "

Indicates whether the image has public launch permissions. The value is true if this image has public launch permissions or false if it has only implicit and explicit launch permissions.

", + "ImportImageRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "ImportInstanceLaunchSpecification$Monitoring": "

Indicates whether monitoring is enabled.

", + "ImportInstanceRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "ImportKeyPairRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "ImportSnapshotRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "ImportVolumeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "Instance$SourceDestCheck": "

Specifies whether to enable an instance launched in a VPC to perform NAT. This controls whether source/destination checking is enabled on the instance. A value of true means checking is enabled, and false means checking is disabled. The value must be false for the instance to perform NAT. For more information, see NAT Instances in the Amazon Virtual Private Cloud User Guide.

", + "Instance$EbsOptimized": "

Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

", + "InstanceNetworkInterface$SourceDestCheck": "

Indicates whether to validate network traffic to or from this network interface.

", + "InstanceNetworkInterfaceAttachment$DeleteOnTermination": "

Indicates whether the network interface is deleted when the instance is terminated.

", + "InstanceNetworkInterfaceSpecification$DeleteOnTermination": "

If set to true, the interface is deleted when the instance is terminated. You can specify true only if creating a new network interface when launching an instance.

", + "InstanceNetworkInterfaceSpecification$AssociatePublicIpAddress": "

Indicates whether to assign a public IP address to an instance you launch in a VPC. The public IP address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one. You cannot specify more than one network interface in the request. If launching into a default subnet, the default value is true.

", + "InstancePrivateIpAddress$Primary": "

Indicates whether this IP address is the primary private IP address of the network interface.

", + "LaunchSpecification$EbsOptimized": "

Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

Default: false

", + "ModifyImageAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "ModifyInstanceAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "ModifyNetworkInterfaceAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "ModifySnapshotAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "ModifyVolumeAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "ModifyVpcEndpointRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "ModifyVpcEndpointRequest$ResetPolicy": "

Specify true to reset the policy document to the default policy. The default policy allows access to the service.

", + "ModifyVpcEndpointResult$Return": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "MonitorInstancesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "MoveAddressToVpcRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "NetworkAcl$IsDefault": "

Indicates whether this is the default network ACL for the VPC.

", + "NetworkAclEntry$Egress": "

Indicates whether the rule is an egress rule (applied to traffic leaving the subnet).

", + "NetworkInterface$RequesterManaged": "

Indicates whether the network interface is being managed by AWS.

", + "NetworkInterface$SourceDestCheck": "

Indicates whether traffic to or from the instance is validated.

", + "NetworkInterfaceAttachment$DeleteOnTermination": "

Indicates whether the network interface is deleted when the instance is terminated.

", + "NetworkInterfaceAttachmentChanges$DeleteOnTermination": "

Indicates whether the network interface is deleted when the instance is terminated.

", + "NetworkInterfacePrivateIpAddress$Primary": "

Indicates whether this IP address is the primary private IP address of the network interface.

", + "PriceSchedule$Active": "

The current price schedule, as determined by the term remaining for the Reserved Instance in the listing.

A specific price schedule is always in effect, but only one price schedule can be active at any time. Take, for example, a Reserved Instance listing that has five months remaining in its term. When you specify price schedules for five months and two months, this means that schedule 1, covering the first three months of the remaining term, will be active during months 5, 4, and 3. Then schedule 2, covering the last two months of the term, will be active for months 2 and 1.

", + "PrivateIpAddressSpecification$Primary": "

Indicates whether the private IP address is the primary private IP address. Only one IP address can be designated as primary.

", + "PurchaseReservedInstancesOfferingRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "RebootInstancesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "RegisterImageRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "RejectVpcPeeringConnectionRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "RejectVpcPeeringConnectionResult$Return": "

Returns true if the request succeeds; otherwise, it returns an error.

", + "ReleaseAddressRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "ReplaceNetworkAclAssociationRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "ReplaceNetworkAclEntryRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "ReplaceNetworkAclEntryRequest$Egress": "

Indicates whether to replace the egress rule.

Default: If no value is specified, we replace the ingress rule.

", + "ReplaceRouteRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "ReplaceRouteTableAssociationRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "ReportInstanceStatusRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "RequestSpotFleetRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "RequestSpotInstancesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "ReservedInstancesOffering$Marketplace": "

Indicates whether the offering is available through the Reserved Instance Marketplace (resale) or AWS. If it's a Reserved Instance Marketplace offering, this is true.

", + "ResetImageAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "ResetInstanceAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "ResetNetworkInterfaceAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "ResetSnapshotAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "RestoreAddressToClassicRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "RevokeSecurityGroupEgressRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "RevokeSecurityGroupIngressRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "RouteTableAssociation$Main": "

Indicates whether this is the main route table.

", + "RunInstancesMonitoringEnabled$Enabled": "

Indicates whether monitoring is enabled for the instance.

", + "RunInstancesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "RunInstancesRequest$DisableApiTermination": "

If you set this parameter to true, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. If you set this parameter to true and then later want to be able to terminate the instance, you must first change the value of the disableApiTermination attribute to false using ModifyInstanceAttribute. Alternatively, if you set InstanceInitiatedShutdownBehavior to terminate, you can terminate the instance by running the shutdown command from the instance.

Default: false

", + "RunInstancesRequest$EbsOptimized": "

Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance.

Default: false

", + "Snapshot$Encrypted": "

Indicates whether the snapshot is encrypted.

", + "SpotFleetRequestConfigData$TerminateInstancesWithExpiration": "

Indicates whether running instances should be terminated when the Spot fleet request expires.

", + "StartInstancesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "StopInstancesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "StopInstancesRequest$Force": "

Forces the instances to stop. The instances do not have an opportunity to flush file system caches or file system metadata. If you use this option, you must perform file system check and repair procedures. This option is not recommended for Windows instances.

Default: false

", + "Subnet$DefaultForAz": "

Indicates whether this is the default subnet for the Availability Zone.

", + "Subnet$MapPublicIpOnLaunch": "

Indicates whether instances launched in this subnet receive a public IP address.

", + "TerminateInstancesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "UnmonitorInstancesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", + "Volume$Encrypted": "

Indicates whether the volume will be encrypted.

", + "VolumeAttachment$DeleteOnTermination": "

Indicates whether the EBS volume is deleted on instance termination.

", + "Vpc$IsDefault": "

Indicates whether the VPC is the default VPC.

", + "VpcClassicLink$ClassicLinkEnabled": "

Indicates whether the VPC is enabled for ClassicLink.

", + "VpnConnectionOptions$StaticRoutesOnly": "

Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.

", + "VpnConnectionOptionsSpecification$StaticRoutesOnly": "

Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.

", + "RequestSpotLaunchSpecification$EbsOptimized": "

Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.

Default: false

" + } + }, + "BundleIdStringList": { + "base": null, + "refs": { + "DescribeBundleTasksRequest$BundleIds": "

One or more bundle task IDs.

Default: Describes all your bundle tasks.

" + } + }, + "BundleInstanceRequest": { + "base": null, + "refs": { + } + }, + "BundleInstanceResult": { + "base": null, + "refs": { + } + }, + "BundleTask": { + "base": "

Describes a bundle task.

", + "refs": { + "BundleInstanceResult$BundleTask": "

Information about the bundle task.

", + "BundleTaskList$member": null, + "CancelBundleTaskResult$BundleTask": "

Information about the bundle task.

" + } + }, + "BundleTaskError": { + "base": "

Describes an error for BundleInstance.

", + "refs": { + "BundleTask$BundleTaskError": "

If the task fails, a description of the error.

" + } + }, + "BundleTaskList": { + "base": null, + "refs": { + "DescribeBundleTasksResult$BundleTasks": "

Information about one or more bundle tasks.

" + } + }, + "BundleTaskState": { + "base": null, + "refs": { + "BundleTask$State": "

The state of the task.

" + } + }, + "CancelBatchErrorCode": { + "base": null, + "refs": { + "CancelSpotFleetRequestsError$Code": "

The error code.

" + } + }, + "CancelBundleTaskRequest": { + "base": null, + "refs": { + } + }, + "CancelBundleTaskResult": { + "base": null, + "refs": { + } + }, + "CancelConversionRequest": { + "base": null, + "refs": { + } + }, + "CancelExportTaskRequest": { + "base": null, + "refs": { + } + }, + "CancelImportTaskRequest": { + "base": null, + "refs": { + } + }, + "CancelImportTaskResult": { + "base": null, + "refs": { + } + }, + "CancelReservedInstancesListingRequest": { + "base": null, + "refs": { + } + }, + "CancelReservedInstancesListingResult": { + "base": null, + "refs": { + } + }, + "CancelSpotFleetRequestsError": { + "base": "

Describes a Spot fleet error.

", + "refs": { + "CancelSpotFleetRequestsErrorItem$Error": "

The error.

" + } + }, + "CancelSpotFleetRequestsErrorItem": { + "base": "

Describes a Spot fleet request that was not successfully canceled.

", + "refs": { + "CancelSpotFleetRequestsErrorSet$member": null + } + }, + "CancelSpotFleetRequestsErrorSet": { + "base": null, + "refs": { + "CancelSpotFleetRequestsResponse$UnsuccessfulFleetRequests": "

Information about the Spot fleet requests that are not successfully canceled.

" + } + }, + "CancelSpotFleetRequestsRequest": { + "base": "

Contains the parameters for CancelSpotFleetRequests.

", + "refs": { + } + }, + "CancelSpotFleetRequestsResponse": { + "base": "

Contains the output of CancelSpotFleetRequests.

", + "refs": { + } + }, + "CancelSpotFleetRequestsSuccessItem": { + "base": "

Describes a Spot fleet request that was successfully canceled.

", + "refs": { + "CancelSpotFleetRequestsSuccessSet$member": null + } + }, + "CancelSpotFleetRequestsSuccessSet": { + "base": null, + "refs": { + "CancelSpotFleetRequestsResponse$SuccessfulFleetRequests": "

Information about the Spot fleet requests that are successfully canceled.

" + } + }, + "CancelSpotInstanceRequestState": { + "base": null, + "refs": { + "CancelledSpotInstanceRequest$State": "

The state of the Spot Instance request.

" + } + }, + "CancelSpotInstanceRequestsRequest": { + "base": "

Contains the parameters for CancelSpotInstanceRequests.

", + "refs": { + } + }, + "CancelSpotInstanceRequestsResult": { + "base": "

Contains the output of CancelSpotInstanceRequests.

", + "refs": { + } + }, + "CancelledSpotInstanceRequest": { + "base": "

Describes a request to cancel a Spot Instance.

", + "refs": { + "CancelledSpotInstanceRequestList$member": null + } + }, + "CancelledSpotInstanceRequestList": { + "base": null, + "refs": { + "CancelSpotInstanceRequestsResult$CancelledSpotInstanceRequests": "

One or more Spot Instance requests.

" + } + }, + "ClassicLinkInstance": { + "base": "

Describes a linked EC2-Classic instance.

", + "refs": { + "ClassicLinkInstanceList$member": null + } + }, + "ClassicLinkInstanceList": { + "base": null, + "refs": { + "DescribeClassicLinkInstancesResult$Instances": "

Information about one or more linked EC2-Classic instances.

" + } + }, + "ClientData": { + "base": "

Describes the client-specific data.

", + "refs": { + "ImportImageRequest$ClientData": "

The client-specific data.

", + "ImportSnapshotRequest$ClientData": "

The client-specific data.

" + } + }, + "ConfirmProductInstanceRequest": { + "base": null, + "refs": { + } + }, + "ConfirmProductInstanceResult": { + "base": null, + "refs": { + } + }, + "ContainerFormat": { + "base": null, + "refs": { + "ExportToS3Task$ContainerFormat": "

The container format used to combine disk images with metadata (such as OVF). If absent, only the disk image is exported.

", + "ExportToS3TaskSpecification$ContainerFormat": "

The container format used to combine disk images with metadata (such as OVF). If absent, only the disk image is exported.

" + } + }, + "ConversionIdStringList": { + "base": null, + "refs": { + "DescribeConversionTasksRequest$ConversionTaskIds": "

One or more conversion task IDs.

" + } + }, + "ConversionTask": { + "base": "

Describes a conversion task.

", + "refs": { + "DescribeConversionTaskList$member": null, + "ImportInstanceResult$ConversionTask": "

Information about the conversion task.

", + "ImportVolumeResult$ConversionTask": "

Information about the conversion task.

" + } + }, + "ConversionTaskState": { + "base": null, + "refs": { + "ConversionTask$State": "

The state of the conversion task.

" + } + }, + "CopyImageRequest": { + "base": null, + "refs": { + } + }, + "CopyImageResult": { + "base": null, + "refs": { + } + }, + "CopySnapshotRequest": { + "base": null, + "refs": { + } + }, + "CopySnapshotResult": { + "base": null, + "refs": { + } + }, + "CreateCustomerGatewayRequest": { + "base": null, + "refs": { + } + }, + "CreateCustomerGatewayResult": { + "base": null, + "refs": { + } + }, + "CreateDhcpOptionsRequest": { + "base": null, + "refs": { + } + }, + "CreateDhcpOptionsResult": { + "base": null, + "refs": { + } + }, + "CreateFlowLogsRequest": { + "base": null, + "refs": { + } + }, + "CreateFlowLogsResult": { + "base": null, + "refs": { + } + }, + "CreateImageRequest": { + "base": null, + "refs": { + } + }, + "CreateImageResult": { + "base": null, + "refs": { + } + }, + "CreateInstanceExportTaskRequest": { + "base": null, + "refs": { + } + }, + "CreateInstanceExportTaskResult": { + "base": null, + "refs": { + } + }, + "CreateInternetGatewayRequest": { + "base": null, + "refs": { + } + }, + "CreateInternetGatewayResult": { + "base": null, + "refs": { + } + }, + "CreateKeyPairRequest": { + "base": null, + "refs": { + } + }, + "CreateNetworkAclEntryRequest": { + "base": null, + "refs": { + } + }, + "CreateNetworkAclRequest": { + "base": null, + "refs": { + } + }, + "CreateNetworkAclResult": { + "base": null, + "refs": { + } + }, + "CreateNetworkInterfaceRequest": { + "base": null, + "refs": { + } + }, + "CreateNetworkInterfaceResult": { + "base": null, + "refs": { + } + }, + "CreatePlacementGroupRequest": { + "base": null, + "refs": { + } + }, + "CreateReservedInstancesListingRequest": { + "base": null, + "refs": { + } + }, + "CreateReservedInstancesListingResult": { + "base": null, + "refs": { + } + }, + "CreateRouteRequest": { + "base": null, + "refs": { + } + }, + "CreateRouteResult": { + "base": null, + "refs": { + } + }, + "CreateRouteTableRequest": { + "base": null, + "refs": { + } + }, + "CreateRouteTableResult": { + "base": null, + "refs": { + } + }, + "CreateSecurityGroupRequest": { + "base": null, + "refs": { + } + }, + "CreateSecurityGroupResult": { + "base": null, + "refs": { + } + }, + "CreateSnapshotRequest": { + "base": null, + "refs": { + } + }, + "CreateSpotDatafeedSubscriptionRequest": { + "base": "

Contains the parameters for CreateSpotDatafeedSubscription.

", + "refs": { + } + }, + "CreateSpotDatafeedSubscriptionResult": { + "base": "

Contains the output of CreateSpotDatafeedSubscription.

", + "refs": { + } + }, + "CreateSubnetRequest": { + "base": null, + "refs": { + } + }, + "CreateSubnetResult": { + "base": null, + "refs": { + } + }, + "CreateTagsRequest": { + "base": null, + "refs": { + } + }, + "CreateVolumePermission": { + "base": "

Describes the user or group to be added or removed from the permissions for a volume.

", + "refs": { + "CreateVolumePermissionList$member": null + } + }, + "CreateVolumePermissionList": { + "base": null, + "refs": { + "CreateVolumePermissionModifications$Add": "

Adds a specific AWS account ID or group to a volume's list of create volume permissions.

", + "CreateVolumePermissionModifications$Remove": "

Removes a specific AWS account ID or group from a volume's list of create volume permissions.

", + "DescribeSnapshotAttributeResult$CreateVolumePermissions": "

A list of permissions for creating volumes from the snapshot.

" + } + }, + "CreateVolumePermissionModifications": { + "base": "

Describes modifications to the permissions for a volume.

", + "refs": { + "ModifySnapshotAttributeRequest$CreateVolumePermission": "

A JSON representation of the snapshot attribute modification.

" + } + }, + "CreateVolumeRequest": { + "base": null, + "refs": { + } + }, + "CreateVpcEndpointRequest": { + "base": null, + "refs": { + } + }, + "CreateVpcEndpointResult": { + "base": null, + "refs": { + } + }, + "CreateVpcPeeringConnectionRequest": { + "base": null, + "refs": { + } + }, + "CreateVpcPeeringConnectionResult": { + "base": null, + "refs": { + } + }, + "CreateVpcRequest": { + "base": null, + "refs": { + } + }, + "CreateVpcResult": { + "base": null, + "refs": { + } + }, + "CreateVpnConnectionRequest": { + "base": null, + "refs": { + } + }, + "CreateVpnConnectionResult": { + "base": null, + "refs": { + } + }, + "CreateVpnConnectionRouteRequest": { + "base": null, + "refs": { + } + }, + "CreateVpnGatewayRequest": { + "base": null, + "refs": { + } + }, + "CreateVpnGatewayResult": { + "base": null, + "refs": { + } + }, + "CurrencyCodeValues": { + "base": null, + "refs": { + "PriceSchedule$CurrencyCode": "

The currency for transacting the Reserved Instance resale. At this time, the only supported currency is USD.

", + "PriceScheduleSpecification$CurrencyCode": "

The currency for transacting the Reserved Instance resale. At this time, the only supported currency is USD.

", + "ReservedInstanceLimitPrice$CurrencyCode": "

The currency in which the limitPrice amount is specified. At this time, the only supported currency is USD.

", + "ReservedInstances$CurrencyCode": "

The currency of the Reserved Instance. It's specified using ISO 4217 standard currency codes. At this time, the only supported currency is USD.

", + "ReservedInstancesOffering$CurrencyCode": "

The currency of the Reserved Instance offering you are purchasing. It's specified using ISO 4217 standard currency codes. At this time, the only supported currency is USD.

" + } + }, + "CustomerGateway": { + "base": "

Describes a customer gateway.

", + "refs": { + "CreateCustomerGatewayResult$CustomerGateway": "

Information about the customer gateway.

", + "CustomerGatewayList$member": null + } + }, + "CustomerGatewayIdStringList": { + "base": null, + "refs": { + "DescribeCustomerGatewaysRequest$CustomerGatewayIds": "

One or more customer gateway IDs.

Default: Describes all your customer gateways.

" + } + }, + "CustomerGatewayList": { + "base": null, + "refs": { + "DescribeCustomerGatewaysResult$CustomerGateways": "

Information about one or more customer gateways.

" + } + }, + "DatafeedSubscriptionState": { + "base": null, + "refs": { + "SpotDatafeedSubscription$State": "

The state of the Spot Instance data feed subscription.

" + } + }, + "DateTime": { + "base": null, + "refs": { + "BundleTask$StartTime": "

The time this task started.

", + "BundleTask$UpdateTime": "

The time of the most recent update for the task.

", + "ClientData$UploadStart": "

The time that the disk upload starts.

", + "ClientData$UploadEnd": "

The time that the disk upload ends.

", + "DescribeSpotFleetRequestHistoryRequest$StartTime": "

The starting date and time for the events, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).

", + "DescribeSpotFleetRequestHistoryResponse$StartTime": "

The starting date and time for the events, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).

", + "DescribeSpotFleetRequestHistoryResponse$LastEvaluatedTime": "

The last date and time for the events, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). All records up to this time were retrieved.

If nextToken indicates that there are more results, this value is not present.

", + "DescribeSpotPriceHistoryRequest$StartTime": "

The date and time, up to the past 90 days, from which to start retrieving the price history data, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).

", + "DescribeSpotPriceHistoryRequest$EndTime": "

The date and time, up to the current date, from which to stop retrieving the price history data, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).

", + "EbsInstanceBlockDevice$AttachTime": "

The time stamp when the attachment initiated.

", + "FlowLog$CreationTime": "

The date and time the flow log was created.

", + "GetConsoleOutputResult$Timestamp": "

The time the output was last updated.

", + "GetPasswordDataResult$Timestamp": "

The time the data was last updated.

", + "HistoryRecord$Timestamp": "

The date and time of the event, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).

", + "Instance$LaunchTime": "

The time the instance was launched.

", + "InstanceNetworkInterfaceAttachment$AttachTime": "

The time stamp when the attachment initiated.

", + "InstanceStatusDetails$ImpairedSince": "

The time when a status check failed. For an instance that was launched and impaired, this is the time when the instance was launched.

", + "InstanceStatusEvent$NotBefore": "

The earliest scheduled start time for the event.

", + "InstanceStatusEvent$NotAfter": "

The latest scheduled end time for the event.

", + "NetworkInterfaceAttachment$AttachTime": "

The timestamp indicating when the attachment initiated.

", + "ReportInstanceStatusRequest$StartTime": "

The time at which the reported instance health state began.

", + "ReportInstanceStatusRequest$EndTime": "

The time at which the reported instance health state ended.

", + "RequestSpotInstancesRequest$ValidFrom": "

The start date of the request. If this is a one-time request, the request becomes active at this date and time and remains active until all instances launch, the request expires, or the request is canceled. If the request is persistent, the request becomes active at this date and time and remains active until it expires or is canceled.

Default: The request is effective indefinitely.

", + "RequestSpotInstancesRequest$ValidUntil": "

The end date of the request. If this is a one-time request, the request remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date and time is reached.

Default: The request is effective indefinitely.

", + "ReservedInstances$Start": "

The date and time the Reserved Instance started.

", + "ReservedInstances$End": "

The time when the Reserved Instance expires.

", + "ReservedInstancesListing$CreateDate": "

The time the listing was created.

", + "ReservedInstancesListing$UpdateDate": "

The last modified timestamp of the listing.

", + "ReservedInstancesModification$CreateDate": "

The time when the modification request was created.

", + "ReservedInstancesModification$UpdateDate": "

The time when the modification request was last updated.

", + "ReservedInstancesModification$EffectiveDate": "

The time for the modification to become effective.

", + "Snapshot$StartTime": "

The time stamp when the snapshot was initiated.

", + "SpotFleetRequestConfigData$ValidFrom": "

The start date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately.

", + "SpotFleetRequestConfigData$ValidUntil": "

The end date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot Instance requests are placed or enabled to fulfill the request.

", + "SpotInstanceRequest$ValidFrom": "

The start date of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). If this is a one-time request, the request becomes active at this date and time and remains active until all instances launch, the request expires, or the request is canceled. If the request is persistent, the request becomes active at this date and time and remains active until it expires or is canceled.

", + "SpotInstanceRequest$ValidUntil": "

The end date of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). If this is a one-time request, the request remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date is reached.

", + "SpotInstanceRequest$CreateTime": "

The date and time when the Spot Instance request was created, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).

", + "SpotInstanceStatus$UpdateTime": "

The date and time of the most recent status update, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).

", + "SpotPrice$Timestamp": "

The date and time the request was created, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).

", + "VgwTelemetry$LastStatusChange": "

The date and time of the last change in status.

", + "Volume$CreateTime": "

The time stamp when volume creation was initiated.

", + "VolumeAttachment$AttachTime": "

The time stamp when the attachment initiated.

", + "VolumeStatusEvent$NotBefore": "

The earliest start time of the event.

", + "VolumeStatusEvent$NotAfter": "

The latest end time of the event.

", + "VpcEndpoint$CreationTimestamp": "

The date and time the VPC endpoint was created.

", + "VpcPeeringConnection$ExpirationTime": "

The time that an unaccepted VPC peering connection will expire.

" + } + }, + "DeleteCustomerGatewayRequest": { + "base": null, + "refs": { + } + }, + "DeleteDhcpOptionsRequest": { + "base": null, + "refs": { + } + }, + "DeleteFlowLogsRequest": { + "base": null, + "refs": { + } + }, + "DeleteFlowLogsResult": { + "base": null, + "refs": { + } + }, + "DeleteInternetGatewayRequest": { + "base": null, + "refs": { + } + }, + "DeleteKeyPairRequest": { + "base": null, + "refs": { + } + }, + "DeleteNetworkAclEntryRequest": { + "base": null, + "refs": { + } + }, + "DeleteNetworkAclRequest": { + "base": null, + "refs": { + } + }, + "DeleteNetworkInterfaceRequest": { + "base": null, + "refs": { + } + }, + "DeletePlacementGroupRequest": { + "base": null, + "refs": { + } + }, + "DeleteRouteRequest": { + "base": null, + "refs": { + } + }, + "DeleteRouteTableRequest": { + "base": null, + "refs": { + } + }, + "DeleteSecurityGroupRequest": { + "base": null, + "refs": { + } + }, + "DeleteSnapshotRequest": { + "base": null, + "refs": { + } + }, + "DeleteSpotDatafeedSubscriptionRequest": { + "base": "

Contains the parameters for DeleteSpotDatafeedSubscription.

", + "refs": { + } + }, + "DeleteSubnetRequest": { + "base": null, + "refs": { + } + }, + "DeleteTagsRequest": { + "base": null, + "refs": { + } + }, + "DeleteVolumeRequest": { + "base": null, + "refs": { + } + }, + "DeleteVpcEndpointsRequest": { + "base": null, + "refs": { + } + }, + "DeleteVpcEndpointsResult": { + "base": null, + "refs": { + } + }, + "DeleteVpcPeeringConnectionRequest": { + "base": null, + "refs": { + } + }, + "DeleteVpcPeeringConnectionResult": { + "base": null, + "refs": { + } + }, + "DeleteVpcRequest": { + "base": null, + "refs": { + } + }, + "DeleteVpnConnectionRequest": { + "base": null, + "refs": { + } + }, + "DeleteVpnConnectionRouteRequest": { + "base": null, + "refs": { + } + }, + "DeleteVpnGatewayRequest": { + "base": null, + "refs": { + } + }, + "DeregisterImageRequest": { + "base": null, + "refs": { + } + }, + "DescribeAccountAttributesRequest": { + "base": null, + "refs": { + } + }, + "DescribeAccountAttributesResult": { + "base": null, + "refs": { + } + }, + "DescribeAddressesRequest": { + "base": null, + "refs": { + } + }, + "DescribeAddressesResult": { + "base": null, + "refs": { + } + }, + "DescribeAvailabilityZonesRequest": { + "base": null, + "refs": { + } + }, + "DescribeAvailabilityZonesResult": { + "base": null, + "refs": { + } + }, + "DescribeBundleTasksRequest": { + "base": null, + "refs": { + } + }, + "DescribeBundleTasksResult": { + "base": null, + "refs": { + } + }, + "DescribeClassicLinkInstancesRequest": { + "base": null, + "refs": { + } + }, + "DescribeClassicLinkInstancesResult": { + "base": null, + "refs": { + } + }, + "DescribeConversionTaskList": { + "base": null, + "refs": { + "DescribeConversionTasksResult$ConversionTasks": "

Information about the conversion tasks.

" + } + }, + "DescribeConversionTasksRequest": { + "base": null, + "refs": { + } + }, + "DescribeConversionTasksResult": { + "base": null, + "refs": { + } + }, + "DescribeCustomerGatewaysRequest": { + "base": null, + "refs": { + } + }, + "DescribeCustomerGatewaysResult": { + "base": null, + "refs": { + } + }, + "DescribeDhcpOptionsRequest": { + "base": null, + "refs": { + } + }, + "DescribeDhcpOptionsResult": { + "base": null, + "refs": { + } + }, + "DescribeExportTasksRequest": { + "base": null, + "refs": { + } + }, + "DescribeExportTasksResult": { + "base": null, + "refs": { + } + }, + "DescribeFlowLogsRequest": { + "base": null, + "refs": { + } + }, + "DescribeFlowLogsResult": { + "base": null, + "refs": { + } + }, + "DescribeImageAttributeRequest": { + "base": null, + "refs": { + } + }, + "DescribeImagesRequest": { + "base": null, + "refs": { + } + }, + "DescribeImagesResult": { + "base": null, + "refs": { + } + }, + "DescribeImportImageTasksRequest": { + "base": null, + "refs": { + } + }, + "DescribeImportImageTasksResult": { + "base": null, + "refs": { + } + }, + "DescribeImportSnapshotTasksRequest": { + "base": null, + "refs": { + } + }, + "DescribeImportSnapshotTasksResult": { + "base": null, + "refs": { + } + }, + "DescribeInstanceAttributeRequest": { + "base": null, + "refs": { + } + }, + "DescribeInstanceStatusRequest": { + "base": null, + "refs": { + } + }, + "DescribeInstanceStatusResult": { + "base": null, + "refs": { + } + }, + "DescribeInstancesRequest": { + "base": null, + "refs": { + } + }, + "DescribeInstancesResult": { + "base": null, + "refs": { + } + }, + "DescribeInternetGatewaysRequest": { + "base": null, + "refs": { + } + }, + "DescribeInternetGatewaysResult": { + "base": null, + "refs": { + } + }, + "DescribeKeyPairsRequest": { + "base": null, + "refs": { + } + }, + "DescribeKeyPairsResult": { + "base": null, + "refs": { + } + }, + "DescribeMovingAddressesRequest": { + "base": null, + "refs": { + } + }, + "DescribeMovingAddressesResult": { + "base": null, + "refs": { + } + }, + "DescribeNetworkAclsRequest": { + "base": null, + "refs": { + } + }, + "DescribeNetworkAclsResult": { + "base": null, + "refs": { + } + }, + "DescribeNetworkInterfaceAttributeRequest": { + "base": null, + "refs": { + } + }, + "DescribeNetworkInterfaceAttributeResult": { + "base": null, + "refs": { + } + }, + "DescribeNetworkInterfacesRequest": { + "base": null, + "refs": { + } + }, + "DescribeNetworkInterfacesResult": { + "base": null, + "refs": { + } + }, + "DescribePlacementGroupsRequest": { + "base": null, + "refs": { + } + }, + "DescribePlacementGroupsResult": { + "base": null, + "refs": { + } + }, + "DescribePrefixListsRequest": { + "base": null, + "refs": { + } + }, + "DescribePrefixListsResult": { + "base": null, + "refs": { + } + }, + "DescribeRegionsRequest": { + "base": null, + "refs": { + } + }, + "DescribeRegionsResult": { + "base": null, + "refs": { + } + }, + "DescribeReservedInstancesListingsRequest": { + "base": null, + "refs": { + } + }, + "DescribeReservedInstancesListingsResult": { + "base": null, + "refs": { + } + }, + "DescribeReservedInstancesModificationsRequest": { + "base": null, + "refs": { + } + }, + "DescribeReservedInstancesModificationsResult": { + "base": null, + "refs": { + } + }, + "DescribeReservedInstancesOfferingsRequest": { + "base": null, + "refs": { + } + }, + "DescribeReservedInstancesOfferingsResult": { + "base": null, + "refs": { + } + }, + "DescribeReservedInstancesRequest": { + "base": null, + "refs": { + } + }, + "DescribeReservedInstancesResult": { + "base": null, + "refs": { + } + }, + "DescribeRouteTablesRequest": { + "base": null, + "refs": { + } + }, + "DescribeRouteTablesResult": { + "base": null, + "refs": { + } + }, + "DescribeSecurityGroupsRequest": { + "base": null, + "refs": { + } + }, + "DescribeSecurityGroupsResult": { + "base": null, + "refs": { + } + }, + "DescribeSnapshotAttributeRequest": { + "base": null, + "refs": { + } + }, + "DescribeSnapshotAttributeResult": { + "base": null, + "refs": { + } + }, + "DescribeSnapshotsRequest": { + "base": null, + "refs": { + } + }, + "DescribeSnapshotsResult": { + "base": null, + "refs": { + } + }, + "DescribeSpotDatafeedSubscriptionRequest": { + "base": "

Contains the parameters for DescribeSpotDatafeedSubscription.

", + "refs": { + } + }, + "DescribeSpotDatafeedSubscriptionResult": { + "base": "

Contains the output of DescribeSpotDatafeedSubscription.

", + "refs": { + } + }, + "DescribeSpotFleetInstancesRequest": { + "base": "

Contains the parameters for DescribeSpotFleetInstances.

", + "refs": { + } + }, + "DescribeSpotFleetInstancesResponse": { + "base": "

Contains the output of DescribeSpotFleetInstances.

", + "refs": { + } + }, + "DescribeSpotFleetRequestHistoryRequest": { + "base": "

Contains the parameters for DescribeSpotFleetRequestHistory.

", + "refs": { + } + }, + "DescribeSpotFleetRequestHistoryResponse": { + "base": "

Contains the output of DescribeSpotFleetRequestHistory.

", + "refs": { + } + }, + "DescribeSpotFleetRequestsRequest": { + "base": "

Contains the parameters for DescribeSpotFleetRequests.

", + "refs": { + } + }, + "DescribeSpotFleetRequestsResponse": { + "base": "

Contains the output of DescribeSpotFleetRequests.

", + "refs": { + } + }, + "DescribeSpotInstanceRequestsRequest": { + "base": "

Contains the parameters for DescribeSpotInstanceRequests.

", + "refs": { + } + }, + "DescribeSpotInstanceRequestsResult": { + "base": "

Contains the output of DescribeSpotInstanceRequests.

", + "refs": { + } + }, + "DescribeSpotPriceHistoryRequest": { + "base": "

Contains the parameters for DescribeSpotPriceHistory.

", + "refs": { + } + }, + "DescribeSpotPriceHistoryResult": { + "base": "

Contains the output of DescribeSpotPriceHistory.

", + "refs": { + } + }, + "DescribeSubnetsRequest": { + "base": null, + "refs": { + } + }, + "DescribeSubnetsResult": { + "base": null, + "refs": { + } + }, + "DescribeTagsRequest": { + "base": null, + "refs": { + } + }, + "DescribeTagsResult": { + "base": null, + "refs": { + } + }, + "DescribeVolumeAttributeRequest": { + "base": null, + "refs": { + } + }, + "DescribeVolumeAttributeResult": { + "base": null, + "refs": { + } + }, + "DescribeVolumeStatusRequest": { + "base": null, + "refs": { + } + }, + "DescribeVolumeStatusResult": { + "base": null, + "refs": { + } + }, + "DescribeVolumesRequest": { + "base": null, + "refs": { + } + }, + "DescribeVolumesResult": { + "base": null, + "refs": { + } + }, + "DescribeVpcAttributeRequest": { + "base": null, + "refs": { + } + }, + "DescribeVpcAttributeResult": { + "base": null, + "refs": { + } + }, + "DescribeVpcClassicLinkRequest": { + "base": null, + "refs": { + } + }, + "DescribeVpcClassicLinkResult": { + "base": null, + "refs": { + } + }, + "DescribeVpcEndpointServicesRequest": { + "base": null, + "refs": { + } + }, + "DescribeVpcEndpointServicesResult": { + "base": null, + "refs": { + } + }, + "DescribeVpcEndpointsRequest": { + "base": null, + "refs": { + } + }, + "DescribeVpcEndpointsResult": { + "base": null, + "refs": { + } + }, + "DescribeVpcPeeringConnectionsRequest": { + "base": null, + "refs": { + } + }, + "DescribeVpcPeeringConnectionsResult": { + "base": null, + "refs": { + } + }, + "DescribeVpcsRequest": { + "base": null, + "refs": { + } + }, + "DescribeVpcsResult": { + "base": null, + "refs": { + } + }, + "DescribeVpnConnectionsRequest": { + "base": null, + "refs": { + } + }, + "DescribeVpnConnectionsResult": { + "base": null, + "refs": { + } + }, + "DescribeVpnGatewaysRequest": { + "base": null, + "refs": { + } + }, + "DescribeVpnGatewaysResult": { + "base": null, + "refs": { + } + }, + "DetachClassicLinkVpcRequest": { + "base": null, + "refs": { + } + }, + "DetachClassicLinkVpcResult": { + "base": null, + "refs": { + } + }, + "DetachInternetGatewayRequest": { + "base": null, + "refs": { + } + }, + "DetachNetworkInterfaceRequest": { + "base": null, + "refs": { + } + }, + "DetachVolumeRequest": { + "base": null, + "refs": { + } + }, + "DetachVpnGatewayRequest": { + "base": null, + "refs": { + } + }, + "DeviceType": { + "base": null, + "refs": { + "Image$RootDeviceType": "

The type of root device used by the AMI. The AMI can use an EBS volume or an instance store volume.

", + "Instance$RootDeviceType": "

The root device type used by the AMI. The AMI can use an EBS volume or an instance store volume.

" + } + }, + "DhcpConfiguration": { + "base": "

Describes a DHCP configuration option.

", + "refs": { + "DhcpConfigurationList$member": null + } + }, + "DhcpConfigurationList": { + "base": null, + "refs": { + "DhcpOptions$DhcpConfigurations": "

One or more DHCP options in the set.

" + } + }, + "DhcpOptions": { + "base": "

Describes a set of DHCP options.

", + "refs": { + "CreateDhcpOptionsResult$DhcpOptions": "

A set of DHCP options.

", + "DhcpOptionsList$member": null + } + }, + "DhcpOptionsIdStringList": { + "base": null, + "refs": { + "DescribeDhcpOptionsRequest$DhcpOptionsIds": "

The IDs of one or more DHCP options sets.

Default: Describes all your DHCP options sets.

" + } + }, + "DhcpOptionsList": { + "base": null, + "refs": { + "DescribeDhcpOptionsResult$DhcpOptions": "

Information about one or more DHCP options sets.

" + } + }, + "DisableVgwRoutePropagationRequest": { + "base": null, + "refs": { + } + }, + "DisableVpcClassicLinkRequest": { + "base": null, + "refs": { + } + }, + "DisableVpcClassicLinkResult": { + "base": null, + "refs": { + } + }, + "DisassociateAddressRequest": { + "base": null, + "refs": { + } + }, + "DisassociateRouteTableRequest": { + "base": null, + "refs": { + } + }, + "DiskImage": { + "base": "

Describes a disk image.

", + "refs": { + "DiskImageList$member": null + } + }, + "DiskImageDescription": { + "base": "

Describes a disk image.

", + "refs": { + "ImportInstanceVolumeDetailItem$Image": "

The image.

", + "ImportVolumeTaskDetails$Image": "

The image.

" + } + }, + "DiskImageDetail": { + "base": "

Describes a disk image.

", + "refs": { + "DiskImage$Image": "

Information about the disk image.

", + "ImportVolumeRequest$Image": "

The disk image.

" + } + }, + "DiskImageFormat": { + "base": null, + "refs": { + "DiskImageDescription$Format": "

The disk image format.

", + "DiskImageDetail$Format": "

The disk image format.

", + "ExportToS3Task$DiskImageFormat": "

The format for the exported image.

", + "ExportToS3TaskSpecification$DiskImageFormat": "

The format for the exported image.

" + } + }, + "DiskImageList": { + "base": null, + "refs": { + "ImportInstanceRequest$DiskImages": "

The disk image.

" + } + }, + "DiskImageVolumeDescription": { + "base": "

Describes a disk image volume.

", + "refs": { + "ImportInstanceVolumeDetailItem$Volume": "

The volume.

", + "ImportVolumeTaskDetails$Volume": "

The volume.

" + } + }, + "DomainType": { + "base": null, + "refs": { + "Address$Domain": "

Indicates whether this Elastic IP address is for use with instances in EC2-Classic (standard) or instances in a VPC (vpc).

", + "AllocateAddressRequest$Domain": "

Set to vpc to allocate the address for use with instances in a VPC.

Default: The address is for use with instances in EC2-Classic.

", + "AllocateAddressResult$Domain": "

Indicates whether this Elastic IP address is for use with instances in EC2-Classic (standard) or instances in a VPC (vpc).

" + } + }, + "Double": { + "base": null, + "refs": { + "ClientData$UploadSize": "

The size of the uploaded disk image, in GiB.

", + "PriceSchedule$Price": "

The fixed price for the term.

", + "PriceScheduleSpecification$Price": "

The fixed price for the term.

", + "PricingDetail$Price": "

The price per instance.

", + "RecurringCharge$Amount": "

The amount of the recurring charge.

", + "ReservedInstanceLimitPrice$Amount": "

Used for Reserved Instance Marketplace offerings. Specifies the limit price on the total order (instanceCount * price).

", + "SnapshotDetail$DiskImageSize": "

The size of the disk in the snapshot, in GiB.

", + "SnapshotTaskDetail$DiskImageSize": "

The size of the disk in the snapshot, in GiB.

" + } + }, + "EbsBlockDevice": { + "base": "

Describes a block device for an EBS volume.

", + "refs": { + "BlockDeviceMapping$Ebs": "

Parameters used to automatically set up EBS volumes when the instance is launched.

" + } + }, + "EbsInstanceBlockDevice": { + "base": "

Describes a parameter used to set up an EBS volume in a block device mapping.

", + "refs": { + "InstanceBlockDeviceMapping$Ebs": "

Parameters used to automatically set up EBS volumes when the instance is launched.

" + } + }, + "EbsInstanceBlockDeviceSpecification": { + "base": null, + "refs": { + "InstanceBlockDeviceMappingSpecification$Ebs": "

Parameters used to automatically set up EBS volumes when the instance is launched.

" + } + }, + "EnableVgwRoutePropagationRequest": { + "base": null, + "refs": { + } + }, + "EnableVolumeIORequest": { + "base": null, + "refs": { + } + }, + "EnableVpcClassicLinkRequest": { + "base": null, + "refs": { + } + }, + "EnableVpcClassicLinkResult": { + "base": null, + "refs": { + } + }, + "EventCode": { + "base": null, + "refs": { + "InstanceStatusEvent$Code": "

The event code.

" + } + }, + "EventInformation": { + "base": "

Describes a Spot fleet event.

", + "refs": { + "HistoryRecord$EventInformation": "

Information about the event.

" + } + }, + "EventType": { + "base": null, + "refs": { + "DescribeSpotFleetRequestHistoryRequest$EventType": "

The type of events to describe. By default, all events are described.

", + "HistoryRecord$EventType": "

The event type.

  • error - Indicates an error with the Spot fleet request.

  • fleetRequestChange - Indicates a change in the status or configuration of the Spot fleet request.

  • instanceChange - Indicates that an instance was launched or terminated.

" + } + }, + "ExecutableByStringList": { + "base": null, + "refs": { + "DescribeImagesRequest$ExecutableUsers": "

Scopes the images by users with explicit launch permissions. Specify an AWS account ID, self (the sender of the request), or all (public AMIs).

" + } + }, + "ExportEnvironment": { + "base": null, + "refs": { + "CreateInstanceExportTaskRequest$TargetEnvironment": "

The target virtualization environment.

", + "InstanceExportDetails$TargetEnvironment": "

The target virtualization environment.

" + } + }, + "ExportTask": { + "base": "

Describes an instance export task.

", + "refs": { + "CreateInstanceExportTaskResult$ExportTask": "

Information about the instance export task.

", + "ExportTaskList$member": null + } + }, + "ExportTaskIdStringList": { + "base": null, + "refs": { + "DescribeExportTasksRequest$ExportTaskIds": "

One or more export task IDs.

" + } + }, + "ExportTaskList": { + "base": null, + "refs": { + "DescribeExportTasksResult$ExportTasks": "

Information about the export tasks.

" + } + }, + "ExportTaskState": { + "base": null, + "refs": { + "ExportTask$State": "

The state of the export task.

" + } + }, + "ExportToS3Task": { + "base": "

Describes the format and location for an instance export task.

", + "refs": { + "ExportTask$ExportToS3Task": "

Information about the export task.

" + } + }, + "ExportToS3TaskSpecification": { + "base": "

Describes an instance export task.

", + "refs": { + "CreateInstanceExportTaskRequest$ExportToS3Task": "

The format and location for an instance export task.

" + } + }, + "Filter": { + "base": "

A filter name and value pair that is used to return a more specific list of results. Filters can be used to match a set of resources by various criteria, such as tags, attributes, or IDs.

", + "refs": { + "FilterList$member": null + } + }, + "FilterList": { + "base": null, + "refs": { + "DescribeAddressesRequest$Filters": "

One or more filters. Filter names and values are case-sensitive.

  • allocation-id - [EC2-VPC] The allocation ID for the address.

  • association-id - [EC2-VPC] The association ID for the address.

  • domain - Indicates whether the address is for use in EC2-Classic (standard) or in a VPC (vpc).

  • instance-id - The ID of the instance the address is associated with, if any.

  • network-interface-id - [EC2-VPC] The ID of the network interface that the address is associated with, if any.

  • network-interface-owner-id - The AWS account ID of the owner.

  • private-ip-address - [EC2-VPC] The private IP address associated with the Elastic IP address.

  • public-ip - The Elastic IP address.

", + "DescribeAvailabilityZonesRequest$Filters": "

One or more filters.

  • message - Information about the Availability Zone.

  • region-name - The name of the region for the Availability Zone (for example, us-east-1).

  • state - The state of the Availability Zone (available | impaired | unavailable).

  • zone-name - The name of the Availability Zone (for example, us-east-1a).

", + "DescribeBundleTasksRequest$Filters": "

One or more filters.

  • bundle-id - The ID of the bundle task.

  • error-code - If the task failed, the error code returned.

  • error-message - If the task failed, the error message returned.

  • instance-id - The ID of the instance.

  • progress - The level of task completion, as a percentage (for example, 20%).

  • s3-bucket - The Amazon S3 bucket to store the AMI.

  • s3-prefix - The beginning of the AMI name.

  • start-time - The time the task started (for example, 2013-09-15T17:15:20.000Z).

  • state - The state of the task (pending | waiting-for-shutdown | bundling | storing | cancelling | complete | failed).

  • update-time - The time of the most recent update for the task.

", + "DescribeClassicLinkInstancesRequest$Filters": "

One or more filters.

  • group-id - The ID of a VPC security group that's associated with the instance.

  • instance-id - The ID of the instance.

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • vpc-id - The ID of the VPC that the instance is linked to.

", + "DescribeConversionTasksRequest$Filters": "

One or more filters.

", + "DescribeCustomerGatewaysRequest$Filters": "

One or more filters.

  • bgp-asn - The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN).

  • customer-gateway-id - The ID of the customer gateway.

  • ip-address - The IP address of the customer gateway's Internet-routable external interface.

  • state - The state of the customer gateway (pending | available | deleting | deleted).

  • type - The type of customer gateway. Currently, the only supported type is ipsec.1.

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

", + "DescribeDhcpOptionsRequest$Filters": "

One or more filters.

  • dhcp-options-id - The ID of a set of DHCP options.

  • key - The key for one of the options (for example, domain-name).

  • value - The value for one of the options.

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

", + "DescribeFlowLogsRequest$Filter": "

One or more filters.

  • deliver-log-status - The status of the logs delivery (SUCCESS | FAILED).

  • flow-log-id - The ID of the flow log.

  • log-group-name - The name of the log group.

  • resource-id - The ID of the VPC, subnet, or network interface.

  • traffic-type - The type of traffic (ACCEPT | REJECT | ALL)

", + "DescribeImagesRequest$Filters": "

One or more filters.

  • architecture - The image architecture (i386 | x86_64).

  • block-device-mapping.delete-on-termination - A Boolean value that indicates whether the Amazon EBS volume is deleted on instance termination.

  • block-device-mapping.device-name - The device name for the EBS volume (for example, /dev/sdh).

  • block-device-mapping.snapshot-id - The ID of the snapshot used for the EBS volume.

  • block-device-mapping.volume-size - The volume size of the EBS volume, in GiB.

  • block-device-mapping.volume-type - The volume type of the EBS volume (gp2 | standard | io1).

  • description - The description of the image (provided during image creation).

  • hypervisor - The hypervisor type (ovm | xen).

  • image-id - The ID of the image.

  • image-type - The image type (machine | kernel | ramdisk).

  • is-public - A Boolean that indicates whether the image is public.

  • kernel-id - The kernel ID.

  • manifest-location - The location of the image manifest.

  • name - The name of the AMI (provided during image creation).

  • owner-alias - The AWS account alias (for example, amazon).

  • owner-id - The AWS account ID of the image owner.

  • platform - The platform. To only list Windows-based AMIs, use windows.

  • product-code - The product code.

  • product-code.type - The type of the product code (devpay | marketplace).

  • ramdisk-id - The RAM disk ID.

  • root-device-name - The name of the root device volume (for example, /dev/sda1).

  • root-device-type - The type of the root device volume (ebs | instance-store).

  • state - The state of the image (available | pending | failed).

  • state-reason-code - The reason code for the state change.

  • state-reason-message - The message for the state change.

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • virtualization-type - The virtualization type (paravirtual | hvm).

", + "DescribeImportImageTasksRequest$Filters": "

One or more filters.

", + "DescribeImportSnapshotTasksRequest$Filters": "

One or more filters.

", + "DescribeInstanceStatusRequest$Filters": "

One or more filters.

  • availability-zone - The Availability Zone of the instance.

  • event.code - The code for the scheduled event (instance-reboot | system-reboot | system-maintenance | instance-retirement | instance-stop).

  • event.description - A description of the event.

  • event.not-after - The latest end time for the scheduled event (for example, 2014-09-15T17:15:20.000Z).

  • event.not-before - The earliest start time for the scheduled event (for example, 2014-09-15T17:15:20.000Z).

  • instance-state-code - The code for the instance state, as a 16-bit unsigned integer. The high byte is an opaque internal value and should be ignored. The low byte is set based on the state represented. The valid values are 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 (stopping), and 80 (stopped).

  • instance-state-name - The state of the instance (pending | running | shutting-down | terminated | stopping | stopped).

  • instance-status.reachability - Filters on instance status where the name is reachability (passed | failed | initializing | insufficient-data).

  • instance-status.status - The status of the instance (ok | impaired | initializing | insufficient-data | not-applicable).

  • system-status.reachability - Filters on system status where the name is reachability (passed | failed | initializing | insufficient-data).

  • system-status.status - The system status of the instance (ok | impaired | initializing | insufficient-data | not-applicable).

", + "DescribeInstancesRequest$Filters": "

One or more filters.

  • architecture - The instance architecture (i386 | x86_64).

  • availability-zone - The Availability Zone of the instance.

  • block-device-mapping.attach-time - The attach time for an EBS volume mapped to the instance, for example, 2010-09-15T17:15:20.000Z.

  • block-device-mapping.delete-on-termination - A Boolean that indicates whether the EBS volume is deleted on instance termination.

  • block-device-mapping.device-name - The device name for the EBS volume (for example, /dev/sdh or xvdh).

  • block-device-mapping.status - The status for the EBS volume (attaching | attached | detaching | detached).

  • block-device-mapping.volume-id - The volume ID of the EBS volume.

  • client-token - The idempotency token you provided when you launched the instance.

  • dns-name - The public DNS name of the instance.

  • group-id - The ID of the security group for the instance. EC2-Classic only.

  • group-name - The name of the security group for the instance. EC2-Classic only.

  • hypervisor - The hypervisor type of the instance (ovm | xen).

  • iam-instance-profile.arn - The instance profile associated with the instance. Specified as an ARN.

  • image-id - The ID of the image used to launch the instance.

  • instance-id - The ID of the instance.

  • instance-lifecycle - Indicates whether this is a Spot Instance (spot).

  • instance-state-code - The state of the instance, as a 16-bit unsigned integer. The high byte is an opaque internal value and should be ignored. The low byte is set based on the state represented. The valid values are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 (stopping), and 80 (stopped).

  • instance-state-name - The state of the instance (pending | running | shutting-down | terminated | stopping | stopped).

  • instance-type - The type of instance (for example, t2.micro).

  • instance.group-id - The ID of the security group for the instance.

  • instance.group-name - The name of the security group for the instance.

  • ip-address - The public IP address of the instance.

  • kernel-id - The kernel ID.

  • key-name - The name of the key pair used when the instance was launched.

  • launch-index - When launching multiple instances, this is the index for the instance in the launch group (for example, 0, 1, 2, and so on).

  • launch-time - The time when the instance was launched.

  • monitoring-state - Indicates whether monitoring is enabled for the instance (disabled | enabled).

  • owner-id - The AWS account ID of the instance owner.

  • placement-group-name - The name of the placement group for the instance.

  • platform - The platform. Use windows if you have Windows instances; otherwise, leave blank.

  • private-dns-name - The private DNS name of the instance.

  • private-ip-address - The private IP address of the instance.

  • product-code - The product code associated with the AMI used to launch the instance.

  • product-code.type - The type of product code (devpay | marketplace).

  • ramdisk-id - The RAM disk ID.

  • reason - The reason for the current state of the instance (for example, shows \"User Initiated [date]\" when you stop or terminate the instance). Similar to the state-reason-code filter.

  • requester-id - The ID of the entity that launched the instance on your behalf (for example, AWS Management Console, Auto Scaling, and so on).

  • reservation-id - The ID of the instance's reservation. A reservation ID is created any time you launch an instance. A reservation ID has a one-to-one relationship with an instance launch request, but can be associated with more than one instance if you launch multiple instances using the same launch request. For example, if you launch one instance, you'll get one reservation ID. If you launch ten instances using the same launch request, you'll also get one reservation ID.

  • root-device-name - The name of the root device for the instance (for example, /dev/sda1 or /dev/xvda).

  • root-device-type - The type of root device that the instance uses (ebs | instance-store).

  • source-dest-check - Indicates whether the instance performs source/destination checking. A value of true means that checking is enabled, and false means checking is disabled. The value must be false for the instance to perform network address translation (NAT) in your VPC.

  • spot-instance-request-id - The ID of the Spot Instance request.

  • state-reason-code - The reason code for the state change.

  • state-reason-message - A message that describes the state change.

  • subnet-id - The ID of the subnet for the instance.

  • tag:key=value - The key/value combination of a tag assigned to the resource, where tag:key is the tag's key.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • tenancy - The tenancy of an instance (dedicated | default).

  • virtualization-type - The virtualization type of the instance (paravirtual | hvm).

  • vpc-id - The ID of the VPC that the instance is running in.

  • network-interface.description - The description of the network interface.

  • network-interface.subnet-id - The ID of the subnet for the network interface.

  • network-interface.vpc-id - The ID of the VPC for the network interface.

  • network-interface.network-interface.id - The ID of the network interface.

  • network-interface.owner-id - The ID of the owner of the network interface.

  • network-interface.availability-zone - The Availability Zone for the network interface.

  • network-interface.requester-id - The requester ID for the network interface.

  • network-interface.requester-managed - Indicates whether the network interface is being managed by AWS.

  • network-interface.status - The status of the network interface (available) | in-use).

  • network-interface.mac-address - The MAC address of the network interface.

  • network-interface-private-dns-name - The private DNS name of the network interface.

  • network-interface.source-dest-check - Whether the network interface performs source/destination checking. A value of true means checking is enabled, and false means checking is disabled. The value must be false for the network interface to perform network address translation (NAT) in your VPC.

  • network-interface.group-id - The ID of a security group associated with the network interface.

  • network-interface.group-name - The name of a security group associated with the network interface.

  • network-interface.attachment.attachment-id - The ID of the interface attachment.

  • network-interface.attachment.instance-id - The ID of the instance to which the network interface is attached.

  • network-interface.attachment.instance-owner-id - The owner ID of the instance to which the network interface is attached.

  • network-interface.addresses.private-ip-address - The private IP address associated with the network interface.

  • network-interface.attachment.device-index - The device index to which the network interface is attached.

  • network-interface.attachment.status - The status of the attachment (attaching | attached | detaching | detached).

  • network-interface.attachment.attach-time - The time that the network interface was attached to an instance.

  • network-interface.attachment.delete-on-termination - Specifies whether the attachment is deleted when an instance is terminated.

  • network-interface.addresses.primary - Specifies whether the IP address of the network interface is the primary private IP address.

  • network-interface.addresses.association.public-ip - The ID of the association of an Elastic IP address with a network interface.

  • network-interface.addresses.association.ip-owner-id - The owner ID of the private IP address associated with the network interface.

  • association.public-ip - The address of the Elastic IP address bound to the network interface.

  • association.ip-owner-id - The owner of the Elastic IP address associated with the network interface.

  • association.allocation-id - The allocation ID returned when you allocated the Elastic IP address for your network interface.

  • association.association-id - The association ID returned when the network interface was associated with an IP address.

", + "DescribeInternetGatewaysRequest$Filters": "

One or more filters.

  • attachment.state - The current state of the attachment between the gateway and the VPC (available). Present only if a VPC is attached.

  • attachment.vpc-id - The ID of an attached VPC.

  • internet-gateway-id - The ID of the Internet gateway.

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

", + "DescribeKeyPairsRequest$Filters": "

One or more filters.

  • fingerprint - The fingerprint of the key pair.

  • key-name - The name of the key pair.

", + "DescribeMovingAddressesRequest$Filters": "

One or more filters.

  • moving-status - The status of the Elastic IP address (MovingToVpc | RestoringToClassic).

", + "DescribeNetworkAclsRequest$Filters": "

One or more filters.

  • association.association-id - The ID of an association ID for the ACL.

  • association.network-acl-id - The ID of the network ACL involved in the association.

  • association.subnet-id - The ID of the subnet involved in the association.

  • default - Indicates whether the ACL is the default network ACL for the VPC.

  • entry.cidr - The CIDR range specified in the entry.

  • entry.egress - Indicates whether the entry applies to egress traffic.

  • entry.icmp.code - The ICMP code specified in the entry, if any.

  • entry.icmp.type - The ICMP type specified in the entry, if any.

  • entry.port-range.from - The start of the port range specified in the entry.

  • entry.port-range.to - The end of the port range specified in the entry.

  • entry.protocol - The protocol specified in the entry (tcp | udp | icmp or a protocol number).

  • entry.rule-action - Allows or denies the matching traffic (allow | deny).

  • entry.rule-number - The number of an entry (in other words, rule) in the ACL's set of entries.

  • network-acl-id - The ID of the network ACL.

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • vpc-id - The ID of the VPC for the network ACL.

", + "DescribeNetworkInterfacesRequest$Filters": "

One or more filters.

  • addresses.private-ip-address - The private IP addresses associated with the network interface.

  • addresses.primary - Whether the private IP address is the primary IP address associated with the network interface.

  • addresses.association.public-ip - The association ID returned when the network interface was associated with the Elastic IP address.

  • addresses.association.owner-id - The owner ID of the addresses associated with the network interface.

  • association.association-id - The association ID returned when the network interface was associated with an IP address.

  • association.allocation-id - The allocation ID returned when you allocated the Elastic IP address for your network interface.

  • association.ip-owner-id - The owner of the Elastic IP address associated with the network interface.

  • association.public-ip - The address of the Elastic IP address bound to the network interface.

  • association.public-dns-name - The public DNS name for the network interface.

  • attachment.attachment-id - The ID of the interface attachment.

  • attachment.instance-id - The ID of the instance to which the network interface is attached.

  • attachment.instance-owner-id - The owner ID of the instance to which the network interface is attached.

  • attachment.device-index - The device index to which the network interface is attached.

  • attachment.status - The status of the attachment (attaching | attached | detaching | detached).

  • attachment.attach.time - The time that the network interface was attached to an instance.

  • attachment.delete-on-termination - Indicates whether the attachment is deleted when an instance is terminated.

  • availability-zone - The Availability Zone of the network interface.

  • description - The description of the network interface.

  • group-id - The ID of a security group associated with the network interface.

  • group-name - The name of a security group associated with the network interface.

  • mac-address - The MAC address of the network interface.

  • network-interface-id - The ID of the network interface.

  • owner-id - The AWS account ID of the network interface owner.

  • private-ip-address - The private IP address or addresses of the network interface.

  • private-dns-name - The private DNS name of the network interface.

  • requester-id - The ID of the entity that launched the instance on your behalf (for example, AWS Management Console, Auto Scaling, and so on).

  • requester-managed - Indicates whether the network interface is being managed by an AWS service (for example, AWS Management Console, Auto Scaling, and so on).

  • source-desk-check - Indicates whether the network interface performs source/destination checking. A value of true means checking is enabled, and false means checking is disabled. The value must be false for the network interface to perform Network Address Translation (NAT) in your VPC.

  • status - The status of the network interface. If the network interface is not attached to an instance, the status is available; if a network interface is attached to an instance the status is in-use.

  • subnet-id - The ID of the subnet for the network interface.

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • vpc-id - The ID of the VPC for the network interface.

", + "DescribePlacementGroupsRequest$Filters": "

One or more filters.

  • group-name - The name of the placement group.

  • state - The state of the placement group (pending | available | deleting | deleted).

  • strategy - The strategy of the placement group (cluster).

", + "DescribePrefixListsRequest$Filters": "

One or more filters.

  • prefix-list-id: The ID of a prefix list.

  • prefix-list-name: The name of a prefix list.

", + "DescribeRegionsRequest$Filters": "

One or more filters.

  • endpoint - The endpoint of the region (for example, ec2.us-east-1.amazonaws.com).

  • region-name - The name of the region (for example, us-east-1).

", + "DescribeReservedInstancesListingsRequest$Filters": "

One or more filters.

  • reserved-instances-id - The ID of the Reserved Instances.

  • reserved-instances-listing-id - The ID of the Reserved Instances listing.

  • status - The status of the Reserved Instance listing (pending | active | cancelled | closed).

  • status-message - The reason for the status.

", + "DescribeReservedInstancesModificationsRequest$Filters": "

One or more filters.

  • client-token - The idempotency token for the modification request.

  • create-date - The time when the modification request was created.

  • effective-date - The time when the modification becomes effective.

  • modification-result.reserved-instances-id - The ID for the Reserved Instances created as part of the modification request. This ID is only available when the status of the modification is fulfilled.

  • modification-result.target-configuration.availability-zone - The Availability Zone for the new Reserved Instances.

  • modification-result.target-configuration.instance-count - The number of new Reserved Instances.

  • modification-result.target-configuration.instance-type - The instance type of the new Reserved Instances.

  • modification-result.target-configuration.platform - The network platform of the new Reserved Instances (EC2-Classic | EC2-VPC).

  • reserved-instances-id - The ID of the Reserved Instances modified.

  • reserved-instances-modification-id - The ID of the modification request.

  • status - The status of the Reserved Instances modification request (processing | fulfilled | failed).

  • status-message - The reason for the status.

  • update-date - The time when the modification request was last updated.

", + "DescribeReservedInstancesOfferingsRequest$Filters": "

One or more filters.

  • availability-zone - The Availability Zone where the Reserved Instance can be used.

  • duration - The duration of the Reserved Instance (for example, one year or three years), in seconds (31536000 | 94608000).

  • fixed-price - The purchase price of the Reserved Instance (for example, 9800.0).

  • instance-type - The instance type on which the Reserved Instance can be used.

  • marketplace - Set to true to show only Reserved Instance Marketplace offerings. When this filter is not used, which is the default behavior, all offerings from AWS and Reserved Instance Marketplace are listed.

  • product-description - The Reserved Instance product platform description. Instances that include (Amazon VPC) in the product platform description will only be displayed to EC2-Classic account holders and are for use with Amazon VPC. (Linux/UNIX | Linux/UNIX (Amazon VPC) | SUSE Linux | SUSE Linux (Amazon VPC) | Red Hat Enterprise Linux | Red Hat Enterprise Linux (Amazon VPC) | Windows | Windows (Amazon VPC)) | Windows with SQL Server Standard | Windows with SQL Server Standard (Amazon VPC) | Windows with SQL Server Web | Windows with SQL Server Web (Amazon VPC))

  • reserved-instances-offering-id - The Reserved Instances offering ID.

  • usage-price - The usage price of the Reserved Instance, per hour (for example, 0.84).

", + "DescribeReservedInstancesRequest$Filters": "

One or more filters.

  • availability-zone - The Availability Zone where the Reserved Instance can be used.

  • duration - The duration of the Reserved Instance (one year or three years), in seconds (31536000 | 94608000).

  • end - The time when the Reserved Instance expires (for example, 2015-08-07T11:54:42.000Z).

  • fixed-price - The purchase price of the Reserved Instance (for example, 9800.0).

  • instance-type - The instance type on which the Reserved Instance can be used.

  • product-description - The Reserved Instance product platform description. Instances that include (Amazon VPC) in the product platform description will only be displayed to EC2-Classic account holders and are for use with Amazon VPC. (Linux/UNIX | Linux/UNIX (Amazon VPC) | SUSE Linux | SUSE Linux (Amazon VPC) | Red Hat Enterprise Linux | Red Hat Enterprise Linux (Amazon VPC) | Windows | Windows (Amazon VPC) | Windows with SQL Server Standard | Windows with SQL Server Standard (Amazon VPC) | Windows with SQL Server Web | Windows with SQL Server Web (Amazon VPC)).

  • reserved-instances-id - The ID of the Reserved Instance.

  • start - The time at which the Reserved Instance purchase request was placed (for example, 2014-08-07T11:54:42.000Z).

  • state - The state of the Reserved Instance (payment-pending | active | payment-failed | retired).

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • usage-price - The usage price of the Reserved Instance, per hour (for example, 0.84).

", + "DescribeRouteTablesRequest$Filters": "

One or more filters.

  • association.route-table-association-id - The ID of an association ID for the route table.

  • association.route-table-id - The ID of the route table involved in the association.

  • association.subnet-id - The ID of the subnet involved in the association.

  • association.main - Indicates whether the route table is the main route table for the VPC.

  • route-table-id - The ID of the route table.

  • route.destination-cidr-block - The CIDR range specified in a route in the table.

  • route.destination-prefix-list-id - The ID (prefix) of the AWS service specified in a route in the table.

  • route.gateway-id - The ID of a gateway specified in a route in the table.

  • route.instance-id - The ID of an instance specified in a route in the table.

  • route.origin - Describes how the route was created. CreateRouteTable indicates that the route was automatically created when the route table was created; CreateRoute indicates that the route was manually added to the route table; EnableVgwRoutePropagation indicates that the route was propagated by route propagation.

  • route.state - The state of a route in the route table (active | blackhole). The blackhole state indicates that the route's target isn't available (for example, the specified gateway isn't attached to the VPC, the specified NAT instance has been terminated, and so on).

  • route.vpc-peering-connection-id - The ID of a VPC peering connection specified in a route in the table.

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • vpc-id - The ID of the VPC for the route table.

", + "DescribeSecurityGroupsRequest$Filters": "

One or more filters.

  • description - The description of the security group.

  • egress.ip-permission.prefix-list-id - The ID (prefix) of the AWS service to which the security group allows access.

  • group-id - The ID of the security group.

  • group-name - The name of the security group.

  • ip-permission.cidr - A CIDR range that has been granted permission.

  • ip-permission.from-port - The start of port range for the TCP and UDP protocols, or an ICMP type number.

  • ip-permission.group-id - The ID of a security group that has been granted permission.

  • ip-permission.group-name - The name of a security group that has been granted permission.

  • ip-permission.protocol - The IP protocol for the permission (tcp | udp | icmp or a protocol number).

  • ip-permission.to-port - The end of port range for the TCP and UDP protocols, or an ICMP code.

  • ip-permission.user-id - The ID of an AWS account that has been granted permission.

  • owner-id - The AWS account ID of the owner of the security group.

  • tag-key - The key of a tag assigned to the security group.

  • tag-value - The value of a tag assigned to the security group.

  • vpc-id - The ID of the VPC specified when the security group was created.

", + "DescribeSnapshotsRequest$Filters": "

One or more filters.

  • description - A description of the snapshot.

  • owner-alias - The AWS account alias (for example, amazon) that owns the snapshot.

  • owner-id - The ID of the AWS account that owns the snapshot.

  • progress - The progress of the snapshot, as a percentage (for example, 80%).

  • snapshot-id - The snapshot ID.

  • start-time - The time stamp when the snapshot was initiated.

  • status - The status of the snapshot (pending | completed | error).

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • volume-id - The ID of the volume the snapshot is for.

  • volume-size - The size of the volume, in GiB.

", + "DescribeSpotInstanceRequestsRequest$Filters": "

One or more filters.

  • availability-zone-group - The Availability Zone group.

  • create-time - The time stamp when the Spot Instance request was created.

  • fault-code - The fault code related to the request.

  • fault-message - The fault message related to the request.

  • instance-id - The ID of the instance that fulfilled the request.

  • launch-group - The Spot Instance launch group.

  • launch.block-device-mapping.delete-on-termination - Indicates whether the Amazon EBS volume is deleted on instance termination.

  • launch.block-device-mapping.device-name - The device name for the Amazon EBS volume (for example, /dev/sdh).

  • launch.block-device-mapping.snapshot-id - The ID of the snapshot used for the Amazon EBS volume.

  • launch.block-device-mapping.volume-size - The size of the Amazon EBS volume, in GiB.

  • launch.block-device-mapping.volume-type - The type of the Amazon EBS volume (gp2 | standard | io1).

  • launch.group-id - The security group for the instance.

  • launch.image-id - The ID of the AMI.

  • launch.instance-type - The type of instance (for example, m1.small).

  • launch.kernel-id - The kernel ID.

  • launch.key-name - The name of the key pair the instance launched with.

  • launch.monitoring-enabled - Whether monitoring is enabled for the Spot Instance.

  • launch.ramdisk-id - The RAM disk ID.

  • network-interface.network-interface-id - The ID of the network interface.

  • network-interface.device-index - The index of the device for the network interface attachment on the instance.

  • network-interface.subnet-id - The ID of the subnet for the instance.

  • network-interface.description - A description of the network interface.

  • network-interface.private-ip-address - The primary private IP address of the network interface.

  • network-interface.delete-on-termination - Indicates whether the network interface is deleted when the instance is terminated.

  • network-interface.group-id - The ID of the security group associated with the network interface.

  • network-interface.group-name - The name of the security group associated with the network interface.

  • network-interface.addresses.primary - Indicates whether the IP address is the primary private IP address.

  • product-description - The product description associated with the instance (Linux/UNIX | Windows).

  • spot-instance-request-id - The Spot Instance request ID.

  • spot-price - The maximum hourly price for any Spot Instance launched to fulfill the request.

  • state - The state of the Spot Instance request (open | active | closed | cancelled | failed). Spot bid status information can help you track your Amazon EC2 Spot Instance requests. For more information, see Spot Bid Status in the Amazon Elastic Compute Cloud User Guide.

  • status-code - The short code describing the most recent evaluation of your Spot Instance request.

  • status-message - The message explaining the status of the Spot Instance request.

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • type - The type of Spot Instance request (one-time | persistent).

  • launched-availability-zone - The Availability Zone in which the bid is launched.

  • valid-from - The start date of the request.

  • valid-until - The end date of the request.

", + "DescribeSpotPriceHistoryRequest$Filters": "

One or more filters.

  • availability-zone - The Availability Zone for which prices should be returned.

  • instance-type - The type of instance (for example, m1.small).

  • product-description - The product description for the Spot Price (Linux/UNIX | SUSE Linux | Windows | Linux/UNIX (Amazon VPC) | SUSE Linux (Amazon VPC) | Windows (Amazon VPC)).

  • spot-price - The Spot Price. The value must match exactly (or use wildcards; greater than or less than comparison is not supported).

  • timestamp - The timestamp of the Spot Price history, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). You can use wildcards (* and ?). Greater than or less than comparison is not supported.

", + "DescribeSubnetsRequest$Filters": "

One or more filters.

  • availabilityZone - The Availability Zone for the subnet. You can also use availability-zone as the filter name.

  • available-ip-address-count - The number of IP addresses in the subnet that are available.

  • cidrBlock - The CIDR block of the subnet. The CIDR block you specify must exactly match the subnet's CIDR block for information to be returned for the subnet. You can also use cidr or cidr-block as the filter names.

  • defaultForAz - Indicates whether this is the default subnet for the Availability Zone. You can also use default-for-az as the filter name.

  • state - The state of the subnet (pending | available).

  • subnet-id - The ID of the subnet.

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • vpc-id - The ID of the VPC for the subnet.

", + "DescribeTagsRequest$Filters": "

One or more filters.

  • key - The tag key.

  • resource-id - The resource ID.

  • resource-type - The resource type (customer-gateway | dhcp-options | image | instance | internet-gateway | network-acl | network-interface | reserved-instances | route-table | security-group | snapshot | spot-instances-request | subnet | volume | vpc | vpn-connection | vpn-gateway).

  • value - The tag value.

", + "DescribeVolumeStatusRequest$Filters": "

One or more filters.

  • action.code - The action code for the event (for example, enable-volume-io).

  • action.description - A description of the action.

  • action.event-id - The event ID associated with the action.

  • availability-zone - The Availability Zone of the instance.

  • event.description - A description of the event.

  • event.event-id - The event ID.

  • event.event-type - The event type (for io-enabled: passed | failed; for io-performance: io-performance:degraded | io-performance:severely-degraded | io-performance:stalled).

  • event.not-after - The latest end time for the event.

  • event.not-before - The earliest start time for the event.

  • volume-status.details-name - The cause for volume-status.status (io-enabled | io-performance).

  • volume-status.details-status - The status of volume-status.details-name (for io-enabled: passed | failed; for io-performance: normal | degraded | severely-degraded | stalled).

  • volume-status.status - The status of the volume (ok | impaired | warning | insufficient-data).

", + "DescribeVolumesRequest$Filters": "

One or more filters.

  • attachment.attach-time - The time stamp when the attachment initiated.

  • attachment.delete-on-termination - Whether the volume is deleted on instance termination.

  • attachment.device - The device name that is exposed to the instance (for example, /dev/sda1).

  • attachment.instance-id - The ID of the instance the volume is attached to.

  • attachment.status - The attachment state (attaching | attached | detaching | detached).

  • availability-zone - The Availability Zone in which the volume was created.

  • create-time - The time stamp when the volume was created.

  • encrypted - The encryption status of the volume.

  • size - The size of the volume, in GiB.

  • snapshot-id - The snapshot from which the volume was created.

  • status - The status of the volume (creating | available | in-use | deleting | deleted | error).

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • volume-id - The volume ID.

  • volume-type - The Amazon EBS volume type. This can be gp2 for General Purpose (SSD) volumes, io1 for Provisioned IOPS (SSD) volumes, or standard for Magnetic volumes.

", + "DescribeVpcClassicLinkRequest$Filters": "

One or more filters.

  • is-classic-link-enabled - Whether the VPC is enabled for ClassicLink (true | false).

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

", + "DescribeVpcEndpointsRequest$Filters": "

One or more filters.

  • service-name: The name of the AWS service.

  • vpc-id: The ID of the VPC in which the endpoint resides.

  • vpc-endpoint-id: The ID of the endpoint.

  • vpc-endpoint-state: The state of the endpoint. (pending | available | deleting | deleted)

", + "DescribeVpcPeeringConnectionsRequest$Filters": "

One or more filters.

  • accepter-vpc-info.cidr-block - The CIDR block of the peer VPC.

  • accepter-vpc-info.owner-id - The AWS account ID of the owner of the peer VPC.

  • accepter-vpc-info.vpc-id - The ID of the peer VPC.

  • expiration-time - The expiration date and time for the VPC peering connection.

  • requester-vpc-info.cidr-block - The CIDR block of the requester's VPC.

  • requester-vpc-info.owner-id - The AWS account ID of the owner of the requester VPC.

  • requester-vpc-info.vpc-id - The ID of the requester VPC.

  • status-code - The status of the VPC peering connection (pending-acceptance | failed | expired | provisioning | active | deleted | rejected).

  • status-message - A message that provides more information about the status of the VPC peering connection, if applicable.

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • vpc-peering-connection-id - The ID of the VPC peering connection.

", + "DescribeVpcsRequest$Filters": "

One or more filters.

  • cidr - The CIDR block of the VPC. The CIDR block you specify must exactly match the VPC's CIDR block for information to be returned for the VPC. Must contain the slash followed by one or two digits (for example, /28).

  • dhcp-options-id - The ID of a set of DHCP options.

  • isDefault - Indicates whether the VPC is the default VPC.

  • state - The state of the VPC (pending | available).

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • vpc-id - The ID of the VPC.

", + "DescribeVpnConnectionsRequest$Filters": "

One or more filters.

  • customer-gateway-configuration - The configuration information for the customer gateway.

  • customer-gateway-id - The ID of a customer gateway associated with the VPN connection.

  • state - The state of the VPN connection (pending | available | deleting | deleted).

  • option.static-routes-only - Indicates whether the connection has static routes only. Used for devices that do not support Border Gateway Protocol (BGP).

  • route.destination-cidr-block - The destination CIDR block. This corresponds to the subnet used in a customer data center.

  • bgp-asn - The BGP Autonomous System Number (ASN) associated with a BGP device.

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • type - The type of VPN connection. Currently the only supported type is ipsec.1.

  • vpn-connection-id - The ID of the VPN connection.

  • vpn-gateway-id - The ID of a virtual private gateway associated with the VPN connection.

", + "DescribeVpnGatewaysRequest$Filters": "

One or more filters.

  • attachment.state - The current state of the attachment between the gateway and the VPC (attaching | attached | detaching | detached).

  • attachment.vpc-id - The ID of an attached VPC.

  • availability-zone - The Availability Zone for the virtual private gateway.

  • state - The state of the virtual private gateway (pending | available | deleting | deleted).

  • tag:key=value - The key/value combination of a tag assigned to the resource.

  • tag-key - The key of a tag assigned to the resource. This filter is independent of the tag-value filter. For example, if you use both the filter \"tag-key=Purpose\" and the filter \"tag-value=X\", you get any resources assigned both the tag key Purpose (regardless of what the tag's value is), and the tag value X (regardless of what the tag's key is). If you want to list only resources where Purpose is X, see the tag:key=value filter.

  • tag-value - The value of a tag assigned to the resource. This filter is independent of the tag-key filter.

  • type - The type of virtual private gateway. Currently the only supported type is ipsec.1.

  • vpn-gateway-id - The ID of the virtual private gateway.

" + } + }, + "Float": { + "base": null, + "refs": { + "ReservedInstances$UsagePrice": "

The usage price of the Reserved Instance, per hour.

", + "ReservedInstances$FixedPrice": "

The purchase price of the Reserved Instance.

", + "ReservedInstancesOffering$UsagePrice": "

The usage price of the Reserved Instance, per hour.

", + "ReservedInstancesOffering$FixedPrice": "

The purchase price of the Reserved Instance.

" + } + }, + "FlowLog": { + "base": "

Describes a flow log.

", + "refs": { + "FlowLogSet$member": null + } + }, + "FlowLogSet": { + "base": null, + "refs": { + "DescribeFlowLogsResult$FlowLogs": "

Information about the flow logs.

" + } + }, + "FlowLogsResourceType": { + "base": null, + "refs": { + "CreateFlowLogsRequest$ResourceType": "

The type of resource on which to create the flow log.

" + } + }, + "GatewayType": { + "base": null, + "refs": { + "CreateCustomerGatewayRequest$Type": "

The type of VPN connection that this customer gateway supports (ipsec.1).

", + "CreateVpnGatewayRequest$Type": "

The type of VPN connection this virtual private gateway supports.

", + "VpnConnection$Type": "

The type of VPN connection.

", + "VpnGateway$Type": "

The type of VPN connection the virtual private gateway supports.

" + } + }, + "GetConsoleOutputRequest": { + "base": null, + "refs": { + } + }, + "GetConsoleOutputResult": { + "base": null, + "refs": { + } + }, + "GetPasswordDataRequest": { + "base": null, + "refs": { + } + }, + "GetPasswordDataResult": { + "base": null, + "refs": { + } + }, + "GroupIdStringList": { + "base": null, + "refs": { + "AttachClassicLinkVpcRequest$Groups": "

The ID of one or more of the VPC's security groups. You cannot specify security groups from a different VPC.

", + "DescribeSecurityGroupsRequest$GroupIds": "

One or more security group IDs. Required for security groups in a nondefault VPC.

Default: Describes all your security groups.

", + "ModifyInstanceAttributeRequest$Groups": "

[EC2-VPC] Changes the security groups of the instance. You must specify at least one security group, even if it's just the default security group for the VPC. You must specify the security group ID, not the security group name.

" + } + }, + "GroupIdentifier": { + "base": "

Describes a security group.

", + "refs": { + "GroupIdentifierList$member": null + } + }, + "GroupIdentifierList": { + "base": null, + "refs": { + "ClassicLinkInstance$Groups": "

A list of security groups.

", + "DescribeNetworkInterfaceAttributeResult$Groups": "

The security groups associated with the network interface.

", + "Instance$SecurityGroups": "

One or more security groups for the instance.

", + "InstanceAttribute$Groups": "

The security groups associated with the instance.

", + "InstanceNetworkInterface$Groups": "

One or more security groups.

", + "LaunchSpecification$SecurityGroups": "

One or more security groups. To request an instance in a nondefault VPC, you must specify the ID of the security group. To request an instance in EC2-Classic or a default VPC, you can specify the name or the ID of the security group.

", + "NetworkInterface$Groups": "

Any security groups for the network interface.

", + "Reservation$Groups": "

One or more security groups.

" + } + }, + "GroupNameStringList": { + "base": null, + "refs": { + "DescribeSecurityGroupsRequest$GroupNames": "

[EC2-Classic and default VPC only] One or more security group names. You can specify either the security group name or the security group ID. For security groups in a nondefault VPC, use the group-name filter to describe security groups by name.

Default: Describes all your security groups.

", + "ModifySnapshotAttributeRequest$GroupNames": "

The group to modify for the snapshot.

" + } + }, + "HistoryRecord": { + "base": "

Describes an event in the history of the Spot fleet request.

", + "refs": { + "HistoryRecords$member": null + } + }, + "HistoryRecords": { + "base": null, + "refs": { + "DescribeSpotFleetRequestHistoryResponse$HistoryRecords": "

Information about the events in the history of the Spot fleet request.

" + } + }, + "HypervisorType": { + "base": null, + "refs": { + "Image$Hypervisor": "

The hypervisor type of the image.

", + "Instance$Hypervisor": "

The hypervisor type of the instance.

" + } + }, + "IamInstanceProfile": { + "base": "

Describes an IAM instance profile.

", + "refs": { + "Instance$IamInstanceProfile": "

The IAM instance profile associated with the instance.

" + } + }, + "IamInstanceProfileSpecification": { + "base": "

Describes an IAM instance profile.

", + "refs": { + "LaunchSpecification$IamInstanceProfile": "

The IAM instance profile.

", + "RunInstancesRequest$IamInstanceProfile": "

The IAM instance profile.

", + "RequestSpotLaunchSpecification$IamInstanceProfile": "

The IAM instance profile.

" + } + }, + "IcmpTypeCode": { + "base": "

Describes the ICMP type and code.

", + "refs": { + "CreateNetworkAclEntryRequest$IcmpTypeCode": "

ICMP protocol: The ICMP type and code. Required if specifying ICMP for the protocol.

", + "NetworkAclEntry$IcmpTypeCode": "

ICMP protocol: The ICMP type and code.

", + "ReplaceNetworkAclEntryRequest$IcmpTypeCode": "

ICMP protocol: The ICMP type and code. Required if specifying 1 (ICMP) for the protocol.

" + } + }, + "Image": { + "base": "

Describes an image.

", + "refs": { + "ImageList$member": null + } + }, + "ImageAttribute": { + "base": "

Describes an image attribute.

", + "refs": { + } + }, + "ImageAttributeName": { + "base": null, + "refs": { + "DescribeImageAttributeRequest$Attribute": "

The AMI attribute.

Note: Depending on your account privileges, the blockDeviceMapping attribute may return a Client.AuthFailure error. If this happens, use DescribeImages to get information about the block device mapping for the AMI.

" + } + }, + "ImageDiskContainer": { + "base": "

Describes the disk container object for an import image task.

", + "refs": { + "ImageDiskContainerList$member": null + } + }, + "ImageDiskContainerList": { + "base": null, + "refs": { + "ImportImageRequest$DiskContainers": "

Information about the disk containers.

" + } + }, + "ImageIdStringList": { + "base": null, + "refs": { + "DescribeImagesRequest$ImageIds": "

One or more image IDs.

Default: Describes all images available to you.

" + } + }, + "ImageList": { + "base": null, + "refs": { + "DescribeImagesResult$Images": "

Information about one or more images.

" + } + }, + "ImageState": { + "base": null, + "refs": { + "Image$State": "

The current state of the AMI. If the state is available, the image is successfully registered and can be used to launch an instance.

" + } + }, + "ImageTypeValues": { + "base": null, + "refs": { + "Image$ImageType": "

The type of image.

" + } + }, + "ImportImageRequest": { + "base": null, + "refs": { + } + }, + "ImportImageResult": { + "base": null, + "refs": { + } + }, + "ImportImageTask": { + "base": "

Describes an import image task.

", + "refs": { + "ImportImageTaskList$member": null + } + }, + "ImportImageTaskList": { + "base": null, + "refs": { + "DescribeImportImageTasksResult$ImportImageTasks": "

A list of zero or more import image tasks that are currently active or were completed or canceled in the previous 7 days.

" + } + }, + "ImportInstanceLaunchSpecification": { + "base": "

Describes the launch specification for VM import.

", + "refs": { + "ImportInstanceRequest$LaunchSpecification": "

The launch specification.

" + } + }, + "ImportInstanceRequest": { + "base": null, + "refs": { + } + }, + "ImportInstanceResult": { + "base": null, + "refs": { + } + }, + "ImportInstanceTaskDetails": { + "base": "

Describes an import instance task.

", + "refs": { + "ConversionTask$ImportInstance": "

If the task is for importing an instance, this contains information about the import instance task.

" + } + }, + "ImportInstanceVolumeDetailItem": { + "base": "

Describes an import volume task.

", + "refs": { + "ImportInstanceVolumeDetailSet$member": null + } + }, + "ImportInstanceVolumeDetailSet": { + "base": null, + "refs": { + "ImportInstanceTaskDetails$Volumes": "

One or more volumes.

" + } + }, + "ImportKeyPairRequest": { + "base": null, + "refs": { + } + }, + "ImportKeyPairResult": { + "base": null, + "refs": { + } + }, + "ImportSnapshotRequest": { + "base": null, + "refs": { + } + }, + "ImportSnapshotResult": { + "base": null, + "refs": { + } + }, + "ImportSnapshotTask": { + "base": "

Describes an import snapshot task.

", + "refs": { + "ImportSnapshotTaskList$member": null + } + }, + "ImportSnapshotTaskList": { + "base": null, + "refs": { + "DescribeImportSnapshotTasksResult$ImportSnapshotTasks": "

A list of zero or more import snapshot tasks that are currently active or were completed or canceled in the previous 7 days.

" + } + }, + "ImportTaskIdList": { + "base": null, + "refs": { + "DescribeImportImageTasksRequest$ImportTaskIds": "

A list of import image task IDs.

", + "DescribeImportSnapshotTasksRequest$ImportTaskIds": "

A list of import snapshot task IDs.

" + } + }, + "ImportVolumeRequest": { + "base": null, + "refs": { + } + }, + "ImportVolumeResult": { + "base": null, + "refs": { + } + }, + "ImportVolumeTaskDetails": { + "base": "

Describes an import volume task.

", + "refs": { + "ConversionTask$ImportVolume": "

If the task is for importing a volume, this contains information about the import volume task.

" + } + }, + "Instance": { + "base": "

Describes an instance.

", + "refs": { + "InstanceList$member": null + } + }, + "InstanceAttribute": { + "base": "

Describes an instance attribute.

", + "refs": { + } + }, + "InstanceAttributeName": { + "base": null, + "refs": { + "DescribeInstanceAttributeRequest$Attribute": "

The instance attribute.

", + "ModifyInstanceAttributeRequest$Attribute": "

The name of the attribute.

", + "ResetInstanceAttributeRequest$Attribute": "

The attribute to reset.

" + } + }, + "InstanceBlockDeviceMapping": { + "base": "

Describes a block device mapping.

", + "refs": { + "InstanceBlockDeviceMappingList$member": null + } + }, + "InstanceBlockDeviceMappingList": { + "base": null, + "refs": { + "Instance$BlockDeviceMappings": "

Any block device mapping entries for the instance.

", + "InstanceAttribute$BlockDeviceMappings": "

The block device mapping of the instance.

" + } + }, + "InstanceBlockDeviceMappingSpecification": { + "base": "

Describes a block device mapping entry.

", + "refs": { + "InstanceBlockDeviceMappingSpecificationList$member": null + } + }, + "InstanceBlockDeviceMappingSpecificationList": { + "base": null, + "refs": { + "ModifyInstanceAttributeRequest$BlockDeviceMappings": "

Modifies the DeleteOnTermination attribute for volumes that are currently attached. The volume must be owned by the caller. If no value is specified for DeleteOnTermination, the default is true and the volume is deleted when the instance is terminated.

To add instance store volumes to an Amazon EBS-backed instance, you must add them when you launch the instance. For more information, see Updating the Block Device Mapping when Launching an Instance in the Amazon Elastic Compute Cloud User Guide.

" + } + }, + "InstanceCount": { + "base": "

Describes a Reserved Instance listing state.

", + "refs": { + "InstanceCountList$member": null + } + }, + "InstanceCountList": { + "base": null, + "refs": { + "ReservedInstancesListing$InstanceCounts": "

The number of instances in this state.

" + } + }, + "InstanceExportDetails": { + "base": "

Describes an instance to export.

", + "refs": { + "ExportTask$InstanceExportDetails": "

Information about the instance to export.

" + } + }, + "InstanceIdStringList": { + "base": null, + "refs": { + "DescribeClassicLinkInstancesRequest$InstanceIds": "

One or more instance IDs. Must be instances linked to a VPC through ClassicLink.

", + "DescribeInstanceStatusRequest$InstanceIds": "

One or more instance IDs.

Default: Describes all your instances.

Constraints: Maximum 100 explicitly specified instance IDs.

", + "DescribeInstancesRequest$InstanceIds": "

One or more instance IDs.

Default: Describes all your instances.

", + "MonitorInstancesRequest$InstanceIds": "

One or more instance IDs.

", + "RebootInstancesRequest$InstanceIds": "

One or more instance IDs.

", + "ReportInstanceStatusRequest$Instances": "

One or more instances.

", + "StartInstancesRequest$InstanceIds": "

One or more instance IDs.

", + "StopInstancesRequest$InstanceIds": "

One or more instance IDs.

", + "TerminateInstancesRequest$InstanceIds": "

One or more instance IDs.

", + "UnmonitorInstancesRequest$InstanceIds": "

One or more instance IDs.

" + } + }, + "InstanceLifecycleType": { + "base": null, + "refs": { + "Instance$InstanceLifecycle": "

Indicates whether this is a Spot Instance.

" + } + }, + "InstanceList": { + "base": null, + "refs": { + "Reservation$Instances": "

One or more instances.

" + } + }, + "InstanceMonitoring": { + "base": "

Describes the monitoring information of the instance.

", + "refs": { + "InstanceMonitoringList$member": null + } + }, + "InstanceMonitoringList": { + "base": null, + "refs": { + "MonitorInstancesResult$InstanceMonitorings": "

Monitoring information for one or more instances.

", + "UnmonitorInstancesResult$InstanceMonitorings": "

Monitoring information for one or more instances.

" + } + }, + "InstanceNetworkInterface": { + "base": "

Describes a network interface.

", + "refs": { + "InstanceNetworkInterfaceList$member": null + } + }, + "InstanceNetworkInterfaceAssociation": { + "base": "

Describes association information for an Elastic IP address.

", + "refs": { + "InstanceNetworkInterface$Association": "

The association information for an Elastic IP associated with the network interface.

", + "InstancePrivateIpAddress$Association": "

The association information for an Elastic IP address for the network interface.

" + } + }, + "InstanceNetworkInterfaceAttachment": { + "base": "

Describes a network interface attachment.

", + "refs": { + "InstanceNetworkInterface$Attachment": "

The network interface attachment.

" + } + }, + "InstanceNetworkInterfaceList": { + "base": null, + "refs": { + "Instance$NetworkInterfaces": "

[EC2-VPC] One or more network interfaces for the instance.

" + } + }, + "InstanceNetworkInterfaceSpecification": { + "base": "

Describes a network interface.

", + "refs": { + "InstanceNetworkInterfaceSpecificationList$member": null + } + }, + "InstanceNetworkInterfaceSpecificationList": { + "base": null, + "refs": { + "LaunchSpecification$NetworkInterfaces": "

One or more network interfaces.

", + "RunInstancesRequest$NetworkInterfaces": "

One or more network interfaces.

", + "RequestSpotLaunchSpecification$NetworkInterfaces": "

One or more network interfaces.

" + } + }, + "InstancePrivateIpAddress": { + "base": "

Describes a private IP address.

", + "refs": { + "InstancePrivateIpAddressList$member": null + } + }, + "InstancePrivateIpAddressList": { + "base": null, + "refs": { + "InstanceNetworkInterface$PrivateIpAddresses": "

The private IP addresses associated with the network interface.

" + } + }, + "InstanceState": { + "base": "

Describes the current state of the instance.

", + "refs": { + "Instance$State": "

The current state of the instance.

", + "InstanceStateChange$CurrentState": "

The current state of the instance.

", + "InstanceStateChange$PreviousState": "

The previous state of the instance.

", + "InstanceStatus$InstanceState": "

The intended state of the instance. DescribeInstanceStatus requires that an instance be in the running state.

" + } + }, + "InstanceStateChange": { + "base": "

Describes an instance state change.

", + "refs": { + "InstanceStateChangeList$member": null + } + }, + "InstanceStateChangeList": { + "base": null, + "refs": { + "StartInstancesResult$StartingInstances": "

Information about one or more started instances.

", + "StopInstancesResult$StoppingInstances": "

Information about one or more stopped instances.

", + "TerminateInstancesResult$TerminatingInstances": "

Information about one or more terminated instances.

" + } + }, + "InstanceStateName": { + "base": null, + "refs": { + "InstanceState$Name": "

The current state of the instance.

" + } + }, + "InstanceStatus": { + "base": "

Describes the status of an instance.

", + "refs": { + "InstanceStatusList$member": null + } + }, + "InstanceStatusDetails": { + "base": "

Describes the instance status.

", + "refs": { + "InstanceStatusDetailsList$member": null + } + }, + "InstanceStatusDetailsList": { + "base": null, + "refs": { + "InstanceStatusSummary$Details": "

The system instance health or application instance health.

" + } + }, + "InstanceStatusEvent": { + "base": "

Describes a scheduled event for an instance.

", + "refs": { + "InstanceStatusEventList$member": null + } + }, + "InstanceStatusEventList": { + "base": null, + "refs": { + "InstanceStatus$Events": "

Any scheduled events associated with the instance.

" + } + }, + "InstanceStatusList": { + "base": null, + "refs": { + "DescribeInstanceStatusResult$InstanceStatuses": "

One or more instance status descriptions.

" + } + }, + "InstanceStatusSummary": { + "base": "

Describes the status of an instance.

", + "refs": { + "InstanceStatus$SystemStatus": "

Reports impaired functionality that stems from issues related to the systems that support an instance, such as hardware failures and network connectivity problems.

", + "InstanceStatus$InstanceStatus": "

Reports impaired functionality that stems from issues internal to the instance, such as impaired reachability.

" + } + }, + "InstanceType": { + "base": null, + "refs": { + "DescribeReservedInstancesOfferingsRequest$InstanceType": "

The instance type on which the Reserved Instance can be used. For more information, see Instance Types in the Amazon Elastic Compute Cloud User Guide.

", + "ImportInstanceLaunchSpecification$InstanceType": "

The instance type. For more information about the instance types that you can import, see Before You Get Started in the Amazon Elastic Compute Cloud User Guide.

", + "Instance$InstanceType": "

The instance type.

", + "InstanceTypeList$member": null, + "LaunchSpecification$InstanceType": "

The instance type.

", + "ReservedInstances$InstanceType": "

The instance type on which the Reserved Instance can be used.

", + "ReservedInstancesConfiguration$InstanceType": "

The instance type for the modified Reserved Instances.

", + "ReservedInstancesOffering$InstanceType": "

The instance type on which the Reserved Instance can be used.

", + "RunInstancesRequest$InstanceType": "

The instance type. For more information, see Instance Types in the Amazon Elastic Compute Cloud User Guide.

Default: m1.small

", + "SpotPrice$InstanceType": "

The instance type.

", + "RequestSpotLaunchSpecification$InstanceType": "

The instance type.

" + } + }, + "InstanceTypeList": { + "base": null, + "refs": { + "DescribeSpotPriceHistoryRequest$InstanceTypes": "

Filters the results by the specified instance types.

" + } + }, + "Integer": { + "base": null, + "refs": { + "AssignPrivateIpAddressesRequest$SecondaryPrivateIpAddressCount": "

The number of secondary IP addresses to assign to the network interface. You can't specify this parameter when also specifying private IP addresses.

", + "AttachNetworkInterfaceRequest$DeviceIndex": "

The index of the device for the network interface attachment.

", + "AuthorizeSecurityGroupEgressRequest$FromPort": "

The start of port range for the TCP and UDP protocols, or an ICMP type number. For the ICMP type number, use -1 to specify all ICMP types.

", + "AuthorizeSecurityGroupEgressRequest$ToPort": "

The end of port range for the TCP and UDP protocols, or an ICMP code number. For the ICMP code number, use -1 to specify all ICMP codes for the ICMP type.

", + "AuthorizeSecurityGroupIngressRequest$FromPort": "

The start of port range for the TCP and UDP protocols, or an ICMP type number. For the ICMP type number, use -1 to specify all ICMP types.

", + "AuthorizeSecurityGroupIngressRequest$ToPort": "

The end of port range for the TCP and UDP protocols, or an ICMP code number. For the ICMP code number, use -1 to specify all ICMP codes for the ICMP type.

", + "CreateCustomerGatewayRequest$BgpAsn": "

For devices that support BGP, the customer gateway's BGP ASN.

Default: 65000

", + "CreateNetworkAclEntryRequest$RuleNumber": "

The rule number for the entry (for example, 100). ACL entries are processed in ascending order by rule number.

Constraints: Positive integer from 1 to 32766

", + "CreateNetworkInterfaceRequest$SecondaryPrivateIpAddressCount": "

The number of secondary private IP addresses to assign to a network interface. When you specify a number of secondary IP addresses, Amazon EC2 selects these IP addresses within the subnet range. You can't specify this option and specify more than one private IP address using privateIpAddresses.

The number of IP addresses you can assign to a network interface varies by instance type. For more information, see Private IP Addresses Per ENI Per Instance Type in the Amazon Elastic Compute Cloud User Guide.

", + "CreateReservedInstancesListingRequest$InstanceCount": "

The number of instances that are a part of a Reserved Instance account to be listed in the Reserved Instance Marketplace. This number should be less than or equal to the instance count associated with the Reserved Instance ID specified in this call.

", + "CreateVolumeRequest$Size": "

The size of the volume, in GiBs.

Constraints: 1-1024 for standard volumes, 1-16384 for gp2 volumes, and 4-16384 for io1 volumes. If you specify a snapshot, the volume size must be equal to or larger than the snapshot size.

Default: If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size.

", + "CreateVolumeRequest$Iops": "

Only valid for Provisioned IOPS (SSD) volumes. The number of I/O operations per second (IOPS) to provision for the volume, with a maximum ratio of 30 IOPS/GiB.

Constraint: Range is 100 to 20000 for Provisioned IOPS (SSD) volumes

", + "DeleteNetworkAclEntryRequest$RuleNumber": "

The rule number of the entry to delete.

", + "DescribeClassicLinkInstancesRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. You cannot specify this parameter and the instance IDs parameter in the same request.

Constraint: If the value is greater than 1000, we return only 1000 items.

", + "DescribeFlowLogsRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. You cannot specify this parameter and the flow log IDs parameter in the same request.

", + "DescribeImportImageTasksRequest$MaxResults": "

The maximum number of results to return in a single request.

", + "DescribeImportSnapshotTasksRequest$MaxResults": "

The maximum number of results to return in a single request.

", + "DescribeInstanceStatusRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. You cannot specify this parameter and the instance IDs parameter in the same request.

", + "DescribeInstancesRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. You cannot specify this parameter and the instance IDs parameter in the same request.

", + "DescribeMovingAddressesRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value outside of this range, an error is returned.

Default: If no value is provided, the default is 1000.

", + "DescribePrefixListsRequest$MaxResults": "

The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results.

Constraint: If the value specified is greater than 1000, we return only 1000 items.

", + "DescribeReservedInstancesOfferingsRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. The maximum is 100.

Default: 100

", + "DescribeReservedInstancesOfferingsRequest$MaxInstanceCount": "

The maximum number of instances to filter when searching for offerings.

Default: 20

", + "DescribeSnapshotsRequest$MaxResults": "

The maximum number of snapshot results returned by DescribeSnapshots in paginated output. When this parameter is used, DescribeSnapshots only returns MaxResults results in a single page along with a NextToken response element. The remaining results of the initial request can be seen by sending another DescribeSnapshots request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. If this parameter is not used, then DescribeSnapshots returns all results. You cannot specify this parameter and the snapshot IDs parameter in the same request.

", + "DescribeSpotFleetInstancesRequest$MaxResults": "

The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned NextToken value.

", + "DescribeSpotFleetRequestHistoryRequest$MaxResults": "

The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned NextToken value.

", + "DescribeSpotFleetRequestsRequest$MaxResults": "

The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned NextToken value.

", + "DescribeSpotPriceHistoryRequest$MaxResults": "

The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned NextToken value.

", + "DescribeTagsRequest$MaxResults": "

The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned.

", + "DescribeVolumeStatusRequest$MaxResults": "

The maximum number of volume results returned by DescribeVolumeStatus in paginated output. When this parameter is used, the request only returns MaxResults results in a single page along with a NextToken response element. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. If this parameter is not used, then DescribeVolumeStatus returns all results. You cannot specify this parameter and the volume IDs parameter in the same request.

", + "DescribeVolumesRequest$MaxResults": "

The maximum number of volume results returned by DescribeVolumes in paginated output. When this parameter is used, DescribeVolumes only returns MaxResults results in a single page along with a NextToken response element. The remaining results of the initial request can be seen by sending another DescribeVolumes request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. If this parameter is not used, then DescribeVolumes returns all results. You cannot specify this parameter and the volume IDs parameter in the same request.

", + "DescribeVpcEndpointServicesRequest$MaxResults": "

The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results.

Constraint: If the value is greater than 1000, we return only 1000 items.

", + "DescribeVpcEndpointsRequest$MaxResults": "

The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results.

Constraint: If the value is greater than 1000, we return only 1000 items.

", + "EbsBlockDevice$VolumeSize": "

The size of the volume, in GiB.

Constraints: 1-1024 for standard volumes, 1-16384 for gp2 volumes, and 4-16384 for io1 volumes. If you specify a snapshot, the volume size must be equal to or larger than the snapshot size.

Default: If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size.

", + "EbsBlockDevice$Iops": "

The number of I/O operations per second (IOPS) that the volume supports. For Provisioned IOPS (SSD) volumes, this represents the number of IOPS that are provisioned for the volume. For General Purpose (SSD) volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. For more information on General Purpose (SSD) baseline performance, I/O credits, and bursting, see Amazon EBS Volume Types in the Amazon Elastic Compute Cloud User Guide.

Constraint: Range is 100 to 20000 for Provisioned IOPS (SSD) volumes and 3 to 10000 for General Purpose (SSD) volumes.

Condition: This parameter is required for requests to create io1 volumes; it is not used in requests to create standard or gp2 volumes.

", + "IcmpTypeCode$Type": "

The ICMP code. A value of -1 means all codes for the specified ICMP type.

", + "IcmpTypeCode$Code": "

The ICMP type. A value of -1 means all types.

", + "Instance$AmiLaunchIndex": "

The AMI launch index, which can be used to find this instance in the launch group.

", + "InstanceCount$InstanceCount": "

The number of listed Reserved Instances in the state specified by the state.

", + "InstanceNetworkInterfaceAttachment$DeviceIndex": "

The index of the device on the instance for the network interface attachment.

", + "InstanceNetworkInterfaceSpecification$DeviceIndex": "

The index of the device on the instance for the network interface attachment. If you are specifying a network interface in a RunInstances request, you must provide the device index.

", + "InstanceNetworkInterfaceSpecification$SecondaryPrivateIpAddressCount": "

The number of secondary private IP addresses. You can't specify this option and specify more than one private IP address using the private IP addresses option.

", + "InstanceState$Code": "

The low byte represents the state. The high byte is an opaque internal value and should be ignored.

  • 0 : pending

  • 16 : running

  • 32 : shutting-down

  • 48 : terminated

  • 64 : stopping

  • 80 : stopped

", + "IpPermission$FromPort": "

The start of port range for the TCP and UDP protocols, or an ICMP type number. A value of -1 indicates all ICMP types.

", + "IpPermission$ToPort": "

The end of port range for the TCP and UDP protocols, or an ICMP code. A value of -1 indicates all ICMP codes for the specified ICMP type.

", + "NetworkAclEntry$RuleNumber": "

The rule number for the entry. ACL entries are processed in ascending order by rule number.

", + "NetworkInterfaceAttachment$DeviceIndex": "

The device index of the network interface attachment on the instance.

", + "PortRange$From": "

The first port in the range.

", + "PortRange$To": "

The last port in the range.

", + "PricingDetail$Count": "

The number of instances available for the price.

", + "PurchaseReservedInstancesOfferingRequest$InstanceCount": "

The number of Reserved Instances to purchase.

", + "ReplaceNetworkAclEntryRequest$RuleNumber": "

The rule number of the entry to replace.

", + "RequestSpotInstancesRequest$InstanceCount": "

The maximum number of Spot Instances to launch.

Default: 1

", + "ReservedInstances$InstanceCount": "

The number of Reserved Instances purchased.

", + "ReservedInstancesConfiguration$InstanceCount": "

The number of modified Reserved Instances.

", + "RevokeSecurityGroupEgressRequest$FromPort": "

The start of port range for the TCP and UDP protocols, or an ICMP type number. For the ICMP type number, use -1 to specify all ICMP types.

", + "RevokeSecurityGroupEgressRequest$ToPort": "

The end of port range for the TCP and UDP protocols, or an ICMP code number. For the ICMP code number, use -1 to specify all ICMP codes for the ICMP type.

", + "RevokeSecurityGroupIngressRequest$FromPort": "

The start of port range for the TCP and UDP protocols, or an ICMP type number. For the ICMP type number, use -1 to specify all ICMP types.

", + "RevokeSecurityGroupIngressRequest$ToPort": "

The end of port range for the TCP and UDP protocols, or an ICMP code number. For the ICMP code number, use -1 to specify all ICMP codes for the ICMP type.

", + "RunInstancesRequest$MinCount": "

The minimum number of instances to launch. If you specify a minimum that is more instances than Amazon EC2 can launch in the target Availability Zone, Amazon EC2 launches no instances.

Constraints: Between 1 and the maximum number you're allowed for the specified instance type. For more information about the default limits, and how to request an increase, see How many instances can I run in Amazon EC2 in the Amazon EC2 General FAQ.

", + "RunInstancesRequest$MaxCount": "

The maximum number of instances to launch. If you specify more instances than Amazon EC2 can launch in the target Availability Zone, Amazon EC2 launches the largest possible number of instances above MinCount.

Constraints: Between 1 and the maximum number you're allowed for the specified instance type. For more information about the default limits, and how to request an increase, see How many instances can I run in Amazon EC2 in the Amazon EC2 General FAQ.

", + "Snapshot$VolumeSize": "

The size of the volume, in GiB.

", + "SpotFleetRequestConfigData$TargetCapacity": "

The maximum number of Spot Instances to launch.

", + "Subnet$AvailableIpAddressCount": "

The number of unused IP addresses in the subnet. Note that the IP addresses for any stopped instances are considered unavailable.

", + "VgwTelemetry$AcceptedRouteCount": "

The number of accepted routes.

", + "Volume$Size": "

The size of the volume, in GiBs.

", + "Volume$Iops": "

The number of I/O operations per second (IOPS) that the volume supports. For Provisioned IOPS (SSD) volumes, this represents the number of IOPS that are provisioned for the volume. For General Purpose (SSD) volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. For more information on General Purpose (SSD) baseline performance, I/O credits, and bursting, see Amazon EBS Volume Types in the Amazon Elastic Compute Cloud User Guide.

Constraint: Range is 100 to 20000 for Provisioned IOPS (SSD) volumes and 3 to 10000 for General Purpose (SSD) volumes.

Condition: This parameter is required for requests to create io1 volumes; it is not used in requests to create standard or gp2 volumes.

" + } + }, + "InternetGateway": { + "base": "

Describes an Internet gateway.

", + "refs": { + "CreateInternetGatewayResult$InternetGateway": "

Information about the Internet gateway.

", + "InternetGatewayList$member": null + } + }, + "InternetGatewayAttachment": { + "base": "

Describes the attachment of a VPC to an Internet gateway.

", + "refs": { + "InternetGatewayAttachmentList$member": null + } + }, + "InternetGatewayAttachmentList": { + "base": null, + "refs": { + "InternetGateway$Attachments": "

Any VPCs attached to the Internet gateway.

" + } + }, + "InternetGatewayList": { + "base": null, + "refs": { + "DescribeInternetGatewaysResult$InternetGateways": "

Information about one or more Internet gateways.

" + } + }, + "IpPermission": { + "base": "

Describes a security group rule.

", + "refs": { + "IpPermissionList$member": null + } + }, + "IpPermissionList": { + "base": null, + "refs": { + "AuthorizeSecurityGroupEgressRequest$IpPermissions": "

A set of IP permissions. You can't specify a destination security group and a CIDR IP address range.

", + "AuthorizeSecurityGroupIngressRequest$IpPermissions": "

A set of IP permissions. Can be used to specify multiple rules in a single command.

", + "RevokeSecurityGroupEgressRequest$IpPermissions": "

A set of IP permissions. You can't specify a destination security group and a CIDR IP address range.

", + "RevokeSecurityGroupIngressRequest$IpPermissions": "

A set of IP permissions. You can't specify a source security group and a CIDR IP address range.

", + "SecurityGroup$IpPermissions": "

One or more inbound rules associated with the security group.

", + "SecurityGroup$IpPermissionsEgress": "

[EC2-VPC] One or more outbound rules associated with the security group.

" + } + }, + "IpRange": { + "base": "

Describes an IP range.

", + "refs": { + "IpRangeList$member": null + } + }, + "IpRangeList": { + "base": null, + "refs": { + "IpPermission$IpRanges": "

One or more IP ranges.

" + } + }, + "KeyNameStringList": { + "base": null, + "refs": { + "DescribeKeyPairsRequest$KeyNames": "

One or more key pair names.

Default: Describes all your key pairs.

" + } + }, + "KeyPair": { + "base": "

Describes a key pair.

", + "refs": { + } + }, + "KeyPairInfo": { + "base": "

Describes a key pair.

", + "refs": { + "KeyPairList$member": null + } + }, + "KeyPairList": { + "base": null, + "refs": { + "DescribeKeyPairsResult$KeyPairs": "

Information about one or more key pairs.

" + } + }, + "LaunchPermission": { + "base": "

Describes a launch permission.

", + "refs": { + "LaunchPermissionList$member": null + } + }, + "LaunchPermissionList": { + "base": null, + "refs": { + "ImageAttribute$LaunchPermissions": "

One or more launch permissions.

", + "LaunchPermissionModifications$Add": "

The AWS account ID to add to the list of launch permissions for the AMI.

", + "LaunchPermissionModifications$Remove": "

The AWS account ID to remove from the list of launch permissions for the AMI.

" + } + }, + "LaunchPermissionModifications": { + "base": "

Describes a launch permission modification.

", + "refs": { + "ModifyImageAttributeRequest$LaunchPermission": "

A launch permission modification.

" + } + }, + "LaunchSpecification": { + "base": "

Describes the launch specification for an instance.

", + "refs": { + "LaunchSpecsList$member": null, + "SpotInstanceRequest$LaunchSpecification": "

Additional information for launching instances.

" + } + }, + "LaunchSpecsList": { + "base": null, + "refs": { + "SpotFleetRequestConfigData$LaunchSpecifications": "

Information about the launch specifications for the instances.

" + } + }, + "ListingState": { + "base": null, + "refs": { + "InstanceCount$State": "

The states of the listed Reserved Instances.

" + } + }, + "ListingStatus": { + "base": null, + "refs": { + "ReservedInstancesListing$Status": "

The status of the Reserved Instance listing.

" + } + }, + "Long": { + "base": null, + "refs": { + "DescribeReservedInstancesOfferingsRequest$MinDuration": "

The minimum duration (in seconds) to filter when searching for offerings.

Default: 2592000 (1 month)

", + "DescribeReservedInstancesOfferingsRequest$MaxDuration": "

The maximum duration (in seconds) to filter when searching for offerings.

Default: 94608000 (3 years)

", + "DiskImageDescription$Size": "

The size of the disk image, in GiB.

", + "DiskImageDetail$Bytes": "

The size of the disk image, in GiB.

", + "DiskImageVolumeDescription$Size": "

The size of the volume, in GiB.

", + "ImportInstanceVolumeDetailItem$BytesConverted": "

The number of bytes converted so far.

", + "ImportVolumeTaskDetails$BytesConverted": "

The number of bytes converted so far.

", + "PriceSchedule$Term": "

The number of months remaining in the reservation. For example, 2 is the second to the last month before the capacity reservation expires.

", + "PriceScheduleSpecification$Term": "

The number of months remaining in the reservation. For example, 2 is the second to the last month before the capacity reservation expires.

", + "ReservedInstances$Duration": "

The duration of the Reserved Instance, in seconds.

", + "ReservedInstancesOffering$Duration": "

The duration of the Reserved Instance, in seconds.

", + "VolumeDetail$Size": "

The size of the volume, in GiB.

" + } + }, + "ModifyImageAttributeRequest": { + "base": null, + "refs": { + } + }, + "ModifyInstanceAttributeRequest": { + "base": null, + "refs": { + } + }, + "ModifyNetworkInterfaceAttributeRequest": { + "base": null, + "refs": { + } + }, + "ModifyReservedInstancesRequest": { + "base": null, + "refs": { + } + }, + "ModifyReservedInstancesResult": { + "base": null, + "refs": { + } + }, + "ModifySnapshotAttributeRequest": { + "base": null, + "refs": { + } + }, + "ModifySubnetAttributeRequest": { + "base": null, + "refs": { + } + }, + "ModifyVolumeAttributeRequest": { + "base": null, + "refs": { + } + }, + "ModifyVpcAttributeRequest": { + "base": null, + "refs": { + } + }, + "ModifyVpcEndpointRequest": { + "base": null, + "refs": { + } + }, + "ModifyVpcEndpointResult": { + "base": null, + "refs": { + } + }, + "MonitorInstancesRequest": { + "base": null, + "refs": { + } + }, + "MonitorInstancesResult": { + "base": null, + "refs": { + } + }, + "Monitoring": { + "base": "

Describes the monitoring for the instance.

", + "refs": { + "Instance$Monitoring": "

The monitoring information for the instance.

", + "InstanceMonitoring$Monitoring": "

The monitoring information.

" + } + }, + "MonitoringState": { + "base": null, + "refs": { + "Monitoring$State": "

Indicates whether monitoring is enabled for the instance.

" + } + }, + "MoveAddressToVpcRequest": { + "base": null, + "refs": { + } + }, + "MoveAddressToVpcResult": { + "base": null, + "refs": { + } + }, + "MoveStatus": { + "base": null, + "refs": { + "MovingAddressStatus$MoveStatus": "

The status of the Elastic IP address that's being moved to the EC2-VPC platform, or restored to the EC2-Classic platform.

" + } + }, + "MovingAddressStatus": { + "base": "

Describes the status of a moving Elastic IP address.

", + "refs": { + "MovingAddressStatusSet$member": null + } + }, + "MovingAddressStatusSet": { + "base": null, + "refs": { + "DescribeMovingAddressesResult$MovingAddressStatuses": "

The status for each Elastic IP address.

" + } + }, + "NetworkAcl": { + "base": "

Describes a network ACL.

", + "refs": { + "CreateNetworkAclResult$NetworkAcl": "

Information about the network ACL.

", + "NetworkAclList$member": null + } + }, + "NetworkAclAssociation": { + "base": "

Describes an association between a network ACL and a subnet.

", + "refs": { + "NetworkAclAssociationList$member": null + } + }, + "NetworkAclAssociationList": { + "base": null, + "refs": { + "NetworkAcl$Associations": "

Any associations between the network ACL and one or more subnets

" + } + }, + "NetworkAclEntry": { + "base": "

Describes an entry in a network ACL.

", + "refs": { + "NetworkAclEntryList$member": null + } + }, + "NetworkAclEntryList": { + "base": null, + "refs": { + "NetworkAcl$Entries": "

One or more entries (rules) in the network ACL.

" + } + }, + "NetworkAclList": { + "base": null, + "refs": { + "DescribeNetworkAclsResult$NetworkAcls": "

Information about one or more network ACLs.

" + } + }, + "NetworkInterface": { + "base": "

Describes a network interface.

", + "refs": { + "CreateNetworkInterfaceResult$NetworkInterface": "

Information about the network interface.

", + "NetworkInterfaceList$member": null + } + }, + "NetworkInterfaceAssociation": { + "base": "

Describes association information for an Elastic IP address.

", + "refs": { + "NetworkInterface$Association": "

The association information for an Elastic IP associated with the network interface.

", + "NetworkInterfacePrivateIpAddress$Association": "

The association information for an Elastic IP address associated with the network interface.

" + } + }, + "NetworkInterfaceAttachment": { + "base": "

Describes a network interface attachment.

", + "refs": { + "DescribeNetworkInterfaceAttributeResult$Attachment": "

The attachment (if any) of the network interface.

", + "NetworkInterface$Attachment": "

The network interface attachment.

" + } + }, + "NetworkInterfaceAttachmentChanges": { + "base": "

Describes an attachment change.

", + "refs": { + "ModifyNetworkInterfaceAttributeRequest$Attachment": "

Information about the interface attachment. If modifying the 'delete on termination' attribute, you must specify the ID of the interface attachment.

" + } + }, + "NetworkInterfaceAttribute": { + "base": null, + "refs": { + "DescribeNetworkInterfaceAttributeRequest$Attribute": "

The attribute of the network interface.

" + } + }, + "NetworkInterfaceIdList": { + "base": null, + "refs": { + "DescribeNetworkInterfacesRequest$NetworkInterfaceIds": "

One or more network interface IDs.

Default: Describes all your network interfaces.

" + } + }, + "NetworkInterfaceList": { + "base": null, + "refs": { + "DescribeNetworkInterfacesResult$NetworkInterfaces": "

Information about one or more network interfaces.

" + } + }, + "NetworkInterfacePrivateIpAddress": { + "base": "

Describes the private IP address of a network interface.

", + "refs": { + "NetworkInterfacePrivateIpAddressList$member": null + } + }, + "NetworkInterfacePrivateIpAddressList": { + "base": null, + "refs": { + "NetworkInterface$PrivateIpAddresses": "

The private IP addresses associated with the network interface.

" + } + }, + "NetworkInterfaceStatus": { + "base": null, + "refs": { + "InstanceNetworkInterface$Status": "

The status of the network interface.

", + "NetworkInterface$Status": "

The status of the network interface.

" + } + }, + "OfferingTypeValues": { + "base": null, + "refs": { + "DescribeReservedInstancesOfferingsRequest$OfferingType": "

The Reserved Instance offering type. If you are using tools that predate the 2011-11-01 API version, you only have access to the Medium Utilization Reserved Instance offering type.

", + "DescribeReservedInstancesRequest$OfferingType": "

The Reserved Instance offering type. If you are using tools that predate the 2011-11-01 API version, you only have access to the Medium Utilization Reserved Instance offering type.

", + "ReservedInstances$OfferingType": "

The Reserved Instance offering type.

", + "ReservedInstancesOffering$OfferingType": "

The Reserved Instance offering type.

" + } + }, + "OwnerStringList": { + "base": null, + "refs": { + "DescribeImagesRequest$Owners": "

Filters the images by the owner. Specify an AWS account ID, amazon (owner is Amazon), aws-marketplace (owner is AWS Marketplace), self (owner is the sender of the request). Omitting this option returns all images for which you have launch permissions, regardless of ownership.

", + "DescribeSnapshotsRequest$OwnerIds": "

Returns the snapshots owned by the specified owner. Multiple owners can be specified.

" + } + }, + "PermissionGroup": { + "base": null, + "refs": { + "CreateVolumePermission$Group": "

The specific group that is to be added or removed from a volume's list of create volume permissions.

", + "LaunchPermission$Group": "

The name of the group.

" + } + }, + "Placement": { + "base": "

Describes the placement for the instance.

", + "refs": { + "ImportInstanceLaunchSpecification$Placement": "

The placement information for the instance.

", + "Instance$Placement": "

The location where the instance launched.

", + "RunInstancesRequest$Placement": "

The placement for the instance.

" + } + }, + "PlacementGroup": { + "base": "

Describes a placement group.

", + "refs": { + "PlacementGroupList$member": null + } + }, + "PlacementGroupList": { + "base": null, + "refs": { + "DescribePlacementGroupsResult$PlacementGroups": "

One or more placement groups.

" + } + }, + "PlacementGroupState": { + "base": null, + "refs": { + "PlacementGroup$State": "

The state of the placement group.

" + } + }, + "PlacementGroupStringList": { + "base": null, + "refs": { + "DescribePlacementGroupsRequest$GroupNames": "

One or more placement group names.

Default: Describes all your placement groups, or only those otherwise specified.

" + } + }, + "PlacementStrategy": { + "base": null, + "refs": { + "CreatePlacementGroupRequest$Strategy": "

The placement strategy.

", + "PlacementGroup$Strategy": "

The placement strategy.

" + } + }, + "PlatformValues": { + "base": null, + "refs": { + "Image$Platform": "

The value is Windows for Windows AMIs; otherwise blank.

", + "ImportInstanceRequest$Platform": "

The instance operating system.

", + "ImportInstanceTaskDetails$Platform": "

The instance operating system.

", + "Instance$Platform": "

The value is Windows for Windows instances; otherwise blank.

" + } + }, + "PortRange": { + "base": "

Describes a range of ports.

", + "refs": { + "CreateNetworkAclEntryRequest$PortRange": "

TCP or UDP protocols: The range of ports the rule applies to.

", + "NetworkAclEntry$PortRange": "

TCP or UDP protocols: The range of ports the rule applies to.

", + "ReplaceNetworkAclEntryRequest$PortRange": "

TCP or UDP protocols: The range of ports the rule applies to. Required if specifying 6 (TCP) or 17 (UDP) for the protocol.

" + } + }, + "PrefixList": { + "base": "

Describes prefixes for AWS services.

", + "refs": { + "PrefixListSet$member": null + } + }, + "PrefixListId": { + "base": "

The ID of the prefix.

", + "refs": { + "PrefixListIdList$member": null + } + }, + "PrefixListIdList": { + "base": null, + "refs": { + "IpPermission$PrefixListIds": "

(Valid for AuthorizeSecurityGroupEgress, RevokeSecurityGroupEgress and DescribeSecurityGroups only) One or more prefix list IDs for an AWS service. In an AuthorizeSecurityGroupEgress request, this is the AWS service that you want to access through a VPC endpoint from instances associated with the security group.

" + } + }, + "PrefixListSet": { + "base": null, + "refs": { + "DescribePrefixListsResult$PrefixLists": "

All available prefix lists.

" + } + }, + "PriceSchedule": { + "base": "

Describes the price for a Reserved Instance.

", + "refs": { + "PriceScheduleList$member": null + } + }, + "PriceScheduleList": { + "base": null, + "refs": { + "ReservedInstancesListing$PriceSchedules": "

The price of the Reserved Instance listing.

" + } + }, + "PriceScheduleSpecification": { + "base": "

Describes the price for a Reserved Instance.

", + "refs": { + "PriceScheduleSpecificationList$member": null + } + }, + "PriceScheduleSpecificationList": { + "base": null, + "refs": { + "CreateReservedInstancesListingRequest$PriceSchedules": "

A list specifying the price of the Reserved Instance for each month remaining in the Reserved Instance term.

" + } + }, + "PricingDetail": { + "base": "

Describes a Reserved Instance offering.

", + "refs": { + "PricingDetailsList$member": null + } + }, + "PricingDetailsList": { + "base": null, + "refs": { + "ReservedInstancesOffering$PricingDetails": "

The pricing details of the Reserved Instance offering.

" + } + }, + "PrivateIpAddressSpecification": { + "base": "

Describes a secondary private IP address for a network interface.

", + "refs": { + "PrivateIpAddressSpecificationList$member": null + } + }, + "PrivateIpAddressSpecificationList": { + "base": null, + "refs": { + "CreateNetworkInterfaceRequest$PrivateIpAddresses": "

One or more private IP addresses.

", + "InstanceNetworkInterfaceSpecification$PrivateIpAddresses": "

One or more private IP addresses to assign to the network interface. Only one private IP address can be designated as primary.

" + } + }, + "PrivateIpAddressStringList": { + "base": null, + "refs": { + "AssignPrivateIpAddressesRequest$PrivateIpAddresses": "

One or more IP addresses to be assigned as a secondary private IP address to the network interface. You can't specify this parameter when also specifying a number of secondary IP addresses.

If you don't specify an IP address, Amazon EC2 automatically selects an IP address within the subnet range.

", + "UnassignPrivateIpAddressesRequest$PrivateIpAddresses": "

The secondary private IP addresses to unassign from the network interface. You can specify this option multiple times to unassign more than one IP address.

" + } + }, + "ProductCode": { + "base": "

Describes a product code.

", + "refs": { + "ProductCodeList$member": null + } + }, + "ProductCodeList": { + "base": null, + "refs": { + "DescribeSnapshotAttributeResult$ProductCodes": "

A list of product codes.

", + "DescribeVolumeAttributeResult$ProductCodes": "

A list of product codes.

", + "Image$ProductCodes": "

Any product codes associated with the AMI.

", + "ImageAttribute$ProductCodes": "

One or more product codes.

", + "Instance$ProductCodes": "

The product codes attached to this instance.

", + "InstanceAttribute$ProductCodes": "

A list of product codes.

" + } + }, + "ProductCodeStringList": { + "base": null, + "refs": { + "ModifyImageAttributeRequest$ProductCodes": "

One or more product codes. After you add a product code to an AMI, it can't be removed. This is only valid when modifying the productCodes attribute.

" + } + }, + "ProductCodeValues": { + "base": null, + "refs": { + "ProductCode$ProductCodeType": "

The type of product code.

" + } + }, + "ProductDescriptionList": { + "base": null, + "refs": { + "DescribeSpotPriceHistoryRequest$ProductDescriptions": "

Filters the results by the specified basic product descriptions.

" + } + }, + "PropagatingVgw": { + "base": "

Describes a virtual private gateway propagating route.

", + "refs": { + "PropagatingVgwList$member": null + } + }, + "PropagatingVgwList": { + "base": null, + "refs": { + "RouteTable$PropagatingVgws": "

Any virtual private gateway (VGW) propagating routes.

" + } + }, + "PublicIpStringList": { + "base": null, + "refs": { + "DescribeAddressesRequest$PublicIps": "

[EC2-Classic] One or more Elastic IP addresses.

Default: Describes all your Elastic IP addresses.

" + } + }, + "PurchaseReservedInstancesOfferingRequest": { + "base": null, + "refs": { + } + }, + "PurchaseReservedInstancesOfferingResult": { + "base": null, + "refs": { + } + }, + "RIProductDescription": { + "base": null, + "refs": { + "DescribeReservedInstancesOfferingsRequest$ProductDescription": "

The Reserved Instance product platform description. Instances that include (Amazon VPC) in the description are for use with Amazon VPC.

", + "ReservedInstances$ProductDescription": "

The Reserved Instance product platform description.

", + "ReservedInstancesOffering$ProductDescription": "

The Reserved Instance product platform description.

", + "SpotInstanceRequest$ProductDescription": "

The product description associated with the Spot Instance.

", + "SpotPrice$ProductDescription": "

A general description of the AMI.

" + } + }, + "ReasonCodesList": { + "base": null, + "refs": { + "ReportInstanceStatusRequest$ReasonCodes": "

One or more reason codes that describes the health state of your instance.

  • instance-stuck-in-state: My instance is stuck in a state.

  • unresponsive: My instance is unresponsive.

  • not-accepting-credentials: My instance is not accepting my credentials.

  • password-not-available: A password is not available for my instance.

  • performance-network: My instance is experiencing performance problems which I believe are network related.

  • performance-instance-store: My instance is experiencing performance problems which I believe are related to the instance stores.

  • performance-ebs-volume: My instance is experiencing performance problems which I believe are related to an EBS volume.

  • performance-other: My instance is experiencing performance problems.

  • other: [explain using the description parameter]

" + } + }, + "RebootInstancesRequest": { + "base": null, + "refs": { + } + }, + "RecurringCharge": { + "base": "

Describes a recurring charge.

", + "refs": { + "RecurringChargesList$member": null + } + }, + "RecurringChargeFrequency": { + "base": null, + "refs": { + "RecurringCharge$Frequency": "

The frequency of the recurring charge.

" + } + }, + "RecurringChargesList": { + "base": null, + "refs": { + "ReservedInstances$RecurringCharges": "

The recurring charge tag assigned to the resource.

", + "ReservedInstancesOffering$RecurringCharges": "

The recurring charge tag assigned to the resource.

" + } + }, + "Region": { + "base": "

Describes a region.

", + "refs": { + "RegionList$member": null + } + }, + "RegionList": { + "base": null, + "refs": { + "DescribeRegionsResult$Regions": "

Information about one or more regions.

" + } + }, + "RegionNameStringList": { + "base": null, + "refs": { + "DescribeRegionsRequest$RegionNames": "

The names of one or more regions.

" + } + }, + "RegisterImageRequest": { + "base": null, + "refs": { + } + }, + "RegisterImageResult": { + "base": null, + "refs": { + } + }, + "RejectVpcPeeringConnectionRequest": { + "base": null, + "refs": { + } + }, + "RejectVpcPeeringConnectionResult": { + "base": null, + "refs": { + } + }, + "ReleaseAddressRequest": { + "base": null, + "refs": { + } + }, + "ReplaceNetworkAclAssociationRequest": { + "base": null, + "refs": { + } + }, + "ReplaceNetworkAclAssociationResult": { + "base": null, + "refs": { + } + }, + "ReplaceNetworkAclEntryRequest": { + "base": null, + "refs": { + } + }, + "ReplaceRouteRequest": { + "base": null, + "refs": { + } + }, + "ReplaceRouteTableAssociationRequest": { + "base": null, + "refs": { + } + }, + "ReplaceRouteTableAssociationResult": { + "base": null, + "refs": { + } + }, + "ReportInstanceReasonCodes": { + "base": null, + "refs": { + "ReasonCodesList$member": null + } + }, + "ReportInstanceStatusRequest": { + "base": null, + "refs": { + } + }, + "ReportStatusType": { + "base": null, + "refs": { + "ReportInstanceStatusRequest$Status": "

The status of all instances listed.

" + } + }, + "RequestSpotFleetRequest": { + "base": "

Contains the parameters for RequestSpotFleet.

", + "refs": { + } + }, + "RequestSpotFleetResponse": { + "base": "

Contains the output of RequestSpotFleet.

", + "refs": { + } + }, + "RequestSpotInstancesRequest": { + "base": "

Contains the parameters for RequestSpotInstances.

", + "refs": { + } + }, + "RequestSpotInstancesResult": { + "base": "

Contains the output of RequestSpotInstances.

", + "refs": { + } + }, + "Reservation": { + "base": "

Describes a reservation.

", + "refs": { + "ReservationList$member": null + } + }, + "ReservationList": { + "base": null, + "refs": { + "DescribeInstancesResult$Reservations": "

One or more reservations.

" + } + }, + "ReservedInstanceLimitPrice": { + "base": "

Describes the limit price of a Reserved Instance offering.

", + "refs": { + "PurchaseReservedInstancesOfferingRequest$LimitPrice": "

Specified for Reserved Instance Marketplace offerings to limit the total order and ensure that the Reserved Instances are not purchased at unexpected prices.

" + } + }, + "ReservedInstanceState": { + "base": null, + "refs": { + "ReservedInstances$State": "

The state of the Reserved Instance purchase.

" + } + }, + "ReservedInstances": { + "base": "

Describes a Reserved Instance.

", + "refs": { + "ReservedInstancesList$member": null + } + }, + "ReservedInstancesConfiguration": { + "base": "

Describes the configuration settings for the modified Reserved Instances.

", + "refs": { + "ReservedInstancesConfigurationList$member": null, + "ReservedInstancesModificationResult$TargetConfiguration": "

The target Reserved Instances configurations supplied as part of the modification request.

" + } + }, + "ReservedInstancesConfigurationList": { + "base": null, + "refs": { + "ModifyReservedInstancesRequest$TargetConfigurations": "

The configuration settings for the Reserved Instances to modify.

" + } + }, + "ReservedInstancesId": { + "base": "

Describes the ID of a Reserved Instance.

", + "refs": { + "ReservedIntancesIds$member": null + } + }, + "ReservedInstancesIdStringList": { + "base": null, + "refs": { + "DescribeReservedInstancesRequest$ReservedInstancesIds": "

One or more Reserved Instance IDs.

Default: Describes all your Reserved Instances, or only those otherwise specified.

", + "ModifyReservedInstancesRequest$ReservedInstancesIds": "

The IDs of the Reserved Instances to modify.

" + } + }, + "ReservedInstancesList": { + "base": null, + "refs": { + "DescribeReservedInstancesResult$ReservedInstances": "

A list of Reserved Instances.

" + } + }, + "ReservedInstancesListing": { + "base": "

Describes a Reserved Instance listing.

", + "refs": { + "ReservedInstancesListingList$member": null + } + }, + "ReservedInstancesListingList": { + "base": null, + "refs": { + "CancelReservedInstancesListingResult$ReservedInstancesListings": "

The Reserved Instance listing.

", + "CreateReservedInstancesListingResult$ReservedInstancesListings": "

Information about the Reserved Instances listing.

", + "DescribeReservedInstancesListingsResult$ReservedInstancesListings": "

Information about the Reserved Instance listing.

" + } + }, + "ReservedInstancesModification": { + "base": "

Describes a Reserved Instance modification.

", + "refs": { + "ReservedInstancesModificationList$member": null + } + }, + "ReservedInstancesModificationIdStringList": { + "base": null, + "refs": { + "DescribeReservedInstancesModificationsRequest$ReservedInstancesModificationIds": "

IDs for the submitted modification request.

" + } + }, + "ReservedInstancesModificationList": { + "base": null, + "refs": { + "DescribeReservedInstancesModificationsResult$ReservedInstancesModifications": "

The Reserved Instance modification information.

" + } + }, + "ReservedInstancesModificationResult": { + "base": null, + "refs": { + "ReservedInstancesModificationResultList$member": null + } + }, + "ReservedInstancesModificationResultList": { + "base": null, + "refs": { + "ReservedInstancesModification$ModificationResults": "

Contains target configurations along with their corresponding new Reserved Instance IDs.

" + } + }, + "ReservedInstancesOffering": { + "base": "

Describes a Reserved Instance offering.

", + "refs": { + "ReservedInstancesOfferingList$member": null + } + }, + "ReservedInstancesOfferingIdStringList": { + "base": null, + "refs": { + "DescribeReservedInstancesOfferingsRequest$ReservedInstancesOfferingIds": "

One or more Reserved Instances offering IDs.

" + } + }, + "ReservedInstancesOfferingList": { + "base": null, + "refs": { + "DescribeReservedInstancesOfferingsResult$ReservedInstancesOfferings": "

A list of Reserved Instances offerings.

" + } + }, + "ReservedIntancesIds": { + "base": null, + "refs": { + "ReservedInstancesModification$ReservedInstancesIds": "

The IDs of one or more Reserved Instances.

" + } + }, + "ResetImageAttributeName": { + "base": null, + "refs": { + "ResetImageAttributeRequest$Attribute": "

The attribute to reset (currently you can only reset the launch permission attribute).

" + } + }, + "ResetImageAttributeRequest": { + "base": null, + "refs": { + } + }, + "ResetInstanceAttributeRequest": { + "base": null, + "refs": { + } + }, + "ResetNetworkInterfaceAttributeRequest": { + "base": null, + "refs": { + } + }, + "ResetSnapshotAttributeRequest": { + "base": null, + "refs": { + } + }, + "ResourceIdList": { + "base": null, + "refs": { + "CreateTagsRequest$Resources": "

The IDs of one or more resources to tag. For example, ami-1a2b3c4d.

", + "DeleteTagsRequest$Resources": "

The ID of the resource. For example, ami-1a2b3c4d. You can specify more than one resource ID.

" + } + }, + "ResourceType": { + "base": null, + "refs": { + "TagDescription$ResourceType": "

The resource type.

" + } + }, + "RestorableByStringList": { + "base": null, + "refs": { + "DescribeSnapshotsRequest$RestorableByUserIds": "

One or more AWS accounts IDs that can create volumes from the snapshot.

" + } + }, + "RestoreAddressToClassicRequest": { + "base": null, + "refs": { + } + }, + "RestoreAddressToClassicResult": { + "base": null, + "refs": { + } + }, + "RevokeSecurityGroupEgressRequest": { + "base": null, + "refs": { + } + }, + "RevokeSecurityGroupIngressRequest": { + "base": null, + "refs": { + } + }, + "Route": { + "base": "

Describes a route in a route table.

", + "refs": { + "RouteList$member": null + } + }, + "RouteList": { + "base": null, + "refs": { + "RouteTable$Routes": "

The routes in the route table.

" + } + }, + "RouteOrigin": { + "base": null, + "refs": { + "Route$Origin": "

Describes how the route was created.

  • CreateRouteTable indicates that route was automatically created when the route table was created.
  • CreateRoute indicates that the route was manually added to the route table.
  • EnableVgwRoutePropagation indicates that the route was propagated by route propagation.
" + } + }, + "RouteState": { + "base": null, + "refs": { + "Route$State": "

The state of the route. The blackhole state indicates that the route's target isn't available (for example, the specified gateway isn't attached to the VPC, or the specified NAT instance has been terminated).

" + } + }, + "RouteTable": { + "base": "

Describes a route table.

", + "refs": { + "CreateRouteTableResult$RouteTable": "

Information about the route table.

", + "RouteTableList$member": null + } + }, + "RouteTableAssociation": { + "base": "

Describes an association between a route table and a subnet.

", + "refs": { + "RouteTableAssociationList$member": null + } + }, + "RouteTableAssociationList": { + "base": null, + "refs": { + "RouteTable$Associations": "

The associations between the route table and one or more subnets.

" + } + }, + "RouteTableList": { + "base": null, + "refs": { + "DescribeRouteTablesResult$RouteTables": "

Information about one or more route tables.

" + } + }, + "RuleAction": { + "base": null, + "refs": { + "CreateNetworkAclEntryRequest$RuleAction": "

Indicates whether to allow or deny the traffic that matches the rule.

", + "NetworkAclEntry$RuleAction": "

Indicates whether to allow or deny the traffic that matches the rule.

", + "ReplaceNetworkAclEntryRequest$RuleAction": "

Indicates whether to allow or deny the traffic that matches the rule.

" + } + }, + "RunInstancesMonitoringEnabled": { + "base": "

Describes the monitoring for the instance.

", + "refs": { + "LaunchSpecification$Monitoring": null, + "RunInstancesRequest$Monitoring": "

The monitoring for the instance.

", + "RequestSpotLaunchSpecification$Monitoring": null + } + }, + "RunInstancesRequest": { + "base": null, + "refs": { + } + }, + "S3Storage": { + "base": "

Describes the storage parameters for S3 and S3 buckets for an instance store-backed AMI.

", + "refs": { + "Storage$S3": "

An Amazon S3 storage location.

" + } + }, + "SecurityGroup": { + "base": "

Describes a security group

", + "refs": { + "SecurityGroupList$member": null + } + }, + "SecurityGroupIdStringList": { + "base": null, + "refs": { + "CreateNetworkInterfaceRequest$Groups": "

The IDs of one or more security groups.

", + "ImportInstanceLaunchSpecification$GroupIds": "

One or more security group IDs.

", + "InstanceNetworkInterfaceSpecification$Groups": "

The IDs of the security groups for the network interface. Applies only if creating a network interface when launching an instance.

", + "ModifyNetworkInterfaceAttributeRequest$Groups": "

Changes the security groups for the network interface. The new set of groups you specify replaces the current set. You must specify at least one group, even if it's just the default security group in the VPC. You must specify the ID of the security group, not the name.

", + "RunInstancesRequest$SecurityGroupIds": "

One or more security group IDs. You can create a security group using CreateSecurityGroup.

Default: Amazon EC2 uses the default security group.

" + } + }, + "SecurityGroupList": { + "base": null, + "refs": { + "DescribeSecurityGroupsResult$SecurityGroups": "

Information about one or more security groups.

" + } + }, + "SecurityGroupStringList": { + "base": null, + "refs": { + "ImportInstanceLaunchSpecification$GroupNames": "

One or more security group names.

", + "RunInstancesRequest$SecurityGroups": "

[EC2-Classic, default VPC] One or more security group names. For a nondefault VPC, you must use security group IDs instead.

Default: Amazon EC2 uses the default security group.

" + } + }, + "ShutdownBehavior": { + "base": null, + "refs": { + "ImportInstanceLaunchSpecification$InstanceInitiatedShutdownBehavior": "

Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).

", + "RunInstancesRequest$InstanceInitiatedShutdownBehavior": "

Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).

Default: stop

" + } + }, + "Snapshot": { + "base": "

Describes a snapshot.

", + "refs": { + "SnapshotList$member": null + } + }, + "SnapshotAttributeName": { + "base": null, + "refs": { + "DescribeSnapshotAttributeRequest$Attribute": "

The snapshot attribute you would like to view.

", + "ModifySnapshotAttributeRequest$Attribute": "

The snapshot attribute to modify.

", + "ResetSnapshotAttributeRequest$Attribute": "

The attribute to reset (currently only the attribute for permission to create volumes can be reset).

" + } + }, + "SnapshotDetail": { + "base": "

Describes the snapshot created from the imported disk.

", + "refs": { + "SnapshotDetailList$member": null + } + }, + "SnapshotDetailList": { + "base": null, + "refs": { + "ImportImageResult$SnapshotDetails": "

Information about the snapshots.

", + "ImportImageTask$SnapshotDetails": "

Information about the snapshots.

" + } + }, + "SnapshotDiskContainer": { + "base": "

The disk container object for the import snapshot request.

", + "refs": { + "ImportSnapshotRequest$DiskContainer": "

Information about the disk container.

" + } + }, + "SnapshotIdStringList": { + "base": null, + "refs": { + "DescribeSnapshotsRequest$SnapshotIds": "

One or more snapshot IDs.

Default: Describes snapshots for which you have launch permissions.

" + } + }, + "SnapshotList": { + "base": null, + "refs": { + "DescribeSnapshotsResult$Snapshots": "

Information about the snapshots.

" + } + }, + "SnapshotState": { + "base": null, + "refs": { + "Snapshot$State": "

The snapshot state.

" + } + }, + "SnapshotTaskDetail": { + "base": "

Details about the import snapshot task.

", + "refs": { + "ImportSnapshotResult$SnapshotTaskDetail": "

Information about the import snapshot task.

", + "ImportSnapshotTask$SnapshotTaskDetail": "

Describes an import snapshot task.

" + } + }, + "SpotDatafeedSubscription": { + "base": "

Describes the data feed for a Spot Instance.

", + "refs": { + "CreateSpotDatafeedSubscriptionResult$SpotDatafeedSubscription": "

The Spot Instance data feed subscription.

", + "DescribeSpotDatafeedSubscriptionResult$SpotDatafeedSubscription": "

The Spot Instance data feed subscription.

" + } + }, + "SpotFleetRequestConfig": { + "base": "

Describes a Spot fleet request.

", + "refs": { + "SpotFleetRequestConfigSet$member": null + } + }, + "SpotFleetRequestConfigData": { + "base": "

Describes the configuration of a Spot fleet request.

", + "refs": { + "RequestSpotFleetRequest$SpotFleetRequestConfig": "

The configuration for the Spot fleet request.

", + "SpotFleetRequestConfig$SpotFleetRequestConfig": "

Information about the configuration of the Spot fleet request.

" + } + }, + "SpotFleetRequestConfigSet": { + "base": null, + "refs": { + "DescribeSpotFleetRequestsResponse$SpotFleetRequestConfigs": "

Information about the configuration of your Spot fleet.

" + } + }, + "SpotInstanceRequest": { + "base": "

Describe a Spot Instance request.

", + "refs": { + "SpotInstanceRequestList$member": null + } + }, + "SpotInstanceRequestIdList": { + "base": null, + "refs": { + "CancelSpotInstanceRequestsRequest$SpotInstanceRequestIds": "

One or more Spot Instance request IDs.

", + "DescribeSpotInstanceRequestsRequest$SpotInstanceRequestIds": "

One or more Spot Instance request IDs.

" + } + }, + "SpotInstanceRequestList": { + "base": null, + "refs": { + "DescribeSpotInstanceRequestsResult$SpotInstanceRequests": "

One or more Spot Instance requests.

", + "RequestSpotInstancesResult$SpotInstanceRequests": "

One or more Spot Instance requests.

" + } + }, + "SpotInstanceState": { + "base": null, + "refs": { + "SpotInstanceRequest$State": "

The state of the Spot Instance request. Spot bid status information can help you track your Spot Instance requests. For more information, see Spot Bid Status in the Amazon Elastic Compute Cloud User Guide.

" + } + }, + "SpotInstanceStateFault": { + "base": "

Describes a Spot Instance state change.

", + "refs": { + "SpotDatafeedSubscription$Fault": "

The fault codes for the Spot Instance request, if any.

", + "SpotInstanceRequest$Fault": "

The fault codes for the Spot Instance request, if any.

" + } + }, + "SpotInstanceStatus": { + "base": "

Describes the status of a Spot Instance request.

", + "refs": { + "SpotInstanceRequest$Status": "

The status code and status message describing the Spot Instance request.

" + } + }, + "SpotInstanceType": { + "base": null, + "refs": { + "RequestSpotInstancesRequest$Type": "

The Spot Instance request type.

Default: one-time

", + "SpotInstanceRequest$Type": "

The Spot Instance request type.

" + } + }, + "SpotPlacement": { + "base": "

Describes Spot Instance placement.

", + "refs": { + "LaunchSpecification$Placement": "

The placement information for the instance.

", + "RequestSpotLaunchSpecification$Placement": "

The placement information for the instance.

" + } + }, + "SpotPrice": { + "base": "

Describes the maximum hourly price (bid) for any Spot Instance launched to fulfill the request.

", + "refs": { + "SpotPriceHistoryList$member": null + } + }, + "SpotPriceHistoryList": { + "base": null, + "refs": { + "DescribeSpotPriceHistoryResult$SpotPriceHistory": "

The historical Spot Prices.

" + } + }, + "StartInstancesRequest": { + "base": null, + "refs": { + } + }, + "StartInstancesResult": { + "base": null, + "refs": { + } + }, + "State": { + "base": null, + "refs": { + "VpcEndpoint$State": "

The state of the VPC endpoint.

" + } + }, + "StateReason": { + "base": "

Describes a state change.

", + "refs": { + "Image$StateReason": "

The reason for the state change.

", + "Instance$StateReason": "

The reason for the most recent state transition.

" + } + }, + "Status": { + "base": null, + "refs": { + "MoveAddressToVpcResult$Status": "

The status of the move of the IP address.

", + "RestoreAddressToClassicResult$Status": "

The move status for the IP address.

" + } + }, + "StatusName": { + "base": null, + "refs": { + "InstanceStatusDetails$Name": "

The type of instance status.

" + } + }, + "StatusType": { + "base": null, + "refs": { + "InstanceStatusDetails$Status": "

The status.

" + } + }, + "StopInstancesRequest": { + "base": null, + "refs": { + } + }, + "StopInstancesResult": { + "base": null, + "refs": { + } + }, + "Storage": { + "base": "

Describes the storage location for an instance store-backed AMI.

", + "refs": { + "BundleInstanceRequest$Storage": "

The bucket in which to store the AMI. You can specify a bucket that you already own or a new bucket that Amazon EC2 creates on your behalf. If you specify a bucket that belongs to someone else, Amazon EC2 returns an error.

", + "BundleTask$Storage": "

The Amazon S3 storage locations.

" + } + }, + "String": { + "base": null, + "refs": { + "AcceptVpcPeeringConnectionRequest$VpcPeeringConnectionId": "

The ID of the VPC peering connection.

", + "AccountAttribute$AttributeName": "

The name of the account attribute.

", + "AccountAttributeValue$AttributeValue": "

The value of the attribute.

", + "ActiveInstance$InstanceType": "

The instance type.

", + "ActiveInstance$InstanceId": "

The ID of the instance.

", + "ActiveInstance$SpotInstanceRequestId": "

The ID of the Spot Instance request.

", + "Address$InstanceId": "

The ID of the instance that the address is associated with (if any).

", + "Address$PublicIp": "

The Elastic IP address.

", + "Address$AllocationId": "

The ID representing the allocation of the address for use with EC2-VPC.

", + "Address$AssociationId": "

The ID representing the association of the address with an instance in a VPC.

", + "Address$NetworkInterfaceId": "

The ID of the network interface.

", + "Address$NetworkInterfaceOwnerId": "

The ID of the AWS account that owns the network interface.

", + "Address$PrivateIpAddress": "

The private IP address associated with the Elastic IP address.

", + "AllocateAddressResult$PublicIp": "

The Elastic IP address.

", + "AllocateAddressResult$AllocationId": "

[EC2-VPC] The ID that AWS assigns to represent the allocation of the Elastic IP address for use with instances in a VPC.

", + "AllocationIdList$member": null, + "AssignPrivateIpAddressesRequest$NetworkInterfaceId": "

The ID of the network interface.

", + "AssociateAddressRequest$InstanceId": "

The ID of the instance. This is required for EC2-Classic. For EC2-VPC, you can specify either the instance ID or the network interface ID, but not both. The operation fails if you specify an instance ID unless exactly one network interface is attached.

", + "AssociateAddressRequest$PublicIp": "

The Elastic IP address. This is required for EC2-Classic.

", + "AssociateAddressRequest$AllocationId": "

[EC2-VPC] The allocation ID. This is required for EC2-VPC.

", + "AssociateAddressRequest$NetworkInterfaceId": "

[EC2-VPC] The ID of the network interface. If the instance has more than one network interface, you must specify a network interface ID.

", + "AssociateAddressRequest$PrivateIpAddress": "

[EC2-VPC] The primary or secondary private IP address to associate with the Elastic IP address. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address.

", + "AssociateAddressResult$AssociationId": "

[EC2-VPC] The ID that represents the association of the Elastic IP address with an instance.

", + "AssociateDhcpOptionsRequest$DhcpOptionsId": "

The ID of the DHCP options set, or default to associate no DHCP options with the VPC.

", + "AssociateDhcpOptionsRequest$VpcId": "

The ID of the VPC.

", + "AssociateRouteTableRequest$SubnetId": "

The ID of the subnet.

", + "AssociateRouteTableRequest$RouteTableId": "

The ID of the route table.

", + "AssociateRouteTableResult$AssociationId": "

The route table association ID (needed to disassociate the route table).

", + "AttachClassicLinkVpcRequest$InstanceId": "

The ID of an EC2-Classic instance to link to the ClassicLink-enabled VPC.

", + "AttachClassicLinkVpcRequest$VpcId": "

The ID of a ClassicLink-enabled VPC.

", + "AttachInternetGatewayRequest$InternetGatewayId": "

The ID of the Internet gateway.

", + "AttachInternetGatewayRequest$VpcId": "

The ID of the VPC.

", + "AttachNetworkInterfaceRequest$NetworkInterfaceId": "

The ID of the network interface.

", + "AttachNetworkInterfaceRequest$InstanceId": "

The ID of the instance.

", + "AttachNetworkInterfaceResult$AttachmentId": "

The ID of the network interface attachment.

", + "AttachVolumeRequest$VolumeId": "

The ID of the EBS volume. The volume and instance must be within the same Availability Zone.

", + "AttachVolumeRequest$InstanceId": "

The ID of the instance.

", + "AttachVolumeRequest$Device": "

The device name to expose to the instance (for example, /dev/sdh or xvdh).

", + "AttachVpnGatewayRequest$VpnGatewayId": "

The ID of the virtual private gateway.

", + "AttachVpnGatewayRequest$VpcId": "

The ID of the VPC.

", + "AttributeValue$Value": "

Valid values are case-sensitive and vary by action.

", + "AuthorizeSecurityGroupEgressRequest$GroupId": "

The ID of the security group.

", + "AuthorizeSecurityGroupEgressRequest$SourceSecurityGroupName": "

[EC2-Classic, default VPC] The name of the destination security group. You can't specify a destination security group and a CIDR IP address range.

", + "AuthorizeSecurityGroupEgressRequest$SourceSecurityGroupOwnerId": "

The ID of the destination security group. You can't specify a destination security group and a CIDR IP address range.

", + "AuthorizeSecurityGroupEgressRequest$IpProtocol": "

The IP protocol name (tcp, udp, icmp) or number (see Protocol Numbers). Use -1 to specify all.

", + "AuthorizeSecurityGroupEgressRequest$CidrIp": "

The CIDR IP address range. You can't specify this parameter when specifying a source security group.

", + "AuthorizeSecurityGroupIngressRequest$GroupName": "

[EC2-Classic, default VPC] The name of the security group.

", + "AuthorizeSecurityGroupIngressRequest$GroupId": "

The ID of the security group. Required for a nondefault VPC.

", + "AuthorizeSecurityGroupIngressRequest$SourceSecurityGroupName": "

[EC2-Classic, default VPC] The name of the source security group. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the start of the port range, and the end of the port range.

", + "AuthorizeSecurityGroupIngressRequest$SourceSecurityGroupOwnerId": "

The ID of the source security group. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the start of the port range, and the end of the port range.

", + "AuthorizeSecurityGroupIngressRequest$IpProtocol": "

The IP protocol name (tcp, udp, icmp) or number (see Protocol Numbers). (VPC only) Use -1 to specify all.

", + "AuthorizeSecurityGroupIngressRequest$CidrIp": "

The CIDR IP address range. You can't specify this parameter when specifying a source security group.

", + "AvailabilityZone$ZoneName": "

The name of the Availability Zone.

", + "AvailabilityZone$RegionName": "

The name of the region.

", + "AvailabilityZoneMessage$Message": "

The message about the Availability Zone.

", + "BlockDeviceMapping$VirtualName": "

The virtual device name (ephemeralN). Instance store volumes are numbered starting from 0. An instance type with 2 available instance store volumes can specify mappings for ephemeral0 and ephemeral1.The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume.

Constraints: For M3 instances, you must specify instance store volumes in the block device mapping for the instance. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI.

", + "BlockDeviceMapping$DeviceName": "

The device name exposed to the instance (for example, /dev/sdh or xvdh).

", + "BlockDeviceMapping$NoDevice": "

Suppresses the specified device included in the block device mapping of the AMI.

", + "BundleIdStringList$member": null, + "BundleInstanceRequest$InstanceId": "

The ID of the instance to bundle.

Type: String

Default: None

Required: Yes

", + "BundleTask$InstanceId": "

The ID of the instance associated with this bundle task.

", + "BundleTask$BundleId": "

The ID of the bundle task.

", + "BundleTask$Progress": "

The level of task completion, as a percent (for example, 20%).

", + "BundleTaskError$Code": "

The error code.

", + "BundleTaskError$Message": "

The error message.

", + "CancelBundleTaskRequest$BundleId": "

The ID of the bundle task.

", + "CancelConversionRequest$ConversionTaskId": "

The ID of the conversion task.

", + "CancelConversionRequest$ReasonMessage": "

The reason for canceling the conversion task.

", + "CancelExportTaskRequest$ExportTaskId": "

The ID of the export task. This is the ID returned by CreateInstanceExportTask.

", + "CancelImportTaskRequest$ImportTaskId": "

The ID of the import image or import snapshot task to be canceled.

", + "CancelImportTaskRequest$CancelReason": "

The reason for canceling the task.

", + "CancelImportTaskResult$ImportTaskId": "

The ID of the task being canceled.

", + "CancelImportTaskResult$State": "

The current state of the task being canceled.

", + "CancelImportTaskResult$PreviousState": "

The current state of the task being canceled.

", + "CancelReservedInstancesListingRequest$ReservedInstancesListingId": "

The ID of the Reserved Instance listing.

", + "CancelSpotFleetRequestsError$Message": "

The description for the error code.

", + "CancelSpotFleetRequestsErrorItem$SpotFleetRequestId": "

The ID of the Spot fleet request.

", + "CancelSpotFleetRequestsSuccessItem$SpotFleetRequestId": "

The ID of the Spot fleet request.

", + "CancelledSpotInstanceRequest$SpotInstanceRequestId": "

The ID of the Spot Instance request.

", + "ClassicLinkInstance$InstanceId": "

The ID of the instance.

", + "ClassicLinkInstance$VpcId": "

The ID of the VPC.

", + "ClientData$Comment": "

A user-defined comment about the disk upload.

", + "ConfirmProductInstanceRequest$ProductCode": "

The product code. This must be a product code that you own.

", + "ConfirmProductInstanceRequest$InstanceId": "

The ID of the instance.

", + "ConfirmProductInstanceResult$OwnerId": "

The AWS account ID of the instance owner. This is only present if the product code is attached to the instance.

", + "ConversionIdStringList$member": null, + "ConversionTask$ConversionTaskId": "

The ID of the conversion task.

", + "ConversionTask$ExpirationTime": "

The time when the task expires. If the upload isn't complete before the expiration time, we automatically cancel the task.

", + "ConversionTask$StatusMessage": "

The status message related to the conversion task.

", + "CopyImageRequest$SourceRegion": "

The name of the region that contains the AMI to copy.

", + "CopyImageRequest$SourceImageId": "

The ID of the AMI to copy.

", + "CopyImageRequest$Name": "

The name of the new AMI in the destination region.

", + "CopyImageRequest$Description": "

A description for the new AMI in the destination region.

", + "CopyImageRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see How to Ensure Idempotency in the Amazon Elastic Compute Cloud User Guide.

", + "CopyImageResult$ImageId": "

The ID of the new AMI.

", + "CopySnapshotRequest$SourceRegion": "

The ID of the region that contains the snapshot to be copied.

", + "CopySnapshotRequest$SourceSnapshotId": "

The ID of the EBS snapshot to copy.

", + "CopySnapshotRequest$Description": "

A description for the EBS snapshot.

", + "CopySnapshotRequest$DestinationRegion": "

The destination region to use in the PresignedUrl parameter of a snapshot copy operation. This parameter is only valid for specifying the destination region in a PresignedUrl parameter, where it is required.

CopySnapshot sends the snapshot copy to the regional endpoint that you send the HTTP request to, such as ec2.us-east-1.amazonaws.com (in the AWS CLI, this is specified with the --region parameter or the default region in your AWS configuration file).

", + "CopySnapshotRequest$PresignedUrl": "

The pre-signed URL that facilitates copying an encrypted snapshot. This parameter is only required when copying an encrypted snapshot with the Amazon EC2 Query API; it is available as an optional parameter in all other cases. The PresignedUrl should use the snapshot source endpoint, the CopySnapshot action, and include the SourceRegion, SourceSnapshotId, and DestinationRegion parameters. The PresignedUrl must be signed using AWS Signature Version 4. Because EBS snapshots are stored in Amazon S3, the signing algorithm for this parameter uses the same logic that is described in Authenticating Requests by Using Query Parameters (AWS Signature Version 4) in the Amazon Simple Storage Service API Reference. An invalid or improperly signed PresignedUrl will cause the copy operation to fail asynchronously, and the snapshot will move to an error state.

", + "CopySnapshotResult$SnapshotId": "

The ID of the new snapshot.

", + "CreateCustomerGatewayRequest$PublicIp": "

The Internet-routable IP address for the customer gateway's outside interface. The address must be static.

", + "CreateFlowLogsRequest$LogGroupName": "

The name of the CloudWatch log group.

", + "CreateFlowLogsRequest$DeliverLogsPermissionArn": "

The ARN for the IAM role that's used to post flow logs to a CloudWatch Logs log group.

", + "CreateFlowLogsRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", + "CreateFlowLogsResult$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request.

", + "CreateImageRequest$InstanceId": "

The ID of the instance.

", + "CreateImageRequest$Name": "

A name for the new image.

Constraints: 3-128 alphanumeric characters, parentheses (()), square brackets ([]), spaces ( ), periods (.), slashes (/), dashes (-), single quotes ('), at-signs (@), or underscores(_)

", + "CreateImageRequest$Description": "

A description for the new image.

", + "CreateImageResult$ImageId": "

The ID of the new AMI.

", + "CreateInstanceExportTaskRequest$Description": "

A description for the conversion task or the resource being exported. The maximum length is 255 bytes.

", + "CreateInstanceExportTaskRequest$InstanceId": "

The ID of the instance.

", + "CreateKeyPairRequest$KeyName": "

A unique name for the key pair.

Constraints: Up to 255 ASCII characters

", + "CreateNetworkAclEntryRequest$NetworkAclId": "

The ID of the network ACL.

", + "CreateNetworkAclEntryRequest$Protocol": "

The protocol. A value of -1 means all protocols.

", + "CreateNetworkAclEntryRequest$CidrBlock": "

The network range to allow or deny, in CIDR notation (for example 172.16.0.0/24).

", + "CreateNetworkAclRequest$VpcId": "

The ID of the VPC.

", + "CreateNetworkInterfaceRequest$SubnetId": "

The ID of the subnet to associate with the network interface.

", + "CreateNetworkInterfaceRequest$Description": "

A description for the network interface.

", + "CreateNetworkInterfaceRequest$PrivateIpAddress": "

The primary private IP address of the network interface. If you don't specify an IP address, Amazon EC2 selects one for you from the subnet range. If you specify an IP address, you cannot indicate any IP addresses specified in privateIpAddresses as primary (only one IP address can be designated as primary).

", + "CreatePlacementGroupRequest$GroupName": "

A name for the placement group.

Constraints: Up to 255 ASCII characters

", + "CreateReservedInstancesListingRequest$ReservedInstancesId": "

The ID of the active Reserved Instance.

", + "CreateReservedInstancesListingRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure idempotency of your listings. This helps avoid duplicate listings. For more information, see Ensuring Idempotency.

", + "CreateRouteRequest$RouteTableId": "

The ID of the route table for the route.

", + "CreateRouteRequest$DestinationCidrBlock": "

The CIDR address block used for the destination match. Routing decisions are based on the most specific match.

", + "CreateRouteRequest$GatewayId": "

The ID of an Internet gateway or virtual private gateway attached to your VPC.

", + "CreateRouteRequest$InstanceId": "

The ID of a NAT instance in your VPC. The operation fails if you specify an instance ID unless exactly one network interface is attached.

", + "CreateRouteRequest$NetworkInterfaceId": "

The ID of a network interface.

", + "CreateRouteRequest$VpcPeeringConnectionId": "

The ID of a VPC peering connection.

", + "CreateRouteRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", + "CreateRouteResult$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request.

", + "CreateRouteTableRequest$VpcId": "

The ID of the VPC.

", + "CreateSecurityGroupRequest$GroupName": "

The name of the security group.

Constraints: Up to 255 characters in length

Constraints for EC2-Classic: ASCII characters

Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*

", + "CreateSecurityGroupRequest$Description": "

A description for the security group. This is informational only.

Constraints: Up to 255 characters in length

Constraints for EC2-Classic: ASCII characters

Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*

", + "CreateSecurityGroupRequest$VpcId": "

[EC2-VPC] The ID of the VPC. Required for EC2-VPC.

", + "CreateSecurityGroupResult$GroupId": "

The ID of the security group.

", + "CreateSnapshotRequest$VolumeId": "

The ID of the EBS volume.

", + "CreateSnapshotRequest$Description": "

A description for the snapshot.

", + "CreateSpotDatafeedSubscriptionRequest$Bucket": "

The Amazon S3 bucket in which to store the Spot Instance data feed.

", + "CreateSpotDatafeedSubscriptionRequest$Prefix": "

A prefix for the data feed file names.

", + "CreateSubnetRequest$VpcId": "

The ID of the VPC.

", + "CreateSubnetRequest$CidrBlock": "

The network range for the subnet, in CIDR notation. For example, 10.0.0.0/24.

", + "CreateSubnetRequest$AvailabilityZone": "

The Availability Zone for the subnet.

Default: Amazon EC2 selects one for you (recommended).

", + "CreateVolumePermission$UserId": "

The specific AWS account ID that is to be added or removed from a volume's list of create volume permissions.

", + "CreateVolumeRequest$SnapshotId": "

The snapshot from which to create the volume.

", + "CreateVolumeRequest$AvailabilityZone": "

The Availability Zone in which to create the volume. Use DescribeAvailabilityZones to list the Availability Zones that are currently available to you.

", + "CreateVolumeRequest$KmsKeyId": "

The full ARN of the AWS Key Management Service (KMS) master key to use when creating the encrypted volume. This parameter is only required if you want to use a non-default master key; if this parameter is not specified, the default master key is used. The ARN contains the arn:aws:kms namespace, followed by the region of the master key, the AWS account ID of the master key owner, the key namespace, and then the master key ID. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef.

", + "CreateVpcEndpointRequest$VpcId": "

The ID of the VPC in which the endpoint will be used.

", + "CreateVpcEndpointRequest$ServiceName": "The AWS service name, in the form com.amazonaws.<region>.<service>. To get a list of available services, use the DescribeVpcEndpointServices request.", + "CreateVpcEndpointRequest$PolicyDocument": "

A policy to attach to the endpoint that controls access to the service. The policy must be in valid JSON format. If this parameter is not specified, we attach a default policy that allows full access to the service.

", + "CreateVpcEndpointRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

", + "CreateVpcEndpointResult$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request.

", + "CreateVpcPeeringConnectionRequest$VpcId": "

The ID of the requester VPC.

", + "CreateVpcPeeringConnectionRequest$PeerVpcId": "

The ID of the VPC with which you are creating the VPC peering connection.

", + "CreateVpcPeeringConnectionRequest$PeerOwnerId": "

The AWS account ID of the owner of the peer VPC.

Default: Your AWS account ID

", + "CreateVpcRequest$CidrBlock": "

The network range for the VPC, in CIDR notation. For example, 10.0.0.0/16.

", + "CreateVpnConnectionRequest$Type": "

The type of VPN connection (ipsec.1).

", + "CreateVpnConnectionRequest$CustomerGatewayId": "

The ID of the customer gateway.

", + "CreateVpnConnectionRequest$VpnGatewayId": "

The ID of the virtual private gateway.

", + "CreateVpnConnectionRouteRequest$VpnConnectionId": "

The ID of the VPN connection.

", + "CreateVpnConnectionRouteRequest$DestinationCidrBlock": "

The CIDR block associated with the local subnet of the customer network.

", + "CreateVpnGatewayRequest$AvailabilityZone": "

The Availability Zone for the virtual private gateway.

", + "CustomerGateway$CustomerGatewayId": "

The ID of the customer gateway.

", + "CustomerGateway$State": "

The current state of the customer gateway (pending | available | deleting | deleted).

", + "CustomerGateway$Type": "

The type of VPN connection the customer gateway supports (ipsec.1).

", + "CustomerGateway$IpAddress": "

The Internet-routable IP address of the customer gateway's outside interface.

", + "CustomerGateway$BgpAsn": "

The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN).

", + "CustomerGatewayIdStringList$member": null, + "DeleteCustomerGatewayRequest$CustomerGatewayId": "

The ID of the customer gateway.

", + "DeleteDhcpOptionsRequest$DhcpOptionsId": "

The ID of the DHCP options set.

", + "DeleteInternetGatewayRequest$InternetGatewayId": "

The ID of the Internet gateway.

", + "DeleteKeyPairRequest$KeyName": "

The name of the key pair.

", + "DeleteNetworkAclEntryRequest$NetworkAclId": "

The ID of the network ACL.

", + "DeleteNetworkAclRequest$NetworkAclId": "

The ID of the network ACL.

", + "DeleteNetworkInterfaceRequest$NetworkInterfaceId": "

The ID of the network interface.

", + "DeletePlacementGroupRequest$GroupName": "

The name of the placement group.

", + "DeleteRouteRequest$RouteTableId": "

The ID of the route table.

", + "DeleteRouteRequest$DestinationCidrBlock": "

The CIDR range for the route. The value you specify must match the CIDR for the route exactly.

", + "DeleteRouteTableRequest$RouteTableId": "

The ID of the route table.

", + "DeleteSecurityGroupRequest$GroupName": "

[EC2-Classic, default VPC] The name of the security group. You can specify either the security group name or the security group ID.

", + "DeleteSecurityGroupRequest$GroupId": "

The ID of the security group. Required for a nondefault VPC.

", + "DeleteSnapshotRequest$SnapshotId": "

The ID of the EBS snapshot.

", + "DeleteSubnetRequest$SubnetId": "

The ID of the subnet.

", + "DeleteVolumeRequest$VolumeId": "

The ID of the volume.

", + "DeleteVpcPeeringConnectionRequest$VpcPeeringConnectionId": "

The ID of the VPC peering connection.

", + "DeleteVpcRequest$VpcId": "

The ID of the VPC.

", + "DeleteVpnConnectionRequest$VpnConnectionId": "

The ID of the VPN connection.

", + "DeleteVpnConnectionRouteRequest$VpnConnectionId": "

The ID of the VPN connection.

", + "DeleteVpnConnectionRouteRequest$DestinationCidrBlock": "

The CIDR block associated with the local subnet of the customer network.

", + "DeleteVpnGatewayRequest$VpnGatewayId": "

The ID of the virtual private gateway.

", + "DeregisterImageRequest$ImageId": "

The ID of the AMI.

", + "DescribeClassicLinkInstancesRequest$NextToken": "

The token to retrieve the next page of results.

", + "DescribeClassicLinkInstancesResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeFlowLogsRequest$NextToken": "

The token to retrieve the next page of results.

", + "DescribeFlowLogsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeImageAttributeRequest$ImageId": "

The ID of the AMI.

", + "DescribeImportImageTasksRequest$NextToken": "

A token that indicates the next page of results.

", + "DescribeImportImageTasksResult$NextToken": "

The token to use to get the next page of results. This value is null when there are no more results to return.

", + "DescribeImportSnapshotTasksRequest$NextToken": "

A token that indicates the next page of results.

", + "DescribeImportSnapshotTasksResult$NextToken": "

The token to use to get the next page of results. This value is null when there are no more results to return.

", + "DescribeInstanceAttributeRequest$InstanceId": "

The ID of the instance.

", + "DescribeInstanceStatusRequest$NextToken": "

The token to retrieve the next page of results.

", + "DescribeInstanceStatusResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeInstancesRequest$NextToken": "

The token to request the next page of results.

", + "DescribeInstancesResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeMovingAddressesRequest$NextToken": "

The token to use to retrieve the next page of results.

", + "DescribeMovingAddressesResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeNetworkInterfaceAttributeRequest$NetworkInterfaceId": "

The ID of the network interface.

", + "DescribeNetworkInterfaceAttributeResult$NetworkInterfaceId": "

The ID of the network interface.

", + "DescribePrefixListsRequest$NextToken": "

The token for the next set of items to return. (You received this token from a prior call.)

", + "DescribePrefixListsResult$NextToken": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", + "DescribeReservedInstancesListingsRequest$ReservedInstancesId": "

One or more Reserved Instance IDs.

", + "DescribeReservedInstancesListingsRequest$ReservedInstancesListingId": "

One or more Reserved Instance Listing IDs.

", + "DescribeReservedInstancesModificationsRequest$NextToken": "

The token to retrieve the next page of results.

", + "DescribeReservedInstancesModificationsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeReservedInstancesOfferingsRequest$AvailabilityZone": "

The Availability Zone in which the Reserved Instance can be used.

", + "DescribeReservedInstancesOfferingsRequest$NextToken": "

The token to retrieve the next page of results.

", + "DescribeReservedInstancesOfferingsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeSnapshotAttributeRequest$SnapshotId": "

The ID of the EBS snapshot.

", + "DescribeSnapshotAttributeResult$SnapshotId": "

The ID of the EBS snapshot.

", + "DescribeSnapshotsRequest$NextToken": "

The NextToken value returned from a previous paginated DescribeSnapshots request where MaxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the NextToken value. This value is null when there are no more results to return.

", + "DescribeSnapshotsResult$NextToken": "

The NextToken value to include in a future DescribeSnapshots request. When the results of a DescribeSnapshots request exceed MaxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeSpotFleetInstancesRequest$SpotFleetRequestId": "

The ID of the Spot fleet request.

", + "DescribeSpotFleetInstancesRequest$NextToken": "

The token for the next set of results.

", + "DescribeSpotFleetInstancesResponse$SpotFleetRequestId": "

The ID of the Spot fleet request.

", + "DescribeSpotFleetInstancesResponse$NextToken": "

The token required to retrieve the next set of results. This value is null when there are no more results to return.

", + "DescribeSpotFleetRequestHistoryRequest$SpotFleetRequestId": "

The ID of the Spot fleet request.

", + "DescribeSpotFleetRequestHistoryRequest$NextToken": "

The token for the next set of results.

", + "DescribeSpotFleetRequestHistoryResponse$SpotFleetRequestId": "

The ID of the Spot fleet request.

", + "DescribeSpotFleetRequestHistoryResponse$NextToken": "

The token required to retrieve the next set of results. This value is null when there are no more results to return.

", + "DescribeSpotFleetRequestsRequest$NextToken": "

The token for the next set of results.

", + "DescribeSpotFleetRequestsResponse$NextToken": "

The token required to retrieve the next set of results. This value is null when there are no more results to return.

", + "DescribeSpotPriceHistoryRequest$AvailabilityZone": "

Filters the results by the specified Availability Zone.

", + "DescribeSpotPriceHistoryRequest$NextToken": "

The token for the next set of results.

", + "DescribeSpotPriceHistoryResult$NextToken": "

The token required to retrieve the next set of results. This value is null when there are no more results to return.

", + "DescribeTagsRequest$NextToken": "

The token to retrieve the next page of results.

", + "DescribeTagsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return..

", + "DescribeVolumeAttributeRequest$VolumeId": "

The ID of the volume.

", + "DescribeVolumeAttributeResult$VolumeId": "

The ID of the volume.

", + "DescribeVolumeStatusRequest$NextToken": "

The NextToken value to include in a future DescribeVolumeStatus request. When the results of the request exceed MaxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeVolumeStatusResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeVolumesRequest$NextToken": "

The NextToken value returned from a previous paginated DescribeVolumes request where MaxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the NextToken value. This value is null when there are no more results to return.

", + "DescribeVolumesResult$NextToken": "

The NextToken value to include in a future DescribeVolumes request. When the results of a DescribeVolumes request exceed MaxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeVpcAttributeRequest$VpcId": "

The ID of the VPC.

", + "DescribeVpcAttributeResult$VpcId": "

The ID of the VPC.

", + "DescribeVpcEndpointServicesRequest$NextToken": "

The token for the next set of items to return. (You received this token from a prior call.)

", + "DescribeVpcEndpointServicesResult$NextToken": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", + "DescribeVpcEndpointsRequest$NextToken": "

The token for the next set of items to return. (You received this token from a prior call.)

", + "DescribeVpcEndpointsResult$NextToken": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", + "DetachClassicLinkVpcRequest$InstanceId": "

The ID of the instance to unlink from the VPC.

", + "DetachClassicLinkVpcRequest$VpcId": "

The ID of the VPC to which the instance is linked.

", + "DetachInternetGatewayRequest$InternetGatewayId": "

The ID of the Internet gateway.

", + "DetachInternetGatewayRequest$VpcId": "

The ID of the VPC.

", + "DetachNetworkInterfaceRequest$AttachmentId": "

The ID of the attachment.

", + "DetachVolumeRequest$VolumeId": "

The ID of the volume.

", + "DetachVolumeRequest$InstanceId": "

The ID of the instance.

", + "DetachVolumeRequest$Device": "

The device name.

", + "DetachVpnGatewayRequest$VpnGatewayId": "

The ID of the virtual private gateway.

", + "DetachVpnGatewayRequest$VpcId": "

The ID of the VPC.

", + "DhcpConfiguration$Key": "

The name of a DHCP option.

", + "DhcpOptions$DhcpOptionsId": "

The ID of the set of DHCP options.

", + "DhcpOptionsIdStringList$member": null, + "DisableVgwRoutePropagationRequest$RouteTableId": "

The ID of the route table.

", + "DisableVgwRoutePropagationRequest$GatewayId": "

The ID of the virtual private gateway.

", + "DisableVpcClassicLinkRequest$VpcId": "

The ID of the VPC.

", + "DisassociateAddressRequest$PublicIp": "

[EC2-Classic] The Elastic IP address. Required for EC2-Classic.

", + "DisassociateAddressRequest$AssociationId": "

[EC2-VPC] The association ID. Required for EC2-VPC.

", + "DisassociateRouteTableRequest$AssociationId": "

The association ID representing the current association between the route table and subnet.

", + "DiskImage$Description": "

A description of the disk image.

", + "DiskImageDescription$ImportManifestUrl": "

A presigned URL for the import manifest stored in Amazon S3. For information about creating a presigned URL for an Amazon S3 object, read the \"Query String Request Authentication Alternative\" section of the Authenticating REST Requests topic in the Amazon Simple Storage Service Developer Guide.

", + "DiskImageDescription$Checksum": "

The checksum computed for the disk image.

", + "DiskImageDetail$ImportManifestUrl": "

A presigned URL for the import manifest stored in Amazon S3 and presented here as an Amazon S3 presigned URL. For information about creating a presigned URL for an Amazon S3 object, read the \"Query String Request Authentication Alternative\" section of the Authenticating REST Requests topic in the Amazon Simple Storage Service Developer Guide.

", + "DiskImageVolumeDescription$Id": "

The volume identifier.

", + "EbsBlockDevice$SnapshotId": "

The ID of the snapshot.

", + "EbsInstanceBlockDevice$VolumeId": "

The ID of the EBS volume.

", + "EbsInstanceBlockDeviceSpecification$VolumeId": "

The ID of the EBS volume.

", + "EnableVgwRoutePropagationRequest$RouteTableId": "

The ID of the route table.

", + "EnableVgwRoutePropagationRequest$GatewayId": "

The ID of the virtual private gateway.

", + "EnableVolumeIORequest$VolumeId": "

The ID of the volume.

", + "EnableVpcClassicLinkRequest$VpcId": "

The ID of the VPC.

", + "EventInformation$InstanceId": "

The ID of the instance. This information is available only for instanceChange events.

", + "EventInformation$EventSubType": "

The event.

The following are the error events.

  • iamFleetRoleInvalid - Spot fleet did not have the required permissions either to launch or terminate an instance.

  • spotFleetRequestConfigurationInvalid - The configuration is not valid. For more information, see the description.
  • spotInstanceCountLimitExceeded - You've reached the limit on the number of Spot Instances that you can launch.

The following are the fleetRequestChange events.

  • active - The Spot fleet has been validated and Amazon EC2 is attempting to maintain the target number of running Spot Instances.

  • cancelled - The Spot fleet is canceled and has no running Spot Instances. The Spot fleet will be deleted two days after its instances were terminated.

  • cancelled_running - The Spot fleet is canceled and will not launch additional Spot Instances, but its existing Spot Instances will continue to run until they are interrupted or terminated.

  • cancelled_terminating - The Spot fleet is canceled and its Spot Instances are terminating.

  • expired - The Spot fleet request has expired. A subsequent event indicates that the instances were terminated, if the request was created with terminateInstancesWithExpiration set.

  • price_update - The bid price for a launch configuration was adjusted because it was too high. This change is permanent.

  • submitted - The Spot fleet request is being evaluated and Amazon EC2 is preparing to launch the target number of Spot Instances.

The following are the instanceChange events.

  • launched - A bid was fulfilled and a new instance was launched.

  • terminated - An instance was terminated by the user.

", + "EventInformation$EventDescription": "

The description of the event.

", + "ExecutableByStringList$member": null, + "ExportTask$ExportTaskId": "

The ID of the export task.

", + "ExportTask$Description": "

A description of the resource being exported.

", + "ExportTask$StatusMessage": "

The status message related to the export task.

", + "ExportTaskIdStringList$member": null, + "ExportToS3Task$S3Bucket": "

The S3 bucket for the destination image. The destination bucket must exist and grant WRITE and READ_ACP permissions to the AWS account vm-import-export@amazon.com.

", + "ExportToS3Task$S3Key": "

The encryption key for your S3 bucket.

", + "ExportToS3TaskSpecification$S3Bucket": "

The S3 bucket for the destination image. The destination bucket must exist and grant WRITE and READ_ACP permissions to the AWS account vm-import-export@amazon.com.

", + "ExportToS3TaskSpecification$S3Prefix": "

The image is written to a single object in the S3 bucket at the S3 key s3prefix + exportTaskId + '.' + diskImageFormat.

", + "Filter$Name": "

The name of the filter. Filter names are case-sensitive.

", + "FlowLog$FlowLogId": "

The flow log ID.

", + "FlowLog$FlowLogStatus": "

The status of the flow log (ACTIVE).

", + "FlowLog$ResourceId": "

The ID of the resource on which the flow log was created.

", + "FlowLog$LogGroupName": "

The name of the flow log group.

", + "FlowLog$DeliverLogsStatus": "

The status of the logs delivery (SUCCESS | FAILED).

", + "FlowLog$DeliverLogsErrorMessage": "

Information about the error that occurred. Rate limited indicates that CloudWatch logs throttling has been applied for one or more network interfaces. Access error indicates that the IAM role associated with the flow log does not have sufficient permissions to publish to CloudWatch Logs. Unknown error indicates an internal error.

", + "FlowLog$DeliverLogsPermissionArn": "

The ARN of the IAM role that posts logs to CloudWatch Logs.

", + "GetConsoleOutputRequest$InstanceId": "

The ID of the instance.

", + "GetConsoleOutputResult$InstanceId": "

The ID of the instance.

", + "GetConsoleOutputResult$Output": "

The console output, Base64 encoded.

", + "GetPasswordDataRequest$InstanceId": "

The ID of the Windows instance.

", + "GetPasswordDataResult$InstanceId": "

The ID of the Windows instance.

", + "GetPasswordDataResult$PasswordData": "

The password of the instance.

", + "GroupIdStringList$member": null, + "GroupIdentifier$GroupName": "

The name of the security group.

", + "GroupIdentifier$GroupId": "

The ID of the security group.

", + "GroupNameStringList$member": null, + "IamInstanceProfile$Arn": "

The Amazon Resource Name (ARN) of the instance profile.

", + "IamInstanceProfile$Id": "

The ID of the instance profile.

", + "IamInstanceProfileSpecification$Arn": "

The Amazon Resource Name (ARN) of the instance profile.

", + "IamInstanceProfileSpecification$Name": "

The name of the instance profile.

", + "Image$ImageId": "

The ID of the AMI.

", + "Image$ImageLocation": "

The location of the AMI.

", + "Image$OwnerId": "

The AWS account ID of the image owner.

", + "Image$CreationDate": "

The date and time the image was created.

", + "Image$KernelId": "

The kernel associated with the image, if any. Only applicable for machine images.

", + "Image$RamdiskId": "

The RAM disk associated with the image, if any. Only applicable for machine images.

", + "Image$SriovNetSupport": "

Specifies whether enhanced networking is enabled.

", + "Image$ImageOwnerAlias": "

The AWS account alias (for example, amazon, self) or the AWS account ID of the AMI owner.

", + "Image$Name": "

The name of the AMI that was provided during image creation.

", + "Image$Description": "

The description of the AMI that was provided during image creation.

", + "Image$RootDeviceName": "

The device name of the root device (for example, /dev/sda1 or /dev/xvda).

", + "ImageAttribute$ImageId": "

The ID of the AMI.

", + "ImageDiskContainer$Description": "

The description of the disk image.

", + "ImageDiskContainer$Format": "

The format of the disk image being imported.

Valid values: RAW | VHD | VMDK | OVA

", + "ImageDiskContainer$Url": "

The URL to the Amazon S3-based disk image being imported. The URL can either be a https URL (https://..) or an Amazon S3 URL (s3://..)

", + "ImageDiskContainer$DeviceName": "

The block device mapping for the disk.

", + "ImageDiskContainer$SnapshotId": "

The ID of the EBS snapshot to be used for importing the snapshot.

", + "ImageIdStringList$member": null, + "ImportImageRequest$Description": "

A description string for the import image task.

", + "ImportImageRequest$LicenseType": "

The license type to be used for the Amazon Machine Image (AMI) after importing.

Note: You may only use BYOL if you have existing licenses with rights to use these licenses in a third party cloud like AWS. For more information, see VM Import/Export Prerequisites in the Amazon Elastic Compute Cloud User Guide.

Valid values: AWS | BYOL

", + "ImportImageRequest$Hypervisor": "

The target hypervisor platform.

Valid values: xen

", + "ImportImageRequest$Architecture": "

The architecture of the virtual machine.

Valid values: i386 | x86_64

", + "ImportImageRequest$Platform": "

The operating system of the virtual machine.

Valid values: Windows | Linux

", + "ImportImageRequest$ClientToken": "

The token to enable idempotency for VM import requests.

", + "ImportImageRequest$RoleName": "

The name of the role to use when not using the default role, 'vmimport'.

", + "ImportImageResult$ImportTaskId": "

The task ID of the import image task.

", + "ImportImageResult$Architecture": "

The architecture of the virtual machine.

", + "ImportImageResult$LicenseType": "

The license type of the virtual machine.

", + "ImportImageResult$Platform": "

The operating system of the virtual machine.

", + "ImportImageResult$Hypervisor": "

The target hypervisor of the import task.

", + "ImportImageResult$Description": "

A description of the import task.

", + "ImportImageResult$ImageId": "

The ID of the Amazon Machine Image (AMI) created by the import task.

", + "ImportImageResult$Progress": "

The progress of the task.

", + "ImportImageResult$StatusMessage": "

A detailed status message of the import task.

", + "ImportImageResult$Status": "

A brief status of the task.

", + "ImportImageTask$ImportTaskId": "

The ID of the import image task.

", + "ImportImageTask$Architecture": "

The architecture of the virtual machine.

Valid values: i386 | x86_64

", + "ImportImageTask$LicenseType": "

The license type of the virtual machine.

", + "ImportImageTask$Platform": "

The description string for the import image task.

", + "ImportImageTask$Hypervisor": "

The target hypervisor for the import task.

Valid values: xen

", + "ImportImageTask$Description": "

A description of the import task.

", + "ImportImageTask$ImageId": "

The ID of the Amazon Machine Image (AMI) of the imported virtual machine.

", + "ImportImageTask$Progress": "

The percentage of progress of the import image task.

", + "ImportImageTask$StatusMessage": "

A descriptive status message for the import image task.

", + "ImportImageTask$Status": "

A brief status for the import image task.

", + "ImportInstanceLaunchSpecification$AdditionalInfo": "

Reserved.

", + "ImportInstanceLaunchSpecification$SubnetId": "

[EC2-VPC] The ID of the subnet in which to launch the instance.

", + "ImportInstanceLaunchSpecification$PrivateIpAddress": "

[EC2-VPC] An available IP address from the IP address range of the subnet.

", + "ImportInstanceRequest$Description": "

A description for the instance being imported.

", + "ImportInstanceTaskDetails$InstanceId": "

The ID of the instance.

", + "ImportInstanceTaskDetails$Description": "

A description of the task.

", + "ImportInstanceVolumeDetailItem$AvailabilityZone": "

The Availability Zone where the resulting instance will reside.

", + "ImportInstanceVolumeDetailItem$Status": "

The status of the import of this particular disk image.

", + "ImportInstanceVolumeDetailItem$StatusMessage": "

The status information or errors related to the disk image.

", + "ImportInstanceVolumeDetailItem$Description": "

A description of the task.

", + "ImportKeyPairRequest$KeyName": "

A unique name for the key pair.

", + "ImportKeyPairResult$KeyName": "

The key pair name you provided.

", + "ImportKeyPairResult$KeyFingerprint": "

The MD5 public key fingerprint as specified in section 4 of RFC 4716.

", + "ImportSnapshotRequest$Description": "

The description string for the import snapshot task.

", + "ImportSnapshotRequest$ClientToken": "

Token to enable idempotency for VM import requests.

", + "ImportSnapshotRequest$RoleName": "

The name of the role to use when not using the default role, 'vmimport'.

", + "ImportSnapshotResult$ImportTaskId": "

The ID of the import snapshot task.

", + "ImportSnapshotResult$Description": "

A description of the import snapshot task.

", + "ImportSnapshotTask$ImportTaskId": "

The ID of the import snapshot task.

", + "ImportSnapshotTask$Description": "

A description of the import snapshot task.

", + "ImportTaskIdList$member": null, + "ImportVolumeRequest$AvailabilityZone": "

The Availability Zone for the resulting EBS volume.

", + "ImportVolumeRequest$Description": "

A description of the volume.

", + "ImportVolumeTaskDetails$AvailabilityZone": "

The Availability Zone where the resulting volume will reside.

", + "ImportVolumeTaskDetails$Description": "

The description you provided when starting the import volume task.

", + "Instance$InstanceId": "

The ID of the instance.

", + "Instance$ImageId": "

The ID of the AMI used to launch the instance.

", + "Instance$PrivateDnsName": "

The private DNS name assigned to the instance. This DNS name can only be used inside the Amazon EC2 network. This name is not available until the instance enters the running state.

", + "Instance$PublicDnsName": "

The public DNS name assigned to the instance. This name is not available until the instance enters the running state.

", + "Instance$StateTransitionReason": "

The reason for the most recent state transition. This might be an empty string.

", + "Instance$KeyName": "

The name of the key pair, if this instance was launched with an associated key pair.

", + "Instance$KernelId": "

The kernel associated with this instance.

", + "Instance$RamdiskId": "

The RAM disk associated with this instance.

", + "Instance$SubnetId": "

The ID of the subnet in which the instance is running.

", + "Instance$VpcId": "

The ID of the VPC in which the instance is running.

", + "Instance$PrivateIpAddress": "

The private IP address assigned to the instance.

", + "Instance$PublicIpAddress": "

The public IP address assigned to the instance.

", + "Instance$RootDeviceName": "

The root device name (for example, /dev/sda1 or /dev/xvda).

", + "Instance$SpotInstanceRequestId": "

The ID of the Spot Instance request.

", + "Instance$ClientToken": "

The idempotency token you provided when you launched the instance.

", + "Instance$SriovNetSupport": "

Specifies whether enhanced networking is enabled.

", + "InstanceAttribute$InstanceId": "

The ID of the instance.

", + "InstanceBlockDeviceMapping$DeviceName": "

The device name exposed to the instance (for example, /dev/sdh or xvdh).

", + "InstanceBlockDeviceMappingSpecification$DeviceName": "

The device name exposed to the instance (for example, /dev/sdh or xvdh).

", + "InstanceBlockDeviceMappingSpecification$VirtualName": "

The virtual device name.

", + "InstanceBlockDeviceMappingSpecification$NoDevice": "

suppress the specified device included in the block device mapping.

", + "InstanceExportDetails$InstanceId": "

The ID of the resource being exported.

", + "InstanceIdStringList$member": null, + "InstanceMonitoring$InstanceId": "

The ID of the instance.

", + "InstanceNetworkInterface$NetworkInterfaceId": "

The ID of the network interface.

", + "InstanceNetworkInterface$SubnetId": "

The ID of the subnet.

", + "InstanceNetworkInterface$VpcId": "

The ID of the VPC.

", + "InstanceNetworkInterface$Description": "

The description.

", + "InstanceNetworkInterface$OwnerId": "

The ID of the AWS account that created the network interface.

", + "InstanceNetworkInterface$MacAddress": "

The MAC address.

", + "InstanceNetworkInterface$PrivateIpAddress": "

The IP address of the network interface within the subnet.

", + "InstanceNetworkInterface$PrivateDnsName": "

The private DNS name.

", + "InstanceNetworkInterfaceAssociation$PublicIp": "

The public IP address or Elastic IP address bound to the network interface.

", + "InstanceNetworkInterfaceAssociation$PublicDnsName": "

The public DNS name.

", + "InstanceNetworkInterfaceAssociation$IpOwnerId": "

The ID of the owner of the Elastic IP address.

", + "InstanceNetworkInterfaceAttachment$AttachmentId": "

The ID of the network interface attachment.

", + "InstanceNetworkInterfaceSpecification$NetworkInterfaceId": "

The ID of the network interface.

", + "InstanceNetworkInterfaceSpecification$SubnetId": "

The ID of the subnet associated with the network string. Applies only if creating a network interface when launching an instance.

", + "InstanceNetworkInterfaceSpecification$Description": "

The description of the network interface. Applies only if creating a network interface when launching an instance.

", + "InstanceNetworkInterfaceSpecification$PrivateIpAddress": "

The private IP address of the network interface. Applies only if creating a network interface when launching an instance.

", + "InstancePrivateIpAddress$PrivateIpAddress": "

The private IP address of the network interface.

", + "InstancePrivateIpAddress$PrivateDnsName": "

The private DNS name.

", + "InstanceStateChange$InstanceId": "

The ID of the instance.

", + "InstanceStatus$InstanceId": "

The ID of the instance.

", + "InstanceStatus$AvailabilityZone": "

The Availability Zone of the instance.

", + "InstanceStatusEvent$Description": "

A description of the event.

After a scheduled event is completed, it can still be described for up to a week. If the event has been completed, this description starts with the following text: [Completed].

", + "InternetGateway$InternetGatewayId": "

The ID of the Internet gateway.

", + "InternetGatewayAttachment$VpcId": "

The ID of the VPC.

", + "IpPermission$IpProtocol": "

The protocol.

When you call DescribeSecurityGroups, the protocol value returned is the number. Exception: For TCP, UDP, and ICMP, the value returned is the name (for example, tcp, udp, or icmp). For a list of protocol numbers, see Protocol Numbers. (VPC only) When you call AuthorizeSecurityGroupIngress, you can use -1 to specify all.

", + "IpRange$CidrIp": "

The CIDR range. You can either specify a CIDR range or a source security group, not both.

", + "KeyNameStringList$member": null, + "KeyPair$KeyName": "

The name of the key pair.

", + "KeyPair$KeyFingerprint": "

The SHA-1 digest of the DER encoded private key.

", + "KeyPair$KeyMaterial": "

An unencrypted PEM encoded RSA private key.

", + "KeyPairInfo$KeyName": "

The name of the key pair.

", + "KeyPairInfo$KeyFingerprint": "

If you used CreateKeyPair to create the key pair, this is the SHA-1 digest of the DER encoded private key. If you used ImportKeyPair to provide AWS the public key, this is the MD5 public key fingerprint as specified in section 4 of RFC4716.

", + "LaunchPermission$UserId": "

The AWS account ID.

", + "LaunchSpecification$ImageId": "

The ID of the AMI.

", + "LaunchSpecification$KeyName": "

The name of the key pair.

", + "LaunchSpecification$UserData": "

The Base64-encoded MIME user data to make available to the instances.

", + "LaunchSpecification$AddressingType": "

Deprecated.

", + "LaunchSpecification$KernelId": "

The ID of the kernel.

", + "LaunchSpecification$RamdiskId": "

The ID of the RAM disk.

", + "LaunchSpecification$SubnetId": "

The ID of the subnet in which to launch the instance.

", + "ModifyImageAttributeRequest$ImageId": "

The ID of the AMI.

", + "ModifyImageAttributeRequest$Attribute": "

The name of the attribute to modify.

", + "ModifyImageAttributeRequest$OperationType": "

The operation type.

", + "ModifyImageAttributeRequest$Value": "

The value of the attribute being modified. This is only valid when modifying the description attribute.

", + "ModifyInstanceAttributeRequest$InstanceId": "

The ID of the instance.

", + "ModifyInstanceAttributeRequest$Value": "

A new value for the attribute. Use only with the kernel, ramdisk, userData, disableApiTermination, or intanceInitiateShutdownBehavior attribute.

", + "ModifyNetworkInterfaceAttributeRequest$NetworkInterfaceId": "

The ID of the network interface.

", + "ModifyReservedInstancesRequest$ClientToken": "

A unique, case-sensitive token you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.

", + "ModifyReservedInstancesResult$ReservedInstancesModificationId": "

The ID for the modification.

", + "ModifySnapshotAttributeRequest$SnapshotId": "

The ID of the snapshot.

", + "ModifySnapshotAttributeRequest$OperationType": "

The type of operation to perform to the attribute.

", + "ModifySubnetAttributeRequest$SubnetId": "

The ID of the subnet.

", + "ModifyVolumeAttributeRequest$VolumeId": "

The ID of the volume.

", + "ModifyVpcAttributeRequest$VpcId": "

The ID of the VPC.

", + "ModifyVpcEndpointRequest$VpcEndpointId": "

The ID of the endpoint.

", + "ModifyVpcEndpointRequest$PolicyDocument": "

A policy document to attach to the endpoint. The policy must be in valid JSON format.

", + "MoveAddressToVpcRequest$PublicIp": "

The Elastic IP address.

", + "MoveAddressToVpcResult$AllocationId": "

The allocation ID for the Elastic IP address.

", + "MovingAddressStatus$PublicIp": "

The Elastic IP address.

", + "NetworkAcl$NetworkAclId": "

The ID of the network ACL.

", + "NetworkAcl$VpcId": "

The ID of the VPC for the network ACL.

", + "NetworkAclAssociation$NetworkAclAssociationId": "

The ID of the association between a network ACL and a subnet.

", + "NetworkAclAssociation$NetworkAclId": "

The ID of the network ACL.

", + "NetworkAclAssociation$SubnetId": "

The ID of the subnet.

", + "NetworkAclEntry$Protocol": "

The protocol. A value of -1 means all protocols.

", + "NetworkAclEntry$CidrBlock": "

The network range to allow or deny, in CIDR notation.

", + "NetworkInterface$NetworkInterfaceId": "

The ID of the network interface.

", + "NetworkInterface$SubnetId": "

The ID of the subnet.

", + "NetworkInterface$VpcId": "

The ID of the VPC.

", + "NetworkInterface$AvailabilityZone": "

The Availability Zone.

", + "NetworkInterface$Description": "

A description.

", + "NetworkInterface$OwnerId": "

The AWS account ID of the owner of the network interface.

", + "NetworkInterface$RequesterId": "

The ID of the entity that launched the instance on your behalf (for example, AWS Management Console or Auto Scaling).

", + "NetworkInterface$MacAddress": "

The MAC address.

", + "NetworkInterface$PrivateIpAddress": "

The IP address of the network interface within the subnet.

", + "NetworkInterface$PrivateDnsName": "

The private DNS name.

", + "NetworkInterfaceAssociation$PublicIp": "

The address of the Elastic IP address bound to the network interface.

", + "NetworkInterfaceAssociation$PublicDnsName": "

The public DNS name.

", + "NetworkInterfaceAssociation$IpOwnerId": "

The ID of the Elastic IP address owner.

", + "NetworkInterfaceAssociation$AllocationId": "

The allocation ID.

", + "NetworkInterfaceAssociation$AssociationId": "

The association ID.

", + "NetworkInterfaceAttachment$AttachmentId": "

The ID of the network interface attachment.

", + "NetworkInterfaceAttachment$InstanceId": "

The ID of the instance.

", + "NetworkInterfaceAttachment$InstanceOwnerId": "

The AWS account ID of the owner of the instance.

", + "NetworkInterfaceAttachmentChanges$AttachmentId": "

The ID of the network interface attachment.

", + "NetworkInterfaceIdList$member": null, + "NetworkInterfacePrivateIpAddress$PrivateIpAddress": "

The private IP address.

", + "NetworkInterfacePrivateIpAddress$PrivateDnsName": "

The private DNS name.

", + "OwnerStringList$member": null, + "Placement$AvailabilityZone": "

The Availability Zone of the instance.

", + "Placement$GroupName": "

The name of the placement group the instance is in (for cluster compute instances).

", + "PlacementGroup$GroupName": "

The name of the placement group.

", + "PlacementGroupStringList$member": null, + "PrefixList$PrefixListId": "

The ID of the prefix.

", + "PrefixList$PrefixListName": "

The name of the prefix.

", + "PrefixListId$PrefixListId": "

The ID of the prefix.

", + "PrivateIpAddressSpecification$PrivateIpAddress": "

The private IP addresses.

", + "PrivateIpAddressStringList$member": null, + "ProductCode$ProductCodeId": "

The product code.

", + "ProductCodeStringList$member": null, + "ProductDescriptionList$member": null, + "PropagatingVgw$GatewayId": "

The ID of the virtual private gateway (VGW).

", + "PublicIpStringList$member": null, + "PurchaseReservedInstancesOfferingRequest$ReservedInstancesOfferingId": "

The ID of the Reserved Instance offering to purchase.

", + "PurchaseReservedInstancesOfferingResult$ReservedInstancesId": "

The IDs of the purchased Reserved Instances.

", + "Region$RegionName": "

The name of the region.

", + "Region$Endpoint": "

The region service endpoint.

", + "RegionNameStringList$member": null, + "RegisterImageRequest$ImageLocation": "

The full path to your AMI manifest in Amazon S3 storage.

", + "RegisterImageRequest$Name": "

A name for your AMI.

Constraints: 3-128 alphanumeric characters, parentheses (()), square brackets ([]), spaces ( ), periods (.), slashes (/), dashes (-), single quotes ('), at-signs (@), or underscores(_)

", + "RegisterImageRequest$Description": "

A description for your AMI.

", + "RegisterImageRequest$KernelId": "

The ID of the kernel.

", + "RegisterImageRequest$RamdiskId": "

The ID of the RAM disk.

", + "RegisterImageRequest$RootDeviceName": "

The name of the root device (for example, /dev/sda1, or /dev/xvda).

", + "RegisterImageRequest$VirtualizationType": "

The type of virtualization.

Default: paravirtual

", + "RegisterImageRequest$SriovNetSupport": "

Set to simple to enable enhanced networking for the AMI and any instances that you launch from the AMI.

There is no way to disable enhanced networking at this time.

This option is supported only for HVM AMIs. Specifying this option with a PV AMI can make instances launched from the AMI unreachable.

", + "RegisterImageResult$ImageId": "

The ID of the newly registered AMI.

", + "RejectVpcPeeringConnectionRequest$VpcPeeringConnectionId": "

The ID of the VPC peering connection.

", + "ReleaseAddressRequest$PublicIp": "

[EC2-Classic] The Elastic IP address. Required for EC2-Classic.

", + "ReleaseAddressRequest$AllocationId": "

[EC2-VPC] The allocation ID. Required for EC2-VPC.

", + "ReplaceNetworkAclAssociationRequest$AssociationId": "

The ID of the current association between the original network ACL and the subnet.

", + "ReplaceNetworkAclAssociationRequest$NetworkAclId": "

The ID of the new network ACL to associate with the subnet.

", + "ReplaceNetworkAclAssociationResult$NewAssociationId": "

The ID of the new association.

", + "ReplaceNetworkAclEntryRequest$NetworkAclId": "

The ID of the ACL.

", + "ReplaceNetworkAclEntryRequest$Protocol": "

The IP protocol. You can specify all or -1 to mean all protocols.

", + "ReplaceNetworkAclEntryRequest$CidrBlock": "

The network range to allow or deny, in CIDR notation.

", + "ReplaceRouteRequest$RouteTableId": "

The ID of the route table.

", + "ReplaceRouteRequest$DestinationCidrBlock": "

The CIDR address block used for the destination match. The value you provide must match the CIDR of an existing route in the table.

", + "ReplaceRouteRequest$GatewayId": "

The ID of an Internet gateway or virtual private gateway.

", + "ReplaceRouteRequest$InstanceId": "

The ID of a NAT instance in your VPC.

", + "ReplaceRouteRequest$NetworkInterfaceId": "

The ID of a network interface.

", + "ReplaceRouteRequest$VpcPeeringConnectionId": "

The ID of a VPC peering connection.

", + "ReplaceRouteTableAssociationRequest$AssociationId": "

The association ID.

", + "ReplaceRouteTableAssociationRequest$RouteTableId": "

The ID of the new route table to associate with the subnet.

", + "ReplaceRouteTableAssociationResult$NewAssociationId": "

The ID of the new association.

", + "ReportInstanceStatusRequest$Description": "

Descriptive text about the health state of your instance.

", + "RequestSpotFleetResponse$SpotFleetRequestId": "

The ID of the Spot fleet request.

", + "RequestSpotInstancesRequest$SpotPrice": "

The maximum hourly price (bid) for any Spot Instance launched to fulfill the request.

", + "RequestSpotInstancesRequest$ClientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency in the Amazon Elastic Compute Cloud User Guide.

", + "RequestSpotInstancesRequest$LaunchGroup": "

The instance launch group. Launch groups are Spot Instances that launch together and terminate together.

Default: Instances are launched and terminated individually

", + "RequestSpotInstancesRequest$AvailabilityZoneGroup": "

The user-specified name for a logical grouping of bids.

When you specify an Availability Zone group in a Spot Instance request, all Spot Instances in the request are launched in the same Availability Zone. Instance proximity is maintained with this parameter, but the choice of Availability Zone is not. The group applies only to bids for Spot Instances of the same instance type. Any additional Spot Instance requests that are specified with the same Availability Zone group name are launched in that same Availability Zone, as long as at least one instance from the group is still active.

If there is no active instance running in the Availability Zone group that you specify for a new Spot Instance request (all instances are terminated, the bid is expired, or the bid falls below current market), then Amazon EC2 launches the instance in any Availability Zone where the constraint can be met. Consequently, the subsequent set of Spot Instances could be placed in a different zone from the original request, even if you specified the same Availability Zone group.

Default: Instances are launched in any available Availability Zone.

", + "Reservation$ReservationId": "

The ID of the reservation.

", + "Reservation$OwnerId": "

The ID of the AWS account that owns the reservation.

", + "Reservation$RequesterId": "

The ID of the requester that launched the instances on your behalf (for example, AWS Management Console or Auto Scaling).

", + "ReservedInstances$ReservedInstancesId": "

The ID of the Reserved Instance.

", + "ReservedInstances$AvailabilityZone": "

The Availability Zone in which the Reserved Instance can be used.

", + "ReservedInstancesConfiguration$AvailabilityZone": "

The Availability Zone for the modified Reserved Instances.

", + "ReservedInstancesConfiguration$Platform": "

The network platform of the modified Reserved Instances, which is either EC2-Classic or EC2-VPC.

", + "ReservedInstancesId$ReservedInstancesId": "

The ID of the Reserved Instance.

", + "ReservedInstancesIdStringList$member": null, + "ReservedInstancesListing$ReservedInstancesListingId": "

The ID of the Reserved Instance listing.

", + "ReservedInstancesListing$ReservedInstancesId": "

The ID of the Reserved Instance.

", + "ReservedInstancesListing$StatusMessage": "

The reason for the current status of the Reserved Instance listing. The response can be blank.

", + "ReservedInstancesListing$ClientToken": "

A unique, case-sensitive key supplied by the client to ensure that the request is idempotent. For more information, see Ensuring Idempotency.

", + "ReservedInstancesModification$ReservedInstancesModificationId": "

A unique ID for the Reserved Instance modification.

", + "ReservedInstancesModification$Status": "

The status of the Reserved Instances modification request.

", + "ReservedInstancesModification$StatusMessage": "

The reason for the status.

", + "ReservedInstancesModification$ClientToken": "

A unique, case-sensitive key supplied by the client to ensure that the request is idempotent. For more information, see Ensuring Idempotency.

", + "ReservedInstancesModificationIdStringList$member": null, + "ReservedInstancesModificationResult$ReservedInstancesId": "

The ID for the Reserved Instances that were created as part of the modification request. This field is only available when the modification is fulfilled.

", + "ReservedInstancesOffering$ReservedInstancesOfferingId": "

The ID of the Reserved Instance offering.

", + "ReservedInstancesOffering$AvailabilityZone": "

The Availability Zone in which the Reserved Instance can be used.

", + "ReservedInstancesOfferingIdStringList$member": null, + "ResetImageAttributeRequest$ImageId": "

The ID of the AMI.

", + "ResetInstanceAttributeRequest$InstanceId": "

The ID of the instance.

", + "ResetNetworkInterfaceAttributeRequest$NetworkInterfaceId": "

The ID of the network interface.

", + "ResetNetworkInterfaceAttributeRequest$SourceDestCheck": "

The source/destination checking attribute. Resets the value to true.

", + "ResetSnapshotAttributeRequest$SnapshotId": "

The ID of the snapshot.

", + "ResourceIdList$member": null, + "RestorableByStringList$member": null, + "RestoreAddressToClassicRequest$PublicIp": "

The Elastic IP address.

", + "RestoreAddressToClassicResult$PublicIp": "

The Elastic IP address.

", + "RevokeSecurityGroupEgressRequest$GroupId": "

The ID of the security group.

", + "RevokeSecurityGroupEgressRequest$SourceSecurityGroupName": "

[EC2-Classic, default VPC] The name of the destination security group. You can't specify a destination security group and a CIDR IP address range.

", + "RevokeSecurityGroupEgressRequest$SourceSecurityGroupOwnerId": "

The ID of the destination security group. You can't specify a destination security group and a CIDR IP address range.

", + "RevokeSecurityGroupEgressRequest$IpProtocol": "

The IP protocol name (tcp, udp, icmp) or number (see Protocol Numbers). Use -1 to specify all.

", + "RevokeSecurityGroupEgressRequest$CidrIp": "

The CIDR IP address range. You can't specify this parameter when specifying a source security group.

", + "RevokeSecurityGroupIngressRequest$GroupName": "

[EC2-Classic, default VPC] The name of the security group.

", + "RevokeSecurityGroupIngressRequest$GroupId": "

The ID of the security group.

", + "RevokeSecurityGroupIngressRequest$SourceSecurityGroupName": "

[EC2-Classic, default VPC] The name of the source security group. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the start of the port range, and the end of the port range.

", + "RevokeSecurityGroupIngressRequest$SourceSecurityGroupOwnerId": "

The ID of the source security group. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the start of the port range, and the end of the port range.

", + "RevokeSecurityGroupIngressRequest$IpProtocol": "

The IP protocol name (tcp, udp, icmp) or number (see Protocol Numbers). Use -1 to specify all.

", + "RevokeSecurityGroupIngressRequest$CidrIp": "

The CIDR IP address range. You can't specify this parameter when specifying a source security group.

", + "Route$DestinationCidrBlock": "

The CIDR block used for the destination match.

", + "Route$DestinationPrefixListId": "

The prefix of the AWS service.

", + "Route$GatewayId": "

The ID of a gateway attached to your VPC.

", + "Route$InstanceId": "

The ID of a NAT instance in your VPC.

", + "Route$InstanceOwnerId": "

The AWS account ID of the owner of the instance.

", + "Route$NetworkInterfaceId": "

The ID of the network interface.

", + "Route$VpcPeeringConnectionId": "

The ID of the VPC peering connection.

", + "RouteTable$RouteTableId": "

The ID of the route table.

", + "RouteTable$VpcId": "

The ID of the VPC.

", + "RouteTableAssociation$RouteTableAssociationId": "

The ID of the association between a route table and a subnet.

", + "RouteTableAssociation$RouteTableId": "

The ID of the route table.

", + "RouteTableAssociation$SubnetId": "

The ID of the subnet.

", + "RunInstancesRequest$ImageId": "

The ID of the AMI, which you can get by calling DescribeImages.

", + "RunInstancesRequest$KeyName": "

The name of the key pair. You can create a key pair using CreateKeyPair or ImportKeyPair.

If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in.

", + "RunInstancesRequest$UserData": "

The Base64-encoded MIME user data for the instances.

", + "RunInstancesRequest$KernelId": "

The ID of the kernel.

We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB in the Amazon Elastic Compute Cloud User Guide.

", + "RunInstancesRequest$RamdiskId": "

The ID of the RAM disk.

We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB in the Amazon Elastic Compute Cloud User Guide.

", + "RunInstancesRequest$SubnetId": "

[EC2-VPC] The ID of the subnet to launch the instance into.

", + "RunInstancesRequest$PrivateIpAddress": "

[EC2-VPC] The primary IP address. You must specify a value from the IP address range of the subnet.

Only one private IP address can be designated as primary. Therefore, you can't specify this parameter if PrivateIpAddresses.n.Primary is set to true and PrivateIpAddresses.n.PrivateIpAddress is set to an IP address.

Default: We select an IP address from the IP address range of the subnet.

", + "RunInstancesRequest$ClientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.

Constraints: Maximum 64 ASCII characters

", + "RunInstancesRequest$AdditionalInfo": "

Reserved.

", + "S3Storage$Bucket": "

The bucket in which to store the AMI. You can specify a bucket that you already own or a new bucket that Amazon EC2 creates on your behalf. If you specify a bucket that belongs to someone else, Amazon EC2 returns an error.

", + "S3Storage$Prefix": "

The beginning of the file name of the AMI.

", + "S3Storage$AWSAccessKeyId": "

The access key ID of the owner of the bucket. Before you specify a value for your access key ID, review and follow the guidance in Best Practices for Managing AWS Access Keys.

", + "S3Storage$UploadPolicySignature": "

The signature of the Base64 encoded JSON document.

", + "SecurityGroup$OwnerId": "

The AWS account ID of the owner of the security group.

", + "SecurityGroup$GroupName": "

The name of the security group.

", + "SecurityGroup$GroupId": "

The ID of the security group.

", + "SecurityGroup$Description": "

A description of the security group.

", + "SecurityGroup$VpcId": "

[EC2-VPC] The ID of the VPC for the security group.

", + "SecurityGroupIdStringList$member": null, + "SecurityGroupStringList$member": null, + "Snapshot$SnapshotId": "

The ID of the snapshot.

", + "Snapshot$VolumeId": "

The ID of the volume.

", + "Snapshot$Progress": "

The progress of the snapshot, as a percentage.

", + "Snapshot$OwnerId": "

The AWS account ID of the EBS snapshot owner.

", + "Snapshot$Description": "

The description for the snapshot.

", + "Snapshot$OwnerAlias": "

The AWS account alias (for example, amazon, self) or AWS account ID that owns the snapshot.

", + "Snapshot$KmsKeyId": "

The full ARN of the AWS Key Management Service (KMS) master key that was used to protect the volume encryption key for the parent volume.

", + "SnapshotDetail$Description": "

A description for the snapshot.

", + "SnapshotDetail$Format": "

The format of the disk image from which the snapshot is created.

", + "SnapshotDetail$Url": "

The URL used to access the disk image.

", + "SnapshotDetail$DeviceName": "

The block device mapping for the snapshot.

", + "SnapshotDetail$SnapshotId": "

The snapshot ID of the disk being imported.

", + "SnapshotDetail$Progress": "

The percentage of progress for the task.

", + "SnapshotDetail$StatusMessage": "

A detailed status message for the snapshot creation.

", + "SnapshotDetail$Status": "

A brief status of the snapshot creation.

", + "SnapshotDiskContainer$Description": "

The description of the disk image being imported.

", + "SnapshotDiskContainer$Format": "

The format of the disk image being imported.

Valid values: RAW | VHD | VMDK | OVA

", + "SnapshotDiskContainer$Url": "

The URL to the Amazon S3-based disk image being imported. It can either be a https URL (https://..) or an Amazon S3 URL (s3://..).

", + "SnapshotIdStringList$member": null, + "SnapshotTaskDetail$Description": "

The description of the snapshot.

", + "SnapshotTaskDetail$Format": "

The format of the disk image from which the snapshot is created.

", + "SnapshotTaskDetail$Url": "

The URL of the disk image from which the snapshot is created.

", + "SnapshotTaskDetail$SnapshotId": "

The snapshot ID of the disk being imported.

", + "SnapshotTaskDetail$Progress": "

The percentage of completion for the import snapshot task.

", + "SnapshotTaskDetail$StatusMessage": "

A detailed status message for the import snapshot task.

", + "SnapshotTaskDetail$Status": "

A brief status for the import snapshot task.

", + "SpotDatafeedSubscription$OwnerId": "

The AWS account ID of the account.

", + "SpotDatafeedSubscription$Bucket": "

The Amazon S3 bucket where the Spot Instance data feed is located.

", + "SpotDatafeedSubscription$Prefix": "

The prefix that is prepended to data feed files.

", + "SpotFleetRequestConfig$SpotFleetRequestId": "

The ID of the Spot fleet request.

", + "SpotFleetRequestConfigData$ClientToken": "

A unique, case-sensitive identifier you provide to ensure idempotency of your listings. This helps avoid duplicate listings. For more information, see Ensuring Idempotency.

", + "SpotFleetRequestConfigData$SpotPrice": "

The maximum hourly price (bid) for any Spot Instance launched to fulfill the request.

", + "SpotFleetRequestConfigData$IamFleetRole": "

Grants the Spot fleet service permission to terminate instances on your behalf when you cancel a Spot fleet request using CancelSpotFleetRequests or when the Spot fleet request expires, if you set terminateInstancesWithExpiration.

", + "SpotInstanceRequest$SpotInstanceRequestId": "

The ID of the Spot Instance request.

", + "SpotInstanceRequest$SpotPrice": "

The maximum hourly price (bid) for any Spot Instance launched to fulfill the request.

", + "SpotInstanceRequest$LaunchGroup": "

The instance launch group. Launch groups are Spot Instances that launch together and terminate together.

", + "SpotInstanceRequest$AvailabilityZoneGroup": "

The Availability Zone group. If you specify the same Availability Zone group for all Spot Instance requests, all Spot Instances are launched in the same Availability Zone.

", + "SpotInstanceRequest$InstanceId": "

The instance ID, if an instance has been launched to fulfill the Spot Instance request.

", + "SpotInstanceRequest$LaunchedAvailabilityZone": "

The Availability Zone in which the bid is launched.

", + "SpotInstanceRequestIdList$member": null, + "SpotInstanceStateFault$Code": "

The reason code for the Spot Instance state change.

", + "SpotInstanceStateFault$Message": "

The message for the Spot Instance state change.

", + "SpotInstanceStatus$Code": "

The status code.

", + "SpotInstanceStatus$Message": "

The description for the status code.

", + "SpotPlacement$AvailabilityZone": "

The Availability Zone.

", + "SpotPlacement$GroupName": "

The name of the placement group (for cluster instances).

", + "SpotPrice$SpotPrice": "

The maximum price (bid) that you are willing to pay for a Spot Instance.

", + "SpotPrice$AvailabilityZone": "

The Availability Zone.

", + "StartInstancesRequest$AdditionalInfo": "

Reserved.

", + "StateReason$Code": "

The reason code for the state change.

", + "StateReason$Message": "

The message for the state change.

  • Server.SpotInstanceTermination: A Spot Instance was terminated due to an increase in the market price.

  • Server.InternalError: An internal error occurred during instance launch, resulting in termination.

  • Server.InsufficientInstanceCapacity: There was insufficient instance capacity to satisfy the launch request.

  • Client.InternalError: A client error caused the instance to terminate on launch.

  • Client.InstanceInitiatedShutdown: The instance was shut down using the shutdown -h command from the instance.

  • Client.UserInitiatedShutdown: The instance was shut down using the Amazon EC2 API.

  • Client.VolumeLimitExceeded: The volume limit was exceeded.

  • Client.InvalidSnapshot.NotFound: The specified snapshot was not found.

", + "Subnet$SubnetId": "

The ID of the subnet.

", + "Subnet$VpcId": "

The ID of the VPC the subnet is in.

", + "Subnet$CidrBlock": "

The CIDR block assigned to the subnet.

", + "Subnet$AvailabilityZone": "

The Availability Zone of the subnet.

", + "SubnetIdStringList$member": null, + "Tag$Key": "

The key of the tag.

Constraints: Tag keys are case-sensitive and accept a maximum of 127 Unicode characters. May not begin with aws:

", + "Tag$Value": "

The value of the tag.

Constraints: Tag values are case-sensitive and accept a maximum of 255 Unicode characters.

", + "TagDescription$ResourceId": "

The ID of the resource. For example, ami-1a2b3c4d.

", + "TagDescription$Key": "

The tag key.

", + "TagDescription$Value": "

The tag value.

", + "UnassignPrivateIpAddressesRequest$NetworkInterfaceId": "

The ID of the network interface.

", + "UnsuccessfulItem$ResourceId": "

The ID of the resource.

", + "UnsuccessfulItemError$Code": "

The error code.

", + "UnsuccessfulItemError$Message": "

The error message accompanying the error code.

", + "UserBucket$S3Bucket": "

The name of the S3 bucket where the disk image is located.

", + "UserBucket$S3Key": "

The key for the disk image.

", + "UserBucketDetails$S3Bucket": "

The S3 bucket from which the disk image was created.

", + "UserBucketDetails$S3Key": "

The key from which the disk image was created.

", + "UserData$Data": "

The Base64-encoded MIME user data for the instance.

", + "UserGroupStringList$member": null, + "UserIdGroupPair$UserId": "

The ID of an AWS account. EC2-Classic only.

", + "UserIdGroupPair$GroupName": "

The name of the security group. In a request, use this parameter for a security group in EC2-Classic or a default VPC only. For a security group in a nondefault VPC, use GroupId.

", + "UserIdGroupPair$GroupId": "

The ID of the security group.

", + "UserIdStringList$member": null, + "ValueStringList$member": null, + "VgwTelemetry$OutsideIpAddress": "

The Internet-routable IP address of the virtual private gateway's outside interface.

", + "VgwTelemetry$StatusMessage": "

If an error occurs, a description of the error.

", + "Volume$VolumeId": "

The ID of the volume.

", + "Volume$SnapshotId": "

The snapshot from which the volume was created, if applicable.

", + "Volume$AvailabilityZone": "

The Availability Zone for the volume.

", + "Volume$KmsKeyId": "

The full ARN of the AWS Key Management Service (KMS) master key that was used to protect the volume encryption key for the volume.

", + "VolumeAttachment$VolumeId": "

The ID of the volume.

", + "VolumeAttachment$InstanceId": "

The ID of the instance.

", + "VolumeAttachment$Device": "

The device name.

", + "VolumeIdStringList$member": null, + "VolumeStatusAction$Code": "

The code identifying the operation, for example, enable-volume-io.

", + "VolumeStatusAction$Description": "

A description of the operation.

", + "VolumeStatusAction$EventType": "

The event type associated with this operation.

", + "VolumeStatusAction$EventId": "

The ID of the event associated with this operation.

", + "VolumeStatusDetails$Status": "

The intended status of the volume status.

", + "VolumeStatusEvent$EventType": "

The type of this event.

", + "VolumeStatusEvent$Description": "

A description of the event.

", + "VolumeStatusEvent$EventId": "

The ID of this event.

", + "VolumeStatusItem$VolumeId": "

The volume ID.

", + "VolumeStatusItem$AvailabilityZone": "

The Availability Zone of the volume.

", + "Vpc$VpcId": "

The ID of the VPC.

", + "Vpc$CidrBlock": "

The CIDR block for the VPC.

", + "Vpc$DhcpOptionsId": "

The ID of the set of DHCP options you've associated with the VPC (or default if the default options are associated with the VPC).

", + "VpcAttachment$VpcId": "

The ID of the VPC.

", + "VpcClassicLink$VpcId": "

The ID of the VPC.

", + "VpcClassicLinkIdList$member": null, + "VpcEndpoint$VpcEndpointId": "

The ID of the VPC endpoint.

", + "VpcEndpoint$VpcId": "

The ID of the VPC to which the endpoint is associated.

", + "VpcEndpoint$ServiceName": "

The name of the AWS service to which the endpoint is associated.

", + "VpcEndpoint$PolicyDocument": "

The policy document associated with the endpoint.

", + "VpcIdStringList$member": null, + "VpcPeeringConnection$VpcPeeringConnectionId": "

The ID of the VPC peering connection.

", + "VpcPeeringConnectionStateReason$Code": "

The status of the VPC peering connection.

", + "VpcPeeringConnectionStateReason$Message": "

A message that provides more information about the status, if applicable.

", + "VpcPeeringConnectionVpcInfo$CidrBlock": "

The CIDR block for the VPC.

", + "VpcPeeringConnectionVpcInfo$OwnerId": "

The AWS account ID of the VPC owner.

", + "VpcPeeringConnectionVpcInfo$VpcId": "

The ID of the VPC.

", + "VpnConnection$VpnConnectionId": "

The ID of the VPN connection.

", + "VpnConnection$CustomerGatewayConfiguration": "

The configuration information for the VPN connection's customer gateway (in the native XML format). This element is always present in the CreateVpnConnection response; however, it's present in the DescribeVpnConnections response only if the VPN connection is in the pending or available state.

", + "VpnConnection$CustomerGatewayId": "

The ID of the customer gateway at your end of the VPN connection.

", + "VpnConnection$VpnGatewayId": "

The ID of the virtual private gateway at the AWS side of the VPN connection.

", + "VpnConnectionIdStringList$member": null, + "VpnGateway$VpnGatewayId": "

The ID of the virtual private gateway.

", + "VpnGateway$AvailabilityZone": "

The Availability Zone where the virtual private gateway was created.

", + "VpnGatewayIdStringList$member": null, + "VpnStaticRoute$DestinationCidrBlock": "

The CIDR block associated with the local subnet of the customer data center.

", + "ZoneNameStringList$member": null, + "NewDhcpConfiguration$Key": null, + "RequestSpotLaunchSpecification$ImageId": "

The ID of the AMI.

", + "RequestSpotLaunchSpecification$KeyName": "

The name of the key pair.

", + "RequestSpotLaunchSpecification$UserData": "

The Base64-encoded MIME user data to make available to the instances.

", + "RequestSpotLaunchSpecification$AddressingType": "

Deprecated.

", + "RequestSpotLaunchSpecification$KernelId": "

The ID of the kernel.

", + "RequestSpotLaunchSpecification$RamdiskId": "

The ID of the RAM disk.

", + "RequestSpotLaunchSpecification$SubnetId": "

The ID of the subnet in which to launch the instance.

" + } + }, + "Subnet": { + "base": "

Describes a subnet.

", + "refs": { + "CreateSubnetResult$Subnet": "

Information about the subnet.

", + "SubnetList$member": null + } + }, + "SubnetIdStringList": { + "base": null, + "refs": { + "DescribeSubnetsRequest$SubnetIds": "

One or more subnet IDs.

Default: Describes all your subnets.

" + } + }, + "SubnetList": { + "base": null, + "refs": { + "DescribeSubnetsResult$Subnets": "

Information about one or more subnets.

" + } + }, + "SubnetState": { + "base": null, + "refs": { + "Subnet$State": "

The current state of the subnet.

" + } + }, + "SummaryStatus": { + "base": null, + "refs": { + "InstanceStatusSummary$Status": "

The status.

" + } + }, + "Tag": { + "base": "

Describes a tag.

", + "refs": { + "TagList$member": null + } + }, + "TagDescription": { + "base": "

Describes a tag.

", + "refs": { + "TagDescriptionList$member": null + } + }, + "TagDescriptionList": { + "base": null, + "refs": { + "DescribeTagsResult$Tags": "

A list of tags.

" + } + }, + "TagList": { + "base": null, + "refs": { + "ClassicLinkInstance$Tags": "

Any tags assigned to the instance.

", + "ConversionTask$Tags": "

Any tags assigned to the task.

", + "CreateTagsRequest$Tags": "

One or more tags. The value parameter is required, but if you don't want the tag to have a value, specify the parameter with no value, and we set the value to an empty string.

", + "CustomerGateway$Tags": "

Any tags assigned to the customer gateway.

", + "DeleteTagsRequest$Tags": "

One or more tags to delete. If you omit the value parameter, we delete the tag regardless of its value. If you specify this parameter with an empty string as the value, we delete the key only if its value is an empty string.

", + "DhcpOptions$Tags": "

Any tags assigned to the DHCP options set.

", + "Image$Tags": "

Any tags assigned to the image.

", + "Instance$Tags": "

Any tags assigned to the instance.

", + "InternetGateway$Tags": "

Any tags assigned to the Internet gateway.

", + "NetworkAcl$Tags": "

Any tags assigned to the network ACL.

", + "NetworkInterface$TagSet": "

Any tags assigned to the network interface.

", + "ReservedInstances$Tags": "

Any tags assigned to the resource.

", + "ReservedInstancesListing$Tags": "

Any tags assigned to the resource.

", + "RouteTable$Tags": "

Any tags assigned to the route table.

", + "SecurityGroup$Tags": "

Any tags assigned to the security group.

", + "Snapshot$Tags": "

Any tags assigned to the snapshot.

", + "SpotInstanceRequest$Tags": "

Any tags assigned to the resource.

", + "Subnet$Tags": "

Any tags assigned to the subnet.

", + "Volume$Tags": "

Any tags assigned to the volume.

", + "Vpc$Tags": "

Any tags assigned to the VPC.

", + "VpcClassicLink$Tags": "

Any tags assigned to the VPC.

", + "VpcPeeringConnection$Tags": "

Any tags assigned to the resource.

", + "VpnConnection$Tags": "

Any tags assigned to the VPN connection.

", + "VpnGateway$Tags": "

Any tags assigned to the virtual private gateway.

" + } + }, + "TelemetryStatus": { + "base": null, + "refs": { + "VgwTelemetry$Status": "

The status of the VPN tunnel.

" + } + }, + "Tenancy": { + "base": null, + "refs": { + "CreateVpcRequest$InstanceTenancy": "

The supported tenancy options for instances launched into the VPC. A value of default means that instances can be launched with any tenancy; a value of dedicated means all instances launched into the VPC are launched as dedicated tenancy instances regardless of the tenancy assigned to the instance at launch. Dedicated tenancy instances run on single-tenant hardware.

Default: default

", + "DescribeReservedInstancesOfferingsRequest$InstanceTenancy": "

The tenancy of the Reserved Instance offering. A Reserved Instance with dedicated tenancy runs on single-tenant hardware and can only be launched within a VPC.

Default: default

", + "Placement$Tenancy": "

The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware.

", + "ReservedInstances$InstanceTenancy": "

The tenancy of the reserved instance.

", + "ReservedInstancesOffering$InstanceTenancy": "

The tenancy of the reserved instance.

", + "Vpc$InstanceTenancy": "

The allowed tenancy of instances launched into the VPC.

" + } + }, + "TerminateInstancesRequest": { + "base": null, + "refs": { + } + }, + "TerminateInstancesResult": { + "base": null, + "refs": { + } + }, + "TrafficType": { + "base": null, + "refs": { + "CreateFlowLogsRequest$TrafficType": "

The type of traffic to log.

", + "FlowLog$TrafficType": "

The type of traffic captured for the flow log.

" + } + }, + "UnassignPrivateIpAddressesRequest": { + "base": null, + "refs": { + } + }, + "UnmonitorInstancesRequest": { + "base": null, + "refs": { + } + }, + "UnmonitorInstancesResult": { + "base": null, + "refs": { + } + }, + "UnsuccessfulItem": { + "base": "

Information about items that were not successfully processed in a batch call.

", + "refs": { + "UnsuccessfulItemSet$member": null + } + }, + "UnsuccessfulItemError": { + "base": "

Information about the error that occured. For more information about errors, see Error Codes.

", + "refs": { + "UnsuccessfulItem$Error": "

Information about the error.

" + } + }, + "UnsuccessfulItemSet": { + "base": null, + "refs": { + "CreateFlowLogsResult$Unsuccessful": "

Information about the flow logs that could not be created successfully.

", + "DeleteFlowLogsResult$Unsuccessful": "

Information about the flow logs that could not be deleted successfully.

", + "DeleteVpcEndpointsResult$Unsuccessful": "

Information about the endpoints that were not successfully deleted.

" + } + }, + "UserBucket": { + "base": "

Describes the S3 bucket for the disk image.

", + "refs": { + "ImageDiskContainer$UserBucket": "

The S3 bucket for the disk image.

", + "SnapshotDiskContainer$UserBucket": null + } + }, + "UserBucketDetails": { + "base": "

Describes the S3 bucket for the disk image.

", + "refs": { + "SnapshotDetail$UserBucket": null, + "SnapshotTaskDetail$UserBucket": "

The S3 bucket for the disk image.

" + } + }, + "UserData": { + "base": "

Describes the user data to be made available to an instance.

", + "refs": { + "ImportInstanceLaunchSpecification$UserData": "

The Base64-encoded MIME user data to be made available to the instance.

" + } + }, + "UserGroupStringList": { + "base": null, + "refs": { + "ModifyImageAttributeRequest$UserGroups": "

One or more user groups. This is only valid when modifying the launchPermission attribute.

" + } + }, + "UserIdGroupPair": { + "base": "

Describes a security group and AWS account ID pair.

", + "refs": { + "UserIdGroupPairList$member": null + } + }, + "UserIdGroupPairList": { + "base": null, + "refs": { + "IpPermission$UserIdGroupPairs": "

One or more security group and AWS account ID pairs.

" + } + }, + "UserIdStringList": { + "base": null, + "refs": { + "ModifyImageAttributeRequest$UserIds": "

One or more AWS account IDs. This is only valid when modifying the launchPermission attribute.

", + "ModifySnapshotAttributeRequest$UserIds": "

The account ID to modify for the snapshot.

" + } + }, + "ValueStringList": { + "base": null, + "refs": { + "CancelSpotFleetRequestsRequest$SpotFleetRequestIds": "

The IDs of the Spot fleet requests.

", + "CreateFlowLogsRequest$ResourceIds": "

One or more subnet, network interface, or VPC IDs.

", + "CreateFlowLogsResult$FlowLogIds": "

The IDs of the flow logs.

", + "CreateVpcEndpointRequest$RouteTableIds": "

One or more route table IDs.

", + "DeleteFlowLogsRequest$FlowLogIds": "

One or more flow log IDs.

", + "DeleteVpcEndpointsRequest$VpcEndpointIds": "

One or more endpoint IDs.

", + "DescribeFlowLogsRequest$FlowLogIds": "

One or more flow log IDs.

", + "DescribeInternetGatewaysRequest$InternetGatewayIds": "

One or more Internet gateway IDs.

Default: Describes all your Internet gateways.

", + "DescribeMovingAddressesRequest$PublicIps": "

One or more Elastic IP addresses.

", + "DescribeNetworkAclsRequest$NetworkAclIds": "

One or more network ACL IDs.

Default: Describes all your network ACLs.

", + "DescribePrefixListsRequest$PrefixListIds": "

One or more prefix list IDs.

", + "DescribeRouteTablesRequest$RouteTableIds": "

One or more route table IDs.

Default: Describes all your route tables.

", + "DescribeSpotFleetRequestsRequest$SpotFleetRequestIds": "

The IDs of the Spot fleet requests.

", + "DescribeVpcEndpointServicesResult$ServiceNames": "

A list of supported AWS services.

", + "DescribeVpcEndpointsRequest$VpcEndpointIds": "

One or more endpoint IDs.

", + "DescribeVpcPeeringConnectionsRequest$VpcPeeringConnectionIds": "

One or more VPC peering connection IDs.

Default: Describes all your VPC peering connections.

", + "Filter$Values": "

One or more filter values. Filter values are case-sensitive.

", + "ModifyVpcEndpointRequest$AddRouteTableIds": "

One or more route tables IDs to associate with the endpoint.

", + "ModifyVpcEndpointRequest$RemoveRouteTableIds": "

One or more route table IDs to disassociate from the endpoint.

", + "PrefixList$Cidrs": "

The IP address range of the AWS service.

", + "VpcEndpoint$RouteTableIds": "

One or more route tables associated with the endpoint.

", + "NewDhcpConfiguration$Values": null, + "RequestSpotLaunchSpecification$SecurityGroups": null, + "RequestSpotLaunchSpecification$SecurityGroupIds": null + } + }, + "VgwTelemetry": { + "base": "

Describes telemetry for a VPN tunnel.

", + "refs": { + "VgwTelemetryList$member": null + } + }, + "VgwTelemetryList": { + "base": null, + "refs": { + "VpnConnection$VgwTelemetry": "

Information about the VPN tunnel.

" + } + }, + "VirtualizationType": { + "base": null, + "refs": { + "Image$VirtualizationType": "

The type of virtualization of the AMI.

", + "Instance$VirtualizationType": "

The virtualization type of the instance.

" + } + }, + "Volume": { + "base": "

Describes a volume.

", + "refs": { + "VolumeList$member": null + } + }, + "VolumeAttachment": { + "base": "

Describes volume attachment details.

", + "refs": { + "VolumeAttachmentList$member": null + } + }, + "VolumeAttachmentList": { + "base": null, + "refs": { + "Volume$Attachments": "

Information about the volume attachments.

" + } + }, + "VolumeAttachmentState": { + "base": null, + "refs": { + "VolumeAttachment$State": "

The attachment state of the volume.

" + } + }, + "VolumeAttributeName": { + "base": null, + "refs": { + "DescribeVolumeAttributeRequest$Attribute": "

The instance attribute.

" + } + }, + "VolumeDetail": { + "base": "

Describes an EBS volume.

", + "refs": { + "DiskImage$Volume": "

Information about the volume.

", + "ImportVolumeRequest$Volume": "

The volume size.

" + } + }, + "VolumeIdStringList": { + "base": null, + "refs": { + "DescribeVolumeStatusRequest$VolumeIds": "

One or more volume IDs.

Default: Describes all your volumes.

", + "DescribeVolumesRequest$VolumeIds": "

One or more volume IDs.

" + } + }, + "VolumeList": { + "base": null, + "refs": { + "DescribeVolumesResult$Volumes": "

Information about the volumes.

" + } + }, + "VolumeState": { + "base": null, + "refs": { + "Volume$State": "

The volume state.

" + } + }, + "VolumeStatusAction": { + "base": "

Describes a volume status operation code.

", + "refs": { + "VolumeStatusActionsList$member": null + } + }, + "VolumeStatusActionsList": { + "base": null, + "refs": { + "VolumeStatusItem$Actions": "

The details of the operation.

" + } + }, + "VolumeStatusDetails": { + "base": "

Describes a volume status.

", + "refs": { + "VolumeStatusDetailsList$member": null + } + }, + "VolumeStatusDetailsList": { + "base": null, + "refs": { + "VolumeStatusInfo$Details": "

The details of the volume status.

" + } + }, + "VolumeStatusEvent": { + "base": "

Describes a volume status event.

", + "refs": { + "VolumeStatusEventsList$member": null + } + }, + "VolumeStatusEventsList": { + "base": null, + "refs": { + "VolumeStatusItem$Events": "

A list of events associated with the volume.

" + } + }, + "VolumeStatusInfo": { + "base": "

Describes the status of a volume.

", + "refs": { + "VolumeStatusItem$VolumeStatus": "

The volume status.

" + } + }, + "VolumeStatusInfoStatus": { + "base": null, + "refs": { + "VolumeStatusInfo$Status": "

The status of the volume.

" + } + }, + "VolumeStatusItem": { + "base": "

Describes the volume status.

", + "refs": { + "VolumeStatusList$member": null + } + }, + "VolumeStatusList": { + "base": null, + "refs": { + "DescribeVolumeStatusResult$VolumeStatuses": "

A list of volumes.

" + } + }, + "VolumeStatusName": { + "base": null, + "refs": { + "VolumeStatusDetails$Name": "

The name of the volume status.

" + } + }, + "VolumeType": { + "base": null, + "refs": { + "CreateVolumeRequest$VolumeType": "

The volume type. This can be gp2 for General Purpose (SSD) volumes, io1 for Provisioned IOPS (SSD) volumes, or standard for Magnetic volumes.

Default: standard

", + "EbsBlockDevice$VolumeType": "

The volume type. gp2 for General Purpose (SSD) volumes, io1 for Provisioned IOPS (SSD) volumes, and standard for Magnetic volumes.

Default: standard

", + "Volume$VolumeType": "

The volume type. This can be gp2 for General Purpose (SSD) volumes, io1 for Provisioned IOPS (SSD) volumes, or standard for Magnetic volumes.

" + } + }, + "Vpc": { + "base": "

Describes a VPC.

", + "refs": { + "CreateVpcResult$Vpc": "

Information about the VPC.

", + "VpcList$member": null + } + }, + "VpcAttachment": { + "base": "

Describes an attachment between a virtual private gateway and a VPC.

", + "refs": { + "AttachVpnGatewayResult$VpcAttachment": "

Information about the attachment.

", + "VpcAttachmentList$member": null + } + }, + "VpcAttachmentList": { + "base": null, + "refs": { + "VpnGateway$VpcAttachments": "

Any VPCs attached to the virtual private gateway.

" + } + }, + "VpcAttributeName": { + "base": null, + "refs": { + "DescribeVpcAttributeRequest$Attribute": "

The VPC attribute.

" + } + }, + "VpcClassicLink": { + "base": "

Describes whether a VPC is enabled for ClassicLink.

", + "refs": { + "VpcClassicLinkList$member": null + } + }, + "VpcClassicLinkIdList": { + "base": null, + "refs": { + "DescribeVpcClassicLinkRequest$VpcIds": "

One or more VPCs for which you want to describe the ClassicLink status.

" + } + }, + "VpcClassicLinkList": { + "base": null, + "refs": { + "DescribeVpcClassicLinkResult$Vpcs": "

The ClassicLink status of one or more VPCs.

" + } + }, + "VpcEndpoint": { + "base": "

Describes a VPC endpoint.

", + "refs": { + "CreateVpcEndpointResult$VpcEndpoint": "

Information about the endpoint.

", + "VpcEndpointSet$member": null + } + }, + "VpcEndpointSet": { + "base": null, + "refs": { + "DescribeVpcEndpointsResult$VpcEndpoints": "

Information about the endpoints.

" + } + }, + "VpcIdStringList": { + "base": null, + "refs": { + "DescribeVpcsRequest$VpcIds": "

One or more VPC IDs.

Default: Describes all your VPCs.

" + } + }, + "VpcList": { + "base": null, + "refs": { + "DescribeVpcsResult$Vpcs": "

Information about one or more VPCs.

" + } + }, + "VpcPeeringConnection": { + "base": "

Describes a VPC peering connection.

", + "refs": { + "AcceptVpcPeeringConnectionResult$VpcPeeringConnection": "

Information about the VPC peering connection.

", + "CreateVpcPeeringConnectionResult$VpcPeeringConnection": "

Information about the VPC peering connection.

", + "VpcPeeringConnectionList$member": null + } + }, + "VpcPeeringConnectionList": { + "base": null, + "refs": { + "DescribeVpcPeeringConnectionsResult$VpcPeeringConnections": "

Information about the VPC peering connections.

" + } + }, + "VpcPeeringConnectionStateReason": { + "base": "

Describes the status of a VPC peering connection.

", + "refs": { + "VpcPeeringConnection$Status": "

The status of the VPC peering connection.

" + } + }, + "VpcPeeringConnectionVpcInfo": { + "base": "

Describes a VPC in a VPC peering connection.

", + "refs": { + "VpcPeeringConnection$AccepterVpcInfo": "

The information of the peer VPC.

", + "VpcPeeringConnection$RequesterVpcInfo": "

The information of the requester VPC.

" + } + }, + "VpcState": { + "base": null, + "refs": { + "Vpc$State": "

The current state of the VPC.

" + } + }, + "VpnConnection": { + "base": "

Describes a VPN connection.

", + "refs": { + "CreateVpnConnectionResult$VpnConnection": "

Information about the VPN connection.

", + "VpnConnectionList$member": null + } + }, + "VpnConnectionIdStringList": { + "base": null, + "refs": { + "DescribeVpnConnectionsRequest$VpnConnectionIds": "

One or more VPN connection IDs.

Default: Describes your VPN connections.

" + } + }, + "VpnConnectionList": { + "base": null, + "refs": { + "DescribeVpnConnectionsResult$VpnConnections": "

Information about one or more VPN connections.

" + } + }, + "VpnConnectionOptions": { + "base": "

Describes VPN connection options.

", + "refs": { + "VpnConnection$Options": "

The VPN connection options.

" + } + }, + "VpnConnectionOptionsSpecification": { + "base": "

Describes VPN connection options.

", + "refs": { + "CreateVpnConnectionRequest$Options": "

Indicates whether the VPN connection requires static routes. If you are creating a VPN connection for a device that does not support BGP, you must specify true.

Default: false

" + } + }, + "VpnGateway": { + "base": "

Describes a virtual private gateway.

", + "refs": { + "CreateVpnGatewayResult$VpnGateway": "

Information about the virtual private gateway.

", + "VpnGatewayList$member": null + } + }, + "VpnGatewayIdStringList": { + "base": null, + "refs": { + "DescribeVpnGatewaysRequest$VpnGatewayIds": "

One or more virtual private gateway IDs.

Default: Describes all your virtual private gateways.

" + } + }, + "VpnGatewayList": { + "base": null, + "refs": { + "DescribeVpnGatewaysResult$VpnGateways": "

Information about one or more virtual private gateways.

" + } + }, + "VpnState": { + "base": null, + "refs": { + "VpnConnection$State": "

The current state of the VPN connection.

", + "VpnGateway$State": "

The current state of the virtual private gateway.

", + "VpnStaticRoute$State": "

The current state of the static route.

" + } + }, + "VpnStaticRoute": { + "base": "

Describes a static route for a VPN connection.

", + "refs": { + "VpnStaticRouteList$member": null + } + }, + "VpnStaticRouteList": { + "base": null, + "refs": { + "VpnConnection$Routes": "

The static routes associated with the VPN connection.

" + } + }, + "VpnStaticRouteSource": { + "base": null, + "refs": { + "VpnStaticRoute$Source": "

Indicates how the routes were provided.

" + } + }, + "ZoneNameStringList": { + "base": null, + "refs": { + "DescribeAvailabilityZonesRequest$ZoneNames": "

The names of one or more Availability Zones.

" + } + }, + "NewDhcpConfigurationList": { + "base": null, + "refs": { + "CreateDhcpOptionsRequest$DhcpConfigurations": "

A DHCP configuration option.

" + } + }, + "NewDhcpConfiguration": { + "base": null, + "refs": { + "NewDhcpConfigurationList$member": null + } + }, + "DhcpConfigurationValueList": { + "base": null, + "refs": { + "DhcpConfiguration$Values": "

One or more values for the DHCP option.

" + } + }, + "Blob": { + "base": null, + "refs": { + "ImportKeyPairRequest$PublicKeyMaterial": "

The public key. You must base64 encode the public key material before sending it to AWS.

", + "S3Storage$UploadPolicy": "

A Base64-encoded Amazon S3 upload policy that gives Amazon EC2 permission to upload items into Amazon S3 on your behalf.

", + "BlobAttributeValue$Value": null + } + }, + "BlobAttributeValue": { + "base": null, + "refs": { + "ModifyInstanceAttributeRequest$UserData": "

Changes the instance's user data to the specified value.

" + } + }, + "RequestSpotLaunchSpecification": { + "base": "

Describes the launch specification for an instance.

", + "refs": { + "RequestSpotInstancesRequest$LaunchSpecification": null + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/ec2/2015-04-15/paginators-1.json b/lib/aws-sdk/Aws/data/ec2/2015-04-15/paginators-1.json new file mode 100644 index 0000000..740f2e3 --- /dev/null +++ b/lib/aws-sdk/Aws/data/ec2/2015-04-15/paginators-1.json @@ -0,0 +1,125 @@ +{ + "pagination": { + "DescribeAccountAttributes": { + "result_key": "AccountAttributes" + }, + "DescribeAddresses": { + "result_key": "Addresses" + }, + "DescribeAvailabilityZones": { + "result_key": "AvailabilityZones" + }, + "DescribeBundleTasks": { + "result_key": "BundleTasks" + }, + "DescribeConversionTasks": { + "result_key": "ConversionTasks" + }, + "DescribeCustomerGateways": { + "result_key": "CustomerGateways" + }, + "DescribeDhcpOptions": { + "result_key": "DhcpOptions" + }, + "DescribeExportTasks": { + "result_key": "ExportTasks" + }, + "DescribeImages": { + "result_key": "Images" + }, + "DescribeInstanceStatus": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "InstanceStatuses" + }, + "DescribeInstances": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Reservations" + }, + "DescribeInternetGateways": { + "result_key": "InternetGateways" + }, + "DescribeKeyPairs": { + "result_key": "KeyPairs" + }, + "DescribeNetworkAcls": { + "result_key": "NetworkAcls" + }, + "DescribeNetworkInterfaces": { + "result_key": "NetworkInterfaces" + }, + "DescribePlacementGroups": { + "result_key": "PlacementGroups" + }, + "DescribeRegions": { + "result_key": "Regions" + }, + "DescribeReservedInstances": { + "result_key": "ReservedInstances" + }, + "DescribeReservedInstancesListings": { + "result_key": "ReservedInstancesListings" + }, + "DescribeReservedInstancesOfferings": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "ReservedInstancesOfferings" + }, + "DescribeReservedInstancesModifications": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "ReservedInstancesModifications" + }, + "DescribeRouteTables": { + "result_key": "RouteTables" + }, + "DescribeSecurityGroups": { + "result_key": "SecurityGroups" + }, + "DescribeSnapshots": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Snapshots" + }, + "DescribeSpotInstanceRequests": { + "result_key": "SpotInstanceRequests" + }, + "DescribeSpotPriceHistory": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "SpotPriceHistory" + }, + "DescribeSubnets": { + "result_key": "Subnets" + }, + "DescribeTags": { + "result_key": "Tags" + }, + "DescribeVolumeStatus": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "VolumeStatuses" + }, + "DescribeVolumes": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Volumes" + }, + "DescribeVpcs": { + "result_key": "Vpcs" + }, + "DescribeVpnConnections": { + "result_key": "VpnConnections" + }, + "DescribeVpnGateways": { + "result_key": "VpnGateways" + } + } +} diff --git a/lib/aws-sdk/Aws/data/ec2/2015-04-15/waiters-2.json b/lib/aws-sdk/Aws/data/ec2/2015-04-15/waiters-2.json new file mode 100644 index 0000000..0599f24 --- /dev/null +++ b/lib/aws-sdk/Aws/data/ec2/2015-04-15/waiters-2.json @@ -0,0 +1,494 @@ +{ + "version": 2, + "waiters": { + "InstanceExists": { + "delay": 5, + "maxAttempts": 40, + "operation": "DescribeInstances", + "acceptors": [ + { + "matcher": "status", + "expected": 200, + "state": "success" + }, + { + "matcher": "error", + "expected": "InvalidInstanceIDNotFound", + "state": "retry" + } + ] + }, + "BundleTaskComplete": { + "delay": 15, + "operation": "DescribeBundleTasks", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "complete", + "matcher": "pathAll", + "state": "success", + "argument": "BundleTasks[].State" + }, + { + "expected": "failed", + "matcher": "pathAny", + "state": "failure", + "argument": "BundleTasks[].State" + } + ] + }, + "ConversionTaskCancelled": { + "delay": 15, + "operation": "DescribeConversionTasks", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "cancelled", + "matcher": "pathAll", + "state": "success", + "argument": "ConversionTasks[].State" + } + ] + }, + "ConversionTaskCompleted": { + "delay": 15, + "operation": "DescribeConversionTasks", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "completed", + "matcher": "pathAll", + "state": "success", + "argument": "ConversionTasks[].State" + }, + { + "expected": "cancelled", + "matcher": "pathAny", + "state": "failure", + "argument": "ConversionTasks[].State" + }, + { + "expected": "cancelling", + "matcher": "pathAny", + "state": "failure", + "argument": "ConversionTasks[].State" + } + ] + }, + "ConversionTaskDeleted": { + "delay": 15, + "operation": "DescribeConversionTasks", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "deleted", + "matcher": "pathAll", + "state": "success", + "argument": "ConversionTasks[].State" + } + ] + }, + "CustomerGatewayAvailable": { + "delay": 15, + "operation": "DescribeCustomerGateways", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "CustomerGateways[].State" + }, + { + "expected": "deleted", + "matcher": "pathAny", + "state": "failure", + "argument": "CustomerGateways[].State" + }, + { + "expected": "deleting", + "matcher": "pathAny", + "state": "failure", + "argument": "CustomerGateways[].State" + } + ] + }, + "ExportTaskCancelled": { + "delay": 15, + "operation": "DescribeExportTasks", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "cancelled", + "matcher": "pathAll", + "state": "success", + "argument": "ExportTasks[].State" + } + ] + }, + "ExportTaskCompleted": { + "delay": 15, + "operation": "DescribeExportTasks", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "completed", + "matcher": "pathAll", + "state": "success", + "argument": "ExportTasks[].State" + } + ] + }, + "ImageAvailable": { + "operation": "DescribeImages", + "maxAttempts": 40, + "delay": 15, + "acceptors": [ + { + "state": "success", + "matcher": "pathAll", + "argument": "Images[].State", + "expected": "available" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "Images[].State", + "expected": "failed" + } + ] + }, + "InstanceRunning": { + "delay": 15, + "operation": "DescribeInstances", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "running", + "matcher": "pathAll", + "state": "success", + "argument": "Reservations[].Instances[].State.Name" + }, + { + "expected": "shutting-down", + "matcher": "pathAny", + "state": "failure", + "argument": "Reservations[].Instances[].State.Name" + }, + { + "expected": "terminated", + "matcher": "pathAny", + "state": "failure", + "argument": "Reservations[].Instances[].State.Name" + }, + { + "expected": "stopping", + "matcher": "pathAny", + "state": "failure", + "argument": "Reservations[].Instances[].State.Name" + } + ] + }, + "InstanceStatusOk": { + "operation": "DescribeInstanceStatus", + "maxAttempts": 40, + "delay": 15, + "acceptors": [ + { + "state": "success", + "matcher": "pathAll", + "argument": "InstanceStatuses[].InstanceStatus.Status", + "expected": "ok" + } + ] + }, + "InstanceStopped": { + "delay": 15, + "operation": "DescribeInstances", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "stopped", + "matcher": "pathAll", + "state": "success", + "argument": "Reservations[].Instances[].State.Name" + }, + { + "expected": "pending", + "matcher": "pathAny", + "state": "failure", + "argument": "Reservations[].Instances[].State.Name" + }, + { + "expected": "terminated", + "matcher": "pathAny", + "state": "failure", + "argument": "Reservations[].Instances[].State.Name" + } + ] + }, + "InstanceTerminated": { + "delay": 15, + "operation": "DescribeInstances", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "terminated", + "matcher": "pathAll", + "state": "success", + "argument": "Reservations[].Instances[].State.Name" + }, + { + "expected": "pending", + "matcher": "pathAny", + "state": "failure", + "argument": "Reservations[].Instances[].State.Name" + }, + { + "expected": "stopping", + "matcher": "pathAny", + "state": "failure", + "argument": "Reservations[].Instances[].State.Name" + } + ] + }, + "KeyPairExists": { + "operation": "DescribeKeyPairs", + "delay": 5, + "maxAttempts": 6, + "acceptors": [ + { + "expected": true, + "matcher": "pathAll", + "state": "success", + "argument": "length(KeyPairs[].KeyName) > `0`" + }, + { + "expected": "InvalidKeyPairNotFound", + "matcher": "error", + "state": "retry" + } + ] + }, + "NetworkInterfaceAvailable": { + "operation": "DescribeNetworkInterfaces", + "delay": 20, + "maxAttempts": 10, + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "NetworkInterfaces[].Status" + }, + { + "expected": "InvalidNetworkInterfaceIDNotFound", + "matcher": "error", + "state": "failure" + } + ] + }, + "PasswordDataAvailable": { + "operation": "GetPasswordData", + "maxAttempts": 40, + "delay": 15, + "acceptors": [ + { + "state": "success", + "matcher": "path", + "argument": "length(PasswordData) > `0`", + "expected": true + } + ] + }, + "SnapshotCompleted": { + "delay": 15, + "operation": "DescribeSnapshots", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "completed", + "matcher": "pathAll", + "state": "success", + "argument": "Snapshots[].State" + } + ] + }, + "SpotInstanceRequestFulfilled": { + "operation": "DescribeSpotInstanceRequests", + "maxAttempts": 40, + "delay": 15, + "acceptors": [ + { + "state": "success", + "matcher": "pathAll", + "argument": "SpotInstanceRequests[].Status.Code", + "expected": "fulfilled" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "SpotInstanceRequests[].Status.Code", + "expected": "schedule-expired" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "SpotInstanceRequests[].Status.Code", + "expected": "canceled-before-fulfillment" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "SpotInstanceRequests[].Status.Code", + "expected": "bad-parameters" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "SpotInstanceRequests[].Status.Code", + "expected": "system-error" + } + ] + }, + "SubnetAvailable": { + "delay": 15, + "operation": "DescribeSubnets", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "Subnets[].State" + } + ] + }, + "SystemStatusOk": { + "operation": "DescribeInstanceStatus", + "maxAttempts": 40, + "delay": 15, + "acceptors": [ + { + "state": "success", + "matcher": "pathAll", + "argument": "InstanceStatuses[].SystemStatus.Status", + "expected": "ok" + } + ] + }, + "VolumeAvailable": { + "delay": 15, + "operation": "DescribeVolumes", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "Volumes[].State" + }, + { + "expected": "deleted", + "matcher": "pathAny", + "state": "failure", + "argument": "Volumes[].State" + } + ] + }, + "VolumeDeleted": { + "delay": 15, + "operation": "DescribeVolumes", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "deleted", + "matcher": "pathAll", + "state": "success", + "argument": "Volumes[].State" + }, + { + "matcher": "error", + "expected": "InvalidVolumeNotFound", + "state": "success" + } + ] + }, + "VolumeInUse": { + "delay": 15, + "operation": "DescribeVolumes", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "in-use", + "matcher": "pathAll", + "state": "success", + "argument": "Volumes[].State" + }, + { + "expected": "deleted", + "matcher": "pathAny", + "state": "failure", + "argument": "Volumes[].State" + } + ] + }, + "VpcAvailable": { + "delay": 15, + "operation": "DescribeVpcs", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "Vpcs[].State" + } + ] + }, + "VpnConnectionAvailable": { + "delay": 15, + "operation": "DescribeVpnConnections", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "VpnConnections[].State" + }, + { + "expected": "deleting", + "matcher": "pathAny", + "state": "failure", + "argument": "VpnConnections[].State" + }, + { + "expected": "deleted", + "matcher": "pathAny", + "state": "failure", + "argument": "VpnConnections[].State" + } + ] + }, + "VpnConnectionDeleted": { + "delay": 15, + "operation": "DescribeVpnConnections", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "deleted", + "matcher": "pathAll", + "state": "success", + "argument": "VpnConnections[].State" + }, + { + "expected": "pending", + "matcher": "pathAny", + "state": "failure", + "argument": "VpnConnections[].State" + } + ] + } + } +} diff --git a/lib/aws-sdk/Aws/data/ecs/2014-11-13/api-2.json b/lib/aws-sdk/Aws/data/ecs/2014-11-13/api-2.json new file mode 100644 index 0000000..b84a3d7 --- /dev/null +++ b/lib/aws-sdk/Aws/data/ecs/2014-11-13/api-2.json @@ -0,0 +1,1562 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2014-11-13", + "endpointPrefix":"ecs", + "jsonVersion":"1.1", + "serviceAbbreviation":"Amazon ECS", + "serviceFullName":"Amazon EC2 Container Service", + "signatureVersion":"v4", + "targetPrefix":"AmazonEC2ContainerServiceV20141113", + "protocol":"json" + }, + "operations":{ + "CreateCluster":{ + "name":"CreateCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateClusterRequest"}, + "output":{"shape":"CreateClusterResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + } + ] + }, + "CreateService":{ + "name":"CreateService", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateServiceRequest"}, + "output":{"shape":"CreateServiceResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ClusterNotFoundException", + "exception":true + } + ] + }, + "DeleteCluster":{ + "name":"DeleteCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteClusterRequest"}, + "output":{"shape":"DeleteClusterResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ClusterNotFoundException", + "exception":true + }, + { + "shape":"ClusterContainsContainerInstancesException", + "exception":true + }, + { + "shape":"ClusterContainsServicesException", + "exception":true + } + ] + }, + "DeleteService":{ + "name":"DeleteService", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteServiceRequest"}, + "output":{"shape":"DeleteServiceResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ClusterNotFoundException", + "exception":true + }, + { + "shape":"ServiceNotFoundException", + "exception":true + } + ] + }, + "DeregisterContainerInstance":{ + "name":"DeregisterContainerInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeregisterContainerInstanceRequest"}, + "output":{"shape":"DeregisterContainerInstanceResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ClusterNotFoundException", + "exception":true + } + ] + }, + "DeregisterTaskDefinition":{ + "name":"DeregisterTaskDefinition", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeregisterTaskDefinitionRequest"}, + "output":{"shape":"DeregisterTaskDefinitionResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + } + ] + }, + "DescribeClusters":{ + "name":"DescribeClusters", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeClustersRequest"}, + "output":{"shape":"DescribeClustersResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + } + ] + }, + "DescribeContainerInstances":{ + "name":"DescribeContainerInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeContainerInstancesRequest"}, + "output":{"shape":"DescribeContainerInstancesResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ClusterNotFoundException", + "exception":true + } + ] + }, + "DescribeServices":{ + "name":"DescribeServices", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeServicesRequest"}, + "output":{"shape":"DescribeServicesResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ClusterNotFoundException", + "exception":true + } + ] + }, + "DescribeTaskDefinition":{ + "name":"DescribeTaskDefinition", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTaskDefinitionRequest"}, + "output":{"shape":"DescribeTaskDefinitionResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + } + ] + }, + "DescribeTasks":{ + "name":"DescribeTasks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTasksRequest"}, + "output":{"shape":"DescribeTasksResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ClusterNotFoundException", + "exception":true + } + ] + }, + "DiscoverPollEndpoint":{ + "name":"DiscoverPollEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DiscoverPollEndpointRequest"}, + "output":{"shape":"DiscoverPollEndpointResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + } + ] + }, + "ListClusters":{ + "name":"ListClusters", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListClustersRequest"}, + "output":{"shape":"ListClustersResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + } + ] + }, + "ListContainerInstances":{ + "name":"ListContainerInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListContainerInstancesRequest"}, + "output":{"shape":"ListContainerInstancesResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ClusterNotFoundException", + "exception":true + } + ] + }, + "ListServices":{ + "name":"ListServices", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListServicesRequest"}, + "output":{"shape":"ListServicesResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ClusterNotFoundException", + "exception":true + } + ] + }, + "ListTaskDefinitionFamilies":{ + "name":"ListTaskDefinitionFamilies", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTaskDefinitionFamiliesRequest"}, + "output":{"shape":"ListTaskDefinitionFamiliesResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + } + ] + }, + "ListTaskDefinitions":{ + "name":"ListTaskDefinitions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTaskDefinitionsRequest"}, + "output":{"shape":"ListTaskDefinitionsResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + } + ] + }, + "ListTasks":{ + "name":"ListTasks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTasksRequest"}, + "output":{"shape":"ListTasksResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ClusterNotFoundException", + "exception":true + } + ] + }, + "RegisterContainerInstance":{ + "name":"RegisterContainerInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RegisterContainerInstanceRequest"}, + "output":{"shape":"RegisterContainerInstanceResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + } + ] + }, + "RegisterTaskDefinition":{ + "name":"RegisterTaskDefinition", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RegisterTaskDefinitionRequest"}, + "output":{"shape":"RegisterTaskDefinitionResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + } + ] + }, + "RunTask":{ + "name":"RunTask", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RunTaskRequest"}, + "output":{"shape":"RunTaskResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ClusterNotFoundException", + "exception":true + } + ] + }, + "StartTask":{ + "name":"StartTask", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartTaskRequest"}, + "output":{"shape":"StartTaskResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ClusterNotFoundException", + "exception":true + } + ] + }, + "StopTask":{ + "name":"StopTask", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopTaskRequest"}, + "output":{"shape":"StopTaskResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ClusterNotFoundException", + "exception":true + } + ] + }, + "SubmitContainerStateChange":{ + "name":"SubmitContainerStateChange", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SubmitContainerStateChangeRequest"}, + "output":{"shape":"SubmitContainerStateChangeResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + } + ] + }, + "SubmitTaskStateChange":{ + "name":"SubmitTaskStateChange", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SubmitTaskStateChangeRequest"}, + "output":{"shape":"SubmitTaskStateChangeResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + } + ] + }, + "UpdateContainerAgent":{ + "name":"UpdateContainerAgent", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateContainerAgentRequest"}, + "output":{"shape":"UpdateContainerAgentResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ClusterNotFoundException", + "exception":true + }, + { + "shape":"UpdateInProgressException", + "exception":true + }, + { + "shape":"NoUpdateAvailableException", + "exception":true + }, + { + "shape":"MissingVersionException", + "exception":true + } + ] + }, + "UpdateService":{ + "name":"UpdateService", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateServiceRequest"}, + "output":{"shape":"UpdateServiceResponse"}, + "errors":[ + { + "shape":"ServerException", + "exception":true, + "fault":true + }, + { + "shape":"ClientException", + "exception":true + }, + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ClusterNotFoundException", + "exception":true + }, + { + "shape":"ServiceNotFoundException", + "exception":true + }, + { + "shape":"ServiceNotActiveException", + "exception":true + } + ] + } + }, + "shapes":{ + "AgentUpdateStatus":{ + "type":"string", + "enum":[ + "PENDING", + "STAGING", + "STAGED", + "UPDATING", + "UPDATED", + "FAILED" + ] + }, + "Boolean":{"type":"boolean"}, + "BoxedBoolean":{ + "type":"boolean", + "box":true + }, + "BoxedInteger":{ + "type":"integer", + "box":true + }, + "ClientException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "exception":true + }, + "Cluster":{ + "type":"structure", + "members":{ + "clusterArn":{"shape":"String"}, + "clusterName":{"shape":"String"}, + "status":{"shape":"String"}, + "registeredContainerInstancesCount":{"shape":"Integer"}, + "runningTasksCount":{"shape":"Integer"}, + "pendingTasksCount":{"shape":"Integer"}, + "activeServicesCount":{"shape":"Integer"} + } + }, + "ClusterContainsContainerInstancesException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "ClusterContainsServicesException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "ClusterNotFoundException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "Clusters":{ + "type":"list", + "member":{"shape":"Cluster"} + }, + "Container":{ + "type":"structure", + "members":{ + "containerArn":{"shape":"String"}, + "taskArn":{"shape":"String"}, + "name":{"shape":"String"}, + "lastStatus":{"shape":"String"}, + "exitCode":{"shape":"BoxedInteger"}, + "reason":{"shape":"String"}, + "networkBindings":{"shape":"NetworkBindings"} + } + }, + "ContainerDefinition":{ + "type":"structure", + "members":{ + "name":{"shape":"String"}, + "image":{"shape":"String"}, + "cpu":{"shape":"Integer"}, + "memory":{"shape":"Integer"}, + "links":{"shape":"StringList"}, + "portMappings":{"shape":"PortMappingList"}, + "essential":{"shape":"BoxedBoolean"}, + "entryPoint":{"shape":"StringList"}, + "command":{"shape":"StringList"}, + "environment":{"shape":"EnvironmentVariables"}, + "mountPoints":{"shape":"MountPointList"}, + "volumesFrom":{"shape":"VolumeFromList"} + } + }, + "ContainerDefinitions":{ + "type":"list", + "member":{"shape":"ContainerDefinition"} + }, + "ContainerInstance":{ + "type":"structure", + "members":{ + "containerInstanceArn":{"shape":"String"}, + "ec2InstanceId":{"shape":"String"}, + "versionInfo":{"shape":"VersionInfo"}, + "remainingResources":{"shape":"Resources"}, + "registeredResources":{"shape":"Resources"}, + "status":{"shape":"String"}, + "agentConnected":{"shape":"Boolean"}, + "runningTasksCount":{"shape":"Integer"}, + "pendingTasksCount":{"shape":"Integer"}, + "agentUpdateStatus":{"shape":"AgentUpdateStatus"} + } + }, + "ContainerInstances":{ + "type":"list", + "member":{"shape":"ContainerInstance"} + }, + "ContainerOverride":{ + "type":"structure", + "members":{ + "name":{"shape":"String"}, + "command":{"shape":"StringList"} + } + }, + "ContainerOverrides":{ + "type":"list", + "member":{"shape":"ContainerOverride"} + }, + "Containers":{ + "type":"list", + "member":{"shape":"Container"} + }, + "CreateClusterRequest":{ + "type":"structure", + "members":{ + "clusterName":{"shape":"String"} + } + }, + "CreateClusterResponse":{ + "type":"structure", + "members":{ + "cluster":{"shape":"Cluster"} + } + }, + "CreateServiceRequest":{ + "type":"structure", + "required":[ + "serviceName", + "taskDefinition", + "desiredCount" + ], + "members":{ + "cluster":{"shape":"String"}, + "serviceName":{"shape":"String"}, + "taskDefinition":{"shape":"String"}, + "loadBalancers":{"shape":"LoadBalancers"}, + "desiredCount":{"shape":"BoxedInteger"}, + "clientToken":{"shape":"String"}, + "role":{"shape":"String"} + } + }, + "CreateServiceResponse":{ + "type":"structure", + "members":{ + "service":{"shape":"Service"} + } + }, + "DeleteClusterRequest":{ + "type":"structure", + "required":["cluster"], + "members":{ + "cluster":{"shape":"String"} + } + }, + "DeleteClusterResponse":{ + "type":"structure", + "members":{ + "cluster":{"shape":"Cluster"} + } + }, + "DeleteServiceRequest":{ + "type":"structure", + "required":["service"], + "members":{ + "cluster":{"shape":"String"}, + "service":{"shape":"String"} + } + }, + "DeleteServiceResponse":{ + "type":"structure", + "members":{ + "service":{"shape":"Service"} + } + }, + "Deployment":{ + "type":"structure", + "members":{ + "id":{"shape":"String"}, + "status":{"shape":"String"}, + "taskDefinition":{"shape":"String"}, + "desiredCount":{"shape":"Integer"}, + "pendingCount":{"shape":"Integer"}, + "runningCount":{"shape":"Integer"}, + "createdAt":{"shape":"Timestamp"}, + "updatedAt":{"shape":"Timestamp"} + } + }, + "Deployments":{ + "type":"list", + "member":{"shape":"Deployment"} + }, + "DeregisterContainerInstanceRequest":{ + "type":"structure", + "required":["containerInstance"], + "members":{ + "cluster":{"shape":"String"}, + "containerInstance":{"shape":"String"}, + "force":{"shape":"BoxedBoolean"} + } + }, + "DeregisterContainerInstanceResponse":{ + "type":"structure", + "members":{ + "containerInstance":{"shape":"ContainerInstance"} + } + }, + "DeregisterTaskDefinitionRequest":{ + "type":"structure", + "required":["taskDefinition"], + "members":{ + "taskDefinition":{"shape":"String"} + } + }, + "DeregisterTaskDefinitionResponse":{ + "type":"structure", + "members":{ + "taskDefinition":{"shape":"TaskDefinition"} + } + }, + "DescribeClustersRequest":{ + "type":"structure", + "members":{ + "clusters":{"shape":"StringList"} + } + }, + "DescribeClustersResponse":{ + "type":"structure", + "members":{ + "clusters":{"shape":"Clusters"}, + "failures":{"shape":"Failures"} + } + }, + "DescribeContainerInstancesRequest":{ + "type":"structure", + "required":["containerInstances"], + "members":{ + "cluster":{"shape":"String"}, + "containerInstances":{"shape":"StringList"} + } + }, + "DescribeContainerInstancesResponse":{ + "type":"structure", + "members":{ + "containerInstances":{"shape":"ContainerInstances"}, + "failures":{"shape":"Failures"} + } + }, + "DescribeServicesRequest":{ + "type":"structure", + "required":["services"], + "members":{ + "cluster":{"shape":"String"}, + "services":{"shape":"StringList"} + } + }, + "DescribeServicesResponse":{ + "type":"structure", + "members":{ + "services":{"shape":"Services"}, + "failures":{"shape":"Failures"} + } + }, + "DescribeTaskDefinitionRequest":{ + "type":"structure", + "required":["taskDefinition"], + "members":{ + "taskDefinition":{"shape":"String"} + } + }, + "DescribeTaskDefinitionResponse":{ + "type":"structure", + "members":{ + "taskDefinition":{"shape":"TaskDefinition"} + } + }, + "DescribeTasksRequest":{ + "type":"structure", + "required":["tasks"], + "members":{ + "cluster":{"shape":"String"}, + "tasks":{"shape":"StringList"} + } + }, + "DescribeTasksResponse":{ + "type":"structure", + "members":{ + "tasks":{"shape":"Tasks"}, + "failures":{"shape":"Failures"} + } + }, + "DesiredStatus":{ + "type":"string", + "enum":[ + "RUNNING", + "PENDING", + "STOPPED" + ] + }, + "DiscoverPollEndpointRequest":{ + "type":"structure", + "members":{ + "containerInstance":{"shape":"String"}, + "cluster":{"shape":"String"} + } + }, + "DiscoverPollEndpointResponse":{ + "type":"structure", + "members":{ + "endpoint":{"shape":"String"}, + "telemetryEndpoint":{"shape":"String"} + } + }, + "Double":{"type":"double"}, + "EnvironmentVariables":{ + "type":"list", + "member":{"shape":"KeyValuePair"} + }, + "Failure":{ + "type":"structure", + "members":{ + "arn":{"shape":"String"}, + "reason":{"shape":"String"} + } + }, + "Failures":{ + "type":"list", + "member":{"shape":"Failure"} + }, + "HostVolumeProperties":{ + "type":"structure", + "members":{ + "sourcePath":{"shape":"String"} + } + }, + "Integer":{"type":"integer"}, + "InvalidParameterException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "KeyValuePair":{ + "type":"structure", + "members":{ + "name":{"shape":"String"}, + "value":{"shape":"String"} + } + }, + "ListClustersRequest":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"String"}, + "maxResults":{"shape":"BoxedInteger"} + } + }, + "ListClustersResponse":{ + "type":"structure", + "members":{ + "clusterArns":{"shape":"StringList"}, + "nextToken":{"shape":"String"} + } + }, + "ListContainerInstancesRequest":{ + "type":"structure", + "members":{ + "cluster":{"shape":"String"}, + "nextToken":{"shape":"String"}, + "maxResults":{"shape":"BoxedInteger"} + } + }, + "ListContainerInstancesResponse":{ + "type":"structure", + "members":{ + "containerInstanceArns":{"shape":"StringList"}, + "nextToken":{"shape":"String"} + } + }, + "ListServicesRequest":{ + "type":"structure", + "members":{ + "cluster":{"shape":"String"}, + "nextToken":{"shape":"String"}, + "maxResults":{"shape":"BoxedInteger"} + } + }, + "ListServicesResponse":{ + "type":"structure", + "members":{ + "serviceArns":{"shape":"StringList"}, + "nextToken":{"shape":"String"} + } + }, + "ListTaskDefinitionFamiliesRequest":{ + "type":"structure", + "members":{ + "familyPrefix":{"shape":"String"}, + "nextToken":{"shape":"String"}, + "maxResults":{"shape":"BoxedInteger"} + } + }, + "ListTaskDefinitionFamiliesResponse":{ + "type":"structure", + "members":{ + "families":{"shape":"StringList"}, + "nextToken":{"shape":"String"} + } + }, + "ListTaskDefinitionsRequest":{ + "type":"structure", + "members":{ + "familyPrefix":{"shape":"String"}, + "nextToken":{"shape":"String"}, + "maxResults":{"shape":"BoxedInteger"} + } + }, + "ListTaskDefinitionsResponse":{ + "type":"structure", + "members":{ + "taskDefinitionArns":{"shape":"StringList"}, + "nextToken":{"shape":"String"} + } + }, + "ListTasksRequest":{ + "type":"structure", + "members":{ + "cluster":{"shape":"String"}, + "containerInstance":{"shape":"String"}, + "family":{"shape":"String"}, + "nextToken":{"shape":"String"}, + "maxResults":{"shape":"BoxedInteger"}, + "startedBy":{"shape":"String"}, + "serviceName":{"shape":"String"}, + "desiredStatus":{"shape":"DesiredStatus"} + } + }, + "ListTasksResponse":{ + "type":"structure", + "members":{ + "taskArns":{"shape":"StringList"}, + "nextToken":{"shape":"String"} + } + }, + "LoadBalancer":{ + "type":"structure", + "members":{ + "loadBalancerName":{"shape":"String"}, + "containerName":{"shape":"String"}, + "containerPort":{"shape":"BoxedInteger"} + } + }, + "LoadBalancers":{ + "type":"list", + "member":{"shape":"LoadBalancer"} + }, + "Long":{"type":"long"}, + "MissingVersionException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "MountPoint":{ + "type":"structure", + "members":{ + "sourceVolume":{"shape":"String"}, + "containerPath":{"shape":"String"}, + "readOnly":{"shape":"BoxedBoolean"} + } + }, + "MountPointList":{ + "type":"list", + "member":{"shape":"MountPoint"} + }, + "NetworkBinding":{ + "type":"structure", + "members":{ + "bindIP":{"shape":"String"}, + "containerPort":{"shape":"BoxedInteger"}, + "hostPort":{"shape":"BoxedInteger"}, + "protocol":{"shape":"TransportProtocol"} + } + }, + "NetworkBindings":{ + "type":"list", + "member":{"shape":"NetworkBinding"} + }, + "NoUpdateAvailableException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "PortMapping":{ + "type":"structure", + "members":{ + "containerPort":{"shape":"Integer"}, + "hostPort":{"shape":"Integer"}, + "protocol":{"shape":"TransportProtocol"} + } + }, + "PortMappingList":{ + "type":"list", + "member":{"shape":"PortMapping"} + }, + "RegisterContainerInstanceRequest":{ + "type":"structure", + "members":{ + "cluster":{"shape":"String"}, + "instanceIdentityDocument":{"shape":"String"}, + "instanceIdentityDocumentSignature":{"shape":"String"}, + "totalResources":{"shape":"Resources"}, + "versionInfo":{"shape":"VersionInfo"} + } + }, + "RegisterContainerInstanceResponse":{ + "type":"structure", + "members":{ + "containerInstance":{"shape":"ContainerInstance"} + } + }, + "RegisterTaskDefinitionRequest":{ + "type":"structure", + "required":[ + "family", + "containerDefinitions" + ], + "members":{ + "family":{"shape":"String"}, + "containerDefinitions":{"shape":"ContainerDefinitions"}, + "volumes":{"shape":"VolumeList"} + } + }, + "RegisterTaskDefinitionResponse":{ + "type":"structure", + "members":{ + "taskDefinition":{"shape":"TaskDefinition"} + } + }, + "Resource":{ + "type":"structure", + "members":{ + "name":{"shape":"String"}, + "type":{"shape":"String"}, + "doubleValue":{"shape":"Double"}, + "longValue":{"shape":"Long"}, + "integerValue":{"shape":"Integer"}, + "stringSetValue":{"shape":"StringList"} + } + }, + "Resources":{ + "type":"list", + "member":{"shape":"Resource"} + }, + "RunTaskRequest":{ + "type":"structure", + "required":["taskDefinition"], + "members":{ + "cluster":{"shape":"String"}, + "taskDefinition":{"shape":"String"}, + "overrides":{"shape":"TaskOverride"}, + "count":{"shape":"BoxedInteger"}, + "startedBy":{"shape":"String"} + } + }, + "RunTaskResponse":{ + "type":"structure", + "members":{ + "tasks":{"shape":"Tasks"}, + "failures":{"shape":"Failures"} + } + }, + "ServerException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "exception":true, + "fault":true + }, + "Service":{ + "type":"structure", + "members":{ + "serviceArn":{"shape":"String"}, + "serviceName":{"shape":"String"}, + "clusterArn":{"shape":"String"}, + "loadBalancers":{"shape":"LoadBalancers"}, + "status":{"shape":"String"}, + "desiredCount":{"shape":"Integer"}, + "runningCount":{"shape":"Integer"}, + "pendingCount":{"shape":"Integer"}, + "taskDefinition":{"shape":"String"}, + "deployments":{"shape":"Deployments"}, + "roleArn":{"shape":"String"}, + "events":{"shape":"ServiceEvents"} + } + }, + "ServiceEvent":{ + "type":"structure", + "members":{ + "id":{"shape":"String"}, + "createdAt":{"shape":"Timestamp"}, + "message":{"shape":"String"} + } + }, + "ServiceEvents":{ + "type":"list", + "member":{"shape":"ServiceEvent"} + }, + "ServiceNotActiveException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "ServiceNotFoundException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "Services":{ + "type":"list", + "member":{"shape":"Service"} + }, + "StartTaskRequest":{ + "type":"structure", + "required":[ + "taskDefinition", + "containerInstances" + ], + "members":{ + "cluster":{"shape":"String"}, + "taskDefinition":{"shape":"String"}, + "overrides":{"shape":"TaskOverride"}, + "containerInstances":{"shape":"StringList"}, + "startedBy":{"shape":"String"} + } + }, + "StartTaskResponse":{ + "type":"structure", + "members":{ + "tasks":{"shape":"Tasks"}, + "failures":{"shape":"Failures"} + } + }, + "StopTaskRequest":{ + "type":"structure", + "required":["task"], + "members":{ + "cluster":{"shape":"String"}, + "task":{"shape":"String"} + } + }, + "StopTaskResponse":{ + "type":"structure", + "members":{ + "task":{"shape":"Task"} + } + }, + "String":{"type":"string"}, + "StringList":{ + "type":"list", + "member":{"shape":"String"} + }, + "SubmitContainerStateChangeRequest":{ + "type":"structure", + "members":{ + "cluster":{"shape":"String"}, + "task":{"shape":"String"}, + "containerName":{"shape":"String"}, + "status":{"shape":"String"}, + "exitCode":{"shape":"BoxedInteger"}, + "reason":{"shape":"String"}, + "networkBindings":{"shape":"NetworkBindings"} + } + }, + "SubmitContainerStateChangeResponse":{ + "type":"structure", + "members":{ + "acknowledgment":{"shape":"String"} + } + }, + "SubmitTaskStateChangeRequest":{ + "type":"structure", + "members":{ + "cluster":{"shape":"String"}, + "task":{"shape":"String"}, + "status":{"shape":"String"}, + "reason":{"shape":"String"} + } + }, + "SubmitTaskStateChangeResponse":{ + "type":"structure", + "members":{ + "acknowledgment":{"shape":"String"} + } + }, + "Task":{ + "type":"structure", + "members":{ + "taskArn":{"shape":"String"}, + "clusterArn":{"shape":"String"}, + "taskDefinitionArn":{"shape":"String"}, + "containerInstanceArn":{"shape":"String"}, + "overrides":{"shape":"TaskOverride"}, + "lastStatus":{"shape":"String"}, + "desiredStatus":{"shape":"String"}, + "containers":{"shape":"Containers"}, + "startedBy":{"shape":"String"} + } + }, + "TaskDefinition":{ + "type":"structure", + "members":{ + "taskDefinitionArn":{"shape":"String"}, + "containerDefinitions":{"shape":"ContainerDefinitions"}, + "family":{"shape":"String"}, + "revision":{"shape":"Integer"}, + "volumes":{"shape":"VolumeList"} + } + }, + "TaskOverride":{ + "type":"structure", + "members":{ + "containerOverrides":{"shape":"ContainerOverrides"} + } + }, + "Tasks":{ + "type":"list", + "member":{"shape":"Task"} + }, + "Timestamp":{"type":"timestamp"}, + "TransportProtocol":{ + "type":"string", + "enum":[ + "tcp", + "udp" + ] + }, + "UpdateContainerAgentRequest":{ + "type":"structure", + "required":["containerInstance"], + "members":{ + "cluster":{"shape":"String"}, + "containerInstance":{"shape":"String"} + } + }, + "UpdateContainerAgentResponse":{ + "type":"structure", + "members":{ + "containerInstance":{"shape":"ContainerInstance"} + } + }, + "UpdateInProgressException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "UpdateServiceRequest":{ + "type":"structure", + "required":["service"], + "members":{ + "cluster":{"shape":"String"}, + "service":{"shape":"String"}, + "desiredCount":{"shape":"BoxedInteger"}, + "taskDefinition":{"shape":"String"} + } + }, + "UpdateServiceResponse":{ + "type":"structure", + "members":{ + "service":{"shape":"Service"} + } + }, + "VersionInfo":{ + "type":"structure", + "members":{ + "agentVersion":{"shape":"String"}, + "agentHash":{"shape":"String"}, + "dockerVersion":{"shape":"String"} + } + }, + "Volume":{ + "type":"structure", + "members":{ + "name":{"shape":"String"}, + "host":{"shape":"HostVolumeProperties"} + } + }, + "VolumeFrom":{ + "type":"structure", + "members":{ + "sourceContainer":{"shape":"String"}, + "readOnly":{"shape":"BoxedBoolean"} + } + }, + "VolumeFromList":{ + "type":"list", + "member":{"shape":"VolumeFrom"} + }, + "VolumeList":{ + "type":"list", + "member":{"shape":"Volume"} + } + } +} diff --git a/lib/aws-sdk/Aws/data/ecs/2014-11-13/docs-2.json b/lib/aws-sdk/Aws/data/ecs/2014-11-13/docs-2.json new file mode 100644 index 0000000..68e0fe8 --- /dev/null +++ b/lib/aws-sdk/Aws/data/ecs/2014-11-13/docs-2.json @@ -0,0 +1,872 @@ +{ + "version": "2.0", + "operations": { + "CreateCluster": "

Creates a new Amazon ECS cluster. By default, your account will receive a default cluster when you launch your first container instance. However, you can create your own cluster with a unique name with the CreateCluster action.

", + "CreateService": "

Runs and maintains a desired number of tasks from a specified task definition. If the number of tasks running in a service drops below desiredCount, Amazon ECS will spawn another instantiation of the task in the specified cluster.

", + "DeleteCluster": "

Deletes the specified cluster. You must deregister all container instances from this cluster before you may delete it. You can list the container instances in a cluster with ListContainerInstances and deregister them with DeregisterContainerInstance.

", + "DeleteService": "

Deletes a specified service within a cluster.

", + "DeregisterContainerInstance": "

Deregisters an Amazon ECS container instance from the specified cluster. This instance will no longer be available to run tasks.

", + "DeregisterTaskDefinition": "

NOT YET IMPLEMENTED.

Deregisters the specified task definition. You will no longer be able to run tasks from this definition after deregistration.

", + "DescribeClusters": "

Describes one or more of your clusters.

", + "DescribeContainerInstances": "

Describes Amazon EC2 Container Service container instances. Returns metadata about registered and remaining resources on each container instance requested.

", + "DescribeServices": "

Describes the specified services running in your cluster.

", + "DescribeTaskDefinition": "

Describes a task definition. You can specify a family and revision to find information on a specific task definition, or you can simply specify the family to find the latest revision in that family.

", + "DescribeTasks": "

Describes a specified task or tasks.

", + "DiscoverPollEndpoint": "

This action is only used by the Amazon EC2 Container Service agent, and it is not intended for use outside of the agent.

Returns an endpoint for the Amazon EC2 Container Service agent to poll for updates.

", + "ListClusters": "

Returns a list of existing clusters.

", + "ListContainerInstances": "

Returns a list of container instances in a specified cluster.

", + "ListServices": "

Lists the services that are running in a specified cluster.

", + "ListTaskDefinitionFamilies": "

Returns a list of task definition families that are registered to your account. You can filter the results with the familyPrefix parameter.

", + "ListTaskDefinitions": "

Returns a list of task definitions that are registered to your account. You can filter the results by family name with the familyPrefix parameter.

", + "ListTasks": "

Returns a list of tasks for a specified cluster. You can filter the results by family name, by a particular container instance, or by the desired status of the task with the family, containerInstance, and desiredStatus parameters.

", + "RegisterContainerInstance": "

This action is only used by the Amazon EC2 Container Service agent, and it is not intended for use outside of the agent.

Registers an Amazon EC2 instance into the specified cluster. This instance will become available to place containers on.

", + "RegisterTaskDefinition": "

Registers a new task definition from the supplied family and containerDefinitions. Optionally, you can add data volumes to your containers with the volumes parameter. For more information on task definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon EC2 Container Service Developer Guide.

", + "RunTask": "

Start a task using random placement and the default Amazon ECS scheduler. If you want to use your own scheduler or place a task on a specific container instance, use StartTask instead.

The count parameter is limited to 10 tasks per call.

", + "StartTask": "

Starts a new task from the specified task definition on the specified container instance or instances. If you want to use the default Amazon ECS scheduler to place your task, use RunTask instead.

The list of container instances to start tasks on is limited to 10.

", + "StopTask": "

Stops a running task.

", + "SubmitContainerStateChange": "

This action is only used by the Amazon EC2 Container Service agent, and it is not intended for use outside of the agent.

Sent to acknowledge that a container changed states.

", + "SubmitTaskStateChange": "

This action is only used by the Amazon EC2 Container Service agent, and it is not intended for use outside of the agent.

Sent to acknowledge that a task changed states.

", + "UpdateContainerAgent": "

Updates the Amazon ECS container agent on a specified container instance.

", + "UpdateService": "

Modify the desired count or task definition used in a service.

You can add to or subtract from the number of instantiations of a task definition in a service by specifying the cluster that the service is running in and a new desiredCount parameter.

You can use UpdateService to modify your task definition and deploy a new version of your service, one task at a time. If you modify the task definition with UpdateService, Amazon ECS spawns a task with the new version of the task definition and then stops an old task after the new version is running. Because UpdateService starts a new version of the task before stopping an old version, your cluster must have capacity to support one more instantiation of the task when UpdateService is run. If your cluster cannot support another instantiation of the task used in your service, you can reduce the desired count of your service by one before modifying the task definition.

" + }, + "service": "

Amazon EC2 Container Service (Amazon ECS) is a highly scalable, fast, container management service that makes it easy to run, stop, and manage Docker containers on a cluster of Amazon EC2 instances. Amazon ECS lets you launch and stop container-enabled applications with simple API calls, allows you to get the state of your cluster from a centralized service, and gives you access to many familiar Amazon EC2 features like security groups, Amazon EBS volumes, and IAM roles.

You can use Amazon ECS to schedule the placement of containers across your cluster based on your resource needs, isolation policies, and availability requirements. Amazon EC2 Container Service eliminates the need for you to operate your own cluster management and configuration management systems or worry about scaling your management infrastructure.

", + "shapes": { + "AgentUpdateStatus": { + "base": null, + "refs": { + "ContainerInstance$agentUpdateStatus": "

The status of the most recent agent update. If an update has never been requested, this value is NULL.

" + } + }, + "Boolean": { + "base": null, + "refs": { + "ContainerInstance$agentConnected": "

This parameter returns true if the agent is actually connected to Amazon ECS. Registered instances with an agent that may be unhealthy or stopped will return false, and instances without a connected agent cannot accept placement request.

" + } + }, + "BoxedBoolean": { + "base": null, + "refs": { + "ContainerDefinition$essential": "

If the essential parameter of a container is marked as true, the failure of that container will stop the task. If the essential parameter of a container is marked as false, then its failure will not affect the rest of the containers in a task. If this parameter is omitted, a container is assumed to be essential.

All tasks must have at least one essential container.

", + "DeregisterContainerInstanceRequest$force": "

Force the deregistration of the container instance. You can use the force parameter if you have several tasks running on a container instance and you don't want to run StopTask for each task before deregistering the container instance.

", + "MountPoint$readOnly": "

If this value is true, the container has read-only access to the volume. If this value is false, then the container can write to the volume. The default value is false.

", + "VolumeFrom$readOnly": "

If this value is true, the container has read-only access to the volume. If this value is false, then the container can write to the volume. The default value is false.

" + } + }, + "BoxedInteger": { + "base": null, + "refs": { + "Container$exitCode": "

The exit code returned from the container.

", + "CreateServiceRequest$desiredCount": "

The number of instantiations of the specified task definition that you would like to place and keep running on your cluster.

", + "ListClustersRequest$maxResults": "

The maximum number of cluster results returned by ListClusters in paginated output. When this parameter is used, ListClusters only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListClusters request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListClusters returns up to 100 results and a nextToken value if applicable.

", + "ListContainerInstancesRequest$maxResults": "

The maximum number of container instance results returned by ListContainerInstances in paginated output. When this parameter is used, ListContainerInstances only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListContainerInstances request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListContainerInstances returns up to 100 results and a nextToken value if applicable.

", + "ListServicesRequest$maxResults": "

The maximum number of container instance results returned by ListServices in paginated output. When this parameter is used, ListServices only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListServices request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListServices returns up to 100 results and a nextToken value if applicable.

", + "ListTaskDefinitionFamiliesRequest$maxResults": "

The maximum number of task definition family results returned by ListTaskDefinitionFamilies in paginated output. When this parameter is used, ListTaskDefinitions only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListTaskDefinitionFamilies request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListTaskDefinitionFamilies returns up to 100 results and a nextToken value if applicable.

", + "ListTaskDefinitionsRequest$maxResults": "

The maximum number of task definition results returned by ListTaskDefinitions in paginated output. When this parameter is used, ListTaskDefinitions only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListTaskDefinitions request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListTaskDefinitions returns up to 100 results and a nextToken value if applicable.

", + "ListTasksRequest$maxResults": "

The maximum number of task results returned by ListTasks in paginated output. When this parameter is used, ListTasks only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListTasks request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListTasks returns up to 100 results and a nextToken value if applicable.

", + "LoadBalancer$containerPort": "

The port on the container to associate with the load balancer. This port must correspond to a containerPort in the service's task definition. Your container instances must allow ingress traffic on the hostPort of the port mapping.

", + "NetworkBinding$containerPort": "

The port number on the container that is be used with the network binding.

", + "NetworkBinding$hostPort": "

The port number on the host that is used with the network binding.

", + "RunTaskRequest$count": "

The number of instantiations of the specified task that you would like to place on your cluster.

The count parameter is limited to 10 tasks per call.

", + "SubmitContainerStateChangeRequest$exitCode": "

The exit code returned for the state change request.

", + "UpdateServiceRequest$desiredCount": "

The number of instantiations of the task that you would like to place and keep running in your service.

" + } + }, + "ClientException": { + "base": "

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.

", + "refs": { + } + }, + "Cluster": { + "base": "

A regional grouping of one or more container instances on which you can run task requests. Each account receives a default cluster the first time you use the Amazon ECS service, but you may also create other clusters. Clusters may contain more than one instance type simultaneously.

", + "refs": { + "Clusters$member": null, + "CreateClusterResponse$cluster": "

The full description of your new cluster.

", + "DeleteClusterResponse$cluster": "

The full description of the deleted cluster.

" + } + }, + "ClusterContainsContainerInstancesException": { + "base": "

You cannot delete a cluster that has registered container instances. You must first deregister the container instances before you can delete the cluster. For more information, see DeregisterContainerInstance.

", + "refs": { + } + }, + "ClusterContainsServicesException": { + "base": "

You cannot delete a cluster that contains services. You must first update the service to reduce its desired task count to 0 and then delete the service. For more information, see UpdateService and DeleteService.

", + "refs": { + } + }, + "ClusterNotFoundException": { + "base": "

The specified cluster could not be found. You can view your available clusters with ListClusters. Amazon ECS clusters are region-specific.

", + "refs": { + } + }, + "Clusters": { + "base": null, + "refs": { + "DescribeClustersResponse$clusters": "

The list of clusters.

" + } + }, + "Container": { + "base": null, + "refs": { + "Containers$member": null + } + }, + "ContainerDefinition": { + "base": "

Container definitions are used in task definitions to describe the different containers that are launched as part of a task.

", + "refs": { + "ContainerDefinitions$member": null + } + }, + "ContainerDefinitions": { + "base": null, + "refs": { + "RegisterTaskDefinitionRequest$containerDefinitions": "

A list of container definitions in JSON format that describe the different containers that make up your task.

", + "TaskDefinition$containerDefinitions": "

A list of container definitions in JSON format that describe the different containers that make up your task. For more information on container definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon EC2 Container Service Developer Guide.

" + } + }, + "ContainerInstance": { + "base": "

An Amazon EC2 instance that is running the Amazon ECS agent and has been registered with a cluster.

", + "refs": { + "ContainerInstances$member": null, + "DeregisterContainerInstanceResponse$containerInstance": null, + "RegisterContainerInstanceResponse$containerInstance": null, + "UpdateContainerAgentResponse$containerInstance": null + } + }, + "ContainerInstances": { + "base": null, + "refs": { + "DescribeContainerInstancesResponse$containerInstances": "

The list of container instances.

" + } + }, + "ContainerOverride": { + "base": "

The name of a container in a task definition and the command it should run instead of its default.

", + "refs": { + "ContainerOverrides$member": null + } + }, + "ContainerOverrides": { + "base": null, + "refs": { + "TaskOverride$containerOverrides": "

One or more container overrides sent to a task.

" + } + }, + "Containers": { + "base": null, + "refs": { + "Task$containers": "

The containers associated with the task.

" + } + }, + "CreateClusterRequest": { + "base": null, + "refs": { + } + }, + "CreateClusterResponse": { + "base": null, + "refs": { + } + }, + "CreateServiceRequest": { + "base": null, + "refs": { + } + }, + "CreateServiceResponse": { + "base": null, + "refs": { + } + }, + "DeleteClusterRequest": { + "base": null, + "refs": { + } + }, + "DeleteClusterResponse": { + "base": null, + "refs": { + } + }, + "DeleteServiceRequest": { + "base": null, + "refs": { + } + }, + "DeleteServiceResponse": { + "base": null, + "refs": { + } + }, + "Deployment": { + "base": null, + "refs": { + "Deployments$member": null + } + }, + "Deployments": { + "base": null, + "refs": { + "Service$deployments": "

The current state of deployments for the service.

" + } + }, + "DeregisterContainerInstanceRequest": { + "base": null, + "refs": { + } + }, + "DeregisterContainerInstanceResponse": { + "base": null, + "refs": { + } + }, + "DeregisterTaskDefinitionRequest": { + "base": null, + "refs": { + } + }, + "DeregisterTaskDefinitionResponse": { + "base": null, + "refs": { + } + }, + "DescribeClustersRequest": { + "base": null, + "refs": { + } + }, + "DescribeClustersResponse": { + "base": null, + "refs": { + } + }, + "DescribeContainerInstancesRequest": { + "base": null, + "refs": { + } + }, + "DescribeContainerInstancesResponse": { + "base": null, + "refs": { + } + }, + "DescribeServicesRequest": { + "base": null, + "refs": { + } + }, + "DescribeServicesResponse": { + "base": null, + "refs": { + } + }, + "DescribeTaskDefinitionRequest": { + "base": null, + "refs": { + } + }, + "DescribeTaskDefinitionResponse": { + "base": null, + "refs": { + } + }, + "DescribeTasksRequest": { + "base": null, + "refs": { + } + }, + "DescribeTasksResponse": { + "base": null, + "refs": { + } + }, + "DesiredStatus": { + "base": null, + "refs": { + "ListTasksRequest$desiredStatus": "

The task status that you want to filter the ListTasks results with. Specifying a desiredStatus of STOPPED will limit the results to tasks that are in the STOPPED status, which can be useful for debugging tasks that are not starting properly or have died or finished. The default status filter is RUNNING.

" + } + }, + "DiscoverPollEndpointRequest": { + "base": null, + "refs": { + } + }, + "DiscoverPollEndpointResponse": { + "base": null, + "refs": { + } + }, + "Double": { + "base": null, + "refs": { + "Resource$doubleValue": "

When the doubleValue type is set, the value of the resource must be a double precision floating-point type.

" + } + }, + "EnvironmentVariables": { + "base": null, + "refs": { + "ContainerDefinition$environment": "

The environment variables to pass to a container.

" + } + }, + "Failure": { + "base": null, + "refs": { + "Failures$member": null + } + }, + "Failures": { + "base": null, + "refs": { + "DescribeClustersResponse$failures": null, + "DescribeContainerInstancesResponse$failures": null, + "DescribeServicesResponse$failures": "

Any failures associated with the call.

", + "DescribeTasksResponse$failures": null, + "RunTaskResponse$failures": "

Any failed tasks from your RunTask action are listed here.

", + "StartTaskResponse$failures": "

Any failed tasks from your StartTask action are listed here.

" + } + }, + "HostVolumeProperties": { + "base": null, + "refs": { + "Volume$host": "

The path on the host container instance that is presented to the containers which access the volume. If this parameter is empty, then the Docker daemon assigns a host path for you.

" + } + }, + "Integer": { + "base": null, + "refs": { + "Cluster$registeredContainerInstancesCount": "

The number of container instances registered into the cluster.

", + "Cluster$runningTasksCount": "

The number of tasks in the cluster that are in the RUNNING state.

", + "Cluster$pendingTasksCount": "

The number of tasks in the cluster that are in the PENDING state.

", + "Cluster$activeServicesCount": "

The number of services that are running on the cluster in an ACTIVE state. You can view these services with ListServices.

", + "ContainerDefinition$cpu": "

The number of cpu units reserved for the container. A container instance has 1,024 cpu units for every CPU core. This parameter specifies the minimum amount of CPU to reserve for a container, and containers share unallocated CPU units with other containers on the instance with the same ratio as their allocated amount.

For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that is the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task would be guaranteed a minimum of 512 CPU units when needed, and each container could float to higher CPU usage if the other container was not using it, but if both tasks were 100% active all of the time, they would be limited to 512 CPU units.

If this parameter is omitted, 0 CPU units are reserved for the container, and it will only receive CPU time when other containers are not using it.

", + "ContainerDefinition$memory": "

The number of MiB of memory reserved for the container. If your container attempts to exceed the memory allocated here, the container is killed.

", + "ContainerInstance$runningTasksCount": "

The number of tasks on the container instance that are in the RUNNING status.

", + "ContainerInstance$pendingTasksCount": "

The number of tasks on the container instance that are in the PENDING status.

", + "Deployment$desiredCount": "

The most recent desired count of tasks that was specified for the service to deploy and/or maintain.

", + "Deployment$pendingCount": "

The number of tasks in the deployment that are in the PENDING status.

", + "Deployment$runningCount": "

The number of tasks in the deployment that are in the RUNNING status.

", + "PortMapping$containerPort": "

The port number on the container that is bound to the user-specified or automatically assigned host port. If you specify a container port and not a host port, your container will automatically receive a host port in the 49153 to 65535 port range.

", + "PortMapping$hostPort": "

The port number on the container instance to reserve for your container. You can specify a non-reserved host port for your container port mapping, or you can omit the hostPort (or set it to 0) while specifying a containerPort and your container will automatically receive a port in the 49153 to 65535 port range. You should not attempt to specify a host port in the 49153 to 65535 port range, since these are reserved for automatic assignment.

The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS Container Agent port 51678. Any host port that was previously specified in a running task is also reserved while the task is running (once a task stops, the host port is released).The current reserved ports are displayed in the remainingResources of DescribeContainerInstances output, and a container instance may have up to 50 reserved ports at a time, including the default reserved ports (automatically assigned ports do not count toward this limit).

", + "Resource$integerValue": "

When the integerValue type is set, the value of the resource must be an integer.

", + "Service$desiredCount": "

The desired number of instantiations of the task definition to keep running on the service. This value is specified when the service is created with CreateService, and it can be modified with UpdateService.

", + "Service$runningCount": "

The number of tasks in the cluster that are in the RUNNING state.

", + "Service$pendingCount": "

The number of tasks in the cluster that are in the PENDING state.

", + "TaskDefinition$revision": "

The revision of the task in a particular family. You can think of the revision as a version number of a task definition in a family. When you register a task definition for the first time, the revision is 1, and each time you register a task definition in the same family, the revision value increases by one.

" + } + }, + "InvalidParameterException": { + "base": "

The specified parameter is invalid. Review the available parameters for the API request.

", + "refs": { + } + }, + "KeyValuePair": { + "base": null, + "refs": { + "EnvironmentVariables$member": null + } + }, + "ListClustersRequest": { + "base": null, + "refs": { + } + }, + "ListClustersResponse": { + "base": null, + "refs": { + } + }, + "ListContainerInstancesRequest": { + "base": null, + "refs": { + } + }, + "ListContainerInstancesResponse": { + "base": null, + "refs": { + } + }, + "ListServicesRequest": { + "base": null, + "refs": { + } + }, + "ListServicesResponse": { + "base": null, + "refs": { + } + }, + "ListTaskDefinitionFamiliesRequest": { + "base": null, + "refs": { + } + }, + "ListTaskDefinitionFamiliesResponse": { + "base": null, + "refs": { + } + }, + "ListTaskDefinitionsRequest": { + "base": null, + "refs": { + } + }, + "ListTaskDefinitionsResponse": { + "base": null, + "refs": { + } + }, + "ListTasksRequest": { + "base": null, + "refs": { + } + }, + "ListTasksResponse": { + "base": null, + "refs": { + } + }, + "LoadBalancer": { + "base": null, + "refs": { + "LoadBalancers$member": null + } + }, + "LoadBalancers": { + "base": null, + "refs": { + "CreateServiceRequest$loadBalancers": "

A list of load balancer objects, containing the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer.

", + "Service$loadBalancers": "

A list of load balancer objects, containing the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer.

" + } + }, + "Long": { + "base": null, + "refs": { + "Resource$longValue": "

When the longValue type is set, the value of the resource must be an extended precision floating-point type.

" + } + }, + "MissingVersionException": { + "base": "

Amazon ECS is unable to determine the current version of the Amazon ECS container agent on the container instance and does not have enough information to proceed with an update. This could be because the agent running on the container instance is an older or custom version that does not use our version information.

", + "refs": { + } + }, + "MountPoint": { + "base": null, + "refs": { + "MountPointList$member": null + } + }, + "MountPointList": { + "base": null, + "refs": { + "ContainerDefinition$mountPoints": "

The mount points for data volumes in your container.

" + } + }, + "NetworkBinding": { + "base": null, + "refs": { + "NetworkBindings$member": null + } + }, + "NetworkBindings": { + "base": null, + "refs": { + "Container$networkBindings": null, + "SubmitContainerStateChangeRequest$networkBindings": "

The network bindings of the container.

" + } + }, + "NoUpdateAvailableException": { + "base": "

There is no update available for this Amazon ECS container agent. This could be because the agent is already running the latest version, or it is so old that there is no update path to the current version.

", + "refs": { + } + }, + "PortMapping": { + "base": "

Port mappings allow containers to access ports on the host container instance to send or receive traffic. Port mappings are specified as part of the container definition.

", + "refs": { + "PortMappingList$member": null + } + }, + "PortMappingList": { + "base": null, + "refs": { + "ContainerDefinition$portMappings": "

The list of port mappings for the container.

" + } + }, + "RegisterContainerInstanceRequest": { + "base": null, + "refs": { + } + }, + "RegisterContainerInstanceResponse": { + "base": null, + "refs": { + } + }, + "RegisterTaskDefinitionRequest": { + "base": null, + "refs": { + } + }, + "RegisterTaskDefinitionResponse": { + "base": null, + "refs": { + } + }, + "Resource": { + "base": "

Describes the resources available for a container instance.

", + "refs": { + "Resources$member": null + } + }, + "Resources": { + "base": null, + "refs": { + "ContainerInstance$remainingResources": "

The remaining resources of the container instance that are available for new tasks.

", + "ContainerInstance$registeredResources": "

The registered resources on the container instance that are in use by current tasks.

", + "RegisterContainerInstanceRequest$totalResources": "

The resources available on the instance.

" + } + }, + "RunTaskRequest": { + "base": null, + "refs": { + } + }, + "RunTaskResponse": { + "base": null, + "refs": { + } + }, + "ServerException": { + "base": "

These errors are usually caused by a server-side issue.

", + "refs": { + } + }, + "Service": { + "base": null, + "refs": { + "CreateServiceResponse$service": "

The full description of your service following the create call.

", + "DeleteServiceResponse$service": null, + "Services$member": null, + "UpdateServiceResponse$service": "

The full description of your service following the update call.

" + } + }, + "ServiceEvent": { + "base": null, + "refs": { + "ServiceEvents$member": null + } + }, + "ServiceEvents": { + "base": null, + "refs": { + "Service$events": "

The event stream for your service. A maximum of 100 of the latest events are displayed.

" + } + }, + "ServiceNotActiveException": { + "base": "

The specified service is not active. You cannot update a service that is not active. If you have previously deleted a service, you can recreate it with CreateService.

", + "refs": { + } + }, + "ServiceNotFoundException": { + "base": "

The specified service could not be found. You can view your available services with ListServices. Amazon ECS services are cluster-specific and region-specific.

", + "refs": { + } + }, + "Services": { + "base": null, + "refs": { + "DescribeServicesResponse$services": "

The list of services described.

" + } + }, + "StartTaskRequest": { + "base": null, + "refs": { + } + }, + "StartTaskResponse": { + "base": null, + "refs": { + } + }, + "StopTaskRequest": { + "base": null, + "refs": { + } + }, + "StopTaskResponse": { + "base": null, + "refs": { + } + }, + "String": { + "base": null, + "refs": { + "ClientException$message": null, + "Cluster$clusterArn": "

The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains the arn:aws:ecs namespace, followed by the region of the cluster, the AWS account ID of the cluster owner, the cluster namespace, and then the cluster name. For example, arn:aws:ecs:region:012345678910:cluster/test.

", + "Cluster$clusterName": "

A user-generated string that you can use to identify your cluster.

", + "Cluster$status": "

The status of the cluster. The valid values are ACTIVE or INACTIVE. ACTIVE indicates that you can register container instances with the cluster and the associated instances can accept tasks.

", + "Container$containerArn": "

The Amazon Resource Name (ARN) of the container.

", + "Container$taskArn": "

The Amazon Resource Name (ARN) of the task.

", + "Container$name": "

The name of the container.

", + "Container$lastStatus": "

The last known status of the container.

", + "Container$reason": "

A short (255 max characters) human-readable string to provide additional detail about a running or stopped container.

", + "ContainerDefinition$name": "

The name of a container. If you are linking multiple containers together in a task definition, the name of one container can be entered in the links of another container to connect the containers.

", + "ContainerDefinition$image": "

The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with repository-url/image:tag.

", + "ContainerInstance$containerInstanceArn": "

The Amazon Resource Name (ARN) of the container instance. The ARN contains the arn:aws:ecs namespace, followed by the region of the container instance, the AWS account ID of the container instance owner, the container-instance namespace, and then the container instance UUID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_UUID.

", + "ContainerInstance$ec2InstanceId": "

The Amazon EC2 instance ID of the container instance.

", + "ContainerInstance$status": "

The status of the container instance. The valid values are ACTIVE or INACTIVE. ACTIVE indicates that the container instance can accept tasks.

", + "ContainerOverride$name": "

The name of the container that receives the override.

", + "CreateClusterRequest$clusterName": "

The name of your cluster. If you do not specify a name for your cluster, you will create a cluster named default. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed.

", + "CreateServiceRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that you want to run your service on. If you do not specify a cluster, the default cluster is assumed.

", + "CreateServiceRequest$serviceName": "

The name of your service. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed.

", + "CreateServiceRequest$taskDefinition": "

The family and revision (family:revision) or full Amazon Resource Name (ARN) of the task definition that you want to run in your service.

", + "CreateServiceRequest$clientToken": "

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. Up to 32 ASCII characters are allowed.

", + "CreateServiceRequest$role": "

The name or full Amazon Resource Name (ARN) of the IAM role that allows your Amazon ECS container agent to make calls to your load balancer on your behalf. This parameter is only required if you are using a load balancer with your service.

", + "DeleteClusterRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that you want to delete.

", + "DeleteServiceRequest$cluster": "

The name of the cluster that hosts the service you want to delete.

", + "DeleteServiceRequest$service": "

The name of the service you want to delete.

", + "Deployment$id": "

The ID of the deployment.

", + "Deployment$status": "

The status of the deployment. Valid values are PRIMARY (for the most recent deployment), ACTIVE (for previous deployments that still have tasks running, but are being replaced with the PRIMARY deployment), and INACTIVE (for deployments that have been completely replaced).

", + "Deployment$taskDefinition": "

The most recent task definition that was specified for the service to use.

", + "DeregisterContainerInstanceRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instance you want to deregister. If you do not specify a cluster, the default cluster is assumed.

", + "DeregisterContainerInstanceRequest$containerInstance": "

The container instance UUID or full Amazon Resource Name (ARN) of the container instance you want to deregister. The ARN contains the arn:aws:ecs namespace, followed by the region of the container instance, the AWS account ID of the container instance owner, the container-instance namespace, and then the container instance UUID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_UUID.

", + "DeregisterTaskDefinitionRequest$taskDefinition": "

The family and revision (family:revision) or full Amazon Resource Name (ARN) of the task definition that you want to deregister.

", + "DescribeContainerInstancesRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances you want to describe. If you do not specify a cluster, the default cluster is assumed.

", + "DescribeServicesRequest$cluster": "

The name of the cluster that hosts the service you want to describe.

", + "DescribeTaskDefinitionRequest$taskDefinition": "

The family for the latest revision, family and revision (family:revision) for a specific revision in the family, or full Amazon Resource Name (ARN) of the task definition that you want to describe.

", + "DescribeTasksRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task you want to describe. If you do not specify a cluster, the default cluster is assumed.

", + "DiscoverPollEndpointRequest$containerInstance": "

The container instance UUID or full Amazon Resource Name (ARN) of the container instance. The ARN contains the arn:aws:ecs namespace, followed by the region of the container instance, the AWS account ID of the container instance owner, the container-instance namespace, and then the container instance UUID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_UUID.

", + "DiscoverPollEndpointRequest$cluster": "

The cluster that the container instance belongs to.

", + "DiscoverPollEndpointResponse$endpoint": "

The endpoint for the Amazon ECS agent to poll.

", + "DiscoverPollEndpointResponse$telemetryEndpoint": "

The telemetry endpoint for the Amazon ECS agent.

", + "Failure$arn": "

The Amazon Resource Name (ARN) of the failed resource.

", + "Failure$reason": "

The reason for the failure.

", + "HostVolumeProperties$sourcePath": "

The path on the host container instance that is presented to the container. If this parameter is empty, then the Docker daemon has assigned a host path for you.

", + "KeyValuePair$name": "

The name of the key value pair.

", + "KeyValuePair$value": "

The value of the key value pair.

", + "ListClustersRequest$nextToken": "

The nextToken value returned from a previous paginated ListClusters request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

", + "ListClustersResponse$nextToken": "

The nextToken value to include in a future ListClusters request. When the results of a ListClusters request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "ListContainerInstancesRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances you want to list. If you do not specify a cluster, the default cluster is assumed..

", + "ListContainerInstancesRequest$nextToken": "

The nextToken value returned from a previous paginated ListContainerInstances request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

", + "ListContainerInstancesResponse$nextToken": "

The nextToken value to include in a future ListContainerInstances request. When the results of a ListContainerInstances request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "ListServicesRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the services you want to list. If you do not specify a cluster, the default cluster is assumed..

", + "ListServicesRequest$nextToken": "

The nextToken value returned from a previous paginated ListServices request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

", + "ListServicesResponse$nextToken": "

The nextToken value to include in a future ListServices request. When the results of a ListServices request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "ListTaskDefinitionFamiliesRequest$familyPrefix": "

The familyPrefix is a string that is used to filter the results of ListTaskDefinitionFamilies. If you specify a familyPrefix, only task definition family names that begin with the familyPrefix string are returned.

", + "ListTaskDefinitionFamiliesRequest$nextToken": "

The nextToken value returned from a previous paginated ListTaskDefinitionFamilies request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

", + "ListTaskDefinitionFamiliesResponse$nextToken": "

The nextToken value to include in a future ListTaskDefinitionFamilies request. When the results of a ListTaskDefinitionFamilies request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "ListTaskDefinitionsRequest$familyPrefix": "

The full family name that you want to filter the ListTaskDefinitions results with. Specifying a familyPrefix will limit the listed task definitions to task definition revisions that belong to that family.

", + "ListTaskDefinitionsRequest$nextToken": "

The nextToken value returned from a previous paginated ListTaskDefinitions request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

", + "ListTaskDefinitionsResponse$nextToken": "

The nextToken value to include in a future ListTaskDefinitions request. When the results of a ListTaskDefinitions request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "ListTasksRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the tasks you want to list. If you do not specify a cluster, the default cluster is assumed..

", + "ListTasksRequest$containerInstance": "

The container instance UUID or full Amazon Resource Name (ARN) of the container instance that you want to filter the ListTasks results with. Specifying a containerInstance will limit the results to tasks that belong to that container instance.

", + "ListTasksRequest$family": "

The name of the family that you want to filter the ListTasks results with. Specifying a family will limit the results to tasks that belong to that family.

", + "ListTasksRequest$nextToken": "

The nextToken value returned from a previous paginated ListTasks request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

", + "ListTasksRequest$startedBy": "

The startedBy value that you want to filter the task results with. Specifying a startedBy value will limit the results to tasks that were started with that value.

", + "ListTasksRequest$serviceName": "

The name of the service that you want to filter the ListTasks results with. Specifying a serviceName will limit the results to tasks that belong to that service.

", + "ListTasksResponse$nextToken": "

The nextToken value to include in a future ListTasks request. When the results of a ListTasks request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "LoadBalancer$loadBalancerName": "

The name of the load balancer.

", + "LoadBalancer$containerName": "

The name of the container to associate with the load balancer.

", + "MountPoint$sourceVolume": "

The name of the volume to mount.

", + "MountPoint$containerPath": "

The path on the container to mount the host volume at.

", + "NetworkBinding$bindIP": "

The IP address that the container is bound to on the container instance.

", + "RegisterContainerInstanceRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that you want to register your container instance with. If you do not specify a cluster, the default cluster is assumed..

", + "RegisterContainerInstanceRequest$instanceIdentityDocument": "

The instance identity document for the Amazon EC2 instance to register. This document can be found by running the following command from the instance: curl http://169.254.169.254/latest/dynamic/instance-identity/document/

", + "RegisterContainerInstanceRequest$instanceIdentityDocumentSignature": "

The instance identity document signature for the Amazon EC2 instance to register. This signature can be found by running the following command from the instance: curl http://169.254.169.254/latest/dynamic/instance-identity/signature/

", + "RegisterTaskDefinitionRequest$family": "

You must specify a family for a task definition, which allows you to track multiple versions of the same task definition. You can think of the family as a name for your task definition. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed.

", + "Resource$name": "

The name of the resource, such as CPU, MEMORY, PORTS, or a user-defined resource.

", + "Resource$type": "

The type of the resource, such as INTEGER, DOUBLE, LONG, or STRINGSET.

", + "RunTaskRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that you want to run your task on. If you do not specify a cluster, the default cluster is assumed..

", + "RunTaskRequest$taskDefinition": "

The family and revision (family:revision) or full Amazon Resource Name (ARN) of the task definition that you want to run.

", + "RunTaskRequest$startedBy": "

An optional tag specified when a task is started. For example if you automatically trigger a task to run a batch process job, you could apply a unique identifier for that job to your task with the startedBy parameter. You can then identify which tasks belong to that job by filtering the results of a ListTasks call with the startedBy value.

If a task is started by an Amazon ECS service, then the startedBy parameter contains the deployment ID of the service that starts it.

", + "ServerException$message": null, + "Service$serviceArn": "

The Amazon Resource Name (ARN) that identifies the service. The ARN contains the arn:aws:ecs namespace, followed by the region of the service, the AWS account ID of the service owner, the service namespace, and then the service name. For example, arn:aws:ecs:region:012345678910:service/my-service.

", + "Service$serviceName": "

A user-generated string that you can use to identify your service.

", + "Service$clusterArn": "

The Amazon Resource Name (ARN) of the of the cluster that hosts the service.

", + "Service$status": "

The status of the service. The valid values are ACTIVE, DRAINING, or INACTIVE.

", + "Service$taskDefinition": "

The task definition to use for tasks in the service. This value is specified when the service is created with CreateService, and it can be modified with UpdateService.

", + "Service$roleArn": "

The Amazon Resource Name (ARN) of the IAM role associated with the service that allows the Amazon ECS container agent to register container instances with a load balancer.

", + "ServiceEvent$id": "

The ID string of the event.

", + "ServiceEvent$message": "

The event message.

", + "StartTaskRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that you want to start your task on. If you do not specify a cluster, the default cluster is assumed..

", + "StartTaskRequest$taskDefinition": "

The family and revision (family:revision) or full Amazon Resource Name (ARN) of the task definition that you want to start.

", + "StartTaskRequest$startedBy": "

An optional tag specified when a task is started. For example if you automatically trigger a task to run a batch process job, you could apply a unique identifier for that job to your task with the startedBy parameter. You can then identify which tasks belong to that job by filtering the results of a ListTasks call with the startedBy value.

If a task is started by an Amazon ECS service, then the startedBy parameter contains the deployment ID of the service that starts it.

", + "StopTaskRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task you want to stop. If you do not specify a cluster, the default cluster is assumed..

", + "StopTaskRequest$task": "

The task UUIDs or full Amazon Resource Name (ARN) entry of the task you would like to stop.

", + "StringList$member": null, + "SubmitContainerStateChangeRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container.

", + "SubmitContainerStateChangeRequest$task": "

The task UUID or full Amazon Resource Name (ARN) of the task that hosts the container.

", + "SubmitContainerStateChangeRequest$containerName": "

The name of the container.

", + "SubmitContainerStateChangeRequest$status": "

The status of the state change request.

", + "SubmitContainerStateChangeRequest$reason": "

The reason for the state change request.

", + "SubmitContainerStateChangeResponse$acknowledgment": "

Acknowledgement of the state change.

", + "SubmitTaskStateChangeRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task.

", + "SubmitTaskStateChangeRequest$task": "

The task UUID or full Amazon Resource Name (ARN) of the task in the state change request.

", + "SubmitTaskStateChangeRequest$status": "

The status of the state change request.

", + "SubmitTaskStateChangeRequest$reason": "

The reason for the state change request.

", + "SubmitTaskStateChangeResponse$acknowledgment": "

Acknowledgement of the state change.

", + "Task$taskArn": "

The Amazon Resource Name (ARN) of the task.

", + "Task$clusterArn": "

The Amazon Resource Name (ARN) of the of the cluster that hosts the task.

", + "Task$taskDefinitionArn": "

The Amazon Resource Name (ARN) of the of the task definition that creates the task.

", + "Task$containerInstanceArn": "

The Amazon Resource Name (ARN) of the container instances that host the task.

", + "Task$lastStatus": "

The last known status of the task.

", + "Task$desiredStatus": "

The desired status of the task.

", + "Task$startedBy": "

The tag specified when a task is started. If the task is started by an Amazon ECS service, then the startedBy parameter contains the deployment ID of the service that starts it.

", + "TaskDefinition$taskDefinitionArn": "

The full Amazon Resource Name (ARN) of the of the task definition.

", + "TaskDefinition$family": "

The family of your task definition. You can think of the family as the name of your task definition.

", + "UpdateContainerAgentRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that your container instance is running on. If you do not specify a cluster, the default cluster is assumed.

", + "UpdateContainerAgentRequest$containerInstance": "

The container instance UUID or full Amazon Resource Name (ARN) entries for the container instance on which you would like to update the Amazon ECS container agent.

", + "UpdateServiceRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that your service is running on. If you do not specify a cluster, the default cluster is assumed.

", + "UpdateServiceRequest$service": "

The name of the service that you want to update.

", + "UpdateServiceRequest$taskDefinition": "

The family and revision (family:revision) or full Amazon Resource Name (ARN) of the task definition that you want to run in your service. If you modify the task definition with UpdateService, Amazon ECS spawns a task with the new version of the task definition and then stops an old task after the new version is running.

", + "VersionInfo$agentVersion": "

The version number of the Amazon ECS container agent.

", + "VersionInfo$agentHash": "

The Git commit hash for the Amazon ECS container agent build on the amazon-ecs-agent GitHub repository.

", + "VersionInfo$dockerVersion": "

The Docker version running on the container instance.

", + "Volume$name": "

The name of the volume. This name is referenced in the sourceVolume parameter of container definition mountPoints.

", + "VolumeFrom$sourceContainer": "

The name of the container to mount volumes from.

" + } + }, + "StringList": { + "base": null, + "refs": { + "ContainerDefinition$links": "

The link parameter allows containers to communicate with each other without the need for port mappings, using the name parameter. The name:internalName construct is analogous to name:alias in Docker links. For more information on linking Docker containers, see https://docs.docker.com/userguide/dockerlinks/.

Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings.

", + "ContainerDefinition$entryPoint": "

Early versions of the Amazon ECS container agent do not properly handle entryPoint parameters. If you have problems using entryPoint, update your container agent or enter your commands and arguments as command array items instead.

The ENTRYPOINT that is passed to the container. For more information on the Docker ENTRYPOINT parameter, see https://docs.docker.com/reference/builder/#entrypoint.

", + "ContainerDefinition$command": "

The CMD that is passed to the container. For more information on the Docker CMD parameter, see https://docs.docker.com/reference/builder/#cmd.

", + "ContainerOverride$command": "

The command to send to the container that overrides the default command from the Docker image or the task definition.

", + "DescribeClustersRequest$clusters": "

A space-separated list of cluster names or full cluster Amazon Resource Name (ARN) entries. If you do not specify a cluster, the default cluster is assumed.

", + "DescribeContainerInstancesRequest$containerInstances": "

A space-separated list of container instance UUIDs or full Amazon Resource Name (ARN) entries.

", + "DescribeServicesRequest$services": "

A list of services you want to describe.

", + "DescribeTasksRequest$tasks": "

A space-separated list of task UUIDs or full Amazon Resource Name (ARN) entries.

", + "ListClustersResponse$clusterArns": "

The list of full Amazon Resource Name (ARN) entries for each cluster associated with your account.

", + "ListContainerInstancesResponse$containerInstanceArns": "

The list of container instance full Amazon Resource Name (ARN) entries for each container instance associated with the specified cluster.

", + "ListServicesResponse$serviceArns": "

The list of full Amazon Resource Name (ARN) entries for each service associated with the specified cluster.

", + "ListTaskDefinitionFamiliesResponse$families": "

The list of task definition family names that match the ListTaskDefinitionFamilies request.

", + "ListTaskDefinitionsResponse$taskDefinitionArns": "

The list of task definition Amazon Resource Name (ARN) entries for the ListTaskDefintions request.

", + "ListTasksResponse$taskArns": "

The list of task Amazon Resource Name (ARN) entries for the ListTasks request.

", + "Resource$stringSetValue": "

When the stringSetValue type is set, the value of the resource must be a string type.

", + "StartTaskRequest$containerInstances": "

The container instance UUIDs or full Amazon Resource Name (ARN) entries for the container instances on which you would like to place your task.

The list of container instances to start tasks on is limited to 10.

" + } + }, + "SubmitContainerStateChangeRequest": { + "base": null, + "refs": { + } + }, + "SubmitContainerStateChangeResponse": { + "base": null, + "refs": { + } + }, + "SubmitTaskStateChangeRequest": { + "base": null, + "refs": { + } + }, + "SubmitTaskStateChangeResponse": { + "base": null, + "refs": { + } + }, + "Task": { + "base": null, + "refs": { + "StopTaskResponse$task": null, + "Tasks$member": null + } + }, + "TaskDefinition": { + "base": null, + "refs": { + "DeregisterTaskDefinitionResponse$taskDefinition": "

The full description of the deregistered task.

", + "DescribeTaskDefinitionResponse$taskDefinition": "

The full task definition description.

", + "RegisterTaskDefinitionResponse$taskDefinition": null + } + }, + "TaskOverride": { + "base": "

A list of container overrides in JSON format that specify the name of a container in a task definition and the command it should run instead of its default.

", + "refs": { + "RunTaskRequest$overrides": "

A list of container overrides in JSON format that specify the name of a container in the specified task definition and the command it should run instead of its default. A total of 8192 characters are allowed for overrides. This limit includes the JSON formatting characters of the override structure.

", + "StartTaskRequest$overrides": "

A list of container overrides in JSON format that specify the name of a container in the specified task definition and the command it should run instead of its default. A total of 8192 characters are allowed for overrides. This limit includes the JSON formatting characters of the override structure.

", + "Task$overrides": "

One or more container overrides.

" + } + }, + "Tasks": { + "base": null, + "refs": { + "DescribeTasksResponse$tasks": "

The list of tasks.

", + "RunTaskResponse$tasks": "

A full description of the tasks that were run. Each task that was successfully placed on your cluster will be described here.

", + "StartTaskResponse$tasks": "

A full description of the tasks that were started. Each task that was successfully placed on your container instances will be described here.

" + } + }, + "Timestamp": { + "base": null, + "refs": { + "Deployment$createdAt": "

The Unix time in seconds and milliseconds when the service was created.

", + "Deployment$updatedAt": "

The Unix time in seconds and milliseconds when the service was last updated.

", + "ServiceEvent$createdAt": "

The Unix time in seconds and milliseconds when the event was triggered.

" + } + }, + "TransportProtocol": { + "base": null, + "refs": { + "NetworkBinding$protocol": "

The protocol used for the network binding.

", + "PortMapping$protocol": "

The protocol used for the port mapping. The default is tcp.

" + } + }, + "UpdateContainerAgentRequest": { + "base": null, + "refs": { + } + }, + "UpdateContainerAgentResponse": { + "base": null, + "refs": { + } + }, + "UpdateInProgressException": { + "base": "

There is already a current Amazon ECS container agent update in progress on the specified container instance. If the container agent becomes disconnected while it is in a transitional stage, such as PENDING or STAGING, the update process can get stuck in that state. However, when the agent reconnects, it will resume where it stopped previously.

", + "refs": { + } + }, + "UpdateServiceRequest": { + "base": null, + "refs": { + } + }, + "UpdateServiceResponse": { + "base": null, + "refs": { + } + }, + "VersionInfo": { + "base": null, + "refs": { + "ContainerInstance$versionInfo": "

The version information for the Amazon ECS container agent and Docker daemon running on the container instance.

", + "RegisterContainerInstanceRequest$versionInfo": "

The version information for the Amazon ECS container agent and Docker daemon running on the container instance.

" + } + }, + "Volume": { + "base": null, + "refs": { + "VolumeList$member": null + } + }, + "VolumeFrom": { + "base": null, + "refs": { + "VolumeFromList$member": null + } + }, + "VolumeFromList": { + "base": null, + "refs": { + "ContainerDefinition$volumesFrom": "

Data volumes to mount from another container.

" + } + }, + "VolumeList": { + "base": null, + "refs": { + "RegisterTaskDefinitionRequest$volumes": "

A list of volume definitions in JSON format that containers in your task may use.

", + "TaskDefinition$volumes": "

The list of volumes in a task. For more information on volume definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon EC2 Container Service Developer Guide.

" + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/ecs/2014-11-13/paginators-1.json b/lib/aws-sdk/Aws/data/ecs/2014-11-13/paginators-1.json new file mode 100644 index 0000000..081a2df --- /dev/null +++ b/lib/aws-sdk/Aws/data/ecs/2014-11-13/paginators-1.json @@ -0,0 +1,40 @@ +{ + "pagination": { + "ListClusters": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "clusterArns" + }, + "ListContainerInstances": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "containerInstanceArns" + }, + "ListTaskDefinitions": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "taskDefinitionArns" + }, + "ListTaskDefinitionFamilies": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "families" + }, + "ListTasks": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "taskArns" + }, + "ListServices": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "serviceArns" + } + } +} diff --git a/lib/aws-sdk/Aws/data/ecs/2014-11-13/waiters-2.json b/lib/aws-sdk/Aws/data/ecs/2014-11-13/waiters-2.json new file mode 100644 index 0000000..8866d15 --- /dev/null +++ b/lib/aws-sdk/Aws/data/ecs/2014-11-13/waiters-2.json @@ -0,0 +1,93 @@ +{ + "version": 2, + "waiters": { + "TasksRunning": { + "delay": 6, + "operation": "DescribeTasks", + "maxAttempts": 100, + "acceptors": [ + { + "expected": "STOPPED", + "matcher": "pathAny", + "state": "failure", + "argument": "tasks[].lastStatus" + }, + { + "expected": "MISSING", + "matcher": "pathAny", + "state": "failure", + "argument": "failures[].reason" + }, + { + "expected": "RUNNING", + "matcher": "pathAll", + "state": "success", + "argument": "tasks[].lastStatus" + } + ] + }, + "TasksStopped": { + "delay": 6, + "operation": "DescribeTasks", + "maxAttempts": 100, + "acceptors": [ + { + "expected": "STOPPED", + "matcher": "pathAll", + "state": "success", + "argument": "tasks[].lastStatus" + } + ] + }, + "ServicesStable": { + "delay": 15, + "operation": "DescribeServices", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "MISSING", + "matcher": "pathAny", + "state": "failure", + "argument": "failures[].reason" + }, + { + "expected": "DRAINING", + "matcher": "pathAny", + "state": "failure", + "argument": "services[].status" + }, + { + "expected": "INACTIVE", + "matcher": "pathAny", + "state": "failure", + "argument": "services[].status" + }, + { + "expected": true, + "matcher": "path", + "state": "success", + "argument": "services | [@[?length(deployments)!=`1`], @[?desiredCount!=runningCount]][] | length(@) == `0`" + } + ] + }, + "ServicesInactive": { + "delay": 15, + "operation": "DescribeServices", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "MISSING", + "matcher": "pathAny", + "state": "failure", + "argument": "failures[].reason" + }, + { + "expected": "INACTIVE", + "matcher": "pathAny", + "state": "success", + "argument": "services[].status" + } + ] + } + } +} diff --git a/lib/aws-sdk/Aws/data/elasticache/2015-02-02/api-2.json b/lib/aws-sdk/Aws/data/elasticache/2015-02-02/api-2.json new file mode 100644 index 0000000..cb6c24b --- /dev/null +++ b/lib/aws-sdk/Aws/data/elasticache/2015-02-02/api-2.json @@ -0,0 +1,3807 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2015-02-02", + "endpointPrefix":"elasticache", + "serviceFullName":"Amazon ElastiCache", + "signatureVersion":"v4", + "xmlNamespace":"http://elasticache.amazonaws.com/doc/2015-02-02/", + "protocol":"query" + }, + "operations":{ + "AddTagsToResource":{ + "name":"AddTagsToResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddTagsToResourceMessage"}, + "output":{ + "shape":"TagListMessage", + "resultWrapper":"AddTagsToResourceResult" + }, + "errors":[ + { + "shape":"CacheClusterNotFoundFault", + "error":{ + "code":"CacheClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SnapshotNotFoundFault", + "error":{ + "code":"SnapshotNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TagQuotaPerResourceExceeded", + "error":{ + "code":"TagQuotaPerResourceExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidARNFault", + "error":{ + "code":"InvalidARN", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "AuthorizeCacheSecurityGroupIngress":{ + "name":"AuthorizeCacheSecurityGroupIngress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AuthorizeCacheSecurityGroupIngressMessage"}, + "output":{ + "shape":"AuthorizeCacheSecurityGroupIngressResult", + "wrapper":true, + "resultWrapper":"AuthorizeCacheSecurityGroupIngressResult" + }, + "errors":[ + { + "shape":"CacheSecurityGroupNotFoundFault", + "error":{ + "code":"CacheSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidCacheSecurityGroupStateFault", + "error":{ + "code":"InvalidCacheSecurityGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AuthorizationAlreadyExistsFault", + "error":{ + "code":"AuthorizationAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CopySnapshot":{ + "name":"CopySnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CopySnapshotMessage"}, + "output":{ + "shape":"CopySnapshotResult", + "wrapper":true, + "resultWrapper":"CopySnapshotResult" + }, + "errors":[ + { + "shape":"SnapshotAlreadyExistsFault", + "error":{ + "code":"SnapshotAlreadyExistsFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SnapshotNotFoundFault", + "error":{ + "code":"SnapshotNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SnapshotQuotaExceededFault", + "error":{ + "code":"SnapshotQuotaExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidSnapshotStateFault", + "error":{ + "code":"InvalidSnapshotState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateCacheCluster":{ + "name":"CreateCacheCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateCacheClusterMessage"}, + "output":{ + "shape":"CreateCacheClusterResult", + "wrapper":true, + "resultWrapper":"CreateCacheClusterResult" + }, + "errors":[ + { + "shape":"ReplicationGroupNotFoundFault", + "error":{ + "code":"ReplicationGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidReplicationGroupStateFault", + "error":{ + "code":"InvalidReplicationGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CacheClusterAlreadyExistsFault", + "error":{ + "code":"CacheClusterAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InsufficientCacheClusterCapacityFault", + "error":{ + "code":"InsufficientCacheClusterCapacity", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CacheSecurityGroupNotFoundFault", + "error":{ + "code":"CacheSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CacheSubnetGroupNotFoundFault", + "error":{ + "code":"CacheSubnetGroupNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterQuotaForCustomerExceededFault", + "error":{ + "code":"ClusterQuotaForCustomerExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NodeQuotaForClusterExceededFault", + "error":{ + "code":"NodeQuotaForClusterExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NodeQuotaForCustomerExceededFault", + "error":{ + "code":"NodeQuotaForCustomerExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CacheParameterGroupNotFoundFault", + "error":{ + "code":"CacheParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidVPCNetworkStateFault", + "error":{ + "code":"InvalidVPCNetworkStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TagQuotaPerResourceExceeded", + "error":{ + "code":"TagQuotaPerResourceExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateCacheParameterGroup":{ + "name":"CreateCacheParameterGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateCacheParameterGroupMessage"}, + "output":{ + "shape":"CreateCacheParameterGroupResult", + "wrapper":true, + "resultWrapper":"CreateCacheParameterGroupResult" + }, + "errors":[ + { + "shape":"CacheParameterGroupQuotaExceededFault", + "error":{ + "code":"CacheParameterGroupQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CacheParameterGroupAlreadyExistsFault", + "error":{ + "code":"CacheParameterGroupAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidCacheParameterGroupStateFault", + "error":{ + "code":"InvalidCacheParameterGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateCacheSecurityGroup":{ + "name":"CreateCacheSecurityGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateCacheSecurityGroupMessage"}, + "output":{ + "shape":"CreateCacheSecurityGroupResult", + "wrapper":true, + "resultWrapper":"CreateCacheSecurityGroupResult" + }, + "errors":[ + { + "shape":"CacheSecurityGroupAlreadyExistsFault", + "error":{ + "code":"CacheSecurityGroupAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CacheSecurityGroupQuotaExceededFault", + "error":{ + "code":"QuotaExceeded.CacheSecurityGroup", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateCacheSubnetGroup":{ + "name":"CreateCacheSubnetGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateCacheSubnetGroupMessage"}, + "output":{ + "shape":"CreateCacheSubnetGroupResult", + "wrapper":true, + "resultWrapper":"CreateCacheSubnetGroupResult" + }, + "errors":[ + { + "shape":"CacheSubnetGroupAlreadyExistsFault", + "error":{ + "code":"CacheSubnetGroupAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CacheSubnetGroupQuotaExceededFault", + "error":{ + "code":"CacheSubnetGroupQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CacheSubnetQuotaExceededFault", + "error":{ + "code":"CacheSubnetQuotaExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidSubnet", + "error":{ + "code":"InvalidSubnet", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateReplicationGroup":{ + "name":"CreateReplicationGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateReplicationGroupMessage"}, + "output":{ + "shape":"CreateReplicationGroupResult", + "wrapper":true, + "resultWrapper":"CreateReplicationGroupResult" + }, + "errors":[ + { + "shape":"CacheClusterNotFoundFault", + "error":{ + "code":"CacheClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidCacheClusterStateFault", + "error":{ + "code":"InvalidCacheClusterState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ReplicationGroupAlreadyExistsFault", + "error":{ + "code":"ReplicationGroupAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InsufficientCacheClusterCapacityFault", + "error":{ + "code":"InsufficientCacheClusterCapacity", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CacheSecurityGroupNotFoundFault", + "error":{ + "code":"CacheSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CacheSubnetGroupNotFoundFault", + "error":{ + "code":"CacheSubnetGroupNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterQuotaForCustomerExceededFault", + "error":{ + "code":"ClusterQuotaForCustomerExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NodeQuotaForClusterExceededFault", + "error":{ + "code":"NodeQuotaForClusterExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NodeQuotaForCustomerExceededFault", + "error":{ + "code":"NodeQuotaForCustomerExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CacheParameterGroupNotFoundFault", + "error":{ + "code":"CacheParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidVPCNetworkStateFault", + "error":{ + "code":"InvalidVPCNetworkStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TagQuotaPerResourceExceeded", + "error":{ + "code":"TagQuotaPerResourceExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateSnapshot":{ + "name":"CreateSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateSnapshotMessage"}, + "output":{ + "shape":"CreateSnapshotResult", + "wrapper":true, + "resultWrapper":"CreateSnapshotResult" + }, + "errors":[ + { + "shape":"SnapshotAlreadyExistsFault", + "error":{ + "code":"SnapshotAlreadyExistsFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CacheClusterNotFoundFault", + "error":{ + "code":"CacheClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidCacheClusterStateFault", + "error":{ + "code":"InvalidCacheClusterState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SnapshotQuotaExceededFault", + "error":{ + "code":"SnapshotQuotaExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SnapshotFeatureNotSupportedFault", + "error":{ + "code":"SnapshotFeatureNotSupportedFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteCacheCluster":{ + "name":"DeleteCacheCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteCacheClusterMessage"}, + "output":{ + "shape":"DeleteCacheClusterResult", + "wrapper":true, + "resultWrapper":"DeleteCacheClusterResult" + }, + "errors":[ + { + "shape":"CacheClusterNotFoundFault", + "error":{ + "code":"CacheClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidCacheClusterStateFault", + "error":{ + "code":"InvalidCacheClusterState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SnapshotAlreadyExistsFault", + "error":{ + "code":"SnapshotAlreadyExistsFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SnapshotFeatureNotSupportedFault", + "error":{ + "code":"SnapshotFeatureNotSupportedFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SnapshotQuotaExceededFault", + "error":{ + "code":"SnapshotQuotaExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteCacheParameterGroup":{ + "name":"DeleteCacheParameterGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteCacheParameterGroupMessage"}, + "errors":[ + { + "shape":"InvalidCacheParameterGroupStateFault", + "error":{ + "code":"InvalidCacheParameterGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CacheParameterGroupNotFoundFault", + "error":{ + "code":"CacheParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteCacheSecurityGroup":{ + "name":"DeleteCacheSecurityGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteCacheSecurityGroupMessage"}, + "errors":[ + { + "shape":"InvalidCacheSecurityGroupStateFault", + "error":{ + "code":"InvalidCacheSecurityGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CacheSecurityGroupNotFoundFault", + "error":{ + "code":"CacheSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteCacheSubnetGroup":{ + "name":"DeleteCacheSubnetGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteCacheSubnetGroupMessage"}, + "errors":[ + { + "shape":"CacheSubnetGroupInUse", + "error":{ + "code":"CacheSubnetGroupInUse", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CacheSubnetGroupNotFoundFault", + "error":{ + "code":"CacheSubnetGroupNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteReplicationGroup":{ + "name":"DeleteReplicationGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteReplicationGroupMessage"}, + "output":{ + "shape":"DeleteReplicationGroupResult", + "wrapper":true, + "resultWrapper":"DeleteReplicationGroupResult" + }, + "errors":[ + { + "shape":"ReplicationGroupNotFoundFault", + "error":{ + "code":"ReplicationGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidReplicationGroupStateFault", + "error":{ + "code":"InvalidReplicationGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SnapshotAlreadyExistsFault", + "error":{ + "code":"SnapshotAlreadyExistsFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SnapshotFeatureNotSupportedFault", + "error":{ + "code":"SnapshotFeatureNotSupportedFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SnapshotQuotaExceededFault", + "error":{ + "code":"SnapshotQuotaExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteSnapshot":{ + "name":"DeleteSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteSnapshotMessage"}, + "output":{ + "shape":"DeleteSnapshotResult", + "wrapper":true, + "resultWrapper":"DeleteSnapshotResult" + }, + "errors":[ + { + "shape":"SnapshotNotFoundFault", + "error":{ + "code":"SnapshotNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidSnapshotStateFault", + "error":{ + "code":"InvalidSnapshotState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeCacheClusters":{ + "name":"DescribeCacheClusters", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeCacheClustersMessage"}, + "output":{ + "shape":"CacheClusterMessage", + "resultWrapper":"DescribeCacheClustersResult" + }, + "errors":[ + { + "shape":"CacheClusterNotFoundFault", + "error":{ + "code":"CacheClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeCacheEngineVersions":{ + "name":"DescribeCacheEngineVersions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeCacheEngineVersionsMessage"}, + "output":{ + "shape":"CacheEngineVersionMessage", + "resultWrapper":"DescribeCacheEngineVersionsResult" + } + }, + "DescribeCacheParameterGroups":{ + "name":"DescribeCacheParameterGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeCacheParameterGroupsMessage"}, + "output":{ + "shape":"CacheParameterGroupsMessage", + "resultWrapper":"DescribeCacheParameterGroupsResult" + }, + "errors":[ + { + "shape":"CacheParameterGroupNotFoundFault", + "error":{ + "code":"CacheParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeCacheParameters":{ + "name":"DescribeCacheParameters", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeCacheParametersMessage"}, + "output":{ + "shape":"CacheParameterGroupDetails", + "resultWrapper":"DescribeCacheParametersResult" + }, + "errors":[ + { + "shape":"CacheParameterGroupNotFoundFault", + "error":{ + "code":"CacheParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeCacheSecurityGroups":{ + "name":"DescribeCacheSecurityGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeCacheSecurityGroupsMessage"}, + "output":{ + "shape":"CacheSecurityGroupMessage", + "resultWrapper":"DescribeCacheSecurityGroupsResult" + }, + "errors":[ + { + "shape":"CacheSecurityGroupNotFoundFault", + "error":{ + "code":"CacheSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeCacheSubnetGroups":{ + "name":"DescribeCacheSubnetGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeCacheSubnetGroupsMessage"}, + "output":{ + "shape":"CacheSubnetGroupMessage", + "resultWrapper":"DescribeCacheSubnetGroupsResult" + }, + "errors":[ + { + "shape":"CacheSubnetGroupNotFoundFault", + "error":{ + "code":"CacheSubnetGroupNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeEngineDefaultParameters":{ + "name":"DescribeEngineDefaultParameters", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeEngineDefaultParametersMessage"}, + "output":{ + "shape":"DescribeEngineDefaultParametersResult", + "wrapper":true, + "resultWrapper":"DescribeEngineDefaultParametersResult" + }, + "errors":[ + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeEvents":{ + "name":"DescribeEvents", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeEventsMessage"}, + "output":{ + "shape":"EventsMessage", + "resultWrapper":"DescribeEventsResult" + }, + "errors":[ + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeReplicationGroups":{ + "name":"DescribeReplicationGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeReplicationGroupsMessage"}, + "output":{ + "shape":"ReplicationGroupMessage", + "resultWrapper":"DescribeReplicationGroupsResult" + }, + "errors":[ + { + "shape":"ReplicationGroupNotFoundFault", + "error":{ + "code":"ReplicationGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeReservedCacheNodes":{ + "name":"DescribeReservedCacheNodes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeReservedCacheNodesMessage"}, + "output":{ + "shape":"ReservedCacheNodeMessage", + "resultWrapper":"DescribeReservedCacheNodesResult" + }, + "errors":[ + { + "shape":"ReservedCacheNodeNotFoundFault", + "error":{ + "code":"ReservedCacheNodeNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeReservedCacheNodesOfferings":{ + "name":"DescribeReservedCacheNodesOfferings", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeReservedCacheNodesOfferingsMessage"}, + "output":{ + "shape":"ReservedCacheNodesOfferingMessage", + "resultWrapper":"DescribeReservedCacheNodesOfferingsResult" + }, + "errors":[ + { + "shape":"ReservedCacheNodesOfferingNotFoundFault", + "error":{ + "code":"ReservedCacheNodesOfferingNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeSnapshots":{ + "name":"DescribeSnapshots", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSnapshotsMessage"}, + "output":{ + "shape":"DescribeSnapshotsListMessage", + "resultWrapper":"DescribeSnapshotsResult" + }, + "errors":[ + { + "shape":"CacheClusterNotFoundFault", + "error":{ + "code":"CacheClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SnapshotNotFoundFault", + "error":{ + "code":"SnapshotNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForResourceMessage"}, + "output":{ + "shape":"TagListMessage", + "resultWrapper":"ListTagsForResourceResult" + }, + "errors":[ + { + "shape":"CacheClusterNotFoundFault", + "error":{ + "code":"CacheClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SnapshotNotFoundFault", + "error":{ + "code":"SnapshotNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidARNFault", + "error":{ + "code":"InvalidARN", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "ModifyCacheCluster":{ + "name":"ModifyCacheCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyCacheClusterMessage"}, + "output":{ + "shape":"ModifyCacheClusterResult", + "wrapper":true, + "resultWrapper":"ModifyCacheClusterResult" + }, + "errors":[ + { + "shape":"InvalidCacheClusterStateFault", + "error":{ + "code":"InvalidCacheClusterState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidCacheSecurityGroupStateFault", + "error":{ + "code":"InvalidCacheSecurityGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InsufficientCacheClusterCapacityFault", + "error":{ + "code":"InsufficientCacheClusterCapacity", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CacheClusterNotFoundFault", + "error":{ + "code":"CacheClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NodeQuotaForClusterExceededFault", + "error":{ + "code":"NodeQuotaForClusterExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NodeQuotaForCustomerExceededFault", + "error":{ + "code":"NodeQuotaForCustomerExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CacheSecurityGroupNotFoundFault", + "error":{ + "code":"CacheSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CacheParameterGroupNotFoundFault", + "error":{ + "code":"CacheParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidVPCNetworkStateFault", + "error":{ + "code":"InvalidVPCNetworkStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "ModifyCacheParameterGroup":{ + "name":"ModifyCacheParameterGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyCacheParameterGroupMessage"}, + "output":{ + "shape":"CacheParameterGroupNameMessage", + "resultWrapper":"ModifyCacheParameterGroupResult" + }, + "errors":[ + { + "shape":"CacheParameterGroupNotFoundFault", + "error":{ + "code":"CacheParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidCacheParameterGroupStateFault", + "error":{ + "code":"InvalidCacheParameterGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "ModifyCacheSubnetGroup":{ + "name":"ModifyCacheSubnetGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyCacheSubnetGroupMessage"}, + "output":{ + "shape":"ModifyCacheSubnetGroupResult", + "wrapper":true, + "resultWrapper":"ModifyCacheSubnetGroupResult" + }, + "errors":[ + { + "shape":"CacheSubnetGroupNotFoundFault", + "error":{ + "code":"CacheSubnetGroupNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CacheSubnetQuotaExceededFault", + "error":{ + "code":"CacheSubnetQuotaExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SubnetInUse", + "error":{ + "code":"SubnetInUse", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidSubnet", + "error":{ + "code":"InvalidSubnet", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "ModifyReplicationGroup":{ + "name":"ModifyReplicationGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyReplicationGroupMessage"}, + "output":{ + "shape":"ModifyReplicationGroupResult", + "wrapper":true, + "resultWrapper":"ModifyReplicationGroupResult" + }, + "errors":[ + { + "shape":"ReplicationGroupNotFoundFault", + "error":{ + "code":"ReplicationGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidReplicationGroupStateFault", + "error":{ + "code":"InvalidReplicationGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidCacheClusterStateFault", + "error":{ + "code":"InvalidCacheClusterState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidCacheSecurityGroupStateFault", + "error":{ + "code":"InvalidCacheSecurityGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InsufficientCacheClusterCapacityFault", + "error":{ + "code":"InsufficientCacheClusterCapacity", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CacheClusterNotFoundFault", + "error":{ + "code":"CacheClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NodeQuotaForClusterExceededFault", + "error":{ + "code":"NodeQuotaForClusterExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NodeQuotaForCustomerExceededFault", + "error":{ + "code":"NodeQuotaForCustomerExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CacheSecurityGroupNotFoundFault", + "error":{ + "code":"CacheSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CacheParameterGroupNotFoundFault", + "error":{ + "code":"CacheParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidVPCNetworkStateFault", + "error":{ + "code":"InvalidVPCNetworkStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "PurchaseReservedCacheNodesOffering":{ + "name":"PurchaseReservedCacheNodesOffering", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PurchaseReservedCacheNodesOfferingMessage"}, + "output":{ + "shape":"PurchaseReservedCacheNodesOfferingResult", + "wrapper":true, + "resultWrapper":"PurchaseReservedCacheNodesOfferingResult" + }, + "errors":[ + { + "shape":"ReservedCacheNodesOfferingNotFoundFault", + "error":{ + "code":"ReservedCacheNodesOfferingNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ReservedCacheNodeAlreadyExistsFault", + "error":{ + "code":"ReservedCacheNodeAlreadyExists", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ReservedCacheNodeQuotaExceededFault", + "error":{ + "code":"ReservedCacheNodeQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "RebootCacheCluster":{ + "name":"RebootCacheCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RebootCacheClusterMessage"}, + "output":{ + "shape":"RebootCacheClusterResult", + "wrapper":true, + "resultWrapper":"RebootCacheClusterResult" + }, + "errors":[ + { + "shape":"InvalidCacheClusterStateFault", + "error":{ + "code":"InvalidCacheClusterState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CacheClusterNotFoundFault", + "error":{ + "code":"CacheClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "RemoveTagsFromResource":{ + "name":"RemoveTagsFromResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RemoveTagsFromResourceMessage"}, + "output":{ + "shape":"TagListMessage", + "resultWrapper":"RemoveTagsFromResourceResult" + }, + "errors":[ + { + "shape":"CacheClusterNotFoundFault", + "error":{ + "code":"CacheClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SnapshotNotFoundFault", + "error":{ + "code":"SnapshotNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidARNFault", + "error":{ + "code":"InvalidARN", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TagNotFoundFault", + "error":{ + "code":"TagNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "ResetCacheParameterGroup":{ + "name":"ResetCacheParameterGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ResetCacheParameterGroupMessage"}, + "output":{ + "shape":"CacheParameterGroupNameMessage", + "resultWrapper":"ResetCacheParameterGroupResult" + }, + "errors":[ + { + "shape":"InvalidCacheParameterGroupStateFault", + "error":{ + "code":"InvalidCacheParameterGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CacheParameterGroupNotFoundFault", + "error":{ + "code":"CacheParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "RevokeCacheSecurityGroupIngress":{ + "name":"RevokeCacheSecurityGroupIngress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RevokeCacheSecurityGroupIngressMessage"}, + "output":{ + "shape":"RevokeCacheSecurityGroupIngressResult", + "wrapper":true, + "resultWrapper":"RevokeCacheSecurityGroupIngressResult" + }, + "errors":[ + { + "shape":"CacheSecurityGroupNotFoundFault", + "error":{ + "code":"CacheSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AuthorizationNotFoundFault", + "error":{ + "code":"AuthorizationNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidCacheSecurityGroupStateFault", + "error":{ + "code":"InvalidCacheSecurityGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + } + }, + "shapes":{ + "AZMode":{ + "type":"string", + "enum":[ + "single-az", + "cross-az" + ] + }, + "AddTagsToResourceMessage":{ + "type":"structure", + "required":[ + "ResourceName", + "Tags" + ], + "members":{ + "ResourceName":{"shape":"String"}, + "Tags":{"shape":"TagList"} + } + }, + "AuthorizationAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AuthorizationAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "AuthorizationNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AuthorizationNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "AuthorizeCacheSecurityGroupIngressMessage":{ + "type":"structure", + "required":[ + "CacheSecurityGroupName", + "EC2SecurityGroupName", + "EC2SecurityGroupOwnerId" + ], + "members":{ + "CacheSecurityGroupName":{"shape":"String"}, + "EC2SecurityGroupName":{"shape":"String"}, + "EC2SecurityGroupOwnerId":{"shape":"String"} + } + }, + "AutomaticFailoverStatus":{ + "type":"string", + "enum":[ + "enabled", + "disabled", + "enabling", + "disabling" + ] + }, + "AvailabilityZone":{ + "type":"structure", + "members":{ + "Name":{"shape":"String"} + }, + "wrapper":true + }, + "AvailabilityZonesList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"AvailabilityZone" + } + }, + "AwsQueryErrorMessage":{"type":"string"}, + "Boolean":{"type":"boolean"}, + "BooleanOptional":{"type":"boolean"}, + "CacheCluster":{ + "type":"structure", + "members":{ + "CacheClusterId":{"shape":"String"}, + "ConfigurationEndpoint":{"shape":"Endpoint"}, + "ClientDownloadLandingPage":{"shape":"String"}, + "CacheNodeType":{"shape":"String"}, + "Engine":{"shape":"String"}, + "EngineVersion":{"shape":"String"}, + "CacheClusterStatus":{"shape":"String"}, + "NumCacheNodes":{"shape":"IntegerOptional"}, + "PreferredAvailabilityZone":{"shape":"String"}, + "CacheClusterCreateTime":{"shape":"TStamp"}, + "PreferredMaintenanceWindow":{"shape":"String"}, + "PendingModifiedValues":{"shape":"PendingModifiedValues"}, + "NotificationConfiguration":{"shape":"NotificationConfiguration"}, + "CacheSecurityGroups":{"shape":"CacheSecurityGroupMembershipList"}, + "CacheParameterGroup":{"shape":"CacheParameterGroupStatus"}, + "CacheSubnetGroupName":{"shape":"String"}, + "CacheNodes":{"shape":"CacheNodeList"}, + "AutoMinorVersionUpgrade":{"shape":"Boolean"}, + "SecurityGroups":{"shape":"SecurityGroupMembershipList"}, + "ReplicationGroupId":{"shape":"String"}, + "SnapshotRetentionLimit":{"shape":"IntegerOptional"}, + "SnapshotWindow":{"shape":"String"} + }, + "wrapper":true + }, + "CacheClusterAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"CacheClusterAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "CacheClusterList":{ + "type":"list", + "member":{ + "shape":"CacheCluster", + "locationName":"CacheCluster" + } + }, + "CacheClusterMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "CacheClusters":{"shape":"CacheClusterList"} + } + }, + "CacheClusterNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"CacheClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "CacheEngineVersion":{ + "type":"structure", + "members":{ + "Engine":{"shape":"String"}, + "EngineVersion":{"shape":"String"}, + "CacheParameterGroupFamily":{"shape":"String"}, + "CacheEngineDescription":{"shape":"String"}, + "CacheEngineVersionDescription":{"shape":"String"} + } + }, + "CacheEngineVersionList":{ + "type":"list", + "member":{ + "shape":"CacheEngineVersion", + "locationName":"CacheEngineVersion" + } + }, + "CacheEngineVersionMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "CacheEngineVersions":{"shape":"CacheEngineVersionList"} + } + }, + "CacheNode":{ + "type":"structure", + "members":{ + "CacheNodeId":{"shape":"String"}, + "CacheNodeStatus":{"shape":"String"}, + "CacheNodeCreateTime":{"shape":"TStamp"}, + "Endpoint":{"shape":"Endpoint"}, + "ParameterGroupStatus":{"shape":"String"}, + "SourceCacheNodeId":{"shape":"String"}, + "CustomerAvailabilityZone":{"shape":"String"} + } + }, + "CacheNodeIdsList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"CacheNodeId" + } + }, + "CacheNodeList":{ + "type":"list", + "member":{ + "shape":"CacheNode", + "locationName":"CacheNode" + } + }, + "CacheNodeTypeSpecificParameter":{ + "type":"structure", + "members":{ + "ParameterName":{"shape":"String"}, + "Description":{"shape":"String"}, + "Source":{"shape":"String"}, + "DataType":{"shape":"String"}, + "AllowedValues":{"shape":"String"}, + "IsModifiable":{"shape":"Boolean"}, + "MinimumEngineVersion":{"shape":"String"}, + "CacheNodeTypeSpecificValues":{"shape":"CacheNodeTypeSpecificValueList"} + } + }, + "CacheNodeTypeSpecificParametersList":{ + "type":"list", + "member":{ + "shape":"CacheNodeTypeSpecificParameter", + "locationName":"CacheNodeTypeSpecificParameter" + } + }, + "CacheNodeTypeSpecificValue":{ + "type":"structure", + "members":{ + "CacheNodeType":{"shape":"String"}, + "Value":{"shape":"String"} + } + }, + "CacheNodeTypeSpecificValueList":{ + "type":"list", + "member":{ + "shape":"CacheNodeTypeSpecificValue", + "locationName":"CacheNodeTypeSpecificValue" + } + }, + "CacheParameterGroup":{ + "type":"structure", + "members":{ + "CacheParameterGroupName":{"shape":"String"}, + "CacheParameterGroupFamily":{"shape":"String"}, + "Description":{"shape":"String"} + }, + "wrapper":true + }, + "CacheParameterGroupAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"CacheParameterGroupAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "CacheParameterGroupDetails":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "Parameters":{"shape":"ParametersList"}, + "CacheNodeTypeSpecificParameters":{"shape":"CacheNodeTypeSpecificParametersList"} + } + }, + "CacheParameterGroupList":{ + "type":"list", + "member":{ + "shape":"CacheParameterGroup", + "locationName":"CacheParameterGroup" + } + }, + "CacheParameterGroupNameMessage":{ + "type":"structure", + "members":{ + "CacheParameterGroupName":{"shape":"String"} + } + }, + "CacheParameterGroupNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"CacheParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "CacheParameterGroupQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"CacheParameterGroupQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "CacheParameterGroupStatus":{ + "type":"structure", + "members":{ + "CacheParameterGroupName":{"shape":"String"}, + "ParameterApplyStatus":{"shape":"String"}, + "CacheNodeIdsToReboot":{"shape":"CacheNodeIdsList"} + } + }, + "CacheParameterGroupsMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "CacheParameterGroups":{"shape":"CacheParameterGroupList"} + } + }, + "CacheSecurityGroup":{ + "type":"structure", + "members":{ + "OwnerId":{"shape":"String"}, + "CacheSecurityGroupName":{"shape":"String"}, + "Description":{"shape":"String"}, + "EC2SecurityGroups":{"shape":"EC2SecurityGroupList"} + }, + "wrapper":true + }, + "CacheSecurityGroupAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"CacheSecurityGroupAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "CacheSecurityGroupMembership":{ + "type":"structure", + "members":{ + "CacheSecurityGroupName":{"shape":"String"}, + "Status":{"shape":"String"} + } + }, + "CacheSecurityGroupMembershipList":{ + "type":"list", + "member":{ + "shape":"CacheSecurityGroupMembership", + "locationName":"CacheSecurityGroup" + } + }, + "CacheSecurityGroupMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "CacheSecurityGroups":{"shape":"CacheSecurityGroups"} + } + }, + "CacheSecurityGroupNameList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"CacheSecurityGroupName" + } + }, + "CacheSecurityGroupNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"CacheSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "CacheSecurityGroupQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"QuotaExceeded.CacheSecurityGroup", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "CacheSecurityGroups":{ + "type":"list", + "member":{ + "shape":"CacheSecurityGroup", + "locationName":"CacheSecurityGroup" + } + }, + "CacheSubnetGroup":{ + "type":"structure", + "members":{ + "CacheSubnetGroupName":{"shape":"String"}, + "CacheSubnetGroupDescription":{"shape":"String"}, + "VpcId":{"shape":"String"}, + "Subnets":{"shape":"SubnetList"} + }, + "wrapper":true + }, + "CacheSubnetGroupAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"CacheSubnetGroupAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "CacheSubnetGroupInUse":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"CacheSubnetGroupInUse", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "CacheSubnetGroupMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "CacheSubnetGroups":{"shape":"CacheSubnetGroups"} + } + }, + "CacheSubnetGroupNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"CacheSubnetGroupNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "CacheSubnetGroupQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"CacheSubnetGroupQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "CacheSubnetGroups":{ + "type":"list", + "member":{ + "shape":"CacheSubnetGroup", + "locationName":"CacheSubnetGroup" + } + }, + "CacheSubnetQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"CacheSubnetQuotaExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ClusterIdList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"ClusterId" + } + }, + "ClusterQuotaForCustomerExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ClusterQuotaForCustomerExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "CopySnapshotMessage":{ + "type":"structure", + "required":[ + "SourceSnapshotName", + "TargetSnapshotName" + ], + "members":{ + "SourceSnapshotName":{"shape":"String"}, + "TargetSnapshotName":{"shape":"String"} + } + }, + "CreateCacheClusterMessage":{ + "type":"structure", + "required":["CacheClusterId"], + "members":{ + "CacheClusterId":{"shape":"String"}, + "ReplicationGroupId":{"shape":"String"}, + "AZMode":{"shape":"AZMode"}, + "PreferredAvailabilityZone":{"shape":"String"}, + "PreferredAvailabilityZones":{"shape":"PreferredAvailabilityZoneList"}, + "NumCacheNodes":{"shape":"IntegerOptional"}, + "CacheNodeType":{"shape":"String"}, + "Engine":{"shape":"String"}, + "EngineVersion":{"shape":"String"}, + "CacheParameterGroupName":{"shape":"String"}, + "CacheSubnetGroupName":{"shape":"String"}, + "CacheSecurityGroupNames":{"shape":"CacheSecurityGroupNameList"}, + "SecurityGroupIds":{"shape":"SecurityGroupIdsList"}, + "Tags":{"shape":"TagList"}, + "SnapshotArns":{"shape":"SnapshotArnsList"}, + "SnapshotName":{"shape":"String"}, + "PreferredMaintenanceWindow":{"shape":"String"}, + "Port":{"shape":"IntegerOptional"}, + "NotificationTopicArn":{"shape":"String"}, + "AutoMinorVersionUpgrade":{"shape":"BooleanOptional"}, + "SnapshotRetentionLimit":{"shape":"IntegerOptional"}, + "SnapshotWindow":{"shape":"String"} + } + }, + "CreateCacheParameterGroupMessage":{ + "type":"structure", + "required":[ + "CacheParameterGroupName", + "CacheParameterGroupFamily", + "Description" + ], + "members":{ + "CacheParameterGroupName":{"shape":"String"}, + "CacheParameterGroupFamily":{"shape":"String"}, + "Description":{"shape":"String"} + } + }, + "CreateCacheSecurityGroupMessage":{ + "type":"structure", + "required":[ + "CacheSecurityGroupName", + "Description" + ], + "members":{ + "CacheSecurityGroupName":{"shape":"String"}, + "Description":{"shape":"String"} + } + }, + "CreateCacheSubnetGroupMessage":{ + "type":"structure", + "required":[ + "CacheSubnetGroupName", + "CacheSubnetGroupDescription", + "SubnetIds" + ], + "members":{ + "CacheSubnetGroupName":{"shape":"String"}, + "CacheSubnetGroupDescription":{"shape":"String"}, + "SubnetIds":{"shape":"SubnetIdentifierList"} + } + }, + "CreateReplicationGroupMessage":{ + "type":"structure", + "required":[ + "ReplicationGroupId", + "ReplicationGroupDescription" + ], + "members":{ + "ReplicationGroupId":{"shape":"String"}, + "ReplicationGroupDescription":{"shape":"String"}, + "PrimaryClusterId":{"shape":"String"}, + "AutomaticFailoverEnabled":{"shape":"BooleanOptional"}, + "NumCacheClusters":{"shape":"IntegerOptional"}, + "PreferredCacheClusterAZs":{"shape":"AvailabilityZonesList"}, + "CacheNodeType":{"shape":"String"}, + "Engine":{"shape":"String"}, + "EngineVersion":{"shape":"String"}, + "CacheParameterGroupName":{"shape":"String"}, + "CacheSubnetGroupName":{"shape":"String"}, + "CacheSecurityGroupNames":{"shape":"CacheSecurityGroupNameList"}, + "SecurityGroupIds":{"shape":"SecurityGroupIdsList"}, + "Tags":{"shape":"TagList"}, + "SnapshotArns":{"shape":"SnapshotArnsList"}, + "SnapshotName":{"shape":"String"}, + "PreferredMaintenanceWindow":{"shape":"String"}, + "Port":{"shape":"IntegerOptional"}, + "NotificationTopicArn":{"shape":"String"}, + "AutoMinorVersionUpgrade":{"shape":"BooleanOptional"}, + "SnapshotRetentionLimit":{"shape":"IntegerOptional"}, + "SnapshotWindow":{"shape":"String"} + } + }, + "CreateSnapshotMessage":{ + "type":"structure", + "required":[ + "CacheClusterId", + "SnapshotName" + ], + "members":{ + "CacheClusterId":{"shape":"String"}, + "SnapshotName":{"shape":"String"} + } + }, + "DeleteCacheClusterMessage":{ + "type":"structure", + "required":["CacheClusterId"], + "members":{ + "CacheClusterId":{"shape":"String"}, + "FinalSnapshotIdentifier":{"shape":"String"} + } + }, + "DeleteCacheParameterGroupMessage":{ + "type":"structure", + "required":["CacheParameterGroupName"], + "members":{ + "CacheParameterGroupName":{"shape":"String"} + } + }, + "DeleteCacheSecurityGroupMessage":{ + "type":"structure", + "required":["CacheSecurityGroupName"], + "members":{ + "CacheSecurityGroupName":{"shape":"String"} + } + }, + "DeleteCacheSubnetGroupMessage":{ + "type":"structure", + "required":["CacheSubnetGroupName"], + "members":{ + "CacheSubnetGroupName":{"shape":"String"} + } + }, + "DeleteReplicationGroupMessage":{ + "type":"structure", + "required":["ReplicationGroupId"], + "members":{ + "ReplicationGroupId":{"shape":"String"}, + "RetainPrimaryCluster":{"shape":"BooleanOptional"}, + "FinalSnapshotIdentifier":{"shape":"String"} + } + }, + "DeleteSnapshotMessage":{ + "type":"structure", + "required":["SnapshotName"], + "members":{ + "SnapshotName":{"shape":"String"} + } + }, + "DescribeCacheClustersMessage":{ + "type":"structure", + "members":{ + "CacheClusterId":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"}, + "ShowCacheNodeInfo":{"shape":"BooleanOptional"} + } + }, + "DescribeCacheEngineVersionsMessage":{ + "type":"structure", + "members":{ + "Engine":{"shape":"String"}, + "EngineVersion":{"shape":"String"}, + "CacheParameterGroupFamily":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"}, + "DefaultOnly":{"shape":"Boolean"} + } + }, + "DescribeCacheParameterGroupsMessage":{ + "type":"structure", + "members":{ + "CacheParameterGroupName":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeCacheParametersMessage":{ + "type":"structure", + "required":["CacheParameterGroupName"], + "members":{ + "CacheParameterGroupName":{"shape":"String"}, + "Source":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeCacheSecurityGroupsMessage":{ + "type":"structure", + "members":{ + "CacheSecurityGroupName":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeCacheSubnetGroupsMessage":{ + "type":"structure", + "members":{ + "CacheSubnetGroupName":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeEngineDefaultParametersMessage":{ + "type":"structure", + "required":["CacheParameterGroupFamily"], + "members":{ + "CacheParameterGroupFamily":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeEventsMessage":{ + "type":"structure", + "members":{ + "SourceIdentifier":{"shape":"String"}, + "SourceType":{"shape":"SourceType"}, + "StartTime":{"shape":"TStamp"}, + "EndTime":{"shape":"TStamp"}, + "Duration":{"shape":"IntegerOptional"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeReplicationGroupsMessage":{ + "type":"structure", + "members":{ + "ReplicationGroupId":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeReservedCacheNodesMessage":{ + "type":"structure", + "members":{ + "ReservedCacheNodeId":{"shape":"String"}, + "ReservedCacheNodesOfferingId":{"shape":"String"}, + "CacheNodeType":{"shape":"String"}, + "Duration":{"shape":"String"}, + "ProductDescription":{"shape":"String"}, + "OfferingType":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeReservedCacheNodesOfferingsMessage":{ + "type":"structure", + "members":{ + "ReservedCacheNodesOfferingId":{"shape":"String"}, + "CacheNodeType":{"shape":"String"}, + "Duration":{"shape":"String"}, + "ProductDescription":{"shape":"String"}, + "OfferingType":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeSnapshotsListMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "Snapshots":{"shape":"SnapshotList"} + } + }, + "DescribeSnapshotsMessage":{ + "type":"structure", + "members":{ + "CacheClusterId":{"shape":"String"}, + "SnapshotName":{"shape":"String"}, + "SnapshotSource":{"shape":"String"}, + "Marker":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"} + } + }, + "Double":{"type":"double"}, + "EC2SecurityGroup":{ + "type":"structure", + "members":{ + "Status":{"shape":"String"}, + "EC2SecurityGroupName":{"shape":"String"}, + "EC2SecurityGroupOwnerId":{"shape":"String"} + } + }, + "EC2SecurityGroupList":{ + "type":"list", + "member":{ + "shape":"EC2SecurityGroup", + "locationName":"EC2SecurityGroup" + } + }, + "Endpoint":{ + "type":"structure", + "members":{ + "Address":{"shape":"String"}, + "Port":{"shape":"Integer"} + } + }, + "EngineDefaults":{ + "type":"structure", + "members":{ + "CacheParameterGroupFamily":{"shape":"String"}, + "Marker":{"shape":"String"}, + "Parameters":{"shape":"ParametersList"}, + "CacheNodeTypeSpecificParameters":{"shape":"CacheNodeTypeSpecificParametersList"} + }, + "wrapper":true + }, + "Event":{ + "type":"structure", + "members":{ + "SourceIdentifier":{"shape":"String"}, + "SourceType":{"shape":"SourceType"}, + "Message":{"shape":"String"}, + "Date":{"shape":"TStamp"} + } + }, + "EventList":{ + "type":"list", + "member":{ + "shape":"Event", + "locationName":"Event" + } + }, + "EventsMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "Events":{"shape":"EventList"} + } + }, + "InsufficientCacheClusterCapacityFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InsufficientCacheClusterCapacity", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "Integer":{"type":"integer"}, + "IntegerOptional":{"type":"integer"}, + "InvalidARNFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidARN", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidCacheClusterStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidCacheClusterState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidCacheParameterGroupStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidCacheParameterGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidCacheSecurityGroupStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidCacheSecurityGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidParameterCombinationException":{ + "type":"structure", + "members":{ + "message":{"shape":"AwsQueryErrorMessage"} + }, + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidParameterValueException":{ + "type":"structure", + "members":{ + "message":{"shape":"AwsQueryErrorMessage"} + }, + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidReplicationGroupStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidReplicationGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidSnapshotStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidSnapshotState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidSubnet":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidSubnet", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidVPCNetworkStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidVPCNetworkStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "KeyList":{ + "type":"list", + "member":{"shape":"String"} + }, + "ListTagsForResourceMessage":{ + "type":"structure", + "required":["ResourceName"], + "members":{ + "ResourceName":{"shape":"String"} + } + }, + "ModifyCacheClusterMessage":{ + "type":"structure", + "required":["CacheClusterId"], + "members":{ + "CacheClusterId":{"shape":"String"}, + "NumCacheNodes":{"shape":"IntegerOptional"}, + "CacheNodeIdsToRemove":{"shape":"CacheNodeIdsList"}, + "AZMode":{"shape":"AZMode"}, + "NewAvailabilityZones":{"shape":"PreferredAvailabilityZoneList"}, + "CacheSecurityGroupNames":{"shape":"CacheSecurityGroupNameList"}, + "SecurityGroupIds":{"shape":"SecurityGroupIdsList"}, + "PreferredMaintenanceWindow":{"shape":"String"}, + "NotificationTopicArn":{"shape":"String"}, + "CacheParameterGroupName":{"shape":"String"}, + "NotificationTopicStatus":{"shape":"String"}, + "ApplyImmediately":{"shape":"Boolean"}, + "EngineVersion":{"shape":"String"}, + "AutoMinorVersionUpgrade":{"shape":"BooleanOptional"}, + "SnapshotRetentionLimit":{"shape":"IntegerOptional"}, + "SnapshotWindow":{"shape":"String"} + } + }, + "ModifyCacheParameterGroupMessage":{ + "type":"structure", + "required":[ + "CacheParameterGroupName", + "ParameterNameValues" + ], + "members":{ + "CacheParameterGroupName":{"shape":"String"}, + "ParameterNameValues":{"shape":"ParameterNameValueList"} + } + }, + "ModifyCacheSubnetGroupMessage":{ + "type":"structure", + "required":["CacheSubnetGroupName"], + "members":{ + "CacheSubnetGroupName":{"shape":"String"}, + "CacheSubnetGroupDescription":{"shape":"String"}, + "SubnetIds":{"shape":"SubnetIdentifierList"} + } + }, + "ModifyReplicationGroupMessage":{ + "type":"structure", + "required":["ReplicationGroupId"], + "members":{ + "ReplicationGroupId":{"shape":"String"}, + "ReplicationGroupDescription":{"shape":"String"}, + "PrimaryClusterId":{"shape":"String"}, + "SnapshottingClusterId":{"shape":"String"}, + "AutomaticFailoverEnabled":{"shape":"BooleanOptional"}, + "CacheSecurityGroupNames":{"shape":"CacheSecurityGroupNameList"}, + "SecurityGroupIds":{"shape":"SecurityGroupIdsList"}, + "PreferredMaintenanceWindow":{"shape":"String"}, + "NotificationTopicArn":{"shape":"String"}, + "CacheParameterGroupName":{"shape":"String"}, + "NotificationTopicStatus":{"shape":"String"}, + "ApplyImmediately":{"shape":"Boolean"}, + "EngineVersion":{"shape":"String"}, + "AutoMinorVersionUpgrade":{"shape":"BooleanOptional"}, + "SnapshotRetentionLimit":{"shape":"IntegerOptional"}, + "SnapshotWindow":{"shape":"String"} + } + }, + "NodeGroup":{ + "type":"structure", + "members":{ + "NodeGroupId":{"shape":"String"}, + "Status":{"shape":"String"}, + "PrimaryEndpoint":{"shape":"Endpoint"}, + "NodeGroupMembers":{"shape":"NodeGroupMemberList"} + } + }, + "NodeGroupList":{ + "type":"list", + "member":{ + "shape":"NodeGroup", + "locationName":"NodeGroup" + } + }, + "NodeGroupMember":{ + "type":"structure", + "members":{ + "CacheClusterId":{"shape":"String"}, + "CacheNodeId":{"shape":"String"}, + "ReadEndpoint":{"shape":"Endpoint"}, + "PreferredAvailabilityZone":{"shape":"String"}, + "CurrentRole":{"shape":"String"} + } + }, + "NodeGroupMemberList":{ + "type":"list", + "member":{ + "shape":"NodeGroupMember", + "locationName":"NodeGroupMember" + } + }, + "NodeQuotaForClusterExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"NodeQuotaForClusterExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "NodeQuotaForCustomerExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"NodeQuotaForCustomerExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "NodeSnapshot":{ + "type":"structure", + "members":{ + "CacheNodeId":{"shape":"String"}, + "CacheSize":{"shape":"String"}, + "CacheNodeCreateTime":{"shape":"TStamp"}, + "SnapshotCreateTime":{"shape":"TStamp"} + }, + "wrapper":true + }, + "NodeSnapshotList":{ + "type":"list", + "member":{ + "shape":"NodeSnapshot", + "locationName":"NodeSnapshot" + } + }, + "NotificationConfiguration":{ + "type":"structure", + "members":{ + "TopicArn":{"shape":"String"}, + "TopicStatus":{"shape":"String"} + } + }, + "Parameter":{ + "type":"structure", + "members":{ + "ParameterName":{"shape":"String"}, + "ParameterValue":{"shape":"String"}, + "Description":{"shape":"String"}, + "Source":{"shape":"String"}, + "DataType":{"shape":"String"}, + "AllowedValues":{"shape":"String"}, + "IsModifiable":{"shape":"Boolean"}, + "MinimumEngineVersion":{"shape":"String"} + } + }, + "ParameterNameValue":{ + "type":"structure", + "members":{ + "ParameterName":{"shape":"String"}, + "ParameterValue":{"shape":"String"} + } + }, + "ParameterNameValueList":{ + "type":"list", + "member":{ + "shape":"ParameterNameValue", + "locationName":"ParameterNameValue" + } + }, + "ParametersList":{ + "type":"list", + "member":{ + "shape":"Parameter", + "locationName":"Parameter" + } + }, + "PendingAutomaticFailoverStatus":{ + "type":"string", + "enum":[ + "enabled", + "disabled" + ] + }, + "PendingModifiedValues":{ + "type":"structure", + "members":{ + "NumCacheNodes":{"shape":"IntegerOptional"}, + "CacheNodeIdsToRemove":{"shape":"CacheNodeIdsList"}, + "EngineVersion":{"shape":"String"} + } + }, + "PreferredAvailabilityZoneList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"PreferredAvailabilityZone" + } + }, + "PurchaseReservedCacheNodesOfferingMessage":{ + "type":"structure", + "required":["ReservedCacheNodesOfferingId"], + "members":{ + "ReservedCacheNodesOfferingId":{"shape":"String"}, + "ReservedCacheNodeId":{"shape":"String"}, + "CacheNodeCount":{"shape":"IntegerOptional"} + } + }, + "RebootCacheClusterMessage":{ + "type":"structure", + "required":[ + "CacheClusterId", + "CacheNodeIdsToReboot" + ], + "members":{ + "CacheClusterId":{"shape":"String"}, + "CacheNodeIdsToReboot":{"shape":"CacheNodeIdsList"} + } + }, + "RecurringCharge":{ + "type":"structure", + "members":{ + "RecurringChargeAmount":{"shape":"Double"}, + "RecurringChargeFrequency":{"shape":"String"} + }, + "wrapper":true + }, + "RecurringChargeList":{ + "type":"list", + "member":{ + "shape":"RecurringCharge", + "locationName":"RecurringCharge" + } + }, + "RemoveTagsFromResourceMessage":{ + "type":"structure", + "required":[ + "ResourceName", + "TagKeys" + ], + "members":{ + "ResourceName":{"shape":"String"}, + "TagKeys":{"shape":"KeyList"} + } + }, + "ReplicationGroup":{ + "type":"structure", + "members":{ + "ReplicationGroupId":{"shape":"String"}, + "Description":{"shape":"String"}, + "Status":{"shape":"String"}, + "PendingModifiedValues":{"shape":"ReplicationGroupPendingModifiedValues"}, + "MemberClusters":{"shape":"ClusterIdList"}, + "NodeGroups":{"shape":"NodeGroupList"}, + "SnapshottingClusterId":{"shape":"String"}, + "AutomaticFailover":{"shape":"AutomaticFailoverStatus"} + }, + "wrapper":true + }, + "ReplicationGroupAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ReplicationGroupAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ReplicationGroupList":{ + "type":"list", + "member":{ + "shape":"ReplicationGroup", + "locationName":"ReplicationGroup" + } + }, + "ReplicationGroupMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "ReplicationGroups":{"shape":"ReplicationGroupList"} + } + }, + "ReplicationGroupNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ReplicationGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ReplicationGroupPendingModifiedValues":{ + "type":"structure", + "members":{ + "PrimaryClusterId":{"shape":"String"}, + "AutomaticFailoverStatus":{"shape":"PendingAutomaticFailoverStatus"} + } + }, + "ReservedCacheNode":{ + "type":"structure", + "members":{ + "ReservedCacheNodeId":{"shape":"String"}, + "ReservedCacheNodesOfferingId":{"shape":"String"}, + "CacheNodeType":{"shape":"String"}, + "StartTime":{"shape":"TStamp"}, + "Duration":{"shape":"Integer"}, + "FixedPrice":{"shape":"Double"}, + "UsagePrice":{"shape":"Double"}, + "CacheNodeCount":{"shape":"Integer"}, + "ProductDescription":{"shape":"String"}, + "OfferingType":{"shape":"String"}, + "State":{"shape":"String"}, + "RecurringCharges":{"shape":"RecurringChargeList"} + }, + "wrapper":true + }, + "ReservedCacheNodeAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ReservedCacheNodeAlreadyExists", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ReservedCacheNodeList":{ + "type":"list", + "member":{ + "shape":"ReservedCacheNode", + "locationName":"ReservedCacheNode" + } + }, + "ReservedCacheNodeMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "ReservedCacheNodes":{"shape":"ReservedCacheNodeList"} + } + }, + "ReservedCacheNodeNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ReservedCacheNodeNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ReservedCacheNodeQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ReservedCacheNodeQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ReservedCacheNodesOffering":{ + "type":"structure", + "members":{ + "ReservedCacheNodesOfferingId":{"shape":"String"}, + "CacheNodeType":{"shape":"String"}, + "Duration":{"shape":"Integer"}, + "FixedPrice":{"shape":"Double"}, + "UsagePrice":{"shape":"Double"}, + "ProductDescription":{"shape":"String"}, + "OfferingType":{"shape":"String"}, + "RecurringCharges":{"shape":"RecurringChargeList"} + }, + "wrapper":true + }, + "ReservedCacheNodesOfferingList":{ + "type":"list", + "member":{ + "shape":"ReservedCacheNodesOffering", + "locationName":"ReservedCacheNodesOffering" + } + }, + "ReservedCacheNodesOfferingMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "ReservedCacheNodesOfferings":{"shape":"ReservedCacheNodesOfferingList"} + } + }, + "ReservedCacheNodesOfferingNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ReservedCacheNodesOfferingNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ResetCacheParameterGroupMessage":{ + "type":"structure", + "required":[ + "CacheParameterGroupName", + "ParameterNameValues" + ], + "members":{ + "CacheParameterGroupName":{"shape":"String"}, + "ResetAllParameters":{"shape":"Boolean"}, + "ParameterNameValues":{"shape":"ParameterNameValueList"} + } + }, + "RevokeCacheSecurityGroupIngressMessage":{ + "type":"structure", + "required":[ + "CacheSecurityGroupName", + "EC2SecurityGroupName", + "EC2SecurityGroupOwnerId" + ], + "members":{ + "CacheSecurityGroupName":{"shape":"String"}, + "EC2SecurityGroupName":{"shape":"String"}, + "EC2SecurityGroupOwnerId":{"shape":"String"} + } + }, + "SecurityGroupIdsList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"SecurityGroupId" + } + }, + "SecurityGroupMembership":{ + "type":"structure", + "members":{ + "SecurityGroupId":{"shape":"String"}, + "Status":{"shape":"String"} + } + }, + "SecurityGroupMembershipList":{ + "type":"list", + "member":{"shape":"SecurityGroupMembership"} + }, + "Snapshot":{ + "type":"structure", + "members":{ + "SnapshotName":{"shape":"String"}, + "CacheClusterId":{"shape":"String"}, + "SnapshotStatus":{"shape":"String"}, + "SnapshotSource":{"shape":"String"}, + "CacheNodeType":{"shape":"String"}, + "Engine":{"shape":"String"}, + "EngineVersion":{"shape":"String"}, + "NumCacheNodes":{"shape":"IntegerOptional"}, + "PreferredAvailabilityZone":{"shape":"String"}, + "CacheClusterCreateTime":{"shape":"TStamp"}, + "PreferredMaintenanceWindow":{"shape":"String"}, + "TopicArn":{"shape":"String"}, + "Port":{"shape":"IntegerOptional"}, + "CacheParameterGroupName":{"shape":"String"}, + "CacheSubnetGroupName":{"shape":"String"}, + "VpcId":{"shape":"String"}, + "AutoMinorVersionUpgrade":{"shape":"Boolean"}, + "SnapshotRetentionLimit":{"shape":"IntegerOptional"}, + "SnapshotWindow":{"shape":"String"}, + "NodeSnapshots":{"shape":"NodeSnapshotList"} + }, + "wrapper":true + }, + "SnapshotAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SnapshotAlreadyExistsFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "SnapshotArnsList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"SnapshotArn" + } + }, + "SnapshotFeatureNotSupportedFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SnapshotFeatureNotSupportedFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "SnapshotList":{ + "type":"list", + "member":{ + "shape":"Snapshot", + "locationName":"Snapshot" + } + }, + "SnapshotNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SnapshotNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "SnapshotQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SnapshotQuotaExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "SourceType":{ + "type":"string", + "enum":[ + "cache-cluster", + "cache-parameter-group", + "cache-security-group", + "cache-subnet-group" + ] + }, + "String":{"type":"string"}, + "Subnet":{ + "type":"structure", + "members":{ + "SubnetIdentifier":{"shape":"String"}, + "SubnetAvailabilityZone":{"shape":"AvailabilityZone"} + } + }, + "SubnetIdentifierList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"SubnetIdentifier" + } + }, + "SubnetInUse":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SubnetInUse", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "SubnetList":{ + "type":"list", + "member":{ + "shape":"Subnet", + "locationName":"Subnet" + } + }, + "TStamp":{"type":"timestamp"}, + "Tag":{ + "type":"structure", + "members":{ + "Key":{"shape":"String"}, + "Value":{"shape":"String"} + } + }, + "TagList":{ + "type":"list", + "member":{ + "shape":"Tag", + "locationName":"Tag" + } + }, + "TagListMessage":{ + "type":"structure", + "members":{ + "TagList":{"shape":"TagList"} + } + }, + "TagNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"TagNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "TagQuotaPerResourceExceeded":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"TagQuotaPerResourceExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "AuthorizeCacheSecurityGroupIngressResult":{ + "type":"structure", + "members":{ + "CacheSecurityGroup":{"shape":"CacheSecurityGroup"} + } + }, + "CopySnapshotResult":{ + "type":"structure", + "members":{ + "Snapshot":{"shape":"Snapshot"} + } + }, + "CreateCacheClusterResult":{ + "type":"structure", + "members":{ + "CacheCluster":{"shape":"CacheCluster"} + } + }, + "CreateCacheParameterGroupResult":{ + "type":"structure", + "members":{ + "CacheParameterGroup":{"shape":"CacheParameterGroup"} + } + }, + "CreateCacheSecurityGroupResult":{ + "type":"structure", + "members":{ + "CacheSecurityGroup":{"shape":"CacheSecurityGroup"} + } + }, + "CreateCacheSubnetGroupResult":{ + "type":"structure", + "members":{ + "CacheSubnetGroup":{"shape":"CacheSubnetGroup"} + } + }, + "CreateReplicationGroupResult":{ + "type":"structure", + "members":{ + "ReplicationGroup":{"shape":"ReplicationGroup"} + } + }, + "CreateSnapshotResult":{ + "type":"structure", + "members":{ + "Snapshot":{"shape":"Snapshot"} + } + }, + "DeleteCacheClusterResult":{ + "type":"structure", + "members":{ + "CacheCluster":{"shape":"CacheCluster"} + } + }, + "DeleteReplicationGroupResult":{ + "type":"structure", + "members":{ + "ReplicationGroup":{"shape":"ReplicationGroup"} + } + }, + "DeleteSnapshotResult":{ + "type":"structure", + "members":{ + "Snapshot":{"shape":"Snapshot"} + } + }, + "DescribeEngineDefaultParametersResult":{ + "type":"structure", + "members":{ + "EngineDefaults":{"shape":"EngineDefaults"} + } + }, + "ModifyCacheClusterResult":{ + "type":"structure", + "members":{ + "CacheCluster":{"shape":"CacheCluster"} + } + }, + "ModifyCacheSubnetGroupResult":{ + "type":"structure", + "members":{ + "CacheSubnetGroup":{"shape":"CacheSubnetGroup"} + } + }, + "ModifyReplicationGroupResult":{ + "type":"structure", + "members":{ + "ReplicationGroup":{"shape":"ReplicationGroup"} + } + }, + "PurchaseReservedCacheNodesOfferingResult":{ + "type":"structure", + "members":{ + "ReservedCacheNode":{"shape":"ReservedCacheNode"} + } + }, + "RebootCacheClusterResult":{ + "type":"structure", + "members":{ + "CacheCluster":{"shape":"CacheCluster"} + } + }, + "RevokeCacheSecurityGroupIngressResult":{ + "type":"structure", + "members":{ + "CacheSecurityGroup":{"shape":"CacheSecurityGroup"} + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/elasticache/2015-02-02/docs-2.json b/lib/aws-sdk/Aws/data/elasticache/2015-02-02/docs-2.json new file mode 100644 index 0000000..72795d0 --- /dev/null +++ b/lib/aws-sdk/Aws/data/elasticache/2015-02-02/docs-2.json @@ -0,0 +1,1390 @@ +{ + "version": "2.0", + "operations": { + "AddTagsToResource": "

The AddTagsToResource action adds up to 10 cost allocation tags to the named resource. A cost allocation tag is a key-value pair where the key and value are case-sensitive. Cost allocation tags can be used to categorize and track your AWS costs.

When you apply tags to your ElastiCache resources, AWS generates a cost allocation report as a comma-separated value (CSV) file with your usage and costs aggregated by your tags. You can apply tags that represent business categories (such as cost centers, application names, or owners) to organize your costs across multiple services. For more information, see Using Cost Allocation Tags in Amazon ElastiCache.

", + "AuthorizeCacheSecurityGroupIngress": "

The AuthorizeCacheSecurityGroupIngress action allows network ingress to a cache security group. Applications using ElastiCache must be running on Amazon EC2, and Amazon EC2 security groups are used as the authorization mechanism.

You cannot authorize ingress from an Amazon EC2 security group in one region to an ElastiCache cluster in another region. ", + "CopySnapshot": "

The CopySnapshot action makes a copy of an existing snapshot.

", + "CreateCacheCluster": "

The CreateCacheCluster action creates a cache cluster. All nodes in the cache cluster run the same protocol-compliant cache engine software, either Memcached or Redis.

", + "CreateCacheParameterGroup": "

The CreateCacheParameterGroup action creates a new cache parameter group. A cache parameter group is a collection of parameters that you apply to all of the nodes in a cache cluster.

", + "CreateCacheSecurityGroup": "

The CreateCacheSecurityGroup action creates a new cache security group. Use a cache security group to control access to one or more cache clusters.

Cache security groups are only used when you are creating a cache cluster outside of an Amazon Virtual Private Cloud (VPC). If you are creating a cache cluster inside of a VPC, use a cache subnet group instead. For more information, see CreateCacheSubnetGroup.

", + "CreateCacheSubnetGroup": "

The CreateCacheSubnetGroup action creates a new cache subnet group.

Use this parameter only when you are creating a cluster in an Amazon Virtual Private Cloud (VPC).

", + "CreateReplicationGroup": "

The CreateReplicationGroup action creates a replication group. A replication group is a collection of cache clusters, where one of the cache clusters is a read/write primary and the others are read-only replicas. Writes to the primary are automatically propagated to the replicas.

When you create a replication group, you must specify an existing cache cluster that is in the primary role. When the replication group has been successfully created, you can add one or more read replica replicas to it, up to a total of five read replicas.

Note: This action is valid only for Redis.

", + "CreateSnapshot": "

The CreateSnapshot action creates a copy of an entire cache cluster at a specific moment in time.

", + "DeleteCacheCluster": "

The DeleteCacheCluster action deletes a previously provisioned cache cluster. DeleteCacheCluster deletes all associated cache nodes, node endpoints and the cache cluster itself. When you receive a successful response from this action, Amazon ElastiCache immediately begins deleting the cache cluster; you cannot cancel or revert this action.

This API cannot be used to delete a cache cluster that is the last read replica of a replication group that has Multi-AZ mode enabled.

", + "DeleteCacheParameterGroup": "

The DeleteCacheParameterGroup action deletes the specified cache parameter group. You cannot delete a cache parameter group if it is associated with any cache clusters.

", + "DeleteCacheSecurityGroup": "

The DeleteCacheSecurityGroup action deletes a cache security group.

You cannot delete a cache security group if it is associated with any cache clusters.", + "DeleteCacheSubnetGroup": "

The DeleteCacheSubnetGroup action deletes a cache subnet group.

You cannot delete a cache subnet group if it is associated with any cache clusters.", + "DeleteReplicationGroup": "

The DeleteReplicationGroup action deletes an existing replication group. By default, this action deletes the entire replication group, including the primary cluster and all of the read replicas. You can optionally delete only the read replicas, while retaining the primary cluster.

When you receive a successful response from this action, Amazon ElastiCache immediately begins deleting the selected resources; you cannot cancel or revert this action.

", + "DeleteSnapshot": "

The DeleteSnapshot action deletes an existing snapshot. When you receive a successful response from this action, ElastiCache immediately begins deleting the snapshot; you cannot cancel or revert this action.

", + "DescribeCacheClusters": "

The DescribeCacheClusters action returns information about all provisioned cache clusters if no cache cluster identifier is specified, or about a specific cache cluster if a cache cluster identifier is supplied.

By default, abbreviated information about the cache clusters(s) will be returned. You can use the optional ShowDetails flag to retrieve detailed information about the cache nodes associated with the cache clusters. These details include the DNS address and port for the cache node endpoint.

If the cluster is in the CREATING state, only cluster level information will be displayed until all of the nodes are successfully provisioned.

If the cluster is in the DELETING state, only cluster level information will be displayed.

If cache nodes are currently being added to the cache cluster, node endpoint information and creation time for the additional nodes will not be displayed until they are completely provisioned. When the cache cluster state is available, the cluster is ready for use.

If cache nodes are currently being removed from the cache cluster, no endpoint information for the removed nodes is displayed.

", + "DescribeCacheEngineVersions": "

The DescribeCacheEngineVersions action returns a list of the available cache engines and their versions.

", + "DescribeCacheParameterGroups": "

The DescribeCacheParameterGroups action returns a list of cache parameter group descriptions. If a cache parameter group name is specified, the list will contain only the descriptions for that group.

", + "DescribeCacheParameters": "

The DescribeCacheParameters action returns the detailed parameter list for a particular cache parameter group.

", + "DescribeCacheSecurityGroups": "

The DescribeCacheSecurityGroups action returns a list of cache security group descriptions. If a cache security group name is specified, the list will contain only the description of that group.

", + "DescribeCacheSubnetGroups": "

The DescribeCacheSubnetGroups action returns a list of cache subnet group descriptions. If a subnet group name is specified, the list will contain only the description of that group.

", + "DescribeEngineDefaultParameters": "

The DescribeEngineDefaultParameters action returns the default engine and system parameter information for the specified cache engine.

", + "DescribeEvents": "

The DescribeEvents action returns events related to cache clusters, cache security groups, and cache parameter groups. You can obtain events specific to a particular cache cluster, cache security group, or cache parameter group by providing the name as a parameter.

By default, only the events occurring within the last hour are returned; however, you can retrieve up to 14 days' worth of events if necessary.

", + "DescribeReplicationGroups": "

The DescribeReplicationGroups action returns information about a particular replication group. If no identifier is specified, DescribeReplicationGroups returns information about all replication groups.

", + "DescribeReservedCacheNodes": "

The DescribeReservedCacheNodes action returns information about reserved cache nodes for this account, or about a specified reserved cache node.

", + "DescribeReservedCacheNodesOfferings": "

The DescribeReservedCacheNodesOfferings action lists available reserved cache node offerings.

", + "DescribeSnapshots": "

The DescribeSnapshots action returns information about cache cluster snapshots. By default, DescribeSnapshots lists all of your snapshots; it can optionally describe a single snapshot, or just the snapshots associated with a particular cache cluster.

", + "ListTagsForResource": "

The ListTagsForResource action lists all cost allocation tags currently on the named resource. A cost allocation tag is a key-value pair where the key is case-sensitive and the value is optional. Cost allocation tags can be used to categorize and track your AWS costs.

You can have a maximum of 10 cost allocation tags on an ElastiCache resource. For more information, see Using Cost Allocation Tags in Amazon ElastiCache.

", + "ModifyCacheCluster": "

The ModifyCacheCluster action modifies the settings for a cache cluster. You can use this action to change one or more cluster configuration parameters by specifying the parameters and the new values.

", + "ModifyCacheParameterGroup": "

The ModifyCacheParameterGroup action modifies the parameters of a cache parameter group. You can modify up to 20 parameters in a single request by submitting a list parameter name and value pairs.

", + "ModifyCacheSubnetGroup": "

The ModifyCacheSubnetGroup action modifies an existing cache subnet group.

", + "ModifyReplicationGroup": "

The ModifyReplicationGroup action modifies the settings for a replication group.

", + "PurchaseReservedCacheNodesOffering": "

The PurchaseReservedCacheNodesOffering action allows you to purchase a reserved cache node offering.

", + "RebootCacheCluster": "

The RebootCacheCluster action reboots some, or all, of the cache nodes within a provisioned cache cluster. This API will apply any modified cache parameter groups to the cache cluster. The reboot action takes place as soon as possible, and results in a momentary outage to the cache cluster. During the reboot, the cache cluster status is set to REBOOTING.

The reboot causes the contents of the cache (for each cache node being rebooted) to be lost.

When the reboot is complete, a cache cluster event is created.

", + "RemoveTagsFromResource": "

The RemoveTagsFromResource action removes the tags identified by the TagKeys list from the named resource.

", + "ResetCacheParameterGroup": "

The ResetCacheParameterGroup action modifies the parameters of a cache parameter group to the engine or system default value. You can reset specific parameters by submitting a list of parameter names. To reset the entire cache parameter group, specify the ResetAllParameters and CacheParameterGroupName parameters.

", + "RevokeCacheSecurityGroupIngress": "

The RevokeCacheSecurityGroupIngress action revokes ingress from a cache security group. Use this action to disallow access from an Amazon EC2 security group that had been previously authorized.

" + }, + "service": "Amazon ElastiCache

Amazon ElastiCache is a web service that makes it easier to set up, operate, and scale a distributed cache in the cloud.

With ElastiCache, customers gain all of the benefits of a high-performance, in-memory cache with far less of the administrative burden of launching and managing a distributed cache. The service makes setup, scaling, and cluster failure handling much simpler than in a self-managed cache deployment.

In addition, through integration with Amazon CloudWatch, customers get enhanced visibility into the key performance statistics associated with their cache and can receive alarms if a part of their cache runs hot.

", + "shapes": { + "AZMode": { + "base": null, + "refs": { + "CreateCacheClusterMessage$AZMode": "

Specifies whether the nodes in this Memcached node group are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region.

This parameter is only supported for Memcached cache clusters.

If the AZMode and PreferredAvailabilityZones are not specified, ElastiCache assumes single-az mode.

", + "ModifyCacheClusterMessage$AZMode": "

Specifies whether the new nodes in this Memcached cache cluster are all created in a single Availability Zone or created across multiple Availability Zones.

Valid values: single-az | cross-az.

This option is only supported for Memcached cache clusters.

You cannot specify single-az if the Memcached cache cluster already has cache nodes in different Availability Zones. If cross-az is specified, existing Memcached nodes remain in their current Availability Zone.

Only newly created nodes will be located in different Availability Zones. For instructions on how to move existing Memcached nodes to different Availability Zones, see the Availability Zone Considerations section of Cache Node Considerations for Memcached.

" + } + }, + "AddTagsToResourceMessage": { + "base": "

Represents the input of an AddTagsToResource action.

", + "refs": { + } + }, + "AuthorizationAlreadyExistsFault": { + "base": "

The specified Amazon EC2 security group is already authorized for the specified cache security group.

", + "refs": { + } + }, + "AuthorizationNotFoundFault": { + "base": "

The specified Amazon EC2 security group is not authorized for the specified cache security group.

", + "refs": { + } + }, + "AuthorizeCacheSecurityGroupIngressMessage": { + "base": "

Represents the input of an AuthorizeCacheSecurityGroupIngress action.

", + "refs": { + } + }, + "AutomaticFailoverStatus": { + "base": null, + "refs": { + "ReplicationGroup$AutomaticFailover": "

Indicates the status of Multi-AZ for this replication group.

ElastiCache Multi-AZ replication groups are not supported on:

  • Redis versions earlier than 2.8.6.
  • T1 and T2 cache node types.
" + } + }, + "AvailabilityZone": { + "base": "

Describes an Availability Zone in which the cache cluster is launched.

", + "refs": { + "Subnet$SubnetAvailabilityZone": "

The Availability Zone associated with the subnet.

" + } + }, + "AvailabilityZonesList": { + "base": null, + "refs": { + "CreateReplicationGroupMessage$PreferredCacheClusterAZs": "

A list of EC2 availability zones in which the replication group's cache clusters will be created. The order of the availability zones in the list is not important.

If you are creating your replication group in an Amazon VPC (recommended), you can only locate cache clusters in availability zones associated with the subnets in the selected subnet group.

The number of availability zones listed must equal the value of NumCacheClusters.

Default: system chosen availability zones.

Example: One Redis cache cluster in each of three availability zones. PreferredAvailabilityZones.member.1=us-west-2a PreferredAvailabilityZones.member.2=us-west-2c PreferredAvailabilityZones.member.3=us-west-2c

" + } + }, + "AwsQueryErrorMessage": { + "base": null, + "refs": { + "InvalidParameterCombinationException$message": "

Two or more parameters that must not be used together were used together.

", + "InvalidParameterValueException$message": "

A parameter value is invalid.

" + } + }, + "Boolean": { + "base": null, + "refs": { + "CacheCluster$AutoMinorVersionUpgrade": "

This parameter is currently disabled.

", + "CacheNodeTypeSpecificParameter$IsModifiable": "

Indicates whether (true) or not (false) the parameter can be modified. Some parameters have security or operational implications that prevent them from being changed.

", + "DescribeCacheEngineVersionsMessage$DefaultOnly": "

If true, specifies that only the default version of the specified engine or engine and major version combination is to be returned.

", + "ModifyCacheClusterMessage$ApplyImmediately": "

If true, this parameter causes the modifications in this request and any pending modifications to be applied, asynchronously and as soon as possible, regardless of the PreferredMaintenanceWindow setting for the cache cluster.

If false, then changes to the cache cluster are applied on the next maintenance reboot, or the next failure reboot, whichever occurs first.

If you perform a ModifyCacheCluster before a pending modification is applied, the pending modification is replaced by the newer modification.

Valid values: true | false

Default: false

", + "ModifyReplicationGroupMessage$ApplyImmediately": "

If true, this parameter causes the modifications in this request and any pending modifications to be applied, asynchronously and as soon as possible, regardless of the PreferredMaintenanceWindow setting for the replication group.

If false, then changes to the nodes in the replication group are applied on the next maintenance reboot, or the next failure reboot, whichever occurs first.

Valid values: true | false

Default: false

", + "Parameter$IsModifiable": "

Indicates whether (true) or not (false) the parameter can be modified. Some parameters have security or operational implications that prevent them from being changed.

", + "ResetCacheParameterGroupMessage$ResetAllParameters": "

If true, all parameters in the cache parameter group will be reset to default values. If false, no such action occurs.

Valid values: true | false

", + "Snapshot$AutoMinorVersionUpgrade": "

This parameter is currently disabled.

" + } + }, + "BooleanOptional": { + "base": null, + "refs": { + "CreateCacheClusterMessage$AutoMinorVersionUpgrade": "

This parameter is currently disabled.

", + "CreateReplicationGroupMessage$AutomaticFailoverEnabled": "

Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails.

If true, Multi-AZ is enabled for this replication group. If false, Multi-AZ is disabled for this replication group.

Default: false

ElastiCache Multi-AZ replication groups is not supported on:

  • Redis versions earlier than 2.8.6.
  • T1 and T2 cache node types.
", + "CreateReplicationGroupMessage$AutoMinorVersionUpgrade": "

This parameter is currently disabled.

", + "DeleteReplicationGroupMessage$RetainPrimaryCluster": "

If set to true, all of the read replicas will be deleted, but the primary node will be retained.

", + "DescribeCacheClustersMessage$ShowCacheNodeInfo": "

An optional flag that can be included in the DescribeCacheCluster request to retrieve information about the individual cache nodes.

", + "ModifyCacheClusterMessage$AutoMinorVersionUpgrade": "

This parameter is currently disabled.

", + "ModifyReplicationGroupMessage$AutomaticFailoverEnabled": "

Whether a read replica will be automatically promoted to read/write primary if the existing primary encounters a failure.

Valid values: true | false

ElastiCache Multi-AZ replication groups are not supported on:

  • Redis versions earlier than 2.8.6.
  • T1 and T2 cache node types.
", + "ModifyReplicationGroupMessage$AutoMinorVersionUpgrade": "

This parameter is currently disabled.

" + } + }, + "CacheCluster": { + "base": "

Contains all of the attributes of a specific cache cluster.

", + "refs": { + "CacheClusterList$member": null, + "CreateCacheClusterResult$CacheCluster": null, + "DeleteCacheClusterResult$CacheCluster": null, + "ModifyCacheClusterResult$CacheCluster": null, + "RebootCacheClusterResult$CacheCluster": null + } + }, + "CacheClusterAlreadyExistsFault": { + "base": "

You already have a cache cluster with the given identifier.

", + "refs": { + } + }, + "CacheClusterList": { + "base": null, + "refs": { + "CacheClusterMessage$CacheClusters": "

A list of cache clusters. Each item in the list contains detailed information about one cache cluster.

" + } + }, + "CacheClusterMessage": { + "base": "

Represents the output of a DescribeCacheClusters action.

", + "refs": { + } + }, + "CacheClusterNotFoundFault": { + "base": "

The requested cache cluster ID does not refer to an existing cache cluster.

", + "refs": { + } + }, + "CacheEngineVersion": { + "base": "

Provides all of the details about a particular cache engine version.

", + "refs": { + "CacheEngineVersionList$member": null + } + }, + "CacheEngineVersionList": { + "base": null, + "refs": { + "CacheEngineVersionMessage$CacheEngineVersions": "

A list of cache engine version details. Each element in the list contains detailed information about one cache engine version.

" + } + }, + "CacheEngineVersionMessage": { + "base": "

Represents the output of a DescribeCacheEngineVersions action.

", + "refs": { + } + }, + "CacheNode": { + "base": "

Represents an individual cache node within a cache cluster. Each cache node runs its own instance of the cluster's protocol-compliant caching software - either Memcached or Redis.

Valid node types are as follows:

  • General purpose:
    • Current generation: cache.t2.micro, cache.t2.small, cache.t2.medium, cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge
    • Previous generation: cache.t1.micro, cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge
  • Compute optimized: cache.c1.xlarge
  • Memory optimized
    • Current generation: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge
    • Previous generation: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

Notes:

  • All t2 instances are created in an Amazon Virtual Private Cloud (VPC).
  • Redis backup/restore is not supported for t2 instances.
  • Redis Append-only files (AOF) functionality is not supported for t1 or t2 instances.

For a complete listing of cache node types and specifications, see Amazon ElastiCache Product Features and Details and Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", + "refs": { + "CacheNodeList$member": null + } + }, + "CacheNodeIdsList": { + "base": null, + "refs": { + "CacheParameterGroupStatus$CacheNodeIdsToReboot": "

A list of the cache node IDs which need to be rebooted for parameter changes to be applied. A node ID is a numeric identifier (0001, 0002, etc.).

", + "ModifyCacheClusterMessage$CacheNodeIdsToRemove": "

A list of cache node IDs to be removed. A node ID is a numeric identifier (0001, 0002, etc.). This parameter is only valid when NumCacheNodes is less than the existing number of cache nodes. The number of cache node IDs supplied in this parameter must match the difference between the existing number of cache nodes in the cluster or pending cache nodes, whichever is greater, and the value of NumCacheNodes in the request.

For example: If you have 3 active cache nodes, 7 pending cache nodes, and the number of cache nodes in this ModifyCacheCluser call is 5, you must list 2 (7 - 5) cache node IDs to remove.

", + "PendingModifiedValues$CacheNodeIdsToRemove": "

A list of cache node IDs that are being removed (or will be removed) from the cache cluster. A node ID is a numeric identifier (0001, 0002, etc.).

", + "RebootCacheClusterMessage$CacheNodeIdsToReboot": "

A list of cache node IDs to reboot. A node ID is a numeric identifier (0001, 0002, etc.). To reboot an entire cache cluster, specify all of the cache node IDs.

" + } + }, + "CacheNodeList": { + "base": null, + "refs": { + "CacheCluster$CacheNodes": "

A list of cache nodes that are members of the cache cluster.

" + } + }, + "CacheNodeTypeSpecificParameter": { + "base": "

A parameter that has a different value for each cache node type it is applied to. For example, in a Redis cache cluster, a cache.m1.large cache node type would have a larger maxmemory value than a cache.m1.small type.

", + "refs": { + "CacheNodeTypeSpecificParametersList$member": null + } + }, + "CacheNodeTypeSpecificParametersList": { + "base": null, + "refs": { + "CacheParameterGroupDetails$CacheNodeTypeSpecificParameters": "

A list of parameters specific to a particular cache node type. Each element in the list contains detailed information about one parameter.

", + "EngineDefaults$CacheNodeTypeSpecificParameters": "

A list of parameters specific to a particular cache node type. Each element in the list contains detailed information about one parameter.

" + } + }, + "CacheNodeTypeSpecificValue": { + "base": "

A value that applies only to a certain cache node type.

", + "refs": { + "CacheNodeTypeSpecificValueList$member": null + } + }, + "CacheNodeTypeSpecificValueList": { + "base": null, + "refs": { + "CacheNodeTypeSpecificParameter$CacheNodeTypeSpecificValues": "

A list of cache node types and their corresponding values for this parameter.

" + } + }, + "CacheParameterGroup": { + "base": "

Represents the output of a CreateCacheParameterGroup action.

", + "refs": { + "CacheParameterGroupList$member": null, + "CreateCacheParameterGroupResult$CacheParameterGroup": null + } + }, + "CacheParameterGroupAlreadyExistsFault": { + "base": "

A cache parameter group with the requested name already exists.

", + "refs": { + } + }, + "CacheParameterGroupDetails": { + "base": "

Represents the output of a DescribeCacheParameters action.

", + "refs": { + } + }, + "CacheParameterGroupList": { + "base": null, + "refs": { + "CacheParameterGroupsMessage$CacheParameterGroups": "

A list of cache parameter groups. Each element in the list contains detailed information about one cache parameter group.

" + } + }, + "CacheParameterGroupNameMessage": { + "base": "

Represents the output of one of the following actions:

  • ModifyCacheParameterGroup
  • ResetCacheParameterGroup
", + "refs": { + } + }, + "CacheParameterGroupNotFoundFault": { + "base": "

The requested cache parameter group name does not refer to an existing cache parameter group.

", + "refs": { + } + }, + "CacheParameterGroupQuotaExceededFault": { + "base": "

The request cannot be processed because it would exceed the maximum number of cache security groups.

", + "refs": { + } + }, + "CacheParameterGroupStatus": { + "base": "

The status of the cache parameter group.

", + "refs": { + "CacheCluster$CacheParameterGroup": null + } + }, + "CacheParameterGroupsMessage": { + "base": "

Represents the output of a DescribeCacheParameterGroups action.

", + "refs": { + } + }, + "CacheSecurityGroup": { + "base": "

Represents the output of one of the following actions:

  • AuthorizeCacheSecurityGroupIngress
  • CreateCacheSecurityGroup
  • RevokeCacheSecurityGroupIngress
", + "refs": { + "CacheSecurityGroups$member": null, + "AuthorizeCacheSecurityGroupIngressResult$CacheSecurityGroup": null, + "CreateCacheSecurityGroupResult$CacheSecurityGroup": null, + "RevokeCacheSecurityGroupIngressResult$CacheSecurityGroup": null + } + }, + "CacheSecurityGroupAlreadyExistsFault": { + "base": "

A cache security group with the specified name already exists.

", + "refs": { + } + }, + "CacheSecurityGroupMembership": { + "base": "

Represents a cache cluster's status within a particular cache security group.

", + "refs": { + "CacheSecurityGroupMembershipList$member": null + } + }, + "CacheSecurityGroupMembershipList": { + "base": null, + "refs": { + "CacheCluster$CacheSecurityGroups": "

A list of cache security group elements, composed of name and status sub-elements.

" + } + }, + "CacheSecurityGroupMessage": { + "base": "

Represents the output of a DescribeCacheSecurityGroups action.

", + "refs": { + } + }, + "CacheSecurityGroupNameList": { + "base": null, + "refs": { + "CreateCacheClusterMessage$CacheSecurityGroupNames": "

A list of security group names to associate with this cache cluster.

Use this parameter only when you are creating a cache cluster outside of an Amazon Virtual Private Cloud (VPC).

", + "CreateReplicationGroupMessage$CacheSecurityGroupNames": "

A list of cache security group names to associate with this replication group.

", + "ModifyCacheClusterMessage$CacheSecurityGroupNames": "

A list of cache security group names to authorize on this cache cluster. This change is asynchronously applied as soon as possible.

This parameter can be used only with clusters that are created outside of an Amazon Virtual Private Cloud (VPC).

Constraints: Must contain no more than 255 alphanumeric characters. Must not be \"Default\".

", + "ModifyReplicationGroupMessage$CacheSecurityGroupNames": "

A list of cache security group names to authorize for the clusters in this replication group. This change is asynchronously applied as soon as possible.

This parameter can be used only with replication group containing cache clusters running outside of an Amazon Virtual Private Cloud (VPC).

Constraints: Must contain no more than 255 alphanumeric characters. Must not be \"Default\".

" + } + }, + "CacheSecurityGroupNotFoundFault": { + "base": "

The requested cache security group name does not refer to an existing cache security group.

", + "refs": { + } + }, + "CacheSecurityGroupQuotaExceededFault": { + "base": "

The request cannot be processed because it would exceed the allowed number of cache security groups.

", + "refs": { + } + }, + "CacheSecurityGroups": { + "base": null, + "refs": { + "CacheSecurityGroupMessage$CacheSecurityGroups": "

A list of cache security groups. Each element in the list contains detailed information about one group.

" + } + }, + "CacheSubnetGroup": { + "base": "

Represents the output of one of the following actions:

  • CreateCacheSubnetGroup
  • ModifyCacheSubnetGroup
", + "refs": { + "CacheSubnetGroups$member": null, + "CreateCacheSubnetGroupResult$CacheSubnetGroup": null, + "ModifyCacheSubnetGroupResult$CacheSubnetGroup": null + } + }, + "CacheSubnetGroupAlreadyExistsFault": { + "base": "

The requested cache subnet group name is already in use by an existing cache subnet group.

", + "refs": { + } + }, + "CacheSubnetGroupInUse": { + "base": "

The requested cache subnet group is currently in use.

", + "refs": { + } + }, + "CacheSubnetGroupMessage": { + "base": "

Represents the output of a DescribeCacheSubnetGroups action.

", + "refs": { + } + }, + "CacheSubnetGroupNotFoundFault": { + "base": "

The requested cache subnet group name does not refer to an existing cache subnet group.

", + "refs": { + } + }, + "CacheSubnetGroupQuotaExceededFault": { + "base": "

The request cannot be processed because it would exceed the allowed number of cache subnet groups.

", + "refs": { + } + }, + "CacheSubnetGroups": { + "base": null, + "refs": { + "CacheSubnetGroupMessage$CacheSubnetGroups": "

A list of cache subnet groups. Each element in the list contains detailed information about one group.

" + } + }, + "CacheSubnetQuotaExceededFault": { + "base": "

The request cannot be processed because it would exceed the allowed number of subnets in a cache subnet group.

", + "refs": { + } + }, + "ClusterIdList": { + "base": null, + "refs": { + "ReplicationGroup$MemberClusters": "

The names of all the cache clusters that are part of this replication group.

" + } + }, + "ClusterQuotaForCustomerExceededFault": { + "base": "

The request cannot be processed because it would exceed the allowed number of cache clusters per customer.

", + "refs": { + } + }, + "CopySnapshotMessage": { + "base": "

Represents the input of a CopySnapshotMessage action.

", + "refs": { + } + }, + "CreateCacheClusterMessage": { + "base": "

Represents the input of a CreateCacheCluster action.

", + "refs": { + } + }, + "CreateCacheParameterGroupMessage": { + "base": "

Represents the input of a CreateCacheParameterGroup action.

", + "refs": { + } + }, + "CreateCacheSecurityGroupMessage": { + "base": "

Represents the input of a CreateCacheSecurityGroup action.

", + "refs": { + } + }, + "CreateCacheSubnetGroupMessage": { + "base": "

Represents the input of a CreateCacheSubnetGroup action.

", + "refs": { + } + }, + "CreateReplicationGroupMessage": { + "base": "

Represents the input of a CreateReplicationGroup action.

", + "refs": { + } + }, + "CreateSnapshotMessage": { + "base": "

Represents the input of a CreateSnapshot action.

", + "refs": { + } + }, + "DeleteCacheClusterMessage": { + "base": "

Represents the input of a DeleteCacheCluster action.

", + "refs": { + } + }, + "DeleteCacheParameterGroupMessage": { + "base": "

Represents the input of a DeleteCacheParameterGroup action.

", + "refs": { + } + }, + "DeleteCacheSecurityGroupMessage": { + "base": "

Represents the input of a DeleteCacheSecurityGroup action.

", + "refs": { + } + }, + "DeleteCacheSubnetGroupMessage": { + "base": "

Represents the input of a DeleteCacheSubnetGroup action.

", + "refs": { + } + }, + "DeleteReplicationGroupMessage": { + "base": "

Represents the input of a DeleteReplicationGroup action.

", + "refs": { + } + }, + "DeleteSnapshotMessage": { + "base": "

Represents the input of a DeleteSnapshot action.

", + "refs": { + } + }, + "DescribeCacheClustersMessage": { + "base": "

Represents the input of a DescribeCacheClusters action.

", + "refs": { + } + }, + "DescribeCacheEngineVersionsMessage": { + "base": "

Represents the input of a DescribeCacheEngineVersions action.

", + "refs": { + } + }, + "DescribeCacheParameterGroupsMessage": { + "base": "

Represents the input of a DescribeCacheParameterGroups action.

", + "refs": { + } + }, + "DescribeCacheParametersMessage": { + "base": "

Represents the input of a DescribeCacheParameters action.

", + "refs": { + } + }, + "DescribeCacheSecurityGroupsMessage": { + "base": "

Represents the input of a DescribeCacheSecurityGroups action.

", + "refs": { + } + }, + "DescribeCacheSubnetGroupsMessage": { + "base": "

Represents the input of a DescribeCacheSubnetGroups action.

", + "refs": { + } + }, + "DescribeEngineDefaultParametersMessage": { + "base": "

Represents the input of a DescribeEngineDefaultParameters action.

", + "refs": { + } + }, + "DescribeEventsMessage": { + "base": "

Represents the input of a DescribeEvents action.

", + "refs": { + } + }, + "DescribeReplicationGroupsMessage": { + "base": "

Represents the input of a DescribeReplicationGroups action.

", + "refs": { + } + }, + "DescribeReservedCacheNodesMessage": { + "base": "

Represents the input of a DescribeReservedCacheNodes action.

", + "refs": { + } + }, + "DescribeReservedCacheNodesOfferingsMessage": { + "base": "

Represents the input of a DescribeReservedCacheNodesOfferings action.

", + "refs": { + } + }, + "DescribeSnapshotsListMessage": { + "base": "

Represents the output of a DescribeSnapshots action.

", + "refs": { + } + }, + "DescribeSnapshotsMessage": { + "base": "

Represents the input of a DescribeSnapshotsMessage action.

", + "refs": { + } + }, + "Double": { + "base": null, + "refs": { + "RecurringCharge$RecurringChargeAmount": "

The monetary amount of the recurring charge.

", + "ReservedCacheNode$FixedPrice": "

The fixed price charged for this reserved cache node.

", + "ReservedCacheNode$UsagePrice": "

The hourly price charged for this reserved cache node.

", + "ReservedCacheNodesOffering$FixedPrice": "

The fixed price charged for this offering.

", + "ReservedCacheNodesOffering$UsagePrice": "

The hourly price charged for this offering.

" + } + }, + "EC2SecurityGroup": { + "base": "

Provides ownership and status information for an Amazon EC2 security group.

", + "refs": { + "EC2SecurityGroupList$member": null + } + }, + "EC2SecurityGroupList": { + "base": null, + "refs": { + "CacheSecurityGroup$EC2SecurityGroups": "

A list of Amazon EC2 security groups that are associated with this cache security group.

" + } + }, + "Endpoint": { + "base": "

Represents the information required for client programs to connect to a cache node.

", + "refs": { + "CacheCluster$ConfigurationEndpoint": null, + "CacheNode$Endpoint": "

The hostname for connecting to this cache node.

", + "NodeGroup$PrimaryEndpoint": null, + "NodeGroupMember$ReadEndpoint": null + } + }, + "EngineDefaults": { + "base": "

Represents the output of a DescribeEngineDefaultParameters action.

", + "refs": { + "DescribeEngineDefaultParametersResult$EngineDefaults": null + } + }, + "Event": { + "base": "

Represents a single occurrence of something interesting within the system. Some examples of events are creating a cache cluster, adding or removing a cache node, or rebooting a node.

", + "refs": { + "EventList$member": null + } + }, + "EventList": { + "base": null, + "refs": { + "EventsMessage$Events": "

A list of events. Each element in the list contains detailed information about one event.

" + } + }, + "EventsMessage": { + "base": "

Represents the output of a DescribeEvents action.

", + "refs": { + } + }, + "InsufficientCacheClusterCapacityFault": { + "base": "

The requested cache node type is not available in the specified Availability Zone.

", + "refs": { + } + }, + "Integer": { + "base": null, + "refs": { + "Endpoint$Port": "

The port number that the cache engine is listening on.

", + "ReservedCacheNode$Duration": "

The duration of the reservation in seconds.

", + "ReservedCacheNode$CacheNodeCount": "

The number of cache nodes that have been reserved.

", + "ReservedCacheNodesOffering$Duration": "

The duration of the offering. in seconds.

" + } + }, + "IntegerOptional": { + "base": null, + "refs": { + "CacheCluster$NumCacheNodes": "

The number of cache nodes in the cache cluster.

For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.

", + "CacheCluster$SnapshotRetentionLimit": "

The number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted.

Important
If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.

", + "CreateCacheClusterMessage$NumCacheNodes": "

The initial number of cache nodes that the cache cluster will have.

For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.

If you need more than 20 nodes for your Memcached cluster, please fill out the ElastiCache Limit Increase Request form at http://aws.amazon.com/contact-us/elasticache-node-limit-request/.

", + "CreateCacheClusterMessage$Port": "

The port number on which each of the cache nodes will accept connections.

", + "CreateCacheClusterMessage$SnapshotRetentionLimit": "

The number of days for which ElastiCache will retain automatic snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted.

Note: This parameter is only valid if the Engine parameter is redis.

Default: 0 (i.e., automatic backups are disabled for this cache cluster).

", + "CreateReplicationGroupMessage$NumCacheClusters": "

The number of cache clusters this replication group will initially have.

If Multi-AZ is enabled, the value of this parameter must be at least 2.

The maximum permitted value for NumCacheClusters is 6 (primary plus 5 replicas). If you need to exceed this limit, please fill out the ElastiCache Limit Increase Request form at http://aws.amazon.com/contact-us/elasticache-node-limit-request.

", + "CreateReplicationGroupMessage$Port": "

The port number on which each member of the replication group will accept connections.

", + "CreateReplicationGroupMessage$SnapshotRetentionLimit": "

The number of days for which ElastiCache will retain automatic snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted.

Note: This parameter is only valid if the Engine parameter is redis.

Default: 0 (i.e., automatic backups are disabled for this cache cluster).

", + "DescribeCacheClustersMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: minimum 20; maximum 100.

", + "DescribeCacheEngineVersionsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: minimum 20; maximum 100.

", + "DescribeCacheParameterGroupsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: minimum 20; maximum 100.

", + "DescribeCacheParametersMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: minimum 20; maximum 100.

", + "DescribeCacheSecurityGroupsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: minimum 20; maximum 100.

", + "DescribeCacheSubnetGroupsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: minimum 20; maximum 100.

", + "DescribeEngineDefaultParametersMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: minimum 20; maximum 100.

", + "DescribeEventsMessage$Duration": "

The number of minutes' worth of events to retrieve.

", + "DescribeEventsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: minimum 20; maximum 100.

", + "DescribeReplicationGroupsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: minimum 20; maximum 100.

", + "DescribeReservedCacheNodesMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: minimum 20; maximum 100.

", + "DescribeReservedCacheNodesOfferingsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: minimum 20; maximum 100.

", + "DescribeSnapshotsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved.

Default: 50

Constraints: minimum 20; maximum 50.

", + "ModifyCacheClusterMessage$NumCacheNodes": "

The number of cache nodes that the cache cluster should have. If the value for NumCacheNodes is greater than the sum of the number of current cache nodes and the number of cache nodes pending creation (which may be zero), then more nodes will be added. If the value is less than the number of existing cache nodes, then nodes will be removed. If the value is equal to the number of current cache nodes, then any pending add or remove requests are canceled.

If you are removing cache nodes, you must use the CacheNodeIdsToRemove parameter to provide the IDs of the specific cache nodes to remove.

For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.

Note:
Adding or removing Memcached cache nodes can be applied immediately or as a pending action. See ApplyImmediately.
A pending action to modify the number of cache nodes in a cluster during its maintenance window, whether by adding or removing nodes in accordance with the scale out architecture, is not queued. The customer's latest request to add or remove nodes to the cluster overrides any previous pending actions to modify the number of cache nodes in the cluster. For example, a request to remove 2 nodes would override a previous pending action to remove 3 nodes. Similarly, a request to add 2 nodes would override a previous pending action to remove 3 nodes and vice versa. As Memcached cache nodes may now be provisioned in different Availability Zones with flexible cache node placement, a request to add nodes does not automatically override a previous pending action to add nodes. The customer can modify the previous pending action to add more nodes or explicitly cancel the pending request and retry the new request. To cancel pending actions to modify the number of cache nodes in a cluster, use the ModifyCacheCluster request and set NumCacheNodes equal to the number of cache nodes currently in the cache cluster.

", + "ModifyCacheClusterMessage$SnapshotRetentionLimit": "

The number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted.

Important
If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.

", + "ModifyReplicationGroupMessage$SnapshotRetentionLimit": "

The number of days for which ElastiCache will retain automatic node group snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted.

Important
If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.

", + "PendingModifiedValues$NumCacheNodes": "

The new number of cache nodes for the cache cluster.

For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.

", + "PurchaseReservedCacheNodesOfferingMessage$CacheNodeCount": "

The number of cache node instances to reserve.

Default: 1

", + "Snapshot$NumCacheNodes": "

The number of cache nodes in the source cache cluster.

For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.

", + "Snapshot$Port": "

The port number used by each cache nodes in the source cache cluster.

", + "Snapshot$SnapshotRetentionLimit": "

For an automatic snapshot, the number of days for which ElastiCache will retain the snapshot before deleting it.

For manual snapshots, this field reflects the SnapshotRetentionLimit for the source cache cluster when the snapshot was created. This field is otherwise ignored: Manual snapshots do not expire, and can only be deleted using the DeleteSnapshot action.

Important
If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.

" + } + }, + "InvalidARNFault": { + "base": "

The requested Amazon Resource Name (ARN) does not refer to an existing resource.

", + "refs": { + } + }, + "InvalidCacheClusterStateFault": { + "base": "

The requested cache cluster is not in the available state.

", + "refs": { + } + }, + "InvalidCacheParameterGroupStateFault": { + "base": "

The current state of the cache parameter group does not allow the requested action to occur.

", + "refs": { + } + }, + "InvalidCacheSecurityGroupStateFault": { + "base": "

The current state of the cache security group does not allow deletion.

", + "refs": { + } + }, + "InvalidParameterCombinationException": { + "base": "

Two or more incompatible parameters were specified.

", + "refs": { + } + }, + "InvalidParameterValueException": { + "base": "

The value for a parameter is invalid.

", + "refs": { + } + }, + "InvalidReplicationGroupStateFault": { + "base": "

The requested replication group is not in the available state.

", + "refs": { + } + }, + "InvalidSnapshotStateFault": { + "base": "

The current state of the snapshot does not allow the requested action to occur.

", + "refs": { + } + }, + "InvalidSubnet": { + "base": "

An invalid subnet identifier was specified.

", + "refs": { + } + }, + "InvalidVPCNetworkStateFault": { + "base": "

The VPC network is in an invalid state.

", + "refs": { + } + }, + "KeyList": { + "base": null, + "refs": { + "RemoveTagsFromResourceMessage$TagKeys": "

A list of TagKeys identifying the tags you want removed from the named resource. For example, TagKeys.member.1=Region removes the cost allocation tag with the key name Region from the resource named by the ResourceName parameter.

" + } + }, + "ListTagsForResourceMessage": { + "base": "

The input parameters for the ListTagsForResource action.

", + "refs": { + } + }, + "ModifyCacheClusterMessage": { + "base": "

Represents the input of a ModifyCacheCluster action.

", + "refs": { + } + }, + "ModifyCacheParameterGroupMessage": { + "base": "

Represents the input of a ModifyCacheParameterGroup action.

", + "refs": { + } + }, + "ModifyCacheSubnetGroupMessage": { + "base": "

Represents the input of a ModifyCacheSubnetGroup action.

", + "refs": { + } + }, + "ModifyReplicationGroupMessage": { + "base": "

Represents the input of a ModifyReplicationGroups action.

", + "refs": { + } + }, + "NodeGroup": { + "base": "

Represents a collection of cache nodes in a replication group.

", + "refs": { + "NodeGroupList$member": null + } + }, + "NodeGroupList": { + "base": null, + "refs": { + "ReplicationGroup$NodeGroups": "

A single element list with information about the nodes in the replication group.

" + } + }, + "NodeGroupMember": { + "base": "

Represents a single node within a node group.

", + "refs": { + "NodeGroupMemberList$member": null + } + }, + "NodeGroupMemberList": { + "base": null, + "refs": { + "NodeGroup$NodeGroupMembers": "

A list containing information about individual nodes within the node group.

" + } + }, + "NodeQuotaForClusterExceededFault": { + "base": "

The request cannot be processed because it would exceed the allowed number of cache nodes in a single cache cluster.

", + "refs": { + } + }, + "NodeQuotaForCustomerExceededFault": { + "base": "

The request cannot be processed because it would exceed the allowed number of cache nodes per customer.

", + "refs": { + } + }, + "NodeSnapshot": { + "base": "

Represents an individual cache node in a snapshot of a cache cluster.

", + "refs": { + "NodeSnapshotList$member": null + } + }, + "NodeSnapshotList": { + "base": null, + "refs": { + "Snapshot$NodeSnapshots": "

A list of the cache nodes in the source cache cluster.

" + } + }, + "NotificationConfiguration": { + "base": "

Describes a notification topic and its status. Notification topics are used for publishing ElastiCache events to subscribers using Amazon Simple Notification Service (SNS).

", + "refs": { + "CacheCluster$NotificationConfiguration": null + } + }, + "Parameter": { + "base": "

Describes an individual setting that controls some aspect of ElastiCache behavior.

", + "refs": { + "ParametersList$member": null + } + }, + "ParameterNameValue": { + "base": "

Describes a name-value pair that is used to update the value of a parameter.

", + "refs": { + "ParameterNameValueList$member": null + } + }, + "ParameterNameValueList": { + "base": null, + "refs": { + "ModifyCacheParameterGroupMessage$ParameterNameValues": "

An array of parameter names and values for the parameter update. You must supply at least one parameter name and value; subsequent arguments are optional. A maximum of 20 parameters may be modified per request.

", + "ResetCacheParameterGroupMessage$ParameterNameValues": "

An array of parameter names to be reset. If you are not resetting the entire cache parameter group, you must specify at least one parameter name.

" + } + }, + "ParametersList": { + "base": null, + "refs": { + "CacheParameterGroupDetails$Parameters": "

A list of Parameter instances.

", + "EngineDefaults$Parameters": "

Contains a list of engine default parameters.

" + } + }, + "PendingAutomaticFailoverStatus": { + "base": null, + "refs": { + "ReplicationGroupPendingModifiedValues$AutomaticFailoverStatus": "

Indicates the status of Multi-AZ for this replication group.

ElastiCache Multi-AZ replication groups are not supported on:

  • Redis versions earlier than 2.8.6.
  • T1 and T2 cache node types.
" + } + }, + "PendingModifiedValues": { + "base": "

A group of settings that will be applied to the cache cluster in the future, or that are currently being applied.

", + "refs": { + "CacheCluster$PendingModifiedValues": null + } + }, + "PreferredAvailabilityZoneList": { + "base": null, + "refs": { + "CreateCacheClusterMessage$PreferredAvailabilityZones": "

A list of the Availability Zones in which cache nodes will be created. The order of the zones in the list is not important.

This option is only supported on Memcached.

If you are creating your cache cluster in an Amazon VPC (recommended) you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group.

The number of Availability Zones listed must equal the value of NumCacheNodes.

If you want all the nodes in the same Availability Zone, use PreferredAvailabilityZone instead, or repeat the Availability Zone multiple times in the list.

Default: System chosen Availability Zones.

Example: One Memcached node in each of three different Availability Zones: PreferredAvailabilityZones.member.1=us-west-2a&PreferredAvailabilityZones.member.2=us-west-2b&PreferredAvailabilityZones.member.3=us-west-2c

Example: All three Memcached nodes in one Availability Zone: PreferredAvailabilityZones.member.1=us-west-2a&PreferredAvailabilityZones.member.2=us-west-2a&PreferredAvailabilityZones.member.3=us-west-2a

", + "ModifyCacheClusterMessage$NewAvailabilityZones": "

The list of Availability Zones where the new Memcached cache nodes will be created.

This parameter is only valid when NumCacheNodes in the request is greater than the sum of the number of active cache nodes and the number of cache nodes pending creation (which may be zero). The number of Availability Zones supplied in this list must match the cache nodes being added in this request.

This option is only supported on Memcached clusters.

Scenarios:

  • Scenario 1: You have 3 active nodes and wish to add 2 nodes.
    Specify NumCacheNodes=5 (3 + 2) and optionally specify two Availability Zones for the two new nodes.
  • Scenario 2: You have 3 active nodes and 2 nodes pending creation (from the scenario 1 call) and want to add 1 more node.
    Specify NumCacheNodes=6 ((3 + 2) + 1)
  • and optionally specify an Availability Zone for the new node.
  • Scenario 3: You want to cancel all pending actions.
    Specify NumCacheNodes=3 to cancel all pending actions.

The Availability Zone placement of nodes pending creation cannot be modified. If you wish to cancel any nodes pending creation, add 0 nodes by setting NumCacheNodes to the number of current nodes.

If cross-az is specified, existing Memcached nodes remain in their current Availability Zone. Only newly created nodes can be located in different Availability Zones. For guidance on how to move existing Memcached nodes to different Availability Zones, see the Availability Zone Considerations section of Cache Node Considerations for Memcached.

Impact of new add/remove requests upon pending requests

Scenarios Pending action New Request Results
Scenario-1 Delete Delete The new delete, pending or immediate, replaces the pending delete.
Scenario-2 Delete Create The new create, pending or immediate, replaces the pending delete.
Scenario-3 Create Delete The new delete, pending or immediate, replaces the pending create.
Scenario-4 Create Create The new create is added to the pending create.
Important:
If the new create request is Apply Immediately - Yes, all creates are performed immediately. If the new create request is Apply Immediately - No, all creates are pending.

Example: NewAvailabilityZones.member.1=us-west-2a&NewAvailabilityZones.member.2=us-west-2b&NewAvailabilityZones.member.3=us-west-2c

" + } + }, + "PurchaseReservedCacheNodesOfferingMessage": { + "base": "

Represents the input of a PurchaseReservedCacheNodesOffering action.

", + "refs": { + } + }, + "RebootCacheClusterMessage": { + "base": "

Represents the input of a RebootCacheCluster action.

", + "refs": { + } + }, + "RecurringCharge": { + "base": "

Contains the specific price and frequency of a recurring charges for a reserved cache node, or for a reserved cache node offering.

", + "refs": { + "RecurringChargeList$member": null + } + }, + "RecurringChargeList": { + "base": null, + "refs": { + "ReservedCacheNode$RecurringCharges": "

The recurring price charged to run this reserved cache node.

", + "ReservedCacheNodesOffering$RecurringCharges": "

The recurring price charged to run this reserved cache node.

" + } + }, + "RemoveTagsFromResourceMessage": { + "base": "

Represents the input of a RemoveTagsFromResource action.

", + "refs": { + } + }, + "ReplicationGroup": { + "base": "

Contains all of the attributes of a specific replication group.

", + "refs": { + "ReplicationGroupList$member": null, + "CreateReplicationGroupResult$ReplicationGroup": null, + "DeleteReplicationGroupResult$ReplicationGroup": null, + "ModifyReplicationGroupResult$ReplicationGroup": null + } + }, + "ReplicationGroupAlreadyExistsFault": { + "base": "

The specified replication group already exists.

", + "refs": { + } + }, + "ReplicationGroupList": { + "base": null, + "refs": { + "ReplicationGroupMessage$ReplicationGroups": "

A list of replication groups. Each item in the list contains detailed information about one replication group.

" + } + }, + "ReplicationGroupMessage": { + "base": "

Represents the output of a DescribeReplicationGroups action.

", + "refs": { + } + }, + "ReplicationGroupNotFoundFault": { + "base": "

The specified replication group does not exist.

", + "refs": { + } + }, + "ReplicationGroupPendingModifiedValues": { + "base": "

The settings to be applied to the replication group, either immediately or during the next maintenance window.

", + "refs": { + "ReplicationGroup$PendingModifiedValues": "

A group of settings to be applied to the replication group, either immediately or during the next maintenance window.

" + } + }, + "ReservedCacheNode": { + "base": "

Represents the output of a PurchaseReservedCacheNodesOffering action.

", + "refs": { + "ReservedCacheNodeList$member": null, + "PurchaseReservedCacheNodesOfferingResult$ReservedCacheNode": null + } + }, + "ReservedCacheNodeAlreadyExistsFault": { + "base": "

You already have a reservation with the given identifier.

", + "refs": { + } + }, + "ReservedCacheNodeList": { + "base": null, + "refs": { + "ReservedCacheNodeMessage$ReservedCacheNodes": "

A list of reserved cache nodes. Each element in the list contains detailed information about one node.

" + } + }, + "ReservedCacheNodeMessage": { + "base": "

Represents the output of a DescribeReservedCacheNodes action.

", + "refs": { + } + }, + "ReservedCacheNodeNotFoundFault": { + "base": "

The requested reserved cache node was not found.

", + "refs": { + } + }, + "ReservedCacheNodeQuotaExceededFault": { + "base": "

The request cannot be processed because it would exceed the user's cache node quota.

", + "refs": { + } + }, + "ReservedCacheNodesOffering": { + "base": "

Describes all of the attributes of a reserved cache node offering.

", + "refs": { + "ReservedCacheNodesOfferingList$member": null + } + }, + "ReservedCacheNodesOfferingList": { + "base": null, + "refs": { + "ReservedCacheNodesOfferingMessage$ReservedCacheNodesOfferings": "

A list of reserved cache node offerings. Each element in the list contains detailed information about one offering.

" + } + }, + "ReservedCacheNodesOfferingMessage": { + "base": "

Represents the output of a DescribeReservedCacheNodesOfferings action.

", + "refs": { + } + }, + "ReservedCacheNodesOfferingNotFoundFault": { + "base": "

The requested cache node offering does not exist.

", + "refs": { + } + }, + "ResetCacheParameterGroupMessage": { + "base": "

Represents the input of a ResetCacheParameterGroup action.

", + "refs": { + } + }, + "RevokeCacheSecurityGroupIngressMessage": { + "base": "

Represents the input of a RevokeCacheSecurityGroupIngress action.

", + "refs": { + } + }, + "SecurityGroupIdsList": { + "base": null, + "refs": { + "CreateCacheClusterMessage$SecurityGroupIds": "

One or more VPC security groups associated with the cache cluster.

Use this parameter only when you are creating a cache cluster in an Amazon Virtual Private Cloud (VPC).

", + "CreateReplicationGroupMessage$SecurityGroupIds": "

One or more Amazon VPC security groups associated with this replication group.

Use this parameter only when you are creating a replication group in an Amazon Virtual Private Cloud (VPC).

", + "ModifyCacheClusterMessage$SecurityGroupIds": "

Specifies the VPC Security Groups associated with the cache cluster.

This parameter can be used only with clusters that are created in an Amazon Virtual Private Cloud (VPC).

", + "ModifyReplicationGroupMessage$SecurityGroupIds": "

Specifies the VPC Security Groups associated with the cache clusters in the replication group.

This parameter can be used only with replication group containing cache clusters running in an Amazon Virtual Private Cloud (VPC).

" + } + }, + "SecurityGroupMembership": { + "base": "

Represents a single cache security group and its status.

", + "refs": { + "SecurityGroupMembershipList$member": null + } + }, + "SecurityGroupMembershipList": { + "base": null, + "refs": { + "CacheCluster$SecurityGroups": "

A list of VPC Security Groups associated with the cache cluster.

" + } + }, + "Snapshot": { + "base": "

Represents a copy of an entire cache cluster as of the time when the snapshot was taken.

", + "refs": { + "SnapshotList$member": null, + "CopySnapshotResult$Snapshot": null, + "CreateSnapshotResult$Snapshot": null, + "DeleteSnapshotResult$Snapshot": null + } + }, + "SnapshotAlreadyExistsFault": { + "base": "

You already have a snapshot with the given name.

", + "refs": { + } + }, + "SnapshotArnsList": { + "base": null, + "refs": { + "CreateCacheClusterMessage$SnapshotArns": "

A single-element string list containing an Amazon Resource Name (ARN) that uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot file will be used to populate the node group. The Amazon S3 object name in the ARN cannot contain any commas.

Note: This parameter is only valid if the Engine parameter is redis.

Example of an Amazon S3 ARN: arn:aws:s3:::my_bucket/snapshot1.rdb

", + "CreateReplicationGroupMessage$SnapshotArns": "

A single-element string list containing an Amazon Resource Name (ARN) that uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot file will be used to populate the node group. The Amazon S3 object name in the ARN cannot contain any commas.

Note: This parameter is only valid if the Engine parameter is redis.

Example of an Amazon S3 ARN: arn:aws:s3:::my_bucket/snapshot1.rdb

" + } + }, + "SnapshotFeatureNotSupportedFault": { + "base": "

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.

", + "refs": { + } + }, + "SnapshotList": { + "base": null, + "refs": { + "DescribeSnapshotsListMessage$Snapshots": "

A list of snapshots. Each item in the list contains detailed information about one snapshot.

" + } + }, + "SnapshotNotFoundFault": { + "base": "

The requested snapshot name does not refer to an existing snapshot.

", + "refs": { + } + }, + "SnapshotQuotaExceededFault": { + "base": "

The request cannot be processed because it would exceed the maximum number of snapshots.

", + "refs": { + } + }, + "SourceType": { + "base": null, + "refs": { + "DescribeEventsMessage$SourceType": "

The event source to retrieve events for. If no value is specified, all events are returned.

Valid values are: cache-cluster | cache-parameter-group | cache-security-group | cache-subnet-group

", + "Event$SourceType": "

Specifies the origin of this event - a cache cluster, a parameter group, a security group, etc.

" + } + }, + "String": { + "base": null, + "refs": { + "AddTagsToResourceMessage$ResourceName": "

The name of the resource to which the tags are to be added, for example arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster.

", + "AuthorizeCacheSecurityGroupIngressMessage$CacheSecurityGroupName": "

The cache security group which will allow network ingress.

", + "AuthorizeCacheSecurityGroupIngressMessage$EC2SecurityGroupName": "

The Amazon EC2 security group to be authorized for ingress to the cache security group.

", + "AuthorizeCacheSecurityGroupIngressMessage$EC2SecurityGroupOwnerId": "

The AWS account number of the Amazon EC2 security group owner. Note that this is not the same thing as an AWS access key ID - you must provide a valid AWS account number for this parameter.

", + "AvailabilityZone$Name": "

The name of the Availability Zone.

", + "AvailabilityZonesList$member": null, + "CacheCluster$CacheClusterId": "

The user-supplied identifier of the cache cluster. This identifier is a unique key that identifies a cache cluster.

", + "CacheCluster$ClientDownloadLandingPage": "

The URL of the web page where you can download the latest ElastiCache client library.

", + "CacheCluster$CacheNodeType": "

The name of the compute and memory capacity node type for the cache cluster.

Valid node types are as follows:

  • General purpose:
    • Current generation: cache.t2.micro, cache.t2.small, cache.t2.medium, cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge
    • Previous generation: cache.t1.micro, cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge
  • Compute optimized: cache.c1.xlarge
  • Memory optimized
    • Current generation: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge
    • Previous generation: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

Notes:

  • All t2 instances are created in an Amazon Virtual Private Cloud (VPC).
  • Redis backup/restore is not supported for t2 instances.
  • Redis Append-only files (AOF) functionality is not supported for t1 or t2 instances.

For a complete listing of cache node types and specifications, see Amazon ElastiCache Product Features and Details and Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", + "CacheCluster$Engine": "

The name of the cache engine (memcached or redis) to be used for this cache cluster.

", + "CacheCluster$EngineVersion": "

The version of the cache engine version that is used in this cache cluster.

", + "CacheCluster$CacheClusterStatus": "

The current state of this cache cluster, one of the following values: available, creating, deleted, deleting, incompatible-network, modifying, rebooting cache cluster nodes, restore-failed, or snapshotting.

", + "CacheCluster$PreferredAvailabilityZone": "

The name of the Availability Zone in which the cache cluster is located or \"Multiple\" if the cache nodes are located in different Availability Zones.

", + "CacheCluster$PreferredMaintenanceWindow": "

Specifies the weekly time range during which maintenance on the cache cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for ddd are:

  • sun
  • mon
  • tue
  • wed
  • thu
  • fri
  • sat

Example: sun:05:00-sun:09:00

", + "CacheCluster$CacheSubnetGroupName": "

The name of the cache subnet group associated with the cache cluster.

", + "CacheCluster$ReplicationGroupId": "

The replication group to which this cache cluster belongs. If this field is empty, the cache cluster is not associated with any replication group.

", + "CacheCluster$SnapshotWindow": "

The daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster.

Example: 05:00-09:00

", + "CacheClusterMessage$Marker": "

Provides an identifier to allow retrieval of paginated results.

", + "CacheEngineVersion$Engine": "

The name of the cache engine.

", + "CacheEngineVersion$EngineVersion": "

The version number of the cache engine.

", + "CacheEngineVersion$CacheParameterGroupFamily": "

The name of the cache parameter group family associated with this cache engine.

", + "CacheEngineVersion$CacheEngineDescription": "

The description of the cache engine.

", + "CacheEngineVersion$CacheEngineVersionDescription": "

The description of the cache engine version.

", + "CacheEngineVersionMessage$Marker": "

Provides an identifier to allow retrieval of paginated results.

", + "CacheNode$CacheNodeId": "

The cache node identifier. A node ID is a numeric identifier (0001, 0002, etc.). The combination of cluster ID and node ID uniquely identifies every cache node used in a customer's AWS account.

", + "CacheNode$CacheNodeStatus": "

The current state of this cache node.

", + "CacheNode$ParameterGroupStatus": "

The status of the parameter group applied to this cache node.

", + "CacheNode$SourceCacheNodeId": "

The ID of the primary node to which this read replica node is synchronized. If this field is empty, then this node is not associated with a primary cache cluster.

", + "CacheNode$CustomerAvailabilityZone": "

The Availability Zone where this node was created and now resides.

", + "CacheNodeIdsList$member": null, + "CacheNodeTypeSpecificParameter$ParameterName": "

The name of the parameter.

", + "CacheNodeTypeSpecificParameter$Description": "

A description of the parameter.

", + "CacheNodeTypeSpecificParameter$Source": "

The source of the parameter value.

", + "CacheNodeTypeSpecificParameter$DataType": "

The valid data type for the parameter.

", + "CacheNodeTypeSpecificParameter$AllowedValues": "

The valid range of values for the parameter.

", + "CacheNodeTypeSpecificParameter$MinimumEngineVersion": "

The earliest cache engine version to which the parameter can apply.

", + "CacheNodeTypeSpecificValue$CacheNodeType": "

The cache node type for which this value applies.

", + "CacheNodeTypeSpecificValue$Value": "

The value for the cache node type.

", + "CacheParameterGroup$CacheParameterGroupName": "

The name of the cache parameter group.

", + "CacheParameterGroup$CacheParameterGroupFamily": "

The name of the cache parameter group family that this cache parameter group is compatible with.

", + "CacheParameterGroup$Description": "

The description for this cache parameter group.

", + "CacheParameterGroupDetails$Marker": "

Provides an identifier to allow retrieval of paginated results.

", + "CacheParameterGroupNameMessage$CacheParameterGroupName": "

The name of the cache parameter group.

", + "CacheParameterGroupStatus$CacheParameterGroupName": "

The name of the cache parameter group.

", + "CacheParameterGroupStatus$ParameterApplyStatus": "

The status of parameter updates.

", + "CacheParameterGroupsMessage$Marker": "

Provides an identifier to allow retrieval of paginated results.

", + "CacheSecurityGroup$OwnerId": "

The AWS account ID of the cache security group owner.

", + "CacheSecurityGroup$CacheSecurityGroupName": "

The name of the cache security group.

", + "CacheSecurityGroup$Description": "

The description of the cache security group.

", + "CacheSecurityGroupMembership$CacheSecurityGroupName": "

The name of the cache security group.

", + "CacheSecurityGroupMembership$Status": "

The membership status in the cache security group. The status changes when a cache security group is modified, or when the cache security groups assigned to a cache cluster are modified.

", + "CacheSecurityGroupMessage$Marker": "

Provides an identifier to allow retrieval of paginated results.

", + "CacheSecurityGroupNameList$member": null, + "CacheSubnetGroup$CacheSubnetGroupName": "

The name of the cache subnet group.

", + "CacheSubnetGroup$CacheSubnetGroupDescription": "

The description of the cache subnet group.

", + "CacheSubnetGroup$VpcId": "

The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet group.

", + "CacheSubnetGroupMessage$Marker": "

Provides an identifier to allow retrieval of paginated results.

", + "ClusterIdList$member": null, + "CopySnapshotMessage$SourceSnapshotName": "

The name of an existing snapshot from which to copy.

", + "CopySnapshotMessage$TargetSnapshotName": "

A name for the copied snapshot.

", + "CreateCacheClusterMessage$CacheClusterId": "

The node group identifier. This parameter is stored as a lowercase string.

Constraints:

  • A name must contain from 1 to 20 alphanumeric characters or hyphens.
  • The first character must be a letter.
  • A name cannot end with a hyphen or contain two consecutive hyphens.
", + "CreateCacheClusterMessage$ReplicationGroupId": "

The ID of the replication group to which this cache cluster should belong. If this parameter is specified, the cache cluster will be added to the specified replication group as a read replica; otherwise, the cache cluster will be a standalone primary that is not part of any replication group.

If the specified replication group is Multi-AZ enabled and the availability zone is not specified, the cache cluster will be created in availability zones that provide the best spread of read replicas across availability zones.

Note: This parameter is only valid if the Engine parameter is redis.

", + "CreateCacheClusterMessage$PreferredAvailabilityZone": "

The EC2 Availability Zone in which the cache cluster will be created.

All nodes belonging to this Memcached cache cluster are placed in the preferred Availability Zone. If you want to create your nodes across multiple Availability Zones, use PreferredAvailabilityZones.

Default: System chosen Availability Zone.

", + "CreateCacheClusterMessage$CacheNodeType": "

The compute and memory capacity of the nodes in the node group.

Valid node types are as follows:

  • General purpose:
    • Current generation: cache.t2.micro, cache.t2.small, cache.t2.medium, cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge
    • Previous generation: cache.t1.micro, cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge
  • Compute optimized: cache.c1.xlarge
  • Memory optimized
    • Current generation: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge
    • Previous generation: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

Notes:

  • All t2 instances are created in an Amazon Virtual Private Cloud (VPC).
  • Redis backup/restore is not supported for t2 instances.
  • Redis Append-only files (AOF) functionality is not supported for t1 or t2 instances.

For a complete listing of cache node types and specifications, see Amazon ElastiCache Product Features and Details and Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", + "CreateCacheClusterMessage$Engine": "

The name of the cache engine to be used for this cache cluster.

Valid values for this parameter are:

memcached | redis

", + "CreateCacheClusterMessage$EngineVersion": "

The version number of the cache engine to be used for this cache cluster. To view the supported cache engine versions, use the DescribeCacheEngineVersions action.

", + "CreateCacheClusterMessage$CacheParameterGroupName": "

The name of the parameter group to associate with this cache cluster. If this argument is omitted, the default parameter group for the specified engine is used.

", + "CreateCacheClusterMessage$CacheSubnetGroupName": "

The name of the subnet group to be used for the cache cluster.

Use this parameter only when you are creating a cache cluster in an Amazon Virtual Private Cloud (VPC).

", + "CreateCacheClusterMessage$SnapshotName": "

The name of a snapshot from which to restore data into the new node group. The snapshot status changes to restoring while the new node group is being created.

Note: This parameter is only valid if the Engine parameter is redis.

", + "CreateCacheClusterMessage$PreferredMaintenanceWindow": "

Specifies the weekly time range during which maintenance on the cache cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for ddd are:

  • sun
  • mon
  • tue
  • wed
  • thu
  • fri
  • sat

Example: sun:05:00-sun:09:00

", + "CreateCacheClusterMessage$NotificationTopicArn": "

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications will be sent.

The Amazon SNS topic owner must be the same as the cache cluster owner.", + "CreateCacheClusterMessage$SnapshotWindow": "

The daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your node group.

Example: 05:00-09:00

If you do not specify this parameter, then ElastiCache will automatically choose an appropriate time range.

Note: This parameter is only valid if the Engine parameter is redis.

", + "CreateCacheParameterGroupMessage$CacheParameterGroupName": "

A user-specified name for the cache parameter group.

", + "CreateCacheParameterGroupMessage$CacheParameterGroupFamily": "

The name of the cache parameter group family the cache parameter group can be used with.

Valid values are: memcached1.4 | redis2.6 | redis2.8

", + "CreateCacheParameterGroupMessage$Description": "

A user-specified description for the cache parameter group.

", + "CreateCacheSecurityGroupMessage$CacheSecurityGroupName": "

A name for the cache security group. This value is stored as a lowercase string.

Constraints: Must contain no more than 255 alphanumeric characters. Cannot be the word \"Default\".

Example: mysecuritygroup

", + "CreateCacheSecurityGroupMessage$Description": "

A description for the cache security group.

", + "CreateCacheSubnetGroupMessage$CacheSubnetGroupName": "

A name for the cache subnet group. This value is stored as a lowercase string.

Constraints: Must contain no more than 255 alphanumeric characters or hyphens.

Example: mysubnetgroup

", + "CreateCacheSubnetGroupMessage$CacheSubnetGroupDescription": "

A description for the cache subnet group.

", + "CreateReplicationGroupMessage$ReplicationGroupId": "

The replication group identifier. This parameter is stored as a lowercase string.

Constraints:

  • A name must contain from 1 to 20 alphanumeric characters or hyphens.
  • The first character must be a letter.
  • A name cannot end with a hyphen or contain two consecutive hyphens.
", + "CreateReplicationGroupMessage$ReplicationGroupDescription": "

A user-created description for the replication group.

", + "CreateReplicationGroupMessage$PrimaryClusterId": "

The identifier of the cache cluster that will serve as the primary for this replication group. This cache cluster must already exist and have a status of available.

This parameter is not required if NumCacheClusters is specified.

", + "CreateReplicationGroupMessage$CacheNodeType": "

The compute and memory capacity of the nodes in the node group.

Valid node types are as follows:

  • General purpose:
    • Current generation: cache.t2.micro, cache.t2.small, cache.t2.medium, cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge
    • Previous generation: cache.t1.micro, cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge
  • Compute optimized: cache.c1.xlarge
  • Memory optimized
    • Current generation: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge
    • Previous generation: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

Notes:

  • All t2 instances are created in an Amazon Virtual Private Cloud (VPC).
  • Redis backup/restore is not supported for t2 instances.
  • Redis Append-only files (AOF) functionality is not supported for t1 or t2 instances.

For a complete listing of cache node types and specifications, see Amazon ElastiCache Product Features and Details and Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", + "CreateReplicationGroupMessage$Engine": "

The name of the cache engine to be used for the cache clusters in this replication group.

Default: redis

", + "CreateReplicationGroupMessage$EngineVersion": "

The version number of the cache engine to be used for the cache clusters in this replication group. To view the supported cache engine versions, use the DescribeCacheEngineVersions action.

", + "CreateReplicationGroupMessage$CacheParameterGroupName": "

The name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used.

", + "CreateReplicationGroupMessage$CacheSubnetGroupName": "

The name of the cache subnet group to be used for the replication group.

", + "CreateReplicationGroupMessage$SnapshotName": "

The name of a snapshot from which to restore data into the new node group. The snapshot status changes to restoring while the new node group is being created.

Note: This parameter is only valid if the Engine parameter is redis.

", + "CreateReplicationGroupMessage$PreferredMaintenanceWindow": "

Specifies the weekly time range during which maintenance on the cache cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for ddd are:

  • sun
  • mon
  • tue
  • wed
  • thu
  • fri
  • sat

Example: sun:05:00-sun:09:00

", + "CreateReplicationGroupMessage$NotificationTopicArn": "

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications will be sent.

The Amazon SNS topic owner must be the same as the cache cluster owner.", + "CreateReplicationGroupMessage$SnapshotWindow": "

The daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your node group.

Example: 05:00-09:00

If you do not specify this parameter, then ElastiCache will automatically choose an appropriate time range.

Note: This parameter is only valid if the Engine parameter is redis.

", + "CreateSnapshotMessage$CacheClusterId": "

The identifier of an existing cache cluster. The snapshot will be created from this cache cluster.

", + "CreateSnapshotMessage$SnapshotName": "

A name for the snapshot being created.

", + "DeleteCacheClusterMessage$CacheClusterId": "

The cache cluster identifier for the cluster to be deleted. This parameter is not case sensitive.

", + "DeleteCacheClusterMessage$FinalSnapshotIdentifier": "

The user-supplied name of a final cache cluster snapshot. This is the unique name that identifies the snapshot. ElastiCache creates the snapshot, and then deletes the cache cluster immediately afterward.

", + "DeleteCacheParameterGroupMessage$CacheParameterGroupName": "

The name of the cache parameter group to delete.

The specified cache security group must not be associated with any cache clusters.", + "DeleteCacheSecurityGroupMessage$CacheSecurityGroupName": "

The name of the cache security group to delete.

You cannot delete the default security group.", + "DeleteCacheSubnetGroupMessage$CacheSubnetGroupName": "

The name of the cache subnet group to delete.

Constraints: Must contain no more than 255 alphanumeric characters or hyphens.

", + "DeleteReplicationGroupMessage$ReplicationGroupId": "

The identifier for the cluster to be deleted. This parameter is not case sensitive.

", + "DeleteReplicationGroupMessage$FinalSnapshotIdentifier": "

The name of a final node group snapshot. ElastiCache creates the snapshot from the primary node in the cluster, rather than one of the replicas; this is to ensure that it captures the freshest data. After the final snapshot is taken, the cluster is immediately deleted.

", + "DeleteSnapshotMessage$SnapshotName": "

The name of the snapshot to be deleted.

", + "DescribeCacheClustersMessage$CacheClusterId": "

The user-supplied cluster identifier. If this parameter is specified, only information about that specific cache cluster is returned. This parameter isn't case sensitive.

", + "DescribeCacheClustersMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this action. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeCacheEngineVersionsMessage$Engine": "

The cache engine to return. Valid values: memcached | redis

", + "DescribeCacheEngineVersionsMessage$EngineVersion": "

The cache engine version to return.

Example: 1.4.14

", + "DescribeCacheEngineVersionsMessage$CacheParameterGroupFamily": "

The name of a specific cache parameter group family to return details for.

Constraints:

  • Must be 1 to 255 alphanumeric characters
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "DescribeCacheEngineVersionsMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this action. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeCacheParameterGroupsMessage$CacheParameterGroupName": "

The name of a specific cache parameter group to return details for.

", + "DescribeCacheParameterGroupsMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this action. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeCacheParametersMessage$CacheParameterGroupName": "

The name of a specific cache parameter group to return details for.

", + "DescribeCacheParametersMessage$Source": "

The parameter types to return.

Valid values: user | system | engine-default

", + "DescribeCacheParametersMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this action. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeCacheSecurityGroupsMessage$CacheSecurityGroupName": "

The name of the cache security group to return details for.

", + "DescribeCacheSecurityGroupsMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this action. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeCacheSubnetGroupsMessage$CacheSubnetGroupName": "

The name of the cache subnet group to return details for.

", + "DescribeCacheSubnetGroupsMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this action. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeEngineDefaultParametersMessage$CacheParameterGroupFamily": "

The name of the cache parameter group family. Valid values are: memcached1.4 | redis2.6 | redis2.8

", + "DescribeEngineDefaultParametersMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this action. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeEventsMessage$SourceIdentifier": "

The identifier of the event source for which events will be returned. If not specified, then all sources are included in the response.

", + "DescribeEventsMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this action. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeReplicationGroupsMessage$ReplicationGroupId": "

The identifier for the replication group to be described. This parameter is not case sensitive.

If you do not specify this parameter, information about all replication groups is returned.

", + "DescribeReplicationGroupsMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this action. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeReservedCacheNodesMessage$ReservedCacheNodeId": "

The reserved cache node identifier filter value. Use this parameter to show only the reservation that matches the specified reservation ID.

", + "DescribeReservedCacheNodesMessage$ReservedCacheNodesOfferingId": "

The offering identifier filter value. Use this parameter to show only purchased reservations matching the specified offering identifier.

", + "DescribeReservedCacheNodesMessage$CacheNodeType": "

The cache node type filter value. Use this parameter to show only those reservations matching the specified cache node type.

Valid node types are as follows:

  • General purpose:
    • Current generation: cache.t2.micro, cache.t2.small, cache.t2.medium, cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge
    • Previous generation: cache.t1.micro, cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge
  • Compute optimized: cache.c1.xlarge
  • Memory optimized
    • Current generation: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge
    • Previous generation: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

Notes:

  • All t2 instances are created in an Amazon Virtual Private Cloud (VPC).
  • Redis backup/restore is not supported for t2 instances.
  • Redis Append-only files (AOF) functionality is not supported for t1 or t2 instances.

For a complete listing of cache node types and specifications, see Amazon ElastiCache Product Features and Details and Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", + "DescribeReservedCacheNodesMessage$Duration": "

The duration filter value, specified in years or seconds. Use this parameter to show only reservations for this duration.

Valid Values: 1 | 3 | 31536000 | 94608000

", + "DescribeReservedCacheNodesMessage$ProductDescription": "

The product description filter value. Use this parameter to show only those reservations matching the specified product description.

", + "DescribeReservedCacheNodesMessage$OfferingType": "

The offering type filter value. Use this parameter to show only the available offerings matching the specified offering type.

Valid values: \"Light Utilization\"|\"Medium Utilization\"|\"Heavy Utilization\"

", + "DescribeReservedCacheNodesMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this action. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeReservedCacheNodesOfferingsMessage$ReservedCacheNodesOfferingId": "

The offering identifier filter value. Use this parameter to show only the available offering that matches the specified reservation identifier.

Example: 438012d3-4052-4cc7-b2e3-8d3372e0e706

", + "DescribeReservedCacheNodesOfferingsMessage$CacheNodeType": "

The cache node type filter value. Use this parameter to show only the available offerings matching the specified cache node type.

Valid node types are as follows:

  • General purpose:
    • Current generation: cache.t2.micro, cache.t2.small, cache.t2.medium, cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge
    • Previous generation: cache.t1.micro, cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge
  • Compute optimized: cache.c1.xlarge
  • Memory optimized
    • Current generation: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge
    • Previous generation: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

Notes:

  • All t2 instances are created in an Amazon Virtual Private Cloud (VPC).
  • Redis backup/restore is not supported for t2 instances.
  • Redis Append-only files (AOF) functionality is not supported for t1 or t2 instances.

For a complete listing of cache node types and specifications, see Amazon ElastiCache Product Features and Details and Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", + "DescribeReservedCacheNodesOfferingsMessage$Duration": "

Duration filter value, specified in years or seconds. Use this parameter to show only reservations for a given duration.

Valid Values: 1 | 3 | 31536000 | 94608000

", + "DescribeReservedCacheNodesOfferingsMessage$ProductDescription": "

The product description filter value. Use this parameter to show only the available offerings matching the specified product description.

", + "DescribeReservedCacheNodesOfferingsMessage$OfferingType": "

The offering type filter value. Use this parameter to show only the available offerings matching the specified offering type.

Valid Values: \"Light Utilization\"|\"Medium Utilization\"|\"Heavy Utilization\"

", + "DescribeReservedCacheNodesOfferingsMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this action. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeSnapshotsListMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this action. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeSnapshotsMessage$CacheClusterId": "

A user-supplied cluster identifier. If this parameter is specified, only snapshots associated with that specific cache cluster will be described.

", + "DescribeSnapshotsMessage$SnapshotName": "

A user-supplied name of the snapshot. If this parameter is specified, only this snapshot will be described.

", + "DescribeSnapshotsMessage$SnapshotSource": "

If set to system, the output shows snapshots that were automatically created by ElastiCache. If set to user the output shows snapshots that were manually created. If omitted, the output shows both automatically and manually created snapshots.

", + "DescribeSnapshotsMessage$Marker": "

An optional marker returned from a prior request. Use this marker for pagination of results from this action. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "EC2SecurityGroup$Status": "

The status of the Amazon EC2 security group.

", + "EC2SecurityGroup$EC2SecurityGroupName": "

The name of the Amazon EC2 security group.

", + "EC2SecurityGroup$EC2SecurityGroupOwnerId": "

The AWS account ID of the Amazon EC2 security group owner.

", + "Endpoint$Address": "

The DNS hostname of the cache node.

", + "EngineDefaults$CacheParameterGroupFamily": "

Specifies the name of the cache parameter group family to which the engine default parameters apply.

", + "EngineDefaults$Marker": "

Provides an identifier to allow retrieval of paginated results.

", + "Event$SourceIdentifier": "

The identifier for the source of the event. For example, if the event occurred at the cache cluster level, the identifier would be the name of the cache cluster.

", + "Event$Message": "

The text of the event.

", + "EventsMessage$Marker": "

Provides an identifier to allow retrieval of paginated results.

", + "KeyList$member": null, + "ListTagsForResourceMessage$ResourceName": "

The name of the resource for which you want the list of tags, for example arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster.

", + "ModifyCacheClusterMessage$CacheClusterId": "

The cache cluster identifier. This value is stored as a lowercase string.

", + "ModifyCacheClusterMessage$PreferredMaintenanceWindow": "

Specifies the weekly time range during which maintenance on the cache cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for ddd are:

  • sun
  • mon
  • tue
  • wed
  • thu
  • fri
  • sat

Example: sun:05:00-sun:09:00

", + "ModifyCacheClusterMessage$NotificationTopicArn": "

The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications will be sent.

The Amazon SNS topic owner must be same as the cache cluster owner. ", + "ModifyCacheClusterMessage$CacheParameterGroupName": "

The name of the cache parameter group to apply to this cache cluster. This change is asynchronously applied as soon as possible for parameters when the ApplyImmediately parameter is specified as true for this request.

", + "ModifyCacheClusterMessage$NotificationTopicStatus": "

The status of the Amazon SNS notification topic. Notifications are sent only if the status is active.

Valid values: active | inactive

", + "ModifyCacheClusterMessage$EngineVersion": "

The upgraded version of the cache engine to be run on the cache nodes.

", + "ModifyCacheClusterMessage$SnapshotWindow": "

The daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster.

", + "ModifyCacheParameterGroupMessage$CacheParameterGroupName": "

The name of the cache parameter group to modify.

", + "ModifyCacheSubnetGroupMessage$CacheSubnetGroupName": "

The name for the cache subnet group. This value is stored as a lowercase string.

Constraints: Must contain no more than 255 alphanumeric characters or hyphens.

Example: mysubnetgroup

", + "ModifyCacheSubnetGroupMessage$CacheSubnetGroupDescription": "

A description for the cache subnet group.

", + "ModifyReplicationGroupMessage$ReplicationGroupId": "

The identifier of the replication group to modify.

", + "ModifyReplicationGroupMessage$ReplicationGroupDescription": "

A description for the replication group. Maximum length is 255 characters.

", + "ModifyReplicationGroupMessage$PrimaryClusterId": "

If this parameter is specified, ElastiCache will promote each of the cache clusters in the specified replication group to the primary role. The nodes of all other cache clusters in the replication group will be read replicas.

", + "ModifyReplicationGroupMessage$SnapshottingClusterId": "

The cache cluster ID that will be used as the daily snapshot source for the replication group.

", + "ModifyReplicationGroupMessage$PreferredMaintenanceWindow": "

Specifies the weekly time range during which maintenance on the cache cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for ddd are:

  • sun
  • mon
  • tue
  • wed
  • thu
  • fri
  • sat

Example: sun:05:00-sun:09:00

", + "ModifyReplicationGroupMessage$NotificationTopicArn": "

The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications will be sent.

The Amazon SNS topic owner must be same as the replication group owner. ", + "ModifyReplicationGroupMessage$CacheParameterGroupName": "

The name of the cache parameter group to apply to all of the clusters in this replication group. This change is asynchronously applied as soon as possible for parameters when the ApplyImmediately parameter is specified as true for this request.

", + "ModifyReplicationGroupMessage$NotificationTopicStatus": "

The status of the Amazon SNS notification topic for the replication group. Notifications are sent only if the status is active.

Valid values: active | inactive

", + "ModifyReplicationGroupMessage$EngineVersion": "

The upgraded version of the cache engine to be run on the cache clusters in the replication group.

", + "ModifyReplicationGroupMessage$SnapshotWindow": "

The daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of the node group specified by SnapshottingClusterId.

Example: 05:00-09:00

If you do not specify this parameter, then ElastiCache will automatically choose an appropriate time range.

", + "NodeGroup$NodeGroupId": "

The identifier for the node group. A replication group contains only one node group; therefore, the node group ID is 0001.

", + "NodeGroup$Status": "

The current state of this replication group - creating, available, etc.

", + "NodeGroupMember$CacheClusterId": "

The ID of the cache cluster to which the node belongs.

", + "NodeGroupMember$CacheNodeId": "

The ID of the node within its cache cluster. A node ID is a numeric identifier (0001, 0002, etc.).

", + "NodeGroupMember$PreferredAvailabilityZone": "

The name of the Availability Zone in which the node is located.

", + "NodeGroupMember$CurrentRole": "

The role that is currently assigned to the node - primary or replica.

", + "NodeSnapshot$CacheNodeId": "

The cache node identifier for the node in the source cache cluster.

", + "NodeSnapshot$CacheSize": "

The size of the cache on the source cache node.

", + "NotificationConfiguration$TopicArn": "

The Amazon Resource Name (ARN) that identifies the topic.

", + "NotificationConfiguration$TopicStatus": "

The current state of the topic.

", + "Parameter$ParameterName": "

The name of the parameter.

", + "Parameter$ParameterValue": "

The value of the parameter.

", + "Parameter$Description": "

A description of the parameter.

", + "Parameter$Source": "

The source of the parameter.

", + "Parameter$DataType": "

The valid data type for the parameter.

", + "Parameter$AllowedValues": "

The valid range of values for the parameter.

", + "Parameter$MinimumEngineVersion": "

The earliest cache engine version to which the parameter can apply.

", + "ParameterNameValue$ParameterName": "

The name of the parameter.

", + "ParameterNameValue$ParameterValue": "

The value of the parameter.

", + "PendingModifiedValues$EngineVersion": "

The new cache engine version that the cache cluster will run.

", + "PreferredAvailabilityZoneList$member": null, + "PurchaseReservedCacheNodesOfferingMessage$ReservedCacheNodesOfferingId": "

The ID of the reserved cache node offering to purchase.

Example: 438012d3-4052-4cc7-b2e3-8d3372e0e706

", + "PurchaseReservedCacheNodesOfferingMessage$ReservedCacheNodeId": "

A customer-specified identifier to track this reservation.

Example: myreservationID

", + "RebootCacheClusterMessage$CacheClusterId": "

The cache cluster identifier. This parameter is stored as a lowercase string.

", + "RecurringCharge$RecurringChargeFrequency": "

The frequency of the recurring charge.

", + "RemoveTagsFromResourceMessage$ResourceName": "

The name of the ElastiCache resource from which you want the listed tags removed, for example arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster.

", + "ReplicationGroup$ReplicationGroupId": "

The identifier for the replication group.

", + "ReplicationGroup$Description": "

The description of the replication group.

", + "ReplicationGroup$Status": "

The current state of this replication group - creating, available, etc.

", + "ReplicationGroup$SnapshottingClusterId": "

The cache cluster ID that is used as the daily snapshot source for the replication group.

", + "ReplicationGroupMessage$Marker": "

Provides an identifier to allow retrieval of paginated results.

", + "ReplicationGroupPendingModifiedValues$PrimaryClusterId": "

The primary cluster ID which will be applied immediately (if --apply-immediately was specified), or during the next maintenance window.

", + "ReservedCacheNode$ReservedCacheNodeId": "

The unique identifier for the reservation.

", + "ReservedCacheNode$ReservedCacheNodesOfferingId": "

The offering identifier.

", + "ReservedCacheNode$CacheNodeType": "

The cache node type for the reserved cache nodes.

Valid node types are as follows:

  • General purpose:
    • Current generation: cache.t2.micro, cache.t2.small, cache.t2.medium, cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge
    • Previous generation: cache.t1.micro, cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge
  • Compute optimized: cache.c1.xlarge
  • Memory optimized
    • Current generation: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge
    • Previous generation: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

Notes:

  • All t2 instances are created in an Amazon Virtual Private Cloud (VPC).
  • Redis backup/restore is not supported for t2 instances.
  • Redis Append-only files (AOF) functionality is not supported for t1 or t2 instances.

For a complete listing of cache node types and specifications, see Amazon ElastiCache Product Features and Details and Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", + "ReservedCacheNode$ProductDescription": "

The description of the reserved cache node.

", + "ReservedCacheNode$OfferingType": "

The offering type of this reserved cache node.

", + "ReservedCacheNode$State": "

The state of the reserved cache node.

", + "ReservedCacheNodeMessage$Marker": "

Provides an identifier to allow retrieval of paginated results.

", + "ReservedCacheNodesOffering$ReservedCacheNodesOfferingId": "

A unique identifier for the reserved cache node offering.

", + "ReservedCacheNodesOffering$CacheNodeType": "

The cache node type for the reserved cache node.

Valid node types are as follows:

  • General purpose:
    • Current generation: cache.t2.micro, cache.t2.small, cache.t2.medium, cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge
    • Previous generation: cache.t1.micro, cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge
  • Compute optimized: cache.c1.xlarge
  • Memory optimized
    • Current generation: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge
    • Previous generation: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

Notes:

  • All t2 instances are created in an Amazon Virtual Private Cloud (VPC).
  • Redis backup/restore is not supported for t2 instances.
  • Redis Append-only files (AOF) functionality is not supported for t1 or t2 instances.

For a complete listing of cache node types and specifications, see Amazon ElastiCache Product Features and Details and Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", + "ReservedCacheNodesOffering$ProductDescription": "

The cache engine used by the offering.

", + "ReservedCacheNodesOffering$OfferingType": "

The offering type.

", + "ReservedCacheNodesOfferingMessage$Marker": "

Provides an identifier to allow retrieval of paginated results.

", + "ResetCacheParameterGroupMessage$CacheParameterGroupName": "

The name of the cache parameter group to reset.

", + "RevokeCacheSecurityGroupIngressMessage$CacheSecurityGroupName": "

The name of the cache security group to revoke ingress from.

", + "RevokeCacheSecurityGroupIngressMessage$EC2SecurityGroupName": "

The name of the Amazon EC2 security group to revoke access from.

", + "RevokeCacheSecurityGroupIngressMessage$EC2SecurityGroupOwnerId": "

The AWS account number of the Amazon EC2 security group owner. Note that this is not the same thing as an AWS access key ID - you must provide a valid AWS account number for this parameter.

", + "SecurityGroupIdsList$member": null, + "SecurityGroupMembership$SecurityGroupId": "

The identifier of the cache security group.

", + "SecurityGroupMembership$Status": "

The status of the cache security group membership. The status changes whenever a cache security group is modified, or when the cache security groups assigned to a cache cluster are modified.

", + "Snapshot$SnapshotName": "

The name of a snapshot. For an automatic snapshot, the name is system-generated; for a manual snapshot, this is the user-provided name.

", + "Snapshot$CacheClusterId": "

The user-supplied identifier of the source cache cluster.

", + "Snapshot$SnapshotStatus": "

The status of the snapshot. Valid values: creating | available | restoring | copying | deleting.

", + "Snapshot$SnapshotSource": "

Indicates whether the snapshot is from an automatic backup (automated) or was created manually (manual).

", + "Snapshot$CacheNodeType": "

The name of the compute and memory capacity node type for the source cache cluster.

Valid node types are as follows:

  • General purpose:
    • Current generation: cache.t2.micro, cache.t2.small, cache.t2.medium, cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge
    • Previous generation: cache.t1.micro, cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge
  • Compute optimized: cache.c1.xlarge
  • Memory optimized
    • Current generation: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge
    • Previous generation: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

Notes:

  • All t2 instances are created in an Amazon Virtual Private Cloud (VPC).
  • Redis backup/restore is not supported for t2 instances.
  • Redis Append-only files (AOF) functionality is not supported for t1 or t2 instances.

For a complete listing of cache node types and specifications, see Amazon ElastiCache Product Features and Details and Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis.

", + "Snapshot$Engine": "

The name of the cache engine (memcached or redis) used by the source cache cluster.

", + "Snapshot$EngineVersion": "

The version of the cache engine version that is used by the source cache cluster.

", + "Snapshot$PreferredAvailabilityZone": "

The name of the Availability Zone in which the source cache cluster is located.

", + "Snapshot$PreferredMaintenanceWindow": "

Specifies the weekly time range during which maintenance on the cache cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for ddd are:

  • sun
  • mon
  • tue
  • wed
  • thu
  • fri
  • sat

Example: sun:05:00-sun:09:00

", + "Snapshot$TopicArn": "

The Amazon Resource Name (ARN) for the topic used by the source cache cluster for publishing notifications.

", + "Snapshot$CacheParameterGroupName": "

The cache parameter group that is associated with the source cache cluster.

", + "Snapshot$CacheSubnetGroupName": "

The name of the cache subnet group associated with the source cache cluster.

", + "Snapshot$VpcId": "

The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet group for the source cache cluster.

", + "Snapshot$SnapshotWindow": "

The daily time range during which ElastiCache takes daily snapshots of the source cache cluster.

", + "SnapshotArnsList$member": null, + "Subnet$SubnetIdentifier": "

The unique identifier for the subnet.

", + "SubnetIdentifierList$member": null, + "Tag$Key": "

The key for the tag.

", + "Tag$Value": "

The tag's value. May not be null.

" + } + }, + "Subnet": { + "base": "

Represents the subnet associated with a cache cluster. This parameter refers to subnets defined in Amazon Virtual Private Cloud (Amazon VPC) and used with ElastiCache.

", + "refs": { + "SubnetList$member": null + } + }, + "SubnetIdentifierList": { + "base": null, + "refs": { + "CreateCacheSubnetGroupMessage$SubnetIds": "

A list of VPC subnet IDs for the cache subnet group.

", + "ModifyCacheSubnetGroupMessage$SubnetIds": "

The EC2 subnet IDs for the cache subnet group.

" + } + }, + "SubnetInUse": { + "base": "

The requested subnet is being used by another cache subnet group.

", + "refs": { + } + }, + "SubnetList": { + "base": null, + "refs": { + "CacheSubnetGroup$Subnets": "

A list of subnets associated with the cache subnet group.

" + } + }, + "TStamp": { + "base": null, + "refs": { + "CacheCluster$CacheClusterCreateTime": "

The date and time when the cache cluster was created.

", + "CacheNode$CacheNodeCreateTime": "

The date and time when the cache node was created.

", + "DescribeEventsMessage$StartTime": "

The beginning of the time interval to retrieve events for, specified in ISO 8601 format.

", + "DescribeEventsMessage$EndTime": "

The end of the time interval for which to retrieve events, specified in ISO 8601 format.

", + "Event$Date": "

The date and time when the event occurred.

", + "NodeSnapshot$CacheNodeCreateTime": "

The date and time when the cache node was created in the source cache cluster.

", + "NodeSnapshot$SnapshotCreateTime": "

The date and time when the source node's metadata and cache data set was obtained for the snapshot.

", + "ReservedCacheNode$StartTime": "

The time the reservation started.

", + "Snapshot$CacheClusterCreateTime": "

The date and time when the source cache cluster was created.

" + } + }, + "Tag": { + "base": "

A cost allocation Tag that can be added to an ElastiCache cluster or replication group. Tags are composed of a Key/Value pair. A tag with a null Value is permitted.

", + "refs": { + "TagList$member": null + } + }, + "TagList": { + "base": null, + "refs": { + "AddTagsToResourceMessage$Tags": "

A list of cost allocation tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value.

", + "CreateCacheClusterMessage$Tags": "

A list of cost allocation tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value.

", + "CreateReplicationGroupMessage$Tags": "

A list of cost allocation tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value.

", + "TagListMessage$TagList": "

A list of cost allocation tags as key-value pairs.

" + } + }, + "TagListMessage": { + "base": "

Represents the output from the AddTagsToResource, ListTagsOnResource, and RemoveTagsFromResource actions.

", + "refs": { + } + }, + "TagNotFoundFault": { + "base": "

The requested tag was not found on this resource.

", + "refs": { + } + }, + "TagQuotaPerResourceExceeded": { + "base": "

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.

", + "refs": { + } + }, + "AuthorizeCacheSecurityGroupIngressResult": { + "base": null, + "refs": { + } + }, + "CopySnapshotResult": { + "base": null, + "refs": { + } + }, + "CreateCacheClusterResult": { + "base": null, + "refs": { + } + }, + "CreateCacheParameterGroupResult": { + "base": null, + "refs": { + } + }, + "CreateCacheSecurityGroupResult": { + "base": null, + "refs": { + } + }, + "CreateCacheSubnetGroupResult": { + "base": null, + "refs": { + } + }, + "CreateReplicationGroupResult": { + "base": null, + "refs": { + } + }, + "CreateSnapshotResult": { + "base": null, + "refs": { + } + }, + "DeleteCacheClusterResult": { + "base": null, + "refs": { + } + }, + "DeleteReplicationGroupResult": { + "base": null, + "refs": { + } + }, + "DeleteSnapshotResult": { + "base": null, + "refs": { + } + }, + "DescribeEngineDefaultParametersResult": { + "base": null, + "refs": { + } + }, + "ModifyCacheClusterResult": { + "base": null, + "refs": { + } + }, + "ModifyCacheSubnetGroupResult": { + "base": null, + "refs": { + } + }, + "ModifyReplicationGroupResult": { + "base": null, + "refs": { + } + }, + "PurchaseReservedCacheNodesOfferingResult": { + "base": null, + "refs": { + } + }, + "RebootCacheClusterResult": { + "base": null, + "refs": { + } + }, + "RevokeCacheSecurityGroupIngressResult": { + "base": null, + "refs": { + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/elasticache/2015-02-02/paginators-1.json b/lib/aws-sdk/Aws/data/elasticache/2015-02-02/paginators-1.json new file mode 100644 index 0000000..8724740 --- /dev/null +++ b/lib/aws-sdk/Aws/data/elasticache/2015-02-02/paginators-1.json @@ -0,0 +1,76 @@ +{ + "pagination": { + "DescribeCacheClusters": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "CacheClusters" + }, + "DescribeCacheEngineVersions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "CacheEngineVersions" + }, + "DescribeCacheParameterGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "CacheParameterGroups" + }, + "DescribeCacheParameters": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "Parameters" + }, + "DescribeCacheSecurityGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "CacheSecurityGroups" + }, + "DescribeCacheSubnetGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "CacheSubnetGroups" + }, + "DescribeEngineDefaultParameters": { + "input_token": "Marker", + "output_token": "EngineDefaults.Marker", + "limit_key": "MaxRecords", + "result_key": "EngineDefaults.Parameters" + }, + "DescribeEvents": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "Events" + }, + "DescribeReservedCacheNodes": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ReservedCacheNodes" + }, + "DescribeReservedCacheNodesOfferings": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ReservedCacheNodesOfferings" + }, + "DescribeReplicationGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ReplicationGroups" + }, + "DescribeSnapshots": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "Snapshots" + } + } +} diff --git a/lib/aws-sdk/Aws/data/elasticache/2015-02-02/waiters-2.json b/lib/aws-sdk/Aws/data/elasticache/2015-02-02/waiters-2.json new file mode 100644 index 0000000..219b3f0 --- /dev/null +++ b/lib/aws-sdk/Aws/data/elasticache/2015-02-02/waiters-2.json @@ -0,0 +1,143 @@ +{ + "version": 2, + "waiters": { + "CacheClusterAvailable": { + "delay": 15, + "operation": "DescribeCacheClusters", + "maxAttempts": 40, + "description": "Wait until ElastiCache cluster is available.", + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "CacheClusters[].CacheClusterStatus" + }, + { + "expected": "deleted", + "matcher": "pathAny", + "state": "failure", + "argument": "CacheClusters[].CacheClusterStatus" + }, + { + "expected": "deleting", + "matcher": "pathAny", + "state": "failure", + "argument": "CacheClusters[].CacheClusterStatus" + }, + { + "expected": "incompatible-network", + "matcher": "pathAny", + "state": "failure", + "argument": "CacheClusters[].CacheClusterStatus" + }, + { + "expected": "restore-failed", + "matcher": "pathAny", + "state": "failure", + "argument": "CacheClusters[].CacheClusterStatus" + } + ] + }, + "CacheClusterDeleted": { + "delay": 15, + "operation": "DescribeCacheClusters", + "maxAttempts": 40, + "description": "Wait until ElastiCache cluster is deleted.", + "acceptors": [ + { + "expected": "deleted", + "matcher": "pathAll", + "state": "success", + "argument": "CacheClusters[].CacheClusterStatus" + }, + { + "expected": "CacheClusterNotFound", + "matcher": "error", + "state": "success" + }, + { + "expected": "available", + "matcher": "pathAny", + "state": "failure", + "argument": "CacheClusters[].CacheClusterStatus" + }, + { + "expected": "creating", + "matcher": "pathAny", + "state": "failure", + "argument": "CacheClusters[].CacheClusterStatus" + }, + { + "expected": "incompatible-network", + "matcher": "pathAny", + "state": "failure", + "argument": "CacheClusters[].CacheClusterStatus" + }, + { + "expected": "modifying", + "matcher": "pathAny", + "state": "failure", + "argument": "CacheClusters[].CacheClusterStatus" + }, + { + "expected": "restore-failed", + "matcher": "pathAny", + "state": "failure", + "argument": "CacheClusters[].CacheClusterStatus" + }, + { + "expected": "snapshotting", + "matcher": "pathAny", + "state": "failure", + "argument": "CacheClusters[].CacheClusterStatus" + } + ] + }, + "ReplicationGroupAvailable": { + "delay": 15, + "operation": "DescribeReplicationGroups", + "maxAttempts": 40, + "description": "Wait until ElastiCache replication group is available.", + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "ReplicationGroups[].Status" + }, + { + "expected": "deleted", + "matcher": "pathAny", + "state": "failure", + "argument": "ReplicationGroups[].Status" + } + ] + }, + "ReplicationGroupDeleted": { + "delay": 15, + "operation": "DescribeReplicationGroups", + "maxAttempts": 40, + "description": "Wait until ElastiCache replication group is deleted.", + "acceptors": [ + { + "expected": "deleted", + "matcher": "pathAll", + "state": "success", + "argument": "ReplicationGroups[].Status" + }, + { + "expected": "available", + "matcher": "pathAny", + "state": "failure", + "argument": "ReplicationGroups[].Status" + }, + { + "expected": "ReplicationGroupNotFoundFault", + "matcher": "error", + "state": "success" + } + ] + } + } +} diff --git a/lib/aws-sdk/Aws/data/elasticbeanstalk/2010-12-01/api-2.json b/lib/aws-sdk/Aws/data/elasticbeanstalk/2010-12-01/api-2.json new file mode 100644 index 0000000..5b2a799 --- /dev/null +++ b/lib/aws-sdk/Aws/data/elasticbeanstalk/2010-12-01/api-2.json @@ -0,0 +1,1580 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2010-12-01", + "endpointPrefix":"elasticbeanstalk", + "serviceAbbreviation":"Elastic Beanstalk", + "serviceFullName":"AWS Elastic Beanstalk", + "signatureVersion":"v4", + "xmlNamespace":"http://elasticbeanstalk.amazonaws.com/docs/2010-12-01/", + "protocol":"query" + }, + "operations":{ + "AbortEnvironmentUpdate":{ + "name":"AbortEnvironmentUpdate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AbortEnvironmentUpdateMessage"}, + "errors":[ + { + "shape":"InsufficientPrivilegesException", + "error":{ + "code":"InsufficientPrivilegesException", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "CheckDNSAvailability":{ + "name":"CheckDNSAvailability", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CheckDNSAvailabilityMessage"}, + "output":{ + "shape":"CheckDNSAvailabilityResultMessage", + "resultWrapper":"CheckDNSAvailabilityResult" + } + }, + "CreateApplication":{ + "name":"CreateApplication", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateApplicationMessage"}, + "output":{ + "shape":"ApplicationDescriptionMessage", + "resultWrapper":"CreateApplicationResult" + }, + "errors":[ + { + "shape":"TooManyApplicationsException", + "error":{ + "code":"TooManyApplicationsException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateApplicationVersion":{ + "name":"CreateApplicationVersion", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateApplicationVersionMessage"}, + "output":{ + "shape":"ApplicationVersionDescriptionMessage", + "resultWrapper":"CreateApplicationVersionResult" + }, + "errors":[ + { + "shape":"TooManyApplicationsException", + "error":{ + "code":"TooManyApplicationsException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TooManyApplicationVersionsException", + "exception":true + }, + { + "shape":"InsufficientPrivilegesException", + "error":{ + "code":"InsufficientPrivilegesException", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"S3LocationNotInServiceRegionException", + "error":{ + "code":"S3LocationNotInServiceRegionException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateConfigurationTemplate":{ + "name":"CreateConfigurationTemplate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateConfigurationTemplateMessage"}, + "output":{ + "shape":"ConfigurationSettingsDescription", + "resultWrapper":"CreateConfigurationTemplateResult" + }, + "errors":[ + { + "shape":"InsufficientPrivilegesException", + "error":{ + "code":"InsufficientPrivilegesException", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TooManyConfigurationTemplatesException", + "error":{ + "code":"TooManyConfigurationTemplatesException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateEnvironment":{ + "name":"CreateEnvironment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateEnvironmentMessage"}, + "output":{ + "shape":"EnvironmentDescription", + "resultWrapper":"CreateEnvironmentResult" + }, + "errors":[ + { + "shape":"TooManyEnvironmentsException", + "error":{ + "code":"TooManyEnvironmentsException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InsufficientPrivilegesException", + "error":{ + "code":"InsufficientPrivilegesException", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateStorageLocation":{ + "name":"CreateStorageLocation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "output":{ + "shape":"CreateStorageLocationResultMessage", + "resultWrapper":"CreateStorageLocationResult" + }, + "errors":[ + { + "shape":"TooManyBucketsException", + "error":{ + "code":"TooManyBucketsException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"S3SubscriptionRequiredException", + "error":{ + "code":"S3SubscriptionRequiredException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InsufficientPrivilegesException", + "error":{ + "code":"InsufficientPrivilegesException", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteApplication":{ + "name":"DeleteApplication", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteApplicationMessage"}, + "errors":[ + { + "shape":"OperationInProgressException", + "error":{ + "code":"OperationInProgressFailure", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteApplicationVersion":{ + "name":"DeleteApplicationVersion", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteApplicationVersionMessage"}, + "errors":[ + { + "shape":"SourceBundleDeletionException", + "error":{ + "code":"SourceBundleDeletionFailure", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InsufficientPrivilegesException", + "error":{ + "code":"InsufficientPrivilegesException", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"OperationInProgressException", + "error":{ + "code":"OperationInProgressFailure", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"S3LocationNotInServiceRegionException", + "error":{ + "code":"S3LocationNotInServiceRegionException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteConfigurationTemplate":{ + "name":"DeleteConfigurationTemplate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteConfigurationTemplateMessage"}, + "errors":[ + { + "shape":"OperationInProgressException", + "error":{ + "code":"OperationInProgressFailure", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteEnvironmentConfiguration":{ + "name":"DeleteEnvironmentConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteEnvironmentConfigurationMessage"} + }, + "DescribeApplicationVersions":{ + "name":"DescribeApplicationVersions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeApplicationVersionsMessage"}, + "output":{ + "shape":"ApplicationVersionDescriptionsMessage", + "resultWrapper":"DescribeApplicationVersionsResult" + } + }, + "DescribeApplications":{ + "name":"DescribeApplications", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeApplicationsMessage"}, + "output":{ + "shape":"ApplicationDescriptionsMessage", + "resultWrapper":"DescribeApplicationsResult" + } + }, + "DescribeConfigurationOptions":{ + "name":"DescribeConfigurationOptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeConfigurationOptionsMessage"}, + "output":{ + "shape":"ConfigurationOptionsDescription", + "resultWrapper":"DescribeConfigurationOptionsResult" + } + }, + "DescribeConfigurationSettings":{ + "name":"DescribeConfigurationSettings", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeConfigurationSettingsMessage"}, + "output":{ + "shape":"ConfigurationSettingsDescriptions", + "resultWrapper":"DescribeConfigurationSettingsResult" + } + }, + "DescribeEnvironmentResources":{ + "name":"DescribeEnvironmentResources", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeEnvironmentResourcesMessage"}, + "output":{ + "shape":"EnvironmentResourceDescriptionsMessage", + "resultWrapper":"DescribeEnvironmentResourcesResult" + }, + "errors":[ + { + "shape":"InsufficientPrivilegesException", + "error":{ + "code":"InsufficientPrivilegesException", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeEnvironments":{ + "name":"DescribeEnvironments", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeEnvironmentsMessage"}, + "output":{ + "shape":"EnvironmentDescriptionsMessage", + "resultWrapper":"DescribeEnvironmentsResult" + } + }, + "DescribeEvents":{ + "name":"DescribeEvents", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeEventsMessage"}, + "output":{ + "shape":"EventDescriptionsMessage", + "resultWrapper":"DescribeEventsResult" + } + }, + "ListAvailableSolutionStacks":{ + "name":"ListAvailableSolutionStacks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "output":{ + "shape":"ListAvailableSolutionStacksResultMessage", + "resultWrapper":"ListAvailableSolutionStacksResult" + } + }, + "RebuildEnvironment":{ + "name":"RebuildEnvironment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RebuildEnvironmentMessage"}, + "errors":[ + { + "shape":"InsufficientPrivilegesException", + "error":{ + "code":"InsufficientPrivilegesException", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "RequestEnvironmentInfo":{ + "name":"RequestEnvironmentInfo", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RequestEnvironmentInfoMessage"} + }, + "RestartAppServer":{ + "name":"RestartAppServer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RestartAppServerMessage"} + }, + "RetrieveEnvironmentInfo":{ + "name":"RetrieveEnvironmentInfo", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RetrieveEnvironmentInfoMessage"}, + "output":{ + "shape":"RetrieveEnvironmentInfoResultMessage", + "resultWrapper":"RetrieveEnvironmentInfoResult" + } + }, + "SwapEnvironmentCNAMEs":{ + "name":"SwapEnvironmentCNAMEs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SwapEnvironmentCNAMEsMessage"} + }, + "TerminateEnvironment":{ + "name":"TerminateEnvironment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TerminateEnvironmentMessage"}, + "output":{ + "shape":"EnvironmentDescription", + "resultWrapper":"TerminateEnvironmentResult" + }, + "errors":[ + { + "shape":"InsufficientPrivilegesException", + "error":{ + "code":"InsufficientPrivilegesException", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "UpdateApplication":{ + "name":"UpdateApplication", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateApplicationMessage"}, + "output":{ + "shape":"ApplicationDescriptionMessage", + "resultWrapper":"UpdateApplicationResult" + } + }, + "UpdateApplicationVersion":{ + "name":"UpdateApplicationVersion", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateApplicationVersionMessage"}, + "output":{ + "shape":"ApplicationVersionDescriptionMessage", + "resultWrapper":"UpdateApplicationVersionResult" + } + }, + "UpdateConfigurationTemplate":{ + "name":"UpdateConfigurationTemplate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateConfigurationTemplateMessage"}, + "output":{ + "shape":"ConfigurationSettingsDescription", + "resultWrapper":"UpdateConfigurationTemplateResult" + }, + "errors":[ + { + "shape":"InsufficientPrivilegesException", + "error":{ + "code":"InsufficientPrivilegesException", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "UpdateEnvironment":{ + "name":"UpdateEnvironment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateEnvironmentMessage"}, + "output":{ + "shape":"EnvironmentDescription", + "resultWrapper":"UpdateEnvironmentResult" + }, + "errors":[ + { + "shape":"InsufficientPrivilegesException", + "error":{ + "code":"InsufficientPrivilegesException", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "ValidateConfigurationSettings":{ + "name":"ValidateConfigurationSettings", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ValidateConfigurationSettingsMessage"}, + "output":{ + "shape":"ConfigurationSettingsValidationMessages", + "resultWrapper":"ValidateConfigurationSettingsResult" + }, + "errors":[ + { + "shape":"InsufficientPrivilegesException", + "error":{ + "code":"InsufficientPrivilegesException", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + } + }, + "shapes":{ + "AbortEnvironmentUpdateMessage":{ + "type":"structure", + "members":{ + "EnvironmentId":{"shape":"EnvironmentId"}, + "EnvironmentName":{"shape":"EnvironmentName"} + } + }, + "AbortableOperationInProgress":{"type":"boolean"}, + "ApplicationDescription":{ + "type":"structure", + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "Description":{"shape":"Description"}, + "DateCreated":{"shape":"CreationDate"}, + "DateUpdated":{"shape":"UpdateDate"}, + "Versions":{"shape":"VersionLabelsList"}, + "ConfigurationTemplates":{"shape":"ConfigurationTemplateNamesList"} + } + }, + "ApplicationDescriptionList":{ + "type":"list", + "member":{"shape":"ApplicationDescription"} + }, + "ApplicationDescriptionMessage":{ + "type":"structure", + "members":{ + "Application":{"shape":"ApplicationDescription"} + } + }, + "ApplicationDescriptionsMessage":{ + "type":"structure", + "members":{ + "Applications":{"shape":"ApplicationDescriptionList"} + } + }, + "ApplicationName":{ + "type":"string", + "min":1, + "max":100 + }, + "ApplicationNamesList":{ + "type":"list", + "member":{"shape":"ApplicationName"} + }, + "ApplicationVersionDescription":{ + "type":"structure", + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "Description":{"shape":"Description"}, + "VersionLabel":{"shape":"VersionLabel"}, + "SourceBundle":{"shape":"S3Location"}, + "DateCreated":{"shape":"CreationDate"}, + "DateUpdated":{"shape":"UpdateDate"} + } + }, + "ApplicationVersionDescriptionList":{ + "type":"list", + "member":{"shape":"ApplicationVersionDescription"} + }, + "ApplicationVersionDescriptionMessage":{ + "type":"structure", + "members":{ + "ApplicationVersion":{"shape":"ApplicationVersionDescription"} + } + }, + "ApplicationVersionDescriptionsMessage":{ + "type":"structure", + "members":{ + "ApplicationVersions":{"shape":"ApplicationVersionDescriptionList"} + } + }, + "AutoCreateApplication":{"type":"boolean"}, + "AutoScalingGroup":{ + "type":"structure", + "members":{ + "Name":{"shape":"ResourceId"} + } + }, + "AutoScalingGroupList":{ + "type":"list", + "member":{"shape":"AutoScalingGroup"} + }, + "AvailableSolutionStackDetailsList":{ + "type":"list", + "member":{"shape":"SolutionStackDescription"} + }, + "AvailableSolutionStackNamesList":{ + "type":"list", + "member":{"shape":"SolutionStackName"} + }, + "CheckDNSAvailabilityMessage":{ + "type":"structure", + "required":["CNAMEPrefix"], + "members":{ + "CNAMEPrefix":{"shape":"DNSCnamePrefix"} + } + }, + "CheckDNSAvailabilityResultMessage":{ + "type":"structure", + "members":{ + "Available":{"shape":"CnameAvailability"}, + "FullyQualifiedCNAME":{"shape":"DNSCname"} + } + }, + "CnameAvailability":{"type":"boolean"}, + "ConfigurationDeploymentStatus":{ + "type":"string", + "enum":[ + "deployed", + "pending", + "failed" + ] + }, + "ConfigurationOptionDefaultValue":{"type":"string"}, + "ConfigurationOptionDescription":{ + "type":"structure", + "members":{ + "Namespace":{"shape":"OptionNamespace"}, + "Name":{"shape":"ConfigurationOptionName"}, + "DefaultValue":{"shape":"ConfigurationOptionDefaultValue"}, + "ChangeSeverity":{"shape":"ConfigurationOptionSeverity"}, + "UserDefined":{"shape":"UserDefinedOption"}, + "ValueType":{"shape":"ConfigurationOptionValueType"}, + "ValueOptions":{"shape":"ConfigurationOptionPossibleValues"}, + "MinValue":{"shape":"OptionRestrictionMinValue"}, + "MaxValue":{"shape":"OptionRestrictionMaxValue"}, + "MaxLength":{"shape":"OptionRestrictionMaxLength"}, + "Regex":{"shape":"OptionRestrictionRegex"} + } + }, + "ConfigurationOptionDescriptionsList":{ + "type":"list", + "member":{"shape":"ConfigurationOptionDescription"} + }, + "ConfigurationOptionName":{"type":"string"}, + "ConfigurationOptionPossibleValue":{"type":"string"}, + "ConfigurationOptionPossibleValues":{ + "type":"list", + "member":{"shape":"ConfigurationOptionPossibleValue"} + }, + "ConfigurationOptionSetting":{ + "type":"structure", + "members":{ + "ResourceName":{"shape":"ResourceName"}, + "Namespace":{"shape":"OptionNamespace"}, + "OptionName":{"shape":"ConfigurationOptionName"}, + "Value":{"shape":"ConfigurationOptionValue"} + } + }, + "ConfigurationOptionSettingsList":{ + "type":"list", + "member":{"shape":"ConfigurationOptionSetting"} + }, + "ConfigurationOptionSeverity":{"type":"string"}, + "ConfigurationOptionValue":{"type":"string"}, + "ConfigurationOptionValueType":{ + "type":"string", + "enum":[ + "Scalar", + "List" + ] + }, + "ConfigurationOptionsDescription":{ + "type":"structure", + "members":{ + "SolutionStackName":{"shape":"SolutionStackName"}, + "Options":{"shape":"ConfigurationOptionDescriptionsList"} + } + }, + "ConfigurationSettingsDescription":{ + "type":"structure", + "members":{ + "SolutionStackName":{"shape":"SolutionStackName"}, + "ApplicationName":{"shape":"ApplicationName"}, + "TemplateName":{"shape":"ConfigurationTemplateName"}, + "Description":{"shape":"Description"}, + "EnvironmentName":{"shape":"EnvironmentName"}, + "DeploymentStatus":{"shape":"ConfigurationDeploymentStatus"}, + "DateCreated":{"shape":"CreationDate"}, + "DateUpdated":{"shape":"UpdateDate"}, + "OptionSettings":{"shape":"ConfigurationOptionSettingsList"} + } + }, + "ConfigurationSettingsDescriptionList":{ + "type":"list", + "member":{"shape":"ConfigurationSettingsDescription"} + }, + "ConfigurationSettingsDescriptions":{ + "type":"structure", + "members":{ + "ConfigurationSettings":{"shape":"ConfigurationSettingsDescriptionList"} + } + }, + "ConfigurationSettingsValidationMessages":{ + "type":"structure", + "members":{ + "Messages":{"shape":"ValidationMessagesList"} + } + }, + "ConfigurationTemplateName":{ + "type":"string", + "min":1, + "max":100 + }, + "ConfigurationTemplateNamesList":{ + "type":"list", + "member":{"shape":"ConfigurationTemplateName"} + }, + "CreateApplicationMessage":{ + "type":"structure", + "required":["ApplicationName"], + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "Description":{"shape":"Description"} + } + }, + "CreateApplicationVersionMessage":{ + "type":"structure", + "required":[ + "ApplicationName", + "VersionLabel" + ], + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "VersionLabel":{"shape":"VersionLabel"}, + "Description":{"shape":"Description"}, + "SourceBundle":{"shape":"S3Location"}, + "AutoCreateApplication":{"shape":"AutoCreateApplication"} + } + }, + "CreateConfigurationTemplateMessage":{ + "type":"structure", + "required":[ + "ApplicationName", + "TemplateName" + ], + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "TemplateName":{"shape":"ConfigurationTemplateName"}, + "SolutionStackName":{"shape":"SolutionStackName"}, + "SourceConfiguration":{"shape":"SourceConfiguration"}, + "EnvironmentId":{"shape":"EnvironmentId"}, + "Description":{"shape":"Description"}, + "OptionSettings":{"shape":"ConfigurationOptionSettingsList"} + } + }, + "CreateEnvironmentMessage":{ + "type":"structure", + "required":[ + "ApplicationName", + "EnvironmentName" + ], + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "EnvironmentName":{"shape":"EnvironmentName"}, + "Description":{"shape":"Description"}, + "CNAMEPrefix":{"shape":"DNSCnamePrefix"}, + "Tier":{"shape":"EnvironmentTier"}, + "Tags":{"shape":"Tags"}, + "VersionLabel":{"shape":"VersionLabel"}, + "TemplateName":{"shape":"ConfigurationTemplateName"}, + "SolutionStackName":{"shape":"SolutionStackName"}, + "OptionSettings":{"shape":"ConfigurationOptionSettingsList"}, + "OptionsToRemove":{"shape":"OptionsSpecifierList"} + } + }, + "CreateStorageLocationResultMessage":{ + "type":"structure", + "members":{ + "S3Bucket":{"shape":"S3Bucket"} + } + }, + "CreationDate":{"type":"timestamp"}, + "DNSCname":{ + "type":"string", + "min":1, + "max":255 + }, + "DNSCnamePrefix":{ + "type":"string", + "min":4, + "max":63 + }, + "DeleteApplicationMessage":{ + "type":"structure", + "required":["ApplicationName"], + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "TerminateEnvByForce":{"shape":"TerminateEnvForce"} + } + }, + "DeleteApplicationVersionMessage":{ + "type":"structure", + "required":[ + "ApplicationName", + "VersionLabel" + ], + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "VersionLabel":{"shape":"VersionLabel"}, + "DeleteSourceBundle":{"shape":"DeleteSourceBundle"} + } + }, + "DeleteConfigurationTemplateMessage":{ + "type":"structure", + "required":[ + "ApplicationName", + "TemplateName" + ], + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "TemplateName":{"shape":"ConfigurationTemplateName"} + } + }, + "DeleteEnvironmentConfigurationMessage":{ + "type":"structure", + "required":[ + "ApplicationName", + "EnvironmentName" + ], + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "EnvironmentName":{"shape":"EnvironmentName"} + } + }, + "DeleteSourceBundle":{"type":"boolean"}, + "DescribeApplicationVersionsMessage":{ + "type":"structure", + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "VersionLabels":{"shape":"VersionLabelsList"} + } + }, + "DescribeApplicationsMessage":{ + "type":"structure", + "members":{ + "ApplicationNames":{"shape":"ApplicationNamesList"} + } + }, + "DescribeConfigurationOptionsMessage":{ + "type":"structure", + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "TemplateName":{"shape":"ConfigurationTemplateName"}, + "EnvironmentName":{"shape":"EnvironmentName"}, + "SolutionStackName":{"shape":"SolutionStackName"}, + "Options":{"shape":"OptionsSpecifierList"} + } + }, + "DescribeConfigurationSettingsMessage":{ + "type":"structure", + "required":["ApplicationName"], + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "TemplateName":{"shape":"ConfigurationTemplateName"}, + "EnvironmentName":{"shape":"EnvironmentName"} + } + }, + "DescribeEnvironmentResourcesMessage":{ + "type":"structure", + "members":{ + "EnvironmentId":{"shape":"EnvironmentId"}, + "EnvironmentName":{"shape":"EnvironmentName"} + } + }, + "DescribeEnvironmentsMessage":{ + "type":"structure", + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "VersionLabel":{"shape":"VersionLabel"}, + "EnvironmentIds":{"shape":"EnvironmentIdList"}, + "EnvironmentNames":{"shape":"EnvironmentNamesList"}, + "IncludeDeleted":{"shape":"IncludeDeleted"}, + "IncludedDeletedBackTo":{"shape":"IncludeDeletedBackTo"} + } + }, + "DescribeEventsMessage":{ + "type":"structure", + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "VersionLabel":{"shape":"VersionLabel"}, + "TemplateName":{"shape":"ConfigurationTemplateName"}, + "EnvironmentId":{"shape":"EnvironmentId"}, + "EnvironmentName":{"shape":"EnvironmentName"}, + "RequestId":{"shape":"RequestId"}, + "Severity":{"shape":"EventSeverity"}, + "StartTime":{"shape":"TimeFilterStart"}, + "EndTime":{"shape":"TimeFilterEnd"}, + "MaxRecords":{"shape":"MaxRecords"}, + "NextToken":{"shape":"Token"} + } + }, + "Description":{ + "type":"string", + "max":200 + }, + "Ec2InstanceId":{"type":"string"}, + "EndpointURL":{"type":"string"}, + "EnvironmentDescription":{ + "type":"structure", + "members":{ + "EnvironmentName":{"shape":"EnvironmentName"}, + "EnvironmentId":{"shape":"EnvironmentId"}, + "ApplicationName":{"shape":"ApplicationName"}, + "VersionLabel":{"shape":"VersionLabel"}, + "SolutionStackName":{"shape":"SolutionStackName"}, + "TemplateName":{"shape":"ConfigurationTemplateName"}, + "Description":{"shape":"Description"}, + "EndpointURL":{"shape":"EndpointURL"}, + "CNAME":{"shape":"DNSCname"}, + "DateCreated":{"shape":"CreationDate"}, + "DateUpdated":{"shape":"UpdateDate"}, + "Status":{"shape":"EnvironmentStatus"}, + "AbortableOperationInProgress":{"shape":"AbortableOperationInProgress"}, + "Health":{"shape":"EnvironmentHealth"}, + "Resources":{"shape":"EnvironmentResourcesDescription"}, + "Tier":{"shape":"EnvironmentTier"} + } + }, + "EnvironmentDescriptionsList":{ + "type":"list", + "member":{"shape":"EnvironmentDescription"} + }, + "EnvironmentDescriptionsMessage":{ + "type":"structure", + "members":{ + "Environments":{"shape":"EnvironmentDescriptionsList"} + } + }, + "EnvironmentHealth":{ + "type":"string", + "enum":[ + "Green", + "Yellow", + "Red", + "Grey" + ] + }, + "EnvironmentId":{"type":"string"}, + "EnvironmentIdList":{ + "type":"list", + "member":{"shape":"EnvironmentId"} + }, + "EnvironmentInfoDescription":{ + "type":"structure", + "members":{ + "InfoType":{"shape":"EnvironmentInfoType"}, + "Ec2InstanceId":{"shape":"Ec2InstanceId"}, + "SampleTimestamp":{"shape":"SampleTimestamp"}, + "Message":{"shape":"Message"} + } + }, + "EnvironmentInfoDescriptionList":{ + "type":"list", + "member":{"shape":"EnvironmentInfoDescription"} + }, + "EnvironmentInfoType":{ + "type":"string", + "enum":[ + "tail", + "bundle" + ] + }, + "EnvironmentName":{ + "type":"string", + "min":4, + "max":23 + }, + "EnvironmentNamesList":{ + "type":"list", + "member":{"shape":"EnvironmentName"} + }, + "EnvironmentResourceDescription":{ + "type":"structure", + "members":{ + "EnvironmentName":{"shape":"EnvironmentName"}, + "AutoScalingGroups":{"shape":"AutoScalingGroupList"}, + "Instances":{"shape":"InstanceList"}, + "LaunchConfigurations":{"shape":"LaunchConfigurationList"}, + "LoadBalancers":{"shape":"LoadBalancerList"}, + "Triggers":{"shape":"TriggerList"}, + "Queues":{"shape":"QueueList"} + } + }, + "EnvironmentResourceDescriptionsMessage":{ + "type":"structure", + "members":{ + "EnvironmentResources":{"shape":"EnvironmentResourceDescription"} + } + }, + "EnvironmentResourcesDescription":{ + "type":"structure", + "members":{ + "LoadBalancer":{"shape":"LoadBalancerDescription"} + } + }, + "EnvironmentStatus":{ + "type":"string", + "enum":[ + "Launching", + "Updating", + "Ready", + "Terminating", + "Terminated" + ] + }, + "EnvironmentTier":{ + "type":"structure", + "members":{ + "Name":{"shape":"String"}, + "Type":{"shape":"String"}, + "Version":{"shape":"String"} + } + }, + "EventDate":{"type":"timestamp"}, + "EventDescription":{ + "type":"structure", + "members":{ + "EventDate":{"shape":"EventDate"}, + "Message":{"shape":"EventMessage"}, + "ApplicationName":{"shape":"ApplicationName"}, + "VersionLabel":{"shape":"VersionLabel"}, + "TemplateName":{"shape":"ConfigurationTemplateName"}, + "EnvironmentName":{"shape":"EnvironmentName"}, + "RequestId":{"shape":"RequestId"}, + "Severity":{"shape":"EventSeverity"} + } + }, + "EventDescriptionList":{ + "type":"list", + "member":{"shape":"EventDescription"} + }, + "EventDescriptionsMessage":{ + "type":"structure", + "members":{ + "Events":{"shape":"EventDescriptionList"}, + "NextToken":{"shape":"Token"} + } + }, + "EventMessage":{"type":"string"}, + "EventSeverity":{ + "type":"string", + "enum":[ + "TRACE", + "DEBUG", + "INFO", + "WARN", + "ERROR", + "FATAL" + ] + }, + "FileTypeExtension":{ + "type":"string", + "min":1, + "max":100 + }, + "IncludeDeleted":{"type":"boolean"}, + "IncludeDeletedBackTo":{"type":"timestamp"}, + "Instance":{ + "type":"structure", + "members":{ + "Id":{"shape":"ResourceId"} + } + }, + "InstanceList":{ + "type":"list", + "member":{"shape":"Instance"} + }, + "InsufficientPrivilegesException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InsufficientPrivilegesException", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "Integer":{"type":"integer"}, + "LaunchConfiguration":{ + "type":"structure", + "members":{ + "Name":{"shape":"ResourceId"} + } + }, + "LaunchConfigurationList":{ + "type":"list", + "member":{"shape":"LaunchConfiguration"} + }, + "ListAvailableSolutionStacksResultMessage":{ + "type":"structure", + "members":{ + "SolutionStacks":{"shape":"AvailableSolutionStackNamesList"}, + "SolutionStackDetails":{"shape":"AvailableSolutionStackDetailsList"} + } + }, + "Listener":{ + "type":"structure", + "members":{ + "Protocol":{"shape":"String"}, + "Port":{"shape":"Integer"} + } + }, + "LoadBalancer":{ + "type":"structure", + "members":{ + "Name":{"shape":"ResourceId"} + } + }, + "LoadBalancerDescription":{ + "type":"structure", + "members":{ + "LoadBalancerName":{"shape":"String"}, + "Domain":{"shape":"String"}, + "Listeners":{"shape":"LoadBalancerListenersDescription"} + } + }, + "LoadBalancerList":{ + "type":"list", + "member":{"shape":"LoadBalancer"} + }, + "LoadBalancerListenersDescription":{ + "type":"list", + "member":{"shape":"Listener"} + }, + "MaxRecords":{ + "type":"integer", + "min":1, + "max":1000 + }, + "Message":{"type":"string"}, + "OperationInProgressException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"OperationInProgressFailure", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "OptionNamespace":{"type":"string"}, + "OptionRestrictionMaxLength":{"type":"integer"}, + "OptionRestrictionMaxValue":{"type":"integer"}, + "OptionRestrictionMinValue":{"type":"integer"}, + "OptionRestrictionRegex":{ + "type":"structure", + "members":{ + "Pattern":{"shape":"RegexPattern"}, + "Label":{"shape":"RegexLabel"} + } + }, + "OptionSpecification":{ + "type":"structure", + "members":{ + "ResourceName":{"shape":"ResourceName"}, + "Namespace":{"shape":"OptionNamespace"}, + "OptionName":{"shape":"ConfigurationOptionName"} + } + }, + "OptionsSpecifierList":{ + "type":"list", + "member":{"shape":"OptionSpecification"} + }, + "Queue":{ + "type":"structure", + "members":{ + "Name":{"shape":"String"}, + "URL":{"shape":"String"} + } + }, + "QueueList":{ + "type":"list", + "member":{"shape":"Queue"} + }, + "RebuildEnvironmentMessage":{ + "type":"structure", + "members":{ + "EnvironmentId":{"shape":"EnvironmentId"}, + "EnvironmentName":{"shape":"EnvironmentName"} + } + }, + "RegexLabel":{"type":"string"}, + "RegexPattern":{"type":"string"}, + "RequestEnvironmentInfoMessage":{ + "type":"structure", + "required":["InfoType"], + "members":{ + "EnvironmentId":{"shape":"EnvironmentId"}, + "EnvironmentName":{"shape":"EnvironmentName"}, + "InfoType":{"shape":"EnvironmentInfoType"} + } + }, + "RequestId":{"type":"string"}, + "ResourceId":{"type":"string"}, + "ResourceName":{ + "type":"string", + "min":1, + "max":256 + }, + "RestartAppServerMessage":{ + "type":"structure", + "members":{ + "EnvironmentId":{"shape":"EnvironmentId"}, + "EnvironmentName":{"shape":"EnvironmentName"} + } + }, + "RetrieveEnvironmentInfoMessage":{ + "type":"structure", + "required":["InfoType"], + "members":{ + "EnvironmentId":{"shape":"EnvironmentId"}, + "EnvironmentName":{"shape":"EnvironmentName"}, + "InfoType":{"shape":"EnvironmentInfoType"} + } + }, + "RetrieveEnvironmentInfoResultMessage":{ + "type":"structure", + "members":{ + "EnvironmentInfo":{"shape":"EnvironmentInfoDescriptionList"} + } + }, + "S3Bucket":{ + "type":"string", + "max":255 + }, + "S3Key":{ + "type":"string", + "max":1024 + }, + "S3Location":{ + "type":"structure", + "members":{ + "S3Bucket":{"shape":"S3Bucket"}, + "S3Key":{"shape":"S3Key"} + } + }, + "S3LocationNotInServiceRegionException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"S3LocationNotInServiceRegionException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "S3SubscriptionRequiredException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"S3SubscriptionRequiredException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "SampleTimestamp":{"type":"timestamp"}, + "SolutionStackDescription":{ + "type":"structure", + "members":{ + "SolutionStackName":{"shape":"SolutionStackName"}, + "PermittedFileTypes":{"shape":"SolutionStackFileTypeList"} + } + }, + "SolutionStackFileTypeList":{ + "type":"list", + "member":{"shape":"FileTypeExtension"} + }, + "SolutionStackName":{ + "type":"string", + "max":100 + }, + "SourceBundleDeletionException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SourceBundleDeletionFailure", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "SourceConfiguration":{ + "type":"structure", + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "TemplateName":{"shape":"ConfigurationTemplateName"} + } + }, + "String":{"type":"string"}, + "SwapEnvironmentCNAMEsMessage":{ + "type":"structure", + "members":{ + "SourceEnvironmentId":{"shape":"EnvironmentId"}, + "SourceEnvironmentName":{"shape":"EnvironmentName"}, + "DestinationEnvironmentId":{"shape":"EnvironmentId"}, + "DestinationEnvironmentName":{"shape":"EnvironmentName"} + } + }, + "Tag":{ + "type":"structure", + "members":{ + "Key":{"shape":"TagKey"}, + "Value":{"shape":"TagValue"} + } + }, + "TagKey":{ + "type":"string", + "min":1, + "max":128 + }, + "TagValue":{ + "type":"string", + "min":1, + "max":256 + }, + "Tags":{ + "type":"list", + "member":{"shape":"Tag"} + }, + "TerminateEnvForce":{"type":"boolean"}, + "TerminateEnvironmentMessage":{ + "type":"structure", + "members":{ + "EnvironmentId":{"shape":"EnvironmentId"}, + "EnvironmentName":{"shape":"EnvironmentName"}, + "TerminateResources":{"shape":"TerminateEnvironmentResources"} + } + }, + "TerminateEnvironmentResources":{"type":"boolean"}, + "TimeFilterEnd":{"type":"timestamp"}, + "TimeFilterStart":{"type":"timestamp"}, + "Token":{"type":"string"}, + "TooManyApplicationVersionsException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "TooManyApplicationsException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"TooManyApplicationsException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "TooManyBucketsException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"TooManyBucketsException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "TooManyConfigurationTemplatesException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"TooManyConfigurationTemplatesException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "TooManyEnvironmentsException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"TooManyEnvironmentsException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "Trigger":{ + "type":"structure", + "members":{ + "Name":{"shape":"ResourceId"} + } + }, + "TriggerList":{ + "type":"list", + "member":{"shape":"Trigger"} + }, + "UpdateApplicationMessage":{ + "type":"structure", + "required":["ApplicationName"], + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "Description":{"shape":"Description"} + } + }, + "UpdateApplicationVersionMessage":{ + "type":"structure", + "required":[ + "ApplicationName", + "VersionLabel" + ], + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "VersionLabel":{"shape":"VersionLabel"}, + "Description":{"shape":"Description"} + } + }, + "UpdateConfigurationTemplateMessage":{ + "type":"structure", + "required":[ + "ApplicationName", + "TemplateName" + ], + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "TemplateName":{"shape":"ConfigurationTemplateName"}, + "Description":{"shape":"Description"}, + "OptionSettings":{"shape":"ConfigurationOptionSettingsList"}, + "OptionsToRemove":{"shape":"OptionsSpecifierList"} + } + }, + "UpdateDate":{"type":"timestamp"}, + "UpdateEnvironmentMessage":{ + "type":"structure", + "members":{ + "EnvironmentId":{"shape":"EnvironmentId"}, + "EnvironmentName":{"shape":"EnvironmentName"}, + "Description":{"shape":"Description"}, + "Tier":{"shape":"EnvironmentTier"}, + "VersionLabel":{"shape":"VersionLabel"}, + "TemplateName":{"shape":"ConfigurationTemplateName"}, + "SolutionStackName":{"shape":"SolutionStackName"}, + "OptionSettings":{"shape":"ConfigurationOptionSettingsList"}, + "OptionsToRemove":{"shape":"OptionsSpecifierList"} + } + }, + "UserDefinedOption":{"type":"boolean"}, + "ValidateConfigurationSettingsMessage":{ + "type":"structure", + "required":[ + "ApplicationName", + "OptionSettings" + ], + "members":{ + "ApplicationName":{"shape":"ApplicationName"}, + "TemplateName":{"shape":"ConfigurationTemplateName"}, + "EnvironmentName":{"shape":"EnvironmentName"}, + "OptionSettings":{"shape":"ConfigurationOptionSettingsList"} + } + }, + "ValidationMessage":{ + "type":"structure", + "members":{ + "Message":{"shape":"ValidationMessageString"}, + "Severity":{"shape":"ValidationSeverity"}, + "Namespace":{"shape":"OptionNamespace"}, + "OptionName":{"shape":"ConfigurationOptionName"} + } + }, + "ValidationMessageString":{"type":"string"}, + "ValidationMessagesList":{ + "type":"list", + "member":{"shape":"ValidationMessage"} + }, + "ValidationSeverity":{ + "type":"string", + "enum":[ + "error", + "warning" + ] + }, + "VersionLabel":{ + "type":"string", + "min":1, + "max":100 + }, + "VersionLabelsList":{ + "type":"list", + "member":{"shape":"VersionLabel"} + } + } +} diff --git a/lib/aws-sdk/Aws/data/elasticbeanstalk/2010-12-01/docs-2.json b/lib/aws-sdk/Aws/data/elasticbeanstalk/2010-12-01/docs-2.json new file mode 100644 index 0000000..3f6dfb2 --- /dev/null +++ b/lib/aws-sdk/Aws/data/elasticbeanstalk/2010-12-01/docs-2.json @@ -0,0 +1,1114 @@ +{ + "version": "2.0", + "operations": { + "AbortEnvironmentUpdate": "

Cancels in-progress environment configuration update or application version deployment.

", + "CheckDNSAvailability": "

Checks if the specified CNAME is available.

", + "CreateApplication": "

Creates an application that has one configuration template named default and no application versions.

", + "CreateApplicationVersion": "

Creates an application version for the specified application.

Once you create an application version with a specified Amazon S3 bucket and key location, you cannot change that Amazon S3 location. If you change the Amazon S3 location, you receive an exception when you attempt to launch an environment from the application version. ", + "CreateConfigurationTemplate": "

Creates a configuration template. Templates are associated with a specific application and are used to deploy different versions of the application with the same configuration settings.

Related Topics

", + "CreateEnvironment": "

Launches an environment for the specified application using the specified configuration.

", + "CreateStorageLocation": "

Creates the Amazon S3 storage location for the account.

This location is used to store user log files.

", + "DeleteApplication": "

Deletes the specified application along with all associated versions and configurations. The application versions will not be deleted from your Amazon S3 bucket.

You cannot delete an application that has a running environment. ", + "DeleteApplicationVersion": "

Deletes the specified version from the specified application.

You cannot delete an application version that is associated with a running environment.", + "DeleteConfigurationTemplate": "

Deletes the specified configuration template.

When you launch an environment using a configuration template, the environment gets a copy of the template. You can delete or modify the environment's copy of the template without affecting the running environment.", + "DeleteEnvironmentConfiguration": "

Deletes the draft configuration associated with the running environment.

Updating a running environment with any configuration changes creates a draft configuration set. You can get the draft configuration using DescribeConfigurationSettings while the update is in progress or if the update fails. The DeploymentStatus for the draft configuration indicates whether the deployment is in process or has failed. The draft configuration remains in existence until it is deleted with this action.

", + "DescribeApplicationVersions": "

Returns descriptions for existing application versions.

", + "DescribeApplications": "

Returns the descriptions of existing applications.

", + "DescribeConfigurationOptions": "

Describes the configuration options that are used in a particular configuration template or environment, or that a specified solution stack defines. The description includes the values the options, their default values, and an indication of the required action on a running environment if an option value is changed.

", + "DescribeConfigurationSettings": "

Returns a description of the settings for the specified configuration set, that is, either a configuration template or the configuration set associated with a running environment.

When describing the settings for the configuration set associated with a running environment, it is possible to receive two sets of setting descriptions. One is the deployed configuration set, and the other is a draft configuration of an environment that is either in the process of deployment or that failed to deploy.

Related Topics

", + "DescribeEnvironmentResources": "

Returns AWS resources for this environment.

", + "DescribeEnvironments": "

Returns descriptions for existing environments.

", + "DescribeEvents": "

Returns list of event descriptions matching criteria up to the last 6 weeks.

This action returns the most recent 1,000 events from the specified NextToken. ", + "ListAvailableSolutionStacks": "

Returns a list of the available solution stack names.

", + "RebuildEnvironment": "

Deletes and recreates all of the AWS resources (for example: the Auto Scaling group, load balancer, etc.) for a specified environment and forces a restart.

", + "RequestEnvironmentInfo": "

Initiates a request to compile the specified type of information of the deployed environment.

Setting the InfoType to tail compiles the last lines from the application server log files of every Amazon EC2 instance in your environment.

Setting the InfoType to bundle compresses the application server log files for every Amazon EC2 instance into a .zip file. Legacy and .NET containers do not support bundle logs.

Use RetrieveEnvironmentInfo to obtain the set of logs.

Related Topics

", + "RestartAppServer": "

Causes the environment to restart the application container server running on each Amazon EC2 instance.

", + "RetrieveEnvironmentInfo": "

Retrieves the compiled information from a RequestEnvironmentInfo request.

Related Topics

", + "SwapEnvironmentCNAMEs": "

Swaps the CNAMEs of two environments.

", + "TerminateEnvironment": "

Terminates the specified environment.

", + "UpdateApplication": "

Updates the specified application to have the specified properties.

If a property (for example, description) is not provided, the value remains unchanged. To clear these properties, specify an empty string. ", + "UpdateApplicationVersion": "

Updates the specified application version to have the specified properties.

If a property (for example, description) is not provided, the value remains unchanged. To clear properties, specify an empty string. ", + "UpdateConfigurationTemplate": "

Updates the specified configuration template to have the specified properties or configuration option values.

If a property (for example, ApplicationName) is not provided, its value remains unchanged. To clear such properties, specify an empty string.

Related Topics

", + "UpdateEnvironment": "

Updates the environment description, deploys a new application version, updates the configuration settings to an entirely new configuration template, or updates select configuration option values in the running environment.

Attempting to update both the release and configuration is not allowed and AWS Elastic Beanstalk returns an InvalidParameterCombination error.

When updating the configuration settings to a new template or individual settings, a draft configuration is created and DescribeConfigurationSettings for this environment returns two setting descriptions with different DeploymentStatus values.

", + "ValidateConfigurationSettings": "

Takes a set of configuration settings and either a configuration template or environment, and determines whether those values are valid.

This action returns a list of messages indicating any errors or warnings associated with the selection of option values.

" + }, + "service": "AWS Elastic Beanstalk

This is the AWS Elastic Beanstalk API Reference. This guide provides detailed information about AWS Elastic Beanstalk actions, data types, parameters, and errors.

AWS Elastic Beanstalk is a tool that makes it easy for you to create, deploy, and manage scalable, fault-tolerant applications running on Amazon Web Services cloud resources.

For more information about this product, go to the AWS Elastic Beanstalk details page. The location of the latest AWS Elastic Beanstalk WSDL is http://elasticbeanstalk.s3.amazonaws.com/doc/2010-12-01/AWSElasticBeanstalk.wsdl. To install the Software Development Kits (SDKs), Integrated Development Environment (IDE) Toolkits, and command line tools that enable you to access the API, go to Tools for Amazon Web Services.

Endpoints

For a list of region-specific endpoints that AWS Elastic Beanstalk supports, go to Regions and Endpoints in the Amazon Web Services Glossary.

", + "shapes": { + "AbortEnvironmentUpdateMessage": { + "base": "

", + "refs": { + } + }, + "AbortableOperationInProgress": { + "base": null, + "refs": { + "EnvironmentDescription$AbortableOperationInProgress": "

Indicates if there is an in-progress environment configuration update or application version deployment that you can cancel.

true: There is an update in progress.

false: There are no updates currently in progress.

" + } + }, + "ApplicationDescription": { + "base": "

Describes the properties of an application.

", + "refs": { + "ApplicationDescriptionList$member": null, + "ApplicationDescriptionMessage$Application": "

The ApplicationDescription of the application.

" + } + }, + "ApplicationDescriptionList": { + "base": null, + "refs": { + "ApplicationDescriptionsMessage$Applications": "

This parameter contains a list of ApplicationDescription.

" + } + }, + "ApplicationDescriptionMessage": { + "base": "

Result message containing a single description of an application.

", + "refs": { + } + }, + "ApplicationDescriptionsMessage": { + "base": "

Result message containing a list of application descriptions.

", + "refs": { + } + }, + "ApplicationName": { + "base": null, + "refs": { + "ApplicationDescription$ApplicationName": "

The name of the application.

", + "ApplicationNamesList$member": null, + "ApplicationVersionDescription$ApplicationName": "

The name of the application associated with this release.

", + "ConfigurationSettingsDescription$ApplicationName": "

The name of the application associated with this configuration set.

", + "CreateApplicationMessage$ApplicationName": "

The name of the application.

Constraint: This name must be unique within your account. If the specified name already exists, the action returns an InvalidParameterValue error.

", + "CreateApplicationVersionMessage$ApplicationName": "

The name of the application. If no application is found with this name, and AutoCreateApplication is false, returns an InvalidParameterValue error.

", + "CreateConfigurationTemplateMessage$ApplicationName": "

The name of the application to associate with this configuration template. If no application is found with this name, AWS Elastic Beanstalk returns an InvalidParameterValue error.

", + "CreateEnvironmentMessage$ApplicationName": "

The name of the application that contains the version to be deployed.

If no application is found with this name, CreateEnvironment returns an InvalidParameterValue error.

", + "DeleteApplicationMessage$ApplicationName": "

The name of the application to delete.

", + "DeleteApplicationVersionMessage$ApplicationName": "

The name of the application to delete releases from.

", + "DeleteConfigurationTemplateMessage$ApplicationName": "

The name of the application to delete the configuration template from.

", + "DeleteEnvironmentConfigurationMessage$ApplicationName": "

The name of the application the environment is associated with.

", + "DescribeApplicationVersionsMessage$ApplicationName": "

If specified, AWS Elastic Beanstalk restricts the returned descriptions to only include ones that are associated with the specified application.

", + "DescribeConfigurationOptionsMessage$ApplicationName": "

The name of the application associated with the configuration template or environment. Only needed if you want to describe the configuration options associated with either the configuration template or environment.

", + "DescribeConfigurationSettingsMessage$ApplicationName": "

The application for the environment or configuration template.

", + "DescribeEnvironmentsMessage$ApplicationName": "

If specified, AWS Elastic Beanstalk restricts the returned descriptions to include only those that are associated with this application.

", + "DescribeEventsMessage$ApplicationName": "

If specified, AWS Elastic Beanstalk restricts the returned descriptions to include only those associated with this application.

", + "EnvironmentDescription$ApplicationName": "

The name of the application associated with this environment.

", + "EventDescription$ApplicationName": "

The application associated with the event.

", + "SourceConfiguration$ApplicationName": "

The name of the application associated with the configuration.

", + "UpdateApplicationMessage$ApplicationName": "

The name of the application to update. If no such application is found, UpdateApplication returns an InvalidParameterValue error.

", + "UpdateApplicationVersionMessage$ApplicationName": "

The name of the application associated with this version.

If no application is found with this name, UpdateApplication returns an InvalidParameterValue error.

", + "UpdateConfigurationTemplateMessage$ApplicationName": "

The name of the application associated with the configuration template to update.

If no application is found with this name, UpdateConfigurationTemplate returns an InvalidParameterValue error.

", + "ValidateConfigurationSettingsMessage$ApplicationName": "

The name of the application that the configuration template or environment belongs to.

" + } + }, + "ApplicationNamesList": { + "base": null, + "refs": { + "DescribeApplicationsMessage$ApplicationNames": "

If specified, AWS Elastic Beanstalk restricts the returned descriptions to only include those with the specified names.

" + } + }, + "ApplicationVersionDescription": { + "base": "

Describes the properties of an application version.

", + "refs": { + "ApplicationVersionDescriptionList$member": null, + "ApplicationVersionDescriptionMessage$ApplicationVersion": "

The ApplicationVersionDescription of the application version.

" + } + }, + "ApplicationVersionDescriptionList": { + "base": null, + "refs": { + "ApplicationVersionDescriptionsMessage$ApplicationVersions": "

A list of ApplicationVersionDescription .

" + } + }, + "ApplicationVersionDescriptionMessage": { + "base": "

Result message wrapping a single description of an application version.

", + "refs": { + } + }, + "ApplicationVersionDescriptionsMessage": { + "base": "

Result message wrapping a list of application version descriptions.

", + "refs": { + } + }, + "AutoCreateApplication": { + "base": null, + "refs": { + "CreateApplicationVersionMessage$AutoCreateApplication": "

Determines how the system behaves if the specified application for this version does not already exist:

true: Automatically creates the specified application for this version if it does not already exist.

false: Returns an InvalidParameterValue if the specified application for this version does not already exist.

  • true : Automatically creates the specified application for this release if it does not already exist.
  • false : Throws an InvalidParameterValue if the specified application for this release does not already exist.

Default: false

Valid Values: true | false

" + } + }, + "AutoScalingGroup": { + "base": "

Describes an Auto Scaling launch configuration.

", + "refs": { + "AutoScalingGroupList$member": null + } + }, + "AutoScalingGroupList": { + "base": null, + "refs": { + "EnvironmentResourceDescription$AutoScalingGroups": "

The AutoScalingGroups used by this environment.

" + } + }, + "AvailableSolutionStackDetailsList": { + "base": null, + "refs": { + "ListAvailableSolutionStacksResultMessage$SolutionStackDetails": "

A list of available solution stacks and their SolutionStackDescription.

" + } + }, + "AvailableSolutionStackNamesList": { + "base": null, + "refs": { + "ListAvailableSolutionStacksResultMessage$SolutionStacks": "

A list of available solution stacks.

" + } + }, + "CheckDNSAvailabilityMessage": { + "base": "

Results message indicating whether a CNAME is available.

", + "refs": { + } + }, + "CheckDNSAvailabilityResultMessage": { + "base": "

Indicates if the specified CNAME is available.

", + "refs": { + } + }, + "CnameAvailability": { + "base": null, + "refs": { + "CheckDNSAvailabilityResultMessage$Available": "

Indicates if the specified CNAME is available:

true : The CNAME is available.

true : The CNAME is not available.

  • true : The CNAME is available.
  • false : The CNAME is not available.

" + } + }, + "ConfigurationDeploymentStatus": { + "base": null, + "refs": { + "ConfigurationSettingsDescription$DeploymentStatus": "

If this configuration set is associated with an environment, the DeploymentStatus parameter indicates the deployment status of this configuration set:

null: This configuration is not associated with a running environment.

pending: This is a draft configuration that is not deployed to the associated environment but is in the process of deploying.

deployed: This is the configuration that is currently deployed to the associated running environment.

failed: This is a draft configuration, that failed to successfully deploy.

  • null: This configuration is not associated with a running environment.
  • pending: This is a draft configuration that is not deployed to the associated environment but is in the process of deploying.
  • deployed: This is the configuration that is currently deployed to the associated running environment.
  • failed: This is a draft configuration that failed to successfully deploy.
" + } + }, + "ConfigurationOptionDefaultValue": { + "base": null, + "refs": { + "ConfigurationOptionDescription$DefaultValue": "

The default value for this configuration option.

" + } + }, + "ConfigurationOptionDescription": { + "base": "

Describes the possible values for a configuration option.

", + "refs": { + "ConfigurationOptionDescriptionsList$member": null + } + }, + "ConfigurationOptionDescriptionsList": { + "base": null, + "refs": { + "ConfigurationOptionsDescription$Options": "

A list of ConfigurationOptionDescription.

" + } + }, + "ConfigurationOptionName": { + "base": null, + "refs": { + "ConfigurationOptionDescription$Name": "

The name of the configuration option.

", + "ConfigurationOptionSetting$OptionName": "

The name of the configuration option.

", + "OptionSpecification$OptionName": "

The name of the configuration option.

", + "ValidationMessage$OptionName": "

" + } + }, + "ConfigurationOptionPossibleValue": { + "base": null, + "refs": { + "ConfigurationOptionPossibleValues$member": null + } + }, + "ConfigurationOptionPossibleValues": { + "base": null, + "refs": { + "ConfigurationOptionDescription$ValueOptions": "

If specified, values for the configuration option are selected from this list.

" + } + }, + "ConfigurationOptionSetting": { + "base": "

A specification identifying an individual configuration option along with its current value. For a list of possible option values, go to Option Values in the AWS Elastic Beanstalk Developer Guide.

", + "refs": { + "ConfigurationOptionSettingsList$member": null + } + }, + "ConfigurationOptionSettingsList": { + "base": null, + "refs": { + "ConfigurationSettingsDescription$OptionSettings": "

A list of the configuration options and their values in this configuration set.

", + "CreateConfigurationTemplateMessage$OptionSettings": "

If specified, AWS Elastic Beanstalk sets the specified configuration option to the requested value. The new value overrides the value obtained from the solution stack or the source configuration template.

", + "CreateEnvironmentMessage$OptionSettings": "

If specified, AWS Elastic Beanstalk sets the specified configuration options to the requested value in the configuration set for the new environment. These override the values obtained from the solution stack or the configuration template.

", + "UpdateConfigurationTemplateMessage$OptionSettings": "

A list of configuration option settings to update with the new specified option value.

", + "UpdateEnvironmentMessage$OptionSettings": "

If specified, AWS Elastic Beanstalk updates the configuration set associated with the running environment and sets the specified configuration options to the requested value.

", + "ValidateConfigurationSettingsMessage$OptionSettings": "

A list of the options and desired values to evaluate.

" + } + }, + "ConfigurationOptionSeverity": { + "base": null, + "refs": { + "ConfigurationOptionDescription$ChangeSeverity": "

An indication of which action is required if the value for this configuration option changes:

NoInterruption - There is no interruption to the environment or application availability.

RestartEnvironment - The environment is restarted, all AWS resources are deleted and recreated, and the environment is unavailable during the process.

RestartApplicationServer - The environment is available the entire time. However, a short application outage occurs when the application servers on the running Amazon EC2 instances are restarted.

  • NoInterruption : There is no interruption to the environment or application availability.
  • RestartEnvironment : The environment is entirely restarted, all AWS resources are deleted and recreated, and the environment is unavailable during the process.
  • RestartApplicationServer : The environment is available the entire time. However, a short application outage occurs when the application servers on the running Amazon EC2 instances are restarted.
" + } + }, + "ConfigurationOptionValue": { + "base": null, + "refs": { + "ConfigurationOptionSetting$Value": "

The current value for the configuration option.

" + } + }, + "ConfigurationOptionValueType": { + "base": null, + "refs": { + "ConfigurationOptionDescription$ValueType": "

An indication of which type of values this option has and whether it is allowable to select one or more than one of the possible values:

Scalar : Values for this option are a single selection from the possible values, or a unformatted string or numeric value governed by the MIN/MAX/Regex constraints:

List : Values for this option are multiple selections of the possible values.

Boolean : Values for this option are either true or false .

  • Scalar : Values for this option are a single selection from the possible values, or an unformatted string, or numeric value governed by the MIN/MAX/Regex constraints.
  • List : Values for this option are multiple selections from the possible values.
  • Boolean : Values for this option are either true or false .

" + } + }, + "ConfigurationOptionsDescription": { + "base": "

Describes the settings for a specified configuration set.

", + "refs": { + } + }, + "ConfigurationSettingsDescription": { + "base": "

Describes the settings for a configuration set.

", + "refs": { + "ConfigurationSettingsDescriptionList$member": null + } + }, + "ConfigurationSettingsDescriptionList": { + "base": null, + "refs": { + "ConfigurationSettingsDescriptions$ConfigurationSettings": "

A list of ConfigurationSettingsDescription.

" + } + }, + "ConfigurationSettingsDescriptions": { + "base": "

The results from a request to change the configuration settings of an environment.

", + "refs": { + } + }, + "ConfigurationSettingsValidationMessages": { + "base": "

Provides a list of validation messages.

", + "refs": { + } + }, + "ConfigurationTemplateName": { + "base": null, + "refs": { + "ConfigurationSettingsDescription$TemplateName": "

If not null, the name of the configuration template for this configuration set.

", + "ConfigurationTemplateNamesList$member": null, + "CreateConfigurationTemplateMessage$TemplateName": "

The name of the configuration template.

Constraint: This name must be unique per application.

Default: If a configuration template already exists with this name, AWS Elastic Beanstalk returns an InvalidParameterValue error.

", + "CreateEnvironmentMessage$TemplateName": "

The name of the configuration template to use in deployment. If no configuration template is found with this name, AWS Elastic Beanstalk returns an InvalidParameterValue error.

Condition: You must specify either this parameter or a SolutionStackName, but not both. If you specify both, AWS Elastic Beanstalk returns an InvalidParameterCombination error. If you do not specify either, AWS Elastic Beanstalk returns a MissingRequiredParameter error.

", + "DeleteConfigurationTemplateMessage$TemplateName": "

The name of the configuration template to delete.

", + "DescribeConfigurationOptionsMessage$TemplateName": "

The name of the configuration template whose configuration options you want to describe.

", + "DescribeConfigurationSettingsMessage$TemplateName": "

The name of the configuration template to describe.

Conditional: You must specify either this parameter or an EnvironmentName, but not both. If you specify both, AWS Elastic Beanstalk returns an InvalidParameterCombination error. If you do not specify either, AWS Elastic Beanstalk returns a MissingRequiredParameter error.

", + "DescribeEventsMessage$TemplateName": "

If specified, AWS Elastic Beanstalk restricts the returned descriptions to those that are associated with this environment configuration.

", + "EnvironmentDescription$TemplateName": "

The name of the configuration template used to originally launch this environment.

", + "EventDescription$TemplateName": "

The name of the configuration associated with this event.

", + "SourceConfiguration$TemplateName": "

The name of the configuration template.

", + "UpdateConfigurationTemplateMessage$TemplateName": "

The name of the configuration template to update.

If no configuration template is found with this name, UpdateConfigurationTemplate returns an InvalidParameterValue error.

", + "UpdateEnvironmentMessage$TemplateName": "

If this parameter is specified, AWS Elastic Beanstalk deploys this configuration template to the environment. If no such configuration template is found, AWS Elastic Beanstalk returns an InvalidParameterValue error.

", + "ValidateConfigurationSettingsMessage$TemplateName": "

The name of the configuration template to validate the settings against.

Condition: You cannot specify both this and an environment name.

" + } + }, + "ConfigurationTemplateNamesList": { + "base": null, + "refs": { + "ApplicationDescription$ConfigurationTemplates": "

The names of the configuration templates associated with this application.

" + } + }, + "CreateApplicationMessage": { + "base": "

This documentation target is not reported in the API reference.

", + "refs": { + } + }, + "CreateApplicationVersionMessage": { + "base": "

", + "refs": { + } + }, + "CreateConfigurationTemplateMessage": { + "base": "

This documentation target is not reported in the API reference.

", + "refs": { + } + }, + "CreateEnvironmentMessage": { + "base": "

", + "refs": { + } + }, + "CreateStorageLocationResultMessage": { + "base": "

Results of a CreateStorageLocationResult call.

", + "refs": { + } + }, + "CreationDate": { + "base": null, + "refs": { + "ApplicationDescription$DateCreated": "

The date when the application was created.

", + "ApplicationVersionDescription$DateCreated": "

The creation date of the application version.

", + "ConfigurationSettingsDescription$DateCreated": "

The date (in UTC time) when this configuration set was created.

", + "EnvironmentDescription$DateCreated": "

The creation date for this environment.

" + } + }, + "DNSCname": { + "base": null, + "refs": { + "CheckDNSAvailabilityResultMessage$FullyQualifiedCNAME": "

The fully qualified CNAME to reserve when CreateEnvironment is called with the provided prefix.

", + "EnvironmentDescription$CNAME": "

The URL to the CNAME for this environment.

" + } + }, + "DNSCnamePrefix": { + "base": null, + "refs": { + "CheckDNSAvailabilityMessage$CNAMEPrefix": "

The prefix used when this CNAME is reserved.

", + "CreateEnvironmentMessage$CNAMEPrefix": "

If specified, the environment attempts to use this value as the prefix for the CNAME. If not specified, the CNAME is generated automatically by appending a random alphanumeric string to the environment name.

" + } + }, + "DeleteApplicationMessage": { + "base": "

This documentation target is not reported in the API reference.

", + "refs": { + } + }, + "DeleteApplicationVersionMessage": { + "base": "

This documentation target is not reported in the API reference.

", + "refs": { + } + }, + "DeleteConfigurationTemplateMessage": { + "base": "

This documentation target is not reported in the API reference.

", + "refs": { + } + }, + "DeleteEnvironmentConfigurationMessage": { + "base": "

This documentation target is not reported in the API reference.

", + "refs": { + } + }, + "DeleteSourceBundle": { + "base": null, + "refs": { + "DeleteApplicationVersionMessage$DeleteSourceBundle": "

Indicates whether to delete the associated source bundle from Amazon S3:

  • true: An attempt is made to delete the associated Amazon S3 source bundle specified at time of creation.
  • false: No action is taken on the Amazon S3 source bundle specified at time of creation.

Valid Values: true | false

" + } + }, + "DescribeApplicationVersionsMessage": { + "base": "

Result message containing a list of configuration descriptions.

", + "refs": { + } + }, + "DescribeApplicationsMessage": { + "base": "

This documentation target is not reported in the API reference.

", + "refs": { + } + }, + "DescribeConfigurationOptionsMessage": { + "base": "

Result message containig a list of application version descriptions.

", + "refs": { + } + }, + "DescribeConfigurationSettingsMessage": { + "base": "

Result message containing all of the configuration settings for a specified solution stack or configuration template.

", + "refs": { + } + }, + "DescribeEnvironmentResourcesMessage": { + "base": "

This documentation target is not reported in the API reference.

", + "refs": { + } + }, + "DescribeEnvironmentsMessage": { + "base": "

This documentation target is not reported in the API reference.

", + "refs": { + } + }, + "DescribeEventsMessage": { + "base": "

This documentation target is not reported in the API reference.

", + "refs": { + } + }, + "Description": { + "base": null, + "refs": { + "ApplicationDescription$Description": "

User-defined description of the application.

", + "ApplicationVersionDescription$Description": "

The description of this application version.

", + "ConfigurationSettingsDescription$Description": "

Describes this configuration set.

", + "CreateApplicationMessage$Description": "

Describes the application.

", + "CreateApplicationVersionMessage$Description": "

Describes this version.

", + "CreateConfigurationTemplateMessage$Description": "

Describes this configuration.

", + "CreateEnvironmentMessage$Description": "

Describes this environment.

", + "EnvironmentDescription$Description": "

Describes this environment.

", + "UpdateApplicationMessage$Description": "

A new description for the application.

Default: If not specified, AWS Elastic Beanstalk does not update the description.

", + "UpdateApplicationVersionMessage$Description": "

A new description for this release.

", + "UpdateConfigurationTemplateMessage$Description": "

A new description for the configuration.

", + "UpdateEnvironmentMessage$Description": "

If this parameter is specified, AWS Elastic Beanstalk updates the description of this environment.

" + } + }, + "Ec2InstanceId": { + "base": null, + "refs": { + "EnvironmentInfoDescription$Ec2InstanceId": "

The Amazon EC2 Instance ID for this information.

" + } + }, + "EndpointURL": { + "base": null, + "refs": { + "EnvironmentDescription$EndpointURL": "

For load-balanced, autoscaling environments, the URL to the LoadBalancer. For single-instance environments, the IP address of the instance.

" + } + }, + "EnvironmentDescription": { + "base": "

Describes the properties of an environment.

", + "refs": { + "EnvironmentDescriptionsList$member": null + } + }, + "EnvironmentDescriptionsList": { + "base": null, + "refs": { + "EnvironmentDescriptionsMessage$Environments": "

Returns an EnvironmentDescription list.

" + } + }, + "EnvironmentDescriptionsMessage": { + "base": "

Result message containing a list of environment descriptions.

", + "refs": { + } + }, + "EnvironmentHealth": { + "base": null, + "refs": { + "EnvironmentDescription$Health": "

Describes the health status of the environment. AWS Elastic Beanstalk indicates the failure levels for a running environment:

Red : Indicates the environment is not working.

Yellow: Indicates that something is wrong, the application might not be available, but the instances appear running.

Green: Indicates the environment is healthy and fully functional.

  • Red: Indicates the environment is not responsive. Occurs when three or more consecutive failures occur for an environment.
  • Yellow: Indicates that something is wrong. Occurs when two consecutive failures occur for an environment.
  • Green: Indicates the environment is healthy and fully functional.
  • Grey: Default health for a new environment. The environment is not fully launched and health checks have not started or health checks are suspended during an UpdateEnvironment or RestartEnvironement request.

Default: Grey

" + } + }, + "EnvironmentId": { + "base": null, + "refs": { + "AbortEnvironmentUpdateMessage$EnvironmentId": "

This specifies the ID of the environment with the in-progress update that you want to cancel.

", + "CreateConfigurationTemplateMessage$EnvironmentId": "

The ID of the environment used with this configuration template.

", + "DescribeEnvironmentResourcesMessage$EnvironmentId": "

The ID of the environment to retrieve AWS resource usage data.

Condition: You must specify either this or an EnvironmentName, or both. If you do not specify either, AWS Elastic Beanstalk returns MissingRequiredParameter error.

", + "DescribeEventsMessage$EnvironmentId": "

If specified, AWS Elastic Beanstalk restricts the returned descriptions to those associated with this environment.

", + "EnvironmentDescription$EnvironmentId": "

The ID of this environment.

", + "EnvironmentIdList$member": null, + "RebuildEnvironmentMessage$EnvironmentId": "

The ID of the environment to rebuild.

Condition: You must specify either this or an EnvironmentName, or both. If you do not specify either, AWS Elastic Beanstalk returns MissingRequiredParameter error.

", + "RequestEnvironmentInfoMessage$EnvironmentId": "

The ID of the environment of the requested data.

If no such environment is found, RequestEnvironmentInfo returns an InvalidParameterValue error.

Condition: You must specify either this or an EnvironmentName, or both. If you do not specify either, AWS Elastic Beanstalk returns MissingRequiredParameter error.

", + "RestartAppServerMessage$EnvironmentId": "

The ID of the environment to restart the server for.

Condition: You must specify either this or an EnvironmentName, or both. If you do not specify either, AWS Elastic Beanstalk returns MissingRequiredParameter error.

", + "RetrieveEnvironmentInfoMessage$EnvironmentId": "

The ID of the data's environment.

If no such environment is found, returns an InvalidParameterValue error.

Condition: You must specify either this or an EnvironmentName, or both. If you do not specify either, AWS Elastic Beanstalk returns MissingRequiredParameter error.

", + "SwapEnvironmentCNAMEsMessage$SourceEnvironmentId": "

The ID of the source environment.

Condition: You must specify at least the SourceEnvironmentID or the SourceEnvironmentName. You may also specify both. If you specify the SourceEnvironmentId, you must specify the DestinationEnvironmentId.

", + "SwapEnvironmentCNAMEsMessage$DestinationEnvironmentId": "

The ID of the destination environment.

Condition: You must specify at least the DestinationEnvironmentID or the DestinationEnvironmentName. You may also specify both. You must specify the SourceEnvironmentId with the DestinationEnvironmentId.

", + "TerminateEnvironmentMessage$EnvironmentId": "

The ID of the environment to terminate.

Condition: You must specify either this or an EnvironmentName, or both. If you do not specify either, AWS Elastic Beanstalk returns MissingRequiredParameter error.

", + "UpdateEnvironmentMessage$EnvironmentId": "

The ID of the environment to update.

If no environment with this ID exists, AWS Elastic Beanstalk returns an InvalidParameterValue error.

Condition: You must specify either this or an EnvironmentName, or both. If you do not specify either, AWS Elastic Beanstalk returns MissingRequiredParameter error.

" + } + }, + "EnvironmentIdList": { + "base": null, + "refs": { + "DescribeEnvironmentsMessage$EnvironmentIds": "

If specified, AWS Elastic Beanstalk restricts the returned descriptions to include only those that have the specified IDs.

" + } + }, + "EnvironmentInfoDescription": { + "base": "

The information retrieved from the Amazon EC2 instances.

", + "refs": { + "EnvironmentInfoDescriptionList$member": null + } + }, + "EnvironmentInfoDescriptionList": { + "base": null, + "refs": { + "RetrieveEnvironmentInfoResultMessage$EnvironmentInfo": "

The EnvironmentInfoDescription of the environment.

" + } + }, + "EnvironmentInfoType": { + "base": null, + "refs": { + "EnvironmentInfoDescription$InfoType": "

The type of information retrieved.

", + "RequestEnvironmentInfoMessage$InfoType": "

The type of information to request.

", + "RetrieveEnvironmentInfoMessage$InfoType": "

The type of information to retrieve.

" + } + }, + "EnvironmentName": { + "base": null, + "refs": { + "AbortEnvironmentUpdateMessage$EnvironmentName": "

This specifies the name of the environment with the in-progress update that you want to cancel.

", + "ConfigurationSettingsDescription$EnvironmentName": "

If not null, the name of the environment for this configuration set.

", + "CreateEnvironmentMessage$EnvironmentName": "

A unique name for the deployment environment. Used in the application URL.

Constraint: Must be from 4 to 23 characters in length. The name can contain only letters, numbers, and hyphens. It cannot start or end with a hyphen. This name must be unique in your account. If the specified name already exists, AWS Elastic Beanstalk returns an InvalidParameterValue error.

Default: If the CNAME parameter is not specified, the environment name becomes part of the CNAME, and therefore part of the visible URL for your application.

", + "DeleteEnvironmentConfigurationMessage$EnvironmentName": "

The name of the environment to delete the draft configuration from.

", + "DescribeConfigurationOptionsMessage$EnvironmentName": "

The name of the environment whose configuration options you want to describe.

", + "DescribeConfigurationSettingsMessage$EnvironmentName": "

The name of the environment to describe.

Condition: You must specify either this or a TemplateName, but not both. If you specify both, AWS Elastic Beanstalk returns an InvalidParameterCombination error. If you do not specify either, AWS Elastic Beanstalk returns MissingRequiredParameter error.

", + "DescribeEnvironmentResourcesMessage$EnvironmentName": "

The name of the environment to retrieve AWS resource usage data.

Condition: You must specify either this or an EnvironmentId, or both. If you do not specify either, AWS Elastic Beanstalk returns MissingRequiredParameter error.

", + "DescribeEventsMessage$EnvironmentName": "

If specified, AWS Elastic Beanstalk restricts the returned descriptions to those associated with this environment.

", + "EnvironmentDescription$EnvironmentName": "

The name of this environment.

", + "EnvironmentNamesList$member": null, + "EnvironmentResourceDescription$EnvironmentName": "

The name of the environment.

", + "EventDescription$EnvironmentName": "

The name of the environment associated with this event.

", + "RebuildEnvironmentMessage$EnvironmentName": "

The name of the environment to rebuild.

Condition: You must specify either this or an EnvironmentId, or both. If you do not specify either, AWS Elastic Beanstalk returns MissingRequiredParameter error.

", + "RequestEnvironmentInfoMessage$EnvironmentName": "

The name of the environment of the requested data.

If no such environment is found, RequestEnvironmentInfo returns an InvalidParameterValue error.

Condition: You must specify either this or an EnvironmentId, or both. If you do not specify either, AWS Elastic Beanstalk returns MissingRequiredParameter error.

", + "RestartAppServerMessage$EnvironmentName": "

The name of the environment to restart the server for.

Condition: You must specify either this or an EnvironmentId, or both. If you do not specify either, AWS Elastic Beanstalk returns MissingRequiredParameter error.

", + "RetrieveEnvironmentInfoMessage$EnvironmentName": "

The name of the data's environment.

If no such environment is found, returns an InvalidParameterValue error.

Condition: You must specify either this or an EnvironmentId, or both. If you do not specify either, AWS Elastic Beanstalk returns MissingRequiredParameter error.

", + "SwapEnvironmentCNAMEsMessage$SourceEnvironmentName": "

The name of the source environment.

Condition: You must specify at least the SourceEnvironmentID or the SourceEnvironmentName. You may also specify both. If you specify the SourceEnvironmentName, you must specify the DestinationEnvironmentName.

", + "SwapEnvironmentCNAMEsMessage$DestinationEnvironmentName": "

The name of the destination environment.

Condition: You must specify at least the DestinationEnvironmentID or the DestinationEnvironmentName. You may also specify both. You must specify the SourceEnvironmentName with the DestinationEnvironmentName.

", + "TerminateEnvironmentMessage$EnvironmentName": "

The name of the environment to terminate.

Condition: You must specify either this or an EnvironmentId, or both. If you do not specify either, AWS Elastic Beanstalk returns MissingRequiredParameter error.

", + "UpdateEnvironmentMessage$EnvironmentName": "

The name of the environment to update. If no environment with this name exists, AWS Elastic Beanstalk returns an InvalidParameterValue error.

Condition: You must specify either this or an EnvironmentId, or both. If you do not specify either, AWS Elastic Beanstalk returns MissingRequiredParameter error.

", + "ValidateConfigurationSettingsMessage$EnvironmentName": "

The name of the environment to validate the settings against.

Condition: You cannot specify both this and a configuration template name.

" + } + }, + "EnvironmentNamesList": { + "base": null, + "refs": { + "DescribeEnvironmentsMessage$EnvironmentNames": "

If specified, AWS Elastic Beanstalk restricts the returned descriptions to include only those that have the specified names.

" + } + }, + "EnvironmentResourceDescription": { + "base": "

Describes the AWS resources in use by this environment. This data is live.

", + "refs": { + "EnvironmentResourceDescriptionsMessage$EnvironmentResources": "

A list of EnvironmentResourceDescription.

" + } + }, + "EnvironmentResourceDescriptionsMessage": { + "base": "

Result message containing a list of environment resource descriptions.

", + "refs": { + } + }, + "EnvironmentResourcesDescription": { + "base": "

Describes the AWS resources in use by this environment. This data is not live data.

", + "refs": { + "EnvironmentDescription$Resources": "

The description of the AWS resources used by this environment.

" + } + }, + "EnvironmentStatus": { + "base": null, + "refs": { + "EnvironmentDescription$Status": "

The current operational status of the environment:

  • Launching: Environment is in the process of initial deployment.
  • Updating: Environment is in the process of updating its configuration settings or application version.
  • Ready: Environment is available to have an action performed on it, such as update or terminate.
  • Terminating: Environment is in the shut-down process.
  • Terminated: Environment is not running.
" + } + }, + "EnvironmentTier": { + "base": "

Describes the properties of an environment tier

", + "refs": { + "CreateEnvironmentMessage$Tier": "

This specifies the tier to use for creating this environment.

", + "EnvironmentDescription$Tier": "

Describes the current tier of this environment.

", + "UpdateEnvironmentMessage$Tier": "

This specifies the tier to use to update the environment.

Condition: At this time, if you change the tier version, name, or type, AWS Elastic Beanstalk returns InvalidParameterValue error.

" + } + }, + "EventDate": { + "base": null, + "refs": { + "EventDescription$EventDate": "

The date when the event occurred.

" + } + }, + "EventDescription": { + "base": "

Describes an event.

", + "refs": { + "EventDescriptionList$member": null + } + }, + "EventDescriptionList": { + "base": null, + "refs": { + "EventDescriptionsMessage$Events": "

A list of EventDescription.

" + } + }, + "EventDescriptionsMessage": { + "base": "

Result message wrapping a list of event descriptions.

", + "refs": { + } + }, + "EventMessage": { + "base": null, + "refs": { + "EventDescription$Message": "

The event message.

" + } + }, + "EventSeverity": { + "base": null, + "refs": { + "DescribeEventsMessage$Severity": "

If specified, limits the events returned from this call to include only those with the specified severity or higher.

", + "EventDescription$Severity": "

The severity level of this event.

" + } + }, + "FileTypeExtension": { + "base": null, + "refs": { + "SolutionStackFileTypeList$member": null + } + }, + "IncludeDeleted": { + "base": null, + "refs": { + "DescribeEnvironmentsMessage$IncludeDeleted": "

Indicates whether to include deleted environments:

true: Environments that have been deleted after IncludedDeletedBackTo are displayed.

false: Do not include deleted environments.

" + } + }, + "IncludeDeletedBackTo": { + "base": null, + "refs": { + "DescribeEnvironmentsMessage$IncludedDeletedBackTo": "

If specified when IncludeDeleted is set to true, then environments deleted after this date are displayed.

" + } + }, + "Instance": { + "base": "

The description of an Amazon EC2 instance.

", + "refs": { + "InstanceList$member": null + } + }, + "InstanceList": { + "base": null, + "refs": { + "EnvironmentResourceDescription$Instances": "

The Amazon EC2 instances used by this environment.

" + } + }, + "InsufficientPrivilegesException": { + "base": "

Unable to perform the specified operation because the user does not have enough privileges for one of more downstream aws services

", + "refs": { + } + }, + "Integer": { + "base": null, + "refs": { + "Listener$Port": "

The port that is used by the Listener.

" + } + }, + "LaunchConfiguration": { + "base": "

Describes an Auto Scaling launch configuration.

", + "refs": { + "LaunchConfigurationList$member": null + } + }, + "LaunchConfigurationList": { + "base": null, + "refs": { + "EnvironmentResourceDescription$LaunchConfigurations": "

The Auto Scaling launch configurations in use by this environment.

" + } + }, + "ListAvailableSolutionStacksResultMessage": { + "base": "

A list of available AWS Elastic Beanstalk solution stacks.

", + "refs": { + } + }, + "Listener": { + "base": "

Describes the properties of a Listener for the LoadBalancer.

", + "refs": { + "LoadBalancerListenersDescription$member": null + } + }, + "LoadBalancer": { + "base": "

Describes a LoadBalancer.

", + "refs": { + "LoadBalancerList$member": null + } + }, + "LoadBalancerDescription": { + "base": "

Describes the details of a LoadBalancer.

", + "refs": { + "EnvironmentResourcesDescription$LoadBalancer": "

Describes the LoadBalancer.

" + } + }, + "LoadBalancerList": { + "base": null, + "refs": { + "EnvironmentResourceDescription$LoadBalancers": "

The LoadBalancers in use by this environment.

" + } + }, + "LoadBalancerListenersDescription": { + "base": null, + "refs": { + "LoadBalancerDescription$Listeners": "

A list of Listeners used by the LoadBalancer.

" + } + }, + "MaxRecords": { + "base": null, + "refs": { + "DescribeEventsMessage$MaxRecords": "

Specifies the maximum number of events that can be returned, beginning with the most recent event.

" + } + }, + "Message": { + "base": null, + "refs": { + "EnvironmentInfoDescription$Message": "

The retrieved information.

" + } + }, + "OperationInProgressException": { + "base": "

Unable to perform the specified operation because another operation is already in progress affecting an an element in this activity.

", + "refs": { + } + }, + "OptionNamespace": { + "base": null, + "refs": { + "ConfigurationOptionDescription$Namespace": "

A unique namespace identifying the option's associated AWS resource.

", + "ConfigurationOptionSetting$Namespace": "

A unique namespace identifying the option's associated AWS resource.

", + "OptionSpecification$Namespace": "

A unique namespace identifying the option's associated AWS resource.

", + "ValidationMessage$Namespace": "

" + } + }, + "OptionRestrictionMaxLength": { + "base": null, + "refs": { + "ConfigurationOptionDescription$MaxLength": "

If specified, the configuration option must be a string value no longer than this value.

" + } + }, + "OptionRestrictionMaxValue": { + "base": null, + "refs": { + "ConfigurationOptionDescription$MaxValue": "

If specified, the configuration option must be a numeric value less than this value.

" + } + }, + "OptionRestrictionMinValue": { + "base": null, + "refs": { + "ConfigurationOptionDescription$MinValue": "

If specified, the configuration option must be a numeric value greater than this value.

" + } + }, + "OptionRestrictionRegex": { + "base": "

A regular expression representing a restriction on a string configuration option value.

", + "refs": { + "ConfigurationOptionDescription$Regex": "

If specified, the configuration option must be a string value that satisfies this regular expression.

" + } + }, + "OptionSpecification": { + "base": "

A specification identifying an individual configuration option.

", + "refs": { + "OptionsSpecifierList$member": null + } + }, + "OptionsSpecifierList": { + "base": null, + "refs": { + "CreateEnvironmentMessage$OptionsToRemove": "

A list of custom user-defined configuration options to remove from the configuration set for this new environment.

", + "DescribeConfigurationOptionsMessage$Options": "

If specified, restricts the descriptions to only the specified options.

", + "UpdateConfigurationTemplateMessage$OptionsToRemove": "

A list of configuration options to remove from the configuration set.

Constraint: You can remove only UserDefined configuration options.

", + "UpdateEnvironmentMessage$OptionsToRemove": "

A list of custom user-defined configuration options to remove from the configuration set for this environment.

" + } + }, + "Queue": { + "base": "

Describes a queue.

", + "refs": { + "QueueList$member": null + } + }, + "QueueList": { + "base": null, + "refs": { + "EnvironmentResourceDescription$Queues": "

The queues used by this environment.

" + } + }, + "RebuildEnvironmentMessage": { + "base": "

", + "refs": { + } + }, + "RegexLabel": { + "base": null, + "refs": { + "OptionRestrictionRegex$Label": "

A unique name representing this regular expression.

" + } + }, + "RegexPattern": { + "base": null, + "refs": { + "OptionRestrictionRegex$Pattern": "

The regular expression pattern that a string configuration option value with this restriction must match.

" + } + }, + "RequestEnvironmentInfoMessage": { + "base": "

This documentation target is not reported in the API reference.

", + "refs": { + } + }, + "RequestId": { + "base": null, + "refs": { + "DescribeEventsMessage$RequestId": "

If specified, AWS Elastic Beanstalk restricts the described events to include only those associated with this request ID.

", + "EventDescription$RequestId": "

The web service request ID for the activity of this event.

" + } + }, + "ResourceId": { + "base": null, + "refs": { + "AutoScalingGroup$Name": "

The name of the AutoScalingGroup .

", + "Instance$Id": "

The ID of the Amazon EC2 instance.

", + "LaunchConfiguration$Name": "

The name of the launch configuration.

", + "LoadBalancer$Name": "

The name of the LoadBalancer.

", + "Trigger$Name": "

The name of the trigger.

" + } + }, + "ResourceName": { + "base": null, + "refs": { + "ConfigurationOptionSetting$ResourceName": "

A unique resource name for a time-based scaling configuration option.

", + "OptionSpecification$ResourceName": "

A unique resource name for a time-based scaling configuration option.

" + } + }, + "RestartAppServerMessage": { + "base": "

", + "refs": { + } + }, + "RetrieveEnvironmentInfoMessage": { + "base": "

This documentation target is not reported in the API reference.

", + "refs": { + } + }, + "RetrieveEnvironmentInfoResultMessage": { + "base": "

Result message containing a description of the requested environment info.

", + "refs": { + } + }, + "S3Bucket": { + "base": null, + "refs": { + "CreateStorageLocationResultMessage$S3Bucket": "

The name of the Amazon S3 bucket created.

", + "S3Location$S3Bucket": "

The Amazon S3 bucket where the data is located.

" + } + }, + "S3Key": { + "base": null, + "refs": { + "S3Location$S3Key": "

The Amazon S3 key where the data is located.

" + } + }, + "S3Location": { + "base": "

A specification of a location in Amazon S3.

", + "refs": { + "ApplicationVersionDescription$SourceBundle": "

The location where the source bundle is located for this version.

", + "CreateApplicationVersionMessage$SourceBundle": "

The Amazon S3 bucket and key that identify the location of the source bundle for this version.

If data found at the Amazon S3 location exceeds the maximum allowed source bundle size, AWS Elastic Beanstalk returns an InvalidParameterValue error. The maximum size allowed is 512 MB.

Default: If not specified, AWS Elastic Beanstalk uses a sample application. If only partially specified (for example, a bucket is provided but not the key) or if no data is found at the Amazon S3 location, AWS Elastic Beanstalk returns an InvalidParameterCombination error.

" + } + }, + "S3LocationNotInServiceRegionException": { + "base": "

The specified S3 bucket does not belong to the S3 region in which the service is running.

", + "refs": { + } + }, + "S3SubscriptionRequiredException": { + "base": "

The caller does not have a subscription to Amazon S3.

", + "refs": { + } + }, + "SampleTimestamp": { + "base": null, + "refs": { + "EnvironmentInfoDescription$SampleTimestamp": "

The time stamp when this information was retrieved.

" + } + }, + "SolutionStackDescription": { + "base": "

Describes the solution stack.

", + "refs": { + "AvailableSolutionStackDetailsList$member": null + } + }, + "SolutionStackFileTypeList": { + "base": null, + "refs": { + "SolutionStackDescription$PermittedFileTypes": "

The permitted file types allowed for a solution stack.

" + } + }, + "SolutionStackName": { + "base": null, + "refs": { + "AvailableSolutionStackNamesList$member": null, + "ConfigurationOptionsDescription$SolutionStackName": "

The name of the solution stack these configuration options belong to.

", + "ConfigurationSettingsDescription$SolutionStackName": "

The name of the solution stack this configuration set uses.

", + "CreateConfigurationTemplateMessage$SolutionStackName": "

The name of the solution stack used by this configuration. The solution stack specifies the operating system, architecture, and application server for a configuration template. It determines the set of configuration options as well as the possible and default values.

Use ListAvailableSolutionStacks to obtain a list of available solution stacks.

A solution stack name or a source configuration parameter must be specified, otherwise AWS Elastic Beanstalk returns an InvalidParameterValue error.

If a solution stack name is not specified and the source configuration parameter is specified, AWS Elastic Beanstalk uses the same solution stack as the source configuration template.

", + "CreateEnvironmentMessage$SolutionStackName": "

This is an alternative to specifying a configuration name. If specified, AWS Elastic Beanstalk sets the configuration values to the default values associated with the specified solution stack.

Condition: You must specify either this or a TemplateName, but not both. If you specify both, AWS Elastic Beanstalk returns an InvalidParameterCombination error. If you do not specify either, AWS Elastic Beanstalk returns a MissingRequiredParameter error.

", + "DescribeConfigurationOptionsMessage$SolutionStackName": "

The name of the solution stack whose configuration options you want to describe.

", + "EnvironmentDescription$SolutionStackName": "

The name of the SolutionStack deployed with this environment.

", + "SolutionStackDescription$SolutionStackName": "

The name of the solution stack.

", + "UpdateEnvironmentMessage$SolutionStackName": "

This specifies the platform version that the environment will run after the environment is updated.

" + } + }, + "SourceBundleDeletionException": { + "base": "

Unable to delete the Amazon S3 source bundle associated with the application version, although the application version deleted successfully.

", + "refs": { + } + }, + "SourceConfiguration": { + "base": "

A specification for an environment configuration

", + "refs": { + "CreateConfigurationTemplateMessage$SourceConfiguration": "

If specified, AWS Elastic Beanstalk uses the configuration values from the specified configuration template to create a new configuration.

Values specified in the OptionSettings parameter of this call overrides any values obtained from the SourceConfiguration.

If no configuration template is found, returns an InvalidParameterValue error.

Constraint: If both the solution stack name parameter and the source configuration parameters are specified, the solution stack of the source configuration template must match the specified solution stack name or else AWS Elastic Beanstalk returns an InvalidParameterCombination error.

" + } + }, + "String": { + "base": null, + "refs": { + "EnvironmentTier$Name": "

The name of this environment tier.

", + "EnvironmentTier$Type": "

The type of this environment tier.

", + "EnvironmentTier$Version": "

The version of this environment tier.

", + "Listener$Protocol": "

The protocol that is used by the Listener.

", + "LoadBalancerDescription$LoadBalancerName": "

The name of the LoadBalancer.

", + "LoadBalancerDescription$Domain": "

The domain name of the LoadBalancer.

", + "Queue$Name": "

The name of the queue.

", + "Queue$URL": "

The URL of the queue.

" + } + }, + "SwapEnvironmentCNAMEsMessage": { + "base": "

Swaps the CNAMEs of two environments.

", + "refs": { + } + }, + "Tag": { + "base": "

Describes a tag applied to a resource in an environment.

", + "refs": { + "Tags$member": null + } + }, + "TagKey": { + "base": null, + "refs": { + "Tag$Key": "

The key of the tag.

" + } + }, + "TagValue": { + "base": null, + "refs": { + "Tag$Value": "

The value of the tag.

" + } + }, + "Tags": { + "base": null, + "refs": { + "CreateEnvironmentMessage$Tags": "

This specifies the tags applied to resources in the environment.

" + } + }, + "TerminateEnvForce": { + "base": null, + "refs": { + "DeleteApplicationMessage$TerminateEnvByForce": "

When set to true, running environments will be terminated before deleting the application.

" + } + }, + "TerminateEnvironmentMessage": { + "base": "

This documentation target is not reported in the API reference.

", + "refs": { + } + }, + "TerminateEnvironmentResources": { + "base": null, + "refs": { + "TerminateEnvironmentMessage$TerminateResources": "

Indicates whether the associated AWS resources should shut down when the environment is terminated:

true: (default) The user AWS resources (for example, the Auto Scaling group, LoadBalancer, etc.) are terminated along with the environment.

false: The environment is removed from the AWS Elastic Beanstalk but the AWS resources continue to operate.

  • true: The specified environment as well as the associated AWS resources, such as Auto Scaling group and LoadBalancer, are terminated.
  • false: AWS Elastic Beanstalk resource management is removed from the environment, but the AWS resources continue to operate.

For more information, see the AWS Elastic Beanstalk User Guide.

Default: true

Valid Values: true | false

" + } + }, + "TimeFilterEnd": { + "base": null, + "refs": { + "DescribeEventsMessage$EndTime": "

If specified, AWS Elastic Beanstalk restricts the returned descriptions to those that occur up to, but not including, the EndTime.

" + } + }, + "TimeFilterStart": { + "base": null, + "refs": { + "DescribeEventsMessage$StartTime": "

If specified, AWS Elastic Beanstalk restricts the returned descriptions to those that occur on or after this time.

" + } + }, + "Token": { + "base": null, + "refs": { + "DescribeEventsMessage$NextToken": "

Pagination token. If specified, the events return the next batch of results.

", + "EventDescriptionsMessage$NextToken": "

If returned, this indicates that there are more results to obtain. Use this token in the next DescribeEvents call to get the next batch of events.

" + } + }, + "TooManyApplicationVersionsException": { + "base": "

The caller has exceeded the limit on the number of application versions associated with their account.

", + "refs": { + } + }, + "TooManyApplicationsException": { + "base": "

The caller has exceeded the limit on the number of applications associated with their account.

", + "refs": { + } + }, + "TooManyBucketsException": { + "base": "

The web service attempted to create a bucket in an Amazon S3 account that already has 100 buckets.

", + "refs": { + } + }, + "TooManyConfigurationTemplatesException": { + "base": "

The caller has exceeded the limit on the number of configuration templates associated with their account.

", + "refs": { + } + }, + "TooManyEnvironmentsException": { + "base": "

The caller has exceeded the limit of allowed environments associated with the account.

", + "refs": { + } + }, + "Trigger": { + "base": "

Describes a trigger.

", + "refs": { + "TriggerList$member": null + } + }, + "TriggerList": { + "base": null, + "refs": { + "EnvironmentResourceDescription$Triggers": "

The AutoScaling triggers in use by this environment.

" + } + }, + "UpdateApplicationMessage": { + "base": "

This documentation target is not reported in the API reference.

", + "refs": { + } + }, + "UpdateApplicationVersionMessage": { + "base": "

", + "refs": { + } + }, + "UpdateConfigurationTemplateMessage": { + "base": "

The result message containing the options for the specified solution stack.

", + "refs": { + } + }, + "UpdateDate": { + "base": null, + "refs": { + "ApplicationDescription$DateUpdated": "

The date when the application was last modified.

", + "ApplicationVersionDescription$DateUpdated": "

The last modified date of the application version.

", + "ConfigurationSettingsDescription$DateUpdated": "

The date (in UTC time) when this configuration set was last modified.

", + "EnvironmentDescription$DateUpdated": "

The last modified date for this environment.

" + } + }, + "UpdateEnvironmentMessage": { + "base": "

This documentation target is not reported in the API reference.

", + "refs": { + } + }, + "UserDefinedOption": { + "base": null, + "refs": { + "ConfigurationOptionDescription$UserDefined": "

An indication of whether the user defined this configuration option:

true : This configuration option was defined by the user. It is a valid choice for specifying this as an Option to Remove when updating configuration settings.

false : This configuration was not defined by the user.

  • true : This configuration option was defined by the user. It is a valid choice for specifying if this as an Option to Remove when updating configuration settings.

  • false : This configuration was not defined by the user.

Constraint: You can remove only UserDefined options from a configuration.

Valid Values: true | false

" + } + }, + "ValidateConfigurationSettingsMessage": { + "base": "

A list of validation messages for a specified configuration template.

", + "refs": { + } + }, + "ValidationMessage": { + "base": "

An error or warning for a desired configuration option value.

", + "refs": { + "ValidationMessagesList$member": null + } + }, + "ValidationMessageString": { + "base": null, + "refs": { + "ValidationMessage$Message": "

A message describing the error or warning.

" + } + }, + "ValidationMessagesList": { + "base": null, + "refs": { + "ConfigurationSettingsValidationMessages$Messages": "

A list of ValidationMessage.

" + } + }, + "ValidationSeverity": { + "base": null, + "refs": { + "ValidationMessage$Severity": "

An indication of the severity of this message:

error: This message indicates that this is not a valid setting for an option.

warning: This message is providing information you should take into account.

  • error: This message indicates that this is not a valid setting for an option.
  • warning: This message is providing information you should take into account.
" + } + }, + "VersionLabel": { + "base": null, + "refs": { + "ApplicationVersionDescription$VersionLabel": "

A label uniquely identifying the version for the associated application.

", + "CreateApplicationVersionMessage$VersionLabel": "

A label identifying this version.

Constraint: Must be unique per application. If an application version already exists with this label for the specified application, AWS Elastic Beanstalk returns an InvalidParameterValue error.

", + "CreateEnvironmentMessage$VersionLabel": "

The name of the application version to deploy.

If the specified application has no associated application versions, AWS Elastic Beanstalk UpdateEnvironment returns an InvalidParameterValue error.

Default: If not specified, AWS Elastic Beanstalk attempts to launch the sample application in the container.

", + "DeleteApplicationVersionMessage$VersionLabel": "

The label of the version to delete.

", + "DescribeEnvironmentsMessage$VersionLabel": "

If specified, AWS Elastic Beanstalk restricts the returned descriptions to include only those that are associated with this application version.

", + "DescribeEventsMessage$VersionLabel": "

If specified, AWS Elastic Beanstalk restricts the returned descriptions to those associated with this application version.

", + "EnvironmentDescription$VersionLabel": "

The application version deployed in this environment.

", + "EventDescription$VersionLabel": "

The release label for the application version associated with this event.

", + "UpdateApplicationVersionMessage$VersionLabel": "

The name of the version to update.

If no application version is found with this label, UpdateApplication returns an InvalidParameterValue error.

", + "UpdateEnvironmentMessage$VersionLabel": "

If this parameter is specified, AWS Elastic Beanstalk deploys the named application version to the environment. If no such application version is found, returns an InvalidParameterValue error.

", + "VersionLabelsList$member": null + } + }, + "VersionLabelsList": { + "base": null, + "refs": { + "ApplicationDescription$Versions": "

The names of the versions for this application.

", + "DescribeApplicationVersionsMessage$VersionLabels": "

If specified, restricts the returned descriptions to only include ones that have the specified version labels.

" + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/elasticbeanstalk/2010-12-01/paginators-1.json b/lib/aws-sdk/Aws/data/elasticbeanstalk/2010-12-01/paginators-1.json new file mode 100644 index 0000000..383ce8d --- /dev/null +++ b/lib/aws-sdk/Aws/data/elasticbeanstalk/2010-12-01/paginators-1.json @@ -0,0 +1,25 @@ +{ + "pagination": { + "DescribeApplicationVersions": { + "result_key": "ApplicationVersions" + }, + "DescribeApplications": { + "result_key": "Applications" + }, + "DescribeConfigurationOptions": { + "result_key": "Options" + }, + "DescribeEnvironments": { + "result_key": "Environments" + }, + "DescribeEvents": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxRecords", + "result_key": "Events" + }, + "ListAvailableSolutionStacks": { + "result_key": "SolutionStacks" + } + } +} diff --git a/lib/aws-sdk/Aws/data/elasticfilesystem/2015-02-01/api-2.json b/lib/aws-sdk/Aws/data/elasticfilesystem/2015-02-01/api-2.json new file mode 100644 index 0000000..e5728b0 --- /dev/null +++ b/lib/aws-sdk/Aws/data/elasticfilesystem/2015-02-01/api-2.json @@ -0,0 +1,917 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2015-02-01", + "endpointPrefix":"elasticfilesystem", + "serviceAbbreviation":"EFS", + "serviceFullName":"Amazon Elastic File System", + "signatureVersion":"v4", + "protocol":"rest-json" + }, + "operations":{ + "CreateFileSystem":{ + "name":"CreateFileSystem", + "http":{ + "method":"POST", + "requestUri":"/2015-02-01/file-systems", + "responseCode":201 + }, + "input":{"shape":"CreateFileSystemRequest"}, + "output":{"shape":"FileSystemDescription"}, + "errors":[ + { + "shape":"BadRequest", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"FileSystemAlreadyExists", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"FileSystemLimitExceeded", + "error":{"httpStatusCode":403}, + "exception":true + } + ] + }, + "CreateMountTarget":{ + "name":"CreateMountTarget", + "http":{ + "method":"POST", + "requestUri":"/2015-02-01/mount-targets", + "responseCode":200 + }, + "input":{"shape":"CreateMountTargetRequest"}, + "output":{"shape":"MountTargetDescription"}, + "errors":[ + { + "shape":"BadRequest", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"FileSystemNotFound", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"IncorrectFileSystemLifeCycleState", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"MountTargetConflict", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"SubnetNotFound", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"NoFreeAddressesInSubnet", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"IpAddressInUse", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"NetworkInterfaceLimitExceeded", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"SecurityGroupLimitExceeded", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"SecurityGroupNotFound", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"UnsupportedAvailabilityZone", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "CreateTags":{ + "name":"CreateTags", + "http":{ + "method":"POST", + "requestUri":"/2015-02-01/create-tags/{FileSystemId}", + "responseCode":204 + }, + "input":{"shape":"CreateTagsRequest"}, + "errors":[ + { + "shape":"BadRequest", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"FileSystemNotFound", + "error":{"httpStatusCode":404}, + "exception":true + } + ] + }, + "DeleteFileSystem":{ + "name":"DeleteFileSystem", + "http":{ + "method":"DELETE", + "requestUri":"/2015-02-01/file-systems/{FileSystemId}", + "responseCode":204 + }, + "input":{"shape":"DeleteFileSystemRequest"}, + "errors":[ + { + "shape":"BadRequest", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"FileSystemNotFound", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"FileSystemInUse", + "error":{"httpStatusCode":409}, + "exception":true + } + ] + }, + "DeleteMountTarget":{ + "name":"DeleteMountTarget", + "http":{ + "method":"DELETE", + "requestUri":"/2015-02-01/mount-targets/{MountTargetId}", + "responseCode":204 + }, + "input":{"shape":"DeleteMountTargetRequest"}, + "errors":[ + { + "shape":"BadRequest", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"DependencyTimeout", + "error":{"httpStatusCode":504}, + "exception":true + }, + { + "shape":"MountTargetNotFound", + "error":{"httpStatusCode":404}, + "exception":true + } + ] + }, + "DeleteTags":{ + "name":"DeleteTags", + "http":{ + "method":"POST", + "requestUri":"/2015-02-01/delete-tags/{FileSystemId}", + "responseCode":204 + }, + "input":{"shape":"DeleteTagsRequest"}, + "errors":[ + { + "shape":"BadRequest", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"FileSystemNotFound", + "error":{"httpStatusCode":404}, + "exception":true + } + ] + }, + "DescribeFileSystems":{ + "name":"DescribeFileSystems", + "http":{ + "method":"GET", + "requestUri":"/2015-02-01/file-systems", + "responseCode":200 + }, + "input":{"shape":"DescribeFileSystemsRequest"}, + "output":{"shape":"DescribeFileSystemsResponse"}, + "errors":[ + { + "shape":"BadRequest", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"FileSystemNotFound", + "error":{"httpStatusCode":404}, + "exception":true + } + ] + }, + "DescribeMountTargetSecurityGroups":{ + "name":"DescribeMountTargetSecurityGroups", + "http":{ + "method":"GET", + "requestUri":"/2015-02-01/mount-targets/{MountTargetId}/security-groups", + "responseCode":200 + }, + "input":{"shape":"DescribeMountTargetSecurityGroupsRequest"}, + "output":{"shape":"DescribeMountTargetSecurityGroupsResponse"}, + "errors":[ + { + "shape":"BadRequest", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"MountTargetNotFound", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"IncorrectMountTargetState", + "error":{"httpStatusCode":409}, + "exception":true + } + ] + }, + "DescribeMountTargets":{ + "name":"DescribeMountTargets", + "http":{ + "method":"GET", + "requestUri":"/2015-02-01/mount-targets", + "responseCode":200 + }, + "input":{"shape":"DescribeMountTargetsRequest"}, + "output":{"shape":"DescribeMountTargetsResponse"}, + "errors":[ + { + "shape":"BadRequest", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"FileSystemNotFound", + "error":{"httpStatusCode":404}, + "exception":true + } + ] + }, + "DescribeTags":{ + "name":"DescribeTags", + "http":{ + "method":"GET", + "requestUri":"/2015-02-01/tags/{FileSystemId}/", + "responseCode":200 + }, + "input":{"shape":"DescribeTagsRequest"}, + "output":{"shape":"DescribeTagsResponse"}, + "errors":[ + { + "shape":"BadRequest", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"FileSystemNotFound", + "error":{"httpStatusCode":404}, + "exception":true + } + ] + }, + "ModifyMountTargetSecurityGroups":{ + "name":"ModifyMountTargetSecurityGroups", + "http":{ + "method":"PUT", + "requestUri":"/2015-02-01/mount-targets/{MountTargetId}/security-groups", + "responseCode":204 + }, + "input":{"shape":"ModifyMountTargetSecurityGroupsRequest"}, + "errors":[ + { + "shape":"BadRequest", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"MountTargetNotFound", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"IncorrectMountTargetState", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"SecurityGroupLimitExceeded", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"SecurityGroupNotFound", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + } + }, + "shapes":{ + "AwsAccountId":{ + "type":"string", + "pattern":"[0-9]{12}" + }, + "BadRequest":{ + "type":"structure", + "required":["ErrorCode"], + "members":{ + "ErrorCode":{"shape":"ErrorCode"}, + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "CreateFileSystemRequest":{ + "type":"structure", + "required":["CreationToken"], + "members":{ + "CreationToken":{"shape":"CreationToken"} + } + }, + "CreateMountTargetRequest":{ + "type":"structure", + "required":[ + "FileSystemId", + "SubnetId" + ], + "members":{ + "FileSystemId":{"shape":"FileSystemId"}, + "SubnetId":{"shape":"SubnetId"}, + "IpAddress":{"shape":"IpAddress"}, + "SecurityGroups":{"shape":"SecurityGroups"} + } + }, + "CreateTagsRequest":{ + "type":"structure", + "required":[ + "FileSystemId", + "Tags" + ], + "members":{ + "FileSystemId":{ + "shape":"FileSystemId", + "location":"uri", + "locationName":"FileSystemId" + }, + "Tags":{"shape":"Tags"} + } + }, + "CreationToken":{ + "type":"string", + "min":1, + "max":64 + }, + "DeleteFileSystemRequest":{ + "type":"structure", + "required":["FileSystemId"], + "members":{ + "FileSystemId":{ + "shape":"FileSystemId", + "location":"uri", + "locationName":"FileSystemId" + } + } + }, + "DeleteMountTargetRequest":{ + "type":"structure", + "required":["MountTargetId"], + "members":{ + "MountTargetId":{ + "shape":"MountTargetId", + "location":"uri", + "locationName":"MountTargetId" + } + } + }, + "DeleteTagsRequest":{ + "type":"structure", + "required":[ + "FileSystemId", + "TagKeys" + ], + "members":{ + "FileSystemId":{ + "shape":"FileSystemId", + "location":"uri", + "locationName":"FileSystemId" + }, + "TagKeys":{"shape":"TagKeys"} + } + }, + "DependencyTimeout":{ + "type":"structure", + "required":["ErrorCode"], + "members":{ + "ErrorCode":{"shape":"ErrorCode"}, + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":504}, + "exception":true + }, + "DescribeFileSystemsRequest":{ + "type":"structure", + "members":{ + "MaxItems":{ + "shape":"MaxItems", + "location":"querystring", + "locationName":"MaxItems" + }, + "Marker":{ + "shape":"Marker", + "location":"querystring", + "locationName":"Marker" + }, + "CreationToken":{ + "shape":"CreationToken", + "location":"querystring", + "locationName":"CreationToken" + }, + "FileSystemId":{ + "shape":"FileSystemId", + "location":"querystring", + "locationName":"FileSystemId" + } + } + }, + "DescribeFileSystemsResponse":{ + "type":"structure", + "members":{ + "Marker":{"shape":"Marker"}, + "FileSystems":{"shape":"FileSystemDescriptions"}, + "NextMarker":{"shape":"Marker"} + } + }, + "DescribeMountTargetSecurityGroupsRequest":{ + "type":"structure", + "required":["MountTargetId"], + "members":{ + "MountTargetId":{ + "shape":"MountTargetId", + "location":"uri", + "locationName":"MountTargetId" + } + } + }, + "DescribeMountTargetSecurityGroupsResponse":{ + "type":"structure", + "required":["SecurityGroups"], + "members":{ + "SecurityGroups":{"shape":"SecurityGroups"} + } + }, + "DescribeMountTargetsRequest":{ + "type":"structure", + "required":["FileSystemId"], + "members":{ + "MaxItems":{ + "shape":"MaxItems", + "location":"querystring", + "locationName":"MaxItems" + }, + "Marker":{ + "shape":"Marker", + "location":"querystring", + "locationName":"Marker" + }, + "FileSystemId":{ + "shape":"FileSystemId", + "location":"querystring", + "locationName":"FileSystemId" + } + } + }, + "DescribeMountTargetsResponse":{ + "type":"structure", + "members":{ + "Marker":{"shape":"Marker"}, + "MountTargets":{"shape":"MountTargetDescriptions"}, + "NextMarker":{"shape":"Marker"} + } + }, + "DescribeTagsRequest":{ + "type":"structure", + "required":["FileSystemId"], + "members":{ + "MaxItems":{ + "shape":"MaxItems", + "location":"querystring", + "locationName":"MaxItems" + }, + "Marker":{ + "shape":"Marker", + "location":"querystring", + "locationName":"Marker" + }, + "FileSystemId":{ + "shape":"FileSystemId", + "location":"uri", + "locationName":"FileSystemId" + } + } + }, + "DescribeTagsResponse":{ + "type":"structure", + "required":["Tags"], + "members":{ + "Marker":{"shape":"Marker"}, + "Tags":{"shape":"Tags"}, + "NextMarker":{"shape":"Marker"} + } + }, + "ErrorCode":{ + "type":"string", + "min":1 + }, + "ErrorMessage":{"type":"string"}, + "FileSystemAlreadyExists":{ + "type":"structure", + "required":[ + "ErrorCode", + "FileSystemId" + ], + "members":{ + "ErrorCode":{"shape":"ErrorCode"}, + "Message":{"shape":"ErrorMessage"}, + "FileSystemId":{"shape":"FileSystemId"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "FileSystemDescription":{ + "type":"structure", + "required":[ + "OwnerId", + "CreationToken", + "FileSystemId", + "CreationTime", + "LifeCycleState", + "NumberOfMountTargets", + "SizeInBytes" + ], + "members":{ + "OwnerId":{"shape":"AwsAccountId"}, + "CreationToken":{"shape":"CreationToken"}, + "FileSystemId":{"shape":"FileSystemId"}, + "CreationTime":{"shape":"Timestamp"}, + "LifeCycleState":{"shape":"LifeCycleState"}, + "Name":{"shape":"TagValue"}, + "NumberOfMountTargets":{"shape":"MountTargetCount"}, + "SizeInBytes":{"shape":"FileSystemSize"} + } + }, + "FileSystemDescriptions":{ + "type":"list", + "member":{"shape":"FileSystemDescription"} + }, + "FileSystemId":{ + "type":"string", + "pattern":"fs-[0-9a-f]{8}" + }, + "FileSystemInUse":{ + "type":"structure", + "required":["ErrorCode"], + "members":{ + "ErrorCode":{"shape":"ErrorCode"}, + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "FileSystemLimitExceeded":{ + "type":"structure", + "required":["ErrorCode"], + "members":{ + "ErrorCode":{"shape":"ErrorCode"}, + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":403}, + "exception":true + }, + "FileSystemNotFound":{ + "type":"structure", + "required":["ErrorCode"], + "members":{ + "ErrorCode":{"shape":"ErrorCode"}, + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "FileSystemSize":{ + "type":"structure", + "required":["Value"], + "members":{ + "Value":{"shape":"FileSystemSizeValue"}, + "Timestamp":{"shape":"Timestamp"} + } + }, + "FileSystemSizeValue":{ + "type":"long", + "min":0 + }, + "IncorrectFileSystemLifeCycleState":{ + "type":"structure", + "required":["ErrorCode"], + "members":{ + "ErrorCode":{"shape":"ErrorCode"}, + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "IncorrectMountTargetState":{ + "type":"structure", + "required":["ErrorCode"], + "members":{ + "ErrorCode":{"shape":"ErrorCode"}, + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "InternalServerError":{ + "type":"structure", + "required":["ErrorCode"], + "members":{ + "ErrorCode":{"shape":"ErrorCode"}, + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":500}, + "exception":true + }, + "IpAddress":{ + "type":"string", + "pattern":"[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}" + }, + "IpAddressInUse":{ + "type":"structure", + "required":["ErrorCode"], + "members":{ + "ErrorCode":{"shape":"ErrorCode"}, + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "LifeCycleState":{ + "type":"string", + "enum":[ + "creating", + "available", + "deleting", + "deleted" + ] + }, + "Marker":{"type":"string"}, + "MaxItems":{ + "type":"integer", + "min":1 + }, + "ModifyMountTargetSecurityGroupsRequest":{ + "type":"structure", + "required":["MountTargetId"], + "members":{ + "MountTargetId":{ + "shape":"MountTargetId", + "location":"uri", + "locationName":"MountTargetId" + }, + "SecurityGroups":{"shape":"SecurityGroups"} + } + }, + "MountTargetConflict":{ + "type":"structure", + "required":["ErrorCode"], + "members":{ + "ErrorCode":{"shape":"ErrorCode"}, + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "MountTargetCount":{ + "type":"integer", + "min":0 + }, + "MountTargetDescription":{ + "type":"structure", + "required":[ + "MountTargetId", + "FileSystemId", + "SubnetId", + "LifeCycleState" + ], + "members":{ + "OwnerId":{"shape":"AwsAccountId"}, + "MountTargetId":{"shape":"MountTargetId"}, + "FileSystemId":{"shape":"FileSystemId"}, + "SubnetId":{"shape":"SubnetId"}, + "LifeCycleState":{"shape":"LifeCycleState"}, + "IpAddress":{"shape":"IpAddress"}, + "NetworkInterfaceId":{"shape":"NetworkInterfaceId"} + } + }, + "MountTargetDescriptions":{ + "type":"list", + "member":{"shape":"MountTargetDescription"} + }, + "MountTargetId":{ + "type":"string", + "pattern":"fsmt-[0-9a-f]{8}" + }, + "MountTargetNotFound":{ + "type":"structure", + "required":["ErrorCode"], + "members":{ + "ErrorCode":{"shape":"ErrorCode"}, + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "NetworkInterfaceId":{ + "type":"string", + "pattern":"eni-[0-9a-f]{8}" + }, + "NetworkInterfaceLimitExceeded":{ + "type":"structure", + "required":["ErrorCode"], + "members":{ + "ErrorCode":{"shape":"ErrorCode"}, + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "NoFreeAddressesInSubnet":{ + "type":"structure", + "required":["ErrorCode"], + "members":{ + "ErrorCode":{"shape":"ErrorCode"}, + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "SecurityGroup":{ + "type":"string", + "pattern":"sg-[0-9a-f]{8}" + }, + "SecurityGroupLimitExceeded":{ + "type":"structure", + "required":["ErrorCode"], + "members":{ + "ErrorCode":{"shape":"ErrorCode"}, + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "SecurityGroupNotFound":{ + "type":"structure", + "required":["ErrorCode"], + "members":{ + "ErrorCode":{"shape":"ErrorCode"}, + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "SecurityGroups":{ + "type":"list", + "member":{"shape":"SecurityGroup"}, + "max":5 + }, + "SubnetId":{ + "type":"string", + "pattern":"subnet-[0-9a-f]{8}" + }, + "SubnetNotFound":{ + "type":"structure", + "required":["ErrorCode"], + "members":{ + "ErrorCode":{"shape":"ErrorCode"}, + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "Tag":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{"shape":"TagKey"}, + "Value":{"shape":"TagValue"} + } + }, + "TagKey":{ + "type":"string", + "min":1, + "max":128, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-%@]*)$" + }, + "TagKeys":{ + "type":"list", + "member":{"shape":"TagKey"} + }, + "TagValue":{ + "type":"string", + "max":256, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-%@]*)$" + }, + "Tags":{ + "type":"list", + "member":{"shape":"Tag"} + }, + "Timestamp":{"type":"timestamp"}, + "UnsupportedAvailabilityZone":{ + "type":"structure", + "required":["ErrorCode"], + "members":{ + "ErrorCode":{"shape":"ErrorCode"}, + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + } + } +} diff --git a/lib/aws-sdk/Aws/data/elasticfilesystem/2015-02-01/docs-2.json b/lib/aws-sdk/Aws/data/elasticfilesystem/2015-02-01/docs-2.json new file mode 100644 index 0000000..2028dc5 --- /dev/null +++ b/lib/aws-sdk/Aws/data/elasticfilesystem/2015-02-01/docs-2.json @@ -0,0 +1,414 @@ +{ + "version": "2.0", + "operations": { + "CreateFileSystem": "

Creates a new, empty file system. The operation requires a creation token in the request that Amazon EFS uses to ensure idempotent creation (calling the operation with same creation token has no effect). If a file system does not currently exist that is owned by the caller's AWS account with the specified creation token, this operation does the following:

  • Creates a new, empty file system. The file system will have an Amazon EFS assigned ID, and an initial lifecycle state \"creating\".
  • Returns with the description of the created file system.

Otherwise, this operation returns a FileSystemAlreadyExists error with the ID of the existing file system.

For basic use cases, you can use a randomly generated UUID for the creation token.

The idempotent operation allows you to retry a CreateFileSystem call without risk of creating an extra file system. This can happen when an initial call fails in a way that leaves it uncertain whether or not a file system was actually created. An example might be that a transport level timeout occurred or your connection was reset. As long as you use the same creation token, if the initial call had succeeded in creating a file system, the client can learn of its existence from the FileSystemAlreadyExists error.

The CreateFileSystem call returns while the file system's lifecycle state is still \"creating\". You can check the file system creation status by calling the DescribeFileSystems API, which among other things returns the file system state.

After the file system is fully created, Amazon EFS sets its lifecycle state to \"available\", at which point you can create one or more mount targets for the file system (CreateMountTarget) in your VPC. You mount your Amazon EFS file system on an EC2 instances in your VPC via the mount target. For more information, see Amazon EFS: How it Works

This operation requires permission for the elasticfilesystem:CreateFileSystem action.

", + "CreateMountTarget": "

Creates a mount target for a file system. You can then mount the file system on EC2 instances via the mount target.

You can create one mount target in each Availability Zone in your VPC. All EC2 instances in a VPC within a given Availability Zone share a single mount target for a given file system. If you have multiple subnets in an Availability Zone, you create a mount target in one of the subnets. EC2 instances do not need to be in the same subnet as the mount target in order to access their file system. For more information, see Amazon EFS: How it Works.

In the request, you also specify a file system ID for which you are creating the mount target and the file system's lifecycle state must be \"available\" (see DescribeFileSystems).

In the request, you also provide a subnet ID, which serves several purposes:

  • It determines the VPC in which Amazon EFS creates the mount target.
  • It determines the Availability Zone in which Amazon EFS creates the mount target.
  • It determines the IP address range from which Amazon EFS selects the IP address of the mount target if you don't specify an IP address in the request.

After creating the mount target, Amazon EFS returns a response that includes, a MountTargetId and an IpAddress. You use this IP address when mounting the file system in an EC2 instance. You can also use the mount target's DNS name when mounting the file system. The EC2 instance on which you mount the file system via the mount target can resolve the mount target's DNS name to its IP address. For more information, see How it Works: Implementation Overview

Note that you can create mount targets for a file system in only one VPC, and there can be only one mount target per Availability Zone. That is, if the file system already has one or more mount targets created for it, the request to add another mount target must meet the following requirements:

  • The subnet specified in the request must belong to the same VPC as the subnets of the existing mount targets.

  • The subnet specified in the request must not be in the same Availability Zone as any of the subnets of the existing mount targets.

If the request satisfies the requirements, Amazon EFS does the following:

  • Creates a new mount target in the specified subnet.
  • Also creates a new network interface in the subnet as follows:
    • If the request provides an IpAddress, Amazon EFS assigns that IP address to the network interface. Otherwise, Amazon EFS assigns a free address in the subnet (in the same way that the Amazon EC2 CreateNetworkInterface call does when a request does not specify a primary private IP address).
    • If the request provides SecurityGroups, this network interface is associated with those security groups. Otherwise, it belongs to the default security group for the subnet's VPC.
    • Assigns the description \"Mount target fsmt-id for file system fs-id\" where fsmt-id is the mount target ID, and fs-id is the FileSystemId.
    • Sets the requesterManaged property of the network interface to \"true\", and the requesterId value to \"EFS\".

    Each Amazon EFS mount target has one corresponding requestor-managed EC2 network interface. After the network interface is created, Amazon EFS sets the NetworkInterfaceId field in the mount target's description to the network interface ID, and the IpAddress field to its address. If network interface creation fails, the entire CreateMountTarget operation fails.

The CreateMountTarget call returns only after creating the network interface, but while the mount target state is still \"creating\". You can check the mount target creation status by calling the DescribeFileSystems API, which among other things returns the mount target state.

We recommend you create a mount target in each of the Availability Zones. There are cost considerations for using a file system in an Availability Zone through a mount target created in another Availability Zone. For more information, go to Amazon EFS product detail page. In addition, by always using a mount target local to the instance's Availability Zone, you eliminate a partial failure scenario; if the Availablity Zone in which your mount target is created goes down, then you won't be able to access your file system through that mount target.

This operation requires permission for the following action on the file system:

  • elasticfilesystem:CreateMountTarget

This operation also requires permission for the following Amazon EC2 actions:

  • ec2:DescribeSubnets
  • ec2:DescribeNetworkInterfaces
  • ec2:CreateNetworkInterface
", + "CreateTags": "

Creates or overwrites tags associated with a file system. Each tag is a key-value pair. If a tag key specified in the request already exists on the file system, this operation overwrites its value with the value provided in the request. If you add the \"Name\" tag to your file system, Amazon EFS returns it in the response to the DescribeFileSystems API.

This operation requires permission for the elasticfilesystem:CreateTags action.

", + "DeleteFileSystem": "

Deletes a file system, permanently severing access to its contents. Upon return, the file system no longer exists and you will not be able to access any contents of the deleted file system.

You cannot delete a file system that is in use. That is, if the file system has any mount targets, you must first delete them. For more information, see DescribeMountTargets and DeleteMountTarget.

The DeleteFileSystem call returns while the file system state is still \"deleting\". You can check the file system deletion status by calling the DescribeFileSystems API, which returns a list of file systems in your account. If you pass file system ID or creation token for the deleted file system, the DescribeFileSystems will return a 404 \"FileSystemNotFound\" error.

This operation requires permission for the elasticfilesystem:DeleteFileSystem action.

", + "DeleteMountTarget": "

Deletes the specified mount target.

This operation forcibly breaks any mounts of the file system via the mount target being deleted, which might disrupt instances or applications using those mounts. To avoid applications getting cut off abruptly, you might consider unmounting any mounts of the mount target, if feasible. The operation also deletes the associated network interface. Uncommitted writes may be lost, but breaking a mount target using this operation does not corrupt the file system itself. The file system you created remains. You can mount an EC2 instance in your VPC using another mount target.

This operation requires permission for the following action on the file system:

  • elasticfilesystem:DeleteMountTarget
The DeleteMountTarget call returns while the mount target state is still \"deleting\". You can check the mount target deletion by calling the DescribeMountTargets API, which returns a list of mount target descriptions for the given file system.

The operation also requires permission for the following Amazon EC2 action on the mount target's network interface:

  • ec2:DeleteNetworkInterface
", + "DeleteTags": "

Deletes the specified tags from a file system. If the DeleteTags request includes a tag key that does not exist, Amazon EFS ignores it; it is not an error. For more information about tags and related restrictions, go to Tag Restrictions in the AWS Billing and Cost Management User Guide.

This operation requires permission for the elasticfilesystem:DeleteTags action.

", + "DescribeFileSystems": "

Returns the description of a specific Amazon EFS file system if either the file system CreationToken or the FileSystemId is provided; otherwise, returns descriptions of all file systems owned by the caller's AWS account in the AWS region of the endpoint that you're calling.

When retrieving all file system descriptions, you can optionally specify the MaxItems parameter to limit the number of descriptions in a response. If more file system descriptions remain, Amazon EFS returns a NextMarker, an opaque token, in the response. In this case, you should send a subsequent request with the Marker request parameter set to the value of NextMarker.

So to retrieve a list of your file system descriptions, the expected usage of this API is an iterative process of first calling DescribeFileSystems without the Marker and then continuing to call it with the Marker parameter set to the value of the NextMarker from the previous response until the response has no NextMarker.

Note that the implementation may return fewer than MaxItems file system descriptions while still including a NextMarker value.

The order of file systems returned in the response of one DescribeFileSystems call, and the order of file systems returned across the responses of a multi-call iteration, is unspecified.

This operation requires permission for the elasticfilesystem:DescribeFileSystems action.

", + "DescribeMountTargetSecurityGroups": "

Returns the security groups currently in effect for a mount target. This operation requires that the network interface of the mount target has been created and the life cycle state of the mount target is not \"deleted\".

This operation requires permissions for the following actions:

  • elasticfilesystem:DescribeMountTargetSecurityGroups action on the mount target's file system.
  • ec2:DescribeNetworkInterfaceAttribute action on the mount target's network interface.
", + "DescribeMountTargets": "

Returns the descriptions of the current mount targets for a file system. The order of mount targets returned in the response is unspecified.

This operation requires permission for the elasticfilesystem:DescribeMountTargets action on the file system FileSystemId.

", + "DescribeTags": "

Returns the tags associated with a file system. The order of tags returned in the response of one DescribeTags call, and the order of tags returned across the responses of a multi-call iteration (when using pagination), is unspecified.

This operation requires permission for the elasticfilesystem:DescribeTags action.

", + "ModifyMountTargetSecurityGroups": "

Modifies the set of security groups in effect for a mount target.

When you create a mount target, Amazon EFS also creates a new network interface (see CreateMountTarget). This operation replaces the security groups in effect for the network interface associated with a mount target, with the SecurityGroups provided in the request. This operation requires that the network interface of the mount target has been created and the life cycle state of the mount target is not \"deleted\".

The operation requires permissions for the following actions:

  • elasticfilesystem:ModifyMountTargetSecurityGroups action on the mount target's file system.
  • ec2:ModifyNetworkInterfaceAttribute action on the mount target's network interface.
" + }, + "service": "Amazon Elastic File System", + "shapes": { + "AwsAccountId": { + "base": null, + "refs": { + "FileSystemDescription$OwnerId": "

The AWS account that created the file system. If the file system was created by an IAM user, the parent account to which the user belongs is the owner.

", + "MountTargetDescription$OwnerId": "

The AWS account ID that owns the resource.

" + } + }, + "BadRequest": { + "base": "

Returned if the request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

", + "refs": { + } + }, + "CreateFileSystemRequest": { + "base": null, + "refs": { + } + }, + "CreateMountTargetRequest": { + "base": null, + "refs": { + } + }, + "CreateTagsRequest": { + "base": null, + "refs": { + } + }, + "CreationToken": { + "base": null, + "refs": { + "CreateFileSystemRequest$CreationToken": "

String of up to 64 ASCII characters. Amazon EFS uses this to ensure idempotent creation.

", + "DescribeFileSystemsRequest$CreationToken": "

Optional string. Restricts the list to the file system with this creation token (you specify a creation token at the time of creating an Amazon EFS file system).

", + "FileSystemDescription$CreationToken": "

Opaque string specified in the request.

" + } + }, + "DeleteFileSystemRequest": { + "base": null, + "refs": { + } + }, + "DeleteMountTargetRequest": { + "base": null, + "refs": { + } + }, + "DeleteTagsRequest": { + "base": null, + "refs": { + } + }, + "DependencyTimeout": { + "base": "

The service timed out trying to fulfill the request, and the client should try the call again.

", + "refs": { + } + }, + "DescribeFileSystemsRequest": { + "base": null, + "refs": { + } + }, + "DescribeFileSystemsResponse": { + "base": null, + "refs": { + } + }, + "DescribeMountTargetSecurityGroupsRequest": { + "base": null, + "refs": { + } + }, + "DescribeMountTargetSecurityGroupsResponse": { + "base": null, + "refs": { + } + }, + "DescribeMountTargetsRequest": { + "base": null, + "refs": { + } + }, + "DescribeMountTargetsResponse": { + "base": null, + "refs": { + } + }, + "DescribeTagsRequest": { + "base": null, + "refs": { + } + }, + "DescribeTagsResponse": { + "base": null, + "refs": { + } + }, + "ErrorCode": { + "base": null, + "refs": { + "BadRequest$ErrorCode": null, + "DependencyTimeout$ErrorCode": null, + "FileSystemAlreadyExists$ErrorCode": null, + "FileSystemInUse$ErrorCode": null, + "FileSystemLimitExceeded$ErrorCode": null, + "FileSystemNotFound$ErrorCode": null, + "IncorrectFileSystemLifeCycleState$ErrorCode": null, + "IncorrectMountTargetState$ErrorCode": null, + "InternalServerError$ErrorCode": null, + "IpAddressInUse$ErrorCode": null, + "MountTargetConflict$ErrorCode": null, + "MountTargetNotFound$ErrorCode": null, + "NetworkInterfaceLimitExceeded$ErrorCode": null, + "NoFreeAddressesInSubnet$ErrorCode": null, + "SecurityGroupLimitExceeded$ErrorCode": null, + "SecurityGroupNotFound$ErrorCode": null, + "SubnetNotFound$ErrorCode": null, + "UnsupportedAvailabilityZone$ErrorCode": null + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "BadRequest$Message": null, + "DependencyTimeout$Message": null, + "FileSystemAlreadyExists$Message": null, + "FileSystemInUse$Message": null, + "FileSystemLimitExceeded$Message": null, + "FileSystemNotFound$Message": null, + "IncorrectFileSystemLifeCycleState$Message": null, + "IncorrectMountTargetState$Message": null, + "InternalServerError$Message": null, + "IpAddressInUse$Message": null, + "MountTargetConflict$Message": null, + "MountTargetNotFound$Message": null, + "NetworkInterfaceLimitExceeded$Message": null, + "NoFreeAddressesInSubnet$Message": null, + "SecurityGroupLimitExceeded$Message": null, + "SecurityGroupNotFound$Message": null, + "SubnetNotFound$Message": null, + "UnsupportedAvailabilityZone$Message": null + } + }, + "FileSystemAlreadyExists": { + "base": "

Returned if the file system you are trying to create already exists, with the creation token you provided.

", + "refs": { + } + }, + "FileSystemDescription": { + "base": "

This object provides description of a file system.

", + "refs": { + "FileSystemDescriptions$member": null + } + }, + "FileSystemDescriptions": { + "base": null, + "refs": { + "DescribeFileSystemsResponse$FileSystems": "

An array of file system descriptions.

" + } + }, + "FileSystemId": { + "base": null, + "refs": { + "CreateMountTargetRequest$FileSystemId": "

The ID of the file system for which to create the mount target.

", + "CreateTagsRequest$FileSystemId": "

String. The ID of the file system whose tags you want to modify. This operation modifies only the tags and not the file system.

", + "DeleteFileSystemRequest$FileSystemId": "

The ID of the file system you want to delete.

", + "DeleteTagsRequest$FileSystemId": "

String. The ID of the file system whose tags you want to delete.

", + "DescribeFileSystemsRequest$FileSystemId": "

Optional string. File system ID whose description you want to retrieve.

", + "DescribeMountTargetsRequest$FileSystemId": "

String. The ID of the file system whose mount targets you want to list.

", + "DescribeTagsRequest$FileSystemId": "

The ID of the file system whose tag set you want to retrieve.

", + "FileSystemAlreadyExists$FileSystemId": null, + "FileSystemDescription$FileSystemId": "

The file system ID assigned by Amazon EFS.

", + "MountTargetDescription$FileSystemId": "

The ID of the file system for which the mount target is intended.

" + } + }, + "FileSystemInUse": { + "base": "

Returned if a file system has mount targets.

", + "refs": { + } + }, + "FileSystemLimitExceeded": { + "base": "

Returned if the AWS account has already created maximum number of file systems allowed per account.

", + "refs": { + } + }, + "FileSystemNotFound": { + "base": "

Returned if the specified FileSystemId does not exist in the requester's AWS account.

", + "refs": { + } + }, + "FileSystemSize": { + "base": "

This object provides the latest known metered size, in bytes, of data stored in the file system, in its Value field, and the time at which that size was determined in its Timestamp field. Note that the value does not represent the size of a consistent snapshot of the file system, but it is eventually consistent when there are no writes to the file system. That is, the value will represent the actual size only if the file system is not modified for a period longer than a couple of hours. Otherwise, the value is not necessarily the exact size the file system was at any instant in time.

", + "refs": { + "FileSystemDescription$SizeInBytes": "

This object provides the latest known metered size of data stored in the file system, in bytes, in its Value field, and the time at which that size was determined in its Timestamp field. The Timestamp value is the integer number of seconds since 1970-01-01T00:00:00Z. Note that the value does not represent the size of a consistent snapshot of the file system, but it is eventually consistent when there are no writes to the file system. That is, the value will represent actual size only if the file system is not modified for a period longer than a couple of hours. Otherwise, the value is not the exact size the file system was at any instant in time.

" + } + }, + "FileSystemSizeValue": { + "base": null, + "refs": { + "FileSystemSize$Value": "

The latest known metered size, in bytes, of data stored in the file system.

" + } + }, + "IncorrectFileSystemLifeCycleState": { + "base": "

Returned if the file system's life cycle state is not \"created\".

", + "refs": { + } + }, + "IncorrectMountTargetState": { + "base": "

Returned if the mount target is not in the correct state for the operation.

", + "refs": { + } + }, + "InternalServerError": { + "base": "

Returned if an error occurred on the server side.

", + "refs": { + } + }, + "IpAddress": { + "base": null, + "refs": { + "CreateMountTargetRequest$IpAddress": "

A valid IPv4 address within the address range of the specified subnet.

", + "MountTargetDescription$IpAddress": "

The address at which the file system may be mounted via the mount target.

" + } + }, + "IpAddressInUse": { + "base": "

Returned if the request specified an IpAddress that is already in use in the subnet.

", + "refs": { + } + }, + "LifeCycleState": { + "base": null, + "refs": { + "FileSystemDescription$LifeCycleState": "

A predefined string value that indicates the lifecycle phase of the file system.

", + "MountTargetDescription$LifeCycleState": "

The lifecycle state the mount target is in.

" + } + }, + "Marker": { + "base": null, + "refs": { + "DescribeFileSystemsRequest$Marker": "

Optional string. Opaque pagination token returned from a previous DescribeFileSystems operation. If present, specifies to continue the list from where the returning call had left off.

", + "DescribeFileSystemsResponse$Marker": "

A string, present if provided by caller in the request.

", + "DescribeFileSystemsResponse$NextMarker": "

A string, present if there are more file systems than returned in the response. You can use the NextMarker in the subsequent request to fetch the descriptions.

", + "DescribeMountTargetsRequest$Marker": "

Optional. String. Opaque pagination token returned from a previous DescribeMountTargets operation. If present, it specifies to continue the list from where the previous returning call left off.

", + "DescribeMountTargetsResponse$Marker": "

If the request included the Marker, the response returns that value in this field.

", + "DescribeMountTargetsResponse$NextMarker": "

If a value is present, there are more mount targets to return. In a subsequent request, you can provide Marker in your request with this value to retrieve the next set of mount targets.

", + "DescribeTagsRequest$Marker": "

Optional. String. Opaque pagination token returned from a previous DescribeTags operation. If present, it specifies to continue the list from where the previous call left off.

", + "DescribeTagsResponse$Marker": "

If the request included a Marker, the response returns that value in this field.

", + "DescribeTagsResponse$NextMarker": "

If a value is present, there are more tags to return. In a subsequent request, you can provide the value of NextMarker as the value of the Marker parameter in your next request to retrieve the next set of tags.

" + } + }, + "MaxItems": { + "base": null, + "refs": { + "DescribeFileSystemsRequest$MaxItems": "

Optional integer. Specifies the maximum number of file systems to return in the response. This parameter value must be greater than 0. The number of items Amazon EFS returns will be the minimum of the MaxItems parameter specified in the request and the service's internal maximum number of items per page.

", + "DescribeMountTargetsRequest$MaxItems": "

Optional. Maximum number of mount targets to return in the response. It must be an integer with a value greater than zero.

", + "DescribeTagsRequest$MaxItems": "

Optional. Maximum number of file system tags to return in the response. It must be an integer with a value greater than zero.

" + } + }, + "ModifyMountTargetSecurityGroupsRequest": { + "base": null, + "refs": { + } + }, + "MountTargetConflict": { + "base": "

Returned if the mount target would violate one of the specified restrictions based on the file system's existing mount targets.

", + "refs": { + } + }, + "MountTargetCount": { + "base": null, + "refs": { + "FileSystemDescription$NumberOfMountTargets": "

The current number of mount targets (see CreateMountTarget) the file system has.

" + } + }, + "MountTargetDescription": { + "base": "

This object provides description of a mount target.

", + "refs": { + "MountTargetDescriptions$member": null + } + }, + "MountTargetDescriptions": { + "base": null, + "refs": { + "DescribeMountTargetsResponse$MountTargets": "

Returns the file system's mount targets as an array of MountTargetDescription objects.

" + } + }, + "MountTargetId": { + "base": null, + "refs": { + "DeleteMountTargetRequest$MountTargetId": "

String. The ID of the mount target to delete.

", + "DescribeMountTargetSecurityGroupsRequest$MountTargetId": "

The ID of the mount target whose security groups you want to retrieve.

", + "ModifyMountTargetSecurityGroupsRequest$MountTargetId": "

The ID of the mount target whose security groups you want to modify.

", + "MountTargetDescription$MountTargetId": "

The system-assigned mount target ID.

" + } + }, + "MountTargetNotFound": { + "base": "

Returned if there is no mount target with the specified ID is found in the caller's account.

", + "refs": { + } + }, + "NetworkInterfaceId": { + "base": null, + "refs": { + "MountTargetDescription$NetworkInterfaceId": "

The ID of the network interface that Amazon EFS created when it created the mount target.

" + } + }, + "NetworkInterfaceLimitExceeded": { + "base": "

The calling account has reached the ENI limit for the specific AWS region. Client should try to delete some ENIs or get its account limit raised. For more information, go to Amazon VPC Limits in the Amazon Virtual Private Cloud User Guide (see the Network interfaces per VPC entry in the table).

", + "refs": { + } + }, + "NoFreeAddressesInSubnet": { + "base": "

Returned if IpAddress was not specified in the request and there are no free IP addresses in the subnet.

", + "refs": { + } + }, + "SecurityGroup": { + "base": null, + "refs": { + "SecurityGroups$member": null + } + }, + "SecurityGroupLimitExceeded": { + "base": "

Returned if the size of SecurityGroups specified in the request is greater than five.

", + "refs": { + } + }, + "SecurityGroupNotFound": { + "base": "

Returned if one of the specified security groups does not exist in the subnet's VPC.

", + "refs": { + } + }, + "SecurityGroups": { + "base": null, + "refs": { + "CreateMountTargetRequest$SecurityGroups": "

Up to 5 VPC security group IDs, of the form \"sg-xxxxxxxx\". These must be for the same VPC as subnet specified.

", + "DescribeMountTargetSecurityGroupsResponse$SecurityGroups": "

An array of security groups.

", + "ModifyMountTargetSecurityGroupsRequest$SecurityGroups": "

An array of up to five VPC security group IDs.

" + } + }, + "SubnetId": { + "base": null, + "refs": { + "CreateMountTargetRequest$SubnetId": "

The ID of the subnet to add the mount target in.

", + "MountTargetDescription$SubnetId": "

The ID of the subnet that the mount target is in.

" + } + }, + "SubnetNotFound": { + "base": "

Returned if there is no subnet with ID SubnetId provided in the request.

", + "refs": { + } + }, + "Tag": { + "base": "

A tag is a pair of key and value. The allowed characters in keys and values are letters, whitespace, and numbers, representable in UTF-8, and the characters '+', '-', '=', '.', '_', ':', and '/'.

", + "refs": { + "Tags$member": null + } + }, + "TagKey": { + "base": null, + "refs": { + "Tag$Key": "

Tag key, a string. The key must not start with \"aws:\".

", + "TagKeys$member": null + } + }, + "TagKeys": { + "base": null, + "refs": { + "DeleteTagsRequest$TagKeys": "

A list of tag keys to delete.

" + } + }, + "TagValue": { + "base": null, + "refs": { + "FileSystemDescription$Name": "

You can add tags to a file system (see CreateTags) including a \"Name\" tag. If the file system has a \"Name\" tag, Amazon EFS returns the value in this field.

", + "Tag$Value": "

Value of the tag key.

" + } + }, + "Tags": { + "base": null, + "refs": { + "CreateTagsRequest$Tags": "

An array of Tag objects to add. Each Tag object is a key-value pair.

", + "DescribeTagsResponse$Tags": "

Returns tags associated with the file system as an array of Tag objects.

" + } + }, + "Timestamp": { + "base": null, + "refs": { + "FileSystemDescription$CreationTime": "

The time at which the file system was created, in seconds, since 1970-01-01T00:00:00Z.

", + "FileSystemSize$Timestamp": "

The time at which the size of data, returned in the Value field, was determined. The value is the integer number of seconds since 1970-01-01T00:00:00Z.

" + } + }, + "UnsupportedAvailabilityZone": { + "base": null, + "refs": { + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/elasticloadbalancing/2012-06-01/api-2.json b/lib/aws-sdk/Aws/data/elasticloadbalancing/2012-06-01/api-2.json new file mode 100644 index 0000000..849d31f --- /dev/null +++ b/lib/aws-sdk/Aws/data/elasticloadbalancing/2012-06-01/api-2.json @@ -0,0 +1,2145 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2012-06-01", + "endpointPrefix":"elasticloadbalancing", + "serviceFullName":"Elastic Load Balancing", + "signatureVersion":"v4", + "xmlNamespace":"http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/", + "protocol":"query" + }, + "operations":{ + "AddTags":{ + "name":"AddTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddTagsInput"}, + "output":{ + "shape":"AddTagsOutput", + "resultWrapper":"AddTagsResult" + }, + "errors":[ + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TooManyTagsException", + "error":{ + "code":"TooManyTags", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DuplicateTagKeysException", + "error":{ + "code":"DuplicateTagKeys", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "ApplySecurityGroupsToLoadBalancer":{ + "name":"ApplySecurityGroupsToLoadBalancer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ApplySecurityGroupsToLoadBalancerInput"}, + "output":{ + "shape":"ApplySecurityGroupsToLoadBalancerOutput", + "resultWrapper":"ApplySecurityGroupsToLoadBalancerResult" + }, + "errors":[ + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidConfigurationRequestException", + "error":{ + "code":"InvalidConfigurationRequest", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidSecurityGroupException", + "error":{ + "code":"InvalidSecurityGroup", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "AttachLoadBalancerToSubnets":{ + "name":"AttachLoadBalancerToSubnets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AttachLoadBalancerToSubnetsInput"}, + "output":{ + "shape":"AttachLoadBalancerToSubnetsOutput", + "resultWrapper":"AttachLoadBalancerToSubnetsResult" + }, + "errors":[ + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidConfigurationRequestException", + "error":{ + "code":"InvalidConfigurationRequest", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SubnetNotFoundException", + "error":{ + "code":"SubnetNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidSubnetException", + "error":{ + "code":"InvalidSubnet", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "ConfigureHealthCheck":{ + "name":"ConfigureHealthCheck", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ConfigureHealthCheckInput"}, + "output":{ + "shape":"ConfigureHealthCheckOutput", + "resultWrapper":"ConfigureHealthCheckResult" + }, + "errors":[ + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateAppCookieStickinessPolicy":{ + "name":"CreateAppCookieStickinessPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateAppCookieStickinessPolicyInput"}, + "output":{ + "shape":"CreateAppCookieStickinessPolicyOutput", + "resultWrapper":"CreateAppCookieStickinessPolicyResult" + }, + "errors":[ + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DuplicatePolicyNameException", + "error":{ + "code":"DuplicatePolicyName", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TooManyPoliciesException", + "error":{ + "code":"TooManyPolicies", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidConfigurationRequestException", + "error":{ + "code":"InvalidConfigurationRequest", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateLBCookieStickinessPolicy":{ + "name":"CreateLBCookieStickinessPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateLBCookieStickinessPolicyInput"}, + "output":{ + "shape":"CreateLBCookieStickinessPolicyOutput", + "resultWrapper":"CreateLBCookieStickinessPolicyResult" + }, + "errors":[ + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DuplicatePolicyNameException", + "error":{ + "code":"DuplicatePolicyName", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TooManyPoliciesException", + "error":{ + "code":"TooManyPolicies", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidConfigurationRequestException", + "error":{ + "code":"InvalidConfigurationRequest", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateLoadBalancer":{ + "name":"CreateLoadBalancer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateAccessPointInput"}, + "output":{ + "shape":"CreateAccessPointOutput", + "resultWrapper":"CreateLoadBalancerResult" + }, + "errors":[ + { + "shape":"DuplicateAccessPointNameException", + "error":{ + "code":"DuplicateLoadBalancerName", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TooManyAccessPointsException", + "error":{ + "code":"TooManyLoadBalancers", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CertificateNotFoundException", + "error":{ + "code":"CertificateNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidConfigurationRequestException", + "error":{ + "code":"InvalidConfigurationRequest", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SubnetNotFoundException", + "error":{ + "code":"SubnetNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidSubnetException", + "error":{ + "code":"InvalidSubnet", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidSecurityGroupException", + "error":{ + "code":"InvalidSecurityGroup", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidSchemeException", + "error":{ + "code":"InvalidScheme", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TooManyTagsException", + "error":{ + "code":"TooManyTags", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DuplicateTagKeysException", + "error":{ + "code":"DuplicateTagKeys", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateLoadBalancerListeners":{ + "name":"CreateLoadBalancerListeners", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateLoadBalancerListenerInput"}, + "output":{ + "shape":"CreateLoadBalancerListenerOutput", + "resultWrapper":"CreateLoadBalancerListenersResult" + }, + "errors":[ + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DuplicateListenerException", + "error":{ + "code":"DuplicateListener", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CertificateNotFoundException", + "error":{ + "code":"CertificateNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidConfigurationRequestException", + "error":{ + "code":"InvalidConfigurationRequest", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateLoadBalancerPolicy":{ + "name":"CreateLoadBalancerPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateLoadBalancerPolicyInput"}, + "output":{ + "shape":"CreateLoadBalancerPolicyOutput", + "resultWrapper":"CreateLoadBalancerPolicyResult" + }, + "errors":[ + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"PolicyTypeNotFoundException", + "error":{ + "code":"PolicyTypeNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DuplicatePolicyNameException", + "error":{ + "code":"DuplicatePolicyName", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TooManyPoliciesException", + "error":{ + "code":"TooManyPolicies", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidConfigurationRequestException", + "error":{ + "code":"InvalidConfigurationRequest", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteLoadBalancer":{ + "name":"DeleteLoadBalancer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteAccessPointInput"}, + "output":{ + "shape":"DeleteAccessPointOutput", + "resultWrapper":"DeleteLoadBalancerResult" + } + }, + "DeleteLoadBalancerListeners":{ + "name":"DeleteLoadBalancerListeners", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteLoadBalancerListenerInput"}, + "output":{ + "shape":"DeleteLoadBalancerListenerOutput", + "resultWrapper":"DeleteLoadBalancerListenersResult" + }, + "errors":[ + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteLoadBalancerPolicy":{ + "name":"DeleteLoadBalancerPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteLoadBalancerPolicyInput"}, + "output":{ + "shape":"DeleteLoadBalancerPolicyOutput", + "resultWrapper":"DeleteLoadBalancerPolicyResult" + }, + "errors":[ + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidConfigurationRequestException", + "error":{ + "code":"InvalidConfigurationRequest", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeregisterInstancesFromLoadBalancer":{ + "name":"DeregisterInstancesFromLoadBalancer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeregisterEndPointsInput"}, + "output":{ + "shape":"DeregisterEndPointsOutput", + "resultWrapper":"DeregisterInstancesFromLoadBalancerResult" + }, + "errors":[ + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidEndPointException", + "error":{ + "code":"InvalidInstance", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeInstanceHealth":{ + "name":"DescribeInstanceHealth", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeEndPointStateInput"}, + "output":{ + "shape":"DescribeEndPointStateOutput", + "resultWrapper":"DescribeInstanceHealthResult" + }, + "errors":[ + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidEndPointException", + "error":{ + "code":"InvalidInstance", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeLoadBalancerAttributes":{ + "name":"DescribeLoadBalancerAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeLoadBalancerAttributesInput"}, + "output":{ + "shape":"DescribeLoadBalancerAttributesOutput", + "resultWrapper":"DescribeLoadBalancerAttributesResult" + }, + "errors":[ + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LoadBalancerAttributeNotFoundException", + "error":{ + "code":"LoadBalancerAttributeNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeLoadBalancerPolicies":{ + "name":"DescribeLoadBalancerPolicies", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeLoadBalancerPoliciesInput"}, + "output":{ + "shape":"DescribeLoadBalancerPoliciesOutput", + "resultWrapper":"DescribeLoadBalancerPoliciesResult" + }, + "errors":[ + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"PolicyNotFoundException", + "error":{ + "code":"PolicyNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeLoadBalancerPolicyTypes":{ + "name":"DescribeLoadBalancerPolicyTypes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeLoadBalancerPolicyTypesInput"}, + "output":{ + "shape":"DescribeLoadBalancerPolicyTypesOutput", + "resultWrapper":"DescribeLoadBalancerPolicyTypesResult" + }, + "errors":[ + { + "shape":"PolicyTypeNotFoundException", + "error":{ + "code":"PolicyTypeNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeLoadBalancers":{ + "name":"DescribeLoadBalancers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAccessPointsInput"}, + "output":{ + "shape":"DescribeAccessPointsOutput", + "resultWrapper":"DescribeLoadBalancersResult" + }, + "errors":[ + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeTags":{ + "name":"DescribeTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTagsInput"}, + "output":{ + "shape":"DescribeTagsOutput", + "resultWrapper":"DescribeTagsResult" + }, + "errors":[ + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DetachLoadBalancerFromSubnets":{ + "name":"DetachLoadBalancerFromSubnets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetachLoadBalancerFromSubnetsInput"}, + "output":{ + "shape":"DetachLoadBalancerFromSubnetsOutput", + "resultWrapper":"DetachLoadBalancerFromSubnetsResult" + }, + "errors":[ + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidConfigurationRequestException", + "error":{ + "code":"InvalidConfigurationRequest", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "DisableAvailabilityZonesForLoadBalancer":{ + "name":"DisableAvailabilityZonesForLoadBalancer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RemoveAvailabilityZonesInput"}, + "output":{ + "shape":"RemoveAvailabilityZonesOutput", + "resultWrapper":"DisableAvailabilityZonesForLoadBalancerResult" + }, + "errors":[ + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidConfigurationRequestException", + "error":{ + "code":"InvalidConfigurationRequest", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "EnableAvailabilityZonesForLoadBalancer":{ + "name":"EnableAvailabilityZonesForLoadBalancer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddAvailabilityZonesInput"}, + "output":{ + "shape":"AddAvailabilityZonesOutput", + "resultWrapper":"EnableAvailabilityZonesForLoadBalancerResult" + }, + "errors":[ + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "ModifyLoadBalancerAttributes":{ + "name":"ModifyLoadBalancerAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyLoadBalancerAttributesInput"}, + "output":{ + "shape":"ModifyLoadBalancerAttributesOutput", + "resultWrapper":"ModifyLoadBalancerAttributesResult" + }, + "errors":[ + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LoadBalancerAttributeNotFoundException", + "error":{ + "code":"LoadBalancerAttributeNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidConfigurationRequestException", + "error":{ + "code":"InvalidConfigurationRequest", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "RegisterInstancesWithLoadBalancer":{ + "name":"RegisterInstancesWithLoadBalancer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RegisterEndPointsInput"}, + "output":{ + "shape":"RegisterEndPointsOutput", + "resultWrapper":"RegisterInstancesWithLoadBalancerResult" + }, + "errors":[ + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidEndPointException", + "error":{ + "code":"InvalidInstance", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "RemoveTags":{ + "name":"RemoveTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RemoveTagsInput"}, + "output":{ + "shape":"RemoveTagsOutput", + "resultWrapper":"RemoveTagsResult" + }, + "errors":[ + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "SetLoadBalancerListenerSSLCertificate":{ + "name":"SetLoadBalancerListenerSSLCertificate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetLoadBalancerListenerSSLCertificateInput"}, + "output":{ + "shape":"SetLoadBalancerListenerSSLCertificateOutput", + "resultWrapper":"SetLoadBalancerListenerSSLCertificateResult" + }, + "errors":[ + { + "shape":"CertificateNotFoundException", + "error":{ + "code":"CertificateNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ListenerNotFoundException", + "error":{ + "code":"ListenerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidConfigurationRequestException", + "error":{ + "code":"InvalidConfigurationRequest", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "SetLoadBalancerPoliciesForBackendServer":{ + "name":"SetLoadBalancerPoliciesForBackendServer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetLoadBalancerPoliciesForBackendServerInput"}, + "output":{ + "shape":"SetLoadBalancerPoliciesForBackendServerOutput", + "resultWrapper":"SetLoadBalancerPoliciesForBackendServerResult" + }, + "errors":[ + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"PolicyNotFoundException", + "error":{ + "code":"PolicyNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidConfigurationRequestException", + "error":{ + "code":"InvalidConfigurationRequest", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + }, + "SetLoadBalancerPoliciesOfListener":{ + "name":"SetLoadBalancerPoliciesOfListener", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetLoadBalancerPoliciesOfListenerInput"}, + "output":{ + "shape":"SetLoadBalancerPoliciesOfListenerOutput", + "resultWrapper":"SetLoadBalancerPoliciesOfListenerResult" + }, + "errors":[ + { + "shape":"AccessPointNotFoundException", + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"PolicyNotFoundException", + "error":{ + "code":"PolicyNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ListenerNotFoundException", + "error":{ + "code":"ListenerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidConfigurationRequestException", + "error":{ + "code":"InvalidConfigurationRequest", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + } + ] + } + }, + "shapes":{ + "AccessLog":{ + "type":"structure", + "required":["Enabled"], + "members":{ + "Enabled":{"shape":"AccessLogEnabled"}, + "S3BucketName":{"shape":"S3BucketName"}, + "EmitInterval":{"shape":"AccessLogInterval"}, + "S3BucketPrefix":{"shape":"AccessLogPrefix"} + } + }, + "AccessLogEnabled":{"type":"boolean"}, + "AccessLogInterval":{"type":"integer"}, + "AccessLogPrefix":{"type":"string"}, + "AccessPointName":{"type":"string"}, + "AccessPointNotFoundException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"LoadBalancerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "AccessPointPort":{"type":"integer"}, + "AddAvailabilityZonesInput":{ + "type":"structure", + "required":[ + "LoadBalancerName", + "AvailabilityZones" + ], + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"}, + "AvailabilityZones":{"shape":"AvailabilityZones"} + } + }, + "AddAvailabilityZonesOutput":{ + "type":"structure", + "members":{ + "AvailabilityZones":{"shape":"AvailabilityZones"} + } + }, + "AddTagsInput":{ + "type":"structure", + "required":[ + "LoadBalancerNames", + "Tags" + ], + "members":{ + "LoadBalancerNames":{"shape":"LoadBalancerNames"}, + "Tags":{"shape":"TagList"} + } + }, + "AddTagsOutput":{ + "type":"structure", + "members":{ + } + }, + "AdditionalAttribute":{ + "type":"structure", + "members":{ + "Key":{"shape":"StringVal"}, + "Value":{"shape":"StringVal"} + } + }, + "AdditionalAttributes":{ + "type":"list", + "member":{"shape":"AdditionalAttribute"} + }, + "AppCookieStickinessPolicies":{ + "type":"list", + "member":{"shape":"AppCookieStickinessPolicy"} + }, + "AppCookieStickinessPolicy":{ + "type":"structure", + "members":{ + "PolicyName":{"shape":"PolicyName"}, + "CookieName":{"shape":"CookieName"} + } + }, + "ApplySecurityGroupsToLoadBalancerInput":{ + "type":"structure", + "required":[ + "LoadBalancerName", + "SecurityGroups" + ], + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"}, + "SecurityGroups":{"shape":"SecurityGroups"} + } + }, + "ApplySecurityGroupsToLoadBalancerOutput":{ + "type":"structure", + "members":{ + "SecurityGroups":{"shape":"SecurityGroups"} + } + }, + "AttachLoadBalancerToSubnetsInput":{ + "type":"structure", + "required":[ + "LoadBalancerName", + "Subnets" + ], + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"}, + "Subnets":{"shape":"Subnets"} + } + }, + "AttachLoadBalancerToSubnetsOutput":{ + "type":"structure", + "members":{ + "Subnets":{"shape":"Subnets"} + } + }, + "AttributeName":{"type":"string"}, + "AttributeType":{"type":"string"}, + "AttributeValue":{"type":"string"}, + "AvailabilityZone":{"type":"string"}, + "AvailabilityZones":{ + "type":"list", + "member":{"shape":"AvailabilityZone"} + }, + "BackendServerDescription":{ + "type":"structure", + "members":{ + "InstancePort":{"shape":"InstancePort"}, + "PolicyNames":{"shape":"PolicyNames"} + } + }, + "BackendServerDescriptions":{ + "type":"list", + "member":{"shape":"BackendServerDescription"} + }, + "Cardinality":{"type":"string"}, + "CertificateNotFoundException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"CertificateNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ConfigureHealthCheckInput":{ + "type":"structure", + "required":[ + "LoadBalancerName", + "HealthCheck" + ], + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"}, + "HealthCheck":{"shape":"HealthCheck"} + } + }, + "ConfigureHealthCheckOutput":{ + "type":"structure", + "members":{ + "HealthCheck":{"shape":"HealthCheck"} + } + }, + "ConnectionDraining":{ + "type":"structure", + "required":["Enabled"], + "members":{ + "Enabled":{"shape":"ConnectionDrainingEnabled"}, + "Timeout":{"shape":"ConnectionDrainingTimeout"} + } + }, + "ConnectionDrainingEnabled":{"type":"boolean"}, + "ConnectionDrainingTimeout":{"type":"integer"}, + "ConnectionSettings":{ + "type":"structure", + "required":["IdleTimeout"], + "members":{ + "IdleTimeout":{"shape":"IdleTimeout"} + } + }, + "CookieExpirationPeriod":{"type":"long"}, + "CookieName":{"type":"string"}, + "CreateAccessPointInput":{ + "type":"structure", + "required":[ + "LoadBalancerName", + "Listeners" + ], + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"}, + "Listeners":{"shape":"Listeners"}, + "AvailabilityZones":{"shape":"AvailabilityZones"}, + "Subnets":{"shape":"Subnets"}, + "SecurityGroups":{"shape":"SecurityGroups"}, + "Scheme":{"shape":"LoadBalancerScheme"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateAccessPointOutput":{ + "type":"structure", + "members":{ + "DNSName":{"shape":"DNSName"} + } + }, + "CreateAppCookieStickinessPolicyInput":{ + "type":"structure", + "required":[ + "LoadBalancerName", + "PolicyName", + "CookieName" + ], + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"}, + "PolicyName":{"shape":"PolicyName"}, + "CookieName":{"shape":"CookieName"} + } + }, + "CreateAppCookieStickinessPolicyOutput":{ + "type":"structure", + "members":{ + } + }, + "CreateLBCookieStickinessPolicyInput":{ + "type":"structure", + "required":[ + "LoadBalancerName", + "PolicyName" + ], + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"}, + "PolicyName":{"shape":"PolicyName"}, + "CookieExpirationPeriod":{"shape":"CookieExpirationPeriod"} + } + }, + "CreateLBCookieStickinessPolicyOutput":{ + "type":"structure", + "members":{ + } + }, + "CreateLoadBalancerListenerInput":{ + "type":"structure", + "required":[ + "LoadBalancerName", + "Listeners" + ], + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"}, + "Listeners":{"shape":"Listeners"} + } + }, + "CreateLoadBalancerListenerOutput":{ + "type":"structure", + "members":{ + } + }, + "CreateLoadBalancerPolicyInput":{ + "type":"structure", + "required":[ + "LoadBalancerName", + "PolicyName", + "PolicyTypeName" + ], + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"}, + "PolicyName":{"shape":"PolicyName"}, + "PolicyTypeName":{"shape":"PolicyTypeName"}, + "PolicyAttributes":{"shape":"PolicyAttributes"} + } + }, + "CreateLoadBalancerPolicyOutput":{ + "type":"structure", + "members":{ + } + }, + "CreatedTime":{"type":"timestamp"}, + "CrossZoneLoadBalancing":{ + "type":"structure", + "required":["Enabled"], + "members":{ + "Enabled":{"shape":"CrossZoneLoadBalancingEnabled"} + } + }, + "CrossZoneLoadBalancingEnabled":{"type":"boolean"}, + "DNSName":{"type":"string"}, + "DefaultValue":{"type":"string"}, + "DeleteAccessPointInput":{ + "type":"structure", + "required":["LoadBalancerName"], + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"} + } + }, + "DeleteAccessPointOutput":{ + "type":"structure", + "members":{ + } + }, + "DeleteLoadBalancerListenerInput":{ + "type":"structure", + "required":[ + "LoadBalancerName", + "LoadBalancerPorts" + ], + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"}, + "LoadBalancerPorts":{"shape":"Ports"} + } + }, + "DeleteLoadBalancerListenerOutput":{ + "type":"structure", + "members":{ + } + }, + "DeleteLoadBalancerPolicyInput":{ + "type":"structure", + "required":[ + "LoadBalancerName", + "PolicyName" + ], + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"}, + "PolicyName":{"shape":"PolicyName"} + } + }, + "DeleteLoadBalancerPolicyOutput":{ + "type":"structure", + "members":{ + } + }, + "DeregisterEndPointsInput":{ + "type":"structure", + "required":[ + "LoadBalancerName", + "Instances" + ], + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"}, + "Instances":{"shape":"Instances"} + } + }, + "DeregisterEndPointsOutput":{ + "type":"structure", + "members":{ + "Instances":{"shape":"Instances"} + } + }, + "DescribeAccessPointsInput":{ + "type":"structure", + "members":{ + "LoadBalancerNames":{"shape":"LoadBalancerNames"}, + "Marker":{"shape":"Marker"}, + "PageSize":{"shape":"PageSize"} + } + }, + "DescribeAccessPointsOutput":{ + "type":"structure", + "members":{ + "LoadBalancerDescriptions":{"shape":"LoadBalancerDescriptions"}, + "NextMarker":{"shape":"Marker"} + } + }, + "DescribeEndPointStateInput":{ + "type":"structure", + "required":["LoadBalancerName"], + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"}, + "Instances":{"shape":"Instances"} + } + }, + "DescribeEndPointStateOutput":{ + "type":"structure", + "members":{ + "InstanceStates":{"shape":"InstanceStates"} + } + }, + "DescribeLoadBalancerAttributesInput":{ + "type":"structure", + "required":["LoadBalancerName"], + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"} + } + }, + "DescribeLoadBalancerAttributesOutput":{ + "type":"structure", + "members":{ + "LoadBalancerAttributes":{"shape":"LoadBalancerAttributes"} + } + }, + "DescribeLoadBalancerPoliciesInput":{ + "type":"structure", + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"}, + "PolicyNames":{"shape":"PolicyNames"} + } + }, + "DescribeLoadBalancerPoliciesOutput":{ + "type":"structure", + "members":{ + "PolicyDescriptions":{"shape":"PolicyDescriptions"} + } + }, + "DescribeLoadBalancerPolicyTypesInput":{ + "type":"structure", + "members":{ + "PolicyTypeNames":{"shape":"PolicyTypeNames"} + } + }, + "DescribeLoadBalancerPolicyTypesOutput":{ + "type":"structure", + "members":{ + "PolicyTypeDescriptions":{"shape":"PolicyTypeDescriptions"} + } + }, + "DescribeTagsInput":{ + "type":"structure", + "required":["LoadBalancerNames"], + "members":{ + "LoadBalancerNames":{"shape":"LoadBalancerNamesMax20"} + } + }, + "DescribeTagsOutput":{ + "type":"structure", + "members":{ + "TagDescriptions":{"shape":"TagDescriptions"} + } + }, + "Description":{"type":"string"}, + "DetachLoadBalancerFromSubnetsInput":{ + "type":"structure", + "required":[ + "LoadBalancerName", + "Subnets" + ], + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"}, + "Subnets":{"shape":"Subnets"} + } + }, + "DetachLoadBalancerFromSubnetsOutput":{ + "type":"structure", + "members":{ + "Subnets":{"shape":"Subnets"} + } + }, + "DuplicateAccessPointNameException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DuplicateLoadBalancerName", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "DuplicateListenerException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DuplicateListener", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "DuplicatePolicyNameException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DuplicatePolicyName", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "DuplicateTagKeysException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DuplicateTagKeys", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "EndPointPort":{"type":"integer"}, + "HealthCheck":{ + "type":"structure", + "required":[ + "Target", + "Interval", + "Timeout", + "UnhealthyThreshold", + "HealthyThreshold" + ], + "members":{ + "Target":{"shape":"HealthCheckTarget"}, + "Interval":{"shape":"HealthCheckInterval"}, + "Timeout":{"shape":"HealthCheckTimeout"}, + "UnhealthyThreshold":{"shape":"UnhealthyThreshold"}, + "HealthyThreshold":{"shape":"HealthyThreshold"} + } + }, + "HealthCheckInterval":{ + "type":"integer", + "min":1, + "max":300 + }, + "HealthCheckTarget":{"type":"string"}, + "HealthCheckTimeout":{ + "type":"integer", + "min":1, + "max":300 + }, + "HealthyThreshold":{ + "type":"integer", + "min":2, + "max":10 + }, + "IdleTimeout":{ + "type":"integer", + "min":1, + "max":3600 + }, + "Instance":{ + "type":"structure", + "members":{ + "InstanceId":{"shape":"InstanceId"} + } + }, + "InstanceId":{"type":"string"}, + "InstancePort":{ + "type":"integer", + "min":1, + "max":65535 + }, + "InstanceState":{ + "type":"structure", + "members":{ + "InstanceId":{"shape":"InstanceId"}, + "State":{"shape":"State"}, + "ReasonCode":{"shape":"ReasonCode"}, + "Description":{"shape":"Description"} + } + }, + "InstanceStates":{ + "type":"list", + "member":{"shape":"InstanceState"} + }, + "Instances":{ + "type":"list", + "member":{"shape":"Instance"} + }, + "InvalidConfigurationRequestException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidConfigurationRequest", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "InvalidEndPointException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidInstance", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidSchemeException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidScheme", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidSecurityGroupException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidSecurityGroup", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidSubnetException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidSubnet", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "LBCookieStickinessPolicies":{ + "type":"list", + "member":{"shape":"LBCookieStickinessPolicy"} + }, + "LBCookieStickinessPolicy":{ + "type":"structure", + "members":{ + "PolicyName":{"shape":"PolicyName"}, + "CookieExpirationPeriod":{"shape":"CookieExpirationPeriod"} + } + }, + "Listener":{ + "type":"structure", + "required":[ + "Protocol", + "LoadBalancerPort", + "InstancePort" + ], + "members":{ + "Protocol":{"shape":"Protocol"}, + "LoadBalancerPort":{"shape":"AccessPointPort"}, + "InstanceProtocol":{"shape":"Protocol"}, + "InstancePort":{"shape":"InstancePort"}, + "SSLCertificateId":{"shape":"SSLCertificateId"} + } + }, + "ListenerDescription":{ + "type":"structure", + "members":{ + "Listener":{"shape":"Listener"}, + "PolicyNames":{"shape":"PolicyNames"} + } + }, + "ListenerDescriptions":{ + "type":"list", + "member":{"shape":"ListenerDescription"} + }, + "ListenerNotFoundException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ListenerNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "Listeners":{ + "type":"list", + "member":{"shape":"Listener"} + }, + "LoadBalancerAttributeNotFoundException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"LoadBalancerAttributeNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "LoadBalancerAttributes":{ + "type":"structure", + "members":{ + "CrossZoneLoadBalancing":{"shape":"CrossZoneLoadBalancing"}, + "AccessLog":{"shape":"AccessLog"}, + "ConnectionDraining":{"shape":"ConnectionDraining"}, + "ConnectionSettings":{"shape":"ConnectionSettings"}, + "AdditionalAttributes":{"shape":"AdditionalAttributes"} + } + }, + "LoadBalancerDescription":{ + "type":"structure", + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"}, + "DNSName":{"shape":"DNSName"}, + "CanonicalHostedZoneName":{"shape":"DNSName"}, + "CanonicalHostedZoneNameID":{"shape":"DNSName"}, + "ListenerDescriptions":{"shape":"ListenerDescriptions"}, + "Policies":{"shape":"Policies"}, + "BackendServerDescriptions":{"shape":"BackendServerDescriptions"}, + "AvailabilityZones":{"shape":"AvailabilityZones"}, + "Subnets":{"shape":"Subnets"}, + "VPCId":{"shape":"VPCId"}, + "Instances":{"shape":"Instances"}, + "HealthCheck":{"shape":"HealthCheck"}, + "SourceSecurityGroup":{"shape":"SourceSecurityGroup"}, + "SecurityGroups":{"shape":"SecurityGroups"}, + "CreatedTime":{"shape":"CreatedTime"}, + "Scheme":{"shape":"LoadBalancerScheme"} + } + }, + "LoadBalancerDescriptions":{ + "type":"list", + "member":{"shape":"LoadBalancerDescription"} + }, + "LoadBalancerNames":{ + "type":"list", + "member":{"shape":"AccessPointName"} + }, + "LoadBalancerNamesMax20":{ + "type":"list", + "member":{"shape":"AccessPointName"}, + "min":1, + "max":20 + }, + "LoadBalancerScheme":{"type":"string"}, + "Marker":{"type":"string"}, + "ModifyLoadBalancerAttributesInput":{ + "type":"structure", + "required":[ + "LoadBalancerName", + "LoadBalancerAttributes" + ], + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"}, + "LoadBalancerAttributes":{"shape":"LoadBalancerAttributes"} + } + }, + "ModifyLoadBalancerAttributesOutput":{ + "type":"structure", + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"}, + "LoadBalancerAttributes":{"shape":"LoadBalancerAttributes"} + } + }, + "PageSize":{ + "type":"integer", + "min":1, + "max":400 + }, + "Policies":{ + "type":"structure", + "members":{ + "AppCookieStickinessPolicies":{"shape":"AppCookieStickinessPolicies"}, + "LBCookieStickinessPolicies":{"shape":"LBCookieStickinessPolicies"}, + "OtherPolicies":{"shape":"PolicyNames"} + } + }, + "PolicyAttribute":{ + "type":"structure", + "members":{ + "AttributeName":{"shape":"AttributeName"}, + "AttributeValue":{"shape":"AttributeValue"} + } + }, + "PolicyAttributeDescription":{ + "type":"structure", + "members":{ + "AttributeName":{"shape":"AttributeName"}, + "AttributeValue":{"shape":"AttributeValue"} + } + }, + "PolicyAttributeDescriptions":{ + "type":"list", + "member":{"shape":"PolicyAttributeDescription"} + }, + "PolicyAttributeTypeDescription":{ + "type":"structure", + "members":{ + "AttributeName":{"shape":"AttributeName"}, + "AttributeType":{"shape":"AttributeType"}, + "Description":{"shape":"Description"}, + "DefaultValue":{"shape":"DefaultValue"}, + "Cardinality":{"shape":"Cardinality"} + } + }, + "PolicyAttributeTypeDescriptions":{ + "type":"list", + "member":{"shape":"PolicyAttributeTypeDescription"} + }, + "PolicyAttributes":{ + "type":"list", + "member":{"shape":"PolicyAttribute"} + }, + "PolicyDescription":{ + "type":"structure", + "members":{ + "PolicyName":{"shape":"PolicyName"}, + "PolicyTypeName":{"shape":"PolicyTypeName"}, + "PolicyAttributeDescriptions":{"shape":"PolicyAttributeDescriptions"} + } + }, + "PolicyDescriptions":{ + "type":"list", + "member":{"shape":"PolicyDescription"} + }, + "PolicyName":{"type":"string"}, + "PolicyNames":{ + "type":"list", + "member":{"shape":"PolicyName"} + }, + "PolicyNotFoundException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"PolicyNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "PolicyTypeDescription":{ + "type":"structure", + "members":{ + "PolicyTypeName":{"shape":"PolicyTypeName"}, + "Description":{"shape":"Description"}, + "PolicyAttributeTypeDescriptions":{"shape":"PolicyAttributeTypeDescriptions"} + } + }, + "PolicyTypeDescriptions":{ + "type":"list", + "member":{"shape":"PolicyTypeDescription"} + }, + "PolicyTypeName":{"type":"string"}, + "PolicyTypeNames":{ + "type":"list", + "member":{"shape":"PolicyTypeName"} + }, + "PolicyTypeNotFoundException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"PolicyTypeNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "Ports":{ + "type":"list", + "member":{"shape":"AccessPointPort"} + }, + "Protocol":{"type":"string"}, + "ReasonCode":{"type":"string"}, + "RegisterEndPointsInput":{ + "type":"structure", + "required":[ + "LoadBalancerName", + "Instances" + ], + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"}, + "Instances":{"shape":"Instances"} + } + }, + "RegisterEndPointsOutput":{ + "type":"structure", + "members":{ + "Instances":{"shape":"Instances"} + } + }, + "RemoveAvailabilityZonesInput":{ + "type":"structure", + "required":[ + "LoadBalancerName", + "AvailabilityZones" + ], + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"}, + "AvailabilityZones":{"shape":"AvailabilityZones"} + } + }, + "RemoveAvailabilityZonesOutput":{ + "type":"structure", + "members":{ + "AvailabilityZones":{"shape":"AvailabilityZones"} + } + }, + "RemoveTagsInput":{ + "type":"structure", + "required":[ + "LoadBalancerNames", + "Tags" + ], + "members":{ + "LoadBalancerNames":{"shape":"LoadBalancerNames"}, + "Tags":{"shape":"TagKeyList"} + } + }, + "RemoveTagsOutput":{ + "type":"structure", + "members":{ + } + }, + "S3BucketName":{"type":"string"}, + "SSLCertificateId":{"type":"string"}, + "SecurityGroupId":{"type":"string"}, + "SecurityGroupName":{"type":"string"}, + "SecurityGroupOwnerAlias":{"type":"string"}, + "SecurityGroups":{ + "type":"list", + "member":{"shape":"SecurityGroupId"} + }, + "SetLoadBalancerListenerSSLCertificateInput":{ + "type":"structure", + "required":[ + "LoadBalancerName", + "LoadBalancerPort", + "SSLCertificateId" + ], + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"}, + "LoadBalancerPort":{"shape":"AccessPointPort"}, + "SSLCertificateId":{"shape":"SSLCertificateId"} + } + }, + "SetLoadBalancerListenerSSLCertificateOutput":{ + "type":"structure", + "members":{ + } + }, + "SetLoadBalancerPoliciesForBackendServerInput":{ + "type":"structure", + "required":[ + "LoadBalancerName", + "InstancePort", + "PolicyNames" + ], + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"}, + "InstancePort":{"shape":"EndPointPort"}, + "PolicyNames":{"shape":"PolicyNames"} + } + }, + "SetLoadBalancerPoliciesForBackendServerOutput":{ + "type":"structure", + "members":{ + } + }, + "SetLoadBalancerPoliciesOfListenerInput":{ + "type":"structure", + "required":[ + "LoadBalancerName", + "LoadBalancerPort", + "PolicyNames" + ], + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"}, + "LoadBalancerPort":{"shape":"AccessPointPort"}, + "PolicyNames":{"shape":"PolicyNames"} + } + }, + "SetLoadBalancerPoliciesOfListenerOutput":{ + "type":"structure", + "members":{ + } + }, + "SourceSecurityGroup":{ + "type":"structure", + "members":{ + "OwnerAlias":{"shape":"SecurityGroupOwnerAlias"}, + "GroupName":{"shape":"SecurityGroupName"} + } + }, + "State":{"type":"string"}, + "StringVal":{"type":"string"}, + "SubnetId":{"type":"string"}, + "SubnetNotFoundException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SubnetNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "Subnets":{ + "type":"list", + "member":{"shape":"SubnetId"} + }, + "Tag":{ + "type":"structure", + "required":["Key"], + "members":{ + "Key":{"shape":"TagKey"}, + "Value":{"shape":"TagValue"} + } + }, + "TagDescription":{ + "type":"structure", + "members":{ + "LoadBalancerName":{"shape":"AccessPointName"}, + "Tags":{"shape":"TagList"} + } + }, + "TagDescriptions":{ + "type":"list", + "member":{"shape":"TagDescription"} + }, + "TagKey":{ + "type":"string", + "min":1, + "max":128, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKeyOnly"}, + "min":1 + }, + "TagKeyOnly":{ + "type":"structure", + "members":{ + "Key":{"shape":"TagKey"} + } + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "min":1 + }, + "TagValue":{ + "type":"string", + "min":0, + "max":256, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + }, + "TooManyAccessPointsException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"TooManyLoadBalancers", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "TooManyPoliciesException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"TooManyPolicies", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "TooManyTagsException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"TooManyTags", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "UnhealthyThreshold":{ + "type":"integer", + "min":2, + "max":10 + }, + "VPCId":{"type":"string"} + } +} diff --git a/lib/aws-sdk/Aws/data/elasticloadbalancing/2012-06-01/docs-2.json b/lib/aws-sdk/Aws/data/elasticloadbalancing/2012-06-01/docs-2.json new file mode 100644 index 0000000..e64ef8b --- /dev/null +++ b/lib/aws-sdk/Aws/data/elasticloadbalancing/2012-06-01/docs-2.json @@ -0,0 +1,1078 @@ +{ + "version": "2.0", + "operations": { + "AddTags": "

Adds the specified tags to the specified load balancer. Each load balancer can have a maximum of 10 tags.

Each tag consists of a key and an optional value. If a tag with the same key is already associated with the load balancer, AddTags updates its value.

For more information, see Tag Your Load Balancer in the Elastic Load Balancing Developer Guide.

", + "ApplySecurityGroupsToLoadBalancer": "

Associates one or more security groups with your load balancer in a virtual private cloud (VPC). The specified security groups override the previously associated security groups.

For more information, see Security Groups for Load Balancers in a VPC in the Elastic Load Balancing Developer Guide.

", + "AttachLoadBalancerToSubnets": "

Adds one or more subnets to the set of configured subnets for the specified load balancer.

The load balancer evenly distributes requests across all registered subnets. For more information, see Add or Remove Subnets for Your Load Balancer in a VPC in the Elastic Load Balancing Developer Guide.

", + "ConfigureHealthCheck": "

Specifies the health check settings to use when evaluating the health state of your back-end instances.

For more information, see Configure Health Checks in the Elastic Load Balancing Developer Guide.

", + "CreateAppCookieStickinessPolicy": "

Generates a stickiness policy with sticky session lifetimes that follow that of an application-generated cookie. This policy can be associated only with HTTP/HTTPS listeners.

This policy is similar to the policy created by CreateLBCookieStickinessPolicy, except that the lifetime of the special Elastic Load Balancing cookie, AWSELB, follows the lifetime of the application-generated cookie specified in the policy configuration. The load balancer only inserts a new stickiness cookie when the application response includes a new application cookie.

If the application cookie is explicitly removed or expires, the session stops being sticky until a new application cookie is issued.

For more information, see Application-Controlled Session Stickiness in the Elastic Load Balancing Developer Guide.

", + "CreateLBCookieStickinessPolicy": "

Generates a stickiness policy with sticky session lifetimes controlled by the lifetime of the browser (user-agent) or a specified expiration period. This policy can be associated only with HTTP/HTTPS listeners.

When a load balancer implements this policy, the load balancer uses a special cookie to track the back-end server instance for each request. When the load balancer receives a request, it first checks to see if this cookie is present in the request. If so, the load balancer sends the request to the application server specified in the cookie. If not, the load balancer sends the request to a server that is chosen based on the existing load-balancing algorithm.

A cookie is inserted into the response for binding subsequent requests from the same user to that server. The validity of the cookie is based on the cookie expiration time, which is specified in the policy configuration.

For more information, see Duration-Based Session Stickiness in the Elastic Load Balancing Developer Guide.

", + "CreateLoadBalancer": "

Creates a load balancer.

If the call completes successfully, a new load balancer is created with a unique Domain Name Service (DNS) name. The load balancer receives incoming traffic and routes it to the registered instances. For more information, see How Elastic Load Balancing Works in the Elastic Load Balancing Developer Guide.

You can create up to 20 load balancers per region per account. You can request an increase for the number of load balancers for your account. For more information, see Elastic Load Balancing Limits in the Elastic Load Balancing Developer Guide.

", + "CreateLoadBalancerListeners": "

Creates one or more listeners for the specified load balancer. If a listener with the specified port does not already exist, it is created; otherwise, the properties of the new listener must match the properties of the existing listener.

For more information, see Add a Listener to Your Load Balancer in the Elastic Load Balancing Developer Guide.

", + "CreateLoadBalancerPolicy": "

Creates a policy with the specified attributes for the specified load balancer.

Policies are settings that are saved for your load balancer and that can be applied to the front-end listener or the back-end application server, depending on the policy type.

", + "DeleteLoadBalancer": "

Deletes the specified load balancer.

If you are attempting to recreate a load balancer, you must reconfigure all settings. The DNS name associated with a deleted load balancer are no longer usable. The name and associated DNS record of the deleted load balancer no longer exist and traffic sent to any of its IP addresses is no longer delivered to back-end instances.

If the load balancer does not exist or has already been deleted, the call to DeleteLoadBalancer still succeeds.

", + "DeleteLoadBalancerListeners": "

Deletes the specified listeners from the specified load balancer.

", + "DeleteLoadBalancerPolicy": "

Deletes the specified policy from the specified load balancer. This policy must not be enabled for any listeners.

", + "DeregisterInstancesFromLoadBalancer": "

Deregisters the specified instances from the specified load balancer. After the instance is deregistered, it no longer receives traffic from the load balancer.

You can use DescribeLoadBalancers to verify that the instance is deregistered from the load balancer.

For more information, see Deregister and Register Amazon EC2 Instances in the Elastic Load Balancing Developer Guide.

", + "DescribeInstanceHealth": "

Describes the state of the specified instances registered with the specified load balancer. If no instances are specified, the call describes the state of all instances registered with the load balancer, not including any terminated instances.

", + "DescribeLoadBalancerAttributes": "

Describes the attributes for the specified load balancer.

", + "DescribeLoadBalancerPolicies": "

Describes the specified policies.

If you specify a load balancer name, the action returns the descriptions of all policies created for the load balancer. If you specify a policy name associated with your load balancer, the action returns the description of that policy. If you don't specify a load balancer name, the action returns descriptions of the specified sample policies, or descriptions of all sample policies. The names of the sample policies have the ELBSample- prefix.

", + "DescribeLoadBalancerPolicyTypes": "

Describes the specified load balancer policy types.

You can use these policy types with CreateLoadBalancerPolicy to create policy configurations for a load balancer.

", + "DescribeLoadBalancers": "

Describes the specified the load balancers. If no load balancers are specified, the call describes all of your load balancers.

", + "DescribeTags": "

Describes the tags associated with the specified load balancers.

", + "DetachLoadBalancerFromSubnets": "

Removes the specified subnets from the set of configured subnets for the load balancer.

After a subnet is removed, all EC2 instances registered with the load balancer in the removed subnet go into the OutOfService state. Then, the load balancer balances the traffic among the remaining routable subnets.

", + "DisableAvailabilityZonesForLoadBalancer": "

Removes the specified Availability Zones from the set of Availability Zones for the specified load balancer.

There must be at least one Availability Zone registered with a load balancer at all times. After an Availability Zone is removed, all instances registered with the load balancer that are in the removed Availability Zone go into the OutOfService state. Then, the load balancer attempts to equally balance the traffic among its remaining Availability Zones.

For more information, see Disable an Availability Zone from a Load-Balanced Application in the Elastic Load Balancing Developer Guide.

", + "EnableAvailabilityZonesForLoadBalancer": "

Adds the specified Availability Zones to the set of Availability Zones for the specified load balancer.

The load balancer evenly distributes requests across all its registered Availability Zones that contain instances.

For more information, see Add Availability Zone in the Elastic Load Balancing Developer Guide.

", + "ModifyLoadBalancerAttributes": "

Modifies the attributes of the specified load balancer.

You can modify the load balancer attributes, such as AccessLogs, ConnectionDraining, and CrossZoneLoadBalancing by either enabling or disabling them. Or, you can modify the load balancer attribute ConnectionSettings by specifying an idle connection timeout value for your load balancer.

For more information, see the following in the Elastic Load Balancing Developer Guide:

", + "RegisterInstancesWithLoadBalancer": "

Adds the specified instances to the specified load balancer.

The instance must be a running instance in the same network as the load balancer (EC2-Classic or the same VPC). If you have EC2-Classic instances and a load balancer in a VPC with ClassicLink enabled, you can link the EC2-Classic instances to that VPC and then register the linked EC2-Classic instances with the load balancer in the VPC.

Note that RegisterInstanceWithLoadBalancer completes when the request has been registered. Instance registration happens shortly afterwards. To check the state of the registered instances, use DescribeLoadBalancers or DescribeInstanceHealth.

After the instance is registered, it starts receiving traffic and requests from the load balancer. Any instance that is not in one of the Availability Zones registered for the load balancer is moved to the OutOfService state. If an Availability Zone is added to the load balancer later, any instances registered with the load balancer move to the InService state.

If you stop an instance registered with a load balancer and then start it, the IP addresses associated with the instance changes. Elastic Load Balancing cannot recognize the new IP address, which prevents it from routing traffic to the instances. We recommend that you use the following sequence: stop the instance, deregister the instance, start the instance, and then register the instance. To deregister instances from a load balancer, use DeregisterInstancesFromLoadBalancer.

For more information, see Deregister and Register EC2 Instances in the Elastic Load Balancing Developer Guide.

", + "RemoveTags": "

Removes one or more tags from the specified load balancer.

", + "SetLoadBalancerListenerSSLCertificate": "

Sets the certificate that terminates the specified listener's SSL connections. The specified certificate replaces any prior certificate that was used on the same load balancer and port.

For more information about updating your SSL certificate, see Updating an SSL Certificate for a Load Balancer in the Elastic Load Balancing Developer Guide.

", + "SetLoadBalancerPoliciesForBackendServer": "

Replaces the set of policies associated with the specified port on which the back-end server is listening with a new set of policies. At this time, only the back-end server authentication policy type can be applied to the back-end ports; this policy type is composed of multiple public key policies.

Each time you use SetLoadBalancerPoliciesForBackendServer to enable the policies, use the PolicyNames parameter to list the policies that you want to enable.

You can use DescribeLoadBalancers or DescribeLoadBalancerPolicies to verify that the policy is associated with the back-end server.

", + "SetLoadBalancerPoliciesOfListener": "

Associates, updates, or disables a policy with a listener for the specified load balancer. You can associate multiple policies with a listener.

" + }, + "service": "Elastic Load Balancing

Elastic Load Balancing distributes incoming traffic across your EC2 instances.

For information about the features of Elastic Load Balancing, see What Is Elastic Load Balancing? in the Elastic Load Balancing Developer Guide.

For information about the AWS regions supported by Elastic Load Balancing, see Regions and Endpoints - Elastic Load Balancing in the Amazon Web Services General Reference.

All Elastic Load Balancing operations are idempotent, which means that they complete at most one time. If you repeat an operation, it succeeds with a 200 OK response code.

", + "shapes": { + "AccessLog": { + "base": "

Information about the AccessLog attribute.

", + "refs": { + "LoadBalancerAttributes$AccessLog": "

If enabled, the load balancer captures detailed information of all requests and delivers the information to the Amazon S3 bucket that you specify.

For more information, see Enable Access Logs in the Elastic Load Balancing Developer Guide.

" + } + }, + "AccessLogEnabled": { + "base": null, + "refs": { + "AccessLog$Enabled": "

Specifies whether access log is enabled for the load balancer.

" + } + }, + "AccessLogInterval": { + "base": null, + "refs": { + "AccessLog$EmitInterval": "

The interval for publishing the access logs. You can specify an interval of either 5 minutes or 60 minutes.

Default: 60 minutes

" + } + }, + "AccessLogPrefix": { + "base": null, + "refs": { + "AccessLog$S3BucketPrefix": "

The logical hierarchy you created for your Amazon S3 bucket, for example my-bucket-prefix/prod. If the prefix is not provided, the log is placed at the root level of the bucket.

" + } + }, + "AccessPointName": { + "base": null, + "refs": { + "AddAvailabilityZonesInput$LoadBalancerName": "

The name of the load balancer.

", + "ApplySecurityGroupsToLoadBalancerInput$LoadBalancerName": "

The name of the load balancer.

", + "AttachLoadBalancerToSubnetsInput$LoadBalancerName": "

The name of the load balancer.

", + "ConfigureHealthCheckInput$LoadBalancerName": "

The name of the load balancer.

", + "CreateAccessPointInput$LoadBalancerName": "

The name of the load balancer.

This name must be unique within your AWS account, must have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and cannot begin or end with a hyphen.

", + "CreateAppCookieStickinessPolicyInput$LoadBalancerName": "

The name of the load balancer.

", + "CreateLBCookieStickinessPolicyInput$LoadBalancerName": "

The name of the load balancer.

", + "CreateLoadBalancerListenerInput$LoadBalancerName": "

The name of the load balancer.

", + "CreateLoadBalancerPolicyInput$LoadBalancerName": "

The name of the load balancer.

", + "DeleteAccessPointInput$LoadBalancerName": "

The name of the load balancer.

", + "DeleteLoadBalancerListenerInput$LoadBalancerName": "

The name of the load balancer.

", + "DeleteLoadBalancerPolicyInput$LoadBalancerName": "

The name of the load balancer.

", + "DeregisterEndPointsInput$LoadBalancerName": "

The name of the load balancer.

", + "DescribeEndPointStateInput$LoadBalancerName": "

The name of the load balancer.

", + "DescribeLoadBalancerAttributesInput$LoadBalancerName": "

The name of the load balancer.

", + "DescribeLoadBalancerPoliciesInput$LoadBalancerName": "

The name of the load balancer.

", + "DetachLoadBalancerFromSubnetsInput$LoadBalancerName": "

The name of the load balancer.

", + "LoadBalancerDescription$LoadBalancerName": "

The name of the load balancer.

", + "LoadBalancerNames$member": null, + "LoadBalancerNamesMax20$member": null, + "ModifyLoadBalancerAttributesInput$LoadBalancerName": "

The name of the load balancer.

", + "ModifyLoadBalancerAttributesOutput$LoadBalancerName": "

The name of the load balancer.

", + "RegisterEndPointsInput$LoadBalancerName": "

The name of the load balancer.

", + "RemoveAvailabilityZonesInput$LoadBalancerName": "

The name of the load balancer.

", + "SetLoadBalancerListenerSSLCertificateInput$LoadBalancerName": "

The name of the load balancer.

", + "SetLoadBalancerPoliciesForBackendServerInput$LoadBalancerName": "

The name of the load balancer.

", + "SetLoadBalancerPoliciesOfListenerInput$LoadBalancerName": "

The name of the load balancer.

", + "TagDescription$LoadBalancerName": "

The name of the load balancer.

" + } + }, + "AccessPointNotFoundException": { + "base": "

The specified load balancer does not exist.

", + "refs": { + } + }, + "AccessPointPort": { + "base": null, + "refs": { + "Listener$LoadBalancerPort": "

The port on which the load balancer is listening. The supported ports are: 25, 80, 443, 465, 587, and 1024-65535.

", + "Ports$member": null, + "SetLoadBalancerListenerSSLCertificateInput$LoadBalancerPort": "

The port that uses the specified SSL certificate.

", + "SetLoadBalancerPoliciesOfListenerInput$LoadBalancerPort": "

The external port of the load balancer for the policy.

" + } + }, + "AddAvailabilityZonesInput": { + "base": null, + "refs": { + } + }, + "AddAvailabilityZonesOutput": { + "base": null, + "refs": { + } + }, + "AddTagsInput": { + "base": null, + "refs": { + } + }, + "AddTagsOutput": { + "base": null, + "refs": { + } + }, + "AdditionalAttribute": { + "base": "

This data type is reserved.

", + "refs": { + "AdditionalAttributes$member": null + } + }, + "AdditionalAttributes": { + "base": null, + "refs": { + "LoadBalancerAttributes$AdditionalAttributes": "

This parameter is reserved.

" + } + }, + "AppCookieStickinessPolicies": { + "base": null, + "refs": { + "Policies$AppCookieStickinessPolicies": "

The stickiness policies created using CreateAppCookieStickinessPolicy.

" + } + }, + "AppCookieStickinessPolicy": { + "base": "

Information about a policy for application-controlled session stickiness.

", + "refs": { + "AppCookieStickinessPolicies$member": null + } + }, + "ApplySecurityGroupsToLoadBalancerInput": { + "base": null, + "refs": { + } + }, + "ApplySecurityGroupsToLoadBalancerOutput": { + "base": null, + "refs": { + } + }, + "AttachLoadBalancerToSubnetsInput": { + "base": null, + "refs": { + } + }, + "AttachLoadBalancerToSubnetsOutput": { + "base": null, + "refs": { + } + }, + "AttributeName": { + "base": null, + "refs": { + "PolicyAttribute$AttributeName": "

The name of the attribute.

", + "PolicyAttributeDescription$AttributeName": "

The name of the attribute.

", + "PolicyAttributeTypeDescription$AttributeName": "

The name of the attribute.

" + } + }, + "AttributeType": { + "base": null, + "refs": { + "PolicyAttributeTypeDescription$AttributeType": "

The type of the attribute. For example, Boolean or Integer.

" + } + }, + "AttributeValue": { + "base": null, + "refs": { + "PolicyAttribute$AttributeValue": "

The value of the attribute.

", + "PolicyAttributeDescription$AttributeValue": "

The value of the attribute.

" + } + }, + "AvailabilityZone": { + "base": null, + "refs": { + "AvailabilityZones$member": null + } + }, + "AvailabilityZones": { + "base": null, + "refs": { + "AddAvailabilityZonesInput$AvailabilityZones": "

The Availability Zones. These must be in the same region as the load balancer.

", + "AddAvailabilityZonesOutput$AvailabilityZones": "

The updated list of Availability Zones for the load balancer.

", + "CreateAccessPointInput$AvailabilityZones": "

One or more Availability Zones from the same region as the load balancer. Traffic is equally distributed across all specified Availability Zones.

You must specify at least one Availability Zone.

You can add more Availability Zones after you create the load balancer using EnableAvailabilityZonesForLoadBalancer.

", + "LoadBalancerDescription$AvailabilityZones": "

The Availability Zones for the load balancer.

", + "RemoveAvailabilityZonesInput$AvailabilityZones": "

The Availability Zones.

", + "RemoveAvailabilityZonesOutput$AvailabilityZones": "

The remaining Availability Zones for the load balancer.

" + } + }, + "BackendServerDescription": { + "base": "

Information about the configuration of a back-end server.

", + "refs": { + "BackendServerDescriptions$member": null + } + }, + "BackendServerDescriptions": { + "base": null, + "refs": { + "LoadBalancerDescription$BackendServerDescriptions": "

Information about the back-end servers.

" + } + }, + "Cardinality": { + "base": null, + "refs": { + "PolicyAttributeTypeDescription$Cardinality": "

The cardinality of the attribute.

Valid values:

  • ONE(1) : Single value required
  • ZERO_OR_ONE(0..1) : Up to one value can be supplied
  • ZERO_OR_MORE(0..*) : Optional. Multiple values are allowed
  • ONE_OR_MORE(1..*0) : Required. Multiple values are allowed
" + } + }, + "CertificateNotFoundException": { + "base": "

The specified SSL ID does not refer to a valid SSL certificate in AWS Identity and Access Management (IAM).

", + "refs": { + } + }, + "ConfigureHealthCheckInput": { + "base": null, + "refs": { + } + }, + "ConfigureHealthCheckOutput": { + "base": null, + "refs": { + } + }, + "ConnectionDraining": { + "base": "

Information about the ConnectionDraining attribute.

", + "refs": { + "LoadBalancerAttributes$ConnectionDraining": "

If enabled, the load balancer allows existing requests to complete before the load balancer shifts traffic away from a deregistered or unhealthy back-end instance.

For more information, see Enable Connection Draining in the Elastic Load Balancing Developer Guide.

" + } + }, + "ConnectionDrainingEnabled": { + "base": null, + "refs": { + "ConnectionDraining$Enabled": "

Specifies whether connection draining is enabled for the load balancer.

" + } + }, + "ConnectionDrainingTimeout": { + "base": null, + "refs": { + "ConnectionDraining$Timeout": "

The maximum time, in seconds, to keep the existing connections open before deregistering the instances.

" + } + }, + "ConnectionSettings": { + "base": "

Information about the ConnectionSettings attribute.

", + "refs": { + "LoadBalancerAttributes$ConnectionSettings": "

If enabled, the load balancer allows the connections to remain idle (no data is sent over the connection) for the specified duration.

By default, Elastic Load Balancing maintains a 60-second idle connection timeout for both front-end and back-end connections of your load balancer. For more information, see Configure Idle Connection Timeout in the Elastic Load Balancing Developer Guide.

" + } + }, + "CookieExpirationPeriod": { + "base": null, + "refs": { + "CreateLBCookieStickinessPolicyInput$CookieExpirationPeriod": "

The time period, in seconds, after which the cookie should be considered stale. If you do not specify this parameter, the sticky session lasts for the duration of the browser session.

", + "LBCookieStickinessPolicy$CookieExpirationPeriod": "

The time period, in seconds, after which the cookie should be considered stale. If this parameter is not specified, the stickiness session lasts for the duration of the browser session.

" + } + }, + "CookieName": { + "base": null, + "refs": { + "AppCookieStickinessPolicy$CookieName": "

The name of the application cookie used for stickiness.

", + "CreateAppCookieStickinessPolicyInput$CookieName": "

The name of the application cookie used for stickiness.

" + } + }, + "CreateAccessPointInput": { + "base": null, + "refs": { + } + }, + "CreateAccessPointOutput": { + "base": null, + "refs": { + } + }, + "CreateAppCookieStickinessPolicyInput": { + "base": null, + "refs": { + } + }, + "CreateAppCookieStickinessPolicyOutput": { + "base": null, + "refs": { + } + }, + "CreateLBCookieStickinessPolicyInput": { + "base": null, + "refs": { + } + }, + "CreateLBCookieStickinessPolicyOutput": { + "base": null, + "refs": { + } + }, + "CreateLoadBalancerListenerInput": { + "base": null, + "refs": { + } + }, + "CreateLoadBalancerListenerOutput": { + "base": null, + "refs": { + } + }, + "CreateLoadBalancerPolicyInput": { + "base": null, + "refs": { + } + }, + "CreateLoadBalancerPolicyOutput": { + "base": null, + "refs": { + } + }, + "CreatedTime": { + "base": null, + "refs": { + "LoadBalancerDescription$CreatedTime": "

The date and time the load balancer was created.

" + } + }, + "CrossZoneLoadBalancing": { + "base": "

Information about the CrossZoneLoadBalancing attribute.

", + "refs": { + "LoadBalancerAttributes$CrossZoneLoadBalancing": "

If enabled, the load balancer routes the request traffic evenly across all back-end instances regardless of the Availability Zones.

For more information, see Enable Cross-Zone Load Balancing in the Elastic Load Balancing Developer Guide.

" + } + }, + "CrossZoneLoadBalancingEnabled": { + "base": null, + "refs": { + "CrossZoneLoadBalancing$Enabled": "

Specifies whether cross-zone load balancing is enabled for the load balancer.

" + } + }, + "DNSName": { + "base": null, + "refs": { + "CreateAccessPointOutput$DNSName": "

The DNS name of the load balancer.

", + "LoadBalancerDescription$DNSName": "

The external DNS name of the load balancer.

", + "LoadBalancerDescription$CanonicalHostedZoneName": "

The Amazon Route 53 hosted zone associated with the load balancer.

For more information, see Using Domain Names With Elastic Load Balancing in the Elastic Load Balancing Developer Guide.

", + "LoadBalancerDescription$CanonicalHostedZoneNameID": "

The ID of the Amazon Route 53 hosted zone name associated with the load balancer.

" + } + }, + "DefaultValue": { + "base": null, + "refs": { + "PolicyAttributeTypeDescription$DefaultValue": "

The default value of the attribute, if applicable.

" + } + }, + "DeleteAccessPointInput": { + "base": null, + "refs": { + } + }, + "DeleteAccessPointOutput": { + "base": null, + "refs": { + } + }, + "DeleteLoadBalancerListenerInput": { + "base": null, + "refs": { + } + }, + "DeleteLoadBalancerListenerOutput": { + "base": null, + "refs": { + } + }, + "DeleteLoadBalancerPolicyInput": { + "base": "=", + "refs": { + } + }, + "DeleteLoadBalancerPolicyOutput": { + "base": null, + "refs": { + } + }, + "DeregisterEndPointsInput": { + "base": null, + "refs": { + } + }, + "DeregisterEndPointsOutput": { + "base": null, + "refs": { + } + }, + "DescribeAccessPointsInput": { + "base": null, + "refs": { + } + }, + "DescribeAccessPointsOutput": { + "base": null, + "refs": { + } + }, + "DescribeEndPointStateInput": { + "base": null, + "refs": { + } + }, + "DescribeEndPointStateOutput": { + "base": null, + "refs": { + } + }, + "DescribeLoadBalancerAttributesInput": { + "base": null, + "refs": { + } + }, + "DescribeLoadBalancerAttributesOutput": { + "base": null, + "refs": { + } + }, + "DescribeLoadBalancerPoliciesInput": { + "base": null, + "refs": { + } + }, + "DescribeLoadBalancerPoliciesOutput": { + "base": null, + "refs": { + } + }, + "DescribeLoadBalancerPolicyTypesInput": { + "base": null, + "refs": { + } + }, + "DescribeLoadBalancerPolicyTypesOutput": { + "base": null, + "refs": { + } + }, + "DescribeTagsInput": { + "base": null, + "refs": { + } + }, + "DescribeTagsOutput": { + "base": null, + "refs": { + } + }, + "Description": { + "base": null, + "refs": { + "InstanceState$Description": "

A description of the instance state. This string can contain one or more of the following messages.

  • N/A

  • A transient error occurred. Please try again later.

  • Instance has failed at least the UnhealthyThreshold number of health checks consecutively.

  • Instance has not passed the configured HealthyThreshold number of health checks consecutively.

  • Instance registration is still in progress.

  • Instance is in the EC2 Availability Zone for which LoadBalancer is not configured to route traffic to.

  • Instance is not currently registered with the LoadBalancer.

  • Instance deregistration currently in progress.

  • Disable Availability Zone is currently in progress.

  • Instance is in pending state.

  • Instance is in stopped state.

  • Instance is in terminated state.

", + "PolicyAttributeTypeDescription$Description": "

A description of the attribute.

", + "PolicyTypeDescription$Description": "

A description of the policy type.

" + } + }, + "DetachLoadBalancerFromSubnetsInput": { + "base": null, + "refs": { + } + }, + "DetachLoadBalancerFromSubnetsOutput": { + "base": null, + "refs": { + } + }, + "DuplicateAccessPointNameException": { + "base": "

The specified load balancer name already exists for this account.

", + "refs": { + } + }, + "DuplicateListenerException": { + "base": "

A listener already exists for the specified LoadBalancerName and LoadBalancerPort, but with a different InstancePort, Protocol, or SSLCertificateId.

", + "refs": { + } + }, + "DuplicatePolicyNameException": { + "base": "

A policy with the specified name already exists for this load balancer.

", + "refs": { + } + }, + "DuplicateTagKeysException": { + "base": "

A tag key was specified more than once.

", + "refs": { + } + }, + "EndPointPort": { + "base": null, + "refs": { + "SetLoadBalancerPoliciesForBackendServerInput$InstancePort": "

The port number associated with the back-end server.

" + } + }, + "HealthCheck": { + "base": "

Information about a health check.

", + "refs": { + "ConfigureHealthCheckInput$HealthCheck": "

The configuration information for the new health check.

", + "ConfigureHealthCheckOutput$HealthCheck": "

The updated health check.

", + "LoadBalancerDescription$HealthCheck": "

Information about the health checks conducted on the load balancer.

" + } + }, + "HealthCheckInterval": { + "base": null, + "refs": { + "HealthCheck$Interval": "

The approximate interval, in seconds, between health checks of an individual instance.

" + } + }, + "HealthCheckTarget": { + "base": null, + "refs": { + "HealthCheck$Target": "

The instance being checked. The protocol is either TCP, HTTP, HTTPS, or SSL. The range of valid ports is one (1) through 65535.

TCP is the default, specified as a TCP: port pair, for example \"TCP:5000\". In this case, a health check simply attempts to open a TCP connection to the instance on the specified port. Failure to connect within the configured timeout is considered unhealthy.

SSL is also specified as SSL: port pair, for example, SSL:5000.

For HTTP/HTTPS, you must include a ping path in the string. HTTP is specified as a HTTP:port;/;PathToPing; grouping, for example \"HTTP:80/weather/us/wa/seattle\". In this case, a HTTP GET request is issued to the instance on the given port and path. Any answer other than \"200 OK\" within the timeout period is considered unhealthy.

The total length of the HTTP ping target must be 1024 16-bit Unicode characters or less.

" + } + }, + "HealthCheckTimeout": { + "base": null, + "refs": { + "HealthCheck$Timeout": "

The amount of time, in seconds, during which no response means a failed health check.

This value must be less than the Interval value.

" + } + }, + "HealthyThreshold": { + "base": null, + "refs": { + "HealthCheck$HealthyThreshold": "

The number of consecutive health checks successes required before moving the instance to the Healthy state.

" + } + }, + "IdleTimeout": { + "base": null, + "refs": { + "ConnectionSettings$IdleTimeout": "

The time, in seconds, that the connection is allowed to be idle (no data has been sent over the connection) before it is closed by the load balancer.

" + } + }, + "Instance": { + "base": "

The ID of a back-end instance.

", + "refs": { + "Instances$member": null + } + }, + "InstanceId": { + "base": null, + "refs": { + "Instance$InstanceId": "

The ID of the instance.

", + "InstanceState$InstanceId": "

The ID of the instance.

" + } + }, + "InstancePort": { + "base": null, + "refs": { + "BackendServerDescription$InstancePort": "

The port on which the back-end server is listening.

", + "Listener$InstancePort": "

The port on which the instance is listening.

" + } + }, + "InstanceState": { + "base": "

Information about the state of a back-end instance.

", + "refs": { + "InstanceStates$member": null + } + }, + "InstanceStates": { + "base": null, + "refs": { + "DescribeEndPointStateOutput$InstanceStates": "

Information about the health of the instances.

" + } + }, + "Instances": { + "base": null, + "refs": { + "DeregisterEndPointsInput$Instances": "

The IDs of the instances.

", + "DeregisterEndPointsOutput$Instances": "

The remaining instances registered with the load balancer.

", + "DescribeEndPointStateInput$Instances": "

The IDs of the instances.

", + "LoadBalancerDescription$Instances": "

The IDs of the instances for the load balancer.

", + "RegisterEndPointsInput$Instances": "

The IDs of the instances.

", + "RegisterEndPointsOutput$Instances": "

The updated list of instances for the load balancer.

" + } + }, + "InvalidConfigurationRequestException": { + "base": "

The requested configuration change is not valid.

", + "refs": { + } + }, + "InvalidEndPointException": { + "base": "

The specified endpoint is not valid.

", + "refs": { + } + }, + "InvalidSchemeException": { + "base": "

The specified value for the schema is not valid. You can only specify a scheme for load balancers in a VPC.

", + "refs": { + } + }, + "InvalidSecurityGroupException": { + "base": "

One or more of the specified security groups do not exist.

", + "refs": { + } + }, + "InvalidSubnetException": { + "base": "

The specified VPC has no associated Internet gateway.

", + "refs": { + } + }, + "LBCookieStickinessPolicies": { + "base": null, + "refs": { + "Policies$LBCookieStickinessPolicies": "

The stickiness policies created using CreateLBCookieStickinessPolicy.

" + } + }, + "LBCookieStickinessPolicy": { + "base": "

Information about a policy for duration-based session stickiness.

", + "refs": { + "LBCookieStickinessPolicies$member": null + } + }, + "Listener": { + "base": "

Information about a listener.

For information about the protocols and the ports supported by Elastic Load Balancing, see Listener Configurations for Elastic Load Balancing in the Elastic Load Balancing Developer Guide.

", + "refs": { + "ListenerDescription$Listener": null, + "Listeners$member": null + } + }, + "ListenerDescription": { + "base": "

The policies enabled for a listener.

", + "refs": { + "ListenerDescriptions$member": null + } + }, + "ListenerDescriptions": { + "base": null, + "refs": { + "LoadBalancerDescription$ListenerDescriptions": "

The listeners for the load balancer.

" + } + }, + "ListenerNotFoundException": { + "base": "

The load balancer does not have a listener configured at the specified port.

", + "refs": { + } + }, + "Listeners": { + "base": null, + "refs": { + "CreateAccessPointInput$Listeners": "

The listeners.

For more information, see Listeners for Your Load Balancer in the Elastic Load Balancing Developer Guide.

", + "CreateLoadBalancerListenerInput$Listeners": "

The listeners.

" + } + }, + "LoadBalancerAttributeNotFoundException": { + "base": "

The specified load balancer attribute does not exist.

", + "refs": { + } + }, + "LoadBalancerAttributes": { + "base": "

The attributes for a load balancer.

", + "refs": { + "DescribeLoadBalancerAttributesOutput$LoadBalancerAttributes": "

Information about the load balancer attributes.

", + "ModifyLoadBalancerAttributesInput$LoadBalancerAttributes": "

The attributes of the load balancer.

", + "ModifyLoadBalancerAttributesOutput$LoadBalancerAttributes": null + } + }, + "LoadBalancerDescription": { + "base": "

Information about a load balancer.

", + "refs": { + "LoadBalancerDescriptions$member": null + } + }, + "LoadBalancerDescriptions": { + "base": null, + "refs": { + "DescribeAccessPointsOutput$LoadBalancerDescriptions": "

Information about the load balancers.

" + } + }, + "LoadBalancerNames": { + "base": null, + "refs": { + "AddTagsInput$LoadBalancerNames": "

The name of the load balancer. You can specify one load balancer only.

", + "DescribeAccessPointsInput$LoadBalancerNames": "

The names of the load balancers.

", + "RemoveTagsInput$LoadBalancerNames": "

The name of the load balancer. You can specify a maximum of one load balancer name.

" + } + }, + "LoadBalancerNamesMax20": { + "base": null, + "refs": { + "DescribeTagsInput$LoadBalancerNames": "

The names of the load balancers.

" + } + }, + "LoadBalancerScheme": { + "base": null, + "refs": { + "CreateAccessPointInput$Scheme": "

The type of a load balancer. Valid only for load balancers in a VPC.

By default, Elastic Load Balancing creates an Internet-facing load balancer with a publicly resolvable DNS name, which resolves to public IP addresses. For more information about Internet-facing and Internal load balancers, see Internet-facing and Internal Load Balancers in the Elastic Load Balancing Developer Guide.

Specify internal to create an internal load balancer with a DNS name that resolves to private IP addresses.

", + "LoadBalancerDescription$Scheme": "

The type of load balancer. Valid only for load balancers in a VPC.

If Scheme is internet-facing, the load balancer has a public DNS name that resolves to a public IP address.

If Scheme is internal, the load balancer has a public DNS name that resolves to a private IP address.

" + } + }, + "Marker": { + "base": null, + "refs": { + "DescribeAccessPointsInput$Marker": "

The marker for the next set of results. (You received this marker from a previous call.)

", + "DescribeAccessPointsOutput$NextMarker": "

The marker to use when requesting the next set of results. If there are no additional results, the string is empty.

" + } + }, + "ModifyLoadBalancerAttributesInput": { + "base": null, + "refs": { + } + }, + "ModifyLoadBalancerAttributesOutput": { + "base": null, + "refs": { + } + }, + "PageSize": { + "base": null, + "refs": { + "DescribeAccessPointsInput$PageSize": "

The maximum number of results to return with this call (a number from 1 to 400). The default is 400.

" + } + }, + "Policies": { + "base": "

The policies for a load balancer.

", + "refs": { + "LoadBalancerDescription$Policies": "

The policies defined for the load balancer.

" + } + }, + "PolicyAttribute": { + "base": "

Information about a policy attribute.

", + "refs": { + "PolicyAttributes$member": null + } + }, + "PolicyAttributeDescription": { + "base": "

Information about a policy attribute.

", + "refs": { + "PolicyAttributeDescriptions$member": null + } + }, + "PolicyAttributeDescriptions": { + "base": null, + "refs": { + "PolicyDescription$PolicyAttributeDescriptions": "

The policy attributes.

" + } + }, + "PolicyAttributeTypeDescription": { + "base": "

Information about a policy attribute type.

", + "refs": { + "PolicyAttributeTypeDescriptions$member": null + } + }, + "PolicyAttributeTypeDescriptions": { + "base": null, + "refs": { + "PolicyTypeDescription$PolicyAttributeTypeDescriptions": "

The description of the policy attributes associated with the policies defined by Elastic Load Balancing.

" + } + }, + "PolicyAttributes": { + "base": null, + "refs": { + "CreateLoadBalancerPolicyInput$PolicyAttributes": "

The attributes for the policy.

" + } + }, + "PolicyDescription": { + "base": "

Information about a policy.

", + "refs": { + "PolicyDescriptions$member": null + } + }, + "PolicyDescriptions": { + "base": null, + "refs": { + "DescribeLoadBalancerPoliciesOutput$PolicyDescriptions": "

Information about the policies.

" + } + }, + "PolicyName": { + "base": null, + "refs": { + "AppCookieStickinessPolicy$PolicyName": "

The mnemonic name for the policy being created. The name must be unique within a set of policies for this load balancer.

", + "CreateAppCookieStickinessPolicyInput$PolicyName": "

The name of the policy being created. This name must be unique within the set of policies for this load balancer.

", + "CreateLBCookieStickinessPolicyInput$PolicyName": "

The name of the policy being created. This name must be unique within the set of policies for this load balancer.

", + "CreateLoadBalancerPolicyInput$PolicyName": "

The name of the load balancer policy to be created. This name must be unique within the set of policies for this load balancer.

", + "DeleteLoadBalancerPolicyInput$PolicyName": "

The name of the policy.

", + "LBCookieStickinessPolicy$PolicyName": "

The name for the policy being created. The name must be unique within the set of policies for this load balancer.

", + "PolicyDescription$PolicyName": "

The name of the policy.

", + "PolicyNames$member": null + } + }, + "PolicyNames": { + "base": null, + "refs": { + "BackendServerDescription$PolicyNames": "

The names of the policies enabled for the back-end server.

", + "DescribeLoadBalancerPoliciesInput$PolicyNames": "

The names of the policies.

", + "ListenerDescription$PolicyNames": "

The policies. If there are no policies enabled, the list is empty.

", + "Policies$OtherPolicies": "

The policies other than the stickiness policies.

", + "SetLoadBalancerPoliciesForBackendServerInput$PolicyNames": "

The names of the policies. If the list is empty, then all current polices are removed from the back-end server.

", + "SetLoadBalancerPoliciesOfListenerInput$PolicyNames": "

The names of the policies. If the list is empty, the current policy is removed from the listener.

" + } + }, + "PolicyNotFoundException": { + "base": "

One or more of the specified policies do not exist.

", + "refs": { + } + }, + "PolicyTypeDescription": { + "base": "

Information about a policy type.

", + "refs": { + "PolicyTypeDescriptions$member": null + } + }, + "PolicyTypeDescriptions": { + "base": null, + "refs": { + "DescribeLoadBalancerPolicyTypesOutput$PolicyTypeDescriptions": "

Information about the policy types.

" + } + }, + "PolicyTypeName": { + "base": null, + "refs": { + "CreateLoadBalancerPolicyInput$PolicyTypeName": "

The name of the base policy type. To get the list of policy types, use DescribeLoadBalancerPolicyTypes.

", + "PolicyDescription$PolicyTypeName": "

The name of the policy type.

", + "PolicyTypeDescription$PolicyTypeName": "

The name of the policy type.

", + "PolicyTypeNames$member": null + } + }, + "PolicyTypeNames": { + "base": null, + "refs": { + "DescribeLoadBalancerPolicyTypesInput$PolicyTypeNames": "

The names of the policy types. If no names are specified, describes all policy types defined by Elastic Load Balancing.

" + } + }, + "PolicyTypeNotFoundException": { + "base": "

One or more of the specified policy types do not exist.

", + "refs": { + } + }, + "Ports": { + "base": null, + "refs": { + "DeleteLoadBalancerListenerInput$LoadBalancerPorts": "

The client port numbers of the listeners.

" + } + }, + "Protocol": { + "base": null, + "refs": { + "Listener$Protocol": "

The load balancer transport protocol to use for routing: HTTP, HTTPS, TCP, or SSL.

", + "Listener$InstanceProtocol": "

The protocol to use for routing traffic to back-end instances: HTTP, HTTPS, TCP, or SSL.

If the front-end protocol is HTTP, HTTPS, TCP, or SSL, InstanceProtocol must be at the same protocol.

If there is another listener with the same InstancePort whose InstanceProtocol is secure, (HTTPS or SSL), the listener's InstanceProtocol must also be secure.

If there is another listener with the same InstancePort whose InstanceProtocol is HTTP or TCP, the listener's InstanceProtocol must be HTTP or TCP.

" + } + }, + "ReasonCode": { + "base": null, + "refs": { + "InstanceState$ReasonCode": "

Information about the cause of OutOfService instances. Specifically, whether the cause is Elastic Load Balancing or the instance.

Valid values: ELB | Instance | N/A

" + } + }, + "RegisterEndPointsInput": { + "base": null, + "refs": { + } + }, + "RegisterEndPointsOutput": { + "base": null, + "refs": { + } + }, + "RemoveAvailabilityZonesInput": { + "base": null, + "refs": { + } + }, + "RemoveAvailabilityZonesOutput": { + "base": null, + "refs": { + } + }, + "RemoveTagsInput": { + "base": null, + "refs": { + } + }, + "RemoveTagsOutput": { + "base": null, + "refs": { + } + }, + "S3BucketName": { + "base": null, + "refs": { + "AccessLog$S3BucketName": "

The name of the Amazon S3 bucket where the access logs are stored.

" + } + }, + "SSLCertificateId": { + "base": null, + "refs": { + "Listener$SSLCertificateId": "

The Amazon Resource Name (ARN) of the server certificate.

", + "SetLoadBalancerListenerSSLCertificateInput$SSLCertificateId": "

The Amazon Resource Name (ARN) of the SSL certificate.

" + } + }, + "SecurityGroupId": { + "base": null, + "refs": { + "SecurityGroups$member": null + } + }, + "SecurityGroupName": { + "base": null, + "refs": { + "SourceSecurityGroup$GroupName": "

The name of the security group.

" + } + }, + "SecurityGroupOwnerAlias": { + "base": null, + "refs": { + "SourceSecurityGroup$OwnerAlias": "

The owner of the security group.

" + } + }, + "SecurityGroups": { + "base": null, + "refs": { + "ApplySecurityGroupsToLoadBalancerInput$SecurityGroups": "

The IDs of the security groups to associate with the load balancer. Note that you cannot specify the name of the security group.

", + "ApplySecurityGroupsToLoadBalancerOutput$SecurityGroups": "

The IDs of the security groups associated with the load balancer.

", + "CreateAccessPointInput$SecurityGroups": "

The IDs of the security groups to assign to the load balancer.

", + "LoadBalancerDescription$SecurityGroups": "

The security groups for the load balancer. Valid only for load balancers in a VPC.

" + } + }, + "SetLoadBalancerListenerSSLCertificateInput": { + "base": null, + "refs": { + } + }, + "SetLoadBalancerListenerSSLCertificateOutput": { + "base": null, + "refs": { + } + }, + "SetLoadBalancerPoliciesForBackendServerInput": { + "base": null, + "refs": { + } + }, + "SetLoadBalancerPoliciesForBackendServerOutput": { + "base": null, + "refs": { + } + }, + "SetLoadBalancerPoliciesOfListenerInput": { + "base": null, + "refs": { + } + }, + "SetLoadBalancerPoliciesOfListenerOutput": { + "base": null, + "refs": { + } + }, + "SourceSecurityGroup": { + "base": "

Information about a source security group.

", + "refs": { + "LoadBalancerDescription$SourceSecurityGroup": "

The security group that you can use as part of your inbound rules for your load balancer's back-end application instances. To only allow traffic from load balancers, add a security group rule to your back end instance that specifies this source security group as the inbound source.

" + } + }, + "State": { + "base": null, + "refs": { + "InstanceState$State": "

The current state of the instance.

Valid values: InService | OutOfService | Unknown

" + } + }, + "StringVal": { + "base": null, + "refs": { + "AdditionalAttribute$Key": "

This parameter is reserved.

", + "AdditionalAttribute$Value": "

This parameter is reserved.

" + } + }, + "SubnetId": { + "base": null, + "refs": { + "Subnets$member": null + } + }, + "SubnetNotFoundException": { + "base": "

One or more of the specified subnets do not exist.

", + "refs": { + } + }, + "Subnets": { + "base": null, + "refs": { + "AttachLoadBalancerToSubnetsInput$Subnets": "

The IDs of the subnets to add for the load balancer. You can add only one subnet per Availability Zone.

", + "AttachLoadBalancerToSubnetsOutput$Subnets": "

The IDs of the subnets attached to the load balancer.

", + "CreateAccessPointInput$Subnets": "

The IDs of the subnets in your VPC to attach to the load balancer. Specify one subnet per Availability Zone specified in AvailabilityZones.

", + "DetachLoadBalancerFromSubnetsInput$Subnets": "

The IDs of the subnets.

", + "DetachLoadBalancerFromSubnetsOutput$Subnets": "

The IDs of the remaining subnets for the load balancer.

", + "LoadBalancerDescription$Subnets": "

The IDs of the subnets for the load balancer.

" + } + }, + "Tag": { + "base": "

Information about a tag.

", + "refs": { + "TagList$member": null + } + }, + "TagDescription": { + "base": "

The tags associated with a load balancer.

", + "refs": { + "TagDescriptions$member": null + } + }, + "TagDescriptions": { + "base": null, + "refs": { + "DescribeTagsOutput$TagDescriptions": "

Information about the tags.

" + } + }, + "TagKey": { + "base": null, + "refs": { + "Tag$Key": "

The key of the tag.

", + "TagKeyOnly$Key": "

The name of the key.

" + } + }, + "TagKeyList": { + "base": null, + "refs": { + "RemoveTagsInput$Tags": "

The list of tag keys to remove.

" + } + }, + "TagKeyOnly": { + "base": "

The key of a tag.

", + "refs": { + "TagKeyList$member": null + } + }, + "TagList": { + "base": null, + "refs": { + "AddTagsInput$Tags": "

The tags.

", + "CreateAccessPointInput$Tags": "

A list of tags to assign to the load balancer.

For more information about tagging your load balancer, see Tagging in the Elastic Load Balancing Developer Guide.

", + "TagDescription$Tags": "

The tags.

" + } + }, + "TagValue": { + "base": null, + "refs": { + "Tag$Value": "

The value of the tag.

" + } + }, + "TooManyAccessPointsException": { + "base": "

The quota for the number of load balancers has been reached.

", + "refs": { + } + }, + "TooManyPoliciesException": { + "base": "

The quota for the number of policies for this load balancer has been reached.

", + "refs": { + } + }, + "TooManyTagsException": { + "base": "

The quota for the number of tags that can be assigned to a load balancer has been reached.

", + "refs": { + } + }, + "UnhealthyThreshold": { + "base": null, + "refs": { + "HealthCheck$UnhealthyThreshold": "

The number of consecutive health check failures required before moving the instance to the Unhealthy state.

" + } + }, + "VPCId": { + "base": null, + "refs": { + "LoadBalancerDescription$VPCId": "

The ID of the VPC for the load balancer.

" + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/elasticloadbalancing/2012-06-01/paginators-1.json b/lib/aws-sdk/Aws/data/elasticloadbalancing/2012-06-01/paginators-1.json new file mode 100644 index 0000000..82113a7 --- /dev/null +++ b/lib/aws-sdk/Aws/data/elasticloadbalancing/2012-06-01/paginators-1.json @@ -0,0 +1,18 @@ +{ + "pagination": { + "DescribeInstanceHealth": { + "result_key": "InstanceStates" + }, + "DescribeLoadBalancerPolicies": { + "result_key": "PolicyDescriptions" + }, + "DescribeLoadBalancerPolicyTypes": { + "result_key": "PolicyTypeDescriptions" + }, + "DescribeLoadBalancers": { + "input_token": "Marker", + "output_token": "NextMarker", + "result_key": "LoadBalancerDescriptions" + } + } +} diff --git a/lib/aws-sdk/Aws/data/elasticloadbalancing/2012-06-01/waiters-2.json b/lib/aws-sdk/Aws/data/elasticloadbalancing/2012-06-01/waiters-2.json new file mode 100644 index 0000000..7b2196f --- /dev/null +++ b/lib/aws-sdk/Aws/data/elasticloadbalancing/2012-06-01/waiters-2.json @@ -0,0 +1,31 @@ +{ + "version": 2, + "waiters": { + "InstanceInService": { + "delay": 15, + "operation": "DescribeInstanceHealth", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "InService", + "matcher": "pathAll", + "state": "success", + "argument": "InstanceStates[].State" + } + ] + }, + "AnyInstanceInService": { + "delay": 15, + "operation": "DescribeInstanceHealth", + "maxAttempts": 40, + "acceptors": [ + { + "expected": "InService", + "matcher": "pathAny", + "state": "success", + "argument": "InstanceStates[].State" + } + ] + } + } +} diff --git a/lib/aws-sdk/Aws/data/elasticmapreduce/2009-03-31/api-2.json b/lib/aws-sdk/Aws/data/elasticmapreduce/2009-03-31/api-2.json new file mode 100644 index 0000000..19747b2 --- /dev/null +++ b/lib/aws-sdk/Aws/data/elasticmapreduce/2009-03-31/api-2.json @@ -0,0 +1,1357 @@ +{ + "metadata":{ + "apiVersion":"2009-03-31", + "endpointPrefix":"elasticmapreduce", + "jsonVersion":"1.1", + "serviceAbbreviation":"Amazon EMR", + "serviceFullName":"Amazon Elastic MapReduce", + "signatureVersion":"v4", + "targetPrefix":"ElasticMapReduce", + "timestampFormat":"unixTimestamp", + "protocol":"json" + }, + "operations":{ + "AddInstanceGroups":{ + "name":"AddInstanceGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddInstanceGroupsInput"}, + "output":{"shape":"AddInstanceGroupsOutput"}, + "errors":[ + { + "shape":"InternalServerError", + "error":{ + "code":"InternalFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "AddJobFlowSteps":{ + "name":"AddJobFlowSteps", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddJobFlowStepsInput"}, + "output":{"shape":"AddJobFlowStepsOutput"}, + "errors":[ + { + "shape":"InternalServerError", + "error":{ + "code":"InternalFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "AddTags":{ + "name":"AddTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddTagsInput"}, + "output":{"shape":"AddTagsOutput"}, + "errors":[ + { + "shape":"InternalServerException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "DescribeCluster":{ + "name":"DescribeCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeClusterInput"}, + "output":{"shape":"DescribeClusterOutput"}, + "errors":[ + { + "shape":"InternalServerException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "DescribeJobFlows":{ + "name":"DescribeJobFlows", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeJobFlowsInput"}, + "output":{"shape":"DescribeJobFlowsOutput"}, + "errors":[ + { + "shape":"InternalServerError", + "error":{ + "code":"InternalFailure", + "httpStatusCode":500 + }, + "exception":true + } + ], + "deprecated":true + }, + "DescribeStep":{ + "name":"DescribeStep", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeStepInput"}, + "output":{"shape":"DescribeStepOutput"}, + "errors":[ + { + "shape":"InternalServerException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "ListBootstrapActions":{ + "name":"ListBootstrapActions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListBootstrapActionsInput"}, + "output":{"shape":"ListBootstrapActionsOutput"}, + "errors":[ + { + "shape":"InternalServerException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "ListClusters":{ + "name":"ListClusters", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListClustersInput"}, + "output":{"shape":"ListClustersOutput"}, + "errors":[ + { + "shape":"InternalServerException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "ListInstanceGroups":{ + "name":"ListInstanceGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListInstanceGroupsInput"}, + "output":{"shape":"ListInstanceGroupsOutput"}, + "errors":[ + { + "shape":"InternalServerException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "ListInstances":{ + "name":"ListInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListInstancesInput"}, + "output":{"shape":"ListInstancesOutput"}, + "errors":[ + { + "shape":"InternalServerException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "ListSteps":{ + "name":"ListSteps", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListStepsInput"}, + "output":{"shape":"ListStepsOutput"}, + "errors":[ + { + "shape":"InternalServerException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "ModifyInstanceGroups":{ + "name":"ModifyInstanceGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyInstanceGroupsInput"}, + "errors":[ + { + "shape":"InternalServerError", + "error":{ + "code":"InternalFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "RemoveTags":{ + "name":"RemoveTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RemoveTagsInput"}, + "output":{"shape":"RemoveTagsOutput"}, + "errors":[ + { + "shape":"InternalServerException", + "exception":true, + "fault":true + }, + { + "shape":"InvalidRequestException", + "exception":true + } + ] + }, + "RunJobFlow":{ + "name":"RunJobFlow", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RunJobFlowInput"}, + "output":{"shape":"RunJobFlowOutput"}, + "errors":[ + { + "shape":"InternalServerError", + "error":{ + "code":"InternalFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "SetTerminationProtection":{ + "name":"SetTerminationProtection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetTerminationProtectionInput"}, + "errors":[ + { + "shape":"InternalServerError", + "error":{ + "code":"InternalFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "SetVisibleToAllUsers":{ + "name":"SetVisibleToAllUsers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetVisibleToAllUsersInput"}, + "errors":[ + { + "shape":"InternalServerError", + "error":{ + "code":"InternalFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "TerminateJobFlows":{ + "name":"TerminateJobFlows", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TerminateJobFlowsInput"}, + "errors":[ + { + "shape":"InternalServerError", + "error":{ + "code":"InternalFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + } + }, + "shapes":{ + "ActionOnFailure":{ + "type":"string", + "enum":[ + "TERMINATE_JOB_FLOW", + "TERMINATE_CLUSTER", + "CANCEL_AND_WAIT", + "CONTINUE" + ] + }, + "AddInstanceGroupsInput":{ + "type":"structure", + "required":[ + "InstanceGroups", + "JobFlowId" + ], + "members":{ + "InstanceGroups":{"shape":"InstanceGroupConfigList"}, + "JobFlowId":{"shape":"XmlStringMaxLen256"} + } + }, + "AddInstanceGroupsOutput":{ + "type":"structure", + "members":{ + "JobFlowId":{"shape":"XmlStringMaxLen256"}, + "InstanceGroupIds":{"shape":"InstanceGroupIdsList"} + } + }, + "AddJobFlowStepsInput":{ + "type":"structure", + "required":[ + "JobFlowId", + "Steps" + ], + "members":{ + "JobFlowId":{"shape":"XmlStringMaxLen256"}, + "Steps":{"shape":"StepConfigList"} + } + }, + "AddJobFlowStepsOutput":{ + "type":"structure", + "members":{ + "StepIds":{"shape":"StepIdsList"} + } + }, + "AddTagsInput":{ + "type":"structure", + "required":[ + "ResourceId", + "Tags" + ], + "members":{ + "ResourceId":{"shape":"ResourceId"}, + "Tags":{"shape":"TagList"} + } + }, + "AddTagsOutput":{ + "type":"structure", + "members":{ + } + }, + "Application":{ + "type":"structure", + "members":{ + "Name":{"shape":"String"}, + "Version":{"shape":"String"}, + "Args":{"shape":"StringList"}, + "AdditionalInfo":{"shape":"StringMap"} + } + }, + "ApplicationList":{ + "type":"list", + "member":{"shape":"Application"} + }, + "Boolean":{"type":"boolean"}, + "BootstrapActionConfig":{ + "type":"structure", + "required":[ + "Name", + "ScriptBootstrapAction" + ], + "members":{ + "Name":{"shape":"XmlStringMaxLen256"}, + "ScriptBootstrapAction":{"shape":"ScriptBootstrapActionConfig"} + } + }, + "BootstrapActionConfigList":{ + "type":"list", + "member":{"shape":"BootstrapActionConfig"} + }, + "BootstrapActionDetail":{ + "type":"structure", + "members":{ + "BootstrapActionConfig":{"shape":"BootstrapActionConfig"} + } + }, + "BootstrapActionDetailList":{ + "type":"list", + "member":{"shape":"BootstrapActionDetail"} + }, + "Cluster":{ + "type":"structure", + "members":{ + "Id":{"shape":"ClusterId"}, + "Name":{"shape":"String"}, + "Status":{"shape":"ClusterStatus"}, + "Ec2InstanceAttributes":{"shape":"Ec2InstanceAttributes"}, + "LogUri":{"shape":"String"}, + "RequestedAmiVersion":{"shape":"String"}, + "RunningAmiVersion":{"shape":"String"}, + "AutoTerminate":{"shape":"Boolean"}, + "TerminationProtected":{"shape":"Boolean"}, + "VisibleToAllUsers":{"shape":"Boolean"}, + "Applications":{"shape":"ApplicationList"}, + "Tags":{"shape":"TagList"}, + "ServiceRole":{"shape":"String"}, + "NormalizedInstanceHours":{"shape":"Integer"}, + "MasterPublicDnsName":{"shape":"String"} + } + }, + "ClusterId":{"type":"string"}, + "ClusterState":{ + "type":"string", + "enum":[ + "STARTING", + "BOOTSTRAPPING", + "RUNNING", + "WAITING", + "TERMINATING", + "TERMINATED", + "TERMINATED_WITH_ERRORS" + ] + }, + "ClusterStateChangeReason":{ + "type":"structure", + "members":{ + "Code":{"shape":"ClusterStateChangeReasonCode"}, + "Message":{"shape":"String"} + } + }, + "ClusterStateChangeReasonCode":{ + "type":"string", + "enum":[ + "INTERNAL_ERROR", + "VALIDATION_ERROR", + "INSTANCE_FAILURE", + "BOOTSTRAP_FAILURE", + "USER_REQUEST", + "STEP_FAILURE", + "ALL_STEPS_COMPLETED" + ] + }, + "ClusterStateList":{ + "type":"list", + "member":{"shape":"ClusterState"} + }, + "ClusterStatus":{ + "type":"structure", + "members":{ + "State":{"shape":"ClusterState"}, + "StateChangeReason":{"shape":"ClusterStateChangeReason"}, + "Timeline":{"shape":"ClusterTimeline"} + } + }, + "ClusterSummary":{ + "type":"structure", + "members":{ + "Id":{"shape":"ClusterId"}, + "Name":{"shape":"String"}, + "Status":{"shape":"ClusterStatus"}, + "NormalizedInstanceHours":{"shape":"Integer"} + } + }, + "ClusterSummaryList":{ + "type":"list", + "member":{"shape":"ClusterSummary"} + }, + "ClusterTimeline":{ + "type":"structure", + "members":{ + "CreationDateTime":{"shape":"Date"}, + "ReadyDateTime":{"shape":"Date"}, + "EndDateTime":{"shape":"Date"} + } + }, + "Command":{ + "type":"structure", + "members":{ + "Name":{"shape":"String"}, + "ScriptPath":{"shape":"String"}, + "Args":{"shape":"StringList"} + } + }, + "CommandList":{ + "type":"list", + "member":{"shape":"Command"} + }, + "Date":{"type":"timestamp"}, + "DescribeClusterInput":{ + "type":"structure", + "required":["ClusterId"], + "members":{ + "ClusterId":{"shape":"ClusterId"} + } + }, + "DescribeClusterOutput":{ + "type":"structure", + "members":{ + "Cluster":{"shape":"Cluster"} + } + }, + "DescribeJobFlowsInput":{ + "type":"structure", + "members":{ + "CreatedAfter":{"shape":"Date"}, + "CreatedBefore":{"shape":"Date"}, + "JobFlowIds":{"shape":"XmlStringList"}, + "JobFlowStates":{"shape":"JobFlowExecutionStateList"} + } + }, + "DescribeJobFlowsOutput":{ + "type":"structure", + "members":{ + "JobFlows":{"shape":"JobFlowDetailList"} + } + }, + "DescribeStepInput":{ + "type":"structure", + "required":[ + "ClusterId", + "StepId" + ], + "members":{ + "ClusterId":{"shape":"ClusterId"}, + "StepId":{"shape":"StepId"} + } + }, + "DescribeStepOutput":{ + "type":"structure", + "members":{ + "Step":{"shape":"Step"} + } + }, + "EC2InstanceIdsToTerminateList":{ + "type":"list", + "member":{"shape":"InstanceId"} + }, + "Ec2InstanceAttributes":{ + "type":"structure", + "members":{ + "Ec2KeyName":{"shape":"String"}, + "Ec2SubnetId":{"shape":"String"}, + "Ec2AvailabilityZone":{"shape":"String"}, + "IamInstanceProfile":{"shape":"String"}, + "EmrManagedMasterSecurityGroup":{"shape":"String"}, + "EmrManagedSlaveSecurityGroup":{"shape":"String"}, + "AdditionalMasterSecurityGroups":{"shape":"StringList"}, + "AdditionalSlaveSecurityGroups":{"shape":"StringList"} + } + }, + "ErrorCode":{ + "type":"string", + "min":1, + "max":256 + }, + "ErrorMessage":{"type":"string"}, + "HadoopJarStepConfig":{ + "type":"structure", + "required":["Jar"], + "members":{ + "Properties":{"shape":"KeyValueList"}, + "Jar":{"shape":"XmlString"}, + "MainClass":{"shape":"XmlString"}, + "Args":{"shape":"XmlStringList"} + } + }, + "HadoopStepConfig":{ + "type":"structure", + "members":{ + "Jar":{"shape":"String"}, + "Properties":{"shape":"StringMap"}, + "MainClass":{"shape":"String"}, + "Args":{"shape":"StringList"} + } + }, + "Instance":{ + "type":"structure", + "members":{ + "Id":{"shape":"InstanceId"}, + "Ec2InstanceId":{"shape":"InstanceId"}, + "PublicDnsName":{"shape":"String"}, + "PublicIpAddress":{"shape":"String"}, + "PrivateDnsName":{"shape":"String"}, + "PrivateIpAddress":{"shape":"String"}, + "Status":{"shape":"InstanceStatus"} + } + }, + "InstanceGroup":{ + "type":"structure", + "members":{ + "Id":{"shape":"InstanceGroupId"}, + "Name":{"shape":"String"}, + "Market":{"shape":"MarketType"}, + "InstanceGroupType":{"shape":"InstanceGroupType"}, + "BidPrice":{"shape":"String"}, + "InstanceType":{"shape":"InstanceType"}, + "RequestedInstanceCount":{"shape":"Integer"}, + "RunningInstanceCount":{"shape":"Integer"}, + "Status":{"shape":"InstanceGroupStatus"} + } + }, + "InstanceGroupConfig":{ + "type":"structure", + "required":[ + "InstanceRole", + "InstanceType", + "InstanceCount" + ], + "members":{ + "Name":{"shape":"XmlStringMaxLen256"}, + "Market":{"shape":"MarketType"}, + "InstanceRole":{"shape":"InstanceRoleType"}, + "BidPrice":{"shape":"XmlStringMaxLen256"}, + "InstanceType":{"shape":"InstanceType"}, + "InstanceCount":{"shape":"Integer"} + } + }, + "InstanceGroupConfigList":{ + "type":"list", + "member":{"shape":"InstanceGroupConfig"} + }, + "InstanceGroupDetail":{ + "type":"structure", + "required":[ + "Market", + "InstanceRole", + "InstanceType", + "InstanceRequestCount", + "InstanceRunningCount", + "State", + "CreationDateTime" + ], + "members":{ + "InstanceGroupId":{"shape":"XmlStringMaxLen256"}, + "Name":{"shape":"XmlStringMaxLen256"}, + "Market":{"shape":"MarketType"}, + "InstanceRole":{"shape":"InstanceRoleType"}, + "BidPrice":{"shape":"XmlStringMaxLen256"}, + "InstanceType":{"shape":"InstanceType"}, + "InstanceRequestCount":{"shape":"Integer"}, + "InstanceRunningCount":{"shape":"Integer"}, + "State":{"shape":"InstanceGroupState"}, + "LastStateChangeReason":{"shape":"XmlString"}, + "CreationDateTime":{"shape":"Date"}, + "StartDateTime":{"shape":"Date"}, + "ReadyDateTime":{"shape":"Date"}, + "EndDateTime":{"shape":"Date"} + } + }, + "InstanceGroupDetailList":{ + "type":"list", + "member":{"shape":"InstanceGroupDetail"} + }, + "InstanceGroupId":{"type":"string"}, + "InstanceGroupIdsList":{ + "type":"list", + "member":{"shape":"XmlStringMaxLen256"} + }, + "InstanceGroupList":{ + "type":"list", + "member":{"shape":"InstanceGroup"} + }, + "InstanceGroupModifyConfig":{ + "type":"structure", + "required":["InstanceGroupId"], + "members":{ + "InstanceGroupId":{"shape":"XmlStringMaxLen256"}, + "InstanceCount":{"shape":"Integer"}, + "EC2InstanceIdsToTerminate":{"shape":"EC2InstanceIdsToTerminateList"} + } + }, + "InstanceGroupModifyConfigList":{ + "type":"list", + "member":{"shape":"InstanceGroupModifyConfig"} + }, + "InstanceGroupState":{ + "type":"string", + "enum":[ + "PROVISIONING", + "BOOTSTRAPPING", + "RUNNING", + "RESIZING", + "SUSPENDED", + "TERMINATING", + "TERMINATED", + "ARRESTED", + "SHUTTING_DOWN", + "ENDED" + ] + }, + "InstanceGroupStateChangeReason":{ + "type":"structure", + "members":{ + "Code":{"shape":"InstanceGroupStateChangeReasonCode"}, + "Message":{"shape":"String"} + } + }, + "InstanceGroupStateChangeReasonCode":{ + "type":"string", + "enum":[ + "INTERNAL_ERROR", + "VALIDATION_ERROR", + "INSTANCE_FAILURE", + "CLUSTER_TERMINATED" + ] + }, + "InstanceGroupStatus":{ + "type":"structure", + "members":{ + "State":{"shape":"InstanceGroupState"}, + "StateChangeReason":{"shape":"InstanceGroupStateChangeReason"}, + "Timeline":{"shape":"InstanceGroupTimeline"} + } + }, + "InstanceGroupTimeline":{ + "type":"structure", + "members":{ + "CreationDateTime":{"shape":"Date"}, + "ReadyDateTime":{"shape":"Date"}, + "EndDateTime":{"shape":"Date"} + } + }, + "InstanceGroupType":{ + "type":"string", + "enum":[ + "MASTER", + "CORE", + "TASK" + ] + }, + "InstanceGroupTypeList":{ + "type":"list", + "member":{"shape":"InstanceGroupType"} + }, + "InstanceId":{"type":"string"}, + "InstanceList":{ + "type":"list", + "member":{"shape":"Instance"} + }, + "InstanceRoleType":{ + "type":"string", + "enum":[ + "MASTER", + "CORE", + "TASK" + ] + }, + "InstanceState":{ + "type":"string", + "enum":[ + "AWAITING_FULFILLMENT", + "PROVISIONING", + "BOOTSTRAPPING", + "RUNNING", + "TERMINATED" + ] + }, + "InstanceStateChangeReason":{ + "type":"structure", + "members":{ + "Code":{"shape":"InstanceStateChangeReasonCode"}, + "Message":{"shape":"String"} + } + }, + "InstanceStateChangeReasonCode":{ + "type":"string", + "enum":[ + "INTERNAL_ERROR", + "VALIDATION_ERROR", + "INSTANCE_FAILURE", + "BOOTSTRAP_FAILURE", + "CLUSTER_TERMINATED" + ] + }, + "InstanceStatus":{ + "type":"structure", + "members":{ + "State":{"shape":"InstanceState"}, + "StateChangeReason":{"shape":"InstanceStateChangeReason"}, + "Timeline":{"shape":"InstanceTimeline"} + } + }, + "InstanceTimeline":{ + "type":"structure", + "members":{ + "CreationDateTime":{"shape":"Date"}, + "ReadyDateTime":{"shape":"Date"}, + "EndDateTime":{"shape":"Date"} + } + }, + "InstanceType":{ + "type":"string", + "min":1, + "max":256, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "Integer":{"type":"integer"}, + "InternalServerError":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InternalFailure", + "httpStatusCode":500 + }, + "exception":true + }, + "InternalServerException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true, + "fault":true + }, + "InvalidRequestException":{ + "type":"structure", + "members":{ + "ErrorCode":{"shape":"ErrorCode"}, + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "JobFlowDetail":{ + "type":"structure", + "required":[ + "JobFlowId", + "Name", + "ExecutionStatusDetail", + "Instances" + ], + "members":{ + "JobFlowId":{"shape":"XmlStringMaxLen256"}, + "Name":{"shape":"XmlStringMaxLen256"}, + "LogUri":{"shape":"XmlString"}, + "AmiVersion":{"shape":"XmlStringMaxLen256"}, + "ExecutionStatusDetail":{"shape":"JobFlowExecutionStatusDetail"}, + "Instances":{"shape":"JobFlowInstancesDetail"}, + "Steps":{"shape":"StepDetailList"}, + "BootstrapActions":{"shape":"BootstrapActionDetailList"}, + "SupportedProducts":{"shape":"SupportedProductsList"}, + "VisibleToAllUsers":{"shape":"Boolean"}, + "JobFlowRole":{"shape":"XmlString"}, + "ServiceRole":{"shape":"XmlString"} + } + }, + "JobFlowDetailList":{ + "type":"list", + "member":{"shape":"JobFlowDetail"} + }, + "JobFlowExecutionState":{ + "type":"string", + "enum":[ + "STARTING", + "BOOTSTRAPPING", + "RUNNING", + "WAITING", + "SHUTTING_DOWN", + "TERMINATED", + "COMPLETED", + "FAILED" + ] + }, + "JobFlowExecutionStateList":{ + "type":"list", + "member":{"shape":"JobFlowExecutionState"} + }, + "JobFlowExecutionStatusDetail":{ + "type":"structure", + "required":[ + "State", + "CreationDateTime" + ], + "members":{ + "State":{"shape":"JobFlowExecutionState"}, + "CreationDateTime":{"shape":"Date"}, + "StartDateTime":{"shape":"Date"}, + "ReadyDateTime":{"shape":"Date"}, + "EndDateTime":{"shape":"Date"}, + "LastStateChangeReason":{"shape":"XmlString"} + } + }, + "JobFlowInstancesConfig":{ + "type":"structure", + "members":{ + "MasterInstanceType":{"shape":"InstanceType"}, + "SlaveInstanceType":{"shape":"InstanceType"}, + "InstanceCount":{"shape":"Integer"}, + "InstanceGroups":{"shape":"InstanceGroupConfigList"}, + "Ec2KeyName":{"shape":"XmlStringMaxLen256"}, + "Placement":{"shape":"PlacementType"}, + "KeepJobFlowAliveWhenNoSteps":{"shape":"Boolean"}, + "TerminationProtected":{"shape":"Boolean"}, + "HadoopVersion":{"shape":"XmlStringMaxLen256"}, + "Ec2SubnetId":{"shape":"XmlStringMaxLen256"}, + "EmrManagedMasterSecurityGroup":{"shape":"XmlStringMaxLen256"}, + "EmrManagedSlaveSecurityGroup":{"shape":"XmlStringMaxLen256"}, + "AdditionalMasterSecurityGroups":{"shape":"SecurityGroupsList"}, + "AdditionalSlaveSecurityGroups":{"shape":"SecurityGroupsList"} + } + }, + "JobFlowInstancesDetail":{ + "type":"structure", + "required":[ + "MasterInstanceType", + "SlaveInstanceType", + "InstanceCount" + ], + "members":{ + "MasterInstanceType":{"shape":"InstanceType"}, + "MasterPublicDnsName":{"shape":"XmlString"}, + "MasterInstanceId":{"shape":"XmlString"}, + "SlaveInstanceType":{"shape":"InstanceType"}, + "InstanceCount":{"shape":"Integer"}, + "InstanceGroups":{"shape":"InstanceGroupDetailList"}, + "NormalizedInstanceHours":{"shape":"Integer"}, + "Ec2KeyName":{"shape":"XmlStringMaxLen256"}, + "Ec2SubnetId":{"shape":"XmlStringMaxLen256"}, + "Placement":{"shape":"PlacementType"}, + "KeepJobFlowAliveWhenNoSteps":{"shape":"Boolean"}, + "TerminationProtected":{"shape":"Boolean"}, + "HadoopVersion":{"shape":"XmlStringMaxLen256"} + } + }, + "KeyValue":{ + "type":"structure", + "members":{ + "Key":{"shape":"XmlString"}, + "Value":{"shape":"XmlString"} + } + }, + "KeyValueList":{ + "type":"list", + "member":{"shape":"KeyValue"} + }, + "ListBootstrapActionsInput":{ + "type":"structure", + "required":["ClusterId"], + "members":{ + "ClusterId":{"shape":"ClusterId"}, + "Marker":{"shape":"Marker"} + } + }, + "ListBootstrapActionsOutput":{ + "type":"structure", + "members":{ + "BootstrapActions":{"shape":"CommandList"}, + "Marker":{"shape":"Marker"} + } + }, + "ListClustersInput":{ + "type":"structure", + "members":{ + "CreatedAfter":{"shape":"Date"}, + "CreatedBefore":{"shape":"Date"}, + "ClusterStates":{"shape":"ClusterStateList"}, + "Marker":{"shape":"Marker"} + } + }, + "ListClustersOutput":{ + "type":"structure", + "members":{ + "Clusters":{"shape":"ClusterSummaryList"}, + "Marker":{"shape":"Marker"} + } + }, + "ListInstanceGroupsInput":{ + "type":"structure", + "required":["ClusterId"], + "members":{ + "ClusterId":{"shape":"ClusterId"}, + "Marker":{"shape":"Marker"} + } + }, + "ListInstanceGroupsOutput":{ + "type":"structure", + "members":{ + "InstanceGroups":{"shape":"InstanceGroupList"}, + "Marker":{"shape":"Marker"} + } + }, + "ListInstancesInput":{ + "type":"structure", + "required":["ClusterId"], + "members":{ + "ClusterId":{"shape":"ClusterId"}, + "InstanceGroupId":{"shape":"InstanceGroupId"}, + "InstanceGroupTypes":{"shape":"InstanceGroupTypeList"}, + "Marker":{"shape":"Marker"} + } + }, + "ListInstancesOutput":{ + "type":"structure", + "members":{ + "Instances":{"shape":"InstanceList"}, + "Marker":{"shape":"Marker"} + } + }, + "ListStepsInput":{ + "type":"structure", + "required":["ClusterId"], + "members":{ + "ClusterId":{"shape":"ClusterId"}, + "StepStates":{"shape":"StepStateList"}, + "StepIds":{"shape":"XmlStringList"}, + "Marker":{"shape":"Marker"} + } + }, + "ListStepsOutput":{ + "type":"structure", + "members":{ + "Steps":{"shape":"StepSummaryList"}, + "Marker":{"shape":"Marker"} + } + }, + "Marker":{"type":"string"}, + "MarketType":{ + "type":"string", + "enum":[ + "ON_DEMAND", + "SPOT" + ] + }, + "ModifyInstanceGroupsInput":{ + "type":"structure", + "members":{ + "InstanceGroups":{"shape":"InstanceGroupModifyConfigList"} + } + }, + "NewSupportedProductsList":{ + "type":"list", + "member":{"shape":"SupportedProductConfig"} + }, + "PlacementType":{ + "type":"structure", + "required":["AvailabilityZone"], + "members":{ + "AvailabilityZone":{"shape":"XmlString"} + } + }, + "RemoveTagsInput":{ + "type":"structure", + "required":[ + "ResourceId", + "TagKeys" + ], + "members":{ + "ResourceId":{"shape":"ResourceId"}, + "TagKeys":{"shape":"StringList"} + } + }, + "RemoveTagsOutput":{ + "type":"structure", + "members":{ + } + }, + "ResourceId":{"type":"string"}, + "RunJobFlowInput":{ + "type":"structure", + "required":[ + "Name", + "Instances" + ], + "members":{ + "Name":{"shape":"XmlStringMaxLen256"}, + "LogUri":{"shape":"XmlString"}, + "AdditionalInfo":{"shape":"XmlString"}, + "AmiVersion":{"shape":"XmlStringMaxLen256"}, + "Instances":{"shape":"JobFlowInstancesConfig"}, + "Steps":{"shape":"StepConfigList"}, + "BootstrapActions":{"shape":"BootstrapActionConfigList"}, + "SupportedProducts":{"shape":"SupportedProductsList"}, + "NewSupportedProducts":{"shape":"NewSupportedProductsList"}, + "VisibleToAllUsers":{"shape":"Boolean"}, + "JobFlowRole":{"shape":"XmlString"}, + "ServiceRole":{"shape":"XmlString"}, + "Tags":{"shape":"TagList"} + } + }, + "RunJobFlowOutput":{ + "type":"structure", + "members":{ + "JobFlowId":{"shape":"XmlStringMaxLen256"} + } + }, + "ScriptBootstrapActionConfig":{ + "type":"structure", + "required":["Path"], + "members":{ + "Path":{"shape":"XmlString"}, + "Args":{"shape":"XmlStringList"} + } + }, + "SecurityGroupsList":{ + "type":"list", + "member":{"shape":"XmlStringMaxLen256"} + }, + "SetTerminationProtectionInput":{ + "type":"structure", + "required":[ + "JobFlowIds", + "TerminationProtected" + ], + "members":{ + "JobFlowIds":{"shape":"XmlStringList"}, + "TerminationProtected":{"shape":"Boolean"} + } + }, + "SetVisibleToAllUsersInput":{ + "type":"structure", + "required":[ + "JobFlowIds", + "VisibleToAllUsers" + ], + "members":{ + "JobFlowIds":{"shape":"XmlStringList"}, + "VisibleToAllUsers":{"shape":"Boolean"} + } + }, + "Step":{ + "type":"structure", + "members":{ + "Id":{"shape":"StepId"}, + "Name":{"shape":"String"}, + "Config":{"shape":"HadoopStepConfig"}, + "ActionOnFailure":{"shape":"ActionOnFailure"}, + "Status":{"shape":"StepStatus"} + } + }, + "StepConfig":{ + "type":"structure", + "required":[ + "Name", + "HadoopJarStep" + ], + "members":{ + "Name":{"shape":"XmlStringMaxLen256"}, + "ActionOnFailure":{"shape":"ActionOnFailure"}, + "HadoopJarStep":{"shape":"HadoopJarStepConfig"} + } + }, + "StepConfigList":{ + "type":"list", + "member":{"shape":"StepConfig"} + }, + "StepDetail":{ + "type":"structure", + "required":[ + "StepConfig", + "ExecutionStatusDetail" + ], + "members":{ + "StepConfig":{"shape":"StepConfig"}, + "ExecutionStatusDetail":{"shape":"StepExecutionStatusDetail"} + } + }, + "StepDetailList":{ + "type":"list", + "member":{"shape":"StepDetail"} + }, + "StepExecutionState":{ + "type":"string", + "enum":[ + "PENDING", + "RUNNING", + "CONTINUE", + "COMPLETED", + "CANCELLED", + "FAILED", + "INTERRUPTED" + ] + }, + "StepExecutionStatusDetail":{ + "type":"structure", + "required":[ + "State", + "CreationDateTime" + ], + "members":{ + "State":{"shape":"StepExecutionState"}, + "CreationDateTime":{"shape":"Date"}, + "StartDateTime":{"shape":"Date"}, + "EndDateTime":{"shape":"Date"}, + "LastStateChangeReason":{"shape":"XmlString"} + } + }, + "StepId":{"type":"string"}, + "StepIdsList":{ + "type":"list", + "member":{"shape":"XmlStringMaxLen256"} + }, + "StepState":{ + "type":"string", + "enum":[ + "PENDING", + "RUNNING", + "COMPLETED", + "CANCELLED", + "FAILED", + "INTERRUPTED" + ] + }, + "StepStateChangeReason":{ + "type":"structure", + "members":{ + "Code":{"shape":"StepStateChangeReasonCode"}, + "Message":{"shape":"String"} + } + }, + "StepStateChangeReasonCode":{ + "type":"string", + "enum":["NONE"] + }, + "StepStateList":{ + "type":"list", + "member":{"shape":"StepState"} + }, + "StepStatus":{ + "type":"structure", + "members":{ + "State":{"shape":"StepState"}, + "StateChangeReason":{"shape":"StepStateChangeReason"}, + "Timeline":{"shape":"StepTimeline"} + } + }, + "StepSummary":{ + "type":"structure", + "members":{ + "Id":{"shape":"StepId"}, + "Name":{"shape":"String"}, + "Config":{"shape":"HadoopStepConfig"}, + "ActionOnFailure":{"shape":"ActionOnFailure"}, + "Status":{"shape":"StepStatus"} + } + }, + "StepSummaryList":{ + "type":"list", + "member":{"shape":"StepSummary"} + }, + "StepTimeline":{ + "type":"structure", + "members":{ + "CreationDateTime":{"shape":"Date"}, + "StartDateTime":{"shape":"Date"}, + "EndDateTime":{"shape":"Date"} + } + }, + "String":{"type":"string"}, + "StringList":{ + "type":"list", + "member":{"shape":"String"} + }, + "StringMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "SupportedProductConfig":{ + "type":"structure", + "members":{ + "Name":{"shape":"XmlStringMaxLen256"}, + "Args":{"shape":"XmlStringList"} + } + }, + "SupportedProductsList":{ + "type":"list", + "member":{"shape":"XmlStringMaxLen256"} + }, + "Tag":{ + "type":"structure", + "members":{ + "Key":{"shape":"String"}, + "Value":{"shape":"String"} + } + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"} + }, + "TerminateJobFlowsInput":{ + "type":"structure", + "required":["JobFlowIds"], + "members":{ + "JobFlowIds":{"shape":"XmlStringList"} + } + }, + "XmlString":{ + "type":"string", + "min":0, + "max":10280, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "XmlStringList":{ + "type":"list", + "member":{"shape":"XmlString"} + }, + "XmlStringMaxLen256":{ + "type":"string", + "min":0, + "max":256, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + } + } +} diff --git a/lib/aws-sdk/Aws/data/elasticmapreduce/2009-03-31/docs-2.json b/lib/aws-sdk/Aws/data/elasticmapreduce/2009-03-31/docs-2.json new file mode 100644 index 0000000..c458ebd --- /dev/null +++ b/lib/aws-sdk/Aws/data/elasticmapreduce/2009-03-31/docs-2.json @@ -0,0 +1,969 @@ +{ + "operations": { + "AddInstanceGroups": "

AddInstanceGroups adds an instance group to a running cluster.

", + "AddJobFlowSteps": "

AddJobFlowSteps adds new steps to a running job flow. A maximum of 256 steps are allowed in each job flow.

If your job flow is long-running (such as a Hive data warehouse) or complex, you may require more than 256 steps to process your data. You can bypass the 256-step limitation in various ways, including using the SSH shell to connect to the master node and submitting queries directly to the software running on the master node, such as Hive and Hadoop. For more information on how to do this, go to Add More than 256 Steps to a Job Flow in the Amazon Elastic MapReduce Developer's Guide.

A step specifies the location of a JAR file stored either on the master node of the job flow or in Amazon S3. Each step is performed by the main function of the main class of the JAR file. The main class can be specified either in the manifest of the JAR or by using the MainFunction parameter of the step.

Elastic MapReduce executes each step in the order listed. For a step to be considered complete, the main function must exit with a zero exit code and all Hadoop jobs started while the step was running must have completed and run successfully.

You can only add steps to a job flow that is in one of the following states: STARTING, BOOTSTRAPPING, RUNNING, or WAITING.

", + "AddTags": "

Adds tags to an Amazon EMR resource. Tags make it easier to associate clusters in various ways, such as grouping clusters to track your Amazon EMR resource allocation costs. For more information, see Tagging Amazon EMR Resources.

", + "DescribeCluster": "

Provides cluster-level details including status, hardware and software configuration, VPC settings, and so on. For information about the cluster steps, see ListSteps.

", + "DescribeJobFlows": "

This API is deprecated and will eventually be removed. We recommend you use ListClusters, DescribeCluster, ListSteps, ListInstanceGroups and ListBootstrapActions instead.

DescribeJobFlows returns a list of job flows that match all of the supplied parameters. The parameters can include a list of job flow IDs, job flow states, and restrictions on job flow creation date and time.

Regardless of supplied parameters, only job flows created within the last two months are returned.

If no parameters are supplied, then job flows matching either of the following criteria are returned:

  • Job flows created and completed in the last two weeks
  • Job flows created within the last two months that are in one of the following states: RUNNING, WAITING, SHUTTING_DOWN, STARTING

Amazon Elastic MapReduce can return a maximum of 512 job flow descriptions.

", + "DescribeStep": "

Provides more detail about the cluster step.

", + "ListBootstrapActions": "

Provides information about the bootstrap actions associated with a cluster.

", + "ListClusters": "

Provides the status of all clusters visible to this AWS account. Allows you to filter the list of clusters based on certain criteria; for example, filtering by cluster creation date and time or by status. This call returns a maximum of 50 clusters per call, but returns a marker to track the paging of the cluster list across multiple ListClusters calls.

", + "ListInstanceGroups": "

Provides all available details about the instance groups in a cluster.

", + "ListInstances": "

Provides information about the cluster instances that Amazon EMR provisions on behalf of a user when it creates the cluster. For example, this operation indicates when the EC2 instances reach the Ready state, when instances become available to Amazon EMR to use for jobs, and the IP addresses for cluster instances, etc.

", + "ListSteps": "

Provides a list of steps for the cluster.

", + "ModifyInstanceGroups": "

ModifyInstanceGroups modifies the number of nodes and configuration settings of an instance group. The input parameters include the new target instance count for the group and the instance group ID. The call will either succeed or fail atomically.

", + "RemoveTags": "

Removes tags from an Amazon EMR resource. Tags make it easier to associate clusters in various ways, such as grouping clusters to track your Amazon EMR resource allocation costs. For more information, see Tagging Amazon EMR Resources.

The following example removes the stack tag with value Prod from a cluster:

", + "RunJobFlow": "

RunJobFlow creates and starts running a new job flow. The job flow will run the steps specified. Once the job flow completes, the cluster is stopped and the HDFS partition is lost. To prevent loss of data, configure the last step of the job flow to store results in Amazon S3. If the JobFlowInstancesConfig KeepJobFlowAliveWhenNoSteps parameter is set to TRUE, the job flow will transition to the WAITING state rather than shutting down once the steps have completed.

For additional protection, you can set the JobFlowInstancesConfig TerminationProtected parameter to TRUE to lock the job flow and prevent it from being terminated by API call, user intervention, or in the event of a job flow error.

A maximum of 256 steps are allowed in each job flow.

If your job flow is long-running (such as a Hive data warehouse) or complex, you may require more than 256 steps to process your data. You can bypass the 256-step limitation in various ways, including using the SSH shell to connect to the master node and submitting queries directly to the software running on the master node, such as Hive and Hadoop. For more information on how to do this, go to Add More than 256 Steps to a Job Flow in the Amazon Elastic MapReduce Developer's Guide.

For long running job flows, we recommend that you periodically store your results.

", + "SetTerminationProtection": "

SetTerminationProtection locks a job flow so the Amazon EC2 instances in the cluster cannot be terminated by user intervention, an API call, or in the event of a job-flow error. The cluster still terminates upon successful completion of the job flow. Calling SetTerminationProtection on a job flow is analogous to calling the Amazon EC2 DisableAPITermination API on all of the EC2 instances in a cluster.

SetTerminationProtection is used to prevent accidental termination of a job flow and to ensure that in the event of an error, the instances will persist so you can recover any data stored in their ephemeral instance storage.

To terminate a job flow that has been locked by setting SetTerminationProtection to true, you must first unlock the job flow by a subsequent call to SetTerminationProtection in which you set the value to false.

For more information, go to Protecting a Job Flow from Termination in the Amazon Elastic MapReduce Developer's Guide.

", + "SetVisibleToAllUsers": "

Sets whether all AWS Identity and Access Management (IAM) users under your account can access the specified job flows. This action works on running job flows. You can also set the visibility of a job flow when you launch it using the VisibleToAllUsers parameter of RunJobFlow. The SetVisibleToAllUsers action can be called only by an IAM user who created the job flow or the AWS account that owns the job flow.

", + "TerminateJobFlows": "

TerminateJobFlows shuts a list of job flows down. When a job flow is shut down, any step not yet completed is canceled and the EC2 instances on which the job flow is running are stopped. Any log files not already saved are uploaded to Amazon S3 if a LogUri was specified when the job flow was created.

The maximum number of JobFlows allowed is 10. The call to TerminateJobFlows is asynchronous. Depending on the configuration of the job flow, it may take up to 5-20 minutes for the job flow to completely terminate and release allocated resources, such as Amazon EC2 instances.

" + }, + "service": "

Amazon Elastic MapReduce (Amazon EMR) is a web service that makes it easy to process large amounts of data efficiently. Amazon EMR uses Hadoop processing combined with several AWS products to do tasks such as web indexing, data mining, log file analysis, machine learning, scientific simulation, and data warehousing.

", + "shapes": { + "ActionOnFailure": { + "base": null, + "refs": { + "Step$ActionOnFailure": "

This specifies what action to take when the cluster step fails. Possible values are TERMINATE_CLUSTER, CANCEL_AND_WAIT, and CONTINUE.

", + "StepConfig$ActionOnFailure": "

The action to take if the job flow step fails.

", + "StepSummary$ActionOnFailure": "

This specifies what action to take when the cluster step fails. Possible values are TERMINATE_CLUSTER, CANCEL_AND_WAIT, and CONTINUE.

" + } + }, + "AddInstanceGroupsInput": { + "base": "

Input to an AddInstanceGroups call.

", + "refs": { + } + }, + "AddInstanceGroupsOutput": { + "base": "

Output from an AddInstanceGroups call.

", + "refs": { + } + }, + "AddJobFlowStepsInput": { + "base": "

The input argument to the AddJobFlowSteps operation.

", + "refs": { + } + }, + "AddJobFlowStepsOutput": { + "base": "

The output for the AddJobFlowSteps operation.

", + "refs": { + } + }, + "AddTagsInput": { + "base": "

This input identifies a cluster and a list of tags to attach.

", + "refs": { + } + }, + "AddTagsOutput": { + "base": "

This output indicates the result of adding tags to a resource.

", + "refs": { + } + }, + "Application": { + "base": "

An application is any Amazon or third-party software that you can add to the cluster. This structure contains a list of strings that indicates the software to use with the cluster and accepts a user argument list. Amazon EMR accepts and forwards the argument list to the corresponding installation script as bootstrap action argument. For more information, see Launch a Job Flow on the MapR Distribution for Hadoop. Currently supported values are:

  • \"mapr-m3\" - launch the job flow using MapR M3 Edition.
  • \"mapr-m5\" - launch the job flow using MapR M5 Edition.
  • \"mapr\" with the user arguments specifying \"--edition,m3\" or \"--edition,m5\" - launch the job flow using MapR M3 or M5 Edition, respectively.
", + "refs": { + "ApplicationList$member": null + } + }, + "ApplicationList": { + "base": null, + "refs": { + "Cluster$Applications": "

The applications installed on this cluster.

" + } + }, + "Boolean": { + "base": null, + "refs": { + "Cluster$AutoTerminate": "

Specifies whether the cluster should terminate after completing all steps.

", + "Cluster$TerminationProtected": "

Indicates whether Amazon EMR will lock the cluster to prevent the EC2 instances from being terminated by an API call or user intervention, or in the event of a cluster error.

", + "Cluster$VisibleToAllUsers": "

Indicates whether the job flow is visible to all IAM users of the AWS account associated with the job flow. If this value is set to true, all IAM users of that AWS account can view and manage the job flow if they have the proper policy permissions set. If this value is false, only the IAM user that created the cluster can view and manage it. This value can be changed using the SetVisibleToAllUsers action.

", + "JobFlowDetail$VisibleToAllUsers": "

Specifies whether the job flow is visible to all IAM users of the AWS account associated with the job flow. If this value is set to true, all IAM users of that AWS account can view and (if they have the proper policy permissions set) manage the job flow. If it is set to false, only the IAM user that created the job flow can view and manage it. This value can be changed using the SetVisibleToAllUsers action.

", + "JobFlowInstancesConfig$KeepJobFlowAliveWhenNoSteps": "

Specifies whether the job flow should terminate after completing all steps.

", + "JobFlowInstancesConfig$TerminationProtected": "

Specifies whether to lock the job flow to prevent the Amazon EC2 instances from being terminated by API call, user intervention, or in the event of a job flow error.

", + "JobFlowInstancesDetail$KeepJobFlowAliveWhenNoSteps": "

Specifies whether the job flow should terminate after completing all steps.

", + "JobFlowInstancesDetail$TerminationProtected": "

Specifies whether the Amazon EC2 instances in the cluster are protected from termination by API calls, user intervention, or in the event of a job flow error.

", + "RunJobFlowInput$VisibleToAllUsers": "

Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. If this value is set to true, all IAM users of that AWS account can view and (if they have the proper policy permissions set) manage the job flow. If it is set to false, only the IAM user that created the job flow can view and manage it.

", + "SetTerminationProtectionInput$TerminationProtected": "

A Boolean that indicates whether to protect the job flow and prevent the Amazon EC2 instances in the cluster from shutting down due to API calls, user intervention, or job-flow error.

", + "SetVisibleToAllUsersInput$VisibleToAllUsers": "

Whether the specified job flows are visible to all IAM users of the AWS account associated with the job flow. If this value is set to True, all IAM users of that AWS account can view and, if they have the proper IAM policy permissions set, manage the job flows. If it is set to False, only the IAM user that created a job flow can view and manage it.

" + } + }, + "BootstrapActionConfig": { + "base": "

Configuration of a bootstrap action.

", + "refs": { + "BootstrapActionConfigList$member": null, + "BootstrapActionDetail$BootstrapActionConfig": "

A description of the bootstrap action.

" + } + }, + "BootstrapActionConfigList": { + "base": null, + "refs": { + "RunJobFlowInput$BootstrapActions": "

A list of bootstrap actions that will be run before Hadoop is started on the cluster nodes.

" + } + }, + "BootstrapActionDetail": { + "base": "

Reports the configuration of a bootstrap action in a job flow.

", + "refs": { + "BootstrapActionDetailList$member": null + } + }, + "BootstrapActionDetailList": { + "base": null, + "refs": { + "JobFlowDetail$BootstrapActions": "

A list of the bootstrap actions run by the job flow.

" + } + }, + "Cluster": { + "base": "

The detailed description of the cluster.

", + "refs": { + "DescribeClusterOutput$Cluster": "

This output contains the details for the requested cluster.

" + } + }, + "ClusterId": { + "base": null, + "refs": { + "Cluster$Id": "

The unique identifier for the cluster.

", + "ClusterSummary$Id": "

The unique identifier for the cluster.

", + "DescribeClusterInput$ClusterId": "

The identifier of the cluster to describe.

", + "DescribeStepInput$ClusterId": "

The identifier of the cluster with steps to describe.

", + "ListBootstrapActionsInput$ClusterId": "

The cluster identifier for the bootstrap actions to list .

", + "ListInstanceGroupsInput$ClusterId": "

The identifier of the cluster for which to list the instance groups.

", + "ListInstancesInput$ClusterId": "

The identifier of the cluster for which to list the instances.

", + "ListStepsInput$ClusterId": "

The identifier of the cluster for which to list the steps.

" + } + }, + "ClusterState": { + "base": null, + "refs": { + "ClusterStateList$member": null, + "ClusterStatus$State": "

The current state of the cluster.

" + } + }, + "ClusterStateChangeReason": { + "base": "

The reason that the cluster changed to its current state.

", + "refs": { + "ClusterStatus$StateChangeReason": "

The reason for the cluster status change.

" + } + }, + "ClusterStateChangeReasonCode": { + "base": null, + "refs": { + "ClusterStateChangeReason$Code": "

The programmatic code for the state change reason.

" + } + }, + "ClusterStateList": { + "base": null, + "refs": { + "ListClustersInput$ClusterStates": "

The cluster state filters to apply when listing clusters.

" + } + }, + "ClusterStatus": { + "base": "

The detailed status of the cluster.

", + "refs": { + "Cluster$Status": "

The current status details about the cluster.

", + "ClusterSummary$Status": "

The details about the current status of the cluster.

" + } + }, + "ClusterSummary": { + "base": "

The summary description of the cluster.

", + "refs": { + "ClusterSummaryList$member": null + } + }, + "ClusterSummaryList": { + "base": null, + "refs": { + "ListClustersOutput$Clusters": "

The list of clusters for the account based on the given filters.

" + } + }, + "ClusterTimeline": { + "base": "

Represents the timeline of the cluster's lifecycle.

", + "refs": { + "ClusterStatus$Timeline": "

A timeline that represents the status of a cluster over the lifetime of the cluster.

" + } + }, + "Command": { + "base": "

An entity describing an executable that runs on a cluster.

", + "refs": { + "CommandList$member": null + } + }, + "CommandList": { + "base": null, + "refs": { + "ListBootstrapActionsOutput$BootstrapActions": "

The bootstrap actions associated with the cluster .

" + } + }, + "Date": { + "base": null, + "refs": { + "ClusterTimeline$CreationDateTime": "

The creation date and time of the cluster.

", + "ClusterTimeline$ReadyDateTime": "

The date and time when the cluster was ready to execute steps.

", + "ClusterTimeline$EndDateTime": "

The date and time when the cluster was terminated.

", + "DescribeJobFlowsInput$CreatedAfter": "

Return only job flows created after this date and time.

", + "DescribeJobFlowsInput$CreatedBefore": "

Return only job flows created before this date and time.

", + "InstanceGroupDetail$CreationDateTime": "

The date/time the instance group was created.

", + "InstanceGroupDetail$StartDateTime": "

The date/time the instance group was started.

", + "InstanceGroupDetail$ReadyDateTime": "

The date/time the instance group was available to the cluster.

", + "InstanceGroupDetail$EndDateTime": "

The date/time the instance group was terminated.

", + "InstanceGroupTimeline$CreationDateTime": "

The creation date and time of the instance group.

", + "InstanceGroupTimeline$ReadyDateTime": "

The date and time when the instance group became ready to perform tasks.

", + "InstanceGroupTimeline$EndDateTime": "

The date and time when the instance group terminated.

", + "InstanceTimeline$CreationDateTime": "

The creation date and time of the instance.

", + "InstanceTimeline$ReadyDateTime": "

The date and time when the instance was ready to perform tasks.

", + "InstanceTimeline$EndDateTime": "

The date and time when the instance was terminated.

", + "JobFlowExecutionStatusDetail$CreationDateTime": "

The creation date and time of the job flow.

", + "JobFlowExecutionStatusDetail$StartDateTime": "

The start date and time of the job flow.

", + "JobFlowExecutionStatusDetail$ReadyDateTime": "

The date and time when the job flow was ready to start running bootstrap actions.

", + "JobFlowExecutionStatusDetail$EndDateTime": "

The completion date and time of the job flow.

", + "ListClustersInput$CreatedAfter": "

The creation date and time beginning value filter for listing clusters .

", + "ListClustersInput$CreatedBefore": "

The creation date and time end value filter for listing clusters .

", + "StepExecutionStatusDetail$CreationDateTime": "

The creation date and time of the step.

", + "StepExecutionStatusDetail$StartDateTime": "

The start date and time of the step.

", + "StepExecutionStatusDetail$EndDateTime": "

The completion date and time of the step.

", + "StepTimeline$CreationDateTime": "

The date and time when the cluster step was created.

", + "StepTimeline$StartDateTime": "

The date and time when the cluster step execution started.

", + "StepTimeline$EndDateTime": "

The date and time when the cluster step execution completed or failed.

" + } + }, + "DescribeClusterInput": { + "base": "

This input determines which cluster to describe.

", + "refs": { + } + }, + "DescribeClusterOutput": { + "base": "

This output contains the description of the cluster.

", + "refs": { + } + }, + "DescribeJobFlowsInput": { + "base": "

The input for the DescribeJobFlows operation.

", + "refs": { + } + }, + "DescribeJobFlowsOutput": { + "base": "

The output for the DescribeJobFlows operation.

", + "refs": { + } + }, + "DescribeStepInput": { + "base": "

This input determines which step to describe.

", + "refs": { + } + }, + "DescribeStepOutput": { + "base": "

This output contains the description of the cluster step.

", + "refs": { + } + }, + "EC2InstanceIdsToTerminateList": { + "base": null, + "refs": { + "InstanceGroupModifyConfig$EC2InstanceIdsToTerminate": "

The EC2 InstanceIds to terminate. For advanced users only. Once you terminate the instances, the instance group will not return to its original requested size.

" + } + }, + "Ec2InstanceAttributes": { + "base": "

Provides information about the EC2 instances in a cluster grouped by category. For example, key name, subnet ID, IAM instance profile, and so on.

", + "refs": { + "Cluster$Ec2InstanceAttributes": null + } + }, + "ErrorCode": { + "base": null, + "refs": { + "InvalidRequestException$ErrorCode": "

The error code associated with the exception.

" + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "InternalServerException$Message": "

The message associated with the exception.

", + "InvalidRequestException$Message": "

The message associated with the exception.

" + } + }, + "HadoopJarStepConfig": { + "base": "

A job flow step consisting of a JAR file whose main function will be executed. The main function submits a job for Hadoop to execute and waits for the job to finish or fail.

", + "refs": { + "StepConfig$HadoopJarStep": "

The JAR file used for the job flow step.

" + } + }, + "HadoopStepConfig": { + "base": "

A cluster step consisting of a JAR file whose main function will be executed. The main function submits a job for Hadoop to execute and waits for the job to finish or fail.

", + "refs": { + "Step$Config": "

The Hadoop job configuration of the cluster step.

", + "StepSummary$Config": "

The Hadoop job configuration of the cluster step.

" + } + }, + "Instance": { + "base": "

Represents an EC2 instance provisioned as part of cluster.

", + "refs": { + "InstanceList$member": null + } + }, + "InstanceGroup": { + "base": "

This entity represents an instance group, which is a group of instances that have common purpose. For example, CORE instance group is used for HDFS.

", + "refs": { + "InstanceGroupList$member": null + } + }, + "InstanceGroupConfig": { + "base": "

Configuration defining a new instance group.

", + "refs": { + "InstanceGroupConfigList$member": null + } + }, + "InstanceGroupConfigList": { + "base": null, + "refs": { + "AddInstanceGroupsInput$InstanceGroups": "

Instance Groups to add.

", + "JobFlowInstancesConfig$InstanceGroups": "

Configuration for the job flow's instance groups.

" + } + }, + "InstanceGroupDetail": { + "base": "

Detailed information about an instance group.

", + "refs": { + "InstanceGroupDetailList$member": null + } + }, + "InstanceGroupDetailList": { + "base": null, + "refs": { + "JobFlowInstancesDetail$InstanceGroups": "

Details about the job flow's instance groups.

" + } + }, + "InstanceGroupId": { + "base": null, + "refs": { + "InstanceGroup$Id": "

The identifier of the instance group.

", + "ListInstancesInput$InstanceGroupId": "

The identifier of the instance group for which to list the instances.

" + } + }, + "InstanceGroupIdsList": { + "base": null, + "refs": { + "AddInstanceGroupsOutput$InstanceGroupIds": "

Instance group IDs of the newly created instance groups.

" + } + }, + "InstanceGroupList": { + "base": null, + "refs": { + "ListInstanceGroupsOutput$InstanceGroups": "

The list of instance groups for the cluster and given filters.

" + } + }, + "InstanceGroupModifyConfig": { + "base": "

Modify an instance group size.

", + "refs": { + "InstanceGroupModifyConfigList$member": null + } + }, + "InstanceGroupModifyConfigList": { + "base": null, + "refs": { + "ModifyInstanceGroupsInput$InstanceGroups": "

Instance groups to change.

" + } + }, + "InstanceGroupState": { + "base": null, + "refs": { + "InstanceGroupDetail$State": "

State of instance group. The following values are deprecated: STARTING, TERMINATED, and FAILED.

", + "InstanceGroupStatus$State": "

The current state of the instance group.

" + } + }, + "InstanceGroupStateChangeReason": { + "base": "

The status change reason details for the instance group.

", + "refs": { + "InstanceGroupStatus$StateChangeReason": "

The status change reason details for the instance group.

" + } + }, + "InstanceGroupStateChangeReasonCode": { + "base": null, + "refs": { + "InstanceGroupStateChangeReason$Code": "

The programmable code for the state change reason.

" + } + }, + "InstanceGroupStatus": { + "base": "

The details of the instance group status.

", + "refs": { + "InstanceGroup$Status": "

The current status of the instance group.

" + } + }, + "InstanceGroupTimeline": { + "base": "

The timeline of the instance group lifecycle.

", + "refs": { + "InstanceGroupStatus$Timeline": "

The timeline of the instance group status over time.

" + } + }, + "InstanceGroupType": { + "base": null, + "refs": { + "InstanceGroup$InstanceGroupType": "

The type of the instance group. Valid values are MASTER, CORE or TASK.

", + "InstanceGroupTypeList$member": null + } + }, + "InstanceGroupTypeList": { + "base": null, + "refs": { + "ListInstancesInput$InstanceGroupTypes": "

The type of instance group for which to list the instances.

" + } + }, + "InstanceId": { + "base": null, + "refs": { + "EC2InstanceIdsToTerminateList$member": null, + "Instance$Id": "

The unique identifier for the instance in Amazon EMR.

", + "Instance$Ec2InstanceId": "

The unique identifier of the instance in Amazon EC2.

" + } + }, + "InstanceList": { + "base": null, + "refs": { + "ListInstancesOutput$Instances": "

The list of instances for the cluster and given filters.

" + } + }, + "InstanceRoleType": { + "base": null, + "refs": { + "InstanceGroupConfig$InstanceRole": "

The role of the instance group in the cluster.

", + "InstanceGroupDetail$InstanceRole": "

Instance group role in the cluster

" + } + }, + "InstanceState": { + "base": null, + "refs": { + "InstanceStatus$State": "

The current state of the instance.

" + } + }, + "InstanceStateChangeReason": { + "base": "

The details of the status change reason for the instance.

", + "refs": { + "InstanceStatus$StateChangeReason": "

The details of the status change reason for the instance.

" + } + }, + "InstanceStateChangeReasonCode": { + "base": null, + "refs": { + "InstanceStateChangeReason$Code": "

The programmable code for the state change reason.

" + } + }, + "InstanceStatus": { + "base": "

The instance status details.

", + "refs": { + "Instance$Status": "

The current status of the instance.

" + } + }, + "InstanceTimeline": { + "base": "

The timeline of the instance lifecycle.

", + "refs": { + "InstanceStatus$Timeline": "

The timeline of the instance status over time.

" + } + }, + "InstanceType": { + "base": null, + "refs": { + "InstanceGroup$InstanceType": "

The EC2 instance type for all instances in the instance group.

", + "InstanceGroupConfig$InstanceType": "

The Amazon EC2 instance type for all instances in the instance group.

", + "InstanceGroupDetail$InstanceType": "

Amazon EC2 Instance type.

", + "JobFlowInstancesConfig$MasterInstanceType": "

The EC2 instance type of the master node.

", + "JobFlowInstancesConfig$SlaveInstanceType": "

The EC2 instance type of the slave nodes.

", + "JobFlowInstancesDetail$MasterInstanceType": "

The Amazon EC2 master node instance type.

", + "JobFlowInstancesDetail$SlaveInstanceType": "

The Amazon EC2 slave node instance type.

" + } + }, + "Integer": { + "base": null, + "refs": { + "Cluster$NormalizedInstanceHours": "

An approximation of the cost of the job flow, represented in m1.small/hours. This value is incremented one time for every hour an m1.small instance runs. Larger instances are weighted more, so an EC2 instance that is roughly four times more expensive would result in the normalized instance hours being incremented by four. This result is only an approximation and does not reflect the actual billing rate.

", + "ClusterSummary$NormalizedInstanceHours": "

An approximation of the cost of the job flow, represented in m1.small/hours. This value is incremented one time for every hour an m1.small instance runs. Larger instances are weighted more, so an EC2 instance that is roughly four times more expensive would result in the normalized instance hours being incremented by four. This result is only an approximation and does not reflect the actual billing rate.

", + "InstanceGroup$RequestedInstanceCount": "

The target number of instances for the instance group.

", + "InstanceGroup$RunningInstanceCount": "

The number of instances currently running in this instance group.

", + "InstanceGroupConfig$InstanceCount": "

Target number of instances for the instance group.

", + "InstanceGroupDetail$InstanceRequestCount": "

Target number of instances to run in the instance group.

", + "InstanceGroupDetail$InstanceRunningCount": "

Actual count of running instances.

", + "InstanceGroupModifyConfig$InstanceCount": "

Target size for the instance group.

", + "JobFlowInstancesConfig$InstanceCount": "

The number of Amazon EC2 instances used to execute the job flow.

", + "JobFlowInstancesDetail$InstanceCount": "

The number of Amazon EC2 instances in the cluster. If the value is 1, the same instance serves as both the master and slave node. If the value is greater than 1, one instance is the master node and all others are slave nodes.

", + "JobFlowInstancesDetail$NormalizedInstanceHours": "

An approximation of the cost of the job flow, represented in m1.small/hours. This value is incremented once for every hour an m1.small runs. Larger instances are weighted more, so an Amazon EC2 instance that is roughly four times more expensive would result in the normalized instance hours being incremented by four. This result is only an approximation and does not reflect the actual billing rate.

" + } + }, + "InternalServerError": { + "base": "

Indicates that an error occurred while processing the request and that the request was not completed.

", + "refs": { + } + }, + "InternalServerException": { + "base": "

This exception occurs when there is an internal failure in the EMR service.

", + "refs": { + } + }, + "InvalidRequestException": { + "base": "

This exception occurs when there is something wrong with user input.

", + "refs": { + } + }, + "JobFlowDetail": { + "base": "

A description of a job flow.

", + "refs": { + "JobFlowDetailList$member": null + } + }, + "JobFlowDetailList": { + "base": null, + "refs": { + "DescribeJobFlowsOutput$JobFlows": "

A list of job flows matching the parameters supplied.

" + } + }, + "JobFlowExecutionState": { + "base": "

The type of instance.

A small instance

A large instance

", + "refs": { + "JobFlowExecutionStateList$member": null, + "JobFlowExecutionStatusDetail$State": "

The state of the job flow.

" + } + }, + "JobFlowExecutionStateList": { + "base": null, + "refs": { + "DescribeJobFlowsInput$JobFlowStates": "

Return only job flows whose state is contained in this list.

" + } + }, + "JobFlowExecutionStatusDetail": { + "base": "

Describes the status of the job flow.

", + "refs": { + "JobFlowDetail$ExecutionStatusDetail": "

Describes the execution status of the job flow.

" + } + }, + "JobFlowInstancesConfig": { + "base": "

A description of the Amazon EC2 instance running the job flow. A valid JobFlowInstancesConfig must contain at least InstanceGroups, which is the recommended configuration. However, a valid alternative is to have MasterInstanceType, SlaveInstanceType, and InstanceCount (all three must be present).

", + "refs": { + "RunJobFlowInput$Instances": "

A specification of the number and type of Amazon EC2 instances on which to run the job flow.

" + } + }, + "JobFlowInstancesDetail": { + "base": "

Specify the type of Amazon EC2 instances to run the job flow on.

", + "refs": { + "JobFlowDetail$Instances": "

Describes the Amazon EC2 instances of the job flow.

" + } + }, + "KeyValue": { + "base": "

A key value pair.

", + "refs": { + "KeyValueList$member": null + } + }, + "KeyValueList": { + "base": null, + "refs": { + "HadoopJarStepConfig$Properties": "

A list of Java properties that are set when the step runs. You can use these properties to pass key value pairs to your main function.

" + } + }, + "ListBootstrapActionsInput": { + "base": "

This input determines which bootstrap actions to retrieve.

", + "refs": { + } + }, + "ListBootstrapActionsOutput": { + "base": "

This output contains the boostrap actions detail .

", + "refs": { + } + }, + "ListClustersInput": { + "base": "

This input determines how the ListClusters action filters the list of clusters that it returns.

", + "refs": { + } + }, + "ListClustersOutput": { + "base": "

This contains a ClusterSummaryList with the cluster details; for example, the cluster IDs, names, and status.

", + "refs": { + } + }, + "ListInstanceGroupsInput": { + "base": "

This input determines which instance groups to retrieve.

", + "refs": { + } + }, + "ListInstanceGroupsOutput": { + "base": "

This input determines which instance groups to retrieve.

", + "refs": { + } + }, + "ListInstancesInput": { + "base": "

This input determines which instances to list.

", + "refs": { + } + }, + "ListInstancesOutput": { + "base": "

This output contains the list of instances.

", + "refs": { + } + }, + "ListStepsInput": { + "base": "

This input determines which steps to list.

", + "refs": { + } + }, + "ListStepsOutput": { + "base": "

This output contains the list of steps.

", + "refs": { + } + }, + "Marker": { + "base": null, + "refs": { + "ListBootstrapActionsInput$Marker": "

The pagination token that indicates the next set of results to retrieve .

", + "ListBootstrapActionsOutput$Marker": "

The pagination token that indicates the next set of results to retrieve .

", + "ListClustersInput$Marker": "

The pagination token that indicates the next set of results to retrieve.

", + "ListClustersOutput$Marker": "

The pagination token that indicates the next set of results to retrieve.

", + "ListInstanceGroupsInput$Marker": "

The pagination token that indicates the next set of results to retrieve.

", + "ListInstanceGroupsOutput$Marker": "

The pagination token that indicates the next set of results to retrieve.

", + "ListInstancesInput$Marker": "

The pagination token that indicates the next set of results to retrieve.

", + "ListInstancesOutput$Marker": "

The pagination token that indicates the next set of results to retrieve.

", + "ListStepsInput$Marker": "

The pagination token that indicates the next set of results to retrieve.

", + "ListStepsOutput$Marker": "

The pagination token that indicates the next set of results to retrieve.

" + } + }, + "MarketType": { + "base": null, + "refs": { + "InstanceGroup$Market": "

The marketplace to provision instances for this group. Valid values are ON_DEMAND or SPOT.

", + "InstanceGroupConfig$Market": "

Market type of the Amazon EC2 instances used to create a cluster node.

", + "InstanceGroupDetail$Market": "

Market type of the Amazon EC2 instances used to create a cluster node.

" + } + }, + "ModifyInstanceGroupsInput": { + "base": "

Change the size of some instance groups.

", + "refs": { + } + }, + "NewSupportedProductsList": { + "base": null, + "refs": { + "RunJobFlowInput$NewSupportedProducts": "

A list of strings that indicates third-party software to use with the job flow that accepts a user argument list. EMR accepts and forwards the argument list to the corresponding installation script as bootstrap action arguments. For more information, see Launch a Job Flow on the MapR Distribution for Hadoop. Currently supported values are:

  • \"mapr-m3\" - launch the job flow using MapR M3 Edition.
  • \"mapr-m5\" - launch the job flow using MapR M5 Edition.
  • \"mapr\" with the user arguments specifying \"--edition,m3\" or \"--edition,m5\" - launch the job flow using MapR M3 or M5 Edition respectively.
" + } + }, + "PlacementType": { + "base": "

The Amazon EC2 location for the job flow.

", + "refs": { + "JobFlowInstancesConfig$Placement": "

The Availability Zone the job flow will run in.

", + "JobFlowInstancesDetail$Placement": "

The Amazon EC2 Availability Zone for the job flow.

" + } + }, + "RemoveTagsInput": { + "base": "

This input identifies a cluster and a list of tags to remove.

", + "refs": { + } + }, + "RemoveTagsOutput": { + "base": "

This output indicates the result of removing tags from a resource.

", + "refs": { + } + }, + "ResourceId": { + "base": null, + "refs": { + "AddTagsInput$ResourceId": "

The Amazon EMR resource identifier to which tags will be added. This value must be a cluster identifier.

", + "RemoveTagsInput$ResourceId": "

The Amazon EMR resource identifier from which tags will be removed. This value must be a cluster identifier.

" + } + }, + "RunJobFlowInput": { + "base": "

Input to the RunJobFlow operation.

", + "refs": { + } + }, + "RunJobFlowOutput": { + "base": "

The result of the RunJobFlow operation.

", + "refs": { + } + }, + "ScriptBootstrapActionConfig": { + "base": "

Configuration of the script to run during a bootstrap action.

", + "refs": { + "BootstrapActionConfig$ScriptBootstrapAction": "

The script run by the bootstrap action.

" + } + }, + "SecurityGroupsList": { + "base": null, + "refs": { + "JobFlowInstancesConfig$AdditionalMasterSecurityGroups": "

A list of additional Amazon EC2 security group IDs for the master node.

", + "JobFlowInstancesConfig$AdditionalSlaveSecurityGroups": "

A list of additional Amazon EC2 security group IDs for the slave nodes.

" + } + }, + "SetTerminationProtectionInput": { + "base": "

The input argument to the TerminationProtection operation.

", + "refs": { + } + }, + "SetVisibleToAllUsersInput": { + "base": "

The input to the SetVisibleToAllUsers action.

", + "refs": { + } + }, + "Step": { + "base": "

This represents a step in a cluster.

", + "refs": { + "DescribeStepOutput$Step": "

The step details for the requested step identifier.

" + } + }, + "StepConfig": { + "base": "

Specification of a job flow step.

", + "refs": { + "StepConfigList$member": null, + "StepDetail$StepConfig": "

The step configuration.

" + } + }, + "StepConfigList": { + "base": null, + "refs": { + "AddJobFlowStepsInput$Steps": "

A list of StepConfig to be executed by the job flow.

", + "RunJobFlowInput$Steps": "

A list of steps to be executed by the job flow.

" + } + }, + "StepDetail": { + "base": "

Combines the execution state and configuration of a step.

", + "refs": { + "StepDetailList$member": null + } + }, + "StepDetailList": { + "base": null, + "refs": { + "JobFlowDetail$Steps": "

A list of steps run by the job flow.

" + } + }, + "StepExecutionState": { + "base": null, + "refs": { + "StepExecutionStatusDetail$State": "

The state of the job flow step.

" + } + }, + "StepExecutionStatusDetail": { + "base": "

The execution state of a step.

", + "refs": { + "StepDetail$ExecutionStatusDetail": "

The description of the step status.

" + } + }, + "StepId": { + "base": null, + "refs": { + "DescribeStepInput$StepId": "

The identifier of the step to describe.

", + "Step$Id": "

The identifier of the cluster step.

", + "StepSummary$Id": "

The identifier of the cluster step.

" + } + }, + "StepIdsList": { + "base": null, + "refs": { + "AddJobFlowStepsOutput$StepIds": "

The identifiers of the list of steps added to the job flow.

" + } + }, + "StepState": { + "base": null, + "refs": { + "StepStateList$member": null, + "StepStatus$State": "

The execution state of the cluster step.

" + } + }, + "StepStateChangeReason": { + "base": "

The details of the step state change reason.

", + "refs": { + "StepStatus$StateChangeReason": "

The reason for the step execution status change.

" + } + }, + "StepStateChangeReasonCode": { + "base": null, + "refs": { + "StepStateChangeReason$Code": "

The programmable code for the state change reason.

" + } + }, + "StepStateList": { + "base": null, + "refs": { + "ListStepsInput$StepStates": "

The filter to limit the step list based on certain states.

" + } + }, + "StepStatus": { + "base": "

The execution status details of the cluster step.

", + "refs": { + "Step$Status": "

The current execution status details of the cluster step.

", + "StepSummary$Status": "

The current execution status details of the cluster step.

" + } + }, + "StepSummary": { + "base": "

The summary of the cluster step.

", + "refs": { + "StepSummaryList$member": null + } + }, + "StepSummaryList": { + "base": null, + "refs": { + "ListStepsOutput$Steps": "

The filtered list of steps for the cluster.

" + } + }, + "StepTimeline": { + "base": "

The timeline of the cluster step lifecycle.

", + "refs": { + "StepStatus$Timeline": "

The timeline of the cluster step status over time.

" + } + }, + "String": { + "base": null, + "refs": { + "Application$Name": "

The name of the application.

", + "Application$Version": "

The version of the application.

", + "Cluster$Name": "

The name of the cluster.

", + "Cluster$LogUri": "

The path to the Amazon S3 location where logs for this cluster are stored.

", + "Cluster$RequestedAmiVersion": "

The AMI version requested for this cluster.

", + "Cluster$RunningAmiVersion": "

The AMI version running on this cluster. This differs from the requested version only if the requested version is a meta version, such as \"latest\".

", + "Cluster$ServiceRole": "

The IAM role that will be assumed by the Amazon EMR service to access AWS resources on your behalf.

", + "Cluster$MasterPublicDnsName": "

The public DNS name of the master Ec2 instance.

", + "ClusterStateChangeReason$Message": "

The descriptive message for the state change reason.

", + "ClusterSummary$Name": "

The name of the cluster.

", + "Command$Name": "

The name of the command.

", + "Command$ScriptPath": "

The Amazon S3 location of the command script.

", + "Ec2InstanceAttributes$Ec2KeyName": "

The name of the Amazon EC2 key pair to use when connecting with SSH into the master node as a user named \"hadoop\".

", + "Ec2InstanceAttributes$Ec2SubnetId": "

To launch the job flow in Amazon VPC, set this parameter to the identifier of the Amazon VPC subnet where you want the job flow to launch. If you do not specify this value, the job flow is launched in the normal AWS cloud, outside of a VPC.

Amazon VPC currently does not support cluster compute quadruple extra large (cc1.4xlarge) instances. Thus, you cannot specify the cc1.4xlarge instance type for nodes of a job flow launched in a VPC.

", + "Ec2InstanceAttributes$Ec2AvailabilityZone": "

The Availability Zone in which the cluster will run.

", + "Ec2InstanceAttributes$IamInstanceProfile": "

The IAM role that was specified when the job flow was launched. The EC2 instances of the job flow assume this role.

", + "Ec2InstanceAttributes$EmrManagedMasterSecurityGroup": "

The identifier of the Amazon EC2 security group (managed by Amazon Elastic MapReduce) for the master node.

", + "Ec2InstanceAttributes$EmrManagedSlaveSecurityGroup": "

The identifier of the Amazon EC2 security group (managed by Amazon Elastic MapReduce) for the slave nodes.

", + "HadoopStepConfig$Jar": "

The path to the JAR file that runs during the step.

", + "HadoopStepConfig$MainClass": "

The name of the main class in the specified Java file. If not specified, the JAR file should specify a main class in its manifest file.

", + "Instance$PublicDnsName": "

The public DNS name of the instance.

", + "Instance$PublicIpAddress": "

The public IP address of the instance.

", + "Instance$PrivateDnsName": "

The private DNS name of the instance.

", + "Instance$PrivateIpAddress": "

The private IP address of the instance.

", + "InstanceGroup$Name": "

The name of the instance group.

", + "InstanceGroup$BidPrice": "

The bid price for each EC2 instance in the instance group when launching nodes as Spot Instances, expressed in USD.

", + "InstanceGroupStateChangeReason$Message": "

The status change reason description.

", + "InstanceStateChangeReason$Message": "

The status change reason description.

", + "Step$Name": "

The name of the cluster step.

", + "StepStateChangeReason$Message": "

The descriptive message for the state change reason.

", + "StepSummary$Name": "

The name of the cluster step.

", + "StringList$member": null, + "StringMap$key": null, + "StringMap$value": null, + "Tag$Key": "

A user-defined key, which is the minimum required information for a valid tag. For more information, see Tagging Amazon EMR Resources.

", + "Tag$Value": "

A user-defined value, which is optional in a tag. For more information, see Tagging Amazon EMR Resources.

" + } + }, + "StringList": { + "base": null, + "refs": { + "Application$Args": "

Arguments for Amazon EMR to pass to the application.

", + "Command$Args": "

Arguments for Amazon EMR to pass to the command for execution.

", + "Ec2InstanceAttributes$AdditionalMasterSecurityGroups": "

A list of additional Amazon EC2 security group IDs for the master node.

", + "Ec2InstanceAttributes$AdditionalSlaveSecurityGroups": "

A list of additional Amazon EC2 security group IDs for the slave nodes.

", + "HadoopStepConfig$Args": "

The list of command line arguments to pass to the JAR file's main function for execution.

", + "RemoveTagsInput$TagKeys": "

A list of tag keys to remove from a resource.

" + } + }, + "StringMap": { + "base": null, + "refs": { + "Application$AdditionalInfo": "

This option is for advanced users only. This is meta information about third-party applications that third-party vendors use for testing purposes.

", + "HadoopStepConfig$Properties": "

The list of Java properties that are set when the step runs. You can use these properties to pass key value pairs to your main function.

" + } + }, + "SupportedProductConfig": { + "base": "

The list of supported product configurations which allow user-supplied arguments. EMR accepts these arguments and forwards them to the corresponding installation script as bootstrap action arguments.

", + "refs": { + "NewSupportedProductsList$member": null + } + }, + "SupportedProductsList": { + "base": null, + "refs": { + "JobFlowDetail$SupportedProducts": "

A list of strings set by third party software when the job flow is launched. If you are not using third party software to manage the job flow this value is empty.

", + "RunJobFlowInput$SupportedProducts": "

A list of strings that indicates third-party software to use with the job flow. For more information, go to Use Third Party Applications with Amazon EMR. Currently supported values are:

  • \"mapr-m3\" - launch the job flow using MapR M3 Edition.
  • \"mapr-m5\" - launch the job flow using MapR M5 Edition.
" + } + }, + "Tag": { + "base": "

A key/value pair containing user-defined metadata that you can associate with an Amazon EMR resource. Tags make it easier to associate clusters in various ways, such as grouping clu\\ sters to track your Amazon EMR resource allocation costs. For more information, see Tagging Amazon EMR Resources.

", + "refs": { + "TagList$member": null + } + }, + "TagList": { + "base": null, + "refs": { + "AddTagsInput$Tags": "

A list of tags to associate with a cluster and propagate to Amazon EC2 instances. Tags are user-defined key/value pairs that consist of a required key string with a maximum of 128 characters, and an optional value string with a maximum of 256 characters.

", + "Cluster$Tags": "

A list of tags associated with a cluster.

", + "RunJobFlowInput$Tags": "

A list of tags to associate with a cluster and propagate to Amazon EC2 instances.

" + } + }, + "TerminateJobFlowsInput": { + "base": "

Input to the TerminateJobFlows operation.

", + "refs": { + } + }, + "XmlString": { + "base": null, + "refs": { + "HadoopJarStepConfig$Jar": "

A path to a JAR file run during the step.

", + "HadoopJarStepConfig$MainClass": "

The name of the main class in the specified Java file. If not specified, the JAR file should specify a Main-Class in its manifest file.

", + "InstanceGroupDetail$LastStateChangeReason": "

Details regarding the state of the instance group.

", + "JobFlowDetail$LogUri": "

The location in Amazon S3 where log files for the job are stored.

", + "JobFlowDetail$JobFlowRole": "

The IAM role that was specified when the job flow was launched. The EC2 instances of the job flow assume this role.

", + "JobFlowDetail$ServiceRole": "

The IAM role that will be assumed by the Amazon EMR service to access AWS resources on your behalf.

", + "JobFlowExecutionStatusDetail$LastStateChangeReason": "

Description of the job flow last changed state.

", + "JobFlowInstancesDetail$MasterPublicDnsName": "

The DNS name of the master node.

", + "JobFlowInstancesDetail$MasterInstanceId": "

The Amazon EC2 instance identifier of the master node.

", + "KeyValue$Key": "

The unique identifier of a key value pair.

", + "KeyValue$Value": "

The value part of the identified key.

", + "PlacementType$AvailabilityZone": "

The Amazon EC2 Availability Zone for the job flow.

", + "RunJobFlowInput$LogUri": "

The location in Amazon S3 to write the log files of the job flow. If a value is not provided, logs are not created.

", + "RunJobFlowInput$AdditionalInfo": "

A JSON string for selecting additional features.

", + "RunJobFlowInput$JobFlowRole": "

An IAM role for the job flow. The EC2 instances of the job flow assume this role. The default role is EMRJobflowDefault. In order to use the default role, you must have already created it using the CLI.

", + "RunJobFlowInput$ServiceRole": "

The IAM role that will be assumed by the Amazon EMR service to access AWS resources on your behalf.

", + "ScriptBootstrapActionConfig$Path": "

Location of the script to run during a bootstrap action. Can be either a location in Amazon S3 or on a local file system.

", + "StepExecutionStatusDetail$LastStateChangeReason": "

A description of the step's current state.

", + "XmlStringList$member": null + } + }, + "XmlStringList": { + "base": null, + "refs": { + "DescribeJobFlowsInput$JobFlowIds": "

Return only job flows whose job flow ID is contained in this list.

", + "HadoopJarStepConfig$Args": "

A list of command line arguments passed to the JAR file's main function when executed.

", + "ListStepsInput$StepIds": "

The filter to limit the step list based on the identifier of the steps.

", + "ScriptBootstrapActionConfig$Args": "

A list of command line arguments to pass to the bootstrap action script.

", + "SetTerminationProtectionInput$JobFlowIds": "

A list of strings that uniquely identify the job flows to protect. This identifier is returned by RunJobFlow and can also be obtained from DescribeJobFlows .

", + "SetVisibleToAllUsersInput$JobFlowIds": "

Identifiers of the job flows to receive the new visibility setting.

", + "SupportedProductConfig$Args": "

The list of user-supplied arguments.

", + "TerminateJobFlowsInput$JobFlowIds": "

A list of job flows to be shutdown.

" + } + }, + "XmlStringMaxLen256": { + "base": null, + "refs": { + "AddInstanceGroupsInput$JobFlowId": "

Job flow in which to add the instance groups.

", + "AddInstanceGroupsOutput$JobFlowId": "

The job flow ID in which the instance groups are added.

", + "AddJobFlowStepsInput$JobFlowId": "

A string that uniquely identifies the job flow. This identifier is returned by RunJobFlow and can also be obtained from ListClusters.

", + "BootstrapActionConfig$Name": "

The name of the bootstrap action.

", + "InstanceGroupConfig$Name": "

Friendly name given to the instance group.

", + "InstanceGroupConfig$BidPrice": "

Bid price for each Amazon EC2 instance in the instance group when launching nodes as Spot Instances, expressed in USD.

", + "InstanceGroupDetail$InstanceGroupId": "

Unique identifier for the instance group.

", + "InstanceGroupDetail$Name": "

Friendly name for the instance group.

", + "InstanceGroupDetail$BidPrice": "

Bid price for EC2 Instances when launching nodes as Spot Instances, expressed in USD.

", + "InstanceGroupIdsList$member": null, + "InstanceGroupModifyConfig$InstanceGroupId": "

Unique ID of the instance group to expand or shrink.

", + "JobFlowDetail$JobFlowId": "

The job flow identifier.

", + "JobFlowDetail$Name": "

The name of the job flow.

", + "JobFlowDetail$AmiVersion": "

The version of the AMI used to initialize Amazon EC2 instances in the job flow. For a list of AMI versions currently supported by Amazon ElasticMapReduce, go to AMI Versions Supported in Elastic MapReduce in the Amazon Elastic MapReduce Developer's Guide.

", + "JobFlowInstancesConfig$Ec2KeyName": "

The name of the Amazon EC2 key pair that can be used to ssh to the master node as the user called \"hadoop.\"

", + "JobFlowInstancesConfig$HadoopVersion": "

The Hadoop version for the job flow. Valid inputs are \"0.18\", \"0.20\", \"0.20.205\", \"1.0.3\", \"2.2.0\", or \"2.4.0\". If you do not set this value, the default of 0.18 is used, unless the AmiVersion parameter is set in the RunJobFlow call, in which case the default version of Hadoop for that AMI version is used.

", + "JobFlowInstancesConfig$Ec2SubnetId": "

To launch the job flow in Amazon Virtual Private Cloud (Amazon VPC), set this parameter to the identifier of the Amazon VPC subnet where you want the job flow to launch. If you do not specify this value, the job flow is launched in the normal Amazon Web Services cloud, outside of an Amazon VPC.

Amazon VPC currently does not support cluster compute quadruple extra large (cc1.4xlarge) instances. Thus you cannot specify the cc1.4xlarge instance type for nodes of a job flow launched in a Amazon VPC.

", + "JobFlowInstancesConfig$EmrManagedMasterSecurityGroup": "

The identifier of the Amazon EC2 security group (managed by Amazon ElasticMapReduce) for the master node.

", + "JobFlowInstancesConfig$EmrManagedSlaveSecurityGroup": "

The identifier of the Amazon EC2 security group (managed by Amazon ElasticMapReduce) for the slave nodes.

", + "JobFlowInstancesDetail$Ec2KeyName": "

The name of an Amazon EC2 key pair that can be used to ssh to the master node of job flow.

", + "JobFlowInstancesDetail$Ec2SubnetId": "

For job flows launched within Amazon Virtual Private Cloud, this value specifies the identifier of the subnet where the job flow was launched.

", + "JobFlowInstancesDetail$HadoopVersion": "

The Hadoop version for the job flow.

", + "RunJobFlowInput$Name": "

The name of the job flow.

", + "RunJobFlowInput$AmiVersion": "

The version of the Amazon Machine Image (AMI) to use when launching Amazon EC2 instances in the job flow. The following values are valid:

  • \"latest\" (uses the latest AMI)
  • The version number of the AMI to use, for example, \"2.0\"

If the AMI supports multiple versions of Hadoop (for example, AMI 1.0 supports both Hadoop 0.18 and 0.20) you can use the JobFlowInstancesConfig HadoopVersion parameter to modify the version of Hadoop from the defaults shown above.

For details about the AMI versions currently supported by Amazon Elastic MapReduce, go to AMI Versions Supported in Elastic MapReduce in the Amazon Elastic MapReduce Developer's Guide.

", + "RunJobFlowOutput$JobFlowId": "

An unique identifier for the job flow.

", + "SecurityGroupsList$member": null, + "StepConfig$Name": "

The name of the job flow step.

", + "StepIdsList$member": null, + "SupportedProductConfig$Name": "

The name of the product configuration.

", + "SupportedProductsList$member": null + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/elasticmapreduce/2009-03-31/paginators-1.json b/lib/aws-sdk/Aws/data/elasticmapreduce/2009-03-31/paginators-1.json new file mode 100644 index 0000000..87f282d --- /dev/null +++ b/lib/aws-sdk/Aws/data/elasticmapreduce/2009-03-31/paginators-1.json @@ -0,0 +1,32 @@ +{ + "pagination": { + "DescribeJobFlows": { + "result_key": "JobFlows" + }, + "ListBootstrapActions": { + "input_token": "Marker", + "output_token": "Marker", + "result_key": "BootstrapActions" + }, + "ListClusters": { + "input_token": "Marker", + "output_token": "Marker", + "result_key": "Clusters" + }, + "ListInstanceGroups": { + "input_token": "Marker", + "output_token": "Marker", + "result_key": "InstanceGroups" + }, + "ListInstances": { + "input_token": "Marker", + "output_token": "Marker", + "result_key": "Instances" + }, + "ListSteps": { + "input_token": "Marker", + "output_token": "Marker", + "result_key": "Steps" + } + } +} diff --git a/lib/aws-sdk/Aws/data/elasticmapreduce/2009-03-31/waiters-2.json b/lib/aws-sdk/Aws/data/elasticmapreduce/2009-03-31/waiters-2.json new file mode 100644 index 0000000..829f1b1 --- /dev/null +++ b/lib/aws-sdk/Aws/data/elasticmapreduce/2009-03-31/waiters-2.json @@ -0,0 +1,67 @@ +{ + "version": 2, + "waiters": { + "ClusterRunning": { + "delay": 30, + "operation": "DescribeCluster", + "maxAttempts": 60, + "acceptors": [ + { + "state": "success", + "matcher": "path", + "argument": "Cluster.Status.State", + "expected": "RUNNING" + }, + { + "state": "success", + "matcher": "path", + "argument": "Cluster.Status.State", + "expected": "WAITING" + }, + { + "state": "failure", + "matcher": "path", + "argument": "Cluster.Status.State", + "expected": "TERMINATING" + }, + { + "state": "failure", + "matcher": "path", + "argument": "Cluster.Status.State", + "expected": "TERMINATED" + }, + { + "state": "failure", + "matcher": "path", + "argument": "Cluster.Status.State", + "expected": "TERMINATED_WITH_ERRORS" + } + ] + }, + "StepComplete": { + "delay": 30, + "operation": "DescribeStep", + "maxAttempts": 60, + "acceptors": [ + { + "state": "success", + "matcher": "path", + "argument": "Step.Status.State", + "expected": "COMPLETED" + }, + { + "state": "failure", + "matcher": "path", + "argument": "Step.Status.State", + "expected": "FAILED" + }, + { + "state": "failure", + "matcher": "path", + "argument": "Step.Status.State", + "expected": "CANCELLED" + } + ] + } + } +} diff --git a/lib/aws-sdk/Aws/data/elastictranscoder/2012-09-25/api-2.json b/lib/aws-sdk/Aws/data/elastictranscoder/2012-09-25/api-2.json new file mode 100644 index 0000000..419e958 --- /dev/null +++ b/lib/aws-sdk/Aws/data/elastictranscoder/2012-09-25/api-2.json @@ -0,0 +1,1807 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2012-09-25", + "endpointPrefix":"elastictranscoder", + "serviceFullName":"Amazon Elastic Transcoder", + "signatureVersion":"v4", + "protocol":"rest-json" + }, + "operations":{ + "CancelJob":{ + "name":"CancelJob", + "http":{ + "method":"DELETE", + "requestUri":"/2012-09-25/jobs/{Id}", + "responseCode":202 + }, + "input":{"shape":"CancelJobRequest"}, + "output":{"shape":"CancelJobResponse"}, + "errors":[ + { + "shape":"ValidationException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"IncompatibleVersionException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"ResourceInUseException", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"AccessDeniedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"InternalServiceException", + "exception":true, + "fault":true + } + ] + }, + "CreateJob":{ + "name":"CreateJob", + "http":{ + "method":"POST", + "requestUri":"/2012-09-25/jobs", + "responseCode":201 + }, + "input":{"shape":"CreateJobRequest"}, + "output":{"shape":"CreateJobResponse"}, + "errors":[ + { + "shape":"ValidationException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"IncompatibleVersionException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"AccessDeniedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{"httpStatusCode":429}, + "exception":true + }, + { + "shape":"InternalServiceException", + "exception":true, + "fault":true + } + ] + }, + "CreatePipeline":{ + "name":"CreatePipeline", + "http":{ + "method":"POST", + "requestUri":"/2012-09-25/pipelines", + "responseCode":201 + }, + "input":{"shape":"CreatePipelineRequest"}, + "output":{"shape":"CreatePipelineResponse"}, + "errors":[ + { + "shape":"ValidationException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"IncompatibleVersionException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"AccessDeniedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{"httpStatusCode":429}, + "exception":true + }, + { + "shape":"InternalServiceException", + "exception":true, + "fault":true + } + ] + }, + "CreatePreset":{ + "name":"CreatePreset", + "http":{ + "method":"POST", + "requestUri":"/2012-09-25/presets", + "responseCode":201 + }, + "input":{"shape":"CreatePresetRequest"}, + "output":{"shape":"CreatePresetResponse"}, + "errors":[ + { + "shape":"ValidationException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"IncompatibleVersionException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"AccessDeniedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{"httpStatusCode":429}, + "exception":true + }, + { + "shape":"InternalServiceException", + "exception":true, + "fault":true + } + ] + }, + "DeletePipeline":{ + "name":"DeletePipeline", + "http":{ + "method":"DELETE", + "requestUri":"/2012-09-25/pipelines/{Id}", + "responseCode":202 + }, + "input":{"shape":"DeletePipelineRequest"}, + "output":{"shape":"DeletePipelineResponse"}, + "errors":[ + { + "shape":"ValidationException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"IncompatibleVersionException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"ResourceInUseException", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"AccessDeniedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"InternalServiceException", + "exception":true, + "fault":true + } + ] + }, + "DeletePreset":{ + "name":"DeletePreset", + "http":{ + "method":"DELETE", + "requestUri":"/2012-09-25/presets/{Id}", + "responseCode":202 + }, + "input":{"shape":"DeletePresetRequest"}, + "output":{"shape":"DeletePresetResponse"}, + "errors":[ + { + "shape":"ValidationException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"IncompatibleVersionException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"AccessDeniedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"InternalServiceException", + "exception":true, + "fault":true + } + ] + }, + "ListJobsByPipeline":{ + "name":"ListJobsByPipeline", + "http":{ + "method":"GET", + "requestUri":"/2012-09-25/jobsByPipeline/{PipelineId}" + }, + "input":{"shape":"ListJobsByPipelineRequest"}, + "output":{"shape":"ListJobsByPipelineResponse"}, + "errors":[ + { + "shape":"ValidationException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"IncompatibleVersionException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"AccessDeniedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"InternalServiceException", + "exception":true, + "fault":true + } + ] + }, + "ListJobsByStatus":{ + "name":"ListJobsByStatus", + "http":{ + "method":"GET", + "requestUri":"/2012-09-25/jobsByStatus/{Status}" + }, + "input":{"shape":"ListJobsByStatusRequest"}, + "output":{"shape":"ListJobsByStatusResponse"}, + "errors":[ + { + "shape":"ValidationException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"IncompatibleVersionException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"AccessDeniedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"InternalServiceException", + "exception":true, + "fault":true + } + ] + }, + "ListPipelines":{ + "name":"ListPipelines", + "http":{ + "method":"GET", + "requestUri":"/2012-09-25/pipelines" + }, + "input":{"shape":"ListPipelinesRequest"}, + "output":{"shape":"ListPipelinesResponse"}, + "errors":[ + { + "shape":"ValidationException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"IncompatibleVersionException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"AccessDeniedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"InternalServiceException", + "exception":true, + "fault":true + } + ] + }, + "ListPresets":{ + "name":"ListPresets", + "http":{ + "method":"GET", + "requestUri":"/2012-09-25/presets" + }, + "input":{"shape":"ListPresetsRequest"}, + "output":{"shape":"ListPresetsResponse"}, + "errors":[ + { + "shape":"ValidationException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"IncompatibleVersionException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"AccessDeniedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"InternalServiceException", + "exception":true, + "fault":true + } + ] + }, + "ReadJob":{ + "name":"ReadJob", + "http":{ + "method":"GET", + "requestUri":"/2012-09-25/jobs/{Id}" + }, + "input":{"shape":"ReadJobRequest"}, + "output":{"shape":"ReadJobResponse"}, + "errors":[ + { + "shape":"ValidationException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"IncompatibleVersionException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"AccessDeniedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"InternalServiceException", + "exception":true, + "fault":true + } + ] + }, + "ReadPipeline":{ + "name":"ReadPipeline", + "http":{ + "method":"GET", + "requestUri":"/2012-09-25/pipelines/{Id}" + }, + "input":{"shape":"ReadPipelineRequest"}, + "output":{"shape":"ReadPipelineResponse"}, + "errors":[ + { + "shape":"ValidationException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"IncompatibleVersionException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"AccessDeniedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"InternalServiceException", + "exception":true, + "fault":true + } + ] + }, + "ReadPreset":{ + "name":"ReadPreset", + "http":{ + "method":"GET", + "requestUri":"/2012-09-25/presets/{Id}" + }, + "input":{"shape":"ReadPresetRequest"}, + "output":{"shape":"ReadPresetResponse"}, + "errors":[ + { + "shape":"ValidationException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"IncompatibleVersionException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"AccessDeniedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"InternalServiceException", + "exception":true, + "fault":true + } + ] + }, + "TestRole":{ + "name":"TestRole", + "http":{ + "method":"POST", + "requestUri":"/2012-09-25/roleTests", + "responseCode":200 + }, + "input":{"shape":"TestRoleRequest"}, + "output":{"shape":"TestRoleResponse"}, + "errors":[ + { + "shape":"ValidationException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"IncompatibleVersionException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"AccessDeniedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"InternalServiceException", + "exception":true, + "fault":true + } + ] + }, + "UpdatePipeline":{ + "name":"UpdatePipeline", + "http":{ + "method":"PUT", + "requestUri":"/2012-09-25/pipelines/{Id}", + "responseCode":200 + }, + "input":{"shape":"UpdatePipelineRequest"}, + "output":{"shape":"UpdatePipelineResponse"}, + "errors":[ + { + "shape":"ValidationException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"IncompatibleVersionException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"AccessDeniedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"ResourceInUseException", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InternalServiceException", + "exception":true, + "fault":true + } + ] + }, + "UpdatePipelineNotifications":{ + "name":"UpdatePipelineNotifications", + "http":{ + "method":"POST", + "requestUri":"/2012-09-25/pipelines/{Id}/notifications" + }, + "input":{"shape":"UpdatePipelineNotificationsRequest"}, + "output":{"shape":"UpdatePipelineNotificationsResponse"}, + "errors":[ + { + "shape":"ValidationException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"IncompatibleVersionException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"ResourceInUseException", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"AccessDeniedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"InternalServiceException", + "exception":true, + "fault":true + } + ] + }, + "UpdatePipelineStatus":{ + "name":"UpdatePipelineStatus", + "http":{ + "method":"POST", + "requestUri":"/2012-09-25/pipelines/{Id}/status" + }, + "input":{"shape":"UpdatePipelineStatusRequest"}, + "output":{"shape":"UpdatePipelineStatusResponse"}, + "errors":[ + { + "shape":"ValidationException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"IncompatibleVersionException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"ResourceInUseException", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"AccessDeniedException", + "error":{"httpStatusCode":403}, + "exception":true + }, + { + "shape":"InternalServiceException", + "exception":true, + "fault":true + } + ] + } + }, + "shapes":{ + "AccessControl":{ + "type":"string", + "pattern":"(^FullControl$)|(^Read$)|(^ReadAcp$)|(^WriteAcp$)" + }, + "AccessControls":{ + "type":"list", + "member":{"shape":"AccessControl"}, + "max":30 + }, + "AccessDeniedException":{ + "type":"structure", + "members":{ + }, + "error":{"httpStatusCode":403}, + "exception":true + }, + "Artwork":{ + "type":"structure", + "members":{ + "InputKey":{"shape":"WatermarkKey"}, + "MaxWidth":{"shape":"DigitsOrAuto"}, + "MaxHeight":{"shape":"DigitsOrAuto"}, + "SizingPolicy":{"shape":"SizingPolicy"}, + "PaddingPolicy":{"shape":"PaddingPolicy"}, + "AlbumArtFormat":{"shape":"JpgOrPng"}, + "Encryption":{"shape":"Encryption"} + } + }, + "Artworks":{ + "type":"list", + "member":{"shape":"Artwork"} + }, + "Ascending":{ + "type":"string", + "pattern":"(^true$)|(^false$)" + }, + "AspectRatio":{ + "type":"string", + "pattern":"(^auto$)|(^1:1$)|(^4:3$)|(^3:2$)|(^16:9$)" + }, + "AudioBitDepth":{ + "type":"string", + "pattern":"(^16$)|(^24$)" + }, + "AudioBitOrder":{ + "type":"string", + "pattern":"(^LittleEndian$)" + }, + "AudioBitRate":{ + "type":"string", + "pattern":"^\\d{1,3}$" + }, + "AudioChannels":{ + "type":"string", + "pattern":"(^auto$)|(^0$)|(^1$)|(^2$)" + }, + "AudioCodec":{ + "type":"string", + "pattern":"(^AAC$)|(^vorbis$)|(^mp3$)|(^mp2$)|(^pcm$)|(^flac$)" + }, + "AudioCodecOptions":{ + "type":"structure", + "members":{ + "Profile":{"shape":"AudioCodecProfile"}, + "BitDepth":{"shape":"AudioBitDepth"}, + "BitOrder":{"shape":"AudioBitOrder"}, + "Signed":{"shape":"AudioSigned"} + } + }, + "AudioCodecProfile":{ + "type":"string", + "pattern":"(^auto$)|(^AAC-LC$)|(^HE-AAC$)|(^HE-AACv2$)" + }, + "AudioPackingMode":{ + "type":"string", + "pattern":"(^SingleTrack$)|(^OneChannelPerTrack$)|(^OneChannelPerTrackWithMosTo8Tracks$)" + }, + "AudioParameters":{ + "type":"structure", + "members":{ + "Codec":{"shape":"AudioCodec"}, + "SampleRate":{"shape":"AudioSampleRate"}, + "BitRate":{"shape":"AudioBitRate"}, + "Channels":{"shape":"AudioChannels"}, + "AudioPackingMode":{"shape":"AudioPackingMode"}, + "CodecOptions":{"shape":"AudioCodecOptions"} + } + }, + "AudioSampleRate":{ + "type":"string", + "pattern":"(^auto$)|(^22050$)|(^32000$)|(^44100$)|(^48000$)|(^96000$)|(^192000$)" + }, + "AudioSigned":{ + "type":"string", + "pattern":"(^Signed$)" + }, + "Base64EncodedString":{ + "type":"string", + "pattern":"^$|(^(?:[A-Za-z0-9\\+/]{4})*(?:[A-Za-z0-9\\+/]{2}==|[A-Za-z0-9\\+/]{3}=)?$)" + }, + "BucketName":{ + "type":"string", + "pattern":"^(\\w|\\.|-){1,255}$" + }, + "CancelJobRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"Id", + "location":"uri", + "locationName":"Id" + } + } + }, + "CancelJobResponse":{ + "type":"structure", + "members":{ + } + }, + "CaptionFormat":{ + "type":"structure", + "members":{ + "Format":{"shape":"CaptionFormatFormat"}, + "Pattern":{"shape":"CaptionFormatPattern"}, + "Encryption":{"shape":"Encryption"} + } + }, + "CaptionFormatFormat":{ + "type":"string", + "pattern":"(^mov-text$)|(^srt$)|(^scc$)|(^webvtt$)|(^dfxp$)" + }, + "CaptionFormatPattern":{ + "type":"string", + "pattern":"(^$)|(^.*\\{language\\}.*$)" + }, + "CaptionFormats":{ + "type":"list", + "member":{"shape":"CaptionFormat"}, + "max":4 + }, + "CaptionMergePolicy":{ + "type":"string", + "pattern":"(^MergeOverride$)|(^MergeRetain$)|(^Override$)" + }, + "CaptionSource":{ + "type":"structure", + "members":{ + "Key":{"shape":"Key"}, + "Language":{"shape":"Key"}, + "TimeOffset":{"shape":"TimeOffset"}, + "Label":{"shape":"Name"}, + "Encryption":{"shape":"Encryption"} + } + }, + "CaptionSources":{ + "type":"list", + "member":{"shape":"CaptionSource"}, + "max":20 + }, + "Captions":{ + "type":"structure", + "members":{ + "MergePolicy":{"shape":"CaptionMergePolicy"}, + "CaptionSources":{"shape":"CaptionSources"}, + "CaptionFormats":{"shape":"CaptionFormats"} + } + }, + "Clip":{ + "type":"structure", + "members":{ + "TimeSpan":{"shape":"TimeSpan"} + } + }, + "CodecOption":{ + "type":"string", + "min":1, + "max":255 + }, + "CodecOptions":{ + "type":"map", + "key":{"shape":"CodecOption"}, + "value":{"shape":"CodecOption"}, + "max":30 + }, + "Composition":{ + "type":"list", + "member":{"shape":"Clip"} + }, + "CreateJobOutput":{ + "type":"structure", + "members":{ + "Key":{"shape":"Key"}, + "ThumbnailPattern":{"shape":"ThumbnailPattern"}, + "ThumbnailEncryption":{"shape":"Encryption"}, + "Rotate":{"shape":"Rotate"}, + "PresetId":{"shape":"Id"}, + "SegmentDuration":{"shape":"FloatString"}, + "Watermarks":{"shape":"JobWatermarks"}, + "AlbumArt":{"shape":"JobAlbumArt"}, + "Composition":{"shape":"Composition"}, + "Captions":{"shape":"Captions"}, + "Encryption":{"shape":"Encryption"} + } + }, + "CreateJobOutputs":{ + "type":"list", + "member":{"shape":"CreateJobOutput"}, + "max":30 + }, + "CreateJobPlaylist":{ + "type":"structure", + "members":{ + "Name":{"shape":"Filename"}, + "Format":{"shape":"PlaylistFormat"}, + "OutputKeys":{"shape":"OutputKeys"}, + "HlsContentProtection":{"shape":"HlsContentProtection"}, + "PlayReadyDrm":{"shape":"PlayReadyDrm"} + } + }, + "CreateJobPlaylists":{ + "type":"list", + "member":{"shape":"CreateJobPlaylist"}, + "max":30 + }, + "CreateJobRequest":{ + "type":"structure", + "required":[ + "PipelineId", + "Input" + ], + "members":{ + "PipelineId":{"shape":"Id"}, + "Input":{"shape":"JobInput"}, + "Output":{"shape":"CreateJobOutput"}, + "Outputs":{"shape":"CreateJobOutputs"}, + "OutputKeyPrefix":{"shape":"Key"}, + "Playlists":{"shape":"CreateJobPlaylists"}, + "UserMetadata":{"shape":"UserMetadata"} + } + }, + "CreateJobResponse":{ + "type":"structure", + "members":{ + "Job":{"shape":"Job"} + } + }, + "CreatePipelineRequest":{ + "type":"structure", + "required":[ + "Name", + "InputBucket", + "Role" + ], + "members":{ + "Name":{"shape":"Name"}, + "InputBucket":{"shape":"BucketName"}, + "OutputBucket":{"shape":"BucketName"}, + "Role":{"shape":"Role"}, + "AwsKmsKeyArn":{"shape":"KeyArn"}, + "Notifications":{"shape":"Notifications"}, + "ContentConfig":{"shape":"PipelineOutputConfig"}, + "ThumbnailConfig":{"shape":"PipelineOutputConfig"} + } + }, + "CreatePipelineResponse":{ + "type":"structure", + "members":{ + "Pipeline":{"shape":"Pipeline"}, + "Warnings":{"shape":"Warnings"} + } + }, + "CreatePresetRequest":{ + "type":"structure", + "required":[ + "Name", + "Container" + ], + "members":{ + "Name":{"shape":"Name"}, + "Description":{"shape":"Description"}, + "Container":{"shape":"PresetContainer"}, + "Video":{"shape":"VideoParameters"}, + "Audio":{"shape":"AudioParameters"}, + "Thumbnails":{"shape":"Thumbnails"} + } + }, + "CreatePresetResponse":{ + "type":"structure", + "members":{ + "Preset":{"shape":"Preset"}, + "Warning":{"shape":"String"} + } + }, + "DeletePipelineRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"Id", + "location":"uri", + "locationName":"Id" + } + } + }, + "DeletePipelineResponse":{ + "type":"structure", + "members":{ + } + }, + "DeletePresetRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"Id", + "location":"uri", + "locationName":"Id" + } + } + }, + "DeletePresetResponse":{ + "type":"structure", + "members":{ + } + }, + "Description":{ + "type":"string", + "min":0, + "max":255 + }, + "DetectedProperties":{ + "type":"structure", + "members":{ + "Width":{"shape":"NullableInteger"}, + "Height":{"shape":"NullableInteger"}, + "FrameRate":{"shape":"FloatString"}, + "FileSize":{"shape":"NullableLong"}, + "DurationMillis":{"shape":"NullableLong"} + } + }, + "Digits":{ + "type":"string", + "pattern":"^\\d{1,5}$" + }, + "DigitsOrAuto":{ + "type":"string", + "pattern":"(^auto$)|(^\\d{2,4}$)" + }, + "Encryption":{ + "type":"structure", + "members":{ + "Mode":{"shape":"EncryptionMode"}, + "Key":{"shape":"Base64EncodedString"}, + "KeyMd5":{"shape":"Base64EncodedString"}, + "InitializationVector":{"shape":"ZeroTo255String"} + } + }, + "EncryptionMode":{ + "type":"string", + "pattern":"(^s3$)|(^s3-aws-kms$)|(^aes-cbc-pkcs7$)|(^aes-ctr$)|(^aes-gcm$)" + }, + "ExceptionMessages":{ + "type":"list", + "member":{"shape":"String"} + }, + "Filename":{ + "type":"string", + "min":1, + "max":255 + }, + "FixedGOP":{ + "type":"string", + "pattern":"(^true$)|(^false$)" + }, + "FloatString":{ + "type":"string", + "pattern":"^\\d{1,5}(\\.\\d{0,5})?$" + }, + "FrameRate":{ + "type":"string", + "pattern":"(^auto$)|(^10$)|(^15$)|(^23.97$)|(^24$)|(^25$)|(^29.97$)|(^30$)|(^50$)|(^60$)" + }, + "Grantee":{ + "type":"string", + "min":1, + "max":255 + }, + "GranteeType":{ + "type":"string", + "pattern":"(^Canonical$)|(^Email$)|(^Group$)" + }, + "HlsContentProtection":{ + "type":"structure", + "members":{ + "Method":{"shape":"HlsContentProtectionMethod"}, + "Key":{"shape":"Base64EncodedString"}, + "KeyMd5":{"shape":"Base64EncodedString"}, + "InitializationVector":{"shape":"ZeroTo255String"}, + "LicenseAcquisitionUrl":{"shape":"ZeroTo512String"}, + "KeyStoragePolicy":{"shape":"KeyStoragePolicy"} + } + }, + "HlsContentProtectionMethod":{ + "type":"string", + "pattern":"(^aes-128$)" + }, + "HorizontalAlign":{ + "type":"string", + "pattern":"(^Left$)|(^Right$)|(^Center$)" + }, + "Id":{ + "type":"string", + "pattern":"^\\d{13}-\\w{6}$" + }, + "IncompatibleVersionException":{ + "type":"structure", + "members":{ + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "Interlaced":{ + "type":"string", + "pattern":"(^auto$)|(^true$)|(^false$)" + }, + "InternalServiceException":{ + "type":"structure", + "members":{ + }, + "exception":true, + "fault":true + }, + "Job":{ + "type":"structure", + "members":{ + "Id":{"shape":"Id"}, + "Arn":{"shape":"String"}, + "PipelineId":{"shape":"Id"}, + "Input":{"shape":"JobInput"}, + "Output":{"shape":"JobOutput"}, + "Outputs":{"shape":"JobOutputs"}, + "OutputKeyPrefix":{"shape":"Key"}, + "Playlists":{"shape":"Playlists"}, + "Status":{"shape":"JobStatus"}, + "UserMetadata":{"shape":"UserMetadata"}, + "Timing":{"shape":"Timing"} + } + }, + "JobAlbumArt":{ + "type":"structure", + "members":{ + "MergePolicy":{"shape":"MergePolicy"}, + "Artwork":{"shape":"Artworks"} + } + }, + "JobContainer":{ + "type":"string", + "pattern":"(^auto$)|(^3gp$)|(^asf$)|(^avi$)|(^divx$)|(^flv$)|(^mkv$)|(^mov$)|(^mp4$)|(^mpeg$)|(^mpeg-ps$)|(^mpeg-ts$)|(^mxf$)|(^ogg$)|(^ts$)|(^vob$)|(^wav$)|(^webm$)|(^mp3$)|(^m4a$)|(^aac$)" + }, + "JobInput":{ + "type":"structure", + "members":{ + "Key":{"shape":"Key"}, + "FrameRate":{"shape":"FrameRate"}, + "Resolution":{"shape":"Resolution"}, + "AspectRatio":{"shape":"AspectRatio"}, + "Interlaced":{"shape":"Interlaced"}, + "Container":{"shape":"JobContainer"}, + "Encryption":{"shape":"Encryption"}, + "DetectedProperties":{"shape":"DetectedProperties"} + } + }, + "JobOutput":{ + "type":"structure", + "members":{ + "Id":{"shape":"String"}, + "Key":{"shape":"Key"}, + "ThumbnailPattern":{"shape":"ThumbnailPattern"}, + "ThumbnailEncryption":{"shape":"Encryption"}, + "Rotate":{"shape":"Rotate"}, + "PresetId":{"shape":"Id"}, + "SegmentDuration":{"shape":"FloatString"}, + "Status":{"shape":"JobStatus"}, + "StatusDetail":{"shape":"Description"}, + "Duration":{"shape":"NullableLong"}, + "Width":{"shape":"NullableInteger"}, + "Height":{"shape":"NullableInteger"}, + "FrameRate":{"shape":"FloatString"}, + "FileSize":{"shape":"NullableLong"}, + "DurationMillis":{"shape":"NullableLong"}, + "Watermarks":{"shape":"JobWatermarks"}, + "AlbumArt":{"shape":"JobAlbumArt"}, + "Composition":{"shape":"Composition"}, + "Captions":{"shape":"Captions"}, + "Encryption":{"shape":"Encryption"}, + "AppliedColorSpaceConversion":{"shape":"String"} + } + }, + "JobOutputs":{ + "type":"list", + "member":{"shape":"JobOutput"} + }, + "JobStatus":{ + "type":"string", + "pattern":"(^Submitted$)|(^Progressing$)|(^Complete$)|(^Canceled$)|(^Error$)" + }, + "JobWatermark":{ + "type":"structure", + "members":{ + "PresetWatermarkId":{"shape":"PresetWatermarkId"}, + "InputKey":{"shape":"WatermarkKey"}, + "Encryption":{"shape":"Encryption"} + } + }, + "JobWatermarks":{ + "type":"list", + "member":{"shape":"JobWatermark"} + }, + "Jobs":{ + "type":"list", + "member":{"shape":"Job"} + }, + "JpgOrPng":{ + "type":"string", + "pattern":"(^jpg$)|(^png$)" + }, + "Key":{ + "type":"string", + "min":1, + "max":255 + }, + "KeyArn":{ + "type":"string", + "min":0, + "max":255 + }, + "KeyIdGuid":{ + "type":"string", + "pattern":"(^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$)|(^[0-9A-Fa-f]{32}$)" + }, + "KeyStoragePolicy":{ + "type":"string", + "pattern":"(^NoStore$)|(^WithVariantPlaylists$)" + }, + "KeyframesMaxDist":{ + "type":"string", + "pattern":"^\\d{1,6}$" + }, + "LimitExceededException":{ + "type":"structure", + "members":{ + }, + "error":{"httpStatusCode":429}, + "exception":true + }, + "ListJobsByPipelineRequest":{ + "type":"structure", + "required":["PipelineId"], + "members":{ + "PipelineId":{ + "shape":"Id", + "location":"uri", + "locationName":"PipelineId" + }, + "Ascending":{ + "shape":"Ascending", + "location":"querystring", + "locationName":"Ascending" + }, + "PageToken":{ + "shape":"Id", + "location":"querystring", + "locationName":"PageToken" + } + } + }, + "ListJobsByPipelineResponse":{ + "type":"structure", + "members":{ + "Jobs":{"shape":"Jobs"}, + "NextPageToken":{"shape":"Id"} + } + }, + "ListJobsByStatusRequest":{ + "type":"structure", + "required":["Status"], + "members":{ + "Status":{ + "shape":"JobStatus", + "location":"uri", + "locationName":"Status" + }, + "Ascending":{ + "shape":"Ascending", + "location":"querystring", + "locationName":"Ascending" + }, + "PageToken":{ + "shape":"Id", + "location":"querystring", + "locationName":"PageToken" + } + } + }, + "ListJobsByStatusResponse":{ + "type":"structure", + "members":{ + "Jobs":{"shape":"Jobs"}, + "NextPageToken":{"shape":"Id"} + } + }, + "ListPipelinesRequest":{ + "type":"structure", + "members":{ + "Ascending":{ + "shape":"Ascending", + "location":"querystring", + "locationName":"Ascending" + }, + "PageToken":{ + "shape":"Id", + "location":"querystring", + "locationName":"PageToken" + } + } + }, + "ListPipelinesResponse":{ + "type":"structure", + "members":{ + "Pipelines":{"shape":"Pipelines"}, + "NextPageToken":{"shape":"Id"} + } + }, + "ListPresetsRequest":{ + "type":"structure", + "members":{ + "Ascending":{ + "shape":"Ascending", + "location":"querystring", + "locationName":"Ascending" + }, + "PageToken":{ + "shape":"Id", + "location":"querystring", + "locationName":"PageToken" + } + } + }, + "ListPresetsResponse":{ + "type":"structure", + "members":{ + "Presets":{"shape":"Presets"}, + "NextPageToken":{"shape":"Id"} + } + }, + "MaxFrameRate":{ + "type":"string", + "pattern":"(^10$)|(^15$)|(^23.97$)|(^24$)|(^25$)|(^29.97$)|(^30$)|(^50$)|(^60$)" + }, + "MergePolicy":{ + "type":"string", + "pattern":"(^Replace$)|(^Prepend$)|(^Append$)|(^Fallback$)" + }, + "Name":{ + "type":"string", + "min":1, + "max":40 + }, + "NonEmptyBase64EncodedString":{ + "type":"string", + "pattern":"(^(?:[A-Za-z0-9\\+/]{4})*(?:[A-Za-z0-9\\+/]{2}==|[A-Za-z0-9\\+/]{3}=)?$)" + }, + "Notifications":{ + "type":"structure", + "members":{ + "Progressing":{"shape":"SnsTopic"}, + "Completed":{"shape":"SnsTopic"}, + "Warning":{"shape":"SnsTopic"}, + "Error":{"shape":"SnsTopic"} + } + }, + "NullableInteger":{"type":"integer"}, + "NullableLong":{"type":"long"}, + "OneTo512String":{ + "type":"string", + "min":1, + "max":512 + }, + "Opacity":{ + "type":"string", + "pattern":"^\\d{1,3}(\\.\\d{0,20})?$" + }, + "OutputKeys":{ + "type":"list", + "member":{"shape":"Key"}, + "max":30 + }, + "PaddingPolicy":{ + "type":"string", + "pattern":"(^Pad$)|(^NoPad$)" + }, + "Permission":{ + "type":"structure", + "members":{ + "GranteeType":{"shape":"GranteeType"}, + "Grantee":{"shape":"Grantee"}, + "Access":{"shape":"AccessControls"} + } + }, + "Permissions":{ + "type":"list", + "member":{"shape":"Permission"}, + "max":30 + }, + "Pipeline":{ + "type":"structure", + "members":{ + "Id":{"shape":"Id"}, + "Arn":{"shape":"String"}, + "Name":{"shape":"Name"}, + "Status":{"shape":"PipelineStatus"}, + "InputBucket":{"shape":"BucketName"}, + "OutputBucket":{"shape":"BucketName"}, + "Role":{"shape":"Role"}, + "AwsKmsKeyArn":{"shape":"KeyArn"}, + "Notifications":{"shape":"Notifications"}, + "ContentConfig":{"shape":"PipelineOutputConfig"}, + "ThumbnailConfig":{"shape":"PipelineOutputConfig"} + } + }, + "PipelineOutputConfig":{ + "type":"structure", + "members":{ + "Bucket":{"shape":"BucketName"}, + "StorageClass":{"shape":"StorageClass"}, + "Permissions":{"shape":"Permissions"} + } + }, + "PipelineStatus":{ + "type":"string", + "pattern":"(^Active$)|(^Paused$)" + }, + "Pipelines":{ + "type":"list", + "member":{"shape":"Pipeline"} + }, + "PixelsOrPercent":{ + "type":"string", + "pattern":"(^\\d{1,3}(\\.\\d{0,5})?%$)|(^\\d{1,4}?px$)" + }, + "PlayReadyDrm":{ + "type":"structure", + "members":{ + "Format":{"shape":"PlayReadyDrmFormatString"}, + "Key":{"shape":"NonEmptyBase64EncodedString"}, + "KeyMd5":{"shape":"NonEmptyBase64EncodedString"}, + "KeyId":{"shape":"KeyIdGuid"}, + "InitializationVector":{"shape":"ZeroTo255String"}, + "LicenseAcquisitionUrl":{"shape":"OneTo512String"} + } + }, + "PlayReadyDrmFormatString":{ + "type":"string", + "pattern":"(^microsoft$)|(^discretix-3.0$)" + }, + "Playlist":{ + "type":"structure", + "members":{ + "Name":{"shape":"Filename"}, + "Format":{"shape":"PlaylistFormat"}, + "OutputKeys":{"shape":"OutputKeys"}, + "HlsContentProtection":{"shape":"HlsContentProtection"}, + "PlayReadyDrm":{"shape":"PlayReadyDrm"}, + "Status":{"shape":"JobStatus"}, + "StatusDetail":{"shape":"Description"} + } + }, + "PlaylistFormat":{ + "type":"string", + "pattern":"(^HLSv3$)|(^HLSv4$)|(^Smooth$)" + }, + "Playlists":{ + "type":"list", + "member":{"shape":"Playlist"} + }, + "Preset":{ + "type":"structure", + "members":{ + "Id":{"shape":"Id"}, + "Arn":{"shape":"String"}, + "Name":{"shape":"Name"}, + "Description":{"shape":"Description"}, + "Container":{"shape":"PresetContainer"}, + "Audio":{"shape":"AudioParameters"}, + "Video":{"shape":"VideoParameters"}, + "Thumbnails":{"shape":"Thumbnails"}, + "Type":{"shape":"PresetType"} + } + }, + "PresetContainer":{ + "type":"string", + "pattern":"(^mp4$)|(^ts$)|(^webm$)|(^mp3$)|(^flac$)|(^oga$)|(^ogg$)|(^fmp4$)|(^mpg$)|(^flv$)|(^gif$)|(^mxf$)" + }, + "PresetType":{ + "type":"string", + "pattern":"(^System$)|(^Custom$)" + }, + "PresetWatermark":{ + "type":"structure", + "members":{ + "Id":{"shape":"PresetWatermarkId"}, + "MaxWidth":{"shape":"PixelsOrPercent"}, + "MaxHeight":{"shape":"PixelsOrPercent"}, + "SizingPolicy":{"shape":"WatermarkSizingPolicy"}, + "HorizontalAlign":{"shape":"HorizontalAlign"}, + "HorizontalOffset":{"shape":"PixelsOrPercent"}, + "VerticalAlign":{"shape":"VerticalAlign"}, + "VerticalOffset":{"shape":"PixelsOrPercent"}, + "Opacity":{"shape":"Opacity"}, + "Target":{"shape":"Target"} + } + }, + "PresetWatermarkId":{ + "type":"string", + "min":1, + "max":40 + }, + "PresetWatermarks":{ + "type":"list", + "member":{"shape":"PresetWatermark"} + }, + "Presets":{ + "type":"list", + "member":{"shape":"Preset"} + }, + "ReadJobRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"Id", + "location":"uri", + "locationName":"Id" + } + } + }, + "ReadJobResponse":{ + "type":"structure", + "members":{ + "Job":{"shape":"Job"} + } + }, + "ReadPipelineRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"Id", + "location":"uri", + "locationName":"Id" + } + } + }, + "ReadPipelineResponse":{ + "type":"structure", + "members":{ + "Pipeline":{"shape":"Pipeline"}, + "Warnings":{"shape":"Warnings"} + } + }, + "ReadPresetRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"Id", + "location":"uri", + "locationName":"Id" + } + } + }, + "ReadPresetResponse":{ + "type":"structure", + "members":{ + "Preset":{"shape":"Preset"} + } + }, + "Resolution":{ + "type":"string", + "pattern":"(^auto$)|(^\\d{1,5}x\\d{1,5}$)" + }, + "ResourceInUseException":{ + "type":"structure", + "members":{ + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "Role":{ + "type":"string", + "pattern":"^arn:aws:iam::\\w{12}:role/.+$" + }, + "Rotate":{ + "type":"string", + "pattern":"(^auto$)|(^0$)|(^90$)|(^180$)|(^270$)" + }, + "SizingPolicy":{ + "type":"string", + "pattern":"(^Fit$)|(^Fill$)|(^Stretch$)|(^Keep$)|(^ShrinkToFit$)|(^ShrinkToFill$)" + }, + "SnsTopic":{ + "type":"string", + "pattern":"(^$)|(^arn:aws:sns:.*:\\w{12}:.+$)" + }, + "SnsTopics":{ + "type":"list", + "member":{"shape":"SnsTopic"}, + "max":30 + }, + "StorageClass":{ + "type":"string", + "pattern":"(^ReducedRedundancy$)|(^Standard$)" + }, + "String":{"type":"string"}, + "Success":{ + "type":"string", + "pattern":"(^true$)|(^false$)" + }, + "Target":{ + "type":"string", + "pattern":"(^Content$)|(^Frame$)" + }, + "TestRoleRequest":{ + "type":"structure", + "required":[ + "Role", + "InputBucket", + "OutputBucket", + "Topics" + ], + "members":{ + "Role":{"shape":"Role"}, + "InputBucket":{"shape":"BucketName"}, + "OutputBucket":{"shape":"BucketName"}, + "Topics":{"shape":"SnsTopics"} + } + }, + "TestRoleResponse":{ + "type":"structure", + "members":{ + "Success":{"shape":"Success"}, + "Messages":{"shape":"ExceptionMessages"} + } + }, + "ThumbnailPattern":{ + "type":"string", + "pattern":"(^$)|(^.*\\{count\\}.*$)" + }, + "ThumbnailResolution":{ + "type":"string", + "pattern":"^\\d{1,5}x\\d{1,5}$" + }, + "Thumbnails":{ + "type":"structure", + "members":{ + "Format":{"shape":"JpgOrPng"}, + "Interval":{"shape":"Digits"}, + "Resolution":{"shape":"ThumbnailResolution"}, + "AspectRatio":{"shape":"AspectRatio"}, + "MaxWidth":{"shape":"DigitsOrAuto"}, + "MaxHeight":{"shape":"DigitsOrAuto"}, + "SizingPolicy":{"shape":"SizingPolicy"}, + "PaddingPolicy":{"shape":"PaddingPolicy"} + } + }, + "Time":{ + "type":"string", + "pattern":"(^\\d{1,5}(\\.\\d{0,3})?$)|(^([0-1]?[0-9]:|2[0-3]:)?([0-5]?[0-9]:)?[0-5]?[0-9](\\.\\d{0,3})?$)" + }, + "TimeOffset":{ + "type":"string", + "pattern":"(^[+-]?\\d{1,5}(\\.\\d{0,3})?$)|(^[+-]?([0-1]?[0-9]:|2[0-3]:)?([0-5]?[0-9]:)?[0-5]?[0-9](\\.\\d{0,3})?$)" + }, + "TimeSpan":{ + "type":"structure", + "members":{ + "StartTime":{"shape":"Time"}, + "Duration":{"shape":"Time"} + } + }, + "Timing":{ + "type":"structure", + "members":{ + "SubmitTimeMillis":{"shape":"NullableLong"}, + "StartTimeMillis":{"shape":"NullableLong"}, + "FinishTimeMillis":{"shape":"NullableLong"} + } + }, + "UpdatePipelineNotificationsRequest":{ + "type":"structure", + "required":[ + "Id", + "Notifications" + ], + "members":{ + "Id":{ + "shape":"Id", + "location":"uri", + "locationName":"Id" + }, + "Notifications":{"shape":"Notifications"} + } + }, + "UpdatePipelineNotificationsResponse":{ + "type":"structure", + "members":{ + "Pipeline":{"shape":"Pipeline"} + } + }, + "UpdatePipelineRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"Id", + "location":"uri", + "locationName":"Id" + }, + "Name":{"shape":"Name"}, + "InputBucket":{"shape":"BucketName"}, + "Role":{"shape":"Role"}, + "AwsKmsKeyArn":{"shape":"KeyArn"}, + "Notifications":{"shape":"Notifications"}, + "ContentConfig":{"shape":"PipelineOutputConfig"}, + "ThumbnailConfig":{"shape":"PipelineOutputConfig"} + } + }, + "UpdatePipelineResponse":{ + "type":"structure", + "members":{ + "Pipeline":{"shape":"Pipeline"}, + "Warnings":{"shape":"Warnings"} + } + }, + "UpdatePipelineStatusRequest":{ + "type":"structure", + "required":[ + "Id", + "Status" + ], + "members":{ + "Id":{ + "shape":"Id", + "location":"uri", + "locationName":"Id" + }, + "Status":{"shape":"PipelineStatus"} + } + }, + "UpdatePipelineStatusResponse":{ + "type":"structure", + "members":{ + "Pipeline":{"shape":"Pipeline"} + } + }, + "UserMetadata":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "ValidationException":{ + "type":"structure", + "members":{ + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "VerticalAlign":{ + "type":"string", + "pattern":"(^Top$)|(^Bottom$)|(^Center$)" + }, + "VideoBitRate":{ + "type":"string", + "pattern":"(^\\d{2,5}$)|(^auto$)" + }, + "VideoCodec":{ + "type":"string", + "pattern":"(^H\\.264$)|(^vp8$)|(^mpeg2$)|(^gif$)" + }, + "VideoParameters":{ + "type":"structure", + "members":{ + "Codec":{"shape":"VideoCodec"}, + "CodecOptions":{"shape":"CodecOptions"}, + "KeyframesMaxDist":{"shape":"KeyframesMaxDist"}, + "FixedGOP":{"shape":"FixedGOP"}, + "BitRate":{"shape":"VideoBitRate"}, + "FrameRate":{"shape":"FrameRate"}, + "MaxFrameRate":{"shape":"MaxFrameRate"}, + "Resolution":{"shape":"Resolution"}, + "AspectRatio":{"shape":"AspectRatio"}, + "MaxWidth":{"shape":"DigitsOrAuto"}, + "MaxHeight":{"shape":"DigitsOrAuto"}, + "DisplayAspectRatio":{"shape":"AspectRatio"}, + "SizingPolicy":{"shape":"SizingPolicy"}, + "PaddingPolicy":{"shape":"PaddingPolicy"}, + "Watermarks":{"shape":"PresetWatermarks"} + } + }, + "Warning":{ + "type":"structure", + "members":{ + "Code":{"shape":"String"}, + "Message":{"shape":"String"} + } + }, + "Warnings":{ + "type":"list", + "member":{"shape":"Warning"} + }, + "WatermarkKey":{ + "type":"string", + "min":1, + "max":255, + "pattern":"(^.{1,}.jpg$)|(^.{1,}.jpeg$)|(^.{1,}.png$)" + }, + "WatermarkSizingPolicy":{ + "type":"string", + "pattern":"(^Fit$)|(^Stretch$)|(^ShrinkToFit$)" + }, + "ZeroTo255String":{ + "type":"string", + "min":0, + "max":255 + }, + "ZeroTo512String":{ + "type":"string", + "min":0, + "max":512 + } + } +} diff --git a/lib/aws-sdk/Aws/data/elastictranscoder/2012-09-25/docs-2.json b/lib/aws-sdk/Aws/data/elastictranscoder/2012-09-25/docs-2.json new file mode 100644 index 0000000..0989c64 --- /dev/null +++ b/lib/aws-sdk/Aws/data/elastictranscoder/2012-09-25/docs-2.json @@ -0,0 +1,1152 @@ +{ + "version": "2.0", + "operations": { + "CancelJob": "

The CancelJob operation cancels an unfinished job.

You can only cancel a job that has a status of Submitted. To prevent a pipeline from starting to process a job while you're getting the job identifier, use UpdatePipelineStatus to temporarily pause the pipeline.", + "CreateJob": "

When you create a job, Elastic Transcoder returns JSON data that includes the values that you specified plus information about the job that is created.

If you have specified more than one output for your jobs (for example, one output for the Kindle Fire and another output for the Apple iPhone 4s), you currently must use the Elastic Transcoder API to list the jobs (as opposed to the AWS Console).

", + "CreatePipeline": "

The CreatePipeline operation creates a pipeline with settings that you specify.

", + "CreatePreset": "

The CreatePreset operation creates a preset with settings that you specify.

Elastic Transcoder checks the CreatePreset settings to ensure that they meet Elastic Transcoder requirements and to determine whether they comply with H.264 standards. If your settings are not valid for Elastic Transcoder, Elastic Transcoder returns an HTTP 400 response (ValidationException) and does not create the preset. If the settings are valid for Elastic Transcoder but aren't strictly compliant with the H.264 standard, Elastic Transcoder creates the preset and returns a warning message in the response. This helps you determine whether your settings comply with the H.264 standard while giving you greater flexibility with respect to the video that Elastic Transcoder produces.

Elastic Transcoder uses the H.264 video-compression format. For more information, see the International Telecommunication Union publication Recommendation ITU-T H.264: Advanced video coding for generic audiovisual services.

", + "DeletePipeline": "

The DeletePipeline operation removes a pipeline.

You can only delete a pipeline that has never been used or that is not currently in use (doesn't contain any active jobs). If the pipeline is currently in use, DeletePipeline returns an error.

", + "DeletePreset": "

The DeletePreset operation removes a preset that you've added in an AWS region.

You can't delete the default presets that are included with Elastic Transcoder.

", + "ListJobsByPipeline": "

The ListJobsByPipeline operation gets a list of the jobs currently in a pipeline.

Elastic Transcoder returns all of the jobs currently in the specified pipeline. The response body contains one element for each job that satisfies the search criteria.

", + "ListJobsByStatus": "

The ListJobsByStatus operation gets a list of jobs that have a specified status. The response body contains one element for each job that satisfies the search criteria.

", + "ListPipelines": "

The ListPipelines operation gets a list of the pipelines associated with the current AWS account.

", + "ListPresets": "

The ListPresets operation gets a list of the default presets included with Elastic Transcoder and the presets that you've added in an AWS region.

", + "ReadJob": "

The ReadJob operation returns detailed information about a job.

", + "ReadPipeline": "

The ReadPipeline operation gets detailed information about a pipeline.

", + "ReadPreset": "

The ReadPreset operation gets detailed information about a preset.

", + "TestRole": "

The TestRole operation tests the IAM role used to create the pipeline.

The TestRole action lets you determine whether the IAM role you are using has sufficient permissions to let Elastic Transcoder perform tasks associated with the transcoding process. The action attempts to assume the specified IAM role, checks read access to the input and output buckets, and tries to send a test notification to Amazon SNS topics that you specify.

", + "UpdatePipeline": "

Use the UpdatePipeline operation to update settings for a pipeline. When you change pipeline settings, your changes take effect immediately. Jobs that you have already submitted and that Elastic Transcoder has not started to process are affected in addition to jobs that you submit after you change settings.

", + "UpdatePipelineNotifications": "

With the UpdatePipelineNotifications operation, you can update Amazon Simple Notification Service (Amazon SNS) notifications for a pipeline.

When you update notifications for a pipeline, Elastic Transcoder returns the values that you specified in the request.

", + "UpdatePipelineStatus": "

The UpdatePipelineStatus operation pauses or reactivates a pipeline, so that the pipeline stops or restarts the processing of jobs.

Changing the pipeline status is useful if you want to cancel one or more jobs. You can't cancel jobs after Elastic Transcoder has started processing them; if you pause the pipeline to which you submitted the jobs, you have more time to get the job IDs for the jobs that you want to cancel, and to send a CancelJob request.

" + }, + "service": "AWS Elastic Transcoder Service

The AWS Elastic Transcoder Service.

", + "shapes": { + "AccessControl": { + "base": null, + "refs": { + "AccessControls$member": null + } + }, + "AccessControls": { + "base": null, + "refs": { + "Permission$Access": "

The permission that you want to give to the AWS user that is listed in Grantee. Valid values include:

  • READ: The grantee can read the thumbnails and metadata for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.
  • READ_ACP: The grantee can read the object ACL for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.
  • WRITE_ACP: The grantee can write the ACL for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.
  • FULL_CONTROL: The grantee has READ, READ_ACP, and WRITE_ACP permissions for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.

" + } + }, + "AccessDeniedException": { + "base": "

General authentication failure. The request was not signed correctly.

", + "refs": { + } + }, + "Artwork": { + "base": "

The file to be used as album art. There can be multiple artworks associated with an audio file, to a maximum of 20.

To remove artwork or leave the artwork empty, you can either set Artwork to null, or set the Merge Policy to \"Replace\" and use an empty Artwork array.

To pass through existing artwork unchanged, set the Merge Policy to \"Prepend\", \"Append\", or \"Fallback\", and use an empty Artwork array.

", + "refs": { + "Artworks$member": null + } + }, + "Artworks": { + "base": null, + "refs": { + "JobAlbumArt$Artwork": "

The file to be used as album art. There can be multiple artworks associated with an audio file, to a maximum of 20. Valid formats are .jpg and .png

" + } + }, + "Ascending": { + "base": null, + "refs": { + "ListJobsByPipelineRequest$Ascending": "

To list jobs in chronological order by the date and time that they were submitted, enter true. To list jobs in reverse chronological order, enter false.

", + "ListJobsByStatusRequest$Ascending": "

To list jobs in chronological order by the date and time that they were submitted, enter true. To list jobs in reverse chronological order, enter false.

", + "ListPipelinesRequest$Ascending": "

To list pipelines in chronological order by the date and time that they were created, enter true. To list pipelines in reverse chronological order, enter false.

", + "ListPresetsRequest$Ascending": "

To list presets in chronological order by the date and time that they were created, enter true. To list presets in reverse chronological order, enter false.

" + } + }, + "AspectRatio": { + "base": null, + "refs": { + "JobInput$AspectRatio": "

The aspect ratio of the input file. If you want Elastic Transcoder to automatically detect the aspect ratio of the input file, specify auto. If you want to specify the aspect ratio for the output file, enter one of the following values:

1:1, 4:3, 3:2, 16:9

If you specify a value other than auto, Elastic Transcoder disables automatic detection of the aspect ratio.

", + "Thumbnails$AspectRatio": "

To better control resolution and aspect ratio of thumbnails, we recommend that you use the values MaxWidth, MaxHeight, SizingPolicy, and PaddingPolicy instead of Resolution and AspectRatio. The two groups of settings are mutually exclusive. Do not use them together.

The aspect ratio of thumbnails. Valid values include:

auto, 1:1, 4:3, 3:2, 16:9

If you specify auto, Elastic Transcoder tries to preserve the aspect ratio of the video in the output file.

", + "VideoParameters$AspectRatio": "

To better control resolution and aspect ratio of output videos, we recommend that you use the values MaxWidth, MaxHeight, SizingPolicy, PaddingPolicy, and DisplayAspectRatio instead of Resolution and AspectRatio. The two groups of settings are mutually exclusive. Do not use them together.

The display aspect ratio of the video in the output file. Valid values include:

auto, 1:1, 4:3, 3:2, 16:9

If you specify auto, Elastic Transcoder tries to preserve the aspect ratio of the input file.

If you specify an aspect ratio for the output file that differs from aspect ratio of the input file, Elastic Transcoder adds pillarboxing (black bars on the sides) or letterboxing (black bars on the top and bottom) to maintain the aspect ratio of the active region of the video.

", + "VideoParameters$DisplayAspectRatio": "

The value that Elastic Transcoder adds to the metadata in the output file.

" + } + }, + "AudioBitDepth": { + "base": null, + "refs": { + "AudioCodecOptions$BitDepth": "

You can only choose an audio bit depth when you specify flac or pcm for the value of Audio:Codec.

The bit depth of a sample is how many bits of information are included in the audio samples. The higher the bit depth, the better the audio, but the larger the file.

Valid values are 16 and 24.

The most common bit depth is 24.

" + } + }, + "AudioBitOrder": { + "base": null, + "refs": { + "AudioCodecOptions$BitOrder": "

You can only choose an audio bit order when you specify pcm for the value of Audio:Codec.

The order the bits of a PCM sample are stored in.

The supported value is LittleEndian.

" + } + }, + "AudioBitRate": { + "base": null, + "refs": { + "AudioParameters$BitRate": "

The bit rate of the audio stream in the output file, in kilobits/second. Enter an integer between 64 and 320, inclusive.

" + } + }, + "AudioChannels": { + "base": null, + "refs": { + "AudioParameters$Channels": "

The number of audio channels in the output file. The following values are valid:

auto, 0, 1, 2

One channel carries the information played by a single speaker. For example, a stereo track with two channels sends one channel to the left speaker, and the other channel to the right speaker. The output channels are organized into tracks. If you want Elastic Transcoder to automatically detect the number of audio channels in the input file and use that value for the output file, select auto.

The output of a specific channel value and inputs are as follows:

  • auto channel specified, with any input: Pass through up to eight input channels.
  • 0 channels specified, with any input: Audio omitted from the output.
  • 1 channel specified, with at least one input channel: Mono sound.
  • 2 channels specified, with any input: Two identical mono channels or stereo. For more information about tracks, see Audio:AudioPackingMode.

For more information about how Elastic Transcoder organizes channels and tracks, see Audio:AudioPackingMode.

" + } + }, + "AudioCodec": { + "base": null, + "refs": { + "AudioParameters$Codec": "

The audio codec for the output file. Valid values include aac, flac, mp2, mp3, pcm, and vorbis.

" + } + }, + "AudioCodecOptions": { + "base": "

Options associated with your audio codec.

", + "refs": { + "AudioParameters$CodecOptions": "

If you specified AAC for Audio:Codec, this is the AAC compression profile to use. Valid values include:

auto, AAC-LC, HE-AAC, HE-AACv2

If you specify auto, Elastic Transcoder chooses a profile based on the bit rate of the output file.

" + } + }, + "AudioCodecProfile": { + "base": null, + "refs": { + "AudioCodecOptions$Profile": "

You can only choose an audio profile when you specify AAC for the value of Audio:Codec.

Specify the AAC profile for the output file. Elastic Transcoder supports the following profiles:

  • auto: If you specify auto, Elastic Transcoder will select the profile based on the bit rate selected for the output file.
  • AAC-LC: The most common AAC profile. Use for bit rates larger than 64 kbps.
  • HE-AAC: Not supported on some older players and devices. Use for bit rates between 40 and 80 kbps.
  • HE-AACv2: Not supported on some players and devices. Use for bit rates less than 48 kbps.

All outputs in a Smooth playlist must have the same value for Profile.

If you created any presets before AAC profiles were added, Elastic Transcoder automatically updated your presets to use AAC-LC. You can change the value as required.

" + } + }, + "AudioPackingMode": { + "base": null, + "refs": { + "AudioParameters$AudioPackingMode": "

The method of organizing audio channels and tracks. Use Audio:Channels to specify the number of channels in your output, and Audio:AudioPackingMode to specify the number of tracks and their relation to the channels. If you do not specify an Audio:AudioPackingMode, Elastic Transcoder uses SingleTrack.

The following values are valid:

SingleTrack, OneChannelPerTrack, and OneChannelPerTrackWithMosTo8Tracks

When you specify SingleTrack, Elastic Transcoder creates a single track for your output. The track can have up to eight channels. Use SingleTrack for all non-mxf containers.

The outputs of SingleTrack for a specific channel value and inputs are as follows:

  • 0 channels with any input: Audio omitted from the output
  • 1, 2, or auto channels with no audio input: Audio omitted from the output
  • 1 channel with any input with audio: One track with one channel, downmixed if necessary
  • 2 channels with one track with one channel: One track with two identical channels
  • 2 or auto channels with two tracks with one channel each: One track with two channels
  • 2 or auto channels with one track with two channels: One track with two channels
  • 2 channels with one track with multiple channels: One track with two channels
  • auto channels with one track with one channel: One track with one channel
  • auto channels with one track with multiple channels: One track with multiple channels

When you specify OneChannelPerTrack, Elastic Transcoder creates a new track for every channel in your output. Your output can have up to eight single-channel tracks.

The outputs of OneChannelPerTrack for a specific channel value and inputs are as follows:

  • 0 channels with any input: Audio omitted from the output
  • 1, 2, or auto channels with no audio input: Audio omitted from the output
  • 1 channel with any input with audio: One track with one channel, downmixed if necessary
  • 2 channels with one track with one channel: Two tracks with one identical channel each
  • 2 or auto channels with two tracks with one channel each: Two tracks with one channel each
  • 2 or auto channels with one track with two channels: Two tracks with one channel each
  • 2 channels with one track with multiple channels: Two tracks with one channel each
  • auto channels with one track with one channel: One track with one channel
  • auto channels with one track with multiple channels: Up to eight tracks with one channel each

When you specify OneChannelPerTrackWithMosTo8Tracks, Elastic Transcoder creates eight single-channel tracks for your output. All tracks that do not contain audio data from an input channel are MOS, or Mit Out Sound, tracks.

The outputs of OneChannelPerTrackWithMosTo8Tracks for a specific channel value and inputs are as follows:

  • 0 channels with any input: Audio omitted from the output
  • 1, 2, or auto channels with no audio input: Audio omitted from the output
  • 1 channel with any input with audio: One track with one channel, downmixed if necessary, plus six MOS tracks
  • 2 channels with one track with one channel: Two tracks with one identical channel each, plus six MOS tracks
  • 2 or auto channels with two tracks with one channel each: Two tracks with one channel each, plus six MOS tracks
  • 2 or auto channels with one track with two channels: Two tracks with one channel each, plus six MOS tracks
  • 2 channels with one track with multiple channels: Two tracks with one channel each, plus six MOS tracks
  • auto channels with one track with one channel: One track with one channel, plus seven MOS tracks
  • auto channels with one track with multiple channels: Up to eight tracks with one channel each, plus MOS tracks until there are eight tracks in all
" + } + }, + "AudioParameters": { + "base": "

Parameters required for transcoding audio.

", + "refs": { + "CreatePresetRequest$Audio": "

A section of the request body that specifies the audio parameters.

", + "Preset$Audio": "

A section of the response body that provides information about the audio preset values.

" + } + }, + "AudioSampleRate": { + "base": null, + "refs": { + "AudioParameters$SampleRate": "

The sample rate of the audio stream in the output file, in Hertz. Valid values include:

auto, 22050, 32000, 44100, 48000, 96000

If you specify auto, Elastic Transcoder automatically detects the sample rate.

" + } + }, + "AudioSigned": { + "base": null, + "refs": { + "AudioCodecOptions$Signed": "

You can only choose whether an audio sample is signed when you specify pcm for the value of Audio:Codec.

Whether audio samples are represented with negative and positive numbers (signed) or only positive numbers (unsigned).

The supported value is Signed.

" + } + }, + "Base64EncodedString": { + "base": null, + "refs": { + "Encryption$Key": "

The data encryption key that you want Elastic Transcoder to use to encrypt your output file, or that was used to encrypt your input file. The key must be base64-encoded and it must be one of the following bit lengths before being base64-encoded:

128, 192, or 256.

The key must also be encrypted by using the Amazon Key Management Service.

", + "Encryption$KeyMd5": "

The MD5 digest of the key that you used to encrypt your input file, or that you want Elastic Transcoder to use to encrypt your output file. Elastic Transcoder uses the key digest as a checksum to make sure your key was not corrupted in transit. The key MD5 must be base64-encoded, and it must be exactly 16 bytes long before being base64-encoded.

", + "HlsContentProtection$Key": "

If you want Elastic Transcoder to generate a key for you, leave this field blank.

If you choose to supply your own key, you must encrypt the key by using AWS KMS. The key must be base64-encoded, and it must be one of the following bit lengths before being base64-encoded:

128, 192, or 256.

", + "HlsContentProtection$KeyMd5": "

If Elastic Transcoder is generating your key for you, you must leave this field blank.

The MD5 digest of the key that you want Elastic Transcoder to use to encrypt your output file, and that you want Elastic Transcoder to use as a checksum to make sure your key was not corrupted in transit. The key MD5 must be base64-encoded, and it must be exactly 16 bytes before being base64- encoded.

" + } + }, + "BucketName": { + "base": null, + "refs": { + "CreatePipelineRequest$InputBucket": "

The Amazon S3 bucket in which you saved the media files that you want to transcode.

", + "CreatePipelineRequest$OutputBucket": "

The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded files. (Use this, or use ContentConfig:Bucket plus ThumbnailConfig:Bucket.)

Specify this value when all of the following are true:

  • You want to save transcoded files, thumbnails (if any), and playlists (if any) together in one bucket.
  • You do not want to specify the users or groups who have access to the transcoded files, thumbnails, and playlists.
  • You do not want to specify the permissions that Elastic Transcoder grants to the files. When Elastic Transcoder saves files in OutputBucket, it grants full control over the files only to the AWS account that owns the role that is specified by Role.
  • You want to associate the transcoded files and thumbnails with the Amazon S3 Standard storage class.

If you want to save transcoded files and playlists in one bucket and thumbnails in another bucket, specify which users can access the transcoded files or the permissions the users have, or change the Amazon S3 storage class, omit OutputBucket and specify values for ContentConfig and ThumbnailConfig instead.

", + "Pipeline$InputBucket": "

The Amazon S3 bucket from which Elastic Transcoder gets media files for transcoding and the graphics files, if any, that you want to use for watermarks.

", + "Pipeline$OutputBucket": "

The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files, thumbnails, and playlists. Either you specify this value, or you specify both ContentConfig and ThumbnailConfig.

", + "PipelineOutputConfig$Bucket": "

The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded files. Specify this value when all of the following are true:

  • You want to save transcoded files, thumbnails (if any), and playlists (if any) together in one bucket.
  • You do not want to specify the users or groups who have access to the transcoded files, thumbnails, and playlists.
  • You do not want to specify the permissions that Elastic Transcoder grants to the files.
  • You want to associate the transcoded files and thumbnails with the Amazon S3 Standard storage class.
If you want to save transcoded files and playlists in one bucket and thumbnails in another bucket, specify which users can access the transcoded files or the permissions the users have, or change the Amazon S3 storage class, omit OutputBucket and specify values for ContentConfig and ThumbnailConfig instead.

", + "TestRoleRequest$InputBucket": "

The Amazon S3 bucket that contains media files to be transcoded. The action attempts to read from this bucket.

", + "TestRoleRequest$OutputBucket": "

The Amazon S3 bucket that Elastic Transcoder will write transcoded media files to. The action attempts to read from this bucket.

", + "UpdatePipelineRequest$InputBucket": "

The Amazon S3 bucket in which you saved the media files that you want to transcode and the graphics that you want to use as watermarks.

" + } + }, + "CancelJobRequest": { + "base": "

The CancelJobRequest structure.

", + "refs": { + } + }, + "CancelJobResponse": { + "base": "

The response body contains a JSON object. If the job is successfully canceled, the value of Success is true.

", + "refs": { + } + }, + "CaptionFormat": { + "base": "

The file format of the output captions. If you leave this value blank, Elastic Transcoder returns an error.

", + "refs": { + "CaptionFormats$member": null + } + }, + "CaptionFormatFormat": { + "base": null, + "refs": { + "CaptionFormat$Format": "

The format you specify determines whether Elastic Transcoder generates an embedded or sidecar caption for this output.

  • Valid Embedded Caption Formats:

    • for FLAC: None

    • For MP3: None

    • For MP4: mov-text

    • For MPEG-TS: None

    • For ogg: None

    • For webm: None

  • Valid Sidecar Caption Formats: Elastic Transcoder supports dfxp (first div element only), scc, srt, and webvtt. If you want ttml or smpte-tt compatible captions, specify dfxp as your output format.

    • For FMP4: dfxp

    • Non-FMP4 outputs: All sidecar types

    fmp4 captions have an extension of .ismt

" + } + }, + "CaptionFormatPattern": { + "base": null, + "refs": { + "CaptionFormat$Pattern": "

The prefix for caption filenames, in the form description-{language}, where:

  • description is a description of the video.
  • {language} is a literal value that Elastic Transcoder replaces with the two- or three-letter code for the language of the caption in the output file names.

If you don't include {language} in the file name pattern, Elastic Transcoder automatically appends \"{language}\" to the value that you specify for the description. In addition, Elastic Transcoder automatically appends the count to the end of the segment files.

For example, suppose you're transcoding into srt format. When you enter \"Sydney-{language}-sunrise\", and the language of the captions is English (en), the name of the first caption file will be Sydney-en-sunrise00000.srt.

" + } + }, + "CaptionFormats": { + "base": null, + "refs": { + "Captions$CaptionFormats": "

The array of file formats for the output captions. If you leave this value blank, Elastic Transcoder returns an error.

" + } + }, + "CaptionMergePolicy": { + "base": null, + "refs": { + "Captions$MergePolicy": "

A policy that determines how Elastic Transcoder handles the existence of multiple captions.

  • MergeOverride: Elastic Transcoder transcodes both embedded and sidecar captions into outputs. If captions for a language are embedded in the input file and also appear in a sidecar file, Elastic Transcoder uses the sidecar captions and ignores the embedded captions for that language.

  • MergeRetain: Elastic Transcoder transcodes both embedded and sidecar captions into outputs. If captions for a language are embedded in the input file and also appear in a sidecar file, Elastic Transcoder uses the embedded captions and ignores the sidecar captions for that language. If CaptionSources is empty, Elastic Transcoder omits all sidecar captions from the output files.

  • Override: Elastic Transcoder transcodes only the sidecar captions that you specify in CaptionSources.

MergePolicy cannot be null.

" + } + }, + "CaptionSource": { + "base": "

A source file for the input sidecar captions used during the transcoding process.

", + "refs": { + "CaptionSources$member": null + } + }, + "CaptionSources": { + "base": null, + "refs": { + "Captions$CaptionSources": "

Source files for the input sidecar captions used during the transcoding process. To omit all sidecar captions, leave CaptionSources blank.

" + } + }, + "Captions": { + "base": "

The captions to be created, if any.

", + "refs": { + "CreateJobOutput$Captions": "

You can configure Elastic Transcoder to transcode captions, or subtitles, from one format to another. All captions must be in UTF-8. Elastic Transcoder supports two types of captions:

  • Embedded: Embedded captions are included in the same file as the audio and video. Elastic Transcoder supports only one embedded caption per language, to a maximum of 300 embedded captions per file.

    Valid input values include: CEA-608 (EIA-608, first non-empty channel only), CEA-708 (EIA-708, first non-empty channel only), and mov-text

    Valid outputs include: mov-text

    Elastic Transcoder supports a maximum of one embedded format per output.

  • Sidecar: Sidecar captions are kept in a separate metadata file from the audio and video data. Sidecar captions require a player that is capable of understanding the relationship between the video file and the sidecar file. Elastic Transcoder supports only one sidecar caption per language, to a maximum of 20 sidecar captions per file.

    Valid input values include: dfxp (first div element only), ebu-tt, scc, smpt, srt, ttml (first div element only), and webvtt

    Valid outputs include: dfxp (first div element only), scc, srt, and webvtt.

If you want ttml or smpte-tt compatible captions, specify dfxp as your output format.

Elastic Transcoder does not support OCR (Optical Character Recognition), does not accept pictures as a valid input for captions, and is not available for audio-only transcoding. Elastic Transcoder does not preserve text formatting (for example, italics) during the transcoding process.

To remove captions or leave the captions empty, set Captions to null. To pass through existing captions unchanged, set the MergePolicy to MergeRetain, and pass in a null CaptionSources array.

For more information on embedded files, see the Subtitles Wikipedia page.

For more information on sidecar files, see the Extensible Metadata Platform and Sidecar file Wikipedia pages.

", + "JobOutput$Captions": "

You can configure Elastic Transcoder to transcode captions, or subtitles, from one format to another. All captions must be in UTF-8. Elastic Transcoder supports two types of captions:

  • Embedded: Embedded captions are included in the same file as the audio and video. Elastic Transcoder supports only one embedded caption per language, to a maximum of 300 embedded captions per file.

    Valid input values include: CEA-608 (EIA-608, first non-empty channel only), CEA-708 (EIA-708, first non-empty channel only), and mov-text

    Valid outputs include: mov-text

    Elastic Transcoder supports a maximum of one embedded format per output.

  • Sidecar: Sidecar captions are kept in a separate metadata file from the audio and video data. Sidecar captions require a player that is capable of understanding the relationship between the video file and the sidecar file. Elastic Transcoder supports only one sidecar caption per language, to a maximum of 20 sidecar captions per file.

    Valid input values include: dfxp (first div element only), ebu-tt, scc, smpt, srt, ttml (first div element only), and webvtt

    Valid outputs include: dfxp (first div element only), scc, srt, and webvtt.

If you want ttml or smpte-tt compatible captions, specify dfxp as your output format.

Elastic Transcoder does not support OCR (Optical Character Recognition), does not accept pictures as a valid input for captions, and is not available for audio-only transcoding. Elastic Transcoder does not preserve text formatting (for example, italics) during the transcoding process.

To remove captions or leave the captions empty, set Captions to null. To pass through existing captions unchanged, set the MergePolicy to MergeRetain, and pass in a null CaptionSources array.

For more information on embedded files, see the Subtitles Wikipedia page.

For more information on sidecar files, see the Extensible Metadata Platform and Sidecar file Wikipedia pages.

" + } + }, + "Clip": { + "base": "

Settings for one clip in a composition. All jobs in a playlist must have the same clip settings.

", + "refs": { + "Composition$member": null + } + }, + "CodecOption": { + "base": null, + "refs": { + "CodecOptions$key": null, + "CodecOptions$value": null + } + }, + "CodecOptions": { + "base": null, + "refs": { + "VideoParameters$CodecOptions": "

Profile (H.264/VP8 Only)

The H.264 profile that you want to use for the output file. Elastic Transcoder supports the following profiles:

  • baseline: The profile most commonly used for videoconferencing and for mobile applications.
  • main: The profile used for standard-definition digital TV broadcasts.
  • high: The profile used for high-definition digital TV broadcasts and for Blu-ray discs.

Level (H.264 Only)

The H.264 level that you want to use for the output file. Elastic Transcoder supports the following levels:

1, 1b, 1.1, 1.2, 1.3, 2, 2.1, 2.2, 3, 3.1, 3.2, 4, 4.1

MaxReferenceFrames (H.264 Only)

Applicable only when the value of Video:Codec is H.264. The maximum number of previously decoded frames to use as a reference for decoding future frames. Valid values are integers 0 through 16, but we recommend that you not use a value greater than the following:

Min(Floor(Maximum decoded picture buffer in macroblocks * 256 / (Width in pixels * Height in pixels)), 16)

where Width in pixels and Height in pixels represent either MaxWidth and MaxHeight, or Resolution. Maximum decoded picture buffer in macroblocks depends on the value of the Level object. See the list below. (A macroblock is a block of pixels measuring 16x16.)

  • 1 - 396
  • 1b - 396
  • 1.1 - 900
  • 1.2 - 2376
  • 1.3 - 2376
  • 2 - 2376
  • 2.1 - 4752
  • 2.2 - 8100
  • 3 - 8100
  • 3.1 - 18000
  • 3.2 - 20480
  • 4 - 32768
  • 4.1 - 32768

MaxBitRate (Optional, H.264/MPEG2/VP8 only)

The maximum number of bits per second in a video buffer; the size of the buffer is specified by BufferSize. Specify a value between 16 and 62,500. You can reduce the bandwidth required to stream a video by reducing the maximum bit rate, but this also reduces the quality of the video.

BufferSize (Optional, H.264/MPEG2/VP8 only)

The maximum number of bits in any x seconds of the output video. This window is commonly 10 seconds, the standard segment duration when you're using FMP4 or MPEG-TS for the container type of the output video. Specify an integer greater than 0. If you specify MaxBitRate and omit BufferSize, Elastic Transcoder sets BufferSize to 10 times the value of MaxBitRate.

InterlacedMode (Optional, H.264/MPEG2 Only)

The interlace mode for the output video.

Interlaced video is used to double the perceived frame rate for a video by interlacing two fields (one field on every other line, the other field on the other lines) so that the human eye registers multiple pictures per frame. Interlacing reduces the bandwidth required for transmitting a video, but can result in blurred images and flickering.

Valid values include Progressive (no interlacing, top to bottom), TopFirst (top field first), BottomFirst (bottom field first), and Auto.

If InterlaceMode is not specified, Elastic Transcoder uses Progressive for the output. If Auto is specified, Elastic Transcoder interlaces the output.

ColorSpaceConversionMode (Optional, H.264/MPEG2 Only)

The color space conversion Elastic Transcoder applies to the output video. Color spaces are the algorithms used by the computer to store information about how to render color. Bt.601 is the standard for standard definition video, while Bt.709 is the standard for high definition video.

Valid values include None, Bt709toBt601, Bt601toBt709, and Auto.

If you chose Auto for ColorSpaceConversionMode and your output is interlaced, your frame rate is one of 23.97, 24, 25, 29.97, 50, or 60, your SegmentDuration is null, and you are using one of the resolution changes from the list below, Elastic Transcoder applies the following color space conversions:

  • Standard to HD, 720x480 to 1920x1080 - Elastic Transcoder applies Bt601ToBt709
  • Standard to HD, 720x576 to 1920x1080 - Elastic Transcoder applies Bt601ToBt709
  • HD to Standard, 1920x1080 to 720x480 - Elastic Transcoder applies Bt709ToBt601
  • HD to Standard, 1920x1080 to 720x576 - Elastic Transcoder applies Bt709ToBt601
Elastic Transcoder may change the behavior of the ColorspaceConversionMode Auto mode in the future. All outputs in a playlist must use the same ColorSpaceConversionMode.

If you do not specify a ColorSpaceConversionMode, Elastic Transcoder does not change the color space of a file. If you are unsure what ColorSpaceConversionMode was applied to your output file, you can check the AppliedColorSpaceConversion parameter included in your job response. If your job does not have an AppliedColorSpaceConversion in its response, no ColorSpaceConversionMode was applied.

ChromaSubsampling

The sampling pattern for the chroma (color) channels of the output video. Valid values include yuv420p and yuv422p.

yuv420p samples the chroma information of every other horizontal and every other vertical line, yuv422p samples the color information of every horizontal line and every other vertical line.

LoopCount (Gif Only)

The number of times you want the output gif to loop. Valid values include Infinite and integers between 0 and 100, inclusive.

" + } + }, + "Composition": { + "base": null, + "refs": { + "CreateJobOutput$Composition": "

You can create an output file that contains an excerpt from the input file. This excerpt, called a clip, can come from the beginning, middle, or end of the file. The Composition object contains settings for the clips that make up an output file. For the current release, you can only specify settings for a single clip per output file. The Composition object cannot be null.

", + "JobOutput$Composition": "

You can create an output file that contains an excerpt from the input file. This excerpt, called a clip, can come from the beginning, middle, or end of the file. The Composition object contains settings for the clips that make up an output file. For the current release, you can only specify settings for a single clip per output file. The Composition object cannot be null.

" + } + }, + "CreateJobOutput": { + "base": "

The CreateJobOutput structure.

", + "refs": { + "CreateJobOutputs$member": null, + "CreateJobRequest$Output": null + } + }, + "CreateJobOutputs": { + "base": null, + "refs": { + "CreateJobRequest$Outputs": "

A section of the request body that provides information about the transcoded (target) files. We recommend that you use the Outputs syntax instead of the Output syntax.

" + } + }, + "CreateJobPlaylist": { + "base": "

Information about the master playlist.

", + "refs": { + "CreateJobPlaylists$member": null + } + }, + "CreateJobPlaylists": { + "base": null, + "refs": { + "CreateJobRequest$Playlists": "

If you specify a preset in PresetId for which the value of Container is fmp4 (Fragmented MP4) or ts (MPEG-TS), Playlists contains information about the master playlists that you want Elastic Transcoder to create.

The maximum number of master playlists in a job is 30.

" + } + }, + "CreateJobRequest": { + "base": "

The CreateJobRequest structure.

", + "refs": { + } + }, + "CreateJobResponse": { + "base": "

The CreateJobResponse structure.

", + "refs": { + } + }, + "CreatePipelineRequest": { + "base": "

The CreatePipelineRequest structure.

", + "refs": { + } + }, + "CreatePipelineResponse": { + "base": "

When you create a pipeline, Elastic Transcoder returns the values that you specified in the request.

", + "refs": { + } + }, + "CreatePresetRequest": { + "base": "

The CreatePresetRequest structure.

", + "refs": { + } + }, + "CreatePresetResponse": { + "base": "

The CreatePresetResponse structure.

", + "refs": { + } + }, + "DeletePipelineRequest": { + "base": "

The DeletePipelineRequest structure.

", + "refs": { + } + }, + "DeletePipelineResponse": { + "base": "

The DeletePipelineResponse structure.

", + "refs": { + } + }, + "DeletePresetRequest": { + "base": "

The DeletePresetRequest structure.

", + "refs": { + } + }, + "DeletePresetResponse": { + "base": "

The DeletePresetResponse structure.

", + "refs": { + } + }, + "Description": { + "base": null, + "refs": { + "CreatePresetRequest$Description": "

A description of the preset.

", + "JobOutput$StatusDetail": "

Information that further explains Status.

", + "Playlist$StatusDetail": "

Information that further explains the status.

", + "Preset$Description": "

A description of the preset.

" + } + }, + "DetectedProperties": { + "base": "

The detected properties of the input file. Elastic Transcoder identifies these values from the input file.

", + "refs": { + "JobInput$DetectedProperties": "

The detected properties of the input file.

" + } + }, + "Digits": { + "base": null, + "refs": { + "Thumbnails$Interval": "

The approximate number of seconds between thumbnails. Specify an integer value.

" + } + }, + "DigitsOrAuto": { + "base": null, + "refs": { + "Artwork$MaxWidth": "

The maximum width of the output album art in pixels. If you specify auto, Elastic Transcoder uses 600 as the default value. If you specify a numeric value, enter an even integer between 32 and 4096, inclusive.

", + "Artwork$MaxHeight": "

The maximum height of the output album art in pixels. If you specify auto, Elastic Transcoder uses 600 as the default value. If you specify a numeric value, enter an even integer between 32 and 3072, inclusive.

", + "Thumbnails$MaxWidth": "

The maximum width of thumbnails in pixels. If you specify auto, Elastic Transcoder uses 1920 (Full HD) as the default value. If you specify a numeric value, enter an even integer between 32 and 4096.

", + "Thumbnails$MaxHeight": "

The maximum height of thumbnails in pixels. If you specify auto, Elastic Transcoder uses 1080 (Full HD) as the default value. If you specify a numeric value, enter an even integer between 32 and 3072.

", + "VideoParameters$MaxWidth": "

The maximum width of the output video in pixels. If you specify auto, Elastic Transcoder uses 1920 (Full HD) as the default value. If you specify a numeric value, enter an even integer between 128 and 4096.

", + "VideoParameters$MaxHeight": "

The maximum height of the output video in pixels. If you specify auto, Elastic Transcoder uses 1080 (Full HD) as the default value. If you specify a numeric value, enter an even integer between 96 and 3072.

" + } + }, + "Encryption": { + "base": "

The encryption settings, if any, that are used for decrypting your input files or encrypting your output files. If your input file is encrypted, you must specify the mode that Elastic Transcoder will use to decrypt your file, otherwise you must specify the mode you want Elastic Transcoder to use to encrypt your output files.

", + "refs": { + "Artwork$Encryption": "

The encryption settings, if any, that you want Elastic Transcoder to apply to your artwork.

", + "CaptionFormat$Encryption": "

The encryption settings, if any, that you want Elastic Transcoder to apply to your caption formats.

", + "CaptionSource$Encryption": "

The encryption settings, if any, that you want Elastic Transcoder to apply to your caption sources.

", + "CreateJobOutput$ThumbnailEncryption": "

The encryption settings, if any, that you want Elastic Transcoder to apply to your thumbnail.

", + "CreateJobOutput$Encryption": "

You can specify encryption settings for any output files that you want to use for a transcoding job. This includes the output file and any watermarks, thumbnails, album art, or captions that you want to use. You must specify encryption settings for each file individually.

", + "JobInput$Encryption": "

The encryption settings, if any, that are used for decrypting your input files. If your input file is encrypted, you must specify the mode that Elastic Transcoder will use to decrypt your file.

", + "JobOutput$ThumbnailEncryption": "

The encryption settings, if any, that you want Elastic Transcoder to apply to your thumbnail.

", + "JobOutput$Encryption": "

The encryption settings, if any, that you want Elastic Transcoder to apply to your output files. If you choose to use encryption, you must specify a mode to use. If you choose not to use encryption, Elastic Transcoder will write an unencrypted file to your Amazon S3 bucket.

", + "JobWatermark$Encryption": "

The encryption settings, if any, that you want Elastic Transcoder to apply to your watermarks.

" + } + }, + "EncryptionMode": { + "base": null, + "refs": { + "Encryption$Mode": "

The specific server-side encryption mode that you want Elastic Transcoder to use when decrypting your input files or encrypting your output files. Elastic Transcoder supports the following options:

  • S3: Amazon S3 creates and manages the keys used for encrypting your files.

  • S3-AWS-KMS: Amazon S3 calls the Amazon Key Management Service, which creates and manages the keys that are used for encrypting your files. If you specify S3-AWS-KMS and you don't want to use the default key, you must add the AWS-KMS key that you want to use to your pipeline.

  • AES-CBC-PKCS7: A padded cipher-block mode of operation originally used for HLS files.

  • AES-CTR: AES Counter Mode.

  • AES-GCM: AES Galois Counter Mode, a mode of operation that is an authenticated encryption format, meaning that a file, key, or initialization vector that has been tampered with will fail the decryption process.

For all three AES options, you must provide the following settings, which must be base64-encoded:

  • Key

  • Key MD5

  • Initialization Vector

For the AES modes, your private encryption keys and your unencrypted data are never stored by AWS; therefore, it is important that you safely manage your encryption keys. If you lose them, you won't be able to unencrypt your data.

" + } + }, + "ExceptionMessages": { + "base": null, + "refs": { + "TestRoleResponse$Messages": "

If the Success element contains false, this value is an array of one or more error messages that were generated during the test process.

" + } + }, + "Filename": { + "base": null, + "refs": { + "CreateJobPlaylist$Name": "

The name that you want Elastic Transcoder to assign to the master playlist, for example, nyc-vacation.m3u8. If the name includes a / character, the section of the name before the last / must be identical for all Name objects. If you create more than one master playlist, the values of all Name objects must be unique.

Note: Elastic Transcoder automatically appends the relevant file extension to the file name (.m3u8 for HLSv3 and HLSv4 playlists, and .ism and .ismc for Smooth playlists). If you include a file extension in Name, the file name will have two extensions.

", + "Playlist$Name": "

The name that you want Elastic Transcoder to assign to the master playlist, for example, nyc-vacation.m3u8. If the name includes a / character, the section of the name before the last / must be identical for all Name objects. If you create more than one master playlist, the values of all Name objects must be unique.

Note: Elastic Transcoder automatically appends the relevant file extension to the file name (.m3u8 for HLSv3 and HLSv4 playlists, and .ism and .ismc for Smooth playlists). If you include a file extension in Name, the file name will have two extensions.

" + } + }, + "FixedGOP": { + "base": null, + "refs": { + "VideoParameters$FixedGOP": "

Applicable only when the value of Video:Codec is one of H.264, MPEG2, or VP8.

Whether to use a fixed value for FixedGOP. Valid values are true and false:

  • true: Elastic Transcoder uses the value of KeyframesMaxDist for the distance between key frames (the number of frames in a group of pictures, or GOP).
  • false: The distance between key frames can vary.

FixedGOP must be set to true for fmp4 containers.

" + } + }, + "FloatString": { + "base": null, + "refs": { + "CreateJobOutput$SegmentDuration": "

(Outputs in Fragmented MP4 or MPEG-TS format only.If you specify a preset in PresetId for which the value of Container is fmp4 (Fragmented MP4) or ts (MPEG-TS), SegmentDuration is the target maximum duration of each segment in seconds. For HLSv3 format playlists, each media segment is stored in a separate .ts file. For HLSv4 and Smooth playlists, all media segments for an output are stored in a single file. Each segment is approximately the length of the SegmentDuration, though individual segments might be shorter or longer.

The range of valid values is 1 to 60 seconds. If the duration of the video is not evenly divisible by SegmentDuration, the duration of the last segment is the remainder of total length/SegmentDuration.

Elastic Transcoder creates an output-specific playlist for each output HLS output that you specify in OutputKeys. To add an output to the master playlist for this job, include it in the OutputKeys of the associated playlist.

", + "DetectedProperties$FrameRate": "

The detected frame rate of the input file, in frames per second.

", + "JobOutput$SegmentDuration": "

(Outputs in Fragmented MP4 or MPEG-TS format only.If you specify a preset in PresetId for which the value of Container is fmp4 (Fragmented MP4) or ts (MPEG-TS), SegmentDuration is the target maximum duration of each segment in seconds. For HLSv3 format playlists, each media segment is stored in a separate .ts file. For HLSv4 and Smooth playlists, all media segments for an output are stored in a single file. Each segment is approximately the length of the SegmentDuration, though individual segments might be shorter or longer.

The range of valid values is 1 to 60 seconds. If the duration of the video is not evenly divisible by SegmentDuration, the duration of the last segment is the remainder of total length/SegmentDuration.

Elastic Transcoder creates an output-specific playlist for each output HLS output that you specify in OutputKeys. To add an output to the master playlist for this job, include it in the OutputKeys of the associated playlist.

", + "JobOutput$FrameRate": "

Frame rate of the output file, in frames per second.

" + } + }, + "FrameRate": { + "base": null, + "refs": { + "JobInput$FrameRate": "

The frame rate of the input file. If you want Elastic Transcoder to automatically detect the frame rate of the input file, specify auto. If you want to specify the frame rate for the input file, enter one of the following values:

10, 15, 23.97, 24, 25, 29.97, 30, 60

If you specify a value other than auto, Elastic Transcoder disables automatic detection of the frame rate.

", + "VideoParameters$FrameRate": "

The frames per second for the video stream in the output file. Valid values include:

auto, 10, 15, 23.97, 24, 25, 29.97, 30, 60

If you specify auto, Elastic Transcoder uses the detected frame rate of the input source. If you specify a frame rate, we recommend that you perform the following calculation:

Frame rate = maximum recommended decoding speed in luma samples/second / (width in pixels * height in pixels)

where:

  • width in pixels and height in pixels represent the Resolution of the output video.
  • maximum recommended decoding speed in Luma samples/second is less than or equal to the maximum value listed in the following table, based on the value that you specified for Level.

The maximum recommended decoding speed in Luma samples/second for each level is described in the following list (Level - Decoding speed):

  • 1 - 380160
  • 1b - 380160
  • 1.1 - 76800
  • 1.2 - 1536000
  • 1.3 - 3041280
  • 2 - 3041280
  • 2.1 - 5068800
  • 2.2 - 5184000
  • 3 - 10368000
  • 3.1 - 27648000
  • 3.2 - 55296000
  • 4 - 62914560
  • 4.1 - 62914560
" + } + }, + "Grantee": { + "base": null, + "refs": { + "Permission$Grantee": "

The AWS user or group that you want to have access to transcoded files and playlists. To identify the user or group, you can specify the canonical user ID for an AWS account, an origin access identity for a CloudFront distribution, the registered email address of an AWS account, or a predefined Amazon S3 group.

" + } + }, + "GranteeType": { + "base": null, + "refs": { + "Permission$GranteeType": "

The type of value that appears in the Grantee object:

  • Canonical: Either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. A canonical user ID is not the same as an AWS account number.
  • Email: The registered email address of an AWS account.
  • Group: One of the following predefined Amazon S3 groups: AllUsers, AuthenticatedUsers, or LogDelivery.

" + } + }, + "HlsContentProtection": { + "base": "

The HLS content protection settings, if any, that you want Elastic Transcoder to apply to your output files.

", + "refs": { + "CreateJobPlaylist$HlsContentProtection": "

The HLS content protection settings, if any, that you want Elastic Transcoder to apply to the output files associated with this playlist.

", + "Playlist$HlsContentProtection": "

The HLS content protection settings, if any, that you want Elastic Transcoder to apply to the output files associated with this playlist.

" + } + }, + "HlsContentProtectionMethod": { + "base": null, + "refs": { + "HlsContentProtection$Method": "

The content protection method for your output. The only valid value is: aes-128.

This value will be written into the method attribute of the EXT-X-KEY metadata tag in the output playlist.

" + } + }, + "HorizontalAlign": { + "base": null, + "refs": { + "PresetWatermark$HorizontalAlign": "

The horizontal position of the watermark unless you specify a non-zero value for HorizontalOffset:

  • Left: The left edge of the watermark is aligned with the left border of the video.
  • Right: The right edge of the watermark is aligned with the right border of the video.
  • Center: The watermark is centered between the left and right borders.

" + } + }, + "Id": { + "base": null, + "refs": { + "CancelJobRequest$Id": "

The identifier of the job that you want to cancel.

To get a list of the jobs (including their jobId) that have a status of Submitted, use the ListJobsByStatus API action.

", + "CreateJobOutput$PresetId": "

The Id of the preset to use for this job. The preset determines the audio, video, and thumbnail settings that Elastic Transcoder uses for transcoding.

", + "CreateJobRequest$PipelineId": "

The Id of the pipeline that you want Elastic Transcoder to use for transcoding. The pipeline determines several settings, including the Amazon S3 bucket from which Elastic Transcoder gets the files to transcode and the bucket into which Elastic Transcoder puts the transcoded files.

", + "DeletePipelineRequest$Id": "

The identifier of the pipeline that you want to delete.

", + "DeletePresetRequest$Id": "

The identifier of the preset for which you want to get detailed information.

", + "Job$Id": "

The identifier that Elastic Transcoder assigned to the job. You use this value to get settings for the job or to delete the job.

", + "Job$PipelineId": "

The Id of the pipeline that you want Elastic Transcoder to use for transcoding. The pipeline determines several settings, including the Amazon S3 bucket from which Elastic Transcoder gets the files to transcode and the bucket into which Elastic Transcoder puts the transcoded files.

", + "JobOutput$PresetId": "

The value of the Id object for the preset that you want to use for this job. The preset determines the audio, video, and thumbnail settings that Elastic Transcoder uses for transcoding. To use a preset that you created, specify the preset ID that Elastic Transcoder returned in the response when you created the preset. You can also use the Elastic Transcoder system presets, which you can get with ListPresets.

", + "ListJobsByPipelineRequest$PipelineId": "

The ID of the pipeline for which you want to get job information.

", + "ListJobsByPipelineRequest$PageToken": "

When Elastic Transcoder returns more than one page of results, use pageToken in subsequent GET requests to get each successive page of results.

", + "ListJobsByPipelineResponse$NextPageToken": "

A value that you use to access the second and subsequent pages of results, if any. When the jobs in the specified pipeline fit on one page or when you've reached the last page of results, the value of NextPageToken is null.

", + "ListJobsByStatusRequest$PageToken": "

When Elastic Transcoder returns more than one page of results, use pageToken in subsequent GET requests to get each successive page of results.

", + "ListJobsByStatusResponse$NextPageToken": "

A value that you use to access the second and subsequent pages of results, if any. When the jobs in the specified pipeline fit on one page or when you've reached the last page of results, the value of NextPageToken is null.

", + "ListPipelinesRequest$PageToken": "

When Elastic Transcoder returns more than one page of results, use pageToken in subsequent GET requests to get each successive page of results.

", + "ListPipelinesResponse$NextPageToken": "

A value that you use to access the second and subsequent pages of results, if any. When the pipelines fit on one page or when you've reached the last page of results, the value of NextPageToken is null.

", + "ListPresetsRequest$PageToken": "

When Elastic Transcoder returns more than one page of results, use pageToken in subsequent GET requests to get each successive page of results.

", + "ListPresetsResponse$NextPageToken": "

A value that you use to access the second and subsequent pages of results, if any. When the presets fit on one page or when you've reached the last page of results, the value of NextPageToken is null.

", + "Pipeline$Id": "

The identifier for the pipeline. You use this value to identify the pipeline in which you want to perform a variety of operations, such as creating a job or a preset.

", + "Preset$Id": "

Identifier for the new preset. You use this value to get settings for the preset or to delete it.

", + "ReadJobRequest$Id": "

The identifier of the job for which you want to get detailed information.

", + "ReadPipelineRequest$Id": "

The identifier of the pipeline to read.

", + "ReadPresetRequest$Id": "

The identifier of the preset for which you want to get detailed information.

", + "UpdatePipelineNotificationsRequest$Id": "

The identifier of the pipeline for which you want to change notification settings.

", + "UpdatePipelineRequest$Id": "

The ID of the pipeline that you want to update.

", + "UpdatePipelineStatusRequest$Id": "

The identifier of the pipeline to update.

" + } + }, + "IncompatibleVersionException": { + "base": null, + "refs": { + } + }, + "Interlaced": { + "base": null, + "refs": { + "JobInput$Interlaced": "

Whether the input file is interlaced. If you want Elastic Transcoder to automatically detect whether the input file is interlaced, specify auto. If you want to specify whether the input file is interlaced, enter one of the following values:

true, false

If you specify a value other than auto, Elastic Transcoder disables automatic detection of interlacing.

" + } + }, + "InternalServiceException": { + "base": "

Elastic Transcoder encountered an unexpected exception while trying to fulfill the request.

", + "refs": { + } + }, + "Job": { + "base": "

A section of the response body that provides information about the job that is created.

", + "refs": { + "CreateJobResponse$Job": "

A section of the response body that provides information about the job that is created.

", + "Jobs$member": null, + "ReadJobResponse$Job": "

A section of the response body that provides information about the job.

" + } + }, + "JobAlbumArt": { + "base": "

The .jpg or .png file associated with an audio file.

", + "refs": { + "CreateJobOutput$AlbumArt": "

Information about the album art that you want Elastic Transcoder to add to the file during transcoding. You can specify up to twenty album artworks for each output. Settings for each artwork must be defined in the job for the current output.

", + "JobOutput$AlbumArt": "

The album art to be associated with the output file, if any.

" + } + }, + "JobContainer": { + "base": null, + "refs": { + "JobInput$Container": "

The container type for the input file. If you want Elastic Transcoder to automatically detect the container type of the input file, specify auto. If you want to specify the container type for the input file, enter one of the following values:

3gp, aac, asf, avi, divx, flv, m4a, mkv, mov, mp3, mp4, mpeg, mpeg-ps, mpeg-ts, mxf, ogg, vob, wav, webm

" + } + }, + "JobInput": { + "base": "

Information about the file that you're transcoding.

", + "refs": { + "CreateJobRequest$Input": "

A section of the request body that provides information about the file that is being transcoded.

", + "Job$Input": "

A section of the request or response body that provides information about the file that is being transcoded.

" + } + }, + "JobOutput": { + "base": "

Outputs recommended instead.If you specified one output for a job, information about that output. If you specified multiple outputs for a job, the Output object lists information about the first output. This duplicates the information that is listed for the first output in the Outputs object.

", + "refs": { + "Job$Output": "

If you specified one output for a job, information about that output. If you specified multiple outputs for a job, the Output object lists information about the first output. This duplicates the information that is listed for the first output in the Outputs object.

Outputs recommended instead. A section of the request or response body that provides information about the transcoded (target) file.

", + "JobOutputs$member": null + } + }, + "JobOutputs": { + "base": null, + "refs": { + "Job$Outputs": "

Information about the output files. We recommend that you use the Outputs syntax for all jobs, even when you want Elastic Transcoder to transcode a file into only one format. Do not use both the Outputs and Output syntaxes in the same request. You can create a maximum of 30 outputs per job.

If you specify more than one output for a job, Elastic Transcoder creates the files for each output in the order in which you specify them in the job.

" + } + }, + "JobStatus": { + "base": null, + "refs": { + "Job$Status": "

The status of the job: Submitted, Progressing, Complete, Canceled, or Error.

", + "JobOutput$Status": "

The status of one output in a job. If you specified only one output for the job, Outputs:Status is always the same as Job:Status. If you specified more than one output:

  • Job:Status and Outputs:Status for all of the outputs is Submitted until Elastic Transcoder starts to process the first output.
  • When Elastic Transcoder starts to process the first output, Outputs:Status for that output and Job:Status both change to Progressing. For each output, the value of Outputs:Status remains Submitted until Elastic Transcoder starts to process the output.
  • Job:Status remains Progressing until all of the outputs reach a terminal status, either Complete or Error.
  • When all of the outputs reach a terminal status, Job:Status changes to Complete only if Outputs:Status for all of the outputs is Complete. If Outputs:Status for one or more outputs is Error, the terminal status for Job:Status is also Error.
The value of Status is one of the following: Submitted, Progressing, Complete, Canceled, or Error.

", + "ListJobsByStatusRequest$Status": "

To get information about all of the jobs associated with the current AWS account that have a given status, specify the following status: Submitted, Progressing, Complete, Canceled, or Error.

", + "Playlist$Status": "

The status of the job with which the playlist is associated.

" + } + }, + "JobWatermark": { + "base": "

Watermarks can be in .png or .jpg format. If you want to display a watermark that is not rectangular, use the .png format, which supports transparency.

", + "refs": { + "JobWatermarks$member": null + } + }, + "JobWatermarks": { + "base": null, + "refs": { + "CreateJobOutput$Watermarks": "

Information about the watermarks that you want Elastic Transcoder to add to the video during transcoding. You can specify up to four watermarks for each output. Settings for each watermark must be defined in the preset for the current output.

", + "JobOutput$Watermarks": "

Information about the watermarks that you want Elastic Transcoder to add to the video during transcoding. You can specify up to four watermarks for each output. Settings for each watermark must be defined in the preset that you specify in Preset for the current output.

Watermarks are added to the output video in the sequence in which you list them in the job output—the first watermark in the list is added to the output video first, the second watermark in the list is added next, and so on. As a result, if the settings in a preset cause Elastic Transcoder to place all watermarks in the same location, the second watermark that you add will cover the first one, the third one will cover the second, and the fourth one will cover the third.

" + } + }, + "Jobs": { + "base": null, + "refs": { + "ListJobsByPipelineResponse$Jobs": "

An array of Job objects that are in the specified pipeline.

", + "ListJobsByStatusResponse$Jobs": "

An array of Job objects that have the specified status.

" + } + }, + "JpgOrPng": { + "base": null, + "refs": { + "Artwork$AlbumArtFormat": "

The format of album art, if any. Valid formats are .jpg and .png.

", + "Thumbnails$Format": "

The format of thumbnails, if any. Valid values are jpg and png.

You specify whether you want Elastic Transcoder to create thumbnails when you create a job.

" + } + }, + "Key": { + "base": null, + "refs": { + "CaptionSource$Key": "

The name of the sidecar caption file that you want Elastic Transcoder to include in the output file.

", + "CaptionSource$Language": "

A string that specifies the language of the caption. Specify this as one of:

  • 2-character ISO 639-1 code

  • 3-character ISO 639-2 code

For more information on ISO language codes and language names, see the List of ISO 639-1 codes.

", + "CreateJobOutput$Key": "

The name to assign to the transcoded file. Elastic Transcoder saves the file in the Amazon S3 bucket specified by the OutputBucket object in the pipeline that is specified by the pipeline ID. If a file with the specified name already exists in the output bucket, the job fails.

", + "CreateJobRequest$OutputKeyPrefix": "

The value, if any, that you want Elastic Transcoder to prepend to the names of all files that this job creates, including output files, thumbnails, and playlists.

", + "Job$OutputKeyPrefix": "

The value, if any, that you want Elastic Transcoder to prepend to the names of all files that this job creates, including output files, thumbnails, and playlists. We recommend that you add a / or some other delimiter to the end of the OutputKeyPrefix.

", + "JobInput$Key": "

The name of the file to transcode. Elsewhere in the body of the JSON block is the the ID of the pipeline to use for processing the job. The InputBucket object in that pipeline tells Elastic Transcoder which Amazon S3 bucket to get the file from.

If the file name includes a prefix, such as cooking/lasagna.mpg, include the prefix in the key. If the file isn't in the specified bucket, Elastic Transcoder returns an error.

", + "JobOutput$Key": "

The name to assign to the transcoded file. Elastic Transcoder saves the file in the Amazon S3 bucket specified by the OutputBucket object in the pipeline that is specified by the pipeline ID.

", + "OutputKeys$member": null + } + }, + "KeyArn": { + "base": null, + "refs": { + "CreatePipelineRequest$AwsKmsKeyArn": "

The AWS Key Management Service (AWS KMS) key that you want to use with this pipeline.

If you use either S3 or S3-AWS-KMS as your Encryption:Mode, you don't need to provide a key with your job because a default key, known as an AWS-KMS key, is created for you automatically. You need to provide an AWS-KMS key only if you want to use a non-default AWS-KMS key, or if you are using an Encryption:Mode of AES-PKCS7, AES-CTR, or AES-GCM.

", + "Pipeline$AwsKmsKeyArn": "

The AWS Key Management Service (AWS KMS) key that you want to use with this pipeline.

If you use either S3 or S3-AWS-KMS as your Encryption:Mode, you don't need to provide a key with your job because a default key, known as an AWS-KMS key, is created for you automatically. You need to provide an AWS-KMS key only if you want to use a non-default AWS-KMS key, or if you are using an Encryption:Mode of AES-PKCS7, AES-CTR, or AES-GCM.

", + "UpdatePipelineRequest$AwsKmsKeyArn": "

The AWS Key Management Service (AWS KMS) key that you want to use with this pipeline.

If you use either S3 or S3-AWS-KMS as your Encryption:Mode, you don't need to provide a key with your job because a default key, known as an AWS-KMS key, is created for you automatically. You need to provide an AWS-KMS key only if you want to use a non-default AWS-KMS key, or if you are using an Encryption:Mode of AES-PKCS7, AES-CTR, or AES-GCM.

" + } + }, + "KeyIdGuid": { + "base": null, + "refs": { + "PlayReadyDrm$KeyId": "

The ID for your DRM key, so that your DRM license provider knows which key to provide.

The key ID must be provided in big endian, and Elastic Transcoder will convert it to little endian before inserting it into the PlayReady DRM headers. If you are unsure whether your license server provides your key ID in big or little endian, check with your DRM provider.

" + } + }, + "KeyStoragePolicy": { + "base": null, + "refs": { + "HlsContentProtection$KeyStoragePolicy": "

Specify whether you want Elastic Transcoder to write your HLS license key to an Amazon S3 bucket. If you choose WithVariantPlaylists, LicenseAcquisitionUrl must be left blank and Elastic Transcoder writes your data key into the same bucket as the associated playlist.

" + } + }, + "KeyframesMaxDist": { + "base": null, + "refs": { + "VideoParameters$KeyframesMaxDist": "

Applicable only when the value of Video:Codec is one of H.264, MPEG2, or VP8.

The maximum number of frames between key frames. Key frames are fully encoded frames; the frames between key frames are encoded based, in part, on the content of the key frames. The value is an integer formatted as a string; valid values are between 1 (every frame is a key frame) and 100000, inclusive. A higher value results in higher compression but may also discernibly decrease video quality.

For Smooth outputs, the FrameRate must have a constant ratio to the KeyframesMaxDist. This allows Smooth playlists to switch between different quality levels while the file is being played.

For example, an input file can have a FrameRate of 30 with a KeyframesMaxDist of 90. The output file then needs to have a ratio of 1:3. Valid outputs would have FrameRate of 30, 25, and 10, and KeyframesMaxDist of 90, 75, and 30, respectively.

Alternately, this can be achieved by setting FrameRate to auto and having the same values for MaxFrameRate and KeyframesMaxDist.

" + } + }, + "LimitExceededException": { + "base": "

Too many operations for a given AWS account. For example, the number of pipelines exceeds the maximum allowed.

", + "refs": { + } + }, + "ListJobsByPipelineRequest": { + "base": "

The ListJobsByPipelineRequest structure.

", + "refs": { + } + }, + "ListJobsByPipelineResponse": { + "base": "

The ListJobsByPipelineResponse structure.

", + "refs": { + } + }, + "ListJobsByStatusRequest": { + "base": "

The ListJobsByStatusRequest structure.

", + "refs": { + } + }, + "ListJobsByStatusResponse": { + "base": "

The ListJobsByStatusResponse structure.

", + "refs": { + } + }, + "ListPipelinesRequest": { + "base": "

The ListPipelineRequest structure.

", + "refs": { + } + }, + "ListPipelinesResponse": { + "base": "

A list of the pipelines associated with the current AWS account.

", + "refs": { + } + }, + "ListPresetsRequest": { + "base": "

The ListPresetsRequest structure.

", + "refs": { + } + }, + "ListPresetsResponse": { + "base": "

The ListPresetsResponse structure.

", + "refs": { + } + }, + "MaxFrameRate": { + "base": null, + "refs": { + "VideoParameters$MaxFrameRate": "

If you specify auto for FrameRate, Elastic Transcoder uses the frame rate of the input video for the frame rate of the output video. Specify the maximum frame rate that you want Elastic Transcoder to use when the frame rate of the input video is greater than the desired maximum frame rate of the output video. Valid values include: 10, 15, 23.97, 24, 25, 29.97, 30, 60.

" + } + }, + "MergePolicy": { + "base": null, + "refs": { + "JobAlbumArt$MergePolicy": "

A policy that determines how Elastic Transcoder will handle the existence of multiple album artwork files.

  • Replace: The specified album art will replace any existing album art.
  • Prepend: The specified album art will be placed in front of any existing album art.
  • Append: The specified album art will be placed after any existing album art.
  • Fallback: If the original input file contains artwork, Elastic Transcoder will use that artwork for the output. If the original input does not contain artwork, Elastic Transcoder will use the specified album art file.

" + } + }, + "Name": { + "base": null, + "refs": { + "CaptionSource$Label": "

The label of the caption shown in the player when choosing a language. We recommend that you put the caption language name here, in the language of the captions.

", + "CreatePipelineRequest$Name": "

The name of the pipeline. We recommend that the name be unique within the AWS account, but uniqueness is not enforced.

Constraints: Maximum 40 characters.

", + "CreatePresetRequest$Name": "

The name of the preset. We recommend that the name be unique within the AWS account, but uniqueness is not enforced.

", + "Pipeline$Name": "

The name of the pipeline. We recommend that the name be unique within the AWS account, but uniqueness is not enforced.

Constraints: Maximum 40 characters

", + "Preset$Name": "

The name of the preset.

", + "UpdatePipelineRequest$Name": "

The name of the pipeline. We recommend that the name be unique within the AWS account, but uniqueness is not enforced.

Constraints: Maximum 40 characters

" + } + }, + "NonEmptyBase64EncodedString": { + "base": null, + "refs": { + "PlayReadyDrm$Key": "

The DRM key for your file, provided by your DRM license provider. The key must be base64-encoded, and it must be one of the following bit lengths before being base64-encoded:

128, 192, or 256.

The key must also be encrypted by using AWS KMS.

", + "PlayReadyDrm$KeyMd5": "

The MD5 digest of the key used for DRM on your file, and that you want Elastic Transcoder to use as a checksum to make sure your key was not corrupted in transit. The key MD5 must be base64-encoded, and it must be exactly 16 bytes before being base64-encoded.

" + } + }, + "Notifications": { + "base": "

The Amazon Simple Notification Service (Amazon SNS) topic or topics to notify in order to report job status.

To receive notifications, you must also subscribe to the new topic in the Amazon SNS console.", + "refs": { + "CreatePipelineRequest$Notifications": "

The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify to report job status.

To receive notifications, you must also subscribe to the new topic in the Amazon SNS console.
  • Progressing: The topic ARN for the Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process a job in this pipeline. This is the ARN that Amazon SNS returned when you created the topic. For more information, see Create a Topic in the Amazon Simple Notification Service Developer Guide.
  • Completed: The topic ARN for the Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing a job in this pipeline. This is the ARN that Amazon SNS returned when you created the topic.
  • Warning: The topic ARN for the Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition while processing a job in this pipeline. This is the ARN that Amazon SNS returned when you created the topic.
  • Error: The topic ARN for the Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition while processing a job in this pipeline. This is the ARN that Amazon SNS returned when you created the topic.
", + "Pipeline$Notifications": "

The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify to report job status.

To receive notifications, you must also subscribe to the new topic in the Amazon SNS console.
  • Progressing (optional): The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process the job.
  • Completed (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing the job.
  • Warning (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition.
  • Error (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition.
", + "UpdatePipelineNotificationsRequest$Notifications": "

The topic ARN for the Amazon Simple Notification Service (Amazon SNS) topic that you want to notify to report job status.

To receive notifications, you must also subscribe to the new topic in the Amazon SNS console.
  • Progressing: The topic ARN for the Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process jobs that are added to this pipeline. This is the ARN that Amazon SNS returned when you created the topic.
  • Completed: The topic ARN for the Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing a job. This is the ARN that Amazon SNS returned when you created the topic.
  • Warning: The topic ARN for the Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition. This is the ARN that Amazon SNS returned when you created the topic.
  • Error: The topic ARN for the Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition. This is the ARN that Amazon SNS returned when you created the topic.
", + "UpdatePipelineRequest$Notifications": null + } + }, + "NullableInteger": { + "base": null, + "refs": { + "DetectedProperties$Width": "

The detected width of the input file, in pixels.

", + "DetectedProperties$Height": "

The detected height of the input file, in pixels.

", + "JobOutput$Width": "

Specifies the width of the output file in pixels.

", + "JobOutput$Height": "

Height of the output file, in pixels.

" + } + }, + "NullableLong": { + "base": null, + "refs": { + "DetectedProperties$FileSize": "

The detected file size of the input file, in bytes.

", + "DetectedProperties$DurationMillis": "

The detected duration of the input file, in milliseconds.

", + "JobOutput$Duration": "

Duration of the output file, in seconds.

", + "JobOutput$FileSize": "

File size of the output file, in bytes.

", + "JobOutput$DurationMillis": "

Duration of the output file, in milliseconds.

", + "Timing$SubmitTimeMillis": "

The time the job was submitted to Elastic Transcoder, in epoch milliseconds.

", + "Timing$StartTimeMillis": "

The time the job began transcoding, in epoch milliseconds.

", + "Timing$FinishTimeMillis": "

The time the job finished transcoding, in epoch milliseconds.

" + } + }, + "OneTo512String": { + "base": null, + "refs": { + "PlayReadyDrm$LicenseAcquisitionUrl": "

The location of the license key required to play DRM content. The URL must be an absolute path, and is referenced by the PlayReady header. The PlayReady header is referenced in the protection header of the client manifest for Smooth Streaming outputs, and in the EXT-X-DXDRM and EXT-XDXDRMINFO metadata tags for HLS playlist outputs. An example URL looks like this: https://www.example.com/exampleKey/

" + } + }, + "Opacity": { + "base": null, + "refs": { + "PresetWatermark$Opacity": "

A percentage that indicates how much you want a watermark to obscure the video in the location where it appears. Valid values are 0 (the watermark is invisible) to 100 (the watermark completely obscures the video in the specified location). The datatype of Opacity is float.

Elastic Transcoder supports transparent .png graphics. If you use a transparent .png, the transparent portion of the video appears as if you had specified a value of 0 for Opacity. The .jpg file format doesn't support transparency.

" + } + }, + "OutputKeys": { + "base": null, + "refs": { + "CreateJobPlaylist$OutputKeys": "

For each output in this job that you want to include in a master playlist, the value of the Outputs:Key object.

  • If your output is not HLS or does not have a segment duration set, the name of the output file is a concatenation of OutputKeyPrefix and Outputs:Key:

    OutputKeyPrefixOutputs:Key

  • If your output is HLSv3 and has a segment duration set, or is not included in a playlist, Elastic Transcoder creates an output playlist file with a file extension of .m3u8, and a series of .ts files that include a five-digit sequential counter beginning with 00000:

    OutputKeyPrefixOutputs:Key.m3u8

    OutputKeyPrefixOutputs:Key00000.ts

  • If your output is HLSv4, has a segment duration set, and is included in an HLSv4 playlist, Elastic Transcoder creates an output playlist file with a file extension of _v4.m3u8. If the output is video, Elastic Transcoder also creates an output file with an extension of _iframe.m3u8:

    OutputKeyPrefixOutputs:Key_v4.m3u8

    OutputKeyPrefixOutputs:Key_iframe.m3u8

    OutputKeyPrefixOutputs:Key.ts

Elastic Transcoder automatically appends the relevant file extension to the file name. If you include a file extension in Output Key, the file name will have two extensions.

If you include more than one output in a playlist, any segment duration settings, clip settings, or caption settings must be the same for all outputs in the playlist. For Smooth playlists, the Audio:Profile, Video:Profile, and Video:FrameRate to Video:KeyframesMaxDist ratio must be the same for all outputs.

", + "Playlist$OutputKeys": "

For each output in this job that you want to include in a master playlist, the value of the Outputs:Key object.

  • If your output is not HLS or does not have a segment duration set, the name of the output file is a concatenation of OutputKeyPrefix and Outputs:Key:

    OutputKeyPrefixOutputs:Key

  • If your output is HLSv3 and has a segment duration set, or is not included in a playlist, Elastic Transcoder creates an output playlist file with a file extension of .m3u8, and a series of .ts files that include a five-digit sequential counter beginning with 00000:

    OutputKeyPrefixOutputs:Key.m3u8

    OutputKeyPrefixOutputs:Key00000.ts

  • If your output is HLSv4, has a segment duration set, and is included in an HLSv4 playlist, Elastic Transcoder creates an output playlist file with a file extension of _v4.m3u8. If the output is video, Elastic Transcoder also creates an output file with an extension of _iframe.m3u8:

    OutputKeyPrefixOutputs:Key_v4.m3u8

    OutputKeyPrefixOutputs:Key_iframe.m3u8

    OutputKeyPrefixOutputs:Key.ts

Elastic Transcoder automatically appends the relevant file extension to the file name. If you include a file extension in Output Key, the file name will have two extensions.

If you include more than one output in a playlist, any segment duration settings, clip settings, or caption settings must be the same for all outputs in the playlist. For Smooth playlists, the Audio:Profile, Video:Profile, and Video:FrameRate to Video:KeyframesMaxDist ratio must be the same for all outputs.

" + } + }, + "PaddingPolicy": { + "base": null, + "refs": { + "Artwork$PaddingPolicy": "

When you set PaddingPolicy to Pad, Elastic Transcoder may add white bars to the top and bottom and/or left and right sides of the output album art to make the total size of the output art match the values that you specified for MaxWidth and MaxHeight.

", + "Thumbnails$PaddingPolicy": "

When you set PaddingPolicy to Pad, Elastic Transcoder may add black bars to the top and bottom and/or left and right sides of thumbnails to make the total size of the thumbnails match the values that you specified for thumbnail MaxWidth and MaxHeight settings.

", + "VideoParameters$PaddingPolicy": "

When you set PaddingPolicy to Pad, Elastic Transcoder may add black bars to the top and bottom and/or left and right sides of the output video to make the total size of the output video match the values that you specified for MaxWidth and MaxHeight.

" + } + }, + "Permission": { + "base": "

The Permission structure.

", + "refs": { + "Permissions$member": null + } + }, + "Permissions": { + "base": null, + "refs": { + "PipelineOutputConfig$Permissions": "

Optional. The Permissions object specifies which users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access you want them to have. You can grant permissions to a maximum of 30 users and/or predefined Amazon S3 groups.

If you include Permissions, Elastic Transcoder grants only the permissions that you specify. It does not grant full permissions to the owner of the role specified by Role. If you want that user to have full control, you must explicitly grant full control to the user.

If you omit Permissions, Elastic Transcoder grants full control over the transcoded files and playlists to the owner of the role specified by Role, and grants no other permissions to any other user or group.

" + } + }, + "Pipeline": { + "base": "

The pipeline (queue) that is used to manage jobs.

", + "refs": { + "CreatePipelineResponse$Pipeline": "

A section of the response body that provides information about the pipeline that is created.

", + "Pipelines$member": null, + "ReadPipelineResponse$Pipeline": "

A section of the response body that provides information about the pipeline.

", + "UpdatePipelineNotificationsResponse$Pipeline": "

A section of the response body that provides information about the pipeline.

", + "UpdatePipelineResponse$Pipeline": null, + "UpdatePipelineStatusResponse$Pipeline": "

A section of the response body that provides information about the pipeline.

" + } + }, + "PipelineOutputConfig": { + "base": "

The PipelineOutputConfig structure.

", + "refs": { + "CreatePipelineRequest$ContentConfig": "

The optional ContentConfig object specifies information about the Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists: which bucket to use, which users you want to have access to the files, the type of access you want users to have, and the storage class that you want to assign to the files.

If you specify values for ContentConfig, you must also specify values for ThumbnailConfig.

If you specify values for ContentConfig and ThumbnailConfig, omit the OutputBucket object.

  • Bucket: The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists.
  • Permissions (Optional): The Permissions object specifies which users you want to have access to transcoded files and the type of access you want them to have. You can grant permissions to a maximum of 30 users and/or predefined Amazon S3 groups.
  • Grantee Type: Specify the type of value that appears in the Grantee object:
    • Canonical: The value in the Grantee object is either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. For more information about canonical user IDs, see Access Control List (ACL) Overview in the Amazon Simple Storage Service Developer Guide. For more information about using CloudFront origin access identities to require that users use CloudFront URLs instead of Amazon S3 URLs, see Using an Origin Access Identity to Restrict Access to Your Amazon S3 Content. A canonical user ID is not the same as an AWS account number.
    • Email: The value in the Grantee object is the registered email address of an AWS account.
    • Group: The value in the Grantee object is one of the following predefined Amazon S3 groups: AllUsers, AuthenticatedUsers, or LogDelivery.
  • Grantee: The AWS user or group that you want to have access to transcoded files and playlists. To identify the user or group, you can specify the canonical user ID for an AWS account, an origin access identity for a CloudFront distribution, the registered email address of an AWS account, or a predefined Amazon S3 group
  • Access: The permission that you want to give to the AWS user that you specified in Grantee. Permissions are granted on the files that Elastic Transcoder adds to the bucket, including playlists and video files. Valid values include:
    • READ: The grantee can read the objects and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket.
    • READ_ACP: The grantee can read the object ACL for objects that Elastic Transcoder adds to the Amazon S3 bucket.
    • WRITE_ACP: The grantee can write the ACL for the objects that Elastic Transcoder adds to the Amazon S3 bucket.
    • FULL_CONTROL: The grantee has READ, READ_ACP, and WRITE_ACP permissions for the objects that Elastic Transcoder adds to the Amazon S3 bucket.
  • StorageClass: The Amazon S3 storage class, Standard or ReducedRedundancy, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket.
", + "CreatePipelineRequest$ThumbnailConfig": "

The ThumbnailConfig object specifies several values, including the Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files, which users you want to have access to the files, the type of access you want users to have, and the storage class that you want to assign to the files.

If you specify values for ContentConfig, you must also specify values for ThumbnailConfig even if you don't want to create thumbnails.

If you specify values for ContentConfig and ThumbnailConfig, omit the OutputBucket object.

  • Bucket: The Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files.
  • Permissions (Optional): The Permissions object specifies which users and/or predefined Amazon S3 groups you want to have access to thumbnail files, and the type of access you want them to have. You can grant permissions to a maximum of 30 users and/or predefined Amazon S3 groups.
  • GranteeType: Specify the type of value that appears in the Grantee object:
    • Canonical: The value in the Grantee object is either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. A canonical user ID is not the same as an AWS account number.
    • Email: The value in the Grantee object is the registered email address of an AWS account.
    • Group: The value in the Grantee object is one of the following predefined Amazon S3 groups: AllUsers, AuthenticatedUsers, or LogDelivery.
  • Grantee: The AWS user or group that you want to have access to thumbnail files. To identify the user or group, you can specify the canonical user ID for an AWS account, an origin access identity for a CloudFront distribution, the registered email address of an AWS account, or a predefined Amazon S3 group.
  • Access: The permission that you want to give to the AWS user that you specified in Grantee. Permissions are granted on the thumbnail files that Elastic Transcoder adds to the bucket. Valid values include:
    • READ: The grantee can read the thumbnails and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket.
    • READ_ACP: The grantee can read the object ACL for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.
    • WRITE_ACP: The grantee can write the ACL for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.
    • FULL_CONTROL: The grantee has READ, READ_ACP, and WRITE_ACP permissions for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.
  • StorageClass: The Amazon S3 storage class, Standard or ReducedRedundancy, that you want Elastic Transcoder to assign to the thumbnails that it stores in your Amazon S3 bucket.
", + "Pipeline$ContentConfig": "

Information about the Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. Either you specify both ContentConfig and ThumbnailConfig, or you specify OutputBucket.

  • Bucket: The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists.
  • Permissions: A list of the users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access that you want them to have.
    • GranteeType: The type of value that appears in the Grantee object:
      • Canonical: Either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution.
      • Email: The registered email address of an AWS account.
      • Group: One of the following predefined Amazon S3 groups: AllUsers, AuthenticatedUsers, or LogDelivery.
    • Grantee: The AWS user or group that you want to have access to transcoded files and playlists.
    • Access: The permission that you want to give to the AWS user that is listed in Grantee. Valid values include:
      • READ: The grantee can read the objects and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket.
      • READ_ACP: The grantee can read the object ACL for objects that Elastic Transcoder adds to the Amazon S3 bucket.
      • WRITE_ACP: The grantee can write the ACL for the objects that Elastic Transcoder adds to the Amazon S3 bucket.
      • FULL_CONTROL: The grantee has READ, READ_ACP, and WRITE_ACP permissions for the objects that Elastic Transcoder adds to the Amazon S3 bucket.
  • StorageClass: The Amazon S3 storage class, Standard or ReducedRedundancy, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket.
", + "Pipeline$ThumbnailConfig": "

Information about the Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files. Either you specify both ContentConfig and ThumbnailConfig, or you specify OutputBucket.

  • Bucket: The Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files.
  • Permissions: A list of the users and/or predefined Amazon S3 groups you want to have access to thumbnail files, and the type of access that you want them to have.
    • GranteeType: The type of value that appears in the Grantee object:
      • Canonical: Either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. A canonical user ID is not the same as an AWS account number.
      • Email: The registered email address of an AWS account.
      • Group: One of the following predefined Amazon S3 groups: AllUsers, AuthenticatedUsers, or LogDelivery.
    • Grantee: The AWS user or group that you want to have access to thumbnail files.
    • Access: The permission that you want to give to the AWS user that is listed in Grantee. Valid values include:
      • READ: The grantee can read the thumbnails and metadata for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.
      • READ_ACP: The grantee can read the object ACL for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.
      • WRITE_ACP: The grantee can write the ACL for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.
      • FULL_CONTROL: The grantee has READ, READ_ACP, and WRITE_ACP permissions for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.
  • StorageClass: The Amazon S3 storage class, Standard or ReducedRedundancy, that you want Elastic Transcoder to assign to the thumbnails that it stores in your Amazon S3 bucket.
", + "UpdatePipelineRequest$ContentConfig": "

The optional ContentConfig object specifies information about the Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists: which bucket to use, which users you want to have access to the files, the type of access you want users to have, and the storage class that you want to assign to the files.

If you specify values for ContentConfig, you must also specify values for ThumbnailConfig.

If you specify values for ContentConfig and ThumbnailConfig, omit the OutputBucket object.

  • Bucket: The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists.
  • Permissions (Optional): The Permissions object specifies which users you want to have access to transcoded files and the type of access you want them to have. You can grant permissions to a maximum of 30 users and/or predefined Amazon S3 groups.
  • Grantee Type: Specify the type of value that appears in the Grantee object:
    • Canonical: The value in the Grantee object is either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. For more information about canonical user IDs, see Access Control List (ACL) Overview in the Amazon Simple Storage Service Developer Guide. For more information about using CloudFront origin access identities to require that users use CloudFront URLs instead of Amazon S3 URLs, see Using an Origin Access Identity to Restrict Access to Your Amazon S3 Content. A canonical user ID is not the same as an AWS account number.
    • Email: The value in the Grantee object is the registered email address of an AWS account.
    • Group: The value in the Grantee object is one of the following predefined Amazon S3 groups: AllUsers, AuthenticatedUsers, or LogDelivery.
  • Grantee: The AWS user or group that you want to have access to transcoded files and playlists. To identify the user or group, you can specify the canonical user ID for an AWS account, an origin access identity for a CloudFront distribution, the registered email address of an AWS account, or a predefined Amazon S3 group
  • Access: The permission that you want to give to the AWS user that you specified in Grantee. Permissions are granted on the files that Elastic Transcoder adds to the bucket, including playlists and video files. Valid values include:
    • READ: The grantee can read the objects and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket.
    • READ_ACP: The grantee can read the object ACL for objects that Elastic Transcoder adds to the Amazon S3 bucket.
    • WRITE_ACP: The grantee can write the ACL for the objects that Elastic Transcoder adds to the Amazon S3 bucket.
    • FULL_CONTROL: The grantee has READ, READ_ACP, and WRITE_ACP permissions for the objects that Elastic Transcoder adds to the Amazon S3 bucket.
  • StorageClass: The Amazon S3 storage class, Standard or ReducedRedundancy, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket.
", + "UpdatePipelineRequest$ThumbnailConfig": "

The ThumbnailConfig object specifies several values, including the Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files, which users you want to have access to the files, the type of access you want users to have, and the storage class that you want to assign to the files.

If you specify values for ContentConfig, you must also specify values for ThumbnailConfig even if you don't want to create thumbnails.

If you specify values for ContentConfig and ThumbnailConfig, omit the OutputBucket object.

  • Bucket: The Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files.
  • Permissions (Optional): The Permissions object specifies which users and/or predefined Amazon S3 groups you want to have access to thumbnail files, and the type of access you want them to have. You can grant permissions to a maximum of 30 users and/or predefined Amazon S3 groups.
  • GranteeType: Specify the type of value that appears in the Grantee object:
    • Canonical: The value in the Grantee object is either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. A canonical user ID is not the same as an AWS account number.
    • Email: The value in the Grantee object is the registered email address of an AWS account.
    • Group: The value in the Grantee object is one of the following predefined Amazon S3 groups: AllUsers, AuthenticatedUsers, or LogDelivery.
  • Grantee: The AWS user or group that you want to have access to thumbnail files. To identify the user or group, you can specify the canonical user ID for an AWS account, an origin access identity for a CloudFront distribution, the registered email address of an AWS account, or a predefined Amazon S3 group.
  • Access: The permission that you want to give to the AWS user that you specified in Grantee. Permissions are granted on the thumbnail files that Elastic Transcoder adds to the bucket. Valid values include:
    • READ: The grantee can read the thumbnails and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket.
    • READ_ACP: The grantee can read the object ACL for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.
    • WRITE_ACP: The grantee can write the ACL for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.
    • FULL_CONTROL: The grantee has READ, READ_ACP, and WRITE_ACP permissions for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.
  • StorageClass: The Amazon S3 storage class, Standard or ReducedRedundancy, that you want Elastic Transcoder to assign to the thumbnails that it stores in your Amazon S3 bucket.
" + } + }, + "PipelineStatus": { + "base": null, + "refs": { + "Pipeline$Status": "

The current status of the pipeline:

  • Active: The pipeline is processing jobs.
  • Paused: The pipeline is not currently processing jobs.
", + "UpdatePipelineStatusRequest$Status": "

The desired status of the pipeline:

  • Active: The pipeline is processing jobs.
  • Paused: The pipeline is not currently processing jobs.
" + } + }, + "Pipelines": { + "base": null, + "refs": { + "ListPipelinesResponse$Pipelines": "

An array of Pipeline objects.

" + } + }, + "PixelsOrPercent": { + "base": null, + "refs": { + "PresetWatermark$MaxWidth": "

The maximum width of the watermark in one of the following formats:

  • number of pixels (px): The minimum value is 16 pixels, and the maximum value is the value of MaxWidth.
  • integer percentage (%): The range of valid values is 0 to 100. Use the value of Target to specify whether you want Elastic Transcoder to include the black bars that are added by Elastic Transcoder, if any, in the calculation.
  • If you specify the value in pixels, it must be less than or equal to the value of MaxWidth.

", + "PresetWatermark$MaxHeight": "

The maximum height of the watermark in one of the following formats:

  • number of pixels (px): The minimum value is 16 pixels, and the maximum value is the value of MaxHeight.
  • integer percentage (%): The range of valid values is 0 to 100. Use the value of Target to specify whether you want Elastic Transcoder to include the black bars that are added by Elastic Transcoder, if any, in the calculation.
If you specify the value in pixels, it must be less than or equal to the value of MaxHeight.

", + "PresetWatermark$HorizontalOffset": "

The amount by which you want the horizontal position of the watermark to be offset from the position specified by HorizontalAlign:

  • number of pixels (px): The minimum value is 0 pixels, and the maximum value is the value of MaxWidth.
  • integer percentage (%): The range of valid values is 0 to 100.
For example, if you specify Left for HorizontalAlign and 5px for HorizontalOffset, the left side of the watermark appears 5 pixels from the left border of the output video.

HorizontalOffset is only valid when the value of HorizontalAlign is Left or Right. If you specify an offset that causes the watermark to extend beyond the left or right border and Elastic Transcoder has not added black bars, the watermark is cropped. If Elastic Transcoder has added black bars, the watermark extends into the black bars. If the watermark extends beyond the black bars, it is cropped.

Use the value of Target to specify whether you want to include the black bars that are added by Elastic Transcoder, if any, in the offset calculation.

", + "PresetWatermark$VerticalOffset": "VerticalOffset

The amount by which you want the vertical position of the watermark to be offset from the position specified by VerticalAlign:

  • number of pixels (px): The minimum value is 0 pixels, and the maximum value is the value of MaxHeight.
  • integer percentage (%): The range of valid values is 0 to 100.
For example, if you specify Top for VerticalAlign and 5px for VerticalOffset, the top of the watermark appears 5 pixels from the top border of the output video.

VerticalOffset is only valid when the value of VerticalAlign is Top or Bottom.

If you specify an offset that causes the watermark to extend beyond the top or bottom border and Elastic Transcoder has not added black bars, the watermark is cropped. If Elastic Transcoder has added black bars, the watermark extends into the black bars. If the watermark extends beyond the black bars, it is cropped.

Use the value of Target to specify whether you want Elastic Transcoder to include the black bars that are added by Elastic Transcoder, if any, in the offset calculation.

" + } + }, + "PlayReadyDrm": { + "base": "

The PlayReady DRM settings, if any, that you want Elastic Transcoder to apply to the output files associated with this playlist.

PlayReady DRM encrypts your media files using AES-CTR encryption.

If you use DRM for an HLSv3 playlist, your outputs must have a master playlist.

", + "refs": { + "CreateJobPlaylist$PlayReadyDrm": "

The DRM settings, if any, that you want Elastic Transcoder to apply to the output files associated with this playlist.

", + "Playlist$PlayReadyDrm": "

The DRM settings, if any, that you want Elastic Transcoder to apply to the output files associated with this playlist.

" + } + }, + "PlayReadyDrmFormatString": { + "base": null, + "refs": { + "PlayReadyDrm$Format": "

The type of DRM, if any, that you want Elastic Transcoder to apply to the output files associated with this playlist.

" + } + }, + "Playlist": { + "base": "

Use Only for Fragmented MP4 or MPEG-TS Outputs. If you specify a preset for which the value of Container is fmp4 (Fragmented MP4) or ts (MPEG-TS), Playlists contains information about the master playlists that you want Elastic Transcoder to create. We recommend that you create only one master playlist per output format. The maximum number of master playlists in a job is 30.

", + "refs": { + "Playlists$member": null + } + }, + "PlaylistFormat": { + "base": null, + "refs": { + "CreateJobPlaylist$Format": "

The format of the output playlist. Valid formats include HLSv3, HLSv4, and Smooth.

", + "Playlist$Format": "

The format of the output playlist. Valid formats include HLSv3, HLSv4, and Smooth.

" + } + }, + "Playlists": { + "base": null, + "refs": { + "Job$Playlists": "

Outputs in Fragmented MP4 or MPEG-TS format only.If you specify a preset in PresetId for which the value of Container is fmp4 (Fragmented MP4) or ts (MPEG-TS), Playlists contains information about the master playlists that you want Elastic Transcoder to create.

The maximum number of master playlists in a job is 30.

" + } + }, + "Preset": { + "base": "

Presets are templates that contain most of the settings for transcoding media files from one format to another. Elastic Transcoder includes some default presets for common formats, for example, several iPod and iPhone versions. You can also create your own presets for formats that aren't included among the default presets. You specify which preset you want to use when you create a job.

", + "refs": { + "CreatePresetResponse$Preset": "

A section of the response body that provides information about the preset that is created.

", + "Presets$member": null, + "ReadPresetResponse$Preset": "

A section of the response body that provides information about the preset.

" + } + }, + "PresetContainer": { + "base": null, + "refs": { + "CreatePresetRequest$Container": "

The container type for the output file. Valid values include flac, flv, fmp4, gif, mp3, mp4, mpg, mxf, oga, ogg, ts, and webm.

", + "Preset$Container": "

The container type for the output file. Valid values include flac, flv, fmp4, gif, mp3, mp4, mpg, mxf, oga, ogg, ts, and webm.

" + } + }, + "PresetType": { + "base": null, + "refs": { + "Preset$Type": "

Whether the preset is a default preset provided by Elastic Transcoder (System) or a preset that you have defined (Custom).

" + } + }, + "PresetWatermark": { + "base": "

Settings for the size, location, and opacity of graphics that you want Elastic Transcoder to overlay over videos that are transcoded using this preset. You can specify settings for up to four watermarks. Watermarks appear in the specified size and location, and with the specified opacity for the duration of the transcoded video.

Watermarks can be in .png or .jpg format. If you want to display a watermark that is not rectangular, use the .png format, which supports transparency.

When you create a job that uses this preset, you specify the .png or .jpg graphics that you want Elastic Transcoder to include in the transcoded videos. You can specify fewer graphics in the job than you specify watermark settings in the preset, which allows you to use the same preset for up to four watermarks that have different dimensions.

", + "refs": { + "PresetWatermarks$member": null + } + }, + "PresetWatermarkId": { + "base": null, + "refs": { + "JobWatermark$PresetWatermarkId": "

The ID of the watermark settings that Elastic Transcoder uses to add watermarks to the video during transcoding. The settings are in the preset specified by Preset for the current output. In that preset, the value of Watermarks Id tells Elastic Transcoder which settings to use.

", + "PresetWatermark$Id": "A unique identifier for the settings for one watermark. The value of Id can be up to 40 characters long." + } + }, + "PresetWatermarks": { + "base": null, + "refs": { + "VideoParameters$Watermarks": "

Settings for the size, location, and opacity of graphics that you want Elastic Transcoder to overlay over videos that are transcoded using this preset. You can specify settings for up to four watermarks. Watermarks appear in the specified size and location, and with the specified opacity for the duration of the transcoded video.

Watermarks can be in .png or .jpg format. If you want to display a watermark that is not rectangular, use the .png format, which supports transparency.

When you create a job that uses this preset, you specify the .png or .jpg graphics that you want Elastic Transcoder to include in the transcoded videos. You can specify fewer graphics in the job than you specify watermark settings in the preset, which allows you to use the same preset for up to four watermarks that have different dimensions.

" + } + }, + "Presets": { + "base": null, + "refs": { + "ListPresetsResponse$Presets": "

An array of Preset objects.

" + } + }, + "ReadJobRequest": { + "base": "

The ReadJobRequest structure.

", + "refs": { + } + }, + "ReadJobResponse": { + "base": "

The ReadJobResponse structure.

", + "refs": { + } + }, + "ReadPipelineRequest": { + "base": "

The ReadPipelineRequest structure.

", + "refs": { + } + }, + "ReadPipelineResponse": { + "base": "

The ReadPipelineResponse structure.

", + "refs": { + } + }, + "ReadPresetRequest": { + "base": "

The ReadPresetRequest structure.

", + "refs": { + } + }, + "ReadPresetResponse": { + "base": "

The ReadPresetResponse structure.

", + "refs": { + } + }, + "Resolution": { + "base": null, + "refs": { + "JobInput$Resolution": "

This value must be auto, which causes Elastic Transcoder to automatically detect the resolution of the input file.

", + "VideoParameters$Resolution": "

To better control resolution and aspect ratio of output videos, we recommend that you use the values MaxWidth, MaxHeight, SizingPolicy, PaddingPolicy, and DisplayAspectRatio instead of Resolution and AspectRatio. The two groups of settings are mutually exclusive. Do not use them together.

The width and height of the video in the output file, in pixels. Valid values are auto and width x height:

  • auto: Elastic Transcoder attempts to preserve the width and height of the input file, subject to the following rules.
  • width x height: The width and height of the output video in pixels.

Note the following about specifying the width and height:

  • The width must be an even integer between 128 and 4096, inclusive.
  • The height must be an even integer between 96 and 3072, inclusive.
  • If you specify a resolution that is less than the resolution of the input file, Elastic Transcoder rescales the output file to the lower resolution.
  • If you specify a resolution that is greater than the resolution of the input file, Elastic Transcoder rescales the output to the higher resolution.
  • We recommend that you specify a resolution for which the product of width and height is less than or equal to the applicable value in the following list (List - Max width x height value):
    • 1 - 25344
    • 1b - 25344
    • 1.1 - 101376
    • 1.2 - 101376
    • 1.3 - 101376
    • 2 - 101376
    • 2.1 - 202752
    • 2.2 - 404720
    • 3 - 404720
    • 3.1 - 921600
    • 3.2 - 1310720
    • 4 - 2097152
    • 4.1 - 2097152
" + } + }, + "ResourceInUseException": { + "base": "

The resource you are attempting to change is in use. For example, you are attempting to delete a pipeline that is currently in use.

", + "refs": { + } + }, + "ResourceNotFoundException": { + "base": "

The requested resource does not exist or is not available. For example, the pipeline to which you're trying to add a job doesn't exist or is still being created.

", + "refs": { + } + }, + "Role": { + "base": null, + "refs": { + "CreatePipelineRequest$Role": "

The IAM Amazon Resource Name (ARN) for the role that you want Elastic Transcoder to use to create the pipeline.

", + "Pipeline$Role": "

The IAM Amazon Resource Name (ARN) for the role that Elastic Transcoder uses to transcode jobs for this pipeline.

", + "TestRoleRequest$Role": "

The IAM Amazon Resource Name (ARN) for the role that you want Elastic Transcoder to test.

", + "UpdatePipelineRequest$Role": "

The IAM Amazon Resource Name (ARN) for the role that you want Elastic Transcoder to use to transcode jobs for this pipeline.

" + } + }, + "Rotate": { + "base": null, + "refs": { + "CreateJobOutput$Rotate": "

The number of degrees clockwise by which you want Elastic Transcoder to rotate the output relative to the input. Enter one of the following values: auto, 0, 90, 180, 270. The value auto generally works only if the file that you're transcoding contains rotation metadata.

", + "JobOutput$Rotate": "

The number of degrees clockwise by which you want Elastic Transcoder to rotate the output relative to the input. Enter one of the following values:

auto, 0, 90, 180, 270

The value auto generally works only if the file that you're transcoding contains rotation metadata.

" + } + }, + "SizingPolicy": { + "base": null, + "refs": { + "Artwork$SizingPolicy": "

Specify one of the following values to control scaling of the output album art:

  • Fit: Elastic Transcoder scales the output art so it matches the value that you specified in either MaxWidth or MaxHeight without exceeding the other value.
  • Fill: Elastic Transcoder scales the output art so it matches the value that you specified in either MaxWidth or MaxHeight and matches or exceeds the other value. Elastic Transcoder centers the output art and then crops it in the dimension (if any) that exceeds the maximum value.
  • Stretch: Elastic Transcoder stretches the output art to match the values that you specified for MaxWidth and MaxHeight. If the relative proportions of the input art and the output art are different, the output art will be distorted.
  • Keep: Elastic Transcoder does not scale the output art. If either dimension of the input art exceeds the values that you specified for MaxWidth and MaxHeight, Elastic Transcoder crops the output art.
  • ShrinkToFit: Elastic Transcoder scales the output art down so that its dimensions match the values that you specified for at least one of MaxWidth and MaxHeight without exceeding either value. If you specify this option, Elastic Transcoder does not scale the art up.
  • ShrinkToFill Elastic Transcoder scales the output art down so that its dimensions match the values that you specified for at least one of MaxWidth and MaxHeight without dropping below either value. If you specify this option, Elastic Transcoder does not scale the art up.

", + "Thumbnails$SizingPolicy": "

Specify one of the following values to control scaling of thumbnails:

  • Fit: Elastic Transcoder scales thumbnails so they match the value that you specified in thumbnail MaxWidth or MaxHeight settings without exceeding the other value.
  • Fill: Elastic Transcoder scales thumbnails so they match the value that you specified in thumbnail MaxWidth or MaxHeight settings and matches or exceeds the other value. Elastic Transcoder centers the image in thumbnails and then crops in the dimension (if any) that exceeds the maximum value.
  • Stretch: Elastic Transcoder stretches thumbnails to match the values that you specified for thumbnail MaxWidth and MaxHeight settings. If the relative proportions of the input video and thumbnails are different, the thumbnails will be distorted.
  • Keep: Elastic Transcoder does not scale thumbnails. If either dimension of the input video exceeds the values that you specified for thumbnail MaxWidth and MaxHeight settings, Elastic Transcoder crops the thumbnails.
  • ShrinkToFit: Elastic Transcoder scales thumbnails down so that their dimensions match the values that you specified for at least one of thumbnail MaxWidth and MaxHeight without exceeding either value. If you specify this option, Elastic Transcoder does not scale thumbnails up.
  • ShrinkToFill: Elastic Transcoder scales thumbnails down so that their dimensions match the values that you specified for at least one of MaxWidth and MaxHeight without dropping below either value. If you specify this option, Elastic Transcoder does not scale thumbnails up.

", + "VideoParameters$SizingPolicy": "

Specify one of the following values to control scaling of the output video:

  • Fit: Elastic Transcoder scales the output video so it matches the value that you specified in either MaxWidth or MaxHeight without exceeding the other value.
  • Fill: Elastic Transcoder scales the output video so it matches the value that you specified in either MaxWidth or MaxHeight and matches or exceeds the other value. Elastic Transcoder centers the output video and then crops it in the dimension (if any) that exceeds the maximum value.
  • Stretch: Elastic Transcoder stretches the output video to match the values that you specified for MaxWidth and MaxHeight. If the relative proportions of the input video and the output video are different, the output video will be distorted.
  • Keep: Elastic Transcoder does not scale the output video. If either dimension of the input video exceeds the values that you specified for MaxWidth and MaxHeight, Elastic Transcoder crops the output video.
  • ShrinkToFit: Elastic Transcoder scales the output video down so that its dimensions match the values that you specified for at least one of MaxWidth and MaxHeight without exceeding either value. If you specify this option, Elastic Transcoder does not scale the video up.
  • ShrinkToFill: Elastic Transcoder scales the output video down so that its dimensions match the values that you specified for at least one of MaxWidth and MaxHeight without dropping below either value. If you specify this option, Elastic Transcoder does not scale the video up.

" + } + }, + "SnsTopic": { + "base": null, + "refs": { + "Notifications$Progressing": "

The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process the job.

", + "Notifications$Completed": "

The Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing the job.

", + "Notifications$Warning": "

The Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition.

", + "Notifications$Error": "

The Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition.

", + "SnsTopics$member": null + } + }, + "SnsTopics": { + "base": null, + "refs": { + "TestRoleRequest$Topics": "

The ARNs of one or more Amazon Simple Notification Service (Amazon SNS) topics that you want the action to send a test notification to.

" + } + }, + "StorageClass": { + "base": null, + "refs": { + "PipelineOutputConfig$StorageClass": "

The Amazon S3 storage class, Standard or ReducedRedundancy, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket.

" + } + }, + "String": { + "base": null, + "refs": { + "CreatePresetResponse$Warning": "

If the preset settings don't comply with the standards for the video codec but Elastic Transcoder created the preset, this message explains the reason the preset settings don't meet the standard. Elastic Transcoder created the preset because the settings might produce acceptable output.

", + "ExceptionMessages$member": null, + "Job$Arn": "

The Amazon Resource Name (ARN) for the job.

", + "JobOutput$Id": "

A sequential counter, starting with 1, that identifies an output among the outputs from the current job. In the Output syntax, this value is always 1.

", + "JobOutput$AppliedColorSpaceConversion": "

If Elastic Transcoder used a preset with a ColorSpaceConversionMode to transcode the output file, the AppliedColorSpaceConversion parameter shows the conversion used. If no ColorSpaceConversionMode was defined in the preset, this parameter will not be included in the job response.

", + "Pipeline$Arn": "

The Amazon Resource Name (ARN) for the pipeline.

", + "Preset$Arn": "

The Amazon Resource Name (ARN) for the preset.

", + "UserMetadata$key": null, + "UserMetadata$value": null, + "Warning$Code": "

The code of the cross-regional warning.

", + "Warning$Message": "

The message explaining what resources are in a different region from the pipeline.

Note: AWS KMS keys must be in the same region as the pipeline.

" + } + }, + "Success": { + "base": null, + "refs": { + "TestRoleResponse$Success": "

If the operation is successful, this value is true; otherwise, the value is false.

" + } + }, + "Target": { + "base": null, + "refs": { + "PresetWatermark$Target": "

A value that determines how Elastic Transcoder interprets values that you specified for HorizontalOffset, VerticalOffset, MaxWidth, and MaxHeight:

  • Content: HorizontalOffset and VerticalOffset values are calculated based on the borders of the video excluding black bars added by Elastic Transcoder, if any. In addition, MaxWidth and MaxHeight, if specified as a percentage, are calculated based on the borders of the video excluding black bars added by Elastic Transcoder, if any.
  • Frame: HorizontalOffset and VerticalOffset values are calculated based on the borders of the video including black bars added by Elastic Transcoder, if any.
  • In addition, MaxWidth and MaxHeight, if specified as a percentage, are calculated based on the borders of the video including black bars added by Elastic Transcoder, if any.

" + } + }, + "TestRoleRequest": { + "base": "

The TestRoleRequest structure.

", + "refs": { + } + }, + "TestRoleResponse": { + "base": "

The TestRoleResponse structure.

", + "refs": { + } + }, + "ThumbnailPattern": { + "base": null, + "refs": { + "CreateJobOutput$ThumbnailPattern": "

Whether you want Elastic Transcoder to create thumbnails for your videos and, if so, how you want Elastic Transcoder to name the files.

If you don't want Elastic Transcoder to create thumbnails, specify \"\".

If you do want Elastic Transcoder to create thumbnails, specify the information that you want to include in the file name for each thumbnail. You can specify the following values in any sequence:

  • {count} (Required): If you want to create thumbnails, you must include {count} in the ThumbnailPattern object. Wherever you specify {count}, Elastic Transcoder adds a five-digit sequence number (beginning with 00001) to thumbnail file names. The number indicates where a given thumbnail appears in the sequence of thumbnails for a transcoded file.

    If you specify a literal value and/or {resolution} but you omit {count}, Elastic Transcoder returns a validation error and does not create the job.
  • Literal values (Optional): You can specify literal values anywhere in the ThumbnailPattern object. For example, you can include them as a file name prefix or as a delimiter between {resolution} and {count}.

  • {resolution} (Optional): If you want Elastic Transcoder to include the resolution in the file name, include {resolution} in the ThumbnailPattern object.

When creating thumbnails, Elastic Transcoder automatically saves the files in the format (.jpg or .png) that appears in the preset that you specified in the PresetID value of CreateJobOutput. Elastic Transcoder also appends the applicable file name extension.

", + "JobOutput$ThumbnailPattern": "

Whether you want Elastic Transcoder to create thumbnails for your videos and, if so, how you want Elastic Transcoder to name the files.

If you don't want Elastic Transcoder to create thumbnails, specify \"\".

If you do want Elastic Transcoder to create thumbnails, specify the information that you want to include in the file name for each thumbnail. You can specify the following values in any sequence:

  • {count} (Required): If you want to create thumbnails, you must include {count} in the ThumbnailPattern object. Wherever you specify {count}, Elastic Transcoder adds a five-digit sequence number (beginning with 00001) to thumbnail file names. The number indicates where a given thumbnail appears in the sequence of thumbnails for a transcoded file.

    If you specify a literal value and/or {resolution} but you omit {count}, Elastic Transcoder returns a validation error and does not create the job.
  • Literal values (Optional): You can specify literal values anywhere in the ThumbnailPattern object. For example, you can include them as a file name prefix or as a delimiter between {resolution} and {count}.

  • {resolution} (Optional): If you want Elastic Transcoder to include the resolution in the file name, include {resolution} in the ThumbnailPattern object.

When creating thumbnails, Elastic Transcoder automatically saves the files in the format (.jpg or .png) that appears in the preset that you specified in the PresetID value of CreateJobOutput. Elastic Transcoder also appends the applicable file name extension.

" + } + }, + "ThumbnailResolution": { + "base": null, + "refs": { + "Thumbnails$Resolution": "

To better control resolution and aspect ratio of thumbnails, we recommend that you use the values MaxWidth, MaxHeight, SizingPolicy, and PaddingPolicy instead of Resolution and AspectRatio. The two groups of settings are mutually exclusive. Do not use them together.

The width and height of thumbnail files in pixels. Specify a value in the format width x height where both values are even integers. The values cannot exceed the width and height that you specified in the Video:Resolution object.

" + } + }, + "Thumbnails": { + "base": "

Thumbnails for videos.

", + "refs": { + "CreatePresetRequest$Thumbnails": "

A section of the request body that specifies the thumbnail parameters, if any.

", + "Preset$Thumbnails": "

A section of the response body that provides information about the thumbnail preset values, if any.

" + } + }, + "Time": { + "base": null, + "refs": { + "TimeSpan$StartTime": "

The place in the input file where you want a clip to start. The format can be either HH:mm:ss.SSS (maximum value: 23:59:59.999; SSS is thousandths of a second) or sssss.SSS (maximum value: 86399.999). If you don't specify a value, Elastic Transcoder starts at the beginning of the input file.

", + "TimeSpan$Duration": "

The duration of the clip. The format can be either HH:mm:ss.SSS (maximum value: 23:59:59.999; SSS is thousandths of a second) or sssss.SSS (maximum value: 86399.999). If you don't specify a value, Elastic Transcoder creates an output file from StartTime to the end of the file.

If you specify a value longer than the duration of the input file, Elastic Transcoder transcodes the file and returns a warning message.

" + } + }, + "TimeOffset": { + "base": null, + "refs": { + "CaptionSource$TimeOffset": "

For clip generation or captions that do not start at the same time as the associated video file, the TimeOffset tells Elastic Transcoder how much of the video to encode before including captions.

Specify the TimeOffset in the form [+-]SS.sss or [+-]HH:mm:SS.ss.

" + } + }, + "TimeSpan": { + "base": "

Settings that determine when a clip begins and how long it lasts.

", + "refs": { + "Clip$TimeSpan": "

Settings that determine when a clip begins and how long it lasts.

" + } + }, + "Timing": { + "base": "

Details about the timing of a job.

", + "refs": { + "Job$Timing": "

Details about the timing of a job.

" + } + }, + "UpdatePipelineNotificationsRequest": { + "base": "

The UpdatePipelineNotificationsRequest structure.

", + "refs": { + } + }, + "UpdatePipelineNotificationsResponse": { + "base": "

The UpdatePipelineNotificationsResponse structure.

", + "refs": { + } + }, + "UpdatePipelineRequest": { + "base": "

The UpdatePipelineRequest structure.

", + "refs": { + } + }, + "UpdatePipelineResponse": { + "base": "

When you update a pipeline, Elastic Transcoder returns the values that you specified in the request.

", + "refs": { + } + }, + "UpdatePipelineStatusRequest": { + "base": "

The UpdatePipelineStatusRequest structure.

", + "refs": { + } + }, + "UpdatePipelineStatusResponse": { + "base": "When you update status for a pipeline, Elastic Transcoder returns the values that you specified in the request.", + "refs": { + } + }, + "UserMetadata": { + "base": null, + "refs": { + "CreateJobRequest$UserMetadata": "

User-defined metadata that you want to associate with an Elastic Transcoder job. You specify metadata in key/value pairs, and you can add up to 10 key/value pairs per job. Elastic Transcoder does not guarantee that key/value pairs will be returned in the same order in which you specify them.

", + "Job$UserMetadata": "

User-defined metadata that you want to associate with an Elastic Transcoder job. You specify metadata in key/value pairs, and you can add up to 10 key/value pairs per job. Elastic Transcoder does not guarantee that key/value pairs will be returned in the same order in which you specify them.

Metadata keys and values must use characters from the following list:

  • 0-9

  • A-Z and a-z

  • Space

  • The following symbols: _.:/=+-%@

" + } + }, + "ValidationException": { + "base": "

One or more required parameter values were not provided in the request.

", + "refs": { + } + }, + "VerticalAlign": { + "base": null, + "refs": { + "PresetWatermark$VerticalAlign": "

The vertical position of the watermark unless you specify a non-zero value for VerticalOffset:

  • Top: The top edge of the watermark is aligned with the top border of the video.
  • Bottom: The bottom edge of the watermark is aligned with the bottom border of the video.
  • Center: The watermark is centered between the top and bottom borders.

" + } + }, + "VideoBitRate": { + "base": null, + "refs": { + "VideoParameters$BitRate": "

The bit rate of the video stream in the output file, in kilobits/second. Valid values depend on the values of Level and Profile. If you specify auto, Elastic Transcoder uses the detected bit rate of the input source. If you specify a value other than auto, we recommend that you specify a value less than or equal to the maximum H.264-compliant value listed for your level and profile:

Level - Maximum video bit rate in kilobits/second (baseline and main Profile) : maximum video bit rate in kilobits/second (high Profile)

  • 1 - 64 : 80
  • 1b - 128 : 160
  • 1.1 - 192 : 240
  • 1.2 - 384 : 480
  • 1.3 - 768 : 960
  • 2 - 2000 : 2500
  • 3 - 10000 : 12500
  • 3.1 - 14000 : 17500
  • 3.2 - 20000 : 25000
  • 4 - 20000 : 25000
  • 4.1 - 50000 : 62500
" + } + }, + "VideoCodec": { + "base": null, + "refs": { + "VideoParameters$Codec": "

The video codec for the output file. Valid values include gif, H.264, mpeg2, and vp8. You can only specify vp8 when the container type is webm, gif when the container type is gif, and mpeg2 when the container type is mpg.

" + } + }, + "VideoParameters": { + "base": "

The VideoParameters structure.

", + "refs": { + "CreatePresetRequest$Video": "

A section of the request body that specifies the video parameters.

", + "Preset$Video": "

A section of the response body that provides information about the video preset values.

" + } + }, + "Warning": { + "base": "

Elastic Transcoder returns a warning if the resources used by your pipeline are not in the same region as the pipeline.

Using resources in the same region, such as your Amazon S3 buckets, Amazon SNS notification topics, and AWS KMS key, reduces processing time and prevents cross-regional charges.

", + "refs": { + "Warnings$member": null + } + }, + "Warnings": { + "base": null, + "refs": { + "CreatePipelineResponse$Warnings": "

Elastic Transcoder returns a warning if the resources used by your pipeline are not in the same region as the pipeline.

Using resources in the same region, such as your Amazon S3 buckets, Amazon SNS notification topics, and AWS KMS key, reduces processing time and prevents cross-regional charges.

", + "ReadPipelineResponse$Warnings": "

Elastic Transcoder returns a warning if the resources used by your pipeline are not in the same region as the pipeline.

Using resources in the same region, such as your Amazon S3 buckets, Amazon SNS notification topics, and AWS KMS key, reduces processing time and prevents cross-regional charges.

", + "UpdatePipelineResponse$Warnings": "

Elastic Transcoder returns a warning if the resources used by your pipeline are not in the same region as the pipeline.

Using resources in the same region, such as your Amazon S3 buckets, Amazon SNS notification topics, and AWS KMS key, reduces processing time and prevents cross-regional charges.

" + } + }, + "WatermarkKey": { + "base": null, + "refs": { + "Artwork$InputKey": "

The name of the file to be used as album art. To determine which Amazon S3 bucket contains the specified file, Elastic Transcoder checks the pipeline specified by PipelineId; the InputBucket object in that pipeline identifies the bucket.

If the file name includes a prefix, for example, cooking/pie.jpg, include the prefix in the key. If the file isn't in the specified bucket, Elastic Transcoder returns an error.

", + "JobWatermark$InputKey": "

The name of the .png or .jpg file that you want to use for the watermark. To determine which Amazon S3 bucket contains the specified file, Elastic Transcoder checks the pipeline specified by Pipeline; the Input Bucket object in that pipeline identifies the bucket.

If the file name includes a prefix, for example, logos/128x64.png, include the prefix in the key. If the file isn't in the specified bucket, Elastic Transcoder returns an error.

" + } + }, + "WatermarkSizingPolicy": { + "base": null, + "refs": { + "PresetWatermark$SizingPolicy": "

A value that controls scaling of the watermark:

  • Fit: Elastic Transcoder scales the watermark so it matches the value that you specified in either MaxWidth or MaxHeight without exceeding the other value.
  • Stretch: Elastic Transcoder stretches the watermark to match the values that you specified for MaxWidth and MaxHeight. If the relative proportions of the watermark and the values of MaxWidth and MaxHeight are different, the watermark will be distorted.
  • ShrinkToFit: Elastic Transcoder scales the watermark down so that its dimensions match the values that you specified for at least one of MaxWidth and MaxHeight without exceeding either value. If you specify this option, Elastic Transcoder does not scale the watermark up.

" + } + }, + "ZeroTo255String": { + "base": null, + "refs": { + "Encryption$InitializationVector": "

The series of random bits created by a random bit generator, unique for every encryption operation, that you used to encrypt your input files or that you want Elastic Transcoder to use to encrypt your output files. The initialization vector must be base64-encoded, and it must be exactly 16 bytes long before being base64-encoded.

", + "HlsContentProtection$InitializationVector": "

If Elastic Transcoder is generating your key for you, you must leave this field blank.

The series of random bits created by a random bit generator, unique for every encryption operation, that you want Elastic Transcoder to use to encrypt your output files. The initialization vector must be base64-encoded, and it must be exactly 16 bytes before being base64-encoded.

", + "PlayReadyDrm$InitializationVector": "

The series of random bits created by a random bit generator, unique for every encryption operation, that you want Elastic Transcoder to use to encrypt your files. The initialization vector must be base64-encoded, and it must be exactly 8 bytes long before being base64-encoded. If no initialization vector is provided, Elastic Transcoder generates one for you.

" + } + }, + "ZeroTo512String": { + "base": null, + "refs": { + "HlsContentProtection$LicenseAcquisitionUrl": "

The location of the license key required to decrypt your HLS playlist. The URL must be an absolute path, and is referenced in the URI attribute of the EXT-X-KEY metadata tag in the playlist file.

" + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/elastictranscoder/2012-09-25/paginators-1.json b/lib/aws-sdk/Aws/data/elastictranscoder/2012-09-25/paginators-1.json new file mode 100644 index 0000000..5a145d3 --- /dev/null +++ b/lib/aws-sdk/Aws/data/elastictranscoder/2012-09-25/paginators-1.json @@ -0,0 +1,24 @@ +{ + "pagination": { + "ListJobsByPipeline": { + "input_token": "PageToken", + "output_token": "NextPageToken", + "result_key": "Jobs" + }, + "ListJobsByStatus": { + "input_token": "PageToken", + "output_token": "NextPageToken", + "result_key": "Jobs" + }, + "ListPipelines": { + "input_token": "PageToken", + "output_token": "NextPageToken", + "result_key": "Pipelines" + }, + "ListPresets": { + "input_token": "PageToken", + "output_token": "NextPageToken", + "result_key": "Presets" + } + } +} diff --git a/lib/aws-sdk/Aws/data/elastictranscoder/2012-09-25/waiters-2.json b/lib/aws-sdk/Aws/data/elastictranscoder/2012-09-25/waiters-2.json new file mode 100644 index 0000000..55c3628 --- /dev/null +++ b/lib/aws-sdk/Aws/data/elastictranscoder/2012-09-25/waiters-2.json @@ -0,0 +1,30 @@ +{ + "version": 2, + "waiters": { + "JobComplete": { + "delay": 30, + "operation": "ReadJob", + "maxAttempts": 120, + "acceptors": [ + { + "expected": "Complete", + "matcher": "path", + "state": "success", + "argument": "Job.Status" + }, + { + "expected": "Canceled", + "matcher": "path", + "state": "failure", + "argument": "Job.Status" + }, + { + "expected": "Error", + "matcher": "path", + "state": "failure", + "argument": "Job.Status" + } + ] + } + } +} diff --git a/lib/aws-sdk/Aws/data/email/2010-12-01/api-2.json b/lib/aws-sdk/Aws/data/email/2010-12-01/api-2.json new file mode 100644 index 0000000..b72bb82 --- /dev/null +++ b/lib/aws-sdk/Aws/data/email/2010-12-01/api-2.json @@ -0,0 +1,645 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2010-12-01", + "endpointPrefix":"email", + "serviceAbbreviation":"Amazon SES", + "serviceFullName":"Amazon Simple Email Service", + "signatureVersion":"v4", + "signingName":"ses", + "xmlNamespace":"http://ses.amazonaws.com/doc/2010-12-01/", + "protocol":"query" + }, + "operations":{ + "DeleteIdentity":{ + "name":"DeleteIdentity", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteIdentityRequest"}, + "output":{ + "shape":"DeleteIdentityResponse", + "resultWrapper":"DeleteIdentityResult" + } + }, + "DeleteVerifiedEmailAddress":{ + "name":"DeleteVerifiedEmailAddress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVerifiedEmailAddressRequest"} + }, + "GetIdentityDkimAttributes":{ + "name":"GetIdentityDkimAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetIdentityDkimAttributesRequest"}, + "output":{ + "shape":"GetIdentityDkimAttributesResponse", + "resultWrapper":"GetIdentityDkimAttributesResult" + } + }, + "GetIdentityNotificationAttributes":{ + "name":"GetIdentityNotificationAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetIdentityNotificationAttributesRequest"}, + "output":{ + "shape":"GetIdentityNotificationAttributesResponse", + "resultWrapper":"GetIdentityNotificationAttributesResult" + } + }, + "GetIdentityVerificationAttributes":{ + "name":"GetIdentityVerificationAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetIdentityVerificationAttributesRequest"}, + "output":{ + "shape":"GetIdentityVerificationAttributesResponse", + "resultWrapper":"GetIdentityVerificationAttributesResult" + } + }, + "GetSendQuota":{ + "name":"GetSendQuota", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "output":{ + "shape":"GetSendQuotaResponse", + "resultWrapper":"GetSendQuotaResult" + } + }, + "GetSendStatistics":{ + "name":"GetSendStatistics", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "output":{ + "shape":"GetSendStatisticsResponse", + "resultWrapper":"GetSendStatisticsResult" + } + }, + "ListIdentities":{ + "name":"ListIdentities", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListIdentitiesRequest"}, + "output":{ + "shape":"ListIdentitiesResponse", + "resultWrapper":"ListIdentitiesResult" + } + }, + "ListVerifiedEmailAddresses":{ + "name":"ListVerifiedEmailAddresses", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "output":{ + "shape":"ListVerifiedEmailAddressesResponse", + "resultWrapper":"ListVerifiedEmailAddressesResult" + } + }, + "SendEmail":{ + "name":"SendEmail", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SendEmailRequest"}, + "output":{ + "shape":"SendEmailResponse", + "resultWrapper":"SendEmailResult" + }, + "errors":[ + { + "shape":"MessageRejected", + "error":{ + "code":"MessageRejected", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "SendRawEmail":{ + "name":"SendRawEmail", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SendRawEmailRequest"}, + "output":{ + "shape":"SendRawEmailResponse", + "resultWrapper":"SendRawEmailResult" + }, + "errors":[ + { + "shape":"MessageRejected", + "error":{ + "code":"MessageRejected", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "SetIdentityDkimEnabled":{ + "name":"SetIdentityDkimEnabled", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetIdentityDkimEnabledRequest"}, + "output":{ + "shape":"SetIdentityDkimEnabledResponse", + "resultWrapper":"SetIdentityDkimEnabledResult" + } + }, + "SetIdentityFeedbackForwardingEnabled":{ + "name":"SetIdentityFeedbackForwardingEnabled", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetIdentityFeedbackForwardingEnabledRequest"}, + "output":{ + "shape":"SetIdentityFeedbackForwardingEnabledResponse", + "resultWrapper":"SetIdentityFeedbackForwardingEnabledResult" + } + }, + "SetIdentityNotificationTopic":{ + "name":"SetIdentityNotificationTopic", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetIdentityNotificationTopicRequest"}, + "output":{ + "shape":"SetIdentityNotificationTopicResponse", + "resultWrapper":"SetIdentityNotificationTopicResult" + } + }, + "VerifyDomainDkim":{ + "name":"VerifyDomainDkim", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"VerifyDomainDkimRequest"}, + "output":{ + "shape":"VerifyDomainDkimResponse", + "resultWrapper":"VerifyDomainDkimResult" + } + }, + "VerifyDomainIdentity":{ + "name":"VerifyDomainIdentity", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"VerifyDomainIdentityRequest"}, + "output":{ + "shape":"VerifyDomainIdentityResponse", + "resultWrapper":"VerifyDomainIdentityResult" + } + }, + "VerifyEmailAddress":{ + "name":"VerifyEmailAddress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"VerifyEmailAddressRequest"} + }, + "VerifyEmailIdentity":{ + "name":"VerifyEmailIdentity", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"VerifyEmailIdentityRequest"}, + "output":{ + "shape":"VerifyEmailIdentityResponse", + "resultWrapper":"VerifyEmailIdentityResult" + } + } + }, + "shapes":{ + "Address":{"type":"string"}, + "AddressList":{ + "type":"list", + "member":{"shape":"Address"} + }, + "Body":{ + "type":"structure", + "members":{ + "Text":{"shape":"Content"}, + "Html":{"shape":"Content"} + } + }, + "Charset":{"type":"string"}, + "Content":{ + "type":"structure", + "required":["Data"], + "members":{ + "Data":{"shape":"MessageData"}, + "Charset":{"shape":"Charset"} + } + }, + "Counter":{"type":"long"}, + "DeleteIdentityRequest":{ + "type":"structure", + "required":["Identity"], + "members":{ + "Identity":{"shape":"Identity"} + } + }, + "DeleteIdentityResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteVerifiedEmailAddressRequest":{ + "type":"structure", + "required":["EmailAddress"], + "members":{ + "EmailAddress":{"shape":"Address"} + } + }, + "Destination":{ + "type":"structure", + "members":{ + "ToAddresses":{"shape":"AddressList"}, + "CcAddresses":{"shape":"AddressList"}, + "BccAddresses":{"shape":"AddressList"} + } + }, + "DkimAttributes":{ + "type":"map", + "key":{"shape":"Identity"}, + "value":{"shape":"IdentityDkimAttributes"} + }, + "Domain":{"type":"string"}, + "Enabled":{"type":"boolean"}, + "GetIdentityDkimAttributesRequest":{ + "type":"structure", + "required":["Identities"], + "members":{ + "Identities":{"shape":"IdentityList"} + } + }, + "GetIdentityDkimAttributesResponse":{ + "type":"structure", + "required":["DkimAttributes"], + "members":{ + "DkimAttributes":{"shape":"DkimAttributes"} + } + }, + "GetIdentityNotificationAttributesRequest":{ + "type":"structure", + "required":["Identities"], + "members":{ + "Identities":{"shape":"IdentityList"} + } + }, + "GetIdentityNotificationAttributesResponse":{ + "type":"structure", + "required":["NotificationAttributes"], + "members":{ + "NotificationAttributes":{"shape":"NotificationAttributes"} + } + }, + "GetIdentityVerificationAttributesRequest":{ + "type":"structure", + "required":["Identities"], + "members":{ + "Identities":{"shape":"IdentityList"} + } + }, + "GetIdentityVerificationAttributesResponse":{ + "type":"structure", + "required":["VerificationAttributes"], + "members":{ + "VerificationAttributes":{"shape":"VerificationAttributes"} + } + }, + "GetSendQuotaResponse":{ + "type":"structure", + "members":{ + "Max24HourSend":{"shape":"Max24HourSend"}, + "MaxSendRate":{"shape":"MaxSendRate"}, + "SentLast24Hours":{"shape":"SentLast24Hours"} + } + }, + "GetSendStatisticsResponse":{ + "type":"structure", + "members":{ + "SendDataPoints":{"shape":"SendDataPointList"} + } + }, + "Identity":{"type":"string"}, + "IdentityDkimAttributes":{ + "type":"structure", + "required":[ + "DkimEnabled", + "DkimVerificationStatus" + ], + "members":{ + "DkimEnabled":{"shape":"Enabled"}, + "DkimVerificationStatus":{"shape":"VerificationStatus"}, + "DkimTokens":{"shape":"VerificationTokenList"} + } + }, + "IdentityList":{ + "type":"list", + "member":{"shape":"Identity"} + }, + "IdentityNotificationAttributes":{ + "type":"structure", + "required":[ + "BounceTopic", + "ComplaintTopic", + "DeliveryTopic", + "ForwardingEnabled" + ], + "members":{ + "BounceTopic":{"shape":"NotificationTopic"}, + "ComplaintTopic":{"shape":"NotificationTopic"}, + "DeliveryTopic":{"shape":"NotificationTopic"}, + "ForwardingEnabled":{"shape":"Enabled"} + } + }, + "IdentityType":{ + "type":"string", + "enum":[ + "EmailAddress", + "Domain" + ] + }, + "IdentityVerificationAttributes":{ + "type":"structure", + "required":["VerificationStatus"], + "members":{ + "VerificationStatus":{"shape":"VerificationStatus"}, + "VerificationToken":{"shape":"VerificationToken"} + } + }, + "ListIdentitiesRequest":{ + "type":"structure", + "members":{ + "IdentityType":{"shape":"IdentityType"}, + "NextToken":{"shape":"NextToken"}, + "MaxItems":{"shape":"MaxItems"} + } + }, + "ListIdentitiesResponse":{ + "type":"structure", + "required":["Identities"], + "members":{ + "Identities":{"shape":"IdentityList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "ListVerifiedEmailAddressesResponse":{ + "type":"structure", + "members":{ + "VerifiedEmailAddresses":{"shape":"AddressList"} + } + }, + "Max24HourSend":{"type":"double"}, + "MaxItems":{"type":"integer"}, + "MaxSendRate":{"type":"double"}, + "Message":{ + "type":"structure", + "required":[ + "Subject", + "Body" + ], + "members":{ + "Subject":{"shape":"Content"}, + "Body":{"shape":"Body"} + } + }, + "MessageData":{"type":"string"}, + "MessageId":{"type":"string"}, + "MessageRejected":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"MessageRejected", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "NextToken":{"type":"string"}, + "NotificationAttributes":{ + "type":"map", + "key":{"shape":"Identity"}, + "value":{"shape":"IdentityNotificationAttributes"} + }, + "NotificationTopic":{"type":"string"}, + "NotificationType":{ + "type":"string", + "enum":[ + "Bounce", + "Complaint", + "Delivery" + ] + }, + "RawMessage":{ + "type":"structure", + "required":["Data"], + "members":{ + "Data":{"shape":"RawMessageData"} + } + }, + "RawMessageData":{"type":"blob"}, + "SendDataPoint":{ + "type":"structure", + "members":{ + "Timestamp":{"shape":"Timestamp"}, + "DeliveryAttempts":{"shape":"Counter"}, + "Bounces":{"shape":"Counter"}, + "Complaints":{"shape":"Counter"}, + "Rejects":{"shape":"Counter"} + } + }, + "SendDataPointList":{ + "type":"list", + "member":{"shape":"SendDataPoint"} + }, + "SendEmailRequest":{ + "type":"structure", + "required":[ + "Source", + "Destination", + "Message" + ], + "members":{ + "Source":{"shape":"Address"}, + "Destination":{"shape":"Destination"}, + "Message":{"shape":"Message"}, + "ReplyToAddresses":{"shape":"AddressList"}, + "ReturnPath":{"shape":"Address"} + } + }, + "SendEmailResponse":{ + "type":"structure", + "required":["MessageId"], + "members":{ + "MessageId":{"shape":"MessageId"} + } + }, + "SendRawEmailRequest":{ + "type":"structure", + "required":["RawMessage"], + "members":{ + "Source":{"shape":"Address"}, + "Destinations":{"shape":"AddressList"}, + "RawMessage":{"shape":"RawMessage"} + } + }, + "SendRawEmailResponse":{ + "type":"structure", + "required":["MessageId"], + "members":{ + "MessageId":{"shape":"MessageId"} + } + }, + "SentLast24Hours":{"type":"double"}, + "SetIdentityDkimEnabledRequest":{ + "type":"structure", + "required":[ + "Identity", + "DkimEnabled" + ], + "members":{ + "Identity":{"shape":"Identity"}, + "DkimEnabled":{"shape":"Enabled"} + } + }, + "SetIdentityDkimEnabledResponse":{ + "type":"structure", + "members":{ + } + }, + "SetIdentityFeedbackForwardingEnabledRequest":{ + "type":"structure", + "required":[ + "Identity", + "ForwardingEnabled" + ], + "members":{ + "Identity":{"shape":"Identity"}, + "ForwardingEnabled":{"shape":"Enabled"} + } + }, + "SetIdentityFeedbackForwardingEnabledResponse":{ + "type":"structure", + "members":{ + } + }, + "SetIdentityNotificationTopicRequest":{ + "type":"structure", + "required":[ + "Identity", + "NotificationType" + ], + "members":{ + "Identity":{"shape":"Identity"}, + "NotificationType":{"shape":"NotificationType"}, + "SnsTopic":{"shape":"NotificationTopic"} + } + }, + "SetIdentityNotificationTopicResponse":{ + "type":"structure", + "members":{ + } + }, + "Timestamp":{"type":"timestamp"}, + "VerificationAttributes":{ + "type":"map", + "key":{"shape":"Identity"}, + "value":{"shape":"IdentityVerificationAttributes"} + }, + "VerificationStatus":{ + "type":"string", + "enum":[ + "Pending", + "Success", + "Failed", + "TemporaryFailure", + "NotStarted" + ] + }, + "VerificationToken":{"type":"string"}, + "VerificationTokenList":{ + "type":"list", + "member":{"shape":"VerificationToken"} + }, + "VerifyDomainDkimRequest":{ + "type":"structure", + "required":["Domain"], + "members":{ + "Domain":{"shape":"Domain"} + } + }, + "VerifyDomainDkimResponse":{ + "type":"structure", + "required":["DkimTokens"], + "members":{ + "DkimTokens":{"shape":"VerificationTokenList"} + } + }, + "VerifyDomainIdentityRequest":{ + "type":"structure", + "required":["Domain"], + "members":{ + "Domain":{"shape":"Domain"} + } + }, + "VerifyDomainIdentityResponse":{ + "type":"structure", + "required":["VerificationToken"], + "members":{ + "VerificationToken":{"shape":"VerificationToken"} + } + }, + "VerifyEmailAddressRequest":{ + "type":"structure", + "required":["EmailAddress"], + "members":{ + "EmailAddress":{"shape":"Address"} + } + }, + "VerifyEmailIdentityRequest":{ + "type":"structure", + "required":["EmailAddress"], + "members":{ + "EmailAddress":{"shape":"Address"} + } + }, + "VerifyEmailIdentityResponse":{ + "type":"structure", + "members":{ + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/email/2010-12-01/docs-2.json b/lib/aws-sdk/Aws/data/email/2010-12-01/docs-2.json new file mode 100644 index 0000000..ad4df4f --- /dev/null +++ b/lib/aws-sdk/Aws/data/email/2010-12-01/docs-2.json @@ -0,0 +1,441 @@ +{ + "version": "2.0", + "operations": { + "DeleteIdentity": "

Deletes the specified identity (email address or domain) from the list of verified identities.

This action is throttled at one request per second.

", + "DeleteVerifiedEmailAddress": "

Deletes the specified email address from the list of verified addresses.

The DeleteVerifiedEmailAddress action is deprecated as of the May 15, 2012 release of Domain Verification. The DeleteIdentity action is now preferred.

This action is throttled at one request per second.

", + "GetIdentityDkimAttributes": "

Returns the current status of Easy DKIM signing for an entity. For domain name identities, this action also returns the DKIM tokens that are required for Easy DKIM signing, and whether Amazon SES has successfully verified that these tokens have been published.

This action takes a list of identities as input and returns the following information for each:

  • Whether Easy DKIM signing is enabled or disabled.
  • A set of DKIM tokens that represent the identity. If the identity is an email address, the tokens represent the domain of that address.
  • Whether Amazon SES has successfully verified the DKIM tokens published in the domain's DNS. This information is only returned for domain name identities, not for email addresses.

This action is throttled at one request per second and can only get DKIM attributes for up to 100 identities at a time.

For more information about creating DNS records using DKIM tokens, go to the Amazon SES Developer Guide.

", + "GetIdentityNotificationAttributes": "

Given a list of verified identities (email addresses and/or domains), returns a structure describing identity notification attributes.

This action is throttled at one request per second and can only get notification attributes for up to 100 identities at a time.

For more information about using notifications with Amazon SES, see the Amazon SES Developer Guide.

", + "GetIdentityVerificationAttributes": "

Given a list of identities (email addresses and/or domains), returns the verification status and (for domain identities) the verification token for each identity.

This action is throttled at one request per second and can only get verification attributes for up to 100 identities at a time.

", + "GetSendQuota": "

Returns the user's current sending limits.

This action is throttled at one request per second.

", + "GetSendStatistics": "

Returns the user's sending statistics. The result is a list of data points, representing the last two weeks of sending activity.

Each data point in the list contains statistics for a 15-minute interval.

This action is throttled at one request per second.

", + "ListIdentities": "

Returns a list containing all of the identities (email addresses and domains) for a specific AWS Account, regardless of verification status.

This action is throttled at one request per second.

", + "ListVerifiedEmailAddresses": "

Returns a list containing all of the email addresses that have been verified.

The ListVerifiedEmailAddresses action is deprecated as of the May 15, 2012 release of Domain Verification. The ListIdentities action is now preferred.

This action is throttled at one request per second.

", + "SendEmail": "

Composes an email message based on input data, and then immediately queues the message for sending.

You can only send email from verified email addresses and domains. If your account is still in the Amazon SES sandbox, you must also verify every recipient email address except for the recipients provided by the Amazon SES mailbox simulator. For more information, go to the Amazon SES Developer Guide.

The total size of the message cannot exceed 10 MB.

Amazon SES has a limit on the total number of recipients per message: The combined number of To:, CC: and BCC: email addresses cannot exceed 50. If you need to send an email message to a larger audience, you can divide your recipient list into groups of 50 or fewer, and then call Amazon SES repeatedly to send the message to each group.

For every message that you send, the total number of recipients (To:, CC: and BCC:) is counted against your sending quota - the maximum number of emails you can send in a 24-hour period. For information about your sending quota, go to the Amazon SES Developer Guide.

", + "SendRawEmail": "

Sends an email message, with header and content specified by the client. The SendRawEmail action is useful for sending multipart MIME emails. The raw text of the message must comply with Internet email standards; otherwise, the message cannot be sent.

You can only send email from verified email addresses and domains. If your account is still in the Amazon SES sandbox, you must also verify every recipient email address except for the recipients provided by the Amazon SES mailbox simulator. For more information, go to the Amazon SES Developer Guide.

The total size of the message cannot exceed 10 MB. This includes any attachments that are part of the message.

Amazon SES has a limit on the total number of recipients per message: The combined number of To:, CC: and BCC: email addresses cannot exceed 50. If you need to send an email message to a larger audience, you can divide your recipient list into groups of 50 or fewer, and then call Amazon SES repeatedly to send the message to each group.

The To:, CC:, and BCC: headers in the raw message can contain a group list. Note that each recipient in a group list counts towards the 50-recipient limit.

For every message that you send, the total number of recipients (To:, CC: and BCC:) is counted against your sending quota - the maximum number of emails you can send in a 24-hour period. For information about your sending quota, go to the Amazon SES Developer Guide.

", + "SetIdentityDkimEnabled": "

Enables or disables Easy DKIM signing of email sent from an identity:

  • If Easy DKIM signing is enabled for a domain name identity (e.g., example.com), then Amazon SES will DKIM-sign all email sent by addresses under that domain name (e.g., user@example.com).
  • If Easy DKIM signing is enabled for an email address, then Amazon SES will DKIM-sign all email sent by that email address.

For email addresses (e.g., user@example.com), you can only enable Easy DKIM signing if the corresponding domain (e.g., example.com) has been set up for Easy DKIM using the AWS Console or the VerifyDomainDkim action.

This action is throttled at one request per second.

For more information about Easy DKIM signing, go to the Amazon SES Developer Guide.

", + "SetIdentityFeedbackForwardingEnabled": "

Given an identity (email address or domain), enables or disables whether Amazon SES forwards bounce and complaint notifications as email. Feedback forwarding can only be disabled when Amazon Simple Notification Service (Amazon SNS) topics are specified for both bounces and complaints.

Feedback forwarding does not apply to delivery notifications. Delivery notifications are only available through Amazon SNS.

This action is throttled at one request per second.

For more information about using notifications with Amazon SES, see the Amazon SES Developer Guide.

", + "SetIdentityNotificationTopic": "

Given an identity (email address or domain), sets the Amazon Simple Notification Service (Amazon SNS) topic to which Amazon SES will publish bounce, complaint, and/or delivery notifications for emails sent with that identity as the Source.

Unless feedback forwarding is enabled, you must specify Amazon SNS topics for bounce and complaint notifications. For more information, see SetIdentityFeedbackForwardingEnabled.

This action is throttled at one request per second.

For more information about feedback notification, see the Amazon SES Developer Guide.

", + "VerifyDomainDkim": "

Returns a set of DKIM tokens for a domain. DKIM tokens are character strings that represent your domain's identity. Using these tokens, you will need to create DNS CNAME records that point to DKIM public keys hosted by Amazon SES. Amazon Web Services will eventually detect that you have updated your DNS records; this detection process may take up to 72 hours. Upon successful detection, Amazon SES will be able to DKIM-sign email originating from that domain.

This action is throttled at one request per second.

To enable or disable Easy DKIM signing for a domain, use the SetIdentityDkimEnabled action.

For more information about creating DNS records using DKIM tokens, go to the Amazon SES Developer Guide.

", + "VerifyDomainIdentity": "

Verifies a domain.

This action is throttled at one request per second.

", + "VerifyEmailAddress": "

Verifies an email address. This action causes a confirmation email message to be sent to the specified address.

The VerifyEmailAddress action is deprecated as of the May 15, 2012 release of Domain Verification. The VerifyEmailIdentity action is now preferred.

This action is throttled at one request per second.

", + "VerifyEmailIdentity": "

Verifies an email address. This action causes a confirmation email message to be sent to the specified address.

This action is throttled at one request per second.

" + }, + "service": "Amazon Simple Email Service

This is the API Reference for Amazon Simple Email Service (Amazon SES). This documentation is intended to be used in conjunction with the Amazon SES Developer Guide.

For a list of Amazon SES endpoints to use in service requests, see Regions and Amazon SES in the Amazon SES Developer Guide. ", + "shapes": { + "Address": { + "base": null, + "refs": { + "AddressList$member": null, + "DeleteVerifiedEmailAddressRequest$EmailAddress": "

An email address to be removed from the list of verified addresses.

", + "SendEmailRequest$Source": "

The identity's email address.

By default, the string must be 7-bit ASCII. If the text must contain any other characters, then you must use MIME encoded-word syntax (RFC 2047) instead of a literal string. MIME encoded-word syntax uses the following form: =?charset?encoding?encoded-text?=. For more information, see RFC 2047.

", + "SendEmailRequest$ReturnPath": "

The email address to which bounces and complaints are to be forwarded when feedback forwarding is enabled. If the message cannot be delivered to the recipient, then an error message will be returned from the recipient's ISP; this message will then be forwarded to the email address specified by the ReturnPath parameter. The ReturnPath parameter is never overwritten. This email address must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES.

", + "SendRawEmailRequest$Source": "

The identity's email address. If you do not provide a value for this parameter, you must specify a \"From\" address in the raw text of the message. (You can also specify both.)

By default, the string must be 7-bit ASCII. If the text must contain any other characters, then you must use MIME encoded-word syntax (RFC 2047) instead of a literal string. MIME encoded-word syntax uses the following form: =?charset?encoding?encoded-text?=. For more information, see RFC 2047.

If you specify the Source parameter and have feedback forwarding enabled, then bounces and complaints will be sent to this email address. This takes precedence over any Return-Path header that you might include in the raw text of the message. ", + "VerifyEmailAddressRequest$EmailAddress": "

The email address to be verified.

", + "VerifyEmailIdentityRequest$EmailAddress": "

The email address to be verified.

" + } + }, + "AddressList": { + "base": null, + "refs": { + "Destination$ToAddresses": "

The To: field(s) of the message.

", + "Destination$CcAddresses": "

The CC: field(s) of the message.

", + "Destination$BccAddresses": "

The BCC: field(s) of the message.

", + "ListVerifiedEmailAddressesResponse$VerifiedEmailAddresses": "

A list of email addresses that have been verified.

", + "SendEmailRequest$ReplyToAddresses": "

The reply-to email address(es) for the message. If the recipient replies to the message, each reply-to address will receive the reply.

", + "SendRawEmailRequest$Destinations": "

A list of destinations for the message, consisting of To:, CC:, and BCC: addresses.

" + } + }, + "Body": { + "base": "

Represents the body of the message. You can specify text, HTML, or both. If you use both, then the message should display correctly in the widest variety of email clients.

", + "refs": { + "Message$Body": "

The message body.

" + } + }, + "Charset": { + "base": null, + "refs": { + "Content$Charset": "

The character set of the content.

" + } + }, + "Content": { + "base": "

Represents textual data, plus an optional character set specification.

By default, the text must be 7-bit ASCII, due to the constraints of the SMTP protocol. If the text must contain any other characters, then you must also specify a character set. Examples include UTF-8, ISO-8859-1, and Shift_JIS.

", + "refs": { + "Body$Text": "

The content of the message, in text format. Use this for text-based email clients, or clients on high-latency networks (such as mobile devices).

", + "Body$Html": "

The content of the message, in HTML format. Use this for email clients that can process HTML. You can include clickable links, formatted text, and much more in an HTML message.

", + "Message$Subject": "

The subject of the message: A short summary of the content, which will appear in the recipient's inbox.

" + } + }, + "Counter": { + "base": null, + "refs": { + "SendDataPoint$DeliveryAttempts": "

Number of emails that have been enqueued for sending.

", + "SendDataPoint$Bounces": "

Number of emails that have bounced.

", + "SendDataPoint$Complaints": "

Number of unwanted emails that were rejected by recipients.

", + "SendDataPoint$Rejects": "

Number of emails rejected by Amazon SES.

" + } + }, + "DeleteIdentityRequest": { + "base": "

Represents a request instructing the service to delete an identity from the list of identities for the AWS Account.

", + "refs": { + } + }, + "DeleteIdentityResponse": { + "base": "

An empty element. Receiving this element indicates that the request completed successfully.

", + "refs": { + } + }, + "DeleteVerifiedEmailAddressRequest": { + "base": "

Represents a request instructing the service to delete an address from the list of verified email addresses.

", + "refs": { + } + }, + "Destination": { + "base": "

Represents the destination of the message, consisting of To:, CC:, and BCC: fields.

By default, the string must be 7-bit ASCII. If the text must contain any other characters, then you must use MIME encoded-word syntax (RFC 2047) instead of a literal string. MIME encoded-word syntax uses the following form: =?charset?encoding?encoded-text?=. For more information, see RFC 2047.

", + "refs": { + "SendEmailRequest$Destination": "

The destination for this email, composed of To:, CC:, and BCC: fields.

" + } + }, + "DkimAttributes": { + "base": null, + "refs": { + "GetIdentityDkimAttributesResponse$DkimAttributes": "

The DKIM attributes for an email address or a domain.

" + } + }, + "Domain": { + "base": null, + "refs": { + "VerifyDomainDkimRequest$Domain": "

The name of the domain to be verified for Easy DKIM signing.

", + "VerifyDomainIdentityRequest$Domain": "

The domain to be verified.

" + } + }, + "Enabled": { + "base": null, + "refs": { + "IdentityDkimAttributes$DkimEnabled": "

True if DKIM signing is enabled for email sent from the identity; false otherwise.

", + "IdentityNotificationAttributes$ForwardingEnabled": "

Describes whether Amazon SES will forward bounce and complaint notifications as email. true indicates that Amazon SES will forward bounce and complaint notifications as email, while false indicates that bounce and complaint notifications will be published only to the specified bounce and complaint Amazon SNS topics.

", + "SetIdentityDkimEnabledRequest$DkimEnabled": "

Sets whether DKIM signing is enabled for an identity. Set to true to enable DKIM signing for this identity; false to disable it.

", + "SetIdentityFeedbackForwardingEnabledRequest$ForwardingEnabled": "

Sets whether Amazon SES will forward bounce and complaint notifications as email. true specifies that Amazon SES will forward bounce and complaint notifications as email, in addition to any Amazon SNS topic publishing otherwise specified. false specifies that Amazon SES will publish bounce and complaint notifications only through Amazon SNS. This value can only be set to false when Amazon SNS topics are set for both Bounce and Complaint notification types.

" + } + }, + "GetIdentityDkimAttributesRequest": { + "base": "

Given a list of verified identities, describes their DKIM attributes. The DKIM attributes of an email address identity includes whether DKIM signing is individually enabled or disabled for that address. The DKIM attributes of a domain name identity includes whether DKIM signing is enabled, as well as the DNS records (tokens) that must remain published in the domain name's DNS.

", + "refs": { + } + }, + "GetIdentityDkimAttributesResponse": { + "base": "

Represents a list of all the DKIM attributes for the specified identity.

", + "refs": { + } + }, + "GetIdentityNotificationAttributesRequest": { + "base": null, + "refs": { + } + }, + "GetIdentityNotificationAttributesResponse": { + "base": "

Describes whether an identity has Amazon Simple Notification Service (Amazon SNS) topics set for bounce, complaint, and/or delivery notifications, and specifies whether feedback forwarding is enabled for bounce and complaint notifications.

", + "refs": { + } + }, + "GetIdentityVerificationAttributesRequest": { + "base": "

Represents a request instructing the service to provide the verification attributes for a list of identities.

", + "refs": { + } + }, + "GetIdentityVerificationAttributesResponse": { + "base": "

Represents the verification attributes for a list of identities.

", + "refs": { + } + }, + "GetSendQuotaResponse": { + "base": "

Represents the user's current activity limits returned from a successful GetSendQuota request.

", + "refs": { + } + }, + "GetSendStatisticsResponse": { + "base": "

Represents a list of SendDataPoint items returned from a successful GetSendStatistics request. This list contains aggregated data from the previous two weeks of sending activity.

", + "refs": { + } + }, + "Identity": { + "base": null, + "refs": { + "DeleteIdentityRequest$Identity": "

The identity to be removed from the list of identities for the AWS Account.

", + "DkimAttributes$key": null, + "IdentityList$member": null, + "NotificationAttributes$key": null, + "SetIdentityDkimEnabledRequest$Identity": "

The identity for which DKIM signing should be enabled or disabled.

", + "SetIdentityFeedbackForwardingEnabledRequest$Identity": "

The identity for which to set bounce and complaint notification forwarding. Examples: user@example.com, example.com.

", + "SetIdentityNotificationTopicRequest$Identity": "

The identity for which the Amazon SNS topic will be set. Examples: user@example.com, example.com.

", + "VerificationAttributes$key": null + } + }, + "IdentityDkimAttributes": { + "base": "

Represents the DKIM attributes of a verified email address or a domain.

", + "refs": { + "DkimAttributes$value": null + } + }, + "IdentityList": { + "base": null, + "refs": { + "GetIdentityDkimAttributesRequest$Identities": "

A list of one or more verified identities - email addresses, domains, or both.

", + "GetIdentityNotificationAttributesRequest$Identities": "

A list of one or more identities.

", + "GetIdentityVerificationAttributesRequest$Identities": "

A list of identities.

", + "ListIdentitiesResponse$Identities": "

A list of identities.

" + } + }, + "IdentityNotificationAttributes": { + "base": "

Represents the notification attributes of an identity, including whether an identity has Amazon Simple Notification Service (Amazon SNS) topics set for bounce, complaint, and/or delivery notifications, and whether feedback forwarding is enabled for bounce and complaint notifications.

", + "refs": { + "NotificationAttributes$value": null + } + }, + "IdentityType": { + "base": null, + "refs": { + "ListIdentitiesRequest$IdentityType": "

The type of the identities to list. Possible values are \"EmailAddress\" and \"Domain\". If this parameter is omitted, then all identities will be listed.

" + } + }, + "IdentityVerificationAttributes": { + "base": "

Represents the verification attributes of a single identity.

", + "refs": { + "VerificationAttributes$value": null + } + }, + "ListIdentitiesRequest": { + "base": "

Represents a request instructing the service to list all identities for the AWS Account.

", + "refs": { + } + }, + "ListIdentitiesResponse": { + "base": "

Represents a list of all verified identities for the AWS Account.

", + "refs": { + } + }, + "ListVerifiedEmailAddressesResponse": { + "base": "

Represents a list of all the email addresses verified for the current user.

", + "refs": { + } + }, + "Max24HourSend": { + "base": null, + "refs": { + "GetSendQuotaResponse$Max24HourSend": "

The maximum number of emails the user is allowed to send in a 24-hour interval. A value of -1 signifies an unlimited quota.

" + } + }, + "MaxItems": { + "base": null, + "refs": { + "ListIdentitiesRequest$MaxItems": "

The maximum number of identities per page. Possible values are 1-1000 inclusive.

" + } + }, + "MaxSendRate": { + "base": null, + "refs": { + "GetSendQuotaResponse$MaxSendRate": "

The maximum number of emails that Amazon SES can accept from the user's account per second.

The rate at which Amazon SES accepts the user's messages might be less than the maximum send rate." + } + }, + "Message": { + "base": "

Represents the message to be sent, composed of a subject and a body.

", + "refs": { + "SendEmailRequest$Message": "

The message to be sent.

" + } + }, + "MessageData": { + "base": null, + "refs": { + "Content$Data": "

The textual data of the content.

" + } + }, + "MessageId": { + "base": null, + "refs": { + "SendEmailResponse$MessageId": "

The unique message identifier returned from the SendEmail action.

", + "SendRawEmailResponse$MessageId": "

The unique message identifier returned from the SendRawEmail action.

" + } + }, + "MessageRejected": { + "base": "Indicates that the action failed, and the message could not be sent. Check the error stack for more information about what caused the error.", + "refs": { + } + }, + "NextToken": { + "base": null, + "refs": { + "ListIdentitiesRequest$NextToken": "

The token to use for pagination.

", + "ListIdentitiesResponse$NextToken": "

The token used for pagination.

" + } + }, + "NotificationAttributes": { + "base": null, + "refs": { + "GetIdentityNotificationAttributesResponse$NotificationAttributes": "

A map of Identity to IdentityNotificationAttributes.

" + } + }, + "NotificationTopic": { + "base": null, + "refs": { + "IdentityNotificationAttributes$BounceTopic": "

The Amazon Resource Name (ARN) of the Amazon SNS topic where Amazon SES will publish bounce notifications.

", + "IdentityNotificationAttributes$ComplaintTopic": "

The Amazon Resource Name (ARN) of the Amazon SNS topic where Amazon SES will publish complaint notifications.

", + "IdentityNotificationAttributes$DeliveryTopic": "

The Amazon Resource Name (ARN) of the Amazon SNS topic where Amazon SES will publish delivery notifications.

", + "SetIdentityNotificationTopicRequest$SnsTopic": "

The Amazon Resource Name (ARN) of the Amazon SNS topic. If the parameter is omitted from the request or a null value is passed, SnsTopic is cleared and publishing is disabled.

" + } + }, + "NotificationType": { + "base": null, + "refs": { + "SetIdentityNotificationTopicRequest$NotificationType": "

The type of notifications that will be published to the specified Amazon SNS topic.

" + } + }, + "RawMessage": { + "base": "

Represents the raw data of the message.

", + "refs": { + "SendRawEmailRequest$RawMessage": "

The raw text of the message. The client is responsible for ensuring the following:

  • Message must contain a header and a body, separated by a blank line.
  • All required header fields must be present.
  • Each part of a multipart MIME message must be formatted properly.
  • MIME content types must be among those supported by Amazon SES. For more information, go to the Amazon SES Developer Guide.
  • Content must be base64-encoded, if MIME requires it.

" + } + }, + "RawMessageData": { + "base": null, + "refs": { + "RawMessage$Data": "

The raw data of the message. The client must ensure that the message format complies with Internet email standards regarding email header fields, MIME types, MIME encoding, and base64 encoding (if necessary).

The To:, CC:, and BCC: headers in the raw message can contain a group list.

For more information, go to the Amazon SES Developer Guide.

" + } + }, + "SendDataPoint": { + "base": "

Represents sending statistics data. Each SendDataPoint contains statistics for a 15-minute period of sending activity.

", + "refs": { + "SendDataPointList$member": null + } + }, + "SendDataPointList": { + "base": null, + "refs": { + "GetSendStatisticsResponse$SendDataPoints": "

A list of data points, each of which represents 15 minutes of activity.

" + } + }, + "SendEmailRequest": { + "base": "

Represents a request instructing the service to send a single email message.

This datatype can be used in application code to compose a message consisting of source, destination, message, reply-to, and return-path parts. This object can then be sent using the SendEmail action.

", + "refs": { + } + }, + "SendEmailResponse": { + "base": "

Represents a unique message ID returned from a successful SendEmail request.

", + "refs": { + } + }, + "SendRawEmailRequest": { + "base": "

Represents a request instructing the service to send a raw email message.

This datatype can be used in application code to compose a message consisting of source, destination, and raw message text. This object can then be sent using the SendRawEmail action.

", + "refs": { + } + }, + "SendRawEmailResponse": { + "base": "

Represents a unique message ID returned from a successful SendRawEmail request.

", + "refs": { + } + }, + "SentLast24Hours": { + "base": null, + "refs": { + "GetSendQuotaResponse$SentLast24Hours": "

The number of emails sent during the previous 24 hours.

" + } + }, + "SetIdentityDkimEnabledRequest": { + "base": "

Represents a request instructing the service to enable or disable DKIM signing for an identity.

", + "refs": { + } + }, + "SetIdentityDkimEnabledResponse": { + "base": "

An empty element. Receiving this element indicates that the request completed successfully.

", + "refs": { + } + }, + "SetIdentityFeedbackForwardingEnabledRequest": { + "base": null, + "refs": { + } + }, + "SetIdentityFeedbackForwardingEnabledResponse": { + "base": "

An empty element. Receiving this element indicates that the request completed successfully.

", + "refs": { + } + }, + "SetIdentityNotificationTopicRequest": { + "base": "

Represents a request to set or clear an identity's notification topic.

", + "refs": { + } + }, + "SetIdentityNotificationTopicResponse": { + "base": "

An empty element. Receiving this element indicates that the request completed successfully.

", + "refs": { + } + }, + "Timestamp": { + "base": null, + "refs": { + "SendDataPoint$Timestamp": "

Time of the data point.

" + } + }, + "VerificationAttributes": { + "base": null, + "refs": { + "GetIdentityVerificationAttributesResponse$VerificationAttributes": "

A map of Identities to IdentityVerificationAttributes objects.

" + } + }, + "VerificationStatus": { + "base": null, + "refs": { + "IdentityDkimAttributes$DkimVerificationStatus": "

Describes whether Amazon SES has successfully verified the DKIM DNS records (tokens) published in the domain name's DNS. (This only applies to domain identities, not email address identities.)

", + "IdentityVerificationAttributes$VerificationStatus": "

The verification status of the identity: \"Pending\", \"Success\", \"Failed\", or \"TemporaryFailure\".

" + } + }, + "VerificationToken": { + "base": null, + "refs": { + "IdentityVerificationAttributes$VerificationToken": "

The verification token for a domain identity. Null for email address identities.

", + "VerificationTokenList$member": null, + "VerifyDomainIdentityResponse$VerificationToken": "

A TXT record that must be placed in the DNS settings for the domain, in order to complete domain verification.

" + } + }, + "VerificationTokenList": { + "base": null, + "refs": { + "IdentityDkimAttributes$DkimTokens": "

A set of character strings that represent the domain's identity. Using these tokens, you will need to create DNS CNAME records that point to DKIM public keys hosted by Amazon SES. Amazon Web Services will eventually detect that you have updated your DNS records; this detection process may take up to 72 hours. Upon successful detection, Amazon SES will be able to DKIM-sign email originating from that domain. (This only applies to domain identities, not email address identities.)

For more information about creating DNS records using DKIM tokens, go to the Amazon SES Developer Guide.

", + "VerifyDomainDkimResponse$DkimTokens": "

A set of character strings that represent the domain's identity. If the identity is an email address, the tokens represent the domain of that address.

Using these tokens, you will need to create DNS CNAME records that point to DKIM public keys hosted by Amazon SES. Amazon Web Services will eventually detect that you have updated your DNS records; this detection process may take up to 72 hours. Upon successful detection, Amazon SES will be able to DKIM-sign emails originating from that domain.

For more information about creating DNS records using DKIM tokens, go to the Amazon SES Developer Guide.

" + } + }, + "VerifyDomainDkimRequest": { + "base": "

Represents a request instructing the service to begin DKIM verification for a domain.

", + "refs": { + } + }, + "VerifyDomainDkimResponse": { + "base": "

Represents the DNS records that must be published in the domain name's DNS to complete DKIM setup.

", + "refs": { + } + }, + "VerifyDomainIdentityRequest": { + "base": "

Represents a request instructing the service to begin domain verification.

", + "refs": { + } + }, + "VerifyDomainIdentityResponse": { + "base": "

Represents a token used for domain ownership verification.

", + "refs": { + } + }, + "VerifyEmailAddressRequest": { + "base": "

Represents a request instructing the service to begin email address verification.

", + "refs": { + } + }, + "VerifyEmailIdentityRequest": { + "base": "

Represents a request instructing the service to begin email address verification.

", + "refs": { + } + }, + "VerifyEmailIdentityResponse": { + "base": "

An empty element. Receiving this element indicates that the request completed successfully.

", + "refs": { + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/email/2010-12-01/paginators-1.json b/lib/aws-sdk/Aws/data/email/2010-12-01/paginators-1.json new file mode 100644 index 0000000..e12811f --- /dev/null +++ b/lib/aws-sdk/Aws/data/email/2010-12-01/paginators-1.json @@ -0,0 +1,13 @@ +{ + "pagination": { + "ListIdentities": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxItems", + "result_key": "Identities" + }, + "ListVerifiedEmailAddresses": { + "result_key": "VerifiedEmailAddresses" + } + } +} diff --git a/lib/aws-sdk/Aws/data/email/2010-12-01/waiters-2.json b/lib/aws-sdk/Aws/data/email/2010-12-01/waiters-2.json new file mode 100644 index 0000000..b585d30 --- /dev/null +++ b/lib/aws-sdk/Aws/data/email/2010-12-01/waiters-2.json @@ -0,0 +1,18 @@ +{ + "version": 2, + "waiters": { + "IdentityExists": { + "delay": 3, + "operation": "GetIdentityVerificationAttributes", + "maxAttempts": 20, + "acceptors": [ + { + "expected": "Success", + "matcher": "pathAll", + "state": "success", + "argument": "VerificationAttributes.*.VerificationStatus" + } + ] + } + } +} diff --git a/lib/aws-sdk/Aws/data/endpoints.json b/lib/aws-sdk/Aws/data/endpoints.json new file mode 100644 index 0000000..938511b --- /dev/null +++ b/lib/aws-sdk/Aws/data/endpoints.json @@ -0,0 +1,63 @@ +{ + "version": 2, + "endpoints": { + "*/*": { + "endpoint": "{service}.{region}.amazonaws.com" + }, + "cn-north-1/*": { + "endpoint": "{service}.{region}.amazonaws.com.cn", + "signatureVersion": "v4" + }, + "us-gov-west-1/iam": { + "endpoint": "iam.us-gov.amazonaws.com" + }, + "us-gov-west-1/s3": { + "endpoint": "s3-{region}.amazonaws.com" + }, + "*/cloudfront": { + "endpoint": "cloudfront.amazonaws.com" + }, + "*/iam": { + "endpoint": "iam.amazonaws.com" + }, + "us-gov-west-1/sts": { + "endpoint": "sts.us-gov-west-1.amazonaws.com" + }, + "*/importexport": { + "endpoint": "importexport.amazonaws.com" + }, + "*/route53": { + "endpoint": "route53.amazonaws.com" + }, + "*/sts": { + "endpoint": "sts.amazonaws.com" + }, + "us-east-1/sdb": { + "endpoint": "sdb.amazonaws.com" + }, + "us-east-1/s3": { + "endpoint": "s3.amazonaws.com" + }, + "us-west-1/s3": { + "endpoint": "s3-{region}.amazonaws.com" + }, + "us-west-2/s3": { + "endpoint": "s3-{region}.amazonaws.com" + }, + "eu-west-1/s3": { + "endpoint": "s3-{region}.amazonaws.com" + }, + "ap-southeast-1/s3": { + "endpoint": "s3-{region}.amazonaws.com" + }, + "ap-southeast-2/s3": { + "endpoint": "s3-{region}.amazonaws.com" + }, + "ap-northeast-1/s3": { + "endpoint": "s3-{region}.amazonaws.com" + }, + "sa-east-1/s3": { + "endpoint": "s3-{region}.amazonaws.com" + } + } +} diff --git a/lib/aws-sdk/Aws/data/glacier/2012-06-01/api-2.json b/lib/aws-sdk/Aws/data/glacier/2012-06-01/api-2.json new file mode 100644 index 0000000..d440ab3 --- /dev/null +++ b/lib/aws-sdk/Aws/data/glacier/2012-06-01/api-2.json @@ -0,0 +1,1736 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2012-06-01", + "checksumFormat":"sha256", + "endpointPrefix":"glacier", + "serviceFullName":"Amazon Glacier", + "signatureVersion":"v4", + "protocol":"rest-json" + }, + "operations":{ + "AbortMultipartUpload":{ + "name":"AbortMultipartUpload", + "http":{ + "method":"DELETE", + "requestUri":"/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}", + "responseCode":204 + }, + "input":{"shape":"AbortMultipartUploadInput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "CompleteMultipartUpload":{ + "name":"CompleteMultipartUpload", + "http":{ + "method":"POST", + "requestUri":"/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}", + "responseCode":201 + }, + "input":{"shape":"CompleteMultipartUploadInput"}, + "output":{"shape":"ArchiveCreationOutput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "CreateVault":{ + "name":"CreateVault", + "http":{ + "method":"PUT", + "requestUri":"/{accountId}/vaults/{vaultName}", + "responseCode":201 + }, + "input":{"shape":"CreateVaultInput"}, + "output":{"shape":"CreateVaultOutput"}, + "errors":[ + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "DeleteArchive":{ + "name":"DeleteArchive", + "http":{ + "method":"DELETE", + "requestUri":"/{accountId}/vaults/{vaultName}/archives/{archiveId}", + "responseCode":204 + }, + "input":{"shape":"DeleteArchiveInput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DeleteVault":{ + "name":"DeleteVault", + "http":{ + "method":"DELETE", + "requestUri":"/{accountId}/vaults/{vaultName}", + "responseCode":204 + }, + "input":{"shape":"DeleteVaultInput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DeleteVaultAccessPolicy":{ + "name":"DeleteVaultAccessPolicy", + "http":{ + "method":"DELETE", + "requestUri":"/{accountId}/vaults/{vaultName}/access-policy", + "responseCode":204 + }, + "input":{"shape":"DeleteVaultAccessPolicyInput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DeleteVaultNotifications":{ + "name":"DeleteVaultNotifications", + "http":{ + "method":"DELETE", + "requestUri":"/{accountId}/vaults/{vaultName}/notification-configuration", + "responseCode":204 + }, + "input":{"shape":"DeleteVaultNotificationsInput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DescribeJob":{ + "name":"DescribeJob", + "http":{ + "method":"GET", + "requestUri":"/{accountId}/vaults/{vaultName}/jobs/{jobId}" + }, + "input":{"shape":"DescribeJobInput"}, + "output":{"shape":"GlacierJobDescription"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DescribeVault":{ + "name":"DescribeVault", + "http":{ + "method":"GET", + "requestUri":"/{accountId}/vaults/{vaultName}" + }, + "input":{"shape":"DescribeVaultInput"}, + "output":{"shape":"DescribeVaultOutput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "GetDataRetrievalPolicy":{ + "name":"GetDataRetrievalPolicy", + "http":{ + "method":"GET", + "requestUri":"/{accountId}/policies/data-retrieval" + }, + "input":{"shape":"GetDataRetrievalPolicyInput"}, + "output":{"shape":"GetDataRetrievalPolicyOutput"}, + "errors":[ + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "GetJobOutput":{ + "name":"GetJobOutput", + "http":{ + "method":"GET", + "requestUri":"/{accountId}/vaults/{vaultName}/jobs/{jobId}/output" + }, + "input":{"shape":"GetJobOutputInput"}, + "output":{"shape":"GetJobOutputOutput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "GetVaultAccessPolicy":{ + "name":"GetVaultAccessPolicy", + "http":{ + "method":"GET", + "requestUri":"/{accountId}/vaults/{vaultName}/access-policy" + }, + "input":{"shape":"GetVaultAccessPolicyInput"}, + "output":{"shape":"GetVaultAccessPolicyOutput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "GetVaultNotifications":{ + "name":"GetVaultNotifications", + "http":{ + "method":"GET", + "requestUri":"/{accountId}/vaults/{vaultName}/notification-configuration" + }, + "input":{"shape":"GetVaultNotificationsInput"}, + "output":{"shape":"GetVaultNotificationsOutput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "InitiateJob":{ + "name":"InitiateJob", + "http":{ + "method":"POST", + "requestUri":"/{accountId}/vaults/{vaultName}/jobs", + "responseCode":202 + }, + "input":{"shape":"InitiateJobInput"}, + "output":{"shape":"InitiateJobOutput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"PolicyEnforcedException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "InitiateMultipartUpload":{ + "name":"InitiateMultipartUpload", + "http":{ + "method":"POST", + "requestUri":"/{accountId}/vaults/{vaultName}/multipart-uploads", + "responseCode":201 + }, + "input":{"shape":"InitiateMultipartUploadInput"}, + "output":{"shape":"InitiateMultipartUploadOutput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "ListJobs":{ + "name":"ListJobs", + "http":{ + "method":"GET", + "requestUri":"/{accountId}/vaults/{vaultName}/jobs" + }, + "input":{"shape":"ListJobsInput"}, + "output":{"shape":"ListJobsOutput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "ListMultipartUploads":{ + "name":"ListMultipartUploads", + "http":{ + "method":"GET", + "requestUri":"/{accountId}/vaults/{vaultName}/multipart-uploads" + }, + "input":{"shape":"ListMultipartUploadsInput"}, + "output":{"shape":"ListMultipartUploadsOutput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "ListParts":{ + "name":"ListParts", + "http":{ + "method":"GET", + "requestUri":"/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}" + }, + "input":{"shape":"ListPartsInput"}, + "output":{"shape":"ListPartsOutput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "ListVaults":{ + "name":"ListVaults", + "http":{ + "method":"GET", + "requestUri":"/{accountId}/vaults" + }, + "input":{"shape":"ListVaultsInput"}, + "output":{"shape":"ListVaultsOutput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "SetDataRetrievalPolicy":{ + "name":"SetDataRetrievalPolicy", + "http":{ + "method":"PUT", + "requestUri":"/{accountId}/policies/data-retrieval", + "responseCode":204 + }, + "input":{"shape":"SetDataRetrievalPolicyInput"}, + "errors":[ + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "SetVaultAccessPolicy":{ + "name":"SetVaultAccessPolicy", + "http":{ + "method":"PUT", + "requestUri":"/{accountId}/vaults/{vaultName}/access-policy", + "responseCode":204 + }, + "input":{"shape":"SetVaultAccessPolicyInput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "SetVaultNotifications":{ + "name":"SetVaultNotifications", + "http":{ + "method":"PUT", + "requestUri":"/{accountId}/vaults/{vaultName}/notification-configuration", + "responseCode":204 + }, + "input":{"shape":"SetVaultNotificationsInput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "UploadArchive":{ + "name":"UploadArchive", + "http":{ + "method":"POST", + "requestUri":"/{accountId}/vaults/{vaultName}/archives", + "responseCode":201 + }, + "input":{"shape":"UploadArchiveInput"}, + "output":{"shape":"ArchiveCreationOutput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"RequestTimeoutException", + "error":{"httpStatusCode":408}, + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "UploadMultipartPart":{ + "name":"UploadMultipartPart", + "http":{ + "method":"PUT", + "requestUri":"/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}", + "responseCode":204 + }, + "input":{"shape":"UploadMultipartPartInput"}, + "output":{"shape":"UploadMultipartPartOutput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"MissingParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"RequestTimeoutException", + "error":{"httpStatusCode":408}, + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + } + }, + "shapes":{ + "AbortMultipartUploadInput":{ + "type":"structure", + "members":{ + "accountId":{ + "shape":"string", + "location":"uri", + "locationName":"accountId" + }, + "vaultName":{ + "shape":"string", + "location":"uri", + "locationName":"vaultName" + }, + "uploadId":{ + "shape":"string", + "location":"uri", + "locationName":"uploadId" + } + }, + "required":[ + "accountId", + "vaultName", + "uploadId" + ] + }, + "ActionCode":{ + "type":"string", + "enum":[ + "ArchiveRetrieval", + "InventoryRetrieval" + ] + }, + "ArchiveCreationOutput":{ + "type":"structure", + "members":{ + "location":{ + "shape":"string", + "location":"header", + "locationName":"Location" + }, + "checksum":{ + "shape":"string", + "location":"header", + "locationName":"x-amz-sha256-tree-hash" + }, + "archiveId":{ + "shape":"string", + "location":"header", + "locationName":"x-amz-archive-id" + } + } + }, + "CompleteMultipartUploadInput":{ + "type":"structure", + "members":{ + "accountId":{ + "shape":"string", + "location":"uri", + "locationName":"accountId" + }, + "vaultName":{ + "shape":"string", + "location":"uri", + "locationName":"vaultName" + }, + "uploadId":{ + "shape":"string", + "location":"uri", + "locationName":"uploadId" + }, + "archiveSize":{ + "shape":"string", + "location":"header", + "locationName":"x-amz-archive-size" + }, + "checksum":{ + "shape":"string", + "location":"header", + "locationName":"x-amz-sha256-tree-hash" + } + }, + "required":[ + "accountId", + "vaultName", + "uploadId" + ] + }, + "CreateVaultInput":{ + "type":"structure", + "members":{ + "accountId":{ + "shape":"string", + "location":"uri", + "locationName":"accountId" + }, + "vaultName":{ + "shape":"string", + "location":"uri", + "locationName":"vaultName" + } + }, + "required":[ + "accountId", + "vaultName" + ] + }, + "CreateVaultOutput":{ + "type":"structure", + "members":{ + "location":{ + "shape":"string", + "location":"header", + "locationName":"Location" + } + } + }, + "DataRetrievalPolicy":{ + "type":"structure", + "members":{ + "Rules":{"shape":"DataRetrievalRulesList"} + } + }, + "DataRetrievalRule":{ + "type":"structure", + "members":{ + "Strategy":{"shape":"string"}, + "BytesPerHour":{"shape":"NullableLong"} + } + }, + "DataRetrievalRulesList":{ + "type":"list", + "member":{"shape":"DataRetrievalRule"} + }, + "DateTime":{"type":"string"}, + "DeleteArchiveInput":{ + "type":"structure", + "members":{ + "accountId":{ + "shape":"string", + "location":"uri", + "locationName":"accountId" + }, + "vaultName":{ + "shape":"string", + "location":"uri", + "locationName":"vaultName" + }, + "archiveId":{ + "shape":"string", + "location":"uri", + "locationName":"archiveId" + } + }, + "required":[ + "accountId", + "vaultName", + "archiveId" + ] + }, + "DeleteVaultAccessPolicyInput":{ + "type":"structure", + "members":{ + "accountId":{ + "shape":"string", + "location":"uri", + "locationName":"accountId" + }, + "vaultName":{ + "shape":"string", + "location":"uri", + "locationName":"vaultName" + } + }, + "required":[ + "accountId", + "vaultName" + ] + }, + "DeleteVaultInput":{ + "type":"structure", + "members":{ + "accountId":{ + "shape":"string", + "location":"uri", + "locationName":"accountId" + }, + "vaultName":{ + "shape":"string", + "location":"uri", + "locationName":"vaultName" + } + }, + "required":[ + "accountId", + "vaultName" + ] + }, + "DeleteVaultNotificationsInput":{ + "type":"structure", + "members":{ + "accountId":{ + "shape":"string", + "location":"uri", + "locationName":"accountId" + }, + "vaultName":{ + "shape":"string", + "location":"uri", + "locationName":"vaultName" + } + }, + "required":[ + "accountId", + "vaultName" + ] + }, + "DescribeJobInput":{ + "type":"structure", + "members":{ + "accountId":{ + "shape":"string", + "location":"uri", + "locationName":"accountId" + }, + "vaultName":{ + "shape":"string", + "location":"uri", + "locationName":"vaultName" + }, + "jobId":{ + "shape":"string", + "location":"uri", + "locationName":"jobId" + } + }, + "required":[ + "accountId", + "vaultName", + "jobId" + ] + }, + "DescribeVaultInput":{ + "type":"structure", + "members":{ + "accountId":{ + "shape":"string", + "location":"uri", + "locationName":"accountId" + }, + "vaultName":{ + "shape":"string", + "location":"uri", + "locationName":"vaultName" + } + }, + "required":[ + "accountId", + "vaultName" + ] + }, + "DescribeVaultOutput":{ + "type":"structure", + "members":{ + "VaultARN":{"shape":"string"}, + "VaultName":{"shape":"string"}, + "CreationDate":{"shape":"string"}, + "LastInventoryDate":{"shape":"string"}, + "NumberOfArchives":{"shape":"long"}, + "SizeInBytes":{"shape":"long"} + } + }, + "GetDataRetrievalPolicyInput":{ + "type":"structure", + "members":{ + "accountId":{ + "shape":"string", + "location":"uri", + "locationName":"accountId" + } + }, + "required":["accountId"] + }, + "GetDataRetrievalPolicyOutput":{ + "type":"structure", + "members":{ + "Policy":{"shape":"DataRetrievalPolicy"} + } + }, + "GetJobOutputInput":{ + "type":"structure", + "members":{ + "accountId":{ + "shape":"string", + "location":"uri", + "locationName":"accountId" + }, + "vaultName":{ + "shape":"string", + "location":"uri", + "locationName":"vaultName" + }, + "jobId":{ + "shape":"string", + "location":"uri", + "locationName":"jobId" + }, + "range":{ + "shape":"string", + "location":"header", + "locationName":"Range" + } + }, + "required":[ + "accountId", + "vaultName", + "jobId" + ] + }, + "GetJobOutputOutput":{ + "type":"structure", + "members":{ + "body":{"shape":"Stream"}, + "checksum":{ + "shape":"string", + "location":"header", + "locationName":"x-amz-sha256-tree-hash" + }, + "status":{ + "shape":"httpstatus", + "location":"statusCode" + }, + "contentRange":{ + "shape":"string", + "location":"header", + "locationName":"Content-Range" + }, + "acceptRanges":{ + "shape":"string", + "location":"header", + "locationName":"Accept-Ranges" + }, + "contentType":{ + "shape":"string", + "location":"header", + "locationName":"Content-Type" + }, + "archiveDescription":{ + "shape":"string", + "location":"header", + "locationName":"x-amz-archive-description" + } + }, + "payload":"body" + }, + "GetVaultAccessPolicyInput":{ + "type":"structure", + "members":{ + "accountId":{ + "shape":"string", + "location":"uri", + "locationName":"accountId" + }, + "vaultName":{ + "shape":"string", + "location":"uri", + "locationName":"vaultName" + } + }, + "required":[ + "accountId", + "vaultName" + ] + }, + "GetVaultAccessPolicyOutput":{ + "type":"structure", + "members":{ + "policy":{"shape":"VaultAccessPolicy"} + }, + "payload":"policy" + }, + "GetVaultNotificationsInput":{ + "type":"structure", + "members":{ + "accountId":{ + "shape":"string", + "location":"uri", + "locationName":"accountId" + }, + "vaultName":{ + "shape":"string", + "location":"uri", + "locationName":"vaultName" + } + }, + "required":[ + "accountId", + "vaultName" + ] + }, + "GetVaultNotificationsOutput":{ + "type":"structure", + "members":{ + "vaultNotificationConfig":{"shape":"VaultNotificationConfig"} + }, + "payload":"vaultNotificationConfig" + }, + "GlacierJobDescription":{ + "type":"structure", + "members":{ + "JobId":{"shape":"string"}, + "JobDescription":{"shape":"string"}, + "Action":{"shape":"ActionCode"}, + "ArchiveId":{"shape":"string"}, + "VaultARN":{"shape":"string"}, + "CreationDate":{"shape":"string"}, + "Completed":{"shape":"boolean"}, + "StatusCode":{"shape":"StatusCode"}, + "StatusMessage":{"shape":"string"}, + "ArchiveSizeInBytes":{"shape":"Size"}, + "InventorySizeInBytes":{"shape":"Size"}, + "SNSTopic":{"shape":"string"}, + "CompletionDate":{"shape":"string"}, + "SHA256TreeHash":{"shape":"string"}, + "ArchiveSHA256TreeHash":{"shape":"string"}, + "RetrievalByteRange":{"shape":"string"}, + "InventoryRetrievalParameters":{"shape":"InventoryRetrievalJobDescription"} + } + }, + "InitiateJobInput":{ + "type":"structure", + "members":{ + "accountId":{ + "shape":"string", + "location":"uri", + "locationName":"accountId" + }, + "vaultName":{ + "shape":"string", + "location":"uri", + "locationName":"vaultName" + }, + "jobParameters":{"shape":"JobParameters"} + }, + "required":[ + "accountId", + "vaultName" + ], + "payload":"jobParameters" + }, + "InitiateJobOutput":{ + "type":"structure", + "members":{ + "location":{ + "shape":"string", + "location":"header", + "locationName":"Location" + }, + "jobId":{ + "shape":"string", + "location":"header", + "locationName":"x-amz-job-id" + } + } + }, + "InitiateMultipartUploadInput":{ + "type":"structure", + "members":{ + "accountId":{ + "shape":"string", + "location":"uri", + "locationName":"accountId" + }, + "vaultName":{ + "shape":"string", + "location":"uri", + "locationName":"vaultName" + }, + "archiveDescription":{ + "shape":"string", + "location":"header", + "locationName":"x-amz-archive-description" + }, + "partSize":{ + "shape":"string", + "location":"header", + "locationName":"x-amz-part-size" + } + }, + "required":[ + "accountId", + "vaultName" + ] + }, + "InitiateMultipartUploadOutput":{ + "type":"structure", + "members":{ + "location":{ + "shape":"string", + "location":"header", + "locationName":"Location" + }, + "uploadId":{ + "shape":"string", + "location":"header", + "locationName":"x-amz-multipart-upload-id" + } + } + }, + "InvalidParameterValueException":{ + "type":"structure", + "members":{ + "type":{"shape":"string"}, + "code":{"shape":"string"}, + "message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InventoryRetrievalJobDescription":{ + "type":"structure", + "members":{ + "Format":{"shape":"string"}, + "StartDate":{"shape":"DateTime"}, + "EndDate":{"shape":"DateTime"}, + "Limit":{"shape":"string"}, + "Marker":{"shape":"string"} + } + }, + "InventoryRetrievalJobInput":{ + "type":"structure", + "members":{ + "StartDate":{"shape":"string"}, + "EndDate":{"shape":"string"}, + "Limit":{"shape":"string"}, + "Marker":{"shape":"string"} + } + }, + "JobList":{ + "type":"list", + "member":{"shape":"GlacierJobDescription"} + }, + "JobParameters":{ + "type":"structure", + "members":{ + "Format":{"shape":"string"}, + "Type":{"shape":"string"}, + "ArchiveId":{"shape":"string"}, + "Description":{"shape":"string"}, + "SNSTopic":{"shape":"string"}, + "RetrievalByteRange":{"shape":"string"}, + "InventoryRetrievalParameters":{"shape":"InventoryRetrievalJobInput"} + } + }, + "LimitExceededException":{ + "type":"structure", + "members":{ + "type":{"shape":"string"}, + "code":{"shape":"string"}, + "message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "ListJobsInput":{ + "type":"structure", + "members":{ + "accountId":{ + "shape":"string", + "location":"uri", + "locationName":"accountId" + }, + "vaultName":{ + "shape":"string", + "location":"uri", + "locationName":"vaultName" + }, + "limit":{ + "shape":"string", + "location":"querystring", + "locationName":"limit" + }, + "marker":{ + "shape":"string", + "location":"querystring", + "locationName":"marker" + }, + "statuscode":{ + "shape":"string", + "location":"querystring", + "locationName":"statuscode" + }, + "completed":{ + "shape":"string", + "location":"querystring", + "locationName":"completed" + } + }, + "required":[ + "accountId", + "vaultName" + ] + }, + "ListJobsOutput":{ + "type":"structure", + "members":{ + "JobList":{"shape":"JobList"}, + "Marker":{"shape":"string"} + } + }, + "ListMultipartUploadsInput":{ + "type":"structure", + "members":{ + "accountId":{ + "shape":"string", + "location":"uri", + "locationName":"accountId" + }, + "vaultName":{ + "shape":"string", + "location":"uri", + "locationName":"vaultName" + }, + "marker":{ + "shape":"string", + "location":"querystring", + "locationName":"marker" + }, + "limit":{ + "shape":"string", + "location":"querystring", + "locationName":"limit" + } + }, + "required":[ + "accountId", + "vaultName" + ] + }, + "ListMultipartUploadsOutput":{ + "type":"structure", + "members":{ + "UploadsList":{"shape":"UploadsList"}, + "Marker":{"shape":"string"} + } + }, + "ListPartsInput":{ + "type":"structure", + "members":{ + "accountId":{ + "shape":"string", + "location":"uri", + "locationName":"accountId" + }, + "vaultName":{ + "shape":"string", + "location":"uri", + "locationName":"vaultName" + }, + "uploadId":{ + "shape":"string", + "location":"uri", + "locationName":"uploadId" + }, + "marker":{ + "shape":"string", + "location":"querystring", + "locationName":"marker" + }, + "limit":{ + "shape":"string", + "location":"querystring", + "locationName":"limit" + } + }, + "required":[ + "accountId", + "vaultName", + "uploadId" + ] + }, + "ListPartsOutput":{ + "type":"structure", + "members":{ + "MultipartUploadId":{"shape":"string"}, + "VaultARN":{"shape":"string"}, + "ArchiveDescription":{"shape":"string"}, + "PartSizeInBytes":{"shape":"long"}, + "CreationDate":{"shape":"string"}, + "Parts":{"shape":"PartList"}, + "Marker":{"shape":"string"} + } + }, + "ListVaultsInput":{ + "type":"structure", + "members":{ + "accountId":{ + "shape":"string", + "location":"uri", + "locationName":"accountId" + }, + "marker":{ + "shape":"string", + "location":"querystring", + "locationName":"marker" + }, + "limit":{ + "shape":"string", + "location":"querystring", + "locationName":"limit" + } + }, + "required":["accountId"] + }, + "ListVaultsOutput":{ + "type":"structure", + "members":{ + "VaultList":{"shape":"VaultList"}, + "Marker":{"shape":"string"} + } + }, + "MissingParameterValueException":{ + "type":"structure", + "members":{ + "type":{"shape":"string"}, + "code":{"shape":"string"}, + "message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "NotificationEventList":{ + "type":"list", + "member":{"shape":"string"} + }, + "NullableLong":{"type":"long"}, + "PartList":{ + "type":"list", + "member":{"shape":"PartListElement"} + }, + "PartListElement":{ + "type":"structure", + "members":{ + "RangeInBytes":{"shape":"string"}, + "SHA256TreeHash":{"shape":"string"} + } + }, + "PolicyEnforcedException":{ + "type":"structure", + "members":{ + "type":{"shape":"string"}, + "code":{"shape":"string"}, + "message":{"shape":"string"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "RequestTimeoutException":{ + "type":"structure", + "members":{ + "type":{"shape":"string"}, + "code":{"shape":"string"}, + "message":{"shape":"string"} + }, + "error":{"httpStatusCode":408}, + "exception":true + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "type":{"shape":"string"}, + "code":{"shape":"string"}, + "message":{"shape":"string"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "ServiceUnavailableException":{ + "type":"structure", + "members":{ + "type":{"shape":"string"}, + "code":{"shape":"string"}, + "message":{"shape":"string"} + }, + "error":{"httpStatusCode":500}, + "exception":true + }, + "SetDataRetrievalPolicyInput":{ + "type":"structure", + "members":{ + "accountId":{ + "shape":"string", + "location":"uri", + "locationName":"accountId" + }, + "Policy":{"shape":"DataRetrievalPolicy"} + }, + "required":["accountId"] + }, + "SetVaultAccessPolicyInput":{ + "type":"structure", + "members":{ + "accountId":{ + "shape":"string", + "location":"uri", + "locationName":"accountId" + }, + "vaultName":{ + "shape":"string", + "location":"uri", + "locationName":"vaultName" + }, + "policy":{"shape":"VaultAccessPolicy"} + }, + "required":[ + "accountId", + "vaultName" + ], + "payload":"policy" + }, + "SetVaultNotificationsInput":{ + "type":"structure", + "members":{ + "accountId":{ + "shape":"string", + "location":"uri", + "locationName":"accountId" + }, + "vaultName":{ + "shape":"string", + "location":"uri", + "locationName":"vaultName" + }, + "vaultNotificationConfig":{"shape":"VaultNotificationConfig"} + }, + "required":[ + "accountId", + "vaultName" + ], + "payload":"vaultNotificationConfig" + }, + "Size":{"type":"long"}, + "StatusCode":{ + "type":"string", + "enum":[ + "InProgress", + "Succeeded", + "Failed" + ] + }, + "Stream":{ + "type":"blob", + "streaming":true + }, + "UploadArchiveInput":{ + "type":"structure", + "members":{ + "vaultName":{ + "shape":"string", + "location":"uri", + "locationName":"vaultName" + }, + "accountId":{ + "shape":"string", + "location":"uri", + "locationName":"accountId" + }, + "archiveDescription":{ + "shape":"string", + "location":"header", + "locationName":"x-amz-archive-description" + }, + "checksum":{ + "shape":"string", + "location":"header", + "locationName":"x-amz-sha256-tree-hash" + }, + "body":{"shape":"Stream"} + }, + "required":[ + "vaultName", + "accountId" + ], + "payload":"body" + }, + "UploadListElement":{ + "type":"structure", + "members":{ + "MultipartUploadId":{"shape":"string"}, + "VaultARN":{"shape":"string"}, + "ArchiveDescription":{"shape":"string"}, + "PartSizeInBytes":{"shape":"long"}, + "CreationDate":{"shape":"string"} + } + }, + "UploadMultipartPartInput":{ + "type":"structure", + "members":{ + "accountId":{ + "shape":"string", + "location":"uri", + "locationName":"accountId" + }, + "vaultName":{ + "shape":"string", + "location":"uri", + "locationName":"vaultName" + }, + "uploadId":{ + "shape":"string", + "location":"uri", + "locationName":"uploadId" + }, + "checksum":{ + "shape":"string", + "location":"header", + "locationName":"x-amz-sha256-tree-hash" + }, + "range":{ + "shape":"string", + "location":"header", + "locationName":"Content-Range" + }, + "body":{"shape":"Stream"} + }, + "required":[ + "accountId", + "vaultName", + "uploadId" + ], + "payload":"body" + }, + "UploadMultipartPartOutput":{ + "type":"structure", + "members":{ + "checksum":{ + "shape":"string", + "location":"header", + "locationName":"x-amz-sha256-tree-hash" + } + } + }, + "UploadsList":{ + "type":"list", + "member":{"shape":"UploadListElement"} + }, + "VaultAccessPolicy":{ + "type":"structure", + "members":{ + "Policy":{"shape":"string"} + } + }, + "VaultList":{ + "type":"list", + "member":{"shape":"DescribeVaultOutput"} + }, + "VaultNotificationConfig":{ + "type":"structure", + "members":{ + "SNSTopic":{"shape":"string"}, + "Events":{"shape":"NotificationEventList"} + } + }, + "boolean":{"type":"boolean"}, + "httpstatus":{"type":"integer"}, + "long":{"type":"long"}, + "string":{"type":"string"} + } +} diff --git a/lib/aws-sdk/Aws/data/glacier/2012-06-01/docs-2.json b/lib/aws-sdk/Aws/data/glacier/2012-06-01/docs-2.json new file mode 100644 index 0000000..48e5639 --- /dev/null +++ b/lib/aws-sdk/Aws/data/glacier/2012-06-01/docs-2.json @@ -0,0 +1,575 @@ +{ + "version": "2.0", + "operations": { + "AbortMultipartUpload": "

This operation aborts a multipart upload identified by the upload ID.

After the Abort Multipart Upload request succeeds, you cannot upload any more parts to the multipart upload or complete the multipart upload. Aborting a completed upload fails. However, aborting an already-aborted upload will succeed, for a short time. For more information about uploading a part and completing a multipart upload, see UploadMultipartPart and CompleteMultipartUpload.

This operation is idempotent.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and underlying REST API, go to Working with Archives in Amazon Glacier and Abort Multipart Upload in the Amazon Glacier Developer Guide.

", + "CompleteMultipartUpload": "

You call this operation to inform Amazon Glacier that all the archive parts have been uploaded and that Amazon Glacier can now assemble the archive from the uploaded parts. After assembling and saving the archive to the vault, Amazon Glacier returns the URI path of the newly created archive resource. Using the URI path, you can then access the archive. After you upload an archive, you should save the archive ID returned to retrieve the archive at a later point. You can also get the vault inventory to obtain a list of archive IDs in a vault. For more information, see InitiateJob.

In the request, you must include the computed SHA256 tree hash of the entire archive you have uploaded. For information about computing a SHA256 tree hash, see Computing Checksums. On the server side, Amazon Glacier also constructs the SHA256 tree hash of the assembled archive. If the values match, Amazon Glacier saves the archive to the vault; otherwise, it returns an error, and the operation fails. The ListParts operation returns a list of parts uploaded for a specific multipart upload. It includes checksum information for each uploaded part that can be used to debug a bad checksum issue.

Additionally, Amazon Glacier also checks for any missing content ranges when assembling the archive, if missing content ranges are found, Amazon Glacier returns an error and the operation fails.

Complete Multipart Upload is an idempotent operation. After your first successful complete multipart upload, if you call the operation again within a short period, the operation will succeed and return the same archive ID. This is useful in the event you experience a network issue that causes an aborted connection or receive a 500 server error, in which case you can repeat your Complete Multipart Upload request and get the same archive ID without creating duplicate archives. Note, however, that after the multipart upload completes, you cannot call the List Parts operation and the multipart upload will not appear in List Multipart Uploads response, even if idempotent complete is possible.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and underlying REST API, go to Uploading Large Archives in Parts (Multipart Upload) and Complete Multipart Upload in the Amazon Glacier Developer Guide.

", + "CreateVault": "

This operation creates a new vault with the specified name. The name of the vault must be unique within a region for an AWS account. You can create up to 1,000 vaults per account. If you need to create more vaults, contact Amazon Glacier.

You must use the following guidelines when naming a vault.

  • Names can be between 1 and 255 characters long.

  • Allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), and '.' (period).

This operation is idempotent.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and underlying REST API, go to Creating a Vault in Amazon Glacier and Create Vault in the Amazon Glacier Developer Guide.

", + "DeleteArchive": "

This operation deletes an archive from a vault. Subsequent requests to initiate a retrieval of this archive will fail. Archive retrievals that are in progress for this archive ID may or may not succeed according to the following scenarios:

  • If the archive retrieval job is actively preparing the data for download when Amazon Glacier receives the delete archive request, the archival retrieval operation might fail.
  • If the archive retrieval job has successfully prepared the archive for download when Amazon Glacier receives the delete archive request, you will be able to download the output.

This operation is idempotent. Attempting to delete an already-deleted archive does not result in an error.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and underlying REST API, go to Deleting an Archive in Amazon Glacier and Delete Archive in the Amazon Glacier Developer Guide.

", + "DeleteVault": "

This operation deletes a vault. Amazon Glacier will delete a vault only if there are no archives in the vault as of the last inventory and there have been no writes to the vault since the last inventory. If either of these conditions is not satisfied, the vault deletion fails (that is, the vault is not removed) and Amazon Glacier returns an error. You can use DescribeVault to return the number of archives in a vault, and you can use Initiate a Job (POST jobs) to initiate a new inventory retrieval for a vault. The inventory contains the archive IDs you use to delete archives using Delete Archive (DELETE archive).

This operation is idempotent.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and underlying REST API, go to Deleting a Vault in Amazon Glacier and Delete Vault in the Amazon Glacier Developer Guide.

", + "DeleteVaultAccessPolicy": "

This operation deletes the access policy associated with the specified vault. The operation is eventually consistent—that is, it might take some time for Amazon Glacier to completely remove the access policy, and you might still see the effect of the policy for a short time after you send the delete request.

This operation is idempotent. You can invoke delete multiple times, even if there is no policy associated with the vault. For more information about vault access policies, see Amazon Glacier Access Control with Vault Access Policies.

", + "DeleteVaultNotifications": "

This operation deletes the notification configuration set for a vault. The operation is eventually consistent;that is, it might take some time for Amazon Glacier to completely disable the notifications and you might still receive some notifications for a short time after you send the delete request.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and underlying REST API, go to Configuring Vault Notifications in Amazon Glacier and Delete Vault Notification Configuration in the Amazon Glacier Developer Guide.

", + "DescribeJob": "

This operation returns information about a job you previously initiated, including the job initiation date, the user who initiated the job, the job status code/message and the Amazon SNS topic to notify after Amazon Glacier completes the job. For more information about initiating a job, see InitiateJob.

This operation enables you to check the status of your job. However, it is strongly recommended that you set up an Amazon SNS topic and specify it in your initiate job request so that Amazon Glacier can notify the topic after it completes the job.

A job ID will not expire for at least 24 hours after Amazon Glacier completes the job.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For information about the underlying REST API, go to Working with Archives in Amazon Glacier in the Amazon Glacier Developer Guide.

", + "DescribeVault": "

This operation returns information about a vault, including the vault's Amazon Resource Name (ARN), the date the vault was created, the number of archives it contains, and the total size of all the archives in the vault. The number of archives and their total size are as of the last inventory generation. This means that if you add or remove an archive from a vault, and then immediately use Describe Vault, the change in contents will not be immediately reflected. If you want to retrieve the latest inventory of the vault, use InitiateJob. Amazon Glacier generates vault inventories approximately daily. For more information, see Downloading a Vault Inventory in Amazon Glacier.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and underlying REST API, go to Retrieving Vault Metadata in Amazon Glacier and Describe Vault in the Amazon Glacier Developer Guide.

", + "GetDataRetrievalPolicy": "

This operation returns the current data retrieval policy for the account and region specified in the GET request. For more information about data retrieval policies, see Amazon Glacier Data Retrieval Policies.

", + "GetJobOutput": "

This operation downloads the output of the job you initiated using InitiateJob. Depending on the job type you specified when you initiated the job, the output will be either the content of an archive or a vault inventory.

A job ID will not expire for at least 24 hours after Amazon Glacier completes the job. That is, you can download the job output within the 24 hours period after Amazon Glacier completes the job.

If the job output is large, then you can use the Range request header to retrieve a portion of the output. This allows you to download the entire output in smaller chunks of bytes. For example, suppose you have 1 GB of job output you want to download and you decide to download 128 MB chunks of data at a time, which is a total of eight Get Job Output requests. You use the following process to download the job output:

  1. Download a 128 MB chunk of output by specifying the appropriate byte range using the Range header.

  2. Along with the data, the response includes a SHA256 tree hash of the payload. You compute the checksum of the payload on the client and compare it with the checksum you received in the response to ensure you received all the expected data.

  3. Repeat steps 1 and 2 for all the eight 128 MB chunks of output data, each time specifying the appropriate byte range.

  4. After downloading all the parts of the job output, you have a list of eight checksum values. Compute the tree hash of these values to find the checksum of the entire output. Using the DescribeJob API, obtain job information of the job that provided you the output. The response includes the checksum of the entire archive stored in Amazon Glacier. You compare this value with the checksum you computed to ensure you have downloaded the entire archive content with no errors.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and the underlying REST API, go to Downloading a Vault Inventory, Downloading an Archive, and Get Job Output

", + "GetVaultAccessPolicy": "

This operation retrieves the access-policy subresource set on the vault—for more information on setting this subresource, see Set Vault Access Policy (PUT access-policy). If there is no access policy set on the vault, the operation returns a 404 Not found error. For more information about vault access policies, see Amazon Glacier Access Control with Vault Access Policies.

", + "GetVaultNotifications": "

This operation retrieves the notification-configuration subresource of the specified vault.

For information about setting a notification configuration on a vault, see SetVaultNotifications. If a notification configuration for a vault is not set, the operation returns a 404 Not Found error. For more information about vault notifications, see Configuring Vault Notifications in Amazon Glacier.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and underlying REST API, go to Configuring Vault Notifications in Amazon Glacier and Get Vault Notification Configuration in the Amazon Glacier Developer Guide.

", + "InitiateJob": "

This operation initiates a job of the specified type. In this release, you can initiate a job to retrieve either an archive or a vault inventory (a list of archives in a vault).

Retrieving data from Amazon Glacier is a two-step process:

  1. Initiate a retrieval job.

    A data retrieval policy can cause your initiate retrieval job request to fail with a PolicyEnforcedException exception. For more information about data retrieval policies, see Amazon Glacier Data Retrieval Policies. For more information about the PolicyEnforcedException exception, see Error Responses.

  2. After the job completes, download the bytes.

The retrieval request is executed asynchronously. When you initiate a retrieval job, Amazon Glacier creates a job and returns a job ID in the response. When Amazon Glacier completes the job, you can get the job output (archive or inventory data). For information about getting job output, see GetJobOutput operation.

The job must complete before you can get its output. To determine when a job is complete, you have the following options:

  • Use Amazon SNS Notification You can specify an Amazon Simple Notification Service (Amazon SNS) topic to which Amazon Glacier can post a notification after the job is completed. You can specify an SNS topic per job request. The notification is sent only after Amazon Glacier completes the job. In addition to specifying an SNS topic per job request, you can configure vault notifications for a vault so that job notifications are always sent. For more information, see SetVaultNotifications.

  • Get job details You can make a DescribeJob request to obtain job status information while a job is in progress. However, it is more efficient to use an Amazon SNS notification to determine when a job is complete.

The information you get via notification is same that you get by calling DescribeJob.

If for a specific event, you add both the notification configuration on the vault and also specify an SNS topic in your initiate job request, Amazon Glacier sends both notifications. For more information, see SetVaultNotifications.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

About the Vault Inventory

Amazon Glacier prepares an inventory for each vault periodically, every 24 hours. When you initiate a job for a vault inventory, Amazon Glacier returns the last inventory for the vault. The inventory data you get might be up to a day or two days old. Also, the initiate inventory job might take some time to complete before you can download the vault inventory. So you do not want to retrieve a vault inventory for each vault operation. However, in some scenarios, you might find the vault inventory useful. For example, when you upload an archive, you can provide an archive description but not an archive name. Amazon Glacier provides you a unique archive ID, an opaque string of characters. So, you might maintain your own database that maps archive names to their corresponding Amazon Glacier assigned archive IDs. You might find the vault inventory useful in the event you need to reconcile information in your database with the actual vault inventory.

Range Inventory Retrieval

You can limit the number of inventory items retrieved by filtering on the archive creation date or by setting a limit.

Filtering by Archive Creation Date

You can retrieve inventory items for archives created between StartDate and EndDate by specifying values for these parameters in the InitiateJob request. Archives created on or after the StartDate and before the EndDate will be returned. If you only provide the StartDate without the EndDate, you will retrieve the inventory for all archives created on or after the StartDate. If you only provide the EndDate without the StartDate, you will get back the inventory for all archives created before the EndDate.

Limiting Inventory Items per Retrieval

You can limit the number of inventory items returned by setting the Limit parameter in the InitiateJob request. The inventory job output will contain inventory items up to the specified Limit. If there are more inventory items available, the result is paginated. After a job is complete you can use the DescribeJob operation to get a marker that you use in a subsequent InitiateJob request. The marker will indicate the starting point to retrieve the next set of inventory items. You can page through your entire inventory by repeatedly making InitiateJob requests with the marker from the previous DescribeJob output, until you get a marker from DescribeJob that returns null, indicating that there are no more inventory items available.

You can use the Limit parameter together with the date range parameters.

About Ranged Archive Retrieval

You can initiate an archive retrieval for the whole archive or a range of the archive. In the case of ranged archive retrieval, you specify a byte range to return or the whole archive. The range specified must be megabyte (MB) aligned, that is the range start value must be divisible by 1 MB and range end value plus 1 must be divisible by 1 MB or equal the end of the archive. If the ranged archive retrieval is not megabyte aligned, this operation returns a 400 response. Furthermore, to ensure you get checksum values for data you download using Get Job Output API, the range must be tree hash aligned.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and the underlying REST API, go to Initiate a Job and Downloading a Vault Inventory

", + "InitiateMultipartUpload": "

This operation initiates a multipart upload. Amazon Glacier creates a multipart upload resource and returns its ID in the response. The multipart upload ID is used in subsequent requests to upload parts of an archive (see UploadMultipartPart).

When you initiate a multipart upload, you specify the part size in number of bytes. The part size must be a megabyte (1024 KB) multiplied by a power of 2-for example, 1048576 (1 MB), 2097152 (2 MB), 4194304 (4 MB), 8388608 (8 MB), and so on. The minimum allowable part size is 1 MB, and the maximum is 4 GB.

Every part you upload to this resource (see UploadMultipartPart), except the last one, must have the same size. The last one can be the same size or smaller. For example, suppose you want to upload a 16.2 MB file. If you initiate the multipart upload with a part size of 4 MB, you will upload four parts of 4 MB each and one part of 0.2 MB.

You don't need to know the size of the archive when you start a multipart upload because Amazon Glacier does not require you to specify the overall archive size.

After you complete the multipart upload, Amazon Glacier removes the multipart upload resource referenced by the ID. Amazon Glacier also removes the multipart upload resource if you cancel the multipart upload or it may be removed if there is no activity for a period of 24 hours.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and underlying REST API, go to Uploading Large Archives in Parts (Multipart Upload) and Initiate Multipart Upload in the Amazon Glacier Developer Guide.

", + "ListJobs": "

This operation lists jobs for a vault, including jobs that are in-progress and jobs that have recently finished.

Amazon Glacier retains recently completed jobs for a period before deleting them; however, it eventually removes completed jobs. The output of completed jobs can be retrieved. Retaining completed jobs for a period of time after they have completed enables you to get a job output in the event you miss the job completion notification or your first attempt to download it fails. For example, suppose you start an archive retrieval job to download an archive. After the job completes, you start to download the archive but encounter a network error. In this scenario, you can retry and download the archive while the job exists.

To retrieve an archive or retrieve a vault inventory from Amazon Glacier, you first initiate a job, and after the job completes, you download the data. For an archive retrieval, the output is the archive data, and for an inventory retrieval, it is the inventory list. The List Job operation returns a list of these jobs sorted by job initiation time.

This List Jobs operation supports pagination. By default, this operation returns up to 1,000 jobs in the response. You should always check the response for a marker at which to continue the list; if there are no more items the marker is null. To return a list of jobs that begins at a specific job, set the marker request parameter to the value you obtained from a previous List Jobs request. You can also limit the number of jobs returned in the response by specifying the limit parameter in the request.

Additionally, you can filter the jobs list returned by specifying an optional statuscode (InProgress, Succeeded, or Failed) and completed (true, false) parameter. The statuscode allows you to specify that only jobs that match a specified status are returned. The completed parameter allows you to specify that only jobs in a specific completion state are returned.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For the underlying REST API, go to List Jobs

", + "ListMultipartUploads": "

This operation lists in-progress multipart uploads for the specified vault. An in-progress multipart upload is a multipart upload that has been initiated by an InitiateMultipartUpload request, but has not yet been completed or aborted. The list returned in the List Multipart Upload response has no guaranteed order.

The List Multipart Uploads operation supports pagination. By default, this operation returns up to 1,000 multipart uploads in the response. You should always check the response for a marker at which to continue the list; if there are no more items the marker is null. To return a list of multipart uploads that begins at a specific upload, set the marker request parameter to the value you obtained from a previous List Multipart Upload request. You can also limit the number of uploads returned in the response by specifying the limit parameter in the request.

Note the difference between this operation and listing parts (ListParts). The List Multipart Uploads operation lists all multipart uploads for a vault and does not require a multipart upload ID. The List Parts operation requires a multipart upload ID since parts are associated with a single upload.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and the underlying REST API, go to Working with Archives in Amazon Glacier and List Multipart Uploads in the Amazon Glacier Developer Guide.

", + "ListParts": "

This operation lists the parts of an archive that have been uploaded in a specific multipart upload. You can make this request at any time during an in-progress multipart upload before you complete the upload (see CompleteMultipartUpload. List Parts returns an error for completed uploads. The list returned in the List Parts response is sorted by part range.

The List Parts operation supports pagination. By default, this operation returns up to 1,000 uploaded parts in the response. You should always check the response for a marker at which to continue the list; if there are no more items the marker is null. To return a list of parts that begins at a specific part, set the marker request parameter to the value you obtained from a previous List Parts request. You can also limit the number of parts returned in the response by specifying the limit parameter in the request.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and the underlying REST API, go to Working with Archives in Amazon Glacier and List Parts in the Amazon Glacier Developer Guide.

", + "ListVaults": "

This operation lists all vaults owned by the calling user's account. The list returned in the response is ASCII-sorted by vault name.

By default, this operation returns up to 1,000 items. If there are more vaults to list, the response marker field contains the vault Amazon Resource Name (ARN) at which to continue the list with a new List Vaults request; otherwise, the marker field is null. To return a list of vaults that begins at a specific vault, set the marker request parameter to the vault ARN you obtained from a previous List Vaults request. You can also limit the number of vaults returned in the response by specifying the limit parameter in the request.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and underlying REST API, go to Retrieving Vault Metadata in Amazon Glacier and List Vaults in the Amazon Glacier Developer Guide.

", + "SetDataRetrievalPolicy": "

This operation sets and then enacts a data retrieval policy in the region specified in the PUT request. You can set one policy per region for an AWS account. The policy is enacted within a few minutes of a successful PUT operation.

The set policy operation does not affect retrieval jobs that were in progress before the policy was enacted. For more information about data retrieval policies, see Amazon Glacier Data Retrieval Policies.

", + "SetVaultAccessPolicy": "

This operation configures an access policy for a vault and will overwrite an existing policy. To configure a vault access policy, send a PUT request to the access-policy subresource of the vault. An access policy is specific to a vault and is also called a vault subresource. You can set one access policy per vault and the policy can be up to 20 KB in size. For more information about vault access policies, see Amazon Glacier Access Control with Vault Access Policies.

", + "SetVaultNotifications": "

This operation configures notifications that will be sent when specific events happen to a vault. By default, you don't get any notifications.

To configure vault notifications, send a PUT request to the notification-configuration subresource of the vault. The request should include a JSON document that provides an Amazon SNS topic and specific events for which you want Amazon Glacier to send notifications to the topic.

Amazon SNS topics must grant permission to the vault to be allowed to publish notifications to the topic. You can configure a vault to publish a notification for the following vault events:

  • ArchiveRetrievalCompleted This event occurs when a job that was initiated for an archive retrieval is completed (InitiateJob). The status of the completed job can be \"Succeeded\" or \"Failed\". The notification sent to the SNS topic is the same output as returned from DescribeJob.
  • InventoryRetrievalCompleted This event occurs when a job that was initiated for an inventory retrieval is completed (InitiateJob). The status of the completed job can be \"Succeeded\" or \"Failed\". The notification sent to the SNS topic is the same output as returned from DescribeJob.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and underlying REST API, go to Configuring Vault Notifications in Amazon Glacier and Set Vault Notification Configuration in the Amazon Glacier Developer Guide.

", + "UploadArchive": "

This operation adds an archive to a vault. This is a synchronous operation, and for a successful upload, your data is durably persisted. Amazon Glacier returns the archive ID in the x-amz-archive-id header of the response.

You must use the archive ID to access your data in Amazon Glacier. After you upload an archive, you should save the archive ID returned so that you can retrieve or delete the archive later. Besides saving the archive ID, you can also index it and give it a friendly name to allow for better searching. You can also use the optional archive description field to specify how the archive is referred to in an external index of archives, such as you might create in Amazon DynamoDB. You can also get the vault inventory to obtain a list of archive IDs in a vault. For more information, see InitiateJob.

You must provide a SHA256 tree hash of the data you are uploading. For information about computing a SHA256 tree hash, see Computing Checksums.

You can optionally specify an archive description of up to 1,024 printable ASCII characters. You can get the archive description when you either retrieve the archive or get the vault inventory. For more information, see InitiateJob. Amazon Glacier does not interpret the description in any way. An archive description does not need to be unique. You cannot use the description to retrieve or sort the archive list.

Archives are immutable. After you upload an archive, you cannot edit the archive or its description.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and underlying REST API, go to Uploading an Archive in Amazon Glacier and Upload Archive in the Amazon Glacier Developer Guide.

", + "UploadMultipartPart": "

This operation uploads a part of an archive. You can upload archive parts in any order. You can also upload them in parallel. You can upload up to 10,000 parts for a multipart upload.

Amazon Glacier rejects your upload part request if any of the following conditions is true:

  • SHA256 tree hash does not matchTo ensure that part data is not corrupted in transmission, you compute a SHA256 tree hash of the part and include it in your request. Upon receiving the part data, Amazon Glacier also computes a SHA256 tree hash. If these hash values don't match, the operation fails. For information about computing a SHA256 tree hash, see Computing Checksums.

  • Part size does not matchThe size of each part except the last must match the size specified in the corresponding InitiateMultipartUpload request. The size of the last part must be the same size as, or smaller than, the specified size.

    If you upload a part whose size is smaller than the part size you specified in your initiate multipart upload request and that part is not the last part, then the upload part request will succeed. However, the subsequent Complete Multipart Upload request will fail.

  • Range does not alignThe byte range value in the request does not align with the part size specified in the corresponding initiate request. For example, if you specify a part size of 4194304 bytes (4 MB), then 0 to 4194303 bytes (4 MB - 1) and 4194304 (4 MB) to 8388607 (8 MB - 1) are valid part ranges. However, if you set a range value of 2 MB to 6 MB, the range does not align with the part size and the upload will fail.

This operation is idempotent. If you upload the same part multiple times, the data included in the most recent request overwrites the previously uploaded data.

An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see Access Control Using AWS Identity and Access Management (IAM).

For conceptual information and underlying REST API, go to Uploading Large Archives in Parts (Multipart Upload) and Upload Part in the Amazon Glacier Developer Guide.

" + }, + "service": "

Amazon Glacier is a storage solution for \"cold data.\"

Amazon Glacier is an extremely low-cost storage service that provides secure, durable, and easy-to-use storage for data backup and archival. With Amazon Glacier, customers can store their data cost effectively for months, years, or decades. Amazon Glacier also enables customers to offload the administrative burdens of operating and scaling storage to AWS, so they don't have to worry about capacity planning, hardware provisioning, data replication, hardware failure and recovery, or time-consuming hardware migrations.

Amazon Glacier is a great storage choice when low storage cost is paramount, your data is rarely retrieved, and retrieval latency of several hours is acceptable. If your application requires fast or frequent access to your data, consider using Amazon S3. For more information, go to Amazon Simple Storage Service (Amazon S3).

You can store any kind of data in any format. There is no maximum limit on the total amount of data you can store in Amazon Glacier.

If you are a first-time user of Amazon Glacier, we recommend that you begin by reading the following sections in the Amazon Glacier Developer Guide:

  • What is Amazon Glacier - This section of the Developer Guide describes the underlying data model, the operations it supports, and the AWS SDKs that you can use to interact with the service.

  • Getting Started with Amazon Glacier - The Getting Started section walks you through the process of creating a vault, uploading archives, creating jobs to download archives, retrieving the job output, and deleting archives.

", + "shapes": { + "AbortMultipartUploadInput": { + "base": "

Provides options to abort a multipart upload identified by the upload ID.

For information about the underlying REST API, go to Abort Multipart Upload. For conceptual information, go to Working with Archives in Amazon Glacier.

", + "refs": { + } + }, + "ActionCode": { + "base": null, + "refs": { + "GlacierJobDescription$Action": "

The job type. It is either ArchiveRetrieval or InventoryRetrieval.

" + } + }, + "ArchiveCreationOutput": { + "base": "

Contains the Amazon Glacier response to your request.

For information about the underlying REST API, go to Upload Archive. For conceptual information, go to Working with Archives in Amazon Glacier.

", + "refs": { + } + }, + "CompleteMultipartUploadInput": { + "base": "

Provides options to complete a multipart upload operation. This informs Amazon Glacier that all the archive parts have been uploaded and Amazon Glacier can now assemble the archive from the uploaded parts. After assembling and saving the archive to the vault, Amazon Glacier returns the URI path of the newly created archive resource.

", + "refs": { + } + }, + "CreateVaultInput": { + "base": "

Provides options to create a vault.

", + "refs": { + } + }, + "CreateVaultOutput": { + "base": "

Contains the Amazon Glacier response to your request.

", + "refs": { + } + }, + "DataRetrievalPolicy": { + "base": "

Data retrieval policy.

", + "refs": { + "GetDataRetrievalPolicyOutput$Policy": "

Contains the returned data retrieval policy in JSON format.

", + "SetDataRetrievalPolicyInput$Policy": "

The data retrieval policy in JSON format.

" + } + }, + "DataRetrievalRule": { + "base": "

Data retrieval policy rule.

", + "refs": { + "DataRetrievalRulesList$member": null + } + }, + "DataRetrievalRulesList": { + "base": null, + "refs": { + "DataRetrievalPolicy$Rules": "

The policy rule. Although this is a list type, currently there must be only one rule, which contains a Strategy field and optionally a BytesPerHour field.

" + } + }, + "DateTime": { + "base": null, + "refs": { + "InventoryRetrievalJobDescription$StartDate": "

The start of the date range in UTC for vault inventory retrieval that includes archives created on or after this date. A string representation of ISO 8601 date format, for example, 2013-03-20T17:03:43Z.

", + "InventoryRetrievalJobDescription$EndDate": "

The end of the date range in UTC for vault inventory retrieval that includes archives created before this date. A string representation of ISO 8601 date format, for example, 2013-03-20T17:03:43Z.

" + } + }, + "DeleteArchiveInput": { + "base": "

Provides options for deleting an archive from an Amazon Glacier vault.

", + "refs": { + } + }, + "DeleteVaultAccessPolicyInput": { + "base": "

DeleteVaultAccessPolicy input.

", + "refs": { + } + }, + "DeleteVaultInput": { + "base": "

Provides options for deleting a vault from Amazon Glacier.

", + "refs": { + } + }, + "DeleteVaultNotificationsInput": { + "base": "

Provides options for deleting a vault notification configuration from an Amazon Glacier vault.

", + "refs": { + } + }, + "DescribeJobInput": { + "base": "

Provides options for retrieving a job description.

", + "refs": { + } + }, + "DescribeVaultInput": { + "base": "

Provides options for retrieving metadata for a specific vault in Amazon Glacier.

", + "refs": { + } + }, + "DescribeVaultOutput": { + "base": "

Contains the Amazon Glacier response to your request.

", + "refs": { + "VaultList$member": null + } + }, + "GetDataRetrievalPolicyInput": { + "base": "

Input for GetDataRetrievalPolicy.

", + "refs": { + } + }, + "GetDataRetrievalPolicyOutput": { + "base": "

Contains the Amazon Glacier response to the GetDataRetrievalPolicy request.

", + "refs": { + } + }, + "GetJobOutputInput": { + "base": "

Provides options for downloading output of an Amazon Glacier job.

", + "refs": { + } + }, + "GetJobOutputOutput": { + "base": "

Contains the Amazon Glacier response to your request.

", + "refs": { + } + }, + "GetVaultAccessPolicyInput": { + "base": "

Input for GetVaultAccessPolicy.

", + "refs": { + } + }, + "GetVaultAccessPolicyOutput": { + "base": "

Output for GetVaultAccessPolicy.

", + "refs": { + } + }, + "GetVaultNotificationsInput": { + "base": "

Provides options for retrieving the notification configuration set on an Amazon Glacier vault.

", + "refs": { + } + }, + "GetVaultNotificationsOutput": { + "base": "

Contains the Amazon Glacier response to your request.

", + "refs": { + } + }, + "GlacierJobDescription": { + "base": "

Describes an Amazon Glacier job.

", + "refs": { + "JobList$member": null + } + }, + "InitiateJobInput": { + "base": "

Provides options for initiating an Amazon Glacier job.

", + "refs": { + } + }, + "InitiateJobOutput": { + "base": "

Contains the Amazon Glacier response to your request.

", + "refs": { + } + }, + "InitiateMultipartUploadInput": { + "base": "

Provides options for initiating a multipart upload to an Amazon Glacier vault.

", + "refs": { + } + }, + "InitiateMultipartUploadOutput": { + "base": "

Contains the Amazon Glacier response to your request.

", + "refs": { + } + }, + "InvalidParameterValueException": { + "base": "

Returned if a parameter of the request is incorrectly specified.

", + "refs": { + } + }, + "InventoryRetrievalJobDescription": { + "base": "

Describes the options for a range inventory retrieval job.

", + "refs": { + "GlacierJobDescription$InventoryRetrievalParameters": "

Parameters used for range inventory retrieval.

" + } + }, + "InventoryRetrievalJobInput": { + "base": "

Provides options for specifying a range inventory retrieval job.

", + "refs": { + "JobParameters$InventoryRetrievalParameters": "

Input parameters used for range inventory retrieval.

" + } + }, + "JobList": { + "base": null, + "refs": { + "ListJobsOutput$JobList": "

A list of job objects. Each job object contains metadata describing the job.

" + } + }, + "JobParameters": { + "base": "

Provides options for defining a job.

", + "refs": { + "InitiateJobInput$jobParameters": "

Provides options for specifying job information.

" + } + }, + "LimitExceededException": { + "base": "

Returned if the request results in a vault or account limit being exceeded.

", + "refs": { + } + }, + "ListJobsInput": { + "base": "

Provides options for retrieving a job list for an Amazon Glacier vault.

", + "refs": { + } + }, + "ListJobsOutput": { + "base": "

Contains the Amazon Glacier response to your request.

", + "refs": { + } + }, + "ListMultipartUploadsInput": { + "base": "

Provides options for retrieving list of in-progress multipart uploads for an Amazon Glacier vault.

", + "refs": { + } + }, + "ListMultipartUploadsOutput": { + "base": "

Contains the Amazon Glacier response to your request.

", + "refs": { + } + }, + "ListPartsInput": { + "base": "

Provides options for retrieving a list of parts of an archive that have been uploaded in a specific multipart upload.

", + "refs": { + } + }, + "ListPartsOutput": { + "base": "

Contains the Amazon Glacier response to your request.

", + "refs": { + } + }, + "ListVaultsInput": { + "base": "

Provides options to retrieve the vault list owned by the calling user's account. The list provides metadata information for each vault.

", + "refs": { + } + }, + "ListVaultsOutput": { + "base": "

Contains the Amazon Glacier response to your request.

", + "refs": { + } + }, + "MissingParameterValueException": { + "base": "

Returned if a required header or parameter is missing from the request.

", + "refs": { + } + }, + "NotificationEventList": { + "base": null, + "refs": { + "VaultNotificationConfig$Events": "

A list of one or more events for which Amazon Glacier will send a notification to the specified Amazon SNS topic.

" + } + }, + "NullableLong": { + "base": null, + "refs": { + "DataRetrievalRule$BytesPerHour": "

The maximum number of bytes that can be retrieved in an hour.

This field is required only if the value of the Strategy field is BytesPerHour. Your PUT operation will be rejected if the Strategy field is not set to BytesPerHour and you set this field.

" + } + }, + "PartList": { + "base": null, + "refs": { + "ListPartsOutput$Parts": "

A list of the part sizes of the multipart upload.

" + } + }, + "PartListElement": { + "base": "

A list of the part sizes of the multipart upload.

", + "refs": { + "PartList$member": null + } + }, + "PolicyEnforcedException": { + "base": "

Returned if a retrieval job would exceed the current data policy's retrieval rate limit. For more information about data retrieval policies,

", + "refs": { + } + }, + "RequestTimeoutException": { + "base": "

Returned if, when uploading an archive, Amazon Glacier times out while receiving the upload.

", + "refs": { + } + }, + "ResourceNotFoundException": { + "base": "

Returned if the specified resource, such as a vault, upload ID, or job ID, does not exist.

", + "refs": { + } + }, + "ServiceUnavailableException": { + "base": "

Returned if the service cannot complete the request.

", + "refs": { + } + }, + "SetDataRetrievalPolicyInput": { + "base": "

SetDataRetrievalPolicy input.

", + "refs": { + } + }, + "SetVaultAccessPolicyInput": { + "base": "

SetVaultAccessPolicy input.

", + "refs": { + } + }, + "SetVaultNotificationsInput": { + "base": "

Provides options to configure notifications that will be sent when specific events happen to a vault.

", + "refs": { + } + }, + "Size": { + "base": null, + "refs": { + "GlacierJobDescription$ArchiveSizeInBytes": "

For an ArchiveRetrieval job, this is the size in bytes of the archive being requested for download. For the InventoryRetrieval job, the value is null.

", + "GlacierJobDescription$InventorySizeInBytes": "

For an InventoryRetrieval job, this is the size in bytes of the inventory requested for download. For the ArchiveRetrieval job, the value is null.

" + } + }, + "StatusCode": { + "base": null, + "refs": { + "GlacierJobDescription$StatusCode": "

The status code can be InProgress, Succeeded, or Failed, and indicates the status of the job.

" + } + }, + "Stream": { + "base": null, + "refs": { + "GetJobOutputOutput$body": "

The job data, either archive data or inventory data.

", + "UploadArchiveInput$body": "

The data to upload.

", + "UploadMultipartPartInput$body": "

The data to upload.

" + } + }, + "UploadArchiveInput": { + "base": "

Provides options to add an archive to a vault.

", + "refs": { + } + }, + "UploadListElement": { + "base": "

A list of in-progress multipart uploads for a vault.

", + "refs": { + "UploadsList$member": null + } + }, + "UploadMultipartPartInput": { + "base": "

Provides options to upload a part of an archive in a multipart upload operation.

", + "refs": { + } + }, + "UploadMultipartPartOutput": { + "base": "

Contains the Amazon Glacier response to your request.

", + "refs": { + } + }, + "UploadsList": { + "base": null, + "refs": { + "ListMultipartUploadsOutput$UploadsList": "

A list of in-progress multipart uploads.

" + } + }, + "VaultAccessPolicy": { + "base": "

Contains the vault access policy.

", + "refs": { + "GetVaultAccessPolicyOutput$policy": "

Contains the returned vault access policy as a JSON string.

", + "SetVaultAccessPolicyInput$policy": "

The vault access policy as a JSON string.

" + } + }, + "VaultList": { + "base": null, + "refs": { + "ListVaultsOutput$VaultList": "

List of vaults.

" + } + }, + "VaultNotificationConfig": { + "base": "

Represents a vault's notification configuration.

", + "refs": { + "GetVaultNotificationsOutput$vaultNotificationConfig": "

Returns the notification configuration set on the vault.

", + "SetVaultNotificationsInput$vaultNotificationConfig": "

Provides options for specifying notification configuration.

" + } + }, + "boolean": { + "base": null, + "refs": { + "GlacierJobDescription$Completed": "

The job status. When a job is completed, you get the job's output.

" + } + }, + "httpstatus": { + "base": null, + "refs": { + "GetJobOutputOutput$status": "

The HTTP response code for a job output request. The value depends on whether a range was specified in the request.

" + } + }, + "long": { + "base": null, + "refs": { + "DescribeVaultOutput$NumberOfArchives": "

The number of archives in the vault as of the last inventory date. This field will return null if an inventory has not yet run on the vault, for example, if you just created the vault.

", + "DescribeVaultOutput$SizeInBytes": "

Total size, in bytes, of the archives in the vault as of the last inventory date. This field will return null if an inventory has not yet run on the vault, for example, if you just created the vault.

", + "ListPartsOutput$PartSizeInBytes": "

The part size in bytes.

", + "UploadListElement$PartSizeInBytes": "

The part size, in bytes, specified in the Initiate Multipart Upload request. This is the size of all the parts in the upload except the last part, which may be smaller than this size.

" + } + }, + "string": { + "base": null, + "refs": { + "AbortMultipartUploadInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single apos-apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens (apos-apos) in the ID.

", + "AbortMultipartUploadInput$vaultName": "

The name of the vault.

", + "AbortMultipartUploadInput$uploadId": "

The upload ID of the multipart upload to delete.

", + "ArchiveCreationOutput$location": "

The relative URI path of the newly added archive resource.

", + "ArchiveCreationOutput$checksum": "

The checksum of the archive computed by Amazon Glacier.

", + "ArchiveCreationOutput$archiveId": "

The ID of the archive. This value is also included as part of the location.

", + "CompleteMultipartUploadInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single apos-apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens (apos-apos) in the ID.

", + "CompleteMultipartUploadInput$vaultName": "

The name of the vault.

", + "CompleteMultipartUploadInput$uploadId": "

The upload ID of the multipart upload.

", + "CompleteMultipartUploadInput$archiveSize": "

The total size, in bytes, of the entire archive. This value should be the sum of all the sizes of the individual parts that you uploaded.

", + "CompleteMultipartUploadInput$checksum": "

The SHA256 tree hash of the entire archive. It is the tree hash of SHA256 tree hash of the individual parts. If the value you specify in the request does not match the SHA256 tree hash of the final assembled archive as computed by Amazon Glacier, Amazon Glacier returns an error and the request fails.

", + "CreateVaultInput$accountId": "

The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single apos-apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your Account ID, do not include any hyphens (apos-apos) in the ID.

", + "CreateVaultInput$vaultName": "

The name of the vault.

", + "CreateVaultOutput$location": "

The URI of the vault that was created.

", + "DataRetrievalRule$Strategy": "

The type of data retrieval policy to set.

Valid values: BytesPerHour|FreeTier|None

", + "DeleteArchiveInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single apos-apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens (apos-apos) in the ID.

", + "DeleteArchiveInput$vaultName": "

The name of the vault.

", + "DeleteArchiveInput$archiveId": "

The ID of the archive to delete.

", + "DeleteVaultAccessPolicyInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single apos-apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens (apos-apos) in the ID.

", + "DeleteVaultAccessPolicyInput$vaultName": "

The name of the vault.

", + "DeleteVaultInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single apos-apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens (apos-apos) in the ID.

", + "DeleteVaultInput$vaultName": "

The name of the vault.

", + "DeleteVaultNotificationsInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single apos-apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens (apos-apos) in the ID.

", + "DeleteVaultNotificationsInput$vaultName": "

The name of the vault.

", + "DescribeJobInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single apos-apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens (apos-apos) in the ID.

", + "DescribeJobInput$vaultName": "

The name of the vault.

", + "DescribeJobInput$jobId": "

The ID of the job to describe.

", + "DescribeVaultInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single apos-apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens (apos-apos) in the ID.

", + "DescribeVaultInput$vaultName": "

The name of the vault.

", + "DescribeVaultOutput$VaultARN": "

The Amazon Resource Name (ARN) of the vault.

", + "DescribeVaultOutput$VaultName": "

The name of the vault.

", + "DescribeVaultOutput$CreationDate": "

The UTC date when the vault was created. A string representation of ISO 8601 date format, for example, \"2012-03-20T17:03:43.221Z\".

", + "DescribeVaultOutput$LastInventoryDate": "

The UTC date when Amazon Glacier completed the last vault inventory. A string representation of ISO 8601 date format, for example, \"2012-03-20T17:03:43.221Z\".

", + "GetDataRetrievalPolicyInput$accountId": "

The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single apos-apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your Account ID, do not include any hyphens (apos-apos) in the ID.

", + "GetJobOutputInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single apos-apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens (apos-apos) in the ID.

", + "GetJobOutputInput$vaultName": "

The name of the vault.

", + "GetJobOutputInput$jobId": "

The job ID whose data is downloaded.

", + "GetJobOutputInput$range": "

The range of bytes to retrieve from the output. For example, if you want to download the first 1,048,576 bytes, specify \"Range: bytes=0-1048575\". By default, this operation downloads the entire output.

", + "GetJobOutputOutput$checksum": "

The checksum of the data in the response. This header is returned only when retrieving the output for an archive retrieval job. Furthermore, this header appears only under the following conditions:

  • You get the entire range of the archive.
  • You request a range to return of the archive that starts and ends on a multiple of 1 MB. For example, if you have an 3.1 MB archive and you specify a range to return that starts at 1 MB and ends at 2 MB, then the x-amz-sha256-tree-hash is returned as a response header.
  • You request a range of the archive to return that starts on a multiple of 1 MB and goes to the end of the archive. For example, if you have a 3.1 MB archive and you specify a range that starts at 2 MB and ends at 3.1 MB (the end of the archive), then the x-amz-sha256-tree-hash is returned as a response header.

", + "GetJobOutputOutput$contentRange": "

The range of bytes returned by Amazon Glacier. If only partial output is downloaded, the response provides the range of bytes Amazon Glacier returned. For example, bytes 0-1048575/8388608 returns the first 1 MB from 8 MB.

", + "GetJobOutputOutput$acceptRanges": "

Indicates the range units accepted. For more information, go to RFC2616.

", + "GetJobOutputOutput$contentType": "

The Content-Type depends on whether the job output is an archive or a vault inventory. For archive data, the Content-Type is application/octet-stream. For vault inventory, if you requested CSV format when you initiated the job, the Content-Type is text/csv. Otherwise, by default, vault inventory is returned as JSON, and the Content-Type is application/json.

", + "GetJobOutputOutput$archiveDescription": "

The description of an archive.

", + "GetVaultAccessPolicyInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single apos-apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens (apos-apos) in the ID.

", + "GetVaultAccessPolicyInput$vaultName": "

The name of the vault.

", + "GetVaultNotificationsInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single apos-apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens (apos-apos) in the ID.

", + "GetVaultNotificationsInput$vaultName": "

The name of the vault.

", + "GlacierJobDescription$JobId": "

An opaque string that identifies an Amazon Glacier job.

", + "GlacierJobDescription$JobDescription": "

The job description you provided when you initiated the job.

", + "GlacierJobDescription$ArchiveId": "

For an ArchiveRetrieval job, this is the archive ID requested for download. Otherwise, this field is null.

", + "GlacierJobDescription$VaultARN": "

The Amazon Resource Name (ARN) of the vault from which the archive retrieval was requested.

", + "GlacierJobDescription$CreationDate": "

The UTC date when the job was created. A string representation of ISO 8601 date format, for example, \"2012-03-20T17:03:43.221Z\".

", + "GlacierJobDescription$StatusMessage": "

A friendly message that describes the job status.

", + "GlacierJobDescription$SNSTopic": "

An Amazon Simple Notification Service (Amazon SNS) topic that receives notification.

", + "GlacierJobDescription$CompletionDate": "

The UTC time that the archive retrieval request completed. While the job is in progress, the value will be null.

", + "GlacierJobDescription$SHA256TreeHash": "

For an ArchiveRetrieval job, it is the checksum of the archive. Otherwise, the value is null.

The SHA256 tree hash value for the requested range of an archive. If the Initiate a Job request for an archive specified a tree-hash aligned range, then this field returns a value.

For the specific case when the whole archive is retrieved, this value is the same as the ArchiveSHA256TreeHash value.

This field is null in the following situations:

  • Archive retrieval jobs that specify a range that is not tree-hash aligned.

  • Archival jobs that specify a range that is equal to the whole archive and the job status is InProgress.

  • Inventory jobs.

", + "GlacierJobDescription$ArchiveSHA256TreeHash": "

The SHA256 tree hash of the entire archive for an archive retrieval. For inventory retrieval jobs, this field is null.

", + "GlacierJobDescription$RetrievalByteRange": "

The retrieved byte range for archive retrieval jobs in the form \"StartByteValue-EndByteValue\" If no range was specified in the archive retrieval, then the whole archive is retrieved and StartByteValue equals 0 and EndByteValue equals the size of the archive minus 1. For inventory retrieval jobs this field is null.

", + "InitiateJobInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single apos-apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens (apos-apos) in the ID.

", + "InitiateJobInput$vaultName": "

The name of the vault.

", + "InitiateJobOutput$location": "

The relative URI path of the job.

", + "InitiateJobOutput$jobId": "

The ID of the job.

", + "InitiateMultipartUploadInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single apos-apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens (apos-apos) in the ID.

", + "InitiateMultipartUploadInput$vaultName": "

The name of the vault.

", + "InitiateMultipartUploadInput$archiveDescription": "

The archive description that you are uploading in parts.

The part size must be a megabyte (1024 KB) multiplied by a power of 2—for example, 1048576 (1 MB), 2097152 (2 MB), 4194304 (4 MB), 8388608 (8 MB), and so on. The minimum allowable part size is 1 MB, and the maximum is 4 GB (4096 MB).

", + "InitiateMultipartUploadInput$partSize": "

The size of each part except the last, in bytes. The last part can be smaller than this part size.

", + "InitiateMultipartUploadOutput$location": "

The relative URI path of the multipart upload ID Amazon Glacier created.

", + "InitiateMultipartUploadOutput$uploadId": "

The ID of the multipart upload. This value is also included as part of the location.

", + "InvalidParameterValueException$type": "

Client

", + "InvalidParameterValueException$code": "

400 Bad Request

", + "InvalidParameterValueException$message": null, + "InventoryRetrievalJobDescription$Format": "

The output format for the vault inventory list, which is set by the InitiateJob request when initiating a job to retrieve a vault inventory. Valid values are \"CSV\" and \"JSON\".

", + "InventoryRetrievalJobDescription$Limit": "

Specifies the maximum number of inventory items returned per vault inventory retrieval request. This limit is set when initiating the job with the a InitiateJob request.

", + "InventoryRetrievalJobDescription$Marker": "

An opaque string that represents where to continue pagination of the vault inventory retrieval results. You use the marker in a new InitiateJob request to obtain additional inventory items. If there are no more inventory items, this value is null. For more information, see Range Inventory Retrieval.

", + "InventoryRetrievalJobInput$StartDate": "

The start of the date range in UTC for vault inventory retrieval that includes archives created on or after this date. A string representation of ISO 8601 date format, for example, 2013-03-20T17:03:43Z.

", + "InventoryRetrievalJobInput$EndDate": "

The end of the date range in UTC for vault inventory retrieval that includes archives created before this date. A string representation of ISO 8601 date format, for example, 2013-03-20T17:03:43Z.

", + "InventoryRetrievalJobInput$Limit": "

Specifies the maximum number of inventory items returned per vault inventory retrieval request. Valid values are greater than or equal to 1.

", + "InventoryRetrievalJobInput$Marker": "

An opaque string that represents where to continue pagination of the vault inventory retrieval results. You use the marker in a new InitiateJob request to obtain additional inventory items. If there are no more inventory items, this value is null.

", + "JobParameters$Format": "

When initiating a job to retrieve a vault inventory, you can optionally add this parameter to your request to specify the output format. If you are initiating an inventory job and do not specify a Format field, JSON is the default format. Valid values are \"CSV\" and \"JSON\".

", + "JobParameters$Type": "

The job type. You can initiate a job to retrieve an archive or get an inventory of a vault. Valid values are \"archive-retrieval\" and \"inventory-retrieval\".

", + "JobParameters$ArchiveId": "

The ID of the archive that you want to retrieve. This field is required only if Type is set to archive-retrieval. An error occurs if you specify this request parameter for an inventory retrieval job request.

", + "JobParameters$Description": "

The optional description for the job. The description must be less than or equal to 1,024 bytes. The allowable characters are 7-bit ASCII without control codes-specifically, ASCII values 32-126 decimal or 0x20-0x7E hexadecimal.

", + "JobParameters$SNSTopic": "

The Amazon SNS topic ARN to which Amazon Glacier sends a notification when the job is completed and the output is ready for you to download. The specified topic publishes the notification to its subscribers. The SNS topic must exist.

", + "JobParameters$RetrievalByteRange": "

The byte range to retrieve for an archive retrieval. in the form \"StartByteValue-EndByteValue\" If not specified, the whole archive is retrieved. If specified, the byte range must be megabyte (1024*1024) aligned which means that StartByteValue must be divisible by 1 MB and EndByteValue plus 1 must be divisible by 1 MB or be the end of the archive specified as the archive byte size value minus 1. If RetrievalByteRange is not megabyte aligned, this operation returns a 400 response.

An error occurs if you specify this field for an inventory retrieval job request.

", + "LimitExceededException$type": "

Client

", + "LimitExceededException$code": "

400 Bad Request

", + "LimitExceededException$message": null, + "ListJobsInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single apos-apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens (apos-apos) in the ID.

", + "ListJobsInput$vaultName": "

The name of the vault.

", + "ListJobsInput$limit": "

Specifies that the response be limited to the specified number of items or fewer. If not specified, the List Jobs operation returns up to 1,000 jobs.

", + "ListJobsInput$marker": "

An opaque string used for pagination. This value specifies the job at which the listing of jobs should begin. Get the marker value from a previous List Jobs response. You need only include the marker if you are continuing the pagination of results started in a previous List Jobs request.

", + "ListJobsInput$statuscode": "

Specifies the type of job status to return. You can specify the following values: \"InProgress\", \"Succeeded\", or \"Failed\".

", + "ListJobsInput$completed": "

Specifies the state of the jobs to return. You can specify true or false.

", + "ListJobsOutput$Marker": "

An opaque string that represents where to continue pagination of the results. You use this value in a new List Jobs request to obtain more jobs in the list. If there are no more jobs, this value is null.

", + "ListMultipartUploadsInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single apos-apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens (apos-apos) in the ID.

", + "ListMultipartUploadsInput$vaultName": "

The name of the vault.

", + "ListMultipartUploadsInput$marker": "

An opaque string used for pagination. This value specifies the upload at which the listing of uploads should begin. Get the marker value from a previous List Uploads response. You need only include the marker if you are continuing the pagination of results started in a previous List Uploads request.

", + "ListMultipartUploadsInput$limit": "

Specifies the maximum number of uploads returned in the response body. If this value is not specified, the List Uploads operation returns up to 1,000 uploads.

", + "ListMultipartUploadsOutput$Marker": "

An opaque string that represents where to continue pagination of the results. You use the marker in a new List Multipart Uploads request to obtain more uploads in the list. If there are no more uploads, this value is null.

", + "ListPartsInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single apos-apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens (apos-apos) in the ID.

", + "ListPartsInput$vaultName": "

The name of the vault.

", + "ListPartsInput$uploadId": "

The upload ID of the multipart upload.

", + "ListPartsInput$marker": "

An opaque string used for pagination. This value specifies the part at which the listing of parts should begin. Get the marker value from the response of a previous List Parts response. You need only include the marker if you are continuing the pagination of results started in a previous List Parts request.

", + "ListPartsInput$limit": "

Specifies the maximum number of parts returned in the response body. If this value is not specified, the List Parts operation returns up to 1,000 uploads.

", + "ListPartsOutput$MultipartUploadId": "

The ID of the upload to which the parts are associated.

", + "ListPartsOutput$VaultARN": "

The Amazon Resource Name (ARN) of the vault to which the multipart upload was initiated.

", + "ListPartsOutput$ArchiveDescription": "

The description of the archive that was specified in the Initiate Multipart Upload request.

", + "ListPartsOutput$CreationDate": "

The UTC time at which the multipart upload was initiated.

", + "ListPartsOutput$Marker": "

An opaque string that represents where to continue pagination of the results. You use the marker in a new List Parts request to obtain more jobs in the list. If there are no more parts, this value is null.

", + "ListVaultsInput$accountId": "

The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single apos-apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your Account ID, do not include any hyphens (apos-apos) in the ID.

", + "ListVaultsInput$marker": "

A string used for pagination. The marker specifies the vault ARN after which the listing of vaults should begin.

", + "ListVaultsInput$limit": "

The maximum number of items returned in the response. If you don't specify a value, the List Vaults operation returns up to 1,000 items.

", + "ListVaultsOutput$Marker": "

The vault ARN at which to continue pagination of the results. You use the marker in another List Vaults request to obtain more vaults in the list.

", + "MissingParameterValueException$type": "

Client.

", + "MissingParameterValueException$code": "

400 Bad Request

", + "MissingParameterValueException$message": null, + "NotificationEventList$member": null, + "PartListElement$RangeInBytes": "

The byte range of a part, inclusive of the upper value of the range.

", + "PartListElement$SHA256TreeHash": "

The SHA256 tree hash value that Amazon Glacier calculated for the part. This field is never null.

", + "PolicyEnforcedException$type": "

Client

", + "PolicyEnforcedException$code": "

PolicyEnforcedException

", + "PolicyEnforcedException$message": "

InitiateJob request denied by current data retrieval policy.

", + "RequestTimeoutException$type": "

Client

", + "RequestTimeoutException$code": "

408 Request Timeout

", + "RequestTimeoutException$message": null, + "ResourceNotFoundException$type": "

Client

", + "ResourceNotFoundException$code": "

404 Not Found

", + "ResourceNotFoundException$message": null, + "ServiceUnavailableException$type": "

Server

", + "ServiceUnavailableException$code": "

500 Internal Server Error

", + "ServiceUnavailableException$message": null, + "SetDataRetrievalPolicyInput$accountId": "

The AccountId value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single apos-apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your Account ID, do not include any hyphens (apos-apos) in the ID.

", + "SetVaultAccessPolicyInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single apos-apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens (apos-apos) in the ID.

", + "SetVaultAccessPolicyInput$vaultName": "

The name of the vault.

", + "SetVaultNotificationsInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single apos-apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens (apos-apos) in the ID.

", + "SetVaultNotificationsInput$vaultName": "

The name of the vault.

", + "UploadArchiveInput$vaultName": "

The name of the vault.

", + "UploadArchiveInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single apos-apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens (apos-apos) in the ID.

", + "UploadArchiveInput$archiveDescription": "

The optional description of the archive you are uploading.

", + "UploadArchiveInput$checksum": "

The SHA256 tree hash of the data being uploaded.

", + "UploadListElement$MultipartUploadId": "

The ID of a multipart upload.

", + "UploadListElement$VaultARN": "

The Amazon Resource Name (ARN) of the vault that contains the archive.

", + "UploadListElement$ArchiveDescription": "

The description of the archive that was specified in the Initiate Multipart Upload request.

", + "UploadListElement$CreationDate": "

The UTC time at which the multipart upload was initiated.

", + "UploadMultipartPartInput$accountId": "

The AccountId value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single apos-apos (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens (apos-apos) in the ID.

", + "UploadMultipartPartInput$vaultName": "

The name of the vault.

", + "UploadMultipartPartInput$uploadId": "

The upload ID of the multipart upload.

", + "UploadMultipartPartInput$checksum": "

The SHA256 tree hash of the data being uploaded.

", + "UploadMultipartPartInput$range": "

Identifies the range of bytes in the assembled archive that will be uploaded in this part. Amazon Glacier uses this information to assemble the archive in the proper sequence. The format of this header follows RFC 2616. An example header is Content-Range:bytes 0-4194303/*.

", + "UploadMultipartPartOutput$checksum": "

The SHA256 tree hash that Amazon Glacier computed for the uploaded part.

", + "VaultAccessPolicy$Policy": "

The vault access policy.

", + "VaultNotificationConfig$SNSTopic": "

The Amazon Simple Notification Service (Amazon SNS) topic Amazon Resource Name (ARN).

" + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/glacier/2012-06-01/paginators-1.json b/lib/aws-sdk/Aws/data/glacier/2012-06-01/paginators-1.json new file mode 100644 index 0000000..6969143 --- /dev/null +++ b/lib/aws-sdk/Aws/data/glacier/2012-06-01/paginators-1.json @@ -0,0 +1,28 @@ +{ + "pagination": { + "ListJobs": { + "input_token": "marker", + "output_token": "Marker", + "limit_key": "limit", + "result_key": "JobList" + }, + "ListMultipartUploads": { + "input_token": "marker", + "output_token": "Marker", + "limit_key": "limit", + "result_key": "UploadsList" + }, + "ListParts": { + "input_token": "marker", + "output_token": "Marker", + "limit_key": "limit", + "result_key": "Parts" + }, + "ListVaults": { + "input_token": "marker", + "output_token": "Marker", + "limit_key": "limit", + "result_key": "VaultList" + } + } +} diff --git a/lib/aws-sdk/Aws/data/glacier/2012-06-01/waiters-2.json b/lib/aws-sdk/Aws/data/glacier/2012-06-01/waiters-2.json new file mode 100644 index 0000000..07a64a0 --- /dev/null +++ b/lib/aws-sdk/Aws/data/glacier/2012-06-01/waiters-2.json @@ -0,0 +1,39 @@ +{ + "version": 2, + "waiters": { + "VaultExists": { + "operation": "DescribeVault", + "delay": 3, + "maxAttempts": 15, + "acceptors": [ + { + "state": "success", + "matcher": "status", + "expected": 200 + }, + { + "state": "retry", + "matcher": "error", + "expected": "ResourceNotFoundException" + } + ] + }, + "VaultNotExists": { + "operation": "DescribeVault", + "delay": 3, + "maxAttempts": 15, + "acceptors": [ + { + "state": "retry", + "matcher": "status", + "expected": 200 + }, + { + "state": "success", + "matcher": "error", + "expected": "ResourceNotFoundException" + } + ] + } + } +} diff --git a/lib/aws-sdk/Aws/data/iam/2010-05-08/api-2.json b/lib/aws-sdk/Aws/data/iam/2010-05-08/api-2.json new file mode 100644 index 0000000..b6ea92a --- /dev/null +++ b/lib/aws-sdk/Aws/data/iam/2010-05-08/api-2.json @@ -0,0 +1,6455 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2010-05-08", + "endpointPrefix":"iam", + "globalEndpoint":"iam.amazonaws.com", + "serviceAbbreviation":"IAM", + "serviceFullName":"AWS Identity and Access Management", + "signatureVersion":"v4", + "xmlNamespace":"https://iam.amazonaws.com/doc/2010-05-08/", + "protocol":"query" + }, + "operations":{ + "AddClientIDToOpenIDConnectProvider":{ + "name":"AddClientIDToOpenIDConnectProvider", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddClientIDToOpenIDConnectProviderRequest"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "AddRoleToInstanceProfile":{ + "name":"AddRoleToInstanceProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddRoleToInstanceProfileRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"EntityAlreadyExistsException", + "error":{ + "code":"EntityAlreadyExists", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "AddUserToGroup":{ + "name":"AddUserToGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddUserToGroupRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "AttachGroupPolicy":{ + "name":"AttachGroupPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AttachGroupPolicyRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "AttachRolePolicy":{ + "name":"AttachRolePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AttachRolePolicyRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "AttachUserPolicy":{ + "name":"AttachUserPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AttachUserPolicyRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ChangePassword":{ + "name":"ChangePassword", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ChangePasswordRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidUserTypeException", + "error":{ + "code":"InvalidUserType", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"EntityTemporarilyUnmodifiableException", + "error":{ + "code":"EntityTemporarilyUnmodifiable", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"PasswordPolicyViolationException", + "error":{ + "code":"PasswordPolicyViolation", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "CreateAccessKey":{ + "name":"CreateAccessKey", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateAccessKeyRequest"}, + "output":{ + "shape":"CreateAccessKeyResponse", + "resultWrapper":"CreateAccessKeyResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "CreateAccountAlias":{ + "name":"CreateAccountAlias", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateAccountAliasRequest"}, + "errors":[ + { + "shape":"EntityAlreadyExistsException", + "error":{ + "code":"EntityAlreadyExists", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "CreateGroup":{ + "name":"CreateGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateGroupRequest"}, + "output":{ + "shape":"CreateGroupResponse", + "resultWrapper":"CreateGroupResult" + }, + "errors":[ + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"EntityAlreadyExistsException", + "error":{ + "code":"EntityAlreadyExists", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "CreateInstanceProfile":{ + "name":"CreateInstanceProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateInstanceProfileRequest"}, + "output":{ + "shape":"CreateInstanceProfileResponse", + "resultWrapper":"CreateInstanceProfileResult" + }, + "errors":[ + { + "shape":"EntityAlreadyExistsException", + "error":{ + "code":"EntityAlreadyExists", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "CreateLoginProfile":{ + "name":"CreateLoginProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateLoginProfileRequest"}, + "output":{ + "shape":"CreateLoginProfileResponse", + "resultWrapper":"CreateLoginProfileResult" + }, + "errors":[ + { + "shape":"EntityAlreadyExistsException", + "error":{ + "code":"EntityAlreadyExists", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"PasswordPolicyViolationException", + "error":{ + "code":"PasswordPolicyViolation", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "CreateOpenIDConnectProvider":{ + "name":"CreateOpenIDConnectProvider", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateOpenIDConnectProviderRequest"}, + "output":{ + "shape":"CreateOpenIDConnectProviderResponse", + "resultWrapper":"CreateOpenIDConnectProviderResult" + }, + "errors":[ + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"EntityAlreadyExistsException", + "error":{ + "code":"EntityAlreadyExists", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "CreatePolicy":{ + "name":"CreatePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreatePolicyRequest"}, + "output":{ + "shape":"CreatePolicyResponse", + "resultWrapper":"CreatePolicyResult" + }, + "errors":[ + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"EntityAlreadyExistsException", + "error":{ + "code":"EntityAlreadyExists", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"MalformedPolicyDocumentException", + "error":{ + "code":"MalformedPolicyDocument", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "CreatePolicyVersion":{ + "name":"CreatePolicyVersion", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreatePolicyVersionRequest"}, + "output":{ + "shape":"CreatePolicyVersionResponse", + "resultWrapper":"CreatePolicyVersionResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"MalformedPolicyDocumentException", + "error":{ + "code":"MalformedPolicyDocument", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "CreateRole":{ + "name":"CreateRole", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateRoleRequest"}, + "output":{ + "shape":"CreateRoleResponse", + "resultWrapper":"CreateRoleResult" + }, + "errors":[ + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"EntityAlreadyExistsException", + "error":{ + "code":"EntityAlreadyExists", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"MalformedPolicyDocumentException", + "error":{ + "code":"MalformedPolicyDocument", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "CreateSAMLProvider":{ + "name":"CreateSAMLProvider", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateSAMLProviderRequest"}, + "output":{ + "shape":"CreateSAMLProviderResponse", + "resultWrapper":"CreateSAMLProviderResult" + }, + "errors":[ + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"EntityAlreadyExistsException", + "error":{ + "code":"EntityAlreadyExists", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "CreateUser":{ + "name":"CreateUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateUserRequest"}, + "output":{ + "shape":"CreateUserResponse", + "resultWrapper":"CreateUserResult" + }, + "errors":[ + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"EntityAlreadyExistsException", + "error":{ + "code":"EntityAlreadyExists", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "CreateVirtualMFADevice":{ + "name":"CreateVirtualMFADevice", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVirtualMFADeviceRequest"}, + "output":{ + "shape":"CreateVirtualMFADeviceResponse", + "resultWrapper":"CreateVirtualMFADeviceResult" + }, + "errors":[ + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"EntityAlreadyExistsException", + "error":{ + "code":"EntityAlreadyExists", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DeactivateMFADevice":{ + "name":"DeactivateMFADevice", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeactivateMFADeviceRequest"}, + "errors":[ + { + "shape":"EntityTemporarilyUnmodifiableException", + "error":{ + "code":"EntityTemporarilyUnmodifiable", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DeleteAccessKey":{ + "name":"DeleteAccessKey", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteAccessKeyRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DeleteAccountAlias":{ + "name":"DeleteAccountAlias", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteAccountAliasRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DeleteAccountPasswordPolicy":{ + "name":"DeleteAccountPasswordPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DeleteGroup":{ + "name":"DeleteGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteGroupRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DeleteConflictException", + "error":{ + "code":"DeleteConflict", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DeleteGroupPolicy":{ + "name":"DeleteGroupPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteGroupPolicyRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DeleteInstanceProfile":{ + "name":"DeleteInstanceProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteInstanceProfileRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DeleteConflictException", + "error":{ + "code":"DeleteConflict", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DeleteLoginProfile":{ + "name":"DeleteLoginProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteLoginProfileRequest"}, + "errors":[ + { + "shape":"EntityTemporarilyUnmodifiableException", + "error":{ + "code":"EntityTemporarilyUnmodifiable", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DeleteOpenIDConnectProvider":{ + "name":"DeleteOpenIDConnectProvider", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteOpenIDConnectProviderRequest"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DeletePolicy":{ + "name":"DeletePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeletePolicyRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DeleteConflictException", + "error":{ + "code":"DeleteConflict", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DeletePolicyVersion":{ + "name":"DeletePolicyVersion", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeletePolicyVersionRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DeleteConflictException", + "error":{ + "code":"DeleteConflict", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DeleteRole":{ + "name":"DeleteRole", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRoleRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DeleteConflictException", + "error":{ + "code":"DeleteConflict", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DeleteRolePolicy":{ + "name":"DeleteRolePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRolePolicyRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DeleteSAMLProvider":{ + "name":"DeleteSAMLProvider", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteSAMLProviderRequest"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DeleteServerCertificate":{ + "name":"DeleteServerCertificate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteServerCertificateRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DeleteConflictException", + "error":{ + "code":"DeleteConflict", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DeleteSigningCertificate":{ + "name":"DeleteSigningCertificate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteSigningCertificateRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DeleteUser":{ + "name":"DeleteUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteUserRequest"}, + "errors":[ + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DeleteConflictException", + "error":{ + "code":"DeleteConflict", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DeleteUserPolicy":{ + "name":"DeleteUserPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteUserPolicyRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DeleteVirtualMFADevice":{ + "name":"DeleteVirtualMFADevice", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVirtualMFADeviceRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DeleteConflictException", + "error":{ + "code":"DeleteConflict", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DetachGroupPolicy":{ + "name":"DetachGroupPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetachGroupPolicyRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DetachRolePolicy":{ + "name":"DetachRolePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetachRolePolicyRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DetachUserPolicy":{ + "name":"DetachUserPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetachUserPolicyRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "EnableMFADevice":{ + "name":"EnableMFADevice", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableMFADeviceRequest"}, + "errors":[ + { + "shape":"EntityAlreadyExistsException", + "error":{ + "code":"EntityAlreadyExists", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"EntityTemporarilyUnmodifiableException", + "error":{ + "code":"EntityTemporarilyUnmodifiable", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidAuthenticationCodeException", + "error":{ + "code":"InvalidAuthenticationCode", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "GenerateCredentialReport":{ + "name":"GenerateCredentialReport", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "output":{ + "shape":"GenerateCredentialReportResponse", + "resultWrapper":"GenerateCredentialReportResult" + }, + "errors":[ + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "GetAccessKeyLastUsed":{ + "name":"GetAccessKeyLastUsed", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetAccessKeyLastUsedRequest"}, + "output":{ + "shape":"GetAccessKeyLastUsedResponse", + "resultWrapper":"GetAccessKeyLastUsedResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "GetAccountAuthorizationDetails":{ + "name":"GetAccountAuthorizationDetails", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetAccountAuthorizationDetailsRequest"}, + "output":{ + "shape":"GetAccountAuthorizationDetailsResponse", + "resultWrapper":"GetAccountAuthorizationDetailsResult" + }, + "errors":[ + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "GetAccountPasswordPolicy":{ + "name":"GetAccountPasswordPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "output":{ + "shape":"GetAccountPasswordPolicyResponse", + "resultWrapper":"GetAccountPasswordPolicyResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "GetAccountSummary":{ + "name":"GetAccountSummary", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "output":{ + "shape":"GetAccountSummaryResponse", + "resultWrapper":"GetAccountSummaryResult" + }, + "errors":[ + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "GetCredentialReport":{ + "name":"GetCredentialReport", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "output":{ + "shape":"GetCredentialReportResponse", + "resultWrapper":"GetCredentialReportResult" + }, + "errors":[ + { + "shape":"CredentialReportNotPresentException", + "error":{ + "code":"ReportNotPresent", + "httpStatusCode":410, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CredentialReportExpiredException", + "error":{ + "code":"ReportExpired", + "httpStatusCode":410, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CredentialReportNotReadyException", + "error":{ + "code":"ReportInProgress", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "GetGroup":{ + "name":"GetGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetGroupRequest"}, + "output":{ + "shape":"GetGroupResponse", + "resultWrapper":"GetGroupResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "GetGroupPolicy":{ + "name":"GetGroupPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetGroupPolicyRequest"}, + "output":{ + "shape":"GetGroupPolicyResponse", + "resultWrapper":"GetGroupPolicyResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "GetInstanceProfile":{ + "name":"GetInstanceProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetInstanceProfileRequest"}, + "output":{ + "shape":"GetInstanceProfileResponse", + "resultWrapper":"GetInstanceProfileResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "GetLoginProfile":{ + "name":"GetLoginProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetLoginProfileRequest"}, + "output":{ + "shape":"GetLoginProfileResponse", + "resultWrapper":"GetLoginProfileResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "GetOpenIDConnectProvider":{ + "name":"GetOpenIDConnectProvider", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetOpenIDConnectProviderRequest"}, + "output":{ + "shape":"GetOpenIDConnectProviderResponse", + "resultWrapper":"GetOpenIDConnectProviderResult" + }, + "errors":[ + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "GetPolicy":{ + "name":"GetPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetPolicyRequest"}, + "output":{ + "shape":"GetPolicyResponse", + "resultWrapper":"GetPolicyResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "GetPolicyVersion":{ + "name":"GetPolicyVersion", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetPolicyVersionRequest"}, + "output":{ + "shape":"GetPolicyVersionResponse", + "resultWrapper":"GetPolicyVersionResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "GetRole":{ + "name":"GetRole", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRoleRequest"}, + "output":{ + "shape":"GetRoleResponse", + "resultWrapper":"GetRoleResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "GetRolePolicy":{ + "name":"GetRolePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRolePolicyRequest"}, + "output":{ + "shape":"GetRolePolicyResponse", + "resultWrapper":"GetRolePolicyResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "GetSAMLProvider":{ + "name":"GetSAMLProvider", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetSAMLProviderRequest"}, + "output":{ + "shape":"GetSAMLProviderResponse", + "resultWrapper":"GetSAMLProviderResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "GetServerCertificate":{ + "name":"GetServerCertificate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetServerCertificateRequest"}, + "output":{ + "shape":"GetServerCertificateResponse", + "resultWrapper":"GetServerCertificateResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "GetUser":{ + "name":"GetUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetUserRequest"}, + "output":{ + "shape":"GetUserResponse", + "resultWrapper":"GetUserResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "GetUserPolicy":{ + "name":"GetUserPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetUserPolicyRequest"}, + "output":{ + "shape":"GetUserPolicyResponse", + "resultWrapper":"GetUserPolicyResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListAccessKeys":{ + "name":"ListAccessKeys", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListAccessKeysRequest"}, + "output":{ + "shape":"ListAccessKeysResponse", + "resultWrapper":"ListAccessKeysResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListAccountAliases":{ + "name":"ListAccountAliases", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListAccountAliasesRequest"}, + "output":{ + "shape":"ListAccountAliasesResponse", + "resultWrapper":"ListAccountAliasesResult" + }, + "errors":[ + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListAttachedGroupPolicies":{ + "name":"ListAttachedGroupPolicies", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListAttachedGroupPoliciesRequest"}, + "output":{ + "shape":"ListAttachedGroupPoliciesResponse", + "resultWrapper":"ListAttachedGroupPoliciesResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListAttachedRolePolicies":{ + "name":"ListAttachedRolePolicies", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListAttachedRolePoliciesRequest"}, + "output":{ + "shape":"ListAttachedRolePoliciesResponse", + "resultWrapper":"ListAttachedRolePoliciesResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListAttachedUserPolicies":{ + "name":"ListAttachedUserPolicies", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListAttachedUserPoliciesRequest"}, + "output":{ + "shape":"ListAttachedUserPoliciesResponse", + "resultWrapper":"ListAttachedUserPoliciesResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListEntitiesForPolicy":{ + "name":"ListEntitiesForPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListEntitiesForPolicyRequest"}, + "output":{ + "shape":"ListEntitiesForPolicyResponse", + "resultWrapper":"ListEntitiesForPolicyResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListGroupPolicies":{ + "name":"ListGroupPolicies", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListGroupPoliciesRequest"}, + "output":{ + "shape":"ListGroupPoliciesResponse", + "resultWrapper":"ListGroupPoliciesResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListGroups":{ + "name":"ListGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListGroupsRequest"}, + "output":{ + "shape":"ListGroupsResponse", + "resultWrapper":"ListGroupsResult" + }, + "errors":[ + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListGroupsForUser":{ + "name":"ListGroupsForUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListGroupsForUserRequest"}, + "output":{ + "shape":"ListGroupsForUserResponse", + "resultWrapper":"ListGroupsForUserResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListInstanceProfiles":{ + "name":"ListInstanceProfiles", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListInstanceProfilesRequest"}, + "output":{ + "shape":"ListInstanceProfilesResponse", + "resultWrapper":"ListInstanceProfilesResult" + }, + "errors":[ + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListInstanceProfilesForRole":{ + "name":"ListInstanceProfilesForRole", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListInstanceProfilesForRoleRequest"}, + "output":{ + "shape":"ListInstanceProfilesForRoleResponse", + "resultWrapper":"ListInstanceProfilesForRoleResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListMFADevices":{ + "name":"ListMFADevices", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListMFADevicesRequest"}, + "output":{ + "shape":"ListMFADevicesResponse", + "resultWrapper":"ListMFADevicesResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListOpenIDConnectProviders":{ + "name":"ListOpenIDConnectProviders", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListOpenIDConnectProvidersRequest"}, + "output":{ + "shape":"ListOpenIDConnectProvidersResponse", + "resultWrapper":"ListOpenIDConnectProvidersResult" + }, + "errors":[ + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListPolicies":{ + "name":"ListPolicies", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListPoliciesRequest"}, + "output":{ + "shape":"ListPoliciesResponse", + "resultWrapper":"ListPoliciesResult" + }, + "errors":[ + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListPolicyVersions":{ + "name":"ListPolicyVersions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListPolicyVersionsRequest"}, + "output":{ + "shape":"ListPolicyVersionsResponse", + "resultWrapper":"ListPolicyVersionsResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListRolePolicies":{ + "name":"ListRolePolicies", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListRolePoliciesRequest"}, + "output":{ + "shape":"ListRolePoliciesResponse", + "resultWrapper":"ListRolePoliciesResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListRoles":{ + "name":"ListRoles", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListRolesRequest"}, + "output":{ + "shape":"ListRolesResponse", + "resultWrapper":"ListRolesResult" + }, + "errors":[ + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListSAMLProviders":{ + "name":"ListSAMLProviders", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListSAMLProvidersRequest"}, + "output":{ + "shape":"ListSAMLProvidersResponse", + "resultWrapper":"ListSAMLProvidersResult" + }, + "errors":[ + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListServerCertificates":{ + "name":"ListServerCertificates", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListServerCertificatesRequest"}, + "output":{ + "shape":"ListServerCertificatesResponse", + "resultWrapper":"ListServerCertificatesResult" + }, + "errors":[ + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListSigningCertificates":{ + "name":"ListSigningCertificates", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListSigningCertificatesRequest"}, + "output":{ + "shape":"ListSigningCertificatesResponse", + "resultWrapper":"ListSigningCertificatesResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListUserPolicies":{ + "name":"ListUserPolicies", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListUserPoliciesRequest"}, + "output":{ + "shape":"ListUserPoliciesResponse", + "resultWrapper":"ListUserPoliciesResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListUsers":{ + "name":"ListUsers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListUsersRequest"}, + "output":{ + "shape":"ListUsersResponse", + "resultWrapper":"ListUsersResult" + }, + "errors":[ + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListVirtualMFADevices":{ + "name":"ListVirtualMFADevices", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListVirtualMFADevicesRequest"}, + "output":{ + "shape":"ListVirtualMFADevicesResponse", + "resultWrapper":"ListVirtualMFADevicesResult" + } + }, + "PutGroupPolicy":{ + "name":"PutGroupPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutGroupPolicyRequest"}, + "errors":[ + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"MalformedPolicyDocumentException", + "error":{ + "code":"MalformedPolicyDocument", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "PutRolePolicy":{ + "name":"PutRolePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutRolePolicyRequest"}, + "errors":[ + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"MalformedPolicyDocumentException", + "error":{ + "code":"MalformedPolicyDocument", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "PutUserPolicy":{ + "name":"PutUserPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutUserPolicyRequest"}, + "errors":[ + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"MalformedPolicyDocumentException", + "error":{ + "code":"MalformedPolicyDocument", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "RemoveClientIDFromOpenIDConnectProvider":{ + "name":"RemoveClientIDFromOpenIDConnectProvider", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RemoveClientIDFromOpenIDConnectProviderRequest"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "RemoveRoleFromInstanceProfile":{ + "name":"RemoveRoleFromInstanceProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RemoveRoleFromInstanceProfileRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "RemoveUserFromGroup":{ + "name":"RemoveUserFromGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RemoveUserFromGroupRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ResyncMFADevice":{ + "name":"ResyncMFADevice", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ResyncMFADeviceRequest"}, + "errors":[ + { + "shape":"InvalidAuthenticationCodeException", + "error":{ + "code":"InvalidAuthenticationCode", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "SetDefaultPolicyVersion":{ + "name":"SetDefaultPolicyVersion", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetDefaultPolicyVersionRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "UpdateAccessKey":{ + "name":"UpdateAccessKey", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateAccessKeyRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "UpdateAccountPasswordPolicy":{ + "name":"UpdateAccountPasswordPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateAccountPasswordPolicyRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"MalformedPolicyDocumentException", + "error":{ + "code":"MalformedPolicyDocument", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "UpdateAssumeRolePolicy":{ + "name":"UpdateAssumeRolePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateAssumeRolePolicyRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"MalformedPolicyDocumentException", + "error":{ + "code":"MalformedPolicyDocument", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "UpdateGroup":{ + "name":"UpdateGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateGroupRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"EntityAlreadyExistsException", + "error":{ + "code":"EntityAlreadyExists", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "UpdateLoginProfile":{ + "name":"UpdateLoginProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateLoginProfileRequest"}, + "errors":[ + { + "shape":"EntityTemporarilyUnmodifiableException", + "error":{ + "code":"EntityTemporarilyUnmodifiable", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"PasswordPolicyViolationException", + "error":{ + "code":"PasswordPolicyViolation", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "UpdateOpenIDConnectProviderThumbprint":{ + "name":"UpdateOpenIDConnectProviderThumbprint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateOpenIDConnectProviderThumbprintRequest"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "UpdateSAMLProvider":{ + "name":"UpdateSAMLProvider", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateSAMLProviderRequest"}, + "output":{ + "shape":"UpdateSAMLProviderResponse", + "resultWrapper":"UpdateSAMLProviderResult" + }, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidInputException", + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "UpdateServerCertificate":{ + "name":"UpdateServerCertificate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateServerCertificateRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"EntityAlreadyExistsException", + "error":{ + "code":"EntityAlreadyExists", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "UpdateSigningCertificate":{ + "name":"UpdateSigningCertificate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateSigningCertificateRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "UpdateUser":{ + "name":"UpdateUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateUserRequest"}, + "errors":[ + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"EntityAlreadyExistsException", + "error":{ + "code":"EntityAlreadyExists", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"EntityTemporarilyUnmodifiableException", + "error":{ + "code":"EntityTemporarilyUnmodifiable", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "UploadServerCertificate":{ + "name":"UploadServerCertificate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UploadServerCertificateRequest"}, + "output":{ + "shape":"UploadServerCertificateResponse", + "resultWrapper":"UploadServerCertificateResult" + }, + "errors":[ + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"EntityAlreadyExistsException", + "error":{ + "code":"EntityAlreadyExists", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"MalformedCertificateException", + "error":{ + "code":"MalformedCertificate", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"KeyPairMismatchException", + "error":{ + "code":"KeyPairMismatch", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "UploadSigningCertificate":{ + "name":"UploadSigningCertificate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UploadSigningCertificateRequest"}, + "output":{ + "shape":"UploadSigningCertificateResponse", + "resultWrapper":"UploadSigningCertificateResult" + }, + "errors":[ + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"EntityAlreadyExistsException", + "error":{ + "code":"EntityAlreadyExists", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"MalformedCertificateException", + "error":{ + "code":"MalformedCertificate", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidCertificateException", + "error":{ + "code":"InvalidCertificate", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DuplicateCertificateException", + "error":{ + "code":"DuplicateCertificate", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NoSuchEntityException", + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ServiceFailureException", + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + } + ] + } + }, + "shapes":{ + "AccessKey":{ + "type":"structure", + "required":[ + "UserName", + "AccessKeyId", + "Status", + "SecretAccessKey" + ], + "members":{ + "UserName":{"shape":"userNameType"}, + "AccessKeyId":{"shape":"accessKeyIdType"}, + "Status":{"shape":"statusType"}, + "SecretAccessKey":{"shape":"accessKeySecretType"}, + "CreateDate":{"shape":"dateType"} + } + }, + "AccessKeyLastUsed":{ + "type":"structure", + "required":[ + "LastUsedDate", + "ServiceName", + "Region" + ], + "members":{ + "LastUsedDate":{"shape":"dateType"}, + "ServiceName":{"shape":"stringType"}, + "Region":{"shape":"stringType"} + } + }, + "AccessKeyMetadata":{ + "type":"structure", + "members":{ + "UserName":{"shape":"userNameType"}, + "AccessKeyId":{"shape":"accessKeyIdType"}, + "Status":{"shape":"statusType"}, + "CreateDate":{"shape":"dateType"} + } + }, + "AddClientIDToOpenIDConnectProviderRequest":{ + "type":"structure", + "required":[ + "OpenIDConnectProviderArn", + "ClientID" + ], + "members":{ + "OpenIDConnectProviderArn":{"shape":"arnType"}, + "ClientID":{"shape":"clientIDType"} + } + }, + "AddRoleToInstanceProfileRequest":{ + "type":"structure", + "required":[ + "InstanceProfileName", + "RoleName" + ], + "members":{ + "InstanceProfileName":{"shape":"instanceProfileNameType"}, + "RoleName":{"shape":"roleNameType"} + } + }, + "AddUserToGroupRequest":{ + "type":"structure", + "required":[ + "GroupName", + "UserName" + ], + "members":{ + "GroupName":{"shape":"groupNameType"}, + "UserName":{"shape":"existingUserNameType"} + } + }, + "AttachGroupPolicyRequest":{ + "type":"structure", + "required":[ + "GroupName", + "PolicyArn" + ], + "members":{ + "GroupName":{"shape":"groupNameType"}, + "PolicyArn":{"shape":"arnType"} + } + }, + "AttachRolePolicyRequest":{ + "type":"structure", + "required":[ + "RoleName", + "PolicyArn" + ], + "members":{ + "RoleName":{"shape":"roleNameType"}, + "PolicyArn":{"shape":"arnType"} + } + }, + "AttachUserPolicyRequest":{ + "type":"structure", + "required":[ + "UserName", + "PolicyArn" + ], + "members":{ + "UserName":{"shape":"userNameType"}, + "PolicyArn":{"shape":"arnType"} + } + }, + "AttachedPolicy":{ + "type":"structure", + "members":{ + "PolicyName":{"shape":"policyNameType"}, + "PolicyArn":{"shape":"arnType"} + } + }, + "BootstrapDatum":{ + "type":"blob", + "sensitive":true + }, + "ChangePasswordRequest":{ + "type":"structure", + "required":[ + "OldPassword", + "NewPassword" + ], + "members":{ + "OldPassword":{"shape":"passwordType"}, + "NewPassword":{"shape":"passwordType"} + } + }, + "CreateAccessKeyRequest":{ + "type":"structure", + "members":{ + "UserName":{"shape":"existingUserNameType"} + } + }, + "CreateAccessKeyResponse":{ + "type":"structure", + "required":["AccessKey"], + "members":{ + "AccessKey":{"shape":"AccessKey"} + } + }, + "CreateAccountAliasRequest":{ + "type":"structure", + "required":["AccountAlias"], + "members":{ + "AccountAlias":{"shape":"accountAliasType"} + } + }, + "CreateGroupRequest":{ + "type":"structure", + "required":["GroupName"], + "members":{ + "Path":{"shape":"pathType"}, + "GroupName":{"shape":"groupNameType"} + } + }, + "CreateGroupResponse":{ + "type":"structure", + "required":["Group"], + "members":{ + "Group":{"shape":"Group"} + } + }, + "CreateInstanceProfileRequest":{ + "type":"structure", + "required":["InstanceProfileName"], + "members":{ + "InstanceProfileName":{"shape":"instanceProfileNameType"}, + "Path":{"shape":"pathType"} + } + }, + "CreateInstanceProfileResponse":{ + "type":"structure", + "required":["InstanceProfile"], + "members":{ + "InstanceProfile":{"shape":"InstanceProfile"} + } + }, + "CreateLoginProfileRequest":{ + "type":"structure", + "required":[ + "UserName", + "Password" + ], + "members":{ + "UserName":{"shape":"userNameType"}, + "Password":{"shape":"passwordType"}, + "PasswordResetRequired":{"shape":"booleanType"} + } + }, + "CreateLoginProfileResponse":{ + "type":"structure", + "required":["LoginProfile"], + "members":{ + "LoginProfile":{"shape":"LoginProfile"} + } + }, + "CreateOpenIDConnectProviderRequest":{ + "type":"structure", + "required":[ + "Url", + "ThumbprintList" + ], + "members":{ + "Url":{"shape":"OpenIDConnectProviderUrlType"}, + "ClientIDList":{"shape":"clientIDListType"}, + "ThumbprintList":{"shape":"thumbprintListType"} + } + }, + "CreateOpenIDConnectProviderResponse":{ + "type":"structure", + "members":{ + "OpenIDConnectProviderArn":{"shape":"arnType"} + } + }, + "CreatePolicyRequest":{ + "type":"structure", + "required":[ + "PolicyName", + "PolicyDocument" + ], + "members":{ + "PolicyName":{"shape":"policyNameType"}, + "Path":{"shape":"policyPathType"}, + "PolicyDocument":{"shape":"policyDocumentType"}, + "Description":{"shape":"policyDescriptionType"} + } + }, + "CreatePolicyResponse":{ + "type":"structure", + "members":{ + "Policy":{"shape":"Policy"} + } + }, + "CreatePolicyVersionRequest":{ + "type":"structure", + "required":[ + "PolicyArn", + "PolicyDocument" + ], + "members":{ + "PolicyArn":{"shape":"arnType"}, + "PolicyDocument":{"shape":"policyDocumentType"}, + "SetAsDefault":{"shape":"booleanType"} + } + }, + "CreatePolicyVersionResponse":{ + "type":"structure", + "members":{ + "PolicyVersion":{"shape":"PolicyVersion"} + } + }, + "CreateRoleRequest":{ + "type":"structure", + "required":[ + "RoleName", + "AssumeRolePolicyDocument" + ], + "members":{ + "Path":{"shape":"pathType"}, + "RoleName":{"shape":"roleNameType"}, + "AssumeRolePolicyDocument":{"shape":"policyDocumentType"} + } + }, + "CreateRoleResponse":{ + "type":"structure", + "required":["Role"], + "members":{ + "Role":{"shape":"Role"} + } + }, + "CreateSAMLProviderRequest":{ + "type":"structure", + "required":[ + "SAMLMetadataDocument", + "Name" + ], + "members":{ + "SAMLMetadataDocument":{"shape":"SAMLMetadataDocumentType"}, + "Name":{"shape":"SAMLProviderNameType"} + } + }, + "CreateSAMLProviderResponse":{ + "type":"structure", + "members":{ + "SAMLProviderArn":{"shape":"arnType"} + } + }, + "CreateUserRequest":{ + "type":"structure", + "required":["UserName"], + "members":{ + "Path":{"shape":"pathType"}, + "UserName":{"shape":"userNameType"} + } + }, + "CreateUserResponse":{ + "type":"structure", + "members":{ + "User":{"shape":"User"} + } + }, + "CreateVirtualMFADeviceRequest":{ + "type":"structure", + "required":["VirtualMFADeviceName"], + "members":{ + "Path":{"shape":"pathType"}, + "VirtualMFADeviceName":{"shape":"virtualMFADeviceName"} + } + }, + "CreateVirtualMFADeviceResponse":{ + "type":"structure", + "required":["VirtualMFADevice"], + "members":{ + "VirtualMFADevice":{"shape":"VirtualMFADevice"} + } + }, + "CredentialReportExpiredException":{ + "type":"structure", + "members":{ + "message":{"shape":"credentialReportExpiredExceptionMessage"} + }, + "error":{ + "code":"ReportExpired", + "httpStatusCode":410, + "senderFault":true + }, + "exception":true + }, + "CredentialReportNotPresentException":{ + "type":"structure", + "members":{ + "message":{"shape":"credentialReportNotPresentExceptionMessage"} + }, + "error":{ + "code":"ReportNotPresent", + "httpStatusCode":410, + "senderFault":true + }, + "exception":true + }, + "CredentialReportNotReadyException":{ + "type":"structure", + "members":{ + "message":{"shape":"credentialReportNotReadyExceptionMessage"} + }, + "error":{ + "code":"ReportInProgress", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "DeactivateMFADeviceRequest":{ + "type":"structure", + "required":[ + "UserName", + "SerialNumber" + ], + "members":{ + "UserName":{"shape":"existingUserNameType"}, + "SerialNumber":{"shape":"serialNumberType"} + } + }, + "DeleteAccessKeyRequest":{ + "type":"structure", + "required":["AccessKeyId"], + "members":{ + "UserName":{"shape":"existingUserNameType"}, + "AccessKeyId":{"shape":"accessKeyIdType"} + } + }, + "DeleteAccountAliasRequest":{ + "type":"structure", + "required":["AccountAlias"], + "members":{ + "AccountAlias":{"shape":"accountAliasType"} + } + }, + "DeleteConflictException":{ + "type":"structure", + "members":{ + "message":{"shape":"deleteConflictMessage"} + }, + "error":{ + "code":"DeleteConflict", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "DeleteGroupPolicyRequest":{ + "type":"structure", + "required":[ + "GroupName", + "PolicyName" + ], + "members":{ + "GroupName":{"shape":"groupNameType"}, + "PolicyName":{"shape":"policyNameType"} + } + }, + "DeleteGroupRequest":{ + "type":"structure", + "required":["GroupName"], + "members":{ + "GroupName":{"shape":"groupNameType"} + } + }, + "DeleteInstanceProfileRequest":{ + "type":"structure", + "required":["InstanceProfileName"], + "members":{ + "InstanceProfileName":{"shape":"instanceProfileNameType"} + } + }, + "DeleteLoginProfileRequest":{ + "type":"structure", + "required":["UserName"], + "members":{ + "UserName":{"shape":"userNameType"} + } + }, + "DeleteOpenIDConnectProviderRequest":{ + "type":"structure", + "required":["OpenIDConnectProviderArn"], + "members":{ + "OpenIDConnectProviderArn":{"shape":"arnType"} + } + }, + "DeletePolicyRequest":{ + "type":"structure", + "required":["PolicyArn"], + "members":{ + "PolicyArn":{"shape":"arnType"} + } + }, + "DeletePolicyVersionRequest":{ + "type":"structure", + "required":[ + "PolicyArn", + "VersionId" + ], + "members":{ + "PolicyArn":{"shape":"arnType"}, + "VersionId":{"shape":"policyVersionIdType"} + } + }, + "DeleteRolePolicyRequest":{ + "type":"structure", + "required":[ + "RoleName", + "PolicyName" + ], + "members":{ + "RoleName":{"shape":"roleNameType"}, + "PolicyName":{"shape":"policyNameType"} + } + }, + "DeleteRoleRequest":{ + "type":"structure", + "required":["RoleName"], + "members":{ + "RoleName":{"shape":"roleNameType"} + } + }, + "DeleteSAMLProviderRequest":{ + "type":"structure", + "required":["SAMLProviderArn"], + "members":{ + "SAMLProviderArn":{"shape":"arnType"} + } + }, + "DeleteServerCertificateRequest":{ + "type":"structure", + "required":["ServerCertificateName"], + "members":{ + "ServerCertificateName":{"shape":"serverCertificateNameType"} + } + }, + "DeleteSigningCertificateRequest":{ + "type":"structure", + "required":["CertificateId"], + "members":{ + "UserName":{"shape":"existingUserNameType"}, + "CertificateId":{"shape":"certificateIdType"} + } + }, + "DeleteUserPolicyRequest":{ + "type":"structure", + "required":[ + "UserName", + "PolicyName" + ], + "members":{ + "UserName":{"shape":"existingUserNameType"}, + "PolicyName":{"shape":"policyNameType"} + } + }, + "DeleteUserRequest":{ + "type":"structure", + "required":["UserName"], + "members":{ + "UserName":{"shape":"existingUserNameType"} + } + }, + "DeleteVirtualMFADeviceRequest":{ + "type":"structure", + "required":["SerialNumber"], + "members":{ + "SerialNumber":{"shape":"serialNumberType"} + } + }, + "DetachGroupPolicyRequest":{ + "type":"structure", + "required":[ + "GroupName", + "PolicyArn" + ], + "members":{ + "GroupName":{"shape":"groupNameType"}, + "PolicyArn":{"shape":"arnType"} + } + }, + "DetachRolePolicyRequest":{ + "type":"structure", + "required":[ + "RoleName", + "PolicyArn" + ], + "members":{ + "RoleName":{"shape":"roleNameType"}, + "PolicyArn":{"shape":"arnType"} + } + }, + "DetachUserPolicyRequest":{ + "type":"structure", + "required":[ + "UserName", + "PolicyArn" + ], + "members":{ + "UserName":{"shape":"userNameType"}, + "PolicyArn":{"shape":"arnType"} + } + }, + "DuplicateCertificateException":{ + "type":"structure", + "members":{ + "message":{"shape":"duplicateCertificateMessage"} + }, + "error":{ + "code":"DuplicateCertificate", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "EnableMFADeviceRequest":{ + "type":"structure", + "required":[ + "UserName", + "SerialNumber", + "AuthenticationCode1", + "AuthenticationCode2" + ], + "members":{ + "UserName":{"shape":"existingUserNameType"}, + "SerialNumber":{"shape":"serialNumberType"}, + "AuthenticationCode1":{"shape":"authenticationCodeType"}, + "AuthenticationCode2":{"shape":"authenticationCodeType"} + } + }, + "EntityAlreadyExistsException":{ + "type":"structure", + "members":{ + "message":{"shape":"entityAlreadyExistsMessage"} + }, + "error":{ + "code":"EntityAlreadyExists", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "EntityTemporarilyUnmodifiableException":{ + "type":"structure", + "members":{ + "message":{"shape":"entityTemporarilyUnmodifiableMessage"} + }, + "error":{ + "code":"EntityTemporarilyUnmodifiable", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "EntityType":{ + "type":"string", + "enum":[ + "User", + "Role", + "Group", + "LocalManagedPolicy", + "AWSManagedPolicy" + ] + }, + "GenerateCredentialReportResponse":{ + "type":"structure", + "members":{ + "State":{"shape":"ReportStateType"}, + "Description":{"shape":"ReportStateDescriptionType"} + } + }, + "GetAccessKeyLastUsedRequest":{ + "type":"structure", + "required":["AccessKeyId"], + "members":{ + "AccessKeyId":{"shape":"accessKeyIdType"} + } + }, + "GetAccessKeyLastUsedResponse":{ + "type":"structure", + "members":{ + "UserName":{"shape":"existingUserNameType"}, + "AccessKeyLastUsed":{"shape":"AccessKeyLastUsed"} + } + }, + "GetAccountAuthorizationDetailsRequest":{ + "type":"structure", + "members":{ + "Filter":{"shape":"entityListType"}, + "MaxItems":{"shape":"maxItemsType"}, + "Marker":{"shape":"markerType"} + } + }, + "GetAccountAuthorizationDetailsResponse":{ + "type":"structure", + "members":{ + "UserDetailList":{"shape":"userDetailListType"}, + "GroupDetailList":{"shape":"groupDetailListType"}, + "RoleDetailList":{"shape":"roleDetailListType"}, + "Policies":{"shape":"ManagedPolicyDetailListType"}, + "IsTruncated":{"shape":"booleanType"}, + "Marker":{"shape":"markerType"} + } + }, + "GetAccountPasswordPolicyResponse":{ + "type":"structure", + "required":["PasswordPolicy"], + "members":{ + "PasswordPolicy":{"shape":"PasswordPolicy"} + } + }, + "GetAccountSummaryResponse":{ + "type":"structure", + "members":{ + "SummaryMap":{"shape":"summaryMapType"} + } + }, + "GetCredentialReportResponse":{ + "type":"structure", + "members":{ + "Content":{"shape":"ReportContentType"}, + "ReportFormat":{"shape":"ReportFormatType"}, + "GeneratedTime":{"shape":"dateType"} + } + }, + "GetGroupPolicyRequest":{ + "type":"structure", + "required":[ + "GroupName", + "PolicyName" + ], + "members":{ + "GroupName":{"shape":"groupNameType"}, + "PolicyName":{"shape":"policyNameType"} + } + }, + "GetGroupPolicyResponse":{ + "type":"structure", + "required":[ + "GroupName", + "PolicyName", + "PolicyDocument" + ], + "members":{ + "GroupName":{"shape":"groupNameType"}, + "PolicyName":{"shape":"policyNameType"}, + "PolicyDocument":{"shape":"policyDocumentType"} + } + }, + "GetGroupRequest":{ + "type":"structure", + "required":["GroupName"], + "members":{ + "GroupName":{"shape":"groupNameType"}, + "Marker":{"shape":"markerType"}, + "MaxItems":{"shape":"maxItemsType"} + } + }, + "GetGroupResponse":{ + "type":"structure", + "required":[ + "Group", + "Users" + ], + "members":{ + "Group":{"shape":"Group"}, + "Users":{"shape":"userListType"}, + "IsTruncated":{"shape":"booleanType"}, + "Marker":{"shape":"markerType"} + } + }, + "GetInstanceProfileRequest":{ + "type":"structure", + "required":["InstanceProfileName"], + "members":{ + "InstanceProfileName":{"shape":"instanceProfileNameType"} + } + }, + "GetInstanceProfileResponse":{ + "type":"structure", + "required":["InstanceProfile"], + "members":{ + "InstanceProfile":{"shape":"InstanceProfile"} + } + }, + "GetLoginProfileRequest":{ + "type":"structure", + "required":["UserName"], + "members":{ + "UserName":{"shape":"userNameType"} + } + }, + "GetLoginProfileResponse":{ + "type":"structure", + "required":["LoginProfile"], + "members":{ + "LoginProfile":{"shape":"LoginProfile"} + } + }, + "GetOpenIDConnectProviderRequest":{ + "type":"structure", + "required":["OpenIDConnectProviderArn"], + "members":{ + "OpenIDConnectProviderArn":{"shape":"arnType"} + } + }, + "GetOpenIDConnectProviderResponse":{ + "type":"structure", + "members":{ + "Url":{"shape":"OpenIDConnectProviderUrlType"}, + "ClientIDList":{"shape":"clientIDListType"}, + "ThumbprintList":{"shape":"thumbprintListType"}, + "CreateDate":{"shape":"dateType"} + } + }, + "GetPolicyRequest":{ + "type":"structure", + "required":["PolicyArn"], + "members":{ + "PolicyArn":{"shape":"arnType"} + } + }, + "GetPolicyResponse":{ + "type":"structure", + "members":{ + "Policy":{"shape":"Policy"} + } + }, + "GetPolicyVersionRequest":{ + "type":"structure", + "required":[ + "PolicyArn", + "VersionId" + ], + "members":{ + "PolicyArn":{"shape":"arnType"}, + "VersionId":{"shape":"policyVersionIdType"} + } + }, + "GetPolicyVersionResponse":{ + "type":"structure", + "members":{ + "PolicyVersion":{"shape":"PolicyVersion"} + } + }, + "GetRolePolicyRequest":{ + "type":"structure", + "required":[ + "RoleName", + "PolicyName" + ], + "members":{ + "RoleName":{"shape":"roleNameType"}, + "PolicyName":{"shape":"policyNameType"} + } + }, + "GetRolePolicyResponse":{ + "type":"structure", + "required":[ + "RoleName", + "PolicyName", + "PolicyDocument" + ], + "members":{ + "RoleName":{"shape":"roleNameType"}, + "PolicyName":{"shape":"policyNameType"}, + "PolicyDocument":{"shape":"policyDocumentType"} + } + }, + "GetRoleRequest":{ + "type":"structure", + "required":["RoleName"], + "members":{ + "RoleName":{"shape":"roleNameType"} + } + }, + "GetRoleResponse":{ + "type":"structure", + "required":["Role"], + "members":{ + "Role":{"shape":"Role"} + } + }, + "GetSAMLProviderRequest":{ + "type":"structure", + "required":["SAMLProviderArn"], + "members":{ + "SAMLProviderArn":{"shape":"arnType"} + } + }, + "GetSAMLProviderResponse":{ + "type":"structure", + "members":{ + "SAMLMetadataDocument":{"shape":"SAMLMetadataDocumentType"}, + "CreateDate":{"shape":"dateType"}, + "ValidUntil":{"shape":"dateType"} + } + }, + "GetServerCertificateRequest":{ + "type":"structure", + "required":["ServerCertificateName"], + "members":{ + "ServerCertificateName":{"shape":"serverCertificateNameType"} + } + }, + "GetServerCertificateResponse":{ + "type":"structure", + "required":["ServerCertificate"], + "members":{ + "ServerCertificate":{"shape":"ServerCertificate"} + } + }, + "GetUserPolicyRequest":{ + "type":"structure", + "required":[ + "UserName", + "PolicyName" + ], + "members":{ + "UserName":{"shape":"existingUserNameType"}, + "PolicyName":{"shape":"policyNameType"} + } + }, + "GetUserPolicyResponse":{ + "type":"structure", + "required":[ + "UserName", + "PolicyName", + "PolicyDocument" + ], + "members":{ + "UserName":{"shape":"existingUserNameType"}, + "PolicyName":{"shape":"policyNameType"}, + "PolicyDocument":{"shape":"policyDocumentType"} + } + }, + "GetUserRequest":{ + "type":"structure", + "members":{ + "UserName":{"shape":"existingUserNameType"} + } + }, + "GetUserResponse":{ + "type":"structure", + "required":["User"], + "members":{ + "User":{"shape":"User"} + } + }, + "Group":{ + "type":"structure", + "required":[ + "Path", + "GroupName", + "GroupId", + "Arn", + "CreateDate" + ], + "members":{ + "Path":{"shape":"pathType"}, + "GroupName":{"shape":"groupNameType"}, + "GroupId":{"shape":"idType"}, + "Arn":{"shape":"arnType"}, + "CreateDate":{"shape":"dateType"} + } + }, + "GroupDetail":{ + "type":"structure", + "members":{ + "Path":{"shape":"pathType"}, + "GroupName":{"shape":"groupNameType"}, + "GroupId":{"shape":"idType"}, + "Arn":{"shape":"arnType"}, + "CreateDate":{"shape":"dateType"}, + "GroupPolicyList":{"shape":"policyDetailListType"}, + "AttachedManagedPolicies":{"shape":"attachedPoliciesListType"} + } + }, + "InstanceProfile":{ + "type":"structure", + "required":[ + "Path", + "InstanceProfileName", + "InstanceProfileId", + "Arn", + "CreateDate", + "Roles" + ], + "members":{ + "Path":{"shape":"pathType"}, + "InstanceProfileName":{"shape":"instanceProfileNameType"}, + "InstanceProfileId":{"shape":"idType"}, + "Arn":{"shape":"arnType"}, + "CreateDate":{"shape":"dateType"}, + "Roles":{"shape":"roleListType"} + } + }, + "InvalidAuthenticationCodeException":{ + "type":"structure", + "members":{ + "message":{"shape":"invalidAuthenticationCodeMessage"} + }, + "error":{ + "code":"InvalidAuthenticationCode", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "InvalidCertificateException":{ + "type":"structure", + "members":{ + "message":{"shape":"invalidCertificateMessage"} + }, + "error":{ + "code":"InvalidCertificate", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidInputException":{ + "type":"structure", + "members":{ + "message":{"shape":"invalidInputMessage"} + }, + "error":{ + "code":"InvalidInput", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidUserTypeException":{ + "type":"structure", + "members":{ + "message":{"shape":"invalidUserTypeMessage"} + }, + "error":{ + "code":"InvalidUserType", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "KeyPairMismatchException":{ + "type":"structure", + "members":{ + "message":{"shape":"keyPairMismatchMessage"} + }, + "error":{ + "code":"KeyPairMismatch", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "LimitExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"limitExceededMessage"} + }, + "error":{ + "code":"LimitExceeded", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "ListAccessKeysRequest":{ + "type":"structure", + "members":{ + "UserName":{"shape":"existingUserNameType"}, + "Marker":{"shape":"markerType"}, + "MaxItems":{"shape":"maxItemsType"} + } + }, + "ListAccessKeysResponse":{ + "type":"structure", + "required":["AccessKeyMetadata"], + "members":{ + "AccessKeyMetadata":{"shape":"accessKeyMetadataListType"}, + "IsTruncated":{"shape":"booleanType"}, + "Marker":{"shape":"markerType"} + } + }, + "ListAccountAliasesRequest":{ + "type":"structure", + "members":{ + "Marker":{"shape":"markerType"}, + "MaxItems":{"shape":"maxItemsType"} + } + }, + "ListAccountAliasesResponse":{ + "type":"structure", + "required":["AccountAliases"], + "members":{ + "AccountAliases":{"shape":"accountAliasListType"}, + "IsTruncated":{"shape":"booleanType"}, + "Marker":{"shape":"markerType"} + } + }, + "ListAttachedGroupPoliciesRequest":{ + "type":"structure", + "required":["GroupName"], + "members":{ + "GroupName":{"shape":"groupNameType"}, + "PathPrefix":{"shape":"policyPathType"}, + "Marker":{"shape":"markerType"}, + "MaxItems":{"shape":"maxItemsType"} + } + }, + "ListAttachedGroupPoliciesResponse":{ + "type":"structure", + "members":{ + "AttachedPolicies":{"shape":"attachedPoliciesListType"}, + "IsTruncated":{"shape":"booleanType"}, + "Marker":{"shape":"markerType"} + } + }, + "ListAttachedRolePoliciesRequest":{ + "type":"structure", + "required":["RoleName"], + "members":{ + "RoleName":{"shape":"roleNameType"}, + "PathPrefix":{"shape":"policyPathType"}, + "Marker":{"shape":"markerType"}, + "MaxItems":{"shape":"maxItemsType"} + } + }, + "ListAttachedRolePoliciesResponse":{ + "type":"structure", + "members":{ + "AttachedPolicies":{"shape":"attachedPoliciesListType"}, + "IsTruncated":{"shape":"booleanType"}, + "Marker":{"shape":"markerType"} + } + }, + "ListAttachedUserPoliciesRequest":{ + "type":"structure", + "required":["UserName"], + "members":{ + "UserName":{"shape":"userNameType"}, + "PathPrefix":{"shape":"policyPathType"}, + "Marker":{"shape":"markerType"}, + "MaxItems":{"shape":"maxItemsType"} + } + }, + "ListAttachedUserPoliciesResponse":{ + "type":"structure", + "members":{ + "AttachedPolicies":{"shape":"attachedPoliciesListType"}, + "IsTruncated":{"shape":"booleanType"}, + "Marker":{"shape":"markerType"} + } + }, + "ListEntitiesForPolicyRequest":{ + "type":"structure", + "required":["PolicyArn"], + "members":{ + "PolicyArn":{"shape":"arnType"}, + "EntityFilter":{"shape":"EntityType"}, + "PathPrefix":{"shape":"pathType"}, + "Marker":{"shape":"markerType"}, + "MaxItems":{"shape":"maxItemsType"} + } + }, + "ListEntitiesForPolicyResponse":{ + "type":"structure", + "members":{ + "PolicyGroups":{"shape":"PolicyGroupListType"}, + "PolicyUsers":{"shape":"PolicyUserListType"}, + "PolicyRoles":{"shape":"PolicyRoleListType"}, + "IsTruncated":{"shape":"booleanType"}, + "Marker":{"shape":"markerType"} + } + }, + "ListGroupPoliciesRequest":{ + "type":"structure", + "required":["GroupName"], + "members":{ + "GroupName":{"shape":"groupNameType"}, + "Marker":{"shape":"markerType"}, + "MaxItems":{"shape":"maxItemsType"} + } + }, + "ListGroupPoliciesResponse":{ + "type":"structure", + "required":["PolicyNames"], + "members":{ + "PolicyNames":{"shape":"policyNameListType"}, + "IsTruncated":{"shape":"booleanType"}, + "Marker":{"shape":"markerType"} + } + }, + "ListGroupsForUserRequest":{ + "type":"structure", + "required":["UserName"], + "members":{ + "UserName":{"shape":"existingUserNameType"}, + "Marker":{"shape":"markerType"}, + "MaxItems":{"shape":"maxItemsType"} + } + }, + "ListGroupsForUserResponse":{ + "type":"structure", + "required":["Groups"], + "members":{ + "Groups":{"shape":"groupListType"}, + "IsTruncated":{"shape":"booleanType"}, + "Marker":{"shape":"markerType"} + } + }, + "ListGroupsRequest":{ + "type":"structure", + "members":{ + "PathPrefix":{"shape":"pathPrefixType"}, + "Marker":{"shape":"markerType"}, + "MaxItems":{"shape":"maxItemsType"} + } + }, + "ListGroupsResponse":{ + "type":"structure", + "required":["Groups"], + "members":{ + "Groups":{"shape":"groupListType"}, + "IsTruncated":{"shape":"booleanType"}, + "Marker":{"shape":"markerType"} + } + }, + "ListInstanceProfilesForRoleRequest":{ + "type":"structure", + "required":["RoleName"], + "members":{ + "RoleName":{"shape":"roleNameType"}, + "Marker":{"shape":"markerType"}, + "MaxItems":{"shape":"maxItemsType"} + } + }, + "ListInstanceProfilesForRoleResponse":{ + "type":"structure", + "required":["InstanceProfiles"], + "members":{ + "InstanceProfiles":{"shape":"instanceProfileListType"}, + "IsTruncated":{"shape":"booleanType"}, + "Marker":{"shape":"markerType"} + } + }, + "ListInstanceProfilesRequest":{ + "type":"structure", + "members":{ + "PathPrefix":{"shape":"pathPrefixType"}, + "Marker":{"shape":"markerType"}, + "MaxItems":{"shape":"maxItemsType"} + } + }, + "ListInstanceProfilesResponse":{ + "type":"structure", + "required":["InstanceProfiles"], + "members":{ + "InstanceProfiles":{"shape":"instanceProfileListType"}, + "IsTruncated":{"shape":"booleanType"}, + "Marker":{"shape":"markerType"} + } + }, + "ListMFADevicesRequest":{ + "type":"structure", + "members":{ + "UserName":{"shape":"existingUserNameType"}, + "Marker":{"shape":"markerType"}, + "MaxItems":{"shape":"maxItemsType"} + } + }, + "ListMFADevicesResponse":{ + "type":"structure", + "required":["MFADevices"], + "members":{ + "MFADevices":{"shape":"mfaDeviceListType"}, + "IsTruncated":{"shape":"booleanType"}, + "Marker":{"shape":"markerType"} + } + }, + "ListOpenIDConnectProvidersRequest":{ + "type":"structure", + "members":{ + } + }, + "ListOpenIDConnectProvidersResponse":{ + "type":"structure", + "members":{ + "OpenIDConnectProviderList":{"shape":"OpenIDConnectProviderListType"} + } + }, + "ListPoliciesRequest":{ + "type":"structure", + "members":{ + "Scope":{"shape":"policyScopeType"}, + "OnlyAttached":{"shape":"booleanType"}, + "PathPrefix":{"shape":"policyPathType"}, + "Marker":{"shape":"markerType"}, + "MaxItems":{"shape":"maxItemsType"} + } + }, + "ListPoliciesResponse":{ + "type":"structure", + "members":{ + "Policies":{"shape":"policyListType"}, + "IsTruncated":{"shape":"booleanType"}, + "Marker":{"shape":"markerType"} + } + }, + "ListPolicyVersionsRequest":{ + "type":"structure", + "required":["PolicyArn"], + "members":{ + "PolicyArn":{"shape":"arnType"}, + "Marker":{"shape":"markerType"}, + "MaxItems":{"shape":"maxItemsType"} + } + }, + "ListPolicyVersionsResponse":{ + "type":"structure", + "members":{ + "Versions":{"shape":"policyDocumentVersionListType"}, + "IsTruncated":{"shape":"booleanType"}, + "Marker":{"shape":"markerType"} + } + }, + "ListRolePoliciesRequest":{ + "type":"structure", + "required":["RoleName"], + "members":{ + "RoleName":{"shape":"roleNameType"}, + "Marker":{"shape":"markerType"}, + "MaxItems":{"shape":"maxItemsType"} + } + }, + "ListRolePoliciesResponse":{ + "type":"structure", + "required":["PolicyNames"], + "members":{ + "PolicyNames":{"shape":"policyNameListType"}, + "IsTruncated":{"shape":"booleanType"}, + "Marker":{"shape":"markerType"} + } + }, + "ListRolesRequest":{ + "type":"structure", + "members":{ + "PathPrefix":{"shape":"pathPrefixType"}, + "Marker":{"shape":"markerType"}, + "MaxItems":{"shape":"maxItemsType"} + } + }, + "ListRolesResponse":{ + "type":"structure", + "required":["Roles"], + "members":{ + "Roles":{"shape":"roleListType"}, + "IsTruncated":{"shape":"booleanType"}, + "Marker":{"shape":"markerType"} + } + }, + "ListSAMLProvidersRequest":{ + "type":"structure", + "members":{ + } + }, + "ListSAMLProvidersResponse":{ + "type":"structure", + "members":{ + "SAMLProviderList":{"shape":"SAMLProviderListType"} + } + }, + "ListServerCertificatesRequest":{ + "type":"structure", + "members":{ + "PathPrefix":{"shape":"pathPrefixType"}, + "Marker":{"shape":"markerType"}, + "MaxItems":{"shape":"maxItemsType"} + } + }, + "ListServerCertificatesResponse":{ + "type":"structure", + "required":["ServerCertificateMetadataList"], + "members":{ + "ServerCertificateMetadataList":{"shape":"serverCertificateMetadataListType"}, + "IsTruncated":{"shape":"booleanType"}, + "Marker":{"shape":"markerType"} + } + }, + "ListSigningCertificatesRequest":{ + "type":"structure", + "members":{ + "UserName":{"shape":"existingUserNameType"}, + "Marker":{"shape":"markerType"}, + "MaxItems":{"shape":"maxItemsType"} + } + }, + "ListSigningCertificatesResponse":{ + "type":"structure", + "required":["Certificates"], + "members":{ + "Certificates":{"shape":"certificateListType"}, + "IsTruncated":{"shape":"booleanType"}, + "Marker":{"shape":"markerType"} + } + }, + "ListUserPoliciesRequest":{ + "type":"structure", + "required":["UserName"], + "members":{ + "UserName":{"shape":"existingUserNameType"}, + "Marker":{"shape":"markerType"}, + "MaxItems":{"shape":"maxItemsType"} + } + }, + "ListUserPoliciesResponse":{ + "type":"structure", + "required":["PolicyNames"], + "members":{ + "PolicyNames":{"shape":"policyNameListType"}, + "IsTruncated":{"shape":"booleanType"}, + "Marker":{"shape":"markerType"} + } + }, + "ListUsersRequest":{ + "type":"structure", + "members":{ + "PathPrefix":{"shape":"pathPrefixType"}, + "Marker":{"shape":"markerType"}, + "MaxItems":{"shape":"maxItemsType"} + } + }, + "ListUsersResponse":{ + "type":"structure", + "required":["Users"], + "members":{ + "Users":{"shape":"userListType"}, + "IsTruncated":{"shape":"booleanType"}, + "Marker":{"shape":"markerType"} + } + }, + "ListVirtualMFADevicesRequest":{ + "type":"structure", + "members":{ + "AssignmentStatus":{"shape":"assignmentStatusType"}, + "Marker":{"shape":"markerType"}, + "MaxItems":{"shape":"maxItemsType"} + } + }, + "ListVirtualMFADevicesResponse":{ + "type":"structure", + "required":["VirtualMFADevices"], + "members":{ + "VirtualMFADevices":{"shape":"virtualMFADeviceListType"}, + "IsTruncated":{"shape":"booleanType"}, + "Marker":{"shape":"markerType"} + } + }, + "LoginProfile":{ + "type":"structure", + "required":[ + "UserName", + "CreateDate" + ], + "members":{ + "UserName":{"shape":"userNameType"}, + "CreateDate":{"shape":"dateType"}, + "PasswordResetRequired":{"shape":"booleanType"} + } + }, + "MFADevice":{ + "type":"structure", + "required":[ + "UserName", + "SerialNumber", + "EnableDate" + ], + "members":{ + "UserName":{"shape":"userNameType"}, + "SerialNumber":{"shape":"serialNumberType"}, + "EnableDate":{"shape":"dateType"} + } + }, + "MalformedCertificateException":{ + "type":"structure", + "members":{ + "message":{"shape":"malformedCertificateMessage"} + }, + "error":{ + "code":"MalformedCertificate", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "MalformedPolicyDocumentException":{ + "type":"structure", + "members":{ + "message":{"shape":"malformedPolicyDocumentMessage"} + }, + "error":{ + "code":"MalformedPolicyDocument", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ManagedPolicyDetail":{ + "type":"structure", + "members":{ + "PolicyName":{"shape":"policyNameType"}, + "PolicyId":{"shape":"idType"}, + "Arn":{"shape":"arnType"}, + "Path":{"shape":"policyPathType"}, + "DefaultVersionId":{"shape":"policyVersionIdType"}, + "AttachmentCount":{"shape":"attachmentCountType"}, + "IsAttachable":{"shape":"booleanType"}, + "Description":{"shape":"policyDescriptionType"}, + "CreateDate":{"shape":"dateType"}, + "UpdateDate":{"shape":"dateType"}, + "PolicyVersionList":{"shape":"policyDocumentVersionListType"} + } + }, + "ManagedPolicyDetailListType":{ + "type":"list", + "member":{"shape":"ManagedPolicyDetail"} + }, + "NoSuchEntityException":{ + "type":"structure", + "members":{ + "message":{"shape":"noSuchEntityMessage"} + }, + "error":{ + "code":"NoSuchEntity", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "OpenIDConnectProviderListEntry":{ + "type":"structure", + "members":{ + "Arn":{"shape":"arnType"} + } + }, + "OpenIDConnectProviderListType":{ + "type":"list", + "member":{"shape":"OpenIDConnectProviderListEntry"} + }, + "OpenIDConnectProviderUrlType":{ + "type":"string", + "min":1, + "max":255 + }, + "PasswordPolicy":{ + "type":"structure", + "members":{ + "MinimumPasswordLength":{"shape":"minimumPasswordLengthType"}, + "RequireSymbols":{"shape":"booleanType"}, + "RequireNumbers":{"shape":"booleanType"}, + "RequireUppercaseCharacters":{"shape":"booleanType"}, + "RequireLowercaseCharacters":{"shape":"booleanType"}, + "AllowUsersToChangePassword":{"shape":"booleanType"}, + "ExpirePasswords":{"shape":"booleanType"}, + "MaxPasswordAge":{"shape":"maxPasswordAgeType"}, + "PasswordReusePrevention":{"shape":"passwordReusePreventionType"}, + "HardExpiry":{"shape":"booleanObjectType"} + } + }, + "PasswordPolicyViolationException":{ + "type":"structure", + "members":{ + "message":{"shape":"passwordPolicyViolationMessage"} + }, + "error":{ + "code":"PasswordPolicyViolation", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "Policy":{ + "type":"structure", + "members":{ + "PolicyName":{"shape":"policyNameType"}, + "PolicyId":{"shape":"idType"}, + "Arn":{"shape":"arnType"}, + "Path":{"shape":"policyPathType"}, + "DefaultVersionId":{"shape":"policyVersionIdType"}, + "AttachmentCount":{"shape":"attachmentCountType"}, + "IsAttachable":{"shape":"booleanType"}, + "Description":{"shape":"policyDescriptionType"}, + "CreateDate":{"shape":"dateType"}, + "UpdateDate":{"shape":"dateType"} + } + }, + "PolicyDetail":{ + "type":"structure", + "members":{ + "PolicyName":{"shape":"policyNameType"}, + "PolicyDocument":{"shape":"policyDocumentType"} + } + }, + "PolicyGroup":{ + "type":"structure", + "members":{ + "GroupName":{"shape":"groupNameType"} + } + }, + "PolicyGroupListType":{ + "type":"list", + "member":{"shape":"PolicyGroup"} + }, + "PolicyRole":{ + "type":"structure", + "members":{ + "RoleName":{"shape":"roleNameType"} + } + }, + "PolicyRoleListType":{ + "type":"list", + "member":{"shape":"PolicyRole"} + }, + "PolicyUser":{ + "type":"structure", + "members":{ + "UserName":{"shape":"userNameType"} + } + }, + "PolicyUserListType":{ + "type":"list", + "member":{"shape":"PolicyUser"} + }, + "PolicyVersion":{ + "type":"structure", + "members":{ + "Document":{"shape":"policyDocumentType"}, + "VersionId":{"shape":"policyVersionIdType"}, + "IsDefaultVersion":{"shape":"booleanType"}, + "CreateDate":{"shape":"dateType"} + } + }, + "PutGroupPolicyRequest":{ + "type":"structure", + "required":[ + "GroupName", + "PolicyName", + "PolicyDocument" + ], + "members":{ + "GroupName":{"shape":"groupNameType"}, + "PolicyName":{"shape":"policyNameType"}, + "PolicyDocument":{"shape":"policyDocumentType"} + } + }, + "PutRolePolicyRequest":{ + "type":"structure", + "required":[ + "RoleName", + "PolicyName", + "PolicyDocument" + ], + "members":{ + "RoleName":{"shape":"roleNameType"}, + "PolicyName":{"shape":"policyNameType"}, + "PolicyDocument":{"shape":"policyDocumentType"} + } + }, + "PutUserPolicyRequest":{ + "type":"structure", + "required":[ + "UserName", + "PolicyName", + "PolicyDocument" + ], + "members":{ + "UserName":{"shape":"existingUserNameType"}, + "PolicyName":{"shape":"policyNameType"}, + "PolicyDocument":{"shape":"policyDocumentType"} + } + }, + "RemoveClientIDFromOpenIDConnectProviderRequest":{ + "type":"structure", + "required":[ + "OpenIDConnectProviderArn", + "ClientID" + ], + "members":{ + "OpenIDConnectProviderArn":{"shape":"arnType"}, + "ClientID":{"shape":"clientIDType"} + } + }, + "RemoveRoleFromInstanceProfileRequest":{ + "type":"structure", + "required":[ + "InstanceProfileName", + "RoleName" + ], + "members":{ + "InstanceProfileName":{"shape":"instanceProfileNameType"}, + "RoleName":{"shape":"roleNameType"} + } + }, + "RemoveUserFromGroupRequest":{ + "type":"structure", + "required":[ + "GroupName", + "UserName" + ], + "members":{ + "GroupName":{"shape":"groupNameType"}, + "UserName":{"shape":"existingUserNameType"} + } + }, + "ReportContentType":{"type":"blob"}, + "ReportFormatType":{ + "type":"string", + "enum":["text/csv"] + }, + "ReportStateDescriptionType":{"type":"string"}, + "ReportStateType":{ + "type":"string", + "enum":[ + "STARTED", + "INPROGRESS", + "COMPLETE" + ] + }, + "ResyncMFADeviceRequest":{ + "type":"structure", + "required":[ + "UserName", + "SerialNumber", + "AuthenticationCode1", + "AuthenticationCode2" + ], + "members":{ + "UserName":{"shape":"existingUserNameType"}, + "SerialNumber":{"shape":"serialNumberType"}, + "AuthenticationCode1":{"shape":"authenticationCodeType"}, + "AuthenticationCode2":{"shape":"authenticationCodeType"} + } + }, + "Role":{ + "type":"structure", + "required":[ + "Path", + "RoleName", + "RoleId", + "Arn", + "CreateDate" + ], + "members":{ + "Path":{"shape":"pathType"}, + "RoleName":{"shape":"roleNameType"}, + "RoleId":{"shape":"idType"}, + "Arn":{"shape":"arnType"}, + "CreateDate":{"shape":"dateType"}, + "AssumeRolePolicyDocument":{"shape":"policyDocumentType"} + } + }, + "RoleDetail":{ + "type":"structure", + "members":{ + "Path":{"shape":"pathType"}, + "RoleName":{"shape":"roleNameType"}, + "RoleId":{"shape":"idType"}, + "Arn":{"shape":"arnType"}, + "CreateDate":{"shape":"dateType"}, + "AssumeRolePolicyDocument":{"shape":"policyDocumentType"}, + "InstanceProfileList":{"shape":"instanceProfileListType"}, + "RolePolicyList":{"shape":"policyDetailListType"}, + "AttachedManagedPolicies":{"shape":"attachedPoliciesListType"} + } + }, + "SAMLMetadataDocumentType":{ + "type":"string", + "min":1000, + "max":10000000 + }, + "SAMLProviderListEntry":{ + "type":"structure", + "members":{ + "Arn":{"shape":"arnType"}, + "ValidUntil":{"shape":"dateType"}, + "CreateDate":{"shape":"dateType"} + } + }, + "SAMLProviderListType":{ + "type":"list", + "member":{"shape":"SAMLProviderListEntry"} + }, + "SAMLProviderNameType":{ + "type":"string", + "min":1, + "max":128, + "pattern":"[\\w._-]*" + }, + "ServerCertificate":{ + "type":"structure", + "required":[ + "ServerCertificateMetadata", + "CertificateBody" + ], + "members":{ + "ServerCertificateMetadata":{"shape":"ServerCertificateMetadata"}, + "CertificateBody":{"shape":"certificateBodyType"}, + "CertificateChain":{"shape":"certificateChainType"} + } + }, + "ServerCertificateMetadata":{ + "type":"structure", + "required":[ + "Path", + "ServerCertificateName", + "ServerCertificateId", + "Arn" + ], + "members":{ + "Path":{"shape":"pathType"}, + "ServerCertificateName":{"shape":"serverCertificateNameType"}, + "ServerCertificateId":{"shape":"idType"}, + "Arn":{"shape":"arnType"}, + "UploadDate":{"shape":"dateType"}, + "Expiration":{"shape":"dateType"} + } + }, + "ServiceFailureException":{ + "type":"structure", + "members":{ + "message":{"shape":"serviceFailureExceptionMessage"} + }, + "error":{ + "code":"ServiceFailure", + "httpStatusCode":500 + }, + "exception":true + }, + "SetDefaultPolicyVersionRequest":{ + "type":"structure", + "required":[ + "PolicyArn", + "VersionId" + ], + "members":{ + "PolicyArn":{"shape":"arnType"}, + "VersionId":{"shape":"policyVersionIdType"} + } + }, + "SigningCertificate":{ + "type":"structure", + "required":[ + "UserName", + "CertificateId", + "CertificateBody", + "Status" + ], + "members":{ + "UserName":{"shape":"userNameType"}, + "CertificateId":{"shape":"certificateIdType"}, + "CertificateBody":{"shape":"certificateBodyType"}, + "Status":{"shape":"statusType"}, + "UploadDate":{"shape":"dateType"} + } + }, + "UpdateAccessKeyRequest":{ + "type":"structure", + "required":[ + "AccessKeyId", + "Status" + ], + "members":{ + "UserName":{"shape":"existingUserNameType"}, + "AccessKeyId":{"shape":"accessKeyIdType"}, + "Status":{"shape":"statusType"} + } + }, + "UpdateAccountPasswordPolicyRequest":{ + "type":"structure", + "members":{ + "MinimumPasswordLength":{"shape":"minimumPasswordLengthType"}, + "RequireSymbols":{"shape":"booleanType"}, + "RequireNumbers":{"shape":"booleanType"}, + "RequireUppercaseCharacters":{"shape":"booleanType"}, + "RequireLowercaseCharacters":{"shape":"booleanType"}, + "AllowUsersToChangePassword":{"shape":"booleanType"}, + "MaxPasswordAge":{"shape":"maxPasswordAgeType"}, + "PasswordReusePrevention":{"shape":"passwordReusePreventionType"}, + "HardExpiry":{"shape":"booleanObjectType"} + } + }, + "UpdateAssumeRolePolicyRequest":{ + "type":"structure", + "required":[ + "RoleName", + "PolicyDocument" + ], + "members":{ + "RoleName":{"shape":"roleNameType"}, + "PolicyDocument":{"shape":"policyDocumentType"} + } + }, + "UpdateGroupRequest":{ + "type":"structure", + "required":["GroupName"], + "members":{ + "GroupName":{"shape":"groupNameType"}, + "NewPath":{"shape":"pathType"}, + "NewGroupName":{"shape":"groupNameType"} + } + }, + "UpdateLoginProfileRequest":{ + "type":"structure", + "required":["UserName"], + "members":{ + "UserName":{"shape":"userNameType"}, + "Password":{"shape":"passwordType"}, + "PasswordResetRequired":{"shape":"booleanObjectType"} + } + }, + "UpdateOpenIDConnectProviderThumbprintRequest":{ + "type":"structure", + "required":[ + "OpenIDConnectProviderArn", + "ThumbprintList" + ], + "members":{ + "OpenIDConnectProviderArn":{"shape":"arnType"}, + "ThumbprintList":{"shape":"thumbprintListType"} + } + }, + "UpdateSAMLProviderRequest":{ + "type":"structure", + "required":[ + "SAMLMetadataDocument", + "SAMLProviderArn" + ], + "members":{ + "SAMLMetadataDocument":{"shape":"SAMLMetadataDocumentType"}, + "SAMLProviderArn":{"shape":"arnType"} + } + }, + "UpdateSAMLProviderResponse":{ + "type":"structure", + "members":{ + "SAMLProviderArn":{"shape":"arnType"} + } + }, + "UpdateServerCertificateRequest":{ + "type":"structure", + "required":["ServerCertificateName"], + "members":{ + "ServerCertificateName":{"shape":"serverCertificateNameType"}, + "NewPath":{"shape":"pathType"}, + "NewServerCertificateName":{"shape":"serverCertificateNameType"} + } + }, + "UpdateSigningCertificateRequest":{ + "type":"structure", + "required":[ + "CertificateId", + "Status" + ], + "members":{ + "UserName":{"shape":"existingUserNameType"}, + "CertificateId":{"shape":"certificateIdType"}, + "Status":{"shape":"statusType"} + } + }, + "UpdateUserRequest":{ + "type":"structure", + "required":["UserName"], + "members":{ + "UserName":{"shape":"existingUserNameType"}, + "NewPath":{"shape":"pathType"}, + "NewUserName":{"shape":"userNameType"} + } + }, + "UploadServerCertificateRequest":{ + "type":"structure", + "required":[ + "ServerCertificateName", + "CertificateBody", + "PrivateKey" + ], + "members":{ + "Path":{"shape":"pathType"}, + "ServerCertificateName":{"shape":"serverCertificateNameType"}, + "CertificateBody":{"shape":"certificateBodyType"}, + "PrivateKey":{"shape":"privateKeyType"}, + "CertificateChain":{"shape":"certificateChainType"} + } + }, + "UploadServerCertificateResponse":{ + "type":"structure", + "members":{ + "ServerCertificateMetadata":{"shape":"ServerCertificateMetadata"} + } + }, + "UploadSigningCertificateRequest":{ + "type":"structure", + "required":["CertificateBody"], + "members":{ + "UserName":{"shape":"existingUserNameType"}, + "CertificateBody":{"shape":"certificateBodyType"} + } + }, + "UploadSigningCertificateResponse":{ + "type":"structure", + "required":["Certificate"], + "members":{ + "Certificate":{"shape":"SigningCertificate"} + } + }, + "User":{ + "type":"structure", + "required":[ + "Path", + "UserName", + "UserId", + "Arn", + "CreateDate" + ], + "members":{ + "Path":{"shape":"pathType"}, + "UserName":{"shape":"userNameType"}, + "UserId":{"shape":"idType"}, + "Arn":{"shape":"arnType"}, + "CreateDate":{"shape":"dateType"}, + "PasswordLastUsed":{"shape":"dateType"} + } + }, + "UserDetail":{ + "type":"structure", + "members":{ + "Path":{"shape":"pathType"}, + "UserName":{"shape":"userNameType"}, + "UserId":{"shape":"idType"}, + "Arn":{"shape":"arnType"}, + "CreateDate":{"shape":"dateType"}, + "UserPolicyList":{"shape":"policyDetailListType"}, + "GroupList":{"shape":"groupNameListType"}, + "AttachedManagedPolicies":{"shape":"attachedPoliciesListType"} + } + }, + "VirtualMFADevice":{ + "type":"structure", + "required":["SerialNumber"], + "members":{ + "SerialNumber":{"shape":"serialNumberType"}, + "Base32StringSeed":{"shape":"BootstrapDatum"}, + "QRCodePNG":{"shape":"BootstrapDatum"}, + "User":{"shape":"User"}, + "EnableDate":{"shape":"dateType"} + } + }, + "accessKeyIdType":{ + "type":"string", + "min":16, + "max":32, + "pattern":"[\\w]*" + }, + "accessKeyMetadataListType":{ + "type":"list", + "member":{"shape":"AccessKeyMetadata"} + }, + "accessKeySecretType":{ + "type":"string", + "sensitive":true + }, + "accountAliasListType":{ + "type":"list", + "member":{"shape":"accountAliasType"} + }, + "accountAliasType":{ + "type":"string", + "min":3, + "max":63, + "pattern":"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$" + }, + "arnType":{ + "type":"string", + "min":20, + "max":2048 + }, + "assignmentStatusType":{ + "type":"string", + "enum":[ + "Assigned", + "Unassigned", + "Any" + ] + }, + "attachedPoliciesListType":{ + "type":"list", + "member":{"shape":"AttachedPolicy"} + }, + "attachmentCountType":{"type":"integer"}, + "authenticationCodeType":{ + "type":"string", + "min":6, + "max":6, + "pattern":"[\\d]*" + }, + "booleanObjectType":{ + "type":"boolean", + "box":true + }, + "booleanType":{"type":"boolean"}, + "certificateBodyType":{ + "type":"string", + "min":1, + "max":16384, + "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+" + }, + "certificateChainType":{ + "type":"string", + "min":1, + "max":2097152, + "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u00FF]*" + }, + "certificateIdType":{ + "type":"string", + "min":24, + "max":128, + "pattern":"[\\w]*" + }, + "certificateListType":{ + "type":"list", + "member":{"shape":"SigningCertificate"} + }, + "clientIDListType":{ + "type":"list", + "member":{"shape":"clientIDType"} + }, + "clientIDType":{ + "type":"string", + "min":1, + "max":255 + }, + "credentialReportExpiredExceptionMessage":{"type":"string"}, + "credentialReportNotPresentExceptionMessage":{"type":"string"}, + "credentialReportNotReadyExceptionMessage":{"type":"string"}, + "dateType":{"type":"timestamp"}, + "deleteConflictMessage":{"type":"string"}, + "duplicateCertificateMessage":{"type":"string"}, + "entityAlreadyExistsMessage":{"type":"string"}, + "entityListType":{ + "type":"list", + "member":{"shape":"EntityType"} + }, + "entityTemporarilyUnmodifiableMessage":{"type":"string"}, + "existingUserNameType":{ + "type":"string", + "min":1, + "max":128, + "pattern":"[\\w+=,.@-]*" + }, + "groupDetailListType":{ + "type":"list", + "member":{"shape":"GroupDetail"} + }, + "groupListType":{ + "type":"list", + "member":{"shape":"Group"} + }, + "groupNameListType":{ + "type":"list", + "member":{"shape":"groupNameType"} + }, + "groupNameType":{ + "type":"string", + "min":1, + "max":128, + "pattern":"[\\w+=,.@-]*" + }, + "idType":{ + "type":"string", + "min":16, + "max":32, + "pattern":"[\\w]*" + }, + "instanceProfileListType":{ + "type":"list", + "member":{"shape":"InstanceProfile"} + }, + "instanceProfileNameType":{ + "type":"string", + "min":1, + "max":128, + "pattern":"[\\w+=,.@-]*" + }, + "invalidAuthenticationCodeMessage":{"type":"string"}, + "invalidCertificateMessage":{"type":"string"}, + "invalidInputMessage":{"type":"string"}, + "invalidUserTypeMessage":{"type":"string"}, + "keyPairMismatchMessage":{"type":"string"}, + "limitExceededMessage":{"type":"string"}, + "malformedCertificateMessage":{"type":"string"}, + "malformedPolicyDocumentMessage":{"type":"string"}, + "markerType":{ + "type":"string", + "min":1, + "max":320, + "pattern":"[\\u0020-\\u00FF]*" + }, + "maxItemsType":{ + "type":"integer", + "min":1, + "max":1000 + }, + "maxPasswordAgeType":{ + "type":"integer", + "min":1, + "max":1095, + "box":true + }, + "mfaDeviceListType":{ + "type":"list", + "member":{"shape":"MFADevice"} + }, + "minimumPasswordLengthType":{ + "type":"integer", + "min":6, + "max":128 + }, + "noSuchEntityMessage":{"type":"string"}, + "passwordPolicyViolationMessage":{"type":"string"}, + "passwordReusePreventionType":{ + "type":"integer", + "min":1, + "max":24, + "box":true + }, + "passwordType":{ + "type":"string", + "min":1, + "max":128, + "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+", + "sensitive":true + }, + "pathPrefixType":{ + "type":"string", + "min":1, + "max":512, + "pattern":"\\u002F[\\u0021-\\u007F]*" + }, + "pathType":{ + "type":"string", + "min":1, + "max":512, + "pattern":"(\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F)" + }, + "policyDescriptionType":{ + "type":"string", + "max":1000 + }, + "policyDetailListType":{ + "type":"list", + "member":{"shape":"PolicyDetail"} + }, + "policyDocumentType":{ + "type":"string", + "min":1, + "max":131072, + "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+" + }, + "policyDocumentVersionListType":{ + "type":"list", + "member":{"shape":"PolicyVersion"} + }, + "policyListType":{ + "type":"list", + "member":{"shape":"Policy"} + }, + "policyNameListType":{ + "type":"list", + "member":{"shape":"policyNameType"} + }, + "policyNameType":{ + "type":"string", + "min":1, + "max":128, + "pattern":"[\\w+=,.@-]*" + }, + "policyPathType":{ + "type":"string", + "pattern":"((/[A-Za-z0-9\\.,\\+@=_-]+)*)/" + }, + "policyScopeType":{ + "type":"string", + "enum":[ + "All", + "AWS", + "Local" + ] + }, + "policyVersionIdType":{ + "type":"string", + "pattern":"v[1-9][0-9]*(\\.[A-Za-z0-9-]*)?" + }, + "privateKeyType":{ + "type":"string", + "min":1, + "max":16384, + "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u00FF]*", + "sensitive":true + }, + "roleDetailListType":{ + "type":"list", + "member":{"shape":"RoleDetail"} + }, + "roleListType":{ + "type":"list", + "member":{"shape":"Role"} + }, + "roleNameType":{ + "type":"string", + "min":1, + "max":64, + "pattern":"[\\w+=,.@-]*" + }, + "serialNumberType":{ + "type":"string", + "min":9, + "max":256, + "pattern":"[\\w+=/:,.@-]*" + }, + "serverCertificateMetadataListType":{ + "type":"list", + "member":{"shape":"ServerCertificateMetadata"} + }, + "serverCertificateNameType":{ + "type":"string", + "min":1, + "max":128, + "pattern":"[\\w+=,.@-]*" + }, + "serviceFailureExceptionMessage":{"type":"string"}, + "statusType":{ + "type":"string", + "enum":[ + "Active", + "Inactive" + ] + }, + "stringType":{"type":"string"}, + "summaryKeyType":{ + "type":"string", + "enum":[ + "Users", + "UsersQuota", + "Groups", + "GroupsQuota", + "ServerCertificates", + "ServerCertificatesQuota", + "UserPolicySizeQuota", + "GroupPolicySizeQuota", + "GroupsPerUserQuota", + "SigningCertificatesPerUserQuota", + "AccessKeysPerUserQuota", + "MFADevices", + "MFADevicesInUse", + "AccountMFAEnabled", + "AccountAccessKeysPresent", + "AccountSigningCertificatesPresent", + "AttachedPoliciesPerGroupQuota", + "AttachedPoliciesPerRoleQuota", + "AttachedPoliciesPerUserQuota", + "Policies", + "PoliciesQuota", + "PolicySizeQuota", + "PolicyVersionsInUse", + "PolicyVersionsInUseQuota", + "VersionsPerPolicyQuota" + ] + }, + "summaryMapType":{ + "type":"map", + "key":{"shape":"summaryKeyType"}, + "value":{"shape":"summaryValueType"} + }, + "summaryValueType":{"type":"integer"}, + "thumbprintListType":{ + "type":"list", + "member":{"shape":"thumbprintType"} + }, + "thumbprintType":{ + "type":"string", + "min":40, + "max":40 + }, + "userDetailListType":{ + "type":"list", + "member":{"shape":"UserDetail"} + }, + "userListType":{ + "type":"list", + "member":{"shape":"User"} + }, + "userNameType":{ + "type":"string", + "min":1, + "max":64, + "pattern":"[\\w+=,.@-]*" + }, + "virtualMFADeviceListType":{ + "type":"list", + "member":{"shape":"VirtualMFADevice"} + }, + "virtualMFADeviceName":{ + "type":"string", + "min":1, + "pattern":"[\\w+=,.@-]*" + } + } +} diff --git a/lib/aws-sdk/Aws/data/iam/2010-05-08/docs-2.json b/lib/aws-sdk/Aws/data/iam/2010-05-08/docs-2.json new file mode 100644 index 0000000..9803bc4 --- /dev/null +++ b/lib/aws-sdk/Aws/data/iam/2010-05-08/docs-2.json @@ -0,0 +1,2138 @@ +{ + "version": "2.0", + "operations": { + "AddClientIDToOpenIDConnectProvider": "

Adds a new client ID (also known as audience) to the list of client IDs already registered for the specified IAM OpenID Connect provider.

This action is idempotent; it does not fail or return an error if you add an existing client ID to the provider.

", + "AddRoleToInstanceProfile": "

Adds the specified role to the specified instance profile. For more information about roles, go to Working with Roles. For more information about instance profiles, go to About Instance Profiles.

", + "AddUserToGroup": "

Adds the specified user to the specified group.

", + "AttachGroupPolicy": "

Attaches the specified managed policy to the specified group.

You use this API to attach a managed policy to a group. To embed an inline policy in a group, use PutGroupPolicy.

For more information about policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

", + "AttachRolePolicy": "

Attaches the specified managed policy to the specified role.

When you attach a managed policy to a role, the managed policy is used as the role's access (permissions) policy. You cannot use a managed policy as the role's trust policy. The role's trust policy is created at the same time as the role, using CreateRole. You can update a role's trust policy using UpdateAssumeRolePolicy.

Use this API to attach a managed policy to a role. To embed an inline policy in a role, use PutRolePolicy. For more information about policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

", + "AttachUserPolicy": "

Attaches the specified managed policy to the specified user.

You use this API to attach a managed policy to a user. To embed an inline policy in a user, use PutUserPolicy.

For more information about policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

", + "ChangePassword": "

Changes the password of the IAM user who is calling this action. The root account password is not affected by this action.

To change the password for a different user, see UpdateLoginProfile. For more information about modifying passwords, see Managing Passwords in the Using IAM guide.

", + "CreateAccessKey": "

Creates a new AWS secret access key and corresponding AWS access key ID for the specified user. The default status for new keys is Active.

If you do not specify a user name, IAM determines the user name implicitly based on the AWS access key ID signing the request. Because this action works for access keys under the AWS account, you can use this action to manage root credentials even if the AWS account has no associated users.

For information about limits on the number of keys you can create, see Limitations on IAM Entities in the Using IAM guide.

To ensure the security of your AWS account, the secret access key is accessible only during key and user creation. You must save the key (for example, in a text file) if you want to be able to access it again. If a secret key is lost, you can delete the access keys for the associated user and then create new keys. ", + "CreateAccountAlias": "

Creates an alias for your AWS account. For information about using an AWS account alias, see Using an Alias for Your AWS Account ID in the Using IAM guide.

", + "CreateGroup": "

Creates a new group.

For information about the number of groups you can create, see Limitations on IAM Entities in the Using IAM guide.

", + "CreateInstanceProfile": "

Creates a new instance profile. For information about instance profiles, go to About Instance Profiles.

For information about the number of instance profiles you can create, see Limitations on IAM Entities in the Using IAM guide.

", + "CreateLoginProfile": "

Creates a password for the specified user, giving the user the ability to access AWS services through the AWS Management Console. For more information about managing passwords, see Managing Passwords in the Using IAM guide.

", + "CreateOpenIDConnectProvider": "

Creates an IAM entity to describe an identity provider (IdP) that supports OpenID Connect (OIDC).

The OIDC provider that you create with this operation can be used as a principal in a role's trust policy to establish a trust relationship between AWS and the OIDC provider.

When you create the IAM OIDC provider, you specify the URL of the OIDC identity provider (IdP) to trust, a list of client IDs (also known as audiences) that identify the application or applications that are allowed to authenticate using the OIDC provider, and a list of thumbprints of the server certificate(s) that the IdP uses. You get all of this information from the OIDC IdP that you want to use for access to AWS.

Because trust for the OIDC provider is ultimately derived from the IAM provider that this action creates, it is a best practice to limit access to the CreateOpenIDConnectProvider action to highly-privileged users. ", + "CreatePolicy": "

Creates a new managed policy for your AWS account.

This operation creates a policy version with a version identifier of v1 and sets v1 as the policy's default version. For more information about policy versions, see Versioning for Managed Policies in the Using IAM guide.

For more information about managed policies in general, refer to Managed Policies and Inline Policies in the Using IAM guide.

", + "CreatePolicyVersion": "

Creates a new version of the specified managed policy. To update a managed policy, you create a new policy version. A managed policy can have up to five versions. If the policy has five versions, you must delete an existing version using DeletePolicyVersion before you create a new version.

Optionally, you can set the new version as the policy's default version. The default version is the operative version; that is, the version that is in effect for the IAM users, groups, and roles that the policy is attached to.

For more information about managed policy versions, see Versioning for Managed Policies in the Using IAM guide.

", + "CreateRole": "

Creates a new role for your AWS account. For more information about roles, go to Working with Roles. For information about limitations on role names and the number of roles you can create, go to Limitations on IAM Entities in the Using IAM guide.

The policy in the following example grants permission to an EC2 instance to assume the role.

", + "CreateSAMLProvider": "

Creates an IAM entity to describe an identity provider (IdP) that supports SAML 2.0.

The SAML provider that you create with this operation can be used as a principal in a role's trust policy to establish a trust relationship between AWS and a SAML identity provider. You can create an IAM role that supports Web-based single sign-on (SSO) to the AWS Management Console or one that supports API access to AWS.

When you create the SAML provider, you upload an a SAML metadata document that you get from your IdP and that includes the issuer's name, expiration information, and keys that can be used to validate the SAML authentication response (assertions) that are received from the IdP. You must generate the metadata document using the identity management software that is used as your organization's IdP.

This operation requires Signature Version 4.

For more information, see Giving Console Access Using SAML and Creating Temporary Security Credentials for SAML Federation in the Using Temporary Credentials guide.

", + "CreateUser": "

Creates a new user for your AWS account.

For information about limitations on the number of users you can create, see Limitations on IAM Entities in the Using IAM guide.

", + "CreateVirtualMFADevice": "

Creates a new virtual MFA device for the AWS account. After creating the virtual MFA, use EnableMFADevice to attach the MFA device to an IAM user. For more information about creating and working with virtual MFA devices, go to Using a Virtual MFA Device in the Using IAM guide.

For information about limits on the number of MFA devices you can create, see Limitations on Entities in the Using IAM guide.

The seed information contained in the QR code and the Base32 string should be treated like any other secret access information, such as your AWS access keys or your passwords. After you provision your virtual device, you should ensure that the information is destroyed following secure procedures. ", + "DeactivateMFADevice": "

Deactivates the specified MFA device and removes it from association with the user name for which it was originally enabled.

For more information about creating and working with virtual MFA devices, go to Using a Virtual MFA Device in the Using IAM guide.

", + "DeleteAccessKey": "

Deletes the access key associated with the specified user.

If you do not specify a user name, IAM determines the user name implicitly based on the AWS access key ID signing the request. Because this action works for access keys under the AWS account, you can use this action to manage root credentials even if the AWS account has no associated users.

", + "DeleteAccountAlias": "

Deletes the specified AWS account alias. For information about using an AWS account alias, see Using an Alias for Your AWS Account ID in the Using IAM guide.

", + "DeleteAccountPasswordPolicy": "

Deletes the password policy for the AWS account.

", + "DeleteGroup": "

Deletes the specified group. The group must not contain any users or have any attached policies.

", + "DeleteGroupPolicy": "

Deletes the specified inline policy that is embedded in the specified group.

A group can also have managed policies attached to it. To detach a managed policy from a group, use DetachGroupPolicy. For more information about policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

", + "DeleteInstanceProfile": "

Deletes the specified instance profile. The instance profile must not have an associated role.

Make sure you do not have any Amazon EC2 instances running with the instance profile you are about to delete. Deleting a role or instance profile that is associated with a running instance will break any applications running on the instance.

For more information about instance profiles, go to About Instance Profiles.

", + "DeleteLoginProfile": "

Deletes the password for the specified user, which terminates the user's ability to access AWS services through the AWS Management Console.

Deleting a user's password does not prevent a user from accessing IAM through the command line interface or the API. To prevent all user access you must also either make the access key inactive or delete it. For more information about making keys inactive or deleting them, see UpdateAccessKey and DeleteAccessKey. ", + "DeleteOpenIDConnectProvider": "

Deletes an IAM OpenID Connect identity provider.

Deleting an OIDC provider does not update any roles that reference the provider as a principal in their trust policies. Any attempt to assume a role that references a provider that has been deleted will fail.

This action is idempotent; it does not fail or return an error if you call the action for a provider that was already deleted.

", + "DeletePolicy": "

Deletes the specified managed policy.

Before you can delete a managed policy, you must detach the policy from all users, groups, and roles that it is attached to, and you must delete all of the policy's versions. The following steps describe the process for deleting a managed policy:

  1. Detach the policy from all users, groups, and roles that the policy is attached to, using the DetachUserPolicy, DetachGroupPolicy, or DetachRolePolicy APIs. To list all the users, groups, and roles that a policy is attached to, use ListEntitiesForPolicy.
  2. Delete all versions of the policy using DeletePolicyVersion. To list the policy's versions, use ListPolicyVersions. You cannot use DeletePolicyVersion to delete the version that is marked as the default version. You delete the policy's default version in the next step of the process.
  3. Delete the policy (this automatically deletes the policy's default version) using this API.

For information about managed policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

", + "DeletePolicyVersion": "

Deletes the specified version of the specified managed policy.

You cannot delete the default version of a policy using this API. To delete the default version of a policy, use DeletePolicy. To find out which version of a policy is marked as the default version, use ListPolicyVersions.

For information about versions for managed policies, refer to Versioning for Managed Policies in the Using IAM guide.

", + "DeleteRole": "

Deletes the specified role. The role must not have any policies attached. For more information about roles, go to Working with Roles.

Make sure you do not have any Amazon EC2 instances running with the role you are about to delete. Deleting a role or instance profile that is associated with a running instance will break any applications running on the instance. ", + "DeleteRolePolicy": "

Deletes the specified inline policy that is embedded in the specified role.

A role can also have managed policies attached to it. To detach a managed policy from a role, use DetachRolePolicy. For more information about policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

", + "DeleteSAMLProvider": "

Deletes a SAML provider.

Deleting the provider does not update any roles that reference the SAML provider as a principal in their trust policies. Any attempt to assume a role that references a SAML provider that has been deleted will fail.

This operation requires Signature Version 4. ", + "DeleteServerCertificate": "

Deletes the specified server certificate.

If you are using a server certificate with Elastic Load Balancing, deleting the certificate could have implications for your application. If Elastic Load Balancing doesn't detect the deletion of bound certificates, it may continue to use the certificates. This could cause Elastic Load Balancing to stop accepting traffic. We recommend that you remove the reference to the certificate from Elastic Load Balancing before using this command to delete the certificate. For more information, go to DeleteLoadBalancerListeners in the Elastic Load Balancing API Reference. ", + "DeleteSigningCertificate": "

Deletes the specified signing certificate associated with the specified user.

If you do not specify a user name, IAM determines the user name implicitly based on the AWS access key ID signing the request. Because this action works for access keys under the AWS account, you can use this action to manage root credentials even if the AWS account has no associated users.

", + "DeleteUser": "

Deletes the specified user. The user must not belong to any groups, have any keys or signing certificates, or have any attached policies.

", + "DeleteUserPolicy": "

Deletes the specified inline policy that is embedded in the specified user.

A user can also have managed policies attached to it. To detach a managed policy from a user, use DetachUserPolicy. For more information about policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

", + "DeleteVirtualMFADevice": "

Deletes a virtual MFA device.

You must deactivate a user's virtual MFA device before you can delete it. For information about deactivating MFA devices, see DeactivateMFADevice. ", + "DetachGroupPolicy": "

Removes the specified managed policy from the specified group.

A group can also have inline policies embedded with it. To delete an inline policy, use the DeleteGroupPolicy API. For information about policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

", + "DetachRolePolicy": "

Removes the specified managed policy from the specified role.

A role can also have inline policies embedded with it. To delete an inline policy, use the DeleteRolePolicy API. For information about policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

", + "DetachUserPolicy": "

Removes the specified managed policy from the specified user.

A user can also have inline policies embedded with it. To delete an inline policy, use the DeleteUserPolicy API. For information about policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

", + "EnableMFADevice": "

Enables the specified MFA device and associates it with the specified user name. When enabled, the MFA device is required for every subsequent login by the user name associated with the device.

", + "GenerateCredentialReport": "

Generates a credential report for the AWS account. For more information about the credential report, see Getting Credential Reports in the Using IAM guide.

", + "GetAccessKeyLastUsed": "

Retrieves information about when the specified access key was last used. The information includes the date and time of last use, along with the AWS service and region that were specified in the last request made with that key.

", + "GetAccountAuthorizationDetails": "

Retrieves information about all IAM users, groups, roles, and policies in your account, including their relationships to one another. Use this API to obtain a snapshot of the configuration of IAM permissions (users, groups, roles, and policies) in your account.

You can optionally filter the results using the Filter parameter. You can paginate the results using the MaxItems and Marker parameters.

", + "GetAccountPasswordPolicy": "

Retrieves the password policy for the AWS account. For more information about using a password policy, go to Managing an IAM Password Policy.

", + "GetAccountSummary": "

Retrieves information about IAM entity usage and IAM quotas in the AWS account.

For information about limitations on IAM entities, see Limitations on IAM Entities in the Using IAM guide.

", + "GetCredentialReport": "

Retrieves a credential report for the AWS account. For more information about the credential report, see Getting Credential Reports in the Using IAM guide.

", + "GetGroup": "

Returns a list of users that are in the specified group. You can paginate the results using the MaxItems and Marker parameters.

", + "GetGroupPolicy": "

Retrieves the specified inline policy document that is embedded in the specified group.

A group can also have managed policies attached to it. To retrieve a managed policy document that is attached to a group, use GetPolicy to determine the policy's default version, then use GetPolicyVersion to retrieve the policy document.

For more information about policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

", + "GetInstanceProfile": "

Retrieves information about the specified instance profile, including the instance profile's path, GUID, ARN, and role. For more information about instance profiles, go to About Instance Profiles. For more information about ARNs, go to ARNs.

", + "GetLoginProfile": "

Retrieves the user name and password-creation date for the specified user. If the user has not been assigned a password, the action returns a 404 (NoSuchEntity) error.

", + "GetOpenIDConnectProvider": "

Returns information about the specified OpenID Connect provider.

", + "GetPolicy": "

Retrieves information about the specified managed policy, including the policy's default version and the total number of users, groups, and roles that the policy is attached to. For a list of the specific users, groups, and roles that the policy is attached to, use the ListEntitiesForPolicy API. This API returns metadata about the policy. To retrieve the policy document for a specific version of the policy, use GetPolicyVersion.

This API retrieves information about managed policies. To retrieve information about an inline policy that is embedded with a user, group, or role, use the GetUserPolicy, GetGroupPolicy, or GetRolePolicy API.

For more information about policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

", + "GetPolicyVersion": "

Retrieves information about the specified version of the specified managed policy, including the policy document.

To list the available versions for a policy, use ListPolicyVersions.

This API retrieves information about managed policies. To retrieve information about an inline policy that is embedded in a user, group, or role, use the GetUserPolicy, GetGroupPolicy, or GetRolePolicy API.

For more information about the types of policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

", + "GetRole": "

Retrieves information about the specified role, including the role's path, GUID, ARN, and the policy granting permission to assume the role. For more information about ARNs, go to ARNs. For more information about roles, go to Working with Roles.

", + "GetRolePolicy": "

Retrieves the specified inline policy document that is embedded with the specified role.

A role can also have managed policies attached to it. To retrieve a managed policy document that is attached to a role, use GetPolicy to determine the policy's default version, then use GetPolicyVersion to retrieve the policy document.

For more information about policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

For more information about roles, go to Using Roles to Delegate Permissions and Federate Identities.

", + "GetSAMLProvider": "

Returns the SAML provider metadocument that was uploaded when the provider was created or updated.

This operation requires Signature Version 4. ", + "GetServerCertificate": "

Retrieves information about the specified server certificate.

", + "GetUser": "

Retrieves information about the specified user, including the user's creation date, path, unique ID, and ARN.

If you do not specify a user name, IAM determines the user name implicitly based on the AWS access key ID used to sign the request.

", + "GetUserPolicy": "

Retrieves the specified inline policy document that is embedded in the specified user.

A user can also have managed policies attached to it. To retrieve a managed policy document that is attached to a user, use GetPolicy to determine the policy's default version, then use GetPolicyVersion to retrieve the policy document.

For more information about policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

", + "ListAccessKeys": "

Returns information about the access key IDs associated with the specified user. If there are none, the action returns an empty list.

Although each user is limited to a small number of keys, you can still paginate the results using the MaxItems and Marker parameters.

If the UserName field is not specified, the UserName is determined implicitly based on the AWS access key ID used to sign the request. Because this action works for access keys under the AWS account, you can use this action to manage root credentials even if the AWS account has no associated users.

To ensure the security of your AWS account, the secret access key is accessible only during key and user creation. ", + "ListAccountAliases": "

Lists the account aliases associated with the account. For information about using an AWS account alias, see Using an Alias for Your AWS Account ID in the Using IAM guide.

You can paginate the results using the MaxItems and Marker parameters.

", + "ListAttachedGroupPolicies": "

Lists all managed policies that are attached to the specified group.

A group can also have inline policies embedded with it. To list the inline policies for a group, use the ListGroupPolicies API. For information about policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

You can paginate the results using the MaxItems and Marker parameters. You can use the PathPrefix parameter to limit the list of policies to only those matching the specified path prefix. If there are no policies attached to the specified group (or none that match the specified path prefix), the action returns an empty list.

", + "ListAttachedRolePolicies": "

Lists all managed policies that are attached to the specified role.

A role can also have inline policies embedded with it. To list the inline policies for a role, use the ListRolePolicies API. For information about policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

You can paginate the results using the MaxItems and Marker parameters. You can use the PathPrefix parameter to limit the list of policies to only those matching the specified path prefix. If there are no policies attached to the specified role (or none that match the specified path prefix), the action returns an empty list.

", + "ListAttachedUserPolicies": "

Lists all managed policies that are attached to the specified user.

A user can also have inline policies embedded with it. To list the inline policies for a user, use the ListUserPolicies API. For information about policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

You can paginate the results using the MaxItems and Marker parameters. You can use the PathPrefix parameter to limit the list of policies to only those matching the specified path prefix. If there are no policies attached to the specified group (or none that match the specified path prefix), the action returns an empty list.

", + "ListEntitiesForPolicy": "

Lists all users, groups, and roles that the specified managed policy is attached to.

You can use the optional EntityFilter parameter to limit the results to a particular type of entity (users, groups, or roles). For example, to list only the roles that are attached to the specified policy, set EntityFilter to Role.

You can paginate the results using the MaxItems and Marker parameters.

", + "ListGroupPolicies": "

Lists the names of the inline policies that are embedded in the specified group.

A group can also have managed policies attached to it. To list the managed policies that are attached to a group, use ListAttachedGroupPolicies. For more information about policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

You can paginate the results using the MaxItems and Marker parameters. If there are no inline policies embedded with the specified group, the action returns an empty list.

", + "ListGroups": "

Lists the groups that have the specified path prefix.

You can paginate the results using the MaxItems and Marker parameters.

", + "ListGroupsForUser": "

Lists the groups the specified user belongs to.

You can paginate the results using the MaxItems and Marker parameters.

", + "ListInstanceProfiles": "

Lists the instance profiles that have the specified path prefix. If there are none, the action returns an empty list. For more information about instance profiles, go to About Instance Profiles.

You can paginate the results using the MaxItems and Marker parameters.

", + "ListInstanceProfilesForRole": "

Lists the instance profiles that have the specified associated role. If there are none, the action returns an empty list. For more information about instance profiles, go to About Instance Profiles.

You can paginate the results using the MaxItems and Marker parameters.

", + "ListMFADevices": "

Lists the MFA devices. If the request includes the user name, then this action lists all the MFA devices associated with the specified user name. If you do not specify a user name, IAM determines the user name implicitly based on the AWS access key ID signing the request.

You can paginate the results using the MaxItems and Marker parameters.

", + "ListOpenIDConnectProviders": "

Lists information about the OpenID Connect providers in the AWS account.

", + "ListPolicies": "

Lists all the managed policies that are available to your account, including your own customer managed policies and all AWS managed policies.

You can filter the list of policies that is returned using the optional OnlyAttached, Scope, and PathPrefix parameters. For example, to list only the customer managed policies in your AWS account, set Scope to Local. To list only AWS managed policies, set Scope to AWS.

You can paginate the results using the MaxItems and Marker parameters.

For more information about managed policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

", + "ListPolicyVersions": "

Lists information about the versions of the specified managed policy, including the version that is set as the policy's default version.

For more information about managed policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

", + "ListRolePolicies": "

Lists the names of the inline policies that are embedded in the specified role.

A role can also have managed policies attached to it. To list the managed policies that are attached to a role, use ListAttachedRolePolicies. For more information about policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

You can paginate the results using the MaxItems and Marker parameters. If there are no inline policies embedded with the specified role, the action returns an empty list.

", + "ListRoles": "

Lists the roles that have the specified path prefix. If there are none, the action returns an empty list. For more information about roles, go to Working with Roles.

You can paginate the results using the MaxItems and Marker parameters.

", + "ListSAMLProviders": "

Lists the SAML providers in the account.

This operation requires Signature Version 4. ", + "ListServerCertificates": "

Lists the server certificates that have the specified path prefix. If none exist, the action returns an empty list.

You can paginate the results using the MaxItems and Marker parameters.

", + "ListSigningCertificates": "

Returns information about the signing certificates associated with the specified user. If there are none, the action returns an empty list.

Although each user is limited to a small number of signing certificates, you can still paginate the results using the MaxItems and Marker parameters.

If the UserName field is not specified, the user name is determined implicitly based on the AWS access key ID used to sign the request. Because this action works for access keys under the AWS account, you can use this action to manage root credentials even if the AWS account has no associated users.

", + "ListUserPolicies": "

Lists the names of the inline policies embedded in the specified user.

A user can also have managed policies attached to it. To list the managed policies that are attached to a user, use ListAttachedUserPolicies. For more information about policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

You can paginate the results using the MaxItems and Marker parameters. If there are no inline policies embedded with the specified user, the action returns an empty list.

", + "ListUsers": "

Lists the IAM users that have the specified path prefix. If no path prefix is specified, the action returns all users in the AWS account. If there are none, the action returns an empty list.

You can paginate the results using the MaxItems and Marker parameters.

", + "ListVirtualMFADevices": "

Lists the virtual MFA devices under the AWS account by assignment status. If you do not specify an assignment status, the action returns a list of all virtual MFA devices. Assignment status can be Assigned, Unassigned, or Any.

You can paginate the results using the MaxItems and Marker parameters.

", + "PutGroupPolicy": "

Adds (or updates) an inline policy document that is embedded in the specified group.

A user can also have managed policies attached to it. To attach a managed policy to a group, use AttachGroupPolicy. To create a new managed policy, use CreatePolicy. For information about policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

For information about limits on the number of inline policies that you can embed in a group, see Limitations on IAM Entities in the Using IAM guide.

Because policy documents can be large, you should use POST rather than GET when calling PutGroupPolicy. For general information about using the Query API with IAM, go to Making Query Requests in the Using IAM guide. ", + "PutRolePolicy": "

Adds (or updates) an inline policy document that is embedded in the specified role.

When you embed an inline policy in a role, the inline policy is used as the role's access (permissions) policy. The role's trust policy is created at the same time as the role, using CreateRole. You can update a role's trust policy using UpdateAssumeRolePolicy. For more information about roles, go to Using Roles to Delegate Permissions and Federate Identities.

A role can also have a managed policy attached to it. To attach a managed policy to a role, use AttachRolePolicy. To create a new managed policy, use CreatePolicy. For information about policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

For information about limits on the number of inline policies that you can embed with a role, see Limitations on IAM Entities in the Using IAM guide.

Because policy documents can be large, you should use POST rather than GET when calling PutRolePolicy. For general information about using the Query API with IAM, go to Making Query Requests in the Using IAM guide. ", + "PutUserPolicy": "

Adds (or updates) an inline policy document that is embedded in the specified user.

A user can also have a managed policy attached to it. To attach a managed policy to a user, use AttachUserPolicy. To create a new managed policy, use CreatePolicy. For information about policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

For information about limits on the number of inline policies that you can embed in a user, see Limitations on IAM Entities in the Using IAM guide.

Because policy documents can be large, you should use POST rather than GET when calling PutUserPolicy. For general information about using the Query API with IAM, go to Making Query Requests in the Using IAM guide. ", + "RemoveClientIDFromOpenIDConnectProvider": "

Removes the specified client ID (also known as audience) from the list of client IDs registered for the specified IAM OpenID Connect provider.

This action is idempotent; it does not fail or return an error if you try to remove a client ID that was removed previously.

", + "RemoveRoleFromInstanceProfile": "

Removes the specified role from the specified instance profile.

Make sure you do not have any Amazon EC2 instances running with the role you are about to remove from the instance profile. Removing a role from an instance profile that is associated with a running instance will break any applications running on the instance.

For more information about roles, go to Working with Roles. For more information about instance profiles, go to About Instance Profiles.

", + "RemoveUserFromGroup": "

Removes the specified user from the specified group.

", + "ResyncMFADevice": "

Synchronizes the specified MFA device with AWS servers.

For more information about creating and working with virtual MFA devices, go to Using a Virtual MFA Device in the Using IAM guide.

", + "SetDefaultPolicyVersion": "

Sets the specified version of the specified policy as the policy's default (operative) version.

This action affects all users, groups, and roles that the policy is attached to. To list the users, groups, and roles that the policy is attached to, use the ListEntitiesForPolicy API.

For information about managed policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

", + "UpdateAccessKey": "

Changes the status of the specified access key from Active to Inactive, or vice versa. This action can be used to disable a user's key as part of a key rotation work flow.

If the UserName field is not specified, the UserName is determined implicitly based on the AWS access key ID used to sign the request. Because this action works for access keys under the AWS account, you can use this action to manage root credentials even if the AWS account has no associated users.

For information about rotating keys, see Managing Keys and Certificates in the Using IAM guide.

", + "UpdateAccountPasswordPolicy": "

Updates the password policy settings for the AWS account.

This action does not support partial updates. No parameters are required, but if you do not specify a parameter, that parameter's value reverts to its default value. See the Request Parameters section for each parameter's default value.

For more information about using a password policy, see Managing an IAM Password Policy in the Using IAM guide.

", + "UpdateAssumeRolePolicy": "

Updates the policy that grants an entity permission to assume a role. For more information about roles, go to Using Roles to Delegate Permissions and Federate Identities.

", + "UpdateGroup": "

Updates the name and/or the path of the specified group.

You should understand the implications of changing a group's path or name. For more information, see Renaming Users and Groups in the Using IAM guide. To change a group name the requester must have appropriate permissions on both the source object and the target object. For example, to change Managers to MGRs, the entity making the request must have permission on Managers and MGRs, or must have permission on all (*). For more information about permissions, see Permissions and Policies. ", + "UpdateLoginProfile": "

Changes the password for the specified user.

Users can change their own passwords by calling ChangePassword. For more information about modifying passwords, see Managing Passwords in the Using IAM guide.

", + "UpdateOpenIDConnectProviderThumbprint": "

Replaces the existing list of server certificate thumbprints with a new list.

The list that you pass with this action completely replaces the existing list of thumbprints. (The lists are not merged.)

Typically, you need to update a thumbprint only when the identity provider's certificate changes, which occurs rarely. However, if the provider's certificate does change, any attempt to assume an IAM role that specifies the OIDC provider as a principal will fail until the certificate thumbprint is updated.

Because trust for the OpenID Connect provider is ultimately derived from the provider's certificate and is validated by the thumbprint, it is a best practice to limit access to the UpdateOpenIDConnectProviderThumbprint action to highly-privileged users. ", + "UpdateSAMLProvider": "

Updates the metadata document for an existing SAML provider.

This operation requires Signature Version 4. ", + "UpdateServerCertificate": "

Updates the name and/or the path of the specified server certificate.

You should understand the implications of changing a server certificate's path or name. For more information, see Managing Server Certificates in the Using IAM guide. To change a server certificate name the requester must have appropriate permissions on both the source object and the target object. For example, to change the name from ProductionCert to ProdCert, the entity making the request must have permission on ProductionCert and ProdCert, or must have permission on all (*). For more information about permissions, see Permissions and Policies. ", + "UpdateSigningCertificate": "

Changes the status of the specified signing certificate from active to disabled, or vice versa. This action can be used to disable a user's signing certificate as part of a certificate rotation work flow.

If the UserName field is not specified, the UserName is determined implicitly based on the AWS access key ID used to sign the request. Because this action works for access keys under the AWS account, you can use this action to manage root credentials even if the AWS account has no associated users.

", + "UpdateUser": "

Updates the name and/or the path of the specified user.

You should understand the implications of changing a user's path or name. For more information, see Renaming Users and Groups in the Using IAM guide. To change a user name the requester must have appropriate permissions on both the source object and the target object. For example, to change Bob to Robert, the entity making the request must have permission on Bob and Robert, or must have permission on all (*). For more information about permissions, see Permissions and Policies. ", + "UploadServerCertificate": "

Uploads a server certificate entity for the AWS account. The server certificate entity includes a public key certificate, a private key, and an optional certificate chain, which should all be PEM-encoded.

For information about the number of server certificates you can upload, see Limitations on IAM Entities in the Using IAM guide.

Because the body of the public key certificate, private key, and the certificate chain can be large, you should use POST rather than GET when calling UploadServerCertificate. For information about setting up signatures and authorization through the API, go to Signing AWS API Requests in the AWS General Reference. For general information about using the Query API with IAM, go to Making Query Requests in the Using IAM guide. ", + "UploadSigningCertificate": "

Uploads an X.509 signing certificate and associates it with the specified user. Some AWS services use X.509 signing certificates to validate requests that are signed with a corresponding private key. When you upload the certificate, its default status is Active.

If the UserName field is not specified, the user name is determined implicitly based on the AWS access key ID used to sign the request. Because this action works for access keys under the AWS account, you can use this action to manage root credentials even if the AWS account has no associated users.

Because the body of a X.509 certificate can be large, you should use POST rather than GET when calling UploadSigningCertificate. For information about setting up signatures and authorization through the API, go to Signing AWS API Requests in the AWS General Reference. For general information about using the Query API with IAM, go to Making Query Requests in the Using IAMguide. " + }, + "service": "AWS Identity and Access Management

AWS Identity and Access Management (IAM) is a web service that you can use to manage users and user permissions under your AWS account. This guide provides descriptions of IAM actions that you can call programmatically. For general information about IAM, see AWS Identity and Access Management (IAM). For the user guide for IAM, see Using IAM.

AWS provides SDKs that consist of libraries and sample code for various programming languages and platforms (Java, Ruby, .NET, iOS, Android, etc.). The SDKs provide a convenient way to create programmatic access to IAM and AWS. For example, the SDKs take care of tasks such as cryptographically signing requests (see below), managing errors, and retrying requests automatically. For information about the AWS SDKs, including how to download and install them, see the Tools for Amazon Web Services page.

We recommend that you use the AWS SDKs to make programmatic API calls to IAM. However, you can also use the IAM Query API to make direct calls to the IAM web service. To learn more about the IAM Query API, see Making Query Requests in the Using IAM guide. IAM supports GET and POST requests for all actions. That is, the API does not require you to use GET for some actions and POST for others. However, GET requests are subject to the limitation size of a URL. Therefore, for operations that require larger sizes, use a POST request.

Signing Requests

Requests must be signed using an access key ID and a secret access key. We strongly recommend that you do not use your AWS account access key ID and secret access key for everyday work with IAM. You can use the access key ID and secret access key for an IAM user or you can use the AWS Security Token Service to generate temporary security credentials and use those to sign requests.

To sign requests, we recommend that you use Signature Version 4. If you have an existing application that uses Signature Version 2, you do not have to update it to use Signature Version 4. However, some operations now require Signature Version 4. The documentation for operations that require version 4 indicate this requirement.

Additional Resources

For more information, see the following:

  • AWS Security Credentials. This topic provides general information about the types of credentials used for accessing AWS.
  • IAM Best Practices. This topic presents a list of suggestions for using the IAM service to help secure your AWS resources.
  • AWS Security Token Service. This guide describes how to create and use temporary security credentials.
  • Signing AWS API Requests. This set of topics walk you through the process of signing a request using an access key ID and secret access key.
", + "shapes": { + "AccessKey": { + "base": "

Contains information about an AWS access key.

This data type is used as a response element in the CreateAccessKey and ListAccessKeys actions.

The SecretAccessKey value is returned only in response to CreateAccessKey. You can get a secret access key only when you first create an access key; you cannot recover the secret access key later. If you lose a secret access key, you must create a new access key. ", + "refs": { + "CreateAccessKeyResponse$AccessKey": "

Information about the access key.

" + } + }, + "AccessKeyLastUsed": { + "base": "

Contains information about the last time an AWS access key was used.

This data type is used as a response element in the GetAccessKeyLastUsed action.

", + "refs": { + "GetAccessKeyLastUsedResponse$AccessKeyLastUsed": "

Contains information about the last time the access key was used.

" + } + }, + "AccessKeyMetadata": { + "base": "

Contains information about an AWS access key, without its secret key.

This data type is used as a response element in the ListAccessKeys action.

", + "refs": { + "accessKeyMetadataListType$member": null + } + }, + "AddClientIDToOpenIDConnectProviderRequest": { + "base": null, + "refs": { + } + }, + "AddRoleToInstanceProfileRequest": { + "base": null, + "refs": { + } + }, + "AddUserToGroupRequest": { + "base": null, + "refs": { + } + }, + "AttachGroupPolicyRequest": { + "base": null, + "refs": { + } + }, + "AttachRolePolicyRequest": { + "base": null, + "refs": { + } + }, + "AttachUserPolicyRequest": { + "base": null, + "refs": { + } + }, + "AttachedPolicy": { + "base": "

Contains information about an attached policy.

An attached policy is a managed policy that has been attached to a user, group, or role. This data type is used as a response element in the ListAttachedGroupPolicies, ListAttachedRolePolicies, ListAttachedUserPolicies, and GetAccountAuthorizationDetails actions.

For more information about managed policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

", + "refs": { + "attachedPoliciesListType$member": null + } + }, + "BootstrapDatum": { + "base": null, + "refs": { + "VirtualMFADevice$Base32StringSeed": "

The Base32 seed defined as specified in RFC3548. The Base32StringSeed is Base64-encoded.

", + "VirtualMFADevice$QRCodePNG": "

A QR code PNG image that encodes otpauth://totp/$virtualMFADeviceName@$AccountName?secret=$Base32String where $virtualMFADeviceName is one of the create call arguments, AccountName is the user name if set (otherwise, the account ID otherwise), and Base32String is the seed in Base32 format. The Base32String value is Base64-encoded.

" + } + }, + "ChangePasswordRequest": { + "base": null, + "refs": { + } + }, + "CreateAccessKeyRequest": { + "base": null, + "refs": { + } + }, + "CreateAccessKeyResponse": { + "base": "

Contains the response to a successful CreateAccessKey request.

", + "refs": { + } + }, + "CreateAccountAliasRequest": { + "base": null, + "refs": { + } + }, + "CreateGroupRequest": { + "base": null, + "refs": { + } + }, + "CreateGroupResponse": { + "base": "

Contains the response to a successful CreateGroup request.

", + "refs": { + } + }, + "CreateInstanceProfileRequest": { + "base": null, + "refs": { + } + }, + "CreateInstanceProfileResponse": { + "base": "

Contains the response to a successful CreateInstanceProfile request.

", + "refs": { + } + }, + "CreateLoginProfileRequest": { + "base": null, + "refs": { + } + }, + "CreateLoginProfileResponse": { + "base": "

Contains the response to a successful CreateLoginProfile request.

", + "refs": { + } + }, + "CreateOpenIDConnectProviderRequest": { + "base": null, + "refs": { + } + }, + "CreateOpenIDConnectProviderResponse": { + "base": "

Contains the response to a successful CreateOpenIDConnectProvider request.

", + "refs": { + } + }, + "CreatePolicyRequest": { + "base": null, + "refs": { + } + }, + "CreatePolicyResponse": { + "base": "

Contains the response to a successful CreatePolicy request.

", + "refs": { + } + }, + "CreatePolicyVersionRequest": { + "base": null, + "refs": { + } + }, + "CreatePolicyVersionResponse": { + "base": "

Contains the response to a successful CreatePolicyVersion request.

", + "refs": { + } + }, + "CreateRoleRequest": { + "base": null, + "refs": { + } + }, + "CreateRoleResponse": { + "base": "

Contains the response to a successful CreateRole request.

", + "refs": { + } + }, + "CreateSAMLProviderRequest": { + "base": null, + "refs": { + } + }, + "CreateSAMLProviderResponse": { + "base": "

Contains the response to a successful CreateSAMLProvider request.

", + "refs": { + } + }, + "CreateUserRequest": { + "base": null, + "refs": { + } + }, + "CreateUserResponse": { + "base": "

Contains the response to a successful CreateUser request.

", + "refs": { + } + }, + "CreateVirtualMFADeviceRequest": { + "base": null, + "refs": { + } + }, + "CreateVirtualMFADeviceResponse": { + "base": "

Contains the response to a successful CreateVirtualMFADevice request.

", + "refs": { + } + }, + "CredentialReportExpiredException": { + "base": "

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.

", + "refs": { + } + }, + "CredentialReportNotPresentException": { + "base": "

The request was rejected because the credential report does not exist. To generate a credential report, use GenerateCredentialReport.

", + "refs": { + } + }, + "CredentialReportNotReadyException": { + "base": "

The request was rejected because the credential report is still being generated.

", + "refs": { + } + }, + "DeactivateMFADeviceRequest": { + "base": null, + "refs": { + } + }, + "DeleteAccessKeyRequest": { + "base": null, + "refs": { + } + }, + "DeleteAccountAliasRequest": { + "base": null, + "refs": { + } + }, + "DeleteConflictException": { + "base": "

The request was rejected because it attempted to delete a resource that has attached subordinate entities. The error message describes these entities.

", + "refs": { + } + }, + "DeleteGroupPolicyRequest": { + "base": null, + "refs": { + } + }, + "DeleteGroupRequest": { + "base": null, + "refs": { + } + }, + "DeleteInstanceProfileRequest": { + "base": null, + "refs": { + } + }, + "DeleteLoginProfileRequest": { + "base": null, + "refs": { + } + }, + "DeleteOpenIDConnectProviderRequest": { + "base": null, + "refs": { + } + }, + "DeletePolicyRequest": { + "base": null, + "refs": { + } + }, + "DeletePolicyVersionRequest": { + "base": null, + "refs": { + } + }, + "DeleteRolePolicyRequest": { + "base": null, + "refs": { + } + }, + "DeleteRoleRequest": { + "base": null, + "refs": { + } + }, + "DeleteSAMLProviderRequest": { + "base": null, + "refs": { + } + }, + "DeleteServerCertificateRequest": { + "base": null, + "refs": { + } + }, + "DeleteSigningCertificateRequest": { + "base": null, + "refs": { + } + }, + "DeleteUserPolicyRequest": { + "base": null, + "refs": { + } + }, + "DeleteUserRequest": { + "base": null, + "refs": { + } + }, + "DeleteVirtualMFADeviceRequest": { + "base": null, + "refs": { + } + }, + "DetachGroupPolicyRequest": { + "base": null, + "refs": { + } + }, + "DetachRolePolicyRequest": { + "base": null, + "refs": { + } + }, + "DetachUserPolicyRequest": { + "base": null, + "refs": { + } + }, + "DuplicateCertificateException": { + "base": "

The request was rejected because the same certificate is associated to another user under the account.

", + "refs": { + } + }, + "EnableMFADeviceRequest": { + "base": null, + "refs": { + } + }, + "EntityAlreadyExistsException": { + "base": "

The request was rejected because it attempted to create a resource that already exists.

", + "refs": { + } + }, + "EntityTemporarilyUnmodifiableException": { + "base": "

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.

", + "refs": { + } + }, + "EntityType": { + "base": null, + "refs": { + "ListEntitiesForPolicyRequest$EntityFilter": "

The entity type to use for filtering the results.

For example, when EntityFilter is Role, only the roles that are attached to the specified policy are returned. This parameter is optional. If it is not included, all attached entities (users, groups, and roles) are returned.

", + "entityListType$member": null + } + }, + "GenerateCredentialReportResponse": { + "base": "

Contains the response to a successful GenerateCredentialReport request.

", + "refs": { + } + }, + "GetAccessKeyLastUsedRequest": { + "base": null, + "refs": { + } + }, + "GetAccessKeyLastUsedResponse": { + "base": "

Contains the response to a successful GetAccessKeyLastUsed request. It is also returned as a member of the AccessKeyMetaData structure returned by the ListAccessKeys action.

", + "refs": { + } + }, + "GetAccountAuthorizationDetailsRequest": { + "base": null, + "refs": { + } + }, + "GetAccountAuthorizationDetailsResponse": { + "base": "

Contains the response to a successful GetAccountAuthorizationDetails request.

", + "refs": { + } + }, + "GetAccountPasswordPolicyResponse": { + "base": "

Contains the response to a successful GetAccountPasswordPolicy request.

", + "refs": { + } + }, + "GetAccountSummaryResponse": { + "base": "

Contains the response to a successful GetAccountSummary request.

", + "refs": { + } + }, + "GetCredentialReportResponse": { + "base": "

Contains the response to a successful GetCredentialReport request.

", + "refs": { + } + }, + "GetGroupPolicyRequest": { + "base": null, + "refs": { + } + }, + "GetGroupPolicyResponse": { + "base": "

Contains the response to a successful GetGroupPolicy request.

", + "refs": { + } + }, + "GetGroupRequest": { + "base": null, + "refs": { + } + }, + "GetGroupResponse": { + "base": "

Contains the response to a successful GetGroup request.

", + "refs": { + } + }, + "GetInstanceProfileRequest": { + "base": null, + "refs": { + } + }, + "GetInstanceProfileResponse": { + "base": "

Contains the response to a successful GetInstanceProfile request.

", + "refs": { + } + }, + "GetLoginProfileRequest": { + "base": null, + "refs": { + } + }, + "GetLoginProfileResponse": { + "base": "

Contains the response to a successful GetLoginProfile request.

", + "refs": { + } + }, + "GetOpenIDConnectProviderRequest": { + "base": null, + "refs": { + } + }, + "GetOpenIDConnectProviderResponse": { + "base": "

Contains the response to a successful GetOpenIDConnectProvider request.

", + "refs": { + } + }, + "GetPolicyRequest": { + "base": null, + "refs": { + } + }, + "GetPolicyResponse": { + "base": "

Contains the response to a successful GetPolicy request.

", + "refs": { + } + }, + "GetPolicyVersionRequest": { + "base": null, + "refs": { + } + }, + "GetPolicyVersionResponse": { + "base": "

Contains the response to a successful GetPolicyVersion request.

", + "refs": { + } + }, + "GetRolePolicyRequest": { + "base": null, + "refs": { + } + }, + "GetRolePolicyResponse": { + "base": "

Contains the response to a successful GetRolePolicy request.

", + "refs": { + } + }, + "GetRoleRequest": { + "base": null, + "refs": { + } + }, + "GetRoleResponse": { + "base": "

Contains the response to a successful GetRole request.

", + "refs": { + } + }, + "GetSAMLProviderRequest": { + "base": null, + "refs": { + } + }, + "GetSAMLProviderResponse": { + "base": "

Contains the response to a successful GetSAMLProvider request.

", + "refs": { + } + }, + "GetServerCertificateRequest": { + "base": null, + "refs": { + } + }, + "GetServerCertificateResponse": { + "base": "

Contains the response to a successful GetServerCertificate request.

", + "refs": { + } + }, + "GetUserPolicyRequest": { + "base": null, + "refs": { + } + }, + "GetUserPolicyResponse": { + "base": "

Contains the response to a successful GetUserPolicy request.

", + "refs": { + } + }, + "GetUserRequest": { + "base": null, + "refs": { + } + }, + "GetUserResponse": { + "base": "

Contains the response to a successful GetUser request.

", + "refs": { + } + }, + "Group": { + "base": "

Contains information about an IAM group entity.

This data type is used as a response element in the following actions:

", + "refs": { + "CreateGroupResponse$Group": "

Information about the group.

", + "GetGroupResponse$Group": "

Information about the group.

", + "groupListType$member": null + } + }, + "GroupDetail": { + "base": "

Contains information about an IAM group, including all of the group's policies.

This data type is used as a response element in the GetAccountAuthorizationDetails action.

", + "refs": { + "groupDetailListType$member": null + } + }, + "InstanceProfile": { + "base": "

Contains information about an instance profile.

This data type is used as a response element in the following actions:

", + "refs": { + "CreateInstanceProfileResponse$InstanceProfile": "

Information about the instance profile.

", + "GetInstanceProfileResponse$InstanceProfile": "

Information about the instance profile.

", + "instanceProfileListType$member": null + } + }, + "InvalidAuthenticationCodeException": { + "base": "

The request was rejected because the authentication code was not recognized. The error message describes the specific error.

", + "refs": { + } + }, + "InvalidCertificateException": { + "base": "

The request was rejected because the certificate is invalid.

", + "refs": { + } + }, + "InvalidInputException": { + "base": "

The request was rejected because an invalid or out-of-range value was supplied for an input parameter.

", + "refs": { + } + }, + "InvalidUserTypeException": { + "base": "

The request was rejected because the type of user for the transaction was incorrect.

", + "refs": { + } + }, + "KeyPairMismatchException": { + "base": "

The request was rejected because the public key certificate and the private key do not match.

", + "refs": { + } + }, + "LimitExceededException": { + "base": "

The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.

", + "refs": { + } + }, + "ListAccessKeysRequest": { + "base": null, + "refs": { + } + }, + "ListAccessKeysResponse": { + "base": "

Contains the response to a successful ListAccessKeys request.

", + "refs": { + } + }, + "ListAccountAliasesRequest": { + "base": null, + "refs": { + } + }, + "ListAccountAliasesResponse": { + "base": "

Contains the response to a successful ListAccountAliases request.

", + "refs": { + } + }, + "ListAttachedGroupPoliciesRequest": { + "base": null, + "refs": { + } + }, + "ListAttachedGroupPoliciesResponse": { + "base": "

Contains the response to a successful ListAttachedGroupPolicies request.

", + "refs": { + } + }, + "ListAttachedRolePoliciesRequest": { + "base": null, + "refs": { + } + }, + "ListAttachedRolePoliciesResponse": { + "base": "

Contains the response to a successful ListAttachedRolePolicies request.

", + "refs": { + } + }, + "ListAttachedUserPoliciesRequest": { + "base": null, + "refs": { + } + }, + "ListAttachedUserPoliciesResponse": { + "base": "

Contains the response to a successful ListAttachedUserPolicies request.

", + "refs": { + } + }, + "ListEntitiesForPolicyRequest": { + "base": null, + "refs": { + } + }, + "ListEntitiesForPolicyResponse": { + "base": "

Contains the response to a successful ListEntitiesForPolicy request.

", + "refs": { + } + }, + "ListGroupPoliciesRequest": { + "base": null, + "refs": { + } + }, + "ListGroupPoliciesResponse": { + "base": "

Contains the response to a successful ListGroupPolicies request.

", + "refs": { + } + }, + "ListGroupsForUserRequest": { + "base": null, + "refs": { + } + }, + "ListGroupsForUserResponse": { + "base": "

Contains the response to a successful ListGroupsForUser request.

", + "refs": { + } + }, + "ListGroupsRequest": { + "base": null, + "refs": { + } + }, + "ListGroupsResponse": { + "base": "

Contains the response to a successful ListGroups request.

", + "refs": { + } + }, + "ListInstanceProfilesForRoleRequest": { + "base": null, + "refs": { + } + }, + "ListInstanceProfilesForRoleResponse": { + "base": "

Contains the response to a successful ListInstanceProfilesForRole request.

", + "refs": { + } + }, + "ListInstanceProfilesRequest": { + "base": null, + "refs": { + } + }, + "ListInstanceProfilesResponse": { + "base": "

Contains the response to a successful ListInstanceProfiles request.

", + "refs": { + } + }, + "ListMFADevicesRequest": { + "base": null, + "refs": { + } + }, + "ListMFADevicesResponse": { + "base": "

Contains the response to a successful ListMFADevices request.

", + "refs": { + } + }, + "ListOpenIDConnectProvidersRequest": { + "base": null, + "refs": { + } + }, + "ListOpenIDConnectProvidersResponse": { + "base": "

Contains the response to a successful ListOpenIDConnectProviders request.

", + "refs": { + } + }, + "ListPoliciesRequest": { + "base": null, + "refs": { + } + }, + "ListPoliciesResponse": { + "base": "

Contains the response to a successful ListPolicies request.

", + "refs": { + } + }, + "ListPolicyVersionsRequest": { + "base": null, + "refs": { + } + }, + "ListPolicyVersionsResponse": { + "base": "

Contains the response to a successful ListPolicyVersions request.

", + "refs": { + } + }, + "ListRolePoliciesRequest": { + "base": null, + "refs": { + } + }, + "ListRolePoliciesResponse": { + "base": "

Contains the response to a successful ListRolePolicies request.

", + "refs": { + } + }, + "ListRolesRequest": { + "base": null, + "refs": { + } + }, + "ListRolesResponse": { + "base": "

Contains the response to a successful ListRoles request.

", + "refs": { + } + }, + "ListSAMLProvidersRequest": { + "base": null, + "refs": { + } + }, + "ListSAMLProvidersResponse": { + "base": "

Contains the response to a successful ListSAMLProviders request.

", + "refs": { + } + }, + "ListServerCertificatesRequest": { + "base": null, + "refs": { + } + }, + "ListServerCertificatesResponse": { + "base": "

Contains the response to a successful ListServerCertificates request.

", + "refs": { + } + }, + "ListSigningCertificatesRequest": { + "base": null, + "refs": { + } + }, + "ListSigningCertificatesResponse": { + "base": "

Contains the response to a successful ListSigningCertificates request.

", + "refs": { + } + }, + "ListUserPoliciesRequest": { + "base": null, + "refs": { + } + }, + "ListUserPoliciesResponse": { + "base": "

Contains the response to a successful ListUserPolicies request.

", + "refs": { + } + }, + "ListUsersRequest": { + "base": null, + "refs": { + } + }, + "ListUsersResponse": { + "base": "

Contains the response to a successful ListUsers request.

", + "refs": { + } + }, + "ListVirtualMFADevicesRequest": { + "base": null, + "refs": { + } + }, + "ListVirtualMFADevicesResponse": { + "base": "

Contains the response to a successful ListVirtualMFADevices request.

", + "refs": { + } + }, + "LoginProfile": { + "base": "

Contains the user name and password create date for a user.

This data type is used as a response element in the CreateLoginProfile and GetLoginProfile actions.

", + "refs": { + "CreateLoginProfileResponse$LoginProfile": "

The user name and password create date.

", + "GetLoginProfileResponse$LoginProfile": "

The user name and password create date for the user.

" + } + }, + "MFADevice": { + "base": "

Contains information about an MFA device.

This data type is used as a response element in the ListMFADevices action.

", + "refs": { + "mfaDeviceListType$member": null + } + }, + "MalformedCertificateException": { + "base": "

The request was rejected because the certificate was malformed or expired. The error message describes the specific error.

", + "refs": { + } + }, + "MalformedPolicyDocumentException": { + "base": "

The request was rejected because the policy document was malformed. The error message describes the specific error.

", + "refs": { + } + }, + "ManagedPolicyDetail": { + "base": "

Contains information about a managed policy, including the policy's ARN, versions, and the number of principal entities (users, groups, and roles) that the policy is attached to.

This data type is used as a response element in the GetAccountAuthorizationDetails action.

For more information about managed policies, see Managed Policies and Inline Policies in the Using IAM guide.

", + "refs": { + "ManagedPolicyDetailListType$member": null + } + }, + "ManagedPolicyDetailListType": { + "base": null, + "refs": { + "GetAccountAuthorizationDetailsResponse$Policies": "

A list containing information about managed policies.

" + } + }, + "NoSuchEntityException": { + "base": "

The request was rejected because it referenced an entity that does not exist. The error message describes the entity.

", + "refs": { + } + }, + "OpenIDConnectProviderListEntry": { + "base": "

Contains the Amazon Resource Name (ARN) for an IAM OpenID Connect provider.

", + "refs": { + "OpenIDConnectProviderListType$member": null + } + }, + "OpenIDConnectProviderListType": { + "base": "

Contains a list of IAM OpenID Connect providers.

", + "refs": { + "ListOpenIDConnectProvidersResponse$OpenIDConnectProviderList": "

The list of IAM OpenID Connect providers in the AWS account.

" + } + }, + "OpenIDConnectProviderUrlType": { + "base": "

Contains a URL that specifies the endpoint for an OpenID Connect provider.

", + "refs": { + "CreateOpenIDConnectProviderRequest$Url": "

The URL of the identity provider. The URL must begin with \"https://\" and should correspond to the iss claim in the provider's OpenID Connect ID tokens. Per the OIDC standard, path components are allowed but query parameters are not. Typically the URL consists of only a host name, like \"https://server.example.org\" or \"https://example.com\".

You cannot register the same provider multiple times in a single AWS account. If you try to submit a URL that has already been used for an OpenID Connect provider in the AWS account, you will get an error.

", + "GetOpenIDConnectProviderResponse$Url": "

The URL that the IAM OpenID Connect provider is associated with. For more information, see CreateOpenIDConnectProvider.

" + } + }, + "PasswordPolicy": { + "base": "

Contains information about the account password policy.

This data type is used as a response element in the GetAccountPasswordPolicy action.

", + "refs": { + "GetAccountPasswordPolicyResponse$PasswordPolicy": null + } + }, + "PasswordPolicyViolationException": { + "base": "

The request was rejected because the provided password did not meet the requirements imposed by the account password policy.

", + "refs": { + } + }, + "Policy": { + "base": "

Contains information about a managed policy.

This data type is used as a response element in the CreatePolicy, GetPolicy, and ListPolicies actions.

For more information about managed policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

", + "refs": { + "CreatePolicyResponse$Policy": "

Information about the policy.

", + "GetPolicyResponse$Policy": "

Information about the policy.

", + "policyListType$member": null + } + }, + "PolicyDetail": { + "base": "

Contains information about an IAM policy, including the policy document.

This data type is used as a response element in the GetAccountAuthorizationDetails action.

", + "refs": { + "policyDetailListType$member": null + } + }, + "PolicyGroup": { + "base": "

Contains information about a group that a managed policy is attached to.

This data type is used as a response element in the ListEntitiesForPolicy action.

For more information about managed policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

", + "refs": { + "PolicyGroupListType$member": null + } + }, + "PolicyGroupListType": { + "base": null, + "refs": { + "ListEntitiesForPolicyResponse$PolicyGroups": "

A list of groups that the policy is attached to.

" + } + }, + "PolicyRole": { + "base": "

Contains information about a role that a managed policy is attached to.

This data type is used as a response element in the ListEntitiesForPolicy action.

For more information about managed policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

", + "refs": { + "PolicyRoleListType$member": null + } + }, + "PolicyRoleListType": { + "base": null, + "refs": { + "ListEntitiesForPolicyResponse$PolicyRoles": "

A list of roles that the policy is attached to.

" + } + }, + "PolicyUser": { + "base": "

Contains information about a user that a managed policy is attached to.

This data type is used as a response element in the ListEntitiesForPolicy action.

For more information about managed policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

", + "refs": { + "PolicyUserListType$member": null + } + }, + "PolicyUserListType": { + "base": null, + "refs": { + "ListEntitiesForPolicyResponse$PolicyUsers": "

A list of users that the policy is attached to.

" + } + }, + "PolicyVersion": { + "base": "

Contains information about a version of a managed policy.

This data type is used as a response element in the CreatePolicyVersion, GetPolicyVersion, ListPolicyVersions, and GetAccountAuthorizationDetails actions.

For more information about managed policies, refer to Managed Policies and Inline Policies in the Using IAM guide.

", + "refs": { + "CreatePolicyVersionResponse$PolicyVersion": "

Information about the policy version.

", + "GetPolicyVersionResponse$PolicyVersion": "

Information about the policy version.

For more information about managed policy versions, see Versioning for Managed Policies in the Using IAM guide.

", + "policyDocumentVersionListType$member": null + } + }, + "PutGroupPolicyRequest": { + "base": null, + "refs": { + } + }, + "PutRolePolicyRequest": { + "base": null, + "refs": { + } + }, + "PutUserPolicyRequest": { + "base": null, + "refs": { + } + }, + "RemoveClientIDFromOpenIDConnectProviderRequest": { + "base": null, + "refs": { + } + }, + "RemoveRoleFromInstanceProfileRequest": { + "base": null, + "refs": { + } + }, + "RemoveUserFromGroupRequest": { + "base": null, + "refs": { + } + }, + "ReportContentType": { + "base": null, + "refs": { + "GetCredentialReportResponse$Content": "

Contains the credential report. The report is Base64-encoded.

" + } + }, + "ReportFormatType": { + "base": null, + "refs": { + "GetCredentialReportResponse$ReportFormat": "

The format (MIME type) of the credential report.

" + } + }, + "ReportStateDescriptionType": { + "base": null, + "refs": { + "GenerateCredentialReportResponse$Description": "

Information about the credential report.

" + } + }, + "ReportStateType": { + "base": null, + "refs": { + "GenerateCredentialReportResponse$State": "

Information about the state of the credential report.

" + } + }, + "ResyncMFADeviceRequest": { + "base": null, + "refs": { + } + }, + "Role": { + "base": "

Contains information about an IAM role.

This data type is used as a response element in the following actions:

", + "refs": { + "CreateRoleResponse$Role": "

Information about the role.

", + "GetRoleResponse$Role": "

Information about the role.

", + "roleListType$member": null + } + }, + "RoleDetail": { + "base": "

Contains information about an IAM role, including all of the role's policies.

This data type is used as a response element in the GetAccountAuthorizationDetails action.

", + "refs": { + "roleDetailListType$member": null + } + }, + "SAMLMetadataDocumentType": { + "base": null, + "refs": { + "CreateSAMLProviderRequest$SAMLMetadataDocument": "

An XML document generated by an identity provider (IdP) that supports SAML 2.0. The document includes the issuer's name, expiration information, and keys that can be used to validate the SAML authentication response (assertions) that are received from the IdP. You must generate the metadata document using the identity management software that is used as your organization's IdP.

For more information, see Creating Temporary Security Credentials for SAML Federation in the Using Temporary Security Credentials guide.

", + "GetSAMLProviderResponse$SAMLMetadataDocument": "

The XML metadata document that includes information about an identity provider.

", + "UpdateSAMLProviderRequest$SAMLMetadataDocument": "

An XML document generated by an identity provider (IdP) that supports SAML 2.0. The document includes the issuer's name, expiration information, and keys that can be used to validate the SAML authentication response (assertions) that are received from the IdP. You must generate the metadata document using the identity management software that is used as your organization's IdP.

" + } + }, + "SAMLProviderListEntry": { + "base": "

Contains the list of SAML providers for this account.

", + "refs": { + "SAMLProviderListType$member": null + } + }, + "SAMLProviderListType": { + "base": null, + "refs": { + "ListSAMLProvidersResponse$SAMLProviderList": "

The list of SAML providers for this account.

" + } + }, + "SAMLProviderNameType": { + "base": null, + "refs": { + "CreateSAMLProviderRequest$Name": "

The name of the provider to create.

" + } + }, + "ServerCertificate": { + "base": "

Contains information about a server certificate.

This data type is used as a response element in the GetServerCertificate action.

", + "refs": { + "GetServerCertificateResponse$ServerCertificate": "

Information about the server certificate.

" + } + }, + "ServerCertificateMetadata": { + "base": "

Contains information about a server certificate without its certificate body, certificate chain, and private key.

This data type is used as a response element in the UploadServerCertificate and ListServerCertificates actions.

", + "refs": { + "ServerCertificate$ServerCertificateMetadata": "

The meta information of the server certificate, such as its name, path, ID, and ARN.

", + "UploadServerCertificateResponse$ServerCertificateMetadata": "

The meta information of the uploaded server certificate without its certificate body, certificate chain, and private key.

", + "serverCertificateMetadataListType$member": null + } + }, + "ServiceFailureException": { + "base": "

The request processing has failed because of an unknown error, exception or failure.

", + "refs": { + } + }, + "SetDefaultPolicyVersionRequest": { + "base": null, + "refs": { + } + }, + "SigningCertificate": { + "base": "

Contains information about an X.509 signing certificate.

This data type is used as a response element in the UploadSigningCertificate and ListSigningCertificates actions.

", + "refs": { + "UploadSigningCertificateResponse$Certificate": "

Information about the certificate.

", + "certificateListType$member": null + } + }, + "UpdateAccessKeyRequest": { + "base": null, + "refs": { + } + }, + "UpdateAccountPasswordPolicyRequest": { + "base": null, + "refs": { + } + }, + "UpdateAssumeRolePolicyRequest": { + "base": null, + "refs": { + } + }, + "UpdateGroupRequest": { + "base": null, + "refs": { + } + }, + "UpdateLoginProfileRequest": { + "base": null, + "refs": { + } + }, + "UpdateOpenIDConnectProviderThumbprintRequest": { + "base": null, + "refs": { + } + }, + "UpdateSAMLProviderRequest": { + "base": null, + "refs": { + } + }, + "UpdateSAMLProviderResponse": { + "base": "

Contains the response to a successful UpdateSAMLProvider request.

", + "refs": { + } + }, + "UpdateServerCertificateRequest": { + "base": null, + "refs": { + } + }, + "UpdateSigningCertificateRequest": { + "base": null, + "refs": { + } + }, + "UpdateUserRequest": { + "base": null, + "refs": { + } + }, + "UploadServerCertificateRequest": { + "base": null, + "refs": { + } + }, + "UploadServerCertificateResponse": { + "base": "

Contains the response to a successful UploadServerCertificate request.

", + "refs": { + } + }, + "UploadSigningCertificateRequest": { + "base": null, + "refs": { + } + }, + "UploadSigningCertificateResponse": { + "base": "

Contains the response to a successful UploadSigningCertificate request.

", + "refs": { + } + }, + "User": { + "base": "

Contains information about an IAM user entity.

This data type is used as a response element in the following actions:

", + "refs": { + "CreateUserResponse$User": "

Information about the user.

", + "GetUserResponse$User": "

Information about the user.

", + "VirtualMFADevice$User": null, + "userListType$member": null + } + }, + "UserDetail": { + "base": "

Contains information about an IAM user, including all the user's policies and all the IAM groups the user is in.

This data type is used as a response element in the GetAccountAuthorizationDetails action.

", + "refs": { + "userDetailListType$member": null + } + }, + "VirtualMFADevice": { + "base": "

Contains information about a virtual MFA device.

", + "refs": { + "CreateVirtualMFADeviceResponse$VirtualMFADevice": "

A newly created virtual MFA device.

", + "virtualMFADeviceListType$member": null + } + }, + "accessKeyIdType": { + "base": null, + "refs": { + "AccessKey$AccessKeyId": "

The ID for this access key.

", + "AccessKeyMetadata$AccessKeyId": "

The ID for this access key.

", + "DeleteAccessKeyRequest$AccessKeyId": "

The access key ID for the access key ID and secret access key you want to delete.

", + "GetAccessKeyLastUsedRequest$AccessKeyId": "

The identifier of an access key.

", + "UpdateAccessKeyRequest$AccessKeyId": "

The access key ID of the secret access key you want to update.

" + } + }, + "accessKeyMetadataListType": { + "base": "

Contains a list of access key metadata.

This data type is used as a response element in the ListAccessKeys action.

", + "refs": { + "ListAccessKeysResponse$AccessKeyMetadata": "

A list of access key metadata.

" + } + }, + "accessKeySecretType": { + "base": null, + "refs": { + "AccessKey$SecretAccessKey": "

The secret key used to sign requests.

" + } + }, + "accountAliasListType": { + "base": null, + "refs": { + "ListAccountAliasesResponse$AccountAliases": "

A list of aliases associated with the account.

" + } + }, + "accountAliasType": { + "base": null, + "refs": { + "CreateAccountAliasRequest$AccountAlias": "

The account alias to create.

", + "DeleteAccountAliasRequest$AccountAlias": "

The name of the account alias to delete.

", + "accountAliasListType$member": null + } + }, + "arnType": { + "base": "

The Amazon Resource Name (ARN). ARNs are unique identifiers for AWS resources.

For more information about ARNs, go to Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

", + "refs": { + "AddClientIDToOpenIDConnectProviderRequest$OpenIDConnectProviderArn": "

The Amazon Resource Name (ARN) of the IAM OpenID Connect (OIDC) provider to add the client ID to. You can get a list of OIDC provider ARNs by using the ListOpenIDConnectProviders action.

", + "AttachGroupPolicyRequest$PolicyArn": null, + "AttachRolePolicyRequest$PolicyArn": null, + "AttachUserPolicyRequest$PolicyArn": null, + "AttachedPolicy$PolicyArn": null, + "CreateOpenIDConnectProviderResponse$OpenIDConnectProviderArn": "

The Amazon Resource Name (ARN) of the IAM OpenID Connect provider that was created. For more information, see OpenIDConnectProviderListEntry.

", + "CreatePolicyVersionRequest$PolicyArn": null, + "CreateSAMLProviderResponse$SAMLProviderArn": "

The Amazon Resource Name (ARN) of the SAML provider.

", + "DeleteOpenIDConnectProviderRequest$OpenIDConnectProviderArn": "

The Amazon Resource Name (ARN) of the IAM OpenID Connect provider to delete. You can get a list of OpenID Connect provider ARNs by using the ListOpenIDConnectProviders action.

", + "DeletePolicyRequest$PolicyArn": null, + "DeletePolicyVersionRequest$PolicyArn": null, + "DeleteSAMLProviderRequest$SAMLProviderArn": "

The Amazon Resource Name (ARN) of the SAML provider to delete.

", + "DetachGroupPolicyRequest$PolicyArn": null, + "DetachRolePolicyRequest$PolicyArn": null, + "DetachUserPolicyRequest$PolicyArn": null, + "GetOpenIDConnectProviderRequest$OpenIDConnectProviderArn": "

The Amazon Resource Name (ARN) of the IAM OpenID Connect (OIDC) provider to get information for. You can get a list of OIDC provider ARNs by using the ListOpenIDConnectProviders action.

", + "GetPolicyRequest$PolicyArn": null, + "GetPolicyVersionRequest$PolicyArn": null, + "GetSAMLProviderRequest$SAMLProviderArn": "

The Amazon Resource Name (ARN) of the SAML provider to get information about.

", + "Group$Arn": "

The Amazon Resource Name (ARN) specifying the group. For more information about ARNs and how to use them in policies, see IAM Identifiers in the Using IAM guide.

", + "GroupDetail$Arn": null, + "InstanceProfile$Arn": "

The Amazon Resource Name (ARN) specifying the instance profile. For more information about ARNs and how to use them in policies, see IAM Identifiers in the Using IAM guide.

", + "ListEntitiesForPolicyRequest$PolicyArn": null, + "ListPolicyVersionsRequest$PolicyArn": null, + "ManagedPolicyDetail$Arn": null, + "OpenIDConnectProviderListEntry$Arn": null, + "Policy$Arn": null, + "RemoveClientIDFromOpenIDConnectProviderRequest$OpenIDConnectProviderArn": "

The Amazon Resource Name (ARN) of the IAM OpenID Connect (OIDC) provider to remove the client ID from. You can get a list of OIDC provider ARNs by using the ListOpenIDConnectProviders action.

", + "Role$Arn": "

The Amazon Resource Name (ARN) specifying the role. For more information about ARNs and how to use them in policies, see IAM Identifiers in the Using IAM guide.

", + "RoleDetail$Arn": null, + "SAMLProviderListEntry$Arn": "

The Amazon Resource Name (ARN) of the SAML provider.

", + "ServerCertificateMetadata$Arn": "

The Amazon Resource Name (ARN) specifying the server certificate. For more information about ARNs and how to use them in policies, see IAM Identifiers in the Using IAM guide.

", + "SetDefaultPolicyVersionRequest$PolicyArn": null, + "UpdateOpenIDConnectProviderThumbprintRequest$OpenIDConnectProviderArn": "

The Amazon Resource Name (ARN) of the IAM OpenID Connect (OIDC) provider to update the thumbprint for. You can get a list of OIDC provider ARNs by using the ListOpenIDConnectProviders action.

", + "UpdateSAMLProviderRequest$SAMLProviderArn": "

The Amazon Resource Name (ARN) of the SAML provider to update.

", + "UpdateSAMLProviderResponse$SAMLProviderArn": "

The Amazon Resource Name (ARN) of the SAML provider that was updated.

", + "User$Arn": "

The Amazon Resource Name (ARN) that identifies the user. For more information about ARNs and how to use ARNs in policies, see IAM Identifiers in the Using IAM guide.

", + "UserDetail$Arn": null + } + }, + "assignmentStatusType": { + "base": null, + "refs": { + "ListVirtualMFADevicesRequest$AssignmentStatus": "

The status (unassigned or assigned) of the devices to list. If you do not specify an AssignmentStatus, the action defaults to Any which lists both assigned and unassigned virtual MFA devices.

" + } + }, + "attachedPoliciesListType": { + "base": null, + "refs": { + "GroupDetail$AttachedManagedPolicies": "

A list of the managed policies attached to the group.

", + "ListAttachedGroupPoliciesResponse$AttachedPolicies": "

A list of the attached policies.

", + "ListAttachedRolePoliciesResponse$AttachedPolicies": "

A list of the attached policies.

", + "ListAttachedUserPoliciesResponse$AttachedPolicies": "

A list of the attached policies.

", + "RoleDetail$AttachedManagedPolicies": "

A list of managed policies attached to the role. These policies are the role's access (permissions) policies.

", + "UserDetail$AttachedManagedPolicies": "

A list of the managed policies attached to the user.

" + } + }, + "attachmentCountType": { + "base": null, + "refs": { + "ManagedPolicyDetail$AttachmentCount": "

The number of principal entities (users, groups, and roles) that the policy is attached to.

", + "Policy$AttachmentCount": "

The number of entities (users, groups, and roles) that the policy is attached to.

" + } + }, + "authenticationCodeType": { + "base": null, + "refs": { + "EnableMFADeviceRequest$AuthenticationCode1": "

An authentication code emitted by the device.

", + "EnableMFADeviceRequest$AuthenticationCode2": "

A subsequent authentication code emitted by the device.

", + "ResyncMFADeviceRequest$AuthenticationCode1": "

An authentication code emitted by the device.

", + "ResyncMFADeviceRequest$AuthenticationCode2": "

A subsequent authentication code emitted by the device.

" + } + }, + "booleanObjectType": { + "base": null, + "refs": { + "PasswordPolicy$HardExpiry": "

Specifies whether IAM users are prevented from setting a new password after their password has expired.

", + "UpdateAccountPasswordPolicyRequest$HardExpiry": "

Prevents IAM users from setting a new password after their password has expired.

Default value: false

", + "UpdateLoginProfileRequest$PasswordResetRequired": "

Require the specified user to set a new password on next sign-in.

" + } + }, + "booleanType": { + "base": null, + "refs": { + "CreateLoginProfileRequest$PasswordResetRequired": "

Specifies whether the user is required to set a new password on next sign-in.

", + "CreatePolicyVersionRequest$SetAsDefault": "

Specifies whether to set this version as the policy's default version.

When this parameter is true, the new policy version becomes the operative version; that is, the version that is in effect for the IAM users, groups, and roles that the policy is attached to.

For more information about managed policy versions, see Versioning for Managed Policies in the Using IAM guide.

", + "GetAccountAuthorizationDetailsResponse$IsTruncated": "

A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items.

", + "GetGroupResponse$IsTruncated": "

A flag that indicates whether there are more user names to list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more user names in the list.

", + "ListAccessKeysResponse$IsTruncated": "

A flag that indicates whether there are more keys to list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more keys in the list.

", + "ListAccountAliasesResponse$IsTruncated": "

A flag that indicates whether there are more account aliases to list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more account aliases in the list.

", + "ListAttachedGroupPoliciesResponse$IsTruncated": "

A flag that indicates whether there are more policies to list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more policies in the list.

", + "ListAttachedRolePoliciesResponse$IsTruncated": "

A flag that indicates whether there are more policies to list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more policies in the list.

", + "ListAttachedUserPoliciesResponse$IsTruncated": "

A flag that indicates whether there are more policies to list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more policies in the list.

", + "ListEntitiesForPolicyResponse$IsTruncated": "

A flag that indicates whether there are more entities to list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more entities in the list.

", + "ListGroupPoliciesResponse$IsTruncated": "

A flag that indicates whether there are more policy names to list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more policy names in the list.

", + "ListGroupsForUserResponse$IsTruncated": "

A flag that indicates whether there are more groups to list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more groups in the list.

", + "ListGroupsResponse$IsTruncated": "

A flag that indicates whether there are more groups to list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more groups in the list.

", + "ListInstanceProfilesForRoleResponse$IsTruncated": "

A flag that indicates whether there are more instance profiles to list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more instance profiles in the list.

", + "ListInstanceProfilesResponse$IsTruncated": "

A flag that indicates whether there are more instance profiles to list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more instance profiles in the list.

", + "ListMFADevicesResponse$IsTruncated": "

A flag that indicates whether there are more MFA devices to list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more MFA devices in the list.

", + "ListPoliciesRequest$OnlyAttached": "

A flag to filter the results to only the attached policies.

When OnlyAttached is true, the returned list contains only the policies that are attached to a user, group, or role. When OnlyAttached is false, or when the parameter is not included, all policies are returned.

", + "ListPoliciesResponse$IsTruncated": "

A flag that indicates whether there are more policies to list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more policies in the list.

", + "ListPolicyVersionsResponse$IsTruncated": "

A flag that indicates whether there are more policy versions to list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more policy versions in the list.

", + "ListRolePoliciesResponse$IsTruncated": "

A flag that indicates whether there are more policy names to list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more policy names in the list.

", + "ListRolesResponse$IsTruncated": "

A flag that indicates whether there are more roles to list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more roles in the list.

", + "ListServerCertificatesResponse$IsTruncated": "

A flag that indicates whether there are more server certificates to list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more server certificates in the list.

", + "ListSigningCertificatesResponse$IsTruncated": "

A flag that indicates whether there are more certificate IDs to list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more certificates in the list.

", + "ListUserPoliciesResponse$IsTruncated": "

A flag that indicates whether there are more policy names to list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more policy names in the list.

", + "ListUsersResponse$IsTruncated": "

A flag that indicates whether there are more user names to list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more users in the list.

", + "ListVirtualMFADevicesResponse$IsTruncated": "

A flag that indicates whether there are more items to list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more items the list.

", + "LoginProfile$PasswordResetRequired": "

Specifies whether the user is required to set a new password on next sign-in.

", + "ManagedPolicyDetail$IsAttachable": "

Specifies whether the policy can be attached to an IAM user, group, or role.

", + "PasswordPolicy$RequireSymbols": "

Specifies whether to require symbols for IAM user passwords.

", + "PasswordPolicy$RequireNumbers": "

Specifies whether to require numbers for IAM user passwords.

", + "PasswordPolicy$RequireUppercaseCharacters": "

Specifies whether to require uppercase characters for IAM user passwords.

", + "PasswordPolicy$RequireLowercaseCharacters": "

Specifies whether to require lowercase characters for IAM user passwords.

", + "PasswordPolicy$AllowUsersToChangePassword": "

Specifies whether IAM users are allowed to change their own password.

", + "PasswordPolicy$ExpirePasswords": "

Specifies whether IAM users are required to change their password after a specified number of days.

", + "Policy$IsAttachable": "

Specifies whether the policy can be attached to an IAM user, group, or role.

", + "PolicyVersion$IsDefaultVersion": "

Specifies whether the policy version is set as the policy's default version.

", + "UpdateAccountPasswordPolicyRequest$RequireSymbols": "

Specifies whether IAM user passwords must contain at least one of the following non-alphanumeric characters:

! @ # $ % ^ &amp; * ( ) _ + - = [ ] { } | '

Default value: false

", + "UpdateAccountPasswordPolicyRequest$RequireNumbers": "

Specifies whether IAM user passwords must contain at least one numeric character (0 to 9).

Default value: false

", + "UpdateAccountPasswordPolicyRequest$RequireUppercaseCharacters": "

Specifies whether IAM user passwords must contain at least one uppercase character from the ISO basic Latin alphabet (A to Z).

Default value: false

", + "UpdateAccountPasswordPolicyRequest$RequireLowercaseCharacters": "

Specifies whether IAM user passwords must contain at least one lowercase character from the ISO basic Latin alphabet (a to z).

Default value: false

", + "UpdateAccountPasswordPolicyRequest$AllowUsersToChangePassword": "

Allows all IAM users in your account to use the AWS Management Console to change their own passwords. For more information, see Letting IAM Users Change Their Own Passwords in the Using IAM guide.

Default value: false

" + } + }, + "certificateBodyType": { + "base": null, + "refs": { + "ServerCertificate$CertificateBody": "

The contents of the public key certificate.

", + "SigningCertificate$CertificateBody": "

The contents of the signing certificate.

", + "UploadServerCertificateRequest$CertificateBody": "

The contents of the public key certificate in PEM-encoded format.

", + "UploadSigningCertificateRequest$CertificateBody": "

The contents of the signing certificate.

" + } + }, + "certificateChainType": { + "base": null, + "refs": { + "ServerCertificate$CertificateChain": "

The contents of the public key certificate chain.

", + "UploadServerCertificateRequest$CertificateChain": "

The contents of the certificate chain. This is typically a concatenation of the PEM-encoded public key certificates of the chain.

" + } + }, + "certificateIdType": { + "base": null, + "refs": { + "DeleteSigningCertificateRequest$CertificateId": "

The ID of the signing certificate to delete.

", + "SigningCertificate$CertificateId": "

The ID for the signing certificate.

", + "UpdateSigningCertificateRequest$CertificateId": "

The ID of the signing certificate you want to update.

" + } + }, + "certificateListType": { + "base": "

Contains a list of signing certificates.

This data type is used as a response element in the ListSigningCertificates action.

", + "refs": { + "ListSigningCertificatesResponse$Certificates": "

A list of the user's signing certificate information.

" + } + }, + "clientIDListType": { + "base": null, + "refs": { + "CreateOpenIDConnectProviderRequest$ClientIDList": "

A list of client IDs (also known as audiences). When a mobile or web app registers with an OpenID Connect provider, they establish a value that identifies the application. (This is the value that's sent as the client_id parameter on OAuth requests.)

You can register multiple client IDs with the same provider. For example, you might have multiple applications that use the same OIDC provider. You cannot register more than 100 client IDs with a single IAM OIDC provider.

There is no defined format for a client ID. The CreateOpenIDConnectProviderRequest action accepts client IDs up to 255 characters long.

", + "GetOpenIDConnectProviderResponse$ClientIDList": "

A list of client IDs (also known as audiences) that are associated with the specified IAM OpenID Connect provider. For more information, see CreateOpenIDConnectProvider.

" + } + }, + "clientIDType": { + "base": null, + "refs": { + "AddClientIDToOpenIDConnectProviderRequest$ClientID": "

The client ID (also known as audience) to add to the IAM OpenID Connect provider.

", + "RemoveClientIDFromOpenIDConnectProviderRequest$ClientID": "

The client ID (also known as audience) to remove from the IAM OpenID Connect provider. For more information about client IDs, see CreateOpenIDConnectProvider.

", + "clientIDListType$member": null + } + }, + "credentialReportExpiredExceptionMessage": { + "base": null, + "refs": { + "CredentialReportExpiredException$message": null + } + }, + "credentialReportNotPresentExceptionMessage": { + "base": null, + "refs": { + "CredentialReportNotPresentException$message": null + } + }, + "credentialReportNotReadyExceptionMessage": { + "base": null, + "refs": { + "CredentialReportNotReadyException$message": null + } + }, + "dateType": { + "base": null, + "refs": { + "AccessKey$CreateDate": "

The date when the access key was created.

", + "AccessKeyLastUsed$LastUsedDate": "

The date and time, in ISO 8601 date-time format, when the access key was most recently used.

", + "AccessKeyMetadata$CreateDate": "

The date when the access key was created.

", + "GetCredentialReportResponse$GeneratedTime": "

The date and time when the credential report was created, in ISO 8601 date-time format.

", + "GetOpenIDConnectProviderResponse$CreateDate": "

The date and time when the IAM OpenID Connect provider entity was created in the AWS account.

", + "GetSAMLProviderResponse$CreateDate": "

The date and time when the SAML provider was created.

", + "GetSAMLProviderResponse$ValidUntil": "

The expiration date and time for the SAML provider.

", + "Group$CreateDate": "

The date and time, in ISO 8601 date-time format, when the group was created.

", + "GroupDetail$CreateDate": "

The date and time, in ISO 8601 date-time format, when the group was created.

", + "InstanceProfile$CreateDate": "

The date when the instance profile was created.

", + "LoginProfile$CreateDate": "

The date when the password for the user was created.

", + "MFADevice$EnableDate": "

The date when the MFA device was enabled for the user.

", + "ManagedPolicyDetail$CreateDate": "

The date and time, in ISO 8601 date-time format, when the policy was created.

", + "ManagedPolicyDetail$UpdateDate": "

The date and time, in ISO 8601 date-time format, when the policy was last updated.

When a policy has only one version, this field contains the date and time when the policy was created. When a policy has more than one version, this field contains the date and time when the most recent policy version was created.

", + "Policy$CreateDate": "

The date and time, in ISO 8601 date-time format, when the policy was created.

", + "Policy$UpdateDate": "

The date and time, in ISO 8601 date-time format, when the policy was last updated.

When a policy has only one version, this field contains the date and time when the policy was created. When a policy has more than one version, this field contains the date and time when the most recent policy version was created.

", + "PolicyVersion$CreateDate": "

The date and time, in ISO 8601 date-time format, when the policy version was created.

", + "Role$CreateDate": "

The date and time, in ISO 8601 date-time format, when the role was created.

", + "RoleDetail$CreateDate": "

The date and time, in ISO 8601 date-time format, when the role was created.

", + "SAMLProviderListEntry$ValidUntil": "

The expiration date and time for the SAML provider.

", + "SAMLProviderListEntry$CreateDate": "

The date and time when the SAML provider was created.

", + "ServerCertificateMetadata$UploadDate": "

The date when the server certificate was uploaded.

", + "ServerCertificateMetadata$Expiration": "

The date on which the certificate is set to expire.

", + "SigningCertificate$UploadDate": "

The date when the signing certificate was uploaded.

", + "User$CreateDate": "

The date and time, in ISO 8601 date-time format, when the user was created.

", + "User$PasswordLastUsed": "

The date and time, in ISO 8601 date-time format, when the user's password was last used to sign in to an AWS website. For a list of AWS websites that capture a user's last sign-in time, see the Credential Reports topic in the Using IAM guide. If a password is used more than once in a five-minute span, only the first use is returned in this field. When the user does not have a password, this field is null (not present). When a user's password exists but has never been used, or when there is no sign-in data associated with the user, this field is null (not present).

This value is returned only in the GetUser and ListUsers actions.

", + "UserDetail$CreateDate": "

The date and time, in ISO 8601 date-time format, when the user was created.

", + "VirtualMFADevice$EnableDate": "

The date and time on which the virtual MFA device was enabled.

" + } + }, + "deleteConflictMessage": { + "base": null, + "refs": { + "DeleteConflictException$message": null + } + }, + "duplicateCertificateMessage": { + "base": null, + "refs": { + "DuplicateCertificateException$message": null + } + }, + "entityAlreadyExistsMessage": { + "base": null, + "refs": { + "EntityAlreadyExistsException$message": null + } + }, + "entityListType": { + "base": null, + "refs": { + "GetAccountAuthorizationDetailsRequest$Filter": "

A list of entity types (user, group, role, local managed policy, or AWS managed policy) for filtering the results.

" + } + }, + "entityTemporarilyUnmodifiableMessage": { + "base": null, + "refs": { + "EntityTemporarilyUnmodifiableException$message": null + } + }, + "existingUserNameType": { + "base": null, + "refs": { + "AddUserToGroupRequest$UserName": "

The name of the user to add.

", + "CreateAccessKeyRequest$UserName": "

The user name that the new key will belong to.

", + "DeactivateMFADeviceRequest$UserName": "

The name of the user whose MFA device you want to deactivate.

", + "DeleteAccessKeyRequest$UserName": "

The name of the user whose key you want to delete.

", + "DeleteSigningCertificateRequest$UserName": "

The name of the user the signing certificate belongs to.

", + "DeleteUserPolicyRequest$UserName": "

The name (friendly name, not ARN) identifying the user that the policy is embedded in.

", + "DeleteUserRequest$UserName": "

The name of the user to delete.

", + "EnableMFADeviceRequest$UserName": "

The name of the user for whom you want to enable the MFA device.

", + "GetAccessKeyLastUsedResponse$UserName": "

The name of the AWS IAM user that owns this access key.

", + "GetUserPolicyRequest$UserName": "

The name of the user who the policy is associated with.

", + "GetUserPolicyResponse$UserName": "

The user the policy is associated with.

", + "GetUserRequest$UserName": "

The name of the user to get information about.

This parameter is optional. If it is not included, it defaults to the user making the request.

", + "ListAccessKeysRequest$UserName": "

The name of the user.

", + "ListGroupsForUserRequest$UserName": "

The name of the user to list groups for.

", + "ListMFADevicesRequest$UserName": "

The name of the user whose MFA devices you want to list.

", + "ListSigningCertificatesRequest$UserName": "

The name of the user.

", + "ListUserPoliciesRequest$UserName": "

The name of the user to list policies for.

", + "PutUserPolicyRequest$UserName": "

The name of the user to associate the policy with.

", + "RemoveUserFromGroupRequest$UserName": "

The name of the user to remove.

", + "ResyncMFADeviceRequest$UserName": "

The name of the user whose MFA device you want to resynchronize.

", + "UpdateAccessKeyRequest$UserName": "

The name of the user whose key you want to update.

", + "UpdateSigningCertificateRequest$UserName": "

The name of the user the signing certificate belongs to.

", + "UpdateUserRequest$UserName": "

Name of the user to update. If you're changing the name of the user, this is the original user name.

", + "UploadSigningCertificateRequest$UserName": "

The name of the user the signing certificate is for.

" + } + }, + "groupDetailListType": { + "base": null, + "refs": { + "GetAccountAuthorizationDetailsResponse$GroupDetailList": "

A list containing information about IAM groups.

" + } + }, + "groupListType": { + "base": "

Contains a list of IAM groups.

This data type is used as a response element in the ListGroups action.

", + "refs": { + "ListGroupsForUserResponse$Groups": "

A list of groups.

", + "ListGroupsResponse$Groups": "

A list of groups.

" + } + }, + "groupNameListType": { + "base": null, + "refs": { + "UserDetail$GroupList": "

A list of IAM groups that the user is in.

" + } + }, + "groupNameType": { + "base": null, + "refs": { + "AddUserToGroupRequest$GroupName": "

The name of the group to update.

", + "AttachGroupPolicyRequest$GroupName": "

The name (friendly name, not ARN) of the group to attach the policy to.

", + "CreateGroupRequest$GroupName": "

The name of the group to create. Do not include the path in this value.

", + "DeleteGroupPolicyRequest$GroupName": "

The name (friendly name, not ARN) identifying the group that the policy is embedded in.

", + "DeleteGroupRequest$GroupName": "

The name of the group to delete.

", + "DetachGroupPolicyRequest$GroupName": "

The name (friendly name, not ARN) of the group to detach the policy from.

", + "GetGroupPolicyRequest$GroupName": "

The name of the group the policy is associated with.

", + "GetGroupPolicyResponse$GroupName": "

The group the policy is associated with.

", + "GetGroupRequest$GroupName": "

The name of the group.

", + "Group$GroupName": "

The friendly name that identifies the group.

", + "GroupDetail$GroupName": "

The friendly name that identifies the group.

", + "ListAttachedGroupPoliciesRequest$GroupName": "

The name (friendly name, not ARN) of the group to list attached policies for.

", + "ListGroupPoliciesRequest$GroupName": "

The name of the group to list policies for.

", + "PolicyGroup$GroupName": "

The name (friendly name, not ARN) identifying the group.

", + "PutGroupPolicyRequest$GroupName": "

The name of the group to associate the policy with.

", + "RemoveUserFromGroupRequest$GroupName": "

The name of the group to update.

", + "UpdateGroupRequest$GroupName": "

Name of the group to update. If you're changing the name of the group, this is the original name.

", + "UpdateGroupRequest$NewGroupName": "

New name for the group. Only include this if changing the group's name.

", + "groupNameListType$member": null + } + }, + "idType": { + "base": null, + "refs": { + "Group$GroupId": "

The stable and unique string identifying the group. For more information about IDs, see IAM Identifiers in the Using IAM guide.

", + "GroupDetail$GroupId": "

The stable and unique string identifying the group. For more information about IDs, see IAM Identifiers in the Using IAM guide.

", + "InstanceProfile$InstanceProfileId": "

The stable and unique string identifying the instance profile. For more information about IDs, see IAM Identifiers in the Using IAM guide.

", + "ManagedPolicyDetail$PolicyId": "

The stable and unique string identifying the policy.

For more information about IDs, see IAM Identifiers in the Using IAM guide.

", + "Policy$PolicyId": "

The stable and unique string identifying the policy.

For more information about IDs, see IAM Identifiers in the Using IAM guide.

", + "Role$RoleId": "

The stable and unique string identifying the role. For more information about IDs, see IAM Identifiers in the Using IAM guide.

", + "RoleDetail$RoleId": "

The stable and unique string identifying the role. For more information about IDs, see IAM Identifiers in the Using IAM guide.

", + "ServerCertificateMetadata$ServerCertificateId": "

The stable and unique string identifying the server certificate. For more information about IDs, see IAM Identifiers in the Using IAM guide.

", + "User$UserId": "

The stable and unique string identifying the user. For more information about IDs, see IAM Identifiers in the Using IAM guide.

", + "UserDetail$UserId": "

The stable and unique string identifying the user. For more information about IDs, see IAM Identifiers in the Using IAM guide.

" + } + }, + "instanceProfileListType": { + "base": "

Contains a list of instance profiles.

", + "refs": { + "ListInstanceProfilesForRoleResponse$InstanceProfiles": "

A list of instance profiles.

", + "ListInstanceProfilesResponse$InstanceProfiles": "

A list of instance profiles.

", + "RoleDetail$InstanceProfileList": null + } + }, + "instanceProfileNameType": { + "base": null, + "refs": { + "AddRoleToInstanceProfileRequest$InstanceProfileName": "

The name of the instance profile to update.

", + "CreateInstanceProfileRequest$InstanceProfileName": "

The name of the instance profile to create.

", + "DeleteInstanceProfileRequest$InstanceProfileName": "

The name of the instance profile to delete.

", + "GetInstanceProfileRequest$InstanceProfileName": "

The name of the instance profile to get information about.

", + "InstanceProfile$InstanceProfileName": "

The name identifying the instance profile.

", + "RemoveRoleFromInstanceProfileRequest$InstanceProfileName": "

The name of the instance profile to update.

" + } + }, + "invalidAuthenticationCodeMessage": { + "base": null, + "refs": { + "InvalidAuthenticationCodeException$message": null + } + }, + "invalidCertificateMessage": { + "base": null, + "refs": { + "InvalidCertificateException$message": null + } + }, + "invalidInputMessage": { + "base": null, + "refs": { + "InvalidInputException$message": null + } + }, + "invalidUserTypeMessage": { + "base": null, + "refs": { + "InvalidUserTypeException$message": null + } + }, + "keyPairMismatchMessage": { + "base": null, + "refs": { + "KeyPairMismatchException$message": null + } + }, + "limitExceededMessage": { + "base": null, + "refs": { + "LimitExceededException$message": null + } + }, + "malformedCertificateMessage": { + "base": null, + "refs": { + "MalformedCertificateException$message": null + } + }, + "malformedPolicyDocumentMessage": { + "base": null, + "refs": { + "MalformedPolicyDocumentException$message": null + } + }, + "markerType": { + "base": null, + "refs": { + "GetAccountAuthorizationDetailsRequest$Marker": "

Use this only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

", + "GetAccountAuthorizationDetailsResponse$Marker": "

If IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

", + "GetGroupRequest$Marker": "

Use this only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

", + "GetGroupResponse$Marker": "

If IsTruncated is true, then this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

", + "ListAccessKeysRequest$Marker": "

Use this parameter only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

", + "ListAccessKeysResponse$Marker": "

If IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

", + "ListAccountAliasesRequest$Marker": "

Use this only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

", + "ListAccountAliasesResponse$Marker": "

Use this only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

", + "ListAttachedGroupPoliciesRequest$Marker": "

Use this only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

", + "ListAttachedGroupPoliciesResponse$Marker": "

If IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

", + "ListAttachedRolePoliciesRequest$Marker": "

Use this only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

", + "ListAttachedRolePoliciesResponse$Marker": "

If IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

", + "ListAttachedUserPoliciesRequest$Marker": "

Use this only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

", + "ListAttachedUserPoliciesResponse$Marker": "

If IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

", + "ListEntitiesForPolicyRequest$Marker": "

Use this only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

", + "ListEntitiesForPolicyResponse$Marker": "

If IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

", + "ListGroupPoliciesRequest$Marker": "

Use this only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

", + "ListGroupPoliciesResponse$Marker": "

If IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

", + "ListGroupsForUserRequest$Marker": "

Use this only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

", + "ListGroupsForUserResponse$Marker": "

If IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

", + "ListGroupsRequest$Marker": "

Use this only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

", + "ListGroupsResponse$Marker": "

If IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

", + "ListInstanceProfilesForRoleRequest$Marker": "

Use this parameter only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

", + "ListInstanceProfilesForRoleResponse$Marker": "

If IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

", + "ListInstanceProfilesRequest$Marker": "

Use this parameter only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

", + "ListInstanceProfilesResponse$Marker": "

If IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

", + "ListMFADevicesRequest$Marker": "

Use this only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

", + "ListMFADevicesResponse$Marker": "

If IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

", + "ListPoliciesRequest$Marker": "

Use this parameter only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

", + "ListPoliciesResponse$Marker": "

If IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

", + "ListPolicyVersionsRequest$Marker": "

Use this parameter only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

", + "ListPolicyVersionsResponse$Marker": "

If IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

", + "ListRolePoliciesRequest$Marker": "

Use this parameter only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

", + "ListRolePoliciesResponse$Marker": "

If IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

", + "ListRolesRequest$Marker": "

Use this parameter only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

", + "ListRolesResponse$Marker": "

If IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

", + "ListServerCertificatesRequest$Marker": "

Use this only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

", + "ListServerCertificatesResponse$Marker": "

If IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

", + "ListSigningCertificatesRequest$Marker": "

Use this only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

", + "ListSigningCertificatesResponse$Marker": "

If IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

", + "ListUserPoliciesRequest$Marker": "

Use this only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

", + "ListUserPoliciesResponse$Marker": "

If IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

", + "ListUsersRequest$Marker": "

Use this parameter only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

", + "ListUsersResponse$Marker": "

If IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

", + "ListVirtualMFADevicesRequest$Marker": "

Use this parameter only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

", + "ListVirtualMFADevicesResponse$Marker": "

If IsTruncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent pagination request.

" + } + }, + "maxItemsType": { + "base": null, + "refs": { + "GetAccountAuthorizationDetailsRequest$MaxItems": "

Use this only when paginating results to indicate the maximum number of items you want in the response. If there are additional items beyond the maximum you specify, the IsTruncated response element is true. This parameter is optional. If you do not include it, it defaults to 100.

", + "GetGroupRequest$MaxItems": "

Use this only when paginating results to indicate the maximum number of groups you want in the response. If there are additional groups beyond the maximum you specify, the IsTruncated response element is true. This parameter is optional. If you do not include it, it defaults to 100.

", + "ListAccessKeysRequest$MaxItems": "

Use this parameter only when paginating results to indicate the maximum number of keys you want in the response. If there are additional keys beyond the maximum you specify, the IsTruncated response element is true. This parameter is optional. If you do not include it, it defaults to 100.

", + "ListAccountAliasesRequest$MaxItems": "

Use this only when paginating results to indicate the maximum number of account aliases you want in the response. If there are additional account aliases beyond the maximum you specify, the IsTruncated response element is true. This parameter is optional. If you do not include it, it defaults to 100.

", + "ListAttachedGroupPoliciesRequest$MaxItems": "

Use this only when paginating results to indicate the maximum number of policies you want in the response. If there are additional policies beyond the maximum you specify, the IsTruncated response element is true. This parameter is optional. If you do not include it, it defaults to 100.

", + "ListAttachedRolePoliciesRequest$MaxItems": "

Use this only when paginating results to indicate the maximum number of policies you want in the response. If there are additional policies beyond the maximum you specify, the IsTruncated response element is true. This parameter is optional. If you do not include it, it defaults to 100.

", + "ListAttachedUserPoliciesRequest$MaxItems": "

Use this only when paginating results to indicate the maximum number of policies you want in the response. If there are additional policies beyond the maximum you specify, the IsTruncated response element is true. This parameter is optional. If you do not include it, it defaults to 100.

", + "ListEntitiesForPolicyRequest$MaxItems": "

Use this only when paginating results to indicate the maximum number of entities you want in the response. If there are additional entities beyond the maximum you specify, the IsTruncated response element is true. This parameter is optional. If you do not include it, it defaults to 100.

", + "ListGroupPoliciesRequest$MaxItems": "

Use this only when paginating results to indicate the maximum number of policy names you want in the response. If there are additional policy names beyond the maximum you specify, the IsTruncated response element is true. This parameter is optional. If you do not include it, it defaults to 100.

", + "ListGroupsForUserRequest$MaxItems": "

Use this only when paginating results to indicate the maximum number of groups you want in the response. If there are additional groups beyond the maximum you specify, the IsTruncated response element is true. This parameter is optional. If you do not include it, it defaults to 100.

", + "ListGroupsRequest$MaxItems": "

Use this only when paginating results to indicate the maximum number of groups you want in the response. If there are additional groups beyond the maximum you specify, the IsTruncated response element is true. This parameter is optional. If you do not include it, it defaults to 100.

", + "ListInstanceProfilesForRoleRequest$MaxItems": "

Use this parameter only when paginating results to indicate the maximum number of instance profiles you want in the response. If there are additional instance profiles beyond the maximum you specify, the IsTruncated response element is true. This parameter is optional. If you do not include it, it defaults to 100.

", + "ListInstanceProfilesRequest$MaxItems": "

Use this parameter only when paginating results to indicate the maximum number of instance profiles you want in the response. If there are additional instance profiles beyond the maximum you specify, the IsTruncated response element is true. This parameter is optional. If you do not include it, it defaults to 100.

", + "ListMFADevicesRequest$MaxItems": "

Use this only when paginating results to indicate the maximum number of MFA devices you want in the response. If there are additional MFA devices beyond the maximum you specify, the IsTruncated response element is true. This parameter is optional. If you do not include it, it defaults to 100.

", + "ListPoliciesRequest$MaxItems": "

Use this parameter only when paginating results to indicate the maximum number of policies you want in the response. If there are additional policies beyond the maximum you specify, the IsTruncated response element is true. This parameter is optional. If you do not include it, it defaults to 100.

", + "ListPolicyVersionsRequest$MaxItems": "

Use this parameter only when paginating results to indicate the maximum number of policy versions you want in the response. If there are additional policy versions beyond the maximum you specify, the IsTruncated response element is true. This parameter is optional. If you do not include it, it defaults to 100.

", + "ListRolePoliciesRequest$MaxItems": "

Use this parameter only when paginating results to indicate the maximum number of role policies you want in the response. If there are additional role policies beyond the maximum you specify, the IsTruncated response element is true. This parameter is optional. If you do not include it, it defaults to 100.

", + "ListRolesRequest$MaxItems": "

Use this parameter only when paginating results to indicate the maximum number of roles you want in the response. If there are additional roles beyond the maximum you specify, the IsTruncated response element is true. This parameter is optional. If you do not include it, it defaults to 100.

", + "ListServerCertificatesRequest$MaxItems": "

Use this only when paginating results to indicate the maximum number of server certificates you want in the response. If there are additional server certificates beyond the maximum you specify, the IsTruncated response element will be set to true. This parameter is optional. If you do not include it, it defaults to 100.

", + "ListSigningCertificatesRequest$MaxItems": "

Use this only when paginating results to indicate the maximum number of certificate IDs you want in the response. If there are additional certificate IDs beyond the maximum you specify, the IsTruncated response element is true. This parameter is optional. If you do not include it, it defaults to 100.

", + "ListUserPoliciesRequest$MaxItems": "

Use this only when paginating results to indicate the maximum number of policy names you want in the response. If there are additional policy names beyond the maximum you specify, the IsTruncated response element is true. This parameter is optional. If you do not include it, it defaults to 100.

", + "ListUsersRequest$MaxItems": "

Use this parameter only when paginating results to indicate the maximum number of user names you want in the response. If there are additional user names beyond the maximum you specify, the IsTruncated response element is true. This parameter is optional. If you do not include it, it defaults to 100.

", + "ListVirtualMFADevicesRequest$MaxItems": "

Use this parameter only when paginating results to indicate the maximum number of MFA devices you want in the response. If there are additional MFA devices beyond the maximum you specify, the IsTruncated response element is true. This parameter is optional. If you do not include it, it defaults to 100.

" + } + }, + "maxPasswordAgeType": { + "base": null, + "refs": { + "PasswordPolicy$MaxPasswordAge": "

The number of days that an IAM user password is valid.

", + "UpdateAccountPasswordPolicyRequest$MaxPasswordAge": "

The number of days that an IAM user password is valid. The default value of 0 means IAM user passwords never expire.

Default value: 0

" + } + }, + "mfaDeviceListType": { + "base": "

Contains a list of MFA devices.

This data type is used as a response element in the ListMFADevices and ListVirtualMFADevices actions.

", + "refs": { + "ListMFADevicesResponse$MFADevices": "

A list of MFA devices.

" + } + }, + "minimumPasswordLengthType": { + "base": null, + "refs": { + "PasswordPolicy$MinimumPasswordLength": "

Minimum length to require for IAM user passwords.

", + "UpdateAccountPasswordPolicyRequest$MinimumPasswordLength": "

The minimum number of characters allowed in an IAM user password.

Default value: 6

" + } + }, + "noSuchEntityMessage": { + "base": null, + "refs": { + "NoSuchEntityException$message": null + } + }, + "passwordPolicyViolationMessage": { + "base": null, + "refs": { + "PasswordPolicyViolationException$message": null + } + }, + "passwordReusePreventionType": { + "base": null, + "refs": { + "PasswordPolicy$PasswordReusePrevention": "

Specifies the number of previous passwords that IAM users are prevented from reusing.

", + "UpdateAccountPasswordPolicyRequest$PasswordReusePrevention": "

Specifies the number of previous passwords that IAM users are prevented from reusing. The default value of 0 means IAM users are not prevented from reusing previous passwords.

Default value: 0

" + } + }, + "passwordType": { + "base": null, + "refs": { + "ChangePasswordRequest$OldPassword": "

The IAM user's current password.

", + "ChangePasswordRequest$NewPassword": "

The new password. The new password must conform to the AWS account's password policy, if one exists.

", + "CreateLoginProfileRequest$Password": "

The new password for the user.

", + "UpdateLoginProfileRequest$Password": "

The new password for the specified user.

" + } + }, + "pathPrefixType": { + "base": null, + "refs": { + "ListGroupsRequest$PathPrefix": "

The path prefix for filtering the results. For example, the prefix /division_abc/subdivision_xyz/ gets all groups whose path starts with /division_abc/subdivision_xyz/.

This parameter is optional. If it is not included, it defaults to a slash (/), listing all groups.

", + "ListInstanceProfilesRequest$PathPrefix": "

The path prefix for filtering the results. For example, the prefix /application_abc/component_xyz/ gets all instance profiles whose path starts with /application_abc/component_xyz/.

This parameter is optional. If it is not included, it defaults to a slash (/), listing all instance profiles.

", + "ListRolesRequest$PathPrefix": "

The path prefix for filtering the results. For example, the prefix /application_abc/component_xyz/ gets all roles whose path starts with /application_abc/component_xyz/.

This parameter is optional. If it is not included, it defaults to a slash (/), listing all roles.

", + "ListServerCertificatesRequest$PathPrefix": "

The path prefix for filtering the results. For example: /company/servercerts would get all server certificates for which the path starts with /company/servercerts.

This parameter is optional. If it is not included, it defaults to a slash (/), listing all server certificates.

", + "ListUsersRequest$PathPrefix": "

The path prefix for filtering the results. For example: /division_abc/subdivision_xyz/, which would get all user names whose path starts with /division_abc/subdivision_xyz/.

This parameter is optional. If it is not included, it defaults to a slash (/), listing all user names.

" + } + }, + "pathType": { + "base": null, + "refs": { + "CreateGroupRequest$Path": "

The path to the group. For more information about paths, see IAM Identifiers in the Using IAM guide.

This parameter is optional. If it is not included, it defaults to a slash (/).

", + "CreateInstanceProfileRequest$Path": "

The path to the instance profile. For more information about paths, see IAM Identifiers in the Using IAM guide.

This parameter is optional. If it is not included, it defaults to a slash (/).

", + "CreateRoleRequest$Path": "

The path to the role. For more information about paths, see IAM Identifiers in the Using IAM guide.

This parameter is optional. If it is not included, it defaults to a slash (/).

", + "CreateUserRequest$Path": "

The path for the user name. For more information about paths, see IAM Identifiers in the Using IAM guide.

This parameter is optional. If it is not included, it defaults to a slash (/).

", + "CreateVirtualMFADeviceRequest$Path": "

The path for the virtual MFA device. For more information about paths, see IAM Identifiers in the Using IAM guide.

This parameter is optional. If it is not included, it defaults to a slash (/).

", + "Group$Path": "

The path to the group. For more information about paths, see IAM Identifiers in the Using IAM guide.

", + "GroupDetail$Path": "

The path to the group. For more information about paths, see IAM Identifiers in the Using IAM guide.

", + "InstanceProfile$Path": "

The path to the instance profile. For more information about paths, see IAM Identifiers in the Using IAM guide.

", + "ListEntitiesForPolicyRequest$PathPrefix": "

The path prefix for filtering the results. This parameter is optional. If it is not included, it defaults to a slash (/), listing all entities.

", + "Role$Path": "

The path to the role. For more information about paths, see IAM Identifiers in the Using IAM guide.

", + "RoleDetail$Path": "

The path to the role. For more information about paths, see IAM Identifiers in the Using IAM guide.

", + "ServerCertificateMetadata$Path": "

The path to the server certificate. For more information about paths, see IAM Identifiers in the Using IAM guide.

", + "UpdateGroupRequest$NewPath": "

New path for the group. Only include this if changing the group's path.

", + "UpdateServerCertificateRequest$NewPath": "

The new path for the server certificate. Include this only if you are updating the server certificate's path.

", + "UpdateUserRequest$NewPath": "

New path for the user. Include this parameter only if you're changing the user's path.

", + "UploadServerCertificateRequest$Path": "

The path for the server certificate. For more information about paths, see IAM Identifiers in the Using IAM guide.

This parameter is optional. If it is not included, it defaults to a slash (/).

If you are uploading a server certificate specifically for use with Amazon CloudFront distributions, you must specify a path using the --path option. The path must begin with /cloudfront and must include a trailing slash (for example, /cloudfront/test/). ", + "User$Path": "

The path to the user. For more information about paths, see IAM Identifiers in the Using IAM guide.

", + "UserDetail$Path": "

The path to the user. For more information about paths, see IAM Identifiers in the Using IAM guide.

" + } + }, + "policyDescriptionType": { + "base": null, + "refs": { + "CreatePolicyRequest$Description": "

A friendly description of the policy.

Typically used to store information about the permissions defined in the policy. For example, \"Grants access to production DynamoDB tables.\"

The policy description is immutable. After a value is assigned, it cannot be changed.

", + "ManagedPolicyDetail$Description": "

A friendly description of the policy.

", + "Policy$Description": "

A friendly description of the policy.

This element is included in the response to the GetPolicy operation. It is not included in the response to the ListPolicies operation.

" + } + }, + "policyDetailListType": { + "base": null, + "refs": { + "GroupDetail$GroupPolicyList": "

A list of the inline policies embedded in the group.

", + "RoleDetail$RolePolicyList": "

A list of inline policies embedded in the role. These policies are the role's access (permissions) policies.

", + "UserDetail$UserPolicyList": "

A list of the inline policies embedded in the user.

" + } + }, + "policyDocumentType": { + "base": null, + "refs": { + "CreatePolicyRequest$PolicyDocument": "

The policy document.

", + "CreatePolicyVersionRequest$PolicyDocument": "

The policy document.

", + "CreateRoleRequest$AssumeRolePolicyDocument": "

The policy that grants an entity permission to assume the role.

", + "GetGroupPolicyResponse$PolicyDocument": "

The policy document.

", + "GetRolePolicyResponse$PolicyDocument": "

The policy document.

", + "GetUserPolicyResponse$PolicyDocument": "

The policy document.

", + "PolicyDetail$PolicyDocument": "

The policy document.

", + "PolicyVersion$Document": "

The policy document.

The policy document is returned in the response to the GetPolicyVersion and GetAccountAuthorizationDetails operations. It is not returned in the response to the CreatePolicyVersion or ListPolicyVersions operations.

", + "PutGroupPolicyRequest$PolicyDocument": "

The policy document.

", + "PutRolePolicyRequest$PolicyDocument": "

The policy document.

", + "PutUserPolicyRequest$PolicyDocument": "

The policy document.

", + "Role$AssumeRolePolicyDocument": "

The policy that grants an entity permission to assume the role.

", + "RoleDetail$AssumeRolePolicyDocument": "

The trust policy that grants permission to assume the role.

", + "UpdateAssumeRolePolicyRequest$PolicyDocument": "

The policy that grants an entity permission to assume the role.

" + } + }, + "policyDocumentVersionListType": { + "base": null, + "refs": { + "ListPolicyVersionsResponse$Versions": "

A list of policy versions.

For more information about managed policy versions, see Versioning for Managed Policies in the Using IAM guide.

", + "ManagedPolicyDetail$PolicyVersionList": "

A list containing information about the versions of the policy.

" + } + }, + "policyListType": { + "base": null, + "refs": { + "ListPoliciesResponse$Policies": "

A list of policies.

" + } + }, + "policyNameListType": { + "base": "

Contains a list of policy names.

This data type is used as a response element in the ListPolicies action.

", + "refs": { + "ListGroupPoliciesResponse$PolicyNames": "

A list of policy names.

", + "ListRolePoliciesResponse$PolicyNames": "

A list of policy names.

", + "ListUserPoliciesResponse$PolicyNames": "

A list of policy names.

" + } + }, + "policyNameType": { + "base": null, + "refs": { + "AttachedPolicy$PolicyName": "

The friendly name of the attached policy.

", + "CreatePolicyRequest$PolicyName": "

The name of the policy document.

", + "DeleteGroupPolicyRequest$PolicyName": "

The name identifying the policy document to delete.

", + "DeleteRolePolicyRequest$PolicyName": "

The name identifying the policy document to delete.

", + "DeleteUserPolicyRequest$PolicyName": "

The name identifying the policy document to delete.

", + "GetGroupPolicyRequest$PolicyName": "

The name of the policy document to get.

", + "GetGroupPolicyResponse$PolicyName": "

The name of the policy.

", + "GetRolePolicyRequest$PolicyName": "

The name of the policy document to get.

", + "GetRolePolicyResponse$PolicyName": "

The name of the policy.

", + "GetUserPolicyRequest$PolicyName": "

The name of the policy document to get.

", + "GetUserPolicyResponse$PolicyName": "

The name of the policy.

", + "ManagedPolicyDetail$PolicyName": "

The friendly name (not ARN) identifying the policy.

", + "Policy$PolicyName": "

The friendly name (not ARN) identifying the policy.

", + "PolicyDetail$PolicyName": "

The name of the policy.

", + "PutGroupPolicyRequest$PolicyName": "

The name of the policy document.

", + "PutRolePolicyRequest$PolicyName": "

The name of the policy document.

", + "PutUserPolicyRequest$PolicyName": "

The name of the policy document.

", + "policyNameListType$member": null + } + }, + "policyPathType": { + "base": null, + "refs": { + "CreatePolicyRequest$Path": "

The path for the policy.

For more information about paths, see IAM Identifiers in the Using IAM guide.

This parameter is optional. If it is not included, it defaults to a slash (/).

", + "ListAttachedGroupPoliciesRequest$PathPrefix": "

The path prefix for filtering the results. This parameter is optional. If it is not included, it defaults to a slash (/), listing all policies.

", + "ListAttachedRolePoliciesRequest$PathPrefix": "

The path prefix for filtering the results. This parameter is optional. If it is not included, it defaults to a slash (/), listing all policies.

", + "ListAttachedUserPoliciesRequest$PathPrefix": "

The path prefix for filtering the results. This parameter is optional. If it is not included, it defaults to a slash (/), listing all policies.

", + "ListPoliciesRequest$PathPrefix": "

The path prefix for filtering the results. This parameter is optional. If it is not included, it defaults to a slash (/), listing all policies.

", + "ManagedPolicyDetail$Path": "

The path to the policy.

For more information about paths, see IAM Identifiers in the Using IAM guide.

", + "Policy$Path": "

The path to the policy.

For more information about paths, see IAM Identifiers in the Using IAM guide.

" + } + }, + "policyScopeType": { + "base": null, + "refs": { + "ListPoliciesRequest$Scope": "

The scope to use for filtering the results.

To list only AWS managed policies, set Scope to AWS. To list only the customer managed policies in your AWS account, set Scope to Local.

This parameter is optional. If it is not included, or if it is set to All, all policies are returned.

" + } + }, + "policyVersionIdType": { + "base": null, + "refs": { + "DeletePolicyVersionRequest$VersionId": "

The policy version to delete.

For more information about managed policy versions, see Versioning for Managed Policies in the Using IAM guide.

", + "GetPolicyVersionRequest$VersionId": "

Identifies the policy version to retrieve.

", + "ManagedPolicyDetail$DefaultVersionId": "

The identifier for the version of the policy that is set as the default (operative) version.

For more information about policy versions, see Versioning for Managed Policies in the Using IAM guide.

", + "Policy$DefaultVersionId": "

The identifier for the version of the policy that is set as the default version.

", + "PolicyVersion$VersionId": "

The identifier for the policy version.

Policy version identifiers always begin with v (always lowercase). When a policy is created, the first policy version is v1.

", + "SetDefaultPolicyVersionRequest$VersionId": "

The version of the policy to set as the default (operative) version.

For more information about managed policy versions, see Versioning for Managed Policies in the Using IAM guide.

" + } + }, + "privateKeyType": { + "base": null, + "refs": { + "UploadServerCertificateRequest$PrivateKey": "

The contents of the private key in PEM-encoded format.

" + } + }, + "roleDetailListType": { + "base": null, + "refs": { + "GetAccountAuthorizationDetailsResponse$RoleDetailList": "

A list containing information about IAM roles.

" + } + }, + "roleListType": { + "base": "

Contains a list of IAM roles.

This data type is used as a response element in the ListRoles action.

", + "refs": { + "InstanceProfile$Roles": "

The role associated with the instance profile.

", + "ListRolesResponse$Roles": "

A list of roles.

" + } + }, + "roleNameType": { + "base": null, + "refs": { + "AddRoleToInstanceProfileRequest$RoleName": "

The name of the role to add.

", + "AttachRolePolicyRequest$RoleName": "

The name (friendly name, not ARN) of the role to attach the policy to.

", + "CreateRoleRequest$RoleName": "

The name of the role to create.

", + "DeleteRolePolicyRequest$RoleName": "

The name (friendly name, not ARN) identifying the role that the policy is embedded in.

", + "DeleteRoleRequest$RoleName": "

The name of the role to delete.

", + "DetachRolePolicyRequest$RoleName": "

The name (friendly name, not ARN) of the role to detach the policy from.

", + "GetRolePolicyRequest$RoleName": "

The name of the role associated with the policy.

", + "GetRolePolicyResponse$RoleName": "

The role the policy is associated with.

", + "GetRoleRequest$RoleName": "

The name of the role to get information about.

", + "ListAttachedRolePoliciesRequest$RoleName": "

The name (friendly name, not ARN) of the role to list attached policies for.

", + "ListInstanceProfilesForRoleRequest$RoleName": "

The name of the role to list instance profiles for.

", + "ListRolePoliciesRequest$RoleName": "

The name of the role to list policies for.

", + "PolicyRole$RoleName": "

The name (friendly name, not ARN) identifying the role.

", + "PutRolePolicyRequest$RoleName": "

The name of the role to associate the policy with.

", + "RemoveRoleFromInstanceProfileRequest$RoleName": "

The name of the role to remove.

", + "Role$RoleName": "

The friendly name that identifies the role.

", + "RoleDetail$RoleName": "

The friendly name that identifies the role.

", + "UpdateAssumeRolePolicyRequest$RoleName": "

The name of the role to update.

" + } + }, + "serialNumberType": { + "base": null, + "refs": { + "DeactivateMFADeviceRequest$SerialNumber": "

The serial number that uniquely identifies the MFA device. For virtual MFA devices, the serial number is the device ARN.

", + "DeleteVirtualMFADeviceRequest$SerialNumber": "

The serial number that uniquely identifies the MFA device. For virtual MFA devices, the serial number is the same as the ARN.

", + "EnableMFADeviceRequest$SerialNumber": "

The serial number that uniquely identifies the MFA device. For virtual MFA devices, the serial number is the device ARN.

", + "MFADevice$SerialNumber": "

The serial number that uniquely identifies the MFA device. For virtual MFA devices, the serial number is the device ARN.

", + "ResyncMFADeviceRequest$SerialNumber": "

Serial number that uniquely identifies the MFA device.

", + "VirtualMFADevice$SerialNumber": "

The serial number associated with VirtualMFADevice.

" + } + }, + "serverCertificateMetadataListType": { + "base": null, + "refs": { + "ListServerCertificatesResponse$ServerCertificateMetadataList": "

A list of server certificates.

" + } + }, + "serverCertificateNameType": { + "base": null, + "refs": { + "DeleteServerCertificateRequest$ServerCertificateName": "

The name of the server certificate you want to delete.

", + "GetServerCertificateRequest$ServerCertificateName": "

The name of the server certificate you want to retrieve information about.

", + "ServerCertificateMetadata$ServerCertificateName": "

The name that identifies the server certificate.

", + "UpdateServerCertificateRequest$ServerCertificateName": "

The name of the server certificate that you want to update.

", + "UpdateServerCertificateRequest$NewServerCertificateName": "

The new name for the server certificate. Include this only if you are updating the server certificate's name.

", + "UploadServerCertificateRequest$ServerCertificateName": "

The name for the server certificate. Do not include the path in this value.

" + } + }, + "serviceFailureExceptionMessage": { + "base": null, + "refs": { + "ServiceFailureException$message": null + } + }, + "statusType": { + "base": null, + "refs": { + "AccessKey$Status": "

The status of the access key. Active means the key is valid for API calls, while Inactive means it is not.

", + "AccessKeyMetadata$Status": "

The status of the access key. Active means the key is valid for API calls; Inactive means it is not.

", + "SigningCertificate$Status": "

The status of the signing certificate. Active means the key is valid for API calls, while Inactive means it is not.

", + "UpdateAccessKeyRequest$Status": "

The status you want to assign to the secret access key. Active means the key can be used for API calls to AWS, while Inactive means the key cannot be used.

", + "UpdateSigningCertificateRequest$Status": "

The status you want to assign to the certificate. Active means the certificate can be used for API calls to AWS, while Inactive means the certificate cannot be used.

" + } + }, + "stringType": { + "base": null, + "refs": { + "AccessKeyLastUsed$ServiceName": "

The name of the AWS service with which this access key was most recently used.

", + "AccessKeyLastUsed$Region": "

The AWS region where this access key was most recently used.

For more information about AWS regions, see Regions and Endpoints in the Amazon Web Services General Reference.

" + } + }, + "summaryKeyType": { + "base": null, + "refs": { + "summaryMapType$key": null + } + }, + "summaryMapType": { + "base": null, + "refs": { + "GetAccountSummaryResponse$SummaryMap": "

A set of key value pairs containing information about IAM entity usage and IAM quotas.

SummaryMap contains the following keys:

  • AccessKeysPerUserQuota

    The maximum number of active access keys allowed for each IAM user.

  • AccountAccessKeysPresent

    This value is 1 if the AWS account (root) has an access key, otherwise it is 0.

  • AccountMFAEnabled

    This value is 1 if the AWS account (root) has an MFA device assigned, otherwise it is 0.

  • AccountSigningCertificatesPresent

    This value is 1 if the AWS account (root) has a signing certificate, otherwise it is 0.

  • AssumeRolePolicySizeQuota

    The maximum allowed size for assume role policy documents (trust policies), in non-whitespace characters.

  • AttachedPoliciesPerGroupQuota

    The maximum number of managed policies that can be attached to an IAM group.

  • AttachedPoliciesPerRoleQuota

    The maximum number of managed policies that can be attached to an IAM role.

  • AttachedPoliciesPerUserQuota

    The maximum number of managed policies that can be attached to an IAM user.

  • GroupPolicySizeQuota

    The maximum allowed size for the aggregate of all inline policies embedded in an IAM group, in non-whitespace characters.

  • Groups

    The number of IAM groups in the AWS account.

  • GroupsPerUserQuota

    The maximum number of IAM groups each IAM user can belong to.

  • GroupsQuota

    The maximum number of IAM groups allowed in the AWS account.

  • InstanceProfiles

    The number of instance profiles in the AWS account.

  • InstanceProfilesQuota

    The maximum number of instance profiles allowed in the AWS account.

  • MFADevices

    The number of MFA devices in the AWS account, including those assigned and unassigned.

  • MFADevicesInUse

    The number of MFA devices that have been assigned to an IAM user or to the AWS account (root).

  • Policies

    The number of customer managed policies in the AWS account.

  • PoliciesQuota

    The maximum number of customer managed policies allowed in the AWS account.

  • PolicySizeQuota

    The maximum allowed size of a customer managed policy, in non-whitespace characters.

  • PolicyVersionsInUse

    The number of managed policies that are attached to IAM users, groups, or roles in the AWS account.

  • PolicyVersionsInUseQuota

    The maximum number of managed policies that can be attached to IAM users, groups, or roles in the AWS account.

  • Providers

    The number of identity providers in the AWS account.

  • RolePolicySizeQuota

    The maximum allowed size for the aggregate of all inline policies (access policies, not the trust policy) embedded in an IAM role, in non-whitespace characters.

  • Roles

    The number of IAM roles in the AWS account.

  • RolesQuota

    The maximum number of IAM roles allowed in the AWS account.

  • ServerCertificates

    The number of server certificates in the AWS account.

  • ServerCertificatesQuota

    The maximum number of server certificates allowed in the AWS account.

  • SigningCertificatesPerUserQuota

    The maximum number of X.509 signing certificates allowed for each IAM user.

  • UserPolicySizeQuota

    The maximum allowed size for the aggregate of all inline policies embedded in an IAM user, in non-whitespace characters.

  • Users

    The number of IAM users in the AWS account.

  • UsersQuota

    The maximum number of IAM users allowed in the AWS account.

  • VersionsPerPolicyQuota

    The maximum number of policy versions allowed for each managed policy.

" + } + }, + "summaryValueType": { + "base": null, + "refs": { + "summaryMapType$value": null + } + }, + "thumbprintListType": { + "base": "

Contains a list of thumbprints of identity provider server certificates.

", + "refs": { + "CreateOpenIDConnectProviderRequest$ThumbprintList": "

A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s). Typically this list includes only one entry. However, IAM lets you have up to five thumbprints for an OIDC provider. This lets you maintain multiple thumbprints if the identity provider is rotating certificates.

The server certificate thumbprint is the hex-encoded SHA-1 hash value of the X.509 certificate used by the domain where the OpenID Connect provider makes its keys available. It is always a 40-character string.

You must provide at least one thumbprint when creating an IAM OIDC provider. For example, if the OIDC provider is server.example.com and the provider stores its keys at \"https://keys.server.example.com/openid-connect\", the thumbprint string would be the hex-encoded SHA-1 hash value of the certificate used by https://keys.server.example.com.

For more information about obtaining the OIDC provider's thumbprint, see Obtaining the Thumbprint for an OpenID Connect Provider in the Using IAM guide.

", + "GetOpenIDConnectProviderResponse$ThumbprintList": "

A list of certificate thumbprints that are associated with the specified IAM OpenID Connect provider. For more information, see CreateOpenIDConnectProvider.

", + "UpdateOpenIDConnectProviderThumbprintRequest$ThumbprintList": "

A list of certificate thumbprints that are associated with the specified IAM OpenID Connect provider. For more information, see CreateOpenIDConnectProvider.

" + } + }, + "thumbprintType": { + "base": "

Contains a thumbprint for an identity provider's server certificate.

The identity provider's server certificate thumbprint is the hex-encoded SHA-1 hash value of the self-signed X.509 certificate used by the domain where the OpenID Connect provider makes its keys available. It is always a 40-character string.

", + "refs": { + "thumbprintListType$member": null + } + }, + "userDetailListType": { + "base": null, + "refs": { + "GetAccountAuthorizationDetailsResponse$UserDetailList": "

A list containing information about IAM users.

" + } + }, + "userListType": { + "base": "

Contains a list of users.

This data type is used as a response element in the GetGroup and ListUsers actions.

", + "refs": { + "GetGroupResponse$Users": "

A list of users in the group.

", + "ListUsersResponse$Users": "

A list of users.

" + } + }, + "userNameType": { + "base": null, + "refs": { + "AccessKey$UserName": "

The name of the IAM user that the access key is associated with.

", + "AccessKeyMetadata$UserName": "

The name of the IAM user that the key is associated with.

", + "AttachUserPolicyRequest$UserName": "

The name (friendly name, not ARN) of the user to attach the policy to.

", + "CreateLoginProfileRequest$UserName": "

The name of the user to create a password for.

", + "CreateUserRequest$UserName": "

The name of the user to create.

", + "DeleteLoginProfileRequest$UserName": "

The name of the user whose password you want to delete.

", + "DetachUserPolicyRequest$UserName": "

The name (friendly name, not ARN) of the user to detach the policy from.

", + "GetLoginProfileRequest$UserName": "

The name of the user whose login profile you want to retrieve.

", + "ListAttachedUserPoliciesRequest$UserName": "

The name (friendly name, not ARN) of the user to list attached policies for.

", + "LoginProfile$UserName": "

The name of the user, which can be used for signing in to the AWS Management Console.

", + "MFADevice$UserName": "

The user with whom the MFA device is associated.

", + "PolicyUser$UserName": "

The name (friendly name, not ARN) identifying the user.

", + "SigningCertificate$UserName": "

The name of the user the signing certificate is associated with.

", + "UpdateLoginProfileRequest$UserName": "

The name of the user whose password you want to update.

", + "UpdateUserRequest$NewUserName": "

New name for the user. Include this parameter only if you're changing the user's name.

", + "User$UserName": "

The friendly name identifying the user.

", + "UserDetail$UserName": "

The friendly name identifying the user.

" + } + }, + "virtualMFADeviceListType": { + "base": null, + "refs": { + "ListVirtualMFADevicesResponse$VirtualMFADevices": "

The list of virtual MFA devices in the current account that match the AssignmentStatus value that was passed in the request.

" + } + }, + "virtualMFADeviceName": { + "base": null, + "refs": { + "CreateVirtualMFADeviceRequest$VirtualMFADeviceName": "

The name of the virtual MFA device. Use with path to uniquely identify a virtual MFA device.

" + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/iam/2010-05-08/paginators-1.json b/lib/aws-sdk/Aws/data/iam/2010-05-08/paginators-1.json new file mode 100644 index 0000000..f302ff0 --- /dev/null +++ b/lib/aws-sdk/Aws/data/iam/2010-05-08/paginators-1.json @@ -0,0 +1,132 @@ +{ + "pagination": { + "GetGroup": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "Users" + }, + "ListAccessKeys": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "AccessKeyMetadata" + }, + "ListAccountAliases": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "AccountAliases" + }, + "ListGroupPolicies": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "PolicyNames" + }, + "ListGroups": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "Groups" + }, + "ListGroupsForUser": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "Groups" + }, + "ListInstanceProfiles": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "InstanceProfiles" + }, + "ListInstanceProfilesForRole": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "InstanceProfiles" + }, + "ListMFADevices": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "MFADevices" + }, + "ListPolicies": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "Policies" + }, + "ListRolePolicies": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "PolicyNames" + }, + "ListRoles": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "Roles" + }, + "ListSAMLProviders": { + "result_key": "SAMLProviderList" + }, + "ListServerCertificates": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "ServerCertificateMetadataList" + }, + "ListSigningCertificates": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "Certificates" + }, + "ListUserPolicies": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "PolicyNames" + }, + "ListUsers": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "Users" + }, + "ListVirtualMFADevices": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "VirtualMFADevices" + }, + "GetAccountAuthorizationDetails": { + "input_token": "Marker", + "output_token": "Marker", + "more_results": "IsTruncated", + "limit_key": "MaxItems" + } + } +} diff --git a/lib/aws-sdk/Aws/data/kinesis/2013-12-02/api-2.json b/lib/aws-sdk/Aws/data/kinesis/2013-12-02/api-2.json new file mode 100644 index 0000000..8d0ad2a --- /dev/null +++ b/lib/aws-sdk/Aws/data/kinesis/2013-12-02/api-2.json @@ -0,0 +1,788 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2013-12-02", + "endpointPrefix":"kinesis", + "jsonVersion":"1.1", + "serviceAbbreviation":"Kinesis", + "serviceFullName":"Amazon Kinesis", + "signatureVersion":"v4", + "targetPrefix":"Kinesis_20131202", + "protocol":"json" + }, + "operations":{ + "AddTagsToStream":{ + "name":"AddTagsToStream", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddTagsToStreamInput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"ResourceInUseException", + "exception":true + }, + { + "shape":"InvalidArgumentException", + "exception":true + }, + { + "shape":"LimitExceededException", + "exception":true + } + ] + }, + "CreateStream":{ + "name":"CreateStream", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateStreamInput"}, + "errors":[ + { + "shape":"ResourceInUseException", + "exception":true + }, + { + "shape":"LimitExceededException", + "exception":true + }, + { + "shape":"InvalidArgumentException", + "exception":true + } + ] + }, + "DeleteStream":{ + "name":"DeleteStream", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteStreamInput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"LimitExceededException", + "exception":true + } + ] + }, + "DescribeStream":{ + "name":"DescribeStream", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeStreamInput"}, + "output":{"shape":"DescribeStreamOutput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"LimitExceededException", + "exception":true + } + ] + }, + "GetRecords":{ + "name":"GetRecords", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRecordsInput"}, + "output":{"shape":"GetRecordsOutput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"InvalidArgumentException", + "exception":true + }, + { + "shape":"ProvisionedThroughputExceededException", + "exception":true + }, + { + "shape":"ExpiredIteratorException", + "exception":true + } + ] + }, + "GetShardIterator":{ + "name":"GetShardIterator", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetShardIteratorInput"}, + "output":{"shape":"GetShardIteratorOutput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"InvalidArgumentException", + "exception":true + }, + { + "shape":"ProvisionedThroughputExceededException", + "exception":true + } + ] + }, + "ListStreams":{ + "name":"ListStreams", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListStreamsInput"}, + "output":{"shape":"ListStreamsOutput"}, + "errors":[ + { + "shape":"LimitExceededException", + "exception":true + } + ] + }, + "ListTagsForStream":{ + "name":"ListTagsForStream", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForStreamInput"}, + "output":{"shape":"ListTagsForStreamOutput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"InvalidArgumentException", + "exception":true + }, + { + "shape":"LimitExceededException", + "exception":true + } + ] + }, + "MergeShards":{ + "name":"MergeShards", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"MergeShardsInput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"ResourceInUseException", + "exception":true + }, + { + "shape":"InvalidArgumentException", + "exception":true + }, + { + "shape":"LimitExceededException", + "exception":true + } + ] + }, + "PutRecord":{ + "name":"PutRecord", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutRecordInput"}, + "output":{"shape":"PutRecordOutput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"InvalidArgumentException", + "exception":true + }, + { + "shape":"ProvisionedThroughputExceededException", + "exception":true + } + ] + }, + "PutRecords":{ + "name":"PutRecords", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutRecordsInput"}, + "output":{"shape":"PutRecordsOutput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"InvalidArgumentException", + "exception":true + }, + { + "shape":"ProvisionedThroughputExceededException", + "exception":true + } + ] + }, + "RemoveTagsFromStream":{ + "name":"RemoveTagsFromStream", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RemoveTagsFromStreamInput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"ResourceInUseException", + "exception":true + }, + { + "shape":"InvalidArgumentException", + "exception":true + }, + { + "shape":"LimitExceededException", + "exception":true + } + ] + }, + "SplitShard":{ + "name":"SplitShard", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SplitShardInput"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"ResourceInUseException", + "exception":true + }, + { + "shape":"InvalidArgumentException", + "exception":true + }, + { + "shape":"LimitExceededException", + "exception":true + } + ] + } + }, + "shapes":{ + "AddTagsToStreamInput":{ + "type":"structure", + "required":[ + "StreamName", + "Tags" + ], + "members":{ + "StreamName":{"shape":"StreamName"}, + "Tags":{"shape":"TagMap"} + } + }, + "BooleanObject":{"type":"boolean"}, + "CreateStreamInput":{ + "type":"structure", + "required":[ + "StreamName", + "ShardCount" + ], + "members":{ + "StreamName":{"shape":"StreamName"}, + "ShardCount":{"shape":"PositiveIntegerObject"} + } + }, + "Data":{ + "type":"blob", + "min":0, + "max":51200 + }, + "DeleteStreamInput":{ + "type":"structure", + "required":["StreamName"], + "members":{ + "StreamName":{"shape":"StreamName"} + } + }, + "DescribeStreamInput":{ + "type":"structure", + "required":["StreamName"], + "members":{ + "StreamName":{"shape":"StreamName"}, + "Limit":{"shape":"DescribeStreamInputLimit"}, + "ExclusiveStartShardId":{"shape":"ShardId"} + } + }, + "DescribeStreamInputLimit":{ + "type":"integer", + "min":1, + "max":10000 + }, + "DescribeStreamOutput":{ + "type":"structure", + "required":["StreamDescription"], + "members":{ + "StreamDescription":{"shape":"StreamDescription"} + } + }, + "ErrorCode":{"type":"string"}, + "ErrorMessage":{"type":"string"}, + "ExpiredIteratorException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "GetRecordsInput":{ + "type":"structure", + "required":["ShardIterator"], + "members":{ + "ShardIterator":{"shape":"ShardIterator"}, + "Limit":{"shape":"GetRecordsInputLimit"} + } + }, + "GetRecordsInputLimit":{ + "type":"integer", + "min":1, + "max":10000 + }, + "GetRecordsOutput":{ + "type":"structure", + "required":["Records"], + "members":{ + "Records":{"shape":"RecordList"}, + "NextShardIterator":{"shape":"ShardIterator"}, + "MillisBehindLatest":{"shape":"MillisBehindLatest"} + } + }, + "GetShardIteratorInput":{ + "type":"structure", + "required":[ + "StreamName", + "ShardId", + "ShardIteratorType" + ], + "members":{ + "StreamName":{"shape":"StreamName"}, + "ShardId":{"shape":"ShardId"}, + "ShardIteratorType":{"shape":"ShardIteratorType"}, + "StartingSequenceNumber":{"shape":"SequenceNumber"} + } + }, + "GetShardIteratorOutput":{ + "type":"structure", + "members":{ + "ShardIterator":{"shape":"ShardIterator"} + } + }, + "HashKey":{ + "type":"string", + "pattern":"0|([1-9]\\d{0,38})" + }, + "HashKeyRange":{ + "type":"structure", + "required":[ + "StartingHashKey", + "EndingHashKey" + ], + "members":{ + "StartingHashKey":{"shape":"HashKey"}, + "EndingHashKey":{"shape":"HashKey"} + } + }, + "InvalidArgumentException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "LimitExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ListStreamsInput":{ + "type":"structure", + "members":{ + "Limit":{"shape":"ListStreamsInputLimit"}, + "ExclusiveStartStreamName":{"shape":"StreamName"} + } + }, + "ListStreamsInputLimit":{ + "type":"integer", + "min":1, + "max":10000 + }, + "ListStreamsOutput":{ + "type":"structure", + "required":[ + "StreamNames", + "HasMoreStreams" + ], + "members":{ + "StreamNames":{"shape":"StreamNameList"}, + "HasMoreStreams":{"shape":"BooleanObject"} + } + }, + "ListTagsForStreamInput":{ + "type":"structure", + "required":["StreamName"], + "members":{ + "StreamName":{"shape":"StreamName"}, + "ExclusiveStartTagKey":{"shape":"TagKey"}, + "Limit":{"shape":"ListTagsForStreamInputLimit"} + } + }, + "ListTagsForStreamInputLimit":{ + "type":"integer", + "min":1, + "max":10 + }, + "ListTagsForStreamOutput":{ + "type":"structure", + "required":[ + "Tags", + "HasMoreTags" + ], + "members":{ + "Tags":{"shape":"TagList"}, + "HasMoreTags":{"shape":"BooleanObject"} + } + }, + "MergeShardsInput":{ + "type":"structure", + "required":[ + "StreamName", + "ShardToMerge", + "AdjacentShardToMerge" + ], + "members":{ + "StreamName":{"shape":"StreamName"}, + "ShardToMerge":{"shape":"ShardId"}, + "AdjacentShardToMerge":{"shape":"ShardId"} + } + }, + "MillisBehindLatest":{ + "type":"long", + "min":0 + }, + "PartitionKey":{ + "type":"string", + "min":1, + "max":256 + }, + "PositiveIntegerObject":{ + "type":"integer", + "min":1 + }, + "ProvisionedThroughputExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "PutRecordInput":{ + "type":"structure", + "required":[ + "StreamName", + "Data", + "PartitionKey" + ], + "members":{ + "StreamName":{"shape":"StreamName"}, + "Data":{"shape":"Data"}, + "PartitionKey":{"shape":"PartitionKey"}, + "ExplicitHashKey":{"shape":"HashKey"}, + "SequenceNumberForOrdering":{"shape":"SequenceNumber"} + } + }, + "PutRecordOutput":{ + "type":"structure", + "required":[ + "ShardId", + "SequenceNumber" + ], + "members":{ + "ShardId":{"shape":"ShardId"}, + "SequenceNumber":{"shape":"SequenceNumber"} + } + }, + "PutRecordsInput":{ + "type":"structure", + "required":[ + "Records", + "StreamName" + ], + "members":{ + "Records":{"shape":"PutRecordsRequestEntryList"}, + "StreamName":{"shape":"StreamName"} + } + }, + "PutRecordsOutput":{ + "type":"structure", + "required":["Records"], + "members":{ + "FailedRecordCount":{"shape":"PositiveIntegerObject"}, + "Records":{"shape":"PutRecordsResultEntryList"} + } + }, + "PutRecordsRequestEntry":{ + "type":"structure", + "required":[ + "Data", + "PartitionKey" + ], + "members":{ + "Data":{"shape":"Data"}, + "ExplicitHashKey":{"shape":"HashKey"}, + "PartitionKey":{"shape":"PartitionKey"} + } + }, + "PutRecordsRequestEntryList":{ + "type":"list", + "member":{"shape":"PutRecordsRequestEntry"}, + "min":1, + "max":500 + }, + "PutRecordsResultEntry":{ + "type":"structure", + "members":{ + "SequenceNumber":{"shape":"SequenceNumber"}, + "ShardId":{"shape":"ShardId"}, + "ErrorCode":{"shape":"ErrorCode"}, + "ErrorMessage":{"shape":"ErrorMessage"} + } + }, + "PutRecordsResultEntryList":{ + "type":"list", + "member":{"shape":"PutRecordsResultEntry"}, + "min":1, + "max":500 + }, + "Record":{ + "type":"structure", + "required":[ + "SequenceNumber", + "Data", + "PartitionKey" + ], + "members":{ + "SequenceNumber":{"shape":"SequenceNumber"}, + "Data":{"shape":"Data"}, + "PartitionKey":{"shape":"PartitionKey"} + } + }, + "RecordList":{ + "type":"list", + "member":{"shape":"Record"} + }, + "RemoveTagsFromStreamInput":{ + "type":"structure", + "required":[ + "StreamName", + "TagKeys" + ], + "members":{ + "StreamName":{"shape":"StreamName"}, + "TagKeys":{"shape":"TagKeyList"} + } + }, + "ResourceInUseException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "SequenceNumber":{ + "type":"string", + "pattern":"0|([1-9]\\d{0,128})" + }, + "SequenceNumberRange":{ + "type":"structure", + "required":["StartingSequenceNumber"], + "members":{ + "StartingSequenceNumber":{"shape":"SequenceNumber"}, + "EndingSequenceNumber":{"shape":"SequenceNumber"} + } + }, + "Shard":{ + "type":"structure", + "required":[ + "ShardId", + "HashKeyRange", + "SequenceNumberRange" + ], + "members":{ + "ShardId":{"shape":"ShardId"}, + "ParentShardId":{"shape":"ShardId"}, + "AdjacentParentShardId":{"shape":"ShardId"}, + "HashKeyRange":{"shape":"HashKeyRange"}, + "SequenceNumberRange":{"shape":"SequenceNumberRange"} + } + }, + "ShardId":{ + "type":"string", + "min":1, + "max":128, + "pattern":"[a-zA-Z0-9_.-]+" + }, + "ShardIterator":{ + "type":"string", + "min":1, + "max":512 + }, + "ShardIteratorType":{ + "type":"string", + "enum":[ + "AT_SEQUENCE_NUMBER", + "AFTER_SEQUENCE_NUMBER", + "TRIM_HORIZON", + "LATEST" + ] + }, + "ShardList":{ + "type":"list", + "member":{"shape":"Shard"} + }, + "SplitShardInput":{ + "type":"structure", + "required":[ + "StreamName", + "ShardToSplit", + "NewStartingHashKey" + ], + "members":{ + "StreamName":{"shape":"StreamName"}, + "ShardToSplit":{"shape":"ShardId"}, + "NewStartingHashKey":{"shape":"HashKey"} + } + }, + "StreamARN":{"type":"string"}, + "StreamDescription":{ + "type":"structure", + "required":[ + "StreamName", + "StreamARN", + "StreamStatus", + "Shards", + "HasMoreShards" + ], + "members":{ + "StreamName":{"shape":"StreamName"}, + "StreamARN":{"shape":"StreamARN"}, + "StreamStatus":{"shape":"StreamStatus"}, + "Shards":{"shape":"ShardList"}, + "HasMoreShards":{"shape":"BooleanObject"} + } + }, + "StreamName":{ + "type":"string", + "min":1, + "max":128, + "pattern":"[a-zA-Z0-9_.-]+" + }, + "StreamNameList":{ + "type":"list", + "member":{"shape":"StreamName"} + }, + "StreamStatus":{ + "type":"string", + "enum":[ + "CREATING", + "DELETING", + "ACTIVE", + "UPDATING" + ] + }, + "Tag":{ + "type":"structure", + "required":["Key"], + "members":{ + "Key":{"shape":"TagKey"}, + "Value":{"shape":"TagValue"} + } + }, + "TagKey":{ + "type":"string", + "min":1, + "max":128 + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "min":1, + "max":10 + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "min":0 + }, + "TagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "min":1, + "max":10 + }, + "TagValue":{ + "type":"string", + "min":0, + "max":256 + } + } +} diff --git a/lib/aws-sdk/Aws/data/kinesis/2013-12-02/docs-2.json b/lib/aws-sdk/Aws/data/kinesis/2013-12-02/docs-2.json new file mode 100644 index 0000000..e6e38f6 --- /dev/null +++ b/lib/aws-sdk/Aws/data/kinesis/2013-12-02/docs-2.json @@ -0,0 +1,424 @@ +{ + "version": "2.0", + "operations": { + "AddTagsToStream": "

Adds or updates tags for the specified Amazon Kinesis stream. Each stream can have up to 10 tags.

If tags have already been assigned to the stream, AddTagsToStream overwrites any existing tags that correspond to the specified tag keys.

", + "CreateStream": "

Creates a Amazon Kinesis stream. A stream captures and transports data records that are continuously emitted from different data sources or producers. Scale-out within an Amazon Kinesis stream is explicitly supported by means of shards, which are uniquely identified groups of data records in an Amazon Kinesis stream.

You specify and control the number of shards that a stream is composed of. Each open shard can support up to 5 read transactions per second, up to a maximum total of 2 MB of data read per second. Each shard can support up to 1000 records written per second, up to a maximum total of 1 MB data written per second. You can add shards to a stream if the amount of data input increases and you can remove shards if the amount of data input decreases.

The stream name identifies the stream. The name is scoped to the AWS account used by the application. It is also scoped by region. That is, two streams in two different accounts can have the same name, and two streams in the same account, but in two different regions, can have the same name.

CreateStream is an asynchronous operation. Upon receiving a CreateStream request, Amazon Kinesis immediately returns and sets the stream status to CREATING. After the stream is created, Amazon Kinesis sets the stream status to ACTIVE. You should perform read and write operations only on an ACTIVE stream.

You receive a LimitExceededException when making a CreateStream request if you try to do one of the following:

  • Have more than five streams in the CREATING state at any point in time.
  • Create more shards than are authorized for your account.

For the default shard limit for an AWS account, see Amazon Kinesis Limits. If you need to increase this limit, contact AWS Support

You can use DescribeStream to check the stream status, which is returned in StreamStatus.

CreateStream has a limit of 5 transactions per second per account.

", + "DeleteStream": "

Deletes a stream and all its shards and data. You must shut down any applications that are operating on the stream before you delete the stream. If an application attempts to operate on a deleted stream, it will receive the exception ResourceNotFoundException.

If the stream is in the ACTIVE state, you can delete it. After a DeleteStream request, the specified stream is in the DELETING state until Amazon Kinesis completes the deletion.

Note: Amazon Kinesis might continue to accept data read and write operations, such as PutRecord, PutRecords, and GetRecords, on a stream in the DELETING state until the stream deletion is complete.

When you delete a stream, any shards in that stream are also deleted, and any tags are dissociated from the stream.

You can use the DescribeStream operation to check the state of the stream, which is returned in StreamStatus.

DeleteStream has a limit of 5 transactions per second per account.

", + "DescribeStream": "

Describes the specified stream.

The information about the stream includes its current status, its Amazon Resource Name (ARN), and an array of shard objects. For each shard object, there is information about the hash key and sequence number ranges that the shard spans, and the IDs of any earlier shards that played in a role in creating the shard. A sequence number is the identifier associated with every record ingested in the Amazon Kinesis stream. The sequence number is assigned when a record is put into the stream.

You can limit the number of returned shards using the Limit parameter. The number of shards in a stream may be too large to return from a single call to DescribeStream. You can detect this by using the HasMoreShards flag in the returned output. HasMoreShards is set to true when there is more data available.

DescribeStream is a paginated operation. If there are more shards available, you can request them using the shard ID of the last shard returned. Specify this ID in the ExclusiveStartShardId parameter in a subsequent request to DescribeStream.

DescribeStream has a limit of 10 transactions per second per account.

", + "GetRecords": "

Gets data records from a shard.

Specify a shard iterator using the ShardIterator parameter. The shard iterator specifies the position in the shard from which you want to start reading data records sequentially. If there are no records available in the portion of the shard that the iterator points to, GetRecords returns an empty list. Note that it might take multiple calls to get to a portion of the shard that contains records.

You can scale by provisioning multiple shards. Your application should have one thread per shard, each reading continuously from its stream. To read from a stream continually, call GetRecords in a loop. Use GetShardIterator to get the shard iterator to specify in the first GetRecords call. GetRecords returns a new shard iterator in NextShardIterator. Specify the shard iterator returned in NextShardIterator in subsequent calls to GetRecords. Note that if the shard has been closed, the shard iterator can't return more data and GetRecords returns null in NextShardIterator. You can terminate the loop when the shard is closed, or when the shard iterator reaches the record with the sequence number or other attribute that marks it as the last record to process.

Each data record can be up to 50 KB in size, and each shard can read up to 2 MB per second. You can ensure that your calls don't exceed the maximum supported size or throughput by using the Limit parameter to specify the maximum number of records that GetRecords can return. Consider your average record size when determining this limit. For example, if your average record size is 40 KB, you can limit the data returned to about 1 MB per call by specifying 25 as the limit.

The size of the data returned by GetRecords will vary depending on the utilization of the shard. The maximum size of data that GetRecords can return is 10 MB. If a call returns this amount of data, subsequent calls made within the next 5 seconds throw ProvisionedThroughputExceededException. If there is insufficient provisioned throughput on the shard, subsequent calls made within the next 1 second throw ProvisionedThroughputExceededException. Note that GetRecords won't return any data when it throws an exception. For this reason, we recommend that you wait one second between calls to GetRecords; however, it's possible that the application will get exceptions for longer than 1 second.

To detect whether the application is falling behind in processing, you can use the MillisBehindLatest response attribute. You can also monitor the amount of data in a stream using the CloudWatch metrics. For more information, see Monitoring Amazon Kinesis with Amazon CloudWatch in the Amazon Kinesis Developer Guide.

", + "GetShardIterator": "

Gets a shard iterator. A shard iterator expires five minutes after it is returned to the requester.

A shard iterator specifies the position in the shard from which to start reading data records sequentially. A shard iterator specifies this position using the sequence number of a data record in a shard. A sequence number is the identifier associated with every record ingested in the Amazon Kinesis stream. The sequence number is assigned when a record is put into the stream.

You must specify the shard iterator type. For example, you can set the ShardIteratorType parameter to read exactly from the position denoted by a specific sequence number by using the AT_SEQUENCE_NUMBER shard iterator type, or right after the sequence number by using the AFTER_SEQUENCE_NUMBER shard iterator type, using sequence numbers returned by earlier calls to PutRecord, PutRecords, GetRecords, or DescribeStream. You can specify the shard iterator type TRIM_HORIZON in the request to cause ShardIterator to point to the last untrimmed record in the shard in the system, which is the oldest data record in the shard. Or you can point to just after the most recent record in the shard, by using the shard iterator type LATEST, so that you always read the most recent data in the shard.

When you repeatedly read from an Amazon Kinesis stream use a GetShardIterator request to get the first shard iterator for use in your first GetRecords request and then use the shard iterator returned by the GetRecords request in NextShardIterator for subsequent reads. A new shard iterator is returned by every GetRecords request in NextShardIterator, which you use in the ShardIterator parameter of the next GetRecords request.

If a GetShardIterator request is made too often, you receive a ProvisionedThroughputExceededException. For more information about throughput limits, see GetRecords.

If the shard is closed, the iterator can't return more data, and GetShardIterator returns null for its ShardIterator. A shard can be closed using SplitShard or MergeShards.

GetShardIterator has a limit of 5 transactions per second per account per open shard.

", + "ListStreams": "

Lists your streams.

The number of streams may be too large to return from a single call to ListStreams. You can limit the number of returned streams using the Limit parameter. If you do not specify a value for the Limit parameter, Amazon Kinesis uses the default limit, which is currently 10.

You can detect if there are more streams available to list by using the HasMoreStreams flag from the returned output. If there are more streams available, you can request more streams by using the name of the last stream returned by the ListStreams request in the ExclusiveStartStreamName parameter in a subsequent request to ListStreams. The group of stream names returned by the subsequent request is then added to the list. You can continue this process until all the stream names have been collected in the list.

ListStreams has a limit of 5 transactions per second per account.

", + "ListTagsForStream": "

Lists the tags for the specified Amazon Kinesis stream.

", + "MergeShards": "

Merges two adjacent shards in a stream and combines them into a single shard to reduce the stream's capacity to ingest and transport data. Two shards are considered adjacent if the union of the hash key ranges for the two shards form a contiguous set with no gaps. For example, if you have two shards, one with a hash key range of 276...381 and the other with a hash key range of 382...454, then you could merge these two shards into a single shard that would have a hash key range of 276...454. After the merge, the single child shard receives data for all hash key values covered by the two parent shards.

MergeShards is called when there is a need to reduce the overall capacity of a stream because of excess capacity that is not being used. You must specify the shard to be merged and the adjacent shard for a stream. For more information about merging shards, see Merge Two Shards in the Amazon Kinesis Developer Guide.

If the stream is in the ACTIVE state, you can call MergeShards. If a stream is in the CREATING, UPDATING, or DELETING state, MergeShards returns a ResourceInUseException. If the specified stream does not exist, MergeShards returns a ResourceNotFoundException.

You can use DescribeStream to check the state of the stream, which is returned in StreamStatus.

MergeShards is an asynchronous operation. Upon receiving a MergeShards request, Amazon Kinesis immediately returns a response and sets the StreamStatus to UPDATING. After the operation is completed, Amazon Kinesis sets the StreamStatus to ACTIVE. Read and write operations continue to work while the stream is in the UPDATING state.

You use DescribeStream to determine the shard IDs that are specified in the MergeShards request.

If you try to operate on too many streams in parallel using CreateStream, DeleteStream, MergeShards or SplitShard, you will receive a LimitExceededException.

MergeShards has limit of 5 transactions per second per account.

", + "PutRecord": "

Puts (writes) a single data record from a producer into an Amazon Kinesis stream. Call PutRecord to send data from the producer into the Amazon Kinesis stream for real-time ingestion and subsequent processing, one record at a time. Each shard can support up to 1000 records written per second, up to a maximum total of 1 MB data written per second.

You must specify the name of the stream that captures, stores, and transports the data; a partition key; and the data blob itself.

The data blob can be any type of data; for example, a segment from a log file, geographic/location data, website clickstream data, and so on.

The partition key is used by Amazon Kinesis to distribute data across shards. Amazon Kinesis segregates the data records that belong to a data stream into multiple shards, using the partition key associated with each data record to determine which shard a given data record belongs to.

Partition keys are Unicode strings, with a maximum length limit of 256 characters for each key. An MD5 hash function is used to map partition keys to 128-bit integer values and to map associated data records to shards using the hash key ranges of the shards. You can override hashing the partition key to determine the shard by explicitly specifying a hash value using the ExplicitHashKey parameter. For more information, see Adding Data to a Stream in the Amazon Kinesis Developer Guide.

PutRecord returns the shard ID of where the data record was placed and the sequence number that was assigned to the data record.

Sequence numbers generally increase over time. To guarantee strictly increasing ordering, use the SequenceNumberForOrdering parameter. For more information, see Adding Data to a Stream in the Amazon Kinesis Developer Guide.

If a PutRecord request cannot be processed because of insufficient provisioned throughput on the shard involved in the request, PutRecord throws ProvisionedThroughputExceededException.

Data records are accessible for only 24 hours from the time that they are added to an Amazon Kinesis stream.

", + "PutRecords": "

Puts (writes) multiple data records from a producer into an Amazon Kinesis stream in a single call (also referred to as a PutRecords request). Use this operation to send data from a data producer into the Amazon Kinesis stream for real-time ingestion and processing. Each shard can support up to 1000 records written per second, up to a maximum total of 1 MB data written per second.

You must specify the name of the stream that captures, stores, and transports the data; and an array of request Records, with each record in the array requiring a partition key and data blob.

The data blob can be any type of data; for example, a segment from a log file, geographic/location data, website clickstream data, and so on.

The partition key is used by Amazon Kinesis as input to a hash function that maps the partition key and associated data to a specific shard. An MD5 hash function is used to map partition keys to 128-bit integer values and to map associated data records to shards. As a result of this hashing mechanism, all data records with the same partition key map to the same shard within the stream. For more information, see Adding Data to a Stream in the Amazon Kinesis Developer Guide.

Each record in the Records array may include an optional parameter, ExplicitHashKey, which overrides the partition key to shard mapping. This parameter allows a data producer to determine explicitly the shard where the record is stored. For more information, see Adding Multiple Records with PutRecords in the Amazon Kinesis Developer Guide.

The PutRecords response includes an array of response Records. Each record in the response array directly correlates with a record in the request array using natural ordering, from the top to the bottom of the request and response. The response Records array always includes the same number of records as the request array.

The response Records array includes both successfully and unsuccessfully processed records. Amazon Kinesis attempts to process all records in each PutRecords request. A single record failure does not stop the processing of subsequent records.

A successfully-processed record includes ShardId and SequenceNumber values. The ShardId parameter identifies the shard in the stream where the record is stored. The SequenceNumber parameter is an identifier assigned to the put record, unique to all records in the stream.

An unsuccessfully-processed record includes ErrorCode and ErrorMessage values. ErrorCode reflects the type of error and can be one of the following values: ProvisionedThroughputExceededException or InternalFailure. ErrorMessage provides more detailed information about the ProvisionedThroughputExceededException exception including the account ID, stream name, and shard ID of the record that was throttled. For more information about partially successful responses, see Adding Multiple Records with PutRecords in the Amazon Kinesis Developer Guide.

Data records are accessible for only 24 hours from the time that they are added to an Amazon Kinesis stream.

", + "RemoveTagsFromStream": "

Deletes tags from the specified Amazon Kinesis stream.

If you specify a tag that does not exist, it is ignored.

", + "SplitShard": "

Splits a shard into two new shards in the stream, to increase the stream's capacity to ingest and transport data. SplitShard is called when there is a need to increase the overall capacity of stream because of an expected increase in the volume of data records being ingested.

You can also use SplitShard when a shard appears to be approaching its maximum utilization, for example, when the set of producers sending data into the specific shard are suddenly sending more than previously anticipated. You can also call SplitShard to increase stream capacity, so that more Amazon Kinesis applications can simultaneously read data from the stream for real-time processing.

You must specify the shard to be split and the new hash key, which is the position in the shard where the shard gets split in two. In many cases, the new hash key might simply be the average of the beginning and ending hash key, but it can be any hash key value in the range being mapped into the shard. For more information about splitting shards, see Split a Shard in the Amazon Kinesis Developer Guide.

You can use DescribeStream to determine the shard ID and hash key values for the ShardToSplit and NewStartingHashKey parameters that are specified in the SplitShard request.

SplitShard is an asynchronous operation. Upon receiving a SplitShard request, Amazon Kinesis immediately returns a response and sets the stream status to UPDATING. After the operation is completed, Amazon Kinesis sets the stream status to ACTIVE. Read and write operations continue to work while the stream is in the UPDATING state.

You can use DescribeStream to check the status of the stream, which is returned in StreamStatus. If the stream is in the ACTIVE state, you can call SplitShard. If a stream is in CREATING or UPDATING or DELETING states, DescribeStream returns a ResourceInUseException.

If the specified stream does not exist, DescribeStream returns a ResourceNotFoundException. If you try to create more shards than are authorized for your account, you receive a LimitExceededException.

For the default shard limit for an AWS account, see Amazon Kinesis Limits. If you need to increase this limit, contact AWS Support

If you try to operate on too many streams in parallel using CreateStream, DeleteStream, MergeShards or SplitShard, you receive a LimitExceededException.

SplitShard has limit of 5 transactions per second per account.

" + }, + "service": "Amazon Kinesis Service API Reference

Amazon Kinesis is a managed service that scales elastically for real time processing of streaming big data.

", + "shapes": { + "AddTagsToStreamInput": { + "base": "

Represents the input for AddTagsToStream.

", + "refs": { + } + }, + "BooleanObject": { + "base": null, + "refs": { + "ListStreamsOutput$HasMoreStreams": "

If set to true, there are more streams available to list.

", + "ListTagsForStreamOutput$HasMoreTags": "

If set to true, more tags are available. To request additional tags, set ExclusiveStartTagKey to the key of the last tag returned.

", + "StreamDescription$HasMoreShards": "

If set to true, more shards in the stream are available to describe.

" + } + }, + "CreateStreamInput": { + "base": "

Represents the input for CreateStream.

", + "refs": { + } + }, + "Data": { + "base": null, + "refs": { + "PutRecordInput$Data": "

The data blob to put into the record, which is base64-encoded when the blob is serialized. The maximum size of the data blob (the payload before base64-encoding) is 50 kilobytes (KB)

", + "PutRecordsRequestEntry$Data": "

The data blob to put into the record, which is base64-encoded when the blob is serialized. The maximum size of the data blob (the payload before base64-encoding) is 50 kilobytes (KB)

", + "Record$Data": "

The data blob. The data in the blob is both opaque and immutable to the Amazon Kinesis service, which does not inspect, interpret, or change the data in the blob in any way. The maximum size of the data blob (the payload before base64-encoding) is 50 kilobytes (KB)

" + } + }, + "DeleteStreamInput": { + "base": "

Represents the input for DeleteStream.

", + "refs": { + } + }, + "DescribeStreamInput": { + "base": "

Represents the input for DescribeStream.

", + "refs": { + } + }, + "DescribeStreamInputLimit": { + "base": null, + "refs": { + "DescribeStreamInput$Limit": "

The maximum number of shards to return.

" + } + }, + "DescribeStreamOutput": { + "base": "

Represents the output for DescribeStream.

", + "refs": { + } + }, + "ErrorCode": { + "base": null, + "refs": { + "PutRecordsResultEntry$ErrorCode": "

The error code for an individual record result. ErrorCodes can be either ProvisionedThroughputExceededException or InternalFailure.

" + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "ExpiredIteratorException$message": "

A message that provides information about the error.

", + "InvalidArgumentException$message": "

A message that provides information about the error.

", + "LimitExceededException$message": "

A message that provides information about the error.

", + "ProvisionedThroughputExceededException$message": "

A message that provides information about the error.

", + "PutRecordsResultEntry$ErrorMessage": "

The error message for an individual record result. An ErrorCode value of ProvisionedThroughputExceededException has an error message that includes the account ID, stream name, and shard ID. An ErrorCode value of InternalFailure has the error message \"Internal Service Failure\".

", + "ResourceInUseException$message": "

A message that provides information about the error.

", + "ResourceNotFoundException$message": "

A message that provides information about the error.

" + } + }, + "ExpiredIteratorException": { + "base": "

The provided iterator exceeds the maximum age allowed.

", + "refs": { + } + }, + "GetRecordsInput": { + "base": "

Represents the input for GetRecords.

", + "refs": { + } + }, + "GetRecordsInputLimit": { + "base": null, + "refs": { + "GetRecordsInput$Limit": "

The maximum number of records to return. Specify a value of up to 10,000. If you specify a value that is greater than 10,000, GetRecords throws InvalidArgumentException.

" + } + }, + "GetRecordsOutput": { + "base": "

Represents the output for GetRecords.

", + "refs": { + } + }, + "GetShardIteratorInput": { + "base": "

Represents the input for GetShardIterator.

", + "refs": { + } + }, + "GetShardIteratorOutput": { + "base": "

Represents the output for GetShardIterator.

", + "refs": { + } + }, + "HashKey": { + "base": null, + "refs": { + "HashKeyRange$StartingHashKey": "

The starting hash key of the hash key range.

", + "HashKeyRange$EndingHashKey": "

The ending hash key of the hash key range.

", + "PutRecordInput$ExplicitHashKey": "

The hash value used to explicitly determine the shard the data record is assigned to by overriding the partition key hash.

", + "PutRecordsRequestEntry$ExplicitHashKey": "

The hash value used to determine explicitly the shard that the data record is assigned to by overriding the partition key hash.

", + "SplitShardInput$NewStartingHashKey": "

A hash key value for the starting hash key of one of the child shards created by the split. The hash key range for a given shard constitutes a set of ordered contiguous positive integers. The value for NewStartingHashKey must be in the range of hash keys being mapped into the shard. The NewStartingHashKey hash key value and all higher hash key values in hash key range are distributed to one of the child shards. All the lower hash key values in the range are distributed to the other child shard.

" + } + }, + "HashKeyRange": { + "base": "

The range of possible hash key values for the shard, which is a set of ordered contiguous positive integers.

", + "refs": { + "Shard$HashKeyRange": "

The range of possible hash key values for the shard, which is a set of ordered contiguous positive integers.

" + } + }, + "InvalidArgumentException": { + "base": "

A specified parameter exceeds its restrictions, is not supported, or can't be used. For more information, see the returned message.

", + "refs": { + } + }, + "LimitExceededException": { + "base": "

The requested resource exceeds the maximum number allowed, or the number of concurrent stream requests exceeds the maximum number allowed (5).

", + "refs": { + } + }, + "ListStreamsInput": { + "base": "

Represents the input for ListStreams.

", + "refs": { + } + }, + "ListStreamsInputLimit": { + "base": null, + "refs": { + "ListStreamsInput$Limit": "

The maximum number of streams to list.

" + } + }, + "ListStreamsOutput": { + "base": "

Represents the output for ListStreams.

", + "refs": { + } + }, + "ListTagsForStreamInput": { + "base": "

Represents the input for ListTagsForStream.

", + "refs": { + } + }, + "ListTagsForStreamInputLimit": { + "base": null, + "refs": { + "ListTagsForStreamInput$Limit": "

The number of tags to return. If this number is less than the total number of tags associated with the stream, HasMoreTags is set to true. To list additional tags, set ExclusiveStartTagKey to the last key in the response.

" + } + }, + "ListTagsForStreamOutput": { + "base": "

Represents the output for ListTagsForStream.

", + "refs": { + } + }, + "MergeShardsInput": { + "base": "

Represents the input for MergeShards.

", + "refs": { + } + }, + "MillisBehindLatest": { + "base": null, + "refs": { + "GetRecordsOutput$MillisBehindLatest": "

The number of milliseconds the GetRecords response is from the tip of the stream, indicating how far behind current time the consumer is. A value of zero indicates record processing is caught up, and there are no new records to process at this moment.

" + } + }, + "PartitionKey": { + "base": null, + "refs": { + "PutRecordInput$PartitionKey": "

Determines which shard in the stream the data record is assigned to. Partition keys are Unicode strings with a maximum length limit of 256 characters for each key. Amazon Kinesis uses the partition key as input to a hash function that maps the partition key and associated data to a specific shard. Specifically, an MD5 hash function is used to map partition keys to 128-bit integer values and to map associated data records to shards. As a result of this hashing mechanism, all data records with the same partition key will map to the same shard within the stream.

", + "PutRecordsRequestEntry$PartitionKey": "

Determines which shard in the stream the data record is assigned to. Partition keys are Unicode strings with a maximum length limit of 256 characters for each key. Amazon Kinesis uses the partition key as input to a hash function that maps the partition key and associated data to a specific shard. Specifically, an MD5 hash function is used to map partition keys to 128-bit integer values and to map associated data records to shards. As a result of this hashing mechanism, all data records with the same partition key map to the same shard within the stream.

", + "Record$PartitionKey": "

Identifies which shard in the stream the data record is assigned to.

" + } + }, + "PositiveIntegerObject": { + "base": null, + "refs": { + "CreateStreamInput$ShardCount": "

The number of shards that the stream will use. The throughput of the stream is a function of the number of shards; more shards are required for greater provisioned throughput.

DefaultShardLimit;

", + "PutRecordsOutput$FailedRecordCount": "

The number of unsuccessfully processed records in a PutRecords request.

" + } + }, + "ProvisionedThroughputExceededException": { + "base": "

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.

", + "refs": { + } + }, + "PutRecordInput": { + "base": "

Represents the input for PutRecord.

", + "refs": { + } + }, + "PutRecordOutput": { + "base": "

Represents the output for PutRecord.

", + "refs": { + } + }, + "PutRecordsInput": { + "base": "

A PutRecords request.

", + "refs": { + } + }, + "PutRecordsOutput": { + "base": "

PutRecords results.

", + "refs": { + } + }, + "PutRecordsRequestEntry": { + "base": "

Represents the output for PutRecords.

", + "refs": { + "PutRecordsRequestEntryList$member": null + } + }, + "PutRecordsRequestEntryList": { + "base": null, + "refs": { + "PutRecordsInput$Records": "

The records associated with the request.

" + } + }, + "PutRecordsResultEntry": { + "base": "

Represents the result of an individual record from a PutRecords request. A record that is successfully added to your Amazon Kinesis stream includes SequenceNumber and ShardId in the result. A record that fails to be added to your Amazon Kinesis stream includes ErrorCode and ErrorMessage in the result.

", + "refs": { + "PutRecordsResultEntryList$member": null + } + }, + "PutRecordsResultEntryList": { + "base": null, + "refs": { + "PutRecordsOutput$Records": "

An array of successfully and unsuccessfully processed record results, correlated with the request by natural ordering. A record that is successfully added to your Amazon Kinesis stream includes SequenceNumber and ShardId in the result. A record that fails to be added to your Amazon Kinesis stream includes ErrorCode and ErrorMessage in the result.

" + } + }, + "Record": { + "base": "

The unit of data of the Amazon Kinesis stream, which is composed of a sequence number, a partition key, and a data blob.

", + "refs": { + "RecordList$member": null + } + }, + "RecordList": { + "base": null, + "refs": { + "GetRecordsOutput$Records": "

The data records retrieved from the shard.

" + } + }, + "RemoveTagsFromStreamInput": { + "base": "

Represents the input for RemoveTagsFromStream.

", + "refs": { + } + }, + "ResourceInUseException": { + "base": "

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.

", + "refs": { + } + }, + "ResourceNotFoundException": { + "base": "

The requested resource could not be found. It might not be specified correctly, or it might not be in the ACTIVE state.

", + "refs": { + } + }, + "SequenceNumber": { + "base": null, + "refs": { + "GetShardIteratorInput$StartingSequenceNumber": "

The sequence number of the data record in the shard from which to start reading from.

", + "PutRecordInput$SequenceNumberForOrdering": "

Guarantees strictly increasing sequence numbers, for puts from the same client and to the same partition key. Usage: set the SequenceNumberForOrdering of record n to the sequence number of record n-1 (as returned in the result when putting record n-1). If this parameter is not set, records will be coarsely ordered based on arrival time.

", + "PutRecordOutput$SequenceNumber": "

The sequence number identifier that was assigned to the put data record. The sequence number for the record is unique across all records in the stream. A sequence number is the identifier associated with every record put into the stream.

", + "PutRecordsResultEntry$SequenceNumber": "

The sequence number for an individual record result.

", + "Record$SequenceNumber": "

The unique identifier for the record in the Amazon Kinesis stream.

", + "SequenceNumberRange$StartingSequenceNumber": "

The starting sequence number for the range.

", + "SequenceNumberRange$EndingSequenceNumber": "

The ending sequence number for the range. Shards that are in the OPEN state have an ending sequence number of null.

" + } + }, + "SequenceNumberRange": { + "base": "

The range of possible sequence numbers for the shard.

", + "refs": { + "Shard$SequenceNumberRange": "

The range of possible sequence numbers for the shard.

" + } + }, + "Shard": { + "base": "

A uniquely identified group of data records in an Amazon Kinesis stream.

", + "refs": { + "ShardList$member": null + } + }, + "ShardId": { + "base": null, + "refs": { + "DescribeStreamInput$ExclusiveStartShardId": "

The shard ID of the shard to start with.

", + "GetShardIteratorInput$ShardId": "

The shard ID of the shard to get the iterator for.

", + "MergeShardsInput$ShardToMerge": "

The shard ID of the shard to combine with the adjacent shard for the merge.

", + "MergeShardsInput$AdjacentShardToMerge": "

The shard ID of the adjacent shard for the merge.

", + "PutRecordOutput$ShardId": "

The shard ID of the shard where the data record was placed.

", + "PutRecordsResultEntry$ShardId": "

The shard ID for an individual record result.

", + "Shard$ShardId": "

The unique identifier of the shard within the Amazon Kinesis stream.

", + "Shard$ParentShardId": "

The shard Id of the shard's parent.

", + "Shard$AdjacentParentShardId": "

The shard Id of the shard adjacent to the shard's parent.

", + "SplitShardInput$ShardToSplit": "

The shard ID of the shard to split.

" + } + }, + "ShardIterator": { + "base": null, + "refs": { + "GetRecordsInput$ShardIterator": "

The position in the shard from which you want to start sequentially reading data records. A shard iterator specifies this position using the sequence number of a data record in the shard.

", + "GetRecordsOutput$NextShardIterator": "

The next position in the shard from which to start sequentially reading data records. If set to null, the shard has been closed and the requested iterator will not return any more data.

", + "GetShardIteratorOutput$ShardIterator": "

The position in the shard from which to start reading data records sequentially. A shard iterator specifies this position using the sequence number of a data record in a shard.

" + } + }, + "ShardIteratorType": { + "base": null, + "refs": { + "GetShardIteratorInput$ShardIteratorType": "

Determines how the shard iterator is used to start reading data records from the shard.

The following are the valid shard iterator types:

  • AT_SEQUENCE_NUMBER - Start reading exactly from the position denoted by a specific sequence number.
  • AFTER_SEQUENCE_NUMBER - Start reading right after the position denoted by a specific sequence number.
  • TRIM_HORIZON - Start reading at the last untrimmed record in the shard in the system, which is the oldest data record in the shard.
  • LATEST - Start reading just after the most recent record in the shard, so that you always read the most recent data in the shard.
" + } + }, + "ShardList": { + "base": null, + "refs": { + "StreamDescription$Shards": "

The shards that comprise the stream.

" + } + }, + "SplitShardInput": { + "base": "

Represents the input for SplitShard.

", + "refs": { + } + }, + "StreamARN": { + "base": null, + "refs": { + "StreamDescription$StreamARN": "

The Amazon Resource Name (ARN) for the stream being described.

" + } + }, + "StreamDescription": { + "base": "

Represents the output for DescribeStream.

", + "refs": { + "DescribeStreamOutput$StreamDescription": "

The current status of the stream, the stream ARN, an array of shard objects that comprise the stream, and states whether there are more shards available.

" + } + }, + "StreamName": { + "base": null, + "refs": { + "AddTagsToStreamInput$StreamName": "

The name of the stream.

", + "CreateStreamInput$StreamName": "

A name to identify the stream. The stream name is scoped to the AWS account used by the application that creates the stream. It is also scoped by region. That is, two streams in two different AWS accounts can have the same name, and two streams in the same AWS account, but in two different regions, can have the same name.

", + "DeleteStreamInput$StreamName": "

The name of the stream to delete.

", + "DescribeStreamInput$StreamName": "

The name of the stream to describe.

", + "GetShardIteratorInput$StreamName": "

The name of the stream.

", + "ListStreamsInput$ExclusiveStartStreamName": "

The name of the stream to start the list with.

", + "ListTagsForStreamInput$StreamName": "

The name of the stream.

", + "MergeShardsInput$StreamName": "

The name of the stream for the merge.

", + "PutRecordInput$StreamName": "

The name of the stream to put the data record into.

", + "PutRecordsInput$StreamName": "

The stream name associated with the request.

", + "RemoveTagsFromStreamInput$StreamName": "

The name of the stream.

", + "SplitShardInput$StreamName": "

The name of the stream for the shard split.

", + "StreamDescription$StreamName": "

The name of the stream being described.

", + "StreamNameList$member": null + } + }, + "StreamNameList": { + "base": null, + "refs": { + "ListStreamsOutput$StreamNames": "

The names of the streams that are associated with the AWS account making the ListStreams request.

" + } + }, + "StreamStatus": { + "base": null, + "refs": { + "StreamDescription$StreamStatus": "

The current status of the stream being described.

The stream status is one of the following states:

  • CREATING - The stream is being created. Amazon Kinesis immediately returns and sets StreamStatus to CREATING.
  • DELETING - The stream is being deleted. The specified stream is in the DELETING state until Amazon Kinesis completes the deletion.
  • ACTIVE - The stream exists and is ready for read and write operations or deletion. You should perform read and write operations only on an ACTIVE stream.
  • UPDATING - Shards in the stream are being merged or split. Read and write operations continue to work while the stream is in the UPDATING state.
" + } + }, + "Tag": { + "base": "

Metadata assigned to the stream, consisting of a key-value pair.

", + "refs": { + "TagList$member": null + } + }, + "TagKey": { + "base": null, + "refs": { + "ListTagsForStreamInput$ExclusiveStartTagKey": "

The key to use as the starting point for the list of tags. If this parameter is set, ListTagsForStream gets all tags that occur after ExclusiveStartTagKey.

", + "Tag$Key": "

A unique identifier for the tag. Maximum length: 128 characters. Valid characters: Unicode letters, digits, white space, _ . / = + - % @

", + "TagKeyList$member": null, + "TagMap$key": null + } + }, + "TagKeyList": { + "base": null, + "refs": { + "RemoveTagsFromStreamInput$TagKeys": "

A list of tag keys. Each corresponding tag is removed from the stream.

" + } + }, + "TagList": { + "base": null, + "refs": { + "ListTagsForStreamOutput$Tags": "

A list of tags associated with StreamName, starting with the first tag after ExclusiveStartTagKey and up to the specified Limit.

" + } + }, + "TagMap": { + "base": null, + "refs": { + "AddTagsToStreamInput$Tags": "

The set of key-value pairs to use to create the tags.

" + } + }, + "TagValue": { + "base": null, + "refs": { + "Tag$Value": "

An optional string, typically used to describe or define the tag. Maximum length: 256 characters. Valid characters: Unicode letters, digits, white space, _ . / = + - % @

", + "TagMap$value": null + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/kinesis/2013-12-02/paginators-1.json b/lib/aws-sdk/Aws/data/kinesis/2013-12-02/paginators-1.json new file mode 100644 index 0000000..007f563 --- /dev/null +++ b/lib/aws-sdk/Aws/data/kinesis/2013-12-02/paginators-1.json @@ -0,0 +1,18 @@ +{ + "pagination": { + "DescribeStream": { + "input_token": "ExclusiveStartShardId", + "limit_key": "Limit", + "more_results": "StreamDescription.HasMoreShards", + "output_token": "StreamDescription.Shards[-1].ShardId", + "result_key": "StreamDescription.Shards" + }, + "ListStreams": { + "input_token": "ExclusiveStartStreamName", + "limit_key": "Limit", + "more_results": "HasMoreStreams", + "output_token": "StreamNames[-1]", + "result_key": "StreamNames" + } + } +} diff --git a/lib/aws-sdk/Aws/data/kinesis/2013-12-02/waiters-2.json b/lib/aws-sdk/Aws/data/kinesis/2013-12-02/waiters-2.json new file mode 100644 index 0000000..8e3162f --- /dev/null +++ b/lib/aws-sdk/Aws/data/kinesis/2013-12-02/waiters-2.json @@ -0,0 +1,18 @@ +{ + "version": 2, + "waiters": { + "StreamExists": { + "delay": 10, + "operation": "DescribeStream", + "maxAttempts": 18, + "acceptors": [ + { + "expected": "ACTIVE", + "matcher": "path", + "state": "success", + "argument": "StreamDescription.StreamStatus" + } + ] + } + } +} diff --git a/lib/aws-sdk/Aws/data/kms/2014-11-01/api-2.json b/lib/aws-sdk/Aws/data/kms/2014-11-01/api-2.json new file mode 100644 index 0000000..deb77d3 --- /dev/null +++ b/lib/aws-sdk/Aws/data/kms/2014-11-01/api-2.json @@ -0,0 +1,2120 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2014-11-01", + "endpointPrefix":"kms", + "jsonVersion":"1.1", + "serviceAbbreviation":"KMS", + "serviceFullName":"AWS Key Management Service", + "signatureVersion":"v4", + "targetPrefix":"TrentService", + "protocol":"json" + }, + "operations":{ + "CreateAlias":{ + "name":"CreateAlias", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateAliasRequest"}, + "errors":[ + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"AlreadyExistsException", + "error":{ + "code":"AlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidAliasNameException", + "error":{ + "code":"InvalidAliasName", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateGrant":{ + "name":"CreateGrant", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateGrantRequest"}, + "output":{"shape":"CreateGrantResponse"}, + "errors":[ + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DisabledException", + "error":{ + "code":"Disabled", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"InvalidArnException", + "error":{ + "code":"InvalidArn", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"InvalidGrantTokenException", + "error":{ + "code":"InvalidGrantToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateKey":{ + "name":"CreateKey", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateKeyRequest"}, + "output":{"shape":"CreateKeyResponse"}, + "errors":[ + { + "shape":"MalformedPolicyDocumentException", + "error":{ + "code":"MalformedPolicyDocument", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"InvalidArnException", + "error":{ + "code":"InvalidArn", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"UnsupportedOperationException", + "error":{ + "code":"UnsupportedOperation", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "Decrypt":{ + "name":"Decrypt", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DecryptRequest"}, + "output":{"shape":"DecryptResponse"}, + "errors":[ + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DisabledException", + "error":{ + "code":"Disabled", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidCiphertextException", + "error":{ + "code":"InvalidCiphertext", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"KeyUnavailableException", + "error":{ + "code":"KeyUnavailable", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"InvalidGrantTokenException", + "error":{ + "code":"InvalidGrantToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DeleteAlias":{ + "name":"DeleteAlias", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteAliasRequest"}, + "errors":[ + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DescribeKey":{ + "name":"DescribeKey", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeKeyRequest"}, + "output":{"shape":"DescribeKeyResponse"}, + "errors":[ + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidArnException", + "error":{ + "code":"InvalidArn", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DisableKey":{ + "name":"DisableKey", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisableKeyRequest"}, + "errors":[ + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidArnException", + "error":{ + "code":"InvalidArn", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "DisableKeyRotation":{ + "name":"DisableKeyRotation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisableKeyRotationRequest"}, + "errors":[ + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DisabledException", + "error":{ + "code":"Disabled", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidArnException", + "error":{ + "code":"InvalidArn", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "EnableKey":{ + "name":"EnableKey", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableKeyRequest"}, + "errors":[ + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidArnException", + "error":{ + "code":"InvalidArn", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "EnableKeyRotation":{ + "name":"EnableKeyRotation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableKeyRotationRequest"}, + "errors":[ + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DisabledException", + "error":{ + "code":"Disabled", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidArnException", + "error":{ + "code":"InvalidArn", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "Encrypt":{ + "name":"Encrypt", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EncryptRequest"}, + "output":{"shape":"EncryptResponse"}, + "errors":[ + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DisabledException", + "error":{ + "code":"Disabled", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"KeyUnavailableException", + "error":{ + "code":"KeyUnavailable", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"InvalidKeyUsageException", + "error":{ + "code":"InvalidKeyUsage", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidGrantTokenException", + "error":{ + "code":"InvalidGrantToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "GenerateDataKey":{ + "name":"GenerateDataKey", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GenerateDataKeyRequest"}, + "output":{"shape":"GenerateDataKeyResponse"}, + "errors":[ + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DisabledException", + "error":{ + "code":"Disabled", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"KeyUnavailableException", + "error":{ + "code":"KeyUnavailable", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"InvalidKeyUsageException", + "error":{ + "code":"InvalidKeyUsage", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidGrantTokenException", + "error":{ + "code":"InvalidGrantToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "GenerateDataKeyWithoutPlaintext":{ + "name":"GenerateDataKeyWithoutPlaintext", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GenerateDataKeyWithoutPlaintextRequest"}, + "output":{"shape":"GenerateDataKeyWithoutPlaintextResponse"}, + "errors":[ + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DisabledException", + "error":{ + "code":"Disabled", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"KeyUnavailableException", + "error":{ + "code":"KeyUnavailable", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"InvalidKeyUsageException", + "error":{ + "code":"InvalidKeyUsage", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidGrantTokenException", + "error":{ + "code":"InvalidGrantToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "GenerateRandom":{ + "name":"GenerateRandom", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GenerateRandomRequest"}, + "output":{"shape":"GenerateRandomResponse"}, + "errors":[ + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "GetKeyPolicy":{ + "name":"GetKeyPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetKeyPolicyRequest"}, + "output":{"shape":"GetKeyPolicyResponse"}, + "errors":[ + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidArnException", + "error":{ + "code":"InvalidArn", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "GetKeyRotationStatus":{ + "name":"GetKeyRotationStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetKeyRotationStatusRequest"}, + "output":{"shape":"GetKeyRotationStatusResponse"}, + "errors":[ + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidArnException", + "error":{ + "code":"InvalidArn", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListAliases":{ + "name":"ListAliases", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListAliasesRequest"}, + "output":{"shape":"ListAliasesResponse"}, + "errors":[ + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"InvalidMarkerException", + "error":{ + "code":"InvalidMarker", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListGrants":{ + "name":"ListGrants", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListGrantsRequest"}, + "output":{"shape":"ListGrantsResponse"}, + "errors":[ + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"InvalidMarkerException", + "error":{ + "code":"InvalidMarker", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidArnException", + "error":{ + "code":"InvalidArn", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListKeyPolicies":{ + "name":"ListKeyPolicies", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListKeyPoliciesRequest"}, + "output":{"shape":"ListKeyPoliciesResponse"}, + "errors":[ + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidArnException", + "error":{ + "code":"InvalidArn", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "ListKeys":{ + "name":"ListKeys", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListKeysRequest"}, + "output":{"shape":"ListKeysResponse"}, + "errors":[ + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "PutKeyPolicy":{ + "name":"PutKeyPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutKeyPolicyRequest"}, + "errors":[ + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidArnException", + "error":{ + "code":"InvalidArn", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"MalformedPolicyDocumentException", + "error":{ + "code":"MalformedPolicyDocument", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"InvalidArnException", + "error":{ + "code":"InvalidArn", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"UnsupportedOperationException", + "error":{ + "code":"UnsupportedOperation", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "ReEncrypt":{ + "name":"ReEncrypt", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ReEncryptRequest"}, + "output":{"shape":"ReEncryptResponse"}, + "errors":[ + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DisabledException", + "error":{ + "code":"Disabled", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidCiphertextException", + "error":{ + "code":"InvalidCiphertext", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"KeyUnavailableException", + "error":{ + "code":"KeyUnavailable", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"InvalidKeyUsageException", + "error":{ + "code":"InvalidKeyUsage", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidGrantTokenException", + "error":{ + "code":"InvalidGrantToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "RetireGrant":{ + "name":"RetireGrant", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RetireGrantRequest"}, + "errors":[ + { + "shape":"InvalidGrantTokenException", + "error":{ + "code":"InvalidGrantToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "RevokeGrant":{ + "name":"RevokeGrant", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RevokeGrantRequest"}, + "errors":[ + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"InvalidArnException", + "error":{ + "code":"InvalidArn", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "UpdateAlias":{ + "name":"UpdateAlias", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateAliasRequest"}, + "errors":[ + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + } + ] + }, + "UpdateKeyDescription":{ + "name":"UpdateKeyDescription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateKeyDescriptionRequest"}, + "errors":[ + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidArnException", + "error":{ + "code":"InvalidArn", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DependencyTimeoutException", + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + { + "shape":"KMSInternalException", + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + } + ] + } + }, + "shapes":{ + "AWSAccountIdType":{"type":"string"}, + "AliasList":{ + "type":"list", + "member":{"shape":"AliasListEntry"} + }, + "AliasListEntry":{ + "type":"structure", + "members":{ + "AliasName":{"shape":"AliasNameType"}, + "AliasArn":{"shape":"ArnType"}, + "TargetKeyId":{"shape":"KeyIdType"} + } + }, + "AliasNameType":{ + "type":"string", + "min":1, + "max":256, + "pattern":"^[a-zA-Z0-9:/_-]+$" + }, + "AlreadyExistsException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "error":{ + "code":"AlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ArnType":{ + "type":"string", + "min":20, + "max":2048 + }, + "BooleanType":{"type":"boolean"}, + "CiphertextType":{ + "type":"blob", + "min":1, + "max":6144 + }, + "CreateAliasRequest":{ + "type":"structure", + "required":[ + "AliasName", + "TargetKeyId" + ], + "members":{ + "AliasName":{"shape":"AliasNameType"}, + "TargetKeyId":{"shape":"KeyIdType"} + } + }, + "CreateGrantRequest":{ + "type":"structure", + "required":[ + "KeyId", + "GranteePrincipal" + ], + "members":{ + "KeyId":{"shape":"KeyIdType"}, + "GranteePrincipal":{"shape":"PrincipalIdType"}, + "RetiringPrincipal":{"shape":"PrincipalIdType"}, + "Operations":{"shape":"GrantOperationList"}, + "Constraints":{"shape":"GrantConstraints"}, + "GrantTokens":{"shape":"GrantTokenList"} + } + }, + "CreateGrantResponse":{ + "type":"structure", + "members":{ + "GrantToken":{"shape":"GrantTokenType"}, + "GrantId":{"shape":"GrantIdType"} + } + }, + "CreateKeyRequest":{ + "type":"structure", + "members":{ + "Policy":{"shape":"PolicyType"}, + "Description":{"shape":"DescriptionType"}, + "KeyUsage":{"shape":"KeyUsageType"} + } + }, + "CreateKeyResponse":{ + "type":"structure", + "members":{ + "KeyMetadata":{"shape":"KeyMetadata"} + } + }, + "DataKeySpec":{ + "type":"string", + "enum":[ + "AES_256", + "AES_128" + ] + }, + "DateType":{"type":"timestamp"}, + "DecryptRequest":{ + "type":"structure", + "required":["CiphertextBlob"], + "members":{ + "CiphertextBlob":{"shape":"CiphertextType"}, + "EncryptionContext":{"shape":"EncryptionContextType"}, + "GrantTokens":{"shape":"GrantTokenList"} + } + }, + "DecryptResponse":{ + "type":"structure", + "members":{ + "KeyId":{"shape":"KeyIdType"}, + "Plaintext":{"shape":"PlaintextType"} + } + }, + "DeleteAliasRequest":{ + "type":"structure", + "required":["AliasName"], + "members":{ + "AliasName":{"shape":"AliasNameType"} + } + }, + "DependencyTimeoutException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "error":{ + "code":"DependencyTimeout", + "httpStatusCode":503 + }, + "exception":true, + "fault":true + }, + "DescribeKeyRequest":{ + "type":"structure", + "required":["KeyId"], + "members":{ + "KeyId":{"shape":"KeyIdType"} + } + }, + "DescribeKeyResponse":{ + "type":"structure", + "members":{ + "KeyMetadata":{"shape":"KeyMetadata"} + } + }, + "DescriptionType":{ + "type":"string", + "min":0, + "max":8192 + }, + "DisableKeyRequest":{ + "type":"structure", + "required":["KeyId"], + "members":{ + "KeyId":{"shape":"KeyIdType"} + } + }, + "DisableKeyRotationRequest":{ + "type":"structure", + "required":["KeyId"], + "members":{ + "KeyId":{"shape":"KeyIdType"} + } + }, + "DisabledException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "error":{ + "code":"Disabled", + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "EnableKeyRequest":{ + "type":"structure", + "required":["KeyId"], + "members":{ + "KeyId":{"shape":"KeyIdType"} + } + }, + "EnableKeyRotationRequest":{ + "type":"structure", + "required":["KeyId"], + "members":{ + "KeyId":{"shape":"KeyIdType"} + } + }, + "EncryptRequest":{ + "type":"structure", + "required":[ + "KeyId", + "Plaintext" + ], + "members":{ + "KeyId":{"shape":"KeyIdType"}, + "Plaintext":{"shape":"PlaintextType"}, + "EncryptionContext":{"shape":"EncryptionContextType"}, + "GrantTokens":{"shape":"GrantTokenList"} + } + }, + "EncryptResponse":{ + "type":"structure", + "members":{ + "CiphertextBlob":{"shape":"CiphertextType"}, + "KeyId":{"shape":"KeyIdType"} + } + }, + "EncryptionContextKey":{"type":"string"}, + "EncryptionContextType":{ + "type":"map", + "key":{"shape":"EncryptionContextKey"}, + "value":{"shape":"EncryptionContextValue"} + }, + "EncryptionContextValue":{"type":"string"}, + "ErrorMessageType":{"type":"string"}, + "GenerateDataKeyRequest":{ + "type":"structure", + "required":["KeyId"], + "members":{ + "KeyId":{"shape":"KeyIdType"}, + "EncryptionContext":{"shape":"EncryptionContextType"}, + "NumberOfBytes":{"shape":"NumberOfBytesType"}, + "KeySpec":{"shape":"DataKeySpec"}, + "GrantTokens":{"shape":"GrantTokenList"} + } + }, + "GenerateDataKeyResponse":{ + "type":"structure", + "members":{ + "CiphertextBlob":{"shape":"CiphertextType"}, + "Plaintext":{"shape":"PlaintextType"}, + "KeyId":{"shape":"KeyIdType"} + } + }, + "GenerateDataKeyWithoutPlaintextRequest":{ + "type":"structure", + "required":["KeyId"], + "members":{ + "KeyId":{"shape":"KeyIdType"}, + "EncryptionContext":{"shape":"EncryptionContextType"}, + "KeySpec":{"shape":"DataKeySpec"}, + "NumberOfBytes":{"shape":"NumberOfBytesType"}, + "GrantTokens":{"shape":"GrantTokenList"} + } + }, + "GenerateDataKeyWithoutPlaintextResponse":{ + "type":"structure", + "members":{ + "CiphertextBlob":{"shape":"CiphertextType"}, + "KeyId":{"shape":"KeyIdType"} + } + }, + "GenerateRandomRequest":{ + "type":"structure", + "members":{ + "NumberOfBytes":{"shape":"NumberOfBytesType"} + } + }, + "GenerateRandomResponse":{ + "type":"structure", + "members":{ + "Plaintext":{"shape":"PlaintextType"} + } + }, + "GetKeyPolicyRequest":{ + "type":"structure", + "required":[ + "KeyId", + "PolicyName" + ], + "members":{ + "KeyId":{"shape":"KeyIdType"}, + "PolicyName":{"shape":"PolicyNameType"} + } + }, + "GetKeyPolicyResponse":{ + "type":"structure", + "members":{ + "Policy":{"shape":"PolicyType"} + } + }, + "GetKeyRotationStatusRequest":{ + "type":"structure", + "required":["KeyId"], + "members":{ + "KeyId":{"shape":"KeyIdType"} + } + }, + "GetKeyRotationStatusResponse":{ + "type":"structure", + "members":{ + "KeyRotationEnabled":{"shape":"BooleanType"} + } + }, + "GrantConstraints":{ + "type":"structure", + "members":{ + "EncryptionContextSubset":{"shape":"EncryptionContextType"}, + "EncryptionContextEquals":{"shape":"EncryptionContextType"} + } + }, + "GrantIdType":{ + "type":"string", + "min":1, + "max":128 + }, + "GrantList":{ + "type":"list", + "member":{"shape":"GrantListEntry"} + }, + "GrantListEntry":{ + "type":"structure", + "members":{ + "GrantId":{"shape":"GrantIdType"}, + "GranteePrincipal":{"shape":"PrincipalIdType"}, + "RetiringPrincipal":{"shape":"PrincipalIdType"}, + "IssuingAccount":{"shape":"PrincipalIdType"}, + "Operations":{"shape":"GrantOperationList"}, + "Constraints":{"shape":"GrantConstraints"} + } + }, + "GrantOperation":{ + "type":"string", + "enum":[ + "Decrypt", + "Encrypt", + "GenerateDataKey", + "GenerateDataKeyWithoutPlaintext", + "ReEncryptFrom", + "ReEncryptTo", + "CreateGrant", + "RetireGrant" + ] + }, + "GrantOperationList":{ + "type":"list", + "member":{"shape":"GrantOperation"} + }, + "GrantTokenList":{ + "type":"list", + "member":{"shape":"GrantTokenType"}, + "min":0, + "max":10 + }, + "GrantTokenType":{ + "type":"string", + "min":1, + "max":8192 + }, + "InvalidAliasNameException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "error":{ + "code":"InvalidAliasName", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidArnException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "error":{ + "code":"InvalidArn", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidCiphertextException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "error":{ + "code":"InvalidCiphertext", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidGrantTokenException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "error":{ + "code":"InvalidGrantToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidKeyUsageException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "error":{ + "code":"InvalidKeyUsage", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidMarkerException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "error":{ + "code":"InvalidMarker", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "KMSInternalException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "error":{ + "code":"KMSInternal", + "httpStatusCode":500 + }, + "exception":true + }, + "KeyIdType":{ + "type":"string", + "min":1, + "max":256 + }, + "KeyList":{ + "type":"list", + "member":{"shape":"KeyListEntry"} + }, + "KeyListEntry":{ + "type":"structure", + "members":{ + "KeyId":{"shape":"KeyIdType"}, + "KeyArn":{"shape":"ArnType"} + } + }, + "KeyMetadata":{ + "type":"structure", + "required":["KeyId"], + "members":{ + "AWSAccountId":{"shape":"AWSAccountIdType"}, + "KeyId":{"shape":"KeyIdType"}, + "Arn":{"shape":"ArnType"}, + "CreationDate":{"shape":"DateType"}, + "Enabled":{"shape":"BooleanType"}, + "Description":{"shape":"DescriptionType"}, + "KeyUsage":{"shape":"KeyUsageType"} + } + }, + "KeyUnavailableException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "error":{ + "code":"KeyUnavailable", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + "KeyUsageType":{ + "type":"string", + "enum":["ENCRYPT_DECRYPT"] + }, + "LimitExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "error":{ + "code":"LimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "LimitType":{ + "type":"integer", + "min":1, + "max":1000 + }, + "ListAliasesRequest":{ + "type":"structure", + "members":{ + "Limit":{"shape":"LimitType"}, + "Marker":{"shape":"MarkerType"} + } + }, + "ListAliasesResponse":{ + "type":"structure", + "members":{ + "Aliases":{"shape":"AliasList"}, + "NextMarker":{"shape":"MarkerType"}, + "Truncated":{"shape":"BooleanType"} + } + }, + "ListGrantsRequest":{ + "type":"structure", + "required":["KeyId"], + "members":{ + "KeyId":{"shape":"KeyIdType"}, + "Limit":{"shape":"LimitType"}, + "Marker":{"shape":"MarkerType"} + } + }, + "ListGrantsResponse":{ + "type":"structure", + "members":{ + "Grants":{"shape":"GrantList"}, + "NextMarker":{"shape":"MarkerType"}, + "Truncated":{"shape":"BooleanType"} + } + }, + "ListKeyPoliciesRequest":{ + "type":"structure", + "required":["KeyId"], + "members":{ + "KeyId":{"shape":"KeyIdType"}, + "Limit":{"shape":"LimitType"}, + "Marker":{"shape":"MarkerType"} + } + }, + "ListKeyPoliciesResponse":{ + "type":"structure", + "members":{ + "PolicyNames":{"shape":"PolicyNameList"}, + "NextMarker":{"shape":"MarkerType"}, + "Truncated":{"shape":"BooleanType"} + } + }, + "ListKeysRequest":{ + "type":"structure", + "members":{ + "Limit":{"shape":"LimitType"}, + "Marker":{"shape":"MarkerType"} + } + }, + "ListKeysResponse":{ + "type":"structure", + "members":{ + "Keys":{"shape":"KeyList"}, + "NextMarker":{"shape":"MarkerType"}, + "Truncated":{"shape":"BooleanType"} + } + }, + "MalformedPolicyDocumentException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "error":{ + "code":"MalformedPolicyDocument", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "MarkerType":{ + "type":"string", + "min":1, + "max":320, + "pattern":"[\\u0020-\\u00FF]*" + }, + "NotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "NumberOfBytesType":{ + "type":"integer", + "min":1, + "max":1024 + }, + "PlaintextType":{ + "type":"blob", + "min":1, + "max":4096, + "sensitive":true + }, + "PolicyNameList":{ + "type":"list", + "member":{"shape":"PolicyNameType"} + }, + "PolicyNameType":{ + "type":"string", + "min":1, + "max":128, + "pattern":"[\\w]+" + }, + "PolicyType":{ + "type":"string", + "min":1, + "max":131072, + "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+" + }, + "PrincipalIdType":{ + "type":"string", + "min":1, + "max":256 + }, + "PutKeyPolicyRequest":{ + "type":"structure", + "required":[ + "KeyId", + "PolicyName", + "Policy" + ], + "members":{ + "KeyId":{"shape":"KeyIdType"}, + "PolicyName":{"shape":"PolicyNameType"}, + "Policy":{"shape":"PolicyType"} + } + }, + "ReEncryptRequest":{ + "type":"structure", + "required":[ + "CiphertextBlob", + "DestinationKeyId" + ], + "members":{ + "CiphertextBlob":{"shape":"CiphertextType"}, + "SourceEncryptionContext":{"shape":"EncryptionContextType"}, + "DestinationKeyId":{"shape":"KeyIdType"}, + "DestinationEncryptionContext":{"shape":"EncryptionContextType"}, + "GrantTokens":{"shape":"GrantTokenList"} + } + }, + "ReEncryptResponse":{ + "type":"structure", + "members":{ + "CiphertextBlob":{"shape":"CiphertextType"}, + "SourceKeyId":{"shape":"KeyIdType"}, + "KeyId":{"shape":"KeyIdType"} + } + }, + "RetireGrantRequest":{ + "type":"structure", + "members":{ + "GrantToken":{"shape":"GrantTokenType"}, + "KeyId":{"shape":"KeyIdType"}, + "GrantId":{"shape":"GrantIdType"} + } + }, + "RevokeGrantRequest":{ + "type":"structure", + "required":[ + "KeyId", + "GrantId" + ], + "members":{ + "KeyId":{"shape":"KeyIdType"}, + "GrantId":{"shape":"GrantIdType"} + } + }, + "UnsupportedOperationException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "error":{ + "code":"UnsupportedOperation", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "UpdateAliasRequest":{ + "type":"structure", + "required":[ + "AliasName", + "TargetKeyId" + ], + "members":{ + "AliasName":{"shape":"AliasNameType"}, + "TargetKeyId":{"shape":"KeyIdType"} + } + }, + "UpdateKeyDescriptionRequest":{ + "type":"structure", + "required":[ + "KeyId", + "Description" + ], + "members":{ + "KeyId":{"shape":"KeyIdType"}, + "Description":{"shape":"DescriptionType"} + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/kms/2014-11-01/docs-2.json b/lib/aws-sdk/Aws/data/kms/2014-11-01/docs-2.json new file mode 100644 index 0000000..591d0ee --- /dev/null +++ b/lib/aws-sdk/Aws/data/kms/2014-11-01/docs-2.json @@ -0,0 +1,628 @@ +{ + "version": "2.0", + "operations": { + "CreateAlias": "

Creates a display name for a customer master key. An alias can be used to identify a key and should be unique. The console enforces a one-to-one mapping between the alias and a key. An alias name can contain only alphanumeric characters, forward slashes (/), underscores (_), and dashes (-). An alias must start with the word \"alias\" followed by a forward slash (alias/). An alias that begins with \"aws\" after the forward slash (alias/aws...) is reserved by Amazon Web Services (AWS).

To associate an alias with a different key, call UpdateAlias.

Note that you cannot create or update an alias that represents a key in another account.

", + "CreateGrant": "

Adds a grant to a key to specify who can access the key and under what conditions. Grants are alternate permission mechanisms to key policies. For more information about grants, see Grants in the developer guide. If a grant is absent, access to the key is evaluated based on IAM policies attached to the user.

  1. ListGrants
  2. RetireGrant
  3. RevokeGrant

", + "CreateKey": "

Creates a customer master key. Customer master keys can be used to encrypt small amounts of data (less than 4K) directly, but they are most commonly used to encrypt or envelope data keys that are then used to encrypt customer data. For more information about data keys, see GenerateDataKey and GenerateDataKeyWithoutPlaintext.

", + "Decrypt": "

Decrypts ciphertext. Ciphertext is plaintext that has been previously encrypted by using any of the following functions:

Note that if a caller has been granted access permissions to all keys (through, for example, IAM user policies that grant Decrypt permission on all resources), then ciphertext encrypted by using keys in other accounts where the key grants access to the caller can be decrypted. To remedy this, we recommend that you do not grant Decrypt access in an IAM user policy. Instead grant Decrypt access only in key policies. If you must grant Decrypt access in an IAM user policy, you should scope the resource to specific keys or to specific trusted accounts.

", + "DeleteAlias": "

Deletes the specified alias. To associate an alias with a different key, call UpdateAlias.

", + "DescribeKey": "

Provides detailed information about the specified customer master key.

", + "DisableKey": "

Marks a key as disabled, thereby preventing its use.

", + "DisableKeyRotation": "Disables rotation of the specified key.", + "EnableKey": "Marks a key as enabled, thereby permitting its use. You can have up to 25 enabled keys at one time.", + "EnableKeyRotation": "Enables rotation of the specified customer master key.", + "Encrypt": "

Encrypts plaintext into ciphertext by using a customer master key. The Encrypt function has two primary use cases:

  • You can encrypt up to 4 KB of arbitrary data such as an RSA key, a database password, or other sensitive customer information.
  • If you are moving encrypted data from one region to another, you can use this API to encrypt in the new region the plaintext data key that was used to encrypt the data in the original region. This provides you with an encrypted copy of the data key that can be decrypted in the new region and used there to decrypt the encrypted data.

Unless you are moving encrypted data from one region to another, you don't use this function to encrypt a generated data key within a region. You retrieve data keys already encrypted by calling the GenerateDataKey or GenerateDataKeyWithoutPlaintext function. Data keys don't need to be encrypted again by calling Encrypt.

If you want to encrypt data locally in your application, you can use the GenerateDataKey function to return a plaintext data encryption key and a copy of the key encrypted under the customer master key (CMK) of your choosing.

", + "GenerateDataKey": "

Generates a data key that you can use in your application to locally encrypt data. This call returns a plaintext version of the key in the Plaintext field of the response object and an encrypted copy of the key in the CiphertextBlob field. The key is encrypted by using the master key specified by the KeyId field. To decrypt the encrypted key, pass it to the Decrypt API.

We recommend that you use the following pattern to locally encrypt data: call the GenerateDataKey API, use the key returned in the Plaintext response field to locally encrypt data, and then erase the plaintext data key from memory. Store the encrypted data key (contained in the CiphertextBlob field) alongside of the locally encrypted data.

You should not call the Encrypt function to re-encrypt your data keys within a region. GenerateDataKey always returns the data key encrypted and tied to the customer master key that will be used to decrypt it. There is no need to decrypt it twice.

If you decide to use the optional EncryptionContext parameter, you must also store the context in full or at least store enough information along with the encrypted data to be able to reconstruct the context when submitting the ciphertext to the Decrypt API. It is a good practice to choose a context that you can reconstruct on the fly to better secure the ciphertext. For more information about how this parameter is used, see Encryption Context.

To decrypt data, pass the encrypted data key to the Decrypt API. Decrypt uses the associated master key to decrypt the encrypted data key and returns it as plaintext. Use the plaintext data key to locally decrypt your data and then erase the key from memory. You must specify the encryption context, if any, that you specified when you generated the key. The encryption context is logged by CloudTrail, and you can use this log to help track the use of particular data.

", + "GenerateDataKeyWithoutPlaintext": "

Returns a data key encrypted by a customer master key without the plaintext copy of that key. Otherwise, this API functions exactly like GenerateDataKey. You can use this API to, for example, satisfy an audit requirement that an encrypted key be made available without exposing the plaintext copy of that key.

", + "GenerateRandom": "

Generates an unpredictable byte string.

", + "GetKeyPolicy": "

Retrieves a policy attached to the specified key.

", + "GetKeyRotationStatus": "Retrieves a Boolean value that indicates whether key rotation is enabled for the specified key.", + "ListAliases": "

Lists all of the key aliases in the account.

", + "ListGrants": "

List the grants for a specified key.

", + "ListKeyPolicies": "

Retrieves a list of policies attached to a key.

", + "ListKeys": "

Lists the customer master keys.

", + "PutKeyPolicy": "

Attaches a policy to the specified key.

", + "ReEncrypt": "

Encrypts data on the server side with a new customer master key without exposing the plaintext of the data on the client side. The data is first decrypted and then encrypted. This operation can also be used to change the encryption context of a ciphertext.

Unlike other actions, ReEncrypt is authorized twice - once as ReEncryptFrom on the source key and once as ReEncryptTo on the destination key. We therefore recommend that you include the \"action\":\"kms:ReEncrypt*\" statement in your key policies to permit re-encryption from or to the key. The statement is included automatically when you authorize use of the key through the console but must be included manually when you set a policy by using the PutKeyPolicy function.

", + "RetireGrant": "

Retires a grant. You can retire a grant when you're done using it to clean up. You should revoke a grant when you intend to actively deny operations that depend on it. The following are permitted to call this API:

  • The account that created the grant
  • The RetiringPrincipal, if present
  • The GranteePrincipal, if RetireGrant is a grantee operation
The grant to retire must be identified by its grant token or by a combination of the key ARN and the grant ID. A grant token is a unique variable-length base64-encoded string. A grant ID is a 64 character unique identifier of a grant. Both are returned by the CreateGrant function.

", + "RevokeGrant": "Revokes a grant. You can revoke a grant to actively deny operations that depend on it.", + "UpdateAlias": "

Updates an alias to associate it with a different key.

An alias name can contain only alphanumeric characters, forward slashes (/), underscores (_), and dashes (-). An alias must start with the word \"alias\" followed by a forward slash (alias/). An alias that begins with \"aws\" after the forward slash (alias/aws...) is reserved by Amazon Web Services (AWS).

An alias is not a property of a key. Therefore, an alias can be associated with and disassociated from an existing key without changing the properties of the key.

Note that you cannot create or update an alias that represents a key in another account.

", + "UpdateKeyDescription": "

Updates the description of a key.

" + }, + "service": "AWS Key Management Service

AWS Key Management Service (KMS) is an encryption and key management web service. This guide describes the KMS actions that you can call programmatically. For general information about KMS, see the AWS Key Management Service Developer Guide

AWS provides SDKs that consist of libraries and sample code for various programming languages and platforms (Java, Ruby, .Net, iOS, Android, etc.). The SDKs provide a convenient way to create programmatic access to KMS and AWS. For example, the SDKs take care of tasks such as signing requests (see below), managing errors, and retrying requests automatically. For more information about the AWS SDKs, including how to download and install them, see Tools for Amazon Web Services.

We recommend that you use the AWS SDKs to make programmatic API calls to KMS.

Clients must support TLS (Transport Layer Security) 1.0. We recommend TLS 1.2. Clients must also support cipher suites with Perfect Forward Secrecy (PFS) such as Ephemeral Diffie-Hellman (DHE) or Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). Most modern systems such as Java 7 and later support these modes.

Signing Requests

Requests must be signed by using an access key ID and a secret access key. We strongly recommend that you do not use your AWS account access key ID and secret key for everyday work with KMS. Instead, use the access key ID and secret access key for an IAM user, or you can use the AWS Security Token Service to generate temporary security credentials that you can use to sign requests.

All KMS operations require Signature Version 4.

Recording API Requests

KMS supports AWS CloudTrail, a service that records AWS API calls and related events for your AWS account and delivers them to an Amazon S3 bucket that you specify. By using the information collected by CloudTrail, you can determine what requests were made to KMS, who made the request, when it was made, and so on. To learn more about CloudTrail, including how to turn it on and find your log files, see the AWS CloudTrail User Guide

Additional Resources

For more information about credentials and request signing, see the following:

Commonly Used APIs

Of the APIs discussed in this guide, the following will prove the most useful for most applications. You will likely perform actions other than these, such as creating keys and assigning policies, by using the console.

", + "shapes": { + "AWSAccountIdType": { + "base": null, + "refs": { + "KeyMetadata$AWSAccountId": "

Account ID number.

" + } + }, + "AliasList": { + "base": null, + "refs": { + "ListAliasesResponse$Aliases": "

A list of key aliases in the user's account.

" + } + }, + "AliasListEntry": { + "base": "Contains information about an alias.", + "refs": { + "AliasList$member": null + } + }, + "AliasNameType": { + "base": null, + "refs": { + "AliasListEntry$AliasName": "

String that contains the alias.

", + "CreateAliasRequest$AliasName": "

String that contains the display name. The name must start with the word \"alias\" followed by a forward slash (alias/). Aliases that begin with \"alias/AWS\" are reserved.

", + "DeleteAliasRequest$AliasName": "

The alias to be deleted. The name must start with the word \"alias\" followed by a forward slash (alias/). Aliases that begin with \"alias/AWS\" are reserved.

", + "UpdateAliasRequest$AliasName": "String that contains the name of the alias to be modifed. The name must start with the word \"alias\" followed by a forward slash (alias/). Aliases that begin with \"alias/AWS\" are reserved." + } + }, + "AlreadyExistsException": { + "base": "

The request was rejected because it attempted to create a resource that already exists.

", + "refs": { + } + }, + "ArnType": { + "base": null, + "refs": { + "AliasListEntry$AliasArn": "

String that contains the key ARN.

", + "KeyListEntry$KeyArn": "

ARN of the key.

", + "KeyMetadata$Arn": "

Key ARN (Amazon Resource Name).

" + } + }, + "BooleanType": { + "base": null, + "refs": { + "GetKeyRotationStatusResponse$KeyRotationEnabled": "A Boolean value that specifies whether key rotation is enabled.", + "KeyMetadata$Enabled": "

Value that specifies whether the key is enabled.

", + "ListAliasesResponse$Truncated": "

A flag that indicates whether there are more items in the list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more aliases in the list.

", + "ListGrantsResponse$Truncated": "

A flag that indicates whether there are more items in the list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more grants in the list.

", + "ListKeyPoliciesResponse$Truncated": "

A flag that indicates whether there are more items in the list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more policies in the list.

", + "ListKeysResponse$Truncated": "

A flag that indicates whether there are more items in the list. If your results were truncated, you can make a subsequent pagination request using the Marker request parameter to retrieve more keys in the list.

" + } + }, + "CiphertextType": { + "base": null, + "refs": { + "DecryptRequest$CiphertextBlob": "

Ciphertext to be decrypted. The blob includes metadata.

", + "EncryptResponse$CiphertextBlob": "

The encrypted plaintext. If you are using the CLI, the value is Base64 encoded. Otherwise, it is not encoded.

", + "GenerateDataKeyResponse$CiphertextBlob": "

Ciphertext that contains the encrypted data key. You must store the blob and enough information to reconstruct the encryption context so that the data encrypted by using the key can later be decrypted. You must provide both the ciphertext blob and the encryption context to the Decrypt API to recover the plaintext data key and decrypt the object.

If you are using the CLI, the value is Base64 encoded. Otherwise, it is not encoded.

", + "GenerateDataKeyWithoutPlaintextResponse$CiphertextBlob": "

Ciphertext that contains the wrapped data key. You must store the blob and encryption context so that the key can be used in a future decrypt operation.

If you are using the CLI, the value is Base64 encoded. Otherwise, it is not encoded.

", + "ReEncryptRequest$CiphertextBlob": "

Ciphertext of the data to re-encrypt.

", + "ReEncryptResponse$CiphertextBlob": "

The re-encrypted data. If you are using the CLI, the value is Base64 encoded. Otherwise, it is not encoded.

" + } + }, + "CreateAliasRequest": { + "base": null, + "refs": { + } + }, + "CreateGrantRequest": { + "base": null, + "refs": { + } + }, + "CreateGrantResponse": { + "base": null, + "refs": { + } + }, + "CreateKeyRequest": { + "base": null, + "refs": { + } + }, + "CreateKeyResponse": { + "base": null, + "refs": { + } + }, + "DataKeySpec": { + "base": null, + "refs": { + "GenerateDataKeyRequest$KeySpec": "

Value that identifies the encryption algorithm and key size to generate a data key for. Currently this can be AES_128 or AES_256.

", + "GenerateDataKeyWithoutPlaintextRequest$KeySpec": "

Value that identifies the encryption algorithm and key size. Currently this can be AES_128 or AES_256.

" + } + }, + "DateType": { + "base": null, + "refs": { + "KeyMetadata$CreationDate": "

Date the key was created.

" + } + }, + "DecryptRequest": { + "base": null, + "refs": { + } + }, + "DecryptResponse": { + "base": null, + "refs": { + } + }, + "DeleteAliasRequest": { + "base": null, + "refs": { + } + }, + "DependencyTimeoutException": { + "base": "

The system timed out while trying to fulfill the request.

", + "refs": { + } + }, + "DescribeKeyRequest": { + "base": null, + "refs": { + } + }, + "DescribeKeyResponse": { + "base": null, + "refs": { + } + }, + "DescriptionType": { + "base": null, + "refs": { + "CreateKeyRequest$Description": "

Description of the key. We recommend that you choose a description that helps your customer decide whether the key is appropriate for a task.

", + "KeyMetadata$Description": "

The description of the key.

", + "UpdateKeyDescriptionRequest$Description": "

New description for the key.

" + } + }, + "DisableKeyRequest": { + "base": null, + "refs": { + } + }, + "DisableKeyRotationRequest": { + "base": null, + "refs": { + } + }, + "DisabledException": { + "base": "

A request was rejected because the specified key was marked as disabled.

", + "refs": { + } + }, + "EnableKeyRequest": { + "base": null, + "refs": { + } + }, + "EnableKeyRotationRequest": { + "base": null, + "refs": { + } + }, + "EncryptRequest": { + "base": null, + "refs": { + } + }, + "EncryptResponse": { + "base": null, + "refs": { + } + }, + "EncryptionContextKey": { + "base": null, + "refs": { + "EncryptionContextType$key": null + } + }, + "EncryptionContextType": { + "base": null, + "refs": { + "DecryptRequest$EncryptionContext": "

The encryption context. If this was specified in the Encrypt function, it must be specified here or the decryption operation will fail. For more information, see Encryption Context.

", + "EncryptRequest$EncryptionContext": "

Name/value pair that specifies the encryption context to be used for authenticated encryption. If used here, the same value must be supplied to the Decrypt API or decryption will fail. For more information, see Encryption Context.

", + "GenerateDataKeyRequest$EncryptionContext": "

Name/value pair that contains additional data to be authenticated during the encryption and decryption processes that use the key. This value is logged by AWS CloudTrail to provide context around the data encrypted by the key.

", + "GenerateDataKeyWithoutPlaintextRequest$EncryptionContext": "

Name:value pair that contains additional data to be authenticated during the encryption and decryption processes.

", + "GrantConstraints$EncryptionContextSubset": "The constraint equals the full encryption context.", + "GrantConstraints$EncryptionContextEquals": "The constraint contains additional key/value pairs that serve to further limit the grant.", + "ReEncryptRequest$SourceEncryptionContext": "

Encryption context used to encrypt and decrypt the data specified in the CiphertextBlob parameter.

", + "ReEncryptRequest$DestinationEncryptionContext": "

Encryption context to be used when the data is re-encrypted.

" + } + }, + "EncryptionContextValue": { + "base": null, + "refs": { + "EncryptionContextType$value": null + } + }, + "ErrorMessageType": { + "base": null, + "refs": { + "AlreadyExistsException$message": null, + "DependencyTimeoutException$message": null, + "DisabledException$message": null, + "InvalidAliasNameException$message": null, + "InvalidArnException$message": null, + "InvalidCiphertextException$message": null, + "InvalidGrantTokenException$message": null, + "InvalidKeyUsageException$message": null, + "InvalidMarkerException$message": null, + "KMSInternalException$message": null, + "KeyUnavailableException$message": null, + "LimitExceededException$message": null, + "MalformedPolicyDocumentException$message": null, + "NotFoundException$message": null, + "UnsupportedOperationException$message": null + } + }, + "GenerateDataKeyRequest": { + "base": null, + "refs": { + } + }, + "GenerateDataKeyResponse": { + "base": null, + "refs": { + } + }, + "GenerateDataKeyWithoutPlaintextRequest": { + "base": null, + "refs": { + } + }, + "GenerateDataKeyWithoutPlaintextResponse": { + "base": null, + "refs": { + } + }, + "GenerateRandomRequest": { + "base": null, + "refs": { + } + }, + "GenerateRandomResponse": { + "base": null, + "refs": { + } + }, + "GetKeyPolicyRequest": { + "base": null, + "refs": { + } + }, + "GetKeyPolicyResponse": { + "base": null, + "refs": { + } + }, + "GetKeyRotationStatusRequest": { + "base": null, + "refs": { + } + }, + "GetKeyRotationStatusResponse": { + "base": null, + "refs": { + } + }, + "GrantConstraints": { + "base": "Contains constraints on the grant.", + "refs": { + "CreateGrantRequest$Constraints": "

Specifies the conditions under which the actions specified by the Operations parameter are allowed.

", + "GrantListEntry$Constraints": "

Specifies the conditions under which the actions specified by the Operations parameter are allowed.

" + } + }, + "GrantIdType": { + "base": null, + "refs": { + "CreateGrantResponse$GrantId": "

Unique grant identifier. You can use the GrantId value to revoke a grant.

", + "GrantListEntry$GrantId": "

Unique grant identifier.

", + "RetireGrantRequest$GrantId": "

Unique identifier of the grant to be retired. The grant ID is returned by the CreateGrant function.

  • Grant ID Example - 0123456789012345678901234567890123456789012345678901234567890123

", + "RevokeGrantRequest$GrantId": "

Identifier of the grant to be revoked.

" + } + }, + "GrantList": { + "base": null, + "refs": { + "ListGrantsResponse$Grants": "

A list of grants.

" + } + }, + "GrantListEntry": { + "base": "

Contains information about each entry in the grant list.

", + "refs": { + "GrantList$member": null + } + }, + "GrantOperation": { + "base": null, + "refs": { + "GrantOperationList$member": null + } + }, + "GrantOperationList": { + "base": null, + "refs": { + "CreateGrantRequest$Operations": "

List of operations permitted by the grant. This can be any combination of one or more of the following values:

  1. Decrypt
  2. Encrypt
  3. GenerateDataKey
  4. GenerateDataKeyWithoutPlaintext
  5. ReEncryptFrom
  6. ReEncryptTo
  7. CreateGrant
  8. RetireGrant

", + "GrantListEntry$Operations": "

List of operations permitted by the grant. This can be any combination of one or more of the following values:

  1. Decrypt
  2. Encrypt
  3. GenerateDataKey
  4. GenerateDataKeyWithoutPlaintext
  5. ReEncryptFrom
  6. ReEncryptTo
  7. CreateGrant

" + } + }, + "GrantTokenList": { + "base": null, + "refs": { + "CreateGrantRequest$GrantTokens": "

For more information, see Grant Tokens.

", + "DecryptRequest$GrantTokens": "

For more information, see Grant Tokens.

", + "EncryptRequest$GrantTokens": "

For more information, see Grant Tokens.

", + "GenerateDataKeyRequest$GrantTokens": "

For more information, see Grant Tokens.

", + "GenerateDataKeyWithoutPlaintextRequest$GrantTokens": "

For more information, see Grant Tokens.

", + "ReEncryptRequest$GrantTokens": "

For more information, see Grant Tokens.

" + } + }, + "GrantTokenType": { + "base": null, + "refs": { + "CreateGrantResponse$GrantToken": "

For more information, see Grant Tokens.

", + "GrantTokenList$member": null, + "RetireGrantRequest$GrantToken": "

Token that identifies the grant to be retired.

" + } + }, + "InvalidAliasNameException": { + "base": "

The request was rejected because the specified alias name is not valid.

", + "refs": { + } + }, + "InvalidArnException": { + "base": "

The request was rejected because a specified ARN was not valid.

", + "refs": { + } + }, + "InvalidCiphertextException": { + "base": "

The request was rejected because the specified ciphertext has been corrupted or is otherwise invalid.

", + "refs": { + } + }, + "InvalidGrantTokenException": { + "base": "

A grant token provided as part of the request is invalid.

", + "refs": { + } + }, + "InvalidKeyUsageException": { + "base": "

The request was rejected because the specified KeySpec parameter is not valid. The currently supported value is ENCRYPT/DECRYPT.

", + "refs": { + } + }, + "InvalidMarkerException": { + "base": "

The request was rejected because the marker that specifies where pagination should next begin is not valid.

", + "refs": { + } + }, + "KMSInternalException": { + "base": "

The request was rejected because an internal exception occurred. This error can be retried.

", + "refs": { + } + }, + "KeyIdType": { + "base": null, + "refs": { + "AliasListEntry$TargetKeyId": "

String that contains the key identifier pointed to by the alias.

", + "CreateAliasRequest$TargetKeyId": "

An identifier of the key for which you are creating the alias. This value cannot be another alias but can be a globally unique identifier or a fully specified ARN to a key.

  • Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
  • Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012

", + "CreateGrantRequest$KeyId": "

A unique identifier for the customer master key. This value can be a globally unique identifier or the fully specified ARN to a key.

  • Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
  • Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012

", + "DecryptResponse$KeyId": "

ARN of the key used to perform the decryption. This value is returned if no errors are encountered during the operation.

", + "DescribeKeyRequest$KeyId": "

A unique identifier for the customer master key. This value can be a globally unique identifier, a fully specified ARN to either an alias or a key, or an alias name prefixed by \"alias/\".

  • Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
  • Alias ARN Example - arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
  • Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012
  • Alias Name Example - alias/MyAliasName

", + "DisableKeyRequest$KeyId": "

A unique identifier for the customer master key. This value can be a globally unique identifier or the fully specified ARN to a key.

  • Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
  • Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012

", + "DisableKeyRotationRequest$KeyId": "

A unique identifier for the customer master key. This value can be a globally unique identifier or the fully specified ARN to a key.

  • Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
  • Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012

", + "EnableKeyRequest$KeyId": "

A unique identifier for the customer master key. This value can be a globally unique identifier or the fully specified ARN to a key.

  • Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
  • Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012

", + "EnableKeyRotationRequest$KeyId": "

A unique identifier for the customer master key. This value can be a globally unique identifier or the fully specified ARN to a key.

  • Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
  • Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012

", + "EncryptRequest$KeyId": "

A unique identifier for the customer master key. This value can be a globally unique identifier, a fully specified ARN to either an alias or a key, or an alias name prefixed by \"alias/\".

  • Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
  • Alias ARN Example - arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
  • Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012
  • Alias Name Example - alias/MyAliasName

", + "EncryptResponse$KeyId": "

The ID of the key used during encryption.

", + "GenerateDataKeyRequest$KeyId": "

A unique identifier for the customer master key. This value can be a globally unique identifier, a fully specified ARN to either an alias or a key, or an alias name prefixed by \"alias/\".

  • Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
  • Alias ARN Example - arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
  • Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012
  • Alias Name Example - alias/MyAliasName

", + "GenerateDataKeyResponse$KeyId": "

System generated unique identifier of the key to be used to decrypt the encrypted copy of the data key.

", + "GenerateDataKeyWithoutPlaintextRequest$KeyId": "

A unique identifier for the customer master key. This value can be a globally unique identifier, a fully specified ARN to either an alias or a key, or an alias name prefixed by \"alias/\".

  • Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
  • Alias ARN Example - arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
  • Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012
  • Alias Name Example - alias/MyAliasName

", + "GenerateDataKeyWithoutPlaintextResponse$KeyId": "

System generated unique identifier of the key to be used to decrypt the encrypted copy of the data key.

", + "GetKeyPolicyRequest$KeyId": "

A unique identifier for the customer master key. This value can be a globally unique identifier or the fully specified ARN to a key.

  • Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
  • Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012

", + "GetKeyRotationStatusRequest$KeyId": "

A unique identifier for the customer master key. This value can be a globally unique identifier or the fully specified ARN to a key.

  • Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
  • Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012

", + "KeyListEntry$KeyId": "

Unique identifier of the key.

", + "KeyMetadata$KeyId": "

Unique identifier for the key.

", + "ListGrantsRequest$KeyId": "

A unique identifier for the customer master key. This value can be a globally unique identifier or the fully specified ARN to a key.

  • Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
  • Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012

", + "ListKeyPoliciesRequest$KeyId": "

A unique identifier for the customer master key. This value can be a globally unique identifier, a fully specified ARN to either an alias or a key, or an alias name prefixed by \"alias/\".

  • Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
  • Alias ARN Example - arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
  • Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012
  • Alias Name Example - alias/MyAliasName

", + "PutKeyPolicyRequest$KeyId": "

A unique identifier for the customer master key. This value can be a globally unique identifier or the fully specified ARN to a key.

  • Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
  • Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012

", + "ReEncryptRequest$DestinationKeyId": "

A unique identifier for the customer master key used to re-encrypt the data. This value can be a globally unique identifier, a fully specified ARN to either an alias or a key, or an alias name prefixed by \"alias/\".

  • Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
  • Alias ARN Example - arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
  • Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012
  • Alias Name Example - alias/MyAliasName

", + "ReEncryptResponse$SourceKeyId": "

Unique identifier of the key used to originally encrypt the data.

", + "ReEncryptResponse$KeyId": "

Unique identifier of the key used to re-encrypt the data.

", + "RetireGrantRequest$KeyId": "

A unique identifier for the customer master key associated with the grant. This value can be a globally unique identifier or a fully specified ARN of the key.

  • Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
  • Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012

", + "RevokeGrantRequest$KeyId": "

A unique identifier for the customer master key associated with the grant. This value can be a globally unique identifier or the fully specified ARN to a key.

  • Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
  • Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012

", + "UpdateAliasRequest$TargetKeyId": "

Unique identifier of the customer master key to be associated with the alias. This value can be a globally unique identifier or the fully specified ARN of a key.

  • Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
  • Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012

", + "UpdateKeyDescriptionRequest$KeyId": "

A unique identifier for the customer master key. This value can be a globally unique identifier or the fully specified ARN to a key.

  • Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
  • Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012

" + } + }, + "KeyList": { + "base": null, + "refs": { + "ListKeysResponse$Keys": "

A list of keys.

" + } + }, + "KeyListEntry": { + "base": "

Contains information about each entry in the key list.

", + "refs": { + "KeyList$member": null + } + }, + "KeyMetadata": { + "base": "Contains metadata associated with a specific key.", + "refs": { + "CreateKeyResponse$KeyMetadata": "

Metadata associated with the key.

", + "DescribeKeyResponse$KeyMetadata": "

Metadata associated with the key.

" + } + }, + "KeyUnavailableException": { + "base": "

The request was rejected because the key was disabled, not found, or otherwise not available.

", + "refs": { + } + }, + "KeyUsageType": { + "base": null, + "refs": { + "CreateKeyRequest$KeyUsage": "

Specifies the intended use of the key. Currently this defaults to ENCRYPT/DECRYPT, and only symmetric encryption and decryption are supported.

", + "KeyMetadata$KeyUsage": "

A value that specifies what operation(s) the key can perform.

" + } + }, + "LimitExceededException": { + "base": "

The request was rejected because a quota was exceeded.

", + "refs": { + } + }, + "LimitType": { + "base": null, + "refs": { + "ListAliasesRequest$Limit": "

Specify this parameter when paginating results to indicate the maximum number of aliases you want in each response. If there are additional aliases beyond the maximum you specify, the Truncated response element will be set to true.

", + "ListGrantsRequest$Limit": "

Specify this parameter only when paginating results to indicate the maximum number of grants you want listed in the response. If there are additional grants beyond the maximum you specify, the Truncated response element will be set to true.

", + "ListKeyPoliciesRequest$Limit": "

Specify this parameter only when paginating results to indicate the maximum number of policies you want listed in the response. If there are additional policies beyond the maximum you specify, the Truncated response element will be set to true.

", + "ListKeysRequest$Limit": "

Specify this parameter only when paginating results to indicate the maximum number of keys you want listed in the response. If there are additional keys beyond the maximum you specify, the Truncated response element will be set to true.

" + } + }, + "ListAliasesRequest": { + "base": null, + "refs": { + } + }, + "ListAliasesResponse": { + "base": null, + "refs": { + } + }, + "ListGrantsRequest": { + "base": null, + "refs": { + } + }, + "ListGrantsResponse": { + "base": null, + "refs": { + } + }, + "ListKeyPoliciesRequest": { + "base": null, + "refs": { + } + }, + "ListKeyPoliciesResponse": { + "base": null, + "refs": { + } + }, + "ListKeysRequest": { + "base": null, + "refs": { + } + }, + "ListKeysResponse": { + "base": null, + "refs": { + } + }, + "MalformedPolicyDocumentException": { + "base": "

The request was rejected because the specified policy is not syntactically or semantically correct.

", + "refs": { + } + }, + "MarkerType": { + "base": null, + "refs": { + "ListAliasesRequest$Marker": "

Use this parameter when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the NextMarker element in the response you just received.

", + "ListAliasesResponse$NextMarker": "

If Truncated is true, this value is present and contains the value to use for the Marker request parameter in a subsequent pagination request.

", + "ListGrantsRequest$Marker": "

Use this parameter only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the NextMarker in the response you just received.

", + "ListGrantsResponse$NextMarker": "

If Truncated is true, this value is present and contains the value to use for the Marker request parameter in a subsequent pagination request.

", + "ListKeyPoliciesRequest$Marker": "

Use this parameter only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the NextMarker in the response you just received.

", + "ListKeyPoliciesResponse$NextMarker": "

If Truncated is true, this value is present and contains the value to use for the Marker request parameter in a subsequent pagination request.

", + "ListKeysRequest$Marker": "

Use this parameter only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the NextMarker in the response you just received.

", + "ListKeysResponse$NextMarker": "

If Truncated is true, this value is present and contains the value to use for the Marker request parameter in a subsequent pagination request.

" + } + }, + "NotFoundException": { + "base": "

The request was rejected because the specified entity or resource could not be found.

", + "refs": { + } + }, + "NumberOfBytesType": { + "base": null, + "refs": { + "GenerateDataKeyRequest$NumberOfBytes": "

Integer that contains the number of bytes to generate. Common values are 128, 256, 512, and 1024. 1024 is the current limit. We recommend that you use the KeySpec parameter instead.

", + "GenerateDataKeyWithoutPlaintextRequest$NumberOfBytes": "

Integer that contains the number of bytes to generate. Common values are 128, 256, 512, 1024 and so on. We recommend that you use the KeySpec parameter instead.

", + "GenerateRandomRequest$NumberOfBytes": "

Integer that contains the number of bytes to generate. Common values are 128, 256, 512, 1024 and so on. The current limit is 1024 bytes.

" + } + }, + "PlaintextType": { + "base": null, + "refs": { + "DecryptResponse$Plaintext": "

Decrypted plaintext data. This value may not be returned if the customer master key is not available or if you didn't have permission to use it.

", + "EncryptRequest$Plaintext": "

Data to be encrypted.

", + "GenerateDataKeyResponse$Plaintext": "

Plaintext that contains the data key. Use this for encryption and decryption and then remove it from memory as soon as possible.

", + "GenerateRandomResponse$Plaintext": "

Plaintext that contains the unpredictable byte string.

" + } + }, + "PolicyNameList": { + "base": null, + "refs": { + "ListKeyPoliciesResponse$PolicyNames": "

A list of policy names. Currently, there is only one policy and it is named \"Default\".

" + } + }, + "PolicyNameType": { + "base": null, + "refs": { + "GetKeyPolicyRequest$PolicyName": "

String that contains the name of the policy. Currently, this must be \"default\". Policy names can be discovered by calling ListKeyPolicies.

", + "PolicyNameList$member": null, + "PutKeyPolicyRequest$PolicyName": "

Name of the policy to be attached. Currently, the only supported name is \"default\".

" + } + }, + "PolicyType": { + "base": null, + "refs": { + "CreateKeyRequest$Policy": "

Policy to be attached to the key. This is required and delegates back to the account. The key is the root of trust.

", + "GetKeyPolicyResponse$Policy": "

A policy document in JSON format.

", + "PutKeyPolicyRequest$Policy": "

The policy, in JSON format, to be attached to the key.

" + } + }, + "PrincipalIdType": { + "base": null, + "refs": { + "CreateGrantRequest$GranteePrincipal": "

Principal given permission by the grant to use the key identified by the keyId parameter.

", + "CreateGrantRequest$RetiringPrincipal": "

Principal given permission to retire the grant. For more information, see RetireGrant.

", + "GrantListEntry$GranteePrincipal": "

The principal that receives the grant permission.

", + "GrantListEntry$RetiringPrincipal": "

The principal that can retire the account.

", + "GrantListEntry$IssuingAccount": "

The account under which the grant was issued.

" + } + }, + "PutKeyPolicyRequest": { + "base": null, + "refs": { + } + }, + "ReEncryptRequest": { + "base": null, + "refs": { + } + }, + "ReEncryptResponse": { + "base": null, + "refs": { + } + }, + "RetireGrantRequest": { + "base": null, + "refs": { + } + }, + "RevokeGrantRequest": { + "base": null, + "refs": { + } + }, + "UnsupportedOperationException": { + "base": "

The request was rejected because a specified parameter is not supported.

", + "refs": { + } + }, + "UpdateAliasRequest": { + "base": null, + "refs": { + } + }, + "UpdateKeyDescriptionRequest": { + "base": null, + "refs": { + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/kms/2014-11-01/paginators-1.json b/lib/aws-sdk/Aws/data/kms/2014-11-01/paginators-1.json new file mode 100644 index 0000000..522d171 --- /dev/null +++ b/lib/aws-sdk/Aws/data/kms/2014-11-01/paginators-1.json @@ -0,0 +1,32 @@ +{ + "pagination": { + "ListAliases": { + "limit_key": "Limit", + "input_token": "Marker", + "output_token": "NextMarker", + "more_results": "Truncated", + "result_key": "Aliases" + }, + "ListGrants": { + "limit_key": "Limit", + "input_token": "Marker", + "output_token": "NextMarker", + "more_results": "Truncated", + "result_key": "Grants" + }, + "ListKeyPolicies": { + "limit_key": "Limit", + "input_token": "Marker", + "output_token": "NextMarker", + "more_results": "Truncated", + "result_key": "PolicyNames" + }, + "ListKeys": { + "limit_key": "Limit", + "input_token": "Marker", + "output_token": "NextMarker", + "more_results": "Truncated", + "result_key": "Keys" + } + } +} diff --git a/lib/aws-sdk/Aws/data/lambda/2015-03-31/api-2.json b/lib/aws-sdk/Aws/data/lambda/2015-03-31/api-2.json new file mode 100644 index 0000000..6d2fd8d --- /dev/null +++ b/lib/aws-sdk/Aws/data/lambda/2015-03-31/api-2.json @@ -0,0 +1,1159 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2015-03-31", + "endpointPrefix":"lambda", + "serviceFullName":"AWS Lambda", + "signatureVersion":"v4", + "protocol":"rest-json" + }, + "operations":{ + "AddPermission":{ + "name":"AddPermission", + "http":{ + "method":"POST", + "requestUri":"/2015-03-31/functions/{FunctionName}/versions/HEAD/policy", + "responseCode":201 + }, + "input":{"shape":"AddPermissionRequest"}, + "output":{"shape":"AddPermissionResponse"}, + "errors":[ + { + "shape":"ServiceException", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"ResourceConflictException", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"PolicyLengthExceededException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + } + ] + }, + "CreateEventSourceMapping":{ + "name":"CreateEventSourceMapping", + "http":{ + "method":"POST", + "requestUri":"/2015-03-31/event-source-mappings/", + "responseCode":202 + }, + "input":{"shape":"CreateEventSourceMappingRequest"}, + "output":{"shape":"EventSourceMappingConfiguration"}, + "errors":[ + { + "shape":"ServiceException", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceConflictException", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + } + ] + }, + "CreateFunction":{ + "name":"CreateFunction", + "http":{ + "method":"POST", + "requestUri":"/2015-03-31/functions", + "responseCode":201 + }, + "input":{"shape":"CreateFunctionRequest"}, + "output":{"shape":"FunctionConfiguration"}, + "errors":[ + { + "shape":"ServiceException", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"ResourceConflictException", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + }, + { + "shape":"CodeStorageExceededException", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "DeleteEventSourceMapping":{ + "name":"DeleteEventSourceMapping", + "http":{ + "method":"DELETE", + "requestUri":"/2015-03-31/event-source-mappings/{UUID}", + "responseCode":202 + }, + "input":{"shape":"DeleteEventSourceMappingRequest"}, + "output":{"shape":"EventSourceMappingConfiguration"}, + "errors":[ + { + "shape":"ServiceException", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + } + ] + }, + "DeleteFunction":{ + "name":"DeleteFunction", + "http":{ + "method":"DELETE", + "requestUri":"/2015-03-31/functions/{FunctionName}", + "responseCode":204 + }, + "input":{"shape":"DeleteFunctionRequest"}, + "errors":[ + { + "shape":"ServiceException", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + } + ] + }, + "GetEventSourceMapping":{ + "name":"GetEventSourceMapping", + "http":{ + "method":"GET", + "requestUri":"/2015-03-31/event-source-mappings/{UUID}", + "responseCode":200 + }, + "input":{"shape":"GetEventSourceMappingRequest"}, + "output":{"shape":"EventSourceMappingConfiguration"}, + "errors":[ + { + "shape":"ServiceException", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + } + ] + }, + "GetFunction":{ + "name":"GetFunction", + "http":{ + "method":"GET", + "requestUri":"/2015-03-31/functions/{FunctionName}/versions/HEAD", + "responseCode":200 + }, + "input":{"shape":"GetFunctionRequest"}, + "output":{"shape":"GetFunctionResponse"}, + "errors":[ + { + "shape":"ServiceException", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + } + ] + }, + "GetFunctionConfiguration":{ + "name":"GetFunctionConfiguration", + "http":{ + "method":"GET", + "requestUri":"/2015-03-31/functions/{FunctionName}/versions/HEAD/configuration", + "responseCode":200 + }, + "input":{"shape":"GetFunctionConfigurationRequest"}, + "output":{"shape":"FunctionConfiguration"}, + "errors":[ + { + "shape":"ServiceException", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + } + ] + }, + "GetPolicy":{ + "name":"GetPolicy", + "http":{ + "method":"GET", + "requestUri":"/2015-03-31/functions/{FunctionName}/versions/HEAD/policy", + "responseCode":200 + }, + "input":{"shape":"GetPolicyRequest"}, + "output":{"shape":"GetPolicyResponse"}, + "errors":[ + { + "shape":"ServiceException", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + } + ] + }, + "Invoke":{ + "name":"Invoke", + "http":{ + "method":"POST", + "requestUri":"/2015-03-31/functions/{FunctionName}/invocations" + }, + "input":{"shape":"InvocationRequest"}, + "output":{"shape":"InvocationResponse"}, + "errors":[ + { + "shape":"ServiceException", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidRequestContentException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"RequestTooLargeException", + "error":{"httpStatusCode":413}, + "exception":true + }, + { + "shape":"UnsupportedMediaTypeException", + "error":{"httpStatusCode":415}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + } + ] + }, + "InvokeAsync":{ + "name":"InvokeAsync", + "http":{ + "method":"POST", + "requestUri":"/2014-11-13/functions/{FunctionName}/invoke-async/", + "responseCode":202 + }, + "input":{ + "shape":"InvokeAsyncRequest", + "deprecated":true + }, + "output":{ + "shape":"InvokeAsyncResponse", + "deprecated":true + }, + "errors":[ + { + "shape":"ServiceException", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidRequestContentException", + "error":{"httpStatusCode":400}, + "exception":true + } + ], + "deprecated":true + }, + "ListEventSourceMappings":{ + "name":"ListEventSourceMappings", + "http":{ + "method":"GET", + "requestUri":"/2015-03-31/event-source-mappings/", + "responseCode":200 + }, + "input":{"shape":"ListEventSourceMappingsRequest"}, + "output":{"shape":"ListEventSourceMappingsResponse"}, + "errors":[ + { + "shape":"ServiceException", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + } + ] + }, + "ListFunctions":{ + "name":"ListFunctions", + "http":{ + "method":"GET", + "requestUri":"/2015-03-31/functions/", + "responseCode":200 + }, + "input":{"shape":"ListFunctionsRequest"}, + "output":{"shape":"ListFunctionsResponse"}, + "errors":[ + { + "shape":"ServiceException", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + } + ] + }, + "RemovePermission":{ + "name":"RemovePermission", + "http":{ + "method":"DELETE", + "requestUri":"/2015-03-31/functions/{FunctionName}/versions/HEAD/policy/{StatementId}", + "responseCode":204 + }, + "input":{"shape":"RemovePermissionRequest"}, + "errors":[ + { + "shape":"ServiceException", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + } + ] + }, + "UpdateEventSourceMapping":{ + "name":"UpdateEventSourceMapping", + "http":{ + "method":"PUT", + "requestUri":"/2015-03-31/event-source-mappings/{UUID}", + "responseCode":202 + }, + "input":{"shape":"UpdateEventSourceMappingRequest"}, + "output":{"shape":"EventSourceMappingConfiguration"}, + "errors":[ + { + "shape":"ServiceException", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + } + ] + }, + "UpdateFunctionCode":{ + "name":"UpdateFunctionCode", + "http":{ + "method":"PUT", + "requestUri":"/2015-03-31/functions/{FunctionName}/versions/HEAD/code", + "responseCode":200 + }, + "input":{"shape":"UpdateFunctionCodeRequest"}, + "output":{"shape":"FunctionConfiguration"}, + "errors":[ + { + "shape":"ServiceException", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + }, + { + "shape":"CodeStorageExceededException", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "UpdateFunctionConfiguration":{ + "name":"UpdateFunctionConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/2015-03-31/functions/{FunctionName}/versions/HEAD/configuration", + "responseCode":200 + }, + "input":{"shape":"UpdateFunctionConfigurationRequest"}, + "output":{"shape":"FunctionConfiguration"}, + "errors":[ + { + "shape":"ServiceException", + "error":{"httpStatusCode":500}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TooManyRequestsException", + "error":{"httpStatusCode":429}, + "exception":true + } + ] + } + }, + "shapes":{ + "Action":{ + "type":"string", + "pattern":"(lambda:[*]|lambda:[a-zA-Z]+|[*])" + }, + "AddPermissionRequest":{ + "type":"structure", + "required":[ + "FunctionName", + "StatementId", + "Action", + "Principal" + ], + "members":{ + "FunctionName":{ + "shape":"FunctionName", + "location":"uri", + "locationName":"FunctionName" + }, + "StatementId":{"shape":"StatementId"}, + "Action":{"shape":"Action"}, + "Principal":{"shape":"Principal"}, + "SourceArn":{"shape":"Arn"}, + "SourceAccount":{"shape":"SourceOwner"} + } + }, + "AddPermissionResponse":{ + "type":"structure", + "members":{ + "Statement":{"shape":"String"} + } + }, + "Arn":{ + "type":"string", + "pattern":"arn:aws:([a-zA-Z0-9\\-])+:([a-z]{2}-[a-z]+-\\d{1})?:(\\d{12})?:(.*)" + }, + "BatchSize":{ + "type":"integer", + "min":1, + "max":10000 + }, + "Blob":{"type":"blob"}, + "BlobStream":{ + "type":"blob", + "streaming":true + }, + "CodeStorageExceededException":{ + "type":"structure", + "members":{ + "Type":{"shape":"String"}, + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "CreateEventSourceMappingRequest":{ + "type":"structure", + "required":[ + "EventSourceArn", + "FunctionName", + "StartingPosition" + ], + "members":{ + "EventSourceArn":{"shape":"Arn"}, + "FunctionName":{"shape":"FunctionName"}, + "Enabled":{"shape":"Enabled"}, + "BatchSize":{"shape":"BatchSize"}, + "StartingPosition":{"shape":"EventSourcePosition"} + } + }, + "CreateFunctionRequest":{ + "type":"structure", + "required":[ + "FunctionName", + "Runtime", + "Role", + "Handler", + "Code" + ], + "members":{ + "FunctionName":{"shape":"FunctionName"}, + "Runtime":{"shape":"Runtime"}, + "Role":{"shape":"RoleArn"}, + "Handler":{"shape":"Handler"}, + "Description":{"shape":"Description"}, + "Timeout":{"shape":"Timeout"}, + "MemorySize":{"shape":"MemorySize"}, + "Code":{"shape":"FunctionCode"} + } + }, + "Date":{"type":"timestamp"}, + "DeleteEventSourceMappingRequest":{ + "type":"structure", + "required":["UUID"], + "members":{ + "UUID":{ + "shape":"String", + "location":"uri", + "locationName":"UUID" + } + } + }, + "DeleteFunctionRequest":{ + "type":"structure", + "required":["FunctionName"], + "members":{ + "FunctionName":{ + "shape":"FunctionName", + "location":"uri", + "locationName":"FunctionName" + } + } + }, + "Description":{ + "type":"string", + "min":0, + "max":256 + }, + "Enabled":{"type":"boolean"}, + "EventSourceMappingConfiguration":{ + "type":"structure", + "members":{ + "UUID":{"shape":"String"}, + "BatchSize":{"shape":"BatchSize"}, + "EventSourceArn":{"shape":"Arn"}, + "FunctionArn":{"shape":"FunctionArn"}, + "LastModified":{"shape":"Date"}, + "LastProcessingResult":{"shape":"String"}, + "State":{"shape":"String"}, + "StateTransitionReason":{"shape":"String"} + } + }, + "EventSourceMappingsList":{ + "type":"list", + "member":{"shape":"EventSourceMappingConfiguration"} + }, + "EventSourcePosition":{ + "type":"string", + "enum":[ + "TRIM_HORIZON", + "LATEST" + ] + }, + "FunctionArn":{ + "type":"string", + "pattern":"arn:aws:lambda:[a-z]{2}-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_]+(\\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})?" + }, + "FunctionCode":{ + "type":"structure", + "members":{ + "ZipFile":{"shape":"Blob"}, + "S3Bucket":{"shape":"S3Bucket"}, + "S3Key":{"shape":"S3Key"}, + "S3ObjectVersion":{"shape":"S3ObjectVersion"} + } + }, + "FunctionCodeLocation":{ + "type":"structure", + "members":{ + "RepositoryType":{"shape":"String"}, + "Location":{"shape":"String"} + } + }, + "FunctionConfiguration":{ + "type":"structure", + "members":{ + "FunctionName":{"shape":"FunctionName"}, + "FunctionArn":{"shape":"FunctionArn"}, + "Runtime":{"shape":"Runtime"}, + "Role":{"shape":"RoleArn"}, + "Handler":{"shape":"Handler"}, + "CodeSize":{"shape":"Long"}, + "Description":{"shape":"Description"}, + "Timeout":{"shape":"Timeout"}, + "MemorySize":{"shape":"MemorySize"}, + "LastModified":{"shape":"Timestamp"} + } + }, + "FunctionList":{ + "type":"list", + "member":{"shape":"FunctionConfiguration"} + }, + "FunctionName":{ + "type":"string", + "min":1, + "max":111, + "pattern":"(arn:aws:lambda:)?([a-z]{2}-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)" + }, + "GetEventSourceMappingRequest":{ + "type":"structure", + "required":["UUID"], + "members":{ + "UUID":{ + "shape":"String", + "location":"uri", + "locationName":"UUID" + } + } + }, + "GetFunctionConfigurationRequest":{ + "type":"structure", + "required":["FunctionName"], + "members":{ + "FunctionName":{ + "shape":"FunctionName", + "location":"uri", + "locationName":"FunctionName" + } + } + }, + "GetFunctionRequest":{ + "type":"structure", + "required":["FunctionName"], + "members":{ + "FunctionName":{ + "shape":"FunctionName", + "location":"uri", + "locationName":"FunctionName" + } + } + }, + "GetFunctionResponse":{ + "type":"structure", + "members":{ + "Configuration":{"shape":"FunctionConfiguration"}, + "Code":{"shape":"FunctionCodeLocation"} + } + }, + "GetPolicyRequest":{ + "type":"structure", + "required":["FunctionName"], + "members":{ + "FunctionName":{ + "shape":"FunctionName", + "location":"uri", + "locationName":"FunctionName" + } + } + }, + "GetPolicyResponse":{ + "type":"structure", + "members":{ + "Policy":{"shape":"String"} + } + }, + "Handler":{ + "type":"string", + "max":128, + "pattern":"[^\\s]+" + }, + "HttpStatus":{"type":"integer"}, + "Integer":{"type":"integer"}, + "InvalidParameterValueException":{ + "type":"structure", + "members":{ + "Type":{"shape":"String"}, + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidRequestContentException":{ + "type":"structure", + "members":{ + "Type":{"shape":"String"}, + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvocationRequest":{ + "type":"structure", + "required":["FunctionName"], + "members":{ + "FunctionName":{ + "shape":"FunctionName", + "location":"uri", + "locationName":"FunctionName" + }, + "InvocationType":{ + "shape":"InvocationType", + "location":"header", + "locationName":"X-Amz-Invocation-Type" + }, + "LogType":{ + "shape":"LogType", + "location":"header", + "locationName":"X-Amz-Log-Type" + }, + "ClientContext":{ + "shape":"String", + "location":"header", + "locationName":"X-Amz-Client-Context" + }, + "Payload":{"shape":"Blob"} + }, + "payload":"Payload" + }, + "InvocationResponse":{ + "type":"structure", + "members":{ + "StatusCode":{ + "shape":"Integer", + "location":"statusCode" + }, + "FunctionError":{ + "shape":"String", + "location":"header", + "locationName":"X-Amz-Function-Error" + }, + "LogResult":{ + "shape":"String", + "location":"header", + "locationName":"X-Amz-Log-Result" + }, + "Payload":{"shape":"Blob"} + }, + "payload":"Payload" + }, + "InvocationType":{ + "type":"string", + "enum":[ + "Event", + "RequestResponse", + "DryRun" + ] + }, + "InvokeAsyncRequest":{ + "type":"structure", + "required":[ + "FunctionName", + "InvokeArgs" + ], + "members":{ + "FunctionName":{ + "shape":"FunctionName", + "location":"uri", + "locationName":"FunctionName" + }, + "InvokeArgs":{"shape":"BlobStream"} + }, + "deprecated":true, + "payload":"InvokeArgs" + }, + "InvokeAsyncResponse":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"HttpStatus", + "location":"statusCode" + } + }, + "deprecated":true + }, + "ListEventSourceMappingsRequest":{ + "type":"structure", + "members":{ + "EventSourceArn":{ + "shape":"Arn", + "location":"querystring", + "locationName":"EventSourceArn" + }, + "FunctionName":{ + "shape":"FunctionName", + "location":"querystring", + "locationName":"FunctionName" + }, + "Marker":{ + "shape":"String", + "location":"querystring", + "locationName":"Marker" + }, + "MaxItems":{ + "shape":"MaxListItems", + "location":"querystring", + "locationName":"MaxItems" + } + } + }, + "ListEventSourceMappingsResponse":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"String"}, + "EventSourceMappings":{"shape":"EventSourceMappingsList"} + } + }, + "ListFunctionsRequest":{ + "type":"structure", + "members":{ + "Marker":{ + "shape":"String", + "location":"querystring", + "locationName":"Marker" + }, + "MaxItems":{ + "shape":"MaxListItems", + "location":"querystring", + "locationName":"MaxItems" + } + } + }, + "ListFunctionsResponse":{ + "type":"structure", + "members":{ + "NextMarker":{"shape":"String"}, + "Functions":{"shape":"FunctionList"} + } + }, + "LogType":{ + "type":"string", + "enum":[ + "None", + "Tail" + ] + }, + "Long":{"type":"long"}, + "MaxListItems":{ + "type":"integer", + "min":1, + "max":10000 + }, + "MemorySize":{ + "type":"integer", + "min":128, + "max":1536 + }, + "PolicyLengthExceededException":{ + "type":"structure", + "members":{ + "Type":{"shape":"String"}, + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "Principal":{ + "type":"string", + "pattern":".*" + }, + "RemovePermissionRequest":{ + "type":"structure", + "required":[ + "FunctionName", + "StatementId" + ], + "members":{ + "FunctionName":{ + "shape":"FunctionName", + "location":"uri", + "locationName":"FunctionName" + }, + "StatementId":{ + "shape":"StatementId", + "location":"uri", + "locationName":"StatementId" + } + } + }, + "RequestTooLargeException":{ + "type":"structure", + "members":{ + "Type":{"shape":"String"}, + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":413}, + "exception":true + }, + "ResourceConflictException":{ + "type":"structure", + "members":{ + "Type":{"shape":"String"}, + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Type":{"shape":"String"}, + "Message":{"shape":"String"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "RoleArn":{ + "type":"string", + "pattern":"arn:aws:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+" + }, + "Runtime":{ + "type":"string", + "enum":["nodejs"] + }, + "S3Bucket":{ + "type":"string", + "min":3, + "max":63, + "pattern":"^[0-9A-Za-z\\.\\-_]*(?Adds a permission to the access policy associated with the specified AWS Lambda function. In a \"push event\" model, the access policy attached to the Lambda function grants Amazon S3 or a user application permission for the Lambda lambda:Invoke action. For information about the push model, see AWS Lambda: How it Works. Each Lambda function has one access policy associated with it. You can use the AddPermission API to add a permission to the policy. You have one access policy but it can have multiple permission statements.

This operation requires permission for the lambda:AddPermission action.

", + "CreateEventSourceMapping": "

Identifies a stream as an event source for a Lambda function. It can be either an Amazon Kinesis stream or an Amazon DynamoDB stream. AWS Lambda invokes the specified function when records are posted to the stream.

This is the pull model, where AWS Lambda invokes the function. For more information, go to AWS Lambda: How it Works in the AWS Lambda Developer Guide.

This association between an Amazon Kinesis stream and a Lambda function is called the event source mapping. You provide the configuration information (for example, which stream to read from and which Lambda function to invoke) for the event source mapping in the request body.

Each event source, such as an Amazon Kinesis or a DynamoDB stream, can be associated with multiple AWS Lambda function. A given Lambda function can be associated with multiple AWS event sources.

This operation requires permission for the lambda:CreateEventSourceMapping action.

", + "CreateFunction": "

Creates a new Lambda function. The function metadata is created from the request parameters, and the code for the function is provided by a .zip file in the request body. If the function name already exists, the operation will fail. Note that the function name is case-sensitive.

This operation requires permission for the lambda:CreateFunction action.

", + "DeleteEventSourceMapping": "

Removes an event source mapping. This means AWS Lambda will no longer invoke the function for events in the associated source.

This operation requires permission for the lambda:DeleteEventSourceMapping action.

", + "DeleteFunction": "

Deletes the specified Lambda function code and configuration.

When you delete a function the associated access policy is also deleted. You will need to delete the event source mappings explicitly.

This operation requires permission for the lambda:DeleteFunction action.

", + "GetEventSourceMapping": "

Returns configuration information for the specified event source mapping (see CreateEventSourceMapping).

This operation requires permission for the lambda:GetEventSourceMapping action.

", + "GetFunction": "

Returns the configuration information of the Lambda function and a presigned URL link to the .zip file you uploaded with CreateFunction so you can download the .zip file. Note that the URL is valid for up to 10 minutes. The configuration information is the same information you provided as parameters when uploading the function.

This operation requires permission for the lambda:GetFunction action.

", + "GetFunctionConfiguration": "

Returns the configuration information of the Lambda function. This the same information you provided as parameters when uploading the function by using CreateFunction.

This operation requires permission for the lambda:GetFunctionConfiguration operation.

", + "GetPolicy": "

Returns the access policy, containing a list of permissions granted via the AddPermission API, associated with the specified bucket.

You need permission for the lambda:GetPolicy action.

", + "Invoke": "

Invokes a specified Lambda function.

This operation requires permission for the lambda:InvokeFunction action.

", + "InvokeAsync": "This API is deprecated. We recommend you use Invoke API (see Invoke).

Submits an invocation request to AWS Lambda. Upon receiving the request, Lambda executes the specified function asynchronously. To see the logs generated by the Lambda function execution, see the CloudWatch logs console.

This operation requires permission for the lambda:InvokeFunction action.

", + "ListEventSourceMappings": "

Returns a list of event source mappings you created using the CreateEventSourceMapping (see CreateEventSourceMapping), where you identify a stream as an event source. This list does not include Amazon S3 event sources.

For each mapping, the API returns configuration information. You can optionally specify filters to retrieve specific event source mappings.

This operation requires permission for the lambda:ListEventSourceMappings action.

", + "ListFunctions": "

Returns a list of your Lambda functions. For each function, the response includes the function configuration information. You must use GetFunction to retrieve the code for your function.

This operation requires permission for the lambda:ListFunctions action.

", + "RemovePermission": "

You can remove individual permissions from an access policy associated with a Lambda function by providing a Statement ID.

Note that removal of a permission will cause an active event source to lose permission to the function.

You need permission for the lambda:RemovePermission action.

", + "UpdateEventSourceMapping": "

You can update an event source mapping. This is useful if you want to change the parameters of the existing mapping without losing your position in the stream. You can change which function will receive the stream records, but to change the stream itself, you must create a new mapping.

This operation requires permission for the lambda:UpdateEventSourceMapping action.

", + "UpdateFunctionCode": "

Updates the code for the specified Lambda function. This operation must only be used on an existing Lambda function and cannot be used to update the function configuration.

This operation requires permission for the lambda:UpdateFunctionCode action.

", + "UpdateFunctionConfiguration": "

Updates the configuration parameters for the specified Lambda function by using the values provided in the request. You provide only the parameters you want to change. This operation must only be used on an existing Lambda function and cannot be used to update the function's code.

This operation requires permission for the lambda:UpdateFunctionConfiguration action.

" + }, + "service": "AWS Lambda

Overview

This is the AWS Lambda API Reference. The AWS Lambda Developer Guide provides additional information. For the service overview, go to What is AWS Lambda, and for information about how the service works, go to AWS Lambda: How it Works in the AWS Lambda Developer Guide.

", + "shapes": { + "Action": { + "base": null, + "refs": { + "AddPermissionRequest$Action": "

The AWS Lambda action you want to allow in this statement. Each Lambda action is a string starting with \"lambda:\" followed by the API name (see Operations). For example, \"lambda:CreateFunction\". You can use wildcard (\"lambda:*\") to grant permission for all AWS Lambda actions.

" + } + }, + "AddPermissionRequest": { + "base": null, + "refs": { + } + }, + "AddPermissionResponse": { + "base": null, + "refs": { + } + }, + "Arn": { + "base": null, + "refs": { + "AddPermissionRequest$SourceArn": "

This is optional; however, when granting Amazon S3 permission to invoke your function, you should specify this field with the bucket Amazon Resource Name (ARN) as its value. This ensures that only events generated from the specified bucket can invoke the function.

If you add a permission for the Amazon S3 principal without providing the source ARN, any AWS account that creates a mapping to your function ARN can send events to invoke your Lambda function from Amazon S3.", + "CreateEventSourceMappingRequest$EventSourceArn": "

The Amazon Resource Name (ARN) of the Amazon Kinesis or the Amazon DynamoDB stream that is the event source. Any record added to this stream could cause AWS Lambda to invoke your Lambda function, it depends on the BatchSize. AWS Lambda POSTs the Amazon Kinesis event, containing records, to your Lambda function as JSON.

", + "EventSourceMappingConfiguration$EventSourceArn": "

The Amazon Resource Name (ARN) of the Amazon Kinesis stream that is the source of events.

", + "ListEventSourceMappingsRequest$EventSourceArn": "

The Amazon Resource Name (ARN) of the Amazon Kinesis stream.

" + } + }, + "BatchSize": { + "base": null, + "refs": { + "CreateEventSourceMappingRequest$BatchSize": "

The largest number of records that AWS Lambda will retrieve from your event source at the time of invoking your function. Your function receives an event with all the retrieved records. The default is 100 records.

", + "EventSourceMappingConfiguration$BatchSize": "

The largest number of records that AWS Lambda will retrieve from your event source at the time of invoking your function. Your function receives an event with all the retrieved records.

", + "UpdateEventSourceMappingRequest$BatchSize": "

The maximum number of stream records that can be sent to your Lambda function for a single invocation.

" + } + }, + "Blob": { + "base": null, + "refs": { + "FunctionCode$ZipFile": "

A base64-encoded .zip file containing your deployment package. For more information about creating a .zip file, go to Execution Permissions in the AWS Lambda Developer Guide.

", + "InvocationRequest$Payload": "

JSON that you want to provide to your Lambda function as input.

", + "InvocationResponse$Payload": "

It is the JSON representation of the object returned by the Lambda function. In This is present only if the invocation type is \"RequestResponse\".

In the event of a function error this field contains a message describing the error. For the Handled errors the Lambda function will report this message. For Unhandled errors AWS Lambda reports the message.

", + "UpdateFunctionCodeRequest$ZipFile": "

Based64-encoded .zip file containing your packaged source code.

" + } + }, + "BlobStream": { + "base": null, + "refs": { + "InvokeAsyncRequest$InvokeArgs": "

JSON that you want to provide to your Lambda function as input.

" + } + }, + "CodeStorageExceededException": { + "base": null, + "refs": { + } + }, + "CreateEventSourceMappingRequest": { + "base": null, + "refs": { + } + }, + "CreateFunctionRequest": { + "base": null, + "refs": { + } + }, + "Date": { + "base": null, + "refs": { + "EventSourceMappingConfiguration$LastModified": "

The UTC time string indicating the last time the event mapping was updated.

" + } + }, + "DeleteEventSourceMappingRequest": { + "base": null, + "refs": { + } + }, + "DeleteFunctionRequest": { + "base": null, + "refs": { + } + }, + "Description": { + "base": null, + "refs": { + "CreateFunctionRequest$Description": "

A short, user-defined function description. Lambda does not use this value. Assign a meaningful description as you see fit.

", + "FunctionConfiguration$Description": "

The user-provided description.

", + "UpdateFunctionConfigurationRequest$Description": "

A short user-defined function description. AWS Lambda does not use this value. Assign a meaningful description as you see fit.

" + } + }, + "Enabled": { + "base": null, + "refs": { + "CreateEventSourceMappingRequest$Enabled": "

Indicates whether AWS Lambda should begin polling the event source.

", + "UpdateEventSourceMappingRequest$Enabled": "

Specifies whether AWS Lambda should actively poll the stream or not. If disabled, AWS Lambda will not poll the stream.

" + } + }, + "EventSourceMappingConfiguration": { + "base": "

Describes mapping between an Amazon Kinesis stream and a Lambda function.

", + "refs": { + "EventSourceMappingsList$member": null + } + }, + "EventSourceMappingsList": { + "base": null, + "refs": { + "ListEventSourceMappingsResponse$EventSourceMappings": "

An array of EventSourceMappingConfiguration objects.

" + } + }, + "EventSourcePosition": { + "base": null, + "refs": { + "CreateEventSourceMappingRequest$StartingPosition": "

The position in the stream where AWS Lambda should start reading. For more information, go to ShardIteratorType in the Amazon Kinesis API Reference.

" + } + }, + "FunctionArn": { + "base": null, + "refs": { + "EventSourceMappingConfiguration$FunctionArn": "

The Lambda function to invoke when AWS Lambda detects an event on the stream.

", + "FunctionConfiguration$FunctionArn": "

The Amazon Resource Name (ARN) assigned to the function.

" + } + }, + "FunctionCode": { + "base": "

The code for the Lambda function.

", + "refs": { + "CreateFunctionRequest$Code": "

The code for the Lambda function.

" + } + }, + "FunctionCodeLocation": { + "base": "

The object for the Lambda function location.

", + "refs": { + "GetFunctionResponse$Code": null + } + }, + "FunctionConfiguration": { + "base": "

A complex type that describes function metadata.

", + "refs": { + "FunctionList$member": null, + "GetFunctionResponse$Configuration": null + } + }, + "FunctionList": { + "base": null, + "refs": { + "ListFunctionsResponse$Functions": "

A list of Lambda functions.

" + } + }, + "FunctionName": { + "base": null, + "refs": { + "AddPermissionRequest$FunctionName": "

Name of the Lambda function whose access policy you are updating by adding a new permission.

You can specify an unqualified function name (for example, \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the function (for example, \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda also allows you to specify only the account ID qualifier (for example, \"account-id:Thumbnail\"). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 character in length.

", + "CreateEventSourceMappingRequest$FunctionName": "

The Lambda function to invoke when AWS Lambda detects an event on the stream.

You can specify an unqualified function name (for example, \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the function (for example, \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda also allows you to specify only the account ID qualifier (for example, \"account-id:Thumbnail\"). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 character in length.

", + "CreateFunctionRequest$FunctionName": "

The name you want to assign to the function you are uploading. You can specify an unqualified function name (for example, \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the function (for example, \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda also allows you to specify only the account ID qualifier (for example, \"account-id:Thumbnail\"). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 character in length. The function names appear in the console and are returned in the ListFunctions API. Function names are used to specify functions to other AWS Lambda APIs, such as Invoke.

", + "DeleteFunctionRequest$FunctionName": "

The Lambda function to delete.

You can specify an unqualified function name (for example, \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the function (for example, \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda also allows you to specify only the account ID qualifier (for example, \"account-id:Thumbnail\"). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 character in length.

", + "FunctionConfiguration$FunctionName": "

The name of the function.

", + "GetFunctionConfigurationRequest$FunctionName": "

The name of the Lambda function for which you want to retrieve the configuration information.

You can specify an unqualified function name (for example, \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the function (for example, \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda also allows you to specify only the account ID qualifier (for example, \"account-id:Thumbnail\"). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 character in length.

", + "GetFunctionRequest$FunctionName": "

The Lambda function name.

You can specify an unqualified function name (for example, \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the function (for example, \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda also allows you to specify only the account ID qualifier (for example, \"account-id:Thumbnail\"). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 character in length.

", + "GetPolicyRequest$FunctionName": "

Function name whose access policy you want to retrieve.

You can specify an unqualified function name (for example, \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the function (for example, \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda also allows you to specify only the account ID qualifier (for example, \"account-id:Thumbnail\"). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 character in length.

", + "InvocationRequest$FunctionName": "

The Lambda function name.

You can specify an unqualified function name (for example, \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the function (for example, \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda also allows you to specify only the account ID qualifier (for example, \"account-id:Thumbnail\"). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 character in length.

", + "InvokeAsyncRequest$FunctionName": "

The Lambda function name.

", + "ListEventSourceMappingsRequest$FunctionName": "

The name of the Lambda function.

You can specify an unqualified function name (for example, \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the function (for example, \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda also allows you to specify only the account ID qualifier (for example, \"account-id:Thumbnail\"). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 character in length.

", + "RemovePermissionRequest$FunctionName": "

Lambda function whose access policy you want to remove a permission from.

You can specify an unqualified function name (for example, \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the function (for example, \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda also allows you to specify only the account ID qualifier (for example, \"account-id:Thumbnail\"). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 character in length.

", + "UpdateEventSourceMappingRequest$FunctionName": "

The Lambda function to which you want the stream records sent.

You can specify an unqualified function name (for example, \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the function (for example, \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda also allows you to specify only the account ID qualifier (for example, \"account-id:Thumbnail\"). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 character in length.

", + "UpdateFunctionCodeRequest$FunctionName": "

The existing Lambda function name whose code you want to replace.

You can specify an unqualified function name (for example, \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the function (for example, \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda also allows you to specify only the account ID qualifier (for example, \"account-id:Thumbnail\"). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 character in length.

", + "UpdateFunctionConfigurationRequest$FunctionName": "

The name of the Lambda function.

You can specify an unqualified function name (for example, \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the function (for example, \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda also allows you to specify only the account ID qualifier (for example, \"account-id:Thumbnail\"). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 character in length.

" + } + }, + "GetEventSourceMappingRequest": { + "base": null, + "refs": { + } + }, + "GetFunctionConfigurationRequest": { + "base": null, + "refs": { + } + }, + "GetFunctionRequest": { + "base": null, + "refs": { + } + }, + "GetFunctionResponse": { + "base": "

This response contains the object for the Lambda function location (see API_FunctionCodeLocation

", + "refs": { + } + }, + "GetPolicyRequest": { + "base": null, + "refs": { + } + }, + "GetPolicyResponse": { + "base": null, + "refs": { + } + }, + "Handler": { + "base": null, + "refs": { + "CreateFunctionRequest$Handler": "

The function within your code that Lambda calls to begin execution. For Node.js, it is the module-name.export value in your function.

", + "FunctionConfiguration$Handler": "

The function Lambda calls to begin executing your function.

", + "UpdateFunctionConfigurationRequest$Handler": "

The function that Lambda calls to begin executing your function. For Node.js, it is the module-name.export value in your function.

" + } + }, + "HttpStatus": { + "base": null, + "refs": { + "InvokeAsyncResponse$Status": "

It will be 202 upon success.

" + } + }, + "Integer": { + "base": null, + "refs": { + "InvocationResponse$StatusCode": "

The HTTP status code will be in the 200 range for successful request. For the \"RequestResonse\" invocation type this status code will be 200. For the \"Event\" invocation type this status code will be 202. For the \"DryRun\" invocation type the status code will be 204.

" + } + }, + "InvalidParameterValueException": { + "base": "

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.

", + "refs": { + } + }, + "InvalidRequestContentException": { + "base": "

The request body could not be parsed as JSON.

", + "refs": { + } + }, + "InvocationRequest": { + "base": null, + "refs": { + } + }, + "InvocationResponse": { + "base": "

Upon success, returns an empty response. Otherwise, throws an exception.

", + "refs": { + } + }, + "InvocationType": { + "base": null, + "refs": { + "InvocationRequest$InvocationType": "

By default, the Invoke API assumes \"RequestResponse\" invocation type. You can optionally request asynchronous execution by specifying \"Event\" as the InvocationType. You can also use this parameter to request AWS Lambda to not execute the function but do some verification, such as if the caller is authorized to invoke the function and if the inputs are valid. You request this by specifying \"DryRun\" as the InvocationType. This is useful in a cross-account scenario when you want to verify access to a function without running it.

" + } + }, + "InvokeAsyncRequest": { + "base": null, + "refs": { + } + }, + "InvokeAsyncResponse": { + "base": "

Upon success, it returns empty response. Otherwise, throws an exception.

", + "refs": { + } + }, + "ListEventSourceMappingsRequest": { + "base": null, + "refs": { + } + }, + "ListEventSourceMappingsResponse": { + "base": "

Contains a list of event sources (see API_EventSourceMappingConfiguration)

", + "refs": { + } + }, + "ListFunctionsRequest": { + "base": null, + "refs": { + } + }, + "ListFunctionsResponse": { + "base": "

Contains a list of AWS Lambda function configurations (see FunctionConfiguration.

", + "refs": { + } + }, + "LogType": { + "base": null, + "refs": { + "InvocationRequest$LogType": "

You can set this optional parameter to \"Tail\" in the request only if you specify the InvocationType parameter with value \"RequestResponse\". In this case, AWS Lambda returns the base64-encoded last 4 KB of log data produced by your Lambda function in the x-amz-log-results header.

" + } + }, + "Long": { + "base": null, + "refs": { + "FunctionConfiguration$CodeSize": "

The size, in bytes, of the function .zip file you uploaded.

" + } + }, + "MaxListItems": { + "base": null, + "refs": { + "ListEventSourceMappingsRequest$MaxItems": "

Optional integer. Specifies the maximum number of event sources to return in response. This value must be greater than 0.

", + "ListFunctionsRequest$MaxItems": "

Optional integer. Specifies the maximum number of AWS Lambda functions to return in response. This parameter value must be greater than 0.

" + } + }, + "MemorySize": { + "base": null, + "refs": { + "CreateFunctionRequest$MemorySize": "

The amount of memory, in MB, your Lambda function is given. Lambda uses this memory size to infer the amount of CPU and memory allocated to your function. Your function use-case determines your CPU and memory requirements. For example, a database operation might need less memory compared to an image processing function. The default value is 128 MB. The value must be a multiple of 64 MB.

", + "FunctionConfiguration$MemorySize": "

The memory size, in MB, you configured for the function. Must be a multiple of 64 MB.

", + "UpdateFunctionConfigurationRequest$MemorySize": "

The amount of memory, in MB, your Lambda function is given. AWS Lambda uses this memory size to infer the amount of CPU allocated to your function. Your function use-case determines your CPU and memory requirements. For example, a database operation might need less memory compared to an image processing function. The default value is 128 MB. The value must be a multiple of 64 MB.

" + } + }, + "PolicyLengthExceededException": { + "base": "

Lambda function access policy is limited to 20 KB.

", + "refs": { + } + }, + "Principal": { + "base": null, + "refs": { + "AddPermissionRequest$Principal": "

The principal who is getting this permission. It can be Amazon S3 service Principal (\"s3.amazonaws.com\") if you want Amazon S3 to invoke the function, an AWS account ID if you are granting cross-account permission, or any valid AWS service principal such as \"sns.amazonaws.com\". For example, you might want to allow a custom application in another AWS account to push events to AWS Lambda by invoking your function.

" + } + }, + "RemovePermissionRequest": { + "base": null, + "refs": { + } + }, + "RequestTooLargeException": { + "base": null, + "refs": { + } + }, + "ResourceConflictException": { + "base": "

The resource already exists.

", + "refs": { + } + }, + "ResourceNotFoundException": { + "base": "

The resource (for example, a Lambda function or access policy statement) specified in the request does not exist.

", + "refs": { + } + }, + "RoleArn": { + "base": null, + "refs": { + "CreateFunctionRequest$Role": "

The Amazon Resource Name (ARN) of the IAM role that Lambda assumes when it executes your function to access any other Amazon Web Services (AWS) resources. For more information, see AWS Lambda: How it Works

", + "FunctionConfiguration$Role": "

The Amazon Resource Name (ARN) of the IAM role that Lambda assumes when it executes your function to access any other Amazon Web Services (AWS) resources.

", + "UpdateFunctionConfigurationRequest$Role": "

The Amazon Resource Name (ARN) of the IAM role that Lambda will assume when it executes your function.

" + } + }, + "Runtime": { + "base": null, + "refs": { + "CreateFunctionRequest$Runtime": "

The runtime environment for the Lambda function you are uploading. Currently, Lambda supports only \"nodejs\" as the runtime.

", + "FunctionConfiguration$Runtime": "

The runtime environment for the Lambda function.

" + } + }, + "S3Bucket": { + "base": null, + "refs": { + "FunctionCode$S3Bucket": "

Amazon S3 bucket name where the .zip file containing your deployment package is stored. This bucket must reside in the same AWS region where you are creating the Lambda function.

", + "UpdateFunctionCodeRequest$S3Bucket": "

Amazon S3 bucket name where the .zip file containing your deployment package is stored. This bucket must reside in the same AWS region where you are creating the Lambda function.

" + } + }, + "S3Key": { + "base": null, + "refs": { + "FunctionCode$S3Key": "

The Amazon S3 object (the deployment package) key name you want to upload.

", + "UpdateFunctionCodeRequest$S3Key": "

The Amazon S3 object (the deployment package) key name you want to upload.

" + } + }, + "S3ObjectVersion": { + "base": null, + "refs": { + "FunctionCode$S3ObjectVersion": "

The Amazon S3 object (the deployment package) version you want to upload.

", + "UpdateFunctionCodeRequest$S3ObjectVersion": "

The Amazon S3 object (the deployment package) version you want to upload.

" + } + }, + "ServiceException": { + "base": "

The AWS Lambda service encountered an internal error.

", + "refs": { + } + }, + "SourceOwner": { + "base": null, + "refs": { + "AddPermissionRequest$SourceAccount": "

The AWS account ID (without a hyphen) of the source owner. If the SourceArn identifies a bucket, then this is the bucket owner's account ID. You can use this additional condition to ensure the bucket you specify is owned by a specific account (it is possible the bucket owner deleted the bucket and some other AWS account created the bucket). You can also use this condition to specify all sources (that is, you don't specify the SourceArn) owned by a specific account.

" + } + }, + "StatementId": { + "base": null, + "refs": { + "AddPermissionRequest$StatementId": "

A unique statement identifier.

", + "RemovePermissionRequest$StatementId": "

Statement ID of the permission to remove.

" + } + }, + "String": { + "base": null, + "refs": { + "AddPermissionResponse$Statement": "

The permission statement you specified in the request. The response returns the same as a string using \"\\\" as an escape character in the JSON.

", + "CodeStorageExceededException$Type": null, + "CodeStorageExceededException$message": null, + "DeleteEventSourceMappingRequest$UUID": "

The event source mapping ID.

", + "EventSourceMappingConfiguration$UUID": "

The AWS Lambda assigned opaque identifier for the mapping.

", + "EventSourceMappingConfiguration$LastProcessingResult": "

The result of the last AWS Lambda invocation of your Lambda function.

", + "EventSourceMappingConfiguration$State": "

The state of the event source mapping. It can be \"Creating\", \"Enabled\", \"Disabled\", \"Enabling\", \"Disabling\", \"Updating\", or \"Deleting\".

", + "EventSourceMappingConfiguration$StateTransitionReason": "

The reason the event source mapping is in its current state. It is either user-requested or an AWS Lambda-initiated state transition.

", + "FunctionCodeLocation$RepositoryType": "

The repository from which you can download the function.

", + "FunctionCodeLocation$Location": "

The presigned URL you can use to download the function's .zip file that you previously uploaded. The URL is valid for up to 10 minutes.

", + "GetEventSourceMappingRequest$UUID": "

The AWS Lambda assigned ID of the event source mapping.

", + "GetPolicyResponse$Policy": "

The access policy associated with the specified function. The response returns the same as a string using \"\\\" as an escape character in the JSON.

", + "InvalidParameterValueException$Type": null, + "InvalidParameterValueException$message": null, + "InvalidRequestContentException$Type": null, + "InvalidRequestContentException$message": null, + "InvocationRequest$ClientContext": "

Using the ClientContext you can pass client-specific information to the Lambda function you are invoking. You can then process the client information in your Lambda function as you choose through the context variable. For an example of a ClientContext JSON, go to PutEvents in the Amazon Mobile Analytics API Reference and User Guide.

The ClientContext JSON must be base64-encoded.

", + "InvocationResponse$FunctionError": "

Indicates whether an error occurred while executing the Lambda function. If an error occurred this field will have one of two values; Handled or Unhandled. Handled errors are errors that are reported by the function while the Unhandled errors are those detected and reported by AWS Lambda. Unhandled errors include out of memory errors and function timeouts. For information about how to report an Handled error, see Programming Model.

", + "InvocationResponse$LogResult": "

It is the base64-encoded logs for the Lambda function invocation. This is present only if the invocation type is \"RequestResponse\" and the logs were requested.

", + "ListEventSourceMappingsRequest$Marker": "

Optional string. An opaque pagination token returned from a previous ListEventSourceMappings operation. If present, specifies to continue the list from where the returning call left off.

", + "ListEventSourceMappingsResponse$NextMarker": "

A string, present if there are more event source mappings.

", + "ListFunctionsRequest$Marker": "

Optional string. An opaque pagination token returned from a previous ListFunctions operation. If present, indicates where to continue the listing.

", + "ListFunctionsResponse$NextMarker": "

A string, present if there are more functions.

", + "PolicyLengthExceededException$Type": null, + "PolicyLengthExceededException$message": null, + "RequestTooLargeException$Type": null, + "RequestTooLargeException$message": null, + "ResourceConflictException$Type": null, + "ResourceConflictException$message": null, + "ResourceNotFoundException$Type": null, + "ResourceNotFoundException$Message": null, + "ServiceException$Type": null, + "ServiceException$Message": null, + "TooManyRequestsException$retryAfterSeconds": "

The number of seconds the caller should wait before retrying.

", + "TooManyRequestsException$Type": null, + "TooManyRequestsException$message": null, + "UnsupportedMediaTypeException$Type": null, + "UnsupportedMediaTypeException$message": null, + "UpdateEventSourceMappingRequest$UUID": "

The event source mapping identifier.

" + } + }, + "Timeout": { + "base": null, + "refs": { + "CreateFunctionRequest$Timeout": "

The function execution time at which Lambda should terminate the function. Because the execution time has cost implications, we recommend you set this value based on your expected execution time. The default is 3 seconds.

", + "FunctionConfiguration$Timeout": "

The function execution time at which Lambda should terminate the function. Because the execution time has cost implications, we recommend you set this value based on your expected execution time. The default is 3 seconds.

", + "UpdateFunctionConfigurationRequest$Timeout": "

The function execution time at which AWS Lambda should terminate the function. Because the execution time has cost implications, we recommend you set this value based on your expected execution time. The default is 3 seconds.

" + } + }, + "Timestamp": { + "base": null, + "refs": { + "FunctionConfiguration$LastModified": "

The timestamp of the last time you updated the function.

" + } + }, + "TooManyRequestsException": { + "base": null, + "refs": { + } + }, + "UnsupportedMediaTypeException": { + "base": null, + "refs": { + } + }, + "UpdateEventSourceMappingRequest": { + "base": null, + "refs": { + } + }, + "UpdateFunctionCodeRequest": { + "base": null, + "refs": { + } + }, + "UpdateFunctionConfigurationRequest": { + "base": null, + "refs": { + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/lambda/2015-03-31/paginators-1.json b/lib/aws-sdk/Aws/data/lambda/2015-03-31/paginators-1.json new file mode 100644 index 0000000..da00fb7 --- /dev/null +++ b/lib/aws-sdk/Aws/data/lambda/2015-03-31/paginators-1.json @@ -0,0 +1,16 @@ +{ + "pagination": { + "ListEventSourceMappings": { + "input_token": "Marker", + "output_token": "NextMarker", + "limit_key": "MaxItems", + "result_key": "EventSourceMappings" + }, + "ListFunctions": { + "input_token": "Marker", + "output_token": "NextMarker", + "limit_key": "MaxItems", + "result_key": "Functions" + } + } +} diff --git a/lib/aws-sdk/Aws/data/logs/2014-03-28/api-2.json b/lib/aws-sdk/Aws/data/logs/2014-03-28/api-2.json new file mode 100644 index 0000000..8670b4f --- /dev/null +++ b/lib/aws-sdk/Aws/data/logs/2014-03-28/api-2.json @@ -0,0 +1,1069 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2014-03-28", + "endpointPrefix":"logs", + "jsonVersion":"1.1", + "serviceFullName":"Amazon CloudWatch Logs", + "signatureVersion":"v4", + "targetPrefix":"Logs_20140328", + "protocol":"json" + }, + "operations":{ + "CreateLogGroup":{ + "name":"CreateLogGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateLogGroupRequest"}, + "errors":[ + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ResourceAlreadyExistsException", + "exception":true + }, + { + "shape":"LimitExceededException", + "exception":true + }, + { + "shape":"OperationAbortedException", + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "exception":true, + "fault":true + } + ] + }, + "CreateLogStream":{ + "name":"CreateLogStream", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateLogStreamRequest"}, + "errors":[ + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ResourceAlreadyExistsException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "exception":true, + "fault":true + } + ] + }, + "DeleteLogGroup":{ + "name":"DeleteLogGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteLogGroupRequest"}, + "errors":[ + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"OperationAbortedException", + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "exception":true, + "fault":true + } + ] + }, + "DeleteLogStream":{ + "name":"DeleteLogStream", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteLogStreamRequest"}, + "errors":[ + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"OperationAbortedException", + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "exception":true, + "fault":true + } + ] + }, + "DeleteMetricFilter":{ + "name":"DeleteMetricFilter", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteMetricFilterRequest"}, + "errors":[ + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"OperationAbortedException", + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "exception":true, + "fault":true + } + ] + }, + "DeleteRetentionPolicy":{ + "name":"DeleteRetentionPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRetentionPolicyRequest"}, + "errors":[ + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"OperationAbortedException", + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "exception":true, + "fault":true + } + ] + }, + "DeleteSubscriptionFilter":{ + "name":"DeleteSubscriptionFilter", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteSubscriptionFilterRequest"}, + "errors":[ + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"OperationAbortedException", + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "exception":true, + "fault":true + } + ] + }, + "DescribeLogGroups":{ + "name":"DescribeLogGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeLogGroupsRequest"}, + "output":{"shape":"DescribeLogGroupsResponse"}, + "errors":[ + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "exception":true, + "fault":true + } + ] + }, + "DescribeLogStreams":{ + "name":"DescribeLogStreams", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeLogStreamsRequest"}, + "output":{"shape":"DescribeLogStreamsResponse"}, + "errors":[ + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "exception":true, + "fault":true + } + ] + }, + "DescribeMetricFilters":{ + "name":"DescribeMetricFilters", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeMetricFiltersRequest"}, + "output":{"shape":"DescribeMetricFiltersResponse"}, + "errors":[ + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "exception":true, + "fault":true + } + ] + }, + "DescribeSubscriptionFilters":{ + "name":"DescribeSubscriptionFilters", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSubscriptionFiltersRequest"}, + "output":{"shape":"DescribeSubscriptionFiltersResponse"}, + "errors":[ + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "exception":true, + "fault":true + } + ] + }, + "FilterLogEvents":{ + "name":"FilterLogEvents", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"FilterLogEventsRequest"}, + "output":{"shape":"FilterLogEventsResponse"}, + "errors":[ + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "exception":true, + "fault":true + } + ] + }, + "GetLogEvents":{ + "name":"GetLogEvents", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetLogEventsRequest"}, + "output":{"shape":"GetLogEventsResponse"}, + "errors":[ + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "exception":true, + "fault":true + } + ] + }, + "PutLogEvents":{ + "name":"PutLogEvents", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutLogEventsRequest"}, + "output":{"shape":"PutLogEventsResponse"}, + "errors":[ + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"InvalidSequenceTokenException", + "exception":true + }, + { + "shape":"DataAlreadyAcceptedException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"OperationAbortedException", + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "exception":true, + "fault":true + } + ] + }, + "PutMetricFilter":{ + "name":"PutMetricFilter", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutMetricFilterRequest"}, + "errors":[ + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"OperationAbortedException", + "exception":true + }, + { + "shape":"LimitExceededException", + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "exception":true, + "fault":true + } + ] + }, + "PutRetentionPolicy":{ + "name":"PutRetentionPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutRetentionPolicyRequest"}, + "errors":[ + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"OperationAbortedException", + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "exception":true, + "fault":true + } + ] + }, + "PutSubscriptionFilter":{ + "name":"PutSubscriptionFilter", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutSubscriptionFilterRequest"}, + "errors":[ + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + }, + { + "shape":"OperationAbortedException", + "exception":true + }, + { + "shape":"LimitExceededException", + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "exception":true, + "fault":true + } + ] + }, + "TestMetricFilter":{ + "name":"TestMetricFilter", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TestMetricFilterRequest"}, + "output":{"shape":"TestMetricFilterResponse"}, + "errors":[ + { + "shape":"InvalidParameterException", + "exception":true + }, + { + "shape":"ServiceUnavailableException", + "exception":true, + "fault":true + } + ] + } + }, + "shapes":{ + "Arn":{"type":"string"}, + "CreateLogGroupRequest":{ + "type":"structure", + "required":["logGroupName"], + "members":{ + "logGroupName":{"shape":"LogGroupName"} + } + }, + "CreateLogStreamRequest":{ + "type":"structure", + "required":[ + "logGroupName", + "logStreamName" + ], + "members":{ + "logGroupName":{"shape":"LogGroupName"}, + "logStreamName":{"shape":"LogStreamName"} + } + }, + "DataAlreadyAcceptedException":{ + "type":"structure", + "members":{ + "expectedSequenceToken":{"shape":"SequenceToken"} + }, + "exception":true + }, + "Days":{"type":"integer"}, + "DeleteLogGroupRequest":{ + "type":"structure", + "required":["logGroupName"], + "members":{ + "logGroupName":{"shape":"LogGroupName"} + } + }, + "DeleteLogStreamRequest":{ + "type":"structure", + "required":[ + "logGroupName", + "logStreamName" + ], + "members":{ + "logGroupName":{"shape":"LogGroupName"}, + "logStreamName":{"shape":"LogStreamName"} + } + }, + "DeleteMetricFilterRequest":{ + "type":"structure", + "required":[ + "logGroupName", + "filterName" + ], + "members":{ + "logGroupName":{"shape":"LogGroupName"}, + "filterName":{"shape":"FilterName"} + } + }, + "DeleteRetentionPolicyRequest":{ + "type":"structure", + "required":["logGroupName"], + "members":{ + "logGroupName":{"shape":"LogGroupName"} + } + }, + "DeleteSubscriptionFilterRequest":{ + "type":"structure", + "required":[ + "logGroupName", + "filterName" + ], + "members":{ + "logGroupName":{"shape":"LogGroupName"}, + "filterName":{"shape":"FilterName"} + } + }, + "Descending":{"type":"boolean"}, + "DescribeLimit":{ + "type":"integer", + "min":1, + "max":50 + }, + "DescribeLogGroupsRequest":{ + "type":"structure", + "members":{ + "logGroupNamePrefix":{"shape":"LogGroupName"}, + "nextToken":{"shape":"NextToken"}, + "limit":{"shape":"DescribeLimit"} + } + }, + "DescribeLogGroupsResponse":{ + "type":"structure", + "members":{ + "logGroups":{"shape":"LogGroups"}, + "nextToken":{"shape":"NextToken"} + } + }, + "DescribeLogStreamsRequest":{ + "type":"structure", + "required":["logGroupName"], + "members":{ + "logGroupName":{"shape":"LogGroupName"}, + "logStreamNamePrefix":{"shape":"LogStreamName"}, + "orderBy":{"shape":"OrderBy"}, + "descending":{"shape":"Descending"}, + "nextToken":{"shape":"NextToken"}, + "limit":{"shape":"DescribeLimit"} + } + }, + "DescribeLogStreamsResponse":{ + "type":"structure", + "members":{ + "logStreams":{"shape":"LogStreams"}, + "nextToken":{"shape":"NextToken"} + } + }, + "DescribeMetricFiltersRequest":{ + "type":"structure", + "required":["logGroupName"], + "members":{ + "logGroupName":{"shape":"LogGroupName"}, + "filterNamePrefix":{"shape":"FilterName"}, + "nextToken":{"shape":"NextToken"}, + "limit":{"shape":"DescribeLimit"} + } + }, + "DescribeMetricFiltersResponse":{ + "type":"structure", + "members":{ + "metricFilters":{"shape":"MetricFilters"}, + "nextToken":{"shape":"NextToken"} + } + }, + "DescribeSubscriptionFiltersRequest":{ + "type":"structure", + "required":["logGroupName"], + "members":{ + "logGroupName":{"shape":"LogGroupName"}, + "filterNamePrefix":{"shape":"FilterName"}, + "nextToken":{"shape":"NextToken"}, + "limit":{"shape":"DescribeLimit"} + } + }, + "DescribeSubscriptionFiltersResponse":{ + "type":"structure", + "members":{ + "subscriptionFilters":{"shape":"SubscriptionFilters"}, + "nextToken":{"shape":"NextToken"} + } + }, + "DestinationArn":{ + "type":"string", + "min":1 + }, + "EventId":{"type":"string"}, + "EventMessage":{ + "type":"string", + "min":1 + }, + "EventNumber":{"type":"long"}, + "EventsLimit":{ + "type":"integer", + "min":1, + "max":10000 + }, + "ExtractedValues":{ + "type":"map", + "key":{"shape":"Token"}, + "value":{"shape":"Value"} + }, + "FilterCount":{"type":"integer"}, + "FilterLogEventsRequest":{ + "type":"structure", + "required":["logGroupName"], + "members":{ + "logGroupName":{"shape":"LogGroupName"}, + "logStreamNames":{"shape":"InputLogStreamNames"}, + "startTime":{"shape":"Timestamp"}, + "endTime":{"shape":"Timestamp"}, + "filterPattern":{"shape":"FilterPattern"}, + "nextToken":{"shape":"NextToken"}, + "limit":{"shape":"EventsLimit"}, + "interleaved":{"shape":"Interleaved"} + } + }, + "FilterLogEventsResponse":{ + "type":"structure", + "members":{ + "events":{"shape":"FilteredLogEvents"}, + "searchedLogStreams":{"shape":"SearchedLogStreams"}, + "nextToken":{"shape":"NextToken"} + } + }, + "FilterName":{ + "type":"string", + "min":1, + "max":512, + "pattern":"[^:*]*" + }, + "FilterPattern":{ + "type":"string", + "min":0, + "max":512 + }, + "FilteredLogEvent":{ + "type":"structure", + "members":{ + "logStreamName":{"shape":"LogStreamName"}, + "timestamp":{"shape":"Timestamp"}, + "message":{"shape":"EventMessage"}, + "ingestionTime":{"shape":"Timestamp"}, + "eventId":{"shape":"EventId"} + } + }, + "FilteredLogEvents":{ + "type":"list", + "member":{"shape":"FilteredLogEvent"} + }, + "GetLogEventsRequest":{ + "type":"structure", + "required":[ + "logGroupName", + "logStreamName" + ], + "members":{ + "logGroupName":{"shape":"LogGroupName"}, + "logStreamName":{"shape":"LogStreamName"}, + "startTime":{"shape":"Timestamp"}, + "endTime":{"shape":"Timestamp"}, + "nextToken":{"shape":"NextToken"}, + "limit":{"shape":"EventsLimit"}, + "startFromHead":{"shape":"StartFromHead"} + } + }, + "GetLogEventsResponse":{ + "type":"structure", + "members":{ + "events":{"shape":"OutputLogEvents"}, + "nextForwardToken":{"shape":"NextToken"}, + "nextBackwardToken":{"shape":"NextToken"} + } + }, + "InputLogEvent":{ + "type":"structure", + "required":[ + "timestamp", + "message" + ], + "members":{ + "timestamp":{"shape":"Timestamp"}, + "message":{"shape":"EventMessage"} + } + }, + "InputLogEvents":{ + "type":"list", + "member":{"shape":"InputLogEvent"}, + "min":1, + "max":10000 + }, + "InputLogStreamNames":{ + "type":"list", + "member":{"shape":"LogStreamName"}, + "min":1, + "max":100 + }, + "Interleaved":{"type":"boolean"}, + "InvalidParameterException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidSequenceTokenException":{ + "type":"structure", + "members":{ + "expectedSequenceToken":{"shape":"SequenceToken"} + }, + "exception":true + }, + "LimitExceededException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "LogEventIndex":{"type":"integer"}, + "LogGroup":{ + "type":"structure", + "members":{ + "logGroupName":{"shape":"LogGroupName"}, + "creationTime":{"shape":"Timestamp"}, + "retentionInDays":{"shape":"Days"}, + "metricFilterCount":{"shape":"FilterCount"}, + "arn":{"shape":"Arn"}, + "storedBytes":{"shape":"StoredBytes"} + } + }, + "LogGroupName":{ + "type":"string", + "min":1, + "max":512, + "pattern":"[\\.\\-_/#A-Za-z0-9]+" + }, + "LogGroups":{ + "type":"list", + "member":{"shape":"LogGroup"} + }, + "LogStream":{ + "type":"structure", + "members":{ + "logStreamName":{"shape":"LogStreamName"}, + "creationTime":{"shape":"Timestamp"}, + "firstEventTimestamp":{"shape":"Timestamp"}, + "lastEventTimestamp":{"shape":"Timestamp"}, + "lastIngestionTime":{"shape":"Timestamp"}, + "uploadSequenceToken":{"shape":"SequenceToken"}, + "arn":{"shape":"Arn"}, + "storedBytes":{"shape":"StoredBytes"} + } + }, + "LogStreamName":{ + "type":"string", + "min":1, + "max":512, + "pattern":"[^:*]*" + }, + "LogStreamSearchedCompletely":{"type":"boolean"}, + "LogStreams":{ + "type":"list", + "member":{"shape":"LogStream"} + }, + "MetricFilter":{ + "type":"structure", + "members":{ + "filterName":{"shape":"FilterName"}, + "filterPattern":{"shape":"FilterPattern"}, + "metricTransformations":{"shape":"MetricTransformations"}, + "creationTime":{"shape":"Timestamp"} + } + }, + "MetricFilterMatchRecord":{ + "type":"structure", + "members":{ + "eventNumber":{"shape":"EventNumber"}, + "eventMessage":{"shape":"EventMessage"}, + "extractedValues":{"shape":"ExtractedValues"} + } + }, + "MetricFilterMatches":{ + "type":"list", + "member":{"shape":"MetricFilterMatchRecord"} + }, + "MetricFilters":{ + "type":"list", + "member":{"shape":"MetricFilter"} + }, + "MetricName":{ + "type":"string", + "max":255, + "pattern":"[^:*$]*" + }, + "MetricNamespace":{ + "type":"string", + "max":255, + "pattern":"[^:*$]*" + }, + "MetricTransformation":{ + "type":"structure", + "required":[ + "metricName", + "metricNamespace", + "metricValue" + ], + "members":{ + "metricName":{"shape":"MetricName"}, + "metricNamespace":{"shape":"MetricNamespace"}, + "metricValue":{"shape":"MetricValue"} + } + }, + "MetricTransformations":{ + "type":"list", + "member":{"shape":"MetricTransformation"}, + "min":1, + "max":1 + }, + "MetricValue":{ + "type":"string", + "max":100 + }, + "NextToken":{ + "type":"string", + "min":1 + }, + "OperationAbortedException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "OrderBy":{ + "type":"string", + "enum":[ + "LogStreamName", + "LastEventTime" + ] + }, + "OutputLogEvent":{ + "type":"structure", + "members":{ + "timestamp":{"shape":"Timestamp"}, + "message":{"shape":"EventMessage"}, + "ingestionTime":{"shape":"Timestamp"} + } + }, + "OutputLogEvents":{ + "type":"list", + "member":{"shape":"OutputLogEvent"} + }, + "PutLogEventsRequest":{ + "type":"structure", + "required":[ + "logGroupName", + "logStreamName", + "logEvents" + ], + "members":{ + "logGroupName":{"shape":"LogGroupName"}, + "logStreamName":{"shape":"LogStreamName"}, + "logEvents":{"shape":"InputLogEvents"}, + "sequenceToken":{"shape":"SequenceToken"} + } + }, + "PutLogEventsResponse":{ + "type":"structure", + "members":{ + "nextSequenceToken":{"shape":"SequenceToken"}, + "rejectedLogEventsInfo":{"shape":"RejectedLogEventsInfo"} + } + }, + "PutMetricFilterRequest":{ + "type":"structure", + "required":[ + "logGroupName", + "filterName", + "filterPattern", + "metricTransformations" + ], + "members":{ + "logGroupName":{"shape":"LogGroupName"}, + "filterName":{"shape":"FilterName"}, + "filterPattern":{"shape":"FilterPattern"}, + "metricTransformations":{"shape":"MetricTransformations"} + } + }, + "PutRetentionPolicyRequest":{ + "type":"structure", + "required":[ + "logGroupName", + "retentionInDays" + ], + "members":{ + "logGroupName":{"shape":"LogGroupName"}, + "retentionInDays":{"shape":"Days"} + } + }, + "PutSubscriptionFilterRequest":{ + "type":"structure", + "required":[ + "logGroupName", + "filterName", + "filterPattern", + "destinationArn", + "roleArn" + ], + "members":{ + "logGroupName":{"shape":"LogGroupName"}, + "filterName":{"shape":"FilterName"}, + "filterPattern":{"shape":"FilterPattern"}, + "destinationArn":{"shape":"DestinationArn"}, + "roleArn":{"shape":"RoleArn"} + } + }, + "RejectedLogEventsInfo":{ + "type":"structure", + "members":{ + "tooNewLogEventStartIndex":{"shape":"LogEventIndex"}, + "tooOldLogEventEndIndex":{"shape":"LogEventIndex"}, + "expiredLogEventEndIndex":{"shape":"LogEventIndex"} + } + }, + "ResourceAlreadyExistsException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "RoleArn":{ + "type":"string", + "min":1 + }, + "SearchedLogStream":{ + "type":"structure", + "members":{ + "logStreamName":{"shape":"LogStreamName"}, + "searchedCompletely":{"shape":"LogStreamSearchedCompletely"} + } + }, + "SearchedLogStreams":{ + "type":"list", + "member":{"shape":"SearchedLogStream"} + }, + "SequenceToken":{ + "type":"string", + "min":1 + }, + "ServiceUnavailableException":{ + "type":"structure", + "members":{ + }, + "exception":true, + "fault":true + }, + "StartFromHead":{"type":"boolean"}, + "StoredBytes":{ + "type":"long", + "min":0 + }, + "SubscriptionFilter":{ + "type":"structure", + "members":{ + "filterName":{"shape":"FilterName"}, + "logGroupName":{"shape":"LogGroupName"}, + "filterPattern":{"shape":"FilterPattern"}, + "destinationArn":{"shape":"DestinationArn"}, + "roleArn":{"shape":"RoleArn"}, + "creationTime":{"shape":"Timestamp"} + } + }, + "SubscriptionFilters":{ + "type":"list", + "member":{"shape":"SubscriptionFilter"} + }, + "TestEventMessages":{ + "type":"list", + "member":{"shape":"EventMessage"}, + "min":1, + "max":50 + }, + "TestMetricFilterRequest":{ + "type":"structure", + "required":[ + "filterPattern", + "logEventMessages" + ], + "members":{ + "filterPattern":{"shape":"FilterPattern"}, + "logEventMessages":{"shape":"TestEventMessages"} + } + }, + "TestMetricFilterResponse":{ + "type":"structure", + "members":{ + "matches":{"shape":"MetricFilterMatches"} + } + }, + "Timestamp":{ + "type":"long", + "min":0 + }, + "Token":{"type":"string"}, + "Value":{"type":"string"} + } +} diff --git a/lib/aws-sdk/Aws/data/logs/2014-03-28/docs-2.json b/lib/aws-sdk/Aws/data/logs/2014-03-28/docs-2.json new file mode 100644 index 0000000..e55d7ec --- /dev/null +++ b/lib/aws-sdk/Aws/data/logs/2014-03-28/docs-2.json @@ -0,0 +1,599 @@ +{ + "version": "2.0", + "operations": { + "CreateLogGroup": "

Creates a new log group with the specified name. The name of the log group must be unique within a region for an AWS account. You can create up to 500 log groups per account.

You must use the following guidelines when naming a log group:

  • Log group names can be between 1 and 512 characters long.
  • Allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period).

", + "CreateLogStream": "

Creates a new log stream in the specified log group. The name of the log stream must be unique within the log group. There is no limit on the number of log streams that can exist in a log group.

You must use the following guidelines when naming a log stream:

  • Log stream names can be between 1 and 512 characters long.
  • The ':' colon character is not allowed.

", + "DeleteLogGroup": "

Deletes the log group with the specified name and permanently deletes all the archived log events associated with it.

", + "DeleteLogStream": "

Deletes a log stream and permanently deletes all the archived log events associated with it.

", + "DeleteMetricFilter": "

Deletes a metric filter associated with the specified log group.

", + "DeleteRetentionPolicy": "

Deletes the retention policy of the specified log group. Log events would not expire if they belong to log groups without a retention policy.

", + "DeleteSubscriptionFilter": "

Deletes a subscription filter associated with the specified log group.

", + "DescribeLogGroups": "

Returns all the log groups that are associated with the AWS account making the request. The list returned in the response is ASCII-sorted by log group name.

By default, this operation returns up to 50 log groups. If there are more log groups to list, the response would contain a nextToken value in the response body. You can also limit the number of log groups returned in the response by specifying the limit parameter in the request.

", + "DescribeLogStreams": "

Returns all the log streams that are associated with the specified log group. The list returned in the response is ASCII-sorted by log stream name.

By default, this operation returns up to 50 log streams. If there are more log streams to list, the response would contain a nextToken value in the response body. You can also limit the number of log streams returned in the response by specifying the limit parameter in the request. This operation has a limit of five transactions per second, after which transactions are throttled.

", + "DescribeMetricFilters": "

Returns all the metrics filters associated with the specified log group. The list returned in the response is ASCII-sorted by filter name.

By default, this operation returns up to 50 metric filters. If there are more metric filters to list, the response would contain a nextToken value in the response body. You can also limit the number of metric filters returned in the response by specifying the limit parameter in the request.

", + "DescribeSubscriptionFilters": "

Returns all the subscription filters associated with the specified log group. The list returned in the response is ASCII-sorted by filter name.

By default, this operation returns up to 50 subscription filters. If there are more subscription filters to list, the response would contain a nextToken value in the response body. You can also limit the number of subscription filters returned in the response by specifying the limit parameter in the request.

", + "FilterLogEvents": "

Retrieves log events, optionally filtered by a filter pattern from the specified log group. You can provide an optional time range to filter the results on the event timestamp. You can limit the streams searched to an explicit list of logStreamNames.

By default, this operation returns as much matching log events as can fit in a response size of 1MB, up to 10,000 log events, or all the events found within a time-bounded scan window. If the response includes a nextToken, then there is more data to search, and the search can be resumed with a new request providing the nextToken. The response will contain a list of searchedLogStreams that contains information about which streams were searched in the request and whether they have been searched completely or require further pagination. The limit parameter in the request. can be used to specify the maximum number of events to return in a page.

", + "GetLogEvents": "

Retrieves log events from the specified log stream. You can provide an optional time range to filter the results on the event timestamp.

By default, this operation returns as much log events as can fit in a response size of 1MB, up to 10,000 log events. The response will always include a nextForwardToken and a nextBackwardToken in the response body. You can use any of these tokens in subsequent GetLogEvents requests to paginate through events in either forward or backward direction. You can also limit the number of log events returned in the response by specifying the limit parameter in the request.

", + "PutLogEvents": "

Uploads a batch of log events to the specified log stream.

Every PutLogEvents request must include the sequenceToken obtained from the response of the previous request. An upload in a newly created log stream does not require a sequenceToken.

The batch of events must satisfy the following constraints:

  • The maximum batch size is 1,048,576 bytes, and this size is calculated as the sum of all event messages in UTF-8, plus 26 bytes for each log event.
  • None of the log events in the batch can be more than 2 hours in the future.
  • None of the log events in the batch can be older than 14 days or the retention period of the log group.
  • The log events in the batch must be in chronological ordered by their timestamp.
  • The maximum number of log events in a batch is 10,000.

", + "PutMetricFilter": "

Creates or updates a metric filter and associates it with the specified log group. Metric filters allow you to configure rules to extract metric data from log events ingested through PutLogEvents requests.

The maximum number of metric filters that can be associated with a log group is 100.

", + "PutRetentionPolicy": "

Sets the retention of the specified log group. A retention policy allows you to configure the number of days you want to retain log events in the specified log group.

", + "PutSubscriptionFilter": "

Creates or updates a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events ingested through PutLogEvents requests and have them delivered to a specific destination. Currently the only supported destination is an Amazon Kinesis stream belonging to the same account as the subscription filter.

Currently there can only be one subscription filter associated with a log group.

", + "TestMetricFilter": "

Tests the filter pattern of a metric filter against a sample of log event messages. You can use this operation to validate the correctness of a metric filter pattern.

" + }, + "service": "Amazon CloudWatch Logs API Reference

This is the Amazon CloudWatch Logs API Reference. Amazon CloudWatch Logs enables you to monitor, store, and access your system, application, and custom log files. This guide provides detailed information about Amazon CloudWatch Logs actions, data types, parameters, and errors. For detailed information about Amazon CloudWatch Logs features and their associated API calls, go to the Amazon CloudWatch Developer Guide.

Use the following links to get started using the Amazon CloudWatch Logs API Reference:

  • Actions: An alphabetical list of all Amazon CloudWatch Logs actions.
  • Data Types: An alphabetical list of all Amazon CloudWatch Logs data types.
  • Common Parameters: Parameters that all Query actions can use.
  • Common Errors: Client and server errors that all actions can return.
  • Regions and Endpoints: Itemized regions and endpoints for all AWS products.

In addition to using the Amazon CloudWatch Logs API, you can also use the following SDKs and third-party libraries to access Amazon CloudWatch Logs programmatically.

Developers in the AWS developer community also provide their own libraries, which you can find at the following AWS developer centers:

", + "shapes": { + "Arn": { + "base": null, + "refs": { + "LogGroup$arn": null, + "LogStream$arn": null + } + }, + "CreateLogGroupRequest": { + "base": null, + "refs": { + } + }, + "CreateLogStreamRequest": { + "base": null, + "refs": { + } + }, + "DataAlreadyAcceptedException": { + "base": null, + "refs": { + } + }, + "Days": { + "base": "

Specifies the number of days you want to retain log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, 3653.

", + "refs": { + "LogGroup$retentionInDays": null, + "PutRetentionPolicyRequest$retentionInDays": null + } + }, + "DeleteLogGroupRequest": { + "base": null, + "refs": { + } + }, + "DeleteLogStreamRequest": { + "base": null, + "refs": { + } + }, + "DeleteMetricFilterRequest": { + "base": null, + "refs": { + } + }, + "DeleteRetentionPolicyRequest": { + "base": null, + "refs": { + } + }, + "DeleteSubscriptionFilterRequest": { + "base": null, + "refs": { + } + }, + "Descending": { + "base": null, + "refs": { + "DescribeLogStreamsRequest$descending": "

If set to true, results are returned in descending order. If you don't specify a value or set it to false, results are returned in ascending order.

" + } + }, + "DescribeLimit": { + "base": "

The maximum number of results to return.

", + "refs": { + "DescribeLogGroupsRequest$limit": "

The maximum number of items returned in the response. If you don't specify a value, the request would return up to 50 items.

", + "DescribeLogStreamsRequest$limit": "

The maximum number of items returned in the response. If you don't specify a value, the request would return up to 50 items.

", + "DescribeMetricFiltersRequest$limit": "

The maximum number of items returned in the response. If you don't specify a value, the request would return up to 50 items.

", + "DescribeSubscriptionFiltersRequest$limit": null + } + }, + "DescribeLogGroupsRequest": { + "base": null, + "refs": { + } + }, + "DescribeLogGroupsResponse": { + "base": null, + "refs": { + } + }, + "DescribeLogStreamsRequest": { + "base": null, + "refs": { + } + }, + "DescribeLogStreamsResponse": { + "base": null, + "refs": { + } + }, + "DescribeMetricFiltersRequest": { + "base": null, + "refs": { + } + }, + "DescribeMetricFiltersResponse": { + "base": null, + "refs": { + } + }, + "DescribeSubscriptionFiltersRequest": { + "base": null, + "refs": { + } + }, + "DescribeSubscriptionFiltersResponse": { + "base": null, + "refs": { + } + }, + "DestinationArn": { + "base": null, + "refs": { + "PutSubscriptionFilterRequest$destinationArn": "

The ARN of an Amazon Kinesis stream to deliver matching log events to.

", + "SubscriptionFilter$destinationArn": null + } + }, + "EventId": { + "base": null, + "refs": { + "FilteredLogEvent$eventId": "

A unique identifier for this event.

" + } + }, + "EventMessage": { + "base": null, + "refs": { + "FilteredLogEvent$message": "

The data contained in the log event.

", + "InputLogEvent$message": null, + "MetricFilterMatchRecord$eventMessage": null, + "OutputLogEvent$message": null, + "TestEventMessages$member": null + } + }, + "EventNumber": { + "base": null, + "refs": { + "MetricFilterMatchRecord$eventNumber": null + } + }, + "EventsLimit": { + "base": "

The maximum number of events to return.

", + "refs": { + "FilterLogEventsRequest$limit": "

The maximum number of events to return in a page of results. Default is 10,000 events.

", + "GetLogEventsRequest$limit": "

The maximum number of log events returned in the response. If you don't specify a value, the request would return as many log events as can fit in a response size of 1MB, up to 10,000 log events.

" + } + }, + "ExtractedValues": { + "base": null, + "refs": { + "MetricFilterMatchRecord$extractedValues": null + } + }, + "FilterCount": { + "base": "

The number of metric filters associated with the log group.

", + "refs": { + "LogGroup$metricFilterCount": null + } + }, + "FilterLogEventsRequest": { + "base": null, + "refs": { + } + }, + "FilterLogEventsResponse": { + "base": null, + "refs": { + } + }, + "FilterName": { + "base": "

A name for a metric or subscription filter.

", + "refs": { + "DeleteMetricFilterRequest$filterName": "

The name of the metric filter to delete.

", + "DeleteSubscriptionFilterRequest$filterName": "

The name of the subscription filter to delete.

", + "DescribeMetricFiltersRequest$filterNamePrefix": "

Will only return metric filters that match the provided filterNamePrefix. If you don't specify a value, no prefix filter is applied.

", + "DescribeSubscriptionFiltersRequest$filterNamePrefix": "

Will only return subscription filters that match the provided filterNamePrefix. If you don't specify a value, no prefix filter is applied.

", + "MetricFilter$filterName": null, + "PutMetricFilterRequest$filterName": "

A name for the metric filter.

", + "PutSubscriptionFilterRequest$filterName": "

A name for the subscription filter.

", + "SubscriptionFilter$filterName": null + } + }, + "FilterPattern": { + "base": "

A symbolic description of how Amazon CloudWatch Logs should interpret the data in each log event. For example, a log event may contain timestamps, IP addresses, strings, and so on. You use the filter pattern to specify what to look for in the log event message.

", + "refs": { + "FilterLogEventsRequest$filterPattern": "

A valid CloudWatch Logs filter pattern to use for filtering the response. If not provided, all the events are matched.

", + "MetricFilter$filterPattern": null, + "PutMetricFilterRequest$filterPattern": "

A valid CloudWatch Logs filter pattern for extracting metric data out of ingested log events.

", + "PutSubscriptionFilterRequest$filterPattern": "

A valid CloudWatch Logs filter pattern for subscribing to a filtered stream of log events.

", + "SubscriptionFilter$filterPattern": null, + "TestMetricFilterRequest$filterPattern": null + } + }, + "FilteredLogEvent": { + "base": "

Represents a matched event from a FilterLogEvents request.

", + "refs": { + "FilteredLogEvents$member": null + } + }, + "FilteredLogEvents": { + "base": "

A list of matched FilteredLogEvent objects returned from a FilterLogEvents request.

", + "refs": { + "FilterLogEventsResponse$events": "

A list of FilteredLogEvent objects representing the matched events from the request.

" + } + }, + "GetLogEventsRequest": { + "base": null, + "refs": { + } + }, + "GetLogEventsResponse": { + "base": null, + "refs": { + } + }, + "InputLogEvent": { + "base": "

A log event is a record of some activity that was recorded by the application or resource being monitored. The log event record that Amazon CloudWatch Logs understands contains two properties: the timestamp of when the event occurred, and the raw event message.

", + "refs": { + "InputLogEvents$member": null + } + }, + "InputLogEvents": { + "base": "

A list of log events belonging to a log stream.

", + "refs": { + "PutLogEventsRequest$logEvents": null + } + }, + "InputLogStreamNames": { + "base": "

A list of log stream names.

", + "refs": { + "FilterLogEventsRequest$logStreamNames": "

Optional list of log stream names within the specified log group to search. Defaults to all the log streams in the log group.

" + } + }, + "Interleaved": { + "base": null, + "refs": { + "FilterLogEventsRequest$interleaved": "

If provided, the API will make a best effort to provide responses that contain events from multiple log streams within the log group interleaved in a single response. If not provided, all the matched log events in the first log stream will be searched first, then those in the next log stream, etc.

" + } + }, + "InvalidParameterException": { + "base": "

Returned if a parameter of the request is incorrectly specified.

", + "refs": { + } + }, + "InvalidSequenceTokenException": { + "base": null, + "refs": { + } + }, + "LimitExceededException": { + "base": "

Returned if you have reached the maximum number of resources that can be created.

", + "refs": { + } + }, + "LogEventIndex": { + "base": null, + "refs": { + "RejectedLogEventsInfo$tooNewLogEventStartIndex": null, + "RejectedLogEventsInfo$tooOldLogEventEndIndex": null, + "RejectedLogEventsInfo$expiredLogEventEndIndex": null + } + }, + "LogGroup": { + "base": null, + "refs": { + "LogGroups$member": null + } + }, + "LogGroupName": { + "base": null, + "refs": { + "CreateLogGroupRequest$logGroupName": "

The name of the log group to create.

", + "CreateLogStreamRequest$logGroupName": "

The name of the log group under which the log stream is to be created.

", + "DeleteLogGroupRequest$logGroupName": "

The name of the log group to delete.

", + "DeleteLogStreamRequest$logGroupName": "

The name of the log group under which the log stream to delete belongs.

", + "DeleteMetricFilterRequest$logGroupName": "

The name of the log group that is associated with the metric filter to delete.

", + "DeleteRetentionPolicyRequest$logGroupName": "

The name of the log group that is associated with the retention policy to delete.

", + "DeleteSubscriptionFilterRequest$logGroupName": "

The name of the log group that is associated with the subscription filter to delete.

", + "DescribeLogGroupsRequest$logGroupNamePrefix": "

Will only return log groups that match the provided logGroupNamePrefix. If you don't specify a value, no prefix filter is applied.

", + "DescribeLogStreamsRequest$logGroupName": "

The log group name for which log streams are to be listed.

", + "DescribeMetricFiltersRequest$logGroupName": "

The log group name for which metric filters are to be listed.

", + "DescribeSubscriptionFiltersRequest$logGroupName": "

The log group name for which subscription filters are to be listed.

", + "FilterLogEventsRequest$logGroupName": "

The name of the log group to query.

", + "GetLogEventsRequest$logGroupName": "

The name of the log group to query.

", + "LogGroup$logGroupName": null, + "PutLogEventsRequest$logGroupName": "

The name of the log group to put log events to.

", + "PutMetricFilterRequest$logGroupName": "

The name of the log group to associate the metric filter with.

", + "PutRetentionPolicyRequest$logGroupName": "

The name of the log group to associate the retention policy with.

", + "PutSubscriptionFilterRequest$logGroupName": "

The name of the log group to associate the subscription filter with.

", + "SubscriptionFilter$logGroupName": null + } + }, + "LogGroups": { + "base": "

A list of log groups.

", + "refs": { + "DescribeLogGroupsResponse$logGroups": null + } + }, + "LogStream": { + "base": "

A log stream is sequence of log events from a single emitter of logs.

", + "refs": { + "LogStreams$member": null + } + }, + "LogStreamName": { + "base": null, + "refs": { + "CreateLogStreamRequest$logStreamName": "

The name of the log stream to create.

", + "DeleteLogStreamRequest$logStreamName": "

The name of the log stream to delete.

", + "DescribeLogStreamsRequest$logStreamNamePrefix": "

Will only return log streams that match the provided logStreamNamePrefix. If you don't specify a value, no prefix filter is applied.

", + "FilteredLogEvent$logStreamName": "

The name of the log stream this event belongs to.

", + "GetLogEventsRequest$logStreamName": "

The name of the log stream to query.

", + "InputLogStreamNames$member": null, + "LogStream$logStreamName": null, + "PutLogEventsRequest$logStreamName": "

The name of the log stream to put log events to.

", + "SearchedLogStream$logStreamName": "

The name of the log stream.

" + } + }, + "LogStreamSearchedCompletely": { + "base": null, + "refs": { + "SearchedLogStream$searchedCompletely": "

Indicates whether all the events in this log stream were searched or more data exists to search by paginating further.

" + } + }, + "LogStreams": { + "base": "

A list of log streams.

", + "refs": { + "DescribeLogStreamsResponse$logStreams": null + } + }, + "MetricFilter": { + "base": "

Metric filters can be used to express how Amazon CloudWatch Logs would extract metric observations from ingested log events and transform them to metric data in a CloudWatch metric.

", + "refs": { + "MetricFilters$member": null + } + }, + "MetricFilterMatchRecord": { + "base": null, + "refs": { + "MetricFilterMatches$member": null + } + }, + "MetricFilterMatches": { + "base": null, + "refs": { + "TestMetricFilterResponse$matches": null + } + }, + "MetricFilters": { + "base": null, + "refs": { + "DescribeMetricFiltersResponse$metricFilters": null + } + }, + "MetricName": { + "base": "

The name of the CloudWatch metric to which the monitored log information should be published. For example, you may publish to a metric called ErrorCount.

", + "refs": { + "MetricTransformation$metricName": null + } + }, + "MetricNamespace": { + "base": "

The destination namespace of the new CloudWatch metric.

", + "refs": { + "MetricTransformation$metricNamespace": null + } + }, + "MetricTransformation": { + "base": null, + "refs": { + "MetricTransformations$member": null + } + }, + "MetricTransformations": { + "base": null, + "refs": { + "MetricFilter$metricTransformations": null, + "PutMetricFilterRequest$metricTransformations": "

A collection of information needed to define how metric data gets emitted.

" + } + }, + "MetricValue": { + "base": "

What to publish to the metric. For example, if you're counting the occurrences of a particular term like \"Error\", the value will be \"1\" for each occurrence. If you're counting the bytes transferred the published value will be the value in the log event.

", + "refs": { + "MetricTransformation$metricValue": null + } + }, + "NextToken": { + "base": "

A string token used for pagination that points to the next page of results. It must be a value obtained from the response of the previous request. The token expires after 24 hours.

", + "refs": { + "DescribeLogGroupsRequest$nextToken": "

A string token used for pagination that points to the next page of results. It must be a value obtained from the response of the previous DescribeLogGroups request.

", + "DescribeLogGroupsResponse$nextToken": null, + "DescribeLogStreamsRequest$nextToken": "

A string token used for pagination that points to the next page of results. It must be a value obtained from the response of the previous DescribeLogStreams request.

", + "DescribeLogStreamsResponse$nextToken": null, + "DescribeMetricFiltersRequest$nextToken": "

A string token used for pagination that points to the next page of results. It must be a value obtained from the response of the previous DescribeMetricFilters request.

", + "DescribeMetricFiltersResponse$nextToken": null, + "DescribeSubscriptionFiltersRequest$nextToken": null, + "DescribeSubscriptionFiltersResponse$nextToken": null, + "FilterLogEventsRequest$nextToken": "

A pagination token obtained from a FilterLogEvents response to continue paginating the FilterLogEvents results.

", + "FilterLogEventsResponse$nextToken": "

A pagination token obtained from a FilterLogEvents response to continue paginating the FilterLogEvents results.

", + "GetLogEventsRequest$nextToken": "

A string token used for pagination that points to the next page of results. It must be a value obtained from the nextForwardToken or nextBackwardToken fields in the response of the previous GetLogEvents request.

", + "GetLogEventsResponse$nextForwardToken": null, + "GetLogEventsResponse$nextBackwardToken": null + } + }, + "OperationAbortedException": { + "base": "

Returned if multiple requests to update the same resource were in conflict.

", + "refs": { + } + }, + "OrderBy": { + "base": null, + "refs": { + "DescribeLogStreamsRequest$orderBy": "

Specifies what to order the returned log streams by. Valid arguments are 'LogStreamName' or 'LastEventTime'. If you don't specify a value, results are ordered by LogStreamName. If 'LastEventTime' is chosen, the request cannot also contain a logStreamNamePrefix.

" + } + }, + "OutputLogEvent": { + "base": null, + "refs": { + "OutputLogEvents$member": null + } + }, + "OutputLogEvents": { + "base": null, + "refs": { + "GetLogEventsResponse$events": null + } + }, + "PutLogEventsRequest": { + "base": null, + "refs": { + } + }, + "PutLogEventsResponse": { + "base": null, + "refs": { + } + }, + "PutMetricFilterRequest": { + "base": null, + "refs": { + } + }, + "PutRetentionPolicyRequest": { + "base": null, + "refs": { + } + }, + "PutSubscriptionFilterRequest": { + "base": null, + "refs": { + } + }, + "RejectedLogEventsInfo": { + "base": null, + "refs": { + "PutLogEventsResponse$rejectedLogEventsInfo": null + } + }, + "ResourceAlreadyExistsException": { + "base": "

Returned if the specified resource already exists.

", + "refs": { + } + }, + "ResourceNotFoundException": { + "base": "

Returned if the specified resource does not exist.

", + "refs": { + } + }, + "RoleArn": { + "base": null, + "refs": { + "PutSubscriptionFilterRequest$roleArn": "

The ARN of an IAM role that grants Amazon CloudWatch Logs permissions to do Amazon Kinesis PutRecord requests on the desitnation stream.

", + "SubscriptionFilter$roleArn": null + } + }, + "SearchedLogStream": { + "base": "

An object indicating the search status of a log stream in a FilterLogEvents request.

", + "refs": { + "SearchedLogStreams$member": null + } + }, + "SearchedLogStreams": { + "base": "

A list of SearchedLogStream objects indicating the search status for log streams in a FilterLogEvents request.

", + "refs": { + "FilterLogEventsResponse$searchedLogStreams": "

A list of SearchedLogStream objects indicating which log streams have been searched in this request and whether each has been searched completely or still has more to be paginated.

" + } + }, + "SequenceToken": { + "base": "

A string token used for making PutLogEvents requests. A sequenceToken can only be used once, and PutLogEvents requests must include the sequenceToken obtained from the response of the previous request.

", + "refs": { + "DataAlreadyAcceptedException$expectedSequenceToken": null, + "InvalidSequenceTokenException$expectedSequenceToken": null, + "LogStream$uploadSequenceToken": null, + "PutLogEventsRequest$sequenceToken": "

A string token that must be obtained from the response of the previous PutLogEvents request.

", + "PutLogEventsResponse$nextSequenceToken": null + } + }, + "ServiceUnavailableException": { + "base": "

Returned if the service cannot complete the request.

", + "refs": { + } + }, + "StartFromHead": { + "base": null, + "refs": { + "GetLogEventsRequest$startFromHead": "

If set to true, the earliest log events would be returned first. The default is false (the latest log events are returned first).

" + } + }, + "StoredBytes": { + "base": null, + "refs": { + "LogGroup$storedBytes": null, + "LogStream$storedBytes": null + } + }, + "SubscriptionFilter": { + "base": null, + "refs": { + "SubscriptionFilters$member": null + } + }, + "SubscriptionFilters": { + "base": null, + "refs": { + "DescribeSubscriptionFiltersResponse$subscriptionFilters": null + } + }, + "TestEventMessages": { + "base": null, + "refs": { + "TestMetricFilterRequest$logEventMessages": "

A list of log event messages to test.

" + } + }, + "TestMetricFilterRequest": { + "base": null, + "refs": { + } + }, + "TestMetricFilterResponse": { + "base": null, + "refs": { + } + }, + "Timestamp": { + "base": "

A point in time expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.

", + "refs": { + "FilterLogEventsRequest$startTime": "

A unix timestamp indicating the start time of the range for the request. If provided, events with a timestamp prior to this time will not be returned.

", + "FilterLogEventsRequest$endTime": "

A unix timestamp indicating the end time of the range for the request. If provided, events with a timestamp later than this time will not be returned.

", + "FilteredLogEvent$timestamp": null, + "FilteredLogEvent$ingestionTime": null, + "GetLogEventsRequest$startTime": null, + "GetLogEventsRequest$endTime": null, + "InputLogEvent$timestamp": null, + "LogGroup$creationTime": null, + "LogStream$creationTime": null, + "LogStream$firstEventTimestamp": null, + "LogStream$lastEventTimestamp": null, + "LogStream$lastIngestionTime": null, + "MetricFilter$creationTime": null, + "OutputLogEvent$timestamp": null, + "OutputLogEvent$ingestionTime": null, + "SubscriptionFilter$creationTime": null + } + }, + "Token": { + "base": null, + "refs": { + "ExtractedValues$key": null + } + }, + "Value": { + "base": null, + "refs": { + "ExtractedValues$value": null + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/logs/2014-03-28/paginators-1.json b/lib/aws-sdk/Aws/data/logs/2014-03-28/paginators-1.json new file mode 100644 index 0000000..461b4a1 --- /dev/null +++ b/lib/aws-sdk/Aws/data/logs/2014-03-28/paginators-1.json @@ -0,0 +1,28 @@ +{ + "pagination": { + "DescribeLogGroups": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "limit", + "result_key": "logGroups" + }, + "DescribeLogStreams": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "limit", + "result_key": "logStreams" + }, + "DescribeMetricFilters": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "limit", + "result_key": "metricFilters" + }, + "GetLogEvents": { + "input_token": "nextToken", + "output_token": "nextForwardToken", + "limit_key": "limit", + "result_key": "events" + } + } +} diff --git a/lib/aws-sdk/Aws/data/machinelearning/2014-12-12/api-2.json b/lib/aws-sdk/Aws/data/machinelearning/2014-12-12/api-2.json new file mode 100644 index 0000000..6df882e --- /dev/null +++ b/lib/aws-sdk/Aws/data/machinelearning/2014-12-12/api-2.json @@ -0,0 +1,1749 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2014-12-12", + "endpointPrefix":"machinelearning", + "jsonVersion":"1.1", + "serviceFullName":"Amazon Machine Learning", + "signatureVersion":"v4", + "targetPrefix":"AmazonML_20141212", + "protocol":"json" + }, + "operations":{ + "CreateBatchPrediction":{ + "name":"CreateBatchPrediction", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateBatchPredictionInput"}, + "output":{"shape":"CreateBatchPredictionOutput"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + { + "shape":"IdempotentParameterMismatchException", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "CreateDataSourceFromRDS":{ + "name":"CreateDataSourceFromRDS", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDataSourceFromRDSInput"}, + "output":{"shape":"CreateDataSourceFromRDSOutput"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + { + "shape":"IdempotentParameterMismatchException", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "CreateDataSourceFromRedshift":{ + "name":"CreateDataSourceFromRedshift", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDataSourceFromRedshiftInput"}, + "output":{"shape":"CreateDataSourceFromRedshiftOutput"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + { + "shape":"IdempotentParameterMismatchException", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "CreateDataSourceFromS3":{ + "name":"CreateDataSourceFromS3", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDataSourceFromS3Input"}, + "output":{"shape":"CreateDataSourceFromS3Output"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + { + "shape":"IdempotentParameterMismatchException", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "CreateEvaluation":{ + "name":"CreateEvaluation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateEvaluationInput"}, + "output":{"shape":"CreateEvaluationOutput"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + { + "shape":"IdempotentParameterMismatchException", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "CreateMLModel":{ + "name":"CreateMLModel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateMLModelInput"}, + "output":{"shape":"CreateMLModelOutput"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + { + "shape":"IdempotentParameterMismatchException", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "CreateRealtimeEndpoint":{ + "name":"CreateRealtimeEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateRealtimeEndpointInput"}, + "output":{"shape":"CreateRealtimeEndpointOutput"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + } + ] + }, + "DeleteBatchPrediction":{ + "name":"DeleteBatchPrediction", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteBatchPredictionInput"}, + "output":{"shape":"DeleteBatchPredictionOutput"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + } + ] + }, + "DeleteDataSource":{ + "name":"DeleteDataSource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDataSourceInput"}, + "output":{"shape":"DeleteDataSourceOutput"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + } + ] + }, + "DeleteEvaluation":{ + "name":"DeleteEvaluation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteEvaluationInput"}, + "output":{"shape":"DeleteEvaluationOutput"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + } + ] + }, + "DeleteMLModel":{ + "name":"DeleteMLModel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteMLModelInput"}, + "output":{"shape":"DeleteMLModelOutput"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + } + ] + }, + "DeleteRealtimeEndpoint":{ + "name":"DeleteRealtimeEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRealtimeEndpointInput"}, + "output":{"shape":"DeleteRealtimeEndpointOutput"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + } + ] + }, + "DescribeBatchPredictions":{ + "name":"DescribeBatchPredictions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeBatchPredictionsInput"}, + "output":{"shape":"DescribeBatchPredictionsOutput"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + } + ] + }, + "DescribeDataSources":{ + "name":"DescribeDataSources", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDataSourcesInput"}, + "output":{"shape":"DescribeDataSourcesOutput"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + } + ] + }, + "DescribeEvaluations":{ + "name":"DescribeEvaluations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeEvaluationsInput"}, + "output":{"shape":"DescribeEvaluationsOutput"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + } + ] + }, + "DescribeMLModels":{ + "name":"DescribeMLModels", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeMLModelsInput"}, + "output":{"shape":"DescribeMLModelsOutput"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + } + ] + }, + "GetBatchPrediction":{ + "name":"GetBatchPrediction", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetBatchPredictionInput"}, + "output":{"shape":"GetBatchPredictionOutput"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + } + ] + }, + "GetDataSource":{ + "name":"GetDataSource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDataSourceInput"}, + "output":{"shape":"GetDataSourceOutput"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + } + ] + }, + "GetEvaluation":{ + "name":"GetEvaluation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetEvaluationInput"}, + "output":{"shape":"GetEvaluationOutput"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + } + ] + }, + "GetMLModel":{ + "name":"GetMLModel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetMLModelInput"}, + "output":{"shape":"GetMLModelOutput"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + } + ] + }, + "Predict":{ + "name":"Predict", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PredictInput"}, + "output":{"shape":"PredictOutput"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"LimitExceededException", + "error":{"httpStatusCode":417}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + { + "shape":"PredictorNotMountedException", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "UpdateBatchPrediction":{ + "name":"UpdateBatchPrediction", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateBatchPredictionInput"}, + "output":{"shape":"UpdateBatchPredictionOutput"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + } + ] + }, + "UpdateDataSource":{ + "name":"UpdateDataSource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateDataSourceInput"}, + "output":{"shape":"UpdateDataSourceOutput"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + } + ] + }, + "UpdateEvaluation":{ + "name":"UpdateEvaluation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateEvaluationInput"}, + "output":{"shape":"UpdateEvaluationOutput"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + } + ] + }, + "UpdateMLModel":{ + "name":"UpdateMLModel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateMLModelInput"}, + "output":{"shape":"UpdateMLModelOutput"}, + "errors":[ + { + "shape":"InvalidInputException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InternalServerException", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + } + ] + } + }, + "shapes":{ + "Algorithm":{ + "type":"string", + "enum":["sgd"] + }, + "AwsUserArn":{ + "type":"string", + "pattern":"arn:aws:iam::[0-9]+:((user/.+)|(root))" + }, + "BatchPrediction":{ + "type":"structure", + "members":{ + "BatchPredictionId":{"shape":"EntityId"}, + "MLModelId":{"shape":"EntityId"}, + "BatchPredictionDataSourceId":{"shape":"EntityId"}, + "InputDataLocationS3":{"shape":"S3Url"}, + "CreatedByIamUser":{"shape":"AwsUserArn"}, + "CreatedAt":{"shape":"EpochTime"}, + "LastUpdatedAt":{"shape":"EpochTime"}, + "Name":{"shape":"EntityName"}, + "Status":{"shape":"EntityStatus"}, + "OutputUri":{"shape":"S3Url"}, + "Message":{"shape":"Message"} + } + }, + "BatchPredictionFilterVariable":{ + "type":"string", + "enum":[ + "CreatedAt", + "LastUpdatedAt", + "Status", + "Name", + "IAMUser", + "MLModelId", + "DataSourceId", + "DataURI" + ] + }, + "BatchPredictions":{ + "type":"list", + "member":{"shape":"BatchPrediction"} + }, + "ComparatorValue":{ + "type":"string", + "max":1024, + "pattern":".*\\S.*|^$" + }, + "ComputeStatistics":{"type":"boolean"}, + "CreateBatchPredictionInput":{ + "type":"structure", + "required":[ + "BatchPredictionId", + "MLModelId", + "BatchPredictionDataSourceId", + "OutputUri" + ], + "members":{ + "BatchPredictionId":{"shape":"EntityId"}, + "BatchPredictionName":{"shape":"EntityName"}, + "MLModelId":{"shape":"EntityId"}, + "BatchPredictionDataSourceId":{"shape":"EntityId"}, + "OutputUri":{"shape":"S3Url"} + } + }, + "CreateBatchPredictionOutput":{ + "type":"structure", + "members":{ + "BatchPredictionId":{"shape":"EntityId"} + } + }, + "CreateDataSourceFromRDSInput":{ + "type":"structure", + "required":[ + "DataSourceId", + "RDSData", + "RoleARN" + ], + "members":{ + "DataSourceId":{"shape":"EntityId"}, + "DataSourceName":{"shape":"EntityName"}, + "RDSData":{"shape":"RDSDataSpec"}, + "RoleARN":{"shape":"RoleARN"}, + "ComputeStatistics":{"shape":"ComputeStatistics"} + } + }, + "CreateDataSourceFromRDSOutput":{ + "type":"structure", + "members":{ + "DataSourceId":{"shape":"EntityId"} + } + }, + "CreateDataSourceFromRedshiftInput":{ + "type":"structure", + "required":[ + "DataSourceId", + "DataSpec", + "RoleARN" + ], + "members":{ + "DataSourceId":{"shape":"EntityId"}, + "DataSourceName":{"shape":"EntityName"}, + "DataSpec":{"shape":"RedshiftDataSpec"}, + "RoleARN":{"shape":"RoleARN"}, + "ComputeStatistics":{"shape":"ComputeStatistics"} + } + }, + "CreateDataSourceFromRedshiftOutput":{ + "type":"structure", + "members":{ + "DataSourceId":{"shape":"EntityId"} + } + }, + "CreateDataSourceFromS3Input":{ + "type":"structure", + "required":[ + "DataSourceId", + "DataSpec" + ], + "members":{ + "DataSourceId":{"shape":"EntityId"}, + "DataSourceName":{"shape":"EntityName"}, + "DataSpec":{"shape":"S3DataSpec"}, + "ComputeStatistics":{"shape":"ComputeStatistics"} + } + }, + "CreateDataSourceFromS3Output":{ + "type":"structure", + "members":{ + "DataSourceId":{"shape":"EntityId"} + } + }, + "CreateEvaluationInput":{ + "type":"structure", + "required":[ + "EvaluationId", + "MLModelId", + "EvaluationDataSourceId" + ], + "members":{ + "EvaluationId":{"shape":"EntityId"}, + "EvaluationName":{"shape":"EntityName"}, + "MLModelId":{"shape":"EntityId"}, + "EvaluationDataSourceId":{"shape":"EntityId"} + } + }, + "CreateEvaluationOutput":{ + "type":"structure", + "members":{ + "EvaluationId":{"shape":"EntityId"} + } + }, + "CreateMLModelInput":{ + "type":"structure", + "required":[ + "MLModelId", + "MLModelType", + "TrainingDataSourceId" + ], + "members":{ + "MLModelId":{"shape":"EntityId"}, + "MLModelName":{"shape":"EntityName"}, + "MLModelType":{"shape":"MLModelType"}, + "Parameters":{"shape":"TrainingParameters"}, + "TrainingDataSourceId":{"shape":"EntityId"}, + "Recipe":{"shape":"Recipe"}, + "RecipeUri":{"shape":"S3Url"} + } + }, + "CreateMLModelOutput":{ + "type":"structure", + "members":{ + "MLModelId":{"shape":"EntityId"} + } + }, + "CreateRealtimeEndpointInput":{ + "type":"structure", + "required":["MLModelId"], + "members":{ + "MLModelId":{"shape":"EntityId"} + } + }, + "CreateRealtimeEndpointOutput":{ + "type":"structure", + "members":{ + "MLModelId":{"shape":"EntityId"}, + "RealtimeEndpointInfo":{"shape":"RealtimeEndpointInfo"} + } + }, + "DataRearrangement":{"type":"string"}, + "DataSchema":{ + "type":"string", + "max":131071 + }, + "DataSource":{ + "type":"structure", + "members":{ + "DataSourceId":{"shape":"EntityId"}, + "DataLocationS3":{"shape":"S3Url"}, + "DataRearrangement":{"shape":"DataRearrangement"}, + "CreatedByIamUser":{"shape":"AwsUserArn"}, + "CreatedAt":{"shape":"EpochTime"}, + "LastUpdatedAt":{"shape":"EpochTime"}, + "DataSizeInBytes":{"shape":"LongType"}, + "NumberOfFiles":{"shape":"LongType"}, + "Name":{"shape":"EntityName"}, + "Status":{"shape":"EntityStatus"}, + "Message":{"shape":"Message"}, + "RedshiftMetadata":{"shape":"RedshiftMetadata"}, + "RDSMetadata":{"shape":"RDSMetadata"}, + "RoleARN":{"shape":"RoleARN"}, + "ComputeStatistics":{"shape":"ComputeStatistics"} + } + }, + "DataSourceFilterVariable":{ + "type":"string", + "enum":[ + "CreatedAt", + "LastUpdatedAt", + "Status", + "Name", + "DataLocationS3", + "IAMUser" + ] + }, + "DataSources":{ + "type":"list", + "member":{"shape":"DataSource"} + }, + "DeleteBatchPredictionInput":{ + "type":"structure", + "required":["BatchPredictionId"], + "members":{ + "BatchPredictionId":{"shape":"EntityId"} + } + }, + "DeleteBatchPredictionOutput":{ + "type":"structure", + "members":{ + "BatchPredictionId":{"shape":"EntityId"} + } + }, + "DeleteDataSourceInput":{ + "type":"structure", + "required":["DataSourceId"], + "members":{ + "DataSourceId":{"shape":"EntityId"} + } + }, + "DeleteDataSourceOutput":{ + "type":"structure", + "members":{ + "DataSourceId":{"shape":"EntityId"} + } + }, + "DeleteEvaluationInput":{ + "type":"structure", + "required":["EvaluationId"], + "members":{ + "EvaluationId":{"shape":"EntityId"} + } + }, + "DeleteEvaluationOutput":{ + "type":"structure", + "members":{ + "EvaluationId":{"shape":"EntityId"} + } + }, + "DeleteMLModelInput":{ + "type":"structure", + "required":["MLModelId"], + "members":{ + "MLModelId":{"shape":"EntityId"} + } + }, + "DeleteMLModelOutput":{ + "type":"structure", + "members":{ + "MLModelId":{"shape":"EntityId"} + } + }, + "DeleteRealtimeEndpointInput":{ + "type":"structure", + "required":["MLModelId"], + "members":{ + "MLModelId":{"shape":"EntityId"} + } + }, + "DeleteRealtimeEndpointOutput":{ + "type":"structure", + "members":{ + "MLModelId":{"shape":"EntityId"}, + "RealtimeEndpointInfo":{"shape":"RealtimeEndpointInfo"} + } + }, + "DescribeBatchPredictionsInput":{ + "type":"structure", + "members":{ + "FilterVariable":{"shape":"BatchPredictionFilterVariable"}, + "EQ":{"shape":"ComparatorValue"}, + "GT":{"shape":"ComparatorValue"}, + "LT":{"shape":"ComparatorValue"}, + "GE":{"shape":"ComparatorValue"}, + "LE":{"shape":"ComparatorValue"}, + "NE":{"shape":"ComparatorValue"}, + "Prefix":{"shape":"ComparatorValue"}, + "SortOrder":{"shape":"SortOrder"}, + "NextToken":{"shape":"StringType"}, + "Limit":{"shape":"PageLimit"} + } + }, + "DescribeBatchPredictionsOutput":{ + "type":"structure", + "members":{ + "Results":{"shape":"BatchPredictions"}, + "NextToken":{"shape":"StringType"} + } + }, + "DescribeDataSourcesInput":{ + "type":"structure", + "members":{ + "FilterVariable":{"shape":"DataSourceFilterVariable"}, + "EQ":{"shape":"ComparatorValue"}, + "GT":{"shape":"ComparatorValue"}, + "LT":{"shape":"ComparatorValue"}, + "GE":{"shape":"ComparatorValue"}, + "LE":{"shape":"ComparatorValue"}, + "NE":{"shape":"ComparatorValue"}, + "Prefix":{"shape":"ComparatorValue"}, + "SortOrder":{"shape":"SortOrder"}, + "NextToken":{"shape":"StringType"}, + "Limit":{"shape":"PageLimit"} + } + }, + "DescribeDataSourcesOutput":{ + "type":"structure", + "members":{ + "Results":{"shape":"DataSources"}, + "NextToken":{"shape":"StringType"} + } + }, + "DescribeEvaluationsInput":{ + "type":"structure", + "members":{ + "FilterVariable":{"shape":"EvaluationFilterVariable"}, + "EQ":{"shape":"ComparatorValue"}, + "GT":{"shape":"ComparatorValue"}, + "LT":{"shape":"ComparatorValue"}, + "GE":{"shape":"ComparatorValue"}, + "LE":{"shape":"ComparatorValue"}, + "NE":{"shape":"ComparatorValue"}, + "Prefix":{"shape":"ComparatorValue"}, + "SortOrder":{"shape":"SortOrder"}, + "NextToken":{"shape":"StringType"}, + "Limit":{"shape":"PageLimit"} + } + }, + "DescribeEvaluationsOutput":{ + "type":"structure", + "members":{ + "Results":{"shape":"Evaluations"}, + "NextToken":{"shape":"StringType"} + } + }, + "DescribeMLModelsInput":{ + "type":"structure", + "members":{ + "FilterVariable":{"shape":"MLModelFilterVariable"}, + "EQ":{"shape":"ComparatorValue"}, + "GT":{"shape":"ComparatorValue"}, + "LT":{"shape":"ComparatorValue"}, + "GE":{"shape":"ComparatorValue"}, + "LE":{"shape":"ComparatorValue"}, + "NE":{"shape":"ComparatorValue"}, + "Prefix":{"shape":"ComparatorValue"}, + "SortOrder":{"shape":"SortOrder"}, + "NextToken":{"shape":"StringType"}, + "Limit":{"shape":"PageLimit"} + } + }, + "DescribeMLModelsOutput":{ + "type":"structure", + "members":{ + "Results":{"shape":"MLModels"}, + "NextToken":{"shape":"StringType"} + } + }, + "DetailsAttributes":{ + "type":"string", + "enum":[ + "PredictiveModelType", + "Algorithm" + ] + }, + "DetailsMap":{ + "type":"map", + "key":{"shape":"DetailsAttributes"}, + "value":{"shape":"DetailsValue"} + }, + "DetailsValue":{ + "type":"string", + "min":1 + }, + "EDPPipelineId":{ + "type":"string", + "min":1, + "max":1024 + }, + "EDPResourceRole":{ + "type":"string", + "min":1, + "max":64 + }, + "EDPSecurityGroupId":{ + "type":"string", + "min":1, + "max":255 + }, + "EDPSecurityGroupIds":{ + "type":"list", + "member":{"shape":"EDPSecurityGroupId"} + }, + "EDPServiceRole":{ + "type":"string", + "min":1, + "max":64 + }, + "EDPSubnetId":{ + "type":"string", + "min":1, + "max":255 + }, + "EntityId":{ + "type":"string", + "min":1, + "max":64, + "pattern":"[a-zA-Z0-9_.-]+" + }, + "EntityName":{ + "type":"string", + "max":1024, + "pattern":".*\\S.*|^$" + }, + "EntityStatus":{ + "type":"string", + "enum":[ + "PENDING", + "INPROGRESS", + "FAILED", + "COMPLETED", + "DELETED" + ] + }, + "EpochTime":{"type":"timestamp"}, + "ErrorCode":{"type":"integer"}, + "ErrorMessage":{ + "type":"string", + "max":2048 + }, + "Evaluation":{ + "type":"structure", + "members":{ + "EvaluationId":{"shape":"EntityId"}, + "MLModelId":{"shape":"EntityId"}, + "EvaluationDataSourceId":{"shape":"EntityId"}, + "InputDataLocationS3":{"shape":"S3Url"}, + "CreatedByIamUser":{"shape":"AwsUserArn"}, + "CreatedAt":{"shape":"EpochTime"}, + "LastUpdatedAt":{"shape":"EpochTime"}, + "Name":{"shape":"EntityName"}, + "Status":{"shape":"EntityStatus"}, + "PerformanceMetrics":{"shape":"PerformanceMetrics"}, + "Message":{"shape":"Message"} + } + }, + "EvaluationFilterVariable":{ + "type":"string", + "enum":[ + "CreatedAt", + "LastUpdatedAt", + "Status", + "Name", + "IAMUser", + "MLModelId", + "DataSourceId", + "DataURI" + ] + }, + "Evaluations":{ + "type":"list", + "member":{"shape":"Evaluation"} + }, + "GetBatchPredictionInput":{ + "type":"structure", + "required":["BatchPredictionId"], + "members":{ + "BatchPredictionId":{"shape":"EntityId"} + } + }, + "GetBatchPredictionOutput":{ + "type":"structure", + "members":{ + "BatchPredictionId":{"shape":"EntityId"}, + "MLModelId":{"shape":"EntityId"}, + "BatchPredictionDataSourceId":{"shape":"EntityId"}, + "InputDataLocationS3":{"shape":"S3Url"}, + "CreatedByIamUser":{"shape":"AwsUserArn"}, + "CreatedAt":{"shape":"EpochTime"}, + "LastUpdatedAt":{"shape":"EpochTime"}, + "Name":{"shape":"EntityName"}, + "Status":{"shape":"EntityStatus"}, + "OutputUri":{"shape":"S3Url"}, + "LogUri":{"shape":"PresignedS3Url"}, + "Message":{"shape":"Message"} + } + }, + "GetDataSourceInput":{ + "type":"structure", + "required":["DataSourceId"], + "members":{ + "DataSourceId":{"shape":"EntityId"}, + "Verbose":{"shape":"Verbose"} + } + }, + "GetDataSourceOutput":{ + "type":"structure", + "members":{ + "DataSourceId":{"shape":"EntityId"}, + "DataLocationS3":{"shape":"S3Url"}, + "DataRearrangement":{"shape":"DataRearrangement"}, + "CreatedByIamUser":{"shape":"AwsUserArn"}, + "CreatedAt":{"shape":"EpochTime"}, + "LastUpdatedAt":{"shape":"EpochTime"}, + "DataSizeInBytes":{"shape":"LongType"}, + "NumberOfFiles":{"shape":"LongType"}, + "Name":{"shape":"EntityName"}, + "Status":{"shape":"EntityStatus"}, + "LogUri":{"shape":"PresignedS3Url"}, + "Message":{"shape":"Message"}, + "RedshiftMetadata":{"shape":"RedshiftMetadata"}, + "RDSMetadata":{"shape":"RDSMetadata"}, + "RoleARN":{"shape":"RoleARN"}, + "ComputeStatistics":{"shape":"ComputeStatistics"}, + "DataSourceSchema":{"shape":"DataSchema"} + } + }, + "GetEvaluationInput":{ + "type":"structure", + "required":["EvaluationId"], + "members":{ + "EvaluationId":{"shape":"EntityId"} + } + }, + "GetEvaluationOutput":{ + "type":"structure", + "members":{ + "EvaluationId":{"shape":"EntityId"}, + "MLModelId":{"shape":"EntityId"}, + "EvaluationDataSourceId":{"shape":"EntityId"}, + "InputDataLocationS3":{"shape":"S3Url"}, + "CreatedByIamUser":{"shape":"AwsUserArn"}, + "CreatedAt":{"shape":"EpochTime"}, + "LastUpdatedAt":{"shape":"EpochTime"}, + "Name":{"shape":"EntityName"}, + "Status":{"shape":"EntityStatus"}, + "PerformanceMetrics":{"shape":"PerformanceMetrics"}, + "LogUri":{"shape":"PresignedS3Url"}, + "Message":{"shape":"Message"} + } + }, + "GetMLModelInput":{ + "type":"structure", + "required":["MLModelId"], + "members":{ + "MLModelId":{"shape":"EntityId"}, + "Verbose":{"shape":"Verbose"} + } + }, + "GetMLModelOutput":{ + "type":"structure", + "members":{ + "MLModelId":{"shape":"EntityId"}, + "TrainingDataSourceId":{"shape":"EntityId"}, + "CreatedByIamUser":{"shape":"AwsUserArn"}, + "CreatedAt":{"shape":"EpochTime"}, + "LastUpdatedAt":{"shape":"EpochTime"}, + "Name":{"shape":"MLModelName"}, + "Status":{"shape":"EntityStatus"}, + "SizeInBytes":{"shape":"LongType"}, + "EndpointInfo":{"shape":"RealtimeEndpointInfo"}, + "TrainingParameters":{"shape":"TrainingParameters"}, + "InputDataLocationS3":{"shape":"S3Url"}, + "MLModelType":{"shape":"MLModelType"}, + "ScoreThreshold":{"shape":"ScoreThreshold"}, + "ScoreThresholdLastUpdatedAt":{"shape":"EpochTime"}, + "LogUri":{"shape":"PresignedS3Url"}, + "Message":{"shape":"Message"}, + "Recipe":{"shape":"Recipe"}, + "Schema":{"shape":"DataSchema"} + } + }, + "IdempotentParameterMismatchException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"}, + "code":{"shape":"ErrorCode"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "IntegerType":{"type":"integer"}, + "InternalServerException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"}, + "code":{"shape":"ErrorCode"} + }, + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "InvalidInputException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"}, + "code":{"shape":"ErrorCode"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "Label":{ + "type":"string", + "min":1 + }, + "LimitExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"}, + "code":{"shape":"ErrorCode"} + }, + "error":{"httpStatusCode":417}, + "exception":true + }, + "LongType":{"type":"long"}, + "MLModel":{ + "type":"structure", + "members":{ + "MLModelId":{"shape":"EntityId"}, + "TrainingDataSourceId":{"shape":"EntityId"}, + "CreatedByIamUser":{"shape":"AwsUserArn"}, + "CreatedAt":{"shape":"EpochTime"}, + "LastUpdatedAt":{"shape":"EpochTime"}, + "Name":{"shape":"MLModelName"}, + "Status":{"shape":"EntityStatus"}, + "SizeInBytes":{"shape":"LongType"}, + "EndpointInfo":{"shape":"RealtimeEndpointInfo"}, + "TrainingParameters":{"shape":"TrainingParameters"}, + "InputDataLocationS3":{"shape":"S3Url"}, + "Algorithm":{"shape":"Algorithm"}, + "MLModelType":{"shape":"MLModelType"}, + "ScoreThreshold":{"shape":"ScoreThreshold"}, + "ScoreThresholdLastUpdatedAt":{"shape":"EpochTime"}, + "Message":{"shape":"Message"} + } + }, + "MLModelFilterVariable":{ + "type":"string", + "enum":[ + "CreatedAt", + "LastUpdatedAt", + "Status", + "Name", + "IAMUser", + "TrainingDataSourceId", + "RealtimeEndpointStatus", + "MLModelType", + "Algorithm", + "TrainingDataURI" + ] + }, + "MLModelName":{ + "type":"string", + "max":1024 + }, + "MLModelType":{ + "type":"string", + "enum":[ + "REGRESSION", + "BINARY", + "MULTICLASS" + ] + }, + "MLModels":{ + "type":"list", + "member":{"shape":"MLModel"} + }, + "Message":{ + "type":"string", + "max":10240 + }, + "PageLimit":{ + "type":"integer", + "min":1, + "max":100 + }, + "PerformanceMetrics":{ + "type":"structure", + "members":{ + "Properties":{"shape":"PerformanceMetricsProperties"} + } + }, + "PerformanceMetricsProperties":{ + "type":"map", + "key":{"shape":"PerformanceMetricsPropertyKey"}, + "value":{"shape":"PerformanceMetricsPropertyValue"} + }, + "PerformanceMetricsPropertyKey":{"type":"string"}, + "PerformanceMetricsPropertyValue":{"type":"string"}, + "PredictInput":{ + "type":"structure", + "required":[ + "MLModelId", + "Record", + "PredictEndpoint" + ], + "members":{ + "MLModelId":{"shape":"EntityId"}, + "Record":{"shape":"Record"}, + "PredictEndpoint":{"shape":"VipURL"} + } + }, + "PredictOutput":{ + "type":"structure", + "members":{ + "Prediction":{"shape":"Prediction"} + } + }, + "Prediction":{ + "type":"structure", + "members":{ + "predictedLabel":{"shape":"Label"}, + "predictedValue":{"shape":"floatLabel"}, + "predictedScores":{"shape":"ScoreValuePerLabelMap"}, + "details":{"shape":"DetailsMap"} + } + }, + "PredictorNotMountedException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "PresignedS3Url":{"type":"string"}, + "RDSDataSpec":{ + "type":"structure", + "required":[ + "DatabaseInformation", + "SelectSqlQuery", + "DatabaseCredentials", + "S3StagingLocation", + "ResourceRole", + "ServiceRole", + "SubnetId", + "SecurityGroupIds" + ], + "members":{ + "DatabaseInformation":{"shape":"RDSDatabase"}, + "SelectSqlQuery":{"shape":"RDSSelectSqlQuery"}, + "DatabaseCredentials":{"shape":"RDSDatabaseCredentials"}, + "S3StagingLocation":{"shape":"S3Url"}, + "DataRearrangement":{"shape":"DataRearrangement"}, + "DataSchema":{"shape":"DataSchema"}, + "DataSchemaUri":{"shape":"S3Url"}, + "ResourceRole":{"shape":"EDPResourceRole"}, + "ServiceRole":{"shape":"EDPServiceRole"}, + "SubnetId":{"shape":"EDPSubnetId"}, + "SecurityGroupIds":{"shape":"EDPSecurityGroupIds"} + } + }, + "RDSDatabase":{ + "type":"structure", + "required":[ + "InstanceIdentifier", + "DatabaseName" + ], + "members":{ + "InstanceIdentifier":{"shape":"RDSInstanceIdentifier"}, + "DatabaseName":{"shape":"RDSDatabaseName"} + } + }, + "RDSDatabaseCredentials":{ + "type":"structure", + "required":[ + "Username", + "Password" + ], + "members":{ + "Username":{"shape":"RDSDatabaseUsername"}, + "Password":{"shape":"RDSDatabasePassword"} + } + }, + "RDSDatabaseName":{ + "type":"string", + "min":1, + "max":64 + }, + "RDSDatabasePassword":{ + "type":"string", + "min":8, + "max":128 + }, + "RDSDatabaseUsername":{ + "type":"string", + "min":1, + "max":128 + }, + "RDSInstanceIdentifier":{ + "type":"string", + "min":1, + "max":63, + "pattern":"[a-z0-9-]+" + }, + "RDSMetadata":{ + "type":"structure", + "members":{ + "Database":{"shape":"RDSDatabase"}, + "DatabaseUserName":{"shape":"RDSDatabaseUsername"}, + "SelectSqlQuery":{"shape":"RDSSelectSqlQuery"}, + "ResourceRole":{"shape":"EDPResourceRole"}, + "ServiceRole":{"shape":"EDPServiceRole"}, + "DataPipelineId":{"shape":"EDPPipelineId"} + } + }, + "RDSSelectSqlQuery":{ + "type":"string", + "min":1, + "max":16777216 + }, + "RealtimeEndpointInfo":{ + "type":"structure", + "members":{ + "PeakRequestsPerSecond":{"shape":"IntegerType"}, + "CreatedAt":{"shape":"EpochTime"}, + "EndpointUrl":{"shape":"VipURL"}, + "EndpointStatus":{"shape":"RealtimeEndpointStatus"} + } + }, + "RealtimeEndpointStatus":{ + "type":"string", + "enum":[ + "NONE", + "READY", + "UPDATING", + "FAILED" + ] + }, + "Recipe":{ + "type":"string", + "max":131071 + }, + "Record":{ + "type":"map", + "key":{"shape":"VariableName"}, + "value":{"shape":"VariableValue"} + }, + "RedshiftClusterIdentifier":{ + "type":"string", + "min":1, + "max":63, + "pattern":"[a-z0-9-]+" + }, + "RedshiftDataSpec":{ + "type":"structure", + "required":[ + "DatabaseInformation", + "SelectSqlQuery", + "DatabaseCredentials", + "S3StagingLocation" + ], + "members":{ + "DatabaseInformation":{"shape":"RedshiftDatabase"}, + "SelectSqlQuery":{"shape":"RedshiftSelectSqlQuery"}, + "DatabaseCredentials":{"shape":"RedshiftDatabaseCredentials"}, + "S3StagingLocation":{"shape":"S3Url"}, + "DataRearrangement":{"shape":"DataRearrangement"}, + "DataSchema":{"shape":"DataSchema"}, + "DataSchemaUri":{"shape":"S3Url"} + } + }, + "RedshiftDatabase":{ + "type":"structure", + "required":[ + "DatabaseName", + "ClusterIdentifier" + ], + "members":{ + "DatabaseName":{"shape":"RedshiftDatabaseName"}, + "ClusterIdentifier":{"shape":"RedshiftClusterIdentifier"} + } + }, + "RedshiftDatabaseCredentials":{ + "type":"structure", + "required":[ + "Username", + "Password" + ], + "members":{ + "Username":{"shape":"RedshiftDatabaseUsername"}, + "Password":{"shape":"RedshiftDatabasePassword"} + } + }, + "RedshiftDatabaseName":{ + "type":"string", + "min":1, + "max":64, + "pattern":"[a-z0-9]+" + }, + "RedshiftDatabasePassword":{ + "type":"string", + "min":8, + "max":64 + }, + "RedshiftDatabaseUsername":{ + "type":"string", + "min":1, + "max":128 + }, + "RedshiftMetadata":{ + "type":"structure", + "members":{ + "RedshiftDatabase":{"shape":"RedshiftDatabase"}, + "DatabaseUserName":{"shape":"RedshiftDatabaseUsername"}, + "SelectSqlQuery":{"shape":"RedshiftSelectSqlQuery"} + } + }, + "RedshiftSelectSqlQuery":{ + "type":"string", + "min":1, + "max":16777216 + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"}, + "code":{"shape":"ErrorCode"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "RoleARN":{ + "type":"string", + "min":1, + "max":100 + }, + "S3DataSpec":{ + "type":"structure", + "required":["DataLocationS3"], + "members":{ + "DataLocationS3":{"shape":"S3Url"}, + "DataRearrangement":{"shape":"DataRearrangement"}, + "DataSchema":{"shape":"DataSchema"}, + "DataSchemaLocationS3":{"shape":"S3Url"} + } + }, + "S3Url":{ + "type":"string", + "max":2048, + "pattern":"s3://([^/]+)(/.*)?" + }, + "ScoreThreshold":{"type":"float"}, + "ScoreValue":{"type":"float"}, + "ScoreValuePerLabelMap":{ + "type":"map", + "key":{"shape":"Label"}, + "value":{"shape":"ScoreValue"} + }, + "SortOrder":{ + "type":"string", + "enum":[ + "asc", + "dsc" + ] + }, + "StringType":{"type":"string"}, + "TrainingParameters":{ + "type":"map", + "key":{"shape":"StringType"}, + "value":{"shape":"StringType"} + }, + "UpdateBatchPredictionInput":{ + "type":"structure", + "required":[ + "BatchPredictionId", + "BatchPredictionName" + ], + "members":{ + "BatchPredictionId":{"shape":"EntityId"}, + "BatchPredictionName":{"shape":"EntityName"} + } + }, + "UpdateBatchPredictionOutput":{ + "type":"structure", + "members":{ + "BatchPredictionId":{"shape":"EntityId"} + } + }, + "UpdateDataSourceInput":{ + "type":"structure", + "required":[ + "DataSourceId", + "DataSourceName" + ], + "members":{ + "DataSourceId":{"shape":"EntityId"}, + "DataSourceName":{"shape":"EntityName"} + } + }, + "UpdateDataSourceOutput":{ + "type":"structure", + "members":{ + "DataSourceId":{"shape":"EntityId"} + } + }, + "UpdateEvaluationInput":{ + "type":"structure", + "required":[ + "EvaluationId", + "EvaluationName" + ], + "members":{ + "EvaluationId":{"shape":"EntityId"}, + "EvaluationName":{"shape":"EntityName"} + } + }, + "UpdateEvaluationOutput":{ + "type":"structure", + "members":{ + "EvaluationId":{"shape":"EntityId"} + } + }, + "UpdateMLModelInput":{ + "type":"structure", + "required":["MLModelId"], + "members":{ + "MLModelId":{"shape":"EntityId"}, + "MLModelName":{"shape":"EntityName"}, + "ScoreThreshold":{"shape":"ScoreThreshold"} + } + }, + "UpdateMLModelOutput":{ + "type":"structure", + "members":{ + "MLModelId":{"shape":"EntityId"} + } + }, + "VariableName":{"type":"string"}, + "VariableValue":{ + "type":"string", + "max":1024, + "pattern":"[a-zA-Z0-9_]*" + }, + "Verbose":{"type":"boolean"}, + "VipURL":{ + "type":"string", + "max":2048, + "pattern":"https://[a-zA-Z0-9-.]*\\.amazon(aws)?\\.com[/]?" + }, + "floatLabel":{"type":"float"} + } +} diff --git a/lib/aws-sdk/Aws/data/machinelearning/2014-12-12/docs-2.json b/lib/aws-sdk/Aws/data/machinelearning/2014-12-12/docs-2.json new file mode 100644 index 0000000..411023e --- /dev/null +++ b/lib/aws-sdk/Aws/data/machinelearning/2014-12-12/docs-2.json @@ -0,0 +1,1034 @@ +{ + "version": "2.0", + "operations": { + "CreateBatchPrediction": "

Generates predictions for a group of observations. The observations to process exist in one or more data files referenced by a DataSource. This operation creates a new BatchPrediction, and uses an MLModel and the data files referenced by the DataSource as information sources.

CreateBatchPrediction is an asynchronous operation. In response to CreateBatchPrediction, Amazon Machine Learning (Amazon ML) immediately returns and sets the BatchPrediction status to PENDING. After the BatchPrediction completes, Amazon ML sets the status to COMPLETED.

You can poll for status updates by using the GetBatchPrediction operation and checking the Status parameter of the result. After the COMPLETED status appears, the results are available in the location specified by the OutputUri parameter.

", + "CreateDataSourceFromRDS": "

Creates a DataSource object from an Amazon Relational Database Service (Amazon RDS). A DataSource references data that can be used to perform CreateMLModel, CreateEvaluation, or CreateBatchPrediction operations.

CreateDataSourceFromRDS is an asynchronous operation. In response to CreateDataSourceFromRDS, Amazon Machine Learning (Amazon ML) immediately returns and sets the DataSource status to PENDING. After the DataSource is created and ready for use, Amazon ML sets the Status parameter to COMPLETED. DataSource in COMPLETED or PENDING status can only be used to perform CreateMLModel, CreateEvaluation, or CreateBatchPrediction operations.

If Amazon ML cannot accept the input source, it sets the Status parameter to FAILED and includes an error message in the Message attribute of the GetDataSource operation response.

", + "CreateDataSourceFromRedshift": "

Creates a DataSource from Amazon Redshift. A DataSource references data that can be used to perform either CreateMLModel, CreateEvaluation or CreateBatchPrediction operations.

CreateDataSourceFromRedshift is an asynchronous operation. In response to CreateDataSourceFromRedshift, Amazon Machine Learning (Amazon ML) immediately returns and sets the DataSource status to PENDING. After the DataSource is created and ready for use, Amazon ML sets the Status parameter to COMPLETED. DataSource in COMPLETED or PENDING status can only be used to perform CreateMLModel, CreateEvaluation, or CreateBatchPrediction operations.

If Amazon ML cannot accept the input source, it sets the Status parameter to FAILED and includes an error message in the Message attribute of the GetDataSource operation response.

The observations should exist in the database hosted on an Amazon Redshift cluster and should be specified by a SelectSqlQuery. Amazon ML executes Unload command in Amazon Redshift to transfer the result set of SelectSqlQuery to S3StagingLocation.

After the DataSource is created, it's ready for use in evaluations and batch predictions. If you plan to use the DataSource to train an MLModel, the DataSource requires another item -- a recipe. A recipe describes the observation variables that participate in training an MLModel. A recipe describes how each input variable will be used in training. Will the variable be included or excluded from training? Will the variable be manipulated, for example, combined with another variable or split apart into word combinations? The recipe provides answers to these questions. For more information, see the Amazon Machine Learning Developer Guide.

", + "CreateDataSourceFromS3": "

Creates a DataSource object. A DataSource references data that can be used to perform CreateMLModel, CreateEvaluation, or CreateBatchPrediction operations.

CreateDataSourceFromS3 is an asynchronous operation. In response to CreateDataSourceFromS3, Amazon Machine Learning (Amazon ML) immediately returns and sets the DataSource status to PENDING. After the DataSource is created and ready for use, Amazon ML sets the Status parameter to COMPLETED. DataSource in COMPLETED or PENDING status can only be used to perform CreateMLModel, CreateEvaluation or CreateBatchPrediction operations.

If Amazon ML cannot accept the input source, it sets the Status parameter to FAILED and includes an error message in the Message attribute of the GetDataSource operation response.

The observation data used in a DataSource should be ready to use; that is, it should have a consistent structure, and missing data values should be kept to a minimum. The observation data must reside in one or more CSV files in an Amazon Simple Storage Service (Amazon S3) bucket, along with a schema that describes the data items by name and type. The same schema must be used for all of the data files referenced by the DataSource.

After the DataSource has been created, it's ready to use in evaluations and batch predictions. If you plan to use the DataSource to train an MLModel, the DataSource requires another item: a recipe. A recipe describes the observation variables that participate in training an MLModel. A recipe describes how each input variable will be used in training. Will the variable be included or excluded from training? Will the variable be manipulated, for example, combined with another variable, or split apart into word combinations? The recipe provides answers to these questions. For more information, see the Amazon Machine Learning Developer Guide.

", + "CreateEvaluation": "

Creates a new Evaluation of an MLModel. An MLModel is evaluated on a set of observations associated to a DataSource. Like a DataSource for an MLModel, the DataSource for an Evaluation contains values for the Target Variable. The Evaluation compares the predicted result for each observation to the actual outcome and provides a summary so that you know how effective the MLModel functions on the test data. Evaluation generates a relevant performance metric such as BinaryAUC, RegressionRMSE or MulticlassAvgFScore based on the corresponding MLModelType: BINARY, REGRESSION or MULTICLASS.

CreateEvaluation is an asynchronous operation. In response to CreateEvaluation, Amazon Machine Learning (Amazon ML) immediately returns and sets the evaluation status to PENDING. After the Evaluation is created and ready for use, Amazon ML sets the status to COMPLETED.

You can use the GetEvaluation operation to check progress of the evaluation during the creation operation.

", + "CreateMLModel": "

Creates a new MLModel using the data files and the recipe as information sources.

An MLModel is nearly immutable. Users can only update the MLModelName and the ScoreThreshold in an MLModel without creating a new MLModel.

CreateMLModel is an asynchronous operation. In response to CreateMLModel, Amazon Machine Learning (Amazon ML) immediately returns and sets the MLModel status to PENDING. After the MLModel is created and ready for use, Amazon ML sets the status to COMPLETED.

You can use the GetMLModel operation to check progress of the MLModel during the creation operation.

CreateMLModel requires a DataSource with computed statistics, which can be created by setting ComputeStatistics to true in CreateDataSourceFromRDS, CreateDataSourceFromS3, or CreateDataSourceFromRedshift operations.

", + "CreateRealtimeEndpoint": "

Creates a real-time endpoint for the MLModel. The endpoint contains the URI of the MLModel; that is, the location to send real-time prediction requests for the specified MLModel.

", + "DeleteBatchPrediction": "

Assigns the DELETED status to a BatchPrediction, rendering it unusable.

After using the DeleteBatchPrediction operation, you can use the GetBatchPrediction operation to verify that the status of the BatchPrediction changed to DELETED.

Caution

The result of the DeleteBatchPrediction operation is irreversible.

", + "DeleteDataSource": "

Assigns the DELETED status to a DataSource, rendering it unusable.

After using the DeleteDataSource operation, you can use the GetDataSource operation to verify that the status of the DataSource changed to DELETED.

Caution

The results of the DeleteDataSource operation are irreversible.

", + "DeleteEvaluation": "

Assigns the DELETED status to an Evaluation, rendering it unusable.

After invoking the DeleteEvaluation operation, you can use the GetEvaluation operation to verify that the status of the Evaluation changed to DELETED.

Caution

The results of the DeleteEvaluation operation are irreversible.

", + "DeleteMLModel": "

Assigns the DELETED status to an MLModel, rendering it unusable.

After using the DeleteMLModel operation, you can use the GetMLModel operation to verify that the status of the MLModel changed to DELETED.

Caution

The result of the DeleteMLModel operation is irreversible.

", + "DeleteRealtimeEndpoint": "

Deletes a real time endpoint of an MLModel.

", + "DescribeBatchPredictions": "

Returns a list of BatchPrediction operations that match the search criteria in the request.

", + "DescribeDataSources": "

Returns a list of DataSource that match the search criteria in the request.

", + "DescribeEvaluations": "

Returns a list of DescribeEvaluations that match the search criteria in the request.

", + "DescribeMLModels": "

Returns a list of MLModel that match the search criteria in the request.

", + "GetBatchPrediction": "

Returns a BatchPrediction that includes detailed metadata, status, and data file information for a Batch Prediction request.

", + "GetDataSource": "

Returns a DataSource that includes metadata and data file information, as well as the current status of the DataSource.

GetDataSource provides results in normal or verbose format. The verbose format adds the schema description and the list of files pointed to by the DataSource to the normal format.

", + "GetEvaluation": "

Returns an Evaluation that includes metadata as well as the current status of the Evaluation.

", + "GetMLModel": "

Returns an MLModel that includes detailed metadata, and data source information as well as the current status of the MLModel.

GetMLModel provides results in normal or verbose format.

", + "Predict": "

Generates a prediction for the observation using the specified MLModel.

Note

Not all response parameters will be populated because this is dependent on the type of requested model.

", + "UpdateBatchPrediction": "

Updates the BatchPredictionName of a BatchPrediction.

You can use the GetBatchPrediction operation to view the contents of the updated data element.

", + "UpdateDataSource": "

Updates the DataSourceName of a DataSource.

You can use the GetDataSource operation to view the contents of the updated data element.

", + "UpdateEvaluation": "

Updates the EvaluationName of an Evaluation.

You can use the GetEvaluation operation to view the contents of the updated data element.

", + "UpdateMLModel": "

Updates the MLModelName and the ScoreThreshold of an MLModel.

You can use the GetMLModel operation to view the contents of the updated data element.

" + }, + "service": "Definition of the public APIs exposed by Amazon Machine Learning", + "shapes": { + "Algorithm": { + "base": "

The function used to train a MLModel. Training choices supported by Amazon ML include the following:

  • SGD - Stochastic Gradient Descent.
  • RandomForest - Random forest of decision trees.
", + "refs": { + "MLModel$Algorithm": "

The algorithm used to train the MLModel. The following algorithm is supported:

  • SGD -- Stochastic gradient descent. The goal of SGD is to minimize the gradient of the loss function.
" + } + }, + "AwsUserArn": { + "base": "

An Amazon Web Service (AWS) user account identifier. The account identifier can be an AWS root account or an AWS Identity and Access Management (IAM) user.

", + "refs": { + "BatchPrediction$CreatedByIamUser": "

The AWS user account that invoked the BatchPrediction. The account type can be either an AWS root account or an AWS Identity and Access Management (IAM) user account.

", + "DataSource$CreatedByIamUser": "

The AWS user account from which the DataSource was created. The account type can be either an AWS root account or an AWS Identity and Access Management (IAM) user account.

", + "Evaluation$CreatedByIamUser": "

The AWS user account that invoked the evaluation. The account type can be either an AWS root account or an AWS Identity and Access Management (IAM) user account.

", + "GetBatchPredictionOutput$CreatedByIamUser": "

The AWS user account that invoked the BatchPrediction. The account type can be either an AWS root account or an AWS Identity and Access Management (IAM) user account.

", + "GetDataSourceOutput$CreatedByIamUser": "

The AWS user account from which the DataSource was created. The account type can be either an AWS root account or an AWS Identity and Access Management (IAM) user account.

", + "GetEvaluationOutput$CreatedByIamUser": "

The AWS user account that invoked the evaluation. The account type can be either an AWS root account or an AWS Identity and Access Management (IAM) user account.

", + "GetMLModelOutput$CreatedByIamUser": "

The AWS user account from which the MLModel was created. The account type can be either an AWS root account or an AWS Identity and Access Management (IAM) user account.

", + "MLModel$CreatedByIamUser": "

The AWS user account from which the MLModel was created. The account type can be either an AWS root account or an AWS Identity and Access Management (IAM) user account.

" + } + }, + "BatchPrediction": { + "base": "

Represents the output of GetBatchPrediction operation.

The content consists of the detailed metadata, the status, and the data file information of a Batch Prediction.

", + "refs": { + "BatchPredictions$member": null + } + }, + "BatchPredictionFilterVariable": { + "base": "

A list of the variables to use in searching or filtering BatchPrediction.

  • CreatedAt - Sets the search criteria to BatchPrediction creation date.
  • Status - Sets the search criteria to BatchPrediction status.
  • Name - Sets the search criteria to the contents of BatchPrediction Name.
  • IAMUser - Sets the search criteria to the user account that invoked the BatchPrediction creation.
  • MLModelId - Sets the search criteria to the MLModel used in the BatchPrediction.
  • DataSourceId - Sets the search criteria to the DataSource used in the BatchPrediction.
  • DataURI - Sets the search criteria to the data file(s) used in the BatchPrediction. The URL can identify either a file or an Amazon Simple Storage Service (Amazon S3) bucket or directory.
", + "refs": { + "DescribeBatchPredictionsInput$FilterVariable": "

Use one of the following variables to filter a list of BatchPrediction:

  • CreatedAt - Sets the search criteria to the BatchPrediction creation date.
  • Status - Sets the search criteria to the BatchPrediction status.
  • Name - Sets the search criteria to the contents of the BatchPrediction Name.
  • IAMUser - Sets the search criteria to the user account that invoked the BatchPrediction creation.
  • MLModelId - Sets the search criteria to the MLModel used in the BatchPrediction.
  • DataSourceId - Sets the search criteria to the DataSource used in the BatchPrediction.
  • DataURI - Sets the search criteria to the data file(s) used in the BatchPrediction. The URL can identify either a file or an Amazon Simple Storage Solution (Amazon S3) bucket or directory.
" + } + }, + "BatchPredictions": { + "base": null, + "refs": { + "DescribeBatchPredictionsOutput$Results": "

A list of BatchPrediction objects that meet the search criteria.

" + } + }, + "ComparatorValue": { + "base": "

The value specified in a filtering condition. The ComparatorValue becomes the reference value when matching or evaluating data values in filtering and searching functions.

", + "refs": { + "DescribeBatchPredictionsInput$EQ": "

The equal to operator. The BatchPrediction results will have FilterVariable values that exactly match the value specified with EQ.

", + "DescribeBatchPredictionsInput$GT": "

The greater than operator. The BatchPrediction results will have FilterVariable values that are greater than the value specified with GT.

", + "DescribeBatchPredictionsInput$LT": "

The less than operator. The BatchPrediction results will have FilterVariable values that are less than the value specified with LT.

", + "DescribeBatchPredictionsInput$GE": "

The greater than or equal to operator. The BatchPrediction results will have FilterVariable values that are greater than or equal to the value specified with GE.

", + "DescribeBatchPredictionsInput$LE": "

The less than or equal to operator. The BatchPrediction results will have FilterVariable values that are less than or equal to the value specified with LE.

", + "DescribeBatchPredictionsInput$NE": "

The not equal to operator. The BatchPrediction results will have FilterVariable values not equal to the value specified with NE.

", + "DescribeBatchPredictionsInput$Prefix": "

A string that is found at the beginning of a variable, such as Name or Id.

For example, a Batch Prediction operation could have the Name 2014-09-09-HolidayGiftMailer. To search for this BatchPrediction, select Name for the FilterVariable and any of the following strings for the Prefix:

  • 2014-09

  • 2014-09-09

  • 2014-09-09-Holiday

", + "DescribeDataSourcesInput$EQ": "

The equal to operator. The DataSource results will have FilterVariable values that exactly match the value specified with EQ.

", + "DescribeDataSourcesInput$GT": "

The greater than operator. The DataSource results will have FilterVariable values that are greater than the value specified with GT.

", + "DescribeDataSourcesInput$LT": "

The less than operator. The DataSource results will have FilterVariable values that are less than the value specified with LT.

", + "DescribeDataSourcesInput$GE": "

The greater than or equal to operator. The DataSource results will have FilterVariable values that are greater than or equal to the value specified with GE.

", + "DescribeDataSourcesInput$LE": "

The less than or equal to operator. The DataSource results will have FilterVariable values that are less than or equal to the value specified with LE.

", + "DescribeDataSourcesInput$NE": "

The not equal to operator. The DataSource results will have FilterVariable values not equal to the value specified with NE.

", + "DescribeDataSourcesInput$Prefix": "

A string that is found at the beginning of a variable, such as Name or Id.

For example, a DataSource could have the Name 2014-09-09-HolidayGiftMailer. To search for this DataSource, select Name for the FilterVariable and any of the following strings for the Prefix:

  • 2014-09

  • 2014-09-09

  • 2014-09-09-Holiday

", + "DescribeEvaluationsInput$EQ": "

The equal to operator. The Evaluation results will have FilterVariable values that exactly match the value specified with EQ.

", + "DescribeEvaluationsInput$GT": "

The greater than operator. The Evaluation results will have FilterVariable values that are greater than the value specified with GT.

", + "DescribeEvaluationsInput$LT": "

The less than operator. The Evaluation results will have FilterVariable values that are less than the value specified with LT.

", + "DescribeEvaluationsInput$GE": "

The greater than or equal to operator. The Evaluation results will have FilterVariable values that are greater than or equal to the value specified with GE.

", + "DescribeEvaluationsInput$LE": "

The less than or equal to operator. The Evaluation results will have FilterVariable values that are less than or equal to the value specified with LE.

", + "DescribeEvaluationsInput$NE": "

The not equal to operator. The Evaluation results will have FilterVariable values not equal to the value specified with NE.

", + "DescribeEvaluationsInput$Prefix": "

A string that is found at the beginning of a variable, such as Name or Id.

For example, an Evaluation could have the Name 2014-09-09-HolidayGiftMailer. To search for this Evaluation, select Name for the FilterVariable and any of the following strings for the Prefix:

  • 2014-09

  • 2014-09-09

  • 2014-09-09-Holiday

", + "DescribeMLModelsInput$EQ": "

The equal to operator. The MLModel results will have FilterVariable values that exactly match the value specified with EQ.

", + "DescribeMLModelsInput$GT": "

The greater than operator. The MLModel results will have FilterVariable values that are greater than the value specified with GT.

", + "DescribeMLModelsInput$LT": "

The less than operator. The MLModel results will have FilterVariable values that are less than the value specified with LT.

", + "DescribeMLModelsInput$GE": "

The greater than or equal to operator. The MLModel results will have FilterVariable values that are greater than or equal to the value specified with GE.

", + "DescribeMLModelsInput$LE": "

The less than or equal to operator. The MLModel results will have FilterVariable values that are less than or equal to the value specified with LE.

", + "DescribeMLModelsInput$NE": "

The not equal to operator. The MLModel results will have FilterVariable values not equal to the value specified with NE.

", + "DescribeMLModelsInput$Prefix": "

A string that is found at the beginning of a variable, such as Name or Id.

For example, an MLModel could have the Name 2014-09-09-HolidayGiftMailer. To search for this MLModel, select Name for the FilterVariable and any of the following strings for the Prefix:

  • 2014-09

  • 2014-09-09

  • 2014-09-09-Holiday

" + } + }, + "ComputeStatistics": { + "base": null, + "refs": { + "CreateDataSourceFromRDSInput$ComputeStatistics": "

The compute statistics for a DataSource. The statistics are generated from the observation data referenced by a DataSource. Amazon ML uses the statistics internally during an MLModel training. This parameter must be set to true if the DataSource needs to be used for MLModel training.

", + "CreateDataSourceFromRedshiftInput$ComputeStatistics": "

The compute statistics for a DataSource. The statistics are generated from the observation data referenced by a DataSource. Amazon ML uses the statistics internally during MLModel training. This parameter must be set to true if the DataSource needs to be used for MLModel training

", + "CreateDataSourceFromS3Input$ComputeStatistics": "

The compute statistics for a DataSource. The statistics are generated from the observation data referenced by a DataSource. Amazon ML uses the statistics internally during an MLModel training. This parameter must be set to true if the DataSource needs to be used for MLModel training

", + "DataSource$ComputeStatistics": "

The parameter is true if statistics need to be generated from the observation data.

", + "GetDataSourceOutput$ComputeStatistics": "

The parameter is true if statistics need to be generated from the observation data.

" + } + }, + "CreateBatchPredictionInput": { + "base": null, + "refs": { + } + }, + "CreateBatchPredictionOutput": { + "base": "

Represents the output of a CreateBatchPrediction operation, and is an acknowledgement that Amazon ML received the request.

The CreateBatchPrediction operation is asynchronous. You can poll for status updates by using the GetBatchPrediction operation and checking the Status parameter of the result.

", + "refs": { + } + }, + "CreateDataSourceFromRDSInput": { + "base": null, + "refs": { + } + }, + "CreateDataSourceFromRDSOutput": { + "base": "

Represents the output of a CreateDataSourceFromRDS operation, and is an acknowledgement that Amazon ML received the request.

The CreateDataSourceFromRDS operation is asynchronous. You can poll for updates by using the GetBatchPrediction operation and checking the Status parameter. You can inspect the Message when Status shows up as FAILED. You can also check the progress of the copy operation by going to the DataPipeline console and looking up the pipeline using the pipelineId from the describe call.

", + "refs": { + } + }, + "CreateDataSourceFromRedshiftInput": { + "base": null, + "refs": { + } + }, + "CreateDataSourceFromRedshiftOutput": { + "base": "

Represents the output of a CreateDataSourceFromRedshift operation, and is an acknowledgement that Amazon ML received the request.

The CreateDataSourceFromRedshift operation is asynchronous. You can poll for updates by using the GetBatchPrediction operation and checking the Status parameter.

", + "refs": { + } + }, + "CreateDataSourceFromS3Input": { + "base": null, + "refs": { + } + }, + "CreateDataSourceFromS3Output": { + "base": "

Represents the output of a CreateDataSourceFromS3 operation, and is an acknowledgement that Amazon ML received the request.

The CreateDataSourceFromS3 operation is asynchronous. You can poll for updates by using the GetBatchPrediction operation and checking the Status parameter.

", + "refs": { + } + }, + "CreateEvaluationInput": { + "base": null, + "refs": { + } + }, + "CreateEvaluationOutput": { + "base": "

Represents the output of a CreateEvaluation operation, and is an acknowledgement that Amazon ML received the request.

CreateEvaluation operation is asynchronous. You can poll for status updates by using the GetEvaluation operation and checking the Status parameter.

", + "refs": { + } + }, + "CreateMLModelInput": { + "base": null, + "refs": { + } + }, + "CreateMLModelOutput": { + "base": "

Represents the output of a CreateMLModel operation, and is an acknowledgement that Amazon ML received the request.

The CreateMLModel operation is asynchronous. You can poll for status updates by using the GetMLModel operation and checking the Status parameter.

", + "refs": { + } + }, + "CreateRealtimeEndpointInput": { + "base": null, + "refs": { + } + }, + "CreateRealtimeEndpointOutput": { + "base": "

Represents the output of an CreateRealtimeEndpoint operation.

The result contains the MLModelId and the endpoint information for the MLModel.

The endpoint information includes the URI of the MLModel; that is, the location to send online prediction requests for the specified MLModel.

", + "refs": { + } + }, + "DataRearrangement": { + "base": null, + "refs": { + "DataSource$DataRearrangement": "

A JSON string that represents the splitting requirement of a Datasource.

", + "GetDataSourceOutput$DataRearrangement": "

A JSON string that captures the splitting rearrangement requirement of the DataSource.

", + "RDSDataSpec$DataRearrangement": "

DataRearrangement - A JSON string that represents the splitting requirement of a DataSource.


Sample - \"{\\\"randomSeed\\\":\\\"some-random-seed\\\", \\\"splitting\\\":{\\\"percentBegin\\\":10,\\\"percentEnd\\\":60}}\"

", + "RedshiftDataSpec$DataRearrangement": "

Describes the splitting specifications for a DataSource.

", + "S3DataSpec$DataRearrangement": "

Describes the splitting requirement of a Datasource.

" + } + }, + "DataSchema": { + "base": "

The schema of a DataSource. The DataSchema defines the structure of the observation data in the data file(s) referenced in the DataSource. The DataSource schema is expressed in JSON format.

{ \"version\": \"1.0\", \"recordAnnotationFieldName\": \"F1\", \"recordWeightFieldName\": \"F2\", \"targetFieldName\": \"F3\", \"dataFormat\": \"CSV\", \"dataFileContainsHeader\": true, \"variables\": [ { \"fieldName\": \"F1\", \"fieldType\": \"TEXT\" }, { \"fieldName\": \"F2\", \"fieldType\": \"NUMERIC\" }, { \"fieldName\": \"F3\", \"fieldType\": \"CATEGORICAL\" }, { \"fieldName\": \"F4\", \"fieldType\": \"NUMERIC\" }, { \"fieldName\": \"F5\", \"fieldType\": \"CATEGORICAL\" }, { \"fieldName\": \"F6\", \"fieldType\": \"TEXT\" }, { \"fieldName\": \"F7\", \"fieldType\": \"WEIGHTED_INT_SEQUENCE\" }, { \"fieldName\": \"F8\", \"fieldType\": \"WEIGHTED_STRING_SEQUENCE\" } ], \"excludedVariableNames\": [ \"F6\" ] }", + "refs": { + "GetDataSourceOutput$DataSourceSchema": "

The schema used by all of the data files of this DataSource.

Note

This parameter is provided as part of the verbose format.

", + "GetMLModelOutput$Schema": "

The schema used by all of the data files referenced by the DataSource.

Note

This parameter is provided as part of the verbose format.

", + "RDSDataSpec$DataSchema": "

A JSON string that represents the schema. This is not required if DataSchemaUri is specified.

", + "RedshiftDataSpec$DataSchema": "

Describes the schema for an Amazon Redshift DataSource.

", + "S3DataSpec$DataSchema": "

Describes the schema for an Amazon S3 DataSource.

" + } + }, + "DataSource": { + "base": "

Represents the output of the GetDataSource operation.

The content consists of the detailed metadata and data file information and the current status of the DataSource.

", + "refs": { + "DataSources$member": null + } + }, + "DataSourceFilterVariable": { + "base": "

A list of the variables to use in searching or filtering DataSource.

  • CreatedAt - Sets the search criteria to DataSource creation date.
  • Status - Sets the search criteria to DataSource status.
  • Name - Sets the search criteria to the contents of DataSource Name.
  • DataUri - Sets the search criteria to the URI of data files used to create the DataSource. The URI can identify either a file or an Amazon Simple Storage Service (Amazon S3) bucket or directory.
  • IAMUser - Sets the search criteria to the user account that invoked the DataSource creation.
Note

The variable names should match the variable names in the DataSource.

", + "refs": { + "DescribeDataSourcesInput$FilterVariable": "

Use one of the following variables to filter a list of DataSource:

  • CreatedAt - Sets the search criteria to DataSource creation dates.
  • Status - Sets the search criteria to DataSource statuses.
  • Name - Sets the search criteria to the contents of DataSource Name.
  • DataUri - Sets the search criteria to the URI of data files used to create the DataSource. The URI can identify either a file or an Amazon Simple Storage Service (Amazon S3) bucket or directory.
  • IAMUser - Sets the search criteria to the user account that invoked the DataSource creation.
" + } + }, + "DataSources": { + "base": null, + "refs": { + "DescribeDataSourcesOutput$Results": "

A list of DataSource that meet the search criteria.

" + } + }, + "DeleteBatchPredictionInput": { + "base": null, + "refs": { + } + }, + "DeleteBatchPredictionOutput": { + "base": "

Represents the output of a DeleteBatchPrediction operation.

You can use the GetBatchPrediction operation and check the value of the Status parameter to see whether a BatchPrediction is marked as DELETED.

", + "refs": { + } + }, + "DeleteDataSourceInput": { + "base": null, + "refs": { + } + }, + "DeleteDataSourceOutput": { + "base": "

Represents the output of a DeleteDataSource operation.

", + "refs": { + } + }, + "DeleteEvaluationInput": { + "base": null, + "refs": { + } + }, + "DeleteEvaluationOutput": { + "base": "

Represents the output of a DeleteEvaluation operation. The output indicates that Amazon Machine Learning (Amazon ML) received the request.

You can use the GetEvaluation operation and check the value of the Status parameter to see whether an Evaluation is marked as DELETED.

", + "refs": { + } + }, + "DeleteMLModelInput": { + "base": null, + "refs": { + } + }, + "DeleteMLModelOutput": { + "base": "

Represents the output of a DeleteMLModel operation.

You can use the GetMLModel operation and check the value of the Status parameter to see whether an MLModel is marked as DELETED.

", + "refs": { + } + }, + "DeleteRealtimeEndpointInput": { + "base": null, + "refs": { + } + }, + "DeleteRealtimeEndpointOutput": { + "base": "

Represents the output of an DeleteRealtimeEndpoint operation.

The result contains the MLModelId and the endpoint information for the MLModel.

", + "refs": { + } + }, + "DescribeBatchPredictionsInput": { + "base": null, + "refs": { + } + }, + "DescribeBatchPredictionsOutput": { + "base": "

Represents the output of a DescribeBatchPredictions operation. The content is essentially a list of BatchPredictions.

", + "refs": { + } + }, + "DescribeDataSourcesInput": { + "base": null, + "refs": { + } + }, + "DescribeDataSourcesOutput": { + "base": "

Represents the query results from a DescribeDataSources operation. The content is essentially a list of DataSource.

", + "refs": { + } + }, + "DescribeEvaluationsInput": { + "base": null, + "refs": { + } + }, + "DescribeEvaluationsOutput": { + "base": "

Represents the query results from a DescribeEvaluations operation. The content is essentially a list of Evaluation.

", + "refs": { + } + }, + "DescribeMLModelsInput": { + "base": null, + "refs": { + } + }, + "DescribeMLModelsOutput": { + "base": "

Represents the output of a DescribeMLModels operation. The content is essentially a list of MLModel.

", + "refs": { + } + }, + "DetailsAttributes": { + "base": "Contains the key values of DetailsMap: PredictiveModelType - Indicates the type of the MLModel. Algorithm - Indicates the algorithm was used for the MLModel.", + "refs": { + "DetailsMap$key": null + } + }, + "DetailsMap": { + "base": "Provides any additional details regarding the prediction.", + "refs": { + "Prediction$details": null + } + }, + "DetailsValue": { + "base": null, + "refs": { + "DetailsMap$value": null + } + }, + "EDPPipelineId": { + "base": null, + "refs": { + "RDSMetadata$DataPipelineId": "

The ID of the Data Pipeline instance that is used to carry to copy data from Amazon RDS to Amazon S3. You can use the ID to find details about the instance in the Data Pipeline console.

" + } + }, + "EDPResourceRole": { + "base": null, + "refs": { + "RDSDataSpec$ResourceRole": "

The role (DataPipelineDefaultResourceRole) assumed by an Amazon Elastic Compute Cloud (Amazon EC2) instance to carry out the copy operation from Amazon RDS to an Amazon S3 task. For more information, see Role templates for data pipelines.

", + "RDSMetadata$ResourceRole": "

The role (DataPipelineDefaultResourceRole) assumed by an Amazon EC2 instance to carry out the copy task from Amazon RDS to Amazon S3. For more information, see Role templates for data pipelines.

" + } + }, + "EDPSecurityGroupId": { + "base": null, + "refs": { + "EDPSecurityGroupIds$member": null + } + }, + "EDPSecurityGroupIds": { + "base": null, + "refs": { + "RDSDataSpec$SecurityGroupIds": "

The security group IDs to be used to access a VPC-based RDS DB instance. Ensure that there are appropriate ingress rules set up to allow access to the RDS DB instance. This attribute is used by Data Pipeline to carry out the copy operation from Amazon RDS to an Amazon S3 task.

" + } + }, + "EDPServiceRole": { + "base": null, + "refs": { + "RDSDataSpec$ServiceRole": "

The role (DataPipelineDefaultRole) assumed by AWS Data Pipeline service to monitor the progress of the copy task from Amazon RDS to Amazon S3. For more information, see Role templates for data pipelines.

", + "RDSMetadata$ServiceRole": "

The role (DataPipelineDefaultRole) assumed by the Data Pipeline service to monitor the progress of the copy task from Amazon RDS to Amazon S3. For more information, see Role templates for data pipelines.

" + } + }, + "EDPSubnetId": { + "base": null, + "refs": { + "RDSDataSpec$SubnetId": "

The subnet ID to be used to access a VPC-based RDS DB instance. This attribute is used by Data Pipeline to carry out the copy task from Amazon RDS to Amazon S3.

" + } + }, + "EntityId": { + "base": null, + "refs": { + "BatchPrediction$BatchPredictionId": "

The ID assigned to the BatchPrediction at creation. This value should be identical to the value of the BatchPredictionID in the request.

", + "BatchPrediction$MLModelId": "

The ID of the MLModel that generated predictions for the BatchPrediction request.

", + "BatchPrediction$BatchPredictionDataSourceId": "

The ID of the DataSource that points to the group of observations to predict.

", + "CreateBatchPredictionInput$BatchPredictionId": "

A user-supplied ID that uniquely identifies the BatchPrediction.

", + "CreateBatchPredictionInput$MLModelId": "

The ID of the MLModel that will generate predictions for the group of observations.

", + "CreateBatchPredictionInput$BatchPredictionDataSourceId": "

The ID of the DataSource that points to the group of observations to predict.

", + "CreateBatchPredictionOutput$BatchPredictionId": "

A user-supplied ID that uniquely identifies the BatchPrediction. This value is identical to the value of the BatchPredictionId in the request.

", + "CreateDataSourceFromRDSInput$DataSourceId": "

A user-supplied ID that uniquely identifies the DataSource. Typically, an Amazon Resource Number (ARN) becomes the ID for a DataSource.

", + "CreateDataSourceFromRDSOutput$DataSourceId": "

A user-supplied ID that uniquely identifies the datasource. This value should be identical to the value of the DataSourceID in the request.

", + "CreateDataSourceFromRedshiftInput$DataSourceId": "

A user-supplied ID that uniquely identifies the DataSource.

", + "CreateDataSourceFromRedshiftOutput$DataSourceId": "

A user-supplied ID that uniquely identifies the datasource. This value should be identical to the value of the DataSourceID in the request.

", + "CreateDataSourceFromS3Input$DataSourceId": "

A user-supplied identifier that uniquely identifies the DataSource.

", + "CreateDataSourceFromS3Output$DataSourceId": "

A user-supplied ID that uniquely identifies the datasource. This value should be identical to the value of the DataSourceID in the request.

", + "CreateEvaluationInput$EvaluationId": "

A user-supplied ID that uniquely identifies the Evaluation.

", + "CreateEvaluationInput$MLModelId": "

The ID of the MLModel to evaluate.

The schema used in creating the MLModel must match the schema of the DataSource used in the Evaluation.

", + "CreateEvaluationInput$EvaluationDataSourceId": "

The ID of the DataSource for the evaluation. The schema of the DataSource must match the schema used to create the MLModel.

", + "CreateEvaluationOutput$EvaluationId": "

The user-supplied ID that uniquely identifies the Evaluation. This value should be identical to the value of the EvaluationId in the request.

", + "CreateMLModelInput$MLModelId": "

A user-supplied ID that uniquely identifies the MLModel.

", + "CreateMLModelInput$TrainingDataSourceId": "

The DataSource that points to the training data.

", + "CreateMLModelOutput$MLModelId": "

A user-supplied ID that uniquely identifies the MLModel. This value should be identical to the value of the MLModelId in the request.

", + "CreateRealtimeEndpointInput$MLModelId": "

The ID assigned to the MLModel during creation.

", + "CreateRealtimeEndpointOutput$MLModelId": "

A user-supplied ID that uniquely identifies the MLModel. This value should be identical to the value of the MLModelId in the request.

", + "DataSource$DataSourceId": "

The ID that is assigned to the DataSource during creation.

", + "DeleteBatchPredictionInput$BatchPredictionId": "

A user-supplied ID that uniquely identifies the BatchPrediction.

", + "DeleteBatchPredictionOutput$BatchPredictionId": "

A user-supplied ID that uniquely identifies the BatchPrediction. This value should be identical to the value of the BatchPredictionID in the request.

", + "DeleteDataSourceInput$DataSourceId": "

A user-supplied ID that uniquely identifies the DataSource.

", + "DeleteDataSourceOutput$DataSourceId": "

A user-supplied ID that uniquely identifies the DataSource. This value should be identical to the value of the DataSourceID in the request.

", + "DeleteEvaluationInput$EvaluationId": "

A user-supplied ID that uniquely identifies the Evaluation to delete.

", + "DeleteEvaluationOutput$EvaluationId": "

A user-supplied ID that uniquely identifies the Evaluation. This value should be identical to the value of the EvaluationId in the request.

", + "DeleteMLModelInput$MLModelId": "

A user-supplied ID that uniquely identifies the MLModel.

", + "DeleteMLModelOutput$MLModelId": "

A user-supplied ID that uniquely identifies the MLModel. This value should be identical to the value of the MLModelID in the request.

", + "DeleteRealtimeEndpointInput$MLModelId": "

The ID assigned to the MLModel during creation.

", + "DeleteRealtimeEndpointOutput$MLModelId": "

A user-supplied ID that uniquely identifies the MLModel. This value should be identical to the value of the MLModelId in the request.

", + "Evaluation$EvaluationId": "

The ID that is assigned to the Evaluation at creation.

", + "Evaluation$MLModelId": "

The ID of the MLModel that is the focus of the evaluation.

", + "Evaluation$EvaluationDataSourceId": "

The ID of the DataSource that is used to evaluate the MLModel.

", + "GetBatchPredictionInput$BatchPredictionId": "

An ID assigned to the BatchPrediction at creation.

", + "GetBatchPredictionOutput$BatchPredictionId": "

An ID assigned to the BatchPrediction at creation. This value should be identical to the value of the BatchPredictionID in the request.

", + "GetBatchPredictionOutput$MLModelId": "

The ID of the MLModel that generated predictions for the BatchPrediction request.

", + "GetBatchPredictionOutput$BatchPredictionDataSourceId": "

The ID of the DataSource that was used to create the BatchPrediction.

", + "GetDataSourceInput$DataSourceId": "

The ID assigned to the DataSource at creation.

", + "GetDataSourceOutput$DataSourceId": "

The ID assigned to the DataSource at creation. This value should be identical to the value of the DataSourceId in the request.

", + "GetEvaluationInput$EvaluationId": "

The ID of the Evaluation to retrieve. The evaluation of each MLModel is recorded and cataloged. The ID provides the means to access the information.

", + "GetEvaluationOutput$EvaluationId": "

The evaluation ID which is same as the EvaluationId in the request.

", + "GetEvaluationOutput$MLModelId": "

The ID of the MLModel that was the focus of the evaluation.

", + "GetEvaluationOutput$EvaluationDataSourceId": "

The DataSource used for this evaluation.

", + "GetMLModelInput$MLModelId": "

The ID assigned to the MLModel at creation.

", + "GetMLModelOutput$MLModelId": "

The MLModel ID which is same as the MLModelId in the request.

", + "GetMLModelOutput$TrainingDataSourceId": "

The ID of the training DataSource.

", + "MLModel$MLModelId": "

The ID assigned to the MLModel at creation.

", + "MLModel$TrainingDataSourceId": "

The ID of the training DataSource. The CreateMLModel operation uses the TrainingDataSourceId.

", + "PredictInput$MLModelId": "

A unique identifier of the MLModel.

", + "UpdateBatchPredictionInput$BatchPredictionId": "

The ID assigned to the BatchPrediction during creation.

", + "UpdateBatchPredictionOutput$BatchPredictionId": "

The ID assigned to the BatchPrediction during creation. This value should be identical to the value of the BatchPredictionId in the request.

", + "UpdateDataSourceInput$DataSourceId": "

The ID assigned to the DataSource during creation.

", + "UpdateDataSourceOutput$DataSourceId": "

The ID assigned to the DataSource during creation. This value should be identical to the value of the DataSourceID in the request.

", + "UpdateEvaluationInput$EvaluationId": "

The ID assigned to the Evaluation during creation.

", + "UpdateEvaluationOutput$EvaluationId": "

The ID assigned to the Evaluation during creation. This value should be identical to the value of the Evaluation in the request.

", + "UpdateMLModelInput$MLModelId": "

The ID assigned to the MLModel during creation.

", + "UpdateMLModelOutput$MLModelId": "

The ID assigned to the MLModel during creation. This value should be identical to the value of the MLModelID in the request.

" + } + }, + "EntityName": { + "base": "

A user-supplied name or description of the Amazon ML resource.

", + "refs": { + "BatchPrediction$Name": "

A user-supplied name or description of the BatchPrediction.

", + "CreateBatchPredictionInput$BatchPredictionName": "

A user-supplied name or description of the BatchPrediction. BatchPredictionName can only use the UTF-8 character set.

", + "CreateDataSourceFromRDSInput$DataSourceName": "

A user-supplied name or description of the DataSource.

", + "CreateDataSourceFromRedshiftInput$DataSourceName": "

A user-supplied name or description of the DataSource.

", + "CreateDataSourceFromS3Input$DataSourceName": "

A user-supplied name or description of the DataSource.

", + "CreateEvaluationInput$EvaluationName": "

A user-supplied name or description of the Evaluation.

", + "CreateMLModelInput$MLModelName": "

A user-supplied name or description of the MLModel.

", + "DataSource$Name": "

A user-supplied name or description of the DataSource.

", + "Evaluation$Name": "

A user-supplied name or description of the Evaluation.

", + "GetBatchPredictionOutput$Name": "

A user-supplied name or description of the BatchPrediction.

", + "GetDataSourceOutput$Name": "

A user-supplied name or description of the DataSource.

", + "GetEvaluationOutput$Name": "

A user-supplied name or description of the Evaluation.

", + "UpdateBatchPredictionInput$BatchPredictionName": "

A new user-supplied name or description of the BatchPrediction.

", + "UpdateDataSourceInput$DataSourceName": "

A new user-supplied name or description of the DataSource that will replace the current description.

", + "UpdateEvaluationInput$EvaluationName": "

A new user-supplied name or description of the Evaluation that will replace the current content.

", + "UpdateMLModelInput$MLModelName": "

A user-supplied name or description of the MLModel.

" + } + }, + "EntityStatus": { + "base": "

Entity status with the following possible values:

  • PENDING
  • INPROGRESS
  • FAILED
  • COMPLETED
  • DELETED
", + "refs": { + "BatchPrediction$Status": "

The status of the BatchPrediction. This element can have one of the following values:

  • PENDING - Amazon Machine Learning (Amazon ML) submitted a request to generate predictions for a batch of observations.
  • INPROGRESS - The process is underway.
  • FAILED - The request to peform a batch prediction did not run to completion. It is not usable.
  • COMPLETED - The batch prediction process completed successfully.
  • DELETED - The BatchPrediction is marked as deleted. It is not usable.
", + "DataSource$Status": "

The current status of the DataSource. This element can have one of the following values:

  • PENDING - Amazon Machine Learning (Amazon ML) submitted a request to create a DataSource.
  • INPROGRESS - The creation process is underway.
  • FAILED - The request to create a DataSource did not run to completion. It is not usable.
  • COMPLETED - The creation process completed successfully.
  • DELETED - The DataSource is marked as deleted. It is not usable.
", + "Evaluation$Status": "

The status of the evaluation. This element can have one of the following values:

  • PENDING - Amazon Machine Learning (Amazon ML) submitted a request to evaluate an MLModel.
  • INPROGRESS - The evaluation is underway.
  • FAILED - The request to evaluate an MLModel did not run to completion. It is not usable.
  • COMPLETED - The evaluation process completed successfully.
  • DELETED - The Evaluation is marked as deleted. It is not usable.
", + "GetBatchPredictionOutput$Status": "

The status of the BatchPrediction, which can be one of the following values:

  • PENDING - Amazon Machine Learning (Amazon ML) submitted a request to generate batch predictions.
  • INPROGRESS - The batch predictions are in progress.
  • FAILED - The request to perform a batch prediction did not run to completion. It is not usable.
  • COMPLETED - The batch prediction process completed successfully.
  • DELETED - The BatchPrediction is marked as deleted. It is not usable.
", + "GetDataSourceOutput$Status": "

The current status of the DataSource. This element can have one of the following values:

  • PENDING - Amazon Machine Language (Amazon ML) submitted a request to create a DataSource.
  • INPROGRESS - The creation process is underway.
  • FAILED - The request to create a DataSource did not run to completion. It is not usable.
  • COMPLETED - The creation process completed successfully.
  • DELETED - The DataSource is marked as deleted. It is not usable.
", + "GetEvaluationOutput$Status": "

The status of the evaluation. This element can have one of the following values:

  • PENDING - Amazon Machine Language (Amazon ML) submitted a request to evaluate an MLModel.
  • INPROGRESS - The evaluation is underway.
  • FAILED - The request to evaluate an MLModel did not run to completion. It is not usable.
  • COMPLETED - The evaluation process completed successfully.
  • DELETED - The Evaluation is marked as deleted. It is not usable.
", + "GetMLModelOutput$Status": "

The current status of the MLModel. This element can have one of the following values:

  • PENDING - Amazon Machine Learning (Amazon ML) submitted a request to describe a MLModel.
  • INPROGRESS - The request is processing.
  • FAILED - The request did not run to completion. It is not usable.
  • COMPLETED - The request completed successfully.
  • DELETED - The MLModel is marked as deleted. It is not usable.
", + "MLModel$Status": "

The current status of an MLModel. This element can have one of the following values:

  • PENDING - Amazon Machine Learning (Amazon ML) submitted a request to create an MLModel.
  • INPROGRESS - The creation process is underway.
  • FAILED - The request to create an MLModel did not run to completion. It is not usable.
  • COMPLETED - The creation process completed successfully.
  • DELETED - The MLModel is marked as deleted. It is not usable.
" + } + }, + "EpochTime": { + "base": "

A timestamp represented in epoch time.

", + "refs": { + "BatchPrediction$CreatedAt": "

The time that the BatchPrediction was created. The time is expressed in epoch time.

", + "BatchPrediction$LastUpdatedAt": "

The time of the most recent edit to the BatchPrediction. The time is expressed in epoch time.

", + "DataSource$CreatedAt": "

The time that the DataSource was created. The time is expressed in epoch time.

", + "DataSource$LastUpdatedAt": "

The time of the most recent edit to the BatchPrediction. The time is expressed in epoch time.

", + "Evaluation$CreatedAt": "

The time that the Evaluation was created. The time is expressed in epoch time.

", + "Evaluation$LastUpdatedAt": "

The time of the most recent edit to the Evaluation. The time is expressed in epoch time.

", + "GetBatchPredictionOutput$CreatedAt": "

The time when the BatchPrediction was created. The time is expressed in epoch time.

", + "GetBatchPredictionOutput$LastUpdatedAt": "

The time of the most recent edit to BatchPrediction. The time is expressed in epoch time.

", + "GetDataSourceOutput$CreatedAt": "

The time that the DataSource was created. The time is expressed in epoch time.

", + "GetDataSourceOutput$LastUpdatedAt": "

The time of the most recent edit to the DataSource. The time is expressed in epoch time.

", + "GetEvaluationOutput$CreatedAt": "

The time that the Evaluation was created. The time is expressed in epoch time.

", + "GetEvaluationOutput$LastUpdatedAt": "

The time of the most recent edit to the BatchPrediction. The time is expressed in epoch time.

", + "GetMLModelOutput$CreatedAt": "

The time that the MLModel was created. The time is expressed in epoch time.

", + "GetMLModelOutput$LastUpdatedAt": "

The time of the most recent edit to the MLModel. The time is expressed in epoch time.

", + "GetMLModelOutput$ScoreThresholdLastUpdatedAt": "

The time of the most recent edit to the ScoreThreshold. The time is expressed in epoch time.

", + "MLModel$CreatedAt": "

The time that the MLModel was created. The time is expressed in epoch time.

", + "MLModel$LastUpdatedAt": "

The time of the most recent edit to the MLModel. The time is expressed in epoch time.

", + "MLModel$ScoreThresholdLastUpdatedAt": "

The time of the most recent edit to the ScoreThreshold. The time is expressed in epoch time.

", + "RealtimeEndpointInfo$CreatedAt": "

The time that the request to create the real-time endpoint for the MLModel was received. The time is expressed in epoch time.

" + } + }, + "ErrorCode": { + "base": null, + "refs": { + "IdempotentParameterMismatchException$code": null, + "InternalServerException$code": null, + "InvalidInputException$code": null, + "LimitExceededException$code": null, + "ResourceNotFoundException$code": null + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "IdempotentParameterMismatchException$message": null, + "InternalServerException$message": null, + "InvalidInputException$message": null, + "LimitExceededException$message": null, + "PredictorNotMountedException$message": null, + "ResourceNotFoundException$message": null + } + }, + "Evaluation": { + "base": "

Represents the output of GetEvaluation operation.

The content consists of the detailed metadata and data file information and the current status of the Evaluation.

", + "refs": { + "Evaluations$member": null + } + }, + "EvaluationFilterVariable": { + "base": "

A list of the variables to use in searching or filtering Evaluation.

  • CreatedAt - Sets the search criteria to Evaluation creation date.
  • Status - Sets the search criteria to Evaluation status.
  • Name - Sets the search criteria to the contents of Evaluation Name.
  • IAMUser - Sets the search criteria to the user account that invoked an evaluation.
  • MLModelId - Sets the search criteria to the Predictor that was evaluated.
  • DataSourceId - Sets the search criteria to the DataSource used in evaluation.
  • DataUri - Sets the search criteria to the data file(s) used in evaluation. The URL can identify either a file or an Amazon Simple Storage Service (Amazon S3) bucket or directory.
", + "refs": { + "DescribeEvaluationsInput$FilterVariable": "

Use one of the following variable to filter a list of Evaluation objects:

  • CreatedAt - Sets the search criteria to the Evaluation creation date.
  • Status - Sets the search criteria to the Evaluation status.
  • Name - Sets the search criteria to the contents of Evaluation Name.
  • IAMUser - Sets the search criteria to the user account that invoked an Evaluation.
  • MLModelId - Sets the search criteria to the MLModel that was evaluated.
  • DataSourceId - Sets the search criteria to the DataSource used in Evaluation.
  • DataUri - Sets the search criteria to the data file(s) used in Evaluation. The URL can identify either a file or an Amazon Simple Storage Solution (Amazon S3) bucket or directory.
" + } + }, + "Evaluations": { + "base": null, + "refs": { + "DescribeEvaluationsOutput$Results": "

A list of Evaluation that meet the search criteria.

" + } + }, + "GetBatchPredictionInput": { + "base": null, + "refs": { + } + }, + "GetBatchPredictionOutput": { + "base": "

Represents the output of a GetBatchPrediction operation and describes a BatchPrediction.

", + "refs": { + } + }, + "GetDataSourceInput": { + "base": null, + "refs": { + } + }, + "GetDataSourceOutput": { + "base": "

Represents the output of a GetDataSource operation and describes a DataSource.

", + "refs": { + } + }, + "GetEvaluationInput": { + "base": null, + "refs": { + } + }, + "GetEvaluationOutput": { + "base": "

Represents the output of a GetEvaluation operation and describes an Evaluation.

", + "refs": { + } + }, + "GetMLModelInput": { + "base": null, + "refs": { + } + }, + "GetMLModelOutput": { + "base": "

Represents the output of a GetMLModel operation, and provides detailed information about a MLModel.

", + "refs": { + } + }, + "IdempotentParameterMismatchException": { + "base": "

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.

", + "refs": { + } + }, + "IntegerType": { + "base": "

Integer type that is a 32-bit signed number.

", + "refs": { + "RealtimeEndpointInfo$PeakRequestsPerSecond": "

The maximum processing rate for the real-time endpoint for MLModel, measured in incoming requests per second.

" + } + }, + "InternalServerException": { + "base": "

An error on the server occurred when trying to process a request.

", + "refs": { + } + }, + "InvalidInputException": { + "base": "

An error on the client occurred. Typically, the cause is an invalid input value.

", + "refs": { + } + }, + "Label": { + "base": null, + "refs": { + "Prediction$predictedLabel": "The prediction label for either a BINARY or MULTICLASS MLModel.", + "ScoreValuePerLabelMap$key": null + } + }, + "LimitExceededException": { + "base": "

The subscriber exceeded the maximum number of operations. This exception can occur when listing objects such as DataSource.

", + "refs": { + } + }, + "LongType": { + "base": "

Long integer type that is a 64-bit signed number.

", + "refs": { + "DataSource$DataSizeInBytes": "

The total number of observations contained in the data files that the DataSource references.

", + "DataSource$NumberOfFiles": "

The number of data files referenced by the DataSource.

", + "GetDataSourceOutput$DataSizeInBytes": "

The total size of observations in the data files.

", + "GetDataSourceOutput$NumberOfFiles": "

The number of data files referenced by the DataSource.

", + "GetMLModelOutput$SizeInBytes": null, + "MLModel$SizeInBytes": null + } + }, + "MLModel": { + "base": "

Represents the output of a GetMLModel operation.

The content consists of the detailed metadata and the current status of the MLModel.

", + "refs": { + "MLModels$member": null + } + }, + "MLModelFilterVariable": { + "base": null, + "refs": { + "DescribeMLModelsInput$FilterVariable": "

Use one of the following variables to filter a list of MLModel:

  • CreatedAt - Sets the search criteria to MLModel creation date.
  • Status - Sets the search criteria to MLModel status.
  • Name - Sets the search criteria to the contents of MLModel Name.
  • IAMUser - Sets the search criteria to the user account that invoked the MLModel creation.
  • TrainingDataSourceId - Sets the search criteria to the DataSource used to train one or more MLModel.
  • RealtimeEndpointStatus - Sets the search criteria to the MLModel real-time endpoint status.
  • MLModelType - Sets the search criteria to MLModel type: binary, regression, or multi-class.
  • Algorithm - Sets the search criteria to the algorithm that the MLModel uses.
  • TrainingDataURI - Sets the search criteria to the data file(s) used in training a MLModel. The URL can identify either a file or an Amazon Simple Storage Service (Amazon S3) bucket or directory.
" + } + }, + "MLModelName": { + "base": null, + "refs": { + "GetMLModelOutput$Name": "

A user-supplied name or description of the MLModel.

", + "MLModel$Name": "

A user-supplied name or description of the MLModel.

" + } + }, + "MLModelType": { + "base": null, + "refs": { + "CreateMLModelInput$MLModelType": "

The category of supervised learning that this MLModel will address. Choose from the following types:

  • Choose REGRESSION if the MLModel will be used to predict a numeric value.
  • Choose BINARY if the MLModel result has two possible values.
  • Choose MULTICLASS if the MLModel result has a limited number of values.

For more information, see the Amazon Machine Learning Developer Guide.

", + "GetMLModelOutput$MLModelType": "

Identifies the MLModel category. The following are the available types:

  • REGRESSION -- Produces a numeric result. For example, \"What listing price should a house have?\"
  • BINARY -- Produces one of two possible results. For example, \"Is this an e-commerce website?\"
  • MULTICLASS -- Produces more than two possible results. For example, \"Is this a HIGH, LOW or MEDIUM risk trade?\"
", + "MLModel$MLModelType": "

Identifies the MLModel category. The following are the available types:

  • REGRESSION - Produces a numeric result. For example, \"What listing price should a house have?\".
  • BINARY - Produces one of two possible results. For example, \"Is this a child-friendly web site?\".
  • MULTICLASS - Produces more than two possible results. For example, \"Is this a HIGH, LOW or MEDIUM risk trade?\".
" + } + }, + "MLModels": { + "base": null, + "refs": { + "DescribeMLModelsOutput$Results": "

A list of MLModel that meet the search criteria.

" + } + }, + "Message": { + "base": "

Description of the most recent details about an entity.

", + "refs": { + "BatchPrediction$Message": "

A description of the most recent details about processing the batch prediction request.

", + "DataSource$Message": "

A description of the most recent details about creating the DataSource.

", + "Evaluation$Message": "

A description of the most recent details about evaluating the MLModel.

", + "GetBatchPredictionOutput$Message": "

A description of the most recent details about processing the batch prediction request.

", + "GetDataSourceOutput$Message": "

The description of the most recent details about creating the DataSource.

", + "GetEvaluationOutput$Message": "

A description of the most recent details about evaluating the MLModel.

", + "GetMLModelOutput$Message": "

Description of the most recent details about accessing the MLModel.

", + "MLModel$Message": "

A description of the most recent details about accessing the MLModel.

" + } + }, + "PageLimit": { + "base": null, + "refs": { + "DescribeBatchPredictionsInput$Limit": "

The number of pages of information to include in the result. The range of acceptable values is 1 through 100. The default value is 100.

", + "DescribeDataSourcesInput$Limit": "

The maximum number of DataSource to include in the result.

", + "DescribeEvaluationsInput$Limit": "

The maximum number of Evaluation to include in the result.

", + "DescribeMLModelsInput$Limit": "

The number of pages of information to include in the result. The range of acceptable values is 1 through 100. The default value is 100.

" + } + }, + "PerformanceMetrics": { + "base": "

Measurements of how well the MLModel performed on known observations. One of the following metrics is returned, based on the type of the MLModel:

  • BinaryAUC: The binary MLModel uses the Area Under the Curve (AUC) technique to measure performance.

  • RegressionRMSE: The regression MLModel uses the Root Mean Square Error (RMSE) technique to measure performance. RMSE measures the difference between predicted and actual values for a single variable.

  • MulticlassAvgFScore: The multiclass MLModel uses the F1 score technique to measure performance.

For more information about performance metrics, please see the Amazon Machine Learning Developer Guide.

", + "refs": { + "Evaluation$PerformanceMetrics": "

Measurements of how well the MLModel performed, using observations referenced by the DataSource. One of the following metrics is returned, based on the type of the MLModel:

  • BinaryAUC: A binary MLModel uses the Area Under the Curve (AUC) technique to measure performance.

  • RegressionRMSE: A regression MLModel uses the Root Mean Square Error (RMSE) technique to measure performance. RMSE measures the difference between predicted and actual values for a single variable.

  • MulticlassAvgFScore: A multiclass MLModel uses the F1 score technique to measure performance.

For more information about performance metrics, please see the Amazon Machine Learning Developer Guide.

", + "GetEvaluationOutput$PerformanceMetrics": "

Measurements of how well the MLModel performed using observations referenced by the DataSource. One of the following metric is returned based on the type of the MLModel:

  • BinaryAUC: A binary MLModel uses the Area Under the Curve (AUC) technique to measure performance.

  • RegressionRMSE: A regression MLModel uses the Root Mean Square Error (RMSE) technique to measure performance. RMSE measures the difference between predicted and actual values for a single variable.

  • MulticlassAvgFScore: A multiclass MLModel uses the F1 score technique to measure performance.

For more information about performance metrics, please see the Amazon Machine Learning Developer Guide.

" + } + }, + "PerformanceMetricsProperties": { + "base": null, + "refs": { + "PerformanceMetrics$Properties": null + } + }, + "PerformanceMetricsPropertyKey": { + "base": null, + "refs": { + "PerformanceMetricsProperties$key": null + } + }, + "PerformanceMetricsPropertyValue": { + "base": null, + "refs": { + "PerformanceMetricsProperties$value": null + } + }, + "PredictInput": { + "base": null, + "refs": { + } + }, + "PredictOutput": { + "base": null, + "refs": { + } + }, + "Prediction": { + "base": "

The output from a Predict operation:

  • Details - Contains the following attributes: DetailsAttributes.PREDICTIVE_MODEL_TYPE - REGRESSION | BINARY | MULTICLASS DetailsAttributes.ALGORITHM - SGD

  • PredictedLabel - Present for either a BINARY or MULTICLASS MLModel request.

  • PredictedScores - Contains the raw classification score corresponding to each label.

  • PredictedValue - Present for a REGRESSION MLModel request.

", + "refs": { + "PredictOutput$Prediction": null + } + }, + "PredictorNotMountedException": { + "base": "

The exception is thrown when a predict request is made to an unmounted MLModel.

", + "refs": { + } + }, + "PresignedS3Url": { + "base": null, + "refs": { + "GetBatchPredictionOutput$LogUri": "

A link to the file that contains logs of the CreateBatchPrediction operation.

", + "GetDataSourceOutput$LogUri": "

A link to the file containining logs of either create DataSource operation.

", + "GetEvaluationOutput$LogUri": "

A link to the file that contains logs of the CreateEvaluation operation.

", + "GetMLModelOutput$LogUri": "

A link to the file that contains logs of the CreateMLModel operation.

" + } + }, + "RDSDataSpec": { + "base": "

The data specification of an Amazon Relational Database Service (Amazon RDS) DataSource.

", + "refs": { + "CreateDataSourceFromRDSInput$RDSData": "

The data specification of an Amazon RDS DataSource:

  • DatabaseInformation -

    • DatabaseName - Name of the Amazon RDS database.
    • InstanceIdentifier - Unique identifier for the Amazon RDS database instance.

  • DatabaseCredentials - AWS Identity and Access Management (IAM) credentials that are used to connect to the Amazon RDS database.

  • ResourceRole - Role (DataPipelineDefaultResourceRole) assumed by an Amazon Elastic Compute Cloud (EC2) instance to carry out the copy task from Amazon RDS to Amazon S3. For more information, see Role templates for data pipelines.

  • ServiceRole - Role (DataPipelineDefaultRole) assumed by the AWS Data Pipeline service to monitor the progress of the copy task from Amazon RDS to Amazon Simple Storage Service (S3). For more information, see Role templates for data pipelines.

  • SecurityInfo - Security information to use to access an Amazon RDS instance. You need to set up appropriate ingress rules for the security entity IDs provided to allow access to the Amazon RDS instance. Specify a [SubnetId, SecurityGroupIds] pair for a VPC-based Amazon RDS instance.

  • SelectSqlQuery - Query that is used to retrieve the observation data for the Datasource.

  • S3StagingLocation - Amazon S3 location for staging RDS data. The data retrieved from Amazon RDS using SelectSqlQuery is stored in this location.

  • DataSchemaUri - Amazon S3 location of the DataSchema.

  • DataSchema - A JSON string representing the schema. This is not required if DataSchemaUri is specified.

  • DataRearrangement - A JSON string representing the splitting requirement of a Datasource.


    Sample - \"{\\\"randomSeed\\\":\\\"some-random-seed\\\", \\\"splitting\\\":{\\\"percentBegin\\\":10,\\\"percentEnd\\\":60}}\"

" + } + }, + "RDSDatabase": { + "base": "

The database details of an Amazon RDS database.

", + "refs": { + "RDSDataSpec$DatabaseInformation": "

Describes the DatabaseName and InstanceIdentifier of an an Amazon RDS database.

", + "RDSMetadata$Database": "

The database details required to connect to an Amazon RDS.

" + } + }, + "RDSDatabaseCredentials": { + "base": "

The database credentials to connect to a database on an RDS DB instance.

", + "refs": { + "RDSDataSpec$DatabaseCredentials": "

The AWS Identity and Access Management (IAM) credentials that are used connect to the Amazon RDS database.

" + } + }, + "RDSDatabaseName": { + "base": "

The name of a database hosted on an RDS DB instance.

", + "refs": { + "RDSDatabase$DatabaseName": null + } + }, + "RDSDatabasePassword": { + "base": "

The password to be used by Amazon ML to connect to a database on an RDS DB instance. The password should have sufficient permissions to execute the RDSSelectQuery query.

", + "refs": { + "RDSDatabaseCredentials$Password": null + } + }, + "RDSDatabaseUsername": { + "base": "

The username to be used by Amazon ML to connect to database on an Amazon RDS instance. The username should have sufficient permissions to execute an RDSSelectSqlQuery query.

", + "refs": { + "RDSDatabaseCredentials$Username": null, + "RDSMetadata$DatabaseUserName": null + } + }, + "RDSInstanceIdentifier": { + "base": "Identifier of RDS DB Instances.", + "refs": { + "RDSDatabase$InstanceIdentifier": "

The ID of an RDS DB instance.

" + } + }, + "RDSMetadata": { + "base": "

The datasource details that are specific to Amazon RDS.

", + "refs": { + "DataSource$RDSMetadata": null, + "GetDataSourceOutput$RDSMetadata": null + } + }, + "RDSSelectSqlQuery": { + "base": "

The SQL query to be executed against the Amazon RDS database. The SQL query should be valid for the Amazon RDS type being used.

", + "refs": { + "RDSDataSpec$SelectSqlQuery": "

The query that is used to retrieve the observation data for the DataSource.

", + "RDSMetadata$SelectSqlQuery": "

The SQL query that is supplied during CreateDataSourceFromRDS. Returns only if Verbose is true in GetDataSourceInput.

" + } + }, + "RealtimeEndpointInfo": { + "base": "

Describes the real-time endpoint information for an MLModel.

", + "refs": { + "CreateRealtimeEndpointOutput$RealtimeEndpointInfo": "

The endpoint information of the MLModel

", + "DeleteRealtimeEndpointOutput$RealtimeEndpointInfo": "

The endpoint information of the MLModel

", + "GetMLModelOutput$EndpointInfo": "

The current endpoint of the MLModel

", + "MLModel$EndpointInfo": "

The current endpoint of the MLModel.

" + } + }, + "RealtimeEndpointStatus": { + "base": null, + "refs": { + "RealtimeEndpointInfo$EndpointStatus": "

The current status of the real-time endpoint for the MLModel. This element can have one of the following values:

  • NONE - Endpoint does not exist or was previously deleted.
  • READY - Endpoint is ready to be used for real-time predictions.
  • UPDATING - Updating/creating the endpoint.
" + } + }, + "Recipe": { + "base": null, + "refs": { + "CreateMLModelInput$Recipe": "

The data recipe for creating MLModel. You must specify either the recipe or its URI. If you don’t specify a recipe or its URI, Amazon ML creates a default.

", + "GetMLModelOutput$Recipe": "

The recipe to use when training the MLModel. The Recipe provides detailed information about the observation data to use during training, as well as manipulations to perform on the observation data during training.

Note

This parameter is provided as part of the verbose format.

" + } + }, + "Record": { + "base": "

A map of variable name-value pairs that represent an observation.

", + "refs": { + "PredictInput$Record": null + } + }, + "RedshiftClusterIdentifier": { + "base": "

The ID of an Amazon Redshift cluster.

", + "refs": { + "RedshiftDatabase$ClusterIdentifier": null + } + }, + "RedshiftDataSpec": { + "base": "

Describes the data specification of an Amazon Redshift DataSource.

", + "refs": { + "CreateDataSourceFromRedshiftInput$DataSpec": "

The data specification of an Amazon Redshift DataSource:

  • DatabaseInformation -

    • DatabaseName - Name of the Amazon Redshift database.
    • ClusterIdentifier - Unique ID for the Amazon Redshift cluster.

  • DatabaseCredentials - AWS Identity abd Access Management (IAM) credentials that are used to connect to the Amazon Redshift database.

  • SelectSqlQuery - Query that is used to retrieve the observation data for the Datasource.

  • S3StagingLocation - Amazon Simple Storage Service (Amazon S3) location for staging Amazon Redshift data. The data retrieved from Amazon Relational Database Service (Amazon RDS) using SelectSqlQuery is stored in this location.

  • DataSchemaUri - Amazon S3 location of the DataSchema.

  • DataSchema - A JSON string representing the schema. This is not required if DataSchemaUri is specified.

  • DataRearrangement - A JSON string representing the splitting requirement of a Datasource.


    Sample - \"{\\\"randomSeed\\\":\\\"some-random-seed\\\", \\\"splitting\\\":{\\\"percentBegin\\\":10,\\\"percentEnd\\\":60}}\"

" + } + }, + "RedshiftDatabase": { + "base": "

Describes the database details required to connect to an Amazon Redshift database.

", + "refs": { + "RedshiftDataSpec$DatabaseInformation": "

Describes the DatabaseName and ClusterIdentifier for an Amazon Redshift DataSource.

", + "RedshiftMetadata$RedshiftDatabase": null + } + }, + "RedshiftDatabaseCredentials": { + "base": "

Describes the database credentials for connecting to a database on an Amazon Redshift cluster.

", + "refs": { + "RedshiftDataSpec$DatabaseCredentials": "

Describes AWS Identity and Access Management (IAM) credentials that are used connect to the Amazon Redshift database.

" + } + }, + "RedshiftDatabaseName": { + "base": "

The name of a database hosted on an Amazon Redshift cluster.

", + "refs": { + "RedshiftDatabase$DatabaseName": null + } + }, + "RedshiftDatabasePassword": { + "base": "

A password to be used by Amazon ML to connect to a database on an Amazon Redshift cluster. The password should have sufficient permissions to execute a RedshiftSelectSqlQuery query. The password should be valid for an Amazon Redshift USER.

", + "refs": { + "RedshiftDatabaseCredentials$Password": null + } + }, + "RedshiftDatabaseUsername": { + "base": "

A username to be used by Amazon Machine Learning (Amazon ML)to connect to a database on an Amazon Redshift cluster. The username should have sufficient permissions to execute the RedshiftSelectSqlQuery query. The username should be valid for an Amazon Redshift USER.

", + "refs": { + "RedshiftDatabaseCredentials$Username": null, + "RedshiftMetadata$DatabaseUserName": null + } + }, + "RedshiftMetadata": { + "base": "

Describes the DataSource details specific to Amazon Redshift.

", + "refs": { + "DataSource$RedshiftMetadata": null, + "GetDataSourceOutput$RedshiftMetadata": null + } + }, + "RedshiftSelectSqlQuery": { + "base": "

Describes the SQL query to execute on the Amazon Redshift database. The SQL query should be valid for an Amazon Redshift SELECT.

", + "refs": { + "RedshiftDataSpec$SelectSqlQuery": "

Describes the SQL Query to execute on an Amazon Redshift database for an Amazon Redshift DataSource.

", + "RedshiftMetadata$SelectSqlQuery": "

The SQL query that is specified during CreateDataSourceFromRedshift. Returns only if Verbose is true in GetDataSourceInput.

" + } + }, + "ResourceNotFoundException": { + "base": "

A specified resource cannot be located.

", + "refs": { + } + }, + "RoleARN": { + "base": "

The Amazon Resource Name (ARN) of an AWS IAM Role such as the following: arn:aws:iam::account:role/rolename.

", + "refs": { + "CreateDataSourceFromRDSInput$RoleARN": "

The role that Amazon ML assumes on behalf of the user to create and activate a data pipeline in the user’s account and copy data (using the SelectSqlQuery) query from Amazon RDS to Amazon S3.

", + "CreateDataSourceFromRedshiftInput$RoleARN": "

A fully specified role Amazon Resource Name (ARN). Amazon ML assumes the role on behalf of the user to create the following:

  • A security group to allow Amazon ML to execute the SelectSqlQuery query on an Amazon Redshift cluster

  • An Amazon S3 bucket policy to grant Amazon ML read/write permissions on the S3StagingLocation

", + "DataSource$RoleARN": null, + "GetDataSourceOutput$RoleARN": null + } + }, + "S3DataSpec": { + "base": "

Describes the data specification of a DataSource.

", + "refs": { + "CreateDataSourceFromS3Input$DataSpec": "

The data specification of a DataSource:

  • DataLocationS3 - Amazon Simple Storage Service (Amazon S3) location of the observation data.

  • DataSchemaLocationS3 - Amazon S3 location of the DataSchema.

  • DataSchema - A JSON string representing the schema. This is not required if DataSchemaUri is specified.

  • DataRearrangement - A JSON string representing the splitting requirement of a Datasource.


    Sample - \"{\\\"randomSeed\\\":\\\"some-random-seed\\\", \\\"splitting\\\":{\\\"percentBegin\\\":10,\\\"percentEnd\\\":60}}\"

" + } + }, + "S3Url": { + "base": "

A reference to a file or bucket on Amazon Simple Storage Service (Amazon S3).

", + "refs": { + "BatchPrediction$InputDataLocationS3": "

The location of the data file or directory in Amazon Simple Storage Service (Amazon S3).

", + "BatchPrediction$OutputUri": "

The location of an Amazon S3 bucket or directory to receive the operation results. The following substrings are not allowed in the s3 key portion of the \"outputURI\" field: ':', '//', '/./', '/../'.

", + "CreateBatchPredictionInput$OutputUri": "

The location of an Amazon Simple Storage Service (Amazon S3) bucket or directory to store the batch prediction results. The following substrings are not allowed in the s3 key portion of the \"outputURI\" field: ':', '//', '/./', '/../'.

Amazon ML needs permissions to store and retrieve the logs on your behalf. For information about how to set permissions, see the Amazon Machine Learning Developer Guide.

", + "CreateMLModelInput$RecipeUri": "

The Amazon Simple Storage Service (Amazon S3) location and file name that contains the MLModel recipe. You must specify either the recipe or its URI. If you don’t specify a recipe or its URI, Amazon ML creates a default.

", + "DataSource$DataLocationS3": "

The location and name of the data in Amazon Simple Storage Service (Amazon S3) that is used by a DataSource.

", + "Evaluation$InputDataLocationS3": "

The location and name of the data in Amazon Simple Storage Server (Amazon S3) that is used in the evaluation.

", + "GetBatchPredictionOutput$InputDataLocationS3": "

The location of the data file or directory in Amazon Simple Storage Service (Amazon S3).

", + "GetBatchPredictionOutput$OutputUri": "

The location of an Amazon S3 bucket or directory to receive the operation results.

", + "GetDataSourceOutput$DataLocationS3": "

The location of the data file or directory in Amazon Simple Storage Service (Amazon S3).

", + "GetEvaluationOutput$InputDataLocationS3": "

The location of the data file or directory in Amazon Simple Storage Service (Amazon S3).

", + "GetMLModelOutput$InputDataLocationS3": "

The location of the data file or directory in Amazon Simple Storage Service (Amazon S3).

", + "MLModel$InputDataLocationS3": "

The location of the data file or directory in Amazon Simple Storage Service (Amazon S3).

", + "RDSDataSpec$S3StagingLocation": "

The Amazon S3 location for staging Amazon RDS data. The data retrieved from Amazon RDS using SelectSqlQuery is stored in this location.

", + "RDSDataSpec$DataSchemaUri": "

The Amazon S3 location of the DataSchema.

", + "RedshiftDataSpec$S3StagingLocation": "

Describes an Amazon S3 location to store the result set of the SelectSqlQuery query.

", + "RedshiftDataSpec$DataSchemaUri": "

Describes the schema location for an Amazon Redshift DataSource.

", + "S3DataSpec$DataLocationS3": "

The location of the data file(s) used by a DataSource. The URI specifies a data file or an Amazon Simple Storage Service (Amazon S3) directory or bucket containing data files.

", + "S3DataSpec$DataSchemaLocationS3": "

Describes the schema Location in Amazon S3.

" + } + }, + "ScoreThreshold": { + "base": null, + "refs": { + "GetMLModelOutput$ScoreThreshold": "

The scoring threshold is used in binary classification MLModels, and marks the boundary between a positive prediction and a negative prediction.

Output values greater than or equal to the threshold receive a positive result from the MLModel, such as true. Output values less than the threshold receive a negative response from the MLModel, such as false.

", + "MLModel$ScoreThreshold": null, + "UpdateMLModelInput$ScoreThreshold": "

The ScoreThreshold used in binary classification MLModel that marks the boundary between a positive prediction and a negative prediction.

Output values greater than or equal to the ScoreThreshold receive a positive result from the MLModel, such as true. Output values less than the ScoreThreshold receive a negative response from the MLModel, such as false.

" + } + }, + "ScoreValue": { + "base": null, + "refs": { + "ScoreValuePerLabelMap$value": null + } + }, + "ScoreValuePerLabelMap": { + "base": "Provides the raw classification score corresponding to each label.", + "refs": { + "Prediction$predictedScores": null + } + }, + "SortOrder": { + "base": "

The sort order specified in a listing condition. Possible values include the following:

  • asc - Present the information in ascending order (from A-Z).
  • dsc - Present the information in descending order (from Z-A).
", + "refs": { + "DescribeBatchPredictionsInput$SortOrder": "

A two-value parameter that determines the sequence of the resulting list of MLModels.

  • asc - Arranges the list in ascending order (A-Z, 0-9).
  • dsc - Arranges the list in descending order (Z-A, 9-0).

Results are sorted by FilterVariable.

", + "DescribeDataSourcesInput$SortOrder": "

A two-value parameter that determines the sequence of the resulting list of DataSource.

  • asc - Arranges the list in ascending order (A-Z, 0-9).
  • dsc - Arranges the list in descending order (Z-A, 9-0).

Results are sorted by FilterVariable.

", + "DescribeEvaluationsInput$SortOrder": "

A two-value parameter that determines the sequence of the resulting list of Evaluation.

  • asc - Arranges the list in ascending order (A-Z, 0-9).
  • dsc - Arranges the list in descending order (Z-A, 9-0).

Results are sorted by FilterVariable.

", + "DescribeMLModelsInput$SortOrder": "

A two-value parameter that determines the sequence of the resulting list of MLModel.

  • asc - Arranges the list in ascending order (A-Z, 0-9).
  • dsc - Arranges the list in descending order (Z-A, 9-0).

Results are sorted by FilterVariable.

" + } + }, + "StringType": { + "base": "

String type.

", + "refs": { + "DescribeBatchPredictionsInput$NextToken": "

An ID of the page in the paginated results.

", + "DescribeBatchPredictionsOutput$NextToken": "

The ID of the next page in the paginated results that indicates at least one more page follows.

", + "DescribeDataSourcesInput$NextToken": "

The ID of the page in the paginated results.

", + "DescribeDataSourcesOutput$NextToken": "

An ID of the next page in the paginated results that indicates at least one more page follows.

", + "DescribeEvaluationsInput$NextToken": "

The ID of the page in the paginated results.

", + "DescribeEvaluationsOutput$NextToken": "

The ID of the next page in the paginated results that indicates at least one more page follows.

", + "DescribeMLModelsInput$NextToken": "

The ID of the page in the paginated results.

", + "DescribeMLModelsOutput$NextToken": "

The ID of the next page in the paginated results that indicates at least one more page follows.

", + "TrainingParameters$key": null, + "TrainingParameters$value": null + } + }, + "TrainingParameters": { + "base": null, + "refs": { + "CreateMLModelInput$Parameters": "

A list of the training parameters in the MLModel. The list is implemented as a map of key/value pairs.

The following is the current set of training parameters:

  • sgd.l1RegularizationAmount - Coefficient regularization L1 norm. It controls overfitting the data by penalizing large coefficients. This tends to drive coefficients to zero, resulting in sparse feature set. If you use this parameter, start by specifying a small value such as 1.0E-08.

    The value is a double that ranges from 0 to MAX_DOUBLE. The default is not to use L1 normalization. The parameter cannot be used when L2 is specified. Use this parameter sparingly.

  • sgd.l2RegularizationAmount - Coefficient regularization L2 norm. It controls overfitting the data by penalizing large coefficients. This tends to drive coefficients to small, nonzero values. If you use this parameter, start by specifying a small value such as 1.0E-08.

    The valuseis a double that ranges from 0 to MAX_DOUBLE. The default is not to use L2 normalization. This cannot be used when L1 is specified. Use this parameter sparingly.

  • sgd.maxPasses - Number of times that the training process traverses the observations to build the MLModel. The value is an integer that ranges from 1 to 10000. The default value is 10.

  • sgd.maxMLModelSizeInBytes - Maximum allowed size of the model. Depending on the input data, the size of the model might affect its performance.

    The value is an integer that ranges from 100000 to 2147483648. The default value is 33554432.

", + "GetMLModelOutput$TrainingParameters": "

A list of the training parameters in the MLModel. The list is implemented as a map of key/value pairs.

The following is the current set of training parameters:

  • sgd.l1RegularizationAmount - Coefficient regularization L1 norm. It controls overfitting the data by penalizing large coefficients. This tends to drive coefficients to zero, resulting in a sparse feature set. If you use this parameter, specify a small value, such as 1.0E-04 or 1.0E-08.

    The value is a double that ranges from 0 to MAX_DOUBLE. The default is not to use L1 normalization. The parameter cannot be used when L2 is specified. Use this parameter sparingly.

  • sgd.l2RegularizationAmount - Coefficient regularization L2 norm. It controls overfitting the data by penalizing large coefficients. This tends to drive coefficients to small, nonzero values. If you use this parameter, specify a small value, such as 1.0E-04 or 1.0E-08.

    The value is a double that ranges from 0 to MAX_DOUBLE. The default is not to use L2 normalization. This parameter cannot be used when L1 is specified. Use this parameter sparingly.

  • sgd.maxPasses - The number of times that the training process traverses the observations to build the MLModel. The value is an integer that ranges from 1 to 10000. The default value is 10.

  • sgd.maxMLModelSizeInBytes - The maximum allowed size of the model. Depending on the input data, the model size might affect performance.

    The value is an integer that ranges from 100000 to 2147483648. The default value is 33554432.

", + "MLModel$TrainingParameters": "

A list of the training parameters in the MLModel. The list is implemented as a map of key/value pairs.

The following is the current set of training parameters:

  • sgd.l1RegularizationAmount - Coefficient regularization L1 norm. It controls overfitting the data by penalizing large coefficients. This tends to drive coefficients to zero, resulting in a sparse feature set. If you use this parameter, specify a small value, such as 1.0E-04 or 1.0E-08.

    The value is a double that ranges from 0 to MAX_DOUBLE. The default is not to use L1 normalization. The parameter cannot be used when L2 is specified. Use this parameter sparingly.

  • sgd.l2RegularizationAmount - Coefficient regularization L2 norm. It controls overfitting the data by penalizing large coefficients. This tends to drive coefficients to small, nonzero values. If you use this parameter, specify a small value, such as 1.0E-04 or 1.0E-08.

    The valus is a double that ranges from 0 to MAX_DOUBLE. The default is not to use L2 normalization. This cannot be used when L1 is specified. Use this parameter sparingly.

  • sgd.maxPasses - Number of times that the training process traverses the observations to build the MLModel. The value is an integer that ranges from 1 to 10000. The default value is 10.

  • sgd.maxMLModelSizeInBytes - Maximum allowed size of the model. Depending on the input data, the model size might affect performance.

    The value is an integer that ranges from 100000 to 2147483648. The default value is 33554432.

" + } + }, + "UpdateBatchPredictionInput": { + "base": null, + "refs": { + } + }, + "UpdateBatchPredictionOutput": { + "base": "

Represents the output of an UpdateBatchPrediction operation.

You can see the updated content by using the GetBatchPrediction operation.

", + "refs": { + } + }, + "UpdateDataSourceInput": { + "base": null, + "refs": { + } + }, + "UpdateDataSourceOutput": { + "base": "

Represents the output of an UpdateDataSource operation.

You can see the updated content by using the GetBatchPrediction operation.

", + "refs": { + } + }, + "UpdateEvaluationInput": { + "base": null, + "refs": { + } + }, + "UpdateEvaluationOutput": { + "base": "

Represents the output of an UpdateEvaluation operation.

You can see the updated content by using the GetEvaluation operation.

", + "refs": { + } + }, + "UpdateMLModelInput": { + "base": null, + "refs": { + } + }, + "UpdateMLModelOutput": { + "base": "

Represents the output of an UpdateMLModel operation.

You can see the updated content by using the GetMLModel operation.

", + "refs": { + } + }, + "VariableName": { + "base": "

The name of a variable. Currently it's used to specify the name of the target value, label, weight, and tags.

", + "refs": { + "Record$key": null + } + }, + "VariableValue": { + "base": "

The value of a variable. Currently it's used to specify values of the target value, weights, and tag variables and for filtering variable values.

", + "refs": { + "Record$value": null + } + }, + "Verbose": { + "base": "

Specifies whether a describe operation should return exhaustive or abbreviated information.

", + "refs": { + "GetDataSourceInput$Verbose": "

Specifies whether the GetDataSource operation should return DataSourceSchema.

If true, DataSourceSchema is returned.

If false, DataSourceSchema is not returned.

", + "GetMLModelInput$Verbose": "

Specifies whether the GetMLModel operation should return Recipe.

If true, Recipe is returned.

If false, Recipe is not returned.

" + } + }, + "VipURL": { + "base": null, + "refs": { + "PredictInput$PredictEndpoint": null, + "RealtimeEndpointInfo$EndpointUrl": "

The URI that specifies where to send real-time prediction requests for the MLModel.

Note

The application must wait until the real-time endpoint is ready before using this URI.

" + } + }, + "floatLabel": { + "base": null, + "refs": { + "Prediction$predictedValue": "The prediction value for REGRESSION MLModel." + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/machinelearning/2014-12-12/paginators-1.json b/lib/aws-sdk/Aws/data/machinelearning/2014-12-12/paginators-1.json new file mode 100644 index 0000000..c13ce65 --- /dev/null +++ b/lib/aws-sdk/Aws/data/machinelearning/2014-12-12/paginators-1.json @@ -0,0 +1,28 @@ +{ + "pagination": { + "DescribeBatchPredictions": { + "limit_key": "Limit", + "output_token": "NextToken", + "input_token": "NextToken", + "result_key": "Results" + }, + "DescribeDataSources": { + "limit_key": "Limit", + "output_token": "NextToken", + "input_token": "NextToken", + "result_key": "Results" + }, + "DescribeEvaluations": { + "limit_key": "Limit", + "output_token": "NextToken", + "input_token": "NextToken", + "result_key": "Results" + }, + "DescribeMLModels": { + "limit_key": "Limit", + "output_token": "NextToken", + "input_token": "NextToken", + "result_key": "Results" + } + } +} diff --git a/lib/aws-sdk/Aws/data/manifest.json b/lib/aws-sdk/Aws/data/manifest.json new file mode 100644 index 0000000..6e38fde --- /dev/null +++ b/lib/aws-sdk/Aws/data/manifest.json @@ -0,0 +1,324 @@ +{ + "autoscaling": { + "namespace": "AutoScaling", + "versions": { + "latest": "2011-01-01", + "2011-01-01": "2011-01-01" + } + }, + "cloudformation": { + "namespace": "CloudFormation", + "versions": { + "latest": "2010-05-15", + "2010-05-15": "2010-05-15" + } + }, + "cloudfront": { + "namespace": "CloudFront", + "versions": { + "latest": "2014-11-06", + "2014-11-06": "2014-11-06" + } + }, + "cloudhsm": { + "namespace": "CloudHsm", + "versions": { + "latest": "2014-05-30", + "2014-05-30": "2014-05-30" + } + }, + "cloudsearch": { + "namespace": "CloudSearch", + "versions": { + "latest": "2013-01-01", + "2013-01-01": "2013-01-01" + } + }, + "cloudsearchdomain": { + "namespace": "CloudSearchDomain", + "versions": { + "latest": "2013-01-01", + "2013-01-01": "2013-01-01" + } + }, + "cloudtrail": { + "namespace": "CloudTrail", + "versions": { + "latest": "2013-11-01", + "2013-11-01": "2013-11-01" + } + }, + "codedeploy": { + "namespace": "CodeDeploy", + "versions": { + "latest": "2014-10-06", + "2014-10-06": "2014-10-06" + } + }, + "cognito-identity": { + "namespace": "CognitoIdentity", + "versions": { + "latest": "2014-06-30", + "2014-06-30": "2014-06-30" + } + }, + "cognito-sync": { + "namespace": "CognitoSync", + "versions": { + "latest": "2014-06-30", + "2014-06-30": "2014-06-30" + } + }, + "config": { + "namespace": "ConfigService", + "versions": { + "latest": "2014-11-12", + "2014-11-12": "2014-11-12" + } + }, + "datapipeline": { + "namespace": "DataPipeline", + "versions": { + "latest": "2012-10-29", + "2012-10-29": "2012-10-29" + } + }, + "directconnect": { + "namespace": "DirectConnect", + "versions": { + "latest": "2012-10-25", + "2012-10-25": "2012-10-25" + } + }, + "ds": { + "namespace": "DirectoryService", + "versions": { + "latest": "2015-04-16", + "2015-04-16": "2015-04-16" + } + }, + "dynamodb": { + "namespace": "DynamoDb", + "versions": { + "latest": "2012-08-10", + "2012-08-10": "2012-08-10" + } + }, + "ec2": { + "namespace": "Ec2", + "versions": { + "latest": "2015-04-15", + "2015-04-15": "2015-04-15" + } + }, + "ecs": { + "namespace": "Ecs", + "versions": { + "latest": "2014-11-13", + "2014-11-13": "2014-11-13" + } + }, + "elasticache": { + "namespace": "ElastiCache", + "versions": { + "latest": "2015-02-02", + "2015-02-02": "2015-02-02" + } + }, + "elasticbeanstalk": { + "namespace": "ElasticBeanstalk", + "versions": { + "latest": "2010-12-01", + "2010-12-01": "2010-12-01" + } + }, + "elasticfilesystem": { + "namespace": "Efs", + "versions": { + "latest": "2015-02-01", + "2015-02-01": "2015-02-01" + } + }, + "elasticloadbalancing": { + "namespace": "ElasticLoadBalancing", + "versions": { + "latest": "2012-06-01", + "2012-06-01": "2012-06-01" + } + }, + "elasticmapreduce": { + "namespace": "Emr", + "versions": { + "latest": "2009-03-31", + "2009-03-31": "2009-03-31" + } + }, + "elastictranscoder": { + "namespace": "ElasticTranscoder", + "versions": { + "latest": "2012-09-25", + "2012-09-25": "2012-09-25" + } + }, + "email": { + "namespace": "Ses", + "versions": { + "latest": "2010-12-01", + "2010-12-01": "2010-12-01" + } + }, + "glacier": { + "namespace": "Glacier", + "versions": { + "latest": "2012-06-01", + "2012-06-01": "2012-06-01" + } + }, + "iam": { + "namespace": "Iam", + "versions": { + "latest": "2010-05-08", + "2010-05-08": "2010-05-08" + } + }, + "kinesis": { + "namespace": "Kinesis", + "versions": { + "latest": "2013-12-02", + "2013-12-02": "2013-12-02" + } + }, + "kms": { + "namespace": "Kms", + "versions": { + "latest": "2014-11-01", + "2014-11-01": "2014-11-01" + } + }, + "lambda": { + "namespace": "Lambda", + "versions": { + "latest": "2015-03-31", + "2015-03-31": "2015-03-31" + } + }, + "logs": { + "namespace": "CloudWatchLogs", + "versions": { + "latest": "2014-03-28", + "2014-03-28": "2014-03-28" + } + }, + "machinelearning": { + "namespace": "MachineLearning", + "versions": { + "latest": "2014-12-12", + "2014-12-12": "2014-12-12" + } + }, + "monitoring": { + "namespace": "CloudWatch", + "versions": { + "latest": "2010-08-01", + "2010-08-01": "2010-08-01" + } + }, + "opsworks": { + "namespace": "OpsWorks", + "versions": { + "latest": "2013-02-18", + "2013-02-18": "2013-02-18" + } + }, + "rds": { + "namespace": "Rds", + "versions": { + "latest": "2014-10-31", + "2014-10-31": "2014-10-31" + } + }, + "redshift": { + "namespace": "Redshift", + "versions": { + "latest": "2012-12-01", + "2012-12-01": "2012-12-01" + } + }, + "route53": { + "namespace": "Route53", + "versions": { + "latest": "2013-04-01", + "2013-04-01": "2013-04-01" + } + }, + "route53domains": { + "namespace": "Route53Domains", + "versions": { + "latest": "2014-05-15", + "2014-05-15": "2014-05-15" + } + }, + "s3": { + "namespace": "S3", + "versions": { + "latest": "2006-03-01", + "2006-03-01": "2006-03-01" + } + }, + "sns": { + "namespace": "Sns", + "versions": { + "latest": "2010-03-31", + "2010-03-31": "2010-03-31" + } + }, + "sqs": { + "namespace": "Sqs", + "versions": { + "latest": "2012-11-05", + "2012-11-05": "2012-11-05" + } + }, + "ssm": { + "namespace": "Ssm", + "versions": { + "latest": "2014-11-06", + "2014-11-06": "2014-11-06" + } + }, + "storagegateway": { + "namespace": "StorageGateway", + "versions": { + "latest": "2013-06-30", + "2013-06-30": "2013-06-30" + } + }, + "sts": { + "namespace": "Sts", + "versions": { + "latest": "2011-06-15", + "2011-06-15": "2011-06-15" + } + }, + "support": { + "namespace": "Support", + "versions": { + "latest": "2013-04-15", + "2013-04-15": "2013-04-15" + } + }, + "swf": { + "namespace": "Swf", + "versions": { + "latest": "2012-01-25", + "2012-01-25": "2012-01-25" + } + }, + "workspaces": { + "namespace": "WorkSpaces", + "versions": { + "latest": "2015-04-08", + "2015-04-08": "2015-04-08" + } + } +} \ No newline at end of file diff --git a/lib/aws-sdk/Aws/data/monitoring/2010-08-01/api-2.json b/lib/aws-sdk/Aws/data/monitoring/2010-08-01/api-2.json new file mode 100644 index 0000000..140aa71 --- /dev/null +++ b/lib/aws-sdk/Aws/data/monitoring/2010-08-01/api-2.json @@ -0,0 +1,917 @@ +{ + "metadata":{ + "apiVersion":"2010-08-01", + "endpointPrefix":"monitoring", + "serviceAbbreviation":"CloudWatch", + "serviceFullName":"Amazon CloudWatch", + "signatureVersion":"v4", + "xmlNamespace":"http://monitoring.amazonaws.com/doc/2010-08-01/", + "protocol":"query" + }, + "operations":{ + "DeleteAlarms":{ + "name":"DeleteAlarms", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteAlarmsInput"}, + "errors":[ + { + "shape":"ResourceNotFound", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeAlarmHistory":{ + "name":"DescribeAlarmHistory", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAlarmHistoryInput"}, + "output":{ + "shape":"DescribeAlarmHistoryOutput", + "resultWrapper":"DescribeAlarmHistoryResult" + }, + "errors":[ + { + "shape":"InvalidNextToken", + "error":{ + "code":"InvalidNextToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeAlarms":{ + "name":"DescribeAlarms", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAlarmsInput"}, + "output":{ + "shape":"DescribeAlarmsOutput", + "resultWrapper":"DescribeAlarmsResult" + }, + "errors":[ + { + "shape":"InvalidNextToken", + "error":{ + "code":"InvalidNextToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeAlarmsForMetric":{ + "name":"DescribeAlarmsForMetric", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAlarmsForMetricInput"}, + "output":{ + "shape":"DescribeAlarmsForMetricOutput", + "resultWrapper":"DescribeAlarmsForMetricResult" + } + }, + "DisableAlarmActions":{ + "name":"DisableAlarmActions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisableAlarmActionsInput"} + }, + "EnableAlarmActions":{ + "name":"EnableAlarmActions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableAlarmActionsInput"} + }, + "GetMetricStatistics":{ + "name":"GetMetricStatistics", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetMetricStatisticsInput"}, + "output":{ + "shape":"GetMetricStatisticsOutput", + "resultWrapper":"GetMetricStatisticsResult" + }, + "errors":[ + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"MissingRequiredParameterException", + "error":{ + "code":"MissingParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalServiceFault", + "error":{ + "code":"InternalServiceError", + "httpStatusCode":500 + }, + "exception":true, + "xmlOrder":["Message"] + } + ] + }, + "ListMetrics":{ + "name":"ListMetrics", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListMetricsInput"}, + "output":{ + "shape":"ListMetricsOutput", + "xmlOrder":[ + "Metrics", + "NextToken" + ], + "resultWrapper":"ListMetricsResult" + }, + "errors":[ + { + "shape":"InternalServiceFault", + "error":{ + "code":"InternalServiceError", + "httpStatusCode":500 + }, + "exception":true, + "xmlOrder":["Message"] + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "PutMetricAlarm":{ + "name":"PutMetricAlarm", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutMetricAlarmInput"}, + "errors":[ + { + "shape":"LimitExceededFault", + "error":{ + "code":"LimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "PutMetricData":{ + "name":"PutMetricData", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutMetricDataInput"}, + "errors":[ + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"MissingRequiredParameterException", + "error":{ + "code":"MissingParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterCombinationException", + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalServiceFault", + "error":{ + "code":"InternalServiceError", + "httpStatusCode":500 + }, + "exception":true, + "xmlOrder":["Message"] + } + ] + }, + "SetAlarmState":{ + "name":"SetAlarmState", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetAlarmStateInput"}, + "errors":[ + { + "shape":"ResourceNotFound", + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidFormatFault", + "error":{ + "code":"InvalidFormat", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + } + }, + "shapes":{ + "ActionPrefix":{ + "type":"string", + "min":1, + "max":1024 + }, + "ActionsEnabled":{"type":"boolean"}, + "AlarmArn":{ + "type":"string", + "min":1, + "max":1600 + }, + "AlarmDescription":{ + "type":"string", + "min":0, + "max":255 + }, + "AlarmHistoryItem":{ + "type":"structure", + "members":{ + "AlarmName":{"shape":"AlarmName"}, + "Timestamp":{"shape":"Timestamp"}, + "HistoryItemType":{"shape":"HistoryItemType"}, + "HistorySummary":{"shape":"HistorySummary"}, + "HistoryData":{"shape":"HistoryData"} + } + }, + "AlarmHistoryItems":{ + "type":"list", + "member":{"shape":"AlarmHistoryItem"} + }, + "AlarmName":{ + "type":"string", + "min":1, + "max":255 + }, + "AlarmNamePrefix":{ + "type":"string", + "min":1, + "max":255 + }, + "AlarmNames":{ + "type":"list", + "member":{"shape":"AlarmName"}, + "max":100 + }, + "AwsQueryErrorMessage":{"type":"string"}, + "ComparisonOperator":{ + "type":"string", + "enum":[ + "GreaterThanOrEqualToThreshold", + "GreaterThanThreshold", + "LessThanThreshold", + "LessThanOrEqualToThreshold" + ] + }, + "Datapoint":{ + "type":"structure", + "members":{ + "Timestamp":{"shape":"Timestamp"}, + "SampleCount":{"shape":"DatapointValue"}, + "Average":{"shape":"DatapointValue"}, + "Sum":{"shape":"DatapointValue"}, + "Minimum":{"shape":"DatapointValue"}, + "Maximum":{"shape":"DatapointValue"}, + "Unit":{"shape":"StandardUnit"} + }, + "xmlOrder":[ + "Timestamp", + "SampleCount", + "Average", + "Sum", + "Minimum", + "Maximum", + "Unit" + ] + }, + "DatapointValue":{"type":"double"}, + "Datapoints":{ + "type":"list", + "member":{"shape":"Datapoint"} + }, + "DeleteAlarmsInput":{ + "type":"structure", + "required":["AlarmNames"], + "members":{ + "AlarmNames":{"shape":"AlarmNames"} + } + }, + "DescribeAlarmHistoryInput":{ + "type":"structure", + "members":{ + "AlarmName":{"shape":"AlarmName"}, + "HistoryItemType":{"shape":"HistoryItemType"}, + "StartDate":{"shape":"Timestamp"}, + "EndDate":{"shape":"Timestamp"}, + "MaxRecords":{"shape":"MaxRecords"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DescribeAlarmHistoryOutput":{ + "type":"structure", + "members":{ + "AlarmHistoryItems":{"shape":"AlarmHistoryItems"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DescribeAlarmsForMetricInput":{ + "type":"structure", + "required":[ + "MetricName", + "Namespace" + ], + "members":{ + "MetricName":{"shape":"MetricName"}, + "Namespace":{"shape":"Namespace"}, + "Statistic":{"shape":"Statistic"}, + "Dimensions":{"shape":"Dimensions"}, + "Period":{"shape":"Period"}, + "Unit":{"shape":"StandardUnit"} + } + }, + "DescribeAlarmsForMetricOutput":{ + "type":"structure", + "members":{ + "MetricAlarms":{"shape":"MetricAlarms"} + } + }, + "DescribeAlarmsInput":{ + "type":"structure", + "members":{ + "AlarmNames":{"shape":"AlarmNames"}, + "AlarmNamePrefix":{"shape":"AlarmNamePrefix"}, + "StateValue":{"shape":"StateValue"}, + "ActionPrefix":{"shape":"ActionPrefix"}, + "MaxRecords":{"shape":"MaxRecords"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DescribeAlarmsOutput":{ + "type":"structure", + "members":{ + "MetricAlarms":{"shape":"MetricAlarms"}, + "NextToken":{"shape":"NextToken"} + } + }, + "Dimension":{ + "type":"structure", + "required":[ + "Name", + "Value" + ], + "members":{ + "Name":{"shape":"DimensionName"}, + "Value":{"shape":"DimensionValue"} + }, + "xmlOrder":[ + "Name", + "Value" + ] + }, + "DimensionFilter":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"DimensionName"}, + "Value":{"shape":"DimensionValue"} + } + }, + "DimensionFilters":{ + "type":"list", + "member":{"shape":"DimensionFilter"}, + "max":10 + }, + "DimensionName":{ + "type":"string", + "min":1, + "max":255 + }, + "DimensionValue":{ + "type":"string", + "min":1, + "max":255 + }, + "Dimensions":{ + "type":"list", + "member":{"shape":"Dimension"}, + "max":10 + }, + "DisableAlarmActionsInput":{ + "type":"structure", + "required":["AlarmNames"], + "members":{ + "AlarmNames":{"shape":"AlarmNames"} + } + }, + "EnableAlarmActionsInput":{ + "type":"structure", + "required":["AlarmNames"], + "members":{ + "AlarmNames":{"shape":"AlarmNames"} + } + }, + "ErrorMessage":{ + "type":"string", + "min":1, + "max":255 + }, + "EvaluationPeriods":{ + "type":"integer", + "min":1 + }, + "FaultDescription":{"type":"string"}, + "GetMetricStatisticsInput":{ + "type":"structure", + "required":[ + "Namespace", + "MetricName", + "StartTime", + "EndTime", + "Period", + "Statistics" + ], + "members":{ + "Namespace":{"shape":"Namespace"}, + "MetricName":{"shape":"MetricName"}, + "Dimensions":{"shape":"Dimensions"}, + "StartTime":{"shape":"Timestamp"}, + "EndTime":{"shape":"Timestamp"}, + "Period":{"shape":"Period"}, + "Statistics":{"shape":"Statistics"}, + "Unit":{"shape":"StandardUnit"} + } + }, + "GetMetricStatisticsOutput":{ + "type":"structure", + "members":{ + "Label":{"shape":"MetricLabel"}, + "Datapoints":{"shape":"Datapoints"} + } + }, + "HistoryData":{ + "type":"string", + "min":1, + "max":4095 + }, + "HistoryItemType":{ + "type":"string", + "enum":[ + "ConfigurationUpdate", + "StateUpdate", + "Action" + ] + }, + "HistorySummary":{ + "type":"string", + "min":1, + "max":255 + }, + "InternalServiceFault":{ + "type":"structure", + "members":{ + "Message":{"shape":"FaultDescription"} + }, + "error":{ + "code":"InternalServiceError", + "httpStatusCode":500 + }, + "exception":true, + "xmlOrder":["Message"] + }, + "InvalidFormatFault":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{ + "code":"InvalidFormat", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidNextToken":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{ + "code":"InvalidNextToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidParameterCombinationException":{ + "type":"structure", + "members":{ + "message":{"shape":"AwsQueryErrorMessage"} + }, + "error":{ + "code":"InvalidParameterCombination", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidParameterValueException":{ + "type":"structure", + "members":{ + "message":{"shape":"AwsQueryErrorMessage"} + }, + "error":{ + "code":"InvalidParameterValue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "LimitExceededFault":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{ + "code":"LimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ListMetricsInput":{ + "type":"structure", + "members":{ + "Namespace":{"shape":"Namespace"}, + "MetricName":{"shape":"MetricName"}, + "Dimensions":{"shape":"DimensionFilters"}, + "NextToken":{"shape":"NextToken"} + } + }, + "ListMetricsOutput":{ + "type":"structure", + "members":{ + "Metrics":{"shape":"Metrics"}, + "NextToken":{"shape":"NextToken"} + }, + "xmlOrder":[ + "Metrics", + "NextToken" + ] + }, + "MaxRecords":{ + "type":"integer", + "min":1, + "max":100 + }, + "Metric":{ + "type":"structure", + "members":{ + "Namespace":{"shape":"Namespace"}, + "MetricName":{"shape":"MetricName"}, + "Dimensions":{"shape":"Dimensions"} + }, + "xmlOrder":[ + "Namespace", + "MetricName", + "Dimensions" + ] + }, + "MetricAlarm":{ + "type":"structure", + "members":{ + "AlarmName":{"shape":"AlarmName"}, + "AlarmArn":{"shape":"AlarmArn"}, + "AlarmDescription":{"shape":"AlarmDescription"}, + "AlarmConfigurationUpdatedTimestamp":{"shape":"Timestamp"}, + "ActionsEnabled":{"shape":"ActionsEnabled"}, + "OKActions":{"shape":"ResourceList"}, + "AlarmActions":{"shape":"ResourceList"}, + "InsufficientDataActions":{"shape":"ResourceList"}, + "StateValue":{"shape":"StateValue"}, + "StateReason":{"shape":"StateReason"}, + "StateReasonData":{"shape":"StateReasonData"}, + "StateUpdatedTimestamp":{"shape":"Timestamp"}, + "MetricName":{"shape":"MetricName"}, + "Namespace":{"shape":"Namespace"}, + "Statistic":{"shape":"Statistic"}, + "Dimensions":{"shape":"Dimensions"}, + "Period":{"shape":"Period"}, + "Unit":{"shape":"StandardUnit"}, + "EvaluationPeriods":{"shape":"EvaluationPeriods"}, + "Threshold":{"shape":"Threshold"}, + "ComparisonOperator":{"shape":"ComparisonOperator"} + }, + "xmlOrder":[ + "AlarmName", + "AlarmArn", + "AlarmDescription", + "AlarmConfigurationUpdatedTimestamp", + "ActionsEnabled", + "OKActions", + "AlarmActions", + "InsufficientDataActions", + "StateValue", + "StateReason", + "StateReasonData", + "StateUpdatedTimestamp", + "MetricName", + "Namespace", + "Statistic", + "Dimensions", + "Period", + "Unit", + "EvaluationPeriods", + "Threshold", + "ComparisonOperator" + ] + }, + "MetricAlarms":{ + "type":"list", + "member":{"shape":"MetricAlarm"} + }, + "MetricData":{ + "type":"list", + "member":{"shape":"MetricDatum"} + }, + "MetricDatum":{ + "type":"structure", + "required":["MetricName"], + "members":{ + "MetricName":{"shape":"MetricName"}, + "Dimensions":{"shape":"Dimensions"}, + "Timestamp":{"shape":"Timestamp"}, + "Value":{"shape":"DatapointValue"}, + "StatisticValues":{"shape":"StatisticSet"}, + "Unit":{"shape":"StandardUnit"} + } + }, + "MetricLabel":{"type":"string"}, + "MetricName":{ + "type":"string", + "min":1, + "max":255 + }, + "Metrics":{ + "type":"list", + "member":{"shape":"Metric"} + }, + "MissingRequiredParameterException":{ + "type":"structure", + "members":{ + "message":{"shape":"AwsQueryErrorMessage"} + }, + "error":{ + "code":"MissingParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "Namespace":{ + "type":"string", + "min":1, + "max":255, + "pattern":"[^:].*" + }, + "NextToken":{"type":"string"}, + "Period":{ + "type":"integer", + "min":60 + }, + "PutMetricAlarmInput":{ + "type":"structure", + "required":[ + "AlarmName", + "MetricName", + "Namespace", + "Statistic", + "Period", + "EvaluationPeriods", + "Threshold", + "ComparisonOperator" + ], + "members":{ + "AlarmName":{"shape":"AlarmName"}, + "AlarmDescription":{"shape":"AlarmDescription"}, + "ActionsEnabled":{"shape":"ActionsEnabled"}, + "OKActions":{"shape":"ResourceList"}, + "AlarmActions":{"shape":"ResourceList"}, + "InsufficientDataActions":{"shape":"ResourceList"}, + "MetricName":{"shape":"MetricName"}, + "Namespace":{"shape":"Namespace"}, + "Statistic":{"shape":"Statistic"}, + "Dimensions":{"shape":"Dimensions"}, + "Period":{"shape":"Period"}, + "Unit":{"shape":"StandardUnit"}, + "EvaluationPeriods":{"shape":"EvaluationPeriods"}, + "Threshold":{"shape":"Threshold"}, + "ComparisonOperator":{"shape":"ComparisonOperator"} + } + }, + "PutMetricDataInput":{ + "type":"structure", + "required":[ + "Namespace", + "MetricData" + ], + "members":{ + "Namespace":{"shape":"Namespace"}, + "MetricData":{"shape":"MetricData"} + } + }, + "ResourceList":{ + "type":"list", + "member":{"shape":"ResourceName"}, + "max":5 + }, + "ResourceName":{ + "type":"string", + "min":1, + "max":1024 + }, + "ResourceNotFound":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "SetAlarmStateInput":{ + "type":"structure", + "required":[ + "AlarmName", + "StateValue", + "StateReason" + ], + "members":{ + "AlarmName":{"shape":"AlarmName"}, + "StateValue":{"shape":"StateValue"}, + "StateReason":{"shape":"StateReason"}, + "StateReasonData":{"shape":"StateReasonData"} + } + }, + "StandardUnit":{ + "type":"string", + "enum":[ + "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" + ] + }, + "StateReason":{ + "type":"string", + "min":0, + "max":1023 + }, + "StateReasonData":{ + "type":"string", + "min":0, + "max":4000 + }, + "StateValue":{ + "type":"string", + "enum":[ + "OK", + "ALARM", + "INSUFFICIENT_DATA" + ] + }, + "Statistic":{ + "type":"string", + "enum":[ + "SampleCount", + "Average", + "Sum", + "Minimum", + "Maximum" + ] + }, + "StatisticSet":{ + "type":"structure", + "required":[ + "SampleCount", + "Sum", + "Minimum", + "Maximum" + ], + "members":{ + "SampleCount":{"shape":"DatapointValue"}, + "Sum":{"shape":"DatapointValue"}, + "Minimum":{"shape":"DatapointValue"}, + "Maximum":{"shape":"DatapointValue"} + } + }, + "Statistics":{ + "type":"list", + "member":{"shape":"Statistic"}, + "min":1, + "max":5 + }, + "Threshold":{"type":"double"}, + "Timestamp":{"type":"timestamp"} + } +} diff --git a/lib/aws-sdk/Aws/data/monitoring/2010-08-01/docs-2.json b/lib/aws-sdk/Aws/data/monitoring/2010-08-01/docs-2.json new file mode 100644 index 0000000..dc54c53 --- /dev/null +++ b/lib/aws-sdk/Aws/data/monitoring/2010-08-01/docs-2.json @@ -0,0 +1,514 @@ +{ + "operations": { + "DeleteAlarms": "

Deletes all specified alarms. In the event of an error, no alarms are deleted.

", + "DescribeAlarmHistory": "

Retrieves history for the specified alarm. Filter alarms by date range or item type. If an alarm name is not specified, Amazon CloudWatch returns histories for all of the owner's alarms.

", + "DescribeAlarms": "

Retrieves alarms with the specified names. If no name is specified, all alarms for the user are returned. Alarms can be retrieved by using only a prefix for the alarm name, the alarm state, or a prefix for any action.

", + "DescribeAlarmsForMetric": "

Retrieves all alarms for a single metric. Specify a statistic, period, or unit to filter the set of alarms further.

", + "DisableAlarmActions": "

Disables actions for the specified alarms. When an alarm's actions are disabled the alarm's state may change, but none of the alarm's actions will execute.

", + "EnableAlarmActions": "

Enables actions for the specified alarms.

", + "GetMetricStatistics": "

Gets statistics for the specified metric.

The maximum number of data points returned from a single GetMetricStatistics request is 1,440, wereas the maximum number of data points that can be queried is 50,850. If you make a request that generates more than 1,440 data points, Amazon CloudWatch returns an error. In such a case, you can alter the request by narrowing the specified time range or increasing the specified period. Alternatively, you can make multiple requests across adjacent time ranges.

Amazon CloudWatch aggregates data points based on the length of the period that you specify. For example, if you request statistics with a one-minute granularity, Amazon CloudWatch aggregates data points with time stamps that fall within the same one-minute period. In such a case, the data points queried can greatly outnumber the data points returned.

The following examples show various statistics allowed by the data point query maximum of 50,850 when you call GetMetricStatistics on Amazon EC2 instances with detailed (one-minute) monitoring enabled:

  • Statistics for up to 400 instances for a span of one hour
  • Statistics for up to 35 instances over a span of 24 hours
  • Statistics for up to 2 instances over a span of 2 weeks

For information about the namespace, metric names, and dimensions that other Amazon Web Services products use to send metrics to Cloudwatch, go to Amazon CloudWatch Metrics, Namespaces, and Dimensions Reference in the Amazon CloudWatch Developer Guide.

", + "ListMetrics": "

Returns a list of valid metrics stored for the AWS account owner. Returned metrics can be used with GetMetricStatistics to obtain statistical data for a given metric.

", + "PutMetricAlarm": "

Creates or updates an alarm and associates it with the specified Amazon CloudWatch metric. Optionally, this operation can associate one or more Amazon Simple Notification Service resources with the alarm.

When this operation creates an alarm, the alarm state is immediately set to INSUFFICIENT_DATA. The alarm is evaluated and its StateValue is set appropriately. Any actions associated with the StateValue is then executed.

", + "PutMetricData": "

Publishes metric data points to Amazon CloudWatch. Amazon Cloudwatch associates the data points with the specified metric. If the specified metric does not exist, Amazon CloudWatch creates the metric. It can take up to fifteen minutes for a new metric to appear in calls to the ListMetrics action.

The size of a PutMetricData request is limited to 8 KB for HTTP GET requests and 40 KB for HTTP POST requests.

Although the Value parameter accepts numbers of type Double, Amazon CloudWatch truncates values with very large exponents. Values with base-10 exponents greater than 126 (1 x 10^126) are truncated. Likewise, values with base-10 exponents less than -130 (1 x 10^-130) are also truncated.

Data that is timestamped 24 hours or more in the past may take in excess of 48 hours to become available from submission time using GetMetricStatistics.

", + "SetAlarmState": "

Temporarily sets the state of an alarm. When the updated StateValue differs from the previous value, the action configured for the appropriate state is invoked. This is not a permanent change. The next periodic alarm check (in about a minute) will set the alarm to its actual state.

" + }, + "service": "

This is the Amazon CloudWatch API Reference. This guide provides detailed information about Amazon CloudWatch actions, data types, parameters, and errors. For detailed information about Amazon CloudWatch features and their associated API calls, go to the Amazon CloudWatch Developer Guide.

Amazon CloudWatch is a web service that enables you to publish, monitor, and manage various metrics, as well as configure alarm actions based on data from metrics. For more information about this product go to http://aws.amazon.com/cloudwatch.

For information about the namespace, metric names, and dimensions that other Amazon Web Services products use to send metrics to Cloudwatch, go to Amazon CloudWatch Metrics, Namespaces, and Dimensions Reference in the Amazon CloudWatch Developer Guide.

Use the following links to get started using the Amazon CloudWatch API Reference:

  • Actions: An alphabetical list of all Amazon CloudWatch actions.
  • Data Types: An alphabetical list of all Amazon CloudWatch data types.
  • Common Parameters: Parameters that all Query actions can use.
  • Common Errors: Client and server errors that all actions can return.
  • Regions and Endpoints: Itemized regions and endpoints for all AWS products.
  • WSDL Location: http://monitoring.amazonaws.com/doc/2010-08-01/CloudWatch.wsdl

In addition to using the Amazon CloudWatch API, you can also use the following SDKs and third-party libraries to access Amazon CloudWatch programmatically.

Developers in the AWS developer community also provide their own libraries, which you can find at the following AWS developer centers:

", + "shapes": { + "ActionPrefix": { + "base": null, + "refs": { + "DescribeAlarmsInput$ActionPrefix": "

The action name prefix.

" + } + }, + "ActionsEnabled": { + "base": null, + "refs": { + "MetricAlarm$ActionsEnabled": "

Indicates whether actions should be executed during any changes to the alarm's state.

", + "PutMetricAlarmInput$ActionsEnabled": "

Indicates whether or not actions should be executed during any changes to the alarm's state.

" + } + }, + "AlarmArn": { + "base": null, + "refs": { + "MetricAlarm$AlarmArn": "

The Amazon Resource Name (ARN) of the alarm.

" + } + }, + "AlarmDescription": { + "base": null, + "refs": { + "MetricAlarm$AlarmDescription": "

The description for the alarm.

", + "PutMetricAlarmInput$AlarmDescription": "

The description for the alarm.

" + } + }, + "AlarmHistoryItem": { + "base": "

The AlarmHistoryItem data type contains descriptive information about the history of a specific alarm. If you call DescribeAlarmHistory, Amazon CloudWatch returns this data type as part of the DescribeAlarmHistoryResult data type.

", + "refs": { + "AlarmHistoryItems$member": null + } + }, + "AlarmHistoryItems": { + "base": null, + "refs": { + "DescribeAlarmHistoryOutput$AlarmHistoryItems": "

A list of alarm histories in JSON format.

" + } + }, + "AlarmName": { + "base": null, + "refs": { + "AlarmHistoryItem$AlarmName": "

The descriptive name for the alarm.

", + "AlarmNames$member": null, + "DescribeAlarmHistoryInput$AlarmName": "

The name of the alarm.

", + "MetricAlarm$AlarmName": "

The name of the alarm.

", + "PutMetricAlarmInput$AlarmName": "

The descriptive name for the alarm. This name must be unique within the user's AWS account

", + "SetAlarmStateInput$AlarmName": "

The descriptive name for the alarm. This name must be unique within the user's AWS account. The maximum length is 255 characters.

" + } + }, + "AlarmNamePrefix": { + "base": null, + "refs": { + "DescribeAlarmsInput$AlarmNamePrefix": "

The alarm name prefix. AlarmNames cannot be specified if this parameter is specified.

" + } + }, + "AlarmNames": { + "base": null, + "refs": { + "DeleteAlarmsInput$AlarmNames": "

A list of alarms to be deleted.

", + "DescribeAlarmsInput$AlarmNames": "

A list of alarm names to retrieve information for.

", + "DisableAlarmActionsInput$AlarmNames": "

The names of the alarms to disable actions for.

", + "EnableAlarmActionsInput$AlarmNames": "

The names of the alarms to enable actions for.

" + } + }, + "AwsQueryErrorMessage": { + "base": null, + "refs": { + "InvalidParameterCombinationException$message": "

", + "InvalidParameterValueException$message": "

", + "MissingRequiredParameterException$message": "

" + } + }, + "ComparisonOperator": { + "base": null, + "refs": { + "MetricAlarm$ComparisonOperator": "

The arithmetic operation to use when comparing the specified Statistic and Threshold. The specified Statistic value is used as the first operand.

", + "PutMetricAlarmInput$ComparisonOperator": "

The arithmetic operation to use when comparing the specified Statistic and Threshold. The specified Statistic value is used as the first operand.

" + } + }, + "Datapoint": { + "base": "

The Datapoint data type encapsulates the statistical data that Amazon CloudWatch computes from metric data.

", + "refs": { + "Datapoints$member": null + } + }, + "DatapointValue": { + "base": null, + "refs": { + "Datapoint$SampleCount": "

The number of metric values that contributed to the aggregate value of this datapoint.

", + "Datapoint$Average": "

The average of metric values that correspond to the datapoint.

", + "Datapoint$Sum": "

The sum of metric values used for the datapoint.

", + "Datapoint$Minimum": "

The minimum metric value used for the datapoint.

", + "Datapoint$Maximum": "

The maximum of the metric value used for the datapoint.

", + "MetricDatum$Value": "

The value for the metric.

Although the Value parameter accepts numbers of type Double, Amazon CloudWatch truncates values with very large exponents. Values with base-10 exponents greater than 126 (1 x 10^126) are truncated. Likewise, values with base-10 exponents less than -130 (1 x 10^-130) are also truncated. ", + "StatisticSet$SampleCount": "

The number of samples used for the statistic set.

", + "StatisticSet$Sum": "

The sum of values for the sample set.

", + "StatisticSet$Minimum": "

The minimum value of the sample set.

", + "StatisticSet$Maximum": "

The maximum value of the sample set.

" + } + }, + "Datapoints": { + "base": null, + "refs": { + "GetMetricStatisticsOutput$Datapoints": "

The datapoints for the specified metric.

" + } + }, + "DeleteAlarmsInput": { + "base": null, + "refs": { + } + }, + "DescribeAlarmHistoryInput": { + "base": null, + "refs": { + } + }, + "DescribeAlarmHistoryOutput": { + "base": "

The output for the DescribeAlarmHistory action.

", + "refs": { + } + }, + "DescribeAlarmsForMetricInput": { + "base": null, + "refs": { + } + }, + "DescribeAlarmsForMetricOutput": { + "base": "

The output for the DescribeAlarmsForMetric action.

", + "refs": { + } + }, + "DescribeAlarmsInput": { + "base": null, + "refs": { + } + }, + "DescribeAlarmsOutput": { + "base": "

The output for the DescribeAlarms action.

", + "refs": { + } + }, + "Dimension": { + "base": "

The Dimension data type further expands on the identity of a metric using a Name, Value pair.

For examples that use one or more dimensions, see PutMetricData.

", + "refs": { + "Dimensions$member": null + } + }, + "DimensionFilter": { + "base": "

The DimensionFilter data type is used to filter ListMetrics results.

", + "refs": { + "DimensionFilters$member": null + } + }, + "DimensionFilters": { + "base": null, + "refs": { + "ListMetricsInput$Dimensions": "

A list of dimensions to filter against.

" + } + }, + "DimensionName": { + "base": null, + "refs": { + "Dimension$Name": "

The name of the dimension.

", + "DimensionFilter$Name": "

The dimension name to be matched.

" + } + }, + "DimensionValue": { + "base": null, + "refs": { + "Dimension$Value": "

The value representing the dimension measurement

", + "DimensionFilter$Value": "

The value of the dimension to be matched.

" + } + }, + "Dimensions": { + "base": null, + "refs": { + "DescribeAlarmsForMetricInput$Dimensions": "

The list of dimensions associated with the metric.

", + "GetMetricStatisticsInput$Dimensions": "

A list of dimensions describing qualities of the metric.

", + "Metric$Dimensions": "

A list of dimensions associated with the metric.

", + "MetricAlarm$Dimensions": "

The list of dimensions associated with the alarm's associated metric.

", + "MetricDatum$Dimensions": "

A list of dimensions associated with the metric. Note, when using the Dimensions value in a query, you need to append .member.N to it (e.g., Dimensions.member.N).

", + "PutMetricAlarmInput$Dimensions": "

The dimensions for the alarm's associated metric.

" + } + }, + "DisableAlarmActionsInput": { + "base": "

", + "refs": { + } + }, + "EnableAlarmActionsInput": { + "base": null, + "refs": { + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "InvalidFormatFault$message": "

", + "InvalidNextToken$message": "

", + "LimitExceededFault$message": "

", + "ResourceNotFound$message": "

" + } + }, + "EvaluationPeriods": { + "base": null, + "refs": { + "MetricAlarm$EvaluationPeriods": "

The number of periods over which data is compared to the specified threshold.

", + "PutMetricAlarmInput$EvaluationPeriods": "

The number of periods over which data is compared to the specified threshold.

" + } + }, + "FaultDescription": { + "base": null, + "refs": { + "InternalServiceFault$Message": "

" + } + }, + "GetMetricStatisticsInput": { + "base": null, + "refs": { + } + }, + "GetMetricStatisticsOutput": { + "base": "

The output for the GetMetricStatistics action.

", + "refs": { + } + }, + "HistoryData": { + "base": null, + "refs": { + "AlarmHistoryItem$HistoryData": "

Machine-readable data about the alarm in JSON format.

" + } + }, + "HistoryItemType": { + "base": null, + "refs": { + "AlarmHistoryItem$HistoryItemType": "

The type of alarm history item.

", + "DescribeAlarmHistoryInput$HistoryItemType": "

The type of alarm histories to retrieve.

" + } + }, + "HistorySummary": { + "base": null, + "refs": { + "AlarmHistoryItem$HistorySummary": "

A human-readable summary of the alarm history.

" + } + }, + "InternalServiceFault": { + "base": "

Indicates that the request processing has failed due to some unknown error, exception, or failure.

", + "refs": { + } + }, + "InvalidFormatFault": { + "base": "

Data was not syntactically valid JSON.

", + "refs": { + } + }, + "InvalidNextToken": { + "base": "

The next token specified is invalid.

", + "refs": { + } + }, + "InvalidParameterCombinationException": { + "base": "

Parameters that must not be used together were used together.

", + "refs": { + } + }, + "InvalidParameterValueException": { + "base": "

Bad or out-of-range value was supplied for the input parameter.

", + "refs": { + } + }, + "LimitExceededFault": { + "base": "

The quota for alarms for this customer has already been reached.

", + "refs": { + } + }, + "ListMetricsInput": { + "base": null, + "refs": { + } + }, + "ListMetricsOutput": { + "base": "

The output for the ListMetrics action.

", + "refs": { + } + }, + "MaxRecords": { + "base": null, + "refs": { + "DescribeAlarmHistoryInput$MaxRecords": "

The maximum number of alarm history records to retrieve.

", + "DescribeAlarmsInput$MaxRecords": "

The maximum number of alarm descriptions to retrieve.

" + } + }, + "Metric": { + "base": "

The Metric data type contains information about a specific metric. If you call ListMetrics, Amazon CloudWatch returns information contained by this data type.

The example in the Examples section publishes two metrics named buffers and latency. Both metrics are in the examples namespace. Both metrics have two dimensions, InstanceID and InstanceType.

", + "refs": { + "Metrics$member": null + } + }, + "MetricAlarm": { + "base": "

The MetricAlarm data type represents an alarm. You can use PutMetricAlarm to create or update an alarm.

", + "refs": { + "MetricAlarms$member": null + } + }, + "MetricAlarms": { + "base": null, + "refs": { + "DescribeAlarmsForMetricOutput$MetricAlarms": "

A list of information for each alarm with the specified metric.

", + "DescribeAlarmsOutput$MetricAlarms": "

A list of information for the specified alarms.

" + } + }, + "MetricData": { + "base": null, + "refs": { + "PutMetricDataInput$MetricData": "

A list of data describing the metric.

" + } + }, + "MetricDatum": { + "base": "

The MetricDatum data type encapsulates the information sent with PutMetricData to either create a new metric or add new values to be aggregated into an existing metric.

", + "refs": { + "MetricData$member": null + } + }, + "MetricLabel": { + "base": null, + "refs": { + "GetMetricStatisticsOutput$Label": "

A label describing the specified metric.

" + } + }, + "MetricName": { + "base": null, + "refs": { + "DescribeAlarmsForMetricInput$MetricName": "

The name of the metric.

", + "GetMetricStatisticsInput$MetricName": "

The name of the metric, with or without spaces.

", + "ListMetricsInput$MetricName": "

The name of the metric to filter against.

", + "Metric$MetricName": "

The name of the metric.

", + "MetricAlarm$MetricName": "

The name of the alarm's metric.

", + "MetricDatum$MetricName": "

The name of the metric.

", + "PutMetricAlarmInput$MetricName": "

The name for the alarm's associated metric.

" + } + }, + "Metrics": { + "base": null, + "refs": { + "ListMetricsOutput$Metrics": "

A list of metrics used to generate statistics for an AWS account.

" + } + }, + "MissingRequiredParameterException": { + "base": "

An input parameter that is mandatory for processing the request is not supplied.

", + "refs": { + } + }, + "Namespace": { + "base": null, + "refs": { + "DescribeAlarmsForMetricInput$Namespace": "

The namespace of the metric.

", + "GetMetricStatisticsInput$Namespace": "

The namespace of the metric, with or without spaces.

", + "ListMetricsInput$Namespace": "

The namespace to filter against.

", + "Metric$Namespace": "

The namespace of the metric.

", + "MetricAlarm$Namespace": "

The namespace of alarm's associated metric.

", + "PutMetricAlarmInput$Namespace": "

The namespace for the alarm's associated metric.

", + "PutMetricDataInput$Namespace": "

The namespace for the metric data.

" + } + }, + "NextToken": { + "base": null, + "refs": { + "DescribeAlarmHistoryInput$NextToken": "

The token returned by a previous call to indicate that there is more data available.

", + "DescribeAlarmHistoryOutput$NextToken": "

A string that marks the start of the next batch of returned results.

", + "DescribeAlarmsInput$NextToken": "

The token returned by a previous call to indicate that there is more data available.

", + "DescribeAlarmsOutput$NextToken": "

A string that marks the start of the next batch of returned results.

", + "ListMetricsInput$NextToken": "

The token returned by a previous call to indicate that there is more data available.

", + "ListMetricsOutput$NextToken": "

A string that marks the start of the next batch of returned results.

" + } + }, + "Period": { + "base": null, + "refs": { + "DescribeAlarmsForMetricInput$Period": "

The period in seconds over which the statistic is applied.

", + "GetMetricStatisticsInput$Period": "

The granularity, in seconds, of the returned datapoints. Period must be at least 60 seconds and must be a multiple of 60. The default value is 60.

", + "MetricAlarm$Period": "

The period in seconds over which the statistic is applied.

", + "PutMetricAlarmInput$Period": "

The period in seconds over which the specified statistic is applied.

" + } + }, + "PutMetricAlarmInput": { + "base": null, + "refs": { + } + }, + "PutMetricDataInput": { + "base": null, + "refs": { + } + }, + "ResourceList": { + "base": null, + "refs": { + "MetricAlarm$OKActions": "

The list of actions to execute when this alarm transitions into an OK state from any other state. Each action is specified as an Amazon Resource Number (ARN). Currently the only actions supported are publishing to an Amazon SNS topic and triggering an Auto Scaling policy.

", + "MetricAlarm$AlarmActions": "

The list of actions to execute when this alarm transitions into an ALARM state from any other state. Each action is specified as an Amazon Resource Number (ARN). Currently the only actions supported are publishing to an Amazon SNS topic and triggering an Auto Scaling policy.

", + "MetricAlarm$InsufficientDataActions": "

The list of actions to execute when this alarm transitions into an INSUFFICIENT_DATA state from any other state. Each action is specified as an Amazon Resource Number (ARN). Currently the only actions supported are publishing to an Amazon SNS topic or triggering an Auto Scaling policy.

The current WSDL lists this attribute as UnknownActions.", + "PutMetricAlarmInput$OKActions": "

The list of actions to execute when this alarm transitions into an OK state from any other state. Each action is specified as an Amazon Resource Number (ARN). Currently the only action supported is publishing to an Amazon SNS topic or an Amazon Auto Scaling policy.

", + "PutMetricAlarmInput$AlarmActions": "

The list of actions to execute when this alarm transitions into an ALARM state from any other state. Each action is specified as an Amazon Resource Number (ARN). Currently the only action supported is publishing to an Amazon SNS topic or an Amazon Auto Scaling policy.

", + "PutMetricAlarmInput$InsufficientDataActions": "

The list of actions to execute when this alarm transitions into an INSUFFICIENT_DATA state from any other state. Each action is specified as an Amazon Resource Number (ARN). Currently the only action supported is publishing to an Amazon SNS topic or an Amazon Auto Scaling policy.

" + } + }, + "ResourceName": { + "base": null, + "refs": { + "ResourceList$member": null + } + }, + "ResourceNotFound": { + "base": "

The named resource does not exist.

", + "refs": { + } + }, + "SetAlarmStateInput": { + "base": null, + "refs": { + } + }, + "StandardUnit": { + "base": null, + "refs": { + "Datapoint$Unit": "

The standard unit used for the datapoint.

", + "DescribeAlarmsForMetricInput$Unit": "

The unit for the metric.

", + "GetMetricStatisticsInput$Unit": "

The unit for the metric.

", + "MetricAlarm$Unit": "

The unit of the alarm's associated metric.

", + "MetricDatum$Unit": "

The unit of the metric.

", + "PutMetricAlarmInput$Unit": "

The unit for the alarm's associated metric.

" + } + }, + "StateReason": { + "base": null, + "refs": { + "MetricAlarm$StateReason": "

A human-readable explanation for the alarm's state.

", + "SetAlarmStateInput$StateReason": "

The reason that this alarm is set to this specific state (in human-readable text format)

" + } + }, + "StateReasonData": { + "base": null, + "refs": { + "MetricAlarm$StateReasonData": "

An explanation for the alarm's state in machine-readable JSON format

", + "SetAlarmStateInput$StateReasonData": "

The reason that this alarm is set to this specific state (in machine-readable JSON format)

" + } + }, + "StateValue": { + "base": null, + "refs": { + "DescribeAlarmsInput$StateValue": "

The state value to be used in matching alarms.

", + "MetricAlarm$StateValue": "

The state value for the alarm.

", + "SetAlarmStateInput$StateValue": "

The value of the state.

" + } + }, + "Statistic": { + "base": null, + "refs": { + "DescribeAlarmsForMetricInput$Statistic": "

The statistic for the metric.

", + "MetricAlarm$Statistic": "

The statistic to apply to the alarm's associated metric.

", + "PutMetricAlarmInput$Statistic": "

The statistic to apply to the alarm's associated metric.

", + "Statistics$member": null + } + }, + "StatisticSet": { + "base": "

The StatisticSet data type describes the StatisticValues component of MetricDatum, and represents a set of statistics that describes a specific metric.

", + "refs": { + "MetricDatum$StatisticValues": "

A set of statistical values describing the metric.

" + } + }, + "Statistics": { + "base": null, + "refs": { + "GetMetricStatisticsInput$Statistics": "

The metric statistics to return. For information about specific statistics returned by GetMetricStatistics, go to Statistics in the Amazon CloudWatch Developer Guide.

Valid Values: Average | Sum | SampleCount | Maximum | Minimum

" + } + }, + "Threshold": { + "base": null, + "refs": { + "MetricAlarm$Threshold": "

The value against which the specified statistic is compared.

", + "PutMetricAlarmInput$Threshold": "

The value against which the specified statistic is compared.

" + } + }, + "Timestamp": { + "base": null, + "refs": { + "AlarmHistoryItem$Timestamp": "

The time stamp for the alarm history item. Amazon CloudWatch uses Coordinated Universal Time (UTC) when returning time stamps, which do not accommodate seasonal adjustments such as daylight savings time. For more information, see Time stamps in the Amazon CloudWatch Developer Guide.

", + "Datapoint$Timestamp": "

The time stamp used for the datapoint. Amazon CloudWatch uses Coordinated Universal Time (UTC) when returning time stamps, which do not accommodate seasonal adjustments such as daylight savings time. For more information, see Time stamps in the Amazon CloudWatch Developer Guide.

", + "DescribeAlarmHistoryInput$StartDate": "

The starting date to retrieve alarm history.

", + "DescribeAlarmHistoryInput$EndDate": "

The ending date to retrieve alarm history.

", + "GetMetricStatisticsInput$StartTime": "

The time stamp to use for determining the first datapoint to return. The value specified is inclusive; results include datapoints with the time stamp specified.

", + "GetMetricStatisticsInput$EndTime": "

The time stamp to use for determining the last datapoint to return. The value specified is exclusive; results will include datapoints up to the time stamp specified.

", + "MetricAlarm$AlarmConfigurationUpdatedTimestamp": "

The time stamp of the last update to the alarm configuration. Amazon CloudWatch uses Coordinated Universal Time (UTC) when returning time stamps, which do not accommodate seasonal adjustments such as daylight savings time. For more information, see Time stamps in the Amazon CloudWatch Developer Guide.

", + "MetricAlarm$StateUpdatedTimestamp": "

The time stamp of the last update to the alarm's state. Amazon CloudWatch uses Coordinated Universal Time (UTC) when returning time stamps, which do not accommodate seasonal adjustments such as daylight savings time. For more information, see Time stamps in the Amazon CloudWatch Developer Guide.

", + "MetricDatum$Timestamp": "

The time stamp used for the metric. If not specified, the default value is set to the time the metric data was received. Amazon CloudWatch uses Coordinated Universal Time (UTC) when returning time stamps, which do not accommodate seasonal adjustments such as daylight savings time. For more information, see Time stamps in the Amazon CloudWatch Developer Guide.

" + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/monitoring/2010-08-01/paginators-1.json b/lib/aws-sdk/Aws/data/monitoring/2010-08-01/paginators-1.json new file mode 100644 index 0000000..7bee28c --- /dev/null +++ b/lib/aws-sdk/Aws/data/monitoring/2010-08-01/paginators-1.json @@ -0,0 +1,24 @@ +{ + "pagination": { + "DescribeAlarmHistory": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxRecords", + "result_key": "AlarmHistoryItems" + }, + "DescribeAlarms": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxRecords", + "result_key": "MetricAlarms" + }, + "DescribeAlarmsForMetric": { + "result_key": "MetricAlarms" + }, + "ListMetrics": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Metrics" + } + } +} diff --git a/lib/aws-sdk/Aws/data/opsworks/2013-02-18/api-2.json b/lib/aws-sdk/Aws/data/opsworks/2013-02-18/api-2.json new file mode 100644 index 0000000..493cc0d --- /dev/null +++ b/lib/aws-sdk/Aws/data/opsworks/2013-02-18/api-2.json @@ -0,0 +1,2832 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2013-02-18", + "endpointPrefix":"opsworks", + "jsonVersion":"1.1", + "serviceFullName":"AWS OpsWorks", + "signatureVersion":"v4", + "targetPrefix":"OpsWorks_20130218", + "protocol":"json" + }, + "operations":{ + "AssignInstance":{ + "name":"AssignInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssignInstanceRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "AssignVolume":{ + "name":"AssignVolume", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssignVolumeRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "AssociateElasticIp":{ + "name":"AssociateElasticIp", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateElasticIpRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "AttachElasticLoadBalancer":{ + "name":"AttachElasticLoadBalancer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AttachElasticLoadBalancerRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "CloneStack":{ + "name":"CloneStack", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CloneStackRequest"}, + "output":{"shape":"CloneStackResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "CreateApp":{ + "name":"CreateApp", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateAppRequest"}, + "output":{"shape":"CreateAppResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "CreateDeployment":{ + "name":"CreateDeployment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDeploymentRequest"}, + "output":{"shape":"CreateDeploymentResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "CreateInstance":{ + "name":"CreateInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateInstanceRequest"}, + "output":{"shape":"CreateInstanceResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "CreateLayer":{ + "name":"CreateLayer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateLayerRequest"}, + "output":{"shape":"CreateLayerResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "CreateStack":{ + "name":"CreateStack", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateStackRequest"}, + "output":{"shape":"CreateStackResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + } + ] + }, + "CreateUserProfile":{ + "name":"CreateUserProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateUserProfileRequest"}, + "output":{"shape":"CreateUserProfileResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + } + ] + }, + "DeleteApp":{ + "name":"DeleteApp", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteAppRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DeleteInstance":{ + "name":"DeleteInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteInstanceRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DeleteLayer":{ + "name":"DeleteLayer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteLayerRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DeleteStack":{ + "name":"DeleteStack", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteStackRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DeleteUserProfile":{ + "name":"DeleteUserProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteUserProfileRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DeregisterElasticIp":{ + "name":"DeregisterElasticIp", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeregisterElasticIpRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DeregisterInstance":{ + "name":"DeregisterInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeregisterInstanceRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DeregisterRdsDbInstance":{ + "name":"DeregisterRdsDbInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeregisterRdsDbInstanceRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DeregisterVolume":{ + "name":"DeregisterVolume", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeregisterVolumeRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DescribeApps":{ + "name":"DescribeApps", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAppsRequest"}, + "output":{"shape":"DescribeAppsResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DescribeCommands":{ + "name":"DescribeCommands", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeCommandsRequest"}, + "output":{"shape":"DescribeCommandsResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DescribeDeployments":{ + "name":"DescribeDeployments", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDeploymentsRequest"}, + "output":{"shape":"DescribeDeploymentsResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DescribeElasticIps":{ + "name":"DescribeElasticIps", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeElasticIpsRequest"}, + "output":{"shape":"DescribeElasticIpsResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DescribeElasticLoadBalancers":{ + "name":"DescribeElasticLoadBalancers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeElasticLoadBalancersRequest"}, + "output":{"shape":"DescribeElasticLoadBalancersResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DescribeInstances":{ + "name":"DescribeInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeInstancesRequest"}, + "output":{"shape":"DescribeInstancesResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DescribeLayers":{ + "name":"DescribeLayers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeLayersRequest"}, + "output":{"shape":"DescribeLayersResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DescribeLoadBasedAutoScaling":{ + "name":"DescribeLoadBasedAutoScaling", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeLoadBasedAutoScalingRequest"}, + "output":{"shape":"DescribeLoadBasedAutoScalingResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DescribeMyUserProfile":{ + "name":"DescribeMyUserProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "output":{"shape":"DescribeMyUserProfileResult"} + }, + "DescribePermissions":{ + "name":"DescribePermissions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribePermissionsRequest"}, + "output":{"shape":"DescribePermissionsResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DescribeRaidArrays":{ + "name":"DescribeRaidArrays", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeRaidArraysRequest"}, + "output":{"shape":"DescribeRaidArraysResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DescribeRdsDbInstances":{ + "name":"DescribeRdsDbInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeRdsDbInstancesRequest"}, + "output":{"shape":"DescribeRdsDbInstancesResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DescribeServiceErrors":{ + "name":"DescribeServiceErrors", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeServiceErrorsRequest"}, + "output":{"shape":"DescribeServiceErrorsResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DescribeStackProvisioningParameters":{ + "name":"DescribeStackProvisioningParameters", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeStackProvisioningParametersRequest"}, + "output":{"shape":"DescribeStackProvisioningParametersResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DescribeStackSummary":{ + "name":"DescribeStackSummary", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeStackSummaryRequest"}, + "output":{"shape":"DescribeStackSummaryResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DescribeStacks":{ + "name":"DescribeStacks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeStacksRequest"}, + "output":{"shape":"DescribeStacksResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DescribeTimeBasedAutoScaling":{ + "name":"DescribeTimeBasedAutoScaling", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTimeBasedAutoScalingRequest"}, + "output":{"shape":"DescribeTimeBasedAutoScalingResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DescribeUserProfiles":{ + "name":"DescribeUserProfiles", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeUserProfilesRequest"}, + "output":{"shape":"DescribeUserProfilesResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DescribeVolumes":{ + "name":"DescribeVolumes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVolumesRequest"}, + "output":{"shape":"DescribeVolumesResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DetachElasticLoadBalancer":{ + "name":"DetachElasticLoadBalancer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetachElasticLoadBalancerRequest"}, + "errors":[ + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "DisassociateElasticIp":{ + "name":"DisassociateElasticIp", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisassociateElasticIpRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "GetHostnameSuggestion":{ + "name":"GetHostnameSuggestion", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetHostnameSuggestionRequest"}, + "output":{"shape":"GetHostnameSuggestionResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "GrantAccess":{ + "name":"GrantAccess", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GrantAccessRequest"}, + "output":{"shape":"GrantAccessResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "RebootInstance":{ + "name":"RebootInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RebootInstanceRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "RegisterElasticIp":{ + "name":"RegisterElasticIp", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RegisterElasticIpRequest"}, + "output":{"shape":"RegisterElasticIpResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "RegisterInstance":{ + "name":"RegisterInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RegisterInstanceRequest"}, + "output":{"shape":"RegisterInstanceResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "RegisterRdsDbInstance":{ + "name":"RegisterRdsDbInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RegisterRdsDbInstanceRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "RegisterVolume":{ + "name":"RegisterVolume", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RegisterVolumeRequest"}, + "output":{"shape":"RegisterVolumeResult"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "SetLoadBasedAutoScaling":{ + "name":"SetLoadBasedAutoScaling", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetLoadBasedAutoScalingRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "SetPermission":{ + "name":"SetPermission", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetPermissionRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "SetTimeBasedAutoScaling":{ + "name":"SetTimeBasedAutoScaling", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetTimeBasedAutoScalingRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "StartInstance":{ + "name":"StartInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartInstanceRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "StartStack":{ + "name":"StartStack", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartStackRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "StopInstance":{ + "name":"StopInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopInstanceRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "StopStack":{ + "name":"StopStack", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopStackRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "UnassignInstance":{ + "name":"UnassignInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UnassignInstanceRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "UnassignVolume":{ + "name":"UnassignVolume", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UnassignVolumeRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "UpdateApp":{ + "name":"UpdateApp", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateAppRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "UpdateElasticIp":{ + "name":"UpdateElasticIp", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateElasticIpRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "UpdateInstance":{ + "name":"UpdateInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateInstanceRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "UpdateLayer":{ + "name":"UpdateLayer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateLayerRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "UpdateMyUserProfile":{ + "name":"UpdateMyUserProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateMyUserProfileRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + } + ] + }, + "UpdateRdsDbInstance":{ + "name":"UpdateRdsDbInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateRdsDbInstanceRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "UpdateStack":{ + "name":"UpdateStack", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateStackRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "UpdateUserProfile":{ + "name":"UpdateUserProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateUserProfileRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + }, + "UpdateVolume":{ + "name":"UpdateVolume", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateVolumeRequest"}, + "errors":[ + { + "shape":"ValidationException", + "exception":true + }, + { + "shape":"ResourceNotFoundException", + "exception":true + } + ] + } + }, + "shapes":{ + "App":{ + "type":"structure", + "members":{ + "AppId":{"shape":"String"}, + "StackId":{"shape":"String"}, + "Shortname":{"shape":"String"}, + "Name":{"shape":"String"}, + "Description":{"shape":"String"}, + "DataSources":{"shape":"DataSources"}, + "Type":{"shape":"AppType"}, + "AppSource":{"shape":"Source"}, + "Domains":{"shape":"Strings"}, + "EnableSsl":{"shape":"Boolean"}, + "SslConfiguration":{"shape":"SslConfiguration"}, + "Attributes":{"shape":"AppAttributes"}, + "CreatedAt":{"shape":"String"}, + "Environment":{"shape":"EnvironmentVariables"} + } + }, + "AppAttributes":{ + "type":"map", + "key":{"shape":"AppAttributesKeys"}, + "value":{"shape":"String"} + }, + "AppAttributesKeys":{ + "type":"string", + "enum":[ + "DocumentRoot", + "RailsEnv", + "AutoBundleOnDeploy" + ] + }, + "AppType":{ + "type":"string", + "enum":[ + "java", + "rails", + "php", + "nodejs", + "static", + "other" + ] + }, + "Apps":{ + "type":"list", + "member":{"shape":"App"} + }, + "Architecture":{ + "type":"string", + "enum":[ + "x86_64", + "i386" + ] + }, + "AssignInstanceRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "LayerIds" + ], + "members":{ + "InstanceId":{"shape":"String"}, + "LayerIds":{"shape":"Strings"} + } + }, + "AssignVolumeRequest":{ + "type":"structure", + "required":["VolumeId"], + "members":{ + "VolumeId":{"shape":"String"}, + "InstanceId":{"shape":"String"} + } + }, + "AssociateElasticIpRequest":{ + "type":"structure", + "required":["ElasticIp"], + "members":{ + "ElasticIp":{"shape":"String"}, + "InstanceId":{"shape":"String"} + } + }, + "AttachElasticLoadBalancerRequest":{ + "type":"structure", + "required":[ + "ElasticLoadBalancerName", + "LayerId" + ], + "members":{ + "ElasticLoadBalancerName":{"shape":"String"}, + "LayerId":{"shape":"String"} + } + }, + "AutoScalingThresholds":{ + "type":"structure", + "members":{ + "InstanceCount":{"shape":"Integer"}, + "ThresholdsWaitTime":{"shape":"Minute"}, + "IgnoreMetricsTime":{"shape":"Minute"}, + "CpuThreshold":{"shape":"Double"}, + "MemoryThreshold":{"shape":"Double"}, + "LoadThreshold":{"shape":"Double"}, + "Alarms":{"shape":"Strings"} + } + }, + "AutoScalingType":{ + "type":"string", + "enum":[ + "load", + "timer" + ] + }, + "BlockDeviceMapping":{ + "type":"structure", + "members":{ + "DeviceName":{"shape":"String"}, + "NoDevice":{"shape":"String"}, + "VirtualName":{"shape":"String"}, + "Ebs":{"shape":"EbsBlockDevice"} + } + }, + "BlockDeviceMappings":{ + "type":"list", + "member":{"shape":"BlockDeviceMapping"} + }, + "Boolean":{ + "type":"boolean", + "box":true + }, + "ChefConfiguration":{ + "type":"structure", + "members":{ + "ManageBerkshelf":{"shape":"Boolean"}, + "BerkshelfVersion":{"shape":"String"} + } + }, + "CloneStackRequest":{ + "type":"structure", + "required":[ + "SourceStackId", + "ServiceRoleArn" + ], + "members":{ + "SourceStackId":{"shape":"String"}, + "Name":{"shape":"String"}, + "Region":{"shape":"String"}, + "VpcId":{"shape":"String"}, + "Attributes":{"shape":"StackAttributes"}, + "ServiceRoleArn":{"shape":"String"}, + "DefaultInstanceProfileArn":{"shape":"String"}, + "DefaultOs":{"shape":"String"}, + "HostnameTheme":{"shape":"String"}, + "DefaultAvailabilityZone":{"shape":"String"}, + "DefaultSubnetId":{"shape":"String"}, + "CustomJson":{"shape":"String"}, + "ConfigurationManager":{"shape":"StackConfigurationManager"}, + "ChefConfiguration":{"shape":"ChefConfiguration"}, + "UseCustomCookbooks":{"shape":"Boolean"}, + "UseOpsworksSecurityGroups":{"shape":"Boolean"}, + "CustomCookbooksSource":{"shape":"Source"}, + "DefaultSshKeyName":{"shape":"String"}, + "ClonePermissions":{"shape":"Boolean"}, + "CloneAppIds":{"shape":"Strings"}, + "DefaultRootDeviceType":{"shape":"RootDeviceType"} + } + }, + "CloneStackResult":{ + "type":"structure", + "members":{ + "StackId":{"shape":"String"} + } + }, + "Command":{ + "type":"structure", + "members":{ + "CommandId":{"shape":"String"}, + "InstanceId":{"shape":"String"}, + "DeploymentId":{"shape":"String"}, + "CreatedAt":{"shape":"DateTime"}, + "AcknowledgedAt":{"shape":"DateTime"}, + "CompletedAt":{"shape":"DateTime"}, + "Status":{"shape":"String"}, + "ExitCode":{"shape":"Integer"}, + "LogUrl":{"shape":"String"}, + "Type":{"shape":"String"} + } + }, + "Commands":{ + "type":"list", + "member":{"shape":"Command"} + }, + "CreateAppRequest":{ + "type":"structure", + "required":[ + "StackId", + "Name", + "Type" + ], + "members":{ + "StackId":{"shape":"String"}, + "Shortname":{"shape":"String"}, + "Name":{"shape":"String"}, + "Description":{"shape":"String"}, + "DataSources":{"shape":"DataSources"}, + "Type":{"shape":"AppType"}, + "AppSource":{"shape":"Source"}, + "Domains":{"shape":"Strings"}, + "EnableSsl":{"shape":"Boolean"}, + "SslConfiguration":{"shape":"SslConfiguration"}, + "Attributes":{"shape":"AppAttributes"}, + "Environment":{"shape":"EnvironmentVariables"} + } + }, + "CreateAppResult":{ + "type":"structure", + "members":{ + "AppId":{"shape":"String"} + } + }, + "CreateDeploymentRequest":{ + "type":"structure", + "required":[ + "StackId", + "Command" + ], + "members":{ + "StackId":{"shape":"String"}, + "AppId":{"shape":"String"}, + "InstanceIds":{"shape":"Strings"}, + "Command":{"shape":"DeploymentCommand"}, + "Comment":{"shape":"String"}, + "CustomJson":{"shape":"String"} + } + }, + "CreateDeploymentResult":{ + "type":"structure", + "members":{ + "DeploymentId":{"shape":"String"} + } + }, + "CreateInstanceRequest":{ + "type":"structure", + "required":[ + "StackId", + "LayerIds", + "InstanceType" + ], + "members":{ + "StackId":{"shape":"String"}, + "LayerIds":{"shape":"Strings"}, + "InstanceType":{"shape":"String"}, + "AutoScalingType":{"shape":"AutoScalingType"}, + "Hostname":{"shape":"String"}, + "Os":{"shape":"String"}, + "AmiId":{"shape":"String"}, + "SshKeyName":{"shape":"String"}, + "AvailabilityZone":{"shape":"String"}, + "VirtualizationType":{"shape":"String"}, + "SubnetId":{"shape":"String"}, + "Architecture":{"shape":"Architecture"}, + "RootDeviceType":{"shape":"RootDeviceType"}, + "BlockDeviceMappings":{"shape":"BlockDeviceMappings"}, + "InstallUpdatesOnBoot":{"shape":"Boolean"}, + "EbsOptimized":{"shape":"Boolean"} + } + }, + "CreateInstanceResult":{ + "type":"structure", + "members":{ + "InstanceId":{"shape":"String"} + } + }, + "CreateLayerRequest":{ + "type":"structure", + "required":[ + "StackId", + "Type", + "Name", + "Shortname" + ], + "members":{ + "StackId":{"shape":"String"}, + "Type":{"shape":"LayerType"}, + "Name":{"shape":"String"}, + "Shortname":{"shape":"String"}, + "Attributes":{"shape":"LayerAttributes"}, + "CustomInstanceProfileArn":{"shape":"String"}, + "CustomSecurityGroupIds":{"shape":"Strings"}, + "Packages":{"shape":"Strings"}, + "VolumeConfigurations":{"shape":"VolumeConfigurations"}, + "EnableAutoHealing":{"shape":"Boolean"}, + "AutoAssignElasticIps":{"shape":"Boolean"}, + "AutoAssignPublicIps":{"shape":"Boolean"}, + "CustomRecipes":{"shape":"Recipes"}, + "InstallUpdatesOnBoot":{"shape":"Boolean"}, + "UseEbsOptimizedInstances":{"shape":"Boolean"}, + "LifecycleEventConfiguration":{"shape":"LifecycleEventConfiguration"} + } + }, + "CreateLayerResult":{ + "type":"structure", + "members":{ + "LayerId":{"shape":"String"} + } + }, + "CreateStackRequest":{ + "type":"structure", + "required":[ + "Name", + "Region", + "ServiceRoleArn", + "DefaultInstanceProfileArn" + ], + "members":{ + "Name":{"shape":"String"}, + "Region":{"shape":"String"}, + "VpcId":{"shape":"String"}, + "Attributes":{"shape":"StackAttributes"}, + "ServiceRoleArn":{"shape":"String"}, + "DefaultInstanceProfileArn":{"shape":"String"}, + "DefaultOs":{"shape":"String"}, + "HostnameTheme":{"shape":"String"}, + "DefaultAvailabilityZone":{"shape":"String"}, + "DefaultSubnetId":{"shape":"String"}, + "CustomJson":{"shape":"String"}, + "ConfigurationManager":{"shape":"StackConfigurationManager"}, + "ChefConfiguration":{"shape":"ChefConfiguration"}, + "UseCustomCookbooks":{"shape":"Boolean"}, + "UseOpsworksSecurityGroups":{"shape":"Boolean"}, + "CustomCookbooksSource":{"shape":"Source"}, + "DefaultSshKeyName":{"shape":"String"}, + "DefaultRootDeviceType":{"shape":"RootDeviceType"} + } + }, + "CreateStackResult":{ + "type":"structure", + "members":{ + "StackId":{"shape":"String"} + } + }, + "CreateUserProfileRequest":{ + "type":"structure", + "required":["IamUserArn"], + "members":{ + "IamUserArn":{"shape":"String"}, + "SshUsername":{"shape":"String"}, + "SshPublicKey":{"shape":"String"}, + "AllowSelfManagement":{"shape":"Boolean"} + } + }, + "CreateUserProfileResult":{ + "type":"structure", + "members":{ + "IamUserArn":{"shape":"String"} + } + }, + "DailyAutoScalingSchedule":{ + "type":"map", + "key":{"shape":"Hour"}, + "value":{"shape":"Switch"} + }, + "DataSource":{ + "type":"structure", + "members":{ + "Type":{"shape":"String"}, + "Arn":{"shape":"String"}, + "DatabaseName":{"shape":"String"} + } + }, + "DataSources":{ + "type":"list", + "member":{"shape":"DataSource"} + }, + "DateTime":{"type":"string"}, + "DeleteAppRequest":{ + "type":"structure", + "required":["AppId"], + "members":{ + "AppId":{"shape":"String"} + } + }, + "DeleteInstanceRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "InstanceId":{"shape":"String"}, + "DeleteElasticIp":{"shape":"Boolean"}, + "DeleteVolumes":{"shape":"Boolean"} + } + }, + "DeleteLayerRequest":{ + "type":"structure", + "required":["LayerId"], + "members":{ + "LayerId":{"shape":"String"} + } + }, + "DeleteStackRequest":{ + "type":"structure", + "required":["StackId"], + "members":{ + "StackId":{"shape":"String"} + } + }, + "DeleteUserProfileRequest":{ + "type":"structure", + "required":["IamUserArn"], + "members":{ + "IamUserArn":{"shape":"String"} + } + }, + "Deployment":{ + "type":"structure", + "members":{ + "DeploymentId":{"shape":"String"}, + "StackId":{"shape":"String"}, + "AppId":{"shape":"String"}, + "CreatedAt":{"shape":"DateTime"}, + "CompletedAt":{"shape":"DateTime"}, + "Duration":{"shape":"Integer"}, + "IamUserArn":{"shape":"String"}, + "Comment":{"shape":"String"}, + "Command":{"shape":"DeploymentCommand"}, + "Status":{"shape":"String"}, + "CustomJson":{"shape":"String"}, + "InstanceIds":{"shape":"Strings"} + } + }, + "DeploymentCommand":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"DeploymentCommandName"}, + "Args":{"shape":"DeploymentCommandArgs"} + } + }, + "DeploymentCommandArgs":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"Strings"} + }, + "DeploymentCommandName":{ + "type":"string", + "enum":[ + "install_dependencies", + "update_dependencies", + "update_custom_cookbooks", + "execute_recipes", + "deploy", + "rollback", + "start", + "stop", + "restart", + "undeploy" + ] + }, + "Deployments":{ + "type":"list", + "member":{"shape":"Deployment"} + }, + "DeregisterElasticIpRequest":{ + "type":"structure", + "required":["ElasticIp"], + "members":{ + "ElasticIp":{"shape":"String"} + } + }, + "DeregisterInstanceRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "InstanceId":{"shape":"String"} + } + }, + "DeregisterRdsDbInstanceRequest":{ + "type":"structure", + "required":["RdsDbInstanceArn"], + "members":{ + "RdsDbInstanceArn":{"shape":"String"} + } + }, + "DeregisterVolumeRequest":{ + "type":"structure", + "required":["VolumeId"], + "members":{ + "VolumeId":{"shape":"String"} + } + }, + "DescribeAppsRequest":{ + "type":"structure", + "members":{ + "StackId":{"shape":"String"}, + "AppIds":{"shape":"Strings"} + } + }, + "DescribeAppsResult":{ + "type":"structure", + "members":{ + "Apps":{"shape":"Apps"} + } + }, + "DescribeCommandsRequest":{ + "type":"structure", + "members":{ + "DeploymentId":{"shape":"String"}, + "InstanceId":{"shape":"String"}, + "CommandIds":{"shape":"Strings"} + } + }, + "DescribeCommandsResult":{ + "type":"structure", + "members":{ + "Commands":{"shape":"Commands"} + } + }, + "DescribeDeploymentsRequest":{ + "type":"structure", + "members":{ + "StackId":{"shape":"String"}, + "AppId":{"shape":"String"}, + "DeploymentIds":{"shape":"Strings"} + } + }, + "DescribeDeploymentsResult":{ + "type":"structure", + "members":{ + "Deployments":{"shape":"Deployments"} + } + }, + "DescribeElasticIpsRequest":{ + "type":"structure", + "members":{ + "InstanceId":{"shape":"String"}, + "StackId":{"shape":"String"}, + "Ips":{"shape":"Strings"} + } + }, + "DescribeElasticIpsResult":{ + "type":"structure", + "members":{ + "ElasticIps":{"shape":"ElasticIps"} + } + }, + "DescribeElasticLoadBalancersRequest":{ + "type":"structure", + "members":{ + "StackId":{"shape":"String"}, + "LayerIds":{"shape":"Strings"} + } + }, + "DescribeElasticLoadBalancersResult":{ + "type":"structure", + "members":{ + "ElasticLoadBalancers":{"shape":"ElasticLoadBalancers"} + } + }, + "DescribeInstancesRequest":{ + "type":"structure", + "members":{ + "StackId":{"shape":"String"}, + "LayerId":{"shape":"String"}, + "InstanceIds":{"shape":"Strings"} + } + }, + "DescribeInstancesResult":{ + "type":"structure", + "members":{ + "Instances":{"shape":"Instances"} + } + }, + "DescribeLayersRequest":{ + "type":"structure", + "members":{ + "StackId":{"shape":"String"}, + "LayerIds":{"shape":"Strings"} + } + }, + "DescribeLayersResult":{ + "type":"structure", + "members":{ + "Layers":{"shape":"Layers"} + } + }, + "DescribeLoadBasedAutoScalingRequest":{ + "type":"structure", + "required":["LayerIds"], + "members":{ + "LayerIds":{"shape":"Strings"} + } + }, + "DescribeLoadBasedAutoScalingResult":{ + "type":"structure", + "members":{ + "LoadBasedAutoScalingConfigurations":{"shape":"LoadBasedAutoScalingConfigurations"} + } + }, + "DescribeMyUserProfileResult":{ + "type":"structure", + "members":{ + "UserProfile":{"shape":"SelfUserProfile"} + } + }, + "DescribePermissionsRequest":{ + "type":"structure", + "members":{ + "IamUserArn":{"shape":"String"}, + "StackId":{"shape":"String"} + } + }, + "DescribePermissionsResult":{ + "type":"structure", + "members":{ + "Permissions":{"shape":"Permissions"} + } + }, + "DescribeRaidArraysRequest":{ + "type":"structure", + "members":{ + "InstanceId":{"shape":"String"}, + "StackId":{"shape":"String"}, + "RaidArrayIds":{"shape":"Strings"} + } + }, + "DescribeRaidArraysResult":{ + "type":"structure", + "members":{ + "RaidArrays":{"shape":"RaidArrays"} + } + }, + "DescribeRdsDbInstancesRequest":{ + "type":"structure", + "required":["StackId"], + "members":{ + "StackId":{"shape":"String"}, + "RdsDbInstanceArns":{"shape":"Strings"} + } + }, + "DescribeRdsDbInstancesResult":{ + "type":"structure", + "members":{ + "RdsDbInstances":{"shape":"RdsDbInstances"} + } + }, + "DescribeServiceErrorsRequest":{ + "type":"structure", + "members":{ + "StackId":{"shape":"String"}, + "InstanceId":{"shape":"String"}, + "ServiceErrorIds":{"shape":"Strings"} + } + }, + "DescribeServiceErrorsResult":{ + "type":"structure", + "members":{ + "ServiceErrors":{"shape":"ServiceErrors"} + } + }, + "DescribeStackProvisioningParametersRequest":{ + "type":"structure", + "required":["StackId"], + "members":{ + "StackId":{"shape":"String"} + } + }, + "DescribeStackProvisioningParametersResult":{ + "type":"structure", + "members":{ + "AgentInstallerUrl":{"shape":"String"}, + "Parameters":{"shape":"Parameters"} + } + }, + "DescribeStackSummaryRequest":{ + "type":"structure", + "required":["StackId"], + "members":{ + "StackId":{"shape":"String"} + } + }, + "DescribeStackSummaryResult":{ + "type":"structure", + "members":{ + "StackSummary":{"shape":"StackSummary"} + } + }, + "DescribeStacksRequest":{ + "type":"structure", + "members":{ + "StackIds":{"shape":"Strings"} + } + }, + "DescribeStacksResult":{ + "type":"structure", + "members":{ + "Stacks":{"shape":"Stacks"} + } + }, + "DescribeTimeBasedAutoScalingRequest":{ + "type":"structure", + "required":["InstanceIds"], + "members":{ + "InstanceIds":{"shape":"Strings"} + } + }, + "DescribeTimeBasedAutoScalingResult":{ + "type":"structure", + "members":{ + "TimeBasedAutoScalingConfigurations":{"shape":"TimeBasedAutoScalingConfigurations"} + } + }, + "DescribeUserProfilesRequest":{ + "type":"structure", + "members":{ + "IamUserArns":{"shape":"Strings"} + } + }, + "DescribeUserProfilesResult":{ + "type":"structure", + "members":{ + "UserProfiles":{"shape":"UserProfiles"} + } + }, + "DescribeVolumesRequest":{ + "type":"structure", + "members":{ + "InstanceId":{"shape":"String"}, + "StackId":{"shape":"String"}, + "RaidArrayId":{"shape":"String"}, + "VolumeIds":{"shape":"Strings"} + } + }, + "DescribeVolumesResult":{ + "type":"structure", + "members":{ + "Volumes":{"shape":"Volumes"} + } + }, + "DetachElasticLoadBalancerRequest":{ + "type":"structure", + "required":[ + "ElasticLoadBalancerName", + "LayerId" + ], + "members":{ + "ElasticLoadBalancerName":{"shape":"String"}, + "LayerId":{"shape":"String"} + } + }, + "DisassociateElasticIpRequest":{ + "type":"structure", + "required":["ElasticIp"], + "members":{ + "ElasticIp":{"shape":"String"} + } + }, + "Double":{ + "type":"double", + "box":true + }, + "EbsBlockDevice":{ + "type":"structure", + "members":{ + "SnapshotId":{"shape":"String"}, + "Iops":{"shape":"Integer"}, + "VolumeSize":{"shape":"Integer"}, + "VolumeType":{"shape":"VolumeType"}, + "DeleteOnTermination":{"shape":"Boolean"} + } + }, + "ElasticIp":{ + "type":"structure", + "members":{ + "Ip":{"shape":"String"}, + "Name":{"shape":"String"}, + "Domain":{"shape":"String"}, + "Region":{"shape":"String"}, + "InstanceId":{"shape":"String"} + } + }, + "ElasticIps":{ + "type":"list", + "member":{"shape":"ElasticIp"} + }, + "ElasticLoadBalancer":{ + "type":"structure", + "members":{ + "ElasticLoadBalancerName":{"shape":"String"}, + "Region":{"shape":"String"}, + "DnsName":{"shape":"String"}, + "StackId":{"shape":"String"}, + "LayerId":{"shape":"String"}, + "VpcId":{"shape":"String"}, + "AvailabilityZones":{"shape":"Strings"}, + "SubnetIds":{"shape":"Strings"}, + "Ec2InstanceIds":{"shape":"Strings"} + } + }, + "ElasticLoadBalancers":{ + "type":"list", + "member":{"shape":"ElasticLoadBalancer"} + }, + "EnvironmentVariable":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{"shape":"String"}, + "Value":{"shape":"String"}, + "Secure":{"shape":"Boolean"} + } + }, + "EnvironmentVariables":{ + "type":"list", + "member":{"shape":"EnvironmentVariable"} + }, + "GetHostnameSuggestionRequest":{ + "type":"structure", + "required":["LayerId"], + "members":{ + "LayerId":{"shape":"String"} + } + }, + "GetHostnameSuggestionResult":{ + "type":"structure", + "members":{ + "LayerId":{"shape":"String"}, + "Hostname":{"shape":"String"} + } + }, + "GrantAccessRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "InstanceId":{"shape":"String"}, + "ValidForInMinutes":{"shape":"ValidForInMinutes"} + } + }, + "GrantAccessResult":{ + "type":"structure", + "members":{ + "TemporaryCredential":{"shape":"TemporaryCredential"} + } + }, + "Hour":{"type":"string"}, + "Instance":{ + "type":"structure", + "members":{ + "InstanceId":{"shape":"String"}, + "Ec2InstanceId":{"shape":"String"}, + "VirtualizationType":{"shape":"VirtualizationType"}, + "Hostname":{"shape":"String"}, + "StackId":{"shape":"String"}, + "LayerIds":{"shape":"Strings"}, + "SecurityGroupIds":{"shape":"Strings"}, + "InstanceType":{"shape":"String"}, + "InstanceProfileArn":{"shape":"String"}, + "Status":{"shape":"String"}, + "Os":{"shape":"String"}, + "AmiId":{"shape":"String"}, + "AvailabilityZone":{"shape":"String"}, + "SubnetId":{"shape":"String"}, + "PublicDns":{"shape":"String"}, + "PrivateDns":{"shape":"String"}, + "PublicIp":{"shape":"String"}, + "PrivateIp":{"shape":"String"}, + "ElasticIp":{"shape":"String"}, + "AutoScalingType":{"shape":"AutoScalingType"}, + "SshKeyName":{"shape":"String"}, + "SshHostRsaKeyFingerprint":{"shape":"String"}, + "SshHostDsaKeyFingerprint":{"shape":"String"}, + "CreatedAt":{"shape":"DateTime"}, + "LastServiceErrorId":{"shape":"String"}, + "Architecture":{"shape":"Architecture"}, + "RootDeviceType":{"shape":"RootDeviceType"}, + "RootDeviceVolumeId":{"shape":"String"}, + "BlockDeviceMappings":{"shape":"BlockDeviceMappings"}, + "InstallUpdatesOnBoot":{"shape":"Boolean"}, + "EbsOptimized":{"shape":"Boolean"}, + "ReportedAgentVersion":{"shape":"String"}, + "ReportedOs":{"shape":"ReportedOs"}, + "InfrastructureClass":{"shape":"String"}, + "RegisteredBy":{"shape":"String"} + } + }, + "InstanceIdentity":{ + "type":"structure", + "members":{ + "Document":{"shape":"String"}, + "Signature":{"shape":"String"} + } + }, + "Instances":{ + "type":"list", + "member":{"shape":"Instance"} + }, + "InstancesCount":{ + "type":"structure", + "members":{ + "Assigning":{"shape":"Integer"}, + "Booting":{"shape":"Integer"}, + "ConnectionLost":{"shape":"Integer"}, + "Deregistering":{"shape":"Integer"}, + "Online":{"shape":"Integer"}, + "Pending":{"shape":"Integer"}, + "Rebooting":{"shape":"Integer"}, + "Registered":{"shape":"Integer"}, + "Registering":{"shape":"Integer"}, + "Requested":{"shape":"Integer"}, + "RunningSetup":{"shape":"Integer"}, + "SetupFailed":{"shape":"Integer"}, + "ShuttingDown":{"shape":"Integer"}, + "StartFailed":{"shape":"Integer"}, + "Stopped":{"shape":"Integer"}, + "Stopping":{"shape":"Integer"}, + "Terminated":{"shape":"Integer"}, + "Terminating":{"shape":"Integer"}, + "Unassigning":{"shape":"Integer"} + } + }, + "Integer":{ + "type":"integer", + "box":true + }, + "Layer":{ + "type":"structure", + "members":{ + "StackId":{"shape":"String"}, + "LayerId":{"shape":"String"}, + "Type":{"shape":"LayerType"}, + "Name":{"shape":"String"}, + "Shortname":{"shape":"String"}, + "Attributes":{"shape":"LayerAttributes"}, + "CustomInstanceProfileArn":{"shape":"String"}, + "CustomSecurityGroupIds":{"shape":"Strings"}, + "DefaultSecurityGroupNames":{"shape":"Strings"}, + "Packages":{"shape":"Strings"}, + "VolumeConfigurations":{"shape":"VolumeConfigurations"}, + "EnableAutoHealing":{"shape":"Boolean"}, + "AutoAssignElasticIps":{"shape":"Boolean"}, + "AutoAssignPublicIps":{"shape":"Boolean"}, + "DefaultRecipes":{"shape":"Recipes"}, + "CustomRecipes":{"shape":"Recipes"}, + "CreatedAt":{"shape":"DateTime"}, + "InstallUpdatesOnBoot":{"shape":"Boolean"}, + "UseEbsOptimizedInstances":{"shape":"Boolean"}, + "LifecycleEventConfiguration":{"shape":"LifecycleEventConfiguration"} + } + }, + "LayerAttributes":{ + "type":"map", + "key":{"shape":"LayerAttributesKeys"}, + "value":{"shape":"String"} + }, + "LayerAttributesKeys":{ + "type":"string", + "enum":[ + "EnableHaproxyStats", + "HaproxyStatsUrl", + "HaproxyStatsUser", + "HaproxyStatsPassword", + "HaproxyHealthCheckUrl", + "HaproxyHealthCheckMethod", + "MysqlRootPassword", + "MysqlRootPasswordUbiquitous", + "GangliaUrl", + "GangliaUser", + "GangliaPassword", + "MemcachedMemory", + "NodejsVersion", + "RubyVersion", + "RubygemsVersion", + "ManageBundler", + "BundlerVersion", + "RailsStack", + "PassengerVersion", + "Jvm", + "JvmVersion", + "JvmOptions", + "JavaAppServer", + "JavaAppServerVersion" + ] + }, + "LayerType":{ + "type":"string", + "enum":[ + "java-app", + "lb", + "web", + "php-app", + "rails-app", + "nodejs-app", + "memcached", + "db-master", + "monitoring-master", + "custom" + ] + }, + "Layers":{ + "type":"list", + "member":{"shape":"Layer"} + }, + "LifecycleEventConfiguration":{ + "type":"structure", + "members":{ + "Shutdown":{"shape":"ShutdownEventConfiguration"} + } + }, + "LoadBasedAutoScalingConfiguration":{ + "type":"structure", + "members":{ + "LayerId":{"shape":"String"}, + "Enable":{"shape":"Boolean"}, + "UpScaling":{"shape":"AutoScalingThresholds"}, + "DownScaling":{"shape":"AutoScalingThresholds"} + } + }, + "LoadBasedAutoScalingConfigurations":{ + "type":"list", + "member":{"shape":"LoadBasedAutoScalingConfiguration"} + }, + "Minute":{ + "type":"integer", + "min":1, + "max":100, + "box":true + }, + "Parameters":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "Permission":{ + "type":"structure", + "members":{ + "StackId":{"shape":"String"}, + "IamUserArn":{"shape":"String"}, + "AllowSsh":{"shape":"Boolean"}, + "AllowSudo":{"shape":"Boolean"}, + "Level":{"shape":"String"} + } + }, + "Permissions":{ + "type":"list", + "member":{"shape":"Permission"} + }, + "RaidArray":{ + "type":"structure", + "members":{ + "RaidArrayId":{"shape":"String"}, + "InstanceId":{"shape":"String"}, + "Name":{"shape":"String"}, + "RaidLevel":{"shape":"Integer"}, + "NumberOfDisks":{"shape":"Integer"}, + "Size":{"shape":"Integer"}, + "Device":{"shape":"String"}, + "MountPoint":{"shape":"String"}, + "AvailabilityZone":{"shape":"String"}, + "CreatedAt":{"shape":"DateTime"}, + "StackId":{"shape":"String"}, + "VolumeType":{"shape":"String"}, + "Iops":{"shape":"Integer"} + } + }, + "RaidArrays":{ + "type":"list", + "member":{"shape":"RaidArray"} + }, + "RdsDbInstance":{ + "type":"structure", + "members":{ + "RdsDbInstanceArn":{"shape":"String"}, + "DbInstanceIdentifier":{"shape":"String"}, + "DbUser":{"shape":"String"}, + "DbPassword":{"shape":"String"}, + "Region":{"shape":"String"}, + "Address":{"shape":"String"}, + "Engine":{"shape":"String"}, + "StackId":{"shape":"String"}, + "MissingOnRds":{"shape":"Boolean"} + } + }, + "RdsDbInstances":{ + "type":"list", + "member":{"shape":"RdsDbInstance"} + }, + "RebootInstanceRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "InstanceId":{"shape":"String"} + } + }, + "Recipes":{ + "type":"structure", + "members":{ + "Setup":{"shape":"Strings"}, + "Configure":{"shape":"Strings"}, + "Deploy":{"shape":"Strings"}, + "Undeploy":{"shape":"Strings"}, + "Shutdown":{"shape":"Strings"} + } + }, + "RegisterElasticIpRequest":{ + "type":"structure", + "required":[ + "ElasticIp", + "StackId" + ], + "members":{ + "ElasticIp":{"shape":"String"}, + "StackId":{"shape":"String"} + } + }, + "RegisterElasticIpResult":{ + "type":"structure", + "members":{ + "ElasticIp":{"shape":"String"} + } + }, + "RegisterInstanceRequest":{ + "type":"structure", + "required":["StackId"], + "members":{ + "StackId":{"shape":"String"}, + "Hostname":{"shape":"String"}, + "PublicIp":{"shape":"String"}, + "PrivateIp":{"shape":"String"}, + "RsaPublicKey":{"shape":"String"}, + "RsaPublicKeyFingerprint":{"shape":"String"}, + "InstanceIdentity":{"shape":"InstanceIdentity"} + } + }, + "RegisterInstanceResult":{ + "type":"structure", + "members":{ + "InstanceId":{"shape":"String"} + } + }, + "RegisterRdsDbInstanceRequest":{ + "type":"structure", + "required":[ + "StackId", + "RdsDbInstanceArn", + "DbUser", + "DbPassword" + ], + "members":{ + "StackId":{"shape":"String"}, + "RdsDbInstanceArn":{"shape":"String"}, + "DbUser":{"shape":"String"}, + "DbPassword":{"shape":"String"} + } + }, + "RegisterVolumeRequest":{ + "type":"structure", + "required":["StackId"], + "members":{ + "Ec2VolumeId":{"shape":"String"}, + "StackId":{"shape":"String"} + } + }, + "RegisterVolumeResult":{ + "type":"structure", + "members":{ + "VolumeId":{"shape":"String"} + } + }, + "ReportedOs":{ + "type":"structure", + "members":{ + "Family":{"shape":"String"}, + "Name":{"shape":"String"}, + "Version":{"shape":"String"} + } + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "exception":true + }, + "RootDeviceType":{ + "type":"string", + "enum":[ + "ebs", + "instance-store" + ] + }, + "SelfUserProfile":{ + "type":"structure", + "members":{ + "IamUserArn":{"shape":"String"}, + "Name":{"shape":"String"}, + "SshUsername":{"shape":"String"}, + "SshPublicKey":{"shape":"String"} + } + }, + "ServiceError":{ + "type":"structure", + "members":{ + "ServiceErrorId":{"shape":"String"}, + "StackId":{"shape":"String"}, + "InstanceId":{"shape":"String"}, + "Type":{"shape":"String"}, + "Message":{"shape":"String"}, + "CreatedAt":{"shape":"DateTime"} + } + }, + "ServiceErrors":{ + "type":"list", + "member":{"shape":"ServiceError"} + }, + "SetLoadBasedAutoScalingRequest":{ + "type":"structure", + "required":["LayerId"], + "members":{ + "LayerId":{"shape":"String"}, + "Enable":{"shape":"Boolean"}, + "UpScaling":{"shape":"AutoScalingThresholds"}, + "DownScaling":{"shape":"AutoScalingThresholds"} + } + }, + "SetPermissionRequest":{ + "type":"structure", + "required":[ + "StackId", + "IamUserArn" + ], + "members":{ + "StackId":{"shape":"String"}, + "IamUserArn":{"shape":"String"}, + "AllowSsh":{"shape":"Boolean"}, + "AllowSudo":{"shape":"Boolean"}, + "Level":{"shape":"String"} + } + }, + "SetTimeBasedAutoScalingRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "InstanceId":{"shape":"String"}, + "AutoScalingSchedule":{"shape":"WeeklyAutoScalingSchedule"} + } + }, + "ShutdownEventConfiguration":{ + "type":"structure", + "members":{ + "ExecutionTimeout":{"shape":"Integer"}, + "DelayUntilElbConnectionsDrained":{"shape":"Boolean"} + } + }, + "Source":{ + "type":"structure", + "members":{ + "Type":{"shape":"SourceType"}, + "Url":{"shape":"String"}, + "Username":{"shape":"String"}, + "Password":{"shape":"String"}, + "SshKey":{"shape":"String"}, + "Revision":{"shape":"String"} + } + }, + "SourceType":{ + "type":"string", + "enum":[ + "git", + "svn", + "archive", + "s3" + ] + }, + "SslConfiguration":{ + "type":"structure", + "required":[ + "Certificate", + "PrivateKey" + ], + "members":{ + "Certificate":{"shape":"String"}, + "PrivateKey":{"shape":"String"}, + "Chain":{"shape":"String"} + } + }, + "Stack":{ + "type":"structure", + "members":{ + "StackId":{"shape":"String"}, + "Name":{"shape":"String"}, + "Arn":{"shape":"String"}, + "Region":{"shape":"String"}, + "VpcId":{"shape":"String"}, + "Attributes":{"shape":"StackAttributes"}, + "ServiceRoleArn":{"shape":"String"}, + "DefaultInstanceProfileArn":{"shape":"String"}, + "DefaultOs":{"shape":"String"}, + "HostnameTheme":{"shape":"String"}, + "DefaultAvailabilityZone":{"shape":"String"}, + "DefaultSubnetId":{"shape":"String"}, + "CustomJson":{"shape":"String"}, + "ConfigurationManager":{"shape":"StackConfigurationManager"}, + "ChefConfiguration":{"shape":"ChefConfiguration"}, + "UseCustomCookbooks":{"shape":"Boolean"}, + "UseOpsworksSecurityGroups":{"shape":"Boolean"}, + "CustomCookbooksSource":{"shape":"Source"}, + "DefaultSshKeyName":{"shape":"String"}, + "CreatedAt":{"shape":"DateTime"}, + "DefaultRootDeviceType":{"shape":"RootDeviceType"} + } + }, + "StackAttributes":{ + "type":"map", + "key":{"shape":"StackAttributesKeys"}, + "value":{"shape":"String"} + }, + "StackAttributesKeys":{ + "type":"string", + "enum":["Color"] + }, + "StackConfigurationManager":{ + "type":"structure", + "members":{ + "Name":{"shape":"String"}, + "Version":{"shape":"String"} + } + }, + "StackSummary":{ + "type":"structure", + "members":{ + "StackId":{"shape":"String"}, + "Name":{"shape":"String"}, + "Arn":{"shape":"String"}, + "LayersCount":{"shape":"Integer"}, + "AppsCount":{"shape":"Integer"}, + "InstancesCount":{"shape":"InstancesCount"} + } + }, + "Stacks":{ + "type":"list", + "member":{"shape":"Stack"} + }, + "StartInstanceRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "InstanceId":{"shape":"String"} + } + }, + "StartStackRequest":{ + "type":"structure", + "required":["StackId"], + "members":{ + "StackId":{"shape":"String"} + } + }, + "StopInstanceRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "InstanceId":{"shape":"String"} + } + }, + "StopStackRequest":{ + "type":"structure", + "required":["StackId"], + "members":{ + "StackId":{"shape":"String"} + } + }, + "String":{"type":"string"}, + "Strings":{ + "type":"list", + "member":{"shape":"String"} + }, + "Switch":{"type":"string"}, + "TemporaryCredential":{ + "type":"structure", + "members":{ + "Username":{"shape":"String"}, + "Password":{"shape":"String"}, + "ValidForInMinutes":{"shape":"Integer"}, + "InstanceId":{"shape":"String"} + } + }, + "TimeBasedAutoScalingConfiguration":{ + "type":"structure", + "members":{ + "InstanceId":{"shape":"String"}, + "AutoScalingSchedule":{"shape":"WeeklyAutoScalingSchedule"} + } + }, + "TimeBasedAutoScalingConfigurations":{ + "type":"list", + "member":{"shape":"TimeBasedAutoScalingConfiguration"} + }, + "UnassignInstanceRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "InstanceId":{"shape":"String"} + } + }, + "UnassignVolumeRequest":{ + "type":"structure", + "required":["VolumeId"], + "members":{ + "VolumeId":{"shape":"String"} + } + }, + "UpdateAppRequest":{ + "type":"structure", + "required":["AppId"], + "members":{ + "AppId":{"shape":"String"}, + "Name":{"shape":"String"}, + "Description":{"shape":"String"}, + "DataSources":{"shape":"DataSources"}, + "Type":{"shape":"AppType"}, + "AppSource":{"shape":"Source"}, + "Domains":{"shape":"Strings"}, + "EnableSsl":{"shape":"Boolean"}, + "SslConfiguration":{"shape":"SslConfiguration"}, + "Attributes":{"shape":"AppAttributes"}, + "Environment":{"shape":"EnvironmentVariables"} + } + }, + "UpdateElasticIpRequest":{ + "type":"structure", + "required":["ElasticIp"], + "members":{ + "ElasticIp":{"shape":"String"}, + "Name":{"shape":"String"} + } + }, + "UpdateInstanceRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "InstanceId":{"shape":"String"}, + "LayerIds":{"shape":"Strings"}, + "InstanceType":{"shape":"String"}, + "AutoScalingType":{"shape":"AutoScalingType"}, + "Hostname":{"shape":"String"}, + "Os":{"shape":"String"}, + "AmiId":{"shape":"String"}, + "SshKeyName":{"shape":"String"}, + "Architecture":{"shape":"Architecture"}, + "InstallUpdatesOnBoot":{"shape":"Boolean"}, + "EbsOptimized":{"shape":"Boolean"} + } + }, + "UpdateLayerRequest":{ + "type":"structure", + "required":["LayerId"], + "members":{ + "LayerId":{"shape":"String"}, + "Name":{"shape":"String"}, + "Shortname":{"shape":"String"}, + "Attributes":{"shape":"LayerAttributes"}, + "CustomInstanceProfileArn":{"shape":"String"}, + "CustomSecurityGroupIds":{"shape":"Strings"}, + "Packages":{"shape":"Strings"}, + "VolumeConfigurations":{"shape":"VolumeConfigurations"}, + "EnableAutoHealing":{"shape":"Boolean"}, + "AutoAssignElasticIps":{"shape":"Boolean"}, + "AutoAssignPublicIps":{"shape":"Boolean"}, + "CustomRecipes":{"shape":"Recipes"}, + "InstallUpdatesOnBoot":{"shape":"Boolean"}, + "UseEbsOptimizedInstances":{"shape":"Boolean"}, + "LifecycleEventConfiguration":{"shape":"LifecycleEventConfiguration"} + } + }, + "UpdateMyUserProfileRequest":{ + "type":"structure", + "members":{ + "SshPublicKey":{"shape":"String"} + } + }, + "UpdateRdsDbInstanceRequest":{ + "type":"structure", + "required":["RdsDbInstanceArn"], + "members":{ + "RdsDbInstanceArn":{"shape":"String"}, + "DbUser":{"shape":"String"}, + "DbPassword":{"shape":"String"} + } + }, + "UpdateStackRequest":{ + "type":"structure", + "required":["StackId"], + "members":{ + "StackId":{"shape":"String"}, + "Name":{"shape":"String"}, + "Attributes":{"shape":"StackAttributes"}, + "ServiceRoleArn":{"shape":"String"}, + "DefaultInstanceProfileArn":{"shape":"String"}, + "DefaultOs":{"shape":"String"}, + "HostnameTheme":{"shape":"String"}, + "DefaultAvailabilityZone":{"shape":"String"}, + "DefaultSubnetId":{"shape":"String"}, + "CustomJson":{"shape":"String"}, + "ConfigurationManager":{"shape":"StackConfigurationManager"}, + "ChefConfiguration":{"shape":"ChefConfiguration"}, + "UseCustomCookbooks":{"shape":"Boolean"}, + "CustomCookbooksSource":{"shape":"Source"}, + "DefaultSshKeyName":{"shape":"String"}, + "DefaultRootDeviceType":{"shape":"RootDeviceType"}, + "UseOpsworksSecurityGroups":{"shape":"Boolean"} + } + }, + "UpdateUserProfileRequest":{ + "type":"structure", + "required":["IamUserArn"], + "members":{ + "IamUserArn":{"shape":"String"}, + "SshUsername":{"shape":"String"}, + "SshPublicKey":{"shape":"String"}, + "AllowSelfManagement":{"shape":"Boolean"} + } + }, + "UpdateVolumeRequest":{ + "type":"structure", + "required":["VolumeId"], + "members":{ + "VolumeId":{"shape":"String"}, + "Name":{"shape":"String"}, + "MountPoint":{"shape":"String"} + } + }, + "UserProfile":{ + "type":"structure", + "members":{ + "IamUserArn":{"shape":"String"}, + "Name":{"shape":"String"}, + "SshUsername":{"shape":"String"}, + "SshPublicKey":{"shape":"String"}, + "AllowSelfManagement":{"shape":"Boolean"} + } + }, + "UserProfiles":{ + "type":"list", + "member":{"shape":"UserProfile"} + }, + "ValidForInMinutes":{ + "type":"integer", + "min":60, + "max":1440 + }, + "ValidationException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "exception":true + }, + "VirtualizationType":{ + "type":"string", + "enum":[ + "paravirtual", + "hvm" + ] + }, + "Volume":{ + "type":"structure", + "members":{ + "VolumeId":{"shape":"String"}, + "Ec2VolumeId":{"shape":"String"}, + "Name":{"shape":"String"}, + "RaidArrayId":{"shape":"String"}, + "InstanceId":{"shape":"String"}, + "Status":{"shape":"String"}, + "Size":{"shape":"Integer"}, + "Device":{"shape":"String"}, + "MountPoint":{"shape":"String"}, + "Region":{"shape":"String"}, + "AvailabilityZone":{"shape":"String"}, + "VolumeType":{"shape":"String"}, + "Iops":{"shape":"Integer"} + } + }, + "VolumeConfiguration":{ + "type":"structure", + "required":[ + "MountPoint", + "NumberOfDisks", + "Size" + ], + "members":{ + "MountPoint":{"shape":"String"}, + "RaidLevel":{"shape":"Integer"}, + "NumberOfDisks":{"shape":"Integer"}, + "Size":{"shape":"Integer"}, + "VolumeType":{"shape":"String"}, + "Iops":{"shape":"Integer"} + } + }, + "VolumeConfigurations":{ + "type":"list", + "member":{"shape":"VolumeConfiguration"} + }, + "VolumeType":{ + "type":"string", + "enum":[ + "gp2", + "io1", + "standard" + ] + }, + "Volumes":{ + "type":"list", + "member":{"shape":"Volume"} + }, + "WeeklyAutoScalingSchedule":{ + "type":"structure", + "members":{ + "Monday":{"shape":"DailyAutoScalingSchedule"}, + "Tuesday":{"shape":"DailyAutoScalingSchedule"}, + "Wednesday":{"shape":"DailyAutoScalingSchedule"}, + "Thursday":{"shape":"DailyAutoScalingSchedule"}, + "Friday":{"shape":"DailyAutoScalingSchedule"}, + "Saturday":{"shape":"DailyAutoScalingSchedule"}, + "Sunday":{"shape":"DailyAutoScalingSchedule"} + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/opsworks/2013-02-18/docs-2.json b/lib/aws-sdk/Aws/data/opsworks/2013-02-18/docs-2.json new file mode 100644 index 0000000..0a051fb --- /dev/null +++ b/lib/aws-sdk/Aws/data/opsworks/2013-02-18/docs-2.json @@ -0,0 +1,1592 @@ +{ + "version": "2.0", + "operations": { + "AssignInstance": "

Assign a registered instance to a layer.

  • You can assign registered on-premises instances to any layer type.
  • You can assign registered Amazon EC2 instances only to custom layers.
  • You cannot use this action with instances that were created with AWS OpsWorks.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "AssignVolume": "

Assigns one of the stack's registered Amazon EBS volumes to a specified instance. The volume must first be registered with the stack by calling RegisterVolume. After you register the volume, you must call UpdateVolume to specify a mount point before calling AssignVolume. For more information, see Resource Management.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "AssociateElasticIp": "

Associates one of the stack's registered Elastic IP addresses with a specified instance. The address must first be registered with the stack by calling RegisterElasticIp. For more information, see Resource Management.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "AttachElasticLoadBalancer": "

Attaches an Elastic Load Balancing load balancer to a specified layer. For more information, see Elastic Load Balancing.

You must create the Elastic Load Balancing instance separately, by using the Elastic Load Balancing console, API, or CLI. For more information, see Elastic Load Balancing Developer Guide.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "CloneStack": "

Creates a clone of a specified stack. For more information, see Clone a Stack.

Required Permissions: To use this action, an IAM user must have an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "CreateApp": "

Creates an app for a specified stack. For more information, see Creating Apps.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "CreateDeployment": "

Runs deployment or stack commands. For more information, see Deploying Apps and Run Stack Commands.

Required Permissions: To use this action, an IAM user must have a Deploy or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "CreateInstance": "

Creates an instance in a specified stack. For more information, see Adding an Instance to a Layer.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "CreateLayer": "

Creates a layer. For more information, see How to Create a Layer.

You should use CreateLayer for noncustom layer types such as PHP App Server only if the stack does not have an existing layer of that type. A stack can have at most one instance of each noncustom layer; if you attempt to create a second instance, CreateLayer fails. A stack can have an arbitrary number of custom layers, so you can call CreateLayer as many times as you like for that layer type.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "CreateStack": "

Creates a new stack. For more information, see Create a New Stack.

Required Permissions: To use this action, an IAM user must have an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "CreateUserProfile": "

Creates a new user profile.

Required Permissions: To use this action, an IAM user must have an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DeleteApp": "

Deletes a specified app.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DeleteInstance": "

Deletes a specified instance, which terminates the associated Amazon EC2 instance. You must stop an instance before you can delete it.

For more information, see Deleting Instances.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DeleteLayer": "

Deletes a specified layer. You must first stop and then delete all associated instances or unassign registered instances. For more information, see How to Delete a Layer.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DeleteStack": "

Deletes a specified stack. You must first delete all instances, layers, and apps or deregister registered instances. For more information, see Shut Down a Stack.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DeleteUserProfile": "

Deletes a user profile.

Required Permissions: To use this action, an IAM user must have an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DeregisterElasticIp": "

Deregisters a specified Elastic IP address. The address can then be registered by another stack. For more information, see Resource Management.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DeregisterInstance": "

Deregister a registered Amazon EC2 or on-premises instance. This action removes the instance from the stack and returns it to your control. This action can not be used with instances that were created with AWS OpsWorks.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DeregisterRdsDbInstance": "

Deregisters an Amazon RDS instance.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DeregisterVolume": "

Deregisters an Amazon EBS volume. The volume can then be registered by another stack. For more information, see Resource Management.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DescribeApps": "

Requests a description of a specified set of apps.

You must specify at least one of the parameters.

Required Permissions: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DescribeCommands": "

Describes the results of specified commands.

You must specify at least one of the parameters.

Required Permissions: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DescribeDeployments": "

Requests a description of a specified set of deployments.

You must specify at least one of the parameters.

Required Permissions: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DescribeElasticIps": "

Describes Elastic IP addresses.

You must specify at least one of the parameters.

Required Permissions: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DescribeElasticLoadBalancers": "

Describes a stack's Elastic Load Balancing instances.

You must specify at least one of the parameters.

Required Permissions: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DescribeInstances": "

Requests a description of a set of instances.

You must specify at least one of the parameters.

Required Permissions: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DescribeLayers": "

Requests a description of one or more layers in a specified stack.

You must specify at least one of the parameters.

Required Permissions: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DescribeLoadBasedAutoScaling": "

Describes load-based auto scaling configurations for specified layers.

You must specify at least one of the parameters.

Required Permissions: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DescribeMyUserProfile": "

Describes a user's SSH information.

Required Permissions: To use this action, an IAM user must have self-management enabled or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DescribePermissions": "

Describes the permissions for a specified stack.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DescribeRaidArrays": "

Describe an instance's RAID arrays.

You must specify at least one of the parameters.

Required Permissions: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DescribeRdsDbInstances": "

Describes Amazon RDS instances.

Required Permissions: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DescribeServiceErrors": "

Describes AWS OpsWorks service errors.

Required Permissions: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DescribeStackProvisioningParameters": "

Requests a description of a stack's provisioning parameters.

Required Permissions: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DescribeStackSummary": "

Describes the number of layers and apps in a specified stack, and the number of instances in each state, such as running_setup or online.

Required Permissions: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DescribeStacks": "

Requests a description of one or more stacks.

Required Permissions: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DescribeTimeBasedAutoScaling": "

Describes time-based auto scaling configurations for specified instances.

You must specify at least one of the parameters.

Required Permissions: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DescribeUserProfiles": "

Describe specified users.

Required Permissions: To use this action, an IAM user must have an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DescribeVolumes": "

Describes an instance's Amazon EBS volumes.

You must specify at least one of the parameters.

Required Permissions: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DetachElasticLoadBalancer": "

Detaches a specified Elastic Load Balancing instance from its layer.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "DisassociateElasticIp": "

Disassociates an Elastic IP address from its instance. The address remains registered with the stack. For more information, see Resource Management.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "GetHostnameSuggestion": "

Gets a generated host name for the specified layer, based on the current host name theme.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "GrantAccess": "This API can be used only with Windows stacks.

Grants RDP access to a Windows instance for a specified time period.

", + "RebootInstance": "

Reboots a specified instance. For more information, see Starting, Stopping, and Rebooting Instances.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "RegisterElasticIp": "

Registers an Elastic IP address with a specified stack. An address can be registered with only one stack at a time. If the address is already registered, you must first deregister it by calling DeregisterElasticIp. For more information, see Resource Management.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "RegisterInstance": "

Registers instances with a specified stack that were created outside of AWS OpsWorks.

We do not recommend using this action to register instances. The complete registration operation has two primary steps, installing the AWS OpsWorks agent on the instance and registering the instance with the stack. RegisterInstance handles only the second step. You should instead use the AWS CLI register command, which performs the entire registration operation.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "RegisterRdsDbInstance": "

Registers an Amazon RDS instance with a stack.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "RegisterVolume": "

Registers an Amazon EBS volume with a specified stack. A volume can be registered with only one stack at a time. If the volume is already registered, you must first deregister it by calling DeregisterVolume. For more information, see Resource Management.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "SetLoadBasedAutoScaling": "

Specify the load-based auto scaling configuration for a specified layer. For more information, see Managing Load with Time-based and Load-based Instances.

To use load-based auto scaling, you must create a set of load-based auto scaling instances. Load-based auto scaling operates only on the instances from that set, so you must ensure that you have created enough instances to handle the maximum anticipated load.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "SetPermission": "

Specifies a user's permissions. For more information, see Security and Permissions.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "SetTimeBasedAutoScaling": "

Specify the time-based auto scaling configuration for a specified instance. For more information, see Managing Load with Time-based and Load-based Instances.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "StartInstance": "

Starts a specified instance. For more information, see Starting, Stopping, and Rebooting Instances.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "StartStack": "

Starts a stack's instances.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "StopInstance": "

Stops a specified instance. When you stop a standard instance, the data disappears and must be reinstalled when you restart the instance. You can stop an Amazon EBS-backed instance without losing data. For more information, see Starting, Stopping, and Rebooting Instances.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "StopStack": "

Stops a specified stack.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "UnassignInstance": "

Unassigns a registered instance from all of it's layers. The instance remains in the stack as an unassigned instance and can be assigned to another layer, as needed. You cannot use this action with instances that were created with AWS OpsWorks.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "UnassignVolume": "

Unassigns an assigned Amazon EBS volume. The volume remains registered with the stack. For more information, see Resource Management.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "UpdateApp": "

Updates a specified app.

Required Permissions: To use this action, an IAM user must have a Deploy or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "UpdateElasticIp": "

Updates a registered Elastic IP address's name. For more information, see Resource Management.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "UpdateInstance": "

Updates a specified instance.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "UpdateLayer": "

Updates a specified layer.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "UpdateMyUserProfile": "

Updates a user's SSH public key.

Required Permissions: To use this action, an IAM user must have self-management enabled or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "UpdateRdsDbInstance": "

Updates an Amazon RDS instance.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "UpdateStack": "

Updates a specified stack.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "UpdateUserProfile": "

Updates a specified user profile.

Required Permissions: To use this action, an IAM user must have an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

", + "UpdateVolume": "

Updates an Amazon EBS volume's name or mount point. For more information, see Resource Management.

Required Permissions: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see Managing User Permissions.

" + }, + "service": "AWS OpsWorks

Welcome to the AWS OpsWorks API Reference. This guide provides descriptions, syntax, and usage examples about AWS OpsWorks actions and data types, including common parameters and error codes.

AWS OpsWorks is an application management service that provides an integrated experience for overseeing the complete application lifecycle. For information about this product, go to the AWS OpsWorks details page.

SDKs and CLI

The most common way to use the AWS OpsWorks API is by using the AWS Command Line Interface (CLI) or by using one of the AWS SDKs to implement applications in your preferred language. For more information, see:

Endpoints

AWS OpsWorks supports only one endpoint, opsworks.us-east-1.amazonaws.com (HTTPS), so you must connect to that endpoint. You can then use the API to direct AWS OpsWorks to create stacks in any AWS Region.

Chef Versions

When you call CreateStack, CloneStack, or UpdateStack we recommend you use the ConfigurationManager parameter to specify the Chef version, 0.9, 11.4, or 11.10. The default value is currently 11.10. For more information, see Chef Versions.

You can still specify Chef 0.9 for your stack, but new features are not available for Chef 0.9 stacks, and support is scheduled to end on July 24, 2014. We do not recommend using Chef 0.9 for new stacks, and we recommend migrating your existing Chef 0.9 stacks to Chef 11.10 as soon as possible.", + "shapes": { + "App": { + "base": "

A description of the app.

", + "refs": { + "Apps$member": null + } + }, + "AppAttributes": { + "base": null, + "refs": { + "App$Attributes": "

The stack attributes.

", + "CreateAppRequest$Attributes": "

One or more user-defined key/value pairs to be added to the stack attributes.

", + "UpdateAppRequest$Attributes": "

One or more user-defined key/value pairs to be added to the stack attributes.

" + } + }, + "AppAttributesKeys": { + "base": null, + "refs": { + "AppAttributes$key": null + } + }, + "AppType": { + "base": null, + "refs": { + "App$Type": "

The app type.

", + "CreateAppRequest$Type": "

The app type. Each supported type is associated with a particular layer. For example, PHP applications are associated with a PHP layer. AWS OpsWorks deploys an application to those instances that are members of the corresponding layer. If your app isn't one of the standard types, or you prefer to implement your own Deploy recipes, specify other.

", + "UpdateAppRequest$Type": "

The app type.

" + } + }, + "Apps": { + "base": null, + "refs": { + "DescribeAppsResult$Apps": "

An array of App objects that describe the specified apps.

" + } + }, + "Architecture": { + "base": null, + "refs": { + "CreateInstanceRequest$Architecture": "

The instance architecture. The default option is x86_64. Instance types do not necessarily support both architectures. For a list of the architectures that are supported by the different instance types, see Instance Families and Types.

", + "Instance$Architecture": "

The instance architecture, \"i386\" or \"x86_64\".

", + "UpdateInstanceRequest$Architecture": "

The instance architecture. Instance types do not necessarily support both architectures. For a list of the architectures that are supported by the different instance types, see Instance Families and Types.

" + } + }, + "AssignInstanceRequest": { + "base": null, + "refs": { + } + }, + "AssignVolumeRequest": { + "base": null, + "refs": { + } + }, + "AssociateElasticIpRequest": { + "base": null, + "refs": { + } + }, + "AttachElasticLoadBalancerRequest": { + "base": null, + "refs": { + } + }, + "AutoScalingThresholds": { + "base": "

Describes a load-based auto scaling upscaling or downscaling threshold configuration, which specifies when AWS OpsWorks starts or stops load-based instances.

", + "refs": { + "LoadBasedAutoScalingConfiguration$UpScaling": "

An AutoScalingThresholds object that describes the upscaling configuration, which defines how and when AWS OpsWorks increases the number of instances.

", + "LoadBasedAutoScalingConfiguration$DownScaling": "

An AutoScalingThresholds object that describes the downscaling configuration, which defines how and when AWS OpsWorks reduces the number of instances.

", + "SetLoadBasedAutoScalingRequest$UpScaling": "

An AutoScalingThresholds object with the upscaling threshold configuration. If the load exceeds these thresholds for a specified amount of time, AWS OpsWorks starts a specified number of instances.

", + "SetLoadBasedAutoScalingRequest$DownScaling": "

An AutoScalingThresholds object with the downscaling threshold configuration. If the load falls below these thresholds for a specified amount of time, AWS OpsWorks stops a specified number of instances.

" + } + }, + "AutoScalingType": { + "base": null, + "refs": { + "CreateInstanceRequest$AutoScalingType": "

For load-based or time-based instances, the type. Windows stacks can use only time-based instances.

", + "Instance$AutoScalingType": "

For load-based or time-based instances, the type.

", + "UpdateInstanceRequest$AutoScalingType": "

For load-based or time-based instances, the type. Windows stacks can use only time-based instances.

" + } + }, + "BlockDeviceMapping": { + "base": "

Describes a block device mapping. This data type maps directly to the Amazon EC2 BlockDeviceMapping data type.

", + "refs": { + "BlockDeviceMappings$member": null + } + }, + "BlockDeviceMappings": { + "base": null, + "refs": { + "CreateInstanceRequest$BlockDeviceMappings": "

An array of BlockDeviceMapping objects that specify the instance's block devices. For more information, see Block Device Mapping.

", + "Instance$BlockDeviceMappings": "

An array of BlockDeviceMapping objects that specify the instance's block device mappings.

" + } + }, + "Boolean": { + "base": null, + "refs": { + "App$EnableSsl": "

Whether to enable SSL for the app.

", + "ChefConfiguration$ManageBerkshelf": "

Whether to enable Berkshelf.

", + "CloneStackRequest$UseCustomCookbooks": "

Whether to use custom cookbooks.

", + "CloneStackRequest$UseOpsworksSecurityGroups": "

Whether to associate the AWS OpsWorks built-in security groups with the stack's layers.

AWS OpsWorks provides a standard set of built-in security groups, one for each layer, which are associated with layers by default. With UseOpsworksSecurityGroups you can instead provide your own custom security groups. UseOpsworksSecurityGroups has the following settings:

  • True - AWS OpsWorks automatically associates the appropriate built-in security group with each layer (default setting). You can associate additional security groups with a layer after you create it but you cannot delete the built-in security group.
  • False - AWS OpsWorks does not associate built-in security groups with layers. You must create appropriate EC2 security groups and associate a security group with each layer that you create. However, you can still manually associate a built-in security group with a layer on creation; custom security groups are required only for those layers that need custom settings.

For more information, see Create a New Stack.

", + "CloneStackRequest$ClonePermissions": "

Whether to clone the source stack's permissions.

", + "CreateAppRequest$EnableSsl": "

Whether to enable SSL for the app.

", + "CreateInstanceRequest$InstallUpdatesOnBoot": "

Whether to install operating system and package updates when the instance boots. The default value is true. To control when updates are installed, set this value to false. You must then update your instances manually by using CreateDeployment to run the update_dependencies stack command or manually running yum (Amazon Linux) or apt-get (Ubuntu) on the instances.

We strongly recommend using the default value of true to ensure that your instances have the latest security updates.

", + "CreateInstanceRequest$EbsOptimized": "

Whether to create an Amazon EBS-optimized instance.

", + "CreateLayerRequest$EnableAutoHealing": "

Whether to disable auto healing for the layer.

", + "CreateLayerRequest$AutoAssignElasticIps": "

Whether to automatically assign an Elastic IP address to the layer's instances. For more information, see How to Edit a Layer.

", + "CreateLayerRequest$AutoAssignPublicIps": "

For stacks that are running in a VPC, whether to automatically assign a public IP address to the layer's instances. For more information, see How to Edit a Layer.

", + "CreateLayerRequest$InstallUpdatesOnBoot": "

Whether to install operating system and package updates when the instance boots. The default value is true. To control when updates are installed, set this value to false. You must then update your instances manually by using CreateDeployment to run the update_dependencies stack command or manually running yum (Amazon Linux) or apt-get (Ubuntu) on the instances.

We strongly recommend using the default value of true, to ensure that your instances have the latest security updates.

", + "CreateLayerRequest$UseEbsOptimizedInstances": "

Whether to use Amazon EBS-optimized instances.

", + "CreateStackRequest$UseCustomCookbooks": "

Whether the stack uses custom cookbooks.

", + "CreateStackRequest$UseOpsworksSecurityGroups": "

Whether to associate the AWS OpsWorks built-in security groups with the stack's layers.

AWS OpsWorks provides a standard set of built-in security groups, one for each layer, which are associated with layers by default. With UseOpsworksSecurityGroups you can instead provide your own custom security groups. UseOpsworksSecurityGroups has the following settings:

  • True - AWS OpsWorks automatically associates the appropriate built-in security group with each layer (default setting). You can associate additional security groups with a layer after you create it but you cannot delete the built-in security group.
  • False - AWS OpsWorks does not associate built-in security groups with layers. You must create appropriate EC2 security groups and associate a security group with each layer that you create. However, you can still manually associate a built-in security group with a layer on creation; custom security groups are required only for those layers that need custom settings.

For more information, see Create a New Stack.

", + "CreateUserProfileRequest$AllowSelfManagement": "

Whether users can specify their own SSH public key through the My Settings page. For more information, see Setting an IAM User's Public SSH Key.

", + "DeleteInstanceRequest$DeleteElasticIp": "

Whether to delete the instance Elastic IP address.

", + "DeleteInstanceRequest$DeleteVolumes": "

Whether to delete the instance's Amazon EBS volumes.

", + "EbsBlockDevice$DeleteOnTermination": "

Whether the volume is deleted on instance termination.

", + "EnvironmentVariable$Secure": "

(Optional) Whether the variable's value will be returned by the DescribeApps action. To conceal an environment variable's value, set Secure to true. DescribeApps then returns *****FILTERED***** instead of the actual value. The default value for Secure is false.

", + "Instance$InstallUpdatesOnBoot": "

Whether to install operating system and package updates when the instance boots. The default value is true. If this value is set to false, you must then update your instances manually by using CreateDeployment to run the update_dependencies stack command or manually running yum (Amazon Linux) or apt-get (Ubuntu) on the instances.

We strongly recommend using the default value of true, to ensure that your instances have the latest security updates.

", + "Instance$EbsOptimized": "

Whether this is an Amazon EBS-optimized instance.

", + "Layer$EnableAutoHealing": "

Whether auto healing is disabled for the layer.

", + "Layer$AutoAssignElasticIps": "

Whether to automatically assign an Elastic IP address to the layer's instances. For more information, see How to Edit a Layer.

", + "Layer$AutoAssignPublicIps": "

For stacks that are running in a VPC, whether to automatically assign a public IP address to the layer's instances. For more information, see How to Edit a Layer.

", + "Layer$InstallUpdatesOnBoot": "

Whether to install operating system and package updates when the instance boots. The default value is true. If this value is set to false, you must then update your instances manually by using CreateDeployment to run the update_dependencies stack command or manually running yum (Amazon Linux) or apt-get (Ubuntu) on the instances.

We strongly recommend using the default value of true, to ensure that your instances have the latest security updates.

", + "Layer$UseEbsOptimizedInstances": "

Whether the layer uses Amazon EBS-optimized instances.

", + "LoadBasedAutoScalingConfiguration$Enable": "

Whether load-based auto scaling is enabled for the layer.

", + "Permission$AllowSsh": "

Whether the user can use SSH.

", + "Permission$AllowSudo": "

Whether the user can use sudo.

", + "RdsDbInstance$MissingOnRds": "

Set to true if AWS OpsWorks was unable to discover the Amazon RDS instance. AWS OpsWorks attempts to discover the instance only once. If this value is set to true, you must deregister the instance and then register it again.

", + "SetLoadBasedAutoScalingRequest$Enable": "

Enables load-based auto scaling for the layer.

", + "SetPermissionRequest$AllowSsh": "

The user is allowed to use SSH to communicate with the instance.

", + "SetPermissionRequest$AllowSudo": "

The user is allowed to use sudo to elevate privileges.

", + "ShutdownEventConfiguration$DelayUntilElbConnectionsDrained": "

Whether to enable Elastic Load Balancing connection draining. For more information, see Connection Draining

", + "Stack$UseCustomCookbooks": "

Whether the stack uses custom cookbooks.

", + "Stack$UseOpsworksSecurityGroups": "

Whether the stack automatically associates the AWS OpsWorks built-in security groups with the stack's layers.

", + "UpdateAppRequest$EnableSsl": "

Whether SSL is enabled for the app.

", + "UpdateInstanceRequest$InstallUpdatesOnBoot": "

Whether to install operating system and package updates when the instance boots. The default value is true. To control when updates are installed, set this value to false. You must then update your instances manually by using CreateDeployment to run the update_dependencies stack command or manually running yum (Amazon Linux) or apt-get (Ubuntu) on the instances.

We strongly recommend using the default value of true, to ensure that your instances have the latest security updates.

", + "UpdateInstanceRequest$EbsOptimized": "

Whether this is an Amazon EBS-optimized instance.

", + "UpdateLayerRequest$EnableAutoHealing": "

Whether to disable auto healing for the layer.

", + "UpdateLayerRequest$AutoAssignElasticIps": "

Whether to automatically assign an Elastic IP address to the layer's instances. For more information, see How to Edit a Layer.

", + "UpdateLayerRequest$AutoAssignPublicIps": "

For stacks that are running in a VPC, whether to automatically assign a public IP address to the layer's instances. For more information, see How to Edit a Layer.

", + "UpdateLayerRequest$InstallUpdatesOnBoot": "

Whether to install operating system and package updates when the instance boots. The default value is true. To control when updates are installed, set this value to false. You must then update your instances manually by using CreateDeployment to run the update_dependencies stack command or manually running yum (Amazon Linux) or apt-get (Ubuntu) on the instances.

We strongly recommend using the default value of true, to ensure that your instances have the latest security updates.

", + "UpdateLayerRequest$UseEbsOptimizedInstances": "

Whether to use Amazon EBS-optimized instances.

", + "UpdateStackRequest$UseCustomCookbooks": "

Whether the stack uses custom cookbooks.

", + "UpdateStackRequest$UseOpsworksSecurityGroups": "

Whether to associate the AWS OpsWorks built-in security groups with the stack's layers.

AWS OpsWorks provides a standard set of built-in security groups, one for each layer, which are associated with layers by default. UseOpsworksSecurityGroups allows you to instead provide your own custom security groups. UseOpsworksSecurityGroups has the following settings:

  • True - AWS OpsWorks automatically associates the appropriate built-in security group with each layer (default setting). You can associate additional security groups with a layer after you create it but you cannot delete the built-in security group.
  • False - AWS OpsWorks does not associate built-in security groups with layers. You must create appropriate EC2 security groups and associate a security group with each layer that you create. However, you can still manually associate a built-in security group with a layer on creation; custom security groups are required only for those layers that need custom settings.

For more information, see Create a New Stack.

", + "UpdateUserProfileRequest$AllowSelfManagement": "

Whether users can specify their own SSH public key through the My Settings page. For more information, see Managing User Permissions.

", + "UserProfile$AllowSelfManagement": "

Whether users can specify their own SSH public key through the My Settings page. For more information, see Managing User Permissions.

" + } + }, + "ChefConfiguration": { + "base": "

Describes the Chef configuration.

", + "refs": { + "CloneStackRequest$ChefConfiguration": "

A ChefConfiguration object that specifies whether to enable Berkshelf and the Berkshelf version on Chef 11.10 stacks. For more information, see Create a New Stack.

", + "CreateStackRequest$ChefConfiguration": "

A ChefConfiguration object that specifies whether to enable Berkshelf and the Berkshelf version on Chef 11.10 stacks. For more information, see Create a New Stack.

", + "Stack$ChefConfiguration": "

A ChefConfiguration object that specifies whether to enable Berkshelf and the Berkshelf version. For more information, see Create a New Stack.

", + "UpdateStackRequest$ChefConfiguration": "

A ChefConfiguration object that specifies whether to enable Berkshelf and the Berkshelf version on Chef 11.10 stacks. For more information, see Create a New Stack.

" + } + }, + "CloneStackRequest": { + "base": null, + "refs": { + } + }, + "CloneStackResult": { + "base": "

Contains the response to a CloneStack request.

", + "refs": { + } + }, + "Command": { + "base": "

Describes a command.

", + "refs": { + "Commands$member": null + } + }, + "Commands": { + "base": null, + "refs": { + "DescribeCommandsResult$Commands": "

An array of Command objects that describe each of the specified commands.

" + } + }, + "CreateAppRequest": { + "base": null, + "refs": { + } + }, + "CreateAppResult": { + "base": "

Contains the response to a CreateApp request.

", + "refs": { + } + }, + "CreateDeploymentRequest": { + "base": null, + "refs": { + } + }, + "CreateDeploymentResult": { + "base": "

Contains the response to a CreateDeployment request.

", + "refs": { + } + }, + "CreateInstanceRequest": { + "base": null, + "refs": { + } + }, + "CreateInstanceResult": { + "base": "

Contains the response to a CreateInstance request.

", + "refs": { + } + }, + "CreateLayerRequest": { + "base": null, + "refs": { + } + }, + "CreateLayerResult": { + "base": "

Contains the response to a CreateLayer request.

", + "refs": { + } + }, + "CreateStackRequest": { + "base": null, + "refs": { + } + }, + "CreateStackResult": { + "base": "

Contains the response to a CreateStack request.

", + "refs": { + } + }, + "CreateUserProfileRequest": { + "base": null, + "refs": { + } + }, + "CreateUserProfileResult": { + "base": "

Contains the response to a CreateUserProfile request.

", + "refs": { + } + }, + "DailyAutoScalingSchedule": { + "base": null, + "refs": { + "WeeklyAutoScalingSchedule$Monday": "

The schedule for Monday.

", + "WeeklyAutoScalingSchedule$Tuesday": "

The schedule for Tuesday.

", + "WeeklyAutoScalingSchedule$Wednesday": "

The schedule for Wednesday.

", + "WeeklyAutoScalingSchedule$Thursday": "

The schedule for Thursday.

", + "WeeklyAutoScalingSchedule$Friday": "

The schedule for Friday.

", + "WeeklyAutoScalingSchedule$Saturday": "

The schedule for Saturday.

", + "WeeklyAutoScalingSchedule$Sunday": "

The schedule for Sunday.

" + } + }, + "DataSource": { + "base": "

Describes an app's data source.

", + "refs": { + "DataSources$member": null + } + }, + "DataSources": { + "base": null, + "refs": { + "App$DataSources": "

The app's data sources.

", + "CreateAppRequest$DataSources": "

The app's data source.

", + "UpdateAppRequest$DataSources": "

The app's data sources.

" + } + }, + "DateTime": { + "base": null, + "refs": { + "Command$CreatedAt": "

Date and time when the command was run.

", + "Command$AcknowledgedAt": "

Date and time when the command was acknowledged.

", + "Command$CompletedAt": "

Date when the command completed.

", + "Deployment$CreatedAt": "

Date when the deployment was created.

", + "Deployment$CompletedAt": "

Date when the deployment completed.

", + "Instance$CreatedAt": "

The time that the instance was created.

", + "Layer$CreatedAt": "

Date when the layer was created.

", + "RaidArray$CreatedAt": "

When the RAID array was created.

", + "ServiceError$CreatedAt": "

When the error occurred.

", + "Stack$CreatedAt": "

Date when the stack was created.

" + } + }, + "DeleteAppRequest": { + "base": null, + "refs": { + } + }, + "DeleteInstanceRequest": { + "base": null, + "refs": { + } + }, + "DeleteLayerRequest": { + "base": null, + "refs": { + } + }, + "DeleteStackRequest": { + "base": null, + "refs": { + } + }, + "DeleteUserProfileRequest": { + "base": null, + "refs": { + } + }, + "Deployment": { + "base": "

Describes a deployment of a stack or app.

", + "refs": { + "Deployments$member": null + } + }, + "DeploymentCommand": { + "base": "

Used to specify a stack or deployment command.

", + "refs": { + "CreateDeploymentRequest$Command": "

A DeploymentCommand object that specifies the deployment command and any associated arguments.

", + "Deployment$Command": null + } + }, + "DeploymentCommandArgs": { + "base": null, + "refs": { + "DeploymentCommand$Args": "

The arguments of those commands that take arguments. It should be set to a JSON object with the following format:

{\"arg_name1\" : [\"value1\", \"value2\", ...], \"arg_name2\" : [\"value1\", \"value2\", ...], ...}

The update_dependencies command takes two arguments:

  • upgrade_os_to - Specifies the desired Amazon Linux version for instances whose OS you want to upgrade, such as Amazon Linux 2014.09. You must also set the allow_reboot argument to true.
  • allow_reboot - Specifies whether to allow AWS OpsWorks to reboot the instances if necessary, after installing the updates. This argument can be set to either true or false. The default value is false.

For example, to upgrade an instance to Amazon Linux 2014.09, set Args to the following.

{ \"upgrade_os_to\":[\"Amazon Linux 2014.09\"], \"allow_reboot\":[\"true\"] } " + } + }, + "DeploymentCommandName": { + "base": null, + "refs": { + "DeploymentCommand$Name": "

Specifies the operation. You can specify only one command.

For stacks, the following commands are available:

  • execute_recipes: Execute one or more recipes. To specify the recipes, set an Args parameter named recipes to the list of recipes to be executed. For example, to execute phpapp::appsetup, set Args to {\"recipes\":[\"phpapp::appsetup\"]}.
  • install_dependencies: Install the stack's dependencies.
  • update_custom_cookbooks: Update the stack's custom cookbooks.
  • update_dependencies: Update the stack's dependencies.
The update_dependencies and install_dependencies commands are supported only for Linux instances. You can run the commands successfully on Windows instances, but they do nothing.

For apps, the following commands are available:

  • deploy: Deploy an app. Ruby on Rails apps have an optional Args parameter named migrate. Set Args to {\"migrate\":[\"true\"]} to migrate the database. The default setting is {\"migrate\":[\"false\"]}.
  • rollback Roll the app back to the previous version. When you update an app, AWS OpsWorks stores the previous version, up to a maximum of five versions. You can use this command to roll an app back as many as four versions.
  • start: Start the app's web or application server.
  • stop: Stop the app's web or application server.
  • restart: Restart the app's web or application server.
  • undeploy: Undeploy the app.
" + } + }, + "Deployments": { + "base": null, + "refs": { + "DescribeDeploymentsResult$Deployments": "

An array of Deployment objects that describe the deployments.

" + } + }, + "DeregisterElasticIpRequest": { + "base": null, + "refs": { + } + }, + "DeregisterInstanceRequest": { + "base": null, + "refs": { + } + }, + "DeregisterRdsDbInstanceRequest": { + "base": null, + "refs": { + } + }, + "DeregisterVolumeRequest": { + "base": null, + "refs": { + } + }, + "DescribeAppsRequest": { + "base": null, + "refs": { + } + }, + "DescribeAppsResult": { + "base": "

Contains the response to a DescribeApps request.

", + "refs": { + } + }, + "DescribeCommandsRequest": { + "base": null, + "refs": { + } + }, + "DescribeCommandsResult": { + "base": "

Contains the response to a DescribeCommands request.

", + "refs": { + } + }, + "DescribeDeploymentsRequest": { + "base": null, + "refs": { + } + }, + "DescribeDeploymentsResult": { + "base": "

Contains the response to a DescribeDeployments request.

", + "refs": { + } + }, + "DescribeElasticIpsRequest": { + "base": null, + "refs": { + } + }, + "DescribeElasticIpsResult": { + "base": "

Contains the response to a DescribeElasticIps request.

", + "refs": { + } + }, + "DescribeElasticLoadBalancersRequest": { + "base": null, + "refs": { + } + }, + "DescribeElasticLoadBalancersResult": { + "base": "

Contains the response to a DescribeElasticLoadBalancers request.

", + "refs": { + } + }, + "DescribeInstancesRequest": { + "base": null, + "refs": { + } + }, + "DescribeInstancesResult": { + "base": "

Contains the response to a DescribeInstances request.

", + "refs": { + } + }, + "DescribeLayersRequest": { + "base": null, + "refs": { + } + }, + "DescribeLayersResult": { + "base": "

Contains the response to a DescribeLayers request.

", + "refs": { + } + }, + "DescribeLoadBasedAutoScalingRequest": { + "base": null, + "refs": { + } + }, + "DescribeLoadBasedAutoScalingResult": { + "base": "

Contains the response to a DescribeLoadBasedAutoScaling request.

", + "refs": { + } + }, + "DescribeMyUserProfileResult": { + "base": "

Contains the response to a DescribeMyUserProfile request.

", + "refs": { + } + }, + "DescribePermissionsRequest": { + "base": null, + "refs": { + } + }, + "DescribePermissionsResult": { + "base": "

Contains the response to a DescribePermissions request.

", + "refs": { + } + }, + "DescribeRaidArraysRequest": { + "base": null, + "refs": { + } + }, + "DescribeRaidArraysResult": { + "base": "

Contains the response to a DescribeRaidArrays request.

", + "refs": { + } + }, + "DescribeRdsDbInstancesRequest": { + "base": null, + "refs": { + } + }, + "DescribeRdsDbInstancesResult": { + "base": "

Contains the response to a DescribeRdsDbInstances request.

", + "refs": { + } + }, + "DescribeServiceErrorsRequest": { + "base": null, + "refs": { + } + }, + "DescribeServiceErrorsResult": { + "base": "

Contains the response to a DescribeServiceErrors request.

", + "refs": { + } + }, + "DescribeStackProvisioningParametersRequest": { + "base": null, + "refs": { + } + }, + "DescribeStackProvisioningParametersResult": { + "base": "

Contains the response to a DescribeStackProvisioningParameters request.

", + "refs": { + } + }, + "DescribeStackSummaryRequest": { + "base": null, + "refs": { + } + }, + "DescribeStackSummaryResult": { + "base": "

Contains the response to a DescribeStackSummary request.

", + "refs": { + } + }, + "DescribeStacksRequest": { + "base": null, + "refs": { + } + }, + "DescribeStacksResult": { + "base": "

Contains the response to a DescribeStacks request.

", + "refs": { + } + }, + "DescribeTimeBasedAutoScalingRequest": { + "base": null, + "refs": { + } + }, + "DescribeTimeBasedAutoScalingResult": { + "base": "

Contains the response to a DescribeTimeBasedAutoScaling request.

", + "refs": { + } + }, + "DescribeUserProfilesRequest": { + "base": null, + "refs": { + } + }, + "DescribeUserProfilesResult": { + "base": "

Contains the response to a DescribeUserProfiles request.

", + "refs": { + } + }, + "DescribeVolumesRequest": { + "base": null, + "refs": { + } + }, + "DescribeVolumesResult": { + "base": "

Contains the response to a DescribeVolumes request.

", + "refs": { + } + }, + "DetachElasticLoadBalancerRequest": { + "base": null, + "refs": { + } + }, + "DisassociateElasticIpRequest": { + "base": null, + "refs": { + } + }, + "Double": { + "base": null, + "refs": { + "AutoScalingThresholds$CpuThreshold": "

The CPU utilization threshold, as a percent of the available CPU.

", + "AutoScalingThresholds$MemoryThreshold": "

The memory utilization threshold, as a percent of the available memory.

", + "AutoScalingThresholds$LoadThreshold": "

The load threshold. For more information about how load is computed, see Load (computing).

" + } + }, + "EbsBlockDevice": { + "base": "

Describes an Amazon EBS volume. This data type maps directly to the Amazon EC2 EbsBlockDevice data type.

", + "refs": { + "BlockDeviceMapping$Ebs": "

An EBSBlockDevice that defines how to configure an Amazon EBS volume when the instance is launched.

" + } + }, + "ElasticIp": { + "base": "

Describes an Elastic IP address.

", + "refs": { + "ElasticIps$member": null + } + }, + "ElasticIps": { + "base": null, + "refs": { + "DescribeElasticIpsResult$ElasticIps": "

An ElasticIps object that describes the specified Elastic IP addresses.

" + } + }, + "ElasticLoadBalancer": { + "base": "

Describes an Elastic Load Balancing instance.

", + "refs": { + "ElasticLoadBalancers$member": null + } + }, + "ElasticLoadBalancers": { + "base": null, + "refs": { + "DescribeElasticLoadBalancersResult$ElasticLoadBalancers": "

A list of ElasticLoadBalancer objects that describe the specified Elastic Load Balancing instances.

" + } + }, + "EnvironmentVariable": { + "base": "

Represents an app's environment variable.

", + "refs": { + "EnvironmentVariables$member": null + } + }, + "EnvironmentVariables": { + "base": null, + "refs": { + "App$Environment": "

An array of EnvironmentVariable objects that specify environment variables to be associated with the app. After you deploy the app, these variables are defined on the associated app server instances. For more information, see Environment Variables.

There is no specific limit on the number of environment variables. However, the size of the associated data structure - which includes the variables' names, values, and protected flag values - cannot exceed 10 KB (10240 Bytes). This limit should accommodate most if not all use cases, but if you do exceed it, you will cause an exception (API) with an \"Environment: is too large (maximum is 10KB)\" message. ", + "CreateAppRequest$Environment": "

An array of EnvironmentVariable objects that specify environment variables to be associated with the app. After you deploy the app, these variables are defined on the associated app server instance. For more information, see Environment Variables.

There is no specific limit on the number of environment variables. However, the size of the associated data structure - which includes the variables' names, values, and protected flag values - cannot exceed 10 KB (10240 Bytes). This limit should accommodate most if not all use cases. Exceeding it will cause an exception with the message, \"Environment: is too large (maximum is 10KB).\"

This parameter is supported only by Chef 11.10 stacks. If you have specified one or more environment variables, you cannot modify the stack's Chef version.", + "UpdateAppRequest$Environment": "

An array of EnvironmentVariable objects that specify environment variables to be associated with the app. After you deploy the app, these variables are defined on the associated app server instances.For more information, see Environment Variables.

There is no specific limit on the number of environment variables. However, the size of the associated data structure - which includes the variables' names, values, and protected flag values - cannot exceed 10 KB (10240 Bytes). This limit should accommodate most if not all use cases. Exceeding it will cause an exception with the message, \"Environment: is too large (maximum is 10KB).\"

This parameter is supported only by Chef 11.10 stacks. If you have specified one or more environment variables, you cannot modify the stack's Chef version. " + } + }, + "GetHostnameSuggestionRequest": { + "base": null, + "refs": { + } + }, + "GetHostnameSuggestionResult": { + "base": "

Contains the response to a GetHostnameSuggestion request.

", + "refs": { + } + }, + "GrantAccessRequest": { + "base": null, + "refs": { + } + }, + "GrantAccessResult": { + "base": "

Contains the response to a GrantAccess request.

", + "refs": { + } + }, + "Hour": { + "base": null, + "refs": { + "DailyAutoScalingSchedule$key": null + } + }, + "Instance": { + "base": "

Describes an instance.

", + "refs": { + "Instances$member": null + } + }, + "InstanceIdentity": { + "base": "

Contains a description of an Amazon EC2 instance from the Amazon EC2 metadata service. For more information, see Instance Metadata and User Data.

", + "refs": { + "RegisterInstanceRequest$InstanceIdentity": "

An InstanceIdentity object that contains the instance's identity.

" + } + }, + "Instances": { + "base": null, + "refs": { + "DescribeInstancesResult$Instances": "

An array of Instance objects that describe the instances.

" + } + }, + "InstancesCount": { + "base": "

Describes how many instances a stack has for each status.

", + "refs": { + "StackSummary$InstancesCount": "

An InstancesCount object with the number of instances in each status.

" + } + }, + "Integer": { + "base": null, + "refs": { + "AutoScalingThresholds$InstanceCount": "

The number of instances to add or remove when the load exceeds a threshold.

", + "Command$ExitCode": "

The command exit code.

", + "Deployment$Duration": "

The deployment duration.

", + "EbsBlockDevice$Iops": "

The number of I/O operations per second (IOPS) that the volume supports. For more information, see EbsBlockDevice.

", + "EbsBlockDevice$VolumeSize": "

The volume size, in GiB. For more information, see EbsBlockDevice.

", + "InstancesCount$Assigning": "

The number of instances in the Assigning state.

", + "InstancesCount$Booting": "

The number of instances with booting status.

", + "InstancesCount$ConnectionLost": "

The number of instances with connection_lost status.

", + "InstancesCount$Deregistering": "

The number of instances in the Deregistering state.

", + "InstancesCount$Online": "

The number of instances with online status.

", + "InstancesCount$Pending": "

The number of instances with pending status.

", + "InstancesCount$Rebooting": "

The number of instances with rebooting status.

", + "InstancesCount$Registered": "

The number of instances in the Registered state.

", + "InstancesCount$Registering": "

The number of instances in the Registering state.

", + "InstancesCount$Requested": "

The number of instances with requested status.

", + "InstancesCount$RunningSetup": "

The number of instances with running_setup status.

", + "InstancesCount$SetupFailed": "

The number of instances with setup_failed status.

", + "InstancesCount$ShuttingDown": "

The number of instances with shutting_down status.

", + "InstancesCount$StartFailed": "

The number of instances with start_failed status.

", + "InstancesCount$Stopped": "

The number of instances with stopped status.

", + "InstancesCount$Stopping": "

The number of instances with stopping status.

", + "InstancesCount$Terminated": "

The number of instances with terminated status.

", + "InstancesCount$Terminating": "

The number of instances with terminating status.

", + "InstancesCount$Unassigning": "

The number of instances in the Unassigning state.

", + "RaidArray$RaidLevel": "

The RAID level.

", + "RaidArray$NumberOfDisks": "

The number of disks in the array.

", + "RaidArray$Size": "

The array's size.

", + "RaidArray$Iops": "

For PIOPS volumes, the IOPS per disk.

", + "ShutdownEventConfiguration$ExecutionTimeout": "

The time, in seconds, that AWS OpsWorks will wait after triggering a Shutdown event before shutting down an instance.

", + "StackSummary$LayersCount": "

The number of layers.

", + "StackSummary$AppsCount": "

The number of apps.

", + "TemporaryCredential$ValidForInMinutes": "

The length of time (in minutes) that the grant is valid. When the grant expires, at the end of this period, the user will no longer be able to use the credentials to log in. If they are logged in at the time, they will be automatically logged out.

", + "Volume$Size": "

The volume size.

", + "Volume$Iops": "

For PIOPS volumes, the IOPS per disk.

", + "VolumeConfiguration$RaidLevel": "

The volume RAID level.

", + "VolumeConfiguration$NumberOfDisks": "

The number of disks in the volume.

", + "VolumeConfiguration$Size": "

The volume size.

", + "VolumeConfiguration$Iops": "

For PIOPS volumes, the IOPS per disk.

" + } + }, + "Layer": { + "base": "

Describes a layer.

", + "refs": { + "Layers$member": null + } + }, + "LayerAttributes": { + "base": null, + "refs": { + "CreateLayerRequest$Attributes": "

One or more user-defined key/value pairs to be added to the stack attributes.

", + "Layer$Attributes": "

The layer attributes.

For the HaproxyStatsPassword, MysqlRootPassword, and GangliaPassword attributes, AWS OpsWorks returns *****FILTERED***** instead of the actual value", + "UpdateLayerRequest$Attributes": "

One or more user-defined key/value pairs to be added to the stack attributes.

" + } + }, + "LayerAttributesKeys": { + "base": null, + "refs": { + "LayerAttributes$key": null + } + }, + "LayerType": { + "base": null, + "refs": { + "CreateLayerRequest$Type": "

The layer type. A stack cannot have more than one built-in layer of the same type. It can have any number of custom layers.

", + "Layer$Type": "

The layer type.

" + } + }, + "Layers": { + "base": null, + "refs": { + "DescribeLayersResult$Layers": "

An array of Layer objects that describe the layers.

" + } + }, + "LifecycleEventConfiguration": { + "base": "

Specifies the lifecycle event configuration

", + "refs": { + "CreateLayerRequest$LifecycleEventConfiguration": "

A LifeCycleEventConfiguration object that you can use to configure the Shutdown event to specify an execution timeout and enable or disable Elastic Load Balancer connection draining.

", + "Layer$LifecycleEventConfiguration": "

A LifeCycleEventConfiguration object that specifies the Shutdown event configuration.

", + "UpdateLayerRequest$LifecycleEventConfiguration": "

" + } + }, + "LoadBasedAutoScalingConfiguration": { + "base": "

Describes a layer's load-based auto scaling configuration.

", + "refs": { + "LoadBasedAutoScalingConfigurations$member": null + } + }, + "LoadBasedAutoScalingConfigurations": { + "base": null, + "refs": { + "DescribeLoadBasedAutoScalingResult$LoadBasedAutoScalingConfigurations": "

An array of LoadBasedAutoScalingConfiguration objects that describe each layer's configuration.

" + } + }, + "Minute": { + "base": null, + "refs": { + "AutoScalingThresholds$ThresholdsWaitTime": "

The amount of time, in minutes, that the load must exceed a threshold before more instances are added or removed.

", + "AutoScalingThresholds$IgnoreMetricsTime": "

The amount of time (in minutes) after a scaling event occurs that AWS OpsWorks should ignore metrics and suppress additional scaling events. For example, AWS OpsWorks adds new instances following an upscaling event but the instances won't start reducing the load until they have been booted and configured. There is no point in raising additional scaling events during that operation, which typically takes several minutes. IgnoreMetricsTime allows you to direct AWS OpsWorks to suppress scaling events long enough to get the new instances online.

" + } + }, + "Parameters": { + "base": null, + "refs": { + "DescribeStackProvisioningParametersResult$Parameters": "

An embedded object that contains the provisioning parameters.

" + } + }, + "Permission": { + "base": "

Describes stack or user permissions.

", + "refs": { + "Permissions$member": null + } + }, + "Permissions": { + "base": null, + "refs": { + "DescribePermissionsResult$Permissions": "

An array of Permission objects that describe the stack permissions.

  • If the request object contains only a stack ID, the array contains a Permission object with permissions for each of the stack IAM ARNs.
  • If the request object contains only an IAM ARN, the array contains a Permission object with permissions for each of the user's stack IDs.
  • If the request contains a stack ID and an IAM ARN, the array contains a single Permission object with permissions for the specified stack and IAM ARN.
" + } + }, + "RaidArray": { + "base": "

Describes an instance's RAID array.

", + "refs": { + "RaidArrays$member": null + } + }, + "RaidArrays": { + "base": null, + "refs": { + "DescribeRaidArraysResult$RaidArrays": "

A RaidArrays object that describes the specified RAID arrays.

" + } + }, + "RdsDbInstance": { + "base": "

Describes an Amazon RDS instance.

", + "refs": { + "RdsDbInstances$member": null + } + }, + "RdsDbInstances": { + "base": null, + "refs": { + "DescribeRdsDbInstancesResult$RdsDbInstances": "

An a array of RdsDbInstance objects that describe the instances.

" + } + }, + "RebootInstanceRequest": { + "base": null, + "refs": { + } + }, + "Recipes": { + "base": "

AWS OpsWorks supports five lifecycle events, setup, configuration, deploy, undeploy, and shutdown. For each layer, AWS OpsWorks runs a set of standard recipes for each event. In addition, you can provide custom recipes for any or all layers and events. AWS OpsWorks runs custom event recipes after the standard recipes. LayerCustomRecipes specifies the custom recipes for a particular layer to be run in response to each of the five events.

To specify a recipe, use the cookbook's directory name in the repository followed by two colons and the recipe name, which is the recipe's file name without the .rb extension. For example: phpapp2::dbsetup specifies the dbsetup.rb recipe in the repository's phpapp2 folder.

", + "refs": { + "CreateLayerRequest$CustomRecipes": "

A LayerCustomRecipes object that specifies the layer custom recipes.

", + "Layer$DefaultRecipes": null, + "Layer$CustomRecipes": "

A LayerCustomRecipes object that specifies the layer's custom recipes.

", + "UpdateLayerRequest$CustomRecipes": "

A LayerCustomRecipes object that specifies the layer's custom recipes.

" + } + }, + "RegisterElasticIpRequest": { + "base": null, + "refs": { + } + }, + "RegisterElasticIpResult": { + "base": "

Contains the response to a RegisterElasticIp request.

", + "refs": { + } + }, + "RegisterInstanceRequest": { + "base": null, + "refs": { + } + }, + "RegisterInstanceResult": { + "base": "

Contains the response to a RegisterInstanceResult request.

", + "refs": { + } + }, + "RegisterRdsDbInstanceRequest": { + "base": null, + "refs": { + } + }, + "RegisterVolumeRequest": { + "base": null, + "refs": { + } + }, + "RegisterVolumeResult": { + "base": "

Contains the response to a RegisterVolume request.

", + "refs": { + } + }, + "ReportedOs": { + "base": "

A registered instance's reported operating system.

", + "refs": { + "Instance$ReportedOs": "

For registered instances, the reported operating system.

" + } + }, + "ResourceNotFoundException": { + "base": "

Indicates that a resource was not found.

", + "refs": { + } + }, + "RootDeviceType": { + "base": null, + "refs": { + "CloneStackRequest$DefaultRootDeviceType": "

The default root device type. This value is used by default for all instances in the cloned stack, but you can override it when you create an instance. For more information, see Storage for the Root Device.

", + "CreateInstanceRequest$RootDeviceType": "

The instance root device type. For more information, see Storage for the Root Device.

", + "CreateStackRequest$DefaultRootDeviceType": "

The default root device type. This value is used by default for all instances in the stack, but you can override it when you create an instance. The default option is instance-store. For more information, see Storage for the Root Device.

", + "Instance$RootDeviceType": "

The instance's root device type. For more information, see Storage for the Root Device.

", + "Stack$DefaultRootDeviceType": "

The default root device type. This value is used by default for all instances in the stack, but you can override it when you create an instance. For more information, see Storage for the Root Device.

", + "UpdateStackRequest$DefaultRootDeviceType": "

The default root device type. This value is used by default for all instances in the stack, but you can override it when you create an instance. For more information, see Storage for the Root Device.

" + } + }, + "SelfUserProfile": { + "base": "

Describes a user's SSH information.

", + "refs": { + "DescribeMyUserProfileResult$UserProfile": "

A UserProfile object that describes the user's SSH information.

" + } + }, + "ServiceError": { + "base": "

Describes an AWS OpsWorks service error.

", + "refs": { + "ServiceErrors$member": null + } + }, + "ServiceErrors": { + "base": null, + "refs": { + "DescribeServiceErrorsResult$ServiceErrors": "

An array of ServiceError objects that describe the specified service errors.

" + } + }, + "SetLoadBasedAutoScalingRequest": { + "base": null, + "refs": { + } + }, + "SetPermissionRequest": { + "base": null, + "refs": { + } + }, + "SetTimeBasedAutoScalingRequest": { + "base": null, + "refs": { + } + }, + "ShutdownEventConfiguration": { + "base": "

The Shutdown event configuration.

", + "refs": { + "LifecycleEventConfiguration$Shutdown": "

A ShutdownEventConfiguration object that specifies the Shutdown event configuration.

" + } + }, + "Source": { + "base": "

Contains the information required to retrieve an app or cookbook from a repository. For more information, see Creating Apps or Custom Recipes and Cookbooks.

", + "refs": { + "App$AppSource": "

A Source object that describes the app repository.

", + "CloneStackRequest$CustomCookbooksSource": null, + "CreateAppRequest$AppSource": "

A Source object that specifies the app repository.

", + "CreateStackRequest$CustomCookbooksSource": null, + "Stack$CustomCookbooksSource": null, + "UpdateAppRequest$AppSource": "

A Source object that specifies the app repository.

", + "UpdateStackRequest$CustomCookbooksSource": null + } + }, + "SourceType": { + "base": null, + "refs": { + "Source$Type": "

The repository type.

" + } + }, + "SslConfiguration": { + "base": "

Describes an app's SSL configuration.

", + "refs": { + "App$SslConfiguration": "

An SslConfiguration object with the SSL configuration.

", + "CreateAppRequest$SslConfiguration": "

An SslConfiguration object with the SSL configuration.

", + "UpdateAppRequest$SslConfiguration": "

An SslConfiguration object with the SSL configuration.

" + } + }, + "Stack": { + "base": "

Describes a stack.

", + "refs": { + "Stacks$member": null + } + }, + "StackAttributes": { + "base": null, + "refs": { + "CloneStackRequest$Attributes": "

A list of stack attributes and values as key/value pairs to be added to the cloned stack.

", + "CreateStackRequest$Attributes": "

One or more user-defined key/value pairs to be added to the stack attributes.

", + "Stack$Attributes": "

The stack's attributes.

", + "UpdateStackRequest$Attributes": "

One or more user-defined key/value pairs to be added to the stack attributes.

" + } + }, + "StackAttributesKeys": { + "base": null, + "refs": { + "StackAttributes$key": null + } + }, + "StackConfigurationManager": { + "base": "

Describes the configuration manager.

", + "refs": { + "CloneStackRequest$ConfigurationManager": "

The configuration manager. When you clone a stack we recommend that you use the configuration manager to specify the Chef version, 0.9, 11.4, or 11.10. The default value is currently 11.4.

", + "CreateStackRequest$ConfigurationManager": "

The configuration manager. When you clone a stack we recommend that you use the configuration manager to specify the Chef version, 0.9, 11.4, or 11.10. The default value is currently 11.4.

", + "Stack$ConfigurationManager": "

The configuration manager.

", + "UpdateStackRequest$ConfigurationManager": "

The configuration manager. When you clone a stack we recommend that you use the configuration manager to specify the Chef version, 0.9, 11.4, or 11.10. The default value is currently 11.4.

" + } + }, + "StackSummary": { + "base": "

Summarizes the number of layers, instances, and apps in a stack.

", + "refs": { + "DescribeStackSummaryResult$StackSummary": "

A StackSummary object that contains the results.

" + } + }, + "Stacks": { + "base": null, + "refs": { + "DescribeStacksResult$Stacks": "

An array of Stack objects that describe the stacks.

" + } + }, + "StartInstanceRequest": { + "base": null, + "refs": { + } + }, + "StartStackRequest": { + "base": null, + "refs": { + } + }, + "StopInstanceRequest": { + "base": null, + "refs": { + } + }, + "StopStackRequest": { + "base": null, + "refs": { + } + }, + "String": { + "base": null, + "refs": { + "App$AppId": "

The app ID.

", + "App$StackId": "

The app stack ID.

", + "App$Shortname": "

The app's short name.

", + "App$Name": "

The app name.

", + "App$Description": "

A description of the app.

", + "App$CreatedAt": "

When the app was created.

", + "AppAttributes$value": null, + "AssignInstanceRequest$InstanceId": "

The instance ID.

", + "AssignVolumeRequest$VolumeId": "

The volume ID.

", + "AssignVolumeRequest$InstanceId": "

The instance ID.

", + "AssociateElasticIpRequest$ElasticIp": "

The Elastic IP address.

", + "AssociateElasticIpRequest$InstanceId": "

The instance ID.

", + "AttachElasticLoadBalancerRequest$ElasticLoadBalancerName": "

The Elastic Load Balancing instance's name.

", + "AttachElasticLoadBalancerRequest$LayerId": "

The ID of the layer that the Elastic Load Balancing instance is to be attached to.

", + "BlockDeviceMapping$DeviceName": "

The device name that is exposed to the instance, such as /dev/sdh. For the root device, you can use the explicit device name or you can set this parameter to ROOT_DEVICE and AWS OpsWorks will provide the correct device name.

", + "BlockDeviceMapping$NoDevice": "

Suppresses the specified device included in the AMI's block device mapping.

", + "BlockDeviceMapping$VirtualName": "

The virtual device name. For more information, see BlockDeviceMapping.

", + "ChefConfiguration$BerkshelfVersion": "

The Berkshelf version.

", + "CloneStackRequest$SourceStackId": "

The source stack ID.

", + "CloneStackRequest$Name": "

The cloned stack name.

", + "CloneStackRequest$Region": "

The cloned stack AWS region, such as \"us-east-1\". For more information about AWS regions, see Regions and Endpoints.

", + "CloneStackRequest$VpcId": "

The ID of the VPC that the cloned stack is to be launched into. It must be in the specified region. All instances are launched into this VPC, and you cannot change the ID later.

  • If your account supports EC2 Classic, the default value is no VPC.
  • If your account does not support EC2 Classic, the default value is the default VPC for the specified region.

If the VPC ID corresponds to a default VPC and you have specified either the DefaultAvailabilityZone or the DefaultSubnetId parameter only, AWS OpsWorks infers the value of the other parameter. If you specify neither parameter, AWS OpsWorks sets these parameters to the first valid Availability Zone for the specified region and the corresponding default VPC subnet ID, respectively.

If you specify a nondefault VPC ID, note the following:

  • It must belong to a VPC in your account that is in the specified region.
  • You must specify a value for DefaultSubnetId.

For more information on how to use AWS OpsWorks with a VPC, see Running a Stack in a VPC. For more information on default VPC and EC2 Classic, see Supported Platforms.

", + "CloneStackRequest$ServiceRoleArn": "

The stack AWS Identity and Access Management (IAM) role, which allows AWS OpsWorks to work with AWS resources on your behalf. You must set this parameter to the Amazon Resource Name (ARN) for an existing IAM role. If you create a stack by using the AWS OpsWorks console, it creates the role for you. You can obtain an existing stack's IAM ARN programmatically by calling DescribePermissions. For more information about IAM ARNs, see Using Identifiers.

You must set this parameter to a valid service role ARN or the action will fail; there is no default value. You can specify the source stack's service role ARN, if you prefer, but you must do so explicitly.

", + "CloneStackRequest$DefaultInstanceProfileArn": "

The ARN of an IAM profile that is the default profile for all of the stack's EC2 instances. For more information about IAM ARNs, see Using Identifiers.

", + "CloneStackRequest$DefaultOs": "

The stack's operating system, which must be set to one of the following.

  • Standard Linux operating systems: an Amazon Linux version such as Amazon Linux 2014.09, Ubuntu 12.04 LTS, or Ubuntu 14.04 LTS.
  • Custom Linux AMIs: Custom. You specify the custom AMI you want to use when you create instances.
  • Microsoft Windows Server 2012 R2.

The default option is the current Amazon Linux version.

", + "CloneStackRequest$HostnameTheme": "

The stack's host name theme, with spaces are replaced by underscores. The theme is used to generate host names for the stack's instances. By default, HostnameTheme is set to Layer_Dependent, which creates host names by appending integers to the layer's short name. The other themes are:

  • Baked_Goods
  • Clouds
  • Europe_Cities
  • Fruits
  • Greek_Deities
  • Legendary_creatures_from_Japan
  • Planets_and_Moons
  • Roman_Deities
  • Scottish_Islands
  • US_Cities
  • Wild_Cats

To obtain a generated host name, call GetHostNameSuggestion, which returns a host name based on the current theme.

", + "CloneStackRequest$DefaultAvailabilityZone": "

The cloned stack's default Availability Zone, which must be in the specified region. For more information, see Regions and Endpoints. If you also specify a value for DefaultSubnetId, the subnet must be in the same zone. For more information, see the VpcId parameter description.

", + "CloneStackRequest$DefaultSubnetId": "

The stack's default VPC subnet ID. This parameter is required if you specify a value for the VpcId parameter. All instances are launched into this subnet unless you specify otherwise when you create the instance. If you also specify a value for DefaultAvailabilityZone, the subnet must be in that zone. For information on default values and when this parameter is required, see the VpcId parameter description.

", + "CloneStackRequest$CustomJson": "

A string that contains user-defined, custom JSON. It is used to override the corresponding default stack configuration JSON values. The string should be in the following format and must escape characters such as '\"'.:

\"{\\\"key1\\\": \\\"value1\\\", \\\"key2\\\": \\\"value2\\\",...}\"

For more information on custom JSON, see Use Custom JSON to Modify the Stack Configuration Attributes

", + "CloneStackRequest$DefaultSshKeyName": "

A default Amazon EC2 key pair name. The default value is none. If you specify a key pair name, AWS OpsWorks installs the public key on the instance and you can use the private key with an SSH client to log in to the instance. For more information, see Using SSH to Communicate with an Instance and Managing SSH Access. You can override this setting by specifying a different key pair, or no key pair, when you create an instance.

", + "CloneStackResult$StackId": "

The cloned stack ID.

", + "Command$CommandId": "

The command ID.

", + "Command$InstanceId": "

The ID of the instance where the command was executed.

", + "Command$DeploymentId": "

The command deployment ID.

", + "Command$Status": "

The command status:

  • failed
  • successful
  • skipped
  • pending
", + "Command$LogUrl": "

The URL of the command log.

", + "Command$Type": "

The command type:

  • deploy
  • rollback
  • start
  • stop
  • restart
  • undeploy
  • update_dependencies
  • install_dependencies
  • update_custom_cookbooks
  • execute_recipes
", + "CreateAppRequest$StackId": "

The stack ID.

", + "CreateAppRequest$Shortname": "

The app's short name.

", + "CreateAppRequest$Name": "

The app name.

", + "CreateAppRequest$Description": "

A description of the app.

", + "CreateAppResult$AppId": "

The app ID.

", + "CreateDeploymentRequest$StackId": "

The stack ID.

", + "CreateDeploymentRequest$AppId": "

The app ID. This parameter is required for app deployments, but not for other deployment commands.

", + "CreateDeploymentRequest$Comment": "

A user-defined comment.

", + "CreateDeploymentRequest$CustomJson": "

A string that contains user-defined, custom JSON. It is used to override the corresponding default stack configuration JSON values. The string should be in the following format and must escape characters such as '\"'.:

\"{\\\"key1\\\": \\\"value1\\\", \\\"key2\\\": \\\"value2\\\",...}\"

For more information on custom JSON, see Use Custom JSON to Modify the Stack Configuration Attributes.

", + "CreateDeploymentResult$DeploymentId": "

The deployment ID, which can be used with other requests to identify the deployment.

", + "CreateInstanceRequest$StackId": "

The stack ID.

", + "CreateInstanceRequest$InstanceType": "

The instance type. AWS OpsWorks supports all instance types except Cluster Compute, Cluster GPU, and High Memory Cluster. For more information, see Instance Families and Types. The parameter values that you use to specify the various types are in the API Name column of the Available Instance Types table.

", + "CreateInstanceRequest$Hostname": "

The instance host name.

", + "CreateInstanceRequest$Os": "

The instance's operating system, which must be set to one of the following.

For Windows stacks: Microsoft Windows Server 2012 R2.

For Linux stacks:

  • Standard operating systems: an Amazon Linux version such as Amazon Linux 2014.09, Ubuntu 12.04 LTS, or Ubuntu 14.04 LTS.
  • Custom AMIs: Custom

The default option is the current Amazon Linux version. If you set this parameter to Custom, you must use the CreateInstance action's AmiId parameter to specify the custom AMI that you want to use. For more information on the standard operating systems, see Operating SystemsFor more information on how to use custom AMIs with OpsWorks, see Using Custom AMIs.

", + "CreateInstanceRequest$AmiId": "

A custom AMI ID to be used to create the instance. The AMI should be based on one of the standard AWS OpsWorks AMIs: Amazon Linux, Ubuntu 12.04 LTS, or Ubuntu 14.04 LTS. For more information, see Instances.

If you specify a custom AMI, you must set Os to Custom.", + "CreateInstanceRequest$SshKeyName": "

The instance's Amazon EC2 key pair name.

", + "CreateInstanceRequest$AvailabilityZone": "

The instance Availability Zone. For more information, see Regions and Endpoints.

", + "CreateInstanceRequest$VirtualizationType": "

The instance's virtualization type, paravirtual or hvm.

", + "CreateInstanceRequest$SubnetId": "

The ID of the instance's subnet. If the stack is running in a VPC, you can use this parameter to override the stack's default subnet ID value and direct AWS OpsWorks to launch the instance in a different subnet.

", + "CreateInstanceResult$InstanceId": "

The instance ID.

", + "CreateLayerRequest$StackId": "

The layer stack ID.

", + "CreateLayerRequest$Name": "

The layer name, which is used by the console.

", + "CreateLayerRequest$Shortname": "

For custom layers only, use this parameter to specify the layer's short name, which is used internally by AWS OpsWorks and by Chef recipes. The short name is also used as the name for the directory where your app files are installed. It can have a maximum of 200 characters, which are limited to the alphanumeric characters, '-', '_', and '.'.

The built-in layers' short names are defined by AWS OpsWorks. For more information, see the Layer Reference

", + "CreateLayerRequest$CustomInstanceProfileArn": "

The ARN of an IAM profile that to be used for the layer's EC2 instances. For more information about IAM ARNs, see Using Identifiers.

", + "CreateLayerResult$LayerId": "

The layer ID.

", + "CreateStackRequest$Name": "

The stack name.

", + "CreateStackRequest$Region": "

The stack AWS region, such as \"us-east-1\". For more information about Amazon regions, see Regions and Endpoints.

", + "CreateStackRequest$VpcId": "

The ID of the VPC that the stack is to be launched into. It must be in the specified region. All instances are launched into this VPC, and you cannot change the ID later.

  • If your account supports EC2 Classic, the default value is no VPC.
  • If your account does not support EC2 Classic, the default value is the default VPC for the specified region.

If the VPC ID corresponds to a default VPC and you have specified either the DefaultAvailabilityZone or the DefaultSubnetId parameter only, AWS OpsWorks infers the value of the other parameter. If you specify neither parameter, AWS OpsWorks sets these parameters to the first valid Availability Zone for the specified region and the corresponding default VPC subnet ID, respectively.

If you specify a nondefault VPC ID, note the following:

  • It must belong to a VPC in your account that is in the specified region.
  • You must specify a value for DefaultSubnetId.

For more information on how to use AWS OpsWorks with a VPC, see Running a Stack in a VPC. For more information on default VPC and EC2 Classic, see Supported Platforms.

", + "CreateStackRequest$ServiceRoleArn": "

The stack AWS Identity and Access Management (IAM) role, which allows AWS OpsWorks to work with AWS resources on your behalf. You must set this parameter to the Amazon Resource Name (ARN) for an existing IAM role. For more information about IAM ARNs, see Using Identifiers.

", + "CreateStackRequest$DefaultInstanceProfileArn": "

The ARN of an IAM profile that is the default profile for all of the stack's EC2 instances. For more information about IAM ARNs, see Using Identifiers.

", + "CreateStackRequest$DefaultOs": "

The stack's operating system, which must be set to one of the following.

  • Standard Linux operating systems: an Amazon Linux version such as Amazon Linux 2014.09, Ubuntu 12.04 LTS, or Ubuntu 14.04 LTS.
  • Custom Linux AMIs: Custom. You specify the custom AMI you want to use when you create instances.
  • Microsoft Windows Server 2012 R2.

The default option is the current Amazon Linux version.

", + "CreateStackRequest$HostnameTheme": "

The stack's host name theme, with spaces are replaced by underscores. The theme is used to generate host names for the stack's instances. By default, HostnameTheme is set to Layer_Dependent, which creates host names by appending integers to the layer's short name. The other themes are:

  • Baked_Goods
  • Clouds
  • Europe_Cities
  • Fruits
  • Greek_Deities
  • Legendary_creatures_from_Japan
  • Planets_and_Moons
  • Roman_Deities
  • Scottish_Islands
  • US_Cities
  • Wild_Cats

To obtain a generated host name, call GetHostNameSuggestion, which returns a host name based on the current theme.

", + "CreateStackRequest$DefaultAvailabilityZone": "

The stack's default Availability Zone, which must be in the specified region. For more information, see Regions and Endpoints. If you also specify a value for DefaultSubnetId, the subnet must be in the same zone. For more information, see the VpcId parameter description.

", + "CreateStackRequest$DefaultSubnetId": "

The stack's default VPC subnet ID. This parameter is required if you specify a value for the VpcId parameter. All instances are launched into this subnet unless you specify otherwise when you create the instance. If you also specify a value for DefaultAvailabilityZone, the subnet must be in that zone. For information on default values and when this parameter is required, see the VpcId parameter description.

", + "CreateStackRequest$CustomJson": "

A string that contains user-defined, custom JSON. It can be used to override the corresponding default stack configuration attribute values, or to pass data to recipes. The string should be in the following format and must escape characters such as '\"'.:

\"{\\\"key1\\\": \\\"value1\\\", \\\"key2\\\": \\\"value2\\\",...}\"

For more information on custom JSON, see Use Custom JSON to Modify the Stack Configuration Attributes.

", + "CreateStackRequest$DefaultSshKeyName": "

A default Amazon EC2 key pair name. The default value is none. If you specify a key pair name, AWS OpsWorks installs the public key on the instance and you can use the private key with an SSH client to log in to the instance. For more information, see Using SSH to Communicate with an Instance and Managing SSH Access. You can override this setting by specifying a different key pair, or no key pair, when you create an instance.

", + "CreateStackResult$StackId": "

The stack ID, which is an opaque string that you use to identify the stack when performing actions such as DescribeStacks.

", + "CreateUserProfileRequest$IamUserArn": "

The user's IAM ARN.

", + "CreateUserProfileRequest$SshUsername": "

The user's SSH user name. The allowable characters are [a-z], [A-Z], [0-9], '-', and '_'. If the specified name includes other punctuation marks, AWS OpsWorks removes them. For example, my.name will be changed to myname. If you do not specify an SSH user name, AWS OpsWorks generates one from the IAM user name.

", + "CreateUserProfileRequest$SshPublicKey": "

The user's public SSH key.

", + "CreateUserProfileResult$IamUserArn": "

The user's IAM ARN.

", + "DataSource$Type": "

The data source's type, AutoSelectOpsworksMysqlInstance, OpsworksMysqlInstance, or RdsDbInstance.

", + "DataSource$Arn": "

The data source's ARN.

", + "DataSource$DatabaseName": "

The database name.

", + "DeleteAppRequest$AppId": "

The app ID.

", + "DeleteInstanceRequest$InstanceId": "

The instance ID.

", + "DeleteLayerRequest$LayerId": "

The layer ID.

", + "DeleteStackRequest$StackId": "

The stack ID.

", + "DeleteUserProfileRequest$IamUserArn": "

The user's IAM ARN.

", + "Deployment$DeploymentId": "

The deployment ID.

", + "Deployment$StackId": "

The stack ID.

", + "Deployment$AppId": "

The app ID.

", + "Deployment$IamUserArn": "

The user's IAM ARN.

", + "Deployment$Comment": "

A user-defined comment.

", + "Deployment$Status": "

The deployment status:

  • running
  • successful
  • failed
", + "Deployment$CustomJson": "

A string that contains user-defined custom JSON. It can be used to override the corresponding default stack configuration attribute values for stack or to pass data to recipes. The string should be in the following format and must escape characters such as '\"'.:

\"{\\\"key1\\\": \\\"value1\\\", \\\"key2\\\": \\\"value2\\\",...}\"

For more information on custom JSON, see Use Custom JSON to Modify the Stack Configuration Attributes.

", + "DeploymentCommandArgs$key": null, + "DeregisterElasticIpRequest$ElasticIp": "

The Elastic IP address.

", + "DeregisterInstanceRequest$InstanceId": "

The instance ID.

", + "DeregisterRdsDbInstanceRequest$RdsDbInstanceArn": "

The Amazon RDS instance's ARN.

", + "DeregisterVolumeRequest$VolumeId": "

The AWS OpsWorks volume ID, which is the GUID that AWS OpsWorks assigned to the instance when you registered the volume with the stack, not the Amazon EC2 volume ID.

", + "DescribeAppsRequest$StackId": "

The app stack ID. If you use this parameter, DescribeApps returns a description of the apps in the specified stack.

", + "DescribeCommandsRequest$DeploymentId": "

The deployment ID. If you include this parameter, DescribeCommands returns a description of the commands associated with the specified deployment.

", + "DescribeCommandsRequest$InstanceId": "

The instance ID. If you include this parameter, DescribeCommands returns a description of the commands associated with the specified instance.

", + "DescribeDeploymentsRequest$StackId": "

The stack ID. If you include this parameter, DescribeDeployments returns a description of the commands associated with the specified stack.

", + "DescribeDeploymentsRequest$AppId": "

The app ID. If you include this parameter, DescribeDeployments returns a description of the commands associated with the specified app.

", + "DescribeElasticIpsRequest$InstanceId": "

The instance ID. If you include this parameter, DescribeElasticIps returns a description of the Elastic IP addresses associated with the specified instance.

", + "DescribeElasticIpsRequest$StackId": "

A stack ID. If you include this parameter, DescribeElasticIps returns a description of the Elastic IP addresses that are registered with the specified stack.

", + "DescribeElasticLoadBalancersRequest$StackId": "

A stack ID. The action describes the stack's Elastic Load Balancing instances.

", + "DescribeInstancesRequest$StackId": "

A stack ID. If you use this parameter, DescribeInstances returns descriptions of the instances associated with the specified stack.

", + "DescribeInstancesRequest$LayerId": "

A layer ID. If you use this parameter, DescribeInstances returns descriptions of the instances associated with the specified layer.

", + "DescribeLayersRequest$StackId": "

The stack ID.

", + "DescribePermissionsRequest$IamUserArn": "

The user's IAM ARN. For more information about IAM ARNs, see Using Identifiers.

", + "DescribePermissionsRequest$StackId": "

The stack ID.

", + "DescribeRaidArraysRequest$InstanceId": "

The instance ID. If you use this parameter, DescribeRaidArrays returns descriptions of the RAID arrays associated with the specified instance.

", + "DescribeRaidArraysRequest$StackId": "

The stack ID.

", + "DescribeRdsDbInstancesRequest$StackId": "

The stack ID that the instances are registered with. The operation returns descriptions of all registered Amazon RDS instances.

", + "DescribeServiceErrorsRequest$StackId": "

The stack ID. If you use this parameter, DescribeServiceErrors returns descriptions of the errors associated with the specified stack.

", + "DescribeServiceErrorsRequest$InstanceId": "

The instance ID. If you use this parameter, DescribeServiceErrors returns descriptions of the errors associated with the specified instance.

", + "DescribeStackProvisioningParametersRequest$StackId": "

The stack ID

", + "DescribeStackProvisioningParametersResult$AgentInstallerUrl": "

The AWS OpsWorks agent installer's URL.

", + "DescribeStackSummaryRequest$StackId": "

The stack ID.

", + "DescribeVolumesRequest$InstanceId": "

The instance ID. If you use this parameter, DescribeVolumes returns descriptions of the volumes associated with the specified instance.

", + "DescribeVolumesRequest$StackId": "

A stack ID. The action describes the stack's registered Amazon EBS volumes.

", + "DescribeVolumesRequest$RaidArrayId": "

The RAID array ID. If you use this parameter, DescribeVolumes returns descriptions of the volumes associated with the specified RAID array.

", + "DetachElasticLoadBalancerRequest$ElasticLoadBalancerName": "

The Elastic Load Balancing instance's name.

", + "DetachElasticLoadBalancerRequest$LayerId": "

The ID of the layer that the Elastic Load Balancing instance is attached to.

", + "DisassociateElasticIpRequest$ElasticIp": "

The Elastic IP address.

", + "EbsBlockDevice$SnapshotId": "

The snapshot ID.

", + "ElasticIp$Ip": "

The IP address.

", + "ElasticIp$Name": "

The name.

", + "ElasticIp$Domain": "

The domain.

", + "ElasticIp$Region": "

The AWS region. For more information, see Regions and Endpoints.

", + "ElasticIp$InstanceId": "

The ID of the instance that the address is attached to.

", + "ElasticLoadBalancer$ElasticLoadBalancerName": "

The Elastic Load Balancing instance's name.

", + "ElasticLoadBalancer$Region": "

The instance's AWS region.

", + "ElasticLoadBalancer$DnsName": "

The instance's public DNS name.

", + "ElasticLoadBalancer$StackId": "

The ID of the stack that the instance is associated with.

", + "ElasticLoadBalancer$LayerId": "

The ID of the layer that the instance is attached to.

", + "ElasticLoadBalancer$VpcId": "

The VPC ID.

", + "EnvironmentVariable$Key": "

(Required) The environment variable's name, which can consist of up to 64 characters and must be specified. The name can contain upper- and lowercase letters, numbers, and underscores (_), but it must start with a letter or underscore.

", + "EnvironmentVariable$Value": "

(Optional) The environment variable's value, which can be left empty. If you specify a value, it can contain up to 256 characters, which must all be printable.

", + "GetHostnameSuggestionRequest$LayerId": "

The layer ID.

", + "GetHostnameSuggestionResult$LayerId": "

The layer ID.

", + "GetHostnameSuggestionResult$Hostname": "

The generated host name.

", + "GrantAccessRequest$InstanceId": "

The instance's AWS OpsWorks ID.

", + "Instance$InstanceId": "

The instance ID.

", + "Instance$Ec2InstanceId": "

The ID of the associated Amazon EC2 instance.

", + "Instance$Hostname": "

The instance host name.

", + "Instance$StackId": "

The stack ID.

", + "Instance$InstanceType": "

The instance type. AWS OpsWorks supports all instance types except Cluster Compute, Cluster GPU, and High Memory Cluster. For more information, see Instance Families and Types. The parameter values that specify the various types are in the API Name column of the Available Instance Types table.

", + "Instance$InstanceProfileArn": "

The ARN of the instance's IAM profile. For more information about IAM ARNs, see Using Identifiers.

", + "Instance$Status": "

The instance status:

  • booting
  • connection_lost
  • online
  • pending
  • rebooting
  • requested
  • running_setup
  • setup_failed
  • shutting_down
  • start_failed
  • stopped
  • stopping
  • terminated
  • terminating
", + "Instance$Os": "

The instance's operating system.

", + "Instance$AmiId": "

A custom AMI ID to be used to create the instance. The AMI should be based on one of the standard AWS OpsWorks APIs: Amazon Linux, Ubuntu 12.04 LTS, or Ubuntu 14.04 LTS. For more information, see Instances

", + "Instance$AvailabilityZone": "

The instance Availability Zone. For more information, see Regions and Endpoints.

", + "Instance$SubnetId": "

The instance's subnet ID, if the stack is running in a VPC.

", + "Instance$PublicDns": "

The instance public DNS name.

", + "Instance$PrivateDns": "

The instance private DNS name.

", + "Instance$PublicIp": "

The instance public IP address.

", + "Instance$PrivateIp": "

The instance private IP address.

", + "Instance$ElasticIp": "

The instance Elastic IP address .

", + "Instance$SshKeyName": "

The instance's Amazon EC2 key pair name.

", + "Instance$SshHostRsaKeyFingerprint": "

The SSH key's RSA fingerprint.

", + "Instance$SshHostDsaKeyFingerprint": "

The SSH key's DSA fingerprint.

", + "Instance$LastServiceErrorId": "

The ID of the last service error. For more information, call DescribeServiceErrors.

", + "Instance$RootDeviceVolumeId": "

The root device volume ID.

", + "Instance$ReportedAgentVersion": "

The instance's reported AWS OpsWorks agent version.

", + "Instance$InfrastructureClass": "

For registered instances, the infrastructure class: ec2 or on-premises

", + "Instance$RegisteredBy": "

For registered instances, who performed the registration.

", + "InstanceIdentity$Document": "

A JSON document that contains the metadata.

", + "InstanceIdentity$Signature": "

A signature that can be used to verify the document's accuracy and authenticity.

", + "Layer$StackId": "

The layer stack ID.

", + "Layer$LayerId": "

The layer ID.

", + "Layer$Name": "

The layer name.

", + "Layer$Shortname": "

The layer short name.

", + "Layer$CustomInstanceProfileArn": "

The ARN of the default IAM profile to be used for the layer's EC2 instances. For more information about IAM ARNs, see Using Identifiers.

", + "LayerAttributes$value": null, + "LoadBasedAutoScalingConfiguration$LayerId": "

The layer ID.

", + "Parameters$key": null, + "Parameters$value": null, + "Permission$StackId": "

A stack ID.

", + "Permission$IamUserArn": "

The Amazon Resource Name (ARN) for an AWS Identity and Access Management (IAM) role. For more information about IAM ARNs, see Using Identifiers.

", + "Permission$Level": "

The user's permission level, which must be the following:

  • deny
  • show
  • deploy
  • manage
  • iam_only

For more information on the permissions associated with these levels, see Managing User Permissions

", + "RaidArray$RaidArrayId": "

The array ID.

", + "RaidArray$InstanceId": "

The instance ID.

", + "RaidArray$Name": "

The array name.

", + "RaidArray$Device": "

The array's Linux device. For example /dev/mdadm0.

", + "RaidArray$MountPoint": "

The array's mount point.

", + "RaidArray$AvailabilityZone": "

The array's Availability Zone. For more information, see Regions and Endpoints.

", + "RaidArray$StackId": "

The stack ID.

", + "RaidArray$VolumeType": "

The volume type, standard or PIOPS.

", + "RdsDbInstance$RdsDbInstanceArn": "

The instance's ARN.

", + "RdsDbInstance$DbInstanceIdentifier": "

The DB instance identifier.

", + "RdsDbInstance$DbUser": "

The master user name.

", + "RdsDbInstance$DbPassword": "

AWS OpsWorks returns *****FILTERED***** instead of the actual value.

", + "RdsDbInstance$Region": "

The instance's AWS region.

", + "RdsDbInstance$Address": "

The instance's address.

", + "RdsDbInstance$Engine": "

The instance's database engine.

", + "RdsDbInstance$StackId": "

The ID of the stack that the instance is registered with.

", + "RebootInstanceRequest$InstanceId": "

The instance ID.

", + "RegisterElasticIpRequest$ElasticIp": "

The Elastic IP address.

", + "RegisterElasticIpRequest$StackId": "

The stack ID.

", + "RegisterElasticIpResult$ElasticIp": "

The Elastic IP address.

", + "RegisterInstanceRequest$StackId": "

The ID of the stack that the instance is to be registered with.

", + "RegisterInstanceRequest$Hostname": "

The instance's hostname.

", + "RegisterInstanceRequest$PublicIp": "

The instance's public IP address.

", + "RegisterInstanceRequest$PrivateIp": "

The instance's private IP address.

", + "RegisterInstanceRequest$RsaPublicKey": "

The instances public RSA key. This key is used to encrypt communication between the instance and the service.

", + "RegisterInstanceRequest$RsaPublicKeyFingerprint": "

The instances public RSA key fingerprint.

", + "RegisterInstanceResult$InstanceId": "

The registered instance's AWS OpsWorks ID.

", + "RegisterRdsDbInstanceRequest$StackId": "

The stack ID.

", + "RegisterRdsDbInstanceRequest$RdsDbInstanceArn": "

The Amazon RDS instance's ARN.

", + "RegisterRdsDbInstanceRequest$DbUser": "

The database's master user name.

", + "RegisterRdsDbInstanceRequest$DbPassword": "

The database password.

", + "RegisterVolumeRequest$Ec2VolumeId": "

The Amazon EBS volume ID.

", + "RegisterVolumeRequest$StackId": "

The stack ID.

", + "RegisterVolumeResult$VolumeId": "

The volume ID.

", + "ReportedOs$Family": "

The operating system family.

", + "ReportedOs$Name": "

The operating system name.

", + "ReportedOs$Version": "

The operating system version.

", + "ResourceNotFoundException$message": "

The exception message.

", + "SelfUserProfile$IamUserArn": "

The user's IAM ARN.

", + "SelfUserProfile$Name": "

The user's name.

", + "SelfUserProfile$SshUsername": "

The user's SSH user name.

", + "SelfUserProfile$SshPublicKey": "

The user's SSH public key.

", + "ServiceError$ServiceErrorId": "

The error ID.

", + "ServiceError$StackId": "

The stack ID.

", + "ServiceError$InstanceId": "

The instance ID.

", + "ServiceError$Type": "

The error type.

", + "ServiceError$Message": "

A message that describes the error.

", + "SetLoadBasedAutoScalingRequest$LayerId": "

The layer ID.

", + "SetPermissionRequest$StackId": "

The stack ID.

", + "SetPermissionRequest$IamUserArn": "

The user's IAM ARN.

", + "SetPermissionRequest$Level": "

The user's permission level, which must be set to one of the following strings. You cannot set your own permissions level.

  • deny
  • show
  • deploy
  • manage
  • iam_only

For more information on the permissions associated with these levels, see Managing User Permissions

", + "SetTimeBasedAutoScalingRequest$InstanceId": "

The instance ID.

", + "Source$Url": "

The source URL.

", + "Source$Username": "

This parameter depends on the repository type.

  • For Amazon S3 bundles, set Username to the appropriate IAM access key ID.
  • For HTTP bundles, Git repositories, and Subversion repositories, set Username to the user name.
", + "Source$Password": "

When included in a request, the parameter depends on the repository type.

  • For Amazon S3 bundles, set Password to the appropriate IAM secret access key.
  • For HTTP bundles and Subversion repositories, set Password to the password.

For more information on how to safely handle IAM credentials, see .

In responses, AWS OpsWorks returns *****FILTERED***** instead of the actual value.

", + "Source$SshKey": "

In requests, the repository's SSH key.

In responses, AWS OpsWorks returns *****FILTERED***** instead of the actual value.

", + "Source$Revision": "

The application's version. AWS OpsWorks enables you to easily deploy new versions of an application. One of the simplest approaches is to have branches or revisions in your repository that represent different versions that can potentially be deployed.

", + "SslConfiguration$Certificate": "

The contents of the certificate's domain.crt file.

", + "SslConfiguration$PrivateKey": "

The private key; the contents of the certificate's domain.kex file.

", + "SslConfiguration$Chain": "

Optional. Can be used to specify an intermediate certificate authority key or client authentication.

", + "Stack$StackId": "

The stack ID.

", + "Stack$Name": "

The stack name.

", + "Stack$Arn": "

The stack's ARN.

", + "Stack$Region": "

The stack AWS region, such as \"us-east-1\". For more information about AWS regions, see Regions and Endpoints.

", + "Stack$VpcId": "

The VPC ID, if the stack is running in a VPC.

", + "Stack$ServiceRoleArn": "

The stack AWS Identity and Access Management (IAM) role.

", + "Stack$DefaultInstanceProfileArn": "

The ARN of an IAM profile that is the default profile for all of the stack's EC2 instances. For more information about IAM ARNs, see Using Identifiers.

", + "Stack$DefaultOs": "

The stack's default operating system.

", + "Stack$HostnameTheme": "

The stack host name theme, with spaces replaced by underscores.

", + "Stack$DefaultAvailabilityZone": "

The stack's default Availability Zone. For more information, see Regions and Endpoints.

", + "Stack$DefaultSubnetId": "

The default subnet ID, if the stack is running in a VPC.

", + "Stack$CustomJson": "

A string that contains user-defined, custom JSON. It can be used to override the corresponding default stack configuration JSON values or to pass data to recipes. The string should be in the following format and must escape characters such as '\"'.:

\"{\\\"key1\\\": \\\"value1\\\", \\\"key2\\\": \\\"value2\\\",...}\"

For more information on custom JSON, see Use Custom JSON to Modify the Stack Configuration Attributes.

", + "Stack$DefaultSshKeyName": "

A default Amazon EC2 key pair for the stack's instances. You can override this value when you create or update an instance.

", + "StackAttributes$value": null, + "StackConfigurationManager$Name": "

The name. This parameter must be set to \"Chef\".

", + "StackConfigurationManager$Version": "

The Chef version. This parameter must be set to 0.9, 11.4, or 11.10. The default value is 11.4.

", + "StackSummary$StackId": "

The stack ID.

", + "StackSummary$Name": "

The stack name.

", + "StackSummary$Arn": "

The stack's ARN.

", + "StartInstanceRequest$InstanceId": "

The instance ID.

", + "StartStackRequest$StackId": "

The stack ID.

", + "StopInstanceRequest$InstanceId": "

The instance ID.

", + "StopStackRequest$StackId": "

The stack ID.

", + "Strings$member": null, + "TemporaryCredential$Username": "

The user name.

", + "TemporaryCredential$Password": "

The password.

", + "TemporaryCredential$InstanceId": "

The instance's AWS OpsWorks ID.

", + "TimeBasedAutoScalingConfiguration$InstanceId": "

The instance ID.

", + "UnassignInstanceRequest$InstanceId": "

The instance ID.

", + "UnassignVolumeRequest$VolumeId": "

The volume ID.

", + "UpdateAppRequest$AppId": "

The app ID.

", + "UpdateAppRequest$Name": "

The app name.

", + "UpdateAppRequest$Description": "

A description of the app.

", + "UpdateElasticIpRequest$ElasticIp": "

The address.

", + "UpdateElasticIpRequest$Name": "

The new name.

", + "UpdateInstanceRequest$InstanceId": "

The instance ID.

", + "UpdateInstanceRequest$InstanceType": "

The instance type. AWS OpsWorks supports all instance types except Cluster Compute, Cluster GPU, and High Memory Cluster. For more information, see Instance Families and Types. The parameter values that you use to specify the various types are in the API Name column of the Available Instance Types table.

", + "UpdateInstanceRequest$Hostname": "

The instance host name.

", + "UpdateInstanceRequest$Os": "

The instance's operating system, which must be set to one of the following.

For Windows stacks: Microsoft Windows Server 2012 R2.

For Linux stacks:

  • Standard operating systems: an Amazon Linux version such as Amazon Linux 2014.09, Ubuntu 12.04 LTS, or Ubuntu 14.04 LTS.
  • Custom AMIs: Custom

The default option is the current Amazon Linux version. If you set this parameter to Custom, you must use the CreateInstance action's AmiId parameter to specify the custom AMI that you want to use. For more information on the standard operating systems, see Operating SystemsFor more information on how to use custom AMIs with OpsWorks, see Using Custom AMIs.

", + "UpdateInstanceRequest$AmiId": "

A custom AMI ID to be used to create the instance. The AMI should be based on one of the standard AWS OpsWorks AMIs: Amazon Linux, Ubuntu 12.04 LTS, or Ubuntu 14.04 LTS. For more information, see Instances

If you specify a custom AMI, you must set Os to Custom.", + "UpdateInstanceRequest$SshKeyName": "

The instance's Amazon EC2 key name.

", + "UpdateLayerRequest$LayerId": "

The layer ID.

", + "UpdateLayerRequest$Name": "

The layer name, which is used by the console.

", + "UpdateLayerRequest$Shortname": "

For custom layers only, use this parameter to specify the layer's short name, which is used internally by AWS OpsWorksand by Chef. The short name is also used as the name for the directory where your app files are installed. It can have a maximum of 200 characters and must be in the following format: /\\A[a-z0-9\\-\\_\\.]+\\Z/.

The built-in layers' short names are defined by AWS OpsWorks. For more information, see the Layer Reference

", + "UpdateLayerRequest$CustomInstanceProfileArn": "

The ARN of an IAM profile to be used for all of the layer's EC2 instances. For more information about IAM ARNs, see Using Identifiers.

", + "UpdateMyUserProfileRequest$SshPublicKey": "

The user's SSH public key.

", + "UpdateRdsDbInstanceRequest$RdsDbInstanceArn": "

The Amazon RDS instance's ARN.

", + "UpdateRdsDbInstanceRequest$DbUser": "

The master user name.

", + "UpdateRdsDbInstanceRequest$DbPassword": "

The database password.

", + "UpdateStackRequest$StackId": "

The stack ID.

", + "UpdateStackRequest$Name": "

The stack's new name.

", + "UpdateStackRequest$ServiceRoleArn": "

The stack AWS Identity and Access Management (IAM) role, which allows AWS OpsWorks to work with AWS resources on your behalf. You must set this parameter to the Amazon Resource Name (ARN) for an existing IAM role. For more information about IAM ARNs, see Using Identifiers.

You must set this parameter to a valid service role ARN or the action will fail; there is no default value. You can specify the stack's current service role ARN, if you prefer, but you must do so explicitly.

", + "UpdateStackRequest$DefaultInstanceProfileArn": "

The ARN of an IAM profile that is the default profile for all of the stack's EC2 instances. For more information about IAM ARNs, see Using Identifiers.

", + "UpdateStackRequest$DefaultOs": "

The stack's operating system, which must be set to one of the following.

  • Standard Linux operating systems: an Amazon Linux version such as Amazon Linux 2014.09, Ubuntu 12.04 LTS, or Ubuntu 14.04 LTS.
  • Custom Linux AMIs: Custom. You specify the custom AMI you want to use when you create instances.
  • Microsoft Windows Server 2012 R2.

The default option is the current Amazon Linux version.

", + "UpdateStackRequest$HostnameTheme": "

The stack's new host name theme, with spaces are replaced by underscores. The theme is used to generate host names for the stack's instances. By default, HostnameTheme is set to Layer_Dependent, which creates host names by appending integers to the layer's short name. The other themes are:

  • Baked_Goods
  • Clouds
  • Europe_Cities
  • Fruits
  • Greek_Deities
  • Legendary_creatures_from_Japan
  • Planets_and_Moons
  • Roman_Deities
  • Scottish_Islands
  • US_Cities
  • Wild_Cats

To obtain a generated host name, call GetHostNameSuggestion, which returns a host name based on the current theme.

", + "UpdateStackRequest$DefaultAvailabilityZone": "

The stack's default Availability Zone, which must be in the specified region. For more information, see Regions and Endpoints. If you also specify a value for DefaultSubnetId, the subnet must be in the same zone. For more information, see CreateStack.

", + "UpdateStackRequest$DefaultSubnetId": "

The stack's default VPC subnet ID. This parameter is required if you specify a value for the VpcId parameter. All instances are launched into this subnet unless you specify otherwise when you create the instance. If you also specify a value for DefaultAvailabilityZone, the subnet must be in that zone. For information on default values and when this parameter is required, see the VpcId parameter description.

", + "UpdateStackRequest$CustomJson": "

A string that contains user-defined, custom JSON. It can be used to override the corresponding default stack configuration JSON values or to pass data to recipes. The string should be in the following format and must escape characters such as '\"'.:

\"{\\\"key1\\\": \\\"value1\\\", \\\"key2\\\": \\\"value2\\\",...}\"

For more information on custom JSON, see Use Custom JSON to Modify the Stack Configuration Attributes.

", + "UpdateStackRequest$DefaultSshKeyName": "

A default Amazon EC2 key pair name. The default value is none. If you specify a key pair name, AWS OpsWorks installs the public key on the instance and you can use the private key with an SSH client to log in to the instance. For more information, see Using SSH to Communicate with an Instance and Managing SSH Access. You can override this setting by specifying a different key pair, or no key pair, when you create an instance.

", + "UpdateUserProfileRequest$IamUserArn": "

The user IAM ARN.

", + "UpdateUserProfileRequest$SshUsername": "

The user's SSH user name. The allowable characters are [a-z], [A-Z], [0-9], '-', and '_'. If the specified name includes other punctuation marks, AWS OpsWorks removes them. For example, my.name will be changed to myname. If you do not specify an SSH user name, AWS OpsWorks generates one from the IAM user name.

", + "UpdateUserProfileRequest$SshPublicKey": "

The user's new SSH public key.

", + "UpdateVolumeRequest$VolumeId": "

The volume ID.

", + "UpdateVolumeRequest$Name": "

The new name.

", + "UpdateVolumeRequest$MountPoint": "

The new mount point.

", + "UserProfile$IamUserArn": "

The user's IAM ARN.

", + "UserProfile$Name": "

The user's name.

", + "UserProfile$SshUsername": "

The user's SSH user name.

", + "UserProfile$SshPublicKey": "

The user's SSH public key.

", + "ValidationException$message": "

The exception message.

", + "Volume$VolumeId": "

The volume ID.

", + "Volume$Ec2VolumeId": "

The Amazon EC2 volume ID.

", + "Volume$Name": "

The volume name.

", + "Volume$RaidArrayId": "

The RAID array ID.

", + "Volume$InstanceId": "

The instance ID.

", + "Volume$Status": "

The value returned by DescribeVolumes.

", + "Volume$Device": "

The device name.

", + "Volume$MountPoint": "

The volume mount point. For example \"/dev/sdh\".

", + "Volume$Region": "

The AWS region. For more information about AWS regions, see Regions and Endpoints.

", + "Volume$AvailabilityZone": "

The volume Availability Zone. For more information, see Regions and Endpoints.

", + "Volume$VolumeType": "

The volume type, standard or PIOPS.

", + "VolumeConfiguration$MountPoint": "

The volume mount point. For example \"/dev/sdh\".

", + "VolumeConfiguration$VolumeType": "

The volume type:

  • standard - Magnetic
  • io1 - Provisioned IOPS (SSD)
  • gp2 - General Purpose (SSD)
" + } + }, + "Strings": { + "base": null, + "refs": { + "App$Domains": "

The app vhost settings with multiple domains separated by commas. For example: 'www.example.com, example.com'

", + "AssignInstanceRequest$LayerIds": "

The layer ID, which must correspond to a custom layer. You cannot assign a registered instance to a built-in layer.

", + "AutoScalingThresholds$Alarms": "

Custom Cloudwatch auto scaling alarms, to be used as thresholds. This parameter takes a list of up to five alarm names, which are case sensitive and must be in the same region as the stack.

To use custom alarms, you must update your service role to allow cloudwatch:DescribeAlarms. You can either have AWS OpsWorks update the role for you when you first use this feature or you can edit the role manually. For more information, see Allowing AWS OpsWorks to Act on Your Behalf.", + "CloneStackRequest$CloneAppIds": "

A list of source stack app IDs to be included in the cloned stack.

", + "CreateAppRequest$Domains": "

The app virtual host settings, with multiple domains separated by commas. For example: 'www.example.com, example.com'

", + "CreateDeploymentRequest$InstanceIds": "

The instance IDs for the deployment targets.

", + "CreateInstanceRequest$LayerIds": "

An array that contains the instance layer IDs.

", + "CreateLayerRequest$CustomSecurityGroupIds": "

An array containing the layer custom security group IDs.

", + "CreateLayerRequest$Packages": "

An array of Package objects that describe the layer packages.

", + "Deployment$InstanceIds": "

The IDs of the target instances.

", + "DeploymentCommandArgs$value": null, + "DescribeAppsRequest$AppIds": "

An array of app IDs for the apps to be described. If you use this parameter, DescribeApps returns a description of the specified apps. Otherwise, it returns a description of every app.

", + "DescribeCommandsRequest$CommandIds": "

An array of command IDs. If you include this parameter, DescribeCommands returns a description of the specified commands. Otherwise, it returns a description of every command.

", + "DescribeDeploymentsRequest$DeploymentIds": "

An array of deployment IDs to be described. If you include this parameter, DescribeDeployments returns a description of the specified deployments. Otherwise, it returns a description of every deployment.

", + "DescribeElasticIpsRequest$Ips": "

An array of Elastic IP addresses to be described. If you include this parameter, DescribeElasticIps returns a description of the specified Elastic IP addresses. Otherwise, it returns a description of every Elastic IP address.

", + "DescribeElasticLoadBalancersRequest$LayerIds": "

A list of layer IDs. The action describes the Elastic Load Balancing instances for the specified layers.

", + "DescribeInstancesRequest$InstanceIds": "

An array of instance IDs to be described. If you use this parameter, DescribeInstances returns a description of the specified instances. Otherwise, it returns a description of every instance.

", + "DescribeLayersRequest$LayerIds": "

An array of layer IDs that specify the layers to be described. If you omit this parameter, DescribeLayers returns a description of every layer in the specified stack.

", + "DescribeLoadBasedAutoScalingRequest$LayerIds": "

An array of layer IDs.

", + "DescribeRaidArraysRequest$RaidArrayIds": "

An array of RAID array IDs. If you use this parameter, DescribeRaidArrays returns descriptions of the specified arrays. Otherwise, it returns a description of every array.

", + "DescribeRdsDbInstancesRequest$RdsDbInstanceArns": "

An array containing the ARNs of the instances to be described.

", + "DescribeServiceErrorsRequest$ServiceErrorIds": "

An array of service error IDs. If you use this parameter, DescribeServiceErrors returns descriptions of the specified errors. Otherwise, it returns a description of every error.

", + "DescribeStacksRequest$StackIds": "

An array of stack IDs that specify the stacks to be described. If you omit this parameter, DescribeStacks returns a description of every stack.

", + "DescribeTimeBasedAutoScalingRequest$InstanceIds": "

An array of instance IDs.

", + "DescribeUserProfilesRequest$IamUserArns": "

An array of IAM user ARNs that identify the users to be described.

", + "DescribeVolumesRequest$VolumeIds": "

Am array of volume IDs. If you use this parameter, DescribeVolumes returns descriptions of the specified volumes. Otherwise, it returns a description of every volume.

", + "ElasticLoadBalancer$AvailabilityZones": "

A list of Availability Zones.

", + "ElasticLoadBalancer$SubnetIds": "

A list of subnet IDs, if the stack is running in a VPC.

", + "ElasticLoadBalancer$Ec2InstanceIds": "

A list of the EC2 instances that the Elastic Load Balancing instance is managing traffic for.

", + "Instance$LayerIds": "

An array containing the instance layer IDs.

", + "Instance$SecurityGroupIds": "

An array containing the instance security group IDs.

", + "Layer$CustomSecurityGroupIds": "

An array containing the layer's custom security group IDs.

", + "Layer$DefaultSecurityGroupNames": "

An array containing the layer's security group names.

", + "Layer$Packages": "

An array of Package objects that describe the layer's packages.

", + "Recipes$Setup": "

An array of custom recipe names to be run following a setup event.

", + "Recipes$Configure": "

An array of custom recipe names to be run following a configure event.

", + "Recipes$Deploy": "

An array of custom recipe names to be run following a deploy event.

", + "Recipes$Undeploy": "

An array of custom recipe names to be run following a undeploy event.

", + "Recipes$Shutdown": "

An array of custom recipe names to be run following a shutdown event.

", + "UpdateAppRequest$Domains": "

The app's virtual host settings, with multiple domains separated by commas. For example: 'www.example.com, example.com'

", + "UpdateInstanceRequest$LayerIds": "

The instance's layer IDs.

", + "UpdateLayerRequest$CustomSecurityGroupIds": "

An array containing the layer's custom security group IDs.

", + "UpdateLayerRequest$Packages": "

An array of Package objects that describe the layer's packages.

" + } + }, + "Switch": { + "base": null, + "refs": { + "DailyAutoScalingSchedule$value": null + } + }, + "TemporaryCredential": { + "base": "

Contains the data needed by RDP clients such as the Microsoft Remote Desktop Connection to log in to the instance.

", + "refs": { + "GrantAccessResult$TemporaryCredential": "

A TemporaryCredential object that contains the data needed to log in to the instance by RDP clients, such as the Microsoft Remote Desktop Connection.

" + } + }, + "TimeBasedAutoScalingConfiguration": { + "base": "

Describes an instance's time-based auto scaling configuration.

", + "refs": { + "TimeBasedAutoScalingConfigurations$member": null + } + }, + "TimeBasedAutoScalingConfigurations": { + "base": null, + "refs": { + "DescribeTimeBasedAutoScalingResult$TimeBasedAutoScalingConfigurations": "

An array of TimeBasedAutoScalingConfiguration objects that describe the configuration for the specified instances.

" + } + }, + "UnassignInstanceRequest": { + "base": null, + "refs": { + } + }, + "UnassignVolumeRequest": { + "base": null, + "refs": { + } + }, + "UpdateAppRequest": { + "base": null, + "refs": { + } + }, + "UpdateElasticIpRequest": { + "base": null, + "refs": { + } + }, + "UpdateInstanceRequest": { + "base": null, + "refs": { + } + }, + "UpdateLayerRequest": { + "base": null, + "refs": { + } + }, + "UpdateMyUserProfileRequest": { + "base": null, + "refs": { + } + }, + "UpdateRdsDbInstanceRequest": { + "base": null, + "refs": { + } + }, + "UpdateStackRequest": { + "base": null, + "refs": { + } + }, + "UpdateUserProfileRequest": { + "base": null, + "refs": { + } + }, + "UpdateVolumeRequest": { + "base": null, + "refs": { + } + }, + "UserProfile": { + "base": "

Describes a user's SSH information.

", + "refs": { + "UserProfiles$member": null + } + }, + "UserProfiles": { + "base": null, + "refs": { + "DescribeUserProfilesResult$UserProfiles": "

A Users object that describes the specified users.

" + } + }, + "ValidForInMinutes": { + "base": null, + "refs": { + "GrantAccessRequest$ValidForInMinutes": "

The length of time (in minutes) that the grant is valid. When the grant expires at the end of this period, the user will no longer be able to use the credentials to log in. If the user is logged in at the time, he or she automatically will be logged out.

" + } + }, + "ValidationException": { + "base": "

Indicates that a request was invalid.

", + "refs": { + } + }, + "VirtualizationType": { + "base": null, + "refs": { + "Instance$VirtualizationType": "

The instance's virtualization type, paravirtual or hvm.

" + } + }, + "Volume": { + "base": "

Describes an instance's Amazon EBS volume.

", + "refs": { + "Volumes$member": null + } + }, + "VolumeConfiguration": { + "base": "

Describes an Amazon EBS volume configuration.

", + "refs": { + "VolumeConfigurations$member": null + } + }, + "VolumeConfigurations": { + "base": null, + "refs": { + "CreateLayerRequest$VolumeConfigurations": "

A VolumeConfigurations object that describes the layer's Amazon EBS volumes.

", + "Layer$VolumeConfigurations": "

A VolumeConfigurations object that describes the layer's Amazon EBS volumes.

", + "UpdateLayerRequest$VolumeConfigurations": "

A VolumeConfigurations object that describes the layer's Amazon EBS volumes.

" + } + }, + "VolumeType": { + "base": null, + "refs": { + "EbsBlockDevice$VolumeType": "

The volume type. gp2 for General Purpose (SSD) volumes, io1 for Provisioned IOPS (SSD) volumes, and standard for Magnetic volumes.

" + } + }, + "Volumes": { + "base": null, + "refs": { + "DescribeVolumesResult$Volumes": "

An array of volume IDs.

" + } + }, + "WeeklyAutoScalingSchedule": { + "base": "

Describes a time-based instance's auto scaling schedule. The schedule consists of a set of key-value pairs.

  • The key is the time period (a UTC hour) and must be an integer from 0 - 23.
  • The value indicates whether the instance should be online or offline for the specified period, and must be set to \"on\" or \"off\"

The default setting for all time periods is off, so you use the following parameters primarily to specify the online periods. You don't have to explicitly specify offline periods unless you want to change an online period to an offline period.

The following example specifies that the instance should be online for four hours, from UTC 1200 - 1600. It will be off for the remainder of the day.

{ \"12\":\"on\", \"13\":\"on\", \"14\":\"on\", \"15\":\"on\" }

", + "refs": { + "SetTimeBasedAutoScalingRequest$AutoScalingSchedule": "

An AutoScalingSchedule with the instance schedule.

", + "TimeBasedAutoScalingConfiguration$AutoScalingSchedule": "

A WeeklyAutoScalingSchedule object with the instance schedule.

" + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/opsworks/2013-02-18/paginators-1.json b/lib/aws-sdk/Aws/data/opsworks/2013-02-18/paginators-1.json new file mode 100644 index 0000000..c342768 --- /dev/null +++ b/lib/aws-sdk/Aws/data/opsworks/2013-02-18/paginators-1.json @@ -0,0 +1,49 @@ +{ + "pagination": { + "DescribeApps": { + "result_key": "Apps" + }, + "DescribeCommands": { + "result_key": "Commands" + }, + "DescribeDeployments": { + "result_key": "Deployments" + }, + "DescribeElasticIps": { + "result_key": "ElasticIps" + }, + "DescribeElasticLoadBalancers": { + "result_key": "ElasticLoadBalancers" + }, + "DescribeInstances": { + "result_key": "Instances" + }, + "DescribeLayers": { + "result_key": "Layers" + }, + "DescribeLoadBasedAutoScaling": { + "result_key": "LoadBasedAutoScalingConfigurations" + }, + "DescribePermissions": { + "result_key": "Permissions" + }, + "DescribeRaidArrays": { + "result_key": "RaidArrays" + }, + "DescribeServiceErrors": { + "result_key": "ServiceErrors" + }, + "DescribeStacks": { + "result_key": "Stacks" + }, + "DescribeTimeBasedAutoScaling": { + "result_key": "TimeBasedAutoScalingConfigurations" + }, + "DescribeUserProfiles": { + "result_key": "UserProfiles" + }, + "DescribeVolumes": { + "result_key": "Volumes" + } + } +} diff --git a/lib/aws-sdk/Aws/data/opsworks/2013-02-18/waiters-2.json b/lib/aws-sdk/Aws/data/opsworks/2013-02-18/waiters-2.json new file mode 100644 index 0000000..2b5bb44 --- /dev/null +++ b/lib/aws-sdk/Aws/data/opsworks/2013-02-18/waiters-2.json @@ -0,0 +1,190 @@ +{ + "version": 2, + "waiters": { + "InstanceOnline": { + "delay": 15, + "operation": "DescribeInstances", + "maxAttempts": 40, + "description": "Wait until OpsWorks instance is online.", + "acceptors": [ + { + "expected": "online", + "matcher": "pathAll", + "state": "success", + "argument": "Instances[].Status" + }, + { + "expected": "setup_failed", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "shutting_down", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "start_failed", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "stopped", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "stopping", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "terminating", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "terminated", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + } + ] + }, + "InstanceStopped": { + "delay": 15, + "operation": "DescribeInstances", + "maxAttempts": 40, + "description": "Wait until OpsWorks instance is stopped.", + "acceptors": [ + { + "expected": "stopped", + "matcher": "pathAll", + "state": "success", + "argument": "Instances[].Status" + }, + { + "expected": "booting", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "online", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "pending", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "rebooting", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "requested", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "running_setup", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "setup_failed", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "start_failed", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + } + ] + }, + "InstanceTerminated": { + "delay": 15, + "operation": "DescribeInstances", + "maxAttempts": 40, + "description": "Wait until OpsWorks instance is terminated.", + "acceptors": [ + { + "expected": "terminated", + "matcher": "pathAll", + "state": "success", + "argument": "Instances[].Status" + }, + { + "expected": "ResourceNotFoundException", + "matcher": "error", + "state": "success" + }, + { + "expected": "booting", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "online", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "pending", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "rebooting", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "requested", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "running_setup", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "setup_failed", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + }, + { + "expected": "start_failed", + "matcher": "pathAny", + "state": "failure", + "argument": "Instances[].Status" + } + ] + } + } +} diff --git a/lib/aws-sdk/Aws/data/rds/2014-10-31/api-2.json b/lib/aws-sdk/Aws/data/rds/2014-10-31/api-2.json new file mode 100644 index 0000000..707293e --- /dev/null +++ b/lib/aws-sdk/Aws/data/rds/2014-10-31/api-2.json @@ -0,0 +1,5019 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2014-10-31", + "endpointPrefix":"rds", + "serviceAbbreviation":"Amazon RDS", + "serviceFullName":"Amazon Relational Database Service", + "signatureVersion":"v4", + "xmlNamespace":"http://rds.amazonaws.com/doc/2014-10-31/", + "protocol":"query" + }, + "operations":{ + "AddSourceIdentifierToSubscription":{ + "name":"AddSourceIdentifierToSubscription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddSourceIdentifierToSubscriptionMessage"}, + "output":{ + "shape":"AddSourceIdentifierToSubscriptionResult", + "wrapper":true, + "resultWrapper":"AddSourceIdentifierToSubscriptionResult" + }, + "errors":[ + { + "shape":"SubscriptionNotFoundFault", + "error":{ + "code":"SubscriptionNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SourceNotFoundFault", + "error":{ + "code":"SourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "AddTagsToResource":{ + "name":"AddTagsToResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddTagsToResourceMessage"}, + "errors":[ + { + "shape":"DBInstanceNotFoundFault", + "error":{ + "code":"DBInstanceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSnapshotNotFoundFault", + "error":{ + "code":"DBSnapshotNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "ApplyPendingMaintenanceAction":{ + "name":"ApplyPendingMaintenanceAction", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ApplyPendingMaintenanceActionMessage"}, + "output":{ + "shape":"ApplyPendingMaintenanceActionResult", + "wrapper":true, + "resultWrapper":"ApplyPendingMaintenanceActionResult" + }, + "errors":[ + { + "shape":"ResourceNotFoundFault", + "error":{ + "code":"ResourceNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "AuthorizeDBSecurityGroupIngress":{ + "name":"AuthorizeDBSecurityGroupIngress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AuthorizeDBSecurityGroupIngressMessage"}, + "output":{ + "shape":"AuthorizeDBSecurityGroupIngressResult", + "wrapper":true, + "resultWrapper":"AuthorizeDBSecurityGroupIngressResult" + }, + "errors":[ + { + "shape":"DBSecurityGroupNotFoundFault", + "error":{ + "code":"DBSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidDBSecurityGroupStateFault", + "error":{ + "code":"InvalidDBSecurityGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AuthorizationAlreadyExistsFault", + "error":{ + "code":"AuthorizationAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AuthorizationQuotaExceededFault", + "error":{ + "code":"AuthorizationQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CopyDBParameterGroup":{ + "name":"CopyDBParameterGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CopyDBParameterGroupMessage"}, + "output":{ + "shape":"CopyDBParameterGroupResult", + "wrapper":true, + "resultWrapper":"CopyDBParameterGroupResult" + }, + "errors":[ + { + "shape":"DBParameterGroupNotFoundFault", + "error":{ + "code":"DBParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBParameterGroupAlreadyExistsFault", + "error":{ + "code":"DBParameterGroupAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBParameterGroupQuotaExceededFault", + "error":{ + "code":"DBParameterGroupQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CopyDBSnapshot":{ + "name":"CopyDBSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CopyDBSnapshotMessage"}, + "output":{ + "shape":"CopyDBSnapshotResult", + "wrapper":true, + "resultWrapper":"CopyDBSnapshotResult" + }, + "errors":[ + { + "shape":"DBSnapshotAlreadyExistsFault", + "error":{ + "code":"DBSnapshotAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSnapshotNotFoundFault", + "error":{ + "code":"DBSnapshotNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidDBSnapshotStateFault", + "error":{ + "code":"InvalidDBSnapshotState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SnapshotQuotaExceededFault", + "error":{ + "code":"SnapshotQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CopyOptionGroup":{ + "name":"CopyOptionGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CopyOptionGroupMessage"}, + "output":{ + "shape":"CopyOptionGroupResult", + "wrapper":true, + "resultWrapper":"CopyOptionGroupResult" + }, + "errors":[ + { + "shape":"OptionGroupAlreadyExistsFault", + "error":{ + "code":"OptionGroupAlreadyExistsFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"OptionGroupNotFoundFault", + "error":{ + "code":"OptionGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"OptionGroupQuotaExceededFault", + "error":{ + "code":"OptionGroupQuotaExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateDBInstance":{ + "name":"CreateDBInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDBInstanceMessage"}, + "output":{ + "shape":"CreateDBInstanceResult", + "wrapper":true, + "resultWrapper":"CreateDBInstanceResult" + }, + "errors":[ + { + "shape":"DBInstanceAlreadyExistsFault", + "error":{ + "code":"DBInstanceAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InsufficientDBInstanceCapacityFault", + "error":{ + "code":"InsufficientDBInstanceCapacity", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBParameterGroupNotFoundFault", + "error":{ + "code":"DBParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSecurityGroupNotFoundFault", + "error":{ + "code":"DBSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InstanceQuotaExceededFault", + "error":{ + "code":"InstanceQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"StorageQuotaExceededFault", + "error":{ + "code":"StorageQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSubnetGroupNotFoundFault", + "error":{ + "code":"DBSubnetGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSubnetGroupDoesNotCoverEnoughAZs", + "error":{ + "code":"DBSubnetGroupDoesNotCoverEnoughAZs", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidSubnet", + "error":{ + "code":"InvalidSubnet", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidVPCNetworkStateFault", + "error":{ + "code":"InvalidVPCNetworkStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ProvisionedIopsNotAvailableInAZFault", + "error":{ + "code":"ProvisionedIopsNotAvailableInAZFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"OptionGroupNotFoundFault", + "error":{ + "code":"OptionGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"StorageTypeNotSupportedFault", + "error":{ + "code":"StorageTypeNotSupported", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AuthorizationNotFoundFault", + "error":{ + "code":"AuthorizationNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"KMSKeyNotAccessibleFault", + "error":{ + "code":"KMSKeyNotAccessibleFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateDBInstanceReadReplica":{ + "name":"CreateDBInstanceReadReplica", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDBInstanceReadReplicaMessage"}, + "output":{ + "shape":"CreateDBInstanceReadReplicaResult", + "wrapper":true, + "resultWrapper":"CreateDBInstanceReadReplicaResult" + }, + "errors":[ + { + "shape":"DBInstanceAlreadyExistsFault", + "error":{ + "code":"DBInstanceAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InsufficientDBInstanceCapacityFault", + "error":{ + "code":"InsufficientDBInstanceCapacity", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBParameterGroupNotFoundFault", + "error":{ + "code":"DBParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSecurityGroupNotFoundFault", + "error":{ + "code":"DBSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InstanceQuotaExceededFault", + "error":{ + "code":"InstanceQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"StorageQuotaExceededFault", + "error":{ + "code":"StorageQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBInstanceNotFoundFault", + "error":{ + "code":"DBInstanceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidDBInstanceStateFault", + "error":{ + "code":"InvalidDBInstanceState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSubnetGroupNotFoundFault", + "error":{ + "code":"DBSubnetGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSubnetGroupDoesNotCoverEnoughAZs", + "error":{ + "code":"DBSubnetGroupDoesNotCoverEnoughAZs", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidSubnet", + "error":{ + "code":"InvalidSubnet", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidVPCNetworkStateFault", + "error":{ + "code":"InvalidVPCNetworkStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ProvisionedIopsNotAvailableInAZFault", + "error":{ + "code":"ProvisionedIopsNotAvailableInAZFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"OptionGroupNotFoundFault", + "error":{ + "code":"OptionGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSubnetGroupNotAllowedFault", + "error":{ + "code":"DBSubnetGroupNotAllowedFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidDBSubnetGroupFault", + "error":{ + "code":"InvalidDBSubnetGroupFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"StorageTypeNotSupportedFault", + "error":{ + "code":"StorageTypeNotSupported", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"KMSKeyNotAccessibleFault", + "error":{ + "code":"KMSKeyNotAccessibleFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateDBParameterGroup":{ + "name":"CreateDBParameterGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDBParameterGroupMessage"}, + "output":{ + "shape":"CreateDBParameterGroupResult", + "wrapper":true, + "resultWrapper":"CreateDBParameterGroupResult" + }, + "errors":[ + { + "shape":"DBParameterGroupQuotaExceededFault", + "error":{ + "code":"DBParameterGroupQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBParameterGroupAlreadyExistsFault", + "error":{ + "code":"DBParameterGroupAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateDBSecurityGroup":{ + "name":"CreateDBSecurityGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDBSecurityGroupMessage"}, + "output":{ + "shape":"CreateDBSecurityGroupResult", + "wrapper":true, + "resultWrapper":"CreateDBSecurityGroupResult" + }, + "errors":[ + { + "shape":"DBSecurityGroupAlreadyExistsFault", + "error":{ + "code":"DBSecurityGroupAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSecurityGroupQuotaExceededFault", + "error":{ + "code":"QuotaExceeded.DBSecurityGroup", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSecurityGroupNotSupportedFault", + "error":{ + "code":"DBSecurityGroupNotSupported", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateDBSnapshot":{ + "name":"CreateDBSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDBSnapshotMessage"}, + "output":{ + "shape":"CreateDBSnapshotResult", + "wrapper":true, + "resultWrapper":"CreateDBSnapshotResult" + }, + "errors":[ + { + "shape":"DBSnapshotAlreadyExistsFault", + "error":{ + "code":"DBSnapshotAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidDBInstanceStateFault", + "error":{ + "code":"InvalidDBInstanceState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBInstanceNotFoundFault", + "error":{ + "code":"DBInstanceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SnapshotQuotaExceededFault", + "error":{ + "code":"SnapshotQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateDBSubnetGroup":{ + "name":"CreateDBSubnetGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDBSubnetGroupMessage"}, + "output":{ + "shape":"CreateDBSubnetGroupResult", + "wrapper":true, + "resultWrapper":"CreateDBSubnetGroupResult" + }, + "errors":[ + { + "shape":"DBSubnetGroupAlreadyExistsFault", + "error":{ + "code":"DBSubnetGroupAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSubnetGroupQuotaExceededFault", + "error":{ + "code":"DBSubnetGroupQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSubnetQuotaExceededFault", + "error":{ + "code":"DBSubnetQuotaExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSubnetGroupDoesNotCoverEnoughAZs", + "error":{ + "code":"DBSubnetGroupDoesNotCoverEnoughAZs", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidSubnet", + "error":{ + "code":"InvalidSubnet", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateEventSubscription":{ + "name":"CreateEventSubscription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateEventSubscriptionMessage"}, + "output":{ + "shape":"CreateEventSubscriptionResult", + "wrapper":true, + "resultWrapper":"CreateEventSubscriptionResult" + }, + "errors":[ + { + "shape":"EventSubscriptionQuotaExceededFault", + "error":{ + "code":"EventSubscriptionQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SubscriptionAlreadyExistFault", + "error":{ + "code":"SubscriptionAlreadyExist", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SNSInvalidTopicFault", + "error":{ + "code":"SNSInvalidTopic", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SNSNoAuthorizationFault", + "error":{ + "code":"SNSNoAuthorization", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SNSTopicArnNotFoundFault", + "error":{ + "code":"SNSTopicArnNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SubscriptionCategoryNotFoundFault", + "error":{ + "code":"SubscriptionCategoryNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SourceNotFoundFault", + "error":{ + "code":"SourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateOptionGroup":{ + "name":"CreateOptionGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateOptionGroupMessage"}, + "output":{ + "shape":"CreateOptionGroupResult", + "wrapper":true, + "resultWrapper":"CreateOptionGroupResult" + }, + "errors":[ + { + "shape":"OptionGroupAlreadyExistsFault", + "error":{ + "code":"OptionGroupAlreadyExistsFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"OptionGroupQuotaExceededFault", + "error":{ + "code":"OptionGroupQuotaExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteDBInstance":{ + "name":"DeleteDBInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDBInstanceMessage"}, + "output":{ + "shape":"DeleteDBInstanceResult", + "wrapper":true, + "resultWrapper":"DeleteDBInstanceResult" + }, + "errors":[ + { + "shape":"DBInstanceNotFoundFault", + "error":{ + "code":"DBInstanceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidDBInstanceStateFault", + "error":{ + "code":"InvalidDBInstanceState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSnapshotAlreadyExistsFault", + "error":{ + "code":"DBSnapshotAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SnapshotQuotaExceededFault", + "error":{ + "code":"SnapshotQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteDBParameterGroup":{ + "name":"DeleteDBParameterGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDBParameterGroupMessage"}, + "errors":[ + { + "shape":"InvalidDBParameterGroupStateFault", + "error":{ + "code":"InvalidDBParameterGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBParameterGroupNotFoundFault", + "error":{ + "code":"DBParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteDBSecurityGroup":{ + "name":"DeleteDBSecurityGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDBSecurityGroupMessage"}, + "errors":[ + { + "shape":"InvalidDBSecurityGroupStateFault", + "error":{ + "code":"InvalidDBSecurityGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSecurityGroupNotFoundFault", + "error":{ + "code":"DBSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteDBSnapshot":{ + "name":"DeleteDBSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDBSnapshotMessage"}, + "output":{ + "shape":"DeleteDBSnapshotResult", + "wrapper":true, + "resultWrapper":"DeleteDBSnapshotResult" + }, + "errors":[ + { + "shape":"InvalidDBSnapshotStateFault", + "error":{ + "code":"InvalidDBSnapshotState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSnapshotNotFoundFault", + "error":{ + "code":"DBSnapshotNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteDBSubnetGroup":{ + "name":"DeleteDBSubnetGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDBSubnetGroupMessage"}, + "errors":[ + { + "shape":"InvalidDBSubnetGroupStateFault", + "error":{ + "code":"InvalidDBSubnetGroupStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidDBSubnetStateFault", + "error":{ + "code":"InvalidDBSubnetStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSubnetGroupNotFoundFault", + "error":{ + "code":"DBSubnetGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteEventSubscription":{ + "name":"DeleteEventSubscription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteEventSubscriptionMessage"}, + "output":{ + "shape":"DeleteEventSubscriptionResult", + "wrapper":true, + "resultWrapper":"DeleteEventSubscriptionResult" + }, + "errors":[ + { + "shape":"SubscriptionNotFoundFault", + "error":{ + "code":"SubscriptionNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidEventSubscriptionStateFault", + "error":{ + "code":"InvalidEventSubscriptionState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteOptionGroup":{ + "name":"DeleteOptionGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteOptionGroupMessage"}, + "errors":[ + { + "shape":"OptionGroupNotFoundFault", + "error":{ + "code":"OptionGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidOptionGroupStateFault", + "error":{ + "code":"InvalidOptionGroupStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeAccountAttributes":{ + "name":"DescribeAccountAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAccountAttributesMessage"}, + "output":{ + "shape":"AccountAttributesMessage", + "resultWrapper":"DescribeAccountAttributesResult" + } + }, + "DescribeCertificates":{ + "name":"DescribeCertificates", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeCertificatesMessage"}, + "output":{ + "shape":"CertificateMessage", + "resultWrapper":"DescribeCertificatesResult" + }, + "errors":[ + { + "shape":"CertificateNotFoundFault", + "error":{ + "code":"CertificateNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeDBEngineVersions":{ + "name":"DescribeDBEngineVersions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDBEngineVersionsMessage"}, + "output":{ + "shape":"DBEngineVersionMessage", + "resultWrapper":"DescribeDBEngineVersionsResult" + } + }, + "DescribeDBInstances":{ + "name":"DescribeDBInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDBInstancesMessage"}, + "output":{ + "shape":"DBInstanceMessage", + "resultWrapper":"DescribeDBInstancesResult" + }, + "errors":[ + { + "shape":"DBInstanceNotFoundFault", + "error":{ + "code":"DBInstanceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeDBLogFiles":{ + "name":"DescribeDBLogFiles", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDBLogFilesMessage"}, + "output":{ + "shape":"DescribeDBLogFilesResponse", + "resultWrapper":"DescribeDBLogFilesResult" + }, + "errors":[ + { + "shape":"DBInstanceNotFoundFault", + "error":{ + "code":"DBInstanceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeDBParameterGroups":{ + "name":"DescribeDBParameterGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDBParameterGroupsMessage"}, + "output":{ + "shape":"DBParameterGroupsMessage", + "resultWrapper":"DescribeDBParameterGroupsResult" + }, + "errors":[ + { + "shape":"DBParameterGroupNotFoundFault", + "error":{ + "code":"DBParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeDBParameters":{ + "name":"DescribeDBParameters", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDBParametersMessage"}, + "output":{ + "shape":"DBParameterGroupDetails", + "resultWrapper":"DescribeDBParametersResult" + }, + "errors":[ + { + "shape":"DBParameterGroupNotFoundFault", + "error":{ + "code":"DBParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeDBSecurityGroups":{ + "name":"DescribeDBSecurityGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDBSecurityGroupsMessage"}, + "output":{ + "shape":"DBSecurityGroupMessage", + "resultWrapper":"DescribeDBSecurityGroupsResult" + }, + "errors":[ + { + "shape":"DBSecurityGroupNotFoundFault", + "error":{ + "code":"DBSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeDBSnapshots":{ + "name":"DescribeDBSnapshots", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDBSnapshotsMessage"}, + "output":{ + "shape":"DBSnapshotMessage", + "resultWrapper":"DescribeDBSnapshotsResult" + }, + "errors":[ + { + "shape":"DBSnapshotNotFoundFault", + "error":{ + "code":"DBSnapshotNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeDBSubnetGroups":{ + "name":"DescribeDBSubnetGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDBSubnetGroupsMessage"}, + "output":{ + "shape":"DBSubnetGroupMessage", + "resultWrapper":"DescribeDBSubnetGroupsResult" + }, + "errors":[ + { + "shape":"DBSubnetGroupNotFoundFault", + "error":{ + "code":"DBSubnetGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeEngineDefaultParameters":{ + "name":"DescribeEngineDefaultParameters", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeEngineDefaultParametersMessage"}, + "output":{ + "shape":"DescribeEngineDefaultParametersResult", + "wrapper":true, + "resultWrapper":"DescribeEngineDefaultParametersResult" + } + }, + "DescribeEventCategories":{ + "name":"DescribeEventCategories", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeEventCategoriesMessage"}, + "output":{ + "shape":"EventCategoriesMessage", + "resultWrapper":"DescribeEventCategoriesResult" + } + }, + "DescribeEventSubscriptions":{ + "name":"DescribeEventSubscriptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeEventSubscriptionsMessage"}, + "output":{ + "shape":"EventSubscriptionsMessage", + "resultWrapper":"DescribeEventSubscriptionsResult" + }, + "errors":[ + { + "shape":"SubscriptionNotFoundFault", + "error":{ + "code":"SubscriptionNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeEvents":{ + "name":"DescribeEvents", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeEventsMessage"}, + "output":{ + "shape":"EventsMessage", + "resultWrapper":"DescribeEventsResult" + } + }, + "DescribeOptionGroupOptions":{ + "name":"DescribeOptionGroupOptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeOptionGroupOptionsMessage"}, + "output":{ + "shape":"OptionGroupOptionsMessage", + "resultWrapper":"DescribeOptionGroupOptionsResult" + } + }, + "DescribeOptionGroups":{ + "name":"DescribeOptionGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeOptionGroupsMessage"}, + "output":{ + "shape":"OptionGroups", + "resultWrapper":"DescribeOptionGroupsResult" + }, + "errors":[ + { + "shape":"OptionGroupNotFoundFault", + "error":{ + "code":"OptionGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeOrderableDBInstanceOptions":{ + "name":"DescribeOrderableDBInstanceOptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeOrderableDBInstanceOptionsMessage"}, + "output":{ + "shape":"OrderableDBInstanceOptionsMessage", + "resultWrapper":"DescribeOrderableDBInstanceOptionsResult" + } + }, + "DescribePendingMaintenanceActions":{ + "name":"DescribePendingMaintenanceActions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribePendingMaintenanceActionsMessage"}, + "output":{ + "shape":"PendingMaintenanceActionsMessage", + "resultWrapper":"DescribePendingMaintenanceActionsResult" + }, + "errors":[ + { + "shape":"ResourceNotFoundFault", + "error":{ + "code":"ResourceNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeReservedDBInstances":{ + "name":"DescribeReservedDBInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeReservedDBInstancesMessage"}, + "output":{ + "shape":"ReservedDBInstanceMessage", + "resultWrapper":"DescribeReservedDBInstancesResult" + }, + "errors":[ + { + "shape":"ReservedDBInstanceNotFoundFault", + "error":{ + "code":"ReservedDBInstanceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeReservedDBInstancesOfferings":{ + "name":"DescribeReservedDBInstancesOfferings", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeReservedDBInstancesOfferingsMessage"}, + "output":{ + "shape":"ReservedDBInstancesOfferingMessage", + "resultWrapper":"DescribeReservedDBInstancesOfferingsResult" + }, + "errors":[ + { + "shape":"ReservedDBInstancesOfferingNotFoundFault", + "error":{ + "code":"ReservedDBInstancesOfferingNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DownloadDBLogFilePortion":{ + "name":"DownloadDBLogFilePortion", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DownloadDBLogFilePortionMessage"}, + "output":{ + "shape":"DownloadDBLogFilePortionDetails", + "resultWrapper":"DownloadDBLogFilePortionResult" + }, + "errors":[ + { + "shape":"DBInstanceNotFoundFault", + "error":{ + "code":"DBInstanceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForResourceMessage"}, + "output":{ + "shape":"TagListMessage", + "resultWrapper":"ListTagsForResourceResult" + }, + "errors":[ + { + "shape":"DBInstanceNotFoundFault", + "error":{ + "code":"DBInstanceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSnapshotNotFoundFault", + "error":{ + "code":"DBSnapshotNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "ModifyDBInstance":{ + "name":"ModifyDBInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyDBInstanceMessage"}, + "output":{ + "shape":"ModifyDBInstanceResult", + "wrapper":true, + "resultWrapper":"ModifyDBInstanceResult" + }, + "errors":[ + { + "shape":"InvalidDBInstanceStateFault", + "error":{ + "code":"InvalidDBInstanceState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidDBSecurityGroupStateFault", + "error":{ + "code":"InvalidDBSecurityGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBInstanceAlreadyExistsFault", + "error":{ + "code":"DBInstanceAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBInstanceNotFoundFault", + "error":{ + "code":"DBInstanceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSecurityGroupNotFoundFault", + "error":{ + "code":"DBSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBParameterGroupNotFoundFault", + "error":{ + "code":"DBParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InsufficientDBInstanceCapacityFault", + "error":{ + "code":"InsufficientDBInstanceCapacity", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"StorageQuotaExceededFault", + "error":{ + "code":"StorageQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidVPCNetworkStateFault", + "error":{ + "code":"InvalidVPCNetworkStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ProvisionedIopsNotAvailableInAZFault", + "error":{ + "code":"ProvisionedIopsNotAvailableInAZFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"OptionGroupNotFoundFault", + "error":{ + "code":"OptionGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBUpgradeDependencyFailureFault", + "error":{ + "code":"DBUpgradeDependencyFailure", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"StorageTypeNotSupportedFault", + "error":{ + "code":"StorageTypeNotSupported", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AuthorizationNotFoundFault", + "error":{ + "code":"AuthorizationNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CertificateNotFoundFault", + "error":{ + "code":"CertificateNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "ModifyDBParameterGroup":{ + "name":"ModifyDBParameterGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyDBParameterGroupMessage"}, + "output":{ + "shape":"DBParameterGroupNameMessage", + "resultWrapper":"ModifyDBParameterGroupResult" + }, + "errors":[ + { + "shape":"DBParameterGroupNotFoundFault", + "error":{ + "code":"DBParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidDBParameterGroupStateFault", + "error":{ + "code":"InvalidDBParameterGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "ModifyDBSubnetGroup":{ + "name":"ModifyDBSubnetGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyDBSubnetGroupMessage"}, + "output":{ + "shape":"ModifyDBSubnetGroupResult", + "wrapper":true, + "resultWrapper":"ModifyDBSubnetGroupResult" + }, + "errors":[ + { + "shape":"DBSubnetGroupNotFoundFault", + "error":{ + "code":"DBSubnetGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSubnetQuotaExceededFault", + "error":{ + "code":"DBSubnetQuotaExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SubnetAlreadyInUse", + "error":{ + "code":"SubnetAlreadyInUse", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSubnetGroupDoesNotCoverEnoughAZs", + "error":{ + "code":"DBSubnetGroupDoesNotCoverEnoughAZs", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidSubnet", + "error":{ + "code":"InvalidSubnet", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "ModifyEventSubscription":{ + "name":"ModifyEventSubscription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyEventSubscriptionMessage"}, + "output":{ + "shape":"ModifyEventSubscriptionResult", + "wrapper":true, + "resultWrapper":"ModifyEventSubscriptionResult" + }, + "errors":[ + { + "shape":"EventSubscriptionQuotaExceededFault", + "error":{ + "code":"EventSubscriptionQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SubscriptionNotFoundFault", + "error":{ + "code":"SubscriptionNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SNSInvalidTopicFault", + "error":{ + "code":"SNSInvalidTopic", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SNSNoAuthorizationFault", + "error":{ + "code":"SNSNoAuthorization", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SNSTopicArnNotFoundFault", + "error":{ + "code":"SNSTopicArnNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SubscriptionCategoryNotFoundFault", + "error":{ + "code":"SubscriptionCategoryNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "ModifyOptionGroup":{ + "name":"ModifyOptionGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyOptionGroupMessage"}, + "output":{ + "shape":"ModifyOptionGroupResult", + "wrapper":true, + "resultWrapper":"ModifyOptionGroupResult" + }, + "errors":[ + { + "shape":"InvalidOptionGroupStateFault", + "error":{ + "code":"InvalidOptionGroupStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"OptionGroupNotFoundFault", + "error":{ + "code":"OptionGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "PromoteReadReplica":{ + "name":"PromoteReadReplica", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PromoteReadReplicaMessage"}, + "output":{ + "shape":"PromoteReadReplicaResult", + "wrapper":true, + "resultWrapper":"PromoteReadReplicaResult" + }, + "errors":[ + { + "shape":"InvalidDBInstanceStateFault", + "error":{ + "code":"InvalidDBInstanceState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBInstanceNotFoundFault", + "error":{ + "code":"DBInstanceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "PurchaseReservedDBInstancesOffering":{ + "name":"PurchaseReservedDBInstancesOffering", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PurchaseReservedDBInstancesOfferingMessage"}, + "output":{ + "shape":"PurchaseReservedDBInstancesOfferingResult", + "wrapper":true, + "resultWrapper":"PurchaseReservedDBInstancesOfferingResult" + }, + "errors":[ + { + "shape":"ReservedDBInstancesOfferingNotFoundFault", + "error":{ + "code":"ReservedDBInstancesOfferingNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ReservedDBInstanceAlreadyExistsFault", + "error":{ + "code":"ReservedDBInstanceAlreadyExists", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ReservedDBInstanceQuotaExceededFault", + "error":{ + "code":"ReservedDBInstanceQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "RebootDBInstance":{ + "name":"RebootDBInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RebootDBInstanceMessage"}, + "output":{ + "shape":"RebootDBInstanceResult", + "wrapper":true, + "resultWrapper":"RebootDBInstanceResult" + }, + "errors":[ + { + "shape":"InvalidDBInstanceStateFault", + "error":{ + "code":"InvalidDBInstanceState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBInstanceNotFoundFault", + "error":{ + "code":"DBInstanceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "RemoveSourceIdentifierFromSubscription":{ + "name":"RemoveSourceIdentifierFromSubscription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RemoveSourceIdentifierFromSubscriptionMessage"}, + "output":{ + "shape":"RemoveSourceIdentifierFromSubscriptionResult", + "wrapper":true, + "resultWrapper":"RemoveSourceIdentifierFromSubscriptionResult" + }, + "errors":[ + { + "shape":"SubscriptionNotFoundFault", + "error":{ + "code":"SubscriptionNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SourceNotFoundFault", + "error":{ + "code":"SourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "RemoveTagsFromResource":{ + "name":"RemoveTagsFromResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RemoveTagsFromResourceMessage"}, + "errors":[ + { + "shape":"DBInstanceNotFoundFault", + "error":{ + "code":"DBInstanceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSnapshotNotFoundFault", + "error":{ + "code":"DBSnapshotNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "ResetDBParameterGroup":{ + "name":"ResetDBParameterGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ResetDBParameterGroupMessage"}, + "output":{ + "shape":"DBParameterGroupNameMessage", + "resultWrapper":"ResetDBParameterGroupResult" + }, + "errors":[ + { + "shape":"InvalidDBParameterGroupStateFault", + "error":{ + "code":"InvalidDBParameterGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBParameterGroupNotFoundFault", + "error":{ + "code":"DBParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "RestoreDBInstanceFromDBSnapshot":{ + "name":"RestoreDBInstanceFromDBSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RestoreDBInstanceFromDBSnapshotMessage"}, + "output":{ + "shape":"RestoreDBInstanceFromDBSnapshotResult", + "wrapper":true, + "resultWrapper":"RestoreDBInstanceFromDBSnapshotResult" + }, + "errors":[ + { + "shape":"DBInstanceAlreadyExistsFault", + "error":{ + "code":"DBInstanceAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSnapshotNotFoundFault", + "error":{ + "code":"DBSnapshotNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InstanceQuotaExceededFault", + "error":{ + "code":"InstanceQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InsufficientDBInstanceCapacityFault", + "error":{ + "code":"InsufficientDBInstanceCapacity", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidDBSnapshotStateFault", + "error":{ + "code":"InvalidDBSnapshotState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"StorageQuotaExceededFault", + "error":{ + "code":"StorageQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidVPCNetworkStateFault", + "error":{ + "code":"InvalidVPCNetworkStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidRestoreFault", + "error":{ + "code":"InvalidRestoreFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSubnetGroupNotFoundFault", + "error":{ + "code":"DBSubnetGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSubnetGroupDoesNotCoverEnoughAZs", + "error":{ + "code":"DBSubnetGroupDoesNotCoverEnoughAZs", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidSubnet", + "error":{ + "code":"InvalidSubnet", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ProvisionedIopsNotAvailableInAZFault", + "error":{ + "code":"ProvisionedIopsNotAvailableInAZFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"OptionGroupNotFoundFault", + "error":{ + "code":"OptionGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"StorageTypeNotSupportedFault", + "error":{ + "code":"StorageTypeNotSupported", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AuthorizationNotFoundFault", + "error":{ + "code":"AuthorizationNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"KMSKeyNotAccessibleFault", + "error":{ + "code":"KMSKeyNotAccessibleFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "RestoreDBInstanceToPointInTime":{ + "name":"RestoreDBInstanceToPointInTime", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RestoreDBInstanceToPointInTimeMessage"}, + "output":{ + "shape":"RestoreDBInstanceToPointInTimeResult", + "wrapper":true, + "resultWrapper":"RestoreDBInstanceToPointInTimeResult" + }, + "errors":[ + { + "shape":"DBInstanceAlreadyExistsFault", + "error":{ + "code":"DBInstanceAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBInstanceNotFoundFault", + "error":{ + "code":"DBInstanceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InstanceQuotaExceededFault", + "error":{ + "code":"InstanceQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InsufficientDBInstanceCapacityFault", + "error":{ + "code":"InsufficientDBInstanceCapacity", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidDBInstanceStateFault", + "error":{ + "code":"InvalidDBInstanceState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"PointInTimeRestoreNotEnabledFault", + "error":{ + "code":"PointInTimeRestoreNotEnabled", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"StorageQuotaExceededFault", + "error":{ + "code":"StorageQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidVPCNetworkStateFault", + "error":{ + "code":"InvalidVPCNetworkStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidRestoreFault", + "error":{ + "code":"InvalidRestoreFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSubnetGroupNotFoundFault", + "error":{ + "code":"DBSubnetGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DBSubnetGroupDoesNotCoverEnoughAZs", + "error":{ + "code":"DBSubnetGroupDoesNotCoverEnoughAZs", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidSubnet", + "error":{ + "code":"InvalidSubnet", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ProvisionedIopsNotAvailableInAZFault", + "error":{ + "code":"ProvisionedIopsNotAvailableInAZFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"OptionGroupNotFoundFault", + "error":{ + "code":"OptionGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"StorageTypeNotSupportedFault", + "error":{ + "code":"StorageTypeNotSupported", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AuthorizationNotFoundFault", + "error":{ + "code":"AuthorizationNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"KMSKeyNotAccessibleFault", + "error":{ + "code":"KMSKeyNotAccessibleFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "RevokeDBSecurityGroupIngress":{ + "name":"RevokeDBSecurityGroupIngress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RevokeDBSecurityGroupIngressMessage"}, + "output":{ + "shape":"RevokeDBSecurityGroupIngressResult", + "wrapper":true, + "resultWrapper":"RevokeDBSecurityGroupIngressResult" + }, + "errors":[ + { + "shape":"DBSecurityGroupNotFoundFault", + "error":{ + "code":"DBSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AuthorizationNotFoundFault", + "error":{ + "code":"AuthorizationNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidDBSecurityGroupStateFault", + "error":{ + "code":"InvalidDBSecurityGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + } + }, + "shapes":{ + "AccountAttributesMessage":{ + "type":"structure", + "members":{ + "AccountQuotas":{"shape":"AccountQuotaList"} + } + }, + "AccountQuota":{ + "type":"structure", + "members":{ + "AccountQuotaName":{"shape":"String"}, + "Used":{"shape":"Long"}, + "Max":{"shape":"Long"} + }, + "wrapper":true + }, + "AccountQuotaList":{ + "type":"list", + "member":{ + "shape":"AccountQuota", + "locationName":"AccountQuota" + } + }, + "AddSourceIdentifierToSubscriptionMessage":{ + "type":"structure", + "required":[ + "SubscriptionName", + "SourceIdentifier" + ], + "members":{ + "SubscriptionName":{"shape":"String"}, + "SourceIdentifier":{"shape":"String"} + } + }, + "AddTagsToResourceMessage":{ + "type":"structure", + "required":[ + "ResourceName", + "Tags" + ], + "members":{ + "ResourceName":{"shape":"String"}, + "Tags":{"shape":"TagList"} + } + }, + "ApplyMethod":{ + "type":"string", + "enum":[ + "immediate", + "pending-reboot" + ] + }, + "ApplyPendingMaintenanceActionMessage":{ + "type":"structure", + "required":[ + "ResourceIdentifier", + "ApplyAction", + "OptInType" + ], + "members":{ + "ResourceIdentifier":{"shape":"String"}, + "ApplyAction":{"shape":"String"}, + "OptInType":{"shape":"String"} + } + }, + "AuthorizationAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AuthorizationAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "AuthorizationNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AuthorizationNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "AuthorizationQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AuthorizationQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "AuthorizeDBSecurityGroupIngressMessage":{ + "type":"structure", + "required":["DBSecurityGroupName"], + "members":{ + "DBSecurityGroupName":{"shape":"String"}, + "CIDRIP":{"shape":"String"}, + "EC2SecurityGroupName":{"shape":"String"}, + "EC2SecurityGroupId":{"shape":"String"}, + "EC2SecurityGroupOwnerId":{"shape":"String"} + } + }, + "AvailabilityZone":{ + "type":"structure", + "members":{ + "Name":{"shape":"String"} + }, + "wrapper":true + }, + "AvailabilityZoneList":{ + "type":"list", + "member":{ + "shape":"AvailabilityZone", + "locationName":"AvailabilityZone" + } + }, + "Boolean":{"type":"boolean"}, + "BooleanOptional":{"type":"boolean"}, + "Certificate":{ + "type":"structure", + "members":{ + "CertificateIdentifier":{"shape":"String"}, + "CertificateType":{"shape":"String"}, + "Thumbprint":{"shape":"String"}, + "ValidFrom":{"shape":"TStamp"}, + "ValidTill":{"shape":"TStamp"} + }, + "wrapper":true + }, + "CertificateList":{ + "type":"list", + "member":{ + "shape":"Certificate", + "locationName":"Certificate" + } + }, + "CertificateMessage":{ + "type":"structure", + "members":{ + "Certificates":{"shape":"CertificateList"}, + "Marker":{"shape":"String"} + } + }, + "CertificateNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"CertificateNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "CharacterSet":{ + "type":"structure", + "members":{ + "CharacterSetName":{"shape":"String"}, + "CharacterSetDescription":{"shape":"String"} + } + }, + "CopyDBParameterGroupMessage":{ + "type":"structure", + "required":[ + "SourceDBParameterGroupIdentifier", + "TargetDBParameterGroupIdentifier", + "TargetDBParameterGroupDescription" + ], + "members":{ + "SourceDBParameterGroupIdentifier":{"shape":"String"}, + "TargetDBParameterGroupIdentifier":{"shape":"String"}, + "TargetDBParameterGroupDescription":{"shape":"String"}, + "Tags":{"shape":"TagList"} + } + }, + "CopyDBSnapshotMessage":{ + "type":"structure", + "required":[ + "SourceDBSnapshotIdentifier", + "TargetDBSnapshotIdentifier" + ], + "members":{ + "SourceDBSnapshotIdentifier":{"shape":"String"}, + "TargetDBSnapshotIdentifier":{"shape":"String"}, + "Tags":{"shape":"TagList"} + } + }, + "CopyOptionGroupMessage":{ + "type":"structure", + "required":[ + "SourceOptionGroupIdentifier", + "TargetOptionGroupIdentifier", + "TargetOptionGroupDescription" + ], + "members":{ + "SourceOptionGroupIdentifier":{"shape":"String"}, + "TargetOptionGroupIdentifier":{"shape":"String"}, + "TargetOptionGroupDescription":{"shape":"String"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateDBInstanceMessage":{ + "type":"structure", + "required":[ + "DBInstanceIdentifier", + "AllocatedStorage", + "DBInstanceClass", + "Engine", + "MasterUsername", + "MasterUserPassword" + ], + "members":{ + "DBName":{"shape":"String"}, + "DBInstanceIdentifier":{"shape":"String"}, + "AllocatedStorage":{"shape":"IntegerOptional"}, + "DBInstanceClass":{"shape":"String"}, + "Engine":{"shape":"String"}, + "MasterUsername":{"shape":"String"}, + "MasterUserPassword":{"shape":"String"}, + "DBSecurityGroups":{"shape":"DBSecurityGroupNameList"}, + "VpcSecurityGroupIds":{"shape":"VpcSecurityGroupIdList"}, + "AvailabilityZone":{"shape":"String"}, + "DBSubnetGroupName":{"shape":"String"}, + "PreferredMaintenanceWindow":{"shape":"String"}, + "DBParameterGroupName":{"shape":"String"}, + "BackupRetentionPeriod":{"shape":"IntegerOptional"}, + "PreferredBackupWindow":{"shape":"String"}, + "Port":{"shape":"IntegerOptional"}, + "MultiAZ":{"shape":"BooleanOptional"}, + "EngineVersion":{"shape":"String"}, + "AutoMinorVersionUpgrade":{"shape":"BooleanOptional"}, + "LicenseModel":{"shape":"String"}, + "Iops":{"shape":"IntegerOptional"}, + "OptionGroupName":{"shape":"String"}, + "CharacterSetName":{"shape":"String"}, + "PubliclyAccessible":{"shape":"BooleanOptional"}, + "Tags":{"shape":"TagList"}, + "StorageType":{"shape":"String"}, + "TdeCredentialArn":{"shape":"String"}, + "TdeCredentialPassword":{"shape":"String"}, + "StorageEncrypted":{"shape":"BooleanOptional"}, + "KmsKeyId":{"shape":"String"} + } + }, + "CreateDBInstanceReadReplicaMessage":{ + "type":"structure", + "required":[ + "DBInstanceIdentifier", + "SourceDBInstanceIdentifier" + ], + "members":{ + "DBInstanceIdentifier":{"shape":"String"}, + "SourceDBInstanceIdentifier":{"shape":"String"}, + "DBInstanceClass":{"shape":"String"}, + "AvailabilityZone":{"shape":"String"}, + "Port":{"shape":"IntegerOptional"}, + "AutoMinorVersionUpgrade":{"shape":"BooleanOptional"}, + "Iops":{"shape":"IntegerOptional"}, + "OptionGroupName":{"shape":"String"}, + "PubliclyAccessible":{"shape":"BooleanOptional"}, + "Tags":{"shape":"TagList"}, + "DBSubnetGroupName":{"shape":"String"}, + "StorageType":{"shape":"String"} + } + }, + "CreateDBParameterGroupMessage":{ + "type":"structure", + "required":[ + "DBParameterGroupName", + "DBParameterGroupFamily", + "Description" + ], + "members":{ + "DBParameterGroupName":{"shape":"String"}, + "DBParameterGroupFamily":{"shape":"String"}, + "Description":{"shape":"String"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateDBSecurityGroupMessage":{ + "type":"structure", + "required":[ + "DBSecurityGroupName", + "DBSecurityGroupDescription" + ], + "members":{ + "DBSecurityGroupName":{"shape":"String"}, + "DBSecurityGroupDescription":{"shape":"String"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateDBSnapshotMessage":{ + "type":"structure", + "required":[ + "DBSnapshotIdentifier", + "DBInstanceIdentifier" + ], + "members":{ + "DBSnapshotIdentifier":{"shape":"String"}, + "DBInstanceIdentifier":{"shape":"String"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateDBSubnetGroupMessage":{ + "type":"structure", + "required":[ + "DBSubnetGroupName", + "DBSubnetGroupDescription", + "SubnetIds" + ], + "members":{ + "DBSubnetGroupName":{"shape":"String"}, + "DBSubnetGroupDescription":{"shape":"String"}, + "SubnetIds":{"shape":"SubnetIdentifierList"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateEventSubscriptionMessage":{ + "type":"structure", + "required":[ + "SubscriptionName", + "SnsTopicArn" + ], + "members":{ + "SubscriptionName":{"shape":"String"}, + "SnsTopicArn":{"shape":"String"}, + "SourceType":{"shape":"String"}, + "EventCategories":{"shape":"EventCategoriesList"}, + "SourceIds":{"shape":"SourceIdsList"}, + "Enabled":{"shape":"BooleanOptional"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateOptionGroupMessage":{ + "type":"structure", + "required":[ + "OptionGroupName", + "EngineName", + "MajorEngineVersion", + "OptionGroupDescription" + ], + "members":{ + "OptionGroupName":{"shape":"String"}, + "EngineName":{"shape":"String"}, + "MajorEngineVersion":{"shape":"String"}, + "OptionGroupDescription":{"shape":"String"}, + "Tags":{"shape":"TagList"} + } + }, + "DBEngineVersion":{ + "type":"structure", + "members":{ + "Engine":{"shape":"String"}, + "EngineVersion":{"shape":"String"}, + "DBParameterGroupFamily":{"shape":"String"}, + "DBEngineDescription":{"shape":"String"}, + "DBEngineVersionDescription":{"shape":"String"}, + "DefaultCharacterSet":{"shape":"CharacterSet"}, + "SupportedCharacterSets":{"shape":"SupportedCharacterSetsList"} + } + }, + "DBEngineVersionList":{ + "type":"list", + "member":{ + "shape":"DBEngineVersion", + "locationName":"DBEngineVersion" + } + }, + "DBEngineVersionMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "DBEngineVersions":{"shape":"DBEngineVersionList"} + } + }, + "DBInstance":{ + "type":"structure", + "members":{ + "DBInstanceIdentifier":{"shape":"String"}, + "DBInstanceClass":{"shape":"String"}, + "Engine":{"shape":"String"}, + "DBInstanceStatus":{"shape":"String"}, + "MasterUsername":{"shape":"String"}, + "DBName":{"shape":"String"}, + "Endpoint":{"shape":"Endpoint"}, + "AllocatedStorage":{"shape":"Integer"}, + "InstanceCreateTime":{"shape":"TStamp"}, + "PreferredBackupWindow":{"shape":"String"}, + "BackupRetentionPeriod":{"shape":"Integer"}, + "DBSecurityGroups":{"shape":"DBSecurityGroupMembershipList"}, + "VpcSecurityGroups":{"shape":"VpcSecurityGroupMembershipList"}, + "DBParameterGroups":{"shape":"DBParameterGroupStatusList"}, + "AvailabilityZone":{"shape":"String"}, + "DBSubnetGroup":{"shape":"DBSubnetGroup"}, + "PreferredMaintenanceWindow":{"shape":"String"}, + "PendingModifiedValues":{"shape":"PendingModifiedValues"}, + "LatestRestorableTime":{"shape":"TStamp"}, + "MultiAZ":{"shape":"Boolean"}, + "EngineVersion":{"shape":"String"}, + "AutoMinorVersionUpgrade":{"shape":"Boolean"}, + "ReadReplicaSourceDBInstanceIdentifier":{"shape":"String"}, + "ReadReplicaDBInstanceIdentifiers":{"shape":"ReadReplicaDBInstanceIdentifierList"}, + "LicenseModel":{"shape":"String"}, + "Iops":{"shape":"IntegerOptional"}, + "OptionGroupMemberships":{"shape":"OptionGroupMembershipList"}, + "CharacterSetName":{"shape":"String"}, + "SecondaryAvailabilityZone":{"shape":"String"}, + "PubliclyAccessible":{"shape":"Boolean"}, + "StatusInfos":{"shape":"DBInstanceStatusInfoList"}, + "StorageType":{"shape":"String"}, + "TdeCredentialArn":{"shape":"String"}, + "StorageEncrypted":{"shape":"Boolean"}, + "KmsKeyId":{"shape":"String"}, + "DbiResourceId":{"shape":"String"}, + "CACertificateIdentifier":{"shape":"String"} + }, + "wrapper":true + }, + "DBInstanceAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DBInstanceAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "DBInstanceList":{ + "type":"list", + "member":{ + "shape":"DBInstance", + "locationName":"DBInstance" + } + }, + "DBInstanceMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "DBInstances":{"shape":"DBInstanceList"} + } + }, + "DBInstanceNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DBInstanceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "DBInstanceStatusInfo":{ + "type":"structure", + "members":{ + "StatusType":{"shape":"String"}, + "Normal":{"shape":"Boolean"}, + "Status":{"shape":"String"}, + "Message":{"shape":"String"} + } + }, + "DBInstanceStatusInfoList":{ + "type":"list", + "member":{ + "shape":"DBInstanceStatusInfo", + "locationName":"DBInstanceStatusInfo" + } + }, + "DBParameterGroup":{ + "type":"structure", + "members":{ + "DBParameterGroupName":{"shape":"String"}, + "DBParameterGroupFamily":{"shape":"String"}, + "Description":{"shape":"String"} + }, + "wrapper":true + }, + "DBParameterGroupAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DBParameterGroupAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "DBParameterGroupDetails":{ + "type":"structure", + "members":{ + "Parameters":{"shape":"ParametersList"}, + "Marker":{"shape":"String"} + } + }, + "DBParameterGroupList":{ + "type":"list", + "member":{ + "shape":"DBParameterGroup", + "locationName":"DBParameterGroup" + } + }, + "DBParameterGroupNameMessage":{ + "type":"structure", + "members":{ + "DBParameterGroupName":{"shape":"String"} + } + }, + "DBParameterGroupNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DBParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "DBParameterGroupQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DBParameterGroupQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "DBParameterGroupStatus":{ + "type":"structure", + "members":{ + "DBParameterGroupName":{"shape":"String"}, + "ParameterApplyStatus":{"shape":"String"} + } + }, + "DBParameterGroupStatusList":{ + "type":"list", + "member":{ + "shape":"DBParameterGroupStatus", + "locationName":"DBParameterGroup" + } + }, + "DBParameterGroupsMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "DBParameterGroups":{"shape":"DBParameterGroupList"} + } + }, + "DBSecurityGroup":{ + "type":"structure", + "members":{ + "OwnerId":{"shape":"String"}, + "DBSecurityGroupName":{"shape":"String"}, + "DBSecurityGroupDescription":{"shape":"String"}, + "VpcId":{"shape":"String"}, + "EC2SecurityGroups":{"shape":"EC2SecurityGroupList"}, + "IPRanges":{"shape":"IPRangeList"} + }, + "wrapper":true + }, + "DBSecurityGroupAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DBSecurityGroupAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "DBSecurityGroupMembership":{ + "type":"structure", + "members":{ + "DBSecurityGroupName":{"shape":"String"}, + "Status":{"shape":"String"} + } + }, + "DBSecurityGroupMembershipList":{ + "type":"list", + "member":{ + "shape":"DBSecurityGroupMembership", + "locationName":"DBSecurityGroup" + } + }, + "DBSecurityGroupMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "DBSecurityGroups":{"shape":"DBSecurityGroups"} + } + }, + "DBSecurityGroupNameList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"DBSecurityGroupName" + } + }, + "DBSecurityGroupNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DBSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "DBSecurityGroupNotSupportedFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DBSecurityGroupNotSupported", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "DBSecurityGroupQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"QuotaExceeded.DBSecurityGroup", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "DBSecurityGroups":{ + "type":"list", + "member":{ + "shape":"DBSecurityGroup", + "locationName":"DBSecurityGroup" + } + }, + "DBSnapshot":{ + "type":"structure", + "members":{ + "DBSnapshotIdentifier":{"shape":"String"}, + "DBInstanceIdentifier":{"shape":"String"}, + "SnapshotCreateTime":{"shape":"TStamp"}, + "Engine":{"shape":"String"}, + "AllocatedStorage":{"shape":"Integer"}, + "Status":{"shape":"String"}, + "Port":{"shape":"Integer"}, + "AvailabilityZone":{"shape":"String"}, + "VpcId":{"shape":"String"}, + "InstanceCreateTime":{"shape":"TStamp"}, + "MasterUsername":{"shape":"String"}, + "EngineVersion":{"shape":"String"}, + "LicenseModel":{"shape":"String"}, + "SnapshotType":{"shape":"String"}, + "Iops":{"shape":"IntegerOptional"}, + "OptionGroupName":{"shape":"String"}, + "PercentProgress":{"shape":"Integer"}, + "SourceRegion":{"shape":"String"}, + "StorageType":{"shape":"String"}, + "TdeCredentialArn":{"shape":"String"}, + "Encrypted":{"shape":"Boolean"}, + "KmsKeyId":{"shape":"String"} + }, + "wrapper":true + }, + "DBSnapshotAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DBSnapshotAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "DBSnapshotList":{ + "type":"list", + "member":{ + "shape":"DBSnapshot", + "locationName":"DBSnapshot" + } + }, + "DBSnapshotMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "DBSnapshots":{"shape":"DBSnapshotList"} + } + }, + "DBSnapshotNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DBSnapshotNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "DBSubnetGroup":{ + "type":"structure", + "members":{ + "DBSubnetGroupName":{"shape":"String"}, + "DBSubnetGroupDescription":{"shape":"String"}, + "VpcId":{"shape":"String"}, + "SubnetGroupStatus":{"shape":"String"}, + "Subnets":{"shape":"SubnetList"} + }, + "wrapper":true + }, + "DBSubnetGroupAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DBSubnetGroupAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "DBSubnetGroupDoesNotCoverEnoughAZs":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DBSubnetGroupDoesNotCoverEnoughAZs", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "DBSubnetGroupMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "DBSubnetGroups":{"shape":"DBSubnetGroups"} + } + }, + "DBSubnetGroupNotAllowedFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DBSubnetGroupNotAllowedFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "DBSubnetGroupNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DBSubnetGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "DBSubnetGroupQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DBSubnetGroupQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "DBSubnetGroups":{ + "type":"list", + "member":{ + "shape":"DBSubnetGroup", + "locationName":"DBSubnetGroup" + } + }, + "DBSubnetQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DBSubnetQuotaExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "DBUpgradeDependencyFailureFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DBUpgradeDependencyFailure", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "DeleteDBInstanceMessage":{ + "type":"structure", + "required":["DBInstanceIdentifier"], + "members":{ + "DBInstanceIdentifier":{"shape":"String"}, + "SkipFinalSnapshot":{"shape":"Boolean"}, + "FinalDBSnapshotIdentifier":{"shape":"String"} + } + }, + "DeleteDBParameterGroupMessage":{ + "type":"structure", + "required":["DBParameterGroupName"], + "members":{ + "DBParameterGroupName":{"shape":"String"} + } + }, + "DeleteDBSecurityGroupMessage":{ + "type":"structure", + "required":["DBSecurityGroupName"], + "members":{ + "DBSecurityGroupName":{"shape":"String"} + } + }, + "DeleteDBSnapshotMessage":{ + "type":"structure", + "required":["DBSnapshotIdentifier"], + "members":{ + "DBSnapshotIdentifier":{"shape":"String"} + } + }, + "DeleteDBSubnetGroupMessage":{ + "type":"structure", + "required":["DBSubnetGroupName"], + "members":{ + "DBSubnetGroupName":{"shape":"String"} + } + }, + "DeleteEventSubscriptionMessage":{ + "type":"structure", + "required":["SubscriptionName"], + "members":{ + "SubscriptionName":{"shape":"String"} + } + }, + "DeleteOptionGroupMessage":{ + "type":"structure", + "required":["OptionGroupName"], + "members":{ + "OptionGroupName":{"shape":"String"} + } + }, + "DescribeAccountAttributesMessage":{ + "type":"structure", + "members":{ + } + }, + "DescribeCertificatesMessage":{ + "type":"structure", + "members":{ + "CertificateIdentifier":{"shape":"String"}, + "Filters":{"shape":"FilterList"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeDBEngineVersionsMessage":{ + "type":"structure", + "members":{ + "Engine":{"shape":"String"}, + "EngineVersion":{"shape":"String"}, + "DBParameterGroupFamily":{"shape":"String"}, + "Filters":{"shape":"FilterList"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"}, + "DefaultOnly":{"shape":"Boolean"}, + "ListSupportedCharacterSets":{"shape":"BooleanOptional"} + } + }, + "DescribeDBInstancesMessage":{ + "type":"structure", + "members":{ + "DBInstanceIdentifier":{"shape":"String"}, + "Filters":{"shape":"FilterList"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeDBLogFilesDetails":{ + "type":"structure", + "members":{ + "LogFileName":{"shape":"String"}, + "LastWritten":{"shape":"Long"}, + "Size":{"shape":"Long"} + } + }, + "DescribeDBLogFilesList":{ + "type":"list", + "member":{ + "shape":"DescribeDBLogFilesDetails", + "locationName":"DescribeDBLogFilesDetails" + } + }, + "DescribeDBLogFilesMessage":{ + "type":"structure", + "required":["DBInstanceIdentifier"], + "members":{ + "DBInstanceIdentifier":{"shape":"String"}, + "FilenameContains":{"shape":"String"}, + "FileLastWritten":{"shape":"Long"}, + "FileSize":{"shape":"Long"}, + "Filters":{"shape":"FilterList"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeDBLogFilesResponse":{ + "type":"structure", + "members":{ + "DescribeDBLogFiles":{"shape":"DescribeDBLogFilesList"}, + "Marker":{"shape":"String"} + } + }, + "DescribeDBParameterGroupsMessage":{ + "type":"structure", + "members":{ + "DBParameterGroupName":{"shape":"String"}, + "Filters":{"shape":"FilterList"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeDBParametersMessage":{ + "type":"structure", + "required":["DBParameterGroupName"], + "members":{ + "DBParameterGroupName":{"shape":"String"}, + "Source":{"shape":"String"}, + "Filters":{"shape":"FilterList"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeDBSecurityGroupsMessage":{ + "type":"structure", + "members":{ + "DBSecurityGroupName":{"shape":"String"}, + "Filters":{"shape":"FilterList"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeDBSnapshotsMessage":{ + "type":"structure", + "members":{ + "DBInstanceIdentifier":{"shape":"String"}, + "DBSnapshotIdentifier":{"shape":"String"}, + "SnapshotType":{"shape":"String"}, + "Filters":{"shape":"FilterList"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeDBSubnetGroupsMessage":{ + "type":"structure", + "members":{ + "DBSubnetGroupName":{"shape":"String"}, + "Filters":{"shape":"FilterList"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeEngineDefaultParametersMessage":{ + "type":"structure", + "required":["DBParameterGroupFamily"], + "members":{ + "DBParameterGroupFamily":{"shape":"String"}, + "Filters":{"shape":"FilterList"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeEventCategoriesMessage":{ + "type":"structure", + "members":{ + "SourceType":{"shape":"String"}, + "Filters":{"shape":"FilterList"} + } + }, + "DescribeEventSubscriptionsMessage":{ + "type":"structure", + "members":{ + "SubscriptionName":{"shape":"String"}, + "Filters":{"shape":"FilterList"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeEventsMessage":{ + "type":"structure", + "members":{ + "SourceIdentifier":{"shape":"String"}, + "SourceType":{"shape":"SourceType"}, + "StartTime":{"shape":"TStamp"}, + "EndTime":{"shape":"TStamp"}, + "Duration":{"shape":"IntegerOptional"}, + "EventCategories":{"shape":"EventCategoriesList"}, + "Filters":{"shape":"FilterList"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeOptionGroupOptionsMessage":{ + "type":"structure", + "required":["EngineName"], + "members":{ + "EngineName":{"shape":"String"}, + "MajorEngineVersion":{"shape":"String"}, + "Filters":{"shape":"FilterList"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeOptionGroupsMessage":{ + "type":"structure", + "members":{ + "OptionGroupName":{"shape":"String"}, + "Filters":{"shape":"FilterList"}, + "Marker":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "EngineName":{"shape":"String"}, + "MajorEngineVersion":{"shape":"String"} + } + }, + "DescribeOrderableDBInstanceOptionsMessage":{ + "type":"structure", + "required":["Engine"], + "members":{ + "Engine":{"shape":"String"}, + "EngineVersion":{"shape":"String"}, + "DBInstanceClass":{"shape":"String"}, + "LicenseModel":{"shape":"String"}, + "Vpc":{"shape":"BooleanOptional"}, + "Filters":{"shape":"FilterList"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribePendingMaintenanceActionsMessage":{ + "type":"structure", + "members":{ + "ResourceIdentifier":{"shape":"String"}, + "Filters":{"shape":"FilterList"}, + "Marker":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"} + } + }, + "DescribeReservedDBInstancesMessage":{ + "type":"structure", + "members":{ + "ReservedDBInstanceId":{"shape":"String"}, + "ReservedDBInstancesOfferingId":{"shape":"String"}, + "DBInstanceClass":{"shape":"String"}, + "Duration":{"shape":"String"}, + "ProductDescription":{"shape":"String"}, + "OfferingType":{"shape":"String"}, + "MultiAZ":{"shape":"BooleanOptional"}, + "Filters":{"shape":"FilterList"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeReservedDBInstancesOfferingsMessage":{ + "type":"structure", + "members":{ + "ReservedDBInstancesOfferingId":{"shape":"String"}, + "DBInstanceClass":{"shape":"String"}, + "Duration":{"shape":"String"}, + "ProductDescription":{"shape":"String"}, + "OfferingType":{"shape":"String"}, + "MultiAZ":{"shape":"BooleanOptional"}, + "Filters":{"shape":"FilterList"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "Double":{"type":"double"}, + "DownloadDBLogFilePortionDetails":{ + "type":"structure", + "members":{ + "LogFileData":{"shape":"String"}, + "Marker":{"shape":"String"}, + "AdditionalDataPending":{"shape":"Boolean"} + } + }, + "DownloadDBLogFilePortionMessage":{ + "type":"structure", + "required":[ + "DBInstanceIdentifier", + "LogFileName" + ], + "members":{ + "DBInstanceIdentifier":{"shape":"String"}, + "LogFileName":{"shape":"String"}, + "Marker":{"shape":"String"}, + "NumberOfLines":{"shape":"Integer"} + } + }, + "EC2SecurityGroup":{ + "type":"structure", + "members":{ + "Status":{"shape":"String"}, + "EC2SecurityGroupName":{"shape":"String"}, + "EC2SecurityGroupId":{"shape":"String"}, + "EC2SecurityGroupOwnerId":{"shape":"String"} + } + }, + "EC2SecurityGroupList":{ + "type":"list", + "member":{ + "shape":"EC2SecurityGroup", + "locationName":"EC2SecurityGroup" + } + }, + "Endpoint":{ + "type":"structure", + "members":{ + "Address":{"shape":"String"}, + "Port":{"shape":"Integer"} + } + }, + "EngineDefaults":{ + "type":"structure", + "members":{ + "DBParameterGroupFamily":{"shape":"String"}, + "Marker":{"shape":"String"}, + "Parameters":{"shape":"ParametersList"} + }, + "wrapper":true + }, + "Event":{ + "type":"structure", + "members":{ + "SourceIdentifier":{"shape":"String"}, + "SourceType":{"shape":"SourceType"}, + "Message":{"shape":"String"}, + "EventCategories":{"shape":"EventCategoriesList"}, + "Date":{"shape":"TStamp"} + } + }, + "EventCategoriesList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"EventCategory" + } + }, + "EventCategoriesMap":{ + "type":"structure", + "members":{ + "SourceType":{"shape":"String"}, + "EventCategories":{"shape":"EventCategoriesList"} + }, + "wrapper":true + }, + "EventCategoriesMapList":{ + "type":"list", + "member":{ + "shape":"EventCategoriesMap", + "locationName":"EventCategoriesMap" + } + }, + "EventCategoriesMessage":{ + "type":"structure", + "members":{ + "EventCategoriesMapList":{"shape":"EventCategoriesMapList"} + } + }, + "EventList":{ + "type":"list", + "member":{ + "shape":"Event", + "locationName":"Event" + } + }, + "EventSubscription":{ + "type":"structure", + "members":{ + "CustomerAwsId":{"shape":"String"}, + "CustSubscriptionId":{"shape":"String"}, + "SnsTopicArn":{"shape":"String"}, + "Status":{"shape":"String"}, + "SubscriptionCreationTime":{"shape":"String"}, + "SourceType":{"shape":"String"}, + "SourceIdsList":{"shape":"SourceIdsList"}, + "EventCategoriesList":{"shape":"EventCategoriesList"}, + "Enabled":{"shape":"Boolean"} + }, + "wrapper":true + }, + "EventSubscriptionQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"EventSubscriptionQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "EventSubscriptionsList":{ + "type":"list", + "member":{ + "shape":"EventSubscription", + "locationName":"EventSubscription" + } + }, + "EventSubscriptionsMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "EventSubscriptionsList":{"shape":"EventSubscriptionsList"} + } + }, + "EventsMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "Events":{"shape":"EventList"} + } + }, + "Filter":{ + "type":"structure", + "required":[ + "Name", + "Values" + ], + "members":{ + "Name":{"shape":"String"}, + "Values":{"shape":"FilterValueList"} + } + }, + "FilterList":{ + "type":"list", + "member":{ + "shape":"Filter", + "locationName":"Filter" + } + }, + "FilterValueList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"Value" + } + }, + "IPRange":{ + "type":"structure", + "members":{ + "Status":{"shape":"String"}, + "CIDRIP":{"shape":"String"} + } + }, + "IPRangeList":{ + "type":"list", + "member":{ + "shape":"IPRange", + "locationName":"IPRange" + } + }, + "InstanceQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InstanceQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InsufficientDBInstanceCapacityFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InsufficientDBInstanceCapacity", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "Integer":{"type":"integer"}, + "IntegerOptional":{"type":"integer"}, + "InvalidDBInstanceStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidDBInstanceState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidDBParameterGroupStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidDBParameterGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidDBSecurityGroupStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidDBSecurityGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidDBSnapshotStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidDBSnapshotState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidDBSubnetGroupFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidDBSubnetGroupFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidDBSubnetGroupStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidDBSubnetGroupStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidDBSubnetStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidDBSubnetStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidEventSubscriptionStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidEventSubscriptionState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidOptionGroupStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidOptionGroupStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidRestoreFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidRestoreFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidSubnet":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidSubnet", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidVPCNetworkStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidVPCNetworkStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "KMSKeyNotAccessibleFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"KMSKeyNotAccessibleFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "KeyList":{ + "type":"list", + "member":{"shape":"String"} + }, + "ListTagsForResourceMessage":{ + "type":"structure", + "required":["ResourceName"], + "members":{ + "ResourceName":{"shape":"String"}, + "Filters":{"shape":"FilterList"} + } + }, + "Long":{"type":"long"}, + "ModifyDBInstanceMessage":{ + "type":"structure", + "required":["DBInstanceIdentifier"], + "members":{ + "DBInstanceIdentifier":{"shape":"String"}, + "AllocatedStorage":{"shape":"IntegerOptional"}, + "DBInstanceClass":{"shape":"String"}, + "DBSecurityGroups":{"shape":"DBSecurityGroupNameList"}, + "VpcSecurityGroupIds":{"shape":"VpcSecurityGroupIdList"}, + "ApplyImmediately":{"shape":"Boolean"}, + "MasterUserPassword":{"shape":"String"}, + "DBParameterGroupName":{"shape":"String"}, + "BackupRetentionPeriod":{"shape":"IntegerOptional"}, + "PreferredBackupWindow":{"shape":"String"}, + "PreferredMaintenanceWindow":{"shape":"String"}, + "MultiAZ":{"shape":"BooleanOptional"}, + "EngineVersion":{"shape":"String"}, + "AllowMajorVersionUpgrade":{"shape":"Boolean"}, + "AutoMinorVersionUpgrade":{"shape":"BooleanOptional"}, + "Iops":{"shape":"IntegerOptional"}, + "OptionGroupName":{"shape":"String"}, + "NewDBInstanceIdentifier":{"shape":"String"}, + "StorageType":{"shape":"String"}, + "TdeCredentialArn":{"shape":"String"}, + "TdeCredentialPassword":{"shape":"String"}, + "CACertificateIdentifier":{"shape":"String"} + } + }, + "ModifyDBParameterGroupMessage":{ + "type":"structure", + "required":[ + "DBParameterGroupName", + "Parameters" + ], + "members":{ + "DBParameterGroupName":{"shape":"String"}, + "Parameters":{"shape":"ParametersList"} + } + }, + "ModifyDBSubnetGroupMessage":{ + "type":"structure", + "required":[ + "DBSubnetGroupName", + "SubnetIds" + ], + "members":{ + "DBSubnetGroupName":{"shape":"String"}, + "DBSubnetGroupDescription":{"shape":"String"}, + "SubnetIds":{"shape":"SubnetIdentifierList"} + } + }, + "ModifyEventSubscriptionMessage":{ + "type":"structure", + "required":["SubscriptionName"], + "members":{ + "SubscriptionName":{"shape":"String"}, + "SnsTopicArn":{"shape":"String"}, + "SourceType":{"shape":"String"}, + "EventCategories":{"shape":"EventCategoriesList"}, + "Enabled":{"shape":"BooleanOptional"} + } + }, + "ModifyOptionGroupMessage":{ + "type":"structure", + "required":["OptionGroupName"], + "members":{ + "OptionGroupName":{"shape":"String"}, + "OptionsToInclude":{"shape":"OptionConfigurationList"}, + "OptionsToRemove":{"shape":"OptionNamesList"}, + "ApplyImmediately":{"shape":"Boolean"} + } + }, + "Option":{ + "type":"structure", + "members":{ + "OptionName":{"shape":"String"}, + "OptionDescription":{"shape":"String"}, + "Persistent":{"shape":"Boolean"}, + "Permanent":{"shape":"Boolean"}, + "Port":{"shape":"IntegerOptional"}, + "OptionSettings":{"shape":"OptionSettingConfigurationList"}, + "DBSecurityGroupMemberships":{"shape":"DBSecurityGroupMembershipList"}, + "VpcSecurityGroupMemberships":{"shape":"VpcSecurityGroupMembershipList"} + } + }, + "OptionConfiguration":{ + "type":"structure", + "required":["OptionName"], + "members":{ + "OptionName":{"shape":"String"}, + "Port":{"shape":"IntegerOptional"}, + "DBSecurityGroupMemberships":{"shape":"DBSecurityGroupNameList"}, + "VpcSecurityGroupMemberships":{"shape":"VpcSecurityGroupIdList"}, + "OptionSettings":{"shape":"OptionSettingsList"} + } + }, + "OptionConfigurationList":{ + "type":"list", + "member":{ + "shape":"OptionConfiguration", + "locationName":"OptionConfiguration" + } + }, + "OptionGroup":{ + "type":"structure", + "members":{ + "OptionGroupName":{"shape":"String"}, + "OptionGroupDescription":{"shape":"String"}, + "EngineName":{"shape":"String"}, + "MajorEngineVersion":{"shape":"String"}, + "Options":{"shape":"OptionsList"}, + "AllowsVpcAndNonVpcInstanceMemberships":{"shape":"Boolean"}, + "VpcId":{"shape":"String"} + }, + "wrapper":true + }, + "OptionGroupAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"OptionGroupAlreadyExistsFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "OptionGroupMembership":{ + "type":"structure", + "members":{ + "OptionGroupName":{"shape":"String"}, + "Status":{"shape":"String"} + } + }, + "OptionGroupMembershipList":{ + "type":"list", + "member":{ + "shape":"OptionGroupMembership", + "locationName":"OptionGroupMembership" + } + }, + "OptionGroupNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"OptionGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "OptionGroupOption":{ + "type":"structure", + "members":{ + "Name":{"shape":"String"}, + "Description":{"shape":"String"}, + "EngineName":{"shape":"String"}, + "MajorEngineVersion":{"shape":"String"}, + "MinimumRequiredMinorEngineVersion":{"shape":"String"}, + "PortRequired":{"shape":"Boolean"}, + "DefaultPort":{"shape":"IntegerOptional"}, + "OptionsDependedOn":{"shape":"OptionsDependedOn"}, + "Persistent":{"shape":"Boolean"}, + "Permanent":{"shape":"Boolean"}, + "OptionGroupOptionSettings":{"shape":"OptionGroupOptionSettingsList"} + } + }, + "OptionGroupOptionSetting":{ + "type":"structure", + "members":{ + "SettingName":{"shape":"String"}, + "SettingDescription":{"shape":"String"}, + "DefaultValue":{"shape":"String"}, + "ApplyType":{"shape":"String"}, + "AllowedValues":{"shape":"String"}, + "IsModifiable":{"shape":"Boolean"} + } + }, + "OptionGroupOptionSettingsList":{ + "type":"list", + "member":{ + "shape":"OptionGroupOptionSetting", + "locationName":"OptionGroupOptionSetting" + } + }, + "OptionGroupOptionsList":{ + "type":"list", + "member":{ + "shape":"OptionGroupOption", + "locationName":"OptionGroupOption" + } + }, + "OptionGroupOptionsMessage":{ + "type":"structure", + "members":{ + "OptionGroupOptions":{"shape":"OptionGroupOptionsList"}, + "Marker":{"shape":"String"} + } + }, + "OptionGroupQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"OptionGroupQuotaExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "OptionGroups":{ + "type":"structure", + "members":{ + "OptionGroupsList":{"shape":"OptionGroupsList"}, + "Marker":{"shape":"String"} + } + }, + "OptionGroupsList":{ + "type":"list", + "member":{ + "shape":"OptionGroup", + "locationName":"OptionGroup" + } + }, + "OptionNamesList":{ + "type":"list", + "member":{"shape":"String"} + }, + "OptionSetting":{ + "type":"structure", + "members":{ + "Name":{"shape":"String"}, + "Value":{"shape":"String"}, + "DefaultValue":{"shape":"String"}, + "Description":{"shape":"String"}, + "ApplyType":{"shape":"String"}, + "DataType":{"shape":"String"}, + "AllowedValues":{"shape":"String"}, + "IsModifiable":{"shape":"Boolean"}, + "IsCollection":{"shape":"Boolean"} + } + }, + "OptionSettingConfigurationList":{ + "type":"list", + "member":{ + "shape":"OptionSetting", + "locationName":"OptionSetting" + } + }, + "OptionSettingsList":{ + "type":"list", + "member":{ + "shape":"OptionSetting", + "locationName":"OptionSetting" + } + }, + "OptionsDependedOn":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"OptionName" + } + }, + "OptionsList":{ + "type":"list", + "member":{ + "shape":"Option", + "locationName":"Option" + } + }, + "OrderableDBInstanceOption":{ + "type":"structure", + "members":{ + "Engine":{"shape":"String"}, + "EngineVersion":{"shape":"String"}, + "DBInstanceClass":{"shape":"String"}, + "LicenseModel":{"shape":"String"}, + "AvailabilityZones":{"shape":"AvailabilityZoneList"}, + "MultiAZCapable":{"shape":"Boolean"}, + "ReadReplicaCapable":{"shape":"Boolean"}, + "Vpc":{"shape":"Boolean"}, + "SupportsStorageEncryption":{"shape":"Boolean"}, + "StorageType":{"shape":"String"}, + "SupportsIops":{"shape":"Boolean"} + }, + "wrapper":true + }, + "OrderableDBInstanceOptionsList":{ + "type":"list", + "member":{ + "shape":"OrderableDBInstanceOption", + "locationName":"OrderableDBInstanceOption" + } + }, + "OrderableDBInstanceOptionsMessage":{ + "type":"structure", + "members":{ + "OrderableDBInstanceOptions":{"shape":"OrderableDBInstanceOptionsList"}, + "Marker":{"shape":"String"} + } + }, + "Parameter":{ + "type":"structure", + "members":{ + "ParameterName":{"shape":"String"}, + "ParameterValue":{"shape":"String"}, + "Description":{"shape":"String"}, + "Source":{"shape":"String"}, + "ApplyType":{"shape":"String"}, + "DataType":{"shape":"String"}, + "AllowedValues":{"shape":"String"}, + "IsModifiable":{"shape":"Boolean"}, + "MinimumEngineVersion":{"shape":"String"}, + "ApplyMethod":{"shape":"ApplyMethod"} + } + }, + "ParametersList":{ + "type":"list", + "member":{ + "shape":"Parameter", + "locationName":"Parameter" + } + }, + "PendingMaintenanceAction":{ + "type":"structure", + "members":{ + "Action":{"shape":"String"}, + "AutoAppliedAfterDate":{"shape":"TStamp"}, + "ForcedApplyDate":{"shape":"TStamp"}, + "OptInStatus":{"shape":"String"}, + "CurrentApplyDate":{"shape":"TStamp"}, + "Description":{"shape":"String"} + } + }, + "PendingMaintenanceActionDetails":{ + "type":"list", + "member":{ + "shape":"PendingMaintenanceAction", + "locationName":"PendingMaintenanceAction" + } + }, + "PendingMaintenanceActions":{ + "type":"list", + "member":{ + "shape":"ResourcePendingMaintenanceActions", + "locationName":"ResourcePendingMaintenanceActions" + } + }, + "PendingMaintenanceActionsMessage":{ + "type":"structure", + "members":{ + "PendingMaintenanceActions":{"shape":"PendingMaintenanceActions"}, + "Marker":{"shape":"String"} + } + }, + "PendingModifiedValues":{ + "type":"structure", + "members":{ + "DBInstanceClass":{"shape":"String"}, + "AllocatedStorage":{"shape":"IntegerOptional"}, + "MasterUserPassword":{"shape":"String"}, + "Port":{"shape":"IntegerOptional"}, + "BackupRetentionPeriod":{"shape":"IntegerOptional"}, + "MultiAZ":{"shape":"BooleanOptional"}, + "EngineVersion":{"shape":"String"}, + "Iops":{"shape":"IntegerOptional"}, + "DBInstanceIdentifier":{"shape":"String"}, + "StorageType":{"shape":"String"}, + "CACertificateIdentifier":{"shape":"String"} + } + }, + "PointInTimeRestoreNotEnabledFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"PointInTimeRestoreNotEnabled", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "PromoteReadReplicaMessage":{ + "type":"structure", + "required":["DBInstanceIdentifier"], + "members":{ + "DBInstanceIdentifier":{"shape":"String"}, + "BackupRetentionPeriod":{"shape":"IntegerOptional"}, + "PreferredBackupWindow":{"shape":"String"} + } + }, + "ProvisionedIopsNotAvailableInAZFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ProvisionedIopsNotAvailableInAZFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "PurchaseReservedDBInstancesOfferingMessage":{ + "type":"structure", + "required":["ReservedDBInstancesOfferingId"], + "members":{ + "ReservedDBInstancesOfferingId":{"shape":"String"}, + "ReservedDBInstanceId":{"shape":"String"}, + "DBInstanceCount":{"shape":"IntegerOptional"}, + "Tags":{"shape":"TagList"} + } + }, + "ReadReplicaDBInstanceIdentifierList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"ReadReplicaDBInstanceIdentifier" + } + }, + "RebootDBInstanceMessage":{ + "type":"structure", + "required":["DBInstanceIdentifier"], + "members":{ + "DBInstanceIdentifier":{"shape":"String"}, + "ForceFailover":{"shape":"BooleanOptional"} + } + }, + "RecurringCharge":{ + "type":"structure", + "members":{ + "RecurringChargeAmount":{"shape":"Double"}, + "RecurringChargeFrequency":{"shape":"String"} + }, + "wrapper":true + }, + "RecurringChargeList":{ + "type":"list", + "member":{ + "shape":"RecurringCharge", + "locationName":"RecurringCharge" + } + }, + "RemoveSourceIdentifierFromSubscriptionMessage":{ + "type":"structure", + "required":[ + "SubscriptionName", + "SourceIdentifier" + ], + "members":{ + "SubscriptionName":{"shape":"String"}, + "SourceIdentifier":{"shape":"String"} + } + }, + "RemoveTagsFromResourceMessage":{ + "type":"structure", + "required":[ + "ResourceName", + "TagKeys" + ], + "members":{ + "ResourceName":{"shape":"String"}, + "TagKeys":{"shape":"KeyList"} + } + }, + "ReservedDBInstance":{ + "type":"structure", + "members":{ + "ReservedDBInstanceId":{"shape":"String"}, + "ReservedDBInstancesOfferingId":{"shape":"String"}, + "DBInstanceClass":{"shape":"String"}, + "StartTime":{"shape":"TStamp"}, + "Duration":{"shape":"Integer"}, + "FixedPrice":{"shape":"Double"}, + "UsagePrice":{"shape":"Double"}, + "CurrencyCode":{"shape":"String"}, + "DBInstanceCount":{"shape":"Integer"}, + "ProductDescription":{"shape":"String"}, + "OfferingType":{"shape":"String"}, + "MultiAZ":{"shape":"Boolean"}, + "State":{"shape":"String"}, + "RecurringCharges":{"shape":"RecurringChargeList"} + }, + "wrapper":true + }, + "ReservedDBInstanceAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ReservedDBInstanceAlreadyExists", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ReservedDBInstanceList":{ + "type":"list", + "member":{ + "shape":"ReservedDBInstance", + "locationName":"ReservedDBInstance" + } + }, + "ReservedDBInstanceMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "ReservedDBInstances":{"shape":"ReservedDBInstanceList"} + } + }, + "ReservedDBInstanceNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ReservedDBInstanceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ReservedDBInstanceQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ReservedDBInstanceQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ReservedDBInstancesOffering":{ + "type":"structure", + "members":{ + "ReservedDBInstancesOfferingId":{"shape":"String"}, + "DBInstanceClass":{"shape":"String"}, + "Duration":{"shape":"Integer"}, + "FixedPrice":{"shape":"Double"}, + "UsagePrice":{"shape":"Double"}, + "CurrencyCode":{"shape":"String"}, + "ProductDescription":{"shape":"String"}, + "OfferingType":{"shape":"String"}, + "MultiAZ":{"shape":"Boolean"}, + "RecurringCharges":{"shape":"RecurringChargeList"} + }, + "wrapper":true + }, + "ReservedDBInstancesOfferingList":{ + "type":"list", + "member":{ + "shape":"ReservedDBInstancesOffering", + "locationName":"ReservedDBInstancesOffering" + } + }, + "ReservedDBInstancesOfferingMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "ReservedDBInstancesOfferings":{"shape":"ReservedDBInstancesOfferingList"} + } + }, + "ReservedDBInstancesOfferingNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ReservedDBInstancesOfferingNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ResetDBParameterGroupMessage":{ + "type":"structure", + "required":["DBParameterGroupName"], + "members":{ + "DBParameterGroupName":{"shape":"String"}, + "ResetAllParameters":{"shape":"Boolean"}, + "Parameters":{"shape":"ParametersList"} + } + }, + "ResourceNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ResourceNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ResourcePendingMaintenanceActions":{ + "type":"structure", + "members":{ + "ResourceIdentifier":{"shape":"String"}, + "PendingMaintenanceActionDetails":{"shape":"PendingMaintenanceActionDetails"} + }, + "wrapper":true + }, + "RestoreDBInstanceFromDBSnapshotMessage":{ + "type":"structure", + "required":[ + "DBInstanceIdentifier", + "DBSnapshotIdentifier" + ], + "members":{ + "DBInstanceIdentifier":{"shape":"String"}, + "DBSnapshotIdentifier":{"shape":"String"}, + "DBInstanceClass":{"shape":"String"}, + "Port":{"shape":"IntegerOptional"}, + "AvailabilityZone":{"shape":"String"}, + "DBSubnetGroupName":{"shape":"String"}, + "MultiAZ":{"shape":"BooleanOptional"}, + "PubliclyAccessible":{"shape":"BooleanOptional"}, + "AutoMinorVersionUpgrade":{"shape":"BooleanOptional"}, + "LicenseModel":{"shape":"String"}, + "DBName":{"shape":"String"}, + "Engine":{"shape":"String"}, + "Iops":{"shape":"IntegerOptional"}, + "OptionGroupName":{"shape":"String"}, + "Tags":{"shape":"TagList"}, + "StorageType":{"shape":"String"}, + "TdeCredentialArn":{"shape":"String"}, + "TdeCredentialPassword":{"shape":"String"} + } + }, + "RestoreDBInstanceToPointInTimeMessage":{ + "type":"structure", + "required":[ + "SourceDBInstanceIdentifier", + "TargetDBInstanceIdentifier" + ], + "members":{ + "SourceDBInstanceIdentifier":{"shape":"String"}, + "TargetDBInstanceIdentifier":{"shape":"String"}, + "RestoreTime":{"shape":"TStamp"}, + "UseLatestRestorableTime":{"shape":"Boolean"}, + "DBInstanceClass":{"shape":"String"}, + "Port":{"shape":"IntegerOptional"}, + "AvailabilityZone":{"shape":"String"}, + "DBSubnetGroupName":{"shape":"String"}, + "MultiAZ":{"shape":"BooleanOptional"}, + "PubliclyAccessible":{"shape":"BooleanOptional"}, + "AutoMinorVersionUpgrade":{"shape":"BooleanOptional"}, + "LicenseModel":{"shape":"String"}, + "DBName":{"shape":"String"}, + "Engine":{"shape":"String"}, + "Iops":{"shape":"IntegerOptional"}, + "OptionGroupName":{"shape":"String"}, + "Tags":{"shape":"TagList"}, + "StorageType":{"shape":"String"}, + "TdeCredentialArn":{"shape":"String"}, + "TdeCredentialPassword":{"shape":"String"} + } + }, + "RevokeDBSecurityGroupIngressMessage":{ + "type":"structure", + "required":["DBSecurityGroupName"], + "members":{ + "DBSecurityGroupName":{"shape":"String"}, + "CIDRIP":{"shape":"String"}, + "EC2SecurityGroupName":{"shape":"String"}, + "EC2SecurityGroupId":{"shape":"String"}, + "EC2SecurityGroupOwnerId":{"shape":"String"} + } + }, + "SNSInvalidTopicFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SNSInvalidTopic", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "SNSNoAuthorizationFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SNSNoAuthorization", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "SNSTopicArnNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SNSTopicArnNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "SnapshotQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SnapshotQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "SourceIdsList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"SourceId" + } + }, + "SourceNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "SourceType":{ + "type":"string", + "enum":[ + "db-instance", + "db-parameter-group", + "db-security-group", + "db-snapshot" + ] + }, + "StorageQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"StorageQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "StorageTypeNotSupportedFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"StorageTypeNotSupported", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "String":{"type":"string"}, + "Subnet":{ + "type":"structure", + "members":{ + "SubnetIdentifier":{"shape":"String"}, + "SubnetAvailabilityZone":{"shape":"AvailabilityZone"}, + "SubnetStatus":{"shape":"String"} + } + }, + "SubnetAlreadyInUse":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SubnetAlreadyInUse", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "SubnetIdentifierList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"SubnetIdentifier" + } + }, + "SubnetList":{ + "type":"list", + "member":{ + "shape":"Subnet", + "locationName":"Subnet" + } + }, + "SubscriptionAlreadyExistFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SubscriptionAlreadyExist", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "SubscriptionCategoryNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SubscriptionCategoryNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "SubscriptionNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SubscriptionNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "SupportedCharacterSetsList":{ + "type":"list", + "member":{ + "shape":"CharacterSet", + "locationName":"CharacterSet" + } + }, + "TStamp":{"type":"timestamp"}, + "Tag":{ + "type":"structure", + "members":{ + "Key":{"shape":"String"}, + "Value":{"shape":"String"} + } + }, + "TagList":{ + "type":"list", + "member":{ + "shape":"Tag", + "locationName":"Tag" + } + }, + "TagListMessage":{ + "type":"structure", + "members":{ + "TagList":{"shape":"TagList"} + } + }, + "VpcSecurityGroupIdList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"VpcSecurityGroupId" + } + }, + "VpcSecurityGroupMembership":{ + "type":"structure", + "members":{ + "VpcSecurityGroupId":{"shape":"String"}, + "Status":{"shape":"String"} + } + }, + "VpcSecurityGroupMembershipList":{ + "type":"list", + "member":{ + "shape":"VpcSecurityGroupMembership", + "locationName":"VpcSecurityGroupMembership" + } + }, + "AddSourceIdentifierToSubscriptionResult":{ + "type":"structure", + "members":{ + "EventSubscription":{"shape":"EventSubscription"} + } + }, + "ApplyPendingMaintenanceActionResult":{ + "type":"structure", + "members":{ + "ResourcePendingMaintenanceActions":{"shape":"ResourcePendingMaintenanceActions"} + } + }, + "AuthorizeDBSecurityGroupIngressResult":{ + "type":"structure", + "members":{ + "DBSecurityGroup":{"shape":"DBSecurityGroup"} + } + }, + "CopyDBParameterGroupResult":{ + "type":"structure", + "members":{ + "DBParameterGroup":{"shape":"DBParameterGroup"} + } + }, + "CopyDBSnapshotResult":{ + "type":"structure", + "members":{ + "DBSnapshot":{"shape":"DBSnapshot"} + } + }, + "CopyOptionGroupResult":{ + "type":"structure", + "members":{ + "OptionGroup":{"shape":"OptionGroup"} + } + }, + "CreateDBInstanceResult":{ + "type":"structure", + "members":{ + "DBInstance":{"shape":"DBInstance"} + } + }, + "CreateDBInstanceReadReplicaResult":{ + "type":"structure", + "members":{ + "DBInstance":{"shape":"DBInstance"} + } + }, + "CreateDBParameterGroupResult":{ + "type":"structure", + "members":{ + "DBParameterGroup":{"shape":"DBParameterGroup"} + } + }, + "CreateDBSecurityGroupResult":{ + "type":"structure", + "members":{ + "DBSecurityGroup":{"shape":"DBSecurityGroup"} + } + }, + "CreateDBSnapshotResult":{ + "type":"structure", + "members":{ + "DBSnapshot":{"shape":"DBSnapshot"} + } + }, + "CreateDBSubnetGroupResult":{ + "type":"structure", + "members":{ + "DBSubnetGroup":{"shape":"DBSubnetGroup"} + } + }, + "CreateEventSubscriptionResult":{ + "type":"structure", + "members":{ + "EventSubscription":{"shape":"EventSubscription"} + } + }, + "CreateOptionGroupResult":{ + "type":"structure", + "members":{ + "OptionGroup":{"shape":"OptionGroup"} + } + }, + "DeleteDBInstanceResult":{ + "type":"structure", + "members":{ + "DBInstance":{"shape":"DBInstance"} + } + }, + "DeleteDBSnapshotResult":{ + "type":"structure", + "members":{ + "DBSnapshot":{"shape":"DBSnapshot"} + } + }, + "DeleteEventSubscriptionResult":{ + "type":"structure", + "members":{ + "EventSubscription":{"shape":"EventSubscription"} + } + }, + "DescribeEngineDefaultParametersResult":{ + "type":"structure", + "members":{ + "EngineDefaults":{"shape":"EngineDefaults"} + } + }, + "ModifyDBInstanceResult":{ + "type":"structure", + "members":{ + "DBInstance":{"shape":"DBInstance"} + } + }, + "ModifyDBSubnetGroupResult":{ + "type":"structure", + "members":{ + "DBSubnetGroup":{"shape":"DBSubnetGroup"} + } + }, + "ModifyEventSubscriptionResult":{ + "type":"structure", + "members":{ + "EventSubscription":{"shape":"EventSubscription"} + } + }, + "ModifyOptionGroupResult":{ + "type":"structure", + "members":{ + "OptionGroup":{"shape":"OptionGroup"} + } + }, + "PromoteReadReplicaResult":{ + "type":"structure", + "members":{ + "DBInstance":{"shape":"DBInstance"} + } + }, + "PurchaseReservedDBInstancesOfferingResult":{ + "type":"structure", + "members":{ + "ReservedDBInstance":{"shape":"ReservedDBInstance"} + } + }, + "RebootDBInstanceResult":{ + "type":"structure", + "members":{ + "DBInstance":{"shape":"DBInstance"} + } + }, + "RemoveSourceIdentifierFromSubscriptionResult":{ + "type":"structure", + "members":{ + "EventSubscription":{"shape":"EventSubscription"} + } + }, + "RestoreDBInstanceFromDBSnapshotResult":{ + "type":"structure", + "members":{ + "DBInstance":{"shape":"DBInstance"} + } + }, + "RestoreDBInstanceToPointInTimeResult":{ + "type":"structure", + "members":{ + "DBInstance":{"shape":"DBInstance"} + } + }, + "RevokeDBSecurityGroupIngressResult":{ + "type":"structure", + "members":{ + "DBSecurityGroup":{"shape":"DBSecurityGroup"} + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/rds/2014-10-31/docs-2.json b/lib/aws-sdk/Aws/data/rds/2014-10-31/docs-2.json new file mode 100644 index 0000000..81e3b08 --- /dev/null +++ b/lib/aws-sdk/Aws/data/rds/2014-10-31/docs-2.json @@ -0,0 +1,2074 @@ +{ + "version": "2.0", + "operations": { + "AddSourceIdentifierToSubscription": "

Adds a source identifier to an existing RDS event notification subscription.

", + "AddTagsToResource": "

Adds metadata tags to an Amazon RDS resource. These tags can also be used with cost allocation reporting to track cost associated with Amazon RDS resources, or used in Condition statement in IAM policy for Amazon RDS.

For an overview on tagging Amazon RDS resources, see Tagging Amazon RDS Resources.

", + "ApplyPendingMaintenanceAction": "

Applies a pending maintenance action to a resource (for example, a DB instance).

", + "AuthorizeDBSecurityGroupIngress": "

Enables ingress to a DBSecurityGroup using one of two forms of authorization. First, EC2 or VPC security groups can be added to the DBSecurityGroup if the application using the database is running on EC2 or VPC instances. Second, IP ranges are available if the application accessing your database is running on the Internet. Required parameters for this API are one of CIDR range, EC2SecurityGroupId for VPC, or (EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId for non-VPC).

You cannot authorize ingress from an EC2 security group in one Region to an Amazon RDS DB instance in another. You cannot authorize ingress from a VPC security group in one VPC to an Amazon RDS DB instance in another.

For an overview of CIDR ranges, go to the Wikipedia Tutorial.

", + "CopyDBParameterGroup": "

Copies the specified DB parameter group.

", + "CopyDBSnapshot": "

Copies the specified DBSnapshot. The source DBSnapshot must be in the \"available\" state.

", + "CopyOptionGroup": "

Copies the specified option group.

", + "CreateDBInstance": "

Creates a new DB instance.

", + "CreateDBInstanceReadReplica": "

Creates a DB instance that acts as a Read Replica of a source DB instance.

All Read Replica DB instances are created as Single-AZ deployments with backups disabled. All other DB instance attributes (including DB security groups and DB parameter groups) are inherited from the source DB instance, except as specified below.

The source DB instance must have backup retention enabled.

", + "CreateDBParameterGroup": "

Creates a new DB parameter group.

A DB parameter group is initially created with the default parameters for the database engine used by the DB instance. To provide custom values for any of the parameters, you must modify the group after creating it using ModifyDBParameterGroup. Once you've created a DB parameter group, you need to associate it with your DB instance using ModifyDBInstance. When you associate a new DB parameter group with a running DB instance, you need to reboot the DB instance without failover for the new DB parameter group and associated settings to take effect.

After you create a DB parameter group, you should wait at least 5 minutes before creating your first DB instance that uses that DB parameter group as the default parameter group. This allows Amazon RDS to fully complete the create action before the parameter group is used as the default for a new DB instance. This is especially important for parameters that are critical when creating the default database for a DB instance, such as the character set for the default database defined by the character_set_database parameter. You can use the Parameter Groups option of the Amazon RDS console or the DescribeDBParameters command to verify that your DB parameter group has been created or modified.

", + "CreateDBSecurityGroup": "

Creates a new DB security group. DB security groups control access to a DB instance.

", + "CreateDBSnapshot": "

Creates a DBSnapshot. The source DBInstance must be in \"available\" state.

", + "CreateDBSubnetGroup": "

Creates a new DB subnet group. DB subnet groups must contain at least one subnet in at least two AZs in the region.

", + "CreateEventSubscription": "

Creates an RDS event notification subscription. This action requires a topic ARN (Amazon Resource Name) created by either the RDS console, the SNS console, or the SNS API. To obtain an ARN with SNS, you must create a topic in Amazon SNS and subscribe to the topic. The ARN is displayed in the SNS console.

You can specify the type of source (SourceType) you want to be notified of, provide a list of RDS sources (SourceIds) that triggers the events, and provide a list of event categories (EventCategories) for events you want to be notified of. For example, you can specify SourceType = db-instance, SourceIds = mydbinstance1, mydbinstance2 and EventCategories = Availability, Backup.

If you specify both the SourceType and SourceIds, such as SourceType = db-instance and SourceIdentifier = myDBInstance1, you will be notified of all the db-instance events for the specified source. If you specify a SourceType but do not specify a SourceIdentifier, you will receive notice of the events for that source type for all your RDS sources. If you do not specify either the SourceType nor the SourceIdentifier, you will be notified of events generated from all RDS sources belonging to your customer account.

", + "CreateOptionGroup": "

Creates a new option group. You can create up to 20 option groups.

", + "DeleteDBInstance": "

The DeleteDBInstance action deletes a previously provisioned DB instance. A successful response from the web service indicates the request was received correctly. When you delete a DB instance, all automated backups for that instance are deleted and cannot be recovered. Manual DB snapshots of the DB instance to be deleted are not deleted.

If a final DB snapshot is requested the status of the RDS instance will be \"deleting\" until the DB snapshot is created. The API action DescribeDBInstance is used to monitor the status of this operation. The action cannot be canceled or reverted once submitted.

", + "DeleteDBParameterGroup": "

Deletes a specified DBParameterGroup. The DBParameterGroup to be deleted cannot be associated with any DB instances.

", + "DeleteDBSecurityGroup": "

Deletes a DB security group.

The specified DB security group must not be associated with any DB instances.", + "DeleteDBSnapshot": "

Deletes a DBSnapshot. If the snapshot is being copied, the copy operation is terminated.

The DBSnapshot must be in the available state to be deleted.", + "DeleteDBSubnetGroup": "

Deletes a DB subnet group.

The specified database subnet group must not be associated with any DB instances.", + "DeleteEventSubscription": "

Deletes an RDS event notification subscription.

", + "DeleteOptionGroup": "

Deletes an existing option group.

", + "DescribeAccountAttributes": "

Lists all of the attributes for a customer account. The attributes include Amazon RDS quotas for the account, such as the number of DB instances allowed. The description for a quota includes the quota name, current usage toward that quota, and the quota's maximum value.

This command does not take any parameters.

", + "DescribeCertificates": "

Lists the set of CA certificates provided by Amazon RDS for this AWS account.

", + "DescribeDBEngineVersions": "

Returns a list of the available DB engines.

", + "DescribeDBInstances": "

Returns information about provisioned RDS instances. This API supports pagination.

", + "DescribeDBLogFiles": "

Returns a list of DB log files for the DB instance.

", + "DescribeDBParameterGroups": "

Returns a list of DBParameterGroup descriptions. If a DBParameterGroupName is specified, the list will contain only the description of the specified DB parameter group.

", + "DescribeDBParameters": "

Returns the detailed parameter list for a particular DB parameter group.

", + "DescribeDBSecurityGroups": "

Returns a list of DBSecurityGroup descriptions. If a DBSecurityGroupName is specified, the list will contain only the descriptions of the specified DB security group.

", + "DescribeDBSnapshots": "

Returns information about DB snapshots. This API supports pagination.

", + "DescribeDBSubnetGroups": "

Returns a list of DBSubnetGroup descriptions. If a DBSubnetGroupName is specified, the list will contain only the descriptions of the specified DBSubnetGroup.

For an overview of CIDR ranges, go to the Wikipedia Tutorial.

", + "DescribeEngineDefaultParameters": "

Returns the default engine and system parameter information for the specified database engine.

", + "DescribeEventCategories": "

Displays a list of categories for all event source types, or, if specified, for a specified source type. You can see a list of the event categories and source types in the Events topic in the Amazon RDS User Guide.

", + "DescribeEventSubscriptions": "

Lists all the subscription descriptions for a customer account. The description for a subscription includes SubscriptionName, SNSTopicARN, CustomerID, SourceType, SourceID, CreationTime, and Status.

If you specify a SubscriptionName, lists the description for that subscription.

", + "DescribeEvents": "

Returns events related to DB instances, DB security groups, DB snapshots, and DB parameter groups for the past 14 days. Events specific to a particular DB instance, DB security group, database snapshot, or DB parameter group can be obtained by providing the name as a parameter. By default, the past hour of events are returned.

", + "DescribeOptionGroupOptions": "

Describes all available options.

", + "DescribeOptionGroups": "

Describes the available option groups.

", + "DescribeOrderableDBInstanceOptions": "

Returns a list of orderable DB instance options for the specified engine.

", + "DescribePendingMaintenanceActions": "

Returns a list of resources (for example, DB instances) that have at least one pending maintenance action.

", + "DescribeReservedDBInstances": "

Returns information about reserved DB instances for this account, or about a specified reserved DB instance.

", + "DescribeReservedDBInstancesOfferings": "

Lists available reserved DB instance offerings.

", + "DownloadDBLogFilePortion": "

Downloads all or a portion of the specified log file.

", + "ListTagsForResource": "

Lists all tags on an Amazon RDS resource.

For an overview on tagging an Amazon RDS resource, see Tagging Amazon RDS Resources.

", + "ModifyDBInstance": "

Modify settings for a DB instance. You can change one or more database configuration parameters by specifying these parameters and the new values in the request.

", + "ModifyDBParameterGroup": "

Modifies the parameters of a DB parameter group. To modify more than one parameter, submit a list of the following: ParameterName, ParameterValue, and ApplyMethod. A maximum of 20 parameters can be modified in a single request.

Changes to dynamic parameters are applied immediately. Changes to static parameters require a reboot without failover to the DB instance associated with the parameter group before the change can take effect.

After you modify a DB parameter group, you should wait at least 5 minutes before creating your first DB instance that uses that DB parameter group as the default parameter group. This allows Amazon RDS to fully complete the modify action before the parameter group is used as the default for a new DB instance. This is especially important for parameters that are critical when creating the default database for a DB instance, such as the character set for the default database defined by the character_set_database parameter. You can use the Parameter Groups option of the Amazon RDS console or the DescribeDBParameters command to verify that your DB parameter group has been created or modified.

", + "ModifyDBSubnetGroup": "

Modifies an existing DB subnet group. DB subnet groups must contain at least one subnet in at least two AZs in the region.

", + "ModifyEventSubscription": "

Modifies an existing RDS event notification subscription. Note that you cannot modify the source identifiers using this call; to change source identifiers for a subscription, use the AddSourceIdentifierToSubscription and RemoveSourceIdentifierFromSubscription calls.

You can see a list of the event categories for a given SourceType in the Events topic in the Amazon RDS User Guide or by using the DescribeEventCategories action.

", + "ModifyOptionGroup": "

Modifies an existing option group.

", + "PromoteReadReplica": "

Promotes a Read Replica DB instance to a standalone DB instance.

We recommend that you enable automated backups on your Read Replica before promoting the Read Replica. This ensures that no backup is taken during the promotion process. Once the instance is promoted to a primary instance, backups are taken based on your backup settings.

", + "PurchaseReservedDBInstancesOffering": "

Purchases a reserved DB instance offering.

", + "RebootDBInstance": "

Rebooting a DB instance restarts the database engine service. A reboot also applies to the DB instance any modifications to the associated DB parameter group that were pending. Rebooting a DB instance results in a momentary outage of the instance, during which the DB instance status is set to rebooting. If the RDS instance is configured for MultiAZ, it is possible that the reboot will be conducted through a failover. An Amazon RDS event is created when the reboot is completed.

If your DB instance is deployed in multiple Availability Zones, you can force a failover from one AZ to the other during the reboot. You might force a failover to test the availability of your DB instance deployment or to restore operations to the original AZ after a failover occurs.

The time required to reboot is a function of the specific database engine's crash recovery process. To improve the reboot time, we recommend that you reduce database activities as much as possible during the reboot process to reduce rollback activity for in-transit transactions.

", + "RemoveSourceIdentifierFromSubscription": "

Removes a source identifier from an existing RDS event notification subscription.

", + "RemoveTagsFromResource": "

Removes metadata tags from an Amazon RDS resource.

For an overview on tagging an Amazon RDS resource, see Tagging Amazon RDS Resources.

", + "ResetDBParameterGroup": "

Modifies the parameters of a DB parameter group to the engine/system default value. To reset specific parameters submit a list of the following: ParameterName and ApplyMethod. To reset the entire DB parameter group, specify the DBParameterGroup name and ResetAllParameters parameters. When resetting the entire group, dynamic parameters are updated immediately and static parameters are set to pending-reboot to take effect on the next DB instance restart or RebootDBInstance request.

", + "RestoreDBInstanceFromDBSnapshot": "

Creates a new DB instance from a DB snapshot. The target database is created from the source database restore point with the same configuration as the original source database, except that the new RDS instance is created with the default security group.

If your intent is to replace your original DB instance with the new, restored DB instance, then rename your original DB instance before you call the RestoreDBInstanceFromDBSnapshot action. RDS does not allow two DB instances with the same name. Once you have renamed your original DB instance with a different identifier, then you can pass the original name of the DB instance as the DBInstanceIdentifier in the call to the RestoreDBInstanceFromDBSnapshot action. The result is that you will replace the original DB instance with the DB instance created from the snapshot.

", + "RestoreDBInstanceToPointInTime": "

Restores a DB instance to an arbitrary point-in-time. Users can restore to any point in time before the LatestRestorableTime for up to BackupRetentionPeriod days. The target database is created from the source database with the same configuration as the original database except that the DB instance is created with the default DB security group.

", + "RevokeDBSecurityGroupIngress": "

Revokes ingress from a DBSecurityGroup for previously authorized IP ranges or EC2 or VPC Security Groups. Required parameters for this API are one of CIDRIP, EC2SecurityGroupId for VPC, or (EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId).

" + }, + "service": "Amazon Relational Database Service

Amazon Relational Database Service (Amazon RDS) is a web service that makes it easier to set up, operate, and scale a relational database in the cloud. It provides cost-efficient, resizable capacity for an industry-standard relational database and manages common database administration tasks, freeing up developers to focus on what makes their applications and businesses unique.

Amazon RDS gives you access to the capabilities of a MySQL, PostgreSQL, Microsoft SQL Server, Oracle, or Aurora database server. This means the code, applications, and tools you already use today with your existing databases work with Amazon RDS without modification. Amazon RDS automatically backs up your database and maintains the database software that powers your DB instance. Amazon RDS is flexible: you can scale your database instance's compute resources and storage capacity to meet your application's demand. As with all Amazon Web Services, there are no up-front investments, and you pay only for the resources you use.

This is an interface reference for Amazon RDS. It contains documentation for a programming or command line interface you can use to manage Amazon RDS. Note that Amazon RDS is asynchronous, which means that some interfaces may require techniques such as polling or callback functions to determine when a command has been applied. In this reference, the parameter descriptions indicate whether a command is applied immediately, on the next instance reboot, or during the maintenance window. For a summary of the Amazon RDS interfaces, go to Available RDS Interfaces.

", + "shapes": { + "AccountAttributesMessage": { + "base": "

Data returned by the DescribeAccountAttributes action.

", + "refs": { + } + }, + "AccountQuota": { + "base": "

Describes a quota for an AWS account, for example, the number of DB instances allowed.

", + "refs": { + "AccountQuotaList$member": null + } + }, + "AccountQuotaList": { + "base": null, + "refs": { + "AccountAttributesMessage$AccountQuotas": "

A list of AccountQuota objects. Within this list, each quota has a name, a count of usage toward the quota maximum, and a maximum value for the quota.

" + } + }, + "AddSourceIdentifierToSubscriptionMessage": { + "base": "

", + "refs": { + } + }, + "AddTagsToResourceMessage": { + "base": "

", + "refs": { + } + }, + "ApplyMethod": { + "base": null, + "refs": { + "Parameter$ApplyMethod": "

Indicates when to apply parameter updates.

" + } + }, + "ApplyPendingMaintenanceActionMessage": { + "base": "

", + "refs": { + } + }, + "AuthorizationAlreadyExistsFault": { + "base": "

The specified CIDRIP or EC2 security group is already authorized for the specified DB security group.

", + "refs": { + } + }, + "AuthorizationNotFoundFault": { + "base": "

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.

", + "refs": { + } + }, + "AuthorizationQuotaExceededFault": { + "base": "

DB security group authorization quota has been reached.

", + "refs": { + } + }, + "AuthorizeDBSecurityGroupIngressMessage": { + "base": "

", + "refs": { + } + }, + "AvailabilityZone": { + "base": "

Contains Availability Zone information.

This data type is used as an element in the following data type:

", + "refs": { + "AvailabilityZoneList$member": null, + "Subnet$SubnetAvailabilityZone": null + } + }, + "AvailabilityZoneList": { + "base": null, + "refs": { + "OrderableDBInstanceOption$AvailabilityZones": "

A list of availability zones for the orderable DB instance.

" + } + }, + "Boolean": { + "base": null, + "refs": { + "DBInstance$MultiAZ": "

Specifies if the DB instance is a Multi-AZ deployment.

", + "DBInstance$AutoMinorVersionUpgrade": "

Indicates that minor version patches are applied automatically.

", + "DBInstance$PubliclyAccessible": "

Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address.

Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case.

  • Default VPC:true
  • VPC:false

If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be private.

", + "DBInstance$StorageEncrypted": "

Specifies whether the DB instance is encrypted.

", + "DBInstanceStatusInfo$Normal": "

Boolean value that is true if the instance is operating normally, or false if the instance is in an error state.

", + "DBSnapshot$Encrypted": "

Specifies whether the DB snapshot is encrypted.

", + "DeleteDBInstanceMessage$SkipFinalSnapshot": "

Determines whether a final DB snapshot is created before the DB instance is deleted. If true is specified, no DBSnapshot is created. If false is specified, a DB snapshot is created before the DB instance is deleted.

Specify true when deleting a Read Replica.

The FinalDBSnapshotIdentifier parameter must be specified if SkipFinalSnapshot is false.

Default: false

", + "DescribeDBEngineVersionsMessage$DefaultOnly": "

Indicates that only the default version of the specified engine or engine and major version combination is returned.

", + "DownloadDBLogFilePortionDetails$AdditionalDataPending": "

Boolean value that if true, indicates there is more data to be downloaded.

", + "EventSubscription$Enabled": "

A Boolean value indicating if the subscription is enabled. True indicates the subscription is enabled.

", + "ModifyDBInstanceMessage$ApplyImmediately": "

Specifies whether the modifications in this request and any pending modifications are asynchronously applied as soon as possible, regardless of the PreferredMaintenanceWindow setting for the DB instance.

If this parameter is set to false, changes to the DB instance are applied during the next maintenance window. Some parameter changes can cause an outage and will be applied on the next call to RebootDBInstance, or the next failure reboot. Review the table of parameters in Modifying a DB Instance and Using the Apply Immediately Parameter to see the impact that setting ApplyImmediately to true or false has for each modified parameter and to determine when the changes will be applied.

Default: false

", + "ModifyDBInstanceMessage$AllowMajorVersionUpgrade": "

Indicates that major version upgrades are allowed. Changing this parameter does not result in an outage and the change is asynchronously applied as soon as possible.

Constraints: This parameter must be set to true when specifying a value for the EngineVersion parameter that is a different major version than the DB instance's current version.

", + "ModifyOptionGroupMessage$ApplyImmediately": "

Indicates whether the changes should be applied immediately, or during the next maintenance window for each instance associated with the option group.

", + "Option$Persistent": "

Indicate if this option is persistent.

", + "Option$Permanent": "

Indicate if this option is permanent.

", + "OptionGroup$AllowsVpcAndNonVpcInstanceMemberships": "

Indicates whether this option group can be applied to both VPC and non-VPC instances. The value true indicates the option group can be applied to both VPC and non-VPC instances.

", + "OptionGroupOption$PortRequired": "

Specifies whether the option requires a port.

", + "OptionGroupOption$Persistent": "

A persistent option cannot be removed from the option group once the option group is used, but this option can be removed from the db instance while modifying the related data and assigning another option group without this option.

", + "OptionGroupOption$Permanent": "

A permanent option cannot be removed from the option group once the option group is used, and it cannot be removed from the db instance after assigning an option group with this permanent option.

", + "OptionGroupOptionSetting$IsModifiable": "

Boolean value where true indicates that this option group option can be changed from the default value.

", + "OptionSetting$IsModifiable": "

A Boolean value that, when true, indicates the option setting can be modified from the default.

", + "OptionSetting$IsCollection": "

Indicates if the option setting is part of a collection.

", + "OrderableDBInstanceOption$MultiAZCapable": "

Indicates whether this orderable DB instance is multi-AZ capable.

", + "OrderableDBInstanceOption$ReadReplicaCapable": "

Indicates whether this orderable DB instance can have a Read Replica.

", + "OrderableDBInstanceOption$Vpc": "

Indicates whether this is a VPC orderable DB instance.

", + "OrderableDBInstanceOption$SupportsStorageEncryption": "

Indicates whether this orderable DB instance supports encrypted storage.

", + "OrderableDBInstanceOption$SupportsIops": "

Indicates whether this orderable DB instance supports provisioned IOPS.

", + "Parameter$IsModifiable": "

Indicates whether (true) or not (false) the parameter can be modified. Some parameters have security or operational implications that prevent them from being changed.

", + "ReservedDBInstance$MultiAZ": "

Indicates if the reservation applies to Multi-AZ deployments.

", + "ReservedDBInstancesOffering$MultiAZ": "

Indicates if the offering applies to Multi-AZ deployments.

", + "ResetDBParameterGroupMessage$ResetAllParameters": "

Specifies whether (true) or not (false) to reset all parameters in the DB parameter group to default values.

Default: true

", + "RestoreDBInstanceToPointInTimeMessage$UseLatestRestorableTime": "

Specifies whether (true) or not (false) the DB instance is restored from the latest backup time.

Default: false

Constraints: Cannot be specified if RestoreTime parameter is provided.

" + } + }, + "BooleanOptional": { + "base": null, + "refs": { + "CreateDBInstanceMessage$MultiAZ": "

Specifies if the DB instance is a Multi-AZ deployment. You cannot set the AvailabilityZone parameter if the MultiAZ parameter is set to true.

", + "CreateDBInstanceMessage$AutoMinorVersionUpgrade": "

Indicates that minor engine upgrades will be applied automatically to the DB instance during the maintenance window.

Default: true

", + "CreateDBInstanceMessage$PubliclyAccessible": "

Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address.

Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case.

  • Default VPC: true
  • VPC: false

If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be private.

", + "CreateDBInstanceMessage$StorageEncrypted": "

Specifies whether the DB instance is encrypted.

Default: false

", + "CreateDBInstanceReadReplicaMessage$AutoMinorVersionUpgrade": "

Indicates that minor engine upgrades will be applied automatically to the Read Replica during the maintenance window.

Default: Inherits from the source DB instance

", + "CreateDBInstanceReadReplicaMessage$PubliclyAccessible": "

Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address.

Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case.

  • Default VPC:true
  • VPC:false

If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be private.

", + "CreateEventSubscriptionMessage$Enabled": "

A Boolean value; set to true to activate the subscription, set to false to create the subscription but not active it.

", + "DescribeDBEngineVersionsMessage$ListSupportedCharacterSets": "

If this parameter is specified, and if the requested engine supports the CharacterSetName parameter for CreateDBInstance, the response includes a list of supported character sets for each engine version.

", + "DescribeOrderableDBInstanceOptionsMessage$Vpc": "

The VPC filter value. Specify this parameter to show only the available VPC or non-VPC offerings.

", + "DescribeReservedDBInstancesMessage$MultiAZ": "

The Multi-AZ filter value. Specify this parameter to show only those reservations matching the specified Multi-AZ parameter.

", + "DescribeReservedDBInstancesOfferingsMessage$MultiAZ": "

The Multi-AZ filter value. Specify this parameter to show only the available offerings matching the specified Multi-AZ parameter.

", + "ModifyDBInstanceMessage$MultiAZ": "

Specifies if the DB instance is a Multi-AZ deployment. Changing this parameter does not result in an outage and the change is applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request.

Constraints: Cannot be specified if the DB instance is a Read Replica.

", + "ModifyDBInstanceMessage$AutoMinorVersionUpgrade": "

Indicates that minor version upgrades will be applied automatically to the DB instance during the maintenance window. Changing this parameter does not result in an outage except in the following case and the change is asynchronously applied as soon as possible. An outage will result if this parameter is set to true during the maintenance window, and a newer minor version is available, and RDS has enabled auto patching for that engine version.

", + "ModifyEventSubscriptionMessage$Enabled": "

A Boolean value; set to true to activate the subscription.

", + "PendingModifiedValues$MultiAZ": "

Indicates that the Single-AZ DB instance is to change to a Multi-AZ deployment.

", + "RebootDBInstanceMessage$ForceFailover": "

When true, the reboot will be conducted through a MultiAZ failover.

Constraint: You cannot specify true if the instance is not configured for MultiAZ.

", + "RestoreDBInstanceFromDBSnapshotMessage$MultiAZ": "

Specifies if the DB instance is a Multi-AZ deployment.

Constraint: You cannot specify the AvailabilityZone parameter if the MultiAZ parameter is set to true.

", + "RestoreDBInstanceFromDBSnapshotMessage$PubliclyAccessible": "

Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address.

Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case.

  • Default VPC: true
  • VPC: false

If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be private.

", + "RestoreDBInstanceFromDBSnapshotMessage$AutoMinorVersionUpgrade": "

Indicates that minor version upgrades will be applied automatically to the DB instance during the maintenance window.

", + "RestoreDBInstanceToPointInTimeMessage$MultiAZ": "

Specifies if the DB instance is a Multi-AZ deployment.

Constraint: You cannot specify the AvailabilityZone parameter if the MultiAZ parameter is set to true.

", + "RestoreDBInstanceToPointInTimeMessage$PubliclyAccessible": "

Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address.

Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case.

  • Default VPC:true
  • VPC:false

If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance will be private.

", + "RestoreDBInstanceToPointInTimeMessage$AutoMinorVersionUpgrade": "

Indicates that minor version upgrades will be applied automatically to the DB instance during the maintenance window.

" + } + }, + "Certificate": { + "base": "

A CA certificate for an AWS account.

", + "refs": { + "CertificateList$member": null + } + }, + "CertificateList": { + "base": null, + "refs": { + "CertificateMessage$Certificates": "

The list of Certificate objects for the AWS account.

" + } + }, + "CertificateMessage": { + "base": "

Data returned by the DescribeCertificates action.

", + "refs": { + } + }, + "CertificateNotFoundFault": { + "base": "

CertificateIdentifier does not refer to an existing certificate.

", + "refs": { + } + }, + "CharacterSet": { + "base": "

This data type is used as a response element in the action DescribeDBEngineVersions.

", + "refs": { + "DBEngineVersion$DefaultCharacterSet": "

The default character set for new instances of this engine version, if the CharacterSetName parameter of the CreateDBInstance API is not specified.

", + "SupportedCharacterSetsList$member": null + } + }, + "CopyDBParameterGroupMessage": { + "base": "

", + "refs": { + } + }, + "CopyDBSnapshotMessage": { + "base": "

", + "refs": { + } + }, + "CopyOptionGroupMessage": { + "base": "

", + "refs": { + } + }, + "CreateDBInstanceMessage": { + "base": "

", + "refs": { + } + }, + "CreateDBInstanceReadReplicaMessage": { + "base": null, + "refs": { + } + }, + "CreateDBParameterGroupMessage": { + "base": "

", + "refs": { + } + }, + "CreateDBSecurityGroupMessage": { + "base": "

", + "refs": { + } + }, + "CreateDBSnapshotMessage": { + "base": "

", + "refs": { + } + }, + "CreateDBSubnetGroupMessage": { + "base": "

", + "refs": { + } + }, + "CreateEventSubscriptionMessage": { + "base": "

", + "refs": { + } + }, + "CreateOptionGroupMessage": { + "base": "

", + "refs": { + } + }, + "DBEngineVersion": { + "base": "

This data type is used as a response element in the action DescribeDBEngineVersions.

", + "refs": { + "DBEngineVersionList$member": null + } + }, + "DBEngineVersionList": { + "base": null, + "refs": { + "DBEngineVersionMessage$DBEngineVersions": "

A list of DBEngineVersion elements.

" + } + }, + "DBEngineVersionMessage": { + "base": "

Contains the result of a successful invocation of the DescribeDBEngineVersions action.

", + "refs": { + } + }, + "DBInstance": { + "base": "

Contains the result of a successful invocation of the following actions:

This data type is used as a response element in the DescribeDBInstances action.

", + "refs": { + "DBInstanceList$member": null, + "CreateDBInstanceResult$DBInstance": null, + "CreateDBInstanceReadReplicaResult$DBInstance": null, + "DeleteDBInstanceResult$DBInstance": null, + "ModifyDBInstanceResult$DBInstance": null, + "PromoteReadReplicaResult$DBInstance": null, + "RebootDBInstanceResult$DBInstance": null, + "RestoreDBInstanceFromDBSnapshotResult$DBInstance": null, + "RestoreDBInstanceToPointInTimeResult$DBInstance": null + } + }, + "DBInstanceAlreadyExistsFault": { + "base": "

User already has a DB instance with the given identifier.

", + "refs": { + } + }, + "DBInstanceList": { + "base": null, + "refs": { + "DBInstanceMessage$DBInstances": "

A list of DBInstance instances.

" + } + }, + "DBInstanceMessage": { + "base": "

Contains the result of a successful invocation of the DescribeDBInstances action.

", + "refs": { + } + }, + "DBInstanceNotFoundFault": { + "base": "

DBInstanceIdentifier does not refer to an existing DB instance.

", + "refs": { + } + }, + "DBInstanceStatusInfo": { + "base": "

Provides a list of status information for a DB instance.

", + "refs": { + "DBInstanceStatusInfoList$member": null + } + }, + "DBInstanceStatusInfoList": { + "base": null, + "refs": { + "DBInstance$StatusInfos": "

The status of a Read Replica. If the instance is not a Read Replica, this will be blank.

" + } + }, + "DBParameterGroup": { + "base": "

Contains the result of a successful invocation of the CreateDBParameterGroup action.

This data type is used as a request parameter in the DeleteDBParameterGroup action, and as a response element in the DescribeDBParameterGroups action.

", + "refs": { + "DBParameterGroupList$member": null, + "CopyDBParameterGroupResult$DBParameterGroup": null, + "CreateDBParameterGroupResult$DBParameterGroup": null + } + }, + "DBParameterGroupAlreadyExistsFault": { + "base": "

A DB parameter group with the same name exists.

", + "refs": { + } + }, + "DBParameterGroupDetails": { + "base": "

Contains the result of a successful invocation of the DescribeDBParameters action.

", + "refs": { + } + }, + "DBParameterGroupList": { + "base": null, + "refs": { + "DBParameterGroupsMessage$DBParameterGroups": "

A list of DBParameterGroup instances.

" + } + }, + "DBParameterGroupNameMessage": { + "base": "

Contains the result of a successful invocation of the ModifyDBParameterGroup or ResetDBParameterGroup action.

", + "refs": { + } + }, + "DBParameterGroupNotFoundFault": { + "base": "

DBParameterGroupName does not refer to an existing DB parameter group.

", + "refs": { + } + }, + "DBParameterGroupQuotaExceededFault": { + "base": "

Request would result in user exceeding the allowed number of DB parameter groups.

", + "refs": { + } + }, + "DBParameterGroupStatus": { + "base": "

The status of the DB parameter group.

This data type is used as a response element in the following actions:

", + "refs": { + "DBParameterGroupStatusList$member": null + } + }, + "DBParameterGroupStatusList": { + "base": null, + "refs": { + "DBInstance$DBParameterGroups": "

Provides the list of DB parameter groups applied to this DB instance.

" + } + }, + "DBParameterGroupsMessage": { + "base": "

Contains the result of a successful invocation of the DescribeDBParameterGroups action.

", + "refs": { + } + }, + "DBSecurityGroup": { + "base": "

Contains the result of a successful invocation of the following actions:

This data type is used as a response element in the DescribeDBSecurityGroups action.

", + "refs": { + "DBSecurityGroups$member": null, + "AuthorizeDBSecurityGroupIngressResult$DBSecurityGroup": null, + "CreateDBSecurityGroupResult$DBSecurityGroup": null, + "RevokeDBSecurityGroupIngressResult$DBSecurityGroup": null + } + }, + "DBSecurityGroupAlreadyExistsFault": { + "base": "

A DB security group with the name specified in DBSecurityGroupName already exists.

", + "refs": { + } + }, + "DBSecurityGroupMembership": { + "base": "

This data type is used as a response element in the following actions:

", + "refs": { + "DBSecurityGroupMembershipList$member": null + } + }, + "DBSecurityGroupMembershipList": { + "base": null, + "refs": { + "DBInstance$DBSecurityGroups": "

Provides List of DB security group elements containing only DBSecurityGroup.Name and DBSecurityGroup.Status subelements.

", + "Option$DBSecurityGroupMemberships": "

If the option requires access to a port, then this DB security group allows access to the port.

" + } + }, + "DBSecurityGroupMessage": { + "base": "

Contains the result of a successful invocation of the DescribeDBSecurityGroups action.

", + "refs": { + } + }, + "DBSecurityGroupNameList": { + "base": null, + "refs": { + "CreateDBInstanceMessage$DBSecurityGroups": "

A list of DB security groups to associate with this DB instance.

Default: The default DB security group for the database engine.

", + "ModifyDBInstanceMessage$DBSecurityGroups": "

A list of DB security groups to authorize on this DB instance. Changing this setting does not result in an outage and the change is asynchronously applied as soon as possible.

Constraints:

  • Must be 1 to 255 alphanumeric characters
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "OptionConfiguration$DBSecurityGroupMemberships": "

A list of DBSecurityGroupMemebrship name strings used for this option.

" + } + }, + "DBSecurityGroupNotFoundFault": { + "base": "

DBSecurityGroupName does not refer to an existing DB security group.

", + "refs": { + } + }, + "DBSecurityGroupNotSupportedFault": { + "base": "

A DB security group is not allowed for this action.

", + "refs": { + } + }, + "DBSecurityGroupQuotaExceededFault": { + "base": "

Request would result in user exceeding the allowed number of DB security groups.

", + "refs": { + } + }, + "DBSecurityGroups": { + "base": null, + "refs": { + "DBSecurityGroupMessage$DBSecurityGroups": "

A list of DBSecurityGroup instances.

" + } + }, + "DBSnapshot": { + "base": "

Contains the result of a successful invocation of the following actions:

This data type is used as a response element in the DescribeDBSnapshots action.

", + "refs": { + "DBSnapshotList$member": null, + "CopyDBSnapshotResult$DBSnapshot": null, + "CreateDBSnapshotResult$DBSnapshot": null, + "DeleteDBSnapshotResult$DBSnapshot": null + } + }, + "DBSnapshotAlreadyExistsFault": { + "base": "

DBSnapshotIdentifier is already used by an existing snapshot.

", + "refs": { + } + }, + "DBSnapshotList": { + "base": null, + "refs": { + "DBSnapshotMessage$DBSnapshots": "

A list of DBSnapshot instances.

" + } + }, + "DBSnapshotMessage": { + "base": "

Contains the result of a successful invocation of the DescribeDBSnapshots action.

", + "refs": { + } + }, + "DBSnapshotNotFoundFault": { + "base": "

DBSnapshotIdentifier does not refer to an existing DB snapshot.

", + "refs": { + } + }, + "DBSubnetGroup": { + "base": "

Contains the result of a successful invocation of the following actions:

This data type is used as a response element in the DescribeDBSubnetGroups action.

", + "refs": { + "DBInstance$DBSubnetGroup": "

Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.

", + "DBSubnetGroups$member": null, + "CreateDBSubnetGroupResult$DBSubnetGroup": null, + "ModifyDBSubnetGroupResult$DBSubnetGroup": null + } + }, + "DBSubnetGroupAlreadyExistsFault": { + "base": "

DBSubnetGroupName is already used by an existing DB subnet group.

", + "refs": { + } + }, + "DBSubnetGroupDoesNotCoverEnoughAZs": { + "base": "

Subnets in the DB subnet group should cover at least two Availability Zones unless there is only one Availability Zone.

", + "refs": { + } + }, + "DBSubnetGroupMessage": { + "base": "

Contains the result of a successful invocation of the DescribeDBSubnetGroups action.

", + "refs": { + } + }, + "DBSubnetGroupNotAllowedFault": { + "base": "

Indicates that the DBSubnetGroup should not be specified while creating read replicas that lie in the same region as the source instance.

", + "refs": { + } + }, + "DBSubnetGroupNotFoundFault": { + "base": "

DBSubnetGroupName does not refer to an existing DB subnet group.

", + "refs": { + } + }, + "DBSubnetGroupQuotaExceededFault": { + "base": "

Request would result in user exceeding the allowed number of DB subnet groups.

", + "refs": { + } + }, + "DBSubnetGroups": { + "base": null, + "refs": { + "DBSubnetGroupMessage$DBSubnetGroups": "

A list of DBSubnetGroup instances.

" + } + }, + "DBSubnetQuotaExceededFault": { + "base": "

Request would result in user exceeding the allowed number of subnets in a DB subnet groups.

", + "refs": { + } + }, + "DBUpgradeDependencyFailureFault": { + "base": "

The DB upgrade failed because a resource the DB depends on could not be modified.

", + "refs": { + } + }, + "DeleteDBInstanceMessage": { + "base": "

", + "refs": { + } + }, + "DeleteDBParameterGroupMessage": { + "base": "

", + "refs": { + } + }, + "DeleteDBSecurityGroupMessage": { + "base": "

", + "refs": { + } + }, + "DeleteDBSnapshotMessage": { + "base": "

", + "refs": { + } + }, + "DeleteDBSubnetGroupMessage": { + "base": "

", + "refs": { + } + }, + "DeleteEventSubscriptionMessage": { + "base": "

", + "refs": { + } + }, + "DeleteOptionGroupMessage": { + "base": "

", + "refs": { + } + }, + "DescribeAccountAttributesMessage": { + "base": "

", + "refs": { + } + }, + "DescribeCertificatesMessage": { + "base": "

", + "refs": { + } + }, + "DescribeDBEngineVersionsMessage": { + "base": null, + "refs": { + } + }, + "DescribeDBInstancesMessage": { + "base": "

", + "refs": { + } + }, + "DescribeDBLogFilesDetails": { + "base": "

This data type is used as a response element to DescribeDBLogFiles.

", + "refs": { + "DescribeDBLogFilesList$member": null + } + }, + "DescribeDBLogFilesList": { + "base": null, + "refs": { + "DescribeDBLogFilesResponse$DescribeDBLogFiles": "

The DB log files returned.

" + } + }, + "DescribeDBLogFilesMessage": { + "base": "

", + "refs": { + } + }, + "DescribeDBLogFilesResponse": { + "base": "

The response from a call to DescribeDBLogFiles.

", + "refs": { + } + }, + "DescribeDBParameterGroupsMessage": { + "base": "

", + "refs": { + } + }, + "DescribeDBParametersMessage": { + "base": null, + "refs": { + } + }, + "DescribeDBSecurityGroupsMessage": { + "base": "

", + "refs": { + } + }, + "DescribeDBSnapshotsMessage": { + "base": "

", + "refs": { + } + }, + "DescribeDBSubnetGroupsMessage": { + "base": "

", + "refs": { + } + }, + "DescribeEngineDefaultParametersMessage": { + "base": "

", + "refs": { + } + }, + "DescribeEventCategoriesMessage": { + "base": "

", + "refs": { + } + }, + "DescribeEventSubscriptionsMessage": { + "base": "

", + "refs": { + } + }, + "DescribeEventsMessage": { + "base": "

", + "refs": { + } + }, + "DescribeOptionGroupOptionsMessage": { + "base": "

", + "refs": { + } + }, + "DescribeOptionGroupsMessage": { + "base": "

", + "refs": { + } + }, + "DescribeOrderableDBInstanceOptionsMessage": { + "base": "

", + "refs": { + } + }, + "DescribePendingMaintenanceActionsMessage": { + "base": "

", + "refs": { + } + }, + "DescribeReservedDBInstancesMessage": { + "base": "

", + "refs": { + } + }, + "DescribeReservedDBInstancesOfferingsMessage": { + "base": "

", + "refs": { + } + }, + "Double": { + "base": null, + "refs": { + "RecurringCharge$RecurringChargeAmount": "

The amount of the recurring charge.

", + "ReservedDBInstance$FixedPrice": "

The fixed price charged for this reserved DB instance.

", + "ReservedDBInstance$UsagePrice": "

The hourly price charged for this reserved DB instance.

", + "ReservedDBInstancesOffering$FixedPrice": "

The fixed price charged for this offering.

", + "ReservedDBInstancesOffering$UsagePrice": "

The hourly price charged for this offering.

" + } + }, + "DownloadDBLogFilePortionDetails": { + "base": "

This data type is used as a response element to DownloadDBLogFilePortion.

", + "refs": { + } + }, + "DownloadDBLogFilePortionMessage": { + "base": "

", + "refs": { + } + }, + "EC2SecurityGroup": { + "base": "

This data type is used as a response element in the following actions:

", + "refs": { + "EC2SecurityGroupList$member": null + } + }, + "EC2SecurityGroupList": { + "base": null, + "refs": { + "DBSecurityGroup$EC2SecurityGroups": "

Contains a list of EC2SecurityGroup elements.

" + } + }, + "Endpoint": { + "base": "

This data type is used as a response element in the following actions:

", + "refs": { + "DBInstance$Endpoint": "

Specifies the connection endpoint.

" + } + }, + "EngineDefaults": { + "base": "

Contains the result of a successful invocation of the DescribeEngineDefaultParameters action.

", + "refs": { + "DescribeEngineDefaultParametersResult$EngineDefaults": null + } + }, + "Event": { + "base": "

This data type is used as a response element in the DescribeEvents action.

", + "refs": { + "EventList$member": null + } + }, + "EventCategoriesList": { + "base": null, + "refs": { + "CreateEventSubscriptionMessage$EventCategories": "

A list of event categories for a SourceType that you want to subscribe to. You can see a list of the categories for a given SourceType in the Events topic in the Amazon RDS User Guide or by using the DescribeEventCategories action.

", + "DescribeEventsMessage$EventCategories": "

A list of event categories that trigger notifications for a event notification subscription.

", + "Event$EventCategories": "

Specifies the category for the event.

", + "EventCategoriesMap$EventCategories": "

The event categories for the specified source type

", + "EventSubscription$EventCategoriesList": "

A list of event categories for the RDS event notification subscription.

", + "ModifyEventSubscriptionMessage$EventCategories": "

A list of event categories for a SourceType that you want to subscribe to. You can see a list of the categories for a given SourceType in the Events topic in the Amazon RDS User Guide or by using the DescribeEventCategories action.

" + } + }, + "EventCategoriesMap": { + "base": "

Contains the results of a successful invocation of the DescribeEventCategories action.

", + "refs": { + "EventCategoriesMapList$member": null + } + }, + "EventCategoriesMapList": { + "base": null, + "refs": { + "EventCategoriesMessage$EventCategoriesMapList": "

A list of EventCategoriesMap data types.

" + } + }, + "EventCategoriesMessage": { + "base": "

Data returned from the DescribeEventCategories action.

", + "refs": { + } + }, + "EventList": { + "base": null, + "refs": { + "EventsMessage$Events": "

A list of Event instances.

" + } + }, + "EventSubscription": { + "base": "

Contains the results of a successful invocation of the DescribeEventSubscriptions action.

", + "refs": { + "EventSubscriptionsList$member": null, + "AddSourceIdentifierToSubscriptionResult$EventSubscription": null, + "CreateEventSubscriptionResult$EventSubscription": null, + "DeleteEventSubscriptionResult$EventSubscription": null, + "ModifyEventSubscriptionResult$EventSubscription": null, + "RemoveSourceIdentifierFromSubscriptionResult$EventSubscription": null + } + }, + "EventSubscriptionQuotaExceededFault": { + "base": "

You have reached the maximum number of event subscriptions.

", + "refs": { + } + }, + "EventSubscriptionsList": { + "base": null, + "refs": { + "EventSubscriptionsMessage$EventSubscriptionsList": "

A list of EventSubscriptions data types.

" + } + }, + "EventSubscriptionsMessage": { + "base": "

Data returned by the DescribeEventSubscriptions action.

", + "refs": { + } + }, + "EventsMessage": { + "base": "

Contains the result of a successful invocation of the DescribeEvents action.

", + "refs": { + } + }, + "Filter": { + "base": null, + "refs": { + "FilterList$member": null + } + }, + "FilterList": { + "base": null, + "refs": { + "DescribeCertificatesMessage$Filters": "

This parameter is not currently supported.

", + "DescribeDBEngineVersionsMessage$Filters": "

Not currently supported.

", + "DescribeDBInstancesMessage$Filters": "

This parameter is not currently supported.

", + "DescribeDBLogFilesMessage$Filters": "

This parameter is not currently supported.

", + "DescribeDBParameterGroupsMessage$Filters": "

This parameter is not currently supported.

", + "DescribeDBParametersMessage$Filters": "

This parameter is not currently supported.

", + "DescribeDBSecurityGroupsMessage$Filters": "

This parameter is not currently supported.

", + "DescribeDBSnapshotsMessage$Filters": "

This parameter is not currently supported.

", + "DescribeDBSubnetGroupsMessage$Filters": "

This parameter is not currently supported.

", + "DescribeEngineDefaultParametersMessage$Filters": "

Not currently supported.

", + "DescribeEventCategoriesMessage$Filters": "

This parameter is not currently supported.

", + "DescribeEventSubscriptionsMessage$Filters": "

This parameter is not currently supported.

", + "DescribeEventsMessage$Filters": "

This parameter is not currently supported.

", + "DescribeOptionGroupOptionsMessage$Filters": "

This parameter is not currently supported.

", + "DescribeOptionGroupsMessage$Filters": "

This parameter is not currently supported.

", + "DescribeOrderableDBInstanceOptionsMessage$Filters": "

This parameter is not currently supported.

", + "DescribePendingMaintenanceActionsMessage$Filters": "

A filter that specifies one or more resources to return pending maintenance actions for.

Supported filters:

  • db-instance-id - Accepts DB instance identifiers and DB instance Amazon Resource Names (ARNs). The results list will only include pending maintenance actions for the DB instances identified by these ARNs.
", + "DescribeReservedDBInstancesMessage$Filters": "

This parameter is not currently supported.

", + "DescribeReservedDBInstancesOfferingsMessage$Filters": "

This parameter is not currently supported.

", + "ListTagsForResourceMessage$Filters": "

This parameter is not currently supported.

" + } + }, + "FilterValueList": { + "base": null, + "refs": { + "Filter$Values": "

This parameter is not currently supported.

" + } + }, + "IPRange": { + "base": "

This data type is used as a response element in the DescribeDBSecurityGroups action.

", + "refs": { + "IPRangeList$member": null + } + }, + "IPRangeList": { + "base": null, + "refs": { + "DBSecurityGroup$IPRanges": "

Contains a list of IPRange elements.

" + } + }, + "InstanceQuotaExceededFault": { + "base": "

Request would result in user exceeding the allowed number of DB instances.

", + "refs": { + } + }, + "InsufficientDBInstanceCapacityFault": { + "base": "

Specified DB instance class is not available in the specified Availability Zone.

", + "refs": { + } + }, + "Integer": { + "base": null, + "refs": { + "DBInstance$AllocatedStorage": "

Specifies the allocated storage size specified in gigabytes.

", + "DBInstance$BackupRetentionPeriod": "

Specifies the number of days for which automatic DB snapshots are retained.

", + "DBSnapshot$AllocatedStorage": "

Specifies the allocated storage size in gigabytes (GB).

", + "DBSnapshot$Port": "

Specifies the port that the database engine was listening on at the time of the snapshot.

", + "DBSnapshot$PercentProgress": "

The percentage of the estimated data that has been transferred.

", + "DownloadDBLogFilePortionMessage$NumberOfLines": "

The number of lines to download.

If the NumberOfLines parameter is specified, then the block of lines returned can be from the beginning or the end of the log file, depending on the value of the Marker parameter.

  • If neither Marker or NumberOfLines are specified, the entire log file is returned.

  • If NumberOfLines is specified and Marker is not specified, then the most recent lines from the end of the log file are returned.

  • If Marker is specified as \"0\", then the specified number of lines from the beginning of the log file are returned.

  • You can download the log file in blocks of lines by specifying the size of the block using the NumberOfLines parameter, and by specifying a value of \"0\" for the Marker parameter in your first request. Include the Marker value returned in the response as the Marker value for the next request, continuing until the AdditionalDataPending response element returns false.

", + "Endpoint$Port": "

Specifies the port that the database engine is listening on.

", + "ReservedDBInstance$Duration": "

The duration of the reservation in seconds.

", + "ReservedDBInstance$DBInstanceCount": "

The number of reserved DB instances.

", + "ReservedDBInstancesOffering$Duration": "

The duration of the offering in seconds.

" + } + }, + "IntegerOptional": { + "base": null, + "refs": { + "CreateDBInstanceMessage$AllocatedStorage": "

The amount of storage (in gigabytes) to be initially allocated for the database instance.

Type: Integer

MySQL

Constraints: Must be an integer from 5 to 3072.

PostgreSQL

Constraints: Must be an integer from 5 to 3072.

Oracle

Constraints: Must be an integer from 10 to 3072.

SQL Server

Constraints: Must be an integer from 200 to 1024 (Standard Edition and Enterprise Edition) or from 20 to 1024 (Express Edition and Web Edition)

", + "CreateDBInstanceMessage$BackupRetentionPeriod": "

The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.

Default: 1

Constraints:

  • Must be a value from 0 to 35
  • Cannot be set to 0 if the DB instance is a source to Read Replicas
", + "CreateDBInstanceMessage$Port": "

The port number on which the database accepts connections.

MySQL

Default: 3306

Valid Values: 1150-65535

Type: Integer

PostgreSQL

Default: 5432

Valid Values: 1150-65535

Type: Integer

Oracle

Default: 1521

Valid Values: 1150-65535

SQL Server

Default: 1433

Valid Values: 1150-65535 except for 1434, 3389, 47001, 49152, and 49152 through 49156.

", + "CreateDBInstanceMessage$Iops": "

The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for the DB instance.

Constraints: To use PIOPS, this value must be an integer greater than 1000.

", + "CreateDBInstanceReadReplicaMessage$Port": "

The port number that the DB instance uses for connections.

Default: Inherits from the source DB instance

Valid Values: 1150-65535

", + "CreateDBInstanceReadReplicaMessage$Iops": "

The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for the DB instance.

", + "DBInstance$Iops": "

Specifies the Provisioned IOPS (I/O operations per second) value.

", + "DBSnapshot$Iops": "

Specifies the Provisioned IOPS (I/O operations per second) value of the DB instance at the time of the snapshot.

", + "DescribeCertificatesMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: Minimum 20, maximum 100

", + "DescribeDBEngineVersionsMessage$MaxRecords": "

The maximum number of records to include in the response. If more than the MaxRecords value is available, a pagination token called a marker is included in the response so that the following results can be retrieved.

Default: 100

Constraints: minimum 20, maximum 100

", + "DescribeDBInstancesMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results may be retrieved.

Default: 100

Constraints: minimum 20, maximum 100

", + "DescribeDBLogFilesMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.

", + "DescribeDBParameterGroupsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results may be retrieved.

Default: 100

Constraints: minimum 20, maximum 100

", + "DescribeDBParametersMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results may be retrieved.

Default: 100

Constraints: minimum 20, maximum 100

", + "DescribeDBSecurityGroupsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results may be retrieved.

Default: 100

Constraints: minimum 20, maximum 100

", + "DescribeDBSnapshotsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results may be retrieved.

Default: 100

Constraints: minimum 20, maximum 100

", + "DescribeDBSubnetGroupsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results may be retrieved.

Default: 100

Constraints: minimum 20, maximum 100

", + "DescribeEngineDefaultParametersMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results may be retrieved.

Default: 100

Constraints: minimum 20, maximum 100

", + "DescribeEventSubscriptionsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: minimum 20, maximum 100

", + "DescribeEventsMessage$Duration": "

The number of minutes to retrieve events for.

Default: 60

", + "DescribeEventsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results may be retrieved.

Default: 100

Constraints: minimum 20, maximum 100

", + "DescribeOptionGroupOptionsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: minimum 20, maximum 100

", + "DescribeOptionGroupsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: minimum 20, maximum 100

", + "DescribeOrderableDBInstanceOptionsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: minimum 20, maximum 100

", + "DescribePendingMaintenanceActionsMessage$MaxRecords": "

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.

Default: 100

Constraints: minimum 20, maximum 100

", + "DescribeReservedDBInstancesMessage$MaxRecords": "

The maximum number of records to include in the response. If more than the MaxRecords value is available, a pagination token called a marker is included in the response so that the following results can be retrieved.

Default: 100

Constraints: minimum 20, maximum 100

", + "DescribeReservedDBInstancesOfferingsMessage$MaxRecords": "

The maximum number of records to include in the response. If more than the MaxRecords value is available, a pagination token called a marker is included in the response so that the following results can be retrieved.

Default: 100

Constraints: minimum 20, maximum 100

", + "ModifyDBInstanceMessage$AllocatedStorage": "

The new storage capacity of the RDS instance. Changing this setting does not result in an outage and the change is applied during the next maintenance window unless ApplyImmediately is set to true for this request.

MySQL

Default: Uses existing setting

Valid Values: 5-3072

Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value.

Type: Integer

PostgreSQL

Default: Uses existing setting

Valid Values: 5-3072

Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value.

Type: Integer

Oracle

Default: Uses existing setting

Valid Values: 10-3072

Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value.

SQL Server

Cannot be modified.

If you choose to migrate your DB instance from using standard storage to using Provisioned IOPS, or from using Provisioned IOPS to using standard storage, the process can take time. The duration of the migration depends on several factors such as database load, storage size, storage type (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and the number of prior scale storage operations. Typical migration times are under 24 hours, but the process can take up to several days in some cases. During the migration, the DB instance will be available for use, but may experience performance degradation. While the migration takes place, nightly backups for the instance will be suspended. No other Amazon RDS operations can take place for the instance, including modifying the instance, rebooting the instance, deleting the instance, creating a Read Replica for the instance, and creating a DB snapshot of the instance.

", + "ModifyDBInstanceMessage$BackupRetentionPeriod": "

The number of days to retain automated backups. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.

Changing this parameter can result in an outage if you change from 0 to a non-zero value or from a non-zero value to 0. These changes are applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request. If you change the parameter from one non-zero value to another non-zero value, the change is asynchronously applied as soon as possible.

Default: Uses existing setting

Constraints:

  • Must be a value from 0 to 35
  • Can be specified for a MySQL Read Replica only if the source is running MySQL 5.6
  • Can be specified for a PostgreSQL Read Replica only if the source is running PostgreSQL 9.3.5
  • Cannot be set to 0 if the DB instance is a source to Read Replicas
", + "ModifyDBInstanceMessage$Iops": "

The new Provisioned IOPS (I/O operations per second) value for the RDS instance. Changing this setting does not result in an outage and the change is applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request.

Default: Uses existing setting

Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value. If you are migrating from Provisioned IOPS to standard storage, set this value to 0. The DB instance will require a reboot for the change in storage type to take effect.

SQL Server

Setting the IOPS value for the SQL Server database engine is not supported.

Type: Integer

If you choose to migrate your DB instance from using standard storage to using Provisioned IOPS, or from using Provisioned IOPS to using standard storage, the process can take time. The duration of the migration depends on several factors such as database load, storage size, storage type (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and the number of prior scale storage operations. Typical migration times are under 24 hours, but the process can take up to several days in some cases. During the migration, the DB instance will be available for use, but may experience performance degradation. While the migration takes place, nightly backups for the instance will be suspended. No other Amazon RDS operations can take place for the instance, including modifying the instance, rebooting the instance, deleting the instance, creating a Read Replica for the instance, and creating a DB snapshot of the instance.

", + "Option$Port": "

If required, the port configured for this option to use.

", + "OptionConfiguration$Port": "

The optional port for the option.

", + "OptionGroupOption$DefaultPort": "

If the option requires a port, specifies the default port for the option.

", + "PendingModifiedValues$AllocatedStorage": "

Contains the new AllocatedStorage size for the DB instance that will be applied or is in progress.

", + "PendingModifiedValues$Port": "

Specifies the pending port for the DB instance.

", + "PendingModifiedValues$BackupRetentionPeriod": "

Specifies the pending number of days for which automated backups are retained.

", + "PendingModifiedValues$Iops": "

Specifies the new Provisioned IOPS value for the DB instance that will be applied or is being applied.

", + "PromoteReadReplicaMessage$BackupRetentionPeriod": "

The number of days to retain automated backups. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.

Default: 1

Constraints:

  • Must be a value from 0 to 8
", + "PurchaseReservedDBInstancesOfferingMessage$DBInstanceCount": "

The number of instances to reserve.

Default: 1

", + "RestoreDBInstanceFromDBSnapshotMessage$Port": "

The port number on which the database accepts connections.

Default: The same port as the original DB instance

Constraints: Value must be 1150-65535

", + "RestoreDBInstanceFromDBSnapshotMessage$Iops": "

Specifies the amount of provisioned IOPS for the DB instance, expressed in I/O operations per second. If this parameter is not specified, the IOPS value will be taken from the backup. If this parameter is set to 0, the new instance will be converted to a non-PIOPS instance, which will take additional time, though your DB instance will be available for connections before the conversion starts.

Constraints: Must be an integer greater than 1000.

SQL Server

Setting the IOPS value for the SQL Server database engine is not supported.

", + "RestoreDBInstanceToPointInTimeMessage$Port": "

The port number on which the database accepts connections.

Constraints: Value must be 1150-65535

Default: The same port as the original DB instance.

", + "RestoreDBInstanceToPointInTimeMessage$Iops": "

The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for the DB instance.

Constraints: Must be an integer greater than 1000.

SQL Server

Setting the IOPS value for the SQL Server database engine is not supported.

" + } + }, + "InvalidDBInstanceStateFault": { + "base": "

The specified DB instance is not in the available state.

", + "refs": { + } + }, + "InvalidDBParameterGroupStateFault": { + "base": "

The DB parameter group cannot be deleted because it is in use.

", + "refs": { + } + }, + "InvalidDBSecurityGroupStateFault": { + "base": "

The state of the DB security group does not allow deletion.

", + "refs": { + } + }, + "InvalidDBSnapshotStateFault": { + "base": "

The state of the DB snapshot does not allow deletion.

", + "refs": { + } + }, + "InvalidDBSubnetGroupFault": { + "base": "

Indicates the DBSubnetGroup does not belong to the same VPC as that of an existing cross region read replica of the same source instance.

", + "refs": { + } + }, + "InvalidDBSubnetGroupStateFault": { + "base": "

The DB subnet group cannot be deleted because it is in use.

", + "refs": { + } + }, + "InvalidDBSubnetStateFault": { + "base": "

The DB subnet is not in the available state.

", + "refs": { + } + }, + "InvalidEventSubscriptionStateFault": { + "base": "

This error can occur if someone else is modifying a subscription. You should retry the action.

", + "refs": { + } + }, + "InvalidOptionGroupStateFault": { + "base": "

The option group is not in the available state.

", + "refs": { + } + }, + "InvalidRestoreFault": { + "base": "

Cannot restore from vpc backup to non-vpc DB instance.

", + "refs": { + } + }, + "InvalidSubnet": { + "base": "

The requested subnet is invalid, or multiple subnets were requested that are not all in a common VPC.

", + "refs": { + } + }, + "InvalidVPCNetworkStateFault": { + "base": "

DB subnet group does not cover all Availability Zones after it is created because users' change.

", + "refs": { + } + }, + "KMSKeyNotAccessibleFault": { + "base": "

Error accessing KMS key.

", + "refs": { + } + }, + "KeyList": { + "base": null, + "refs": { + "RemoveTagsFromResourceMessage$TagKeys": "

The tag key (name) of the tag to be removed.

" + } + }, + "ListTagsForResourceMessage": { + "base": "

", + "refs": { + } + }, + "Long": { + "base": null, + "refs": { + "AccountQuota$Used": "

The amount currently used toward the quota maximum.

", + "AccountQuota$Max": "

The maximum allowed value for the quota.

", + "DescribeDBLogFilesDetails$LastWritten": "

A POSIX timestamp when the last log entry was written.

", + "DescribeDBLogFilesDetails$Size": "

The size, in bytes, of the log file for the specified DB instance.

", + "DescribeDBLogFilesMessage$FileLastWritten": "

Filters the available log files for files written since the specified date, in POSIX timestamp format.

", + "DescribeDBLogFilesMessage$FileSize": "

Filters the available log files for files larger than the specified size.

" + } + }, + "ModifyDBInstanceMessage": { + "base": "

", + "refs": { + } + }, + "ModifyDBParameterGroupMessage": { + "base": "

", + "refs": { + } + }, + "ModifyDBSubnetGroupMessage": { + "base": "

", + "refs": { + } + }, + "ModifyEventSubscriptionMessage": { + "base": "

", + "refs": { + } + }, + "ModifyOptionGroupMessage": { + "base": "

", + "refs": { + } + }, + "Option": { + "base": "

Option details.

", + "refs": { + "OptionsList$member": null + } + }, + "OptionConfiguration": { + "base": "

A list of all available options

", + "refs": { + "OptionConfigurationList$member": null + } + }, + "OptionConfigurationList": { + "base": null, + "refs": { + "ModifyOptionGroupMessage$OptionsToInclude": "

Options in this list are added to the option group or, if already present, the specified configuration is used to update the existing configuration.

" + } + }, + "OptionGroup": { + "base": "

", + "refs": { + "OptionGroupsList$member": null, + "CopyOptionGroupResult$OptionGroup": null, + "CreateOptionGroupResult$OptionGroup": null, + "ModifyOptionGroupResult$OptionGroup": null + } + }, + "OptionGroupAlreadyExistsFault": { + "base": "

The option group you are trying to create already exists.

", + "refs": { + } + }, + "OptionGroupMembership": { + "base": "

Provides information on the option groups the DB instance is a member of.

", + "refs": { + "OptionGroupMembershipList$member": null + } + }, + "OptionGroupMembershipList": { + "base": null, + "refs": { + "DBInstance$OptionGroupMemberships": "

Provides the list of option group memberships for this DB instance.

" + } + }, + "OptionGroupNotFoundFault": { + "base": "

The specified option group could not be found.

", + "refs": { + } + }, + "OptionGroupOption": { + "base": "

Available option.

", + "refs": { + "OptionGroupOptionsList$member": null + } + }, + "OptionGroupOptionSetting": { + "base": "

Option group option settings are used to display settings available for each option with their default values and other information. These values are used with the DescribeOptionGroupOptions action.

", + "refs": { + "OptionGroupOptionSettingsList$member": null + } + }, + "OptionGroupOptionSettingsList": { + "base": null, + "refs": { + "OptionGroupOption$OptionGroupOptionSettings": "

Specifies the option settings that are available (and the default value) for each option in an option group.

" + } + }, + "OptionGroupOptionsList": { + "base": "

List of available option group options.

", + "refs": { + "OptionGroupOptionsMessage$OptionGroupOptions": null + } + }, + "OptionGroupOptionsMessage": { + "base": "

", + "refs": { + } + }, + "OptionGroupQuotaExceededFault": { + "base": "

The quota of 20 option groups was exceeded for this AWS account.

", + "refs": { + } + }, + "OptionGroups": { + "base": "

List of option groups.

", + "refs": { + } + }, + "OptionGroupsList": { + "base": null, + "refs": { + "OptionGroups$OptionGroupsList": "

List of option groups.

" + } + }, + "OptionNamesList": { + "base": null, + "refs": { + "ModifyOptionGroupMessage$OptionsToRemove": "

Options in this list are removed from the option group.

" + } + }, + "OptionSetting": { + "base": "

Option settings are the actual settings being applied or configured for that option. It is used when you modify an option group or describe option groups. For example, the NATIVE_NETWORK_ENCRYPTION option has a setting called SQLNET.ENCRYPTION_SERVER that can have several different values.

", + "refs": { + "OptionSettingConfigurationList$member": null, + "OptionSettingsList$member": null + } + }, + "OptionSettingConfigurationList": { + "base": null, + "refs": { + "Option$OptionSettings": "

The option settings for this option.

" + } + }, + "OptionSettingsList": { + "base": null, + "refs": { + "OptionConfiguration$OptionSettings": "

The option settings to include in an option group.

" + } + }, + "OptionsDependedOn": { + "base": null, + "refs": { + "OptionGroupOption$OptionsDependedOn": "

List of all options that are prerequisites for this option.

" + } + }, + "OptionsList": { + "base": null, + "refs": { + "OptionGroup$Options": "

Indicates what options are available in the option group.

" + } + }, + "OrderableDBInstanceOption": { + "base": "

Contains a list of available options for a DB instance

This data type is used as a response element in the DescribeOrderableDBInstanceOptions action.

", + "refs": { + "OrderableDBInstanceOptionsList$member": null + } + }, + "OrderableDBInstanceOptionsList": { + "base": null, + "refs": { + "OrderableDBInstanceOptionsMessage$OrderableDBInstanceOptions": "

An OrderableDBInstanceOption structure containing information about orderable options for the DB instance.

" + } + }, + "OrderableDBInstanceOptionsMessage": { + "base": "

Contains the result of a successful invocation of the DescribeOrderableDBInstanceOptions action.

", + "refs": { + } + }, + "Parameter": { + "base": "

This data type is used as a request parameter in the ModifyDBParameterGroup and ResetDBParameterGroup actions.

This data type is used as a response element in the DescribeEngineDefaultParameters and DescribeDBParameters actions.

", + "refs": { + "ParametersList$member": null + } + }, + "ParametersList": { + "base": null, + "refs": { + "DBParameterGroupDetails$Parameters": "

A list of Parameter values.

", + "EngineDefaults$Parameters": "

Contains a list of engine default parameters.

", + "ModifyDBParameterGroupMessage$Parameters": "

An array of parameter names, values, and the apply method for the parameter update. At least one parameter name, value, and apply method must be supplied; subsequent arguments are optional. A maximum of 20 parameters may be modified in a single request.

Valid Values (for the application method): immediate | pending-reboot

You can use the immediate value with dynamic parameters only. You can use the pending-reboot value for both dynamic and static parameters, and changes are applied when you reboot the DB instance without failover. ", + "ResetDBParameterGroupMessage$Parameters": "

An array of parameter names, values, and the apply method for the parameter update. At least one parameter name, value, and apply method must be supplied; subsequent arguments are optional. A maximum of 20 parameters may be modified in a single request.

MySQL

Valid Values (for Apply method): immediate | pending-reboot

You can use the immediate value with dynamic parameters only. You can use the pending-reboot value for both dynamic and static parameters, and changes are applied when DB instance reboots.

Oracle

Valid Values (for Apply method): pending-reboot

" + } + }, + "PendingMaintenanceAction": { + "base": "

Provides information about a pending maintenance action for a resource.

", + "refs": { + "PendingMaintenanceActionDetails$member": null + } + }, + "PendingMaintenanceActionDetails": { + "base": null, + "refs": { + "ResourcePendingMaintenanceActions$PendingMaintenanceActionDetails": "

A list that provides details about the pending maintenance actions for the resource.

" + } + }, + "PendingMaintenanceActions": { + "base": null, + "refs": { + "PendingMaintenanceActionsMessage$PendingMaintenanceActions": "

A list of the pending maintenance actions for the resource.

" + } + }, + "PendingMaintenanceActionsMessage": { + "base": "

Data returned from the DescribePendingMaintenanceActions action.

", + "refs": { + } + }, + "PendingModifiedValues": { + "base": "

This data type is used as a response element in the ModifyDBInstance action.

", + "refs": { + "DBInstance$PendingModifiedValues": "

Specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.

" + } + }, + "PointInTimeRestoreNotEnabledFault": { + "base": "

SourceDBInstanceIdentifier refers to a DB instance with BackupRetentionPeriod equal to 0.

", + "refs": { + } + }, + "PromoteReadReplicaMessage": { + "base": "

", + "refs": { + } + }, + "ProvisionedIopsNotAvailableInAZFault": { + "base": "

Provisioned IOPS not available in the specified Availability Zone.

", + "refs": { + } + }, + "PurchaseReservedDBInstancesOfferingMessage": { + "base": "

", + "refs": { + } + }, + "ReadReplicaDBInstanceIdentifierList": { + "base": null, + "refs": { + "DBInstance$ReadReplicaDBInstanceIdentifiers": "

Contains one or more identifiers of the Read Replicas associated with this DB instance.

" + } + }, + "RebootDBInstanceMessage": { + "base": "

", + "refs": { + } + }, + "RecurringCharge": { + "base": "

This data type is used as a response element in the DescribeReservedDBInstances and DescribeReservedDBInstancesOfferings actions.

", + "refs": { + "RecurringChargeList$member": null + } + }, + "RecurringChargeList": { + "base": null, + "refs": { + "ReservedDBInstance$RecurringCharges": "

The recurring price charged to run this reserved DB instance.

", + "ReservedDBInstancesOffering$RecurringCharges": "

The recurring price charged to run this reserved DB instance.

" + } + }, + "RemoveSourceIdentifierFromSubscriptionMessage": { + "base": "

", + "refs": { + } + }, + "RemoveTagsFromResourceMessage": { + "base": "

", + "refs": { + } + }, + "ReservedDBInstance": { + "base": "

This data type is used as a response element in the DescribeReservedDBInstances and PurchaseReservedDBInstancesOffering actions.

", + "refs": { + "ReservedDBInstanceList$member": null, + "PurchaseReservedDBInstancesOfferingResult$ReservedDBInstance": null + } + }, + "ReservedDBInstanceAlreadyExistsFault": { + "base": "

User already has a reservation with the given identifier.

", + "refs": { + } + }, + "ReservedDBInstanceList": { + "base": null, + "refs": { + "ReservedDBInstanceMessage$ReservedDBInstances": "

A list of reserved DB instances.

" + } + }, + "ReservedDBInstanceMessage": { + "base": "

Contains the result of a successful invocation of the DescribeReservedDBInstances action.

", + "refs": { + } + }, + "ReservedDBInstanceNotFoundFault": { + "base": "

The specified reserved DB Instance not found.

", + "refs": { + } + }, + "ReservedDBInstanceQuotaExceededFault": { + "base": "

Request would exceed the user's DB Instance quota.

", + "refs": { + } + }, + "ReservedDBInstancesOffering": { + "base": "

This data type is used as a response element in the DescribeReservedDBInstancesOfferings action.

", + "refs": { + "ReservedDBInstancesOfferingList$member": null + } + }, + "ReservedDBInstancesOfferingList": { + "base": null, + "refs": { + "ReservedDBInstancesOfferingMessage$ReservedDBInstancesOfferings": "

A list of reserved DB instance offerings.

" + } + }, + "ReservedDBInstancesOfferingMessage": { + "base": "

Contains the result of a successful invocation of the DescribeReservedDBInstancesOfferings action.

", + "refs": { + } + }, + "ReservedDBInstancesOfferingNotFoundFault": { + "base": "

Specified offering does not exist.

", + "refs": { + } + }, + "ResetDBParameterGroupMessage": { + "base": "

", + "refs": { + } + }, + "ResourceNotFoundFault": { + "base": "

The specified resource ID was not found.

", + "refs": { + } + }, + "ResourcePendingMaintenanceActions": { + "base": "

Describes the pending maintenance actions for a resource.

", + "refs": { + "PendingMaintenanceActions$member": null, + "ApplyPendingMaintenanceActionResult$ResourcePendingMaintenanceActions": null + } + }, + "RestoreDBInstanceFromDBSnapshotMessage": { + "base": "

", + "refs": { + } + }, + "RestoreDBInstanceToPointInTimeMessage": { + "base": "

", + "refs": { + } + }, + "RevokeDBSecurityGroupIngressMessage": { + "base": "

", + "refs": { + } + }, + "SNSInvalidTopicFault": { + "base": "

SNS has responded that there is a problem with the SND topic specified.

", + "refs": { + } + }, + "SNSNoAuthorizationFault": { + "base": "

You do not have permission to publish to the SNS topic ARN.

", + "refs": { + } + }, + "SNSTopicArnNotFoundFault": { + "base": "

The SNS topic ARN does not exist.

", + "refs": { + } + }, + "SnapshotQuotaExceededFault": { + "base": "

Request would result in user exceeding the allowed number of DB snapshots.

", + "refs": { + } + }, + "SourceIdsList": { + "base": null, + "refs": { + "CreateEventSubscriptionMessage$SourceIds": "

The list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it cannot end with a hyphen or contain two consecutive hyphens.

Constraints:

  • If SourceIds are supplied, SourceType must also be provided.
  • If the source type is a DB instance, then a DBInstanceIdentifier must be supplied.
  • If the source type is a DB security group, a DBSecurityGroupName must be supplied.
  • If the source type is a DB parameter group, a DBParameterGroupName must be supplied.
  • If the source type is a DB snapshot, a DBSnapshotIdentifier must be supplied.
", + "EventSubscription$SourceIdsList": "

A list of source IDs for the RDS event notification subscription.

" + } + }, + "SourceNotFoundFault": { + "base": "

The requested source could not be found.

", + "refs": { + } + }, + "SourceType": { + "base": null, + "refs": { + "DescribeEventsMessage$SourceType": "

The event source to retrieve events for. If no value is specified, all events are returned.

", + "Event$SourceType": "

Specifies the source type for this event.

" + } + }, + "StorageQuotaExceededFault": { + "base": "

Request would result in user exceeding the allowed amount of storage available across all DB instances.

", + "refs": { + } + }, + "StorageTypeNotSupportedFault": { + "base": "

StorageType specified cannot be associated with the DB Instance.

", + "refs": { + } + }, + "String": { + "base": null, + "refs": { + "AccountQuota$AccountQuotaName": "

The name of the Amazon RDS quota for this AWS account.

", + "AddSourceIdentifierToSubscriptionMessage$SubscriptionName": "

The name of the RDS event notification subscription you want to add a source identifier to.

", + "AddSourceIdentifierToSubscriptionMessage$SourceIdentifier": "

The identifier of the event source to be added. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it cannot end with a hyphen or contain two consecutive hyphens.

Constraints:

  • If the source type is a DB instance, then a DBInstanceIdentifier must be supplied.
  • If the source type is a DB security group, a DBSecurityGroupName must be supplied.
  • If the source type is a DB parameter group, a DBParameterGroupName must be supplied.
  • If the source type is a DB snapshot, a DBSnapshotIdentifier must be supplied.
", + "AddTagsToResourceMessage$ResourceName": "

The Amazon RDS resource the tags will be added to. This value is an Amazon Resource Name (ARN). For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN).

", + "ApplyPendingMaintenanceActionMessage$ResourceIdentifier": "

The ARN of the resource that the pending maintenance action applies to.

", + "ApplyPendingMaintenanceActionMessage$ApplyAction": "

The pending maintenance action to apply to this resource.

", + "ApplyPendingMaintenanceActionMessage$OptInType": "

A value that specifies the type of opt-in request, or undoes an opt-in request. An opt-in request of type immediate cannot be undone.

Valid values:

  • immediate - Apply the maintenance action immediately.
  • next-maintenance - Apply the maintenance action during the next maintenance window for the resource.
  • undo-opt-in - Cancel any existing next-maintenance opt-in requests.
", + "AuthorizeDBSecurityGroupIngressMessage$DBSecurityGroupName": "

The name of the DB security group to add authorization to.

", + "AuthorizeDBSecurityGroupIngressMessage$CIDRIP": "

The IP range to authorize.

", + "AuthorizeDBSecurityGroupIngressMessage$EC2SecurityGroupName": "

Name of the EC2 security group to authorize. For VPC DB security groups, EC2SecurityGroupId must be provided. Otherwise, EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId must be provided.

", + "AuthorizeDBSecurityGroupIngressMessage$EC2SecurityGroupId": "

Id of the EC2 security group to authorize. For VPC DB security groups, EC2SecurityGroupId must be provided. Otherwise, EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId must be provided.

", + "AuthorizeDBSecurityGroupIngressMessage$EC2SecurityGroupOwnerId": "

AWS Account Number of the owner of the EC2 security group specified in the EC2SecurityGroupName parameter. The AWS Access Key ID is not an acceptable value. For VPC DB security groups, EC2SecurityGroupId must be provided. Otherwise, EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId must be provided.

", + "AvailabilityZone$Name": "

The name of the availability zone.

", + "Certificate$CertificateIdentifier": "

The unique key that identifies a certificate.

", + "Certificate$CertificateType": "

The type of the certificate.

", + "Certificate$Thumbprint": "

The thumbprint of the certificate.

", + "CertificateMessage$Marker": "

An optional pagination token provided by a previous DescribeCertificates request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .

", + "CharacterSet$CharacterSetName": "

The name of the character set.

", + "CharacterSet$CharacterSetDescription": "

The description of the character set.

", + "CopyDBParameterGroupMessage$SourceDBParameterGroupIdentifier": "

The identifier or ARN for the source DB parameter group.

Constraints:

  • Must specify a valid DB parameter group.
  • If the source DB parameter group is in the same region as the copy, specify a valid DB parameter group identifier, for example my-db-param-group, or a valid ARN.
  • If the source DB parameter group is in a different region than the copy, specify a valid DB parameter group ARN, for example arn:aws:rds:us-west-2:123456789012:pg:special-parameters.
", + "CopyDBParameterGroupMessage$TargetDBParameterGroupIdentifier": "

The identifier for the copied DB parameter group.

Constraints:

  • Cannot be null, empty, or blank
  • Must contain from 1 to 255 alphanumeric characters or hyphens
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-db-parameter-group

", + "CopyDBParameterGroupMessage$TargetDBParameterGroupDescription": "

A description for the copied DB parameter group.

", + "CopyDBSnapshotMessage$SourceDBSnapshotIdentifier": "

The identifier for the source DB snapshot.

Constraints:

  • Must specify a valid system snapshot in the \"available\" state.
  • If the source snapshot is in the same region as the copy, specify a valid DB snapshot identifier.
  • If the source snapshot is in a different region than the copy, specify a valid DB snapshot ARN. For more information, go to Copying a DB Snapshot.

Example: rds:mydb-2012-04-02-00-01

Example: arn:aws:rds:rr-regn-1:123456789012:snapshot:mysql-instance1-snapshot-20130805

", + "CopyDBSnapshotMessage$TargetDBSnapshotIdentifier": "

The identifier for the copied snapshot.

Constraints:

  • Cannot be null, empty, or blank
  • Must contain from 1 to 255 alphanumeric characters or hyphens
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-db-snapshot

", + "CopyOptionGroupMessage$SourceOptionGroupIdentifier": "

The identifier or ARN for the source option group.

Constraints:

  • Must specify a valid option group.
  • If the source option group is in the same region as the copy, specify a valid option group identifier, for example my-option-group, or a valid ARN.
  • If the source option group is in a different region than the copy, specify a valid option group ARN, for example arn:aws:rds:us-west-2:123456789012:og:special-options.
", + "CopyOptionGroupMessage$TargetOptionGroupIdentifier": "

The identifier for the copied option group.

Constraints:

  • Cannot be null, empty, or blank
  • Must contain from 1 to 255 alphanumeric characters or hyphens
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-option-group

", + "CopyOptionGroupMessage$TargetOptionGroupDescription": "

The description for the copied option group.

", + "CreateDBInstanceMessage$DBName": "

The meaning of this parameter differs according to the database engine you use.

Type: String

MySQL

The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance.

Constraints:

  • Must contain 1 to 64 alphanumeric characters
  • Cannot be a word reserved by the specified database engine

PostgreSQL

The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance.

Constraints:

  • Must contain 1 to 63 alphanumeric characters
  • Must begin with a letter or an underscore. Subsequent characters can be letters, underscores, or digits (0-9).
  • Cannot be a word reserved by the specified database engine

Oracle

The Oracle System ID (SID) of the created DB instance.

Default: ORCL

Constraints:

  • Cannot be longer than 8 characters

SQL Server

Not applicable. Must be null.

", + "CreateDBInstanceMessage$DBInstanceIdentifier": "

The DB instance identifier. This parameter is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens (1 to 15 for SQL Server).
  • First character must be a letter.
  • Cannot end with a hyphen or contain two consecutive hyphens.

Example: mydbinstance

", + "CreateDBInstanceMessage$DBInstanceClass": "

The compute and memory capacity of the DB instance.

Valid Values: db.t1.micro | db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge | db.m2.xlarge |db.m2.2xlarge | db.m2.4xlarge | db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium

", + "CreateDBInstanceMessage$Engine": "

The name of the database engine to be used for this instance.

Valid Values: MySQL | oracle-se1 | oracle-se | oracle-ee | sqlserver-ee | sqlserver-se | sqlserver-ex | sqlserver-web | postgres

Not every database engine is available for every AWS region.

", + "CreateDBInstanceMessage$MasterUsername": "

The name of master user for the client DB instance.

MySQL

Constraints:

  • Must be 1 to 16 alphanumeric characters.
  • First character must be a letter.
  • Cannot be a reserved word for the chosen database engine.

Type: String

Oracle

Constraints:

  • Must be 1 to 30 alphanumeric characters.
  • First character must be a letter.
  • Cannot be a reserved word for the chosen database engine.

SQL Server

Constraints:

  • Must be 1 to 128 alphanumeric characters.
  • First character must be a letter.
  • Cannot be a reserved word for the chosen database engine.

PostgreSQL

Constraints:

  • Must be 1 to 63 alphanumeric characters.
  • First character must be a letter.
  • Cannot be a reserved word for the chosen database engine.
", + "CreateDBInstanceMessage$MasterUserPassword": "

The password for the master database user. Can be any printable ASCII character except \"/\", \"\"\", or \"@\".

Type: String

MySQL

Constraints: Must contain from 8 to 41 characters.

Oracle

Constraints: Must contain from 8 to 30 characters.

SQL Server

Constraints: Must contain from 8 to 128 characters.

PostgreSQL

Constraints: Must contain from 8 to 128 characters.

", + "CreateDBInstanceMessage$AvailabilityZone": "

The EC2 Availability Zone that the database instance will be created in. For information on regions and Availability Zones, see Regions and Availability Zones.

Default: A random, system-chosen Availability Zone in the endpoint's region.

Example: us-east-1d

Constraint: The AvailabilityZone parameter cannot be specified if the MultiAZ parameter is set to true. The specified Availability Zone must be in the same region as the current endpoint.

", + "CreateDBInstanceMessage$DBSubnetGroupName": "

A DB subnet group to associate with this DB instance.

If there is no DB subnet group, then it is a non-VPC DB instance.

", + "CreateDBInstanceMessage$PreferredMaintenanceWindow": "

The weekly time range (in UTC) during which system maintenance can occur. For more information, see DB Instance Maintenance.

Format: ddd:hh24:mi-ddd:hh24:mi

Default: A 30-minute window selected at random from an 8-hour block of time per region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred Maintenance Window in the Amazon RDS User Guide.

Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun

Constraints: Minimum 30-minute window.

", + "CreateDBInstanceMessage$DBParameterGroupName": "

The name of the DB parameter group to associate with this DB instance. If this argument is omitted, the default DBParameterGroup for the specified engine will be used.

Constraints:

  • Must be 1 to 255 alphanumeric characters
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "CreateDBInstanceMessage$PreferredBackupWindow": "

The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter. For more information, see DB Instance Backups.

Default: A 30-minute window selected at random from an 8-hour block of time per region. See the Amazon RDS User Guide for the time blocks for each region from which the default backup windows are assigned.

Constraints: Must be in the format hh24:mi-hh24:mi. Times should be Universal Time Coordinated (UTC). Must not conflict with the preferred maintenance window. Must be at least 30 minutes.

", + "CreateDBInstanceMessage$EngineVersion": "

The version number of the database engine to use.

The following are the database engines and major and minor versions that are available with Amazon RDS. Not every database engine is available for every AWS region.

MySQL

  • Version 5.1 (Only available in the following regions: ap-northeast-1, ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1, us-west-1, us-west-2): 5.1.73a | 5.1.73b
  • Version 5.5 (Only available in the following regions: ap-northeast-1, ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1, us-west-1, us-west-2): 5.5.40 | 5.5.40a
  • Version 5.5 (Available in all regions): 5.5.40b | 5.5.41
  • Version 5.6 (Available in all regions): 5.6.19a | 5.6.19b | 5.6.21 | 5.6.21b | 5.6.22

MySQL

  • Version 5.1 (Only available in the following regions: ap-northeast-1, ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1, us-west-1, us-west-2): 5.1.73a | 5.1.73b
  • Version 5.5 (Only available in the following regions: ap-northeast-1, ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1, us-west-1, us-west-2): 5.5.40 | 5.5.40a
  • Version 5.5 (Available in all regions): 5.5.40b | 5.5.41
  • Version 5.6 (Available in all regions): 5.6.19a | 5.6.19b | 5.6.21 | 5.6.21b | 5.6.22

MySQL

  • Version 5.1 (Only available in the following regions: ap-northeast-1, ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1, us-west-1, us-west-2): 5.1.73a | 5.1.73b
  • Version 5.5 (Only available in the following regions: ap-northeast-1, ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1, us-west-1, us-west-2): 5.5.40 | 5.5.40a
  • Version 5.5 (Available in all regions): 5.5.40b | 5.5.41
  • Version 5.6 (Available in all regions): 5.6.19a | 5.6.19b | 5.6.21 | 5.6.21b | 5.6.22

MySQL

  • Version 5.1 (Only available in the following regions: ap-northeast-1, ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1, us-west-1, us-west-2): 5.1.73a | 5.1.73b
  • Version 5.5 (Only available in the following regions: ap-northeast-1, ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1, us-west-1, us-west-2): 5.5.40 | 5.5.40a
  • Version 5.5 (Available in all regions): 5.5.40b | 5.5.41
  • Version 5.6 (Available in all regions): 5.6.19a | 5.6.19b | 5.6.21 | 5.6.21b | 5.6.22

Oracle Database Enterprise Edition (oracle-ee)

  • Version 11.2 (Only available in the following regions: ap-northeast-1, ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1, us-west-1, us-west-2): 11.2.0.2.v3 | 11.2.0.2.v4 | 11.2.0.2.v5 | 11.2.0.2.v6 | 11.2.0.2.v7
  • Version 11.2 (Available in all regions): 11.2.0.3.v1 | 11.2.0.3.v2 | 11.2.0.4.v1 | 11.2.0.4.v3

Oracle Database Enterprise Edition (oracle-ee)

  • Version 11.2 (Only available in the following regions: ap-northeast-1, ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1, us-west-1, us-west-2): 11.2.0.2.v3 | 11.2.0.2.v4 | 11.2.0.2.v5 | 11.2.0.2.v6 | 11.2.0.2.v7
  • Version 11.2 (Available in all regions): 11.2.0.3.v1 | 11.2.0.3.v2 | 11.2.0.4.v1 | 11.2.0.4.v3

Oracle Database Standard Edition (oracle-se)

  • Version 11.2 (Only available in the following regions: us-west-1): 11.2.0.2.v3 | 11.2.0.2.v4 | 11.2.0.2.v5 | 11.2.0.2.v6 | 11.2.0.2.v7
  • Version 11.2 (Only available in the following regions: eu-central-1, us-west-1): 11.2.0.3.v1 | 11.2.0.3.v2 | 11.2.0.4.v1 | 11.2.0.4.v3

Oracle Database Standard Edition (oracle-se)

  • Version 11.2 (Only available in the following regions: us-west-1): 11.2.0.2.v3 | 11.2.0.2.v4 | 11.2.0.2.v5 | 11.2.0.2.v6 | 11.2.0.2.v7
  • Version 11.2 (Only available in the following regions: eu-central-1, us-west-1): 11.2.0.3.v1 | 11.2.0.3.v2 | 11.2.0.4.v1 | 11.2.0.4.v3

Oracle Database Standard Edition One (oracle-se1)

  • Version 11.2 (Only available in the following regions: us-west-1): 11.2.0.2.v3 | 11.2.0.2.v4 | 11.2.0.2.v5 | 11.2.0.2.v6 | 11.2.0.2.v7
  • Version 11.2 (Only available in the following regions: eu-central-1, us-west-1): 11.2.0.3.v1 | 11.2.0.3.v2 | 11.2.0.4.v1 | 11.2.0.4.v3

Oracle Database Standard Edition One (oracle-se1)

  • Version 11.2 (Only available in the following regions: us-west-1): 11.2.0.2.v3 | 11.2.0.2.v4 | 11.2.0.2.v5 | 11.2.0.2.v6 | 11.2.0.2.v7
  • Version 11.2 (Only available in the following regions: eu-central-1, us-west-1): 11.2.0.3.v1 | 11.2.0.3.v2 | 11.2.0.4.v1 | 11.2.0.4.v3

PostgreSQL

  • Version 9.3 (Only available in the following regions: ap-northeast-1, ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1, us-west-1, us-west-2): 9.3.1 | 9.3.2
  • Version 9.3 (Available in all regions): 9.3.3 | 9.3.5

PostgreSQL

  • Version 9.3 (Only available in the following regions: ap-northeast-1, ap-southeast-1, ap-southeast-2, eu-west-1, sa-east-1, us-west-1, us-west-2): 9.3.1 | 9.3.2
  • Version 9.3 (Available in all regions): 9.3.3 | 9.3.5

Microsoft SQL Server Enterprise Edition (sqlserver-ee)

  • Version 10.50 (Only available in the following regions: eu-central-1, us-west-1): 10.50.2789.0.v1
  • Version 11.00 (Only available in the following regions: eu-central-1, us-west-1): 11.00.2100.60.v1

Microsoft SQL Server Enterprise Edition (sqlserver-ee)

  • Version 10.50 (Only available in the following regions: eu-central-1, us-west-1): 10.50.2789.0.v1
  • Version 11.00 (Only available in the following regions: eu-central-1, us-west-1): 11.00.2100.60.v1

Microsoft SQL Server Express Edition (sqlserver-ex)

  • Version 10.50 (Available in all regions): 10.50.2789.0.v1
  • Version 11.00 (Available in all regions): 11.00.2100.60.v1

Microsoft SQL Server Express Edition (sqlserver-ex)

  • Version 10.50 (Available in all regions): 10.50.2789.0.v1
  • Version 11.00 (Available in all regions): 11.00.2100.60.v1

Microsoft SQL Server Standard Edition (sqlserver-se)

  • Version 10.50 (Available in all regions): 10.50.2789.0.v1
  • Version 11.00 (Available in all regions): 11.00.2100.60.v1

Microsoft SQL Server Standard Edition (sqlserver-se)

  • Version 10.50 (Available in all regions): 10.50.2789.0.v1
  • Version 11.00 (Available in all regions): 11.00.2100.60.v1

Microsoft SQL Server Web Edition (sqlserver-web)

  • Version 10.50 (Available in all regions): 10.50.2789.0.v1
  • Version 11.00 (Available in all regions): 11.00.2100.60.v1

Microsoft SQL Server Web Edition (sqlserver-web)

  • Version 10.50 (Available in all regions): 10.50.2789.0.v1
  • Version 11.00 (Available in all regions): 11.00.2100.60.v1
", + "CreateDBInstanceMessage$LicenseModel": "

License model information for this DB instance.

Valid values: license-included | bring-your-own-license | general-public-license

", + "CreateDBInstanceMessage$OptionGroupName": "

Indicates that the DB instance should be associated with the specified option group.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, cannot be removed from an option group, and that option group cannot be removed from a DB instance once it is associated with a DB instance

", + "CreateDBInstanceMessage$CharacterSetName": "

For supported engines, indicates that the DB instance should be associated with the specified CharacterSet.

", + "CreateDBInstanceMessage$StorageType": "

Specifies the storage type to be associated with the DB instance.

Valid values: standard | gp2 | io1

If you specify io1, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified; otherwise standard

", + "CreateDBInstanceMessage$TdeCredentialArn": "

The ARN from the Key Store with which to associate the instance for TDE encryption.

", + "CreateDBInstanceMessage$TdeCredentialPassword": "

The password for the given ARN from the Key Store in order to access the device.

", + "CreateDBInstanceMessage$KmsKeyId": "

The KMS key identifier for an encrypted DB instance.

The KMS key identifier is the Amazon Resoure Name (ARN) for the KMS encryption key. If you are creating a DB instance with the same AWS account that owns the KMS encryption key used to encrypt the new DB instance, then you can use the KMS key alias instead of the ARN for the KM encryption key.

If the StorageEncrypted parameter is true, and you do not specify a value for the KmsKeyId parameter, then Amazon RDS will use your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS region.

", + "CreateDBInstanceReadReplicaMessage$DBInstanceIdentifier": "

The DB instance identifier of the Read Replica. This is the unique key that identifies a DB instance. This parameter is stored as a lowercase string.

", + "CreateDBInstanceReadReplicaMessage$SourceDBInstanceIdentifier": "

The identifier of the DB instance that will act as the source for the Read Replica. Each DB instance can have up to five Read Replicas.

Constraints:

  • Must be the identifier of an existing DB instance.
  • Can specify a DB instance that is a MySQL Read Replica only if the source is running MySQL 5.6.
  • Can specify a DB instance that is a PostgreSQL Read Replica only if the source is running PostgreSQL 9.3.5.
  • The specified DB instance must have automatic backups enabled, its backup retention period must be greater than 0.
  • If the source DB instance is in the same region as the Read Replica, specify a valid DB instance identifier.
  • If the source DB instance is in a different region than the Read Replica, specify a valid DB instance ARN. For more information, go to Constructing a Amazon RDS Amazon Resource Name (ARN).
", + "CreateDBInstanceReadReplicaMessage$DBInstanceClass": "

The compute and memory capacity of the Read Replica.

Valid Values: db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge | db.m2.xlarge |db.m2.2xlarge | db.m2.4xlarge | db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium

Default: Inherits from the source DB instance.

", + "CreateDBInstanceReadReplicaMessage$AvailabilityZone": "

The Amazon EC2 Availability Zone that the Read Replica will be created in.

Default: A random, system-chosen Availability Zone in the endpoint's region.

Example: us-east-1d

", + "CreateDBInstanceReadReplicaMessage$OptionGroupName": "

The option group the DB instance will be associated with. If omitted, the default option group for the engine specified will be used.

", + "CreateDBInstanceReadReplicaMessage$DBSubnetGroupName": "

Specifies a DB subnet group for the DB instance. The new DB instance will be created in the VPC associated with the DB subnet group. If no DB subnet group is specified, then the new DB instance is not created in a VPC.

Constraints:

  • Can only be specified if the source DB instance identifier specifies a DB instance in another region.
  • The specified DB subnet group must be in the same region in which the operation is running.
  • All Read Replicas in one region that are created from the same source DB instance must either:
    • Specify DB subnet groups from the same VPC. All these Read Replicas will be created in the same VPC.
    • Not specify a DB subnet group. All these Read Replicas will be created outside of any VPC.
", + "CreateDBInstanceReadReplicaMessage$StorageType": "

Specifies the storage type to be associated with the Read Replica.

Valid values: standard | gp2 | io1

If you specify io1, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified; otherwise standard

", + "CreateDBParameterGroupMessage$DBParameterGroupName": "

The name of the DB parameter group.

Constraints:

  • Must be 1 to 255 alphanumeric characters
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
This value is stored as a lower-case string.", + "CreateDBParameterGroupMessage$DBParameterGroupFamily": "

The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a database engine and engine version compatible with that DB parameter group family.

", + "CreateDBParameterGroupMessage$Description": "

The description for the DB parameter group.

", + "CreateDBSecurityGroupMessage$DBSecurityGroupName": "

The name for the DB security group. This value is stored as a lowercase string.

Constraints:

  • Must be 1 to 255 alphanumeric characters
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
  • Must not be \"Default\"
  • May not contain spaces

Example: mysecuritygroup

", + "CreateDBSecurityGroupMessage$DBSecurityGroupDescription": "

The description for the DB security group.

", + "CreateDBSnapshotMessage$DBSnapshotIdentifier": "

The identifier for the DB snapshot.

Constraints:

  • Cannot be null, empty, or blank
  • Must contain from 1 to 255 alphanumeric characters or hyphens
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-snapshot-id

", + "CreateDBSnapshotMessage$DBInstanceIdentifier": "

The DB instance identifier. This is the unique key that identifies a DB instance.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "CreateDBSubnetGroupMessage$DBSubnetGroupName": "

The name for the DB subnet group. This value is stored as a lowercase string.

Constraints: Must contain no more than 255 alphanumeric characters or hyphens. Must not be \"Default\".

Example: mySubnetgroup

", + "CreateDBSubnetGroupMessage$DBSubnetGroupDescription": "

The description for the DB subnet group.

", + "CreateEventSubscriptionMessage$SubscriptionName": "

The name of the subscription.

Constraints: The name must be less than 255 characters.

", + "CreateEventSubscriptionMessage$SnsTopicArn": "

The Amazon Resource Name (ARN) of the SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it.

", + "CreateEventSubscriptionMessage$SourceType": "

The type of source that will be generating the events. For example, if you want to be notified of events generated by a DB instance, you would set this parameter to db-instance. if this value is not specified, all events are returned.

Valid values: db-instance | db-parameter-group | db-security-group | db-snapshot

", + "CreateOptionGroupMessage$OptionGroupName": "

Specifies the name of the option group to be created.

Constraints:

  • Must be 1 to 255 alphanumeric characters or hyphens
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens

Example: myoptiongroup

", + "CreateOptionGroupMessage$EngineName": "

Specifies the name of the engine that this option group should be associated with.

", + "CreateOptionGroupMessage$MajorEngineVersion": "

Specifies the major version of the engine that this option group should be associated with.

", + "CreateOptionGroupMessage$OptionGroupDescription": "

The description of the option group.

", + "DBEngineVersion$Engine": "

The name of the database engine.

", + "DBEngineVersion$EngineVersion": "

The version number of the database engine.

", + "DBEngineVersion$DBParameterGroupFamily": "

The name of the DB parameter group family for the database engine.

", + "DBEngineVersion$DBEngineDescription": "

The description of the database engine.

", + "DBEngineVersion$DBEngineVersionDescription": "

The description of the database engine version.

", + "DBEngineVersionMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DBInstance$DBInstanceIdentifier": "

Contains a user-supplied database identifier. This is the unique key that identifies a DB instance.

", + "DBInstance$DBInstanceClass": "

Contains the name of the compute and memory capacity class of the DB instance.

", + "DBInstance$Engine": "

Provides the name of the database engine to be used for this DB instance.

", + "DBInstance$DBInstanceStatus": "

Specifies the current state of this database.

", + "DBInstance$MasterUsername": "

Contains the master username for the DB instance.

", + "DBInstance$DBName": "

The meaning of this parameter differs according to the database engine you use. For example, this value returns either MySQL or PostgreSQL information when returning values from CreateDBInstanceReadReplica since Read Replicas are only supported for MySQL and PostgreSQL.

MySQL, SQL Server, PostgreSQL

Contains the name of the initial database of this instance that was provided at create time, if one was specified when the DB instance was created. This same name is returned for the life of the DB instance.

Type: String

Oracle

Contains the Oracle System ID (SID) of the created DB instance. Not shown when the returned parameters do not apply to an Oracle DB instance.

", + "DBInstance$PreferredBackupWindow": "

Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the BackupRetentionPeriod.

", + "DBInstance$AvailabilityZone": "

Specifies the name of the Availability Zone the DB instance is located in.

", + "DBInstance$PreferredMaintenanceWindow": "

Specifies the weekly time range (in UTC) during which system maintenance can occur.

", + "DBInstance$EngineVersion": "

Indicates the database engine version.

", + "DBInstance$ReadReplicaSourceDBInstanceIdentifier": "

Contains the identifier of the source DB instance if this DB instance is a Read Replica.

", + "DBInstance$LicenseModel": "

License model information for this DB instance.

", + "DBInstance$CharacterSetName": "

If present, specifies the name of the character set that this instance is associated with.

", + "DBInstance$SecondaryAvailabilityZone": "

If present, specifies the name of the secondary Availability Zone for a DB instance with multi-AZ support.

", + "DBInstance$StorageType": "

Specifies the storage type associated with DB instance.

", + "DBInstance$TdeCredentialArn": "

The ARN from the Key Store with which the instance is associated for TDE encryption.

", + "DBInstance$KmsKeyId": "

If StorageEncrypted is true, the KMS key identifier for the encrypted DB instance.

", + "DBInstance$DbiResourceId": "

If StorageEncrypted is true, the region-unique, immutable identifier for the encrypted DB instance. This identifier is found in AWS CloudTrail log entries whenever the KMS key for the DB instance is accessed.

", + "DBInstance$CACertificateIdentifier": "

The identifier of the CA certificate for this DB instance.

", + "DBInstanceMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .

", + "DBInstanceStatusInfo$StatusType": "

This value is currently \"read replication.\"

", + "DBInstanceStatusInfo$Status": "

Status of the DB instance. For a StatusType of read replica, the values can be replicating, error, stopped, or terminated.

", + "DBInstanceStatusInfo$Message": "

Details of the error if there is an error for the instance. If the instance is not in an error state, this value is blank.

", + "DBParameterGroup$DBParameterGroupName": "

Provides the name of the DB parameter group.

", + "DBParameterGroup$DBParameterGroupFamily": "

Provides the name of the DB parameter group family that this DB parameter group is compatible with.

", + "DBParameterGroup$Description": "

Provides the customer-specified description for this DB parameter group.

", + "DBParameterGroupDetails$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DBParameterGroupNameMessage$DBParameterGroupName": "

The name of the DB parameter group.

", + "DBParameterGroupStatus$DBParameterGroupName": "

The name of the DP parameter group.

", + "DBParameterGroupStatus$ParameterApplyStatus": "

The status of parameter updates.

", + "DBParameterGroupsMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DBSecurityGroup$OwnerId": "

Provides the AWS ID of the owner of a specific DB security group.

", + "DBSecurityGroup$DBSecurityGroupName": "

Specifies the name of the DB security group.

", + "DBSecurityGroup$DBSecurityGroupDescription": "

Provides the description of the DB security group.

", + "DBSecurityGroup$VpcId": "

Provides the VpcId of the DB security group.

", + "DBSecurityGroupMembership$DBSecurityGroupName": "

The name of the DB security group.

", + "DBSecurityGroupMembership$Status": "

The status of the DB security group.

", + "DBSecurityGroupMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DBSecurityGroupNameList$member": null, + "DBSnapshot$DBSnapshotIdentifier": "

Specifies the identifier for the DB snapshot.

", + "DBSnapshot$DBInstanceIdentifier": "

Specifies the DB instance identifier of the DB instance this DB snapshot was created from.

", + "DBSnapshot$Engine": "

Specifies the name of the database engine.

", + "DBSnapshot$Status": "

Specifies the status of this DB snapshot.

", + "DBSnapshot$AvailabilityZone": "

Specifies the name of the Availability Zone the DB instance was located in at the time of the DB snapshot.

", + "DBSnapshot$VpcId": "

Provides the Vpc Id associated with the DB snapshot.

", + "DBSnapshot$MasterUsername": "

Provides the master username for the DB snapshot.

", + "DBSnapshot$EngineVersion": "

Specifies the version of the database engine.

", + "DBSnapshot$LicenseModel": "

License model information for the restored DB instance.

", + "DBSnapshot$SnapshotType": "

Provides the type of the DB snapshot.

", + "DBSnapshot$OptionGroupName": "

Provides the option group name for the DB snapshot.

", + "DBSnapshot$SourceRegion": "

The region that the DB snapshot was created in or copied from.

", + "DBSnapshot$StorageType": "

Specifies the storage type associated with DB Snapshot.

", + "DBSnapshot$TdeCredentialArn": "

The ARN from the Key Store with which to associate the instance for TDE encryption.

", + "DBSnapshot$KmsKeyId": "

If Encrypted is true, the KMS key identifier for the encrypted DB snapshot.

", + "DBSnapshotMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DBSubnetGroup$DBSubnetGroupName": "

Specifies the name of the DB subnet group.

", + "DBSubnetGroup$DBSubnetGroupDescription": "

Provides the description of the DB subnet group.

", + "DBSubnetGroup$VpcId": "

Provides the VpcId of the DB subnet group.

", + "DBSubnetGroup$SubnetGroupStatus": "

Provides the status of the DB subnet group.

", + "DBSubnetGroupMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DeleteDBInstanceMessage$DBInstanceIdentifier": "

The DB instance identifier for the DB instance to be deleted. This parameter isn't case sensitive.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "DeleteDBInstanceMessage$FinalDBSnapshotIdentifier": "

The DBSnapshotIdentifier of the new DBSnapshot created when SkipFinalSnapshot is set to false.

Specifying this parameter and also setting the SkipFinalShapshot parameter to true results in an error.

Constraints:

  • Must be 1 to 255 alphanumeric characters
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
  • Cannot be specified when deleting a Read Replica.
", + "DeleteDBParameterGroupMessage$DBParameterGroupName": "

The name of the DB parameter group.

Constraints:

  • Must be the name of an existing DB parameter group
  • You cannot delete a default DB parameter group
  • Cannot be associated with any DB instances
", + "DeleteDBSecurityGroupMessage$DBSecurityGroupName": "

The name of the DB security group to delete.

You cannot delete the default DB security group.

Constraints:

  • Must be 1 to 255 alphanumeric characters
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
  • Must not be \"Default\"
  • May not contain spaces
", + "DeleteDBSnapshotMessage$DBSnapshotIdentifier": "

The DBSnapshot identifier.

Constraints: Must be the name of an existing DB snapshot in the available state.

", + "DeleteDBSubnetGroupMessage$DBSubnetGroupName": "

The name of the database subnet group to delete.

You cannot delete the default subnet group.

Constraints:

  • Must be 1 to 255 alphanumeric characters
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "DeleteEventSubscriptionMessage$SubscriptionName": "

The name of the RDS event notification subscription you want to delete.

", + "DeleteOptionGroupMessage$OptionGroupName": "

The name of the option group to be deleted.

You cannot delete default option groups.", + "DescribeCertificatesMessage$CertificateIdentifier": "

The user-supplied certificate identifier. If this parameter is specified, information for only the identified certificate is returned. This parameter isn't case-sensitive.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "DescribeCertificatesMessage$Marker": "

An optional pagination token provided by a previous DescribeCertificates request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeDBEngineVersionsMessage$Engine": "

The database engine to return.

", + "DescribeDBEngineVersionsMessage$EngineVersion": "

The database engine version to return.

Example: 5.1.49

", + "DescribeDBEngineVersionsMessage$DBParameterGroupFamily": "

The name of a specific DB parameter group family to return details for.

Constraints:

  • Must be 1 to 255 alphanumeric characters
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "DescribeDBEngineVersionsMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeDBInstancesMessage$DBInstanceIdentifier": "

The user-supplied instance identifier. If this parameter is specified, information from only the specific DB instance is returned. This parameter isn't case sensitive.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "DescribeDBInstancesMessage$Marker": "

An optional pagination token provided by a previous DescribeDBInstances request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .

", + "DescribeDBLogFilesDetails$LogFileName": "

The name of the log file for the specified DB instance.

", + "DescribeDBLogFilesMessage$DBInstanceIdentifier": "

The customer-assigned name of the DB instance that contains the log files you want to list.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "DescribeDBLogFilesMessage$FilenameContains": "

Filters the available log files for log file names that contain the specified string.

", + "DescribeDBLogFilesMessage$Marker": "

The pagination token provided in the previous request. If this parameter is specified the response includes only records beyond the marker, up to MaxRecords.

", + "DescribeDBLogFilesResponse$Marker": "

A pagination token that can be used in a subsequent DescribeDBLogFiles request.

", + "DescribeDBParameterGroupsMessage$DBParameterGroupName": "

The name of a specific DB parameter group to return details for.

Constraints:

  • Must be 1 to 255 alphanumeric characters
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "DescribeDBParameterGroupsMessage$Marker": "

An optional pagination token provided by a previous DescribeDBParameterGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeDBParametersMessage$DBParameterGroupName": "

The name of a specific DB parameter group to return details for.

Constraints:

  • Must be 1 to 255 alphanumeric characters
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "DescribeDBParametersMessage$Source": "

The parameter types to return.

Default: All parameter types returned

Valid Values: user | system | engine-default

", + "DescribeDBParametersMessage$Marker": "

An optional pagination token provided by a previous DescribeDBParameters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeDBSecurityGroupsMessage$DBSecurityGroupName": "

The name of the DB security group to return details for.

", + "DescribeDBSecurityGroupsMessage$Marker": "

An optional pagination token provided by a previous DescribeDBSecurityGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeDBSnapshotsMessage$DBInstanceIdentifier": "

A DB instance identifier to retrieve the list of DB snapshots for. Cannot be used in conjunction with DBSnapshotIdentifier. This parameter is not case sensitive.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "DescribeDBSnapshotsMessage$DBSnapshotIdentifier": "

A specific DB snapshot identifier to describe. Cannot be used in conjunction with DBInstanceIdentifier. This value is stored as a lowercase string.

Constraints:

  • Must be 1 to 255 alphanumeric characters
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
  • If this is the identifier of an automated snapshot, the SnapshotType parameter must also be specified.
", + "DescribeDBSnapshotsMessage$SnapshotType": "

The type of snapshots that will be returned. Values can be \"automated\" or \"manual.\" If not specified, the returned results will include all snapshots types.

", + "DescribeDBSnapshotsMessage$Marker": "

An optional pagination token provided by a previous DescribeDBSnapshots request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeDBSubnetGroupsMessage$DBSubnetGroupName": "

The name of the DB subnet group to return details for.

", + "DescribeDBSubnetGroupsMessage$Marker": "

An optional pagination token provided by a previous DescribeDBSubnetGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeEngineDefaultParametersMessage$DBParameterGroupFamily": "

The name of the DB parameter group family.

", + "DescribeEngineDefaultParametersMessage$Marker": "

An optional pagination token provided by a previous DescribeEngineDefaultParameters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeEventCategoriesMessage$SourceType": "

The type of source that will be generating the events.

Valid values: db-instance | db-parameter-group | db-security-group | db-snapshot

", + "DescribeEventSubscriptionsMessage$SubscriptionName": "

The name of the RDS event notification subscription you want to describe.

", + "DescribeEventSubscriptionsMessage$Marker": "

An optional pagination token provided by a previous DescribeOrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .

", + "DescribeEventsMessage$SourceIdentifier": "

The identifier of the event source for which events will be returned. If not specified, then all sources are included in the response.

Constraints:

  • If SourceIdentifier is supplied, SourceType must also be provided.
  • If the source type is DBInstance, then a DBInstanceIdentifier must be supplied.
  • If the source type is DBSecurityGroup, a DBSecurityGroupName must be supplied.
  • If the source type is DBParameterGroup, a DBParameterGroupName must be supplied.
  • If the source type is DBSnapshot, a DBSnapshotIdentifier must be supplied.
  • Cannot end with a hyphen or contain two consecutive hyphens.
", + "DescribeEventsMessage$Marker": "

An optional pagination token provided by a previous DescribeEvents request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeOptionGroupOptionsMessage$EngineName": "

A required parameter. Options available for the given Engine name will be described.

", + "DescribeOptionGroupOptionsMessage$MajorEngineVersion": "

If specified, filters the results to include only options for the specified major engine version.

", + "DescribeOptionGroupOptionsMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeOptionGroupsMessage$OptionGroupName": "

The name of the option group to describe. Cannot be supplied together with EngineName or MajorEngineVersion.

", + "DescribeOptionGroupsMessage$Marker": "

An optional pagination token provided by a previous DescribeOptionGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeOptionGroupsMessage$EngineName": "

Filters the list of option groups to only include groups associated with a specific database engine.

", + "DescribeOptionGroupsMessage$MajorEngineVersion": "

Filters the list of option groups to only include groups associated with a specific database engine version. If specified, then EngineName must also be specified.

", + "DescribeOrderableDBInstanceOptionsMessage$Engine": "

The name of the engine to retrieve DB instance options for.

", + "DescribeOrderableDBInstanceOptionsMessage$EngineVersion": "

The engine version filter value. Specify this parameter to show only the available offerings matching the specified engine version.

", + "DescribeOrderableDBInstanceOptionsMessage$DBInstanceClass": "

The DB instance class filter value. Specify this parameter to show only the available offerings matching the specified DB instance class.

", + "DescribeOrderableDBInstanceOptionsMessage$LicenseModel": "

The license model filter value. Specify this parameter to show only the available offerings matching the specified license model.

", + "DescribeOrderableDBInstanceOptionsMessage$Marker": "

An optional pagination token provided by a previous DescribeOrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .

", + "DescribePendingMaintenanceActionsMessage$ResourceIdentifier": "

The ARN of a resource to return pending maintenance actions for.

", + "DescribePendingMaintenanceActionsMessage$Marker": "

An optional pagination token provided by a previous DescribePendingMaintenanceActions request. If this parameter is specified, the response includes only records beyond the marker, up to a number of records specified by MaxRecords.

", + "DescribeReservedDBInstancesMessage$ReservedDBInstanceId": "

The reserved DB instance identifier filter value. Specify this parameter to show only the reservation that matches the specified reservation ID.

", + "DescribeReservedDBInstancesMessage$ReservedDBInstancesOfferingId": "

The offering identifier filter value. Specify this parameter to show only purchased reservations matching the specified offering identifier.

", + "DescribeReservedDBInstancesMessage$DBInstanceClass": "

The DB instance class filter value. Specify this parameter to show only those reservations matching the specified DB instances class.

", + "DescribeReservedDBInstancesMessage$Duration": "

The duration filter value, specified in years or seconds. Specify this parameter to show only reservations for this duration.

Valid Values: 1 | 3 | 31536000 | 94608000

", + "DescribeReservedDBInstancesMessage$ProductDescription": "

The product description filter value. Specify this parameter to show only those reservations matching the specified product description.

", + "DescribeReservedDBInstancesMessage$OfferingType": "

The offering type filter value. Specify this parameter to show only the available offerings matching the specified offering type.

Valid Values: \"Light Utilization\" | \"Medium Utilization\" | \"Heavy Utilization\"

", + "DescribeReservedDBInstancesMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DescribeReservedDBInstancesOfferingsMessage$ReservedDBInstancesOfferingId": "

The offering identifier filter value. Specify this parameter to show only the available offering that matches the specified reservation identifier.

Example: 438012d3-4052-4cc7-b2e3-8d3372e0e706

", + "DescribeReservedDBInstancesOfferingsMessage$DBInstanceClass": "

The DB instance class filter value. Specify this parameter to show only the available offerings matching the specified DB instance class.

", + "DescribeReservedDBInstancesOfferingsMessage$Duration": "

Duration filter value, specified in years or seconds. Specify this parameter to show only reservations for this duration.

Valid Values: 1 | 3 | 31536000 | 94608000

", + "DescribeReservedDBInstancesOfferingsMessage$ProductDescription": "

Product description filter value. Specify this parameter to show only the available offerings matching the specified product description.

", + "DescribeReservedDBInstancesOfferingsMessage$OfferingType": "

The offering type filter value. Specify this parameter to show only the available offerings matching the specified offering type.

Valid Values: \"Light Utilization\" | \"Medium Utilization\" | \"Heavy Utilization\"

", + "DescribeReservedDBInstancesOfferingsMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "DownloadDBLogFilePortionDetails$LogFileData": "

Entries from the specified log file.

", + "DownloadDBLogFilePortionDetails$Marker": "

A pagination token that can be used in a subsequent DownloadDBLogFilePortion request.

", + "DownloadDBLogFilePortionMessage$DBInstanceIdentifier": "

The customer-assigned name of the DB instance that contains the log files you want to list.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "DownloadDBLogFilePortionMessage$LogFileName": "

The name of the log file to be downloaded.

", + "DownloadDBLogFilePortionMessage$Marker": "

The pagination token provided in the previous request or \"0\". If the Marker parameter is specified the response includes only records beyond the marker until the end of the file or up to NumberOfLines.

", + "EC2SecurityGroup$Status": "

Provides the status of the EC2 security group. Status can be \"authorizing\", \"authorized\", \"revoking\", and \"revoked\".

", + "EC2SecurityGroup$EC2SecurityGroupName": "

Specifies the name of the EC2 security group.

", + "EC2SecurityGroup$EC2SecurityGroupId": "

Specifies the id of the EC2 security group.

", + "EC2SecurityGroup$EC2SecurityGroupOwnerId": "

Specifies the AWS ID of the owner of the EC2 security group specified in the EC2SecurityGroupName field.

", + "Endpoint$Address": "

Specifies the DNS address of the DB instance.

", + "EngineDefaults$DBParameterGroupFamily": "

Specifies the name of the DB parameter group family which the engine default parameters apply to.

", + "EngineDefaults$Marker": "

An optional pagination token provided by a previous EngineDefaults request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .

", + "Event$SourceIdentifier": "

Provides the identifier for the source of the event.

", + "Event$Message": "

Provides the text of this event.

", + "EventCategoriesList$member": null, + "EventCategoriesMap$SourceType": "

The source type that the returned categories belong to

", + "EventSubscription$CustomerAwsId": "

The AWS customer account associated with the RDS event notification subscription.

", + "EventSubscription$CustSubscriptionId": "

The RDS event notification subscription Id.

", + "EventSubscription$SnsTopicArn": "

The topic ARN of the RDS event notification subscription.

", + "EventSubscription$Status": "

The status of the RDS event notification subscription.

Constraints:

Can be one of the following: creating | modifying | deleting | active | no-permission | topic-not-exist

The status \"no-permission\" indicates that RDS no longer has permission to post to the SNS topic. The status \"topic-not-exist\" indicates that the topic was deleted after the subscription was created.

", + "EventSubscription$SubscriptionCreationTime": "

The time the RDS event notification subscription was created.

", + "EventSubscription$SourceType": "

The source type for the RDS event notification subscription.

", + "EventSubscriptionsMessage$Marker": "

An optional pagination token provided by a previous DescribeOrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "EventsMessage$Marker": "

An optional pagination token provided by a previous Events request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .

", + "Filter$Name": "

This parameter is not currently supported.

", + "FilterValueList$member": null, + "IPRange$Status": "

Specifies the status of the IP range. Status can be \"authorizing\", \"authorized\", \"revoking\", and \"revoked\".

", + "IPRange$CIDRIP": "

Specifies the IP range.

", + "KeyList$member": null, + "ListTagsForResourceMessage$ResourceName": "

The Amazon RDS resource with tags to be listed. This value is an Amazon Resource Name (ARN). For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN).

", + "ModifyDBInstanceMessage$DBInstanceIdentifier": "

The DB instance identifier. This value is stored as a lowercase string.

Constraints:

  • Must be the identifier for an existing DB instance
  • Must contain from 1 to 63 alphanumeric characters or hyphens
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "ModifyDBInstanceMessage$DBInstanceClass": "

The new compute and memory capacity of the DB instance. To determine the instance classes that are available for a particular DB engine, use the DescribeOrderableDBInstanceOptions action.

Passing a value for this setting causes an outage during the change and is applied during the next maintenance window, unless ApplyImmediately is specified as true for this request.

Default: Uses existing setting

Valid Values: db.t1.micro | db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge | db.m2.xlarge | db.m2.2xlarge | db.m2.4xlarge | db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium

", + "ModifyDBInstanceMessage$MasterUserPassword": "

The new password for the DB instance master user. Can be any printable ASCII character except \"/\", \"\"\", or \"@\".

Changing this parameter does not result in an outage and the change is asynchronously applied as soon as possible. Between the time of the request and the completion of the request, the MasterUserPassword element exists in the PendingModifiedValues element of the operation response.

Default: Uses existing setting

Constraints: Must be 8 to 41 alphanumeric characters (MySQL), 8 to 30 alphanumeric characters (Oracle), or 8 to 128 alphanumeric characters (SQL Server).

Amazon RDS API actions never return the password, so this action provides a way to regain access to a primary instance user if the password is lost. This includes restoring privileges that may have been accidentally revoked. ", + "ModifyDBInstanceMessage$DBParameterGroupName": "

The name of the DB parameter group to apply to the DB instance. Changing this setting does not result in an outage. The parameter group name itself is changed immediately, but the actual parameter changes are not applied until you reboot the instance without failover. The db instance will NOT be rebooted automatically and the parameter changes will NOT be applied during the next maintenance window.

Default: Uses existing setting

Constraints: The DB parameter group must be in the same DB parameter group family as this DB instance.

", + "ModifyDBInstanceMessage$PreferredBackupWindow": "

The daily time range during which automated backups are created if automated backups are enabled, as determined by the BackupRetentionPeriod. Changing this parameter does not result in an outage and the change is asynchronously applied as soon as possible.

Constraints:

  • Must be in the format hh24:mi-hh24:mi
  • Times should be Universal Time Coordinated (UTC)
  • Must not conflict with the preferred maintenance window
  • Must be at least 30 minutes
", + "ModifyDBInstanceMessage$PreferredMaintenanceWindow": "

The weekly time range (in UTC) during which system maintenance can occur, which may result in an outage. Changing this parameter does not result in an outage, except in the following situation, and the change is asynchronously applied as soon as possible. If there are pending actions that cause a reboot, and the maintenance window is changed to include the current time, then changing this parameter will cause a reboot of the DB instance. If moving this window to the current time, there must be at least 30 minutes between the current time and end of the window to ensure pending changes are applied.

Default: Uses existing setting

Format: ddd:hh24:mi-ddd:hh24:mi

Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun

Constraints: Must be at least 30 minutes

", + "ModifyDBInstanceMessage$EngineVersion": "

The version number of the database engine to upgrade to. Changing this parameter results in an outage and the change is applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request.

For major version upgrades, if a non-default DB parameter group is currently in use, a new DB parameter group in the DB parameter group family for the new engine version must be specified. The new DB parameter group can be the default for that DB parameter group family.

For a list of valid engine versions, see CreateDBInstance.

", + "ModifyDBInstanceMessage$OptionGroupName": "

Indicates that the DB instance should be associated with the specified option group. Changing this parameter does not result in an outage except in the following case and the change is applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request. If the parameter change results in an option group that enables OEM, this change can cause a brief (sub-second) period during which new connections are rejected but existing connections are not interrupted.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, cannot be removed from an option group, and that option group cannot be removed from a DB instance once it is associated with a DB instance

", + "ModifyDBInstanceMessage$NewDBInstanceIdentifier": "

The new DB instance identifier for the DB instance when renaming a DB instance. When you change the DB instance identifier, an instance reboot will occur immediately if you set Apply Immediately to true, or will occur during the next maintenance window if Apply Immediately to false. This value is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "ModifyDBInstanceMessage$StorageType": "

Specifies the storage type to be associated with the DB instance.

Valid values: standard | gp2 | io1

If you specify io1, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified; otherwise standard

", + "ModifyDBInstanceMessage$TdeCredentialArn": "

The ARN from the Key Store with which to associate the instance for TDE encryption.

", + "ModifyDBInstanceMessage$TdeCredentialPassword": "

The password for the given ARN from the Key Store in order to access the device.

", + "ModifyDBInstanceMessage$CACertificateIdentifier": "

Indicates the certificate which needs to be associated with the instance.

", + "ModifyDBParameterGroupMessage$DBParameterGroupName": "

The name of the DB parameter group.

Constraints:

  • Must be the name of an existing DB parameter group
  • Must be 1 to 255 alphanumeric characters
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "ModifyDBSubnetGroupMessage$DBSubnetGroupName": "

The name for the DB subnet group. This value is stored as a lowercase string.

Constraints: Must contain no more than 255 alphanumeric characters or hyphens. Must not be \"Default\".

Example: mySubnetgroup

", + "ModifyDBSubnetGroupMessage$DBSubnetGroupDescription": "

The description for the DB subnet group.

", + "ModifyEventSubscriptionMessage$SubscriptionName": "

The name of the RDS event notification subscription.

", + "ModifyEventSubscriptionMessage$SnsTopicArn": "

The Amazon Resource Name (ARN) of the SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it.

", + "ModifyEventSubscriptionMessage$SourceType": "

The type of source that will be generating the events. For example, if you want to be notified of events generated by a DB instance, you would set this parameter to db-instance. if this value is not specified, all events are returned.

Valid values: db-instance | db-parameter-group | db-security-group | db-snapshot

", + "ModifyOptionGroupMessage$OptionGroupName": "

The name of the option group to be modified.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, cannot be removed from an option group, and that option group cannot be removed from a DB instance once it is associated with a DB instance

", + "Option$OptionName": "

The name of the option.

", + "Option$OptionDescription": "

The description of the option.

", + "OptionConfiguration$OptionName": "

The configuration of options to include in a group.

", + "OptionGroup$OptionGroupName": "

Specifies the name of the option group.

", + "OptionGroup$OptionGroupDescription": "

Provides a description of the option group.

", + "OptionGroup$EngineName": "

Engine name that this option group can be applied to.

", + "OptionGroup$MajorEngineVersion": "

Indicates the major engine version associated with this option group.

", + "OptionGroup$VpcId": "

If AllowsVpcAndNonVpcInstanceMemberships is false, this field is blank. If AllowsVpcAndNonVpcInstanceMemberships is true and this field is blank, then this option group can be applied to both VPC and non-VPC instances. If this field contains a value, then this option group can only be applied to instances that are in the VPC indicated by this field.

", + "OptionGroupMembership$OptionGroupName": "

The name of the option group that the instance belongs to.

", + "OptionGroupMembership$Status": "

The status of the DB instance's option group membership (e.g. in-sync, pending, pending-maintenance, applying).

", + "OptionGroupOption$Name": "

The name of the option.

", + "OptionGroupOption$Description": "

The description of the option.

", + "OptionGroupOption$EngineName": "

The name of the engine that this option can be applied to.

", + "OptionGroupOption$MajorEngineVersion": "

Indicates the major engine version that the option is available for.

", + "OptionGroupOption$MinimumRequiredMinorEngineVersion": "

The minimum required engine version for the option to be applied.

", + "OptionGroupOptionSetting$SettingName": "

The name of the option group option.

", + "OptionGroupOptionSetting$SettingDescription": "

The description of the option group option.

", + "OptionGroupOptionSetting$DefaultValue": "

The default value for the option group option.

", + "OptionGroupOptionSetting$ApplyType": "

The DB engine specific parameter type for the option group option.

", + "OptionGroupOptionSetting$AllowedValues": "

Indicates the acceptable values for the option group option.

", + "OptionGroupOptionsMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "OptionGroups$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "OptionNamesList$member": null, + "OptionSetting$Name": "

The name of the option that has settings that you can set.

", + "OptionSetting$Value": "

The current value of the option setting.

", + "OptionSetting$DefaultValue": "

The default value of the option setting.

", + "OptionSetting$Description": "

The description of the option setting.

", + "OptionSetting$ApplyType": "

The DB engine specific parameter type.

", + "OptionSetting$DataType": "

The data type of the option setting.

", + "OptionSetting$AllowedValues": "

The allowed values of the option setting.

", + "OptionsDependedOn$member": null, + "OrderableDBInstanceOption$Engine": "

The engine type of the orderable DB instance.

", + "OrderableDBInstanceOption$EngineVersion": "

The engine version of the orderable DB instance.

", + "OrderableDBInstanceOption$DBInstanceClass": "

The DB instance Class for the orderable DB instance

", + "OrderableDBInstanceOption$LicenseModel": "

The license model for the orderable DB instance.

", + "OrderableDBInstanceOption$StorageType": "

The storage type for this orderable DB instance.

", + "OrderableDBInstanceOptionsMessage$Marker": "

An optional pagination token provided by a previous OrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .

", + "Parameter$ParameterName": "

Specifies the name of the parameter.

", + "Parameter$ParameterValue": "

Specifies the value of the parameter.

", + "Parameter$Description": "

Provides a description of the parameter.

", + "Parameter$Source": "

Indicates the source of the parameter value.

", + "Parameter$ApplyType": "

Specifies the engine specific parameters type.

", + "Parameter$DataType": "

Specifies the valid data type for the parameter.

", + "Parameter$AllowedValues": "

Specifies the valid range of values for the parameter.

", + "Parameter$MinimumEngineVersion": "

The earliest engine version to which the parameter can apply.

", + "PendingMaintenanceAction$Action": "

The type of pending maintenance action that is available for the resource.

", + "PendingMaintenanceAction$OptInStatus": "

Indicates the type of opt-in request that has been received for the resource.

", + "PendingMaintenanceAction$Description": "

A description providing more detail about the maintenance action.

", + "PendingMaintenanceActionsMessage$Marker": "

An optional pagination token provided by a previous DescribePendingMaintenanceActions request. If this parameter is specified, the response includes only records beyond the marker, up to a number of records specified by MaxRecords.

", + "PendingModifiedValues$DBInstanceClass": "

Contains the new DBInstanceClass for the DB instance that will be applied or is in progress.

", + "PendingModifiedValues$MasterUserPassword": "

Contains the pending or in-progress change of the master credentials for the DB instance.

", + "PendingModifiedValues$EngineVersion": "

Indicates the database engine version.

", + "PendingModifiedValues$DBInstanceIdentifier": "

Contains the new DBInstanceIdentifier for the DB instance that will be applied or is in progress.

", + "PendingModifiedValues$StorageType": "

Specifies the storage type to be associated with the DB instance.

", + "PendingModifiedValues$CACertificateIdentifier": "

Specifies the identifier of the CA certificate for the DB instance.

", + "PromoteReadReplicaMessage$DBInstanceIdentifier": "

The DB instance identifier. This value is stored as a lowercase string.

Constraints:

  • Must be the identifier for an existing Read Replica DB instance
  • Must contain from 1 to 63 alphanumeric characters or hyphens
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens

Example: mydbinstance

", + "PromoteReadReplicaMessage$PreferredBackupWindow": "

The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter.

Default: A 30-minute window selected at random from an 8-hour block of time per region. See the Amazon RDS User Guide for the time blocks for each region from which the default backup windows are assigned.

Constraints: Must be in the format hh24:mi-hh24:mi. Times should be Universal Time Coordinated (UTC). Must not conflict with the preferred maintenance window. Must be at least 30 minutes.

", + "PurchaseReservedDBInstancesOfferingMessage$ReservedDBInstancesOfferingId": "

The ID of the Reserved DB instance offering to purchase.

Example: 438012d3-4052-4cc7-b2e3-8d3372e0e706

", + "PurchaseReservedDBInstancesOfferingMessage$ReservedDBInstanceId": "

Customer-specified identifier to track this reservation.

Example: myreservationID

", + "ReadReplicaDBInstanceIdentifierList$member": null, + "RebootDBInstanceMessage$DBInstanceIdentifier": "

The DB instance identifier. This parameter is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "RecurringCharge$RecurringChargeFrequency": "

The frequency of the recurring charge.

", + "RemoveSourceIdentifierFromSubscriptionMessage$SubscriptionName": "

The name of the RDS event notification subscription you want to remove a source identifier from.

", + "RemoveSourceIdentifierFromSubscriptionMessage$SourceIdentifier": "

The source identifier to be removed from the subscription, such as the DB instance identifier for a DB instance or the name of a security group.

", + "RemoveTagsFromResourceMessage$ResourceName": "

The Amazon RDS resource the tags will be removed from. This value is an Amazon Resource Name (ARN). For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN).

", + "ReservedDBInstance$ReservedDBInstanceId": "

The unique identifier for the reservation.

", + "ReservedDBInstance$ReservedDBInstancesOfferingId": "

The offering identifier.

", + "ReservedDBInstance$DBInstanceClass": "

The DB instance class for the reserved DB instance.

", + "ReservedDBInstance$CurrencyCode": "

The currency code for the reserved DB instance.

", + "ReservedDBInstance$ProductDescription": "

The description of the reserved DB instance.

", + "ReservedDBInstance$OfferingType": "

The offering type of this reserved DB instance.

", + "ReservedDBInstance$State": "

The state of the reserved DB instance.

", + "ReservedDBInstanceMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "ReservedDBInstancesOffering$ReservedDBInstancesOfferingId": "

The offering identifier.

", + "ReservedDBInstancesOffering$DBInstanceClass": "

The DB instance class for the reserved DB instance.

", + "ReservedDBInstancesOffering$CurrencyCode": "

The currency code for the reserved DB instance offering.

", + "ReservedDBInstancesOffering$ProductDescription": "

The database engine used by the offering.

", + "ReservedDBInstancesOffering$OfferingType": "

The offering type.

", + "ReservedDBInstancesOfferingMessage$Marker": "

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

", + "ResetDBParameterGroupMessage$DBParameterGroupName": "

The name of the DB parameter group.

Constraints:

  • Must be 1 to 255 alphanumeric characters
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "ResourcePendingMaintenanceActions$ResourceIdentifier": "

The ARN of the resource that has pending maintenance actions.

", + "RestoreDBInstanceFromDBSnapshotMessage$DBInstanceIdentifier": "

Name of the DB instance to create from the DB snapshot. This parameter isn't case sensitive.

Constraints:

  • Must contain from 1 to 255 alphanumeric characters or hyphens
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-snapshot-id

", + "RestoreDBInstanceFromDBSnapshotMessage$DBSnapshotIdentifier": "

The identifier for the DB snapshot to restore from.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "RestoreDBInstanceFromDBSnapshotMessage$DBInstanceClass": "

The compute and memory capacity of the Amazon RDS DB instance.

Valid Values: db.t1.micro | db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge | db.m2.2xlarge | db.m2.4xlarge | db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium

", + "RestoreDBInstanceFromDBSnapshotMessage$AvailabilityZone": "

The EC2 Availability Zone that the database instance will be created in.

Default: A random, system-chosen Availability Zone.

Constraint: You cannot specify the AvailabilityZone parameter if the MultiAZ parameter is set to true.

Example: us-east-1a

", + "RestoreDBInstanceFromDBSnapshotMessage$DBSubnetGroupName": "

The DB subnet group name to use for the new instance.

", + "RestoreDBInstanceFromDBSnapshotMessage$LicenseModel": "

License model information for the restored DB instance.

Default: Same as source.

Valid values: license-included | bring-your-own-license | general-public-license

", + "RestoreDBInstanceFromDBSnapshotMessage$DBName": "

The database name for the restored DB instance.

This parameter doesn't apply to the MySQL engine.

", + "RestoreDBInstanceFromDBSnapshotMessage$Engine": "

The database engine to use for the new instance.

Default: The same as source

Constraint: Must be compatible with the engine of the source

Valid Values: MySQL | oracle-se1 | oracle-se | oracle-ee | sqlserver-ee | sqlserver-se | sqlserver-ex | sqlserver-web | postgres

", + "RestoreDBInstanceFromDBSnapshotMessage$OptionGroupName": "

The name of the option group to be used for the restored DB instance.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, cannot be removed from an option group, and that option group cannot be removed from a DB instance once it is associated with a DB instance

", + "RestoreDBInstanceFromDBSnapshotMessage$StorageType": "

Specifies the storage type to be associated with the DB instance.

Valid values: standard | gp2 | io1

If you specify io1, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified; otherwise standard

", + "RestoreDBInstanceFromDBSnapshotMessage$TdeCredentialArn": "

The ARN from the Key Store with which to associate the instance for TDE encryption.

", + "RestoreDBInstanceFromDBSnapshotMessage$TdeCredentialPassword": "

The password for the given ARN from the Key Store in order to access the device.

", + "RestoreDBInstanceToPointInTimeMessage$SourceDBInstanceIdentifier": "

The identifier of the source DB instance from which to restore.

Constraints:

  • Must be the identifier of an existing database instance
  • Must contain from 1 to 63 alphanumeric characters or hyphens
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "RestoreDBInstanceToPointInTimeMessage$TargetDBInstanceIdentifier": "

The name of the new database instance to be created.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "RestoreDBInstanceToPointInTimeMessage$DBInstanceClass": "

The compute and memory capacity of the Amazon RDS DB instance.

Valid Values: db.t1.micro | db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge | db.m2.2xlarge | db.m2.4xlarge | db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium

Default: The same DBInstanceClass as the original DB instance.

", + "RestoreDBInstanceToPointInTimeMessage$AvailabilityZone": "

The EC2 Availability Zone that the database instance will be created in.

Default: A random, system-chosen Availability Zone.

Constraint: You cannot specify the AvailabilityZone parameter if the MultiAZ parameter is set to true.

Example: us-east-1a

", + "RestoreDBInstanceToPointInTimeMessage$DBSubnetGroupName": "

The DB subnet group name to use for the new instance.

", + "RestoreDBInstanceToPointInTimeMessage$LicenseModel": "

License model information for the restored DB instance.

Default: Same as source.

Valid values: license-included | bring-your-own-license | general-public-license

", + "RestoreDBInstanceToPointInTimeMessage$DBName": "

The database name for the restored DB instance.

This parameter is not used for the MySQL engine.

", + "RestoreDBInstanceToPointInTimeMessage$Engine": "

The database engine to use for the new instance.

Default: The same as source

Constraint: Must be compatible with the engine of the source

Valid Values: MySQL | oracle-se1 | oracle-se | oracle-ee | sqlserver-ee | sqlserver-se | sqlserver-ex | sqlserver-web | postgres

", + "RestoreDBInstanceToPointInTimeMessage$OptionGroupName": "

The name of the option group to be used for the restored DB instance.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, cannot be removed from an option group, and that option group cannot be removed from a DB instance once it is associated with a DB instance

", + "RestoreDBInstanceToPointInTimeMessage$StorageType": "

Specifies the storage type to be associated with the DB instance.

Valid values: standard | gp2 | io1

If you specify io1, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified; otherwise standard

", + "RestoreDBInstanceToPointInTimeMessage$TdeCredentialArn": "

The ARN from the Key Store with which to associate the instance for TDE encryption.

", + "RestoreDBInstanceToPointInTimeMessage$TdeCredentialPassword": "

The password for the given ARN from the Key Store in order to access the device.

", + "RevokeDBSecurityGroupIngressMessage$DBSecurityGroupName": "

The name of the DB security group to revoke ingress from.

", + "RevokeDBSecurityGroupIngressMessage$CIDRIP": "

The IP range to revoke access from. Must be a valid CIDR range. If CIDRIP is specified, EC2SecurityGroupName, EC2SecurityGroupId and EC2SecurityGroupOwnerId cannot be provided.

", + "RevokeDBSecurityGroupIngressMessage$EC2SecurityGroupName": "

The name of the EC2 security group to revoke access from. For VPC DB security groups, EC2SecurityGroupId must be provided. Otherwise, EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId must be provided.

", + "RevokeDBSecurityGroupIngressMessage$EC2SecurityGroupId": "

The id of the EC2 security group to revoke access from. For VPC DB security groups, EC2SecurityGroupId must be provided. Otherwise, EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId must be provided.

", + "RevokeDBSecurityGroupIngressMessage$EC2SecurityGroupOwnerId": "

The AWS Account Number of the owner of the EC2 security group specified in the EC2SecurityGroupName parameter. The AWS Access Key ID is not an acceptable value. For VPC DB security groups, EC2SecurityGroupId must be provided. Otherwise, EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId must be provided.

", + "SourceIdsList$member": null, + "Subnet$SubnetIdentifier": "

Specifies the identifier of the subnet.

", + "Subnet$SubnetStatus": "

Specifies the status of the subnet.

", + "SubnetIdentifierList$member": null, + "Tag$Key": "

A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and cannot be prefixed with \"aws:\" or \"rds:\". The string may only contain only the set of Unicode letters, digits, white-space, '_', '.', '/', '=', '+', '-' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-]*)$\").

", + "Tag$Value": "

A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and cannot be prefixed with \"aws:\" or \"rds:\". The string may only contain only the set of Unicode letters, digits, white-space, '_', '.', '/', '=', '+', '-' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-]*)$\").

", + "VpcSecurityGroupIdList$member": null, + "VpcSecurityGroupMembership$VpcSecurityGroupId": "

The name of the VPC security group.

", + "VpcSecurityGroupMembership$Status": "

The status of the VPC security group.

" + } + }, + "Subnet": { + "base": "

This data type is used as a response element in the DescribeDBSubnetGroups action.

", + "refs": { + "SubnetList$member": null + } + }, + "SubnetAlreadyInUse": { + "base": "

The DB subnet is already in use in the Availability Zone.

", + "refs": { + } + }, + "SubnetIdentifierList": { + "base": null, + "refs": { + "CreateDBSubnetGroupMessage$SubnetIds": "

The EC2 Subnet IDs for the DB subnet group.

", + "ModifyDBSubnetGroupMessage$SubnetIds": "

The EC2 subnet IDs for the DB subnet group.

" + } + }, + "SubnetList": { + "base": null, + "refs": { + "DBSubnetGroup$Subnets": "

Contains a list of Subnet elements.

" + } + }, + "SubscriptionAlreadyExistFault": { + "base": "

The supplied subscription name already exists.

", + "refs": { + } + }, + "SubscriptionCategoryNotFoundFault": { + "base": "

The supplied category does not exist.

", + "refs": { + } + }, + "SubscriptionNotFoundFault": { + "base": "

The subscription name does not exist.

", + "refs": { + } + }, + "SupportedCharacterSetsList": { + "base": null, + "refs": { + "DBEngineVersion$SupportedCharacterSets": "

A list of the character sets supported by this engine for the CharacterSetName parameter of the CreateDBInstance API.

" + } + }, + "TStamp": { + "base": null, + "refs": { + "Certificate$ValidFrom": "

The starting date from which the certificate is valid.

", + "Certificate$ValidTill": "

The final date that the certificate continues to be valid.

", + "DBInstance$InstanceCreateTime": "

Provides the date and time the DB instance was created.

", + "DBInstance$LatestRestorableTime": "

Specifies the latest time to which a database can be restored with point-in-time restore.

", + "DBSnapshot$SnapshotCreateTime": "

Provides the time (UTC) when the snapshot was taken.

", + "DBSnapshot$InstanceCreateTime": "

Specifies the time (UTC) when the snapshot was taken.

", + "DescribeEventsMessage$StartTime": "

The beginning of the time interval to retrieve events for, specified in ISO 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia page.

Example: 2009-07-08T18:00Z

", + "DescribeEventsMessage$EndTime": "

The end of the time interval for which to retrieve events, specified in ISO 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia page.

Example: 2009-07-08T18:00Z

", + "Event$Date": "

Specifies the date and time of the event.

", + "PendingMaintenanceAction$AutoAppliedAfterDate": "

The date of the maintenance window when the action will be applied. The maintenance action will be applied to the resource during its first maintenance window after this date. If this date is specified, any next-maintenance opt-in requests are ignored.

", + "PendingMaintenanceAction$ForcedApplyDate": "

The date when the maintenance action will be automatically applied. The maintenance action will be applied to the resource on this date regardless of the maintenance window for the resource. If this date is specified, any immediate opt-in requests are ignored.

", + "PendingMaintenanceAction$CurrentApplyDate": "

The effective date when the pending maintenance action will be applied to the resource. This date takes into account opt-in requests received from the ApplyPendingMaintenanceAction API, the AutoAppliedAfterDate, and the ForcedApplyDate. This value is blank if an opt-in request has not been received and nothing has been specified as AutoAppliedAfterDate or ForcedApplyDate.

", + "ReservedDBInstance$StartTime": "

The time the reservation started.

", + "RestoreDBInstanceToPointInTimeMessage$RestoreTime": "

The date and time to restore from.

Valid Values: Value must be a UTC time

Constraints:

  • Must be before the latest restorable time for the DB instance
  • Cannot be specified if UseLatestRestorableTime parameter is true

Example: 2009-09-07T23:45:00Z

" + } + }, + "Tag": { + "base": "

Metadata assigned to an Amazon RDS resource consisting of a key-value pair.

", + "refs": { + "TagList$member": null + } + }, + "TagList": { + "base": "

A list of tags.

", + "refs": { + "AddTagsToResourceMessage$Tags": "

The tags to be assigned to the Amazon RDS resource.

", + "CopyDBParameterGroupMessage$Tags": null, + "CopyDBSnapshotMessage$Tags": null, + "CopyOptionGroupMessage$Tags": null, + "CreateDBInstanceMessage$Tags": null, + "CreateDBInstanceReadReplicaMessage$Tags": null, + "CreateDBParameterGroupMessage$Tags": null, + "CreateDBSecurityGroupMessage$Tags": null, + "CreateDBSnapshotMessage$Tags": null, + "CreateDBSubnetGroupMessage$Tags": null, + "CreateEventSubscriptionMessage$Tags": null, + "CreateOptionGroupMessage$Tags": null, + "PurchaseReservedDBInstancesOfferingMessage$Tags": null, + "RestoreDBInstanceFromDBSnapshotMessage$Tags": null, + "RestoreDBInstanceToPointInTimeMessage$Tags": null, + "TagListMessage$TagList": "

List of tags returned by the ListTagsForResource operation.

" + } + }, + "TagListMessage": { + "base": "

", + "refs": { + } + }, + "VpcSecurityGroupIdList": { + "base": null, + "refs": { + "CreateDBInstanceMessage$VpcSecurityGroupIds": "

A list of EC2 VPC security groups to associate with this DB instance.

Default: The default EC2 VPC security group for the DB subnet group's VPC.

", + "ModifyDBInstanceMessage$VpcSecurityGroupIds": "

A list of EC2 VPC security groups to authorize on this DB instance. This change is asynchronously applied as soon as possible.

Constraints:

  • Must be 1 to 255 alphanumeric characters
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "OptionConfiguration$VpcSecurityGroupMemberships": "

A list of VpcSecurityGroupMemebrship name strings used for this option.

" + } + }, + "VpcSecurityGroupMembership": { + "base": "

This data type is used as a response element for queries on VPC security group membership.

", + "refs": { + "VpcSecurityGroupMembershipList$member": null + } + }, + "VpcSecurityGroupMembershipList": { + "base": null, + "refs": { + "DBInstance$VpcSecurityGroups": "

Provides List of VPC security group elements that the DB instance belongs to.

", + "Option$VpcSecurityGroupMemberships": "

If the option requires access to a port, then this VPC security group allows access to the port.

" + } + }, + "AddSourceIdentifierToSubscriptionResult": { + "base": null, + "refs": { + } + }, + "ApplyPendingMaintenanceActionResult": { + "base": null, + "refs": { + } + }, + "AuthorizeDBSecurityGroupIngressResult": { + "base": null, + "refs": { + } + }, + "CopyDBParameterGroupResult": { + "base": null, + "refs": { + } + }, + "CopyDBSnapshotResult": { + "base": null, + "refs": { + } + }, + "CopyOptionGroupResult": { + "base": null, + "refs": { + } + }, + "CreateDBInstanceResult": { + "base": null, + "refs": { + } + }, + "CreateDBInstanceReadReplicaResult": { + "base": null, + "refs": { + } + }, + "CreateDBParameterGroupResult": { + "base": null, + "refs": { + } + }, + "CreateDBSecurityGroupResult": { + "base": null, + "refs": { + } + }, + "CreateDBSnapshotResult": { + "base": null, + "refs": { + } + }, + "CreateDBSubnetGroupResult": { + "base": null, + "refs": { + } + }, + "CreateEventSubscriptionResult": { + "base": null, + "refs": { + } + }, + "CreateOptionGroupResult": { + "base": null, + "refs": { + } + }, + "DeleteDBInstanceResult": { + "base": null, + "refs": { + } + }, + "DeleteDBSnapshotResult": { + "base": null, + "refs": { + } + }, + "DeleteEventSubscriptionResult": { + "base": null, + "refs": { + } + }, + "DescribeEngineDefaultParametersResult": { + "base": null, + "refs": { + } + }, + "ModifyDBInstanceResult": { + "base": null, + "refs": { + } + }, + "ModifyDBSubnetGroupResult": { + "base": null, + "refs": { + } + }, + "ModifyEventSubscriptionResult": { + "base": null, + "refs": { + } + }, + "ModifyOptionGroupResult": { + "base": null, + "refs": { + } + }, + "PromoteReadReplicaResult": { + "base": null, + "refs": { + } + }, + "PurchaseReservedDBInstancesOfferingResult": { + "base": null, + "refs": { + } + }, + "RebootDBInstanceResult": { + "base": null, + "refs": { + } + }, + "RemoveSourceIdentifierFromSubscriptionResult": { + "base": null, + "refs": { + } + }, + "RestoreDBInstanceFromDBSnapshotResult": { + "base": null, + "refs": { + } + }, + "RestoreDBInstanceToPointInTimeResult": { + "base": null, + "refs": { + } + }, + "RevokeDBSecurityGroupIngressResult": { + "base": null, + "refs": { + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/rds/2014-10-31/paginators-1.json b/lib/aws-sdk/Aws/data/rds/2014-10-31/paginators-1.json new file mode 100644 index 0000000..662845c --- /dev/null +++ b/lib/aws-sdk/Aws/data/rds/2014-10-31/paginators-1.json @@ -0,0 +1,110 @@ +{ + "pagination": { + "DescribeDBEngineVersions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBEngineVersions" + }, + "DescribeDBInstances": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBInstances" + }, + "DescribeDBLogFiles": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DescribeDBLogFiles" + }, + "DescribeDBParameterGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBParameterGroups" + }, + "DescribeDBParameters": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "Parameters" + }, + "DescribeDBSecurityGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBSecurityGroups" + }, + "DescribeDBSnapshots": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBSnapshots" + }, + "DescribeDBSubnetGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "DBSubnetGroups" + }, + "DescribeEngineDefaultParameters": { + "input_token": "Marker", + "output_token": "EngineDefaults.Marker", + "limit_key": "MaxRecords", + "result_key": "EngineDefaults.Parameters" + }, + "DescribeEventSubscriptions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "EventSubscriptionsList" + }, + "DescribeEvents": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "Events" + }, + "DescribeOptionGroupOptions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "OptionGroupOptions" + }, + "DescribeOptionGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "OptionGroupsList" + }, + "DescribeOrderableDBInstanceOptions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "OrderableDBInstanceOptions" + }, + "DescribeReservedDBInstances": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ReservedDBInstances" + }, + "DescribeReservedDBInstancesOfferings": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ReservedDBInstancesOfferings" + }, + "DownloadDBLogFilePortion": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "NumberOfLines", + "more_results": "AdditionalDataPending", + "result_key": "LogFileData" + }, + "ListTagsForResource": { + "result_key": "TagList" + } + } +} diff --git a/lib/aws-sdk/Aws/data/rds/2014-10-31/waiters-2.json b/lib/aws-sdk/Aws/data/rds/2014-10-31/waiters-2.json new file mode 100644 index 0000000..f6538b0 --- /dev/null +++ b/lib/aws-sdk/Aws/data/rds/2014-10-31/waiters-2.json @@ -0,0 +1,96 @@ +{ + "version": 2, + "waiters": { + "DBInstanceAvailable": { + "delay": 30, + "operation": "DescribeDBInstances", + "maxAttempts": 60, + "acceptors": [ + { + "expected": "available", + "matcher": "pathAll", + "state": "success", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "deleted", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "deleting", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "failed", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "incompatible-restore", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "incompatible-parameters", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "incompatible-restore", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + } + ] + }, + "DBInstanceDeleted": { + "delay": 30, + "operation": "DescribeDBInstances", + "maxAttempts": 60, + "acceptors": [ + { + "expected": "deleted", + "matcher": "pathAll", + "state": "success", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "DBInstanceNotFound", + "matcher": "error", + "state": "success" + }, + { + "expected": "creating", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "modifying", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "rebooting", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + }, + { + "expected": "resetting-master-credentials", + "matcher": "pathAny", + "state": "failure", + "argument": "DBInstances[].DBInstanceStatus" + } + ] + } + } +} diff --git a/lib/aws-sdk/Aws/data/redshift/2012-12-01/api-2.json b/lib/aws-sdk/Aws/data/redshift/2012-12-01/api-2.json new file mode 100644 index 0000000..5549bac --- /dev/null +++ b/lib/aws-sdk/Aws/data/redshift/2012-12-01/api-2.json @@ -0,0 +1,4857 @@ +{ + "metadata":{ + "apiVersion":"2012-12-01", + "endpointPrefix":"redshift", + "serviceFullName":"Amazon Redshift", + "signatureVersion":"v4", + "xmlNamespace":"http://redshift.amazonaws.com/doc/2012-12-01/", + "protocol":"query" + }, + "operations":{ + "AuthorizeClusterSecurityGroupIngress":{ + "name":"AuthorizeClusterSecurityGroupIngress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AuthorizeClusterSecurityGroupIngressMessage"}, + "output":{ + "shape":"AuthorizeClusterSecurityGroupIngressResult", + "wrapper":true, + "resultWrapper":"AuthorizeClusterSecurityGroupIngressResult" + }, + "errors":[ + { + "shape":"ClusterSecurityGroupNotFoundFault", + "error":{ + "code":"ClusterSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidClusterSecurityGroupStateFault", + "error":{ + "code":"InvalidClusterSecurityGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AuthorizationAlreadyExistsFault", + "error":{ + "code":"AuthorizationAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AuthorizationQuotaExceededFault", + "error":{ + "code":"AuthorizationQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "AuthorizeSnapshotAccess":{ + "name":"AuthorizeSnapshotAccess", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AuthorizeSnapshotAccessMessage"}, + "output":{ + "shape":"AuthorizeSnapshotAccessResult", + "wrapper":true, + "resultWrapper":"AuthorizeSnapshotAccessResult" + }, + "errors":[ + { + "shape":"ClusterSnapshotNotFoundFault", + "error":{ + "code":"ClusterSnapshotNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AuthorizationAlreadyExistsFault", + "error":{ + "code":"AuthorizationAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AuthorizationQuotaExceededFault", + "error":{ + "code":"AuthorizationQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CopyClusterSnapshot":{ + "name":"CopyClusterSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CopyClusterSnapshotMessage"}, + "output":{ + "shape":"CopyClusterSnapshotResult", + "wrapper":true, + "resultWrapper":"CopyClusterSnapshotResult" + }, + "errors":[ + { + "shape":"ClusterSnapshotAlreadyExistsFault", + "error":{ + "code":"ClusterSnapshotAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterSnapshotNotFoundFault", + "error":{ + "code":"ClusterSnapshotNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidClusterSnapshotStateFault", + "error":{ + "code":"InvalidClusterSnapshotState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterSnapshotQuotaExceededFault", + "error":{ + "code":"ClusterSnapshotQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateCluster":{ + "name":"CreateCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateClusterMessage"}, + "output":{ + "shape":"CreateClusterResult", + "wrapper":true, + "resultWrapper":"CreateClusterResult" + }, + "errors":[ + { + "shape":"ClusterAlreadyExistsFault", + "error":{ + "code":"ClusterAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InsufficientClusterCapacityFault", + "error":{ + "code":"InsufficientClusterCapacity", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterParameterGroupNotFoundFault", + "error":{ + "code":"ClusterParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterSecurityGroupNotFoundFault", + "error":{ + "code":"ClusterSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterQuotaExceededFault", + "error":{ + "code":"ClusterQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NumberOfNodesQuotaExceededFault", + "error":{ + "code":"NumberOfNodesQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NumberOfNodesPerClusterLimitExceededFault", + "error":{ + "code":"NumberOfNodesPerClusterLimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterSubnetGroupNotFoundFault", + "error":{ + "code":"ClusterSubnetGroupNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidVPCNetworkStateFault", + "error":{ + "code":"InvalidVPCNetworkStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidClusterSubnetGroupStateFault", + "error":{ + "code":"InvalidClusterSubnetGroupStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidSubnet", + "error":{ + "code":"InvalidSubnet", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"UnauthorizedOperation", + "error":{ + "code":"UnauthorizedOperation", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"HsmClientCertificateNotFoundFault", + "error":{ + "code":"HsmClientCertificateNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"HsmConfigurationNotFoundFault", + "error":{ + "code":"HsmConfigurationNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidElasticIpFault", + "error":{ + "code":"InvalidElasticIpFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TagLimitExceededFault", + "error":{ + "code":"TagLimitExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidTagFault", + "error":{ + "code":"InvalidTagFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateClusterParameterGroup":{ + "name":"CreateClusterParameterGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateClusterParameterGroupMessage"}, + "output":{ + "shape":"CreateClusterParameterGroupResult", + "wrapper":true, + "resultWrapper":"CreateClusterParameterGroupResult" + }, + "errors":[ + { + "shape":"ClusterParameterGroupQuotaExceededFault", + "error":{ + "code":"ClusterParameterGroupQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterParameterGroupAlreadyExistsFault", + "error":{ + "code":"ClusterParameterGroupAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TagLimitExceededFault", + "error":{ + "code":"TagLimitExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidTagFault", + "error":{ + "code":"InvalidTagFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateClusterSecurityGroup":{ + "name":"CreateClusterSecurityGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateClusterSecurityGroupMessage"}, + "output":{ + "shape":"CreateClusterSecurityGroupResult", + "wrapper":true, + "resultWrapper":"CreateClusterSecurityGroupResult" + }, + "errors":[ + { + "shape":"ClusterSecurityGroupAlreadyExistsFault", + "error":{ + "code":"ClusterSecurityGroupAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterSecurityGroupQuotaExceededFault", + "error":{ + "code":"QuotaExceeded.ClusterSecurityGroup", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TagLimitExceededFault", + "error":{ + "code":"TagLimitExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidTagFault", + "error":{ + "code":"InvalidTagFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateClusterSnapshot":{ + "name":"CreateClusterSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateClusterSnapshotMessage"}, + "output":{ + "shape":"CreateClusterSnapshotResult", + "wrapper":true, + "resultWrapper":"CreateClusterSnapshotResult" + }, + "errors":[ + { + "shape":"ClusterSnapshotAlreadyExistsFault", + "error":{ + "code":"ClusterSnapshotAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidClusterStateFault", + "error":{ + "code":"InvalidClusterState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterNotFoundFault", + "error":{ + "code":"ClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterSnapshotQuotaExceededFault", + "error":{ + "code":"ClusterSnapshotQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TagLimitExceededFault", + "error":{ + "code":"TagLimitExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidTagFault", + "error":{ + "code":"InvalidTagFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateClusterSubnetGroup":{ + "name":"CreateClusterSubnetGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateClusterSubnetGroupMessage"}, + "output":{ + "shape":"CreateClusterSubnetGroupResult", + "wrapper":true, + "resultWrapper":"CreateClusterSubnetGroupResult" + }, + "errors":[ + { + "shape":"ClusterSubnetGroupAlreadyExistsFault", + "error":{ + "code":"ClusterSubnetGroupAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterSubnetGroupQuotaExceededFault", + "error":{ + "code":"ClusterSubnetGroupQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterSubnetQuotaExceededFault", + "error":{ + "code":"ClusterSubnetQuotaExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidSubnet", + "error":{ + "code":"InvalidSubnet", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"UnauthorizedOperation", + "error":{ + "code":"UnauthorizedOperation", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TagLimitExceededFault", + "error":{ + "code":"TagLimitExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidTagFault", + "error":{ + "code":"InvalidTagFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateEventSubscription":{ + "name":"CreateEventSubscription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateEventSubscriptionMessage"}, + "output":{ + "shape":"CreateEventSubscriptionResult", + "wrapper":true, + "resultWrapper":"CreateEventSubscriptionResult" + }, + "errors":[ + { + "shape":"EventSubscriptionQuotaExceededFault", + "error":{ + "code":"EventSubscriptionQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SubscriptionAlreadyExistFault", + "error":{ + "code":"SubscriptionAlreadyExist", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SNSInvalidTopicFault", + "error":{ + "code":"SNSInvalidTopic", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SNSNoAuthorizationFault", + "error":{ + "code":"SNSNoAuthorization", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SNSTopicArnNotFoundFault", + "error":{ + "code":"SNSTopicArnNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SubscriptionEventIdNotFoundFault", + "error":{ + "code":"SubscriptionEventIdNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SubscriptionCategoryNotFoundFault", + "error":{ + "code":"SubscriptionCategoryNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SubscriptionSeverityNotFoundFault", + "error":{ + "code":"SubscriptionSeverityNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SourceNotFoundFault", + "error":{ + "code":"SourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TagLimitExceededFault", + "error":{ + "code":"TagLimitExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidTagFault", + "error":{ + "code":"InvalidTagFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateHsmClientCertificate":{ + "name":"CreateHsmClientCertificate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateHsmClientCertificateMessage"}, + "output":{ + "shape":"CreateHsmClientCertificateResult", + "wrapper":true, + "resultWrapper":"CreateHsmClientCertificateResult" + }, + "errors":[ + { + "shape":"HsmClientCertificateAlreadyExistsFault", + "error":{ + "code":"HsmClientCertificateAlreadyExistsFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"HsmClientCertificateQuotaExceededFault", + "error":{ + "code":"HsmClientCertificateQuotaExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TagLimitExceededFault", + "error":{ + "code":"TagLimitExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidTagFault", + "error":{ + "code":"InvalidTagFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateHsmConfiguration":{ + "name":"CreateHsmConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateHsmConfigurationMessage"}, + "output":{ + "shape":"CreateHsmConfigurationResult", + "wrapper":true, + "resultWrapper":"CreateHsmConfigurationResult" + }, + "errors":[ + { + "shape":"HsmConfigurationAlreadyExistsFault", + "error":{ + "code":"HsmConfigurationAlreadyExistsFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"HsmConfigurationQuotaExceededFault", + "error":{ + "code":"HsmConfigurationQuotaExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TagLimitExceededFault", + "error":{ + "code":"TagLimitExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidTagFault", + "error":{ + "code":"InvalidTagFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateTags":{ + "name":"CreateTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateTagsMessage"}, + "errors":[ + { + "shape":"TagLimitExceededFault", + "error":{ + "code":"TagLimitExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResourceNotFoundFault", + "error":{ + "code":"ResourceNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidTagFault", + "error":{ + "code":"InvalidTagFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteCluster":{ + "name":"DeleteCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteClusterMessage"}, + "output":{ + "shape":"DeleteClusterResult", + "wrapper":true, + "resultWrapper":"DeleteClusterResult" + }, + "errors":[ + { + "shape":"ClusterNotFoundFault", + "error":{ + "code":"ClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidClusterStateFault", + "error":{ + "code":"InvalidClusterState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterSnapshotAlreadyExistsFault", + "error":{ + "code":"ClusterSnapshotAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterSnapshotQuotaExceededFault", + "error":{ + "code":"ClusterSnapshotQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteClusterParameterGroup":{ + "name":"DeleteClusterParameterGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteClusterParameterGroupMessage"}, + "errors":[ + { + "shape":"InvalidClusterParameterGroupStateFault", + "error":{ + "code":"InvalidClusterParameterGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterParameterGroupNotFoundFault", + "error":{ + "code":"ClusterParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteClusterSecurityGroup":{ + "name":"DeleteClusterSecurityGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteClusterSecurityGroupMessage"}, + "errors":[ + { + "shape":"InvalidClusterSecurityGroupStateFault", + "error":{ + "code":"InvalidClusterSecurityGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterSecurityGroupNotFoundFault", + "error":{ + "code":"ClusterSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteClusterSnapshot":{ + "name":"DeleteClusterSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteClusterSnapshotMessage"}, + "output":{ + "shape":"DeleteClusterSnapshotResult", + "wrapper":true, + "resultWrapper":"DeleteClusterSnapshotResult" + }, + "errors":[ + { + "shape":"InvalidClusterSnapshotStateFault", + "error":{ + "code":"InvalidClusterSnapshotState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterSnapshotNotFoundFault", + "error":{ + "code":"ClusterSnapshotNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteClusterSubnetGroup":{ + "name":"DeleteClusterSubnetGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteClusterSubnetGroupMessage"}, + "errors":[ + { + "shape":"InvalidClusterSubnetGroupStateFault", + "error":{ + "code":"InvalidClusterSubnetGroupStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidClusterSubnetStateFault", + "error":{ + "code":"InvalidClusterSubnetStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterSubnetGroupNotFoundFault", + "error":{ + "code":"ClusterSubnetGroupNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteEventSubscription":{ + "name":"DeleteEventSubscription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteEventSubscriptionMessage"}, + "errors":[ + { + "shape":"SubscriptionNotFoundFault", + "error":{ + "code":"SubscriptionNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidSubscriptionStateFault", + "error":{ + "code":"InvalidSubscriptionStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteHsmClientCertificate":{ + "name":"DeleteHsmClientCertificate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteHsmClientCertificateMessage"}, + "errors":[ + { + "shape":"InvalidHsmClientCertificateStateFault", + "error":{ + "code":"InvalidHsmClientCertificateStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"HsmClientCertificateNotFoundFault", + "error":{ + "code":"HsmClientCertificateNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteHsmConfiguration":{ + "name":"DeleteHsmConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteHsmConfigurationMessage"}, + "errors":[ + { + "shape":"InvalidHsmConfigurationStateFault", + "error":{ + "code":"InvalidHsmConfigurationStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"HsmConfigurationNotFoundFault", + "error":{ + "code":"HsmConfigurationNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteTags":{ + "name":"DeleteTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTagsMessage"}, + "errors":[ + { + "shape":"ResourceNotFoundFault", + "error":{ + "code":"ResourceNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeClusterParameterGroups":{ + "name":"DescribeClusterParameterGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeClusterParameterGroupsMessage"}, + "output":{ + "shape":"ClusterParameterGroupsMessage", + "resultWrapper":"DescribeClusterParameterGroupsResult" + }, + "errors":[ + { + "shape":"ClusterParameterGroupNotFoundFault", + "error":{ + "code":"ClusterParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeClusterParameters":{ + "name":"DescribeClusterParameters", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeClusterParametersMessage"}, + "output":{ + "shape":"ClusterParameterGroupDetails", + "resultWrapper":"DescribeClusterParametersResult" + }, + "errors":[ + { + "shape":"ClusterParameterGroupNotFoundFault", + "error":{ + "code":"ClusterParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeClusterSecurityGroups":{ + "name":"DescribeClusterSecurityGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeClusterSecurityGroupsMessage"}, + "output":{ + "shape":"ClusterSecurityGroupMessage", + "resultWrapper":"DescribeClusterSecurityGroupsResult" + }, + "errors":[ + { + "shape":"ClusterSecurityGroupNotFoundFault", + "error":{ + "code":"ClusterSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeClusterSnapshots":{ + "name":"DescribeClusterSnapshots", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeClusterSnapshotsMessage"}, + "output":{ + "shape":"SnapshotMessage", + "resultWrapper":"DescribeClusterSnapshotsResult" + }, + "errors":[ + { + "shape":"ClusterSnapshotNotFoundFault", + "error":{ + "code":"ClusterSnapshotNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeClusterSubnetGroups":{ + "name":"DescribeClusterSubnetGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeClusterSubnetGroupsMessage"}, + "output":{ + "shape":"ClusterSubnetGroupMessage", + "resultWrapper":"DescribeClusterSubnetGroupsResult" + }, + "errors":[ + { + "shape":"ClusterSubnetGroupNotFoundFault", + "error":{ + "code":"ClusterSubnetGroupNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeClusterVersions":{ + "name":"DescribeClusterVersions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeClusterVersionsMessage"}, + "output":{ + "shape":"ClusterVersionsMessage", + "resultWrapper":"DescribeClusterVersionsResult" + } + }, + "DescribeClusters":{ + "name":"DescribeClusters", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeClustersMessage"}, + "output":{ + "shape":"ClustersMessage", + "resultWrapper":"DescribeClustersResult" + }, + "errors":[ + { + "shape":"ClusterNotFoundFault", + "error":{ + "code":"ClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeDefaultClusterParameters":{ + "name":"DescribeDefaultClusterParameters", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDefaultClusterParametersMessage"}, + "output":{ + "shape":"DescribeDefaultClusterParametersResult", + "wrapper":true, + "resultWrapper":"DescribeDefaultClusterParametersResult" + } + }, + "DescribeEventCategories":{ + "name":"DescribeEventCategories", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeEventCategoriesMessage"}, + "output":{ + "shape":"EventCategoriesMessage", + "resultWrapper":"DescribeEventCategoriesResult" + } + }, + "DescribeEventSubscriptions":{ + "name":"DescribeEventSubscriptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeEventSubscriptionsMessage"}, + "output":{ + "shape":"EventSubscriptionsMessage", + "resultWrapper":"DescribeEventSubscriptionsResult" + }, + "errors":[ + { + "shape":"SubscriptionNotFoundFault", + "error":{ + "code":"SubscriptionNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeEvents":{ + "name":"DescribeEvents", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeEventsMessage"}, + "output":{ + "shape":"EventsMessage", + "resultWrapper":"DescribeEventsResult" + } + }, + "DescribeHsmClientCertificates":{ + "name":"DescribeHsmClientCertificates", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeHsmClientCertificatesMessage"}, + "output":{ + "shape":"HsmClientCertificateMessage", + "resultWrapper":"DescribeHsmClientCertificatesResult" + }, + "errors":[ + { + "shape":"HsmClientCertificateNotFoundFault", + "error":{ + "code":"HsmClientCertificateNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeHsmConfigurations":{ + "name":"DescribeHsmConfigurations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeHsmConfigurationsMessage"}, + "output":{ + "shape":"HsmConfigurationMessage", + "resultWrapper":"DescribeHsmConfigurationsResult" + }, + "errors":[ + { + "shape":"HsmConfigurationNotFoundFault", + "error":{ + "code":"HsmConfigurationNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeLoggingStatus":{ + "name":"DescribeLoggingStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeLoggingStatusMessage"}, + "output":{ + "shape":"LoggingStatus", + "resultWrapper":"DescribeLoggingStatusResult" + }, + "errors":[ + { + "shape":"ClusterNotFoundFault", + "error":{ + "code":"ClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeOrderableClusterOptions":{ + "name":"DescribeOrderableClusterOptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeOrderableClusterOptionsMessage"}, + "output":{ + "shape":"OrderableClusterOptionsMessage", + "resultWrapper":"DescribeOrderableClusterOptionsResult" + } + }, + "DescribeReservedNodeOfferings":{ + "name":"DescribeReservedNodeOfferings", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeReservedNodeOfferingsMessage"}, + "output":{ + "shape":"ReservedNodeOfferingsMessage", + "resultWrapper":"DescribeReservedNodeOfferingsResult" + }, + "errors":[ + { + "shape":"ReservedNodeOfferingNotFoundFault", + "error":{ + "code":"ReservedNodeOfferingNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeReservedNodes":{ + "name":"DescribeReservedNodes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeReservedNodesMessage"}, + "output":{ + "shape":"ReservedNodesMessage", + "resultWrapper":"DescribeReservedNodesResult" + }, + "errors":[ + { + "shape":"ReservedNodeNotFoundFault", + "error":{ + "code":"ReservedNodeNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeResize":{ + "name":"DescribeResize", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeResizeMessage"}, + "output":{ + "shape":"ResizeProgressMessage", + "resultWrapper":"DescribeResizeResult" + }, + "errors":[ + { + "shape":"ClusterNotFoundFault", + "error":{ + "code":"ClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ResizeNotFoundFault", + "error":{ + "code":"ResizeNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeTags":{ + "name":"DescribeTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTagsMessage"}, + "output":{ + "shape":"TaggedResourceListMessage", + "resultWrapper":"DescribeTagsResult" + }, + "errors":[ + { + "shape":"ResourceNotFoundFault", + "error":{ + "code":"ResourceNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DisableLogging":{ + "name":"DisableLogging", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisableLoggingMessage"}, + "output":{ + "shape":"LoggingStatus", + "resultWrapper":"DisableLoggingResult" + }, + "errors":[ + { + "shape":"ClusterNotFoundFault", + "error":{ + "code":"ClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DisableSnapshotCopy":{ + "name":"DisableSnapshotCopy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisableSnapshotCopyMessage"}, + "output":{ + "shape":"DisableSnapshotCopyResult", + "wrapper":true, + "resultWrapper":"DisableSnapshotCopyResult" + }, + "errors":[ + { + "shape":"ClusterNotFoundFault", + "error":{ + "code":"ClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SnapshotCopyAlreadyDisabledFault", + "error":{ + "code":"SnapshotCopyAlreadyDisabledFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidClusterStateFault", + "error":{ + "code":"InvalidClusterState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"UnauthorizedOperation", + "error":{ + "code":"UnauthorizedOperation", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "EnableLogging":{ + "name":"EnableLogging", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableLoggingMessage"}, + "output":{ + "shape":"LoggingStatus", + "resultWrapper":"EnableLoggingResult" + }, + "errors":[ + { + "shape":"ClusterNotFoundFault", + "error":{ + "code":"ClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"BucketNotFoundFault", + "error":{ + "code":"BucketNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InsufficientS3BucketPolicyFault", + "error":{ + "code":"InsufficientS3BucketPolicyFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidS3KeyPrefixFault", + "error":{ + "code":"InvalidS3KeyPrefixFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidS3BucketNameFault", + "error":{ + "code":"InvalidS3BucketNameFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "EnableSnapshotCopy":{ + "name":"EnableSnapshotCopy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableSnapshotCopyMessage"}, + "output":{ + "shape":"EnableSnapshotCopyResult", + "wrapper":true, + "resultWrapper":"EnableSnapshotCopyResult" + }, + "errors":[ + { + "shape":"IncompatibleOrderableOptions", + "error":{ + "code":"IncompatibleOrderableOptions", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidClusterStateFault", + "error":{ + "code":"InvalidClusterState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterNotFoundFault", + "error":{ + "code":"ClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"CopyToRegionDisabledFault", + "error":{ + "code":"CopyToRegionDisabledFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SnapshotCopyAlreadyEnabledFault", + "error":{ + "code":"SnapshotCopyAlreadyEnabledFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"UnknownSnapshotCopyRegionFault", + "error":{ + "code":"UnknownSnapshotCopyRegionFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"UnauthorizedOperation", + "error":{ + "code":"UnauthorizedOperation", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "ModifyCluster":{ + "name":"ModifyCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyClusterMessage"}, + "output":{ + "shape":"ModifyClusterResult", + "wrapper":true, + "resultWrapper":"ModifyClusterResult" + }, + "errors":[ + { + "shape":"InvalidClusterStateFault", + "error":{ + "code":"InvalidClusterState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidClusterSecurityGroupStateFault", + "error":{ + "code":"InvalidClusterSecurityGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterNotFoundFault", + "error":{ + "code":"ClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NumberOfNodesQuotaExceededFault", + "error":{ + "code":"NumberOfNodesQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterSecurityGroupNotFoundFault", + "error":{ + "code":"ClusterSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterParameterGroupNotFoundFault", + "error":{ + "code":"ClusterParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InsufficientClusterCapacityFault", + "error":{ + "code":"InsufficientClusterCapacity", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"UnsupportedOptionFault", + "error":{ + "code":"UnsupportedOptionFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"UnauthorizedOperation", + "error":{ + "code":"UnauthorizedOperation", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"HsmClientCertificateNotFoundFault", + "error":{ + "code":"HsmClientCertificateNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"HsmConfigurationNotFoundFault", + "error":{ + "code":"HsmConfigurationNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterAlreadyExistsFault", + "error":{ + "code":"ClusterAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "ModifyClusterParameterGroup":{ + "name":"ModifyClusterParameterGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyClusterParameterGroupMessage"}, + "output":{ + "shape":"ClusterParameterGroupNameMessage", + "resultWrapper":"ModifyClusterParameterGroupResult" + }, + "errors":[ + { + "shape":"ClusterParameterGroupNotFoundFault", + "error":{ + "code":"ClusterParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidClusterParameterGroupStateFault", + "error":{ + "code":"InvalidClusterParameterGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "ModifyClusterSubnetGroup":{ + "name":"ModifyClusterSubnetGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyClusterSubnetGroupMessage"}, + "output":{ + "shape":"ModifyClusterSubnetGroupResult", + "wrapper":true, + "resultWrapper":"ModifyClusterSubnetGroupResult" + }, + "errors":[ + { + "shape":"ClusterSubnetGroupNotFoundFault", + "error":{ + "code":"ClusterSubnetGroupNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterSubnetQuotaExceededFault", + "error":{ + "code":"ClusterSubnetQuotaExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SubnetAlreadyInUse", + "error":{ + "code":"SubnetAlreadyInUse", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidSubnet", + "error":{ + "code":"InvalidSubnet", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"UnauthorizedOperation", + "error":{ + "code":"UnauthorizedOperation", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "ModifyEventSubscription":{ + "name":"ModifyEventSubscription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyEventSubscriptionMessage"}, + "output":{ + "shape":"ModifyEventSubscriptionResult", + "wrapper":true, + "resultWrapper":"ModifyEventSubscriptionResult" + }, + "errors":[ + { + "shape":"SubscriptionNotFoundFault", + "error":{ + "code":"SubscriptionNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SNSInvalidTopicFault", + "error":{ + "code":"SNSInvalidTopic", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SNSNoAuthorizationFault", + "error":{ + "code":"SNSNoAuthorization", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SNSTopicArnNotFoundFault", + "error":{ + "code":"SNSTopicArnNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SubscriptionEventIdNotFoundFault", + "error":{ + "code":"SubscriptionEventIdNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SubscriptionCategoryNotFoundFault", + "error":{ + "code":"SubscriptionCategoryNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SubscriptionSeverityNotFoundFault", + "error":{ + "code":"SubscriptionSeverityNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SourceNotFoundFault", + "error":{ + "code":"SourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidSubscriptionStateFault", + "error":{ + "code":"InvalidSubscriptionStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "ModifySnapshotCopyRetentionPeriod":{ + "name":"ModifySnapshotCopyRetentionPeriod", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifySnapshotCopyRetentionPeriodMessage"}, + "output":{ + "shape":"ModifySnapshotCopyRetentionPeriodResult", + "wrapper":true, + "resultWrapper":"ModifySnapshotCopyRetentionPeriodResult" + }, + "errors":[ + { + "shape":"ClusterNotFoundFault", + "error":{ + "code":"ClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"SnapshotCopyDisabledFault", + "error":{ + "code":"SnapshotCopyDisabledFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"UnauthorizedOperation", + "error":{ + "code":"UnauthorizedOperation", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidClusterStateFault", + "error":{ + "code":"InvalidClusterState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "PurchaseReservedNodeOffering":{ + "name":"PurchaseReservedNodeOffering", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PurchaseReservedNodeOfferingMessage"}, + "output":{ + "shape":"PurchaseReservedNodeOfferingResult", + "wrapper":true, + "resultWrapper":"PurchaseReservedNodeOfferingResult" + }, + "errors":[ + { + "shape":"ReservedNodeOfferingNotFoundFault", + "error":{ + "code":"ReservedNodeOfferingNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ReservedNodeAlreadyExistsFault", + "error":{ + "code":"ReservedNodeAlreadyExists", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ReservedNodeQuotaExceededFault", + "error":{ + "code":"ReservedNodeQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "RebootCluster":{ + "name":"RebootCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RebootClusterMessage"}, + "output":{ + "shape":"RebootClusterResult", + "wrapper":true, + "resultWrapper":"RebootClusterResult" + }, + "errors":[ + { + "shape":"InvalidClusterStateFault", + "error":{ + "code":"InvalidClusterState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterNotFoundFault", + "error":{ + "code":"ClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "ResetClusterParameterGroup":{ + "name":"ResetClusterParameterGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ResetClusterParameterGroupMessage"}, + "output":{ + "shape":"ClusterParameterGroupNameMessage", + "resultWrapper":"ResetClusterParameterGroupResult" + }, + "errors":[ + { + "shape":"InvalidClusterParameterGroupStateFault", + "error":{ + "code":"InvalidClusterParameterGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterParameterGroupNotFoundFault", + "error":{ + "code":"ClusterParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "RestoreFromClusterSnapshot":{ + "name":"RestoreFromClusterSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RestoreFromClusterSnapshotMessage"}, + "output":{ + "shape":"RestoreFromClusterSnapshotResult", + "wrapper":true, + "resultWrapper":"RestoreFromClusterSnapshotResult" + }, + "errors":[ + { + "shape":"AccessToSnapshotDeniedFault", + "error":{ + "code":"AccessToSnapshotDenied", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterAlreadyExistsFault", + "error":{ + "code":"ClusterAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterSnapshotNotFoundFault", + "error":{ + "code":"ClusterSnapshotNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterQuotaExceededFault", + "error":{ + "code":"ClusterQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InsufficientClusterCapacityFault", + "error":{ + "code":"InsufficientClusterCapacity", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidClusterSnapshotStateFault", + "error":{ + "code":"InvalidClusterSnapshotState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidRestoreFault", + "error":{ + "code":"InvalidRestore", + "httpStatusCode":406, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NumberOfNodesQuotaExceededFault", + "error":{ + "code":"NumberOfNodesQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NumberOfNodesPerClusterLimitExceededFault", + "error":{ + "code":"NumberOfNodesPerClusterLimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidVPCNetworkStateFault", + "error":{ + "code":"InvalidVPCNetworkStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidClusterSubnetGroupStateFault", + "error":{ + "code":"InvalidClusterSubnetGroupStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidSubnet", + "error":{ + "code":"InvalidSubnet", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterSubnetGroupNotFoundFault", + "error":{ + "code":"ClusterSubnetGroupNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"UnauthorizedOperation", + "error":{ + "code":"UnauthorizedOperation", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"HsmClientCertificateNotFoundFault", + "error":{ + "code":"HsmClientCertificateNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"HsmConfigurationNotFoundFault", + "error":{ + "code":"HsmConfigurationNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidElasticIpFault", + "error":{ + "code":"InvalidElasticIpFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterParameterGroupNotFoundFault", + "error":{ + "code":"ClusterParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterSecurityGroupNotFoundFault", + "error":{ + "code":"ClusterSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "RevokeClusterSecurityGroupIngress":{ + "name":"RevokeClusterSecurityGroupIngress", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RevokeClusterSecurityGroupIngressMessage"}, + "output":{ + "shape":"RevokeClusterSecurityGroupIngressResult", + "wrapper":true, + "resultWrapper":"RevokeClusterSecurityGroupIngressResult" + }, + "errors":[ + { + "shape":"ClusterSecurityGroupNotFoundFault", + "error":{ + "code":"ClusterSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AuthorizationNotFoundFault", + "error":{ + "code":"AuthorizationNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidClusterSecurityGroupStateFault", + "error":{ + "code":"InvalidClusterSecurityGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "RevokeSnapshotAccess":{ + "name":"RevokeSnapshotAccess", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RevokeSnapshotAccessMessage"}, + "output":{ + "shape":"RevokeSnapshotAccessResult", + "wrapper":true, + "resultWrapper":"RevokeSnapshotAccessResult" + }, + "errors":[ + { + "shape":"AccessToSnapshotDeniedFault", + "error":{ + "code":"AccessToSnapshotDenied", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AuthorizationNotFoundFault", + "error":{ + "code":"AuthorizationNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ClusterSnapshotNotFoundFault", + "error":{ + "code":"ClusterSnapshotNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "RotateEncryptionKey":{ + "name":"RotateEncryptionKey", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RotateEncryptionKeyMessage"}, + "output":{ + "shape":"RotateEncryptionKeyResult", + "wrapper":true, + "resultWrapper":"RotateEncryptionKeyResult" + }, + "errors":[ + { + "shape":"ClusterNotFoundFault", + "error":{ + "code":"ClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidClusterStateFault", + "error":{ + "code":"InvalidClusterState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + } + }, + "shapes":{ + "AccessToSnapshotDeniedFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AccessToSnapshotDenied", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "AccountWithRestoreAccess":{ + "type":"structure", + "members":{ + "AccountId":{"shape":"String"} + } + }, + "AccountsWithRestoreAccessList":{ + "type":"list", + "member":{ + "shape":"AccountWithRestoreAccess", + "locationName":"AccountWithRestoreAccess" + } + }, + "AuthorizationAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AuthorizationAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "AuthorizationNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AuthorizationNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "AuthorizationQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AuthorizationQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "AuthorizeClusterSecurityGroupIngressMessage":{ + "type":"structure", + "required":["ClusterSecurityGroupName"], + "members":{ + "ClusterSecurityGroupName":{"shape":"String"}, + "CIDRIP":{"shape":"String"}, + "EC2SecurityGroupName":{"shape":"String"}, + "EC2SecurityGroupOwnerId":{"shape":"String"} + } + }, + "AuthorizeSnapshotAccessMessage":{ + "type":"structure", + "required":[ + "SnapshotIdentifier", + "AccountWithRestoreAccess" + ], + "members":{ + "SnapshotIdentifier":{"shape":"String"}, + "SnapshotClusterIdentifier":{"shape":"String"}, + "AccountWithRestoreAccess":{"shape":"String"} + } + }, + "AvailabilityZone":{ + "type":"structure", + "members":{ + "Name":{"shape":"String"} + }, + "wrapper":true + }, + "AvailabilityZoneList":{ + "type":"list", + "member":{ + "shape":"AvailabilityZone", + "locationName":"AvailabilityZone" + } + }, + "Boolean":{"type":"boolean"}, + "BooleanOptional":{"type":"boolean"}, + "BucketNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"BucketNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "Cluster":{ + "type":"structure", + "members":{ + "ClusterIdentifier":{"shape":"String"}, + "NodeType":{"shape":"String"}, + "ClusterStatus":{"shape":"String"}, + "ModifyStatus":{"shape":"String"}, + "MasterUsername":{"shape":"String"}, + "DBName":{"shape":"String"}, + "Endpoint":{"shape":"Endpoint"}, + "ClusterCreateTime":{"shape":"TStamp"}, + "AutomatedSnapshotRetentionPeriod":{"shape":"Integer"}, + "ClusterSecurityGroups":{"shape":"ClusterSecurityGroupMembershipList"}, + "VpcSecurityGroups":{"shape":"VpcSecurityGroupMembershipList"}, + "ClusterParameterGroups":{"shape":"ClusterParameterGroupStatusList"}, + "ClusterSubnetGroupName":{"shape":"String"}, + "VpcId":{"shape":"String"}, + "AvailabilityZone":{"shape":"String"}, + "PreferredMaintenanceWindow":{"shape":"String"}, + "PendingModifiedValues":{"shape":"PendingModifiedValues"}, + "ClusterVersion":{"shape":"String"}, + "AllowVersionUpgrade":{"shape":"Boolean"}, + "NumberOfNodes":{"shape":"Integer"}, + "PubliclyAccessible":{"shape":"Boolean"}, + "Encrypted":{"shape":"Boolean"}, + "RestoreStatus":{"shape":"RestoreStatus"}, + "HsmStatus":{"shape":"HsmStatus"}, + "ClusterSnapshotCopyStatus":{"shape":"ClusterSnapshotCopyStatus"}, + "ClusterPublicKey":{"shape":"String"}, + "ClusterNodes":{"shape":"ClusterNodesList"}, + "ElasticIpStatus":{"shape":"ElasticIpStatus"}, + "ClusterRevisionNumber":{"shape":"String"}, + "Tags":{"shape":"TagList"}, + "KmsKeyId":{"shape":"String"} + }, + "wrapper":true + }, + "ClusterAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ClusterAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ClusterList":{ + "type":"list", + "member":{ + "shape":"Cluster", + "locationName":"Cluster" + } + }, + "ClusterNode":{ + "type":"structure", + "members":{ + "NodeRole":{"shape":"String"}, + "PrivateIPAddress":{"shape":"String"}, + "PublicIPAddress":{"shape":"String"} + } + }, + "ClusterNodesList":{ + "type":"list", + "member":{"shape":"ClusterNode"} + }, + "ClusterNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ClusterNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ClusterParameterGroup":{ + "type":"structure", + "members":{ + "ParameterGroupName":{"shape":"String"}, + "ParameterGroupFamily":{"shape":"String"}, + "Description":{"shape":"String"}, + "Tags":{"shape":"TagList"} + }, + "wrapper":true + }, + "ClusterParameterGroupAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ClusterParameterGroupAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ClusterParameterGroupDetails":{ + "type":"structure", + "members":{ + "Parameters":{"shape":"ParametersList"}, + "Marker":{"shape":"String"} + } + }, + "ClusterParameterGroupNameMessage":{ + "type":"structure", + "members":{ + "ParameterGroupName":{"shape":"String"}, + "ParameterGroupStatus":{"shape":"String"} + } + }, + "ClusterParameterGroupNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ClusterParameterGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ClusterParameterGroupQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ClusterParameterGroupQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ClusterParameterGroupStatus":{ + "type":"structure", + "members":{ + "ParameterGroupName":{"shape":"String"}, + "ParameterApplyStatus":{"shape":"String"} + } + }, + "ClusterParameterGroupStatusList":{ + "type":"list", + "member":{ + "shape":"ClusterParameterGroupStatus", + "locationName":"ClusterParameterGroup" + } + }, + "ClusterParameterGroupsMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "ParameterGroups":{"shape":"ParameterGroupList"} + } + }, + "ClusterQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ClusterQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ClusterSecurityGroup":{ + "type":"structure", + "members":{ + "ClusterSecurityGroupName":{"shape":"String"}, + "Description":{"shape":"String"}, + "EC2SecurityGroups":{"shape":"EC2SecurityGroupList"}, + "IPRanges":{"shape":"IPRangeList"}, + "Tags":{"shape":"TagList"} + }, + "wrapper":true + }, + "ClusterSecurityGroupAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ClusterSecurityGroupAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ClusterSecurityGroupMembership":{ + "type":"structure", + "members":{ + "ClusterSecurityGroupName":{"shape":"String"}, + "Status":{"shape":"String"} + } + }, + "ClusterSecurityGroupMembershipList":{ + "type":"list", + "member":{ + "shape":"ClusterSecurityGroupMembership", + "locationName":"ClusterSecurityGroup" + } + }, + "ClusterSecurityGroupMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "ClusterSecurityGroups":{"shape":"ClusterSecurityGroups"} + } + }, + "ClusterSecurityGroupNameList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"ClusterSecurityGroupName" + } + }, + "ClusterSecurityGroupNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ClusterSecurityGroupNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ClusterSecurityGroupQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"QuotaExceeded.ClusterSecurityGroup", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ClusterSecurityGroups":{ + "type":"list", + "member":{ + "shape":"ClusterSecurityGroup", + "locationName":"ClusterSecurityGroup" + } + }, + "ClusterSnapshotAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ClusterSnapshotAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ClusterSnapshotCopyStatus":{ + "type":"structure", + "members":{ + "DestinationRegion":{"shape":"String"}, + "RetentionPeriod":{"shape":"Long"} + } + }, + "ClusterSnapshotNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ClusterSnapshotNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ClusterSnapshotQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ClusterSnapshotQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ClusterSubnetGroup":{ + "type":"structure", + "members":{ + "ClusterSubnetGroupName":{"shape":"String"}, + "Description":{"shape":"String"}, + "VpcId":{"shape":"String"}, + "SubnetGroupStatus":{"shape":"String"}, + "Subnets":{"shape":"SubnetList"}, + "Tags":{"shape":"TagList"} + }, + "wrapper":true + }, + "ClusterSubnetGroupAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ClusterSubnetGroupAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ClusterSubnetGroupMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "ClusterSubnetGroups":{"shape":"ClusterSubnetGroups"} + } + }, + "ClusterSubnetGroupNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ClusterSubnetGroupNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ClusterSubnetGroupQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ClusterSubnetGroupQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ClusterSubnetGroups":{ + "type":"list", + "member":{ + "shape":"ClusterSubnetGroup", + "locationName":"ClusterSubnetGroup" + } + }, + "ClusterSubnetQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ClusterSubnetQuotaExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ClusterVersion":{ + "type":"structure", + "members":{ + "ClusterVersion":{"shape":"String"}, + "ClusterParameterGroupFamily":{"shape":"String"}, + "Description":{"shape":"String"} + } + }, + "ClusterVersionList":{ + "type":"list", + "member":{ + "shape":"ClusterVersion", + "locationName":"ClusterVersion" + } + }, + "ClusterVersionsMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "ClusterVersions":{"shape":"ClusterVersionList"} + } + }, + "ClustersMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "Clusters":{"shape":"ClusterList"} + } + }, + "CopyClusterSnapshotMessage":{ + "type":"structure", + "required":[ + "SourceSnapshotIdentifier", + "TargetSnapshotIdentifier" + ], + "members":{ + "SourceSnapshotIdentifier":{"shape":"String"}, + "SourceSnapshotClusterIdentifier":{"shape":"String"}, + "TargetSnapshotIdentifier":{"shape":"String"} + } + }, + "CopyToRegionDisabledFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"CopyToRegionDisabledFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "CreateClusterMessage":{ + "type":"structure", + "required":[ + "ClusterIdentifier", + "NodeType", + "MasterUsername", + "MasterUserPassword" + ], + "members":{ + "DBName":{"shape":"String"}, + "ClusterIdentifier":{"shape":"String"}, + "ClusterType":{"shape":"String"}, + "NodeType":{"shape":"String"}, + "MasterUsername":{"shape":"String"}, + "MasterUserPassword":{"shape":"String"}, + "ClusterSecurityGroups":{"shape":"ClusterSecurityGroupNameList"}, + "VpcSecurityGroupIds":{"shape":"VpcSecurityGroupIdList"}, + "ClusterSubnetGroupName":{"shape":"String"}, + "AvailabilityZone":{"shape":"String"}, + "PreferredMaintenanceWindow":{"shape":"String"}, + "ClusterParameterGroupName":{"shape":"String"}, + "AutomatedSnapshotRetentionPeriod":{"shape":"IntegerOptional"}, + "Port":{"shape":"IntegerOptional"}, + "ClusterVersion":{"shape":"String"}, + "AllowVersionUpgrade":{"shape":"BooleanOptional"}, + "NumberOfNodes":{"shape":"IntegerOptional"}, + "PubliclyAccessible":{"shape":"BooleanOptional"}, + "Encrypted":{"shape":"BooleanOptional"}, + "HsmClientCertificateIdentifier":{"shape":"String"}, + "HsmConfigurationIdentifier":{"shape":"String"}, + "ElasticIp":{"shape":"String"}, + "Tags":{"shape":"TagList"}, + "KmsKeyId":{"shape":"String"} + } + }, + "CreateClusterParameterGroupMessage":{ + "type":"structure", + "required":[ + "ParameterGroupName", + "ParameterGroupFamily", + "Description" + ], + "members":{ + "ParameterGroupName":{"shape":"String"}, + "ParameterGroupFamily":{"shape":"String"}, + "Description":{"shape":"String"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateClusterSecurityGroupMessage":{ + "type":"structure", + "required":[ + "ClusterSecurityGroupName", + "Description" + ], + "members":{ + "ClusterSecurityGroupName":{"shape":"String"}, + "Description":{"shape":"String"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateClusterSnapshotMessage":{ + "type":"structure", + "required":[ + "SnapshotIdentifier", + "ClusterIdentifier" + ], + "members":{ + "SnapshotIdentifier":{"shape":"String"}, + "ClusterIdentifier":{"shape":"String"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateClusterSubnetGroupMessage":{ + "type":"structure", + "required":[ + "ClusterSubnetGroupName", + "Description", + "SubnetIds" + ], + "members":{ + "ClusterSubnetGroupName":{"shape":"String"}, + "Description":{"shape":"String"}, + "SubnetIds":{"shape":"SubnetIdentifierList"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateEventSubscriptionMessage":{ + "type":"structure", + "required":[ + "SubscriptionName", + "SnsTopicArn" + ], + "members":{ + "SubscriptionName":{"shape":"String"}, + "SnsTopicArn":{"shape":"String"}, + "SourceType":{"shape":"String"}, + "SourceIds":{"shape":"SourceIdsList"}, + "EventCategories":{"shape":"EventCategoriesList"}, + "Severity":{"shape":"String"}, + "Enabled":{"shape":"BooleanOptional"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateHsmClientCertificateMessage":{ + "type":"structure", + "required":["HsmClientCertificateIdentifier"], + "members":{ + "HsmClientCertificateIdentifier":{"shape":"String"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateHsmConfigurationMessage":{ + "type":"structure", + "required":[ + "HsmConfigurationIdentifier", + "Description", + "HsmIpAddress", + "HsmPartitionName", + "HsmPartitionPassword", + "HsmServerPublicCertificate" + ], + "members":{ + "HsmConfigurationIdentifier":{"shape":"String"}, + "Description":{"shape":"String"}, + "HsmIpAddress":{"shape":"String"}, + "HsmPartitionName":{"shape":"String"}, + "HsmPartitionPassword":{"shape":"String"}, + "HsmServerPublicCertificate":{"shape":"String"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateTagsMessage":{ + "type":"structure", + "required":[ + "ResourceName", + "Tags" + ], + "members":{ + "ResourceName":{"shape":"String"}, + "Tags":{"shape":"TagList"} + } + }, + "DefaultClusterParameters":{ + "type":"structure", + "members":{ + "ParameterGroupFamily":{"shape":"String"}, + "Marker":{"shape":"String"}, + "Parameters":{"shape":"ParametersList"} + }, + "wrapper":true + }, + "DeleteClusterMessage":{ + "type":"structure", + "required":["ClusterIdentifier"], + "members":{ + "ClusterIdentifier":{"shape":"String"}, + "SkipFinalClusterSnapshot":{"shape":"Boolean"}, + "FinalClusterSnapshotIdentifier":{"shape":"String"} + } + }, + "DeleteClusterParameterGroupMessage":{ + "type":"structure", + "required":["ParameterGroupName"], + "members":{ + "ParameterGroupName":{"shape":"String"} + } + }, + "DeleteClusterSecurityGroupMessage":{ + "type":"structure", + "required":["ClusterSecurityGroupName"], + "members":{ + "ClusterSecurityGroupName":{"shape":"String"} + } + }, + "DeleteClusterSnapshotMessage":{ + "type":"structure", + "required":["SnapshotIdentifier"], + "members":{ + "SnapshotIdentifier":{"shape":"String"}, + "SnapshotClusterIdentifier":{"shape":"String"} + } + }, + "DeleteClusterSubnetGroupMessage":{ + "type":"structure", + "required":["ClusterSubnetGroupName"], + "members":{ + "ClusterSubnetGroupName":{"shape":"String"} + } + }, + "DeleteEventSubscriptionMessage":{ + "type":"structure", + "required":["SubscriptionName"], + "members":{ + "SubscriptionName":{"shape":"String"} + } + }, + "DeleteHsmClientCertificateMessage":{ + "type":"structure", + "required":["HsmClientCertificateIdentifier"], + "members":{ + "HsmClientCertificateIdentifier":{"shape":"String"} + } + }, + "DeleteHsmConfigurationMessage":{ + "type":"structure", + "required":["HsmConfigurationIdentifier"], + "members":{ + "HsmConfigurationIdentifier":{"shape":"String"} + } + }, + "DeleteTagsMessage":{ + "type":"structure", + "required":[ + "ResourceName", + "TagKeys" + ], + "members":{ + "ResourceName":{"shape":"String"}, + "TagKeys":{"shape":"TagKeyList"} + } + }, + "DescribeClusterParameterGroupsMessage":{ + "type":"structure", + "members":{ + "ParameterGroupName":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"}, + "TagKeys":{"shape":"TagKeyList"}, + "TagValues":{"shape":"TagValueList"} + } + }, + "DescribeClusterParametersMessage":{ + "type":"structure", + "required":["ParameterGroupName"], + "members":{ + "ParameterGroupName":{"shape":"String"}, + "Source":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeClusterSecurityGroupsMessage":{ + "type":"structure", + "members":{ + "ClusterSecurityGroupName":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"}, + "TagKeys":{"shape":"TagKeyList"}, + "TagValues":{"shape":"TagValueList"} + } + }, + "DescribeClusterSnapshotsMessage":{ + "type":"structure", + "members":{ + "ClusterIdentifier":{"shape":"String"}, + "SnapshotIdentifier":{"shape":"String"}, + "SnapshotType":{"shape":"String"}, + "StartTime":{"shape":"TStamp"}, + "EndTime":{"shape":"TStamp"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"}, + "OwnerAccount":{"shape":"String"}, + "TagKeys":{"shape":"TagKeyList"}, + "TagValues":{"shape":"TagValueList"} + } + }, + "DescribeClusterSubnetGroupsMessage":{ + "type":"structure", + "members":{ + "ClusterSubnetGroupName":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"}, + "TagKeys":{"shape":"TagKeyList"}, + "TagValues":{"shape":"TagValueList"} + } + }, + "DescribeClusterVersionsMessage":{ + "type":"structure", + "members":{ + "ClusterVersion":{"shape":"String"}, + "ClusterParameterGroupFamily":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeClustersMessage":{ + "type":"structure", + "members":{ + "ClusterIdentifier":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"}, + "TagKeys":{"shape":"TagKeyList"}, + "TagValues":{"shape":"TagValueList"} + } + }, + "DescribeDefaultClusterParametersMessage":{ + "type":"structure", + "required":["ParameterGroupFamily"], + "members":{ + "ParameterGroupFamily":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeEventCategoriesMessage":{ + "type":"structure", + "members":{ + "SourceType":{"shape":"String"} + } + }, + "DescribeEventSubscriptionsMessage":{ + "type":"structure", + "members":{ + "SubscriptionName":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeEventsMessage":{ + "type":"structure", + "members":{ + "SourceIdentifier":{"shape":"String"}, + "SourceType":{"shape":"SourceType"}, + "StartTime":{"shape":"TStamp"}, + "EndTime":{"shape":"TStamp"}, + "Duration":{"shape":"IntegerOptional"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeHsmClientCertificatesMessage":{ + "type":"structure", + "members":{ + "HsmClientCertificateIdentifier":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"}, + "TagKeys":{"shape":"TagKeyList"}, + "TagValues":{"shape":"TagValueList"} + } + }, + "DescribeHsmConfigurationsMessage":{ + "type":"structure", + "members":{ + "HsmConfigurationIdentifier":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"}, + "TagKeys":{"shape":"TagKeyList"}, + "TagValues":{"shape":"TagValueList"} + } + }, + "DescribeLoggingStatusMessage":{ + "type":"structure", + "required":["ClusterIdentifier"], + "members":{ + "ClusterIdentifier":{"shape":"String"} + } + }, + "DescribeOrderableClusterOptionsMessage":{ + "type":"structure", + "members":{ + "ClusterVersion":{"shape":"String"}, + "NodeType":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeReservedNodeOfferingsMessage":{ + "type":"structure", + "members":{ + "ReservedNodeOfferingId":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeReservedNodesMessage":{ + "type":"structure", + "members":{ + "ReservedNodeId":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"} + } + }, + "DescribeResizeMessage":{ + "type":"structure", + "required":["ClusterIdentifier"], + "members":{ + "ClusterIdentifier":{"shape":"String"} + } + }, + "DescribeTagsMessage":{ + "type":"structure", + "members":{ + "ResourceName":{"shape":"String"}, + "ResourceType":{"shape":"String"}, + "MaxRecords":{"shape":"IntegerOptional"}, + "Marker":{"shape":"String"}, + "TagKeys":{"shape":"TagKeyList"}, + "TagValues":{"shape":"TagValueList"} + } + }, + "DisableLoggingMessage":{ + "type":"structure", + "required":["ClusterIdentifier"], + "members":{ + "ClusterIdentifier":{"shape":"String"} + } + }, + "DisableSnapshotCopyMessage":{ + "type":"structure", + "required":["ClusterIdentifier"], + "members":{ + "ClusterIdentifier":{"shape":"String"} + } + }, + "Double":{"type":"double"}, + "DoubleOptional":{"type":"double"}, + "EC2SecurityGroup":{ + "type":"structure", + "members":{ + "Status":{"shape":"String"}, + "EC2SecurityGroupName":{"shape":"String"}, + "EC2SecurityGroupOwnerId":{"shape":"String"}, + "Tags":{"shape":"TagList"} + } + }, + "EC2SecurityGroupList":{ + "type":"list", + "member":{ + "shape":"EC2SecurityGroup", + "locationName":"EC2SecurityGroup" + } + }, + "ElasticIpStatus":{ + "type":"structure", + "members":{ + "ElasticIp":{"shape":"String"}, + "Status":{"shape":"String"} + } + }, + "EnableLoggingMessage":{ + "type":"structure", + "required":[ + "ClusterIdentifier", + "BucketName" + ], + "members":{ + "ClusterIdentifier":{"shape":"String"}, + "BucketName":{"shape":"String"}, + "S3KeyPrefix":{"shape":"String"} + } + }, + "EnableSnapshotCopyMessage":{ + "type":"structure", + "required":[ + "ClusterIdentifier", + "DestinationRegion" + ], + "members":{ + "ClusterIdentifier":{"shape":"String"}, + "DestinationRegion":{"shape":"String"}, + "RetentionPeriod":{"shape":"IntegerOptional"} + } + }, + "Endpoint":{ + "type":"structure", + "members":{ + "Address":{"shape":"String"}, + "Port":{"shape":"Integer"} + } + }, + "Event":{ + "type":"structure", + "members":{ + "SourceIdentifier":{"shape":"String"}, + "SourceType":{"shape":"SourceType"}, + "Message":{"shape":"String"}, + "EventCategories":{"shape":"EventCategoriesList"}, + "Severity":{"shape":"String"}, + "Date":{"shape":"TStamp"}, + "EventId":{"shape":"String"} + } + }, + "EventCategoriesList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"EventCategory" + } + }, + "EventCategoriesMap":{ + "type":"structure", + "members":{ + "SourceType":{"shape":"String"}, + "Events":{"shape":"EventInfoMapList"} + }, + "wrapper":true + }, + "EventCategoriesMapList":{ + "type":"list", + "member":{ + "shape":"EventCategoriesMap", + "locationName":"EventCategoriesMap" + } + }, + "EventCategoriesMessage":{ + "type":"structure", + "members":{ + "EventCategoriesMapList":{"shape":"EventCategoriesMapList"} + } + }, + "EventInfoMap":{ + "type":"structure", + "members":{ + "EventId":{"shape":"String"}, + "EventCategories":{"shape":"EventCategoriesList"}, + "EventDescription":{"shape":"String"}, + "Severity":{"shape":"String"} + }, + "wrapper":true + }, + "EventInfoMapList":{ + "type":"list", + "member":{ + "shape":"EventInfoMap", + "locationName":"EventInfoMap" + } + }, + "EventList":{ + "type":"list", + "member":{ + "shape":"Event", + "locationName":"Event" + } + }, + "EventSubscription":{ + "type":"structure", + "members":{ + "CustomerAwsId":{"shape":"String"}, + "CustSubscriptionId":{"shape":"String"}, + "SnsTopicArn":{"shape":"String"}, + "Status":{"shape":"String"}, + "SubscriptionCreationTime":{"shape":"TStamp"}, + "SourceType":{"shape":"String"}, + "SourceIdsList":{"shape":"SourceIdsList"}, + "EventCategoriesList":{"shape":"EventCategoriesList"}, + "Severity":{"shape":"String"}, + "Enabled":{"shape":"Boolean"}, + "Tags":{"shape":"TagList"} + }, + "wrapper":true + }, + "EventSubscriptionQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"EventSubscriptionQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "EventSubscriptionsList":{ + "type":"list", + "member":{ + "shape":"EventSubscription", + "locationName":"EventSubscription" + } + }, + "EventSubscriptionsMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "EventSubscriptionsList":{"shape":"EventSubscriptionsList"} + } + }, + "EventsMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "Events":{"shape":"EventList"} + } + }, + "HsmClientCertificate":{ + "type":"structure", + "members":{ + "HsmClientCertificateIdentifier":{"shape":"String"}, + "HsmClientCertificatePublicKey":{"shape":"String"}, + "Tags":{"shape":"TagList"} + }, + "wrapper":true + }, + "HsmClientCertificateAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"HsmClientCertificateAlreadyExistsFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "HsmClientCertificateList":{ + "type":"list", + "member":{ + "shape":"HsmClientCertificate", + "locationName":"HsmClientCertificate" + } + }, + "HsmClientCertificateMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "HsmClientCertificates":{"shape":"HsmClientCertificateList"} + } + }, + "HsmClientCertificateNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"HsmClientCertificateNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "HsmClientCertificateQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"HsmClientCertificateQuotaExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "HsmConfiguration":{ + "type":"structure", + "members":{ + "HsmConfigurationIdentifier":{"shape":"String"}, + "Description":{"shape":"String"}, + "HsmIpAddress":{"shape":"String"}, + "HsmPartitionName":{"shape":"String"}, + "Tags":{"shape":"TagList"} + }, + "wrapper":true + }, + "HsmConfigurationAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"HsmConfigurationAlreadyExistsFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "HsmConfigurationList":{ + "type":"list", + "member":{ + "shape":"HsmConfiguration", + "locationName":"HsmConfiguration" + } + }, + "HsmConfigurationMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "HsmConfigurations":{"shape":"HsmConfigurationList"} + } + }, + "HsmConfigurationNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"HsmConfigurationNotFoundFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "HsmConfigurationQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"HsmConfigurationQuotaExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "HsmStatus":{ + "type":"structure", + "members":{ + "HsmClientCertificateIdentifier":{"shape":"String"}, + "HsmConfigurationIdentifier":{"shape":"String"}, + "Status":{"shape":"String"} + } + }, + "IPRange":{ + "type":"structure", + "members":{ + "Status":{"shape":"String"}, + "CIDRIP":{"shape":"String"}, + "Tags":{"shape":"TagList"} + } + }, + "IPRangeList":{ + "type":"list", + "member":{ + "shape":"IPRange", + "locationName":"IPRange" + } + }, + "ImportTablesCompleted":{ + "type":"list", + "member":{"shape":"String"} + }, + "ImportTablesInProgress":{ + "type":"list", + "member":{"shape":"String"} + }, + "ImportTablesNotStarted":{ + "type":"list", + "member":{"shape":"String"} + }, + "IncompatibleOrderableOptions":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"IncompatibleOrderableOptions", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InsufficientClusterCapacityFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InsufficientClusterCapacity", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InsufficientS3BucketPolicyFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InsufficientS3BucketPolicyFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "Integer":{"type":"integer"}, + "IntegerOptional":{"type":"integer"}, + "InvalidClusterParameterGroupStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidClusterParameterGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidClusterSecurityGroupStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidClusterSecurityGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidClusterSnapshotStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidClusterSnapshotState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidClusterStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidClusterState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidClusterSubnetGroupStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidClusterSubnetGroupStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidClusterSubnetStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidClusterSubnetStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidElasticIpFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidElasticIpFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidHsmClientCertificateStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidHsmClientCertificateStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidHsmConfigurationStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidHsmConfigurationStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidRestoreFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidRestore", + "httpStatusCode":406, + "senderFault":true + }, + "exception":true + }, + "InvalidS3BucketNameFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidS3BucketNameFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidS3KeyPrefixFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidS3KeyPrefixFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidSubnet":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidSubnet", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidSubscriptionStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidSubscriptionStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidTagFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidTagFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidVPCNetworkStateFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidVPCNetworkStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "LoggingStatus":{ + "type":"structure", + "members":{ + "LoggingEnabled":{"shape":"Boolean"}, + "BucketName":{"shape":"String"}, + "S3KeyPrefix":{"shape":"String"}, + "LastSuccessfulDeliveryTime":{"shape":"TStamp"}, + "LastFailureTime":{"shape":"TStamp"}, + "LastFailureMessage":{"shape":"String"} + } + }, + "Long":{"type":"long"}, + "LongOptional":{"type":"long"}, + "ModifyClusterMessage":{ + "type":"structure", + "required":["ClusterIdentifier"], + "members":{ + "ClusterIdentifier":{"shape":"String"}, + "ClusterType":{"shape":"String"}, + "NodeType":{"shape":"String"}, + "NumberOfNodes":{"shape":"IntegerOptional"}, + "ClusterSecurityGroups":{"shape":"ClusterSecurityGroupNameList"}, + "VpcSecurityGroupIds":{"shape":"VpcSecurityGroupIdList"}, + "MasterUserPassword":{"shape":"String"}, + "ClusterParameterGroupName":{"shape":"String"}, + "AutomatedSnapshotRetentionPeriod":{"shape":"IntegerOptional"}, + "PreferredMaintenanceWindow":{"shape":"String"}, + "ClusterVersion":{"shape":"String"}, + "AllowVersionUpgrade":{"shape":"BooleanOptional"}, + "HsmClientCertificateIdentifier":{"shape":"String"}, + "HsmConfigurationIdentifier":{"shape":"String"}, + "NewClusterIdentifier":{"shape":"String"} + } + }, + "ModifyClusterParameterGroupMessage":{ + "type":"structure", + "required":[ + "ParameterGroupName", + "Parameters" + ], + "members":{ + "ParameterGroupName":{"shape":"String"}, + "Parameters":{"shape":"ParametersList"} + } + }, + "ModifyClusterSubnetGroupMessage":{ + "type":"structure", + "required":[ + "ClusterSubnetGroupName", + "SubnetIds" + ], + "members":{ + "ClusterSubnetGroupName":{"shape":"String"}, + "Description":{"shape":"String"}, + "SubnetIds":{"shape":"SubnetIdentifierList"} + } + }, + "ModifyEventSubscriptionMessage":{ + "type":"structure", + "required":["SubscriptionName"], + "members":{ + "SubscriptionName":{"shape":"String"}, + "SnsTopicArn":{"shape":"String"}, + "SourceType":{"shape":"String"}, + "SourceIds":{"shape":"SourceIdsList"}, + "EventCategories":{"shape":"EventCategoriesList"}, + "Severity":{"shape":"String"}, + "Enabled":{"shape":"BooleanOptional"} + } + }, + "ModifySnapshotCopyRetentionPeriodMessage":{ + "type":"structure", + "required":[ + "ClusterIdentifier", + "RetentionPeriod" + ], + "members":{ + "ClusterIdentifier":{"shape":"String"}, + "RetentionPeriod":{"shape":"Integer"} + } + }, + "NumberOfNodesPerClusterLimitExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"NumberOfNodesPerClusterLimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "NumberOfNodesQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"NumberOfNodesQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "OrderableClusterOption":{ + "type":"structure", + "members":{ + "ClusterVersion":{"shape":"String"}, + "ClusterType":{"shape":"String"}, + "NodeType":{"shape":"String"}, + "AvailabilityZones":{"shape":"AvailabilityZoneList"} + }, + "wrapper":true + }, + "OrderableClusterOptionsList":{ + "type":"list", + "member":{ + "shape":"OrderableClusterOption", + "locationName":"OrderableClusterOption" + } + }, + "OrderableClusterOptionsMessage":{ + "type":"structure", + "members":{ + "OrderableClusterOptions":{"shape":"OrderableClusterOptionsList"}, + "Marker":{"shape":"String"} + } + }, + "Parameter":{ + "type":"structure", + "members":{ + "ParameterName":{"shape":"String"}, + "ParameterValue":{"shape":"String"}, + "Description":{"shape":"String"}, + "Source":{"shape":"String"}, + "DataType":{"shape":"String"}, + "AllowedValues":{"shape":"String"}, + "IsModifiable":{"shape":"Boolean"}, + "MinimumEngineVersion":{"shape":"String"} + } + }, + "ParameterGroupList":{ + "type":"list", + "member":{ + "shape":"ClusterParameterGroup", + "locationName":"ClusterParameterGroup" + } + }, + "ParametersList":{ + "type":"list", + "member":{ + "shape":"Parameter", + "locationName":"Parameter" + } + }, + "PendingModifiedValues":{ + "type":"structure", + "members":{ + "MasterUserPassword":{"shape":"String"}, + "NodeType":{"shape":"String"}, + "NumberOfNodes":{"shape":"IntegerOptional"}, + "ClusterType":{"shape":"String"}, + "ClusterVersion":{"shape":"String"}, + "AutomatedSnapshotRetentionPeriod":{"shape":"IntegerOptional"}, + "ClusterIdentifier":{"shape":"String"} + } + }, + "PurchaseReservedNodeOfferingMessage":{ + "type":"structure", + "required":["ReservedNodeOfferingId"], + "members":{ + "ReservedNodeOfferingId":{"shape":"String"}, + "NodeCount":{"shape":"IntegerOptional"} + } + }, + "RebootClusterMessage":{ + "type":"structure", + "required":["ClusterIdentifier"], + "members":{ + "ClusterIdentifier":{"shape":"String"} + } + }, + "RecurringCharge":{ + "type":"structure", + "members":{ + "RecurringChargeAmount":{"shape":"Double"}, + "RecurringChargeFrequency":{"shape":"String"} + }, + "wrapper":true + }, + "RecurringChargeList":{ + "type":"list", + "member":{ + "shape":"RecurringCharge", + "locationName":"RecurringCharge" + } + }, + "ReservedNode":{ + "type":"structure", + "members":{ + "ReservedNodeId":{"shape":"String"}, + "ReservedNodeOfferingId":{"shape":"String"}, + "NodeType":{"shape":"String"}, + "StartTime":{"shape":"TStamp"}, + "Duration":{"shape":"Integer"}, + "FixedPrice":{"shape":"Double"}, + "UsagePrice":{"shape":"Double"}, + "CurrencyCode":{"shape":"String"}, + "NodeCount":{"shape":"Integer"}, + "State":{"shape":"String"}, + "OfferingType":{"shape":"String"}, + "RecurringCharges":{"shape":"RecurringChargeList"} + }, + "wrapper":true + }, + "ReservedNodeAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ReservedNodeAlreadyExists", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ReservedNodeList":{ + "type":"list", + "member":{ + "shape":"ReservedNode", + "locationName":"ReservedNode" + } + }, + "ReservedNodeNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ReservedNodeNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ReservedNodeOffering":{ + "type":"structure", + "members":{ + "ReservedNodeOfferingId":{"shape":"String"}, + "NodeType":{"shape":"String"}, + "Duration":{"shape":"Integer"}, + "FixedPrice":{"shape":"Double"}, + "UsagePrice":{"shape":"Double"}, + "CurrencyCode":{"shape":"String"}, + "OfferingType":{"shape":"String"}, + "RecurringCharges":{"shape":"RecurringChargeList"} + }, + "wrapper":true + }, + "ReservedNodeOfferingList":{ + "type":"list", + "member":{ + "shape":"ReservedNodeOffering", + "locationName":"ReservedNodeOffering" + } + }, + "ReservedNodeOfferingNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ReservedNodeOfferingNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ReservedNodeOfferingsMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "ReservedNodeOfferings":{"shape":"ReservedNodeOfferingList"} + } + }, + "ReservedNodeQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ReservedNodeQuotaExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ReservedNodesMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "ReservedNodes":{"shape":"ReservedNodeList"} + } + }, + "ResetClusterParameterGroupMessage":{ + "type":"structure", + "required":["ParameterGroupName"], + "members":{ + "ParameterGroupName":{"shape":"String"}, + "ResetAllParameters":{"shape":"Boolean"}, + "Parameters":{"shape":"ParametersList"} + } + }, + "ResizeNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ResizeNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ResizeProgressMessage":{ + "type":"structure", + "members":{ + "TargetNodeType":{"shape":"String"}, + "TargetNumberOfNodes":{"shape":"IntegerOptional"}, + "TargetClusterType":{"shape":"String"}, + "Status":{"shape":"String"}, + "ImportTablesCompleted":{"shape":"ImportTablesCompleted"}, + "ImportTablesInProgress":{"shape":"ImportTablesInProgress"}, + "ImportTablesNotStarted":{"shape":"ImportTablesNotStarted"}, + "AvgResizeRateInMegaBytesPerSecond":{"shape":"DoubleOptional"}, + "TotalResizeDataInMegaBytes":{"shape":"LongOptional"}, + "ProgressInMegaBytes":{"shape":"LongOptional"}, + "ElapsedTimeInSeconds":{"shape":"LongOptional"}, + "EstimatedTimeToCompletionInSeconds":{"shape":"LongOptional"} + } + }, + "ResourceNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ResourceNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "RestoreFromClusterSnapshotMessage":{ + "type":"structure", + "required":[ + "ClusterIdentifier", + "SnapshotIdentifier" + ], + "members":{ + "ClusterIdentifier":{"shape":"String"}, + "SnapshotIdentifier":{"shape":"String"}, + "SnapshotClusterIdentifier":{"shape":"String"}, + "Port":{"shape":"IntegerOptional"}, + "AvailabilityZone":{"shape":"String"}, + "AllowVersionUpgrade":{"shape":"BooleanOptional"}, + "ClusterSubnetGroupName":{"shape":"String"}, + "PubliclyAccessible":{"shape":"BooleanOptional"}, + "OwnerAccount":{"shape":"String"}, + "HsmClientCertificateIdentifier":{"shape":"String"}, + "HsmConfigurationIdentifier":{"shape":"String"}, + "ElasticIp":{"shape":"String"}, + "ClusterParameterGroupName":{"shape":"String"}, + "ClusterSecurityGroups":{"shape":"ClusterSecurityGroupNameList"}, + "VpcSecurityGroupIds":{"shape":"VpcSecurityGroupIdList"}, + "PreferredMaintenanceWindow":{"shape":"String"}, + "AutomatedSnapshotRetentionPeriod":{"shape":"IntegerOptional"}, + "KmsKeyId":{"shape":"String"} + } + }, + "RestoreStatus":{ + "type":"structure", + "members":{ + "Status":{"shape":"String"}, + "CurrentRestoreRateInMegaBytesPerSecond":{"shape":"Double"}, + "SnapshotSizeInMegaBytes":{"shape":"Long"}, + "ProgressInMegaBytes":{"shape":"Long"}, + "ElapsedTimeInSeconds":{"shape":"Long"}, + "EstimatedTimeToCompletionInSeconds":{"shape":"Long"} + } + }, + "RevokeClusterSecurityGroupIngressMessage":{ + "type":"structure", + "required":["ClusterSecurityGroupName"], + "members":{ + "ClusterSecurityGroupName":{"shape":"String"}, + "CIDRIP":{"shape":"String"}, + "EC2SecurityGroupName":{"shape":"String"}, + "EC2SecurityGroupOwnerId":{"shape":"String"} + } + }, + "RevokeSnapshotAccessMessage":{ + "type":"structure", + "required":[ + "SnapshotIdentifier", + "AccountWithRestoreAccess" + ], + "members":{ + "SnapshotIdentifier":{"shape":"String"}, + "SnapshotClusterIdentifier":{"shape":"String"}, + "AccountWithRestoreAccess":{"shape":"String"} + } + }, + "RotateEncryptionKeyMessage":{ + "type":"structure", + "required":["ClusterIdentifier"], + "members":{ + "ClusterIdentifier":{"shape":"String"} + } + }, + "SNSInvalidTopicFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SNSInvalidTopic", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "SNSNoAuthorizationFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SNSNoAuthorization", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "SNSTopicArnNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SNSTopicArnNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "Snapshot":{ + "type":"structure", + "members":{ + "SnapshotIdentifier":{"shape":"String"}, + "ClusterIdentifier":{"shape":"String"}, + "SnapshotCreateTime":{"shape":"TStamp"}, + "Status":{"shape":"String"}, + "Port":{"shape":"Integer"}, + "AvailabilityZone":{"shape":"String"}, + "ClusterCreateTime":{"shape":"TStamp"}, + "MasterUsername":{"shape":"String"}, + "ClusterVersion":{"shape":"String"}, + "SnapshotType":{"shape":"String"}, + "NodeType":{"shape":"String"}, + "NumberOfNodes":{"shape":"Integer"}, + "DBName":{"shape":"String"}, + "VpcId":{"shape":"String"}, + "Encrypted":{"shape":"Boolean"}, + "KmsKeyId":{"shape":"String"}, + "EncryptedWithHSM":{"shape":"Boolean"}, + "AccountsWithRestoreAccess":{"shape":"AccountsWithRestoreAccessList"}, + "OwnerAccount":{"shape":"String"}, + "TotalBackupSizeInMegaBytes":{"shape":"Double"}, + "ActualIncrementalBackupSizeInMegaBytes":{"shape":"Double"}, + "BackupProgressInMegaBytes":{"shape":"Double"}, + "CurrentBackupRateInMegaBytesPerSecond":{"shape":"Double"}, + "EstimatedSecondsToCompletion":{"shape":"Long"}, + "ElapsedTimeInSeconds":{"shape":"Long"}, + "SourceRegion":{"shape":"String"}, + "Tags":{"shape":"TagList"} + }, + "wrapper":true + }, + "SnapshotCopyAlreadyDisabledFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SnapshotCopyAlreadyDisabledFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "SnapshotCopyAlreadyEnabledFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SnapshotCopyAlreadyEnabledFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "SnapshotCopyDisabledFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SnapshotCopyDisabledFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "SnapshotList":{ + "type":"list", + "member":{ + "shape":"Snapshot", + "locationName":"Snapshot" + } + }, + "SnapshotMessage":{ + "type":"structure", + "members":{ + "Marker":{"shape":"String"}, + "Snapshots":{"shape":"SnapshotList"} + } + }, + "SourceIdsList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"SourceId" + } + }, + "SourceNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SourceNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "SourceType":{ + "type":"string", + "enum":[ + "cluster", + "cluster-parameter-group", + "cluster-security-group", + "cluster-snapshot" + ] + }, + "String":{"type":"string"}, + "Subnet":{ + "type":"structure", + "members":{ + "SubnetIdentifier":{"shape":"String"}, + "SubnetAvailabilityZone":{"shape":"AvailabilityZone"}, + "SubnetStatus":{"shape":"String"} + } + }, + "SubnetAlreadyInUse":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SubnetAlreadyInUse", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "SubnetIdentifierList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"SubnetIdentifier" + } + }, + "SubnetList":{ + "type":"list", + "member":{ + "shape":"Subnet", + "locationName":"Subnet" + } + }, + "SubscriptionAlreadyExistFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SubscriptionAlreadyExist", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "SubscriptionCategoryNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SubscriptionCategoryNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "SubscriptionEventIdNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SubscriptionEventIdNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "SubscriptionNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SubscriptionNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "SubscriptionSeverityNotFoundFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"SubscriptionSeverityNotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "TStamp":{"type":"timestamp"}, + "Tag":{ + "type":"structure", + "members":{ + "Key":{"shape":"String"}, + "Value":{"shape":"String"} + } + }, + "TagKeyList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"TagKey" + } + }, + "TagLimitExceededFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"TagLimitExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "TagList":{ + "type":"list", + "member":{ + "shape":"Tag", + "locationName":"Tag" + } + }, + "TagValueList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"TagValue" + } + }, + "TaggedResource":{ + "type":"structure", + "members":{ + "Tag":{"shape":"Tag"}, + "ResourceName":{"shape":"String"}, + "ResourceType":{"shape":"String"} + } + }, + "TaggedResourceList":{ + "type":"list", + "member":{ + "shape":"TaggedResource", + "locationName":"TaggedResource" + } + }, + "TaggedResourceListMessage":{ + "type":"structure", + "members":{ + "TaggedResources":{"shape":"TaggedResourceList"}, + "Marker":{"shape":"String"} + } + }, + "UnauthorizedOperation":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"UnauthorizedOperation", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "UnknownSnapshotCopyRegionFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"UnknownSnapshotCopyRegionFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "UnsupportedOptionFault":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"UnsupportedOptionFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "VpcSecurityGroupIdList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"VpcSecurityGroupId" + } + }, + "VpcSecurityGroupMembership":{ + "type":"structure", + "members":{ + "VpcSecurityGroupId":{"shape":"String"}, + "Status":{"shape":"String"} + } + }, + "VpcSecurityGroupMembershipList":{ + "type":"list", + "member":{ + "shape":"VpcSecurityGroupMembership", + "locationName":"VpcSecurityGroup" + } + }, + "AuthorizeClusterSecurityGroupIngressResult":{ + "type":"structure", + "members":{ + "ClusterSecurityGroup":{"shape":"ClusterSecurityGroup"} + } + }, + "AuthorizeSnapshotAccessResult":{ + "type":"structure", + "members":{ + "Snapshot":{"shape":"Snapshot"} + } + }, + "CopyClusterSnapshotResult":{ + "type":"structure", + "members":{ + "Snapshot":{"shape":"Snapshot"} + } + }, + "CreateClusterResult":{ + "type":"structure", + "members":{ + "Cluster":{"shape":"Cluster"} + } + }, + "CreateClusterParameterGroupResult":{ + "type":"structure", + "members":{ + "ClusterParameterGroup":{"shape":"ClusterParameterGroup"} + } + }, + "CreateClusterSecurityGroupResult":{ + "type":"structure", + "members":{ + "ClusterSecurityGroup":{"shape":"ClusterSecurityGroup"} + } + }, + "CreateClusterSnapshotResult":{ + "type":"structure", + "members":{ + "Snapshot":{"shape":"Snapshot"} + } + }, + "CreateClusterSubnetGroupResult":{ + "type":"structure", + "members":{ + "ClusterSubnetGroup":{"shape":"ClusterSubnetGroup"} + } + }, + "CreateEventSubscriptionResult":{ + "type":"structure", + "members":{ + "EventSubscription":{"shape":"EventSubscription"} + } + }, + "CreateHsmClientCertificateResult":{ + "type":"structure", + "members":{ + "HsmClientCertificate":{"shape":"HsmClientCertificate"} + } + }, + "CreateHsmConfigurationResult":{ + "type":"structure", + "members":{ + "HsmConfiguration":{"shape":"HsmConfiguration"} + } + }, + "DeleteClusterResult":{ + "type":"structure", + "members":{ + "Cluster":{"shape":"Cluster"} + } + }, + "DeleteClusterSnapshotResult":{ + "type":"structure", + "members":{ + "Snapshot":{"shape":"Snapshot"} + } + }, + "DescribeDefaultClusterParametersResult":{ + "type":"structure", + "members":{ + "DefaultClusterParameters":{"shape":"DefaultClusterParameters"} + } + }, + "DisableSnapshotCopyResult":{ + "type":"structure", + "members":{ + "Cluster":{"shape":"Cluster"} + } + }, + "EnableSnapshotCopyResult":{ + "type":"structure", + "members":{ + "Cluster":{"shape":"Cluster"} + } + }, + "ModifyClusterResult":{ + "type":"structure", + "members":{ + "Cluster":{"shape":"Cluster"} + } + }, + "ModifyClusterSubnetGroupResult":{ + "type":"structure", + "members":{ + "ClusterSubnetGroup":{"shape":"ClusterSubnetGroup"} + } + }, + "ModifyEventSubscriptionResult":{ + "type":"structure", + "members":{ + "EventSubscription":{"shape":"EventSubscription"} + } + }, + "ModifySnapshotCopyRetentionPeriodResult":{ + "type":"structure", + "members":{ + "Cluster":{"shape":"Cluster"} + } + }, + "PurchaseReservedNodeOfferingResult":{ + "type":"structure", + "members":{ + "ReservedNode":{"shape":"ReservedNode"} + } + }, + "RebootClusterResult":{ + "type":"structure", + "members":{ + "Cluster":{"shape":"Cluster"} + } + }, + "RestoreFromClusterSnapshotResult":{ + "type":"structure", + "members":{ + "Cluster":{"shape":"Cluster"} + } + }, + "RevokeClusterSecurityGroupIngressResult":{ + "type":"structure", + "members":{ + "ClusterSecurityGroup":{"shape":"ClusterSecurityGroup"} + } + }, + "RevokeSnapshotAccessResult":{ + "type":"structure", + "members":{ + "Snapshot":{"shape":"Snapshot"} + } + }, + "RotateEncryptionKeyResult":{ + "type":"structure", + "members":{ + "Cluster":{"shape":"Cluster"} + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/redshift/2012-12-01/docs-2.json b/lib/aws-sdk/Aws/data/redshift/2012-12-01/docs-2.json new file mode 100644 index 0000000..50728c1 --- /dev/null +++ b/lib/aws-sdk/Aws/data/redshift/2012-12-01/docs-2.json @@ -0,0 +1,1890 @@ +{ + "operations": { + "AuthorizeClusterSecurityGroupIngress": "

Adds an inbound (ingress) rule to an Amazon Redshift security group. Depending on whether the application accessing your cluster is running on the Internet or an EC2 instance, you can authorize inbound access to either a Classless Interdomain Routing (CIDR) IP address range or an EC2 security group. You can add as many as 20 ingress rules to an Amazon Redshift security group.

The EC2 security group must be defined in the AWS region where the cluster resides.

For an overview of CIDR blocks, see the Wikipedia article on Classless Inter-Domain Routing.

You must also associate the security group with a cluster so that clients running on these IP addresses or the EC2 instance are authorized to connect to the cluster. For information about managing security groups, go to Working with Security Groups in the Amazon Redshift Cluster Management Guide.

", + "AuthorizeSnapshotAccess": "

Authorizes the specified AWS customer account to restore the specified snapshot.

For more information about working with snapshots, go to Amazon Redshift Snapshots in the Amazon Redshift Cluster Management Guide.

", + "CopyClusterSnapshot": "

Copies the specified automated cluster snapshot to a new manual cluster snapshot. The source must be an automated snapshot and it must be in the available state.

When you delete a cluster, Amazon Redshift deletes any automated snapshots of the cluster. Also, when the retention period of the snapshot expires, Amazon Redshift automatically deletes it. If you want to keep an automated snapshot for a longer period, you can make a manual copy of the snapshot. Manual snapshots are retained until you delete them.

For more information about working with snapshots, go to Amazon Redshift Snapshots in the Amazon Redshift Cluster Management Guide.

", + "CreateCluster": "

Creates a new cluster. To create the cluster in virtual private cloud (VPC), you must provide cluster subnet group name. If you don't provide a cluster subnet group name or the cluster security group parameter, Amazon Redshift creates a non-VPC cluster, it associates the default cluster security group with the cluster. For more information about managing clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster Management Guide .

", + "CreateClusterParameterGroup": "

Creates an Amazon Redshift parameter group.

Creating parameter groups is independent of creating clusters. You can associate a cluster with a parameter group when you create the cluster. You can also associate an existing cluster with a parameter group after the cluster is created by using ModifyCluster.

Parameters in the parameter group define specific behavior that applies to the databases you create on the cluster. For more information about managing parameter groups, go to Amazon Redshift Parameter Groups in the Amazon Redshift Cluster Management Guide.

", + "CreateClusterSecurityGroup": "

Creates a new Amazon Redshift security group. You use security groups to control access to non-VPC clusters.

For information about managing security groups, go to Amazon Redshift Cluster Security Groups in the Amazon Redshift Cluster Management Guide.

", + "CreateClusterSnapshot": "

Creates a manual snapshot of the specified cluster. The cluster must be in the available state.

For more information about working with snapshots, go to Amazon Redshift Snapshots in the Amazon Redshift Cluster Management Guide.

", + "CreateClusterSubnetGroup": "

Creates a new Amazon Redshift subnet group. You must provide a list of one or more subnets in your existing Amazon Virtual Private Cloud (Amazon VPC) when creating Amazon Redshift subnet group.

For information about subnet groups, go to Amazon Redshift Cluster Subnet Groups in the Amazon Redshift Cluster Management Guide.

", + "CreateEventSubscription": "

Creates an Amazon Redshift event notification subscription. This action requires an ARN (Amazon Resource Name) of an Amazon SNS topic created by either the Amazon Redshift console, the Amazon SNS console, or the Amazon SNS API. To obtain an ARN with Amazon SNS, you must create a topic in Amazon SNS and subscribe to the topic. The ARN is displayed in the SNS console.

You can specify the source type, and lists of Amazon Redshift source IDs, event categories, and event severities. Notifications will be sent for all events you want that match those criteria. For example, you can specify source type = cluster, source ID = my-cluster-1 and mycluster2, event categories = Availability, Backup, and severity = ERROR. The subscription will only send notifications for those ERROR events in the Availability and Backup categories for the specified clusters.

If you specify both the source type and source IDs, such as source type = cluster and source identifier = my-cluster-1, notifications will be sent for all the cluster events for my-cluster-1. If you specify a source type but do not specify a source identifier, you will receive notice of the events for the objects of that type in your AWS account. If you do not specify either the SourceType nor the SourceIdentifier, you will be notified of events generated from all Amazon Redshift sources belonging to your AWS account. You must specify a source type if you specify a source ID.

", + "CreateHsmClientCertificate": "

Creates an HSM client certificate that an Amazon Redshift cluster will use to connect to the client's HSM in order to store and retrieve the keys used to encrypt the cluster databases.

The command returns a public key, which you must store in the HSM. In addition to creating the HSM certificate, you must create an Amazon Redshift HSM configuration that provides a cluster the information needed to store and use encryption keys in the HSM. For more information, go to Hardware Security Modules in the Amazon Redshift Cluster Management Guide.

", + "CreateHsmConfiguration": "

Creates an HSM configuration that contains the information required by an Amazon Redshift cluster to store and use database encryption keys in a Hardware Security Module (HSM). After creating the HSM configuration, you can specify it as a parameter when creating a cluster. The cluster will then store its encryption keys in the HSM.

In addition to creating an HSM configuration, you must also create an HSM client certificate. For more information, go to Hardware Security Modules in the Amazon Redshift Cluster Management Guide.

", + "CreateTags": "

Adds one or more tags to a specified resource.

A resource can have up to 10 tags. If you try to create more than 10 tags for a resource, you will receive an error and the attempt will fail.

If you specify a key that already exists for the resource, the value for that key will be updated with the new value.

", + "DeleteCluster": "

Deletes a previously provisioned cluster. A successful response from the web service indicates that the request was received correctly. Use DescribeClusters to monitor the status of the deletion. The delete operation cannot be canceled or reverted once submitted. For more information about managing clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster Management Guide .

If you want to shut down the cluster and retain it for future use, set SkipFinalClusterSnapshot to false and specify a name for FinalClusterSnapshotIdentifier. You can later restore this snapshot to resume using the cluster. If a final cluster snapshot is requested, the status of the cluster will be \"final-snapshot\" while the snapshot is being taken, then it's \"deleting\" once Amazon Redshift begins deleting the cluster.

For more information about managing clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster Management Guide .

", + "DeleteClusterParameterGroup": "

Deletes a specified Amazon Redshift parameter group. You cannot delete a parameter group if it is associated with a cluster.

", + "DeleteClusterSecurityGroup": "

Deletes an Amazon Redshift security group.

You cannot delete a security group that is associated with any clusters. You cannot delete the default security group.

For information about managing security groups, go to Amazon Redshift Cluster Security Groups in the Amazon Redshift Cluster Management Guide.

", + "DeleteClusterSnapshot": "

Deletes the specified manual snapshot. The snapshot must be in the available state, with no other users authorized to access the snapshot.

Unlike automated snapshots, manual snapshots are retained even after you delete your cluster. Amazon Redshift does not delete your manual snapshots. You must delete manual snapshot explicitly to avoid getting charged. If other accounts are authorized to access the snapshot, you must revoke all of the authorizations before you can delete the snapshot.

", + "DeleteClusterSubnetGroup": "

Deletes the specified cluster subnet group.

", + "DeleteEventSubscription": "

Deletes an Amazon Redshift event notification subscription.

", + "DeleteHsmClientCertificate": "

Deletes the specified HSM client certificate.

", + "DeleteHsmConfiguration": "

Deletes the specified Amazon Redshift HSM configuration.

", + "DeleteTags": "

Deletes a tag or tags from a resource. You must provide the ARN of the resource from which you want to delete the tag or tags.

", + "DescribeClusterParameterGroups": "

Returns a list of Amazon Redshift parameter groups, including parameter groups you created and the default parameter group. For each parameter group, the response includes the parameter group name, description, and parameter group family name. You can optionally specify a name to retrieve the description of a specific parameter group.

For more information about managing parameter groups, go to Amazon Redshift Parameter Groups in the Amazon Redshift Cluster Management Guide.

If you specify both tag keys and tag values in the same request, Amazon Redshift returns all parameter groups that match any combination of the specified keys and values. For example, if you have owner and environment for tag keys, and admin and test for tag values, all parameter groups that have any combination of those values are returned.

If both tag keys and values are omitted from the request, parameter groups are returned regardless of whether they have tag keys or values associated with them.

", + "DescribeClusterParameters": "

Returns a detailed list of parameters contained within the specified Amazon Redshift parameter group. For each parameter the response includes information such as parameter name, description, data type, value, whether the parameter value is modifiable, and so on.

You can specify source filter to retrieve parameters of only specific type. For example, to retrieve parameters that were modified by a user action such as from ModifyClusterParameterGroup, you can specify source equal to user.

For more information about managing parameter groups, go to Amazon Redshift Parameter Groups in the Amazon Redshift Cluster Management Guide.

", + "DescribeClusterSecurityGroups": "

Returns information about Amazon Redshift security groups. If the name of a security group is specified, the response will contain only information about only that security group.

For information about managing security groups, go to Amazon Redshift Cluster Security Groups in the Amazon Redshift Cluster Management Guide.

If you specify both tag keys and tag values in the same request, Amazon Redshift returns all security groups that match any combination of the specified keys and values. For example, if you have owner and environment for tag keys, and admin and test for tag values, all security groups that have any combination of those values are returned.

If both tag keys and values are omitted from the request, security groups are returned regardless of whether they have tag keys or values associated with them.

", + "DescribeClusterSnapshots": "

Returns one or more snapshot objects, which contain metadata about your cluster snapshots. By default, this operation returns information about all snapshots of all clusters that are owned by you AWS customer account. No information is returned for snapshots owned by inactive AWS customer accounts.

If you specify both tag keys and tag values in the same request, Amazon Redshift returns all snapshots that match any combination of the specified keys and values. For example, if you have owner and environment for tag keys, and admin and test for tag values, all snapshots that have any combination of those values are returned. Only snapshots that you own are returned in the response; shared snapshots are not returned with the tag key and tag value request parameters.

If both tag keys and values are omitted from the request, snapshots are returned regardless of whether they have tag keys or values associated with them.

", + "DescribeClusterSubnetGroups": "

Returns one or more cluster subnet group objects, which contain metadata about your cluster subnet groups. By default, this operation returns information about all cluster subnet groups that are defined in you AWS account.

If you specify both tag keys and tag values in the same request, Amazon Redshift returns all subnet groups that match any combination of the specified keys and values. For example, if you have owner and environment for tag keys, and admin and test for tag values, all subnet groups that have any combination of those values are returned.

If both tag keys and values are omitted from the request, subnet groups are returned regardless of whether they have tag keys or values associated with them.

", + "DescribeClusterVersions": "

Returns descriptions of the available Amazon Redshift cluster versions. You can call this operation even before creating any clusters to learn more about the Amazon Redshift versions. For more information about managing clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster Management Guide

", + "DescribeClusters": "

Returns properties of provisioned clusters including general cluster properties, cluster database properties, maintenance and backup properties, and security and access properties. This operation supports pagination. For more information about managing clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster Management Guide .

If you specify both tag keys and tag values in the same request, Amazon Redshift returns all clusters that match any combination of the specified keys and values. For example, if you have owner and environment for tag keys, and admin and test for tag values, all clusters that have any combination of those values are returned.

If both tag keys and values are omitted from the request, clusters are returned regardless of whether they have tag keys or values associated with them.

", + "DescribeDefaultClusterParameters": "

Returns a list of parameter settings for the specified parameter group family.

For more information about managing parameter groups, go to Amazon Redshift Parameter Groups in the Amazon Redshift Cluster Management Guide.

", + "DescribeEventCategories": "

Displays a list of event categories for all event source types, or for a specified source type. For a list of the event categories and source types, go to Amazon Redshift Event Notifications.

", + "DescribeEventSubscriptions": "

Lists descriptions of all the Amazon Redshift event notifications subscription for a customer account. If you specify a subscription name, lists the description for that subscription.

", + "DescribeEvents": "

Returns events related to clusters, security groups, snapshots, and parameter groups for the past 14 days. Events specific to a particular cluster, security group, snapshot or parameter group can be obtained by providing the name as a parameter. By default, the past hour of events are returned.

", + "DescribeHsmClientCertificates": "

Returns information about the specified HSM client certificate. If no certificate ID is specified, returns information about all the HSM certificates owned by your AWS customer account.

If you specify both tag keys and tag values in the same request, Amazon Redshift returns all HSM client certificates that match any combination of the specified keys and values. For example, if you have owner and environment for tag keys, and admin and test for tag values, all HSM client certificates that have any combination of those values are returned.

If both tag keys and values are omitted from the request, HSM client certificates are returned regardless of whether they have tag keys or values associated with them.

", + "DescribeHsmConfigurations": "

Returns information about the specified Amazon Redshift HSM configuration. If no configuration ID is specified, returns information about all the HSM configurations owned by your AWS customer account.

If you specify both tag keys and tag values in the same request, Amazon Redshift returns all HSM connections that match any combination of the specified keys and values. For example, if you have owner and environment for tag keys, and admin and test for tag values, all HSM connections that have any combination of those values are returned.

If both tag keys and values are omitted from the request, HSM connections are returned regardless of whether they have tag keys or values associated with them.

", + "DescribeLoggingStatus": "

Describes whether information, such as queries and connection attempts, is being logged for the specified Amazon Redshift cluster.

", + "DescribeOrderableClusterOptions": "

Returns a list of orderable cluster options. Before you create a new cluster you can use this operation to find what options are available, such as the EC2 Availability Zones (AZ) in the specific AWS region that you can specify, and the node types you can request. The node types differ by available storage, memory, CPU and price. With the cost involved you might want to obtain a list of cluster options in the specific region and specify values when creating a cluster. For more information about managing clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster Management Guide

", + "DescribeReservedNodeOfferings": "

Returns a list of the available reserved node offerings by Amazon Redshift with their descriptions including the node type, the fixed and recurring costs of reserving the node and duration the node will be reserved for you. These descriptions help you determine which reserve node offering you want to purchase. You then use the unique offering ID in you call to PurchaseReservedNodeOffering to reserve one or more nodes for your Amazon Redshift cluster.

For more information about managing parameter groups, go to Purchasing Reserved Nodes in the Amazon Redshift Cluster Management Guide.

", + "DescribeReservedNodes": "

Returns the descriptions of the reserved nodes.

", + "DescribeResize": "

Returns information about the last resize operation for the specified cluster. If no resize operation has ever been initiated for the specified cluster, a HTTP 404 error is returned. If a resize operation was initiated and completed, the status of the resize remains as SUCCEEDED until the next resize.

A resize operation can be requested using ModifyCluster and specifying a different number or type of nodes for the cluster.

", + "DescribeTags": "

Returns a list of tags. You can return tags from a specific resource by specifying an ARN, or you can return all tags for a given type of resource, such as clusters, snapshots, and so on.

The following are limitations for DescribeTags:

  • You cannot specify an ARN and a resource-type value together in the same request.
  • You cannot use the MaxRecords and Marker parameters together with the ARN parameter.
  • The MaxRecords parameter can be a range from 10 to 50 results to return in a request.

If you specify both tag keys and tag values in the same request, Amazon Redshift returns all resources that match any combination of the specified keys and values. For example, if you have owner and environment for tag keys, and admin and test for tag values, all resources that have any combination of those values are returned.

If both tag keys and values are omitted from the request, resources are returned regardless of whether they have tag keys or values associated with them.

", + "DisableLogging": "

Stops logging information, such as queries and connection attempts, for the specified Amazon Redshift cluster.

", + "DisableSnapshotCopy": "

Disables the automatic copying of snapshots from one region to another region for a specified cluster.

", + "EnableLogging": "

Starts logging information, such as queries and connection attempts, for the specified Amazon Redshift cluster.

", + "EnableSnapshotCopy": "

Enables the automatic copy of snapshots from one region to another region for a specified cluster.

", + "ModifyCluster": "

Modifies the settings for a cluster. For example, you can add another security or parameter group, update the preferred maintenance window, or change the master user password. Resetting a cluster password or modifying the security groups associated with a cluster do not need a reboot. However, modifying a parameter group requires a reboot for parameters to take effect. For more information about managing clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster Management Guide .

You can also change node type and the number of nodes to scale up or down the cluster. When resizing a cluster, you must specify both the number of nodes and the node type even if one of the parameters does not change.

", + "ModifyClusterParameterGroup": "

Modifies the parameters of a parameter group.

For more information about managing parameter groups, go to Amazon Redshift Parameter Groups in the Amazon Redshift Cluster Management Guide.

", + "ModifyClusterSubnetGroup": "

Modifies a cluster subnet group to include the specified list of VPC subnets. The operation replaces the existing list of subnets with the new list of subnets.

", + "ModifyEventSubscription": "

Modifies an existing Amazon Redshift event notification subscription.

", + "ModifySnapshotCopyRetentionPeriod": "

Modifies the number of days to retain automated snapshots in the destination region after they are copied from the source region.

", + "PurchaseReservedNodeOffering": "

Allows you to purchase reserved nodes. Amazon Redshift offers a predefined set of reserved node offerings. You can purchase one of the offerings. You can call the DescribeReservedNodeOfferings API to obtain the available reserved node offerings. You can call this API by providing a specific reserved node offering and the number of nodes you want to reserve.

For more information about managing parameter groups, go to Purchasing Reserved Nodes in the Amazon Redshift Cluster Management Guide.

", + "RebootCluster": "

Reboots a cluster. This action is taken as soon as possible. It results in a momentary outage to the cluster, during which the cluster status is set to rebooting. A cluster event is created when the reboot is completed. Any pending cluster modifications (see ModifyCluster) are applied at this reboot. For more information about managing clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster Management Guide

", + "ResetClusterParameterGroup": "

Sets one or more parameters of the specified parameter group to their default values and sets the source values of the parameters to \"engine-default\". To reset the entire parameter group specify the ResetAllParameters parameter. For parameter changes to take effect you must reboot any associated clusters.

", + "RestoreFromClusterSnapshot": "

Creates a new cluster from a snapshot. Amazon Redshift creates the resulting cluster with the same configuration as the original cluster from which the snapshot was created, except that the new cluster is created with the default cluster security and parameter group. After Amazon Redshift creates the cluster you can use the ModifyCluster API to associate a different security group and different parameter group with the restored cluster.

If you restore a cluster into a VPC, you must provide a cluster subnet group where you want the cluster restored.

For more information about working with snapshots, go to Amazon Redshift Snapshots in the Amazon Redshift Cluster Management Guide.

", + "RevokeClusterSecurityGroupIngress": "

Revokes an ingress rule in an Amazon Redshift security group for a previously authorized IP range or Amazon EC2 security group. To add an ingress rule, see AuthorizeClusterSecurityGroupIngress. For information about managing security groups, go to Amazon Redshift Cluster Security Groups in the Amazon Redshift Cluster Management Guide.

", + "RevokeSnapshotAccess": "

Removes the ability of the specified AWS customer account to restore the specified snapshot. If the account is currently restoring the snapshot, the restore will run to completion.

For more information about working with snapshots, go to Amazon Redshift Snapshots in the Amazon Redshift Cluster Management Guide.

", + "RotateEncryptionKey": "

Rotates the encryption keys for a cluster.

" + }, + "service": "Amazon Redshift Overview

This is an interface reference for Amazon Redshift. It contains documentation for one of the programming or command line interfaces you can use to manage Amazon Redshift clusters. Note that Amazon Redshift is asynchronous, which means that some interfaces may require techniques, such as polling or asynchronous callback handlers, to determine when a command has been applied. In this reference, the parameter descriptions indicate whether a change is applied immediately, on the next instance reboot, or during the next maintenance window. For a summary of the Amazon Redshift cluster management interfaces, go to Using the Amazon Redshift Management Interfaces .

Amazon Redshift manages all the work of setting up, operating, and scaling a data warehouse: provisioning capacity, monitoring and backing up the cluster, and applying patches and upgrades to the Amazon Redshift engine. You can focus on using your data to acquire new insights for your business and customers.

If you are a first-time user of Amazon Redshift, we recommend that you begin by reading the The Amazon Redshift Getting Started Guide

If you are a database developer, the Amazon Redshift Database Developer Guide explains how to design, build, query, and maintain the databases that make up your data warehouse.

", + "shapes": { + "AccessToSnapshotDeniedFault": { + "base": "

The owner of the specified snapshot has not authorized your account to access the snapshot.

", + "refs": { + } + }, + "AccountWithRestoreAccess": { + "base": "

Describes an AWS customer account authorized to restore a snapshot.

", + "refs": { + "AccountsWithRestoreAccessList$member": null + } + }, + "AccountsWithRestoreAccessList": { + "base": null, + "refs": { + "Snapshot$AccountsWithRestoreAccess": "

A list of the AWS customer accounts authorized to restore the snapshot. Returns null if no accounts are authorized. Visible only to the snapshot owner.

" + } + }, + "AuthorizationAlreadyExistsFault": { + "base": "

The specified CIDR block or EC2 security group is already authorized for the specified cluster security group.

", + "refs": { + } + }, + "AuthorizationNotFoundFault": { + "base": "

The specified CIDR IP range or EC2 security group is not authorized for the specified cluster security group.

", + "refs": { + } + }, + "AuthorizationQuotaExceededFault": { + "base": "

The authorization quota for the cluster security group has been reached.

", + "refs": { + } + }, + "AuthorizeClusterSecurityGroupIngressMessage": { + "base": "

???

", + "refs": { + } + }, + "AuthorizeSnapshotAccessMessage": { + "base": "

", + "refs": { + } + }, + "AvailabilityZone": { + "base": "

Describes an availability zone.

", + "refs": { + "AvailabilityZoneList$member": null, + "Subnet$SubnetAvailabilityZone": null + } + }, + "AvailabilityZoneList": { + "base": null, + "refs": { + "OrderableClusterOption$AvailabilityZones": "

A list of availability zones for the orderable cluster.

" + } + }, + "Boolean": { + "base": null, + "refs": { + "Cluster$AllowVersionUpgrade": "

If true, major version upgrades will be applied automatically to the cluster during the maintenance window.

", + "Cluster$PubliclyAccessible": "

If true, the cluster can be accessed from a public network.

", + "Cluster$Encrypted": "

If true, data in the cluster is encrypted at rest.

", + "DeleteClusterMessage$SkipFinalClusterSnapshot": "

Determines whether a final snapshot of the cluster is created before Amazon Redshift deletes the cluster. If true, a final cluster snapshot is not created. If false, a final cluster snapshot is created before the cluster is deleted.

The FinalClusterSnapshotIdentifier parameter must be specified if SkipFinalClusterSnapshot is false.

Default: false

", + "EventSubscription$Enabled": "

A Boolean value indicating whether the subscription is enabled. true indicates the subscription is enabled.

", + "LoggingStatus$LoggingEnabled": "

true if logging is on, false if logging is off.

", + "Parameter$IsModifiable": "

If true, the parameter can be modified. Some parameters have security or operational implications that prevent them from being changed.

", + "ResetClusterParameterGroupMessage$ResetAllParameters": "

If true, all parameters in the specified parameter group will be reset to their default values.

Default: true

", + "Snapshot$Encrypted": "

If true, the data in the snapshot is encrypted at rest.

", + "Snapshot$EncryptedWithHSM": "

A boolean that indicates whether the snapshot data is encrypted using the HSM keys of the source cluster. true indicates that the data is encrypted using HSM keys.

" + } + }, + "BooleanOptional": { + "base": null, + "refs": { + "CreateClusterMessage$AllowVersionUpgrade": "

If true, major version upgrades can be applied during the maintenance window to the Amazon Redshift engine that is running on the cluster.

When a new major version of the Amazon Redshift engine is released, you can request that the service automatically apply upgrades during the maintenance window to the Amazon Redshift engine that is running on your cluster.

Default: true

", + "CreateClusterMessage$PubliclyAccessible": "

If true, the cluster can be accessed from a public network.

", + "CreateClusterMessage$Encrypted": "

If true, the data in the cluster is encrypted at rest.

Default: false

", + "CreateEventSubscriptionMessage$Enabled": "

A Boolean value; set to true to activate the subscription, set to false to create the subscription but not active it.

", + "ModifyClusterMessage$AllowVersionUpgrade": "

If true, major version upgrades will be applied automatically to the cluster during the maintenance window.

Default: false

", + "ModifyEventSubscriptionMessage$Enabled": "

A Boolean value indicating if the subscription is enabled. true indicates the subscription is enabled

", + "RestoreFromClusterSnapshotMessage$AllowVersionUpgrade": "

If true, major version upgrades can be applied during the maintenance window to the Amazon Redshift engine that is running on the cluster.

Default: true

", + "RestoreFromClusterSnapshotMessage$PubliclyAccessible": "

If true, the cluster can be accessed from a public network.

" + } + }, + "BucketNotFoundFault": { + "base": "

Could not find the specified S3 bucket.

", + "refs": { + } + }, + "Cluster": { + "base": "

Describes a cluster.

", + "refs": { + "ClusterList$member": null, + "CreateClusterResult$Cluster": null, + "DeleteClusterResult$Cluster": null, + "DisableSnapshotCopyResult$Cluster": null, + "EnableSnapshotCopyResult$Cluster": null, + "ModifyClusterResult$Cluster": null, + "ModifySnapshotCopyRetentionPeriodResult$Cluster": null, + "RebootClusterResult$Cluster": null, + "RestoreFromClusterSnapshotResult$Cluster": null, + "RotateEncryptionKeyResult$Cluster": null + } + }, + "ClusterAlreadyExistsFault": { + "base": "

The account already has a cluster with the given identifier.

", + "refs": { + } + }, + "ClusterList": { + "base": null, + "refs": { + "ClustersMessage$Clusters": "

A list of Cluster objects, where each object describes one cluster.

" + } + }, + "ClusterNode": { + "base": "

The identifier of a node in a cluster.

", + "refs": { + "ClusterNodesList$member": null + } + }, + "ClusterNodesList": { + "base": null, + "refs": { + "Cluster$ClusterNodes": "

The nodes in a cluster.

" + } + }, + "ClusterNotFoundFault": { + "base": "

The ClusterIdentifier parameter does not refer to an existing cluster.

", + "refs": { + } + }, + "ClusterParameterGroup": { + "base": "

Describes a parameter group.

", + "refs": { + "ParameterGroupList$member": null, + "CreateClusterParameterGroupResult$ClusterParameterGroup": null + } + }, + "ClusterParameterGroupAlreadyExistsFault": { + "base": "

A cluster parameter group with the same name already exists.

", + "refs": { + } + }, + "ClusterParameterGroupDetails": { + "base": "

Contains the output from the DescribeClusterParameters action.

", + "refs": { + } + }, + "ClusterParameterGroupNameMessage": { + "base": "

Contains the output from the ModifyClusterParameterGroup and ResetClusterParameterGroup actions and indicate the parameter group involved and the status of the operation on the parameter group.

", + "refs": { + } + }, + "ClusterParameterGroupNotFoundFault": { + "base": "

The parameter group name does not refer to an existing parameter group.

", + "refs": { + } + }, + "ClusterParameterGroupQuotaExceededFault": { + "base": "

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.

", + "refs": { + } + }, + "ClusterParameterGroupStatus": { + "base": "

Describes the status of a parameter group.

", + "refs": { + "ClusterParameterGroupStatusList$member": null + } + }, + "ClusterParameterGroupStatusList": { + "base": null, + "refs": { + "Cluster$ClusterParameterGroups": "

The list of cluster parameter groups that are associated with this cluster.

" + } + }, + "ClusterParameterGroupsMessage": { + "base": "

Contains the output from the DescribeClusterParameterGroups action.

", + "refs": { + } + }, + "ClusterQuotaExceededFault": { + "base": "

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.

", + "refs": { + } + }, + "ClusterSecurityGroup": { + "base": "

Describes a security group.

", + "refs": { + "ClusterSecurityGroups$member": null, + "AuthorizeClusterSecurityGroupIngressResult$ClusterSecurityGroup": null, + "CreateClusterSecurityGroupResult$ClusterSecurityGroup": null, + "RevokeClusterSecurityGroupIngressResult$ClusterSecurityGroup": null + } + }, + "ClusterSecurityGroupAlreadyExistsFault": { + "base": "

A cluster security group with the same name already exists.

", + "refs": { + } + }, + "ClusterSecurityGroupMembership": { + "base": "

Describes a security group.

", + "refs": { + "ClusterSecurityGroupMembershipList$member": null + } + }, + "ClusterSecurityGroupMembershipList": { + "base": null, + "refs": { + "Cluster$ClusterSecurityGroups": "

A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains ClusterSecurityGroup.Name and ClusterSecurityGroup.Status subelements.

Cluster security groups are used when the cluster is not created in a VPC. Clusters that are created in a VPC use VPC security groups, which are listed by the VpcSecurityGroups parameter.

" + } + }, + "ClusterSecurityGroupMessage": { + "base": "

Contains the output from the DescribeClusterSecurityGroups action.

", + "refs": { + } + }, + "ClusterSecurityGroupNameList": { + "base": null, + "refs": { + "CreateClusterMessage$ClusterSecurityGroups": "

A list of security groups to be associated with this cluster.

Default: The default cluster security group for Amazon Redshift.

", + "ModifyClusterMessage$ClusterSecurityGroups": "

A list of cluster security groups to be authorized on this cluster. This change is asynchronously applied as soon as possible.

Security groups currently associated with the cluster, and not in the list of groups to apply, will be revoked from the cluster.

Constraints:

  • Must be 1 to 255 alphanumeric characters or hyphens
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "RestoreFromClusterSnapshotMessage$ClusterSecurityGroups": "

A list of security groups to be associated with this cluster.

Default: The default cluster security group for Amazon Redshift.

Cluster security groups only apply to clusters outside of VPCs.

" + } + }, + "ClusterSecurityGroupNotFoundFault": { + "base": "

The cluster security group name does not refer to an existing cluster security group.

", + "refs": { + } + }, + "ClusterSecurityGroupQuotaExceededFault": { + "base": "

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.

", + "refs": { + } + }, + "ClusterSecurityGroups": { + "base": null, + "refs": { + "ClusterSecurityGroupMessage$ClusterSecurityGroups": "

A list of ClusterSecurityGroup instances.

" + } + }, + "ClusterSnapshotAlreadyExistsFault": { + "base": "

The value specified as a snapshot identifier is already used by an existing snapshot.

", + "refs": { + } + }, + "ClusterSnapshotCopyStatus": { + "base": "

Returns the destination region and retention period that are configured for cross-region snapshot copy.

", + "refs": { + "Cluster$ClusterSnapshotCopyStatus": "

Returns the destination region and retention period that are configured for cross-region snapshot copy.

" + } + }, + "ClusterSnapshotNotFoundFault": { + "base": "

The snapshot identifier does not refer to an existing cluster snapshot.

", + "refs": { + } + }, + "ClusterSnapshotQuotaExceededFault": { + "base": "

The request would result in the user exceeding the allowed number of cluster snapshots.

", + "refs": { + } + }, + "ClusterSubnetGroup": { + "base": "

Describes a subnet group.

", + "refs": { + "ClusterSubnetGroups$member": null, + "CreateClusterSubnetGroupResult$ClusterSubnetGroup": null, + "ModifyClusterSubnetGroupResult$ClusterSubnetGroup": null + } + }, + "ClusterSubnetGroupAlreadyExistsFault": { + "base": "

A ClusterSubnetGroupName is already used by an existing cluster subnet group.

", + "refs": { + } + }, + "ClusterSubnetGroupMessage": { + "base": "

Contains the output from the DescribeClusterSubnetGroups action.

", + "refs": { + } + }, + "ClusterSubnetGroupNotFoundFault": { + "base": "

The cluster subnet group name does not refer to an existing cluster subnet group.

", + "refs": { + } + }, + "ClusterSubnetGroupQuotaExceededFault": { + "base": "

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.

", + "refs": { + } + }, + "ClusterSubnetGroups": { + "base": null, + "refs": { + "ClusterSubnetGroupMessage$ClusterSubnetGroups": "

A list of ClusterSubnetGroup instances.

" + } + }, + "ClusterSubnetQuotaExceededFault": { + "base": "

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.

", + "refs": { + } + }, + "ClusterVersion": { + "base": "

Describes a cluster version, including the parameter group family and description of the version.

", + "refs": { + "ClusterVersionList$member": null + } + }, + "ClusterVersionList": { + "base": null, + "refs": { + "ClusterVersionsMessage$ClusterVersions": "

A list of Version elements.

" + } + }, + "ClusterVersionsMessage": { + "base": "

Contains the output from the DescribeClusterVersions action.

", + "refs": { + } + }, + "ClustersMessage": { + "base": "

Contains the output from the DescribeClusters action.

", + "refs": { + } + }, + "CopyClusterSnapshotMessage": { + "base": "

", + "refs": { + } + }, + "CopyToRegionDisabledFault": { + "base": "

Cross-region snapshot copy was temporarily disabled. Try your request again.

", + "refs": { + } + }, + "CreateClusterMessage": { + "base": "

", + "refs": { + } + }, + "CreateClusterParameterGroupMessage": { + "base": "

", + "refs": { + } + }, + "CreateClusterSecurityGroupMessage": { + "base": "

???

", + "refs": { + } + }, + "CreateClusterSnapshotMessage": { + "base": "

", + "refs": { + } + }, + "CreateClusterSubnetGroupMessage": { + "base": "

", + "refs": { + } + }, + "CreateEventSubscriptionMessage": { + "base": "

", + "refs": { + } + }, + "CreateHsmClientCertificateMessage": { + "base": "

", + "refs": { + } + }, + "CreateHsmConfigurationMessage": { + "base": "

", + "refs": { + } + }, + "CreateTagsMessage": { + "base": "

Contains the output from the CreateTags action.

", + "refs": { + } + }, + "DefaultClusterParameters": { + "base": "

Describes the default cluster parameters for a parameter group family.

", + "refs": { + "DescribeDefaultClusterParametersResult$DefaultClusterParameters": null + } + }, + "DeleteClusterMessage": { + "base": "

", + "refs": { + } + }, + "DeleteClusterParameterGroupMessage": { + "base": "

", + "refs": { + } + }, + "DeleteClusterSecurityGroupMessage": { + "base": "

", + "refs": { + } + }, + "DeleteClusterSnapshotMessage": { + "base": "

", + "refs": { + } + }, + "DeleteClusterSubnetGroupMessage": { + "base": null, + "refs": { + } + }, + "DeleteEventSubscriptionMessage": { + "base": "

", + "refs": { + } + }, + "DeleteHsmClientCertificateMessage": { + "base": "

", + "refs": { + } + }, + "DeleteHsmConfigurationMessage": { + "base": "

", + "refs": { + } + }, + "DeleteTagsMessage": { + "base": "

Contains the output from the DeleteTags action.

", + "refs": { + } + }, + "DescribeClusterParameterGroupsMessage": { + "base": "

", + "refs": { + } + }, + "DescribeClusterParametersMessage": { + "base": null, + "refs": { + } + }, + "DescribeClusterSecurityGroupsMessage": { + "base": "

???

", + "refs": { + } + }, + "DescribeClusterSnapshotsMessage": { + "base": "

", + "refs": { + } + }, + "DescribeClusterSubnetGroupsMessage": { + "base": "

", + "refs": { + } + }, + "DescribeClusterVersionsMessage": { + "base": null, + "refs": { + } + }, + "DescribeClustersMessage": { + "base": "

", + "refs": { + } + }, + "DescribeDefaultClusterParametersMessage": { + "base": "

", + "refs": { + } + }, + "DescribeEventCategoriesMessage": { + "base": "

", + "refs": { + } + }, + "DescribeEventSubscriptionsMessage": { + "base": "

", + "refs": { + } + }, + "DescribeEventsMessage": { + "base": "

", + "refs": { + } + }, + "DescribeHsmClientCertificatesMessage": { + "base": "

", + "refs": { + } + }, + "DescribeHsmConfigurationsMessage": { + "base": "

", + "refs": { + } + }, + "DescribeLoggingStatusMessage": { + "base": "

", + "refs": { + } + }, + "DescribeOrderableClusterOptionsMessage": { + "base": "

", + "refs": { + } + }, + "DescribeReservedNodeOfferingsMessage": { + "base": "

to be provided.

", + "refs": { + } + }, + "DescribeReservedNodesMessage": { + "base": "

", + "refs": { + } + }, + "DescribeResizeMessage": { + "base": "

", + "refs": { + } + }, + "DescribeTagsMessage": { + "base": "

Contains the output from the DescribeTags action.

", + "refs": { + } + }, + "DisableLoggingMessage": { + "base": "

", + "refs": { + } + }, + "DisableSnapshotCopyMessage": { + "base": "

", + "refs": { + } + }, + "Double": { + "base": null, + "refs": { + "RecurringCharge$RecurringChargeAmount": "

The amount charged per the period of time specified by the recurring charge frequency.

", + "ReservedNode$FixedPrice": "

The fixed cost Amazon Redshift charged you for this reserved node.

", + "ReservedNode$UsagePrice": "

The hourly rate Amazon Redshift charge you for this reserved node.

", + "ReservedNodeOffering$FixedPrice": "

The upfront fixed charge you will pay to purchase the specific reserved node offering.

", + "ReservedNodeOffering$UsagePrice": "

The rate you are charged for each hour the cluster that is using the offering is running.

", + "RestoreStatus$CurrentRestoreRateInMegaBytesPerSecond": "

The number of megabytes per second being transferred from the backup storage. Returns the average rate for a completed backup.

", + "Snapshot$TotalBackupSizeInMegaBytes": "

The size of the complete set of backup data that would be used to restore the cluster.

", + "Snapshot$ActualIncrementalBackupSizeInMegaBytes": "

The size of the incremental backup.

", + "Snapshot$BackupProgressInMegaBytes": "

The number of megabytes that have been transferred to the snapshot backup.

", + "Snapshot$CurrentBackupRateInMegaBytesPerSecond": "

The number of megabytes per second being transferred to the snapshot backup. Returns 0 for a completed backup.

" + } + }, + "DoubleOptional": { + "base": null, + "refs": { + "ResizeProgressMessage$AvgResizeRateInMegaBytesPerSecond": "

The average rate of the resize operation over the last few minutes, measured in megabytes per second. After the resize operation completes, this value shows the average rate of the entire resize operation.

" + } + }, + "EC2SecurityGroup": { + "base": "

Describes an Amazon EC2 security group.

", + "refs": { + "EC2SecurityGroupList$member": null + } + }, + "EC2SecurityGroupList": { + "base": null, + "refs": { + "ClusterSecurityGroup$EC2SecurityGroups": "

A list of EC2 security groups that are permitted to access clusters associated with this cluster security group.

" + } + }, + "ElasticIpStatus": { + "base": "

Describes the status of the elastic IP (EIP) address.

", + "refs": { + "Cluster$ElasticIpStatus": "

Describes the status of the elastic IP (EIP) address.

" + } + }, + "EnableLoggingMessage": { + "base": "

", + "refs": { + } + }, + "EnableSnapshotCopyMessage": { + "base": "

", + "refs": { + } + }, + "Endpoint": { + "base": "

Describes a connection endpoint.

", + "refs": { + "Cluster$Endpoint": "

The connection endpoint.

" + } + }, + "Event": { + "base": "

Describes an event.

", + "refs": { + "EventList$member": null + } + }, + "EventCategoriesList": { + "base": null, + "refs": { + "CreateEventSubscriptionMessage$EventCategories": "

Specifies the Amazon Redshift event categories to be published by the event notification subscription.

Values: Configuration, Management, Monitoring, Security

", + "Event$EventCategories": "

A list of the event categories.

", + "EventInfoMap$EventCategories": "

The category of an Amazon Redshift event.

", + "EventSubscription$EventCategoriesList": "

The list of Amazon Redshift event categories specified in the event notification subscription.

Values: Configuration, Management, Monitoring, Security

", + "ModifyEventSubscriptionMessage$EventCategories": "

Specifies the Amazon Redshift event categories to be published by the event notification subscription.

Values: Configuration, Management, Monitoring, Security

" + } + }, + "EventCategoriesMap": { + "base": null, + "refs": { + "EventCategoriesMapList$member": null + } + }, + "EventCategoriesMapList": { + "base": null, + "refs": { + "EventCategoriesMessage$EventCategoriesMapList": "

A list of event categories descriptions.

" + } + }, + "EventCategoriesMessage": { + "base": "

", + "refs": { + } + }, + "EventInfoMap": { + "base": null, + "refs": { + "EventInfoMapList$member": null + } + }, + "EventInfoMapList": { + "base": null, + "refs": { + "EventCategoriesMap$Events": "

The events in the event category.

" + } + }, + "EventList": { + "base": null, + "refs": { + "EventsMessage$Events": "

A list of Event instances.

" + } + }, + "EventSubscription": { + "base": null, + "refs": { + "EventSubscriptionsList$member": null, + "CreateEventSubscriptionResult$EventSubscription": null, + "ModifyEventSubscriptionResult$EventSubscription": null + } + }, + "EventSubscriptionQuotaExceededFault": { + "base": "

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.

", + "refs": { + } + }, + "EventSubscriptionsList": { + "base": null, + "refs": { + "EventSubscriptionsMessage$EventSubscriptionsList": "

A list of event subscriptions.

" + } + }, + "EventSubscriptionsMessage": { + "base": "

", + "refs": { + } + }, + "EventsMessage": { + "base": "

Contains the output from the DescribeEvents action.

", + "refs": { + } + }, + "HsmClientCertificate": { + "base": "

Returns information about an HSM client certificate. The certificate is stored in a secure Hardware Storage Module (HSM), and used by the Amazon Redshift cluster to encrypt data files.

", + "refs": { + "HsmClientCertificateList$member": null, + "CreateHsmClientCertificateResult$HsmClientCertificate": null + } + }, + "HsmClientCertificateAlreadyExistsFault": { + "base": "

There is already an existing Amazon Redshift HSM client certificate with the specified identifier.

", + "refs": { + } + }, + "HsmClientCertificateList": { + "base": null, + "refs": { + "HsmClientCertificateMessage$HsmClientCertificates": "

A list of the identifiers for one or more HSM client certificates used by Amazon Redshift clusters to store and retrieve database encryption keys in an HSM.

" + } + }, + "HsmClientCertificateMessage": { + "base": "

", + "refs": { + } + }, + "HsmClientCertificateNotFoundFault": { + "base": "

There is no Amazon Redshift HSM client certificate with the specified identifier.

", + "refs": { + } + }, + "HsmClientCertificateQuotaExceededFault": { + "base": "

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.

", + "refs": { + } + }, + "HsmConfiguration": { + "base": "

Returns information about an HSM configuration, which is an object that describes to Amazon Redshift clusters the information they require to connect to an HSM where they can store database encryption keys.

", + "refs": { + "HsmConfigurationList$member": null, + "CreateHsmConfigurationResult$HsmConfiguration": null + } + }, + "HsmConfigurationAlreadyExistsFault": { + "base": "

There is already an existing Amazon Redshift HSM configuration with the specified identifier.

", + "refs": { + } + }, + "HsmConfigurationList": { + "base": null, + "refs": { + "HsmConfigurationMessage$HsmConfigurations": "

A list of Amazon Redshift HSM configurations.

" + } + }, + "HsmConfigurationMessage": { + "base": "

", + "refs": { + } + }, + "HsmConfigurationNotFoundFault": { + "base": "

There is no Amazon Redshift HSM configuration with the specified identifier.

", + "refs": { + } + }, + "HsmConfigurationQuotaExceededFault": { + "base": "

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.

", + "refs": { + } + }, + "HsmStatus": { + "base": "

", + "refs": { + "Cluster$HsmStatus": "

Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command.

Values: active, applying

" + } + }, + "IPRange": { + "base": "

Describes an IP range used in a security group.

", + "refs": { + "IPRangeList$member": null + } + }, + "IPRangeList": { + "base": null, + "refs": { + "ClusterSecurityGroup$IPRanges": "

A list of IP ranges (CIDR blocks) that are permitted to access clusters associated with this cluster security group.

" + } + }, + "ImportTablesCompleted": { + "base": null, + "refs": { + "ResizeProgressMessage$ImportTablesCompleted": "

The names of tables that have been completely imported .

Valid Values: List of table names.

" + } + }, + "ImportTablesInProgress": { + "base": null, + "refs": { + "ResizeProgressMessage$ImportTablesInProgress": "

The names of tables that are being currently imported.

Valid Values: List of table names.

" + } + }, + "ImportTablesNotStarted": { + "base": null, + "refs": { + "ResizeProgressMessage$ImportTablesNotStarted": "

The names of tables that have not been yet imported.

Valid Values: List of table names

" + } + }, + "IncompatibleOrderableOptions": { + "base": "

The specified options are incompatible.

", + "refs": { + } + }, + "InsufficientClusterCapacityFault": { + "base": "

The number of nodes specified exceeds the allotted capacity of the cluster.

", + "refs": { + } + }, + "InsufficientS3BucketPolicyFault": { + "base": "

The cluster does not have read bucket or put object permissions on the S3 bucket specified when enabling logging.

", + "refs": { + } + }, + "Integer": { + "base": null, + "refs": { + "Cluster$AutomatedSnapshotRetentionPeriod": "

The number of days that automatic cluster snapshots are retained.

", + "Cluster$NumberOfNodes": "

The number of compute nodes in the cluster.

", + "Endpoint$Port": "

The port that the database engine is listening on.

", + "ModifySnapshotCopyRetentionPeriodMessage$RetentionPeriod": "

The number of days to retain automated snapshots in the destination region after they are copied from the source region.

If you decrease the retention period for automated snapshots that are copied to a destination region, Amazon Redshift will delete any existing automated snapshots that were copied to the destination region and that fall outside of the new retention period.

Constraints: Must be at least 1 and no more than 35.

", + "ReservedNode$Duration": "

The duration of the node reservation in seconds.

", + "ReservedNode$NodeCount": "

The number of reserved compute nodes.

", + "ReservedNodeOffering$Duration": "

The duration, in seconds, for which the offering will reserve the node.

", + "Snapshot$Port": "

The port that the cluster is listening on.

", + "Snapshot$NumberOfNodes": "

The number of nodes in the cluster.

" + } + }, + "IntegerOptional": { + "base": null, + "refs": { + "CreateClusterMessage$AutomatedSnapshotRetentionPeriod": "

The number of days that automated snapshots are retained. If the value is 0, automated snapshots are disabled. Even if automated snapshots are disabled, you can still create manual snapshots when you want with CreateClusterSnapshot.

Default: 1

Constraints: Must be a value from 0 to 35.

", + "CreateClusterMessage$Port": "

The port number on which the cluster accepts incoming connections.

The cluster is accessible only via the JDBC and ODBC connection strings. Part of the connection string requires the port on which the cluster will listen for incoming connections.

Default: 5439

Valid Values: 1150-65535

", + "CreateClusterMessage$NumberOfNodes": "

The number of compute nodes in the cluster. This parameter is required when the ClusterType parameter is specified as multi-node.

For information about determining how many nodes you need, go to Working with Clusters in the Amazon Redshift Cluster Management Guide.

If you don't specify this parameter, you get a single-node cluster. When requesting a multi-node cluster, you must specify the number of nodes that you want in the cluster.

Default: 1

Constraints: Value must be at least 1 and no more than 100.

", + "DescribeClusterParameterGroupsMessage$MaxRecords": "

The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

Default: 100

Constraints: minimum 20, maximum 100.

", + "DescribeClusterParametersMessage$MaxRecords": "

The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

Default: 100

Constraints: minimum 20, maximum 100.

", + "DescribeClusterSecurityGroupsMessage$MaxRecords": "

The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

Default: 100

Constraints: minimum 20, maximum 100.

", + "DescribeClusterSnapshotsMessage$MaxRecords": "

The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

Default: 100

Constraints: minimum 20, maximum 100.

", + "DescribeClusterSubnetGroupsMessage$MaxRecords": "

The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

Default: 100

Constraints: minimum 20, maximum 100.

", + "DescribeClusterVersionsMessage$MaxRecords": "

The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

Default: 100

Constraints: minimum 20, maximum 100.

", + "DescribeClustersMessage$MaxRecords": "

The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

Default: 100

Constraints: minimum 20, maximum 100.

", + "DescribeDefaultClusterParametersMessage$MaxRecords": "

The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

Default: 100

Constraints: minimum 20, maximum 100.

", + "DescribeEventSubscriptionsMessage$MaxRecords": "

The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

Default: 100

Constraints: minimum 20, maximum 100.

", + "DescribeEventsMessage$Duration": "

The number of minutes prior to the time of the request for which to retrieve events. For example, if the request is sent at 18:00 and you specify a duration of 60, then only events which have occurred after 17:00 will be returned.

Default: 60

", + "DescribeEventsMessage$MaxRecords": "

The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

Default: 100

Constraints: minimum 20, maximum 100.

", + "DescribeHsmClientCertificatesMessage$MaxRecords": "

The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

Default: 100

Constraints: minimum 20, maximum 100.

", + "DescribeHsmConfigurationsMessage$MaxRecords": "

The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

Default: 100

Constraints: minimum 20, maximum 100.

", + "DescribeOrderableClusterOptionsMessage$MaxRecords": "

The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

Default: 100

Constraints: minimum 20, maximum 100.

", + "DescribeReservedNodeOfferingsMessage$MaxRecords": "

The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

Default: 100

Constraints: minimum 20, maximum 100.

", + "DescribeReservedNodesMessage$MaxRecords": "

The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

Default: 100

Constraints: minimum 20, maximum 100.

", + "DescribeTagsMessage$MaxRecords": "

The maximum number or response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.

", + "EnableSnapshotCopyMessage$RetentionPeriod": "

The number of days to retain automated snapshots in the destination region after they are copied from the source region.

Default: 7.

Constraints: Must be at least 1 and no more than 35.

", + "ModifyClusterMessage$NumberOfNodes": "

The new number of nodes of the cluster. If you specify a new number of nodes, you must also specify the node type parameter.

When you submit your request to resize a cluster, Amazon Redshift sets access permissions for the cluster to read-only. After Amazon Redshift provisions a new cluster according to your resize requirements, there will be a temporary outage while the old cluster is deleted and your connection is switched to the new cluster. When the new connection is complete, the original access permissions for the cluster are restored. You can use DescribeResize to track the progress of the resize request.

Valid Values: Integer greater than 0.

", + "ModifyClusterMessage$AutomatedSnapshotRetentionPeriod": "

The number of days that automated snapshots are retained. If the value is 0, automated snapshots are disabled. Even if automated snapshots are disabled, you can still create manual snapshots when you want with CreateClusterSnapshot.

If you decrease the automated snapshot retention period from its current value, existing automated snapshots that fall outside of the new retention period will be immediately deleted.

Default: Uses existing setting.

Constraints: Must be a value from 0 to 35.

", + "PendingModifiedValues$NumberOfNodes": "

The pending or in-progress change of the number of nodes in the cluster.

", + "PendingModifiedValues$AutomatedSnapshotRetentionPeriod": "

The pending or in-progress change of the automated snapshot retention period.

", + "PurchaseReservedNodeOfferingMessage$NodeCount": "

The number of reserved nodes you want to purchase.

Default: 1

", + "ResizeProgressMessage$TargetNumberOfNodes": "

The number of nodes that the cluster will have after the resize operation is complete.

", + "RestoreFromClusterSnapshotMessage$Port": "

The port number on which the cluster accepts connections.

Default: The same port as the original cluster.

Constraints: Must be between 1115 and 65535.

", + "RestoreFromClusterSnapshotMessage$AutomatedSnapshotRetentionPeriod": "

The number of days that automated snapshots are retained. If the value is 0, automated snapshots are disabled. Even if automated snapshots are disabled, you can still create manual snapshots when you want with CreateClusterSnapshot.

Default: The value selected for the cluster from which the snapshot was taken.

Constraints: Must be a value from 0 to 35.

" + } + }, + "InvalidClusterParameterGroupStateFault": { + "base": "

The cluster parameter group action can not be completed because another task is in progress that involves the parameter group. Wait a few moments and try the operation again.

", + "refs": { + } + }, + "InvalidClusterSecurityGroupStateFault": { + "base": "

The state of the cluster security group is not available.

", + "refs": { + } + }, + "InvalidClusterSnapshotStateFault": { + "base": "

The state of the cluster snapshot is not available, or other accounts are authorized to access the snapshot.

", + "refs": { + } + }, + "InvalidClusterStateFault": { + "base": "

The specified cluster is not in the available state.

", + "refs": { + } + }, + "InvalidClusterSubnetGroupStateFault": { + "base": "

The cluster subnet group cannot be deleted because it is in use.

", + "refs": { + } + }, + "InvalidClusterSubnetStateFault": { + "base": "

The state of the subnet is invalid.

", + "refs": { + } + }, + "InvalidElasticIpFault": { + "base": "

The Elastic IP (EIP) is invalid or cannot be found.

", + "refs": { + } + }, + "InvalidHsmClientCertificateStateFault": { + "base": "

The specified HSM client certificate is not in the available state, or it is still in use by one or more Amazon Redshift clusters.

", + "refs": { + } + }, + "InvalidHsmConfigurationStateFault": { + "base": "

The specified HSM configuration is not in the available state, or it is still in use by one or more Amazon Redshift clusters.

", + "refs": { + } + }, + "InvalidRestoreFault": { + "base": "

The restore is invalid.

", + "refs": { + } + }, + "InvalidS3BucketNameFault": { + "base": "

The S3 bucket name is invalid. For more information about naming rules, go to Bucket Restrictions and Limitations in the Amazon Simple Storage Service (S3) Developer Guide.

", + "refs": { + } + }, + "InvalidS3KeyPrefixFault": { + "base": "

The string specified for the logging S3 key prefix does not comply with the documented constraints.

", + "refs": { + } + }, + "InvalidSubnet": { + "base": "

The requested subnet is not valid, or not all of the subnets are in the same VPC.

", + "refs": { + } + }, + "InvalidSubscriptionStateFault": { + "base": "

The subscription request is invalid because it is a duplicate request. This subscription request is already in progress.

", + "refs": { + } + }, + "InvalidTagFault": { + "base": "

The tag is invalid.

", + "refs": { + } + }, + "InvalidVPCNetworkStateFault": { + "base": "

The cluster subnet group does not cover all Availability Zones.

", + "refs": { + } + }, + "LoggingStatus": { + "base": "

Describes the status of logging for a cluster.

", + "refs": { + } + }, + "Long": { + "base": null, + "refs": { + "ClusterSnapshotCopyStatus$RetentionPeriod": "

The number of days that automated snapshots are retained in the destination region after they are copied from a source region.

", + "RestoreStatus$SnapshotSizeInMegaBytes": "

The size of the set of snapshot data used to restore the cluster.

", + "RestoreStatus$ProgressInMegaBytes": "

The number of megabytes that have been transferred from snapshot storage.

", + "RestoreStatus$ElapsedTimeInSeconds": "

The amount of time an in-progress restore has been running, or the amount of time it took a completed restore to finish.

", + "RestoreStatus$EstimatedTimeToCompletionInSeconds": "

The estimate of the time remaining before the restore will complete. Returns 0 for a completed restore.

", + "Snapshot$EstimatedSecondsToCompletion": "

The estimate of the time remaining before the snapshot backup will complete. Returns 0 for a completed backup.

", + "Snapshot$ElapsedTimeInSeconds": "

The amount of time an in-progress snapshot backup has been running, or the amount of time it took a completed backup to finish.

" + } + }, + "LongOptional": { + "base": null, + "refs": { + "ResizeProgressMessage$TotalResizeDataInMegaBytes": "

The estimated total amount of data, in megabytes, on the cluster before the resize operation began.

", + "ResizeProgressMessage$ProgressInMegaBytes": "

While the resize operation is in progress, this value shows the current amount of data, in megabytes, that has been processed so far. When the resize operation is complete, this value shows the total amount of data, in megabytes, on the cluster, which may be more or less than TotalResizeDataInMegaBytes (the estimated total amount of data before resize).

", + "ResizeProgressMessage$ElapsedTimeInSeconds": "

The amount of seconds that have elapsed since the resize operation began. After the resize operation completes, this value shows the total actual time, in seconds, for the resize operation.

", + "ResizeProgressMessage$EstimatedTimeToCompletionInSeconds": "

The estimated time remaining, in seconds, until the resize operation is complete. This value is calculated based on the average resize rate and the estimated amount of data remaining to be processed. Once the resize operation is complete, this value will be 0.

" + } + }, + "ModifyClusterMessage": { + "base": "

", + "refs": { + } + }, + "ModifyClusterParameterGroupMessage": { + "base": "

", + "refs": { + } + }, + "ModifyClusterSubnetGroupMessage": { + "base": "

", + "refs": { + } + }, + "ModifyEventSubscriptionMessage": { + "base": "

", + "refs": { + } + }, + "ModifySnapshotCopyRetentionPeriodMessage": { + "base": "

", + "refs": { + } + }, + "NumberOfNodesPerClusterLimitExceededFault": { + "base": "

The operation would exceed the number of nodes allowed for a cluster.

", + "refs": { + } + }, + "NumberOfNodesQuotaExceededFault": { + "base": "

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.

", + "refs": { + } + }, + "OrderableClusterOption": { + "base": "

Describes an orderable cluster option.

", + "refs": { + "OrderableClusterOptionsList$member": null + } + }, + "OrderableClusterOptionsList": { + "base": null, + "refs": { + "OrderableClusterOptionsMessage$OrderableClusterOptions": "

An OrderableClusterOption structure containing information about orderable options for the Cluster.

" + } + }, + "OrderableClusterOptionsMessage": { + "base": "

Contains the output from the DescribeOrderableClusterOptions action.

", + "refs": { + } + }, + "Parameter": { + "base": "

Describes a parameter in a cluster parameter group.

", + "refs": { + "ParametersList$member": null + } + }, + "ParameterGroupList": { + "base": null, + "refs": { + "ClusterParameterGroupsMessage$ParameterGroups": "

A list of ClusterParameterGroup instances. Each instance describes one cluster parameter group.

" + } + }, + "ParametersList": { + "base": null, + "refs": { + "ClusterParameterGroupDetails$Parameters": "

A list of Parameter instances. Each instance lists the parameters of one cluster parameter group.

", + "DefaultClusterParameters$Parameters": "

The list of cluster default parameters.

", + "ModifyClusterParameterGroupMessage$Parameters": "

An array of parameters to be modified. A maximum of 20 parameters can be modified in a single request.

For each parameter to be modified, you must supply at least the parameter name and parameter value; other name-value pairs of the parameter are optional.

For the workload management (WLM) configuration, you must supply all the name-value pairs in the wlm_json_configuration parameter.

", + "ResetClusterParameterGroupMessage$Parameters": "

An array of names of parameters to be reset. If ResetAllParameters option is not used, then at least one parameter name must be supplied.

Constraints: A maximum of 20 parameters can be reset in a single request.

" + } + }, + "PendingModifiedValues": { + "base": "

Describes cluster attributes that are in a pending state. A change to one or more the attributes was requested and is in progress or will be applied.

", + "refs": { + "Cluster$PendingModifiedValues": "

If present, changes to the cluster are pending. Specific pending changes are identified by subelements.

" + } + }, + "PurchaseReservedNodeOfferingMessage": { + "base": "

", + "refs": { + } + }, + "RebootClusterMessage": { + "base": "

", + "refs": { + } + }, + "RecurringCharge": { + "base": "

Describes a recurring charge.

", + "refs": { + "RecurringChargeList$member": null + } + }, + "RecurringChargeList": { + "base": null, + "refs": { + "ReservedNode$RecurringCharges": "

The recurring charges for the reserved node.

", + "ReservedNodeOffering$RecurringCharges": "

The charge to your account regardless of whether you are creating any clusters using the node offering. Recurring charges are only in effect for heavy-utilization reserved nodes.

" + } + }, + "ReservedNode": { + "base": "

Describes a reserved node.

", + "refs": { + "ReservedNodeList$member": null, + "PurchaseReservedNodeOfferingResult$ReservedNode": null + } + }, + "ReservedNodeAlreadyExistsFault": { + "base": "

User already has a reservation with the given identifier.

", + "refs": { + } + }, + "ReservedNodeList": { + "base": null, + "refs": { + "ReservedNodesMessage$ReservedNodes": "

The list of reserved nodes.

" + } + }, + "ReservedNodeNotFoundFault": { + "base": "

The specified reserved compute node not found.

", + "refs": { + } + }, + "ReservedNodeOffering": { + "base": "

Describes a reserved node offering.

", + "refs": { + "ReservedNodeOfferingList$member": null + } + }, + "ReservedNodeOfferingList": { + "base": null, + "refs": { + "ReservedNodeOfferingsMessage$ReservedNodeOfferings": "

A list of reserved node offerings.

" + } + }, + "ReservedNodeOfferingNotFoundFault": { + "base": "

Specified offering does not exist.

", + "refs": { + } + }, + "ReservedNodeOfferingsMessage": { + "base": "

Contains the output from the DescribeReservedNodeOfferings action.

", + "refs": { + } + }, + "ReservedNodeQuotaExceededFault": { + "base": "

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.

", + "refs": { + } + }, + "ReservedNodesMessage": { + "base": "

Contains the output from the DescribeReservedNodes action.

", + "refs": { + } + }, + "ResetClusterParameterGroupMessage": { + "base": "

", + "refs": { + } + }, + "ResizeNotFoundFault": { + "base": "

A resize operation for the specified cluster is not found.

", + "refs": { + } + }, + "ResizeProgressMessage": { + "base": "

Describes the result of a cluster resize operation.

", + "refs": { + } + }, + "ResourceNotFoundFault": { + "base": "

The resource could not be found.

", + "refs": { + } + }, + "RestoreFromClusterSnapshotMessage": { + "base": "

", + "refs": { + } + }, + "RestoreStatus": { + "base": "

Describes the status of a cluster restore action. Returns null if the cluster was not created by restoring a snapshot.

", + "refs": { + "Cluster$RestoreStatus": "

Describes the status of a cluster restore action. Returns null if the cluster was not created by restoring a snapshot.

" + } + }, + "RevokeClusterSecurityGroupIngressMessage": { + "base": "

???

", + "refs": { + } + }, + "RevokeSnapshotAccessMessage": { + "base": "

", + "refs": { + } + }, + "RotateEncryptionKeyMessage": { + "base": "

", + "refs": { + } + }, + "SNSInvalidTopicFault": { + "base": "

Amazon SNS has responded that there is a problem with the specified Amazon SNS topic.

", + "refs": { + } + }, + "SNSNoAuthorizationFault": { + "base": "

You do not have permission to publish to the specified Amazon SNS topic.

", + "refs": { + } + }, + "SNSTopicArnNotFoundFault": { + "base": "

An Amazon SNS topic with the specified Amazon Resource Name (ARN) does not exist.

", + "refs": { + } + }, + "Snapshot": { + "base": "

Describes a snapshot.

", + "refs": { + "SnapshotList$member": null, + "AuthorizeSnapshotAccessResult$Snapshot": null, + "CopyClusterSnapshotResult$Snapshot": null, + "CreateClusterSnapshotResult$Snapshot": null, + "DeleteClusterSnapshotResult$Snapshot": null, + "RevokeSnapshotAccessResult$Snapshot": null + } + }, + "SnapshotCopyAlreadyDisabledFault": { + "base": "

The cluster already has cross-region snapshot copy disabled.

", + "refs": { + } + }, + "SnapshotCopyAlreadyEnabledFault": { + "base": "

The cluster already has cross-region snapshot copy enabled.

", + "refs": { + } + }, + "SnapshotCopyDisabledFault": { + "base": "

Cross-region snapshot copy was temporarily disabled. Try your request again.

", + "refs": { + } + }, + "SnapshotList": { + "base": null, + "refs": { + "SnapshotMessage$Snapshots": "

A list of Snapshot instances.

" + } + }, + "SnapshotMessage": { + "base": "

Contains the output from the DescribeClusterSnapshots action.

", + "refs": { + } + }, + "SourceIdsList": { + "base": null, + "refs": { + "CreateEventSubscriptionMessage$SourceIds": "

A list of one or more identifiers of Amazon Redshift source objects. All of the objects must be of the same type as was specified in the source type parameter. The event subscription will return only events generated by the specified objects. If not specified, then events are returned for all objects within the source type specified.

Example: my-cluster-1, my-cluster-2

Example: my-snapshot-20131010

", + "EventSubscription$SourceIdsList": "

A list of the sources that publish events to the Amazon Redshift event notification subscription.

", + "ModifyEventSubscriptionMessage$SourceIds": "

A list of one or more identifiers of Amazon Redshift source objects. All of the objects must be of the same type as was specified in the source type parameter. The event subscription will return only events generated by the specified objects. If not specified, then events are returned for all objects within the source type specified.

Example: my-cluster-1, my-cluster-2

Example: my-snapshot-20131010

" + } + }, + "SourceNotFoundFault": { + "base": "

The specified Amazon Redshift event source could not be found.

", + "refs": { + } + }, + "SourceType": { + "base": null, + "refs": { + "DescribeEventsMessage$SourceType": "

The event source to retrieve events for. If no value is specified, all events are returned.

Constraints:

If SourceType is supplied, SourceIdentifier must also be provided.

  • Specify cluster when SourceIdentifier is a cluster identifier.
  • Specify cluster-security-group when SourceIdentifier is a cluster security group name.
  • Specify cluster-parameter-group when SourceIdentifier is a cluster parameter group name.
  • Specify cluster-snapshot when SourceIdentifier is a cluster snapshot identifier.
", + "Event$SourceType": "

The source type for this event.

" + } + }, + "String": { + "base": null, + "refs": { + "AccountWithRestoreAccess$AccountId": "

The identifier of an AWS customer account authorized to restore a snapshot.

", + "AuthorizeClusterSecurityGroupIngressMessage$ClusterSecurityGroupName": "

The name of the security group to which the ingress rule is added.

", + "AuthorizeClusterSecurityGroupIngressMessage$CIDRIP": "

The IP range to be added the Amazon Redshift security group.

", + "AuthorizeClusterSecurityGroupIngressMessage$EC2SecurityGroupName": "

The EC2 security group to be added the Amazon Redshift security group.

", + "AuthorizeClusterSecurityGroupIngressMessage$EC2SecurityGroupOwnerId": "

The AWS account number of the owner of the security group specified by the EC2SecurityGroupName parameter. The AWS Access Key ID is not an acceptable value.

Example: 111122223333

", + "AuthorizeSnapshotAccessMessage$SnapshotIdentifier": "

The identifier of the snapshot the account is authorized to restore.

", + "AuthorizeSnapshotAccessMessage$SnapshotClusterIdentifier": "

The identifier of the cluster the snapshot was created from. This parameter is required if your IAM user has a policy containing a snapshot resource element that specifies anything other than * for the cluster name.

", + "AuthorizeSnapshotAccessMessage$AccountWithRestoreAccess": "

The identifier of the AWS customer account authorized to restore the specified snapshot.

", + "AvailabilityZone$Name": "

The name of the availability zone.

", + "Cluster$ClusterIdentifier": "

The unique identifier of the cluster.

", + "Cluster$NodeType": "

The node type for the nodes in the cluster.

", + "Cluster$ClusterStatus": "

The current state of this cluster. Possible values include available, creating, deleting, rebooting, renaming, and resizing.

", + "Cluster$ModifyStatus": "

The status of a modify operation, if any, initiated for the cluster.

", + "Cluster$MasterUsername": "

The master user name for the cluster. This name is used to connect to the database that is specified in DBName.

", + "Cluster$DBName": "

The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named \"dev\" was created by default.

", + "Cluster$ClusterSubnetGroupName": "

The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.

", + "Cluster$VpcId": "

The identifier of the VPC the cluster is in, if the cluster is in a VPC.

", + "Cluster$AvailabilityZone": "

The name of the Availability Zone in which the cluster is located.

", + "Cluster$PreferredMaintenanceWindow": "

The weekly time range (in UTC) during which system maintenance can occur.

", + "Cluster$ClusterVersion": "

The version ID of the Amazon Redshift engine that is running on the cluster.

", + "Cluster$ClusterPublicKey": "

The public key for the cluster.

", + "Cluster$ClusterRevisionNumber": "

The specific revision number of the database in the cluster.

", + "Cluster$KmsKeyId": "

The AWS Key Management Service (KMS) key ID of the encryption key used to encrypt data in the cluster.

", + "ClusterNode$NodeRole": "

Whether the node is a leader node or a compute node.

", + "ClusterNode$PrivateIPAddress": "

The private IP address of a node within a cluster.

", + "ClusterNode$PublicIPAddress": "

The public IP address of a node within a cluster.

", + "ClusterParameterGroup$ParameterGroupName": "

The name of the cluster parameter group.

", + "ClusterParameterGroup$ParameterGroupFamily": "

The name of the cluster parameter group family that this cluster parameter group is compatible with.

", + "ClusterParameterGroup$Description": "

The description of the parameter group.

", + "ClusterParameterGroupDetails$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request.

", + "ClusterParameterGroupNameMessage$ParameterGroupName": "

The name of the cluster parameter group.

", + "ClusterParameterGroupNameMessage$ParameterGroupStatus": "

The status of the parameter group. For example, if you made a change to a parameter group name-value pair, then the change could be pending a reboot of an associated cluster.

", + "ClusterParameterGroupStatus$ParameterGroupName": "

The name of the cluster parameter group.

", + "ClusterParameterGroupStatus$ParameterApplyStatus": "

The status of parameter updates.

", + "ClusterParameterGroupsMessage$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request.

", + "ClusterSecurityGroup$ClusterSecurityGroupName": "

The name of the cluster security group to which the operation was applied.

", + "ClusterSecurityGroup$Description": "

A description of the security group.

", + "ClusterSecurityGroupMembership$ClusterSecurityGroupName": "

The name of the cluster security group.

", + "ClusterSecurityGroupMembership$Status": "

The status of the cluster security group.

", + "ClusterSecurityGroupMessage$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request.

", + "ClusterSecurityGroupNameList$member": null, + "ClusterSnapshotCopyStatus$DestinationRegion": "

The destination region that snapshots are automatically copied to when cross-region snapshot copy is enabled.

", + "ClusterSubnetGroup$ClusterSubnetGroupName": "

The name of the cluster subnet group.

", + "ClusterSubnetGroup$Description": "

The description of the cluster subnet group.

", + "ClusterSubnetGroup$VpcId": "

The VPC ID of the cluster subnet group.

", + "ClusterSubnetGroup$SubnetGroupStatus": "

The status of the cluster subnet group. Possible values are Complete, Incomplete and Invalid.

", + "ClusterSubnetGroupMessage$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request.

", + "ClusterVersion$ClusterVersion": "

The version number used by the cluster.

", + "ClusterVersion$ClusterParameterGroupFamily": "

The name of the cluster parameter group family for the cluster.

", + "ClusterVersion$Description": "

The description of the cluster version.

", + "ClusterVersionsMessage$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request.

", + "ClustersMessage$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request.

", + "CopyClusterSnapshotMessage$SourceSnapshotIdentifier": "

The identifier for the source snapshot.

Constraints:

  • Must be the identifier for a valid automated snapshot whose state is available.
", + "CopyClusterSnapshotMessage$SourceSnapshotClusterIdentifier": "

The identifier of the cluster the source snapshot was created from. This parameter is required if your IAM user has a policy containing a snapshot resource element that specifies anything other than * for the cluster name.

Constraints:

  • Must be the identifier for a valid cluster.
", + "CopyClusterSnapshotMessage$TargetSnapshotIdentifier": "

The identifier given to the new manual snapshot.

Constraints:

  • Cannot be null, empty, or blank.
  • Must contain from 1 to 255 alphanumeric characters or hyphens.
  • First character must be a letter.
  • Cannot end with a hyphen or contain two consecutive hyphens.
  • Must be unique for the AWS account that is making the request.
", + "CreateClusterMessage$DBName": "

The name of the first database to be created when the cluster is created.

To create additional databases after the cluster is created, connect to the cluster with a SQL client and use SQL commands to create a database. For more information, go to Create a Database in the Amazon Redshift Database Developer Guide.

Default: dev

Constraints:

  • Must contain 1 to 64 alphanumeric characters.
  • Must contain only lowercase letters.
  • Cannot be a word that is reserved by the service. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide.
", + "CreateClusterMessage$ClusterIdentifier": "

A unique identifier for the cluster. You use this identifier to refer to the cluster for any subsequent cluster operations such as deleting or modifying. The identifier also appears in the Amazon Redshift console.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens.
  • Alphabetic characters must be lowercase.
  • First character must be a letter.
  • Cannot end with a hyphen or contain two consecutive hyphens.
  • Must be unique for all clusters within an AWS account.

Example: myexamplecluster

", + "CreateClusterMessage$ClusterType": "

The type of the cluster. When cluster type is specified as

  • single-node, the NumberOfNodes parameter is not required.
  • multi-node, the NumberOfNodes parameter is required.

Valid Values: multi-node | single-node

Default: multi-node

", + "CreateClusterMessage$NodeType": "

The node type to be provisioned for the cluster. For information about node types, go to Working with Clusters in the Amazon Redshift Cluster Management Guide.

Valid Values: dw1.xlarge | dw1.8xlarge | dw2.large | dw2.8xlarge.

", + "CreateClusterMessage$MasterUsername": "

The user name associated with the master user account for the cluster that is being created.

Constraints:

  • Must be 1 - 128 alphanumeric characters.
  • First character must be a letter.
  • Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide.
", + "CreateClusterMessage$MasterUserPassword": "

The password associated with the master user account for the cluster that is being created.

Constraints:

  • Must be between 8 and 64 characters in length.
  • Must contain at least one uppercase letter.
  • Must contain at least one lowercase letter.
  • Must contain one number.
  • Can be any printable ASCII character (ASCII code 33 to 126) except ' (single quote), \" (double quote), \\, /, @, or space.
", + "CreateClusterMessage$ClusterSubnetGroupName": "

The name of a cluster subnet group to be associated with this cluster.

If this parameter is not provided the resulting cluster will be deployed outside virtual private cloud (VPC).

", + "CreateClusterMessage$AvailabilityZone": "

The EC2 Availability Zone (AZ) in which you want Amazon Redshift to provision the cluster. For example, if you have several EC2 instances running in a specific Availability Zone, then you might want the cluster to be provisioned in the same zone in order to decrease network latency.

Default: A random, system-chosen Availability Zone in the region that is specified by the endpoint.

Example: us-east-1d

Constraint: The specified Availability Zone must be in the same region as the current endpoint.

", + "CreateClusterMessage$PreferredMaintenanceWindow": "

The weekly time range (in UTC) during which automated cluster maintenance can occur.

Format: ddd:hh24:mi-ddd:hh24:mi

Default: A 30-minute window selected at random from an 8-hour block of time per region, occurring on a random day of the week. For more information about the time blocks for each region, see Maintenance Windows in Amazon Redshift Cluster Management Guide.

Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun

Constraints: Minimum 30-minute window.

", + "CreateClusterMessage$ClusterParameterGroupName": "

The name of the parameter group to be associated with this cluster.

Default: The default Amazon Redshift cluster parameter group. For information about the default parameter group, go to Working with Amazon Redshift Parameter Groups

Constraints:

  • Must be 1 to 255 alphanumeric characters or hyphens.
  • First character must be a letter.
  • Cannot end with a hyphen or contain two consecutive hyphens.
", + "CreateClusterMessage$ClusterVersion": "

The version of the Amazon Redshift engine software that you want to deploy on the cluster.

The version selected runs on all the nodes in the cluster.

Constraints: Only version 1.0 is currently available.

Example: 1.0

", + "CreateClusterMessage$HsmClientCertificateIdentifier": "

Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.

", + "CreateClusterMessage$HsmConfigurationIdentifier": "

Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.

", + "CreateClusterMessage$ElasticIp": "

The Elastic IP (EIP) address for the cluster.

Constraints: The cluster must be provisioned in EC2-VPC and publicly-accessible through an Internet gateway. For more information about provisioning clusters in EC2-VPC, go to Supported Platforms to Launch Your Cluster in the Amazon Redshift Cluster Management Guide.

", + "CreateClusterMessage$KmsKeyId": "

The AWS Key Management Service (KMS) key ID of the encryption key that you want to use to encrypt data in the cluster.

", + "CreateClusterParameterGroupMessage$ParameterGroupName": "

The name of the cluster parameter group.

Constraints:

  • Must be 1 to 255 alphanumeric characters or hyphens
  • First character must be a letter.
  • Cannot end with a hyphen or contain two consecutive hyphens.
  • Must be unique withing your AWS account.
This value is stored as a lower-case string.", + "CreateClusterParameterGroupMessage$ParameterGroupFamily": "

The Amazon Redshift engine version to which the cluster parameter group applies. The cluster engine version determines the set of parameters.

To get a list of valid parameter group family names, you can call DescribeClusterParameterGroups. By default, Amazon Redshift returns a list of all the parameter groups that are owned by your AWS account, including the default parameter groups for each Amazon Redshift engine version. The parameter group family names associated with the default parameter groups provide you the valid values. For example, a valid family name is \"redshift-1.0\".

", + "CreateClusterParameterGroupMessage$Description": "

A description of the parameter group.

", + "CreateClusterSecurityGroupMessage$ClusterSecurityGroupName": "

The name for the security group. Amazon Redshift stores the value as a lowercase string.

Constraints:

  • Must contain no more than 255 alphanumeric characters or hyphens.
  • Must not be \"Default\".
  • Must be unique for all security groups that are created by your AWS account.

Example: examplesecuritygroup

", + "CreateClusterSecurityGroupMessage$Description": "

A description for the security group.

", + "CreateClusterSnapshotMessage$SnapshotIdentifier": "

A unique identifier for the snapshot that you are requesting. This identifier must be unique for all snapshots within the AWS account.

Constraints:

  • Cannot be null, empty, or blank
  • Must contain from 1 to 255 alphanumeric characters or hyphens
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-snapshot-id

", + "CreateClusterSnapshotMessage$ClusterIdentifier": "

The cluster identifier for which you want a snapshot.

", + "CreateClusterSubnetGroupMessage$ClusterSubnetGroupName": "

The name for the subnet group. Amazon Redshift stores the value as a lowercase string.

Constraints:

  • Must contain no more than 255 alphanumeric characters or hyphens.
  • Must not be \"Default\".
  • Must be unique for all subnet groups that are created by your AWS account.

Example: examplesubnetgroup

", + "CreateClusterSubnetGroupMessage$Description": "

A description for the subnet group.

", + "CreateEventSubscriptionMessage$SubscriptionName": "

The name of the event subscription to be created.

Constraints:

  • Cannot be null, empty, or blank.
  • Must contain from 1 to 255 alphanumeric characters or hyphens.
  • First character must be a letter.
  • Cannot end with a hyphen or contain two consecutive hyphens.
", + "CreateEventSubscriptionMessage$SnsTopicArn": "

The Amazon Resource Name (ARN) of the Amazon SNS topic used to transmit the event notifications. The ARN is created by Amazon SNS when you create a topic and subscribe to it.

", + "CreateEventSubscriptionMessage$SourceType": "

The type of source that will be generating the events. For example, if you want to be notified of events generated by a cluster, you would set this parameter to cluster. If this value is not specified, events are returned for all Amazon Redshift objects in your AWS account. You must specify a source type in order to specify source IDs.

Valid values: cluster, cluster-parameter-group, cluster-security-group, and cluster-snapshot.

", + "CreateEventSubscriptionMessage$Severity": "

Specifies the Amazon Redshift event severity to be published by the event notification subscription.

Values: ERROR, INFO

", + "CreateHsmClientCertificateMessage$HsmClientCertificateIdentifier": "

The identifier to be assigned to the new HSM client certificate that the cluster will use to connect to the HSM to use the database encryption keys.

", + "CreateHsmConfigurationMessage$HsmConfigurationIdentifier": "

The identifier to be assigned to the new Amazon Redshift HSM configuration.

", + "CreateHsmConfigurationMessage$Description": "

A text description of the HSM configuration to be created.

", + "CreateHsmConfigurationMessage$HsmIpAddress": "

The IP address that the Amazon Redshift cluster must use to access the HSM.

", + "CreateHsmConfigurationMessage$HsmPartitionName": "

The name of the partition in the HSM where the Amazon Redshift clusters will store their database encryption keys.

", + "CreateHsmConfigurationMessage$HsmPartitionPassword": "

The password required to access the HSM partition.

", + "CreateHsmConfigurationMessage$HsmServerPublicCertificate": "

The HSMs public certificate file. When using Cloud HSM, the file name is server.pem.

", + "CreateTagsMessage$ResourceName": "

The Amazon Resource Name (ARN) to which you want to add the tag or tags. For example, arn:aws:redshift:us-east-1:123456789:cluster:t1.

", + "DefaultClusterParameters$ParameterGroupFamily": "

The name of the cluster parameter group family to which the engine default parameters apply.

", + "DefaultClusterParameters$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request.

", + "DeleteClusterMessage$ClusterIdentifier": "

The identifier of the cluster to be deleted.

Constraints:

  • Must contain lowercase characters.
  • Must contain from 1 to 63 alphanumeric characters or hyphens.
  • First character must be a letter.
  • Cannot end with a hyphen or contain two consecutive hyphens.
", + "DeleteClusterMessage$FinalClusterSnapshotIdentifier": "

The identifier of the final snapshot that is to be created immediately before deleting the cluster. If this parameter is provided, SkipFinalClusterSnapshot must be false.

Constraints:

  • Must be 1 to 255 alphanumeric characters.
  • First character must be a letter.
  • Cannot end with a hyphen or contain two consecutive hyphens.
", + "DeleteClusterParameterGroupMessage$ParameterGroupName": "

The name of the parameter group to be deleted.

Constraints:

  • Must be the name of an existing cluster parameter group.
  • Cannot delete a default cluster parameter group.
", + "DeleteClusterSecurityGroupMessage$ClusterSecurityGroupName": "

The name of the cluster security group to be deleted.

", + "DeleteClusterSnapshotMessage$SnapshotIdentifier": "

The unique identifier of the manual snapshot to be deleted.

Constraints: Must be the name of an existing snapshot that is in the available state.

", + "DeleteClusterSnapshotMessage$SnapshotClusterIdentifier": "

The unique identifier of the cluster the snapshot was created from. This parameter is required if your IAM user has a policy containing a snapshot resource element that specifies anything other than * for the cluster name.

Constraints: Must be the name of valid cluster.

", + "DeleteClusterSubnetGroupMessage$ClusterSubnetGroupName": "

The name of the cluster subnet group name to be deleted.

", + "DeleteEventSubscriptionMessage$SubscriptionName": "

The name of the Amazon Redshift event notification subscription to be deleted.

", + "DeleteHsmClientCertificateMessage$HsmClientCertificateIdentifier": "

The identifier of the HSM client certificate to be deleted.

", + "DeleteHsmConfigurationMessage$HsmConfigurationIdentifier": "

The identifier of the Amazon Redshift HSM configuration to be deleted.

", + "DeleteTagsMessage$ResourceName": "

The Amazon Resource Name (ARN) from which you want to remove the tag or tags. For example, arn:aws:redshift:us-east-1:123456789:cluster:t1.

", + "DescribeClusterParameterGroupsMessage$ParameterGroupName": "

The name of a specific parameter group for which to return details. By default, details about all parameter groups and the default parameter group are returned.

", + "DescribeClusterParameterGroupsMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeClusterParameterGroups request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", + "DescribeClusterParametersMessage$ParameterGroupName": "

The name of a cluster parameter group for which to return details.

", + "DescribeClusterParametersMessage$Source": "

The parameter types to return. Specify user to show parameters that are different form the default. Similarly, specify engine-default to show parameters that are the same as the default parameter group.

Default: All parameter types returned.

Valid Values: user | engine-default

", + "DescribeClusterParametersMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeClusterParameters request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", + "DescribeClusterSecurityGroupsMessage$ClusterSecurityGroupName": "

The name of a cluster security group for which you are requesting details. You can specify either the Marker parameter or a ClusterSecurityGroupName parameter, but not both.

Example: securitygroup1

", + "DescribeClusterSecurityGroupsMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeClusterSecurityGroups request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

Constraints: You can specify either the ClusterSecurityGroupName parameter or the Marker parameter, but not both.

", + "DescribeClusterSnapshotsMessage$ClusterIdentifier": "

The identifier of the cluster for which information about snapshots is requested.

", + "DescribeClusterSnapshotsMessage$SnapshotIdentifier": "

The snapshot identifier of the snapshot about which to return information.

", + "DescribeClusterSnapshotsMessage$SnapshotType": "

The type of snapshots for which you are requesting information. By default, snapshots of all types are returned.

Valid Values: automated | manual

", + "DescribeClusterSnapshotsMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeClusterSnapshots request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", + "DescribeClusterSnapshotsMessage$OwnerAccount": "

The AWS customer account used to create or copy the snapshot. Use this field to filter the results to snapshots owned by a particular account. To describe snapshots you own, either specify your AWS customer account, or do not specify the parameter.

", + "DescribeClusterSubnetGroupsMessage$ClusterSubnetGroupName": "

The name of the cluster subnet group for which information is requested.

", + "DescribeClusterSubnetGroupsMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeClusterSubnetGroups request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", + "DescribeClusterVersionsMessage$ClusterVersion": "

The specific cluster version to return.

Example: 1.0

", + "DescribeClusterVersionsMessage$ClusterParameterGroupFamily": "

The name of a specific cluster parameter group family to return details for.

Constraints:

  • Must be 1 to 255 alphanumeric characters
  • First character must be a letter
  • Cannot end with a hyphen or contain two consecutive hyphens
", + "DescribeClusterVersionsMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeClusterVersions request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", + "DescribeClustersMessage$ClusterIdentifier": "

The unique identifier of a cluster whose properties you are requesting. This parameter is case sensitive.

The default is that all clusters defined for an account are returned.

", + "DescribeClustersMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeClusters request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

Constraints: You can specify either the ClusterIdentifier parameter or the Marker parameter, but not both.

", + "DescribeDefaultClusterParametersMessage$ParameterGroupFamily": "

The name of the cluster parameter group family.

", + "DescribeDefaultClusterParametersMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeDefaultClusterParameters request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", + "DescribeEventCategoriesMessage$SourceType": "

The source type, such as cluster or parameter group, to which the described event categories apply.

Valid values: cluster, snapshot, parameter group, and security group.

", + "DescribeEventSubscriptionsMessage$SubscriptionName": "

The name of the Amazon Redshift event notification subscription to be described.

", + "DescribeEventSubscriptionsMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeEventSubscriptions request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", + "DescribeEventsMessage$SourceIdentifier": "

The identifier of the event source for which events will be returned. If this parameter is not specified, then all sources are included in the response.

Constraints:

If SourceIdentifier is supplied, SourceType must also be provided.

  • Specify a cluster identifier when SourceType is cluster.
  • Specify a cluster security group name when SourceType is cluster-security-group.
  • Specify a cluster parameter group name when SourceType is cluster-parameter-group.
  • Specify a cluster snapshot identifier when SourceType is cluster-snapshot.
", + "DescribeEventsMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeEvents request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", + "DescribeHsmClientCertificatesMessage$HsmClientCertificateIdentifier": "

The identifier of a specific HSM client certificate for which you want information. If no identifier is specified, information is returned for all HSM client certificates owned by your AWS customer account.

", + "DescribeHsmClientCertificatesMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeHsmClientCertificates request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", + "DescribeHsmConfigurationsMessage$HsmConfigurationIdentifier": "

The identifier of a specific Amazon Redshift HSM configuration to be described. If no identifier is specified, information is returned for all HSM configurations owned by your AWS customer account.

", + "DescribeHsmConfigurationsMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeHsmConfigurations request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", + "DescribeLoggingStatusMessage$ClusterIdentifier": "

The identifier of the cluster to get the logging status from.

Example: examplecluster

", + "DescribeOrderableClusterOptionsMessage$ClusterVersion": "

The version filter value. Specify this parameter to show only the available offerings matching the specified version.

Default: All versions.

Constraints: Must be one of the version returned from DescribeClusterVersions.

", + "DescribeOrderableClusterOptionsMessage$NodeType": "

The node type filter value. Specify this parameter to show only the available offerings matching the specified node type.

", + "DescribeOrderableClusterOptionsMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeOrderableClusterOptions request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", + "DescribeReservedNodeOfferingsMessage$ReservedNodeOfferingId": "

The unique identifier for the offering.

", + "DescribeReservedNodeOfferingsMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeReservedNodeOfferings request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", + "DescribeReservedNodesMessage$ReservedNodeId": "

Identifier for the node reservation.

", + "DescribeReservedNodesMessage$Marker": "

An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeReservedNodes request exceed the value specified in MaxRecords, AWS returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

", + "DescribeResizeMessage$ClusterIdentifier": "

The unique identifier of a cluster whose resize progress you are requesting. This parameter is case-sensitive.

By default, resize operations for all clusters defined for an AWS account are returned.

", + "DescribeTagsMessage$ResourceName": "

The Amazon Resource Name (ARN) for which you want to describe the tag or tags. For example, arn:aws:redshift:us-east-1:123456789:cluster:t1.

", + "DescribeTagsMessage$ResourceType": "

The type of resource with which you want to view tags. Valid resource types are:

  • Cluster
  • CIDR/IP
  • EC2 security group
  • Snapshot
  • Cluster security group
  • Subnet group
  • HSM connection
  • HSM certificate
  • Parameter group

For more information about Amazon Redshift resource types and constructing ARNs, go to Constructing an Amazon Redshift Amazon Resource Name (ARN) in the Amazon Redshift Cluster Management Guide.

", + "DescribeTagsMessage$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the marker parameter and retrying the command. If the marker field is empty, all response records have been retrieved for the request.

", + "DisableLoggingMessage$ClusterIdentifier": "

The identifier of the cluster on which logging is to be stopped.

Example: examplecluster

", + "DisableSnapshotCopyMessage$ClusterIdentifier": "

The unique identifier of the source cluster that you want to disable copying of snapshots to a destination region.

Constraints: Must be the valid name of an existing cluster that has cross-region snapshot copy enabled.

", + "EC2SecurityGroup$Status": "

The status of the EC2 security group.

", + "EC2SecurityGroup$EC2SecurityGroupName": "

The name of the EC2 Security Group.

", + "EC2SecurityGroup$EC2SecurityGroupOwnerId": "

The AWS ID of the owner of the EC2 security group specified in the EC2SecurityGroupName field.

", + "ElasticIpStatus$ElasticIp": "

The elastic IP (EIP) address for the cluster.

", + "ElasticIpStatus$Status": "

Describes the status of the elastic IP (EIP) address.

", + "EnableLoggingMessage$ClusterIdentifier": "

The identifier of the cluster on which logging is to be started.

Example: examplecluster

", + "EnableLoggingMessage$BucketName": "

The name of an existing S3 bucket where the log files are to be stored.

Constraints:

  • Must be in the same region as the cluster
  • The cluster must have read bucket and put object permissions
", + "EnableLoggingMessage$S3KeyPrefix": "

The prefix applied to the log file names.

Constraints:

  • Cannot exceed 512 characters
  • Cannot contain spaces( ), double quotes (\"), single quotes ('), a backslash (\\), or control characters. The hexadecimal codes for invalid characters are:
    • x00 to x20
    • x22
    • x27
    • x5c
    • x7f or larger
", + "EnableSnapshotCopyMessage$ClusterIdentifier": "

The unique identifier of the source cluster to copy snapshots from.

Constraints: Must be the valid name of an existing cluster that does not already have cross-region snapshot copy enabled.

", + "EnableSnapshotCopyMessage$DestinationRegion": "

The destination region that you want to copy snapshots to.

Constraints: Must be the name of a valid region. For more information, see Regions and Endpoints in the Amazon Web Services General Reference.

", + "Endpoint$Address": "

The DNS address of the Cluster.

", + "Event$SourceIdentifier": "

The identifier for the source of the event.

", + "Event$Message": "

The text of this event.

", + "Event$Severity": "

The severity of the event.

Values: ERROR, INFO

", + "Event$EventId": "

The identifier of the event.

", + "EventCategoriesList$member": null, + "EventCategoriesMap$SourceType": "

The Amazon Redshift source type, such as cluster or cluster-snapshot, that the returned categories belong to.

", + "EventInfoMap$EventId": "

The identifier of an Amazon Redshift event.

", + "EventInfoMap$EventDescription": "

The description of an Amazon Redshift event.

", + "EventInfoMap$Severity": "

The severity of the event.

Values: ERROR, INFO

", + "EventSubscription$CustomerAwsId": "

The AWS customer account associated with the Amazon Redshift event notification subscription.

", + "EventSubscription$CustSubscriptionId": "

The name of the Amazon Redshift event notification subscription.

", + "EventSubscription$SnsTopicArn": "

The Amazon Resource Name (ARN) of the Amazon SNS topic used by the event notification subscription.

", + "EventSubscription$Status": "

The status of the Amazon Redshift event notification subscription.

Constraints:

  • Can be one of the following: active | no-permission | topic-not-exist
  • The status \"no-permission\" indicates that Amazon Redshift no longer has permission to post to the Amazon SNS topic. The status \"topic-not-exist\" indicates that the topic was deleted after the subscription was created.
", + "EventSubscription$SourceType": "

The source type of the events returned the Amazon Redshift event notification, such as cluster, or cluster-snapshot.

", + "EventSubscription$Severity": "

The event severity specified in the Amazon Redshift event notification subscription.

Values: ERROR, INFO

", + "EventSubscriptionsMessage$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request.

", + "EventsMessage$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request.

", + "HsmClientCertificate$HsmClientCertificateIdentifier": "

The identifier of the HSM client certificate.

", + "HsmClientCertificate$HsmClientCertificatePublicKey": "

The public key that the Amazon Redshift cluster will use to connect to the HSM. You must register the public key in the HSM.

", + "HsmClientCertificateMessage$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request.

", + "HsmConfiguration$HsmConfigurationIdentifier": "

The name of the Amazon Redshift HSM configuration.

", + "HsmConfiguration$Description": "

A text description of the HSM configuration.

", + "HsmConfiguration$HsmIpAddress": "

The IP address that the Amazon Redshift cluster must use to access the HSM.

", + "HsmConfiguration$HsmPartitionName": "

The name of the partition in the HSM where the Amazon Redshift clusters will store their database encryption keys.

", + "HsmConfigurationMessage$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request.

", + "HsmStatus$HsmClientCertificateIdentifier": "

Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.

", + "HsmStatus$HsmConfigurationIdentifier": "

Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.

", + "HsmStatus$Status": "

Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command.

Values: active, applying

", + "IPRange$Status": "

The status of the IP range, for example, \"authorized\".

", + "IPRange$CIDRIP": "

The IP range in Classless Inter-Domain Routing (CIDR) notation.

", + "ImportTablesCompleted$member": null, + "ImportTablesInProgress$member": null, + "ImportTablesNotStarted$member": null, + "LoggingStatus$BucketName": "

The name of the S3 bucket where the log files are stored.

", + "LoggingStatus$S3KeyPrefix": "

The prefix applied to the log file names.

", + "LoggingStatus$LastFailureMessage": "

The message indicating that logs failed to be delivered.

", + "ModifyClusterMessage$ClusterIdentifier": "

The unique identifier of the cluster to be modified.

Example: examplecluster

", + "ModifyClusterMessage$ClusterType": "

The new cluster type.

When you submit your cluster resize request, your existing cluster goes into a read-only mode. After Amazon Redshift provisions a new cluster based on your resize requirements, there will be outage for a period while the old cluster is deleted and your connection is switched to the new cluster. You can use DescribeResize to track the progress of the resize request.

Valid Values: multi-node | single-node

", + "ModifyClusterMessage$NodeType": "

The new node type of the cluster. If you specify a new node type, you must also specify the number of nodes parameter.

When you submit your request to resize a cluster, Amazon Redshift sets access permissions for the cluster to read-only. After Amazon Redshift provisions a new cluster according to your resize requirements, there will be a temporary outage while the old cluster is deleted and your connection is switched to the new cluster. When the new connection is complete, the original access permissions for the cluster are restored. You can use DescribeResize to track the progress of the resize request.

Valid Values: dw1.xlarge | dw1.8xlarge | dw2.large | dw2.8xlarge.

", + "ModifyClusterMessage$MasterUserPassword": "

The new password for the cluster master user. This change is asynchronously applied as soon as possible. Between the time of the request and the completion of the request, the MasterUserPassword element exists in the PendingModifiedValues element of the operation response. Operations never return the password, so this operation provides a way to regain access to the master user account for a cluster if the password is lost.

Default: Uses existing setting.

Constraints:

  • Must be between 8 and 64 characters in length.
  • Must contain at least one uppercase letter.
  • Must contain at least one lowercase letter.
  • Must contain one number.
  • Can be any printable ASCII character (ASCII code 33 to 126) except ' (single quote), \" (double quote), \\, /, @, or space.
", + "ModifyClusterMessage$ClusterParameterGroupName": "

The name of the cluster parameter group to apply to this cluster. This change is applied only after the cluster is rebooted. To reboot a cluster use RebootCluster.

Default: Uses existing setting.

Constraints: The cluster parameter group must be in the same parameter group family that matches the cluster version.

", + "ModifyClusterMessage$PreferredMaintenanceWindow": "

The weekly time range (in UTC) during which system maintenance can occur, if necessary. If system maintenance is necessary during the window, it may result in an outage.

This maintenance window change is made immediately. If the new maintenance window indicates the current time, there must be at least 120 minutes between the current time and end of the window in order to ensure that pending changes are applied.

Default: Uses existing setting.

Format: ddd:hh24:mi-ddd:hh24:mi, for example wed:07:30-wed:08:00.

Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun

Constraints: Must be at least 30 minutes.

", + "ModifyClusterMessage$ClusterVersion": "

The new version number of the Amazon Redshift engine to upgrade to.

For major version upgrades, if a non-default cluster parameter group is currently in use, a new cluster parameter group in the cluster parameter group family for the new version must be specified. The new cluster parameter group can be the default for that cluster parameter group family. For more information about managing parameter groups, go to Amazon Redshift Parameter Groups in the Amazon Redshift Cluster Management Guide.

Example: 1.0

", + "ModifyClusterMessage$HsmClientCertificateIdentifier": "

Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.

", + "ModifyClusterMessage$HsmConfigurationIdentifier": "

Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.

", + "ModifyClusterMessage$NewClusterIdentifier": "

The new identifier for the cluster.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens.
  • Alphabetic characters must be lowercase.
  • First character must be a letter.
  • Cannot end with a hyphen or contain two consecutive hyphens.
  • Must be unique for all clusters within an AWS account.

Example: examplecluster

", + "ModifyClusterParameterGroupMessage$ParameterGroupName": "

The name of the parameter group to be modified.

", + "ModifyClusterSubnetGroupMessage$ClusterSubnetGroupName": "

The name of the subnet group to be modified.

", + "ModifyClusterSubnetGroupMessage$Description": "

A text description of the subnet group to be modified.

", + "ModifyEventSubscriptionMessage$SubscriptionName": "

The name of the modified Amazon Redshift event notification subscription.

", + "ModifyEventSubscriptionMessage$SnsTopicArn": "

The Amazon Resource Name (ARN) of the SNS topic to be used by the event notification subscription.

", + "ModifyEventSubscriptionMessage$SourceType": "

The type of source that will be generating the events. For example, if you want to be notified of events generated by a cluster, you would set this parameter to cluster. If this value is not specified, events are returned for all Amazon Redshift objects in your AWS account. You must specify a source type in order to specify source IDs.

Valid values: cluster, cluster-parameter-group, cluster-security-group, and cluster-snapshot.

", + "ModifyEventSubscriptionMessage$Severity": "

Specifies the Amazon Redshift event severity to be published by the event notification subscription.

Values: ERROR, INFO

", + "ModifySnapshotCopyRetentionPeriodMessage$ClusterIdentifier": "

The unique identifier of the cluster for which you want to change the retention period for automated snapshots that are copied to a destination region.

Constraints: Must be the valid name of an existing cluster that has cross-region snapshot copy enabled.

", + "OrderableClusterOption$ClusterVersion": "

The version of the orderable cluster.

", + "OrderableClusterOption$ClusterType": "

The cluster type, for example multi-node.

", + "OrderableClusterOption$NodeType": "

The node type for the orderable cluster.

", + "OrderableClusterOptionsMessage$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request.

", + "Parameter$ParameterName": "

The name of the parameter.

", + "Parameter$ParameterValue": "

The value of the parameter.

", + "Parameter$Description": "

A description of the parameter.

", + "Parameter$Source": "

The source of the parameter value, such as \"engine-default\" or \"user\".

", + "Parameter$DataType": "

The data type of the parameter.

", + "Parameter$AllowedValues": "

The valid range of values for the parameter.

", + "Parameter$MinimumEngineVersion": "

The earliest engine version to which the parameter can apply.

", + "PendingModifiedValues$MasterUserPassword": "

The pending or in-progress change of the master user password for the cluster.

", + "PendingModifiedValues$NodeType": "

The pending or in-progress change of the cluster's node type.

", + "PendingModifiedValues$ClusterType": "

The pending or in-progress change of the cluster type.

", + "PendingModifiedValues$ClusterVersion": "

The pending or in-progress change of the service version.

", + "PendingModifiedValues$ClusterIdentifier": "

The pending or in-progress change of the new identifier for the cluster.

", + "PurchaseReservedNodeOfferingMessage$ReservedNodeOfferingId": "

The unique identifier of the reserved node offering you want to purchase.

", + "RebootClusterMessage$ClusterIdentifier": "

The cluster identifier.

", + "RecurringCharge$RecurringChargeFrequency": "

The frequency at which the recurring charge amount is applied.

", + "ReservedNode$ReservedNodeId": "

The unique identifier for the reservation.

", + "ReservedNode$ReservedNodeOfferingId": "

The identifier for the reserved node offering.

", + "ReservedNode$NodeType": "

The node type of the reserved node.

", + "ReservedNode$CurrencyCode": "

The currency code for the reserved cluster.

", + "ReservedNode$State": "

The state of the reserved compute node.

Possible Values:

  • pending-payment-This reserved node has recently been purchased, and the sale has been approved, but payment has not yet been confirmed.
  • active-This reserved node is owned by the caller and is available for use.
  • payment-failed-Payment failed for the purchase attempt.
", + "ReservedNode$OfferingType": "

The anticipated utilization of the reserved node, as defined in the reserved node offering.

", + "ReservedNodeOffering$ReservedNodeOfferingId": "

The offering identifier.

", + "ReservedNodeOffering$NodeType": "

The node type offered by the reserved node offering.

", + "ReservedNodeOffering$CurrencyCode": "

The currency code for the compute nodes offering.

", + "ReservedNodeOffering$OfferingType": "

The anticipated utilization of the reserved node, as defined in the reserved node offering.

", + "ReservedNodeOfferingsMessage$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request.

", + "ReservedNodesMessage$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request.

", + "ResetClusterParameterGroupMessage$ParameterGroupName": "

The name of the cluster parameter group to be reset.

", + "ResizeProgressMessage$TargetNodeType": "

The node type that the cluster will have after the resize operation is complete.

", + "ResizeProgressMessage$TargetClusterType": "

The cluster type after the resize operation is complete.

Valid Values: multi-node | single-node

", + "ResizeProgressMessage$Status": "

The status of the resize operation.

Valid Values: NONE | IN_PROGRESS | FAILED | SUCCEEDED

", + "RestoreFromClusterSnapshotMessage$ClusterIdentifier": "

The identifier of the cluster that will be created from restoring the snapshot.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens.
  • Alphabetic characters must be lowercase.
  • First character must be a letter.
  • Cannot end with a hyphen or contain two consecutive hyphens.
  • Must be unique for all clusters within an AWS account.

", + "RestoreFromClusterSnapshotMessage$SnapshotIdentifier": "

The name of the snapshot from which to create the new cluster. This parameter isn't case sensitive.

Example: my-snapshot-id

", + "RestoreFromClusterSnapshotMessage$SnapshotClusterIdentifier": "

The name of the cluster the source snapshot was created from. This parameter is required if your IAM user has a policy containing a snapshot resource element that specifies anything other than * for the cluster name.

", + "RestoreFromClusterSnapshotMessage$AvailabilityZone": "

The Amazon EC2 Availability Zone in which to restore the cluster.

Default: A random, system-chosen Availability Zone.

Example: us-east-1a

", + "RestoreFromClusterSnapshotMessage$ClusterSubnetGroupName": "

The name of the subnet group where you want to cluster restored.

A snapshot of cluster in VPC can be restored only in VPC. Therefore, you must provide subnet group name where you want the cluster restored.

", + "RestoreFromClusterSnapshotMessage$OwnerAccount": "

The AWS customer account used to create or copy the snapshot. Required if you are restoring a snapshot you do not own, optional if you own the snapshot.

", + "RestoreFromClusterSnapshotMessage$HsmClientCertificateIdentifier": "

Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.

", + "RestoreFromClusterSnapshotMessage$HsmConfigurationIdentifier": "

Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.

", + "RestoreFromClusterSnapshotMessage$ElasticIp": "

The elastic IP (EIP) address for the cluster.

", + "RestoreFromClusterSnapshotMessage$ClusterParameterGroupName": "

The name of the parameter group to be associated with this cluster.

Default: The default Amazon Redshift cluster parameter group. For information about the default parameter group, go to Working with Amazon Redshift Parameter Groups.

Constraints:

  • Must be 1 to 255 alphanumeric characters or hyphens.
  • First character must be a letter.
  • Cannot end with a hyphen or contain two consecutive hyphens.
", + "RestoreFromClusterSnapshotMessage$PreferredMaintenanceWindow": "

The weekly time range (in UTC) during which automated cluster maintenance can occur.

Format: ddd:hh24:mi-ddd:hh24:mi

Default: The value selected for the cluster from which the snapshot was taken. For more information about the time blocks for each region, see Maintenance Windows in Amazon Redshift Cluster Management Guide.

Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun

Constraints: Minimum 30-minute window.

", + "RestoreFromClusterSnapshotMessage$KmsKeyId": "

The AWS Key Management Service (KMS) key ID of the encryption key that you want to use to encrypt data in the cluster that you restore from a shared snapshot.

", + "RestoreStatus$Status": "

The status of the restore action. Returns starting, restoring, completed, or failed.

", + "RevokeClusterSecurityGroupIngressMessage$ClusterSecurityGroupName": "

The name of the security Group from which to revoke the ingress rule.

", + "RevokeClusterSecurityGroupIngressMessage$CIDRIP": "

The IP range for which to revoke access. This range must be a valid Classless Inter-Domain Routing (CIDR) block of IP addresses. If CIDRIP is specified, EC2SecurityGroupName and EC2SecurityGroupOwnerId cannot be provided.

", + "RevokeClusterSecurityGroupIngressMessage$EC2SecurityGroupName": "

The name of the EC2 Security Group whose access is to be revoked. If EC2SecurityGroupName is specified, EC2SecurityGroupOwnerId must also be provided and CIDRIP cannot be provided.

", + "RevokeClusterSecurityGroupIngressMessage$EC2SecurityGroupOwnerId": "

The AWS account number of the owner of the security group specified in the EC2SecurityGroupName parameter. The AWS access key ID is not an acceptable value. If EC2SecurityGroupOwnerId is specified, EC2SecurityGroupName must also be provided. and CIDRIP cannot be provided.

Example: 111122223333

", + "RevokeSnapshotAccessMessage$SnapshotIdentifier": "

The identifier of the snapshot that the account can no longer access.

", + "RevokeSnapshotAccessMessage$SnapshotClusterIdentifier": "

The identifier of the cluster the snapshot was created from. This parameter is required if your IAM user has a policy containing a snapshot resource element that specifies anything other than * for the cluster name.

", + "RevokeSnapshotAccessMessage$AccountWithRestoreAccess": "

The identifier of the AWS customer account that can no longer restore the specified snapshot.

", + "RotateEncryptionKeyMessage$ClusterIdentifier": "

The unique identifier of the cluster that you want to rotate the encryption keys for.

Constraints: Must be the name of valid cluster that has encryption enabled.

", + "Snapshot$SnapshotIdentifier": "

The snapshot identifier that is provided in the request.

", + "Snapshot$ClusterIdentifier": "

The identifier of the cluster for which the snapshot was taken.

", + "Snapshot$Status": "

The snapshot status. The value of the status depends on the API operation used.

", + "Snapshot$AvailabilityZone": "

The Availability Zone in which the cluster was created.

", + "Snapshot$MasterUsername": "

The master user name for the cluster.

", + "Snapshot$ClusterVersion": "

The version ID of the Amazon Redshift engine that is running on the cluster.

", + "Snapshot$SnapshotType": "

The snapshot type. Snapshots created using CreateClusterSnapshot and CopyClusterSnapshot will be of type \"manual\".

", + "Snapshot$NodeType": "

The node type of the nodes in the cluster.

", + "Snapshot$DBName": "

The name of the database that was created when the cluster was created.

", + "Snapshot$VpcId": "

The VPC identifier of the cluster if the snapshot is from a cluster in a VPC. Otherwise, this field is not in the output.

", + "Snapshot$KmsKeyId": "

The AWS Key Management Service (KMS) key ID of the encryption key that was used to encrypt data in the cluster from which the snapshot was taken.

", + "Snapshot$OwnerAccount": "

For manual snapshots, the AWS customer account used to create or copy the snapshot. For automatic snapshots, the owner of the cluster. The owner can perform all snapshot actions, such as sharing a manual snapshot.

", + "Snapshot$SourceRegion": "

The source region from which the snapshot was copied.

", + "SnapshotMessage$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request.

", + "SourceIdsList$member": null, + "Subnet$SubnetIdentifier": "

The identifier of the subnet.

", + "Subnet$SubnetStatus": "

The status of the subnet.

", + "SubnetIdentifierList$member": null, + "Tag$Key": "

The key, or name, for the resource tag.

", + "Tag$Value": "

The value for the resource tag.

", + "TagKeyList$member": null, + "TagValueList$member": null, + "TaggedResource$ResourceName": "

The Amazon Resource Name (ARN) with which the tag is associated. For example, arn:aws:redshift:us-east-1:123456789:cluster:t1.

", + "TaggedResource$ResourceType": "

The type of resource with which the tag is associated. Valid resource types are:

  • Cluster
  • CIDR/IP
  • EC2 security group
  • Snapshot
  • Cluster security group
  • Subnet group
  • HSM connection
  • HSM certificate
  • Parameter group

For more information about Amazon Redshift resource types and constructing ARNs, go to Constructing an Amazon Redshift Amazon Resource Name (ARN) in the Amazon Redshift Cluster Management Guide.

", + "TaggedResourceListMessage$Marker": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request.

", + "VpcSecurityGroupIdList$member": null, + "VpcSecurityGroupMembership$VpcSecurityGroupId": null, + "VpcSecurityGroupMembership$Status": null + } + }, + "Subnet": { + "base": "

Describes a subnet.

", + "refs": { + "SubnetList$member": null + } + }, + "SubnetAlreadyInUse": { + "base": "

A specified subnet is already in use by another cluster.

", + "refs": { + } + }, + "SubnetIdentifierList": { + "base": null, + "refs": { + "CreateClusterSubnetGroupMessage$SubnetIds": "

An array of VPC subnet IDs. A maximum of 20 subnets can be modified in a single request.

", + "ModifyClusterSubnetGroupMessage$SubnetIds": "

An array of VPC subnet IDs. A maximum of 20 subnets can be modified in a single request.

" + } + }, + "SubnetList": { + "base": null, + "refs": { + "ClusterSubnetGroup$Subnets": "

A list of the VPC Subnet elements.

" + } + }, + "SubscriptionAlreadyExistFault": { + "base": "

There is already an existing event notification subscription with the specified name.

", + "refs": { + } + }, + "SubscriptionCategoryNotFoundFault": { + "base": "

The value specified for the event category was not one of the allowed values, or it specified a category that does not apply to the specified source type. The allowed values are Configuration, Management, Monitoring, and Security.

", + "refs": { + } + }, + "SubscriptionEventIdNotFoundFault": { + "base": "

An Amazon Redshift event with the specified event ID does not exist.

", + "refs": { + } + }, + "SubscriptionNotFoundFault": { + "base": "

An Amazon Redshift event notification subscription with the specified name does not exist.

", + "refs": { + } + }, + "SubscriptionSeverityNotFoundFault": { + "base": "

The value specified for the event severity was not one of the allowed values, or it specified a severity that does not apply to the specified source type. The allowed values are ERROR and INFO.

", + "refs": { + } + }, + "TStamp": { + "base": null, + "refs": { + "Cluster$ClusterCreateTime": "

The date and time that the cluster was created.

", + "DescribeClusterSnapshotsMessage$StartTime": "

A value that requests only snapshots created at or after the specified time. The time value is specified in ISO 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia page.

Example: 2012-07-16T18:00:00Z

", + "DescribeClusterSnapshotsMessage$EndTime": "

A time value that requests only snapshots created at or before the specified time. The time value is specified in ISO 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia page.

Example: 2012-07-16T18:00:00Z

", + "DescribeEventsMessage$StartTime": "

The beginning of the time interval to retrieve events for, specified in ISO 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia page.

Example: 2009-07-08T18:00Z

", + "DescribeEventsMessage$EndTime": "

The end of the time interval for which to retrieve events, specified in ISO 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia page.

Example: 2009-07-08T18:00Z

", + "Event$Date": "

The date and time of the event.

", + "EventSubscription$SubscriptionCreationTime": "

The date and time the Amazon Redshift event notification subscription was created.

", + "LoggingStatus$LastSuccessfulDeliveryTime": "

The last time when logs were delivered.

", + "LoggingStatus$LastFailureTime": "

The last time when logs failed to be delivered.

", + "ReservedNode$StartTime": "

The time the reservation started. You purchase a reserved node offering for a duration. This is the start time of that duration.

", + "Snapshot$SnapshotCreateTime": "

The time (UTC) when Amazon Redshift began the snapshot. A snapshot contains a copy of the cluster data as of this exact time.

", + "Snapshot$ClusterCreateTime": "

The time (UTC) when the cluster was originally created.

" + } + }, + "Tag": { + "base": "

A tag consisting of a name/value pair for a resource.

", + "refs": { + "TagList$member": null, + "TaggedResource$Tag": "

The tag for the resource.

" + } + }, + "TagKeyList": { + "base": null, + "refs": { + "DeleteTagsMessage$TagKeys": "

The tag key that you want to delete.

", + "DescribeClusterParameterGroupsMessage$TagKeys": "

A tag key or keys for which you want to return all matching cluster parameter groups that are associated with the specified key or keys. For example, suppose that you have parameter groups that are tagged with keys called owner and environment. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the parameter groups that have either or both of these tag keys associated with them.

", + "DescribeClusterSecurityGroupsMessage$TagKeys": "

A tag key or keys for which you want to return all matching cluster security groups that are associated with the specified key or keys. For example, suppose that you have security groups that are tagged with keys called owner and environment. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the security groups that have either or both of these tag keys associated with them.

", + "DescribeClusterSnapshotsMessage$TagKeys": "

A tag key or keys for which you want to return all matching cluster snapshots that are associated with the specified key or keys. For example, suppose that you have snapshots that are tagged with keys called owner and environment. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the snapshots that have either or both of these tag keys associated with them.

", + "DescribeClusterSubnetGroupsMessage$TagKeys": "

A tag key or keys for which you want to return all matching cluster subnet groups that are associated with the specified key or keys. For example, suppose that you have subnet groups that are tagged with keys called owner and environment. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the subnet groups that have either or both of these tag keys associated with them.

", + "DescribeClustersMessage$TagKeys": "

A tag key or keys for which you want to return all matching clusters that are associated with the specified key or keys. For example, suppose that you have clusters that are tagged with keys called owner and environment. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the clusters that have either or both of these tag keys associated with them.

", + "DescribeHsmClientCertificatesMessage$TagKeys": "

A tag key or keys for which you want to return all matching HSM client certificates that are associated with the specified key or keys. For example, suppose that you have HSM client certificates that are tagged with keys called owner and environment. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the HSM client certificates that have either or both of these tag keys associated with them.

", + "DescribeHsmConfigurationsMessage$TagKeys": "

A tag key or keys for which you want to return all matching HSM configurations that are associated with the specified key or keys. For example, suppose that you have HSM configurations that are tagged with keys called owner and environment. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the HSM configurations that have either or both of these tag keys associated with them.

", + "DescribeTagsMessage$TagKeys": "

A tag key or keys for which you want to return all matching resources that are associated with the specified key or keys. For example, suppose that you have resources tagged with keys called owner and environment. If you specify both of these tag keys in the request, Amazon Redshift returns a response with all resources that have either or both of these tag keys associated with them.

" + } + }, + "TagLimitExceededFault": { + "base": "

The request exceeds the limit of 10 tags for the resource.

", + "refs": { + } + }, + "TagList": { + "base": null, + "refs": { + "Cluster$Tags": "

The list of tags for the cluster.

", + "ClusterParameterGroup$Tags": "

The list of tags for the cluster parameter group.

", + "ClusterSecurityGroup$Tags": "

The list of tags for the cluster security group.

", + "ClusterSubnetGroup$Tags": "

The list of tags for the cluster subnet group.

", + "CreateClusterMessage$Tags": "

A list of tag instances.

", + "CreateClusterParameterGroupMessage$Tags": "

A list of tag instances.

", + "CreateClusterSecurityGroupMessage$Tags": "

A list of tag instances.

", + "CreateClusterSnapshotMessage$Tags": "

A list of tag instances.

", + "CreateClusterSubnetGroupMessage$Tags": "

A list of tag instances.

", + "CreateEventSubscriptionMessage$Tags": "

A list of tag instances.

", + "CreateHsmClientCertificateMessage$Tags": "

A list of tag instances.

", + "CreateHsmConfigurationMessage$Tags": "

A list of tag instances.

", + "CreateTagsMessage$Tags": "

One or more name/value pairs to add as tags to the specified resource. Each tag name is passed in with the parameter tag-key and the corresponding value is passed in with the parameter tag-value. The tag-key and tag-value parameters are separated by a colon (:). Separate multiple tags with a space. For example, --tags \"tag-key\"=\"owner\":\"tag-value\"=\"admin\" \"tag-key\"=\"environment\":\"tag-value\"=\"test\" \"tag-key\"=\"version\":\"tag-value\"=\"1.0\".

", + "EC2SecurityGroup$Tags": "

The list of tags for the EC2 security group.

", + "EventSubscription$Tags": "

The list of tags for the event subscription.

", + "HsmClientCertificate$Tags": "

The list of tags for the HSM client certificate.

", + "HsmConfiguration$Tags": "

The list of tags for the HSM configuration.

", + "IPRange$Tags": "

The list of tags for the IP range.

", + "Snapshot$Tags": "

The list of tags for the cluster snapshot.

" + } + }, + "TagValueList": { + "base": null, + "refs": { + "DescribeClusterParameterGroupsMessage$TagValues": "

A tag value or values for which you want to return all matching cluster parameter groups that are associated with the specified tag value or values. For example, suppose that you have parameter groups that are tagged with values called admin and test. If you specify both of these tag values in the request, Amazon Redshift returns a response with the parameter groups that have either or both of these tag values associated with them.

", + "DescribeClusterSecurityGroupsMessage$TagValues": "

A tag value or values for which you want to return all matching cluster security groups that are associated with the specified tag value or values. For example, suppose that you have security groups that are tagged with values called admin and test. If you specify both of these tag values in the request, Amazon Redshift returns a response with the security groups that have either or both of these tag values associated with them.

", + "DescribeClusterSnapshotsMessage$TagValues": "

A tag value or values for which you want to return all matching cluster snapshots that are associated with the specified tag value or values. For example, suppose that you have snapshots that are tagged with values called admin and test. If you specify both of these tag values in the request, Amazon Redshift returns a response with the snapshots that have either or both of these tag values associated with them.

", + "DescribeClusterSubnetGroupsMessage$TagValues": "

A tag value or values for which you want to return all matching cluster subnet groups that are associated with the specified tag value or values. For example, suppose that you have subnet groups that are tagged with values called admin and test. If you specify both of these tag values in the request, Amazon Redshift returns a response with the subnet groups that have either or both of these tag values associated with them.

", + "DescribeClustersMessage$TagValues": "

A tag value or values for which you want to return all matching clusters that are associated with the specified tag value or values. For example, suppose that you have clusters that are tagged with values called admin and test. If you specify both of these tag values in the request, Amazon Redshift returns a response with the clusters that have either or both of these tag values associated with them.

", + "DescribeHsmClientCertificatesMessage$TagValues": "

A tag value or values for which you want to return all matching HSM client certificates that are associated with the specified tag value or values. For example, suppose that you have HSM client certificates that are tagged with values called admin and test. If you specify both of these tag values in the request, Amazon Redshift returns a response with the HSM client certificates that have either or both of these tag values associated with them.

", + "DescribeHsmConfigurationsMessage$TagValues": "

A tag value or values for which you want to return all matching HSM configurations that are associated with the specified tag value or values. For example, suppose that you have HSM configurations that are tagged with values called admin and test. If you specify both of these tag values in the request, Amazon Redshift returns a response with the HSM configurations that have either or both of these tag values associated with them.

", + "DescribeTagsMessage$TagValues": "

A tag value or values for which you want to return all matching resources that are associated with the specified value or values. For example, suppose that you have resources tagged with values called admin and test. If you specify both of these tag values in the request, Amazon Redshift returns a response with all resources that have either or both of these tag values associated with them.

" + } + }, + "TaggedResource": { + "base": "

A tag and its associated resource.

", + "refs": { + "TaggedResourceList$member": null + } + }, + "TaggedResourceList": { + "base": null, + "refs": { + "TaggedResourceListMessage$TaggedResources": "

A list of tags with their associated resources.

" + } + }, + "TaggedResourceListMessage": { + "base": "

Contains the output from the DescribeTags action.

", + "refs": { + } + }, + "UnauthorizedOperation": { + "base": "

Your account is not authorized to perform the requested operation.

", + "refs": { + } + }, + "UnknownSnapshotCopyRegionFault": { + "base": "

The specified region is incorrect or does not exist.

", + "refs": { + } + }, + "UnsupportedOptionFault": { + "base": "

A request option was specified that is not supported.

", + "refs": { + } + }, + "VpcSecurityGroupIdList": { + "base": null, + "refs": { + "CreateClusterMessage$VpcSecurityGroupIds": "

A list of Virtual Private Cloud (VPC) security groups to be associated with the cluster.

Default: The default VPC security group is associated with the cluster.

", + "ModifyClusterMessage$VpcSecurityGroupIds": "

A list of virtual private cloud (VPC) security groups to be associated with the cluster.

", + "RestoreFromClusterSnapshotMessage$VpcSecurityGroupIds": "

A list of Virtual Private Cloud (VPC) security groups to be associated with the cluster.

Default: The default VPC security group is associated with the cluster.

VPC security groups only apply to clusters in VPCs.

" + } + }, + "VpcSecurityGroupMembership": { + "base": "

Describes the members of a VPC security group.

", + "refs": { + "VpcSecurityGroupMembershipList$member": null + } + }, + "VpcSecurityGroupMembershipList": { + "base": null, + "refs": { + "Cluster$VpcSecurityGroups": "

A list of Virtual Private Cloud (VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.

" + } + }, + "AuthorizeClusterSecurityGroupIngressResult": { + "base": null, + "refs": { + } + }, + "AuthorizeSnapshotAccessResult": { + "base": null, + "refs": { + } + }, + "CopyClusterSnapshotResult": { + "base": null, + "refs": { + } + }, + "CreateClusterResult": { + "base": null, + "refs": { + } + }, + "CreateClusterParameterGroupResult": { + "base": null, + "refs": { + } + }, + "CreateClusterSecurityGroupResult": { + "base": null, + "refs": { + } + }, + "CreateClusterSnapshotResult": { + "base": null, + "refs": { + } + }, + "CreateClusterSubnetGroupResult": { + "base": null, + "refs": { + } + }, + "CreateEventSubscriptionResult": { + "base": null, + "refs": { + } + }, + "CreateHsmClientCertificateResult": { + "base": null, + "refs": { + } + }, + "CreateHsmConfigurationResult": { + "base": null, + "refs": { + } + }, + "DeleteClusterResult": { + "base": null, + "refs": { + } + }, + "DeleteClusterSnapshotResult": { + "base": null, + "refs": { + } + }, + "DescribeDefaultClusterParametersResult": { + "base": null, + "refs": { + } + }, + "DisableSnapshotCopyResult": { + "base": null, + "refs": { + } + }, + "EnableSnapshotCopyResult": { + "base": null, + "refs": { + } + }, + "ModifyClusterResult": { + "base": null, + "refs": { + } + }, + "ModifyClusterSubnetGroupResult": { + "base": null, + "refs": { + } + }, + "ModifyEventSubscriptionResult": { + "base": null, + "refs": { + } + }, + "ModifySnapshotCopyRetentionPeriodResult": { + "base": null, + "refs": { + } + }, + "PurchaseReservedNodeOfferingResult": { + "base": null, + "refs": { + } + }, + "RebootClusterResult": { + "base": null, + "refs": { + } + }, + "RestoreFromClusterSnapshotResult": { + "base": null, + "refs": { + } + }, + "RevokeClusterSecurityGroupIngressResult": { + "base": null, + "refs": { + } + }, + "RevokeSnapshotAccessResult": { + "base": null, + "refs": { + } + }, + "RotateEncryptionKeyResult": { + "base": null, + "refs": { + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/redshift/2012-12-01/paginators-1.json b/lib/aws-sdk/Aws/data/redshift/2012-12-01/paginators-1.json new file mode 100644 index 0000000..03027de --- /dev/null +++ b/lib/aws-sdk/Aws/data/redshift/2012-12-01/paginators-1.json @@ -0,0 +1,94 @@ +{ + "pagination": { + "DescribeClusterParameterGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ParameterGroups" + }, + "DescribeClusterParameters": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "Parameters" + }, + "DescribeClusterSecurityGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ClusterSecurityGroups" + }, + "DescribeClusterSnapshots": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "Snapshots" + }, + "DescribeClusterSubnetGroups": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ClusterSubnetGroups" + }, + "DescribeClusterVersions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ClusterVersions" + }, + "DescribeClusters": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "Clusters" + }, + "DescribeDefaultClusterParameters": { + "input_token": "Marker", + "output_token": "DefaultClusterParameters.Marker", + "limit_key": "MaxRecords", + "result_key": "DefaultClusterParameters.Parameters" + }, + "DescribeEventSubscriptions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "EventSubscriptionsList" + }, + "DescribeEvents": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "Events" + }, + "DescribeHsmClientCertificates": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "HsmClientCertificates" + }, + "DescribeHsmConfigurations": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "HsmConfigurations" + }, + "DescribeOrderableClusterOptions": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "OrderableClusterOptions" + }, + "DescribeReservedNodeOfferings": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ReservedNodeOfferings" + }, + "DescribeReservedNodes": { + "input_token": "Marker", + "output_token": "Marker", + "limit_key": "MaxRecords", + "result_key": "ReservedNodes" + } + } +} diff --git a/lib/aws-sdk/Aws/data/redshift/2012-12-01/waiters-2.json b/lib/aws-sdk/Aws/data/redshift/2012-12-01/waiters-2.json new file mode 100644 index 0000000..0d1236b --- /dev/null +++ b/lib/aws-sdk/Aws/data/redshift/2012-12-01/waiters-2.json @@ -0,0 +1,68 @@ +{ + "version": 2, + "waiters": { + "ClusterAvailable": { + "operation": "DescribeClusters", + "maxAttempts": 30, + "delay": 60, + "acceptors": [ + { + "state": "success", + "matcher": "pathAll", + "argument": "Clusters[].ClusterStatus", + "expected": "available" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "Clusters[].ClusterStatus", + "expected": "deleting" + } + ] + }, + "ClusterDeleted": { + "operation": "DescribeClusters", + "maxAttempts": 30, + "delay": 60, + "acceptors": [ + { + "state": "success", + "matcher": "error", + "expected": "ClusterNotFound" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "Clusters[].ClusterStatus", + "expected": "creating" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "Clusters[].ClusterStatus", + "expected": "rebooting" + } + ] + }, + "SnapshotAvailable": { + "operation": "DescribeClusterSnapshots", + "maxAttempts": 20, + "delay": 15, + "acceptors": [ + { + "state": "success", + "matcher": "pathAll", + "argument": "Snapshots[].Status", + "expected": "available" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "Snapshots[].Status", + "expected": "failed", + "expected": "deleted" + } + ] + } + } +} diff --git a/lib/aws-sdk/Aws/data/route53/2013-04-01/api-2.json b/lib/aws-sdk/Aws/data/route53/2013-04-01/api-2.json new file mode 100644 index 0000000..dea6bd0 --- /dev/null +++ b/lib/aws-sdk/Aws/data/route53/2013-04-01/api-2.json @@ -0,0 +1,2314 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2013-04-01", + "endpointPrefix":"route53", + "globalEndpoint":"route53.amazonaws.com", + "serviceAbbreviation":"Route 53", + "serviceFullName":"Amazon Route 53", + "signatureVersion":"v4", + "protocol":"rest-xml" + }, + "operations":{ + "AssociateVPCWithHostedZone":{ + "name":"AssociateVPCWithHostedZone", + "http":{ + "method":"POST", + "requestUri":"/2013-04-01/hostedzone/{Id}/associatevpc" + }, + "input":{ + "shape":"AssociateVPCWithHostedZoneRequest", + "xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"}, + "locationName":"AssociateVPCWithHostedZoneRequest" + }, + "output":{"shape":"AssociateVPCWithHostedZoneResponse"}, + "errors":[ + { + "shape":"NoSuchHostedZone", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidVPCId", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"PublicZoneVPCAssociation", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ConflictingDomainExists", + "exception":true + } + ] + }, + "ChangeResourceRecordSets":{ + "name":"ChangeResourceRecordSets", + "http":{ + "method":"POST", + "requestUri":"/2013-04-01/hostedzone/{Id}/rrset/" + }, + "input":{ + "shape":"ChangeResourceRecordSetsRequest", + "xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"}, + "locationName":"ChangeResourceRecordSetsRequest" + }, + "output":{"shape":"ChangeResourceRecordSetsResponse"}, + "errors":[ + { + "shape":"NoSuchHostedZone", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"NoSuchHealthCheck", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidChangeBatch", + "exception":true + }, + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"PriorRequestNotComplete", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "ChangeTagsForResource":{ + "name":"ChangeTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/2013-04-01/tags/{ResourceType}/{ResourceId}" + }, + "input":{ + "shape":"ChangeTagsForResourceRequest", + "xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"}, + "locationName":"ChangeTagsForResourceRequest" + }, + "output":{"shape":"ChangeTagsForResourceResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"NoSuchHealthCheck", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"NoSuchHostedZone", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"PriorRequestNotComplete", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ThrottlingException", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "CreateHealthCheck":{ + "name":"CreateHealthCheck", + "http":{ + "method":"POST", + "requestUri":"/2013-04-01/healthcheck", + "responseCode":201 + }, + "input":{ + "shape":"CreateHealthCheckRequest", + "xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"}, + "locationName":"CreateHealthCheckRequest" + }, + "output":{"shape":"CreateHealthCheckResponse"}, + "errors":[ + { + "shape":"TooManyHealthChecks", + "exception":true + }, + { + "shape":"HealthCheckAlreadyExists", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "CreateHostedZone":{ + "name":"CreateHostedZone", + "http":{ + "method":"POST", + "requestUri":"/2013-04-01/hostedzone", + "responseCode":201 + }, + "input":{ + "shape":"CreateHostedZoneRequest", + "xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"}, + "locationName":"CreateHostedZoneRequest" + }, + "output":{"shape":"CreateHostedZoneResponse"}, + "errors":[ + { + "shape":"InvalidDomainName", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"HostedZoneAlreadyExists", + "error":{"httpStatusCode":409}, + "exception":true + }, + { + "shape":"TooManyHostedZones", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidVPCId", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"DelegationSetNotAvailable", + "exception":true + }, + { + "shape":"ConflictingDomainExists", + "exception":true + }, + { + "shape":"NoSuchDelegationSet", + "exception":true + }, + { + "shape":"DelegationSetNotReusable", + "exception":true + } + ] + }, + "CreateReusableDelegationSet":{ + "name":"CreateReusableDelegationSet", + "http":{ + "method":"POST", + "requestUri":"/2013-04-01/delegationset", + "responseCode":201 + }, + "input":{ + "shape":"CreateReusableDelegationSetRequest", + "xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"}, + "locationName":"CreateReusableDelegationSetRequest" + }, + "output":{"shape":"CreateReusableDelegationSetResponse"}, + "errors":[ + { + "shape":"DelegationSetAlreadyCreated", + "exception":true + }, + { + "shape":"LimitsExceeded", + "exception":true + }, + { + "shape":"HostedZoneNotFound", + "exception":true + }, + { + "shape":"InvalidArgument", + "exception":true + }, + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"DelegationSetNotAvailable", + "exception":true + }, + { + "shape":"DelegationSetAlreadyReusable", + "exception":true + } + ] + }, + "DeleteHealthCheck":{ + "name":"DeleteHealthCheck", + "http":{ + "method":"DELETE", + "requestUri":"/2013-04-01/healthcheck/{HealthCheckId}" + }, + "input":{"shape":"DeleteHealthCheckRequest"}, + "output":{"shape":"DeleteHealthCheckResponse"}, + "errors":[ + { + "shape":"NoSuchHealthCheck", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"HealthCheckInUse", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "DeleteHostedZone":{ + "name":"DeleteHostedZone", + "http":{ + "method":"DELETE", + "requestUri":"/2013-04-01/hostedzone/{Id}" + }, + "input":{"shape":"DeleteHostedZoneRequest"}, + "output":{"shape":"DeleteHostedZoneResponse"}, + "errors":[ + { + "shape":"NoSuchHostedZone", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"HostedZoneNotEmpty", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"PriorRequestNotComplete", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "DeleteReusableDelegationSet":{ + "name":"DeleteReusableDelegationSet", + "http":{ + "method":"DELETE", + "requestUri":"/2013-04-01/delegationset/{Id}" + }, + "input":{"shape":"DeleteReusableDelegationSetRequest"}, + "output":{"shape":"DeleteReusableDelegationSetResponse"}, + "errors":[ + { + "shape":"NoSuchDelegationSet", + "exception":true + }, + { + "shape":"DelegationSetInUse", + "exception":true + }, + { + "shape":"DelegationSetNotReusable", + "exception":true + }, + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "DisassociateVPCFromHostedZone":{ + "name":"DisassociateVPCFromHostedZone", + "http":{ + "method":"POST", + "requestUri":"/2013-04-01/hostedzone/{Id}/disassociatevpc" + }, + "input":{ + "shape":"DisassociateVPCFromHostedZoneRequest", + "xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"}, + "locationName":"DisassociateVPCFromHostedZoneRequest" + }, + "output":{"shape":"DisassociateVPCFromHostedZoneResponse"}, + "errors":[ + { + "shape":"NoSuchHostedZone", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidVPCId", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"VPCAssociationNotFound", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"LastVPCAssociation", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "GetChange":{ + "name":"GetChange", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/change/{Id}" + }, + "input":{"shape":"GetChangeRequest"}, + "output":{"shape":"GetChangeResponse"}, + "errors":[ + { + "shape":"NoSuchChange", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "GetCheckerIpRanges":{ + "name":"GetCheckerIpRanges", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/checkeripranges" + }, + "input":{"shape":"GetCheckerIpRangesRequest"}, + "output":{"shape":"GetCheckerIpRangesResponse"} + }, + "GetGeoLocation":{ + "name":"GetGeoLocation", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/geolocation" + }, + "input":{"shape":"GetGeoLocationRequest"}, + "output":{"shape":"GetGeoLocationResponse"}, + "errors":[ + { + "shape":"NoSuchGeoLocation", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "GetHealthCheck":{ + "name":"GetHealthCheck", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/healthcheck/{HealthCheckId}" + }, + "input":{"shape":"GetHealthCheckRequest"}, + "output":{"shape":"GetHealthCheckResponse"}, + "errors":[ + { + "shape":"NoSuchHealthCheck", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"IncompatibleVersion", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "GetHealthCheckCount":{ + "name":"GetHealthCheckCount", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/healthcheckcount" + }, + "input":{"shape":"GetHealthCheckCountRequest"}, + "output":{"shape":"GetHealthCheckCountResponse"} + }, + "GetHealthCheckLastFailureReason":{ + "name":"GetHealthCheckLastFailureReason", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/healthcheck/{HealthCheckId}/lastfailurereason" + }, + "input":{"shape":"GetHealthCheckLastFailureReasonRequest"}, + "output":{"shape":"GetHealthCheckLastFailureReasonResponse"}, + "errors":[ + { + "shape":"NoSuchHealthCheck", + "error":{"httpStatusCode":404}, + "exception":true + } + ] + }, + "GetHealthCheckStatus":{ + "name":"GetHealthCheckStatus", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/healthcheck/{HealthCheckId}/status" + }, + "input":{"shape":"GetHealthCheckStatusRequest"}, + "output":{"shape":"GetHealthCheckStatusResponse"}, + "errors":[ + { + "shape":"NoSuchHealthCheck", + "error":{"httpStatusCode":404}, + "exception":true + } + ] + }, + "GetHostedZone":{ + "name":"GetHostedZone", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/hostedzone/{Id}" + }, + "input":{"shape":"GetHostedZoneRequest"}, + "output":{"shape":"GetHostedZoneResponse"}, + "errors":[ + { + "shape":"NoSuchHostedZone", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "GetHostedZoneCount":{ + "name":"GetHostedZoneCount", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/hostedzonecount" + }, + "input":{"shape":"GetHostedZoneCountRequest"}, + "output":{"shape":"GetHostedZoneCountResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "GetReusableDelegationSet":{ + "name":"GetReusableDelegationSet", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/delegationset/{Id}" + }, + "input":{"shape":"GetReusableDelegationSetRequest"}, + "output":{"shape":"GetReusableDelegationSetResponse"}, + "errors":[ + { + "shape":"NoSuchDelegationSet", + "exception":true + }, + { + "shape":"DelegationSetNotReusable", + "exception":true + }, + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "ListGeoLocations":{ + "name":"ListGeoLocations", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/geolocations" + }, + "input":{"shape":"ListGeoLocationsRequest"}, + "output":{"shape":"ListGeoLocationsResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "ListHealthChecks":{ + "name":"ListHealthChecks", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/healthcheck" + }, + "input":{"shape":"ListHealthChecksRequest"}, + "output":{"shape":"ListHealthChecksResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"IncompatibleVersion", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "ListHostedZones":{ + "name":"ListHostedZones", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/hostedzone" + }, + "input":{"shape":"ListHostedZonesRequest"}, + "output":{"shape":"ListHostedZonesResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"NoSuchDelegationSet", + "exception":true + }, + { + "shape":"DelegationSetNotReusable", + "exception":true + } + ] + }, + "ListHostedZonesByName":{ + "name":"ListHostedZonesByName", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/hostedzonesbyname" + }, + "input":{"shape":"ListHostedZonesByNameRequest"}, + "output":{"shape":"ListHostedZonesByNameResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InvalidDomainName", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "ListResourceRecordSets":{ + "name":"ListResourceRecordSets", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/hostedzone/{Id}/rrset" + }, + "input":{"shape":"ListResourceRecordSetsRequest"}, + "output":{"shape":"ListResourceRecordSetsResponse"}, + "errors":[ + { + "shape":"NoSuchHostedZone", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "ListReusableDelegationSets":{ + "name":"ListReusableDelegationSets", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/delegationset" + }, + "input":{"shape":"ListReusableDelegationSetsRequest"}, + "output":{"shape":"ListReusableDelegationSetsResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/tags/{ResourceType}/{ResourceId}" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"NoSuchHealthCheck", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"NoSuchHostedZone", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"PriorRequestNotComplete", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ThrottlingException", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "ListTagsForResources":{ + "name":"ListTagsForResources", + "http":{ + "method":"POST", + "requestUri":"/2013-04-01/tags/{ResourceType}" + }, + "input":{ + "shape":"ListTagsForResourcesRequest", + "xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"}, + "locationName":"ListTagsForResourcesRequest" + }, + "output":{"shape":"ListTagsForResourcesResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"NoSuchHealthCheck", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"NoSuchHostedZone", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"PriorRequestNotComplete", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"ThrottlingException", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "UpdateHealthCheck":{ + "name":"UpdateHealthCheck", + "http":{ + "method":"POST", + "requestUri":"/2013-04-01/healthcheck/{HealthCheckId}" + }, + "input":{ + "shape":"UpdateHealthCheckRequest", + "xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"}, + "locationName":"UpdateHealthCheckRequest" + }, + "output":{"shape":"UpdateHealthCheckResponse"}, + "errors":[ + { + "shape":"NoSuchHealthCheck", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"HealthCheckVersionMismatch", + "error":{"httpStatusCode":409}, + "exception":true + } + ] + }, + "UpdateHostedZoneComment":{ + "name":"UpdateHostedZoneComment", + "http":{ + "method":"POST", + "requestUri":"/2013-04-01/hostedzone/{Id}" + }, + "input":{ + "shape":"UpdateHostedZoneCommentRequest", + "xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"}, + "locationName":"UpdateHostedZoneCommentRequest" + }, + "output":{"shape":"UpdateHostedZoneCommentResponse"}, + "errors":[ + { + "shape":"NoSuchHostedZone", + "error":{"httpStatusCode":404}, + "exception":true + }, + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + } + }, + "shapes":{ + "AliasHealthEnabled":{"type":"boolean"}, + "AliasTarget":{ + "type":"structure", + "required":[ + "HostedZoneId", + "DNSName", + "EvaluateTargetHealth" + ], + "members":{ + "HostedZoneId":{"shape":"ResourceId"}, + "DNSName":{"shape":"DNSName"}, + "EvaluateTargetHealth":{"shape":"AliasHealthEnabled"} + } + }, + "AssociateVPCComment":{"type":"string"}, + "AssociateVPCWithHostedZoneRequest":{ + "type":"structure", + "required":[ + "HostedZoneId", + "VPC" + ], + "members":{ + "HostedZoneId":{ + "shape":"ResourceId", + "location":"uri", + "locationName":"Id" + }, + "VPC":{"shape":"VPC"}, + "Comment":{"shape":"AssociateVPCComment"} + } + }, + "AssociateVPCWithHostedZoneResponse":{ + "type":"structure", + "required":["ChangeInfo"], + "members":{ + "ChangeInfo":{"shape":"ChangeInfo"} + } + }, + "Change":{ + "type":"structure", + "required":[ + "Action", + "ResourceRecordSet" + ], + "members":{ + "Action":{"shape":"ChangeAction"}, + "ResourceRecordSet":{"shape":"ResourceRecordSet"} + } + }, + "ChangeAction":{ + "type":"string", + "enum":[ + "CREATE", + "DELETE", + "UPSERT" + ] + }, + "ChangeBatch":{ + "type":"structure", + "required":["Changes"], + "members":{ + "Comment":{"shape":"ResourceDescription"}, + "Changes":{"shape":"Changes"} + } + }, + "ChangeInfo":{ + "type":"structure", + "required":[ + "Id", + "Status", + "SubmittedAt" + ], + "members":{ + "Id":{"shape":"ResourceId"}, + "Status":{"shape":"ChangeStatus"}, + "SubmittedAt":{"shape":"TimeStamp"}, + "Comment":{"shape":"ResourceDescription"} + } + }, + "ChangeResourceRecordSetsRequest":{ + "type":"structure", + "required":[ + "HostedZoneId", + "ChangeBatch" + ], + "members":{ + "HostedZoneId":{ + "shape":"ResourceId", + "location":"uri", + "locationName":"Id" + }, + "ChangeBatch":{"shape":"ChangeBatch"} + } + }, + "ChangeResourceRecordSetsResponse":{ + "type":"structure", + "required":["ChangeInfo"], + "members":{ + "ChangeInfo":{"shape":"ChangeInfo"} + } + }, + "ChangeStatus":{ + "type":"string", + "enum":[ + "PENDING", + "INSYNC" + ] + }, + "ChangeTagsForResourceRequest":{ + "type":"structure", + "required":[ + "ResourceType", + "ResourceId" + ], + "members":{ + "ResourceType":{ + "shape":"TagResourceType", + "location":"uri", + "locationName":"ResourceType" + }, + "ResourceId":{ + "shape":"TagResourceId", + "location":"uri", + "locationName":"ResourceId" + }, + "AddTags":{"shape":"TagList"}, + "RemoveTagKeys":{"shape":"TagKeyList"} + } + }, + "ChangeTagsForResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "Changes":{ + "type":"list", + "member":{ + "shape":"Change", + "locationName":"Change" + }, + "min":1 + }, + "CheckerIpRanges":{ + "type":"list", + "member":{"shape":"IPAddressCidr"} + }, + "ConflictingDomainExists":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "CreateHealthCheckRequest":{ + "type":"structure", + "required":[ + "CallerReference", + "HealthCheckConfig" + ], + "members":{ + "CallerReference":{"shape":"HealthCheckNonce"}, + "HealthCheckConfig":{"shape":"HealthCheckConfig"} + } + }, + "CreateHealthCheckResponse":{ + "type":"structure", + "required":[ + "HealthCheck", + "Location" + ], + "members":{ + "HealthCheck":{"shape":"HealthCheck"}, + "Location":{ + "shape":"ResourceURI", + "location":"header", + "locationName":"Location" + } + } + }, + "CreateHostedZoneRequest":{ + "type":"structure", + "required":[ + "Name", + "CallerReference" + ], + "members":{ + "Name":{"shape":"DNSName"}, + "VPC":{"shape":"VPC"}, + "CallerReference":{"shape":"Nonce"}, + "HostedZoneConfig":{"shape":"HostedZoneConfig"}, + "DelegationSetId":{"shape":"ResourceId"} + } + }, + "CreateHostedZoneResponse":{ + "type":"structure", + "required":[ + "HostedZone", + "ChangeInfo", + "DelegationSet", + "Location" + ], + "members":{ + "HostedZone":{"shape":"HostedZone"}, + "ChangeInfo":{"shape":"ChangeInfo"}, + "DelegationSet":{"shape":"DelegationSet"}, + "VPC":{"shape":"VPC"}, + "Location":{ + "shape":"ResourceURI", + "location":"header", + "locationName":"Location" + } + } + }, + "CreateReusableDelegationSetRequest":{ + "type":"structure", + "required":["CallerReference"], + "members":{ + "CallerReference":{"shape":"Nonce"}, + "HostedZoneId":{"shape":"ResourceId"} + } + }, + "CreateReusableDelegationSetResponse":{ + "type":"structure", + "required":[ + "DelegationSet", + "Location" + ], + "members":{ + "DelegationSet":{"shape":"DelegationSet"}, + "Location":{ + "shape":"ResourceURI", + "location":"header", + "locationName":"Location" + } + } + }, + "DNSName":{ + "type":"string", + "max":1024 + }, + "DelegationSet":{ + "type":"structure", + "required":["NameServers"], + "members":{ + "Id":{"shape":"ResourceId"}, + "CallerReference":{"shape":"Nonce"}, + "NameServers":{"shape":"DelegationSetNameServers"} + } + }, + "DelegationSetAlreadyCreated":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "DelegationSetAlreadyReusable":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "DelegationSetInUse":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "DelegationSetNameServers":{ + "type":"list", + "member":{ + "shape":"DNSName", + "locationName":"NameServer" + }, + "min":1 + }, + "DelegationSetNotAvailable":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "DelegationSetNotReusable":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "DelegationSets":{ + "type":"list", + "member":{ + "shape":"DelegationSet", + "locationName":"DelegationSet" + } + }, + "DeleteHealthCheckRequest":{ + "type":"structure", + "required":["HealthCheckId"], + "members":{ + "HealthCheckId":{ + "shape":"HealthCheckId", + "location":"uri", + "locationName":"HealthCheckId" + } + } + }, + "DeleteHealthCheckResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteHostedZoneRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"ResourceId", + "location":"uri", + "locationName":"Id" + } + } + }, + "DeleteHostedZoneResponse":{ + "type":"structure", + "required":["ChangeInfo"], + "members":{ + "ChangeInfo":{"shape":"ChangeInfo"} + } + }, + "DeleteReusableDelegationSetRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"ResourceId", + "location":"uri", + "locationName":"Id" + } + } + }, + "DeleteReusableDelegationSetResponse":{ + "type":"structure", + "members":{ + } + }, + "DisassociateVPCComment":{"type":"string"}, + "DisassociateVPCFromHostedZoneRequest":{ + "type":"structure", + "required":[ + "HostedZoneId", + "VPC" + ], + "members":{ + "HostedZoneId":{ + "shape":"ResourceId", + "location":"uri", + "locationName":"Id" + }, + "VPC":{"shape":"VPC"}, + "Comment":{"shape":"DisassociateVPCComment"} + } + }, + "DisassociateVPCFromHostedZoneResponse":{ + "type":"structure", + "required":["ChangeInfo"], + "members":{ + "ChangeInfo":{"shape":"ChangeInfo"} + } + }, + "ErrorMessage":{"type":"string"}, + "ErrorMessages":{ + "type":"list", + "member":{ + "shape":"ErrorMessage", + "locationName":"Message" + } + }, + "FailureThreshold":{ + "type":"integer", + "min":1, + "max":10 + }, + "FullyQualifiedDomainName":{ + "type":"string", + "max":255 + }, + "GeoLocation":{ + "type":"structure", + "members":{ + "ContinentCode":{"shape":"GeoLocationContinentCode"}, + "CountryCode":{"shape":"GeoLocationCountryCode"}, + "SubdivisionCode":{"shape":"GeoLocationSubdivisionCode"} + } + }, + "GeoLocationContinentCode":{ + "type":"string", + "min":2, + "max":2 + }, + "GeoLocationContinentName":{ + "type":"string", + "min":1, + "max":32 + }, + "GeoLocationCountryCode":{ + "type":"string", + "min":1, + "max":2 + }, + "GeoLocationCountryName":{ + "type":"string", + "min":1, + "max":64 + }, + "GeoLocationDetails":{ + "type":"structure", + "members":{ + "ContinentCode":{"shape":"GeoLocationContinentCode"}, + "ContinentName":{"shape":"GeoLocationContinentName"}, + "CountryCode":{"shape":"GeoLocationCountryCode"}, + "CountryName":{"shape":"GeoLocationCountryName"}, + "SubdivisionCode":{"shape":"GeoLocationSubdivisionCode"}, + "SubdivisionName":{"shape":"GeoLocationSubdivisionName"} + } + }, + "GeoLocationDetailsList":{ + "type":"list", + "member":{ + "shape":"GeoLocationDetails", + "locationName":"GeoLocationDetails" + } + }, + "GeoLocationSubdivisionCode":{ + "type":"string", + "min":1, + "max":3 + }, + "GeoLocationSubdivisionName":{ + "type":"string", + "min":1, + "max":64 + }, + "GetChangeRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"ResourceId", + "location":"uri", + "locationName":"Id" + } + } + }, + "GetChangeResponse":{ + "type":"structure", + "required":["ChangeInfo"], + "members":{ + "ChangeInfo":{"shape":"ChangeInfo"} + } + }, + "GetCheckerIpRangesRequest":{ + "type":"structure", + "members":{ + } + }, + "GetCheckerIpRangesResponse":{ + "type":"structure", + "required":["CheckerIpRanges"], + "members":{ + "CheckerIpRanges":{"shape":"CheckerIpRanges"} + } + }, + "GetGeoLocationRequest":{ + "type":"structure", + "members":{ + "ContinentCode":{ + "shape":"GeoLocationContinentCode", + "location":"querystring", + "locationName":"continentcode" + }, + "CountryCode":{ + "shape":"GeoLocationCountryCode", + "location":"querystring", + "locationName":"countrycode" + }, + "SubdivisionCode":{ + "shape":"GeoLocationSubdivisionCode", + "location":"querystring", + "locationName":"subdivisioncode" + } + } + }, + "GetGeoLocationResponse":{ + "type":"structure", + "required":["GeoLocationDetails"], + "members":{ + "GeoLocationDetails":{"shape":"GeoLocationDetails"} + } + }, + "GetHealthCheckCountRequest":{ + "type":"structure", + "members":{ + } + }, + "GetHealthCheckCountResponse":{ + "type":"structure", + "required":["HealthCheckCount"], + "members":{ + "HealthCheckCount":{"shape":"HealthCheckCount"} + } + }, + "GetHealthCheckLastFailureReasonRequest":{ + "type":"structure", + "required":["HealthCheckId"], + "members":{ + "HealthCheckId":{ + "shape":"HealthCheckId", + "location":"uri", + "locationName":"HealthCheckId" + } + } + }, + "GetHealthCheckLastFailureReasonResponse":{ + "type":"structure", + "required":["HealthCheckObservations"], + "members":{ + "HealthCheckObservations":{"shape":"HealthCheckObservations"} + } + }, + "GetHealthCheckRequest":{ + "type":"structure", + "required":["HealthCheckId"], + "members":{ + "HealthCheckId":{ + "shape":"HealthCheckId", + "location":"uri", + "locationName":"HealthCheckId" + } + } + }, + "GetHealthCheckResponse":{ + "type":"structure", + "required":["HealthCheck"], + "members":{ + "HealthCheck":{"shape":"HealthCheck"} + } + }, + "GetHealthCheckStatusRequest":{ + "type":"structure", + "required":["HealthCheckId"], + "members":{ + "HealthCheckId":{ + "shape":"HealthCheckId", + "location":"uri", + "locationName":"HealthCheckId" + } + } + }, + "GetHealthCheckStatusResponse":{ + "type":"structure", + "required":["HealthCheckObservations"], + "members":{ + "HealthCheckObservations":{"shape":"HealthCheckObservations"} + } + }, + "GetHostedZoneCountRequest":{ + "type":"structure", + "members":{ + } + }, + "GetHostedZoneCountResponse":{ + "type":"structure", + "required":["HostedZoneCount"], + "members":{ + "HostedZoneCount":{"shape":"HostedZoneCount"} + } + }, + "GetHostedZoneRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"ResourceId", + "location":"uri", + "locationName":"Id" + } + } + }, + "GetHostedZoneResponse":{ + "type":"structure", + "required":["HostedZone"], + "members":{ + "HostedZone":{"shape":"HostedZone"}, + "DelegationSet":{"shape":"DelegationSet"}, + "VPCs":{"shape":"VPCs"} + } + }, + "GetReusableDelegationSetRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"ResourceId", + "location":"uri", + "locationName":"Id" + } + } + }, + "GetReusableDelegationSetResponse":{ + "type":"structure", + "required":["DelegationSet"], + "members":{ + "DelegationSet":{"shape":"DelegationSet"} + } + }, + "HealthCheck":{ + "type":"structure", + "required":[ + "Id", + "CallerReference", + "HealthCheckConfig", + "HealthCheckVersion" + ], + "members":{ + "Id":{"shape":"HealthCheckId"}, + "CallerReference":{"shape":"HealthCheckNonce"}, + "HealthCheckConfig":{"shape":"HealthCheckConfig"}, + "HealthCheckVersion":{"shape":"HealthCheckVersion"} + } + }, + "HealthCheckAlreadyExists":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "HealthCheckConfig":{ + "type":"structure", + "required":["Type"], + "members":{ + "IPAddress":{"shape":"IPAddress"}, + "Port":{"shape":"Port"}, + "Type":{"shape":"HealthCheckType"}, + "ResourcePath":{"shape":"ResourcePath"}, + "FullyQualifiedDomainName":{"shape":"FullyQualifiedDomainName"}, + "SearchString":{"shape":"SearchString"}, + "RequestInterval":{"shape":"RequestInterval"}, + "FailureThreshold":{"shape":"FailureThreshold"} + } + }, + "HealthCheckCount":{"type":"long"}, + "HealthCheckId":{ + "type":"string", + "max":64 + }, + "HealthCheckInUse":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "HealthCheckNonce":{ + "type":"string", + "min":1, + "max":64 + }, + "HealthCheckObservation":{ + "type":"structure", + "members":{ + "IPAddress":{"shape":"IPAddress"}, + "StatusReport":{"shape":"StatusReport"} + } + }, + "HealthCheckObservations":{ + "type":"list", + "member":{ + "shape":"HealthCheckObservation", + "locationName":"HealthCheckObservation" + } + }, + "HealthCheckType":{ + "type":"string", + "enum":[ + "HTTP", + "HTTPS", + "HTTP_STR_MATCH", + "HTTPS_STR_MATCH", + "TCP" + ] + }, + "HealthCheckVersion":{ + "type":"long", + "min":1 + }, + "HealthCheckVersionMismatch":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "HealthChecks":{ + "type":"list", + "member":{ + "shape":"HealthCheck", + "locationName":"HealthCheck" + } + }, + "HostedZone":{ + "type":"structure", + "required":[ + "Id", + "Name", + "CallerReference" + ], + "members":{ + "Id":{"shape":"ResourceId"}, + "Name":{"shape":"DNSName"}, + "CallerReference":{"shape":"Nonce"}, + "Config":{"shape":"HostedZoneConfig"}, + "ResourceRecordSetCount":{"shape":"HostedZoneRRSetCount"} + } + }, + "HostedZoneAlreadyExists":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "HostedZoneConfig":{ + "type":"structure", + "members":{ + "Comment":{"shape":"ResourceDescription"}, + "PrivateZone":{"shape":"IsPrivateZone"} + } + }, + "HostedZoneCount":{"type":"long"}, + "HostedZoneNotEmpty":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "HostedZoneNotFound":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "HostedZoneRRSetCount":{"type":"long"}, + "HostedZones":{ + "type":"list", + "member":{ + "shape":"HostedZone", + "locationName":"HostedZone" + } + }, + "IPAddress":{ + "type":"string", + "max":15, + "pattern":"^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" + }, + "IPAddressCidr":{"type":"string"}, + "IncompatibleVersion":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidArgument":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "InvalidChangeBatch":{ + "type":"structure", + "members":{ + "messages":{"shape":"ErrorMessages"} + }, + "exception":true + }, + "InvalidDomainName":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidInput":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "InvalidVPCId":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "IsPrivateZone":{"type":"boolean"}, + "LastVPCAssociation":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "LimitsExceeded":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ListGeoLocationsRequest":{ + "type":"structure", + "members":{ + "StartContinentCode":{ + "shape":"GeoLocationContinentCode", + "location":"querystring", + "locationName":"startcontinentcode" + }, + "StartCountryCode":{ + "shape":"GeoLocationCountryCode", + "location":"querystring", + "locationName":"startcountrycode" + }, + "StartSubdivisionCode":{ + "shape":"GeoLocationSubdivisionCode", + "location":"querystring", + "locationName":"startsubdivisioncode" + }, + "MaxItems":{ + "shape":"PageMaxItems", + "location":"querystring", + "locationName":"maxitems" + } + } + }, + "ListGeoLocationsResponse":{ + "type":"structure", + "required":[ + "GeoLocationDetailsList", + "IsTruncated", + "MaxItems" + ], + "members":{ + "GeoLocationDetailsList":{"shape":"GeoLocationDetailsList"}, + "IsTruncated":{"shape":"PageTruncated"}, + "NextContinentCode":{"shape":"GeoLocationContinentCode"}, + "NextCountryCode":{"shape":"GeoLocationCountryCode"}, + "NextSubdivisionCode":{"shape":"GeoLocationSubdivisionCode"}, + "MaxItems":{"shape":"PageMaxItems"} + } + }, + "ListHealthChecksRequest":{ + "type":"structure", + "members":{ + "Marker":{ + "shape":"PageMarker", + "location":"querystring", + "locationName":"marker" + }, + "MaxItems":{ + "shape":"PageMaxItems", + "location":"querystring", + "locationName":"maxitems" + } + } + }, + "ListHealthChecksResponse":{ + "type":"structure", + "required":[ + "HealthChecks", + "Marker", + "IsTruncated", + "MaxItems" + ], + "members":{ + "HealthChecks":{"shape":"HealthChecks"}, + "Marker":{"shape":"PageMarker"}, + "IsTruncated":{"shape":"PageTruncated"}, + "NextMarker":{"shape":"PageMarker"}, + "MaxItems":{"shape":"PageMaxItems"} + } + }, + "ListHostedZonesByNameRequest":{ + "type":"structure", + "members":{ + "DNSName":{ + "shape":"DNSName", + "location":"querystring", + "locationName":"dnsname" + }, + "HostedZoneId":{ + "shape":"ResourceId", + "location":"querystring", + "locationName":"hostedzoneid" + }, + "MaxItems":{ + "shape":"PageMaxItems", + "location":"querystring", + "locationName":"maxitems" + } + } + }, + "ListHostedZonesByNameResponse":{ + "type":"structure", + "required":[ + "HostedZones", + "IsTruncated", + "MaxItems" + ], + "members":{ + "HostedZones":{"shape":"HostedZones"}, + "DNSName":{"shape":"DNSName"}, + "HostedZoneId":{"shape":"ResourceId"}, + "IsTruncated":{"shape":"PageTruncated"}, + "NextDNSName":{"shape":"DNSName"}, + "NextHostedZoneId":{"shape":"ResourceId"}, + "MaxItems":{"shape":"PageMaxItems"} + } + }, + "ListHostedZonesRequest":{ + "type":"structure", + "members":{ + "Marker":{ + "shape":"PageMarker", + "location":"querystring", + "locationName":"marker" + }, + "MaxItems":{ + "shape":"PageMaxItems", + "location":"querystring", + "locationName":"maxitems" + }, + "DelegationSetId":{ + "shape":"ResourceId", + "location":"querystring", + "locationName":"delegationsetid" + } + } + }, + "ListHostedZonesResponse":{ + "type":"structure", + "required":[ + "HostedZones", + "Marker", + "IsTruncated", + "MaxItems" + ], + "members":{ + "HostedZones":{"shape":"HostedZones"}, + "Marker":{"shape":"PageMarker"}, + "IsTruncated":{"shape":"PageTruncated"}, + "NextMarker":{"shape":"PageMarker"}, + "MaxItems":{"shape":"PageMaxItems"} + } + }, + "ListResourceRecordSetsRequest":{ + "type":"structure", + "required":["HostedZoneId"], + "members":{ + "HostedZoneId":{ + "shape":"ResourceId", + "location":"uri", + "locationName":"Id" + }, + "StartRecordName":{ + "shape":"DNSName", + "location":"querystring", + "locationName":"name" + }, + "StartRecordType":{ + "shape":"RRType", + "location":"querystring", + "locationName":"type" + }, + "StartRecordIdentifier":{ + "shape":"ResourceRecordSetIdentifier", + "location":"querystring", + "locationName":"identifier" + }, + "MaxItems":{ + "shape":"PageMaxItems", + "location":"querystring", + "locationName":"maxitems" + } + } + }, + "ListResourceRecordSetsResponse":{ + "type":"structure", + "required":[ + "ResourceRecordSets", + "IsTruncated", + "MaxItems" + ], + "members":{ + "ResourceRecordSets":{"shape":"ResourceRecordSets"}, + "IsTruncated":{"shape":"PageTruncated"}, + "NextRecordName":{"shape":"DNSName"}, + "NextRecordType":{"shape":"RRType"}, + "NextRecordIdentifier":{"shape":"ResourceRecordSetIdentifier"}, + "MaxItems":{"shape":"PageMaxItems"} + } + }, + "ListReusableDelegationSetsRequest":{ + "type":"structure", + "members":{ + "Marker":{ + "shape":"PageMarker", + "location":"querystring", + "locationName":"marker" + }, + "MaxItems":{ + "shape":"PageMaxItems", + "location":"querystring", + "locationName":"maxitems" + } + } + }, + "ListReusableDelegationSetsResponse":{ + "type":"structure", + "required":[ + "DelegationSets", + "Marker", + "IsTruncated", + "MaxItems" + ], + "members":{ + "DelegationSets":{"shape":"DelegationSets"}, + "Marker":{"shape":"PageMarker"}, + "IsTruncated":{"shape":"PageTruncated"}, + "NextMarker":{"shape":"PageMarker"}, + "MaxItems":{"shape":"PageMaxItems"} + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":[ + "ResourceType", + "ResourceId" + ], + "members":{ + "ResourceType":{ + "shape":"TagResourceType", + "location":"uri", + "locationName":"ResourceType" + }, + "ResourceId":{ + "shape":"TagResourceId", + "location":"uri", + "locationName":"ResourceId" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "required":["ResourceTagSet"], + "members":{ + "ResourceTagSet":{"shape":"ResourceTagSet"} + } + }, + "ListTagsForResourcesRequest":{ + "type":"structure", + "required":[ + "ResourceType", + "ResourceIds" + ], + "members":{ + "ResourceType":{ + "shape":"TagResourceType", + "location":"uri", + "locationName":"ResourceType" + }, + "ResourceIds":{"shape":"TagResourceIdList"} + } + }, + "ListTagsForResourcesResponse":{ + "type":"structure", + "required":["ResourceTagSets"], + "members":{ + "ResourceTagSets":{"shape":"ResourceTagSetList"} + } + }, + "NoSuchChange":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "NoSuchDelegationSet":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "NoSuchGeoLocation":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "NoSuchHealthCheck":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "NoSuchHostedZone":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "Nonce":{ + "type":"string", + "min":1, + "max":128 + }, + "PageMarker":{ + "type":"string", + "max":64 + }, + "PageMaxItems":{"type":"string"}, + "PageTruncated":{"type":"boolean"}, + "Port":{ + "type":"integer", + "min":1, + "max":65535 + }, + "PriorRequestNotComplete":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "PublicZoneVPCAssociation":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "RData":{ + "type":"string", + "max":4000 + }, + "RRType":{ + "type":"string", + "enum":[ + "SOA", + "A", + "TXT", + "NS", + "CNAME", + "MX", + "PTR", + "SRV", + "SPF", + "AAAA" + ] + }, + "RequestInterval":{ + "type":"integer", + "min":10, + "max":30 + }, + "ResourceDescription":{ + "type":"string", + "max":256 + }, + "ResourceId":{ + "type":"string", + "max":32 + }, + "ResourcePath":{ + "type":"string", + "max":255 + }, + "ResourceRecord":{ + "type":"structure", + "required":["Value"], + "members":{ + "Value":{"shape":"RData"} + } + }, + "ResourceRecordSet":{ + "type":"structure", + "required":[ + "Name", + "Type" + ], + "members":{ + "Name":{"shape":"DNSName"}, + "Type":{"shape":"RRType"}, + "SetIdentifier":{"shape":"ResourceRecordSetIdentifier"}, + "Weight":{"shape":"ResourceRecordSetWeight"}, + "Region":{"shape":"ResourceRecordSetRegion"}, + "GeoLocation":{"shape":"GeoLocation"}, + "Failover":{"shape":"ResourceRecordSetFailover"}, + "TTL":{"shape":"TTL"}, + "ResourceRecords":{"shape":"ResourceRecords"}, + "AliasTarget":{"shape":"AliasTarget"}, + "HealthCheckId":{"shape":"HealthCheckId"} + } + }, + "ResourceRecordSetFailover":{ + "type":"string", + "enum":[ + "PRIMARY", + "SECONDARY" + ] + }, + "ResourceRecordSetIdentifier":{ + "type":"string", + "min":1, + "max":128 + }, + "ResourceRecordSetRegion":{ + "type":"string", + "enum":[ + "us-east-1", + "us-west-1", + "us-west-2", + "eu-west-1", + "eu-central-1", + "ap-southeast-1", + "ap-southeast-2", + "ap-northeast-1", + "sa-east-1", + "cn-north-1" + ], + "min":1, + "max":64 + }, + "ResourceRecordSetWeight":{ + "type":"long", + "min":0, + "max":255 + }, + "ResourceRecordSets":{ + "type":"list", + "member":{ + "shape":"ResourceRecordSet", + "locationName":"ResourceRecordSet" + } + }, + "ResourceRecords":{ + "type":"list", + "member":{ + "shape":"ResourceRecord", + "locationName":"ResourceRecord" + }, + "min":1 + }, + "ResourceTagSet":{ + "type":"structure", + "members":{ + "ResourceType":{"shape":"TagResourceType"}, + "ResourceId":{"shape":"TagResourceId"}, + "Tags":{"shape":"TagList"} + } + }, + "ResourceTagSetList":{ + "type":"list", + "member":{ + "shape":"ResourceTagSet", + "locationName":"ResourceTagSet" + } + }, + "ResourceURI":{ + "type":"string", + "max":1024 + }, + "SearchString":{ + "type":"string", + "max":255 + }, + "Status":{"type":"string"}, + "StatusReport":{ + "type":"structure", + "members":{ + "Status":{"shape":"Status"}, + "CheckedTime":{"shape":"TimeStamp"} + } + }, + "TTL":{ + "type":"long", + "min":0, + "max":2147483647 + }, + "Tag":{ + "type":"structure", + "members":{ + "Key":{"shape":"TagKey"}, + "Value":{"shape":"TagValue"} + } + }, + "TagKey":{ + "type":"string", + "max":128 + }, + "TagKeyList":{ + "type":"list", + "member":{ + "shape":"TagKey", + "locationName":"Key" + }, + "min":1, + "max":10 + }, + "TagList":{ + "type":"list", + "member":{ + "shape":"Tag", + "locationName":"Tag" + }, + "min":1, + "max":10 + }, + "TagResourceId":{ + "type":"string", + "max":64 + }, + "TagResourceIdList":{ + "type":"list", + "member":{ + "shape":"TagResourceId", + "locationName":"ResourceId" + }, + "min":1, + "max":10 + }, + "TagResourceType":{ + "type":"string", + "enum":[ + "healthcheck", + "hostedzone" + ] + }, + "TagValue":{ + "type":"string", + "max":256 + }, + "ThrottlingException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "TimeStamp":{"type":"timestamp"}, + "TooManyHealthChecks":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "TooManyHostedZones":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "UpdateHealthCheckRequest":{ + "type":"structure", + "required":["HealthCheckId"], + "members":{ + "HealthCheckId":{ + "shape":"HealthCheckId", + "location":"uri", + "locationName":"HealthCheckId" + }, + "HealthCheckVersion":{"shape":"HealthCheckVersion"}, + "IPAddress":{"shape":"IPAddress"}, + "Port":{"shape":"Port"}, + "ResourcePath":{"shape":"ResourcePath"}, + "FullyQualifiedDomainName":{"shape":"FullyQualifiedDomainName"}, + "SearchString":{"shape":"SearchString"}, + "FailureThreshold":{"shape":"FailureThreshold"} + } + }, + "UpdateHealthCheckResponse":{ + "type":"structure", + "required":["HealthCheck"], + "members":{ + "HealthCheck":{"shape":"HealthCheck"} + } + }, + "UpdateHostedZoneCommentRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"ResourceId", + "location":"uri", + "locationName":"Id" + }, + "Comment":{"shape":"ResourceDescription"} + } + }, + "UpdateHostedZoneCommentResponse":{ + "type":"structure", + "required":["HostedZone"], + "members":{ + "HostedZone":{"shape":"HostedZone"} + } + }, + "VPC":{ + "type":"structure", + "members":{ + "VPCRegion":{"shape":"VPCRegion"}, + "VPCId":{"shape":"VPCId"} + } + }, + "VPCAssociationNotFound":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "VPCId":{ + "type":"string", + "max":1024 + }, + "VPCRegion":{ + "type":"string", + "enum":[ + "us-east-1", + "us-west-1", + "us-west-2", + "eu-west-1", + "eu-central-1", + "ap-southeast-1", + "ap-southeast-2", + "ap-northeast-1", + "sa-east-1", + "cn-north-1" + ], + "min":1, + "max":64 + }, + "VPCs":{ + "type":"list", + "member":{ + "shape":"VPC", + "locationName":"VPC" + }, + "min":1 + } + } +} diff --git a/lib/aws-sdk/Aws/data/route53/2013-04-01/docs-2.json b/lib/aws-sdk/Aws/data/route53/2013-04-01/docs-2.json new file mode 100644 index 0000000..3e8ed51 --- /dev/null +++ b/lib/aws-sdk/Aws/data/route53/2013-04-01/docs-2.json @@ -0,0 +1,1159 @@ +{ + "version": "2.0", + "operations": { + "AssociateVPCWithHostedZone": "

This action associates a VPC with an hosted zone.

To associate a VPC with an hosted zone, send a POST request to the 2013-04-01/hostedzone/hosted zone ID/associatevpc resource. The request body must include an XML document with a AssociateVPCWithHostedZoneRequest element. The response returns the AssociateVPCWithHostedZoneResponse element that contains ChangeInfo for you to track the progress of the AssociateVPCWithHostedZoneRequest you made. See GetChange operation for how to track the progress of your change.

", + "ChangeResourceRecordSets": "

Use this action to create or change your authoritative DNS information. To use this action, send a POST request to the 2013-04-01/hostedzone/hosted Zone ID/rrset resource. The request body must include an XML document with a ChangeResourceRecordSetsRequest element.

Changes are a list of change items and are considered transactional. For more information on transactional changes, also known as change batches, see Creating, Changing, and Deleting Resource Record Sets Using the Route 53 API in the Amazon Route 53 Developer Guide.

Due to the nature of transactional changes, you cannot delete the same resource record set more than once in a single change batch. If you attempt to delete the same change batch more than once, Route 53 returns an InvalidChangeBatch error.

In response to a ChangeResourceRecordSets request, your DNS data is changed on all Route 53 DNS servers. Initially, the status of a change is PENDING. This means the change has not yet propagated to all the authoritative Route 53 DNS servers. When the change is propagated to all hosts, the change returns a status of INSYNC.

Note the following limitations on a ChangeResourceRecordSets request:

- A request cannot contain more than 100 Change elements.

- A request cannot contain more than 1000 ResourceRecord elements.

The sum of the number of characters (including spaces) in all Value elements in a request cannot exceed 32,000 characters.

", + "ChangeTagsForResource": null, + "CreateHealthCheck": "

This action creates a new health check.

To create a new health check, send a POST request to the 2013-04-01/healthcheck resource. The request body must include an XML document with a CreateHealthCheckRequest element. The response returns the CreateHealthCheckResponse element that contains metadata about the health check.

", + "CreateHostedZone": "

This action creates a new hosted zone.

To create a new hosted zone, send a POST request to the 2013-04-01/hostedzone resource. The request body must include an XML document with a CreateHostedZoneRequest element. The response returns the CreateHostedZoneResponse element that contains metadata about the hosted zone.

Route 53 automatically creates a default SOA record and four NS records for the zone. The NS records in the hosted zone are the name servers you give your registrar to delegate your domain to. For more information about SOA and NS records, see NS and SOA Records that Route 53 Creates for a Hosted Zone in the Amazon Route 53 Developer Guide.

When you create a zone, its initial status is PENDING. This means that it is not yet available on all DNS servers. The status of the zone changes to INSYNC when the NS and SOA records are available on all Route 53 DNS servers.

When trying to create a hosted zone using a reusable delegation set, you could specify an optional DelegationSetId, and Route53 would assign those 4 NS records for the zone, instead of alloting a new one.

", + "CreateReusableDelegationSet": "

This action creates a reusable delegationSet.

To create a new reusable delegationSet, send a POST request to the 2013-04-01/delegationset resource. The request body must include an XML document with a CreateReusableDelegationSetRequest element. The response returns the CreateReusableDelegationSetResponse element that contains metadata about the delegationSet.

If the optional parameter HostedZoneId is specified, it marks the delegationSet associated with that particular hosted zone as reusable.

", + "DeleteHealthCheck": "

This action deletes a health check. To delete a health check, send a DELETE request to the 2013-04-01/healthcheck/health check ID resource.

You can delete a health check only if there are no resource record sets associated with this health check. If resource record sets are associated with this health check, you must disassociate them before you can delete your health check. If you try to delete a health check that is associated with resource record sets, Route 53 will deny your request with a HealthCheckInUse error. For information about disassociating the records from your health check, see ChangeResourceRecordSets.", + "DeleteHostedZone": "

This action deletes a hosted zone. To delete a hosted zone, send a DELETE request to the 2013-04-01/hostedzone/hosted zone ID resource.

For more information about deleting a hosted zone, see Deleting a Hosted Zone in the Amazon Route 53 Developer Guide.

You can delete a hosted zone only if there are no resource record sets other than the default SOA record and NS resource record sets. If your hosted zone contains other resource record sets, you must delete them before you can delete your hosted zone. If you try to delete a hosted zone that contains other resource record sets, Route 53 will deny your request with a HostedZoneNotEmpty error. For information about deleting records from your hosted zone, see ChangeResourceRecordSets.", + "DeleteReusableDelegationSet": "

This action deletes a reusable delegation set. To delete a reusable delegation set, send a DELETE request to the 2013-04-01/delegationset/delegation set ID resource.

You can delete a reusable delegation set only if there are no associated hosted zones. If your reusable delegation set contains associated hosted zones, you must delete them before you can delete your reusable delegation set. If you try to delete a reusable delegation set that contains associated hosted zones, Route 53 will deny your request with a DelegationSetInUse error.", + "DisassociateVPCFromHostedZone": "

This action disassociates a VPC from an hosted zone.

To disassociate a VPC to a hosted zone, send a POST request to the 2013-04-01/hostedzone/hosted zone ID/disassociatevpc resource. The request body must include an XML document with a DisassociateVPCFromHostedZoneRequest element. The response returns the DisassociateVPCFromHostedZoneResponse element that contains ChangeInfo for you to track the progress of the DisassociateVPCFromHostedZoneRequest you made. See GetChange operation for how to track the progress of your change.

", + "GetChange": "

This action returns the current status of a change batch request. The status is one of the following values:

- PENDING indicates that the changes in this request have not replicated to all Route 53 DNS servers. This is the initial status of all change batch requests.

- INSYNC indicates that the changes have replicated to all Amazon Route 53 DNS servers.

", + "GetCheckerIpRanges": "

To retrieve a list of the IP ranges used by Amazon Route 53 health checkers to check the health of your resources, send a GET request to the 2013-04-01/checkeripranges resource. You can use these IP addresses to configure router and firewall rules to allow health checkers to check the health of your resources.

", + "GetGeoLocation": "

To retrieve a single geo location, send a GET request to the 2013-04-01/geolocation resource with one of these options: continentcode | countrycode | countrycode and subdivisioncode.

", + "GetHealthCheck": "

To retrieve the health check, send a GET request to the 2013-04-01/healthcheck/health check ID resource.

", + "GetHealthCheckCount": "

To retrieve a count of all your health checks, send a GET request to the 2013-04-01/healthcheckcount resource.

", + "GetHealthCheckLastFailureReason": "

If you want to learn why a health check is currently failing or why it failed most recently (if at all), you can get the failure reason for the most recent failure. Send a GET request to the 2013-04-01/healthcheck/health check ID/lastfailurereason resource.

", + "GetHealthCheckStatus": "

To retrieve the health check status, send a GET request to the 2013-04-01/healthcheck/health check ID/status resource. You can use this call to get a health check's current status.

", + "GetHostedZone": "

To retrieve the delegation set for a hosted zone, send a GET request to the 2013-04-01/hostedzone/hosted zone ID resource. The delegation set is the four Route 53 name servers that were assigned to the hosted zone when you created it.

", + "GetHostedZoneCount": "

To retrieve a count of all your hosted zones, send a GET request to the 2013-04-01/hostedzonecount resource.

", + "GetReusableDelegationSet": "

To retrieve the reusable delegation set, send a GET request to the 2013-04-01/delegationset/delegation set ID resource.

", + "ListGeoLocations": "

To retrieve a list of supported geo locations, send a GET request to the 2013-04-01/geolocations resource. The response to this request includes a GeoLocationDetailsList element with zero, one, or multiple GeoLocationDetails child elements. The list is sorted by country code, and then subdivision code, followed by continents at the end of the list.

By default, the list of geo locations is displayed on a single page. You can control the length of the page that is displayed by using the MaxItems parameter. If the list is truncated, IsTruncated will be set to true and a combination of NextContinentCode, NextCountryCode, NextSubdivisionCode will be populated. You can pass these as parameters to StartContinentCode, StartCountryCode, StartSubdivisionCode to control the geo location that the list begins with.

", + "ListHealthChecks": "

To retrieve a list of your health checks, send a GET request to the 2013-04-01/healthcheck resource. The response to this request includes a HealthChecks element with zero, one, or multiple HealthCheck child elements. By default, the list of health checks is displayed on a single page. You can control the length of the page that is displayed by using the MaxItems parameter. You can use the Marker parameter to control the health check that the list begins with.

Amazon Route 53 returns a maximum of 100 items. If you set MaxItems to a value greater than 100, Amazon Route 53 returns only the first 100.", + "ListHostedZones": "

To retrieve a list of your hosted zones, send a GET request to the 2013-04-01/hostedzone resource. The response to this request includes a HostedZones element with zero, one, or multiple HostedZone child elements. By default, the list of hosted zones is displayed on a single page. You can control the length of the page that is displayed by using the MaxItems parameter. You can use the Marker parameter to control the hosted zone that the list begins with.

Amazon Route 53 returns a maximum of 100 items. If you set MaxItems to a value greater than 100, Amazon Route 53 returns only the first 100.", + "ListHostedZonesByName": "

To retrieve a list of your hosted zones in lexicographic order, send a GET request to the 2013-04-01/hostedzonesbyname resource. The response to this request includes a HostedZones element with zero or more HostedZone child elements lexicographically ordered by DNS name. By default, the list of hosted zones is displayed on a single page. You can control the length of the page that is displayed by using the MaxItems parameter. You can use the DNSName and HostedZoneId parameters to control the hosted zone that the list begins with.

Amazon Route 53 returns a maximum of 100 items. If you set MaxItems to a value greater than 100, Amazon Route 53 returns only the first 100.", + "ListResourceRecordSets": "

Imagine all the resource record sets in a zone listed out in front of you. Imagine them sorted lexicographically first by DNS name (with the labels reversed, like \"com.amazon.www\" for example), and secondarily, lexicographically by record type. This operation retrieves at most MaxItems resource record sets from this list, in order, starting at a position specified by the Name and Type arguments:

  • If both Name and Type are omitted, this means start the results at the first RRSET in the HostedZone.
  • If Name is specified but Type is omitted, this means start the results at the first RRSET in the list whose name is greater than or equal to Name.
  • If both Name and Type are specified, this means start the results at the first RRSET in the list whose name is greater than or equal to Name and whose type is greater than or equal to Type.
  • It is an error to specify the Type but not the Name.

Use ListResourceRecordSets to retrieve a single known record set by specifying the record set's name and type, and setting MaxItems = 1

To retrieve all the records in a HostedZone, first pause any processes making calls to ChangeResourceRecordSets. Initially call ListResourceRecordSets without a Name and Type to get the first page of record sets. For subsequent calls, set Name and Type to the NextName and NextType values returned by the previous response.

In the presence of concurrent ChangeResourceRecordSets calls, there is no consistency of results across calls to ListResourceRecordSets. The only way to get a consistent multi-page snapshot of all RRSETs in a zone is to stop making changes while pagination is in progress.

However, the results from ListResourceRecordSets are consistent within a page. If MakeChange calls are taking place concurrently, the result of each one will either be completely visible in your results or not at all. You will not see partial changes, or changes that do not ultimately succeed. (This follows from the fact that MakeChange is atomic)

The results from ListResourceRecordSets are strongly consistent with ChangeResourceRecordSets. To be precise, if a single process makes a call to ChangeResourceRecordSets and receives a successful response, the effects of that change will be visible in a subsequent call to ListResourceRecordSets by that process.

", + "ListReusableDelegationSets": "

To retrieve a list of your reusable delegation sets, send a GET request to the 2013-04-01/delegationset resource. The response to this request includes a DelegationSets element with zero, one, or multiple DelegationSet child elements. By default, the list of delegation sets is displayed on a single page. You can control the length of the page that is displayed by using the MaxItems parameter. You can use the Marker parameter to control the delegation set that the list begins with.

Amazon Route 53 returns a maximum of 100 items. If you set MaxItems to a value greater than 100, Amazon Route 53 returns only the first 100.", + "ListTagsForResource": null, + "ListTagsForResources": null, + "UpdateHealthCheck": "

This action updates an existing health check.

To update a health check, send a POST request to the 2013-04-01/healthcheck/health check ID resource. The request body must include an XML document with an UpdateHealthCheckRequest element. The response returns an UpdateHealthCheckResponse element, which contains metadata about the health check.

", + "UpdateHostedZoneComment": "

To update the hosted zone comment, send a POST request to the 2013-04-01/hostedzone/hosted zone ID resource. The request body must include an XML document with a UpdateHostedZoneCommentRequest element. The response to this request includes the modified HostedZone element.

The comment can have a maximum length of 256 characters." + }, + "service": null, + "shapes": { + "AliasHealthEnabled": { + "base": null, + "refs": { + "AliasTarget$EvaluateTargetHealth": "

Alias resource record sets only: A boolean value that indicates whether this Resource Record Set should respect the health status of any health checks associated with the ALIAS target record which it is linked to.

For more information and an example, see Creating Alias Resource Record Sets in the Amazon Route 53 Developer Guide

." + } + }, + "AliasTarget": { + "base": "

Alias resource record sets only: Information about the domain to which you are redirecting traffic.

For more information and an example, see Creating Alias Resource Record Sets in the Amazon Route 53 Developer Guide

.", + "refs": { + "ResourceRecordSet$AliasTarget": "

Alias resource record sets only: Information about the AWS resource to which you are redirecting traffic.

" + } + }, + "AssociateVPCComment": { + "base": null, + "refs": { + "AssociateVPCWithHostedZoneRequest$Comment": "

Optional: Any comments you want to include about a AssociateVPCWithHostedZoneRequest.

" + } + }, + "AssociateVPCWithHostedZoneRequest": { + "base": "

A complex type that contains information about the request to associate a VPC with an hosted zone.

", + "refs": { + } + }, + "AssociateVPCWithHostedZoneResponse": { + "base": "

A complex type containing the response information for the request.

", + "refs": { + } + }, + "Change": { + "base": "

A complex type that contains the information for each change in a change batch request.

", + "refs": { + "Changes$member": null + } + }, + "ChangeAction": { + "base": null, + "refs": { + "Change$Action": "

The action to perform.

Valid values: CREATE | DELETE | UPSERT

" + } + }, + "ChangeBatch": { + "base": "

A complex type that contains an optional comment and the changes that you want to make with a change batch request.

", + "refs": { + "ChangeResourceRecordSetsRequest$ChangeBatch": "

A complex type that contains an optional comment and the Changes element.

" + } + }, + "ChangeInfo": { + "base": "

A complex type that describes change information about changes made to your hosted zone.

This element contains an ID that you use when performing a GetChange action to get detailed information about the change.

", + "refs": { + "AssociateVPCWithHostedZoneResponse$ChangeInfo": "

A complex type that contains the ID, the status, and the date and time of your AssociateVPCWithHostedZoneRequest.

", + "ChangeResourceRecordSetsResponse$ChangeInfo": "

A complex type that contains information about changes made to your hosted zone.

This element contains an ID that you use when performing a GetChange action to get detailed information about the change.

", + "CreateHostedZoneResponse$ChangeInfo": "

A complex type that contains information about the request to create a hosted zone. This includes an ID that you use when you call the GetChange action to get the current status of the change request.

", + "DeleteHostedZoneResponse$ChangeInfo": "

A complex type that contains the ID, the status, and the date and time of your delete request.

", + "DisassociateVPCFromHostedZoneResponse$ChangeInfo": "

A complex type that contains the ID, the status, and the date and time of your DisassociateVPCFromHostedZoneRequest.

", + "GetChangeResponse$ChangeInfo": "

A complex type that contains information about the specified change batch, including the change batch ID, the status of the change, and the date and time of the request.

" + } + }, + "ChangeResourceRecordSetsRequest": { + "base": "

A complex type that contains a change batch.

", + "refs": { + } + }, + "ChangeResourceRecordSetsResponse": { + "base": "

A complex type containing the response for the request.

", + "refs": { + } + }, + "ChangeStatus": { + "base": null, + "refs": { + "ChangeInfo$Status": "

The current state of the request. PENDING indicates that this request has not yet been applied to all Amazon Route 53 DNS servers.

Valid Values: PENDING | INSYNC

" + } + }, + "ChangeTagsForResourceRequest": { + "base": "

A complex type containing information about a request to add, change, or delete the tags that are associated with a resource.

", + "refs": { + } + }, + "ChangeTagsForResourceResponse": { + "base": "

Empty response for the request.

", + "refs": { + } + }, + "Changes": { + "base": null, + "refs": { + "ChangeBatch$Changes": "

A complex type that contains one Change element for each resource record set that you want to create or delete.

" + } + }, + "CheckerIpRanges": { + "base": null, + "refs": { + "GetCheckerIpRangesResponse$CheckerIpRanges": "

A complex type that contains sorted list of IP ranges in CIDR format for Amazon Route 53 health checkers.

" + } + }, + "ConflictingDomainExists": { + "base": null, + "refs": { + } + }, + "CreateHealthCheckRequest": { + "base": "

>A complex type that contains information about the request to create a health check.

", + "refs": { + } + }, + "CreateHealthCheckResponse": { + "base": "

A complex type containing the response information for the new health check.

", + "refs": { + } + }, + "CreateHostedZoneRequest": { + "base": "

A complex type that contains information about the request to create a hosted zone.

", + "refs": { + } + }, + "CreateHostedZoneResponse": { + "base": "

A complex type containing the response information for the new hosted zone.

", + "refs": { + } + }, + "CreateReusableDelegationSetRequest": { + "base": null, + "refs": { + } + }, + "CreateReusableDelegationSetResponse": { + "base": null, + "refs": { + } + }, + "DNSName": { + "base": null, + "refs": { + "AliasTarget$DNSName": "

Alias resource record sets only: The external DNS name associated with the AWS Resource.

For more information and an example, see Creating Alias Resource Record Sets in the Amazon Route 53 Developer Guide

.", + "CreateHostedZoneRequest$Name": "

The name of the domain. This must be a fully-specified domain, for example, www.example.com. The trailing dot is optional; Route 53 assumes that the domain name is fully qualified. This means that Route 53 treats www.example.com (without a trailing dot) and www.example.com. (with a trailing dot) as identical.

This is the name you have registered with your DNS registrar. You should ask your registrar to change the authoritative name servers for your domain to the set of NameServers elements returned in DelegationSet.

", + "DelegationSetNameServers$member": null, + "HostedZone$Name": "

The name of the domain. This must be a fully-specified domain, for example, www.example.com. The trailing dot is optional; Route 53 assumes that the domain name is fully qualified. This means that Route 53 treats www.example.com (without a trailing dot) and www.example.com. (with a trailing dot) as identical.

This is the name you have registered with your DNS registrar. You should ask your registrar to change the authoritative name servers for your domain to the set of NameServers elements returned in DelegationSet.

", + "ListHostedZonesByNameRequest$DNSName": "

The first name in the lexicographic ordering of domain names that you want the ListHostedZonesByNameRequest request to list.

If the request returned more than one page of results, submit another request and specify the value of NextDNSName and NextHostedZoneId from the last response in the DNSName and HostedZoneId parameters to get the next page of results.

", + "ListHostedZonesByNameResponse$DNSName": "

The DNSName value sent in the request.

", + "ListHostedZonesByNameResponse$NextDNSName": "

If ListHostedZonesByNameResponse$IsTruncated is true, there are more hosted zones associated with the current AWS account. To get the next page of results, make another request to ListHostedZonesByName. Specify the value of ListHostedZonesByNameResponse$NextDNSName in the ListHostedZonesByNameRequest$DNSName element and ListHostedZonesByNameResponse$NextHostedZoneId in the ListHostedZonesByNameRequest$HostedZoneId element.

", + "ListResourceRecordSetsRequest$StartRecordName": "

The first name in the lexicographic ordering of domain names that you want the ListResourceRecordSets request to list.

", + "ListResourceRecordSetsResponse$NextRecordName": "

If the results were truncated, the name of the next record in the list. This element is present only if ListResourceRecordSetsResponse$IsTruncated is true.

", + "ResourceRecordSet$Name": "

The domain name of the current resource record set.

" + } + }, + "DelegationSet": { + "base": "

A complex type that contains name server information.

", + "refs": { + "CreateHostedZoneResponse$DelegationSet": "

A complex type that contains name server information.

", + "CreateReusableDelegationSetResponse$DelegationSet": "

A complex type that contains name server information.

", + "DelegationSets$member": null, + "GetHostedZoneResponse$DelegationSet": "

A complex type that contains information about the name servers for the specified hosted zone.

", + "GetReusableDelegationSetResponse$DelegationSet": "

A complex type that contains the information about the nameservers for the specified delegation set ID.

" + } + }, + "DelegationSetAlreadyCreated": { + "base": "

A delegation set with the same owner and caller reference combination has already been created.

", + "refs": { + } + }, + "DelegationSetAlreadyReusable": { + "base": "

The specified delegation set has already been marked as reusable.

", + "refs": { + } + }, + "DelegationSetInUse": { + "base": "

The specified delegation contains associated hosted zones which must be deleted before the reusable delegation set can be deleted.

", + "refs": { + } + }, + "DelegationSetNameServers": { + "base": null, + "refs": { + "DelegationSet$NameServers": "

A complex type that contains the authoritative name servers for the hosted zone. Use the method provided by your domain registrar to add an NS record to your domain for each NameServer that is assigned to your hosted zone.

" + } + }, + "DelegationSetNotAvailable": { + "base": "

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.

", + "refs": { + } + }, + "DelegationSetNotReusable": { + "base": "

The specified delegation set has not been marked as reusable.

", + "refs": { + } + }, + "DelegationSets": { + "base": null, + "refs": { + "ListReusableDelegationSetsResponse$DelegationSets": "

A complex type that contains information about the reusable delegation sets associated with the current AWS account.

" + } + }, + "DeleteHealthCheckRequest": { + "base": "

A complex type containing the request information for delete health check.

", + "refs": { + } + }, + "DeleteHealthCheckResponse": { + "base": "

Empty response for the request.

", + "refs": { + } + }, + "DeleteHostedZoneRequest": { + "base": "

A complex type that contains information about the hosted zone that you want to delete.

", + "refs": { + } + }, + "DeleteHostedZoneResponse": { + "base": "

A complex type containing the response information for the request.

", + "refs": { + } + }, + "DeleteReusableDelegationSetRequest": { + "base": "

A complex type containing the information for the delete request.

", + "refs": { + } + }, + "DeleteReusableDelegationSetResponse": { + "base": "

Empty response for the request.

", + "refs": { + } + }, + "DisassociateVPCComment": { + "base": null, + "refs": { + "DisassociateVPCFromHostedZoneRequest$Comment": "

Optional: Any comments you want to include about a DisassociateVPCFromHostedZoneRequest.

" + } + }, + "DisassociateVPCFromHostedZoneRequest": { + "base": "

A complex type that contains information about the request to disassociate a VPC from an hosted zone.

", + "refs": { + } + }, + "DisassociateVPCFromHostedZoneResponse": { + "base": "

A complex type containing the response information for the request.

", + "refs": { + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "ConflictingDomainExists$message": null, + "DelegationSetAlreadyCreated$message": "

Descriptive message for the error response.

", + "DelegationSetAlreadyReusable$message": "

Descriptive message for the error response.

", + "DelegationSetInUse$message": "

Descriptive message for the error response.

", + "DelegationSetNotAvailable$message": "

Descriptive message for the error response.

", + "DelegationSetNotReusable$message": "

Descriptive message for the error response.

", + "ErrorMessages$member": null, + "HealthCheckAlreadyExists$message": "

Descriptive message for the error response.

", + "HealthCheckInUse$message": "

Descriptive message for the error response.

", + "HealthCheckVersionMismatch$message": null, + "HostedZoneAlreadyExists$message": "

Descriptive message for the error response.

", + "HostedZoneNotEmpty$message": "

Descriptive message for the error response.

", + "HostedZoneNotFound$message": "

Descriptive message for the error response.

", + "IncompatibleVersion$message": null, + "InvalidArgument$message": "

Descriptive message for the error response.

", + "InvalidDomainName$message": "

Descriptive message for the error response.

", + "InvalidInput$message": "

Descriptive message for the error response.

", + "InvalidVPCId$message": "

Descriptive message for the error response.

", + "LastVPCAssociation$message": "

Descriptive message for the error response.

", + "LimitsExceeded$message": "

Descriptive message for the error response.

", + "NoSuchChange$message": null, + "NoSuchDelegationSet$message": "

Descriptive message for the error response.

", + "NoSuchGeoLocation$message": "

Descriptive message for the error response.

", + "NoSuchHealthCheck$message": "

Descriptive message for the error response.

", + "NoSuchHostedZone$message": null, + "PriorRequestNotComplete$message": null, + "PublicZoneVPCAssociation$message": "

Descriptive message for the error response.

", + "ThrottlingException$message": null, + "TooManyHealthChecks$message": null, + "TooManyHostedZones$message": "

Descriptive message for the error response.

", + "VPCAssociationNotFound$message": "

Descriptive message for the error response.

" + } + }, + "ErrorMessages": { + "base": null, + "refs": { + "InvalidChangeBatch$messages": "

Descriptive message for the error response.

" + } + }, + "FailureThreshold": { + "base": null, + "refs": { + "HealthCheckConfig$FailureThreshold": "

The number of consecutive health checks that an endpoint must pass or fail for Route 53 to change the current status of the endpoint from unhealthy to healthy or vice versa.

Valid values are integers between 1 and 10. For more information, see \"How Amazon Route 53 Determines Whether an Endpoint Is Healthy\" in the Amazon Route 53 Developer Guide.

", + "UpdateHealthCheckRequest$FailureThreshold": "

The number of consecutive health checks that an endpoint must pass or fail for Route 53 to change the current status of the endpoint from unhealthy to healthy or vice versa.

Valid values are integers between 1 and 10. For more information, see \"How Amazon Route 53 Determines Whether an Endpoint Is Healthy\" in the Amazon Route 53 Developer Guide.

Specify this value only if you want to change it.

" + } + }, + "FullyQualifiedDomainName": { + "base": null, + "refs": { + "HealthCheckConfig$FullyQualifiedDomainName": "

Fully qualified domain name of the instance to be health checked.

", + "UpdateHealthCheckRequest$FullyQualifiedDomainName": "

Fully qualified domain name of the instance to be health checked.

Specify this value only if you want to change it.

" + } + }, + "GeoLocation": { + "base": "

A complex type that contains information about a geo location.

", + "refs": { + "ResourceRecordSet$GeoLocation": "

Geo location resource record sets only: Among resource record sets that have the same combination of DNS name and type, a value that specifies the geo location for the current resource record set.

" + } + }, + "GeoLocationContinentCode": { + "base": null, + "refs": { + "GeoLocation$ContinentCode": "

The code for a continent geo location. Note: only continent locations have a continent code.

Valid values: AF | AN | AS | EU | OC | NA | SA

Constraint: Specifying ContinentCode with either CountryCode or SubdivisionCode returns an InvalidInput error.

", + "GeoLocationDetails$ContinentCode": "

The code for a continent geo location. Note: only continent locations have a continent code.

", + "GetGeoLocationRequest$ContinentCode": "

The code for a continent geo location. Note: only continent locations have a continent code.

Valid values: AF | AN | AS | EU | OC | NA | SA

Constraint: Specifying ContinentCode with either CountryCode or SubdivisionCode returns an InvalidInput error.

", + "ListGeoLocationsRequest$StartContinentCode": "

The first continent code in the lexicographic ordering of geo locations that you want the ListGeoLocations request to list. For non-continent geo locations, this should be null.

Valid values: AF | AN | AS | EU | OC | NA | SA

Constraint: Specifying ContinentCode with either CountryCode or SubdivisionCode returns an InvalidInput error.

", + "ListGeoLocationsResponse$NextContinentCode": "

If the results were truncated, the continent code of the next geo location in the list. This element is present only if ListGeoLocationsResponse$IsTruncated is true and the next geo location to list is a continent location.

" + } + }, + "GeoLocationContinentName": { + "base": null, + "refs": { + "GeoLocationDetails$ContinentName": "

The name of the continent. This element is only present if ContinentCode is also present.

" + } + }, + "GeoLocationCountryCode": { + "base": null, + "refs": { + "GeoLocation$CountryCode": "

The code for a country geo location. The default location uses '*' for the country code and will match all locations that are not matched by a geo location.

The default geo location uses a * for the country code. All other country codes follow the ISO 3166 two-character code.

", + "GeoLocationDetails$CountryCode": "

The code for a country geo location. The default location uses '*' for the country code and will match all locations that are not matched by a geo location.

The default geo location uses a * for the country code. All other country codes follow the ISO 3166 two-character code.

", + "GetGeoLocationRequest$CountryCode": "

The code for a country geo location. The default location uses '*' for the country code and will match all locations that are not matched by a geo location.

The default geo location uses a * for the country code. All other country codes follow the ISO 3166 two-character code.

", + "ListGeoLocationsRequest$StartCountryCode": "

The first country code in the lexicographic ordering of geo locations that you want the ListGeoLocations request to list.

The default geo location uses a * for the country code. All other country codes follow the ISO 3166 two-character code.

", + "ListGeoLocationsResponse$NextCountryCode": "

If the results were truncated, the country code of the next geo location in the list. This element is present only if ListGeoLocationsResponse$IsTruncated is true and the next geo location to list is not a continent location.

" + } + }, + "GeoLocationCountryName": { + "base": null, + "refs": { + "GeoLocationDetails$CountryName": "

The name of the country. This element is only present if CountryCode is also present.

" + } + }, + "GeoLocationDetails": { + "base": "

A complex type that contains information about a GeoLocation.

", + "refs": { + "GeoLocationDetailsList$member": null, + "GetGeoLocationResponse$GeoLocationDetails": "

A complex type that contains the information about the specified geo location.

" + } + }, + "GeoLocationDetailsList": { + "base": null, + "refs": { + "ListGeoLocationsResponse$GeoLocationDetailsList": "

A complex type that contains information about the geo locations that are returned by the request.

" + } + }, + "GeoLocationSubdivisionCode": { + "base": null, + "refs": { + "GeoLocation$SubdivisionCode": "

The code for a country's subdivision (e.g., a province of Canada). A subdivision code is only valid with the appropriate country code.

Constraint: Specifying SubdivisionCode without CountryCode returns an InvalidInput error.

", + "GeoLocationDetails$SubdivisionCode": "

The code for a country's subdivision (e.g., a province of Canada). A subdivision code is only valid with the appropriate country code.

", + "GetGeoLocationRequest$SubdivisionCode": "

The code for a country's subdivision (e.g., a province of Canada). A subdivision code is only valid with the appropriate country code.

Constraint: Specifying SubdivisionCode without CountryCode returns an InvalidInput error.

", + "ListGeoLocationsRequest$StartSubdivisionCode": "

The first subdivision code in the lexicographic ordering of geo locations that you want the ListGeoLocations request to list.

Constraint: Specifying SubdivisionCode without CountryCode returns an InvalidInput error.

", + "ListGeoLocationsResponse$NextSubdivisionCode": "

If the results were truncated, the subdivision code of the next geo location in the list. This element is present only if ListGeoLocationsResponse$IsTruncated is true and the next geo location has a subdivision.

" + } + }, + "GeoLocationSubdivisionName": { + "base": null, + "refs": { + "GeoLocationDetails$SubdivisionName": "

The name of the subdivision. This element is only present if SubdivisionCode is also present.

" + } + }, + "GetChangeRequest": { + "base": "

The input for a GetChange request.

", + "refs": { + } + }, + "GetChangeResponse": { + "base": "

A complex type that contains the ChangeInfo element.

", + "refs": { + } + }, + "GetCheckerIpRangesRequest": { + "base": "

Empty request.

", + "refs": { + } + }, + "GetCheckerIpRangesResponse": { + "base": "

A complex type that contains the CheckerIpRanges element.

", + "refs": { + } + }, + "GetGeoLocationRequest": { + "base": "

A complex type that contains information about the request to get a geo location.

", + "refs": { + } + }, + "GetGeoLocationResponse": { + "base": "

A complex type containing information about the specified geo location.

", + "refs": { + } + }, + "GetHealthCheckCountRequest": { + "base": "

To retrieve a count of all your health checks, send a GET request to the 2013-04-01/healthcheckcount resource.

", + "refs": { + } + }, + "GetHealthCheckCountResponse": { + "base": "

A complex type that contains the count of health checks associated with the current AWS account.

", + "refs": { + } + }, + "GetHealthCheckLastFailureReasonRequest": { + "base": "

A complex type that contains information about the request to get the most recent failure reason for a health check.

", + "refs": { + } + }, + "GetHealthCheckLastFailureReasonResponse": { + "base": "

A complex type that contains information about the most recent failure for the specified health check.

", + "refs": { + } + }, + "GetHealthCheckRequest": { + "base": "

A complex type that contains information about the request to get a health check.

", + "refs": { + } + }, + "GetHealthCheckResponse": { + "base": "

A complex type containing information about the specified health check.

", + "refs": { + } + }, + "GetHealthCheckStatusRequest": { + "base": "

A complex type that contains information about the request to get health check status for a health check.

", + "refs": { + } + }, + "GetHealthCheckStatusResponse": { + "base": "

A complex type that contains information about the status of the specified health check.

", + "refs": { + } + }, + "GetHostedZoneCountRequest": { + "base": "

To retrieve a count of all your hosted zones, send a GET request to the 2013-04-01/hostedzonecount resource.

", + "refs": { + } + }, + "GetHostedZoneCountResponse": { + "base": "

A complex type that contains the count of hosted zones associated with the current AWS account.

", + "refs": { + } + }, + "GetHostedZoneRequest": { + "base": "

The input for a GetHostedZone request.

", + "refs": { + } + }, + "GetHostedZoneResponse": { + "base": "

A complex type containing information about the specified hosted zone.

", + "refs": { + } + }, + "GetReusableDelegationSetRequest": { + "base": "

The input for a GetReusableDelegationSet request.

", + "refs": { + } + }, + "GetReusableDelegationSetResponse": { + "base": "

A complex type containing information about the specified reusable delegation set.

", + "refs": { + } + }, + "HealthCheck": { + "base": "

A complex type that contains identifying information about the health check.

", + "refs": { + "CreateHealthCheckResponse$HealthCheck": "

A complex type that contains identifying information about the health check.

", + "GetHealthCheckResponse$HealthCheck": "

A complex type that contains the information about the specified health check.

", + "HealthChecks$member": null, + "UpdateHealthCheckResponse$HealthCheck": null + } + }, + "HealthCheckAlreadyExists": { + "base": "

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.

", + "refs": { + } + }, + "HealthCheckConfig": { + "base": "

A complex type that contains the health check configuration.

", + "refs": { + "CreateHealthCheckRequest$HealthCheckConfig": "

A complex type that contains health check configuration.

", + "HealthCheck$HealthCheckConfig": "

A complex type that contains the health check configuration.

" + } + }, + "HealthCheckCount": { + "base": null, + "refs": { + "GetHealthCheckCountResponse$HealthCheckCount": "

The number of health checks associated with the current AWS account.

" + } + }, + "HealthCheckId": { + "base": null, + "refs": { + "DeleteHealthCheckRequest$HealthCheckId": "

The ID of the health check to delete.

", + "GetHealthCheckLastFailureReasonRequest$HealthCheckId": "

The ID of the health check for which you want to retrieve the reason for the most recent failure.

", + "GetHealthCheckRequest$HealthCheckId": "

The ID of the health check to retrieve.

", + "GetHealthCheckStatusRequest$HealthCheckId": "

The ID of the health check for which you want to retrieve the most recent status.

", + "HealthCheck$Id": "

The ID of the specified health check.

", + "ResourceRecordSet$HealthCheckId": "

Health Check resource record sets only, not required for alias resource record sets: An identifier that is used to identify health check associated with the resource record set.

", + "UpdateHealthCheckRequest$HealthCheckId": "

The ID of the health check to update.

" + } + }, + "HealthCheckInUse": { + "base": "

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.

", + "refs": { + } + }, + "HealthCheckNonce": { + "base": null, + "refs": { + "CreateHealthCheckRequest$CallerReference": "

A unique string that identifies the request and that allows failed CreateHealthCheck requests to be retried without the risk of executing the operation twice. You must use a unique CallerReference string every time you create a health check. CallerReference can be any unique string; you might choose to use a string that identifies your project.

Valid characters are any Unicode code points that are legal in an XML 1.0 document. The UTF-8 encoding of the value must be less than 128 bytes.

", + "HealthCheck$CallerReference": "

A unique string that identifies the request to create the health check.

" + } + }, + "HealthCheckObservation": { + "base": "

A complex type that contains the IP address of a Route 53 health checker and the reason for the health check status.

", + "refs": { + "HealthCheckObservations$member": null + } + }, + "HealthCheckObservations": { + "base": null, + "refs": { + "GetHealthCheckLastFailureReasonResponse$HealthCheckObservations": "

A list that contains one HealthCheckObservation element for each Route 53 health checker.

", + "GetHealthCheckStatusResponse$HealthCheckObservations": "

A list that contains one HealthCheckObservation element for each Route 53 health checker.

" + } + }, + "HealthCheckType": { + "base": null, + "refs": { + "HealthCheckConfig$Type": "

The type of health check to be performed. Currently supported types are TCP, HTTP, HTTPS, HTTP_STR_MATCH, and HTTPS_STR_MATCH.

" + } + }, + "HealthCheckVersion": { + "base": null, + "refs": { + "HealthCheck$HealthCheckVersion": "

The version of the health check. You can optionally pass this value in a call to UpdateHealthCheck to prevent overwriting another change to the health check.

", + "UpdateHealthCheckRequest$HealthCheckVersion": "

Optional. When you specify a health check version, Route 53 compares this value with the current value in the health check, which prevents you from updating the health check when the versions don't match. Using HealthCheckVersion lets you prevent overwriting another change to the health check.

" + } + }, + "HealthCheckVersionMismatch": { + "base": null, + "refs": { + } + }, + "HealthChecks": { + "base": null, + "refs": { + "ListHealthChecksResponse$HealthChecks": "

A complex type that contains information about the health checks associated with the current AWS account.

" + } + }, + "HostedZone": { + "base": "

A complex type that contain information about the specified hosted zone.

", + "refs": { + "CreateHostedZoneResponse$HostedZone": "

A complex type that contains identifying information about the hosted zone.

", + "GetHostedZoneResponse$HostedZone": "

A complex type that contains the information about the specified hosted zone.

", + "HostedZones$member": null, + "UpdateHostedZoneCommentResponse$HostedZone": null + } + }, + "HostedZoneAlreadyExists": { + "base": "

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.

", + "refs": { + } + }, + "HostedZoneConfig": { + "base": "

A complex type that contains an optional comment about your hosted zone. If you don't want to specify a comment, you can omit the HostedZoneConfig and Comment elements from the XML document.

", + "refs": { + "CreateHostedZoneRequest$HostedZoneConfig": "

A complex type that contains an optional comment about your hosted zone.

", + "HostedZone$Config": "

A complex type that contains the Comment element.

" + } + }, + "HostedZoneCount": { + "base": null, + "refs": { + "GetHostedZoneCountResponse$HostedZoneCount": "

The number of hosted zones associated with the current AWS account.

" + } + }, + "HostedZoneNotEmpty": { + "base": "

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.

", + "refs": { + } + }, + "HostedZoneNotFound": { + "base": "

The specified HostedZone cannot be found.

", + "refs": { + } + }, + "HostedZoneRRSetCount": { + "base": null, + "refs": { + "HostedZone$ResourceRecordSetCount": "

Total number of resource record sets in the hosted zone.

" + } + }, + "HostedZones": { + "base": null, + "refs": { + "ListHostedZonesByNameResponse$HostedZones": "

A complex type that contains information about the hosted zones associated with the current AWS account.

", + "ListHostedZonesResponse$HostedZones": "

A complex type that contains information about the hosted zones associated with the current AWS account.

" + } + }, + "IPAddress": { + "base": null, + "refs": { + "HealthCheckConfig$IPAddress": "

IP Address of the instance being checked.

", + "HealthCheckObservation$IPAddress": "

The IP address of the Route 53 health checker that performed the health check.

", + "UpdateHealthCheckRequest$IPAddress": "

The IP address of the resource that you want to check.

Specify this value only if you want to change it.

" + } + }, + "IPAddressCidr": { + "base": null, + "refs": { + "CheckerIpRanges$member": null + } + }, + "IncompatibleVersion": { + "base": "

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.

", + "refs": { + } + }, + "InvalidArgument": { + "base": "

At least one of the specified arguments is invalid.

", + "refs": { + } + }, + "InvalidChangeBatch": { + "base": "

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.

", + "refs": { + } + }, + "InvalidDomainName": { + "base": "

This error indicates that the specified domain name is not valid.

", + "refs": { + } + }, + "InvalidInput": { + "base": "

Some value specified in the request is invalid or the XML document is malformed.

", + "refs": { + } + }, + "InvalidVPCId": { + "base": "

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.

", + "refs": { + } + }, + "IsPrivateZone": { + "base": null, + "refs": { + "HostedZoneConfig$PrivateZone": "

A value that indicates whether this is a private hosted zone. The value is returned in the response; do not specify it in the request.

" + } + }, + "LastVPCAssociation": { + "base": "

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.

", + "refs": { + } + }, + "LimitsExceeded": { + "base": "

The limits specified for a resource have been exceeded.

", + "refs": { + } + }, + "ListGeoLocationsRequest": { + "base": "

The input for a ListGeoLocations request.

", + "refs": { + } + }, + "ListGeoLocationsResponse": { + "base": "

A complex type that contains information about the geo locations that are returned by the request and information about the response.

", + "refs": { + } + }, + "ListHealthChecksRequest": { + "base": "

To retrieve a list of your health checks, send a GET request to the 2013-04-01/healthcheck resource. The response to this request includes a HealthChecks element with zero or more HealthCheck child elements. By default, the list of health checks is displayed on a single page. You can control the length of the page that is displayed by using the MaxItems parameter. You can use the Marker parameter to control the health check that the list begins with.

Route 53 returns a maximum of 100 items. If you set MaxItems to a value greater than 100, Route 53 returns only the first 100.", + "refs": { + } + }, + "ListHealthChecksResponse": { + "base": "

A complex type that contains the response for the request.

", + "refs": { + } + }, + "ListHostedZonesByNameRequest": { + "base": "

To retrieve a list of your hosted zones in lexicographic order, send a GET request to the 2013-04-01/hostedzonesbyname resource. The response to this request includes a HostedZones element with zero or more HostedZone child elements lexicographically ordered by DNS name. By default, the list of hosted zones is displayed on a single page. You can control the length of the page that is displayed by using the MaxItems parameter. You can use the DNSName and HostedZoneId parameters to control the hosted zone that the list begins with.

For more information about listing hosted zones, see Listing the Hosted Zones for an AWS Account in the Amazon Route 53 Developer Guide.

", + "refs": { + } + }, + "ListHostedZonesByNameResponse": { + "base": "

A complex type that contains the response for the request.

", + "refs": { + } + }, + "ListHostedZonesRequest": { + "base": "

To retrieve a list of your hosted zones, send a GET request to the 2013-04-01/hostedzone resource. The response to this request includes a HostedZones element with zero or more HostedZone child elements. By default, the list of hosted zones is displayed on a single page. You can control the length of the page that is displayed by using the MaxItems parameter. You can use the Marker parameter to control the hosted zone that the list begins with. For more information about listing hosted zones, see Listing the Hosted Zones for an AWS Account in the Amazon Route 53 Developer Guide.

Route 53 returns a maximum of 100 items. If you set MaxItems to a value greater than 100, Route 53 returns only the first 100.", + "refs": { + } + }, + "ListHostedZonesResponse": { + "base": "

A complex type that contains the response for the request.

", + "refs": { + } + }, + "ListResourceRecordSetsRequest": { + "base": "

The input for a ListResourceRecordSets request.

", + "refs": { + } + }, + "ListResourceRecordSetsResponse": { + "base": "

A complex type that contains information about the resource record sets that are returned by the request and information about the response.

", + "refs": { + } + }, + "ListReusableDelegationSetsRequest": { + "base": "

To retrieve a list of your reusable delegation sets, send a GET request to the 2013-04-01/delegationset resource. The response to this request includes a DelegationSets element with zero or more DelegationSet child elements. By default, the list of reusable delegation sets is displayed on a single page. You can control the length of the page that is displayed by using the MaxItems parameter. You can use the Marker parameter to control the delegation set that the list begins with.

Route 53 returns a maximum of 100 items. If you set MaxItems to a value greater than 100, Route 53 returns only the first 100.", + "refs": { + } + }, + "ListReusableDelegationSetsResponse": { + "base": "

A complex type that contains the response for the request.

", + "refs": { + } + }, + "ListTagsForResourceRequest": { + "base": "

A complex type containing information about a request for a list of the tags that are associated with an individual resource.

", + "refs": { + } + }, + "ListTagsForResourceResponse": { + "base": "

A complex type containing tags for the specified resource.

", + "refs": { + } + }, + "ListTagsForResourcesRequest": { + "base": "

A complex type containing information about a request for a list of the tags that are associated with up to 10 specified resources.

", + "refs": { + } + }, + "ListTagsForResourcesResponse": { + "base": "

A complex type containing tags for the specified resources.

", + "refs": { + } + }, + "NoSuchChange": { + "base": null, + "refs": { + } + }, + "NoSuchDelegationSet": { + "base": "

The specified delegation set does not exist.

", + "refs": { + } + }, + "NoSuchGeoLocation": { + "base": "

The geo location you are trying to get does not exist.

", + "refs": { + } + }, + "NoSuchHealthCheck": { + "base": "

The health check you are trying to get or delete does not exist.

", + "refs": { + } + }, + "NoSuchHostedZone": { + "base": null, + "refs": { + } + }, + "Nonce": { + "base": null, + "refs": { + "CreateHostedZoneRequest$CallerReference": "

A unique string that identifies the request and that allows failed CreateHostedZone requests to be retried without the risk of executing the operation twice. You must use a unique CallerReference string every time you create a hosted zone. CallerReference can be any unique string; you might choose to use a string that identifies your project, such as DNSMigration_01.

Valid characters are any Unicode code points that are legal in an XML 1.0 document. The UTF-8 encoding of the value must be less than 128 bytes.

", + "CreateReusableDelegationSetRequest$CallerReference": "

A unique string that identifies the request and that allows failed CreateReusableDelegationSet requests to be retried without the risk of executing the operation twice. You must use a unique CallerReference string every time you create a reusable delegation set. CallerReference can be any unique string; you might choose to use a string that identifies your project, such as DNSMigration_01.

Valid characters are any Unicode code points that are legal in an XML 1.0 document. The UTF-8 encoding of the value must be less than 128 bytes.

", + "DelegationSet$CallerReference": null, + "HostedZone$CallerReference": "

A unique string that identifies the request to create the hosted zone.

" + } + }, + "PageMarker": { + "base": null, + "refs": { + "ListHealthChecksRequest$Marker": "

If the request returned more than one page of results, submit another request and specify the value of NextMarker from the last response in the marker parameter to get the next page of results.

", + "ListHealthChecksResponse$Marker": "

If the request returned more than one page of results, submit another request and specify the value of NextMarker from the last response in the marker parameter to get the next page of results.

", + "ListHealthChecksResponse$NextMarker": "

Indicates where to continue listing health checks. If ListHealthChecksResponse$IsTruncated is true, make another request to ListHealthChecks and include the value of the NextMarker element in the Marker element to get the next page of results.

", + "ListHostedZonesRequest$Marker": "

If the request returned more than one page of results, submit another request and specify the value of NextMarker from the last response in the marker parameter to get the next page of results.

", + "ListHostedZonesResponse$Marker": "

If the request returned more than one page of results, submit another request and specify the value of NextMarker from the last response in the marker parameter to get the next page of results.

", + "ListHostedZonesResponse$NextMarker": "

Indicates where to continue listing hosted zones. If ListHostedZonesResponse$IsTruncated is true, make another request to ListHostedZones and include the value of the NextMarker element in the Marker element to get the next page of results.

", + "ListReusableDelegationSetsRequest$Marker": "

If the request returned more than one page of results, submit another request and specify the value of NextMarker from the last response in the marker parameter to get the next page of results.

", + "ListReusableDelegationSetsResponse$Marker": "

If the request returned more than one page of results, submit another request and specify the value of NextMarker from the last response in the marker parameter to get the next page of results.

", + "ListReusableDelegationSetsResponse$NextMarker": "

Indicates where to continue listing reusable delegation sets. If ListReusableDelegationSetsResponse$IsTruncated is true, make another request to ListReusableDelegationSets and include the value of the NextMarker element in the Marker element to get the next page of results.

" + } + }, + "PageMaxItems": { + "base": null, + "refs": { + "ListGeoLocationsRequest$MaxItems": "

The maximum number of geo locations you want in the response body.

", + "ListGeoLocationsResponse$MaxItems": "

The maximum number of records you requested. The maximum value of MaxItems is 100.

", + "ListHealthChecksRequest$MaxItems": "

Specify the maximum number of health checks to return per page of results.

", + "ListHealthChecksResponse$MaxItems": "

The maximum number of health checks to be included in the response body. If the number of health checks associated with this AWS account exceeds MaxItems, the value of ListHealthChecksResponse$IsTruncated in the response is true. Call ListHealthChecks again and specify the value of ListHealthChecksResponse$NextMarker in the ListHostedZonesRequest$Marker element to get the next page of results.

", + "ListHostedZonesByNameRequest$MaxItems": "

Specify the maximum number of hosted zones to return per page of results.

", + "ListHostedZonesByNameResponse$MaxItems": "

The maximum number of hosted zones to be included in the response body. If the number of hosted zones associated with this AWS account exceeds MaxItems, the value of ListHostedZonesByNameResponse$IsTruncated in the response is true. Call ListHostedZonesByName again and specify the value of ListHostedZonesByNameResponse$NextDNSName and ListHostedZonesByNameResponse$NextHostedZoneId elements respectively to get the next page of results.

", + "ListHostedZonesRequest$MaxItems": "

Specify the maximum number of hosted zones to return per page of results.

", + "ListHostedZonesResponse$MaxItems": "

The maximum number of hosted zones to be included in the response body. If the number of hosted zones associated with this AWS account exceeds MaxItems, the value of ListHostedZonesResponse$IsTruncated in the response is true. Call ListHostedZones again and specify the value of ListHostedZonesResponse$NextMarker in the ListHostedZonesRequest$Marker element to get the next page of results.

", + "ListResourceRecordSetsRequest$MaxItems": "

The maximum number of records you want in the response body.

", + "ListResourceRecordSetsResponse$MaxItems": "

The maximum number of records you requested. The maximum value of MaxItems is 100.

", + "ListReusableDelegationSetsRequest$MaxItems": "

Specify the maximum number of reusable delegation sets to return per page of results.

", + "ListReusableDelegationSetsResponse$MaxItems": "

The maximum number of reusable delegation sets to be included in the response body. If the number of reusable delegation sets associated with this AWS account exceeds MaxItems, the value of ListReusablDelegationSetsResponse$IsTruncated in the response is true. Call ListReusableDelegationSets again and specify the value of ListReusableDelegationSetsResponse$NextMarker in the ListReusableDelegationSetsRequest$Marker element to get the next page of results.

" + } + }, + "PageTruncated": { + "base": null, + "refs": { + "ListGeoLocationsResponse$IsTruncated": "

A flag that indicates whether there are more geo locations to be listed. If your results were truncated, you can make a follow-up request for the next page of results by using the values included in the ListGeoLocationsResponse$NextContinentCode, ListGeoLocationsResponse$NextCountryCode and ListGeoLocationsResponse$NextSubdivisionCode elements.

Valid Values: true | false

", + "ListHealthChecksResponse$IsTruncated": "

A flag indicating whether there are more health checks to be listed. If your results were truncated, you can make a follow-up request for the next page of results by using the Marker element.

Valid Values: true | false

", + "ListHostedZonesByNameResponse$IsTruncated": "

A flag indicating whether there are more hosted zones to be listed. If your results were truncated, you can make a follow-up request for the next page of results by using the NextDNSName and NextHostedZoneId elements.

Valid Values: true | false

", + "ListHostedZonesResponse$IsTruncated": "

A flag indicating whether there are more hosted zones to be listed. If your results were truncated, you can make a follow-up request for the next page of results by using the Marker element.

Valid Values: true | false

", + "ListResourceRecordSetsResponse$IsTruncated": "

A flag that indicates whether there are more resource record sets to be listed. If your results were truncated, you can make a follow-up request for the next page of results by using the ListResourceRecordSetsResponse$NextRecordName element.

Valid Values: true | false

", + "ListReusableDelegationSetsResponse$IsTruncated": "

A flag indicating whether there are more reusable delegation sets to be listed. If your results were truncated, you can make a follow-up request for the next page of results by using the Marker element.

Valid Values: true | false

" + } + }, + "Port": { + "base": null, + "refs": { + "HealthCheckConfig$Port": "

Port on which connection will be opened to the instance to health check. For HTTP and HTTP_STR_MATCH this defaults to 80 if the port is not specified. For HTTPS and HTTPS_STR_MATCH this defaults to 443 if the port is not specified.

", + "UpdateHealthCheckRequest$Port": "

The port on which you want Route 53 to open a connection to perform health checks.

Specify this value only if you want to change it.

" + } + }, + "PriorRequestNotComplete": { + "base": "

The request was rejected because Route 53 was still processing a prior request.

", + "refs": { + } + }, + "PublicZoneVPCAssociation": { + "base": "

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.

", + "refs": { + } + }, + "RData": { + "base": null, + "refs": { + "ResourceRecord$Value": "

The value of the Value element for the current resource record set.

" + } + }, + "RRType": { + "base": null, + "refs": { + "ListResourceRecordSetsRequest$StartRecordType": "

The DNS type at which to begin the listing of resource record sets.

Valid values: A | AAAA | CNAME | MX | NS | PTR | SOA | SPF | SRV | TXT

Values for Weighted Resource Record Sets: A | AAAA | CNAME | TXT

Values for Regional Resource Record Sets: A | AAAA | CNAME | TXT

Values for Alias Resource Record Sets: A | AAAA

Constraint: Specifying type without specifying name returns an InvalidInput error.

", + "ListResourceRecordSetsResponse$NextRecordType": "

If the results were truncated, the type of the next record in the list. This element is present only if ListResourceRecordSetsResponse$IsTruncated is true.

", + "ResourceRecordSet$Type": "

The type of the current resource record set.

" + } + }, + "RequestInterval": { + "base": null, + "refs": { + "HealthCheckConfig$RequestInterval": "

The number of seconds between the time that Route 53 gets a response from your endpoint and the time that it sends the next health-check request.

Each Route 53 health checker makes requests at this interval. Valid values are 10 and 30. The default value is 30.

" + } + }, + "ResourceDescription": { + "base": null, + "refs": { + "ChangeBatch$Comment": "

Optional: Any comments you want to include about a change batch request.

", + "ChangeInfo$Comment": "

A complex type that describes change information about changes made to your hosted zone.

This element contains an ID that you use when performing a GetChange action to get detailed information about the change.

", + "HostedZoneConfig$Comment": "

An optional comment about your hosted zone. If you don't want to specify a comment, you can omit the HostedZoneConfig and Comment elements from the XML document.

", + "UpdateHostedZoneCommentRequest$Comment": "

A comment about your hosted zone.

" + } + }, + "ResourceId": { + "base": null, + "refs": { + "AliasTarget$HostedZoneId": "

Alias resource record sets only: The value of the hosted zone ID for the AWS resource.

For more information and an example, see Creating Alias Resource Record Sets in the Amazon Route 53 Developer Guide

.", + "AssociateVPCWithHostedZoneRequest$HostedZoneId": "

The ID of the hosted zone you want to associate your VPC with.

Note that you cannot associate a VPC with a hosted zone that doesn't have an existing VPC association.

", + "ChangeInfo$Id": "

The ID of the request. Use this ID to track when the change has completed across all Amazon Route 53 DNS servers.

", + "ChangeResourceRecordSetsRequest$HostedZoneId": "

The ID of the hosted zone that contains the resource record sets that you want to change.

", + "CreateHostedZoneRequest$DelegationSetId": "

The delegation set id of the reusable delgation set whose NS records you want to assign to the new hosted zone.

", + "CreateReusableDelegationSetRequest$HostedZoneId": "

The ID of the hosted zone whose delegation set you want to mark as reusable. It is an optional parameter.

", + "DelegationSet$Id": null, + "DeleteHostedZoneRequest$Id": "

The ID of the hosted zone you want to delete.

", + "DeleteReusableDelegationSetRequest$Id": "

The ID of the reusable delegation set you want to delete.

", + "DisassociateVPCFromHostedZoneRequest$HostedZoneId": "

The ID of the hosted zone you want to disassociate your VPC from.

Note that you cannot disassociate the last VPC from a hosted zone.

", + "GetChangeRequest$Id": "

The ID of the change batch request. The value that you specify here is the value that ChangeResourceRecordSets returned in the Id element when you submitted the request.

", + "GetHostedZoneRequest$Id": "

The ID of the hosted zone for which you want to get a list of the name servers in the delegation set.

", + "GetReusableDelegationSetRequest$Id": "

The ID of the reusable delegation set for which you want to get a list of the name server.

", + "HostedZone$Id": "

The ID of the specified hosted zone.

", + "ListHostedZonesByNameRequest$HostedZoneId": "

If the request returned more than one page of results, submit another request and specify the value of NextDNSName and NextHostedZoneId from the last response in the DNSName and HostedZoneId parameters to get the next page of results.

", + "ListHostedZonesByNameResponse$HostedZoneId": "

The HostedZoneId value sent in the request.

", + "ListHostedZonesByNameResponse$NextHostedZoneId": "

If ListHostedZonesByNameResponse$IsTruncated is true, there are more hosted zones associated with the current AWS account. To get the next page of results, make another request to ListHostedZonesByName. Specify the value of ListHostedZonesByNameResponse$NextDNSName in the ListHostedZonesByNameRequest$DNSName element and ListHostedZonesByNameResponse$NextHostedZoneId in the ListHostedZonesByNameRequest$HostedZoneId element.

", + "ListHostedZonesRequest$DelegationSetId": null, + "ListResourceRecordSetsRequest$HostedZoneId": "

The ID of the hosted zone that contains the resource record sets that you want to get.

", + "UpdateHostedZoneCommentRequest$Id": "

The ID of the hosted zone you want to update.

" + } + }, + "ResourcePath": { + "base": null, + "refs": { + "HealthCheckConfig$ResourcePath": "

Path to ping on the instance to check the health. Required for HTTP, HTTPS, HTTP_STR_MATCH, and HTTPS_STR_MATCH health checks, HTTP request is issued to the instance on the given port and path.

", + "UpdateHealthCheckRequest$ResourcePath": "

The path that you want Amazon Route 53 to request when performing health checks. The path can be any value for which your endpoint will return an HTTP status code of 2xx or 3xx when the endpoint is healthy, for example the file /docs/route53-health-check.html.

Specify this value only if you want to change it.

" + } + }, + "ResourceRecord": { + "base": "

A complex type that contains the value of the Value element for the current resource record set.

", + "refs": { + "ResourceRecords$member": null + } + }, + "ResourceRecordSet": { + "base": "

A complex type that contains information about the current resource record set.

", + "refs": { + "Change$ResourceRecordSet": "

Information about the resource record set to create or delete.

", + "ResourceRecordSets$member": null + } + }, + "ResourceRecordSetFailover": { + "base": null, + "refs": { + "ResourceRecordSet$Failover": "

Failover resource record sets only: Among resource record sets that have the same combination of DNS name and type, a value that indicates whether the current resource record set is a primary or secondary resource record set. A failover set may contain at most one resource record set marked as primary and one resource record set marked as secondary. A resource record set marked as primary will be returned if any of the following are true: (1) an associated health check is passing, (2) if the resource record set is an alias with the evaluate target health and at least one target resource record set is healthy, (3) both the primary and secondary resource record set are failing health checks or (4) there is no secondary resource record set. A secondary resource record set will be returned if: (1) the primary is failing a health check and either the secondary is passing a health check or has no associated health check, or (2) there is no primary resource record set.

Valid values: PRIMARY | SECONDARY

" + } + }, + "ResourceRecordSetIdentifier": { + "base": null, + "refs": { + "ListResourceRecordSetsRequest$StartRecordIdentifier": "

Weighted resource record sets only: If results were truncated for a given DNS name and type, specify the value of ListResourceRecordSetsResponse$NextRecordIdentifier from the previous response to get the next resource record set that has the current DNS name and type.

", + "ListResourceRecordSetsResponse$NextRecordIdentifier": "

Weighted resource record sets only: If results were truncated for a given DNS name and type, the value of SetIdentifier for the next resource record set that has the current DNS name and type.

", + "ResourceRecordSet$SetIdentifier": "

Weighted, Latency, Geo, and Failover resource record sets only: An identifier that differentiates among multiple resource record sets that have the same combination of DNS name and type.

" + } + }, + "ResourceRecordSetRegion": { + "base": null, + "refs": { + "ResourceRecordSet$Region": "

Latency-based resource record sets only: Among resource record sets that have the same combination of DNS name and type, a value that specifies the AWS region for the current resource record set.

" + } + }, + "ResourceRecordSetWeight": { + "base": null, + "refs": { + "ResourceRecordSet$Weight": "

Weighted resource record sets only: Among resource record sets that have the same combination of DNS name and type, a value that determines what portion of traffic for the current resource record set is routed to the associated location.

" + } + }, + "ResourceRecordSets": { + "base": null, + "refs": { + "ListResourceRecordSetsResponse$ResourceRecordSets": "

A complex type that contains information about the resource record sets that are returned by the request.

" + } + }, + "ResourceRecords": { + "base": null, + "refs": { + "ResourceRecordSet$ResourceRecords": "

A complex type that contains the resource records for the current resource record set.

" + } + }, + "ResourceTagSet": { + "base": "

A complex type containing a resource and its associated tags.

", + "refs": { + "ListTagsForResourceResponse$ResourceTagSet": "

A ResourceTagSet containing tags associated with the specified resource.

", + "ResourceTagSetList$member": null + } + }, + "ResourceTagSetList": { + "base": null, + "refs": { + "ListTagsForResourcesResponse$ResourceTagSets": "

A list of ResourceTagSets containing tags associated with the specified resources.

" + } + }, + "ResourceURI": { + "base": null, + "refs": { + "CreateHealthCheckResponse$Location": "

The unique URL representing the new health check.

", + "CreateHostedZoneResponse$Location": "

The unique URL representing the new hosted zone.

", + "CreateReusableDelegationSetResponse$Location": "

The unique URL representing the new reusbale delegation set.

" + } + }, + "SearchString": { + "base": null, + "refs": { + "HealthCheckConfig$SearchString": "

A string to search for in the body of a health check response. Required for HTTP_STR_MATCH and HTTPS_STR_MATCH health checks.

", + "UpdateHealthCheckRequest$SearchString": "

If the value of Type is HTTP_STR_MATCH or HTTP_STR_MATCH, the string that you want Route 53 to search for in the response body from the specified resource. If the string appears in the response body, Route 53 considers the resource healthy.

Specify this value only if you want to change it.

" + } + }, + "Status": { + "base": null, + "refs": { + "StatusReport$Status": "

The observed health check status.

" + } + }, + "StatusReport": { + "base": "

A complex type that contains information about the health check status for the current observation.

", + "refs": { + "HealthCheckObservation$StatusReport": "

A complex type that contains information about the health check status for the current observation.

" + } + }, + "TTL": { + "base": null, + "refs": { + "ResourceRecordSet$TTL": "

The cache time to live for the current resource record set.

" + } + }, + "Tag": { + "base": "

A single tag containing a key and value.

", + "refs": { + "TagList$member": null + } + }, + "TagKey": { + "base": null, + "refs": { + "Tag$Key": "

The key for a Tag.

", + "TagKeyList$member": null + } + }, + "TagKeyList": { + "base": null, + "refs": { + "ChangeTagsForResourceRequest$RemoveTagKeys": "

A list of Tag keys that you want to remove from the specified resource.

" + } + }, + "TagList": { + "base": null, + "refs": { + "ChangeTagsForResourceRequest$AddTags": "

A complex type that contains a list of Tag elements. Each Tag element identifies a tag that you want to add or update for the specified resource.

", + "ResourceTagSet$Tags": "

The tags associated with the specified resource.

" + } + }, + "TagResourceId": { + "base": null, + "refs": { + "ChangeTagsForResourceRequest$ResourceId": "

The ID of the resource for which you want to add, change, or delete tags.

", + "ListTagsForResourceRequest$ResourceId": "

The ID of the resource for which you want to retrieve tags.

", + "ResourceTagSet$ResourceId": "

The ID for the specified resource.

", + "TagResourceIdList$member": null + } + }, + "TagResourceIdList": { + "base": null, + "refs": { + "ListTagsForResourcesRequest$ResourceIds": "

A complex type that contains the ResourceId element for each resource for which you want to get a list of tags.

" + } + }, + "TagResourceType": { + "base": null, + "refs": { + "ChangeTagsForResourceRequest$ResourceType": "

The type of the resource.

- The resource type for health checks is healthcheck.

- The resource type for hosted zones is hostedzone.

", + "ListTagsForResourceRequest$ResourceType": "

The type of the resource.

- The resource type for health checks is healthcheck.

- The resource type for hosted zones is hostedzone.

", + "ListTagsForResourcesRequest$ResourceType": "

The type of the resources.

- The resource type for health checks is healthcheck.

- The resource type for hosted zones is hostedzone.

", + "ResourceTagSet$ResourceType": "

The type of the resource.

- The resource type for health checks is healthcheck.

- The resource type for hosted zones is hostedzone.

" + } + }, + "TagValue": { + "base": null, + "refs": { + "Tag$Value": "

The value for a Tag.

" + } + }, + "ThrottlingException": { + "base": null, + "refs": { + } + }, + "TimeStamp": { + "base": null, + "refs": { + "ChangeInfo$SubmittedAt": "

The date and time the change was submitted, in the format YYYY-MM-DDThh:mm:ssZ, as specified in the ISO 8601 standard (for example, 2009-11-19T19:37:58Z). The Z after the time indicates that the time is listed in Coordinated Universal Time (UTC), which is synonymous with Greenwich Mean Time in this context.

", + "StatusReport$CheckedTime": "

The date and time the health check status was observed, in the format YYYY-MM-DDThh:mm:ssZ, as specified in the ISO 8601 standard (for example, 2009-11-19T19:37:58Z). The Z after the time indicates that the time is listed in Coordinated Universal Time (UTC), which is synonymous with Greenwich Mean Time in this context.

" + } + }, + "TooManyHealthChecks": { + "base": null, + "refs": { + } + }, + "TooManyHostedZones": { + "base": "

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.

", + "refs": { + } + }, + "UpdateHealthCheckRequest": { + "base": "

>A complex type that contains information about the request to update a health check.

", + "refs": { + } + }, + "UpdateHealthCheckResponse": { + "base": null, + "refs": { + } + }, + "UpdateHostedZoneCommentRequest": { + "base": "

A complex type that contains information about the request to update a hosted zone comment.

", + "refs": { + } + }, + "UpdateHostedZoneCommentResponse": { + "base": "

A complex type containing information about the specified hosted zone after the update.

", + "refs": { + } + }, + "VPC": { + "base": null, + "refs": { + "AssociateVPCWithHostedZoneRequest$VPC": "

The VPC that you want your hosted zone to be associated with.

", + "CreateHostedZoneRequest$VPC": "

The VPC that you want your hosted zone to be associated with. By providing this parameter, your newly created hosted cannot be resolved anywhere other than the given VPC.

", + "CreateHostedZoneResponse$VPC": null, + "DisassociateVPCFromHostedZoneRequest$VPC": "

The VPC that you want your hosted zone to be disassociated from.

", + "VPCs$member": null + } + }, + "VPCAssociationNotFound": { + "base": "

The VPC you specified is not currently associated with the hosted zone.

", + "refs": { + } + }, + "VPCId": { + "base": "

A VPC ID

", + "refs": { + "VPC$VPCId": null + } + }, + "VPCRegion": { + "base": null, + "refs": { + "VPC$VPCRegion": null + } + }, + "VPCs": { + "base": "

A list of VPCs

", + "refs": { + "GetHostedZoneResponse$VPCs": "

A complex type that contains information about VPCs associated with the specified hosted zone.

" + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/route53/2013-04-01/paginators-1.json b/lib/aws-sdk/Aws/data/route53/2013-04-01/paginators-1.json new file mode 100644 index 0000000..d472f47 --- /dev/null +++ b/lib/aws-sdk/Aws/data/route53/2013-04-01/paginators-1.json @@ -0,0 +1,33 @@ +{ + "pagination": { + "ListHealthChecks": { + "input_token": "Marker", + "output_token": "NextMarker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "HealthChecks" + }, + "ListHostedZones": { + "input_token": "Marker", + "output_token": "NextMarker", + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "HostedZones" + }, + "ListResourceRecordSets": { + "more_results": "IsTruncated", + "limit_key": "MaxItems", + "result_key": "ResourceRecordSets", + "input_token": [ + "StartRecordName", + "StartRecordType", + "StartRecordIdentifier" + ], + "output_token": [ + "NextRecordName", + "NextRecordType", + "NextRecordIdentifier" + ] + } + } +} diff --git a/lib/aws-sdk/Aws/data/route53domains/2014-05-15/api-2.json b/lib/aws-sdk/Aws/data/route53domains/2014-05-15/api-2.json new file mode 100644 index 0000000..4035931 --- /dev/null +++ b/lib/aws-sdk/Aws/data/route53domains/2014-05-15/api-2.json @@ -0,0 +1,1374 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2014-05-15", + "endpointPrefix":"route53domains", + "jsonVersion":"1.1", + "serviceFullName":"Amazon Route 53 Domains", + "signatureVersion":"v4", + "targetPrefix":"Route53Domains_v20140515", + "protocol":"json" + }, + "operations":{ + "CheckDomainAvailability":{ + "name":"CheckDomainAvailability", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CheckDomainAvailabilityRequest"}, + "output":{"shape":"CheckDomainAvailabilityResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"UnsupportedTLD", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "DeleteTagsForDomain":{ + "name":"DeleteTagsForDomain", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTagsForDomainRequest"}, + "output":{"shape":"DeleteTagsForDomainResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"OperationLimitExceeded", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"UnsupportedTLD", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "DisableDomainAutoRenew":{ + "name":"DisableDomainAutoRenew", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisableDomainAutoRenewRequest"}, + "output":{"shape":"DisableDomainAutoRenewResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"UnsupportedTLD", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "DisableDomainTransferLock":{ + "name":"DisableDomainTransferLock", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisableDomainTransferLockRequest"}, + "output":{"shape":"DisableDomainTransferLockResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"DuplicateRequest", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TLDRulesViolation", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"OperationLimitExceeded", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"UnsupportedTLD", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "EnableDomainAutoRenew":{ + "name":"EnableDomainAutoRenew", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableDomainAutoRenewRequest"}, + "output":{"shape":"EnableDomainAutoRenewResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"UnsupportedTLD", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "EnableDomainTransferLock":{ + "name":"EnableDomainTransferLock", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableDomainTransferLockRequest"}, + "output":{"shape":"EnableDomainTransferLockResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"DuplicateRequest", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TLDRulesViolation", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"OperationLimitExceeded", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"UnsupportedTLD", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "GetDomainDetail":{ + "name":"GetDomainDetail", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDomainDetailRequest"}, + "output":{"shape":"GetDomainDetailResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"UnsupportedTLD", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "GetOperationDetail":{ + "name":"GetOperationDetail", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetOperationDetailRequest"}, + "output":{"shape":"GetOperationDetailResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "ListDomains":{ + "name":"ListDomains", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDomainsRequest"}, + "output":{"shape":"ListDomainsResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "ListOperations":{ + "name":"ListOperations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListOperationsRequest"}, + "output":{"shape":"ListOperationsResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "ListTagsForDomain":{ + "name":"ListTagsForDomain", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForDomainRequest"}, + "output":{"shape":"ListTagsForDomainResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"OperationLimitExceeded", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"UnsupportedTLD", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "RegisterDomain":{ + "name":"RegisterDomain", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RegisterDomainRequest"}, + "output":{"shape":"RegisterDomainResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"UnsupportedTLD", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"DuplicateRequest", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TLDRulesViolation", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"DomainLimitExceeded", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"OperationLimitExceeded", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "RetrieveDomainAuthCode":{ + "name":"RetrieveDomainAuthCode", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RetrieveDomainAuthCodeRequest"}, + "output":{"shape":"RetrieveDomainAuthCodeResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"UnsupportedTLD", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "TransferDomain":{ + "name":"TransferDomain", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TransferDomainRequest"}, + "output":{"shape":"TransferDomainResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"UnsupportedTLD", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"DuplicateRequest", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TLDRulesViolation", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"DomainLimitExceeded", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"OperationLimitExceeded", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "UpdateDomainContact":{ + "name":"UpdateDomainContact", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateDomainContactRequest"}, + "output":{"shape":"UpdateDomainContactResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"DuplicateRequest", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TLDRulesViolation", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"OperationLimitExceeded", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"UnsupportedTLD", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "UpdateDomainContactPrivacy":{ + "name":"UpdateDomainContactPrivacy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateDomainContactPrivacyRequest"}, + "output":{"shape":"UpdateDomainContactPrivacyResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"DuplicateRequest", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TLDRulesViolation", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"OperationLimitExceeded", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"UnsupportedTLD", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "UpdateDomainNameservers":{ + "name":"UpdateDomainNameservers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateDomainNameserversRequest"}, + "output":{"shape":"UpdateDomainNameserversResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"DuplicateRequest", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"TLDRulesViolation", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"OperationLimitExceeded", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"UnsupportedTLD", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + }, + "UpdateTagsForDomain":{ + "name":"UpdateTagsForDomain", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateTagsForDomainRequest"}, + "output":{"shape":"UpdateTagsForDomainResponse"}, + "errors":[ + { + "shape":"InvalidInput", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"OperationLimitExceeded", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"UnsupportedTLD", + "error":{"httpStatusCode":400}, + "exception":true + } + ] + } + }, + "shapes":{ + "AddressLine":{ + "type":"string", + "max":255 + }, + "Boolean":{"type":"boolean"}, + "CheckDomainAvailabilityRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"}, + "IdnLangCode":{"shape":"LangCode"} + } + }, + "CheckDomainAvailabilityResponse":{ + "type":"structure", + "required":["Availability"], + "members":{ + "Availability":{"shape":"DomainAvailability"} + } + }, + "City":{ + "type":"string", + "max":255 + }, + "ContactDetail":{ + "type":"structure", + "members":{ + "FirstName":{"shape":"ContactName"}, + "LastName":{"shape":"ContactName"}, + "ContactType":{"shape":"ContactType"}, + "OrganizationName":{"shape":"ContactName"}, + "AddressLine1":{"shape":"AddressLine"}, + "AddressLine2":{"shape":"AddressLine"}, + "City":{"shape":"City"}, + "State":{"shape":"State"}, + "CountryCode":{"shape":"CountryCode"}, + "ZipCode":{"shape":"ZipCode"}, + "PhoneNumber":{"shape":"ContactNumber"}, + "Email":{"shape":"Email"}, + "Fax":{"shape":"ContactNumber"}, + "ExtraParams":{"shape":"ExtraParamList"} + }, + "sensitive":true + }, + "ContactName":{ + "type":"string", + "max":255 + }, + "ContactNumber":{ + "type":"string", + "max":30 + }, + "ContactType":{ + "type":"string", + "enum":[ + "PERSON", + "COMPANY", + "ASSOCIATION", + "PUBLIC_BODY", + "RESELLER" + ] + }, + "CountryCode":{ + "type":"string", + "enum":[ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AN", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BR", + "BS", + "BT", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FM", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GH", + "GI", + "GL", + "GM", + "GN", + "GQ", + "GR", + "GT", + "GU", + "GW", + "GY", + "HK", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IQ", + "IR", + "IS", + "IT", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PT", + "PW", + "PY", + "QA", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "ST", + "SV", + "SY", + "SZ", + "TC", + "TD", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VI", + "VN", + "VU", + "WF", + "WS", + "YE", + "YT", + "ZA", + "ZM", + "ZW" + ] + }, + "DNSSec":{"type":"string"}, + "DeleteTagsForDomainRequest":{ + "type":"structure", + "required":[ + "DomainName", + "TagsToDelete" + ], + "members":{ + "DomainName":{"shape":"DomainName"}, + "TagsToDelete":{"shape":"TagKeyList"} + } + }, + "DeleteTagsForDomainResponse":{ + "type":"structure", + "members":{ + } + }, + "DisableDomainAutoRenewRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"} + } + }, + "DisableDomainAutoRenewResponse":{ + "type":"structure", + "members":{ + } + }, + "DisableDomainTransferLockRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"} + } + }, + "DisableDomainTransferLockResponse":{ + "type":"structure", + "required":["OperationId"], + "members":{ + "OperationId":{"shape":"OperationId"} + } + }, + "DomainAuthCode":{ + "type":"string", + "max":1024, + "sensitive":true + }, + "DomainAvailability":{ + "type":"string", + "enum":[ + "AVAILABLE", + "AVAILABLE_RESERVED", + "AVAILABLE_PREORDER", + "UNAVAILABLE", + "UNAVAILABLE_PREMIUM", + "UNAVAILABLE_RESTRICTED", + "RESERVED", + "DONT_KNOW" + ] + }, + "DomainLimitExceeded":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "DomainName":{ + "type":"string", + "max":255, + "pattern":"[a-zA-Z0-9_\\-.]*" + }, + "DomainStatus":{"type":"string"}, + "DomainStatusList":{ + "type":"list", + "member":{"shape":"DomainStatus"} + }, + "DomainSummary":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"}, + "AutoRenew":{"shape":"Boolean"}, + "TransferLock":{"shape":"Boolean"}, + "Expiry":{"shape":"Timestamp"} + } + }, + "DomainSummaryList":{ + "type":"list", + "member":{"shape":"DomainSummary"} + }, + "DuplicateRequest":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "DurationInYears":{ + "type":"integer", + "min":1, + "max":10 + }, + "Email":{ + "type":"string", + "max":254 + }, + "EnableDomainAutoRenewRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"} + } + }, + "EnableDomainAutoRenewResponse":{ + "type":"structure", + "members":{ + } + }, + "EnableDomainTransferLockRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"} + } + }, + "EnableDomainTransferLockResponse":{ + "type":"structure", + "required":["OperationId"], + "members":{ + "OperationId":{"shape":"OperationId"} + } + }, + "ErrorMessage":{"type":"string"}, + "ExtraParam":{ + "type":"structure", + "required":[ + "Name", + "Value" + ], + "members":{ + "Name":{"shape":"ExtraParamName"}, + "Value":{"shape":"ExtraParamValue"} + } + }, + "ExtraParamList":{ + "type":"list", + "member":{"shape":"ExtraParam"} + }, + "ExtraParamName":{ + "type":"string", + "enum":[ + "DUNS_NUMBER", + "BRAND_NUMBER", + "BIRTH_DEPARTMENT", + "BIRTH_DATE_IN_YYYY_MM_DD", + "BIRTH_COUNTRY", + "BIRTH_CITY", + "DOCUMENT_NUMBER", + "AU_ID_NUMBER", + "AU_ID_TYPE", + "CA_LEGAL_TYPE", + "ES_IDENTIFICATION", + "ES_IDENTIFICATION_TYPE", + "ES_LEGAL_FORM", + "FI_BUSINESS_NUMBER", + "FI_ID_NUMBER", + "IT_PIN", + "RU_PASSPORT_DATA", + "SE_ID_NUMBER", + "SG_ID_NUMBER", + "VAT_NUMBER" + ] + }, + "ExtraParamValue":{ + "type":"string", + "max":2048 + }, + "FIAuthKey":{"type":"string"}, + "GetDomainDetailRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"} + } + }, + "GetDomainDetailResponse":{ + "type":"structure", + "required":[ + "DomainName", + "Nameservers", + "AdminContact", + "RegistrantContact", + "TechContact" + ], + "members":{ + "DomainName":{"shape":"DomainName"}, + "Nameservers":{"shape":"NameserverList"}, + "AutoRenew":{"shape":"Boolean"}, + "AdminContact":{"shape":"ContactDetail"}, + "RegistrantContact":{"shape":"ContactDetail"}, + "TechContact":{"shape":"ContactDetail"}, + "AdminPrivacy":{"shape":"Boolean"}, + "RegistrantPrivacy":{"shape":"Boolean"}, + "TechPrivacy":{"shape":"Boolean"}, + "RegistrarName":{"shape":"RegistrarName"}, + "WhoIsServer":{"shape":"RegistrarWhoIsServer"}, + "RegistrarUrl":{"shape":"RegistrarUrl"}, + "AbuseContactEmail":{"shape":"Email"}, + "AbuseContactPhone":{"shape":"ContactNumber"}, + "RegistryDomainId":{"shape":"RegistryDomainId"}, + "CreationDate":{"shape":"Timestamp"}, + "UpdatedDate":{"shape":"Timestamp"}, + "ExpirationDate":{"shape":"Timestamp"}, + "Reseller":{"shape":"Reseller"}, + "DnsSec":{"shape":"DNSSec"}, + "StatusList":{"shape":"DomainStatusList"} + } + }, + "GetOperationDetailRequest":{ + "type":"structure", + "required":["OperationId"], + "members":{ + "OperationId":{"shape":"OperationId"} + } + }, + "GetOperationDetailResponse":{ + "type":"structure", + "members":{ + "OperationId":{"shape":"OperationId"}, + "Status":{"shape":"OperationStatus"}, + "Message":{"shape":"ErrorMessage"}, + "DomainName":{"shape":"DomainName"}, + "Type":{"shape":"OperationType"}, + "SubmittedDate":{"shape":"Timestamp"} + } + }, + "GlueIp":{ + "type":"string", + "max":45 + }, + "GlueIpList":{ + "type":"list", + "member":{"shape":"GlueIp"} + }, + "HostName":{ + "type":"string", + "max":255, + "pattern":"[a-zA-Z0-9_\\-.]*" + }, + "InvalidInput":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "LangCode":{ + "type":"string", + "max":3 + }, + "ListDomainsRequest":{ + "type":"structure", + "members":{ + "Marker":{"shape":"PageMarker"}, + "MaxItems":{"shape":"PageMaxItems"} + } + }, + "ListDomainsResponse":{ + "type":"structure", + "required":["Domains"], + "members":{ + "Domains":{"shape":"DomainSummaryList"}, + "NextPageMarker":{"shape":"PageMarker"} + } + }, + "ListOperationsRequest":{ + "type":"structure", + "members":{ + "Marker":{"shape":"PageMarker"}, + "MaxItems":{"shape":"PageMaxItems"} + } + }, + "ListOperationsResponse":{ + "type":"structure", + "required":["Operations"], + "members":{ + "Operations":{"shape":"OperationSummaryList"}, + "NextPageMarker":{"shape":"PageMarker"} + } + }, + "ListTagsForDomainRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"} + } + }, + "ListTagsForDomainResponse":{ + "type":"structure", + "required":["TagList"], + "members":{ + "TagList":{"shape":"TagList"} + } + }, + "Nameserver":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"HostName"}, + "GlueIps":{"shape":"GlueIpList"} + } + }, + "NameserverList":{ + "type":"list", + "member":{"shape":"Nameserver"} + }, + "OperationId":{ + "type":"string", + "max":255 + }, + "OperationLimitExceeded":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "OperationStatus":{ + "type":"string", + "enum":[ + "SUBMITTED", + "IN_PROGRESS", + "ERROR", + "SUCCESSFUL", + "FAILED" + ] + }, + "OperationSummary":{ + "type":"structure", + "required":[ + "OperationId", + "Status", + "Type", + "SubmittedDate" + ], + "members":{ + "OperationId":{"shape":"OperationId"}, + "Status":{"shape":"OperationStatus"}, + "Type":{"shape":"OperationType"}, + "SubmittedDate":{"shape":"Timestamp"} + } + }, + "OperationSummaryList":{ + "type":"list", + "member":{"shape":"OperationSummary"} + }, + "OperationType":{ + "type":"string", + "enum":[ + "REGISTER_DOMAIN", + "DELETE_DOMAIN", + "TRANSFER_IN_DOMAIN", + "UPDATE_DOMAIN_CONTACT", + "UPDATE_NAMESERVER", + "CHANGE_PRIVACY_PROTECTION", + "DOMAIN_LOCK" + ] + }, + "PageMarker":{ + "type":"string", + "max":4096 + }, + "PageMaxItems":{ + "type":"integer", + "max":100 + }, + "RegisterDomainRequest":{ + "type":"structure", + "required":[ + "DomainName", + "DurationInYears", + "AdminContact", + "RegistrantContact", + "TechContact" + ], + "members":{ + "DomainName":{"shape":"DomainName"}, + "IdnLangCode":{"shape":"LangCode"}, + "DurationInYears":{"shape":"DurationInYears"}, + "AutoRenew":{"shape":"Boolean"}, + "AdminContact":{"shape":"ContactDetail"}, + "RegistrantContact":{"shape":"ContactDetail"}, + "TechContact":{"shape":"ContactDetail"}, + "PrivacyProtectAdminContact":{"shape":"Boolean"}, + "PrivacyProtectRegistrantContact":{"shape":"Boolean"}, + "PrivacyProtectTechContact":{"shape":"Boolean"} + } + }, + "RegisterDomainResponse":{ + "type":"structure", + "required":["OperationId"], + "members":{ + "OperationId":{"shape":"OperationId"} + } + }, + "RegistrarName":{"type":"string"}, + "RegistrarUrl":{"type":"string"}, + "RegistrarWhoIsServer":{"type":"string"}, + "RegistryDomainId":{"type":"string"}, + "Reseller":{"type":"string"}, + "RetrieveDomainAuthCodeRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"} + } + }, + "RetrieveDomainAuthCodeResponse":{ + "type":"structure", + "required":["AuthCode"], + "members":{ + "AuthCode":{"shape":"DomainAuthCode"} + } + }, + "State":{ + "type":"string", + "max":255 + }, + "TLDRulesViolation":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "Tag":{ + "type":"structure", + "members":{ + "Key":{"shape":"TagKey"}, + "Value":{"shape":"TagValue"} + } + }, + "TagKey":{"type":"string"}, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"} + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"} + }, + "TagValue":{"type":"string"}, + "Timestamp":{"type":"timestamp"}, + "TransferDomainRequest":{ + "type":"structure", + "required":[ + "DomainName", + "DurationInYears", + "AdminContact", + "RegistrantContact", + "TechContact" + ], + "members":{ + "DomainName":{"shape":"DomainName"}, + "IdnLangCode":{"shape":"LangCode"}, + "DurationInYears":{"shape":"DurationInYears"}, + "Nameservers":{"shape":"NameserverList"}, + "AuthCode":{"shape":"DomainAuthCode"}, + "AutoRenew":{"shape":"Boolean"}, + "AdminContact":{"shape":"ContactDetail"}, + "RegistrantContact":{"shape":"ContactDetail"}, + "TechContact":{"shape":"ContactDetail"}, + "PrivacyProtectAdminContact":{"shape":"Boolean"}, + "PrivacyProtectRegistrantContact":{"shape":"Boolean"}, + "PrivacyProtectTechContact":{"shape":"Boolean"} + } + }, + "TransferDomainResponse":{ + "type":"structure", + "required":["OperationId"], + "members":{ + "OperationId":{"shape":"OperationId"} + } + }, + "UnsupportedTLD":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "UpdateDomainContactPrivacyRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"}, + "AdminPrivacy":{"shape":"Boolean"}, + "RegistrantPrivacy":{"shape":"Boolean"}, + "TechPrivacy":{"shape":"Boolean"} + } + }, + "UpdateDomainContactPrivacyResponse":{ + "type":"structure", + "required":["OperationId"], + "members":{ + "OperationId":{"shape":"OperationId"} + } + }, + "UpdateDomainContactRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"}, + "AdminContact":{"shape":"ContactDetail"}, + "RegistrantContact":{"shape":"ContactDetail"}, + "TechContact":{"shape":"ContactDetail"} + } + }, + "UpdateDomainContactResponse":{ + "type":"structure", + "required":["OperationId"], + "members":{ + "OperationId":{"shape":"OperationId"} + } + }, + "UpdateDomainNameserversRequest":{ + "type":"structure", + "required":[ + "DomainName", + "Nameservers" + ], + "members":{ + "DomainName":{"shape":"DomainName"}, + "FIAuthKey":{"shape":"FIAuthKey"}, + "Nameservers":{"shape":"NameserverList"} + } + }, + "UpdateDomainNameserversResponse":{ + "type":"structure", + "required":["OperationId"], + "members":{ + "OperationId":{"shape":"OperationId"} + } + }, + "UpdateTagsForDomainRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{"shape":"DomainName"}, + "TagsToUpdate":{"shape":"TagList"} + } + }, + "UpdateTagsForDomainResponse":{ + "type":"structure", + "members":{ + } + }, + "ZipCode":{ + "type":"string", + "max":255 + } + } +} diff --git a/lib/aws-sdk/Aws/data/route53domains/2014-05-15/docs-2.json b/lib/aws-sdk/Aws/data/route53domains/2014-05-15/docs-2.json new file mode 100644 index 0000000..17f9937 --- /dev/null +++ b/lib/aws-sdk/Aws/data/route53domains/2014-05-15/docs-2.json @@ -0,0 +1,620 @@ +{ + "version": "2.0", + "operations": { + "CheckDomainAvailability": "

This operation checks the availability of one domain name. You can access this API without authenticating. Note that if the availability status of a domain is pending, you must submit another request to determine the availability of the domain name.

", + "DeleteTagsForDomain": "

This operation deletes the specified tags for a domain.

All tag operations are eventually consistent; subsequent operations may not immediately represent all issued operations.

", + "DisableDomainAutoRenew": "

This operation disables automatic renewal of domain registration for the specified domain.

Caution! Amazon Route 53 doesn't have a manual renewal process, so if you disable automatic renewal, registration for the domain will not be renewed when the expiration date passes, and you will lose control of the domain name.", + "DisableDomainTransferLock": "

This operation removes the transfer lock on the domain (specifically the clientTransferProhibited status) to allow domain transfers. We recommend you refrain from performing this action unless you intend to transfer the domain to a different registrar. Successful submission returns an operation ID that you can use to track the progress and completion of the action. If the request is not completed successfully, the domain registrant will be notified by email.

", + "EnableDomainAutoRenew": "

This operation configures Amazon Route 53 to automatically renew the specified domain before the domain registration expires. The cost of renewing your domain registration is billed to your AWS account.

The period during which you can renew a domain name varies by TLD. For a list of TLDs and their renewal policies, see \"Renewal, restoration, and deletion times\" on the website for our registrar partner, Gandi. Route 53 requires that you renew before the end of the renewal period that is listed on the Gandi website so we can complete processing before the deadline.

", + "EnableDomainTransferLock": "

This operation sets the transfer lock on the domain (specifically the clientTransferProhibited status) to prevent domain transfers. Successful submission returns an operation ID that you can use to track the progress and completion of the action. If the request is not completed successfully, the domain registrant will be notified by email.

", + "GetDomainDetail": "

This operation returns detailed information about the domain. The domain's contact information is also returned as part of the output.

", + "GetOperationDetail": "

This operation returns the current status of an operation that is not completed.

", + "ListDomains": "

This operation returns all the domain names registered with Amazon Route 53 for the current AWS account.

", + "ListOperations": "

This operation returns the operation IDs of operations that are not yet complete.

", + "ListTagsForDomain": "

This operation returns all of the tags that are associated with the specified domain.

All tag operations are eventually consistent; subsequent operations may not immediately represent all issued operations.

", + "RegisterDomain": "

This operation registers a domain. Domains are registered by the AWS registrar partner, Gandi. For some top-level domains (TLDs), this operation requires extra parameters.

When you register a domain, Amazon Route 53 does the following:

  • Creates a Amazon Route 53 hosted zone that has the same name as the domain. Amazon Route 53 assigns four name servers to your hosted zone and automatically updates your domain registration with the names of these name servers.
  • Enables autorenew, so your domain registration will renew automatically each year. We'll notify you in advance of the renewal date so you can choose whether to renew the registration.
  • Optionally enables privacy protection, so WHOIS queries return contact information for our registrar partner, Gandi, instead of the information you entered for registrant, admin, and tech contacts.
  • If registration is successful, returns an operation ID that you can use to track the progress and completion of the action. If the request is not completed successfully, the domain registrant is notified by email.
  • Charges your AWS account an amount based on the top-level domain. For more information, see Amazon Route 53 Pricing.
", + "RetrieveDomainAuthCode": "

This operation returns the AuthCode for the domain. To transfer a domain to another registrar, you provide this value to the new registrar.

", + "TransferDomain": "

This operation transfers a domain from another registrar to Amazon Route 53. When the transfer is complete, the domain is registered with the AWS registrar partner, Gandi.

For transfer requirements, a detailed procedure, and information about viewing the status of a domain transfer, see Transferring Registration for a Domain to Amazon Route 53 in the Amazon Route 53 Developer Guide.

If the registrar for your domain is also the DNS service provider for the domain, we highly recommend that you consider transferring your DNS service to Amazon Route 53 or to another DNS service provider before you transfer your registration. Some registrars provide free DNS service when you purchase a domain registration. When you transfer the registration, the previous registrar will not renew your domain registration and could end your DNS service at any time.

Caution! If the registrar for your domain is also the DNS service provider for the domain and you don't transfer DNS service to another provider, your website, email, and the web applications associated with the domain might become unavailable.

If the transfer is successful, this method returns an operation ID that you can use to track the progress and completion of the action. If the transfer doesn't complete successfully, the domain registrant will be notified by email.

", + "UpdateDomainContact": "

This operation updates the contact information for a particular domain. Information for at least one contact (registrant, administrator, or technical) must be supplied for update.

If the update is successful, this method returns an operation ID that you can use to track the progress and completion of the action. If the request is not completed successfully, the domain registrant will be notified by email.

", + "UpdateDomainContactPrivacy": "

This operation updates the specified domain contact's privacy setting. When the privacy option is enabled, personal information such as postal or email address is hidden from the results of a public WHOIS query. The privacy services are provided by the AWS registrar, Gandi. For more information, see the Gandi privacy features.

This operation only affects the privacy of the specified contact type (registrant, administrator, or tech). Successful acceptance returns an operation ID that you can use with GetOperationDetail to track the progress and completion of the action. If the request is not completed successfully, the domain registrant will be notified by email.

", + "UpdateDomainNameservers": "

This operation replaces the current set of name servers for the domain with the specified set of name servers. If you use Amazon Route 53 as your DNS service, specify the four name servers in the delegation set for the hosted zone for the domain.

If successful, this operation returns an operation ID that you can use to track the progress and completion of the action. If the request is not completed successfully, the domain registrant will be notified by email.

", + "UpdateTagsForDomain": "

This operation adds or updates tags for a specified domain.

All tag operations are eventually consistent; subsequent operations may not immediately represent all issued operations.

" + }, + "service": null, + "shapes": { + "AddressLine": { + "base": null, + "refs": { + "ContactDetail$AddressLine1": "

First line of the contact's address.

Type: String

Default: None

Constraints: Maximum 255 characters.

Parents: RegistrantContact, AdminContact, TechContact

Required: Yes

", + "ContactDetail$AddressLine2": "

Second line of contact's address, if any.

Type: String

Default: None

Constraints: Maximum 255 characters.

Parents: RegistrantContact, AdminContact, TechContact

Required: No

" + } + }, + "Boolean": { + "base": null, + "refs": { + "DomainSummary$AutoRenew": "

Indicates whether the domain is automatically renewed upon expiration.

Type: Boolean

Valid values: True | False

", + "DomainSummary$TransferLock": "

Indicates whether a domain is locked from unauthorized transfer to another party.

Type: Boolean

Valid values: True | False

", + "GetDomainDetailResponse$AutoRenew": "

Specifies whether the domain registration is set to renew automatically.

Type: Boolean

", + "GetDomainDetailResponse$AdminPrivacy": "

Specifies whether contact information for the admin contact is concealed from WHOIS queries. If the value is true, WHOIS (\"who is\") queries will return contact information for our registrar partner, Gandi, instead of the contact information that you enter.

Type: Boolean

", + "GetDomainDetailResponse$RegistrantPrivacy": "

Specifies whether contact information for the registrant contact is concealed from WHOIS queries. If the value is true, WHOIS (\"who is\") queries will return contact information for our registrar partner, Gandi, instead of the contact information that you enter.

Type: Boolean

", + "GetDomainDetailResponse$TechPrivacy": "

Specifies whether contact information for the tech contact is concealed from WHOIS queries. If the value is true, WHOIS (\"who is\") queries will return contact information for our registrar partner, Gandi, instead of the contact information that you enter.

Type: Boolean

", + "RegisterDomainRequest$AutoRenew": "

Indicates whether the domain will be automatically renewed (true) or not (false). Autorenewal only takes effect after the account is charged.

Type: Boolean

Valid values: true | false

Default: true

Required: No

", + "RegisterDomainRequest$PrivacyProtectAdminContact": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries will return contact information for our registrar partner, Gandi, instead of the contact information that you enter.

Type: Boolean

Default: true

Valid values: true | false

Required: No

", + "RegisterDomainRequest$PrivacyProtectRegistrantContact": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries will return contact information for our registrar partner, Gandi, instead of the contact information that you enter.

Type: Boolean

Default: true

Valid values: true | false

Required: No

", + "RegisterDomainRequest$PrivacyProtectTechContact": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries will return contact information for our registrar partner, Gandi, instead of the contact information that you enter.

Type: Boolean

Default: true

Valid values: true | false

Required: No

", + "TransferDomainRequest$AutoRenew": "

Indicates whether the domain will be automatically renewed (true) or not (false). Autorenewal only takes effect after the account is charged.

Type: Boolean

Valid values: true | false

Default: true

Required: No

", + "TransferDomainRequest$PrivacyProtectAdminContact": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries will return contact information for our registrar partner, Gandi, instead of the contact information that you enter.

Type: Boolean

Default: true

Valid values: true | false

Required: No

", + "TransferDomainRequest$PrivacyProtectRegistrantContact": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries will return contact information for our registrar partner, Gandi, instead of the contact information that you enter.

Type: Boolean

Default: true

Valid values: true | false

Required: No

", + "TransferDomainRequest$PrivacyProtectTechContact": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries will return contact information for our registrar partner, Gandi, instead of the contact information that you enter.

Type: Boolean

Default: true

Valid values: true | false

Required: No

", + "UpdateDomainContactPrivacyRequest$AdminPrivacy": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries will return contact information for our registrar partner, Gandi, instead of the contact information that you enter.

Type: Boolean

Default: None

Valid values: true | false

Required: No

", + "UpdateDomainContactPrivacyRequest$RegistrantPrivacy": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries will return contact information for our registrar partner, Gandi, instead of the contact information that you enter.

Type: Boolean

Default: None

Valid values: true | false

Required: No

", + "UpdateDomainContactPrivacyRequest$TechPrivacy": "

Whether you want to conceal contact information from WHOIS queries. If you specify true, WHOIS (\"who is\") queries will return contact information for our registrar partner, Gandi, instead of the contact information that you enter.

Type: Boolean

Default: None

Valid values: true | false

Required: No

" + } + }, + "CheckDomainAvailabilityRequest": { + "base": "

The CheckDomainAvailability request contains the following elements.

", + "refs": { + } + }, + "CheckDomainAvailabilityResponse": { + "base": "

The CheckDomainAvailability response includes the following elements.

", + "refs": { + } + }, + "City": { + "base": null, + "refs": { + "ContactDetail$City": "

The city of the contact's address.

Type: String

Default: None

Constraints: Maximum 255 characters.

Parents: RegistrantContact, AdminContact, TechContact

Required: Yes

" + } + }, + "ContactDetail": { + "base": "

ContactDetail includes the following elements.

", + "refs": { + "GetDomainDetailResponse$AdminContact": "

Provides details about the domain administrative contact.

Type: Complex

Children: FirstName, MiddleName, LastName, ContactType, OrganizationName, AddressLine1, AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax, ExtraParams

", + "GetDomainDetailResponse$RegistrantContact": "

Provides details about the domain registrant.

Type: Complex

Children: FirstName, MiddleName, LastName, ContactType, OrganizationName, AddressLine1, AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax, ExtraParams

", + "GetDomainDetailResponse$TechContact": "

Provides details about the domain technical contact.

Type: Complex

Children: FirstName, MiddleName, LastName, ContactType, OrganizationName, AddressLine1, AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax, ExtraParams

", + "RegisterDomainRequest$AdminContact": "

Provides detailed contact information.

Type: Complex

Children: FirstName, MiddleName, LastName, ContactType, OrganizationName, AddressLine1, AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax, ExtraParams

Required: Yes

", + "RegisterDomainRequest$RegistrantContact": "

Provides detailed contact information.

Type: Complex

Children: FirstName, MiddleName, LastName, ContactType, OrganizationName, AddressLine1, AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax, ExtraParams

Required: Yes

", + "RegisterDomainRequest$TechContact": "

Provides detailed contact information.

Type: Complex

Children: FirstName, MiddleName, LastName, ContactType, OrganizationName, AddressLine1, AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax, ExtraParams

Required: Yes

", + "TransferDomainRequest$AdminContact": "

Provides detailed contact information.

Type: Complex

Children: FirstName, MiddleName, LastName, ContactType, OrganizationName, AddressLine1, AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax, ExtraParams

Required: Yes

", + "TransferDomainRequest$RegistrantContact": "

Provides detailed contact information.

Type: Complex

Children: FirstName, MiddleName, LastName, ContactType, OrganizationName, AddressLine1, AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax, ExtraParams

Required: Yes

", + "TransferDomainRequest$TechContact": "

Provides detailed contact information.

Type: Complex

Children: FirstName, MiddleName, LastName, ContactType, OrganizationName, AddressLine1, AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax, ExtraParams

Required: Yes

", + "UpdateDomainContactRequest$AdminContact": "

Provides detailed contact information.

Type: Complex

Children: FirstName, MiddleName, LastName, ContactType, OrganizationName, AddressLine1, AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax, ExtraParams

Required: Yes

", + "UpdateDomainContactRequest$RegistrantContact": "

Provides detailed contact information.

Type: Complex

Children: FirstName, MiddleName, LastName, ContactType, OrganizationName, AddressLine1, AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax, ExtraParams

Required: Yes

", + "UpdateDomainContactRequest$TechContact": "

Provides detailed contact information.

Type: Complex

Children: FirstName, MiddleName, LastName, ContactType, OrganizationName, AddressLine1, AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax, ExtraParams

Required: Yes

" + } + }, + "ContactName": { + "base": null, + "refs": { + "ContactDetail$FirstName": "

First name of contact.

Type: String

Default: None

Constraints: Maximum 255 characters.

Parents: RegistrantContact, AdminContact, TechContact

Required: Yes

", + "ContactDetail$LastName": "

Last name of contact.

Type: String

Default: None

Constraints: Maximum 255 characters.

Parents: RegistrantContact, AdminContact, TechContact

Required: Yes

", + "ContactDetail$OrganizationName": "

Name of the organization for contact types other than PERSON.

Type: String

Default: None

Constraints: Maximum 255 characters. Contact type must not be PERSON.

Parents: RegistrantContact, AdminContact, TechContact

Required: No

" + } + }, + "ContactNumber": { + "base": null, + "refs": { + "ContactDetail$PhoneNumber": "

The phone number of the contact.

Type: String

Default: None

Constraints: Phone number must be specified in the format \"+[country dialing code].[number including any area code>]\". For example, a US phone number might appear as \"+1.1234567890\".

Parents: RegistrantContact, AdminContact, TechContact

Required: Yes

", + "ContactDetail$Fax": "

Fax number of the contact.

Type: String

Default: None

Constraints: Phone number must be specified in the format \"+[country dialing code].[number including any area code]\". For example, a US phone number might appear as \"+1.1234567890\".

Parents: RegistrantContact, AdminContact, TechContact

Required: No

", + "GetDomainDetailResponse$AbuseContactPhone": "

Phone number for reporting abuse.

Type: String

" + } + }, + "ContactType": { + "base": null, + "refs": { + "ContactDetail$ContactType": "

Indicates whether the contact is a person, company, association, or public organization. If you choose an option other than PERSON, you must enter an organization name, and you can't enable privacy protection for the contact.

Type: String

Default: None

Constraints: Maximum 255 characters.

Valid values: PERSON | COMPANY | ASSOCIATION | PUBLIC_BODY

Parents: RegistrantContact, AdminContact, TechContact

Required: Yes

" + } + }, + "CountryCode": { + "base": null, + "refs": { + "ContactDetail$CountryCode": "

Code for the country of the contact's address.

Type: String

Default: None

Constraints: Maximum 255 characters.

Parents: RegistrantContact, AdminContact, TechContact

Required: Yes

" + } + }, + "DNSSec": { + "base": null, + "refs": { + "GetDomainDetailResponse$DnsSec": "

Reserved for future use.

" + } + }, + "DeleteTagsForDomainRequest": { + "base": "

The DeleteTagsForDomainRequest includes the following elements.

", + "refs": { + } + }, + "DeleteTagsForDomainResponse": { + "base": null, + "refs": { + } + }, + "DisableDomainAutoRenewRequest": { + "base": null, + "refs": { + } + }, + "DisableDomainAutoRenewResponse": { + "base": null, + "refs": { + } + }, + "DisableDomainTransferLockRequest": { + "base": "

The DisableDomainTransferLock request includes the following element.

", + "refs": { + } + }, + "DisableDomainTransferLockResponse": { + "base": "

The DisableDomainTransferLock response includes the following element.

", + "refs": { + } + }, + "DomainAuthCode": { + "base": null, + "refs": { + "RetrieveDomainAuthCodeResponse$AuthCode": "

The authorization code for the domain.

Type: String

", + "TransferDomainRequest$AuthCode": "

The authorization code for the domain. You get this value from the current registrar.

Type: String

Required: Yes

" + } + }, + "DomainAvailability": { + "base": null, + "refs": { + "CheckDomainAvailabilityResponse$Availability": "

Whether the domain name is available for registering.

You can only register domains designated as AVAILABLE.

Type: String

Valid values:

  • AVAILABLE – The domain name is available.
  • AVAILABLE_RESERVED – The domain name is reserved under specific conditions.
  • AVAILABLE_PREORDER – The domain name is available and can be preordered.
  • UNAVAILABLE – The domain name is not available.
  • UNAVAILABLE_PREMIUM – The domain name is not available.
  • UNAVAILABLE_RESTRICTED – The domain name is forbidden.
  • RESERVED – The domain name has been reserved for another person or organization.
  • DONT_KNOW – The TLD registry didn't reply with a definitive answer about whether the domain name is available. Amazon Route 53 can return this response for a variety of reasons, for example, the registry is performing maintenance. Try again later.
" + } + }, + "DomainLimitExceeded": { + "base": "

The number of domains has exceeded the allowed threshold for the account.

", + "refs": { + } + }, + "DomainName": { + "base": null, + "refs": { + "CheckDomainAvailabilityRequest$DomainName": "

The name of a domain.

Type: String

Default: None

Constraints: The domain name can contain only the letters a through z, the numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not supported.

Required: Yes

", + "DeleteTagsForDomainRequest$DomainName": "

The domain for which you want to delete one or more tags.

The name of a domain.

Type: String

Default: None

Constraints: The domain name can contain only the letters a through z, the numbers 0 through 9, and hyphen (-). Hyphens are allowed only when theyaposre surrounded by letters, numbers, or other hyphens. You canapost specify a hyphen at the beginning or end of a label. To specify an Internationalized Domain Name, you must convert the name to Punycode.

Required: Yes

", + "DisableDomainAutoRenewRequest$DomainName": null, + "DisableDomainTransferLockRequest$DomainName": "

The name of a domain.

Type: String

Default: None

Constraints: The domain name can contain only the letters a through z, the numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not supported.

Required: Yes

", + "DomainSummary$DomainName": "

The name of a domain.

Type: String

", + "EnableDomainAutoRenewRequest$DomainName": null, + "EnableDomainTransferLockRequest$DomainName": "

The name of a domain.

Type: String

Default: None

Constraints: The domain name can contain only the letters a through z, the numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not supported.

Required: Yes

", + "GetDomainDetailRequest$DomainName": "

The name of a domain.

Type: String

Default: None

Constraints: The domain name can contain only the letters a through z, the numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not supported.

Required: Yes

", + "GetDomainDetailResponse$DomainName": "

The name of a domain.

Type: String

", + "GetOperationDetailResponse$DomainName": "

The name of a domain.

Type: String

", + "ListTagsForDomainRequest$DomainName": "

The domain for which you want to get a list of tags.

", + "RegisterDomainRequest$DomainName": "

The name of a domain.

Type: String

Default: None

Constraints: The domain name can contain only the letters a through z, the numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not supported.

Required: Yes

", + "RetrieveDomainAuthCodeRequest$DomainName": "

The name of a domain.

Type: String

Default: None

Constraints: The domain name can contain only the letters a through z, the numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not supported.

Required: Yes

", + "TransferDomainRequest$DomainName": "

The name of a domain.

Type: String

Default: None

Constraints: The domain name can contain only the letters a through z, the numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not supported.

Required: Yes

", + "UpdateDomainContactPrivacyRequest$DomainName": "

The name of a domain.

Type: String

Default: None

Constraints: The domain name can contain only the letters a through z, the numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not supported.

Required: Yes

", + "UpdateDomainContactRequest$DomainName": "

The name of a domain.

Type: String

Default: None

Constraints: The domain name can contain only the letters a through z, the numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not supported.

Required: Yes

", + "UpdateDomainNameserversRequest$DomainName": "

The name of a domain.

Type: String

Default: None

Constraints: The domain name can contain only the letters a through z, the numbers 0 through 9, and hyphen (-). Internationalized Domain Names are not supported.

Required: Yes

", + "UpdateTagsForDomainRequest$DomainName": "

The domain for which you want to add or update tags.

The name of a domain.

Type: String

Default: None

Constraints: The domain name can contain only the letters a through z, the numbers 0 through 9, and hyphen (-). Hyphens are allowed only when theyaposre surrounded by letters, numbers, or other hyphens. You canapost specify a hyphen at the beginning or end of a label. To specify an Internationalized Domain Name, you must convert the name to Punycode.

Required: Yes

" + } + }, + "DomainStatus": { + "base": null, + "refs": { + "DomainStatusList$member": null + } + }, + "DomainStatusList": { + "base": null, + "refs": { + "GetDomainDetailResponse$StatusList": "

An array of domain name status codes, also known as Extensible Provisioning Protocol (EPP) status codes.

ICANN, the organization that maintains a central database of domain names, has developed a set of domain name status codes that tell you the status of a variety of operations on a domain name, for example, registering a domain name, transferring a domain name to another registrar, renewing the registration for a domain name, and so on. All registrars use this same set of status codes.

For a current list of domain name status codes and an explanation of what each code means, go to the ICANN website and search for epp status codes. (Search on the ICANN website; web searches sometimes return an old version of the document.)

Type: Array of String

" + } + }, + "DomainSummary": { + "base": null, + "refs": { + "DomainSummaryList$member": null + } + }, + "DomainSummaryList": { + "base": null, + "refs": { + "ListDomainsResponse$Domains": "

A summary of domains.

Type: Complex type containing a list of domain summaries.

Children: AutoRenew, DomainName, Expiry, TransferLock

" + } + }, + "DuplicateRequest": { + "base": "

The request is already in progress for the domain.

", + "refs": { + } + }, + "DurationInYears": { + "base": null, + "refs": { + "RegisterDomainRequest$DurationInYears": "

The number of years the domain will be registered. Domains are registered for a minimum of one year. The maximum period depends on the top-level domain.

Type: Integer

Default: 1

Valid values: Integer from 1 to 10

Required: Yes

", + "TransferDomainRequest$DurationInYears": "

The number of years the domain will be registered. Domains are registered for a minimum of one year. The maximum period depends on the top-level domain.

Type: Integer

Default: 1

Valid values: Integer from 1 to 10

Required: Yes

" + } + }, + "Email": { + "base": null, + "refs": { + "ContactDetail$Email": "

Email address of the contact.

Type: String

Default: None

Constraints: Maximum 254 characters.

Parents: RegistrantContact, AdminContact, TechContact

Required: Yes

", + "GetDomainDetailResponse$AbuseContactEmail": "

Email address to contact to report incorrect contact information for a domain, to report that the domain is being used to send spam, to report that someone is cybersquatting on a domain name, or report some other type of abuse.

Type: String

" + } + }, + "EnableDomainAutoRenewRequest": { + "base": null, + "refs": { + } + }, + "EnableDomainAutoRenewResponse": { + "base": null, + "refs": { + } + }, + "EnableDomainTransferLockRequest": { + "base": "

The EnableDomainTransferLock request includes the following element.

", + "refs": { + } + }, + "EnableDomainTransferLockResponse": { + "base": "

The EnableDomainTransferLock response includes the following elements.

", + "refs": { + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "DomainLimitExceeded$message": null, + "DuplicateRequest$message": null, + "GetOperationDetailResponse$Message": "

Detailed information on the status including possible errors.

Type: String

", + "InvalidInput$message": null, + "OperationLimitExceeded$message": null, + "TLDRulesViolation$message": null, + "UnsupportedTLD$message": null + } + }, + "ExtraParam": { + "base": "

ExtraParam includes the following elements.

", + "refs": { + "ExtraParamList$member": null + } + }, + "ExtraParamList": { + "base": null, + "refs": { + "ContactDetail$ExtraParams": "

A list of name-value pairs for parameters required by certain top-level domains.

Type: Complex

Default: None

Parents: RegistrantContact, AdminContact, TechContact

Children: Name, Value

Required: No

" + } + }, + "ExtraParamName": { + "base": null, + "refs": { + "ExtraParam$Name": "

Name of the additional parameter required by the top-level domain.

Type: String

Default: None

Valid values: DUNS_NUMBER | BRAND_NUMBER | BIRTH_DEPARTMENT | BIRTH_DATE_IN_YYYY_MM_DD | BIRTH_COUNTRY | BIRTH_CITY | DOCUMENT_NUMBER | AU_ID_NUMBER | AU_ID_TYPE | CA_LEGAL_TYPE | ES_IDENTIFICATION | ES_IDENTIFICATION_TYPE | ES_LEGAL_FORM | FI_BUSINESS_NUMBER | FI_ID_NUMBER | IT_PIN | RU_PASSPORT_DATA | SE_ID_NUMBER | SG_ID_NUMBER | VAT_NUMBER

Parent: ExtraParams

Required: Yes

" + } + }, + "ExtraParamValue": { + "base": null, + "refs": { + "ExtraParam$Value": "

Values corresponding to the additional parameter names required by some top-level domains.

Type: String

Default: None

Constraints: Maximum 2048 characters.

Parent: ExtraParams

Required: Yes

" + } + }, + "FIAuthKey": { + "base": null, + "refs": { + "UpdateDomainNameserversRequest$FIAuthKey": "

The authorization key for .fi domains

" + } + }, + "GetDomainDetailRequest": { + "base": "

The GetDomainDetail request includes the following element.

", + "refs": { + } + }, + "GetDomainDetailResponse": { + "base": "

The GetDomainDetail response includes the following elements.

", + "refs": { + } + }, + "GetOperationDetailRequest": { + "base": "

The GetOperationDetail request includes the following element.

", + "refs": { + } + }, + "GetOperationDetailResponse": { + "base": "

The GetOperationDetail response includes the following elements.

", + "refs": { + } + }, + "GlueIp": { + "base": null, + "refs": { + "GlueIpList$member": null + } + }, + "GlueIpList": { + "base": null, + "refs": { + "Nameserver$GlueIps": "

Glue IP address of a name server entry. Glue IP addresses are required only when the name of the name server is a subdomain of the domain. For example, if your domain is example.com and the name server for the domain is ns.example.com, you need to specify the IP address for ns.example.com.

Type: List of IP addresses.

Constraints: The list can contain only one IPv4 and one IPv6 address.

Parent: Nameservers

" + } + }, + "HostName": { + "base": null, + "refs": { + "Nameserver$Name": "

The fully qualified host name of the name server.

Type: String

Constraint: Maximum 255 characterss

Parent: Nameservers

" + } + }, + "InvalidInput": { + "base": "

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.

", + "refs": { + } + }, + "LangCode": { + "base": null, + "refs": { + "CheckDomainAvailabilityRequest$IdnLangCode": "

Reserved for future use.

", + "RegisterDomainRequest$IdnLangCode": "

Reserved for future use.

", + "TransferDomainRequest$IdnLangCode": "

Reserved for future use.

" + } + }, + "ListDomainsRequest": { + "base": "

The ListDomains request includes the following elements.

", + "refs": { + } + }, + "ListDomainsResponse": { + "base": "

The ListDomains response includes the following elements.

", + "refs": { + } + }, + "ListOperationsRequest": { + "base": "

The ListOperations request includes the following elements.

", + "refs": { + } + }, + "ListOperationsResponse": { + "base": "

The ListOperations response includes the following elements.

", + "refs": { + } + }, + "ListTagsForDomainRequest": { + "base": "

The ListTagsForDomainRequest includes the following elements.

", + "refs": { + } + }, + "ListTagsForDomainResponse": { + "base": "

The ListTagsForDomain response includes the following elements.

", + "refs": { + } + }, + "Nameserver": { + "base": "

Nameserver includes the following elements.

", + "refs": { + "NameserverList$member": null + } + }, + "NameserverList": { + "base": null, + "refs": { + "GetDomainDetailResponse$Nameservers": "

The name of the domain.

Type: String

", + "TransferDomainRequest$Nameservers": "

Contains details for the host and glue IP addresses.

Type: Complex

Children: GlueIps, Name

Required: No

", + "UpdateDomainNameserversRequest$Nameservers": "

A list of new name servers for the domain.

Type: Complex

Children: Name, GlueIps

Required: Yes

" + } + }, + "OperationId": { + "base": null, + "refs": { + "DisableDomainTransferLockResponse$OperationId": "

Identifier for tracking the progress of the request. To use this ID to query the operation status, use GetOperationDetail.

Type: String

Default: None

Constraints: Maximum 255 characters.

", + "EnableDomainTransferLockResponse$OperationId": "

Identifier for tracking the progress of the request. To use this ID to query the operation status, use GetOperationDetail.

Type: String

Default: None

Constraints: Maximum 255 characters.

", + "GetOperationDetailRequest$OperationId": "

The identifier for the operation for which you want to get the status. Amazon Route 53 returned the identifier in the response to the original request.

Type: String

Default: None

Required: Yes

", + "GetOperationDetailResponse$OperationId": "

The identifier for the operation.

Type: String

", + "OperationSummary$OperationId": "

Identifier returned to track the requested action.

Type: String

", + "RegisterDomainResponse$OperationId": "

Identifier for tracking the progress of the request. To use this ID to query the operation status, use GetOperationDetail.

Type: String

Default: None

Constraints: Maximum 255 characters.

", + "TransferDomainResponse$OperationId": "

Identifier for tracking the progress of the request. To use this ID to query the operation status, use GetOperationDetail.

Type: String

Default: None

Constraints: Maximum 255 characters.

", + "UpdateDomainContactPrivacyResponse$OperationId": "

Identifier for tracking the progress of the request. To use this ID to query the operation status, use GetOperationDetail.

Type: String

Default: None

Constraints: Maximum 255 characters.

", + "UpdateDomainContactResponse$OperationId": "

Identifier for tracking the progress of the request. To use this ID to query the operation status, use GetOperationDetail.

Type: String

Default: None

Constraints: Maximum 255 characters.

", + "UpdateDomainNameserversResponse$OperationId": "

Identifier for tracking the progress of the request. To use this ID to query the operation status, use GetOperationDetail.

Type: String

Default: None

Constraints: Maximum 255 characters.

" + } + }, + "OperationLimitExceeded": { + "base": "

The number of operations or jobs running exceeded the allowed threshold for the account.

", + "refs": { + } + }, + "OperationStatus": { + "base": null, + "refs": { + "GetOperationDetailResponse$Status": "

The current status of the requested operation in the system.

Type: String

", + "OperationSummary$Status": "

The current status of the requested operation in the system.

Type: String

" + } + }, + "OperationSummary": { + "base": "

OperationSummary includes the following elements.

", + "refs": { + "OperationSummaryList$member": null + } + }, + "OperationSummaryList": { + "base": null, + "refs": { + "ListOperationsResponse$Operations": "

Lists summaries of the operations.

Type: Complex type containing a list of operation summaries

Children: OperationId, Status, SubmittedDate, Type

" + } + }, + "OperationType": { + "base": null, + "refs": { + "GetOperationDetailResponse$Type": "

The type of operation that was requested.

Type: String

", + "OperationSummary$Type": "

Type of the action requested.

Type: String

Valid values: REGISTER_DOMAIN | DELETE_DOMAIN | TRANSFER_IN_DOMAIN | UPDATE_DOMAIN_CONTACT | UPDATE_NAMESERVER | CHANGE_PRIVACY_PROTECTION | DOMAIN_LOCK

" + } + }, + "PageMarker": { + "base": null, + "refs": { + "ListDomainsRequest$Marker": "

For an initial request for a list of domains, omit this element. If the number of domains that are associated with the current AWS account is greater than the value that you specified for MaxItems, you can use Marker to return additional domains. Get the value of NextPageMarker from the previous response, and submit another request that includes the value of NextPageMarker in the Marker element.

Type: String

Default: None

Constraints: The marker must match the value specified in the previous request.

Required: No

", + "ListDomainsResponse$NextPageMarker": "

If there are more domains than you specified for MaxItems in the request, submit another request and include the value of NextPageMarker in the value of Marker.

Type: String

Parent: Operations

", + "ListOperationsRequest$Marker": "

For an initial request for a list of operations, omit this element. If the number of operations that are not yet complete is greater than the value that you specified for MaxItems, you can use Marker to return additional operations. Get the value of NextPageMarker from the previous response, and submit another request that includes the value of NextPageMarker in the Marker element.

Type: String

Default: None

Required: No

", + "ListOperationsResponse$NextPageMarker": "

If there are more operations than you specified for MaxItems in the request, submit another request and include the value of NextPageMarker in the value of Marker.

Type: String

Parent: Operations

" + } + }, + "PageMaxItems": { + "base": null, + "refs": { + "ListDomainsRequest$MaxItems": "

Number of domains to be returned.

Type: Integer

Default: 20

Constraints: A numeral between 1 and 100.

Required: No

", + "ListOperationsRequest$MaxItems": "

Number of domains to be returned.

Type: Integer

Default: 20

Constraints: A value between 1 and 100.

Required: No

" + } + }, + "RegisterDomainRequest": { + "base": "

The RegisterDomain request includes the following elements.

", + "refs": { + } + }, + "RegisterDomainResponse": { + "base": "

The RegisterDomain response includes the following element.

", + "refs": { + } + }, + "RegistrarName": { + "base": null, + "refs": { + "GetDomainDetailResponse$RegistrarName": "

Name of the registrar of the domain as identified in the registry. Amazon Route 53 domains are registered by registrar Gandi. The value is \"GANDI SAS\".

Type: String

" + } + }, + "RegistrarUrl": { + "base": null, + "refs": { + "GetDomainDetailResponse$RegistrarUrl": "

Web address of the registrar.

Type: String

" + } + }, + "RegistrarWhoIsServer": { + "base": null, + "refs": { + "GetDomainDetailResponse$WhoIsServer": "

The fully qualified name of the WHOIS server that can answer the WHOIS query for the domain.

Type: String

" + } + }, + "RegistryDomainId": { + "base": null, + "refs": { + "GetDomainDetailResponse$RegistryDomainId": "

Reserved for future use.

" + } + }, + "Reseller": { + "base": null, + "refs": { + "GetDomainDetailResponse$Reseller": "

Reseller of the domain. Domains registered or transferred using Amazon Route 53 domains will have \"Amazon\" as the reseller.

Type: String

" + } + }, + "RetrieveDomainAuthCodeRequest": { + "base": "

The RetrieveDomainAuthCode request includes the following element.

", + "refs": { + } + }, + "RetrieveDomainAuthCodeResponse": { + "base": "

The RetrieveDomainAuthCode response includes the following element.

", + "refs": { + } + }, + "State": { + "base": null, + "refs": { + "ContactDetail$State": "

The state or province of the contact's city.

Type: String

Default: None

Constraints: Maximum 255 characters.

Parents: RegistrantContact, AdminContact, TechContact

Required: No

" + } + }, + "TLDRulesViolation": { + "base": "

The top-level domain does not support this operation.

", + "refs": { + } + }, + "Tag": { + "base": "

Each tag includes the following elements.

", + "refs": { + "TagList$member": null + } + }, + "TagKey": { + "base": null, + "refs": { + "Tag$Key": "

The key (name) of a tag.

Type: String

Default: None

Valid values: A-Z, a-z, 0-9, space, \".:/=+\\-@\"

Constraints: Each key can be 1-128 characters long.

Required: Yes

", + "TagKeyList$member": null + } + }, + "TagKeyList": { + "base": null, + "refs": { + "DeleteTagsForDomainRequest$TagsToDelete": "

A list of tag keys to delete.

Type: A list that contains the keys of the tags that you want to delete.

Default: None

Required: No

'>" + } + }, + "TagList": { + "base": null, + "refs": { + "ListTagsForDomainResponse$TagList": "

A list of the tags that are associated with the specified domain.

Type: A complex type containing a list of tags

Each tag includes the following elements.

  • Key

    The key (name) of a tag.

    Type: String

  • Value

    The value of a tag.

    Type: String

", + "UpdateTagsForDomainRequest$TagsToUpdate": "

A list of the tag keys and values that you want to add or update. If you specify a key that already exists, the corresponding value will be replaced.

Type: A complex type containing a list of tags

Default: None

Required: No

'>

Each tag includes the following elements:

  • Key

    The key (name) of a tag.

    Type: String

    Default: None

    Valid values: Unicode characters including alphanumeric, space, and \".:/=+\\-@\"

    Constraints: Each key can be 1-128 characters long.

    Required: Yes

  • Value

    The value of a tag.

    Type: String

    Default: None

    Valid values: Unicode characters including alphanumeric, space, and \".:/=+\\-@\"

    Constraints: Each value can be 0-256 characters long.

    Required: Yes

" + } + }, + "TagValue": { + "base": null, + "refs": { + "Tag$Value": "

The value of a tag.

Type: String

Default: None

Valid values: A-Z, a-z, 0-9, space, \".:/=+\\-@\"

Constraints: Each value can be 0-256 characters long.

Required: Yes

" + } + }, + "Timestamp": { + "base": null, + "refs": { + "DomainSummary$Expiry": "

Expiration date of the domain in Coordinated Universal Time (UTC).

Type: Long

", + "GetDomainDetailResponse$CreationDate": "

The date when the domain was created as found in the response to a WHOIS query. The date format is Unix time.

", + "GetDomainDetailResponse$UpdatedDate": "

The last updated date of the domain as found in the response to a WHOIS query. The date format is Unix time.

", + "GetDomainDetailResponse$ExpirationDate": "

The date when the registration for the domain is set to expire. The date format is Unix time.

", + "GetOperationDetailResponse$SubmittedDate": "

The date when the request was submitted.

", + "OperationSummary$SubmittedDate": "

The date when the request was submitted.

" + } + }, + "TransferDomainRequest": { + "base": "

The TransferDomain request includes the following elements.

", + "refs": { + } + }, + "TransferDomainResponse": { + "base": "

The TranserDomain response includes the following element.

", + "refs": { + } + }, + "UnsupportedTLD": { + "base": "

Amazon Route 53 does not support this top-level domain.

", + "refs": { + } + }, + "UpdateDomainContactPrivacyRequest": { + "base": "

The UpdateDomainContactPrivacy request includes the following elements.

", + "refs": { + } + }, + "UpdateDomainContactPrivacyResponse": { + "base": "

The UpdateDomainContactPrivacy response includes the following element.

", + "refs": { + } + }, + "UpdateDomainContactRequest": { + "base": "

The UpdateDomainContact request includes the following elements.

", + "refs": { + } + }, + "UpdateDomainContactResponse": { + "base": "

The UpdateDomainContact response includes the following element.

", + "refs": { + } + }, + "UpdateDomainNameserversRequest": { + "base": "

The UpdateDomainNameserver request includes the following elements.

", + "refs": { + } + }, + "UpdateDomainNameserversResponse": { + "base": "

The UpdateDomainNameservers response includes the following element.

", + "refs": { + } + }, + "UpdateTagsForDomainRequest": { + "base": "

The UpdateTagsForDomainRequest includes the following elements.

", + "refs": { + } + }, + "UpdateTagsForDomainResponse": { + "base": null, + "refs": { + } + }, + "ZipCode": { + "base": null, + "refs": { + "ContactDetail$ZipCode": "

The zip or postal code of the contact's address.

Type: String

Default: None

Constraints: Maximum 255 characters.

Parents: RegistrantContact, AdminContact, TechContact

Required: No

" + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/route53domains/2014-05-15/paginators-1.json b/lib/aws-sdk/Aws/data/route53domains/2014-05-15/paginators-1.json new file mode 100644 index 0000000..8d1a73a --- /dev/null +++ b/lib/aws-sdk/Aws/data/route53domains/2014-05-15/paginators-1.json @@ -0,0 +1,17 @@ +{ + "version": "1.0", + "pagination": { + "ListDomains": { + "limit_key": "MaxItems", + "input_token": "Marker", + "output_token": "NextPageMarker", + "result_key": "Domains" + }, + "ListOperations": { + "limit_key": "MaxItems", + "input_token": "Marker", + "output_token": "NextPageMarker", + "result_key": "Operations" + } + } +} diff --git a/lib/aws-sdk/Aws/data/s3/2006-03-01/api-2.json b/lib/aws-sdk/Aws/data/s3/2006-03-01/api-2.json new file mode 100644 index 0000000..4aa2bd8 --- /dev/null +++ b/lib/aws-sdk/Aws/data/s3/2006-03-01/api-2.json @@ -0,0 +1,4165 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2006-03-01", + "checksumFormat":"md5", + "endpointPrefix":"s3", + "globalEndpoint":"s3.amazonaws.com", + "serviceAbbreviation":"Amazon S3", + "serviceFullName":"Amazon Simple Storage Service", + "signatureVersion":"v4", + "timestampFormat":"rfc822", + "protocol":"rest-xml" + }, + "operations":{ + "AbortMultipartUpload":{ + "name":"AbortMultipartUpload", + "http":{ + "method":"DELETE", + "requestUri":"/{Bucket}/{Key+}" + }, + "input":{"shape":"AbortMultipartUploadRequest"}, + "output":{"shape":"AbortMultipartUploadOutput"}, + "errors":[ + { + "shape":"NoSuchUpload", + "exception":true + } + ], + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadAbort.html" + }, + "CompleteMultipartUpload":{ + "name":"CompleteMultipartUpload", + "http":{ + "method":"POST", + "requestUri":"/{Bucket}/{Key+}" + }, + "input":{"shape":"CompleteMultipartUploadRequest"}, + "output":{"shape":"CompleteMultipartUploadOutput"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadComplete.html" + }, + "CopyObject":{ + "name":"CopyObject", + "http":{ + "method":"PUT", + "requestUri":"/{Bucket}/{Key+}" + }, + "input":{"shape":"CopyObjectRequest"}, + "output":{"shape":"CopyObjectOutput"}, + "errors":[ + { + "shape":"ObjectNotInActiveTierError", + "exception":true + } + ], + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectCOPY.html", + "alias":"PutObjectCopy" + }, + "CreateBucket":{ + "name":"CreateBucket", + "http":{ + "method":"PUT", + "requestUri":"/{Bucket}" + }, + "input":{"shape":"CreateBucketRequest"}, + "output":{"shape":"CreateBucketOutput"}, + "errors":[ + { + "shape":"BucketAlreadyExists", + "exception":true + } + ], + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUT.html", + "alias":"PutBucket" + }, + "CreateMultipartUpload":{ + "name":"CreateMultipartUpload", + "http":{ + "method":"POST", + "requestUri":"/{Bucket}/{Key+}?uploads" + }, + "input":{"shape":"CreateMultipartUploadRequest"}, + "output":{"shape":"CreateMultipartUploadOutput"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadInitiate.html", + "alias":"InitiateMultipartUpload" + }, + "DeleteBucket":{ + "name":"DeleteBucket", + "http":{ + "method":"DELETE", + "requestUri":"/{Bucket}" + }, + "input":{"shape":"DeleteBucketRequest"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETE.html" + }, + "DeleteBucketCors":{ + "name":"DeleteBucketCors", + "http":{ + "method":"DELETE", + "requestUri":"/{Bucket}?cors" + }, + "input":{"shape":"DeleteBucketCorsRequest"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEcors.html" + }, + "DeleteBucketLifecycle":{ + "name":"DeleteBucketLifecycle", + "http":{ + "method":"DELETE", + "requestUri":"/{Bucket}?lifecycle" + }, + "input":{"shape":"DeleteBucketLifecycleRequest"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETElifecycle.html" + }, + "DeleteBucketPolicy":{ + "name":"DeleteBucketPolicy", + "http":{ + "method":"DELETE", + "requestUri":"/{Bucket}?policy" + }, + "input":{"shape":"DeleteBucketPolicyRequest"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEpolicy.html" + }, + "DeleteBucketReplication":{ + "name":"DeleteBucketReplication", + "http":{ + "method":"DELETE", + "requestUri":"/{Bucket}?replication" + }, + "input":{"shape":"DeleteBucketReplicationRequest"} + }, + "DeleteBucketTagging":{ + "name":"DeleteBucketTagging", + "http":{ + "method":"DELETE", + "requestUri":"/{Bucket}?tagging" + }, + "input":{"shape":"DeleteBucketTaggingRequest"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEtagging.html" + }, + "DeleteBucketWebsite":{ + "name":"DeleteBucketWebsite", + "http":{ + "method":"DELETE", + "requestUri":"/{Bucket}?website" + }, + "input":{"shape":"DeleteBucketWebsiteRequest"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEwebsite.html" + }, + "DeleteObject":{ + "name":"DeleteObject", + "http":{ + "method":"DELETE", + "requestUri":"/{Bucket}/{Key+}" + }, + "input":{"shape":"DeleteObjectRequest"}, + "output":{"shape":"DeleteObjectOutput"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectDELETE.html" + }, + "DeleteObjects":{ + "name":"DeleteObjects", + "http":{ + "method":"POST", + "requestUri":"/{Bucket}?delete" + }, + "input":{"shape":"DeleteObjectsRequest"}, + "output":{"shape":"DeleteObjectsOutput"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/multiobjectdeleteapi.html", + "alias":"DeleteMultipleObjects" + }, + "GetBucketAcl":{ + "name":"GetBucketAcl", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}?acl" + }, + "input":{"shape":"GetBucketAclRequest"}, + "output":{"shape":"GetBucketAclOutput"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETacl.html" + }, + "GetBucketCors":{ + "name":"GetBucketCors", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}?cors" + }, + "input":{"shape":"GetBucketCorsRequest"}, + "output":{"shape":"GetBucketCorsOutput"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETcors.html" + }, + "GetBucketLifecycle":{ + "name":"GetBucketLifecycle", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}?lifecycle" + }, + "input":{"shape":"GetBucketLifecycleRequest"}, + "output":{"shape":"GetBucketLifecycleOutput"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlifecycle.html" + }, + "GetBucketLocation":{ + "name":"GetBucketLocation", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}?location" + }, + "input":{"shape":"GetBucketLocationRequest"}, + "output":{"shape":"GetBucketLocationOutput"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlocation.html" + }, + "GetBucketLogging":{ + "name":"GetBucketLogging", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}?logging" + }, + "input":{"shape":"GetBucketLoggingRequest"}, + "output":{"shape":"GetBucketLoggingOutput"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlogging.html" + }, + "GetBucketNotification":{ + "name":"GetBucketNotification", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}?notification" + }, + "input":{"shape":"GetBucketNotificationConfigurationRequest"}, + "output":{"shape":"NotificationConfigurationDeprecated"}, + "deprecated":true, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETnotification.html" + }, + "GetBucketNotificationConfiguration":{ + "name":"GetBucketNotificationConfiguration", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}?notification" + }, + "input":{"shape":"GetBucketNotificationConfigurationRequest"}, + "output":{"shape":"NotificationConfiguration"} + }, + "GetBucketPolicy":{ + "name":"GetBucketPolicy", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}?policy" + }, + "input":{"shape":"GetBucketPolicyRequest"}, + "output":{"shape":"GetBucketPolicyOutput"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETpolicy.html" + }, + "GetBucketReplication":{ + "name":"GetBucketReplication", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}?replication" + }, + "input":{"shape":"GetBucketReplicationRequest"}, + "output":{"shape":"GetBucketReplicationOutput"} + }, + "GetBucketRequestPayment":{ + "name":"GetBucketRequestPayment", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}?requestPayment" + }, + "input":{"shape":"GetBucketRequestPaymentRequest"}, + "output":{"shape":"GetBucketRequestPaymentOutput"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTrequestPaymentGET.html" + }, + "GetBucketTagging":{ + "name":"GetBucketTagging", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}?tagging" + }, + "input":{"shape":"GetBucketTaggingRequest"}, + "output":{"shape":"GetBucketTaggingOutput"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETtagging.html" + }, + "GetBucketVersioning":{ + "name":"GetBucketVersioning", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}?versioning" + }, + "input":{"shape":"GetBucketVersioningRequest"}, + "output":{"shape":"GetBucketVersioningOutput"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETversioningStatus.html" + }, + "GetBucketWebsite":{ + "name":"GetBucketWebsite", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}?website" + }, + "input":{"shape":"GetBucketWebsiteRequest"}, + "output":{"shape":"GetBucketWebsiteOutput"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETwebsite.html" + }, + "GetObject":{ + "name":"GetObject", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}/{Key+}" + }, + "input":{"shape":"GetObjectRequest"}, + "output":{"shape":"GetObjectOutput"}, + "errors":[ + { + "shape":"NoSuchKey", + "exception":true + } + ], + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGET.html" + }, + "GetObjectAcl":{ + "name":"GetObjectAcl", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}/{Key+}?acl" + }, + "input":{"shape":"GetObjectAclRequest"}, + "output":{"shape":"GetObjectAclOutput"}, + "errors":[ + { + "shape":"NoSuchKey", + "exception":true + } + ], + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGETacl.html" + }, + "GetObjectTorrent":{ + "name":"GetObjectTorrent", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}/{Key+}?torrent" + }, + "input":{"shape":"GetObjectTorrentRequest"}, + "output":{"shape":"GetObjectTorrentOutput"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGETtorrent.html" + }, + "HeadBucket":{ + "name":"HeadBucket", + "http":{ + "method":"HEAD", + "requestUri":"/{Bucket}" + }, + "input":{"shape":"HeadBucketRequest"}, + "errors":[ + { + "shape":"NoSuchBucket", + "exception":true + } + ], + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketHEAD.html" + }, + "HeadObject":{ + "name":"HeadObject", + "http":{ + "method":"HEAD", + "requestUri":"/{Bucket}/{Key+}" + }, + "input":{"shape":"HeadObjectRequest"}, + "output":{"shape":"HeadObjectOutput"}, + "errors":[ + { + "shape":"NoSuchKey", + "exception":true + } + ], + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectHEAD.html" + }, + "ListBuckets":{ + "name":"ListBuckets", + "http":{ + "method":"GET", + "requestUri":"/" + }, + "output":{"shape":"ListBucketsOutput"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTServiceGET.html", + "alias":"GetService" + }, + "ListMultipartUploads":{ + "name":"ListMultipartUploads", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}?uploads" + }, + "input":{"shape":"ListMultipartUploadsRequest"}, + "output":{"shape":"ListMultipartUploadsOutput"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadListMPUpload.html" + }, + "ListObjectVersions":{ + "name":"ListObjectVersions", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}?versions" + }, + "input":{"shape":"ListObjectVersionsRequest"}, + "output":{"shape":"ListObjectVersionsOutput"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETVersion.html", + "alias":"GetBucketObjectVersions" + }, + "ListObjects":{ + "name":"ListObjects", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}" + }, + "input":{"shape":"ListObjectsRequest"}, + "output":{"shape":"ListObjectsOutput"}, + "errors":[ + { + "shape":"NoSuchBucket", + "exception":true + } + ], + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGET.html", + "alias":"GetBucket" + }, + "ListParts":{ + "name":"ListParts", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}/{Key+}" + }, + "input":{"shape":"ListPartsRequest"}, + "output":{"shape":"ListPartsOutput"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadListParts.html" + }, + "PutBucketAcl":{ + "name":"PutBucketAcl", + "http":{ + "method":"PUT", + "requestUri":"/{Bucket}?acl" + }, + "input":{"shape":"PutBucketAclRequest"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTacl.html" + }, + "PutBucketCors":{ + "name":"PutBucketCors", + "http":{ + "method":"PUT", + "requestUri":"/{Bucket}?cors" + }, + "input":{"shape":"PutBucketCorsRequest"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTcors.html" + }, + "PutBucketLifecycle":{ + "name":"PutBucketLifecycle", + "http":{ + "method":"PUT", + "requestUri":"/{Bucket}?lifecycle" + }, + "input":{"shape":"PutBucketLifecycleRequest"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html" + }, + "PutBucketLogging":{ + "name":"PutBucketLogging", + "http":{ + "method":"PUT", + "requestUri":"/{Bucket}?logging" + }, + "input":{"shape":"PutBucketLoggingRequest"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTlogging.html" + }, + "PutBucketNotification":{ + "name":"PutBucketNotification", + "http":{ + "method":"PUT", + "requestUri":"/{Bucket}?notification" + }, + "input":{"shape":"PutBucketNotificationRequest"}, + "deprecated":true, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTnotification.html" + }, + "PutBucketNotificationConfiguration":{ + "name":"PutBucketNotificationConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/{Bucket}?notification" + }, + "input":{"shape":"PutBucketNotificationConfigurationRequest"} + }, + "PutBucketPolicy":{ + "name":"PutBucketPolicy", + "http":{ + "method":"PUT", + "requestUri":"/{Bucket}?policy" + }, + "input":{"shape":"PutBucketPolicyRequest"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTpolicy.html" + }, + "PutBucketReplication":{ + "name":"PutBucketReplication", + "http":{ + "method":"PUT", + "requestUri":"/{Bucket}?replication" + }, + "input":{"shape":"PutBucketReplicationRequest"} + }, + "PutBucketRequestPayment":{ + "name":"PutBucketRequestPayment", + "http":{ + "method":"PUT", + "requestUri":"/{Bucket}?requestPayment" + }, + "input":{"shape":"PutBucketRequestPaymentRequest"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTrequestPaymentPUT.html" + }, + "PutBucketTagging":{ + "name":"PutBucketTagging", + "http":{ + "method":"PUT", + "requestUri":"/{Bucket}?tagging" + }, + "input":{"shape":"PutBucketTaggingRequest"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTtagging.html" + }, + "PutBucketVersioning":{ + "name":"PutBucketVersioning", + "http":{ + "method":"PUT", + "requestUri":"/{Bucket}?versioning" + }, + "input":{"shape":"PutBucketVersioningRequest"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html" + }, + "PutBucketWebsite":{ + "name":"PutBucketWebsite", + "http":{ + "method":"PUT", + "requestUri":"/{Bucket}?website" + }, + "input":{"shape":"PutBucketWebsiteRequest"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTwebsite.html" + }, + "PutObject":{ + "name":"PutObject", + "http":{ + "method":"PUT", + "requestUri":"/{Bucket}/{Key+}" + }, + "input":{"shape":"PutObjectRequest"}, + "output":{"shape":"PutObjectOutput"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUT.html" + }, + "PutObjectAcl":{ + "name":"PutObjectAcl", + "http":{ + "method":"PUT", + "requestUri":"/{Bucket}/{Key+}?acl" + }, + "input":{"shape":"PutObjectAclRequest"}, + "output":{"shape":"PutObjectAclOutput"}, + "errors":[ + { + "shape":"NoSuchKey", + "exception":true + } + ], + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUTacl.html" + }, + "RestoreObject":{ + "name":"RestoreObject", + "http":{ + "method":"POST", + "requestUri":"/{Bucket}/{Key+}?restore" + }, + "input":{"shape":"RestoreObjectRequest"}, + "output":{"shape":"RestoreObjectOutput"}, + "errors":[ + { + "shape":"ObjectAlreadyInActiveTierError", + "exception":true + } + ], + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectRestore.html", + "alias":"PostObjectRestore" + }, + "UploadPart":{ + "name":"UploadPart", + "http":{ + "method":"PUT", + "requestUri":"/{Bucket}/{Key+}" + }, + "input":{"shape":"UploadPartRequest"}, + "output":{"shape":"UploadPartOutput"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadUploadPart.html" + }, + "UploadPartCopy":{ + "name":"UploadPartCopy", + "http":{ + "method":"PUT", + "requestUri":"/{Bucket}/{Key+}" + }, + "input":{"shape":"UploadPartCopyRequest"}, + "output":{"shape":"UploadPartCopyOutput"}, + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadUploadPartCopy.html" + } + }, + "shapes":{ + "AbortMultipartUploadOutput":{ + "type":"structure", + "members":{ + "RequestCharged":{ + "shape":"RequestCharged", + "location":"header", + "locationName":"x-amz-request-charged" + } + } + }, + "AbortMultipartUploadRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Key", + "UploadId" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "Key":{ + "shape":"ObjectKey", + "location":"uri", + "locationName":"Key" + }, + "UploadId":{ + "shape":"MultipartUploadId", + "location":"querystring", + "locationName":"uploadId" + }, + "RequestPayer":{ + "shape":"RequestPayer", + "location":"header", + "locationName":"x-amz-request-payer" + } + } + }, + "AcceptRanges":{"type":"string"}, + "AccessControlPolicy":{ + "type":"structure", + "members":{ + "Grants":{ + "shape":"Grants", + "locationName":"AccessControlList" + }, + "Owner":{"shape":"Owner"} + } + }, + "AllowedHeader":{"type":"string"}, + "AllowedHeaders":{ + "type":"list", + "member":{"shape":"AllowedHeader"}, + "flattened":true + }, + "AllowedMethod":{"type":"string"}, + "AllowedMethods":{ + "type":"list", + "member":{"shape":"AllowedMethod"}, + "flattened":true + }, + "AllowedOrigin":{"type":"string"}, + "AllowedOrigins":{ + "type":"list", + "member":{"shape":"AllowedOrigin"}, + "flattened":true + }, + "Body":{"type":"blob"}, + "Bucket":{ + "type":"structure", + "members":{ + "Name":{"shape":"BucketName"}, + "CreationDate":{"shape":"CreationDate"} + } + }, + "BucketAlreadyExists":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "BucketCannedACL":{ + "type":"string", + "enum":[ + "private", + "public-read", + "public-read-write", + "authenticated-read" + ] + }, + "BucketLocationConstraint":{ + "type":"string", + "enum":[ + "EU", + "eu-west-1", + "us-west-1", + "us-west-2", + "ap-southeast-1", + "ap-southeast-2", + "ap-northeast-1", + "sa-east-1", + "cn-north-1", + "eu-central-1" + ] + }, + "BucketLoggingStatus":{ + "type":"structure", + "members":{ + "LoggingEnabled":{"shape":"LoggingEnabled"} + } + }, + "BucketLogsPermission":{ + "type":"string", + "enum":[ + "FULL_CONTROL", + "READ", + "WRITE" + ] + }, + "BucketName":{"type":"string"}, + "BucketVersioningStatus":{ + "type":"string", + "enum":[ + "Enabled", + "Suspended" + ] + }, + "Buckets":{ + "type":"list", + "member":{ + "shape":"Bucket", + "locationName":"Bucket" + } + }, + "CORSConfiguration":{ + "type":"structure", + "members":{ + "CORSRules":{ + "shape":"CORSRules", + "locationName":"CORSRule" + } + } + }, + "CORSRule":{ + "type":"structure", + "members":{ + "AllowedHeaders":{ + "shape":"AllowedHeaders", + "locationName":"AllowedHeader" + }, + "AllowedMethods":{ + "shape":"AllowedMethods", + "locationName":"AllowedMethod" + }, + "AllowedOrigins":{ + "shape":"AllowedOrigins", + "locationName":"AllowedOrigin" + }, + "ExposeHeaders":{ + "shape":"ExposeHeaders", + "locationName":"ExposeHeader" + }, + "MaxAgeSeconds":{"shape":"MaxAgeSeconds"} + } + }, + "CORSRules":{ + "type":"list", + "member":{"shape":"CORSRule"}, + "flattened":true + }, + "CacheControl":{"type":"string"}, + "CloudFunction":{"type":"string"}, + "CloudFunctionConfiguration":{ + "type":"structure", + "members":{ + "Id":{"shape":"NotificationId"}, + "Event":{ + "shape":"Event", + "deprecated":true + }, + "Events":{ + "shape":"EventList", + "locationName":"Event" + }, + "CloudFunction":{"shape":"CloudFunction"}, + "InvocationRole":{"shape":"CloudFunctionInvocationRole"} + } + }, + "CloudFunctionInvocationRole":{"type":"string"}, + "Code":{"type":"string"}, + "CommonPrefix":{ + "type":"structure", + "members":{ + "Prefix":{"shape":"Prefix"} + } + }, + "CommonPrefixList":{ + "type":"list", + "member":{"shape":"CommonPrefix"}, + "flattened":true + }, + "CompleteMultipartUploadOutput":{ + "type":"structure", + "members":{ + "Location":{"shape":"Location"}, + "Bucket":{"shape":"BucketName"}, + "Key":{"shape":"ObjectKey"}, + "Expiration":{ + "shape":"Expiration", + "location":"header", + "locationName":"x-amz-expiration" + }, + "ETag":{"shape":"ETag"}, + "ServerSideEncryption":{ + "shape":"ServerSideEncryption", + "location":"header", + "locationName":"x-amz-server-side-encryption" + }, + "VersionId":{ + "shape":"ObjectVersionId", + "location":"header", + "locationName":"x-amz-version-id" + }, + "SSEKMSKeyId":{ + "shape":"SSEKMSKeyId", + "location":"header", + "locationName":"x-amz-server-side-encryption-aws-kms-key-id" + }, + "RequestCharged":{ + "shape":"RequestCharged", + "location":"header", + "locationName":"x-amz-request-charged" + } + } + }, + "CompleteMultipartUploadRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Key", + "UploadId" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "Key":{ + "shape":"ObjectKey", + "location":"uri", + "locationName":"Key" + }, + "MultipartUpload":{ + "shape":"CompletedMultipartUpload", + "locationName":"CompleteMultipartUpload", + "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"} + }, + "UploadId":{ + "shape":"MultipartUploadId", + "location":"querystring", + "locationName":"uploadId" + }, + "RequestPayer":{ + "shape":"RequestPayer", + "location":"header", + "locationName":"x-amz-request-payer" + } + }, + "payload":"MultipartUpload" + }, + "CompletedMultipartUpload":{ + "type":"structure", + "members":{ + "Parts":{ + "shape":"CompletedPartList", + "locationName":"Part" + } + } + }, + "CompletedPart":{ + "type":"structure", + "members":{ + "ETag":{"shape":"ETag"}, + "PartNumber":{"shape":"PartNumber"} + } + }, + "CompletedPartList":{ + "type":"list", + "member":{"shape":"CompletedPart"}, + "flattened":true + }, + "Condition":{ + "type":"structure", + "members":{ + "HttpErrorCodeReturnedEquals":{"shape":"HttpErrorCodeReturnedEquals"}, + "KeyPrefixEquals":{"shape":"KeyPrefixEquals"} + } + }, + "ContentDisposition":{"type":"string"}, + "ContentEncoding":{"type":"string"}, + "ContentLanguage":{"type":"string"}, + "ContentLength":{"type":"integer"}, + "ContentMD5":{"type":"string"}, + "ContentType":{"type":"string"}, + "CopyObjectOutput":{ + "type":"structure", + "members":{ + "CopyObjectResult":{"shape":"CopyObjectResult"}, + "Expiration":{ + "shape":"Expiration", + "location":"header", + "locationName":"x-amz-expiration" + }, + "CopySourceVersionId":{ + "shape":"CopySourceVersionId", + "location":"header", + "locationName":"x-amz-copy-source-version-id" + }, + "ServerSideEncryption":{ + "shape":"ServerSideEncryption", + "location":"header", + "locationName":"x-amz-server-side-encryption" + }, + "SSECustomerAlgorithm":{ + "shape":"SSECustomerAlgorithm", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKeyMD5":{ + "shape":"SSECustomerKeyMD5", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-key-MD5" + }, + "SSEKMSKeyId":{ + "shape":"SSEKMSKeyId", + "location":"header", + "locationName":"x-amz-server-side-encryption-aws-kms-key-id" + }, + "RequestCharged":{ + "shape":"RequestCharged", + "location":"header", + "locationName":"x-amz-request-charged" + } + }, + "payload":"CopyObjectResult" + }, + "CopyObjectRequest":{ + "type":"structure", + "required":[ + "Bucket", + "CopySource", + "Key" + ], + "members":{ + "ACL":{ + "shape":"ObjectCannedACL", + "location":"header", + "locationName":"x-amz-acl" + }, + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "CacheControl":{ + "shape":"CacheControl", + "location":"header", + "locationName":"Cache-Control" + }, + "ContentDisposition":{ + "shape":"ContentDisposition", + "location":"header", + "locationName":"Content-Disposition" + }, + "ContentEncoding":{ + "shape":"ContentEncoding", + "location":"header", + "locationName":"Content-Encoding" + }, + "ContentLanguage":{ + "shape":"ContentLanguage", + "location":"header", + "locationName":"Content-Language" + }, + "ContentType":{ + "shape":"ContentType", + "location":"header", + "locationName":"Content-Type" + }, + "CopySource":{ + "shape":"CopySource", + "location":"header", + "locationName":"x-amz-copy-source" + }, + "CopySourceIfMatch":{ + "shape":"CopySourceIfMatch", + "location":"header", + "locationName":"x-amz-copy-source-if-match" + }, + "CopySourceIfModifiedSince":{ + "shape":"CopySourceIfModifiedSince", + "location":"header", + "locationName":"x-amz-copy-source-if-modified-since" + }, + "CopySourceIfNoneMatch":{ + "shape":"CopySourceIfNoneMatch", + "location":"header", + "locationName":"x-amz-copy-source-if-none-match" + }, + "CopySourceIfUnmodifiedSince":{ + "shape":"CopySourceIfUnmodifiedSince", + "location":"header", + "locationName":"x-amz-copy-source-if-unmodified-since" + }, + "Expires":{ + "shape":"Expires", + "location":"header", + "locationName":"Expires" + }, + "GrantFullControl":{ + "shape":"GrantFullControl", + "location":"header", + "locationName":"x-amz-grant-full-control" + }, + "GrantRead":{ + "shape":"GrantRead", + "location":"header", + "locationName":"x-amz-grant-read" + }, + "GrantReadACP":{ + "shape":"GrantReadACP", + "location":"header", + "locationName":"x-amz-grant-read-acp" + }, + "GrantWriteACP":{ + "shape":"GrantWriteACP", + "location":"header", + "locationName":"x-amz-grant-write-acp" + }, + "Key":{ + "shape":"ObjectKey", + "location":"uri", + "locationName":"Key" + }, + "Metadata":{ + "shape":"Metadata", + "location":"headers", + "locationName":"x-amz-meta-" + }, + "MetadataDirective":{ + "shape":"MetadataDirective", + "location":"header", + "locationName":"x-amz-metadata-directive" + }, + "ServerSideEncryption":{ + "shape":"ServerSideEncryption", + "location":"header", + "locationName":"x-amz-server-side-encryption" + }, + "StorageClass":{ + "shape":"StorageClass", + "location":"header", + "locationName":"x-amz-storage-class" + }, + "WebsiteRedirectLocation":{ + "shape":"WebsiteRedirectLocation", + "location":"header", + "locationName":"x-amz-website-redirect-location" + }, + "SSECustomerAlgorithm":{ + "shape":"SSECustomerAlgorithm", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKey":{ + "shape":"SSECustomerKey", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-key" + }, + "SSECustomerKeyMD5":{ + "shape":"SSECustomerKeyMD5", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-key-MD5" + }, + "SSEKMSKeyId":{ + "shape":"SSEKMSKeyId", + "location":"header", + "locationName":"x-amz-server-side-encryption-aws-kms-key-id" + }, + "CopySourceSSECustomerAlgorithm":{ + "shape":"CopySourceSSECustomerAlgorithm", + "location":"header", + "locationName":"x-amz-copy-source-server-side-encryption-customer-algorithm" + }, + "CopySourceSSECustomerKey":{ + "shape":"CopySourceSSECustomerKey", + "location":"header", + "locationName":"x-amz-copy-source-server-side-encryption-customer-key" + }, + "CopySourceSSECustomerKeyMD5":{ + "shape":"CopySourceSSECustomerKeyMD5", + "location":"header", + "locationName":"x-amz-copy-source-server-side-encryption-customer-key-MD5" + }, + "RequestPayer":{ + "shape":"RequestPayer", + "location":"header", + "locationName":"x-amz-request-payer" + } + } + }, + "CopyObjectResult":{ + "type":"structure", + "members":{ + "ETag":{"shape":"ETag"}, + "LastModified":{"shape":"LastModified"} + } + }, + "CopyPartResult":{ + "type":"structure", + "members":{ + "ETag":{"shape":"ETag"}, + "LastModified":{"shape":"LastModified"} + } + }, + "CopySource":{ + "type":"string", + "pattern":"\\/.+\\/.+" + }, + "CopySourceIfMatch":{"type":"string"}, + "CopySourceIfModifiedSince":{"type":"timestamp"}, + "CopySourceIfNoneMatch":{"type":"string"}, + "CopySourceIfUnmodifiedSince":{"type":"timestamp"}, + "CopySourceRange":{"type":"string"}, + "CopySourceSSECustomerAlgorithm":{"type":"string"}, + "CopySourceSSECustomerKey":{ + "type":"string", + "sensitive":true + }, + "CopySourceSSECustomerKeyMD5":{"type":"string"}, + "CopySourceVersionId":{"type":"string"}, + "CreateBucketConfiguration":{ + "type":"structure", + "members":{ + "LocationConstraint":{"shape":"BucketLocationConstraint"} + } + }, + "CreateBucketOutput":{ + "type":"structure", + "members":{ + "Location":{ + "shape":"Location", + "location":"header", + "locationName":"Location" + } + } + }, + "CreateBucketRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "ACL":{ + "shape":"BucketCannedACL", + "location":"header", + "locationName":"x-amz-acl" + }, + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "CreateBucketConfiguration":{ + "shape":"CreateBucketConfiguration", + "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}, + "locationName":"CreateBucketConfiguration" + }, + "GrantFullControl":{ + "shape":"GrantFullControl", + "location":"header", + "locationName":"x-amz-grant-full-control" + }, + "GrantRead":{ + "shape":"GrantRead", + "location":"header", + "locationName":"x-amz-grant-read" + }, + "GrantReadACP":{ + "shape":"GrantReadACP", + "location":"header", + "locationName":"x-amz-grant-read-acp" + }, + "GrantWrite":{ + "shape":"GrantWrite", + "location":"header", + "locationName":"x-amz-grant-write" + }, + "GrantWriteACP":{ + "shape":"GrantWriteACP", + "location":"header", + "locationName":"x-amz-grant-write-acp" + } + }, + "payload":"CreateBucketConfiguration" + }, + "CreateMultipartUploadOutput":{ + "type":"structure", + "members":{ + "Bucket":{ + "shape":"BucketName", + "locationName":"Bucket" + }, + "Key":{"shape":"ObjectKey"}, + "UploadId":{"shape":"MultipartUploadId"}, + "ServerSideEncryption":{ + "shape":"ServerSideEncryption", + "location":"header", + "locationName":"x-amz-server-side-encryption" + }, + "SSECustomerAlgorithm":{ + "shape":"SSECustomerAlgorithm", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKeyMD5":{ + "shape":"SSECustomerKeyMD5", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-key-MD5" + }, + "SSEKMSKeyId":{ + "shape":"SSEKMSKeyId", + "location":"header", + "locationName":"x-amz-server-side-encryption-aws-kms-key-id" + }, + "RequestCharged":{ + "shape":"RequestCharged", + "location":"header", + "locationName":"x-amz-request-charged" + } + } + }, + "CreateMultipartUploadRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Key" + ], + "members":{ + "ACL":{ + "shape":"ObjectCannedACL", + "location":"header", + "locationName":"x-amz-acl" + }, + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "CacheControl":{ + "shape":"CacheControl", + "location":"header", + "locationName":"Cache-Control" + }, + "ContentDisposition":{ + "shape":"ContentDisposition", + "location":"header", + "locationName":"Content-Disposition" + }, + "ContentEncoding":{ + "shape":"ContentEncoding", + "location":"header", + "locationName":"Content-Encoding" + }, + "ContentLanguage":{ + "shape":"ContentLanguage", + "location":"header", + "locationName":"Content-Language" + }, + "ContentType":{ + "shape":"ContentType", + "location":"header", + "locationName":"Content-Type" + }, + "Expires":{ + "shape":"Expires", + "location":"header", + "locationName":"Expires" + }, + "GrantFullControl":{ + "shape":"GrantFullControl", + "location":"header", + "locationName":"x-amz-grant-full-control" + }, + "GrantRead":{ + "shape":"GrantRead", + "location":"header", + "locationName":"x-amz-grant-read" + }, + "GrantReadACP":{ + "shape":"GrantReadACP", + "location":"header", + "locationName":"x-amz-grant-read-acp" + }, + "GrantWriteACP":{ + "shape":"GrantWriteACP", + "location":"header", + "locationName":"x-amz-grant-write-acp" + }, + "Key":{ + "shape":"ObjectKey", + "location":"uri", + "locationName":"Key" + }, + "Metadata":{ + "shape":"Metadata", + "location":"headers", + "locationName":"x-amz-meta-" + }, + "ServerSideEncryption":{ + "shape":"ServerSideEncryption", + "location":"header", + "locationName":"x-amz-server-side-encryption" + }, + "StorageClass":{ + "shape":"StorageClass", + "location":"header", + "locationName":"x-amz-storage-class" + }, + "WebsiteRedirectLocation":{ + "shape":"WebsiteRedirectLocation", + "location":"header", + "locationName":"x-amz-website-redirect-location" + }, + "SSECustomerAlgorithm":{ + "shape":"SSECustomerAlgorithm", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKey":{ + "shape":"SSECustomerKey", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-key" + }, + "SSECustomerKeyMD5":{ + "shape":"SSECustomerKeyMD5", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-key-MD5" + }, + "SSEKMSKeyId":{ + "shape":"SSEKMSKeyId", + "location":"header", + "locationName":"x-amz-server-side-encryption-aws-kms-key-id" + }, + "RequestPayer":{ + "shape":"RequestPayer", + "location":"header", + "locationName":"x-amz-request-payer" + } + } + }, + "CreationDate":{"type":"timestamp"}, + "Date":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "Days":{"type":"integer"}, + "Delete":{ + "type":"structure", + "required":["Objects"], + "members":{ + "Objects":{ + "shape":"ObjectIdentifierList", + "locationName":"Object" + }, + "Quiet":{"shape":"Quiet"} + } + }, + "DeleteBucketCorsRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + } + } + }, + "DeleteBucketLifecycleRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + } + } + }, + "DeleteBucketPolicyRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + } + } + }, + "DeleteBucketReplicationRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + } + } + }, + "DeleteBucketRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + } + } + }, + "DeleteBucketTaggingRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + } + } + }, + "DeleteBucketWebsiteRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + } + } + }, + "DeleteMarker":{"type":"boolean"}, + "DeleteMarkerEntry":{ + "type":"structure", + "members":{ + "Owner":{"shape":"Owner"}, + "Key":{"shape":"ObjectKey"}, + "VersionId":{"shape":"ObjectVersionId"}, + "IsLatest":{"shape":"IsLatest"}, + "LastModified":{"shape":"LastModified"} + } + }, + "DeleteMarkerVersionId":{"type":"string"}, + "DeleteMarkers":{ + "type":"list", + "member":{"shape":"DeleteMarkerEntry"}, + "flattened":true + }, + "DeleteObjectOutput":{ + "type":"structure", + "members":{ + "DeleteMarker":{ + "shape":"DeleteMarker", + "location":"header", + "locationName":"x-amz-delete-marker" + }, + "VersionId":{ + "shape":"ObjectVersionId", + "location":"header", + "locationName":"x-amz-version-id" + }, + "RequestCharged":{ + "shape":"RequestCharged", + "location":"header", + "locationName":"x-amz-request-charged" + } + } + }, + "DeleteObjectRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Key" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "Key":{ + "shape":"ObjectKey", + "location":"uri", + "locationName":"Key" + }, + "MFA":{ + "shape":"MFA", + "location":"header", + "locationName":"x-amz-mfa" + }, + "VersionId":{ + "shape":"ObjectVersionId", + "location":"querystring", + "locationName":"versionId" + }, + "RequestPayer":{ + "shape":"RequestPayer", + "location":"header", + "locationName":"x-amz-request-payer" + } + } + }, + "DeleteObjectsOutput":{ + "type":"structure", + "members":{ + "Deleted":{"shape":"DeletedObjects"}, + "RequestCharged":{ + "shape":"RequestCharged", + "location":"header", + "locationName":"x-amz-request-charged" + }, + "Errors":{ + "shape":"Errors", + "locationName":"Error" + } + } + }, + "DeleteObjectsRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Delete" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "Delete":{ + "shape":"Delete", + "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}, + "locationName":"Delete" + }, + "MFA":{ + "shape":"MFA", + "location":"header", + "locationName":"x-amz-mfa" + }, + "RequestPayer":{ + "shape":"RequestPayer", + "location":"header", + "locationName":"x-amz-request-payer" + } + }, + "payload":"Delete" + }, + "DeletedObject":{ + "type":"structure", + "members":{ + "Key":{"shape":"ObjectKey"}, + "VersionId":{"shape":"ObjectVersionId"}, + "DeleteMarker":{"shape":"DeleteMarker"}, + "DeleteMarkerVersionId":{"shape":"DeleteMarkerVersionId"} + } + }, + "DeletedObjects":{ + "type":"list", + "member":{"shape":"DeletedObject"}, + "flattened":true + }, + "Delimiter":{"type":"string"}, + "Destination":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{"shape":"BucketName"} + } + }, + "DisplayName":{"type":"string"}, + "ETag":{"type":"string"}, + "EmailAddress":{"type":"string"}, + "EncodingType":{ + "type":"string", + "enum":["url"] + }, + "Error":{ + "type":"structure", + "members":{ + "Key":{"shape":"ObjectKey"}, + "VersionId":{"shape":"ObjectVersionId"}, + "Code":{"shape":"Code"}, + "Message":{"shape":"Message"} + } + }, + "ErrorDocument":{ + "type":"structure", + "required":["Key"], + "members":{ + "Key":{"shape":"ObjectKey"} + } + }, + "Errors":{ + "type":"list", + "member":{"shape":"Error"}, + "flattened":true + }, + "Event":{ + "type":"string", + "enum":[ + "s3:ReducedRedundancyLostObject", + "s3:ObjectCreated:Put", + "s3:ObjectCreated:Post", + "s3:ObjectCreated:Copy", + "s3:ObjectCreated:CompleteMultipartUpload" + ] + }, + "EventList":{ + "type":"list", + "member":{"shape":"Event"}, + "flattened":true + }, + "Expiration":{"type":"string"}, + "ExpirationStatus":{ + "type":"string", + "enum":[ + "Enabled", + "Disabled" + ] + }, + "Expires":{"type":"timestamp"}, + "ExposeHeader":{"type":"string"}, + "ExposeHeaders":{ + "type":"list", + "member":{"shape":"ExposeHeader"}, + "flattened":true + }, + "GetBucketAclOutput":{ + "type":"structure", + "members":{ + "Owner":{"shape":"Owner"}, + "Grants":{ + "shape":"Grants", + "locationName":"AccessControlList" + } + } + }, + "GetBucketAclRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + } + } + }, + "GetBucketCorsOutput":{ + "type":"structure", + "members":{ + "CORSRules":{ + "shape":"CORSRules", + "locationName":"CORSRule" + } + } + }, + "GetBucketCorsRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + } + } + }, + "GetBucketLifecycleOutput":{ + "type":"structure", + "members":{ + "Rules":{ + "shape":"Rules", + "locationName":"Rule" + } + } + }, + "GetBucketLifecycleRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + } + } + }, + "GetBucketLocationOutput":{ + "type":"structure", + "members":{ + "LocationConstraint":{"shape":"BucketLocationConstraint"} + } + }, + "GetBucketLocationRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + } + } + }, + "GetBucketLoggingOutput":{ + "type":"structure", + "members":{ + "LoggingEnabled":{"shape":"LoggingEnabled"} + } + }, + "GetBucketLoggingRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + } + } + }, + "GetBucketNotificationConfigurationRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + } + } + }, + "GetBucketPolicyOutput":{ + "type":"structure", + "members":{ + "Policy":{"shape":"Policy"} + }, + "payload":"Policy" + }, + "GetBucketPolicyRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + } + } + }, + "GetBucketReplicationOutput":{ + "type":"structure", + "members":{ + "ReplicationConfiguration":{"shape":"ReplicationConfiguration"} + }, + "payload":"ReplicationConfiguration" + }, + "GetBucketReplicationRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + } + } + }, + "GetBucketRequestPaymentOutput":{ + "type":"structure", + "members":{ + "Payer":{"shape":"Payer"} + } + }, + "GetBucketRequestPaymentRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + } + } + }, + "GetBucketTaggingOutput":{ + "type":"structure", + "required":["TagSet"], + "members":{ + "TagSet":{"shape":"TagSet"} + } + }, + "GetBucketTaggingRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + } + } + }, + "GetBucketVersioningOutput":{ + "type":"structure", + "members":{ + "Status":{"shape":"BucketVersioningStatus"}, + "MFADelete":{ + "shape":"MFADeleteStatus", + "locationName":"MfaDelete" + } + } + }, + "GetBucketVersioningRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + } + } + }, + "GetBucketWebsiteOutput":{ + "type":"structure", + "members":{ + "RedirectAllRequestsTo":{"shape":"RedirectAllRequestsTo"}, + "IndexDocument":{"shape":"IndexDocument"}, + "ErrorDocument":{"shape":"ErrorDocument"}, + "RoutingRules":{"shape":"RoutingRules"} + } + }, + "GetBucketWebsiteRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + } + } + }, + "GetObjectAclOutput":{ + "type":"structure", + "members":{ + "Owner":{"shape":"Owner"}, + "Grants":{ + "shape":"Grants", + "locationName":"AccessControlList" + }, + "RequestCharged":{ + "shape":"RequestCharged", + "location":"header", + "locationName":"x-amz-request-charged" + } + } + }, + "GetObjectAclRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Key" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "Key":{ + "shape":"ObjectKey", + "location":"uri", + "locationName":"Key" + }, + "VersionId":{ + "shape":"ObjectVersionId", + "location":"querystring", + "locationName":"versionId" + }, + "RequestPayer":{ + "shape":"RequestPayer", + "location":"header", + "locationName":"x-amz-request-payer" + } + } + }, + "GetObjectOutput":{ + "type":"structure", + "members":{ + "Body":{ + "shape":"Body", + "streaming":true + }, + "DeleteMarker":{ + "shape":"DeleteMarker", + "location":"header", + "locationName":"x-amz-delete-marker" + }, + "AcceptRanges":{ + "shape":"AcceptRanges", + "location":"header", + "locationName":"accept-ranges" + }, + "Expiration":{ + "shape":"Expiration", + "location":"header", + "locationName":"x-amz-expiration" + }, + "Restore":{ + "shape":"Restore", + "location":"header", + "locationName":"x-amz-restore" + }, + "LastModified":{ + "shape":"LastModified", + "location":"header", + "locationName":"Last-Modified" + }, + "ContentLength":{ + "shape":"ContentLength", + "location":"header", + "locationName":"Content-Length" + }, + "ETag":{ + "shape":"ETag", + "location":"header", + "locationName":"ETag" + }, + "MissingMeta":{ + "shape":"MissingMeta", + "location":"header", + "locationName":"x-amz-missing-meta" + }, + "VersionId":{ + "shape":"ObjectVersionId", + "location":"header", + "locationName":"x-amz-version-id" + }, + "CacheControl":{ + "shape":"CacheControl", + "location":"header", + "locationName":"Cache-Control" + }, + "ContentDisposition":{ + "shape":"ContentDisposition", + "location":"header", + "locationName":"Content-Disposition" + }, + "ContentEncoding":{ + "shape":"ContentEncoding", + "location":"header", + "locationName":"Content-Encoding" + }, + "ContentLanguage":{ + "shape":"ContentLanguage", + "location":"header", + "locationName":"Content-Language" + }, + "ContentType":{ + "shape":"ContentType", + "location":"header", + "locationName":"Content-Type" + }, + "Expires":{ + "shape":"Expires", + "location":"header", + "locationName":"Expires" + }, + "WebsiteRedirectLocation":{ + "shape":"WebsiteRedirectLocation", + "location":"header", + "locationName":"x-amz-website-redirect-location" + }, + "ServerSideEncryption":{ + "shape":"ServerSideEncryption", + "location":"header", + "locationName":"x-amz-server-side-encryption" + }, + "Metadata":{ + "shape":"Metadata", + "location":"headers", + "locationName":"x-amz-meta-" + }, + "SSECustomerAlgorithm":{ + "shape":"SSECustomerAlgorithm", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKeyMD5":{ + "shape":"SSECustomerKeyMD5", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-key-MD5" + }, + "SSEKMSKeyId":{ + "shape":"SSEKMSKeyId", + "location":"header", + "locationName":"x-amz-server-side-encryption-aws-kms-key-id" + }, + "RequestCharged":{ + "shape":"RequestCharged", + "location":"header", + "locationName":"x-amz-request-charged" + }, + "ReplicationStatus":{ + "shape":"ReplicationStatus", + "location":"header", + "locationName":"x-amz-replication-status" + } + }, + "payload":"Body" + }, + "GetObjectRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Key" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "IfMatch":{ + "shape":"IfMatch", + "location":"header", + "locationName":"If-Match" + }, + "IfModifiedSince":{ + "shape":"IfModifiedSince", + "location":"header", + "locationName":"If-Modified-Since" + }, + "IfNoneMatch":{ + "shape":"IfNoneMatch", + "location":"header", + "locationName":"If-None-Match" + }, + "IfUnmodifiedSince":{ + "shape":"IfUnmodifiedSince", + "location":"header", + "locationName":"If-Unmodified-Since" + }, + "Key":{ + "shape":"ObjectKey", + "location":"uri", + "locationName":"Key" + }, + "Range":{ + "shape":"Range", + "location":"header", + "locationName":"Range" + }, + "ResponseCacheControl":{ + "shape":"ResponseCacheControl", + "location":"querystring", + "locationName":"response-cache-control" + }, + "ResponseContentDisposition":{ + "shape":"ResponseContentDisposition", + "location":"querystring", + "locationName":"response-content-disposition" + }, + "ResponseContentEncoding":{ + "shape":"ResponseContentEncoding", + "location":"querystring", + "locationName":"response-content-encoding" + }, + "ResponseContentLanguage":{ + "shape":"ResponseContentLanguage", + "location":"querystring", + "locationName":"response-content-language" + }, + "ResponseContentType":{ + "shape":"ResponseContentType", + "location":"querystring", + "locationName":"response-content-type" + }, + "ResponseExpires":{ + "shape":"ResponseExpires", + "location":"querystring", + "locationName":"response-expires" + }, + "VersionId":{ + "shape":"ObjectVersionId", + "location":"querystring", + "locationName":"versionId" + }, + "SSECustomerAlgorithm":{ + "shape":"SSECustomerAlgorithm", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKey":{ + "shape":"SSECustomerKey", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-key" + }, + "SSECustomerKeyMD5":{ + "shape":"SSECustomerKeyMD5", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-key-MD5" + }, + "RequestPayer":{ + "shape":"RequestPayer", + "location":"header", + "locationName":"x-amz-request-payer" + } + } + }, + "GetObjectTorrentOutput":{ + "type":"structure", + "members":{ + "Body":{ + "shape":"Body", + "streaming":true + }, + "RequestCharged":{ + "shape":"RequestCharged", + "location":"header", + "locationName":"x-amz-request-charged" + } + }, + "payload":"Body" + }, + "GetObjectTorrentRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Key" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "Key":{ + "shape":"ObjectKey", + "location":"uri", + "locationName":"Key" + }, + "RequestPayer":{ + "shape":"RequestPayer", + "location":"header", + "locationName":"x-amz-request-payer" + } + } + }, + "Grant":{ + "type":"structure", + "members":{ + "Grantee":{"shape":"Grantee"}, + "Permission":{"shape":"Permission"} + } + }, + "GrantFullControl":{"type":"string"}, + "GrantRead":{"type":"string"}, + "GrantReadACP":{"type":"string"}, + "GrantWrite":{"type":"string"}, + "GrantWriteACP":{"type":"string"}, + "Grantee":{ + "type":"structure", + "required":["Type"], + "members":{ + "DisplayName":{"shape":"DisplayName"}, + "EmailAddress":{"shape":"EmailAddress"}, + "ID":{"shape":"ID"}, + "Type":{ + "shape":"Type", + "xmlAttribute":true, + "locationName":"xsi:type" + }, + "URI":{"shape":"URI"} + }, + "xmlNamespace":{ + "prefix":"xsi", + "uri":"http://www.w3.org/2001/XMLSchema-instance" + } + }, + "Grants":{ + "type":"list", + "member":{ + "shape":"Grant", + "locationName":"Grant" + } + }, + "HeadBucketRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + } + } + }, + "HeadObjectOutput":{ + "type":"structure", + "members":{ + "DeleteMarker":{ + "shape":"DeleteMarker", + "location":"header", + "locationName":"x-amz-delete-marker" + }, + "AcceptRanges":{ + "shape":"AcceptRanges", + "location":"header", + "locationName":"accept-ranges" + }, + "Expiration":{ + "shape":"Expiration", + "location":"header", + "locationName":"x-amz-expiration" + }, + "Restore":{ + "shape":"Restore", + "location":"header", + "locationName":"x-amz-restore" + }, + "LastModified":{ + "shape":"LastModified", + "location":"header", + "locationName":"Last-Modified" + }, + "ContentLength":{ + "shape":"ContentLength", + "location":"header", + "locationName":"Content-Length" + }, + "ETag":{ + "shape":"ETag", + "location":"header", + "locationName":"ETag" + }, + "MissingMeta":{ + "shape":"MissingMeta", + "location":"header", + "locationName":"x-amz-missing-meta" + }, + "VersionId":{ + "shape":"ObjectVersionId", + "location":"header", + "locationName":"x-amz-version-id" + }, + "CacheControl":{ + "shape":"CacheControl", + "location":"header", + "locationName":"Cache-Control" + }, + "ContentDisposition":{ + "shape":"ContentDisposition", + "location":"header", + "locationName":"Content-Disposition" + }, + "ContentEncoding":{ + "shape":"ContentEncoding", + "location":"header", + "locationName":"Content-Encoding" + }, + "ContentLanguage":{ + "shape":"ContentLanguage", + "location":"header", + "locationName":"Content-Language" + }, + "ContentType":{ + "shape":"ContentType", + "location":"header", + "locationName":"Content-Type" + }, + "Expires":{ + "shape":"Expires", + "location":"header", + "locationName":"Expires" + }, + "WebsiteRedirectLocation":{ + "shape":"WebsiteRedirectLocation", + "location":"header", + "locationName":"x-amz-website-redirect-location" + }, + "ServerSideEncryption":{ + "shape":"ServerSideEncryption", + "location":"header", + "locationName":"x-amz-server-side-encryption" + }, + "Metadata":{ + "shape":"Metadata", + "location":"headers", + "locationName":"x-amz-meta-" + }, + "SSECustomerAlgorithm":{ + "shape":"SSECustomerAlgorithm", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKeyMD5":{ + "shape":"SSECustomerKeyMD5", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-key-MD5" + }, + "SSEKMSKeyId":{ + "shape":"SSEKMSKeyId", + "location":"header", + "locationName":"x-amz-server-side-encryption-aws-kms-key-id" + }, + "RequestCharged":{ + "shape":"RequestCharged", + "location":"header", + "locationName":"x-amz-request-charged" + }, + "ReplicationStatus":{ + "shape":"ReplicationStatus", + "location":"header", + "locationName":"x-amz-replication-status" + } + } + }, + "HeadObjectRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Key" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "IfMatch":{ + "shape":"IfMatch", + "location":"header", + "locationName":"If-Match" + }, + "IfModifiedSince":{ + "shape":"IfModifiedSince", + "location":"header", + "locationName":"If-Modified-Since" + }, + "IfNoneMatch":{ + "shape":"IfNoneMatch", + "location":"header", + "locationName":"If-None-Match" + }, + "IfUnmodifiedSince":{ + "shape":"IfUnmodifiedSince", + "location":"header", + "locationName":"If-Unmodified-Since" + }, + "Key":{ + "shape":"ObjectKey", + "location":"uri", + "locationName":"Key" + }, + "Range":{ + "shape":"Range", + "location":"header", + "locationName":"Range" + }, + "VersionId":{ + "shape":"ObjectVersionId", + "location":"querystring", + "locationName":"versionId" + }, + "SSECustomerAlgorithm":{ + "shape":"SSECustomerAlgorithm", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKey":{ + "shape":"SSECustomerKey", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-key" + }, + "SSECustomerKeyMD5":{ + "shape":"SSECustomerKeyMD5", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-key-MD5" + }, + "RequestPayer":{ + "shape":"RequestPayer", + "location":"header", + "locationName":"x-amz-request-payer" + } + } + }, + "HostName":{"type":"string"}, + "HttpErrorCodeReturnedEquals":{"type":"string"}, + "HttpRedirectCode":{"type":"string"}, + "ID":{"type":"string"}, + "IfMatch":{"type":"string"}, + "IfModifiedSince":{"type":"timestamp"}, + "IfNoneMatch":{"type":"string"}, + "IfUnmodifiedSince":{"type":"timestamp"}, + "IndexDocument":{ + "type":"structure", + "required":["Suffix"], + "members":{ + "Suffix":{"shape":"Suffix"} + } + }, + "Initiated":{"type":"timestamp"}, + "Initiator":{ + "type":"structure", + "members":{ + "ID":{"shape":"ID"}, + "DisplayName":{"shape":"DisplayName"} + } + }, + "IsLatest":{"type":"boolean"}, + "IsTruncated":{"type":"boolean"}, + "KeyMarker":{"type":"string"}, + "KeyPrefixEquals":{"type":"string"}, + "LambdaFunctionArn":{"type":"string"}, + "LambdaFunctionConfiguration":{ + "type":"structure", + "required":[ + "LambdaFunctionArn", + "Events" + ], + "members":{ + "Id":{"shape":"NotificationId"}, + "LambdaFunctionArn":{ + "shape":"LambdaFunctionArn", + "locationName":"CloudFunction" + }, + "Events":{ + "shape":"EventList", + "locationName":"Event" + } + } + }, + "LambdaFunctionConfigurationList":{ + "type":"list", + "member":{"shape":"LambdaFunctionConfiguration"}, + "flattened":true + }, + "LastModified":{"type":"timestamp"}, + "LifecycleConfiguration":{ + "type":"structure", + "required":["Rules"], + "members":{ + "Rules":{ + "shape":"Rules", + "locationName":"Rule" + } + } + }, + "LifecycleExpiration":{ + "type":"structure", + "members":{ + "Date":{"shape":"Date"}, + "Days":{"shape":"Days"} + } + }, + "ListBucketsOutput":{ + "type":"structure", + "members":{ + "Buckets":{"shape":"Buckets"}, + "Owner":{"shape":"Owner"} + } + }, + "ListMultipartUploadsOutput":{ + "type":"structure", + "members":{ + "Bucket":{"shape":"BucketName"}, + "KeyMarker":{"shape":"KeyMarker"}, + "UploadIdMarker":{"shape":"UploadIdMarker"}, + "NextKeyMarker":{"shape":"NextKeyMarker"}, + "Prefix":{"shape":"Prefix"}, + "Delimiter":{"shape":"Delimiter"}, + "NextUploadIdMarker":{"shape":"NextUploadIdMarker"}, + "MaxUploads":{"shape":"MaxUploads"}, + "IsTruncated":{"shape":"IsTruncated"}, + "Uploads":{ + "shape":"MultipartUploadList", + "locationName":"Upload" + }, + "CommonPrefixes":{"shape":"CommonPrefixList"}, + "EncodingType":{"shape":"EncodingType"} + } + }, + "ListMultipartUploadsRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "Delimiter":{ + "shape":"Delimiter", + "location":"querystring", + "locationName":"delimiter" + }, + "EncodingType":{ + "shape":"EncodingType", + "location":"querystring", + "locationName":"encoding-type" + }, + "KeyMarker":{ + "shape":"KeyMarker", + "location":"querystring", + "locationName":"key-marker" + }, + "MaxUploads":{ + "shape":"MaxUploads", + "location":"querystring", + "locationName":"max-uploads" + }, + "Prefix":{ + "shape":"Prefix", + "location":"querystring", + "locationName":"prefix" + }, + "UploadIdMarker":{ + "shape":"UploadIdMarker", + "location":"querystring", + "locationName":"upload-id-marker" + } + } + }, + "ListObjectVersionsOutput":{ + "type":"structure", + "members":{ + "IsTruncated":{"shape":"IsTruncated"}, + "KeyMarker":{"shape":"KeyMarker"}, + "VersionIdMarker":{"shape":"VersionIdMarker"}, + "NextKeyMarker":{"shape":"NextKeyMarker"}, + "NextVersionIdMarker":{"shape":"NextVersionIdMarker"}, + "Versions":{ + "shape":"ObjectVersionList", + "locationName":"Version" + }, + "DeleteMarkers":{ + "shape":"DeleteMarkers", + "locationName":"DeleteMarker" + }, + "Name":{"shape":"BucketName"}, + "Prefix":{"shape":"Prefix"}, + "Delimiter":{"shape":"Delimiter"}, + "MaxKeys":{"shape":"MaxKeys"}, + "CommonPrefixes":{"shape":"CommonPrefixList"}, + "EncodingType":{"shape":"EncodingType"} + } + }, + "ListObjectVersionsRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "Delimiter":{ + "shape":"Delimiter", + "location":"querystring", + "locationName":"delimiter" + }, + "EncodingType":{ + "shape":"EncodingType", + "location":"querystring", + "locationName":"encoding-type" + }, + "KeyMarker":{ + "shape":"KeyMarker", + "location":"querystring", + "locationName":"key-marker" + }, + "MaxKeys":{ + "shape":"MaxKeys", + "location":"querystring", + "locationName":"max-keys" + }, + "Prefix":{ + "shape":"Prefix", + "location":"querystring", + "locationName":"prefix" + }, + "VersionIdMarker":{ + "shape":"VersionIdMarker", + "location":"querystring", + "locationName":"version-id-marker" + } + } + }, + "ListObjectsOutput":{ + "type":"structure", + "members":{ + "IsTruncated":{"shape":"IsTruncated"}, + "Marker":{"shape":"Marker"}, + "NextMarker":{"shape":"NextMarker"}, + "Contents":{"shape":"ObjectList"}, + "Name":{"shape":"BucketName"}, + "Prefix":{"shape":"Prefix"}, + "Delimiter":{"shape":"Delimiter"}, + "MaxKeys":{"shape":"MaxKeys"}, + "CommonPrefixes":{"shape":"CommonPrefixList"}, + "EncodingType":{"shape":"EncodingType"} + } + }, + "ListObjectsRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "Delimiter":{ + "shape":"Delimiter", + "location":"querystring", + "locationName":"delimiter" + }, + "EncodingType":{ + "shape":"EncodingType", + "location":"querystring", + "locationName":"encoding-type" + }, + "Marker":{ + "shape":"Marker", + "location":"querystring", + "locationName":"marker" + }, + "MaxKeys":{ + "shape":"MaxKeys", + "location":"querystring", + "locationName":"max-keys" + }, + "Prefix":{ + "shape":"Prefix", + "location":"querystring", + "locationName":"prefix" + } + } + }, + "ListPartsOutput":{ + "type":"structure", + "members":{ + "Bucket":{"shape":"BucketName"}, + "Key":{"shape":"ObjectKey"}, + "UploadId":{"shape":"MultipartUploadId"}, + "PartNumberMarker":{"shape":"PartNumberMarker"}, + "NextPartNumberMarker":{"shape":"NextPartNumberMarker"}, + "MaxParts":{"shape":"MaxParts"}, + "IsTruncated":{"shape":"IsTruncated"}, + "Parts":{ + "shape":"Parts", + "locationName":"Part" + }, + "Initiator":{"shape":"Initiator"}, + "Owner":{"shape":"Owner"}, + "StorageClass":{"shape":"StorageClass"}, + "RequestCharged":{ + "shape":"RequestCharged", + "location":"header", + "locationName":"x-amz-request-charged" + } + } + }, + "ListPartsRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Key", + "UploadId" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "Key":{ + "shape":"ObjectKey", + "location":"uri", + "locationName":"Key" + }, + "MaxParts":{ + "shape":"MaxParts", + "location":"querystring", + "locationName":"max-parts" + }, + "PartNumberMarker":{ + "shape":"PartNumberMarker", + "location":"querystring", + "locationName":"part-number-marker" + }, + "UploadId":{ + "shape":"MultipartUploadId", + "location":"querystring", + "locationName":"uploadId" + }, + "RequestPayer":{ + "shape":"RequestPayer", + "location":"header", + "locationName":"x-amz-request-payer" + } + } + }, + "Location":{"type":"string"}, + "LoggingEnabled":{ + "type":"structure", + "members":{ + "TargetBucket":{"shape":"TargetBucket"}, + "TargetGrants":{"shape":"TargetGrants"}, + "TargetPrefix":{"shape":"TargetPrefix"} + } + }, + "MFA":{"type":"string"}, + "MFADelete":{ + "type":"string", + "enum":[ + "Enabled", + "Disabled" + ] + }, + "MFADeleteStatus":{ + "type":"string", + "enum":[ + "Enabled", + "Disabled" + ] + }, + "Marker":{"type":"string"}, + "MaxAgeSeconds":{"type":"integer"}, + "MaxKeys":{"type":"integer"}, + "MaxParts":{"type":"integer"}, + "MaxUploads":{"type":"integer"}, + "Message":{"type":"string"}, + "Metadata":{ + "type":"map", + "key":{"shape":"MetadataKey"}, + "value":{"shape":"MetadataValue"} + }, + "MetadataDirective":{ + "type":"string", + "enum":[ + "COPY", + "REPLACE" + ] + }, + "MetadataKey":{"type":"string"}, + "MetadataValue":{"type":"string"}, + "MissingMeta":{"type":"integer"}, + "MultipartUpload":{ + "type":"structure", + "members":{ + "UploadId":{"shape":"MultipartUploadId"}, + "Key":{"shape":"ObjectKey"}, + "Initiated":{"shape":"Initiated"}, + "StorageClass":{"shape":"StorageClass"}, + "Owner":{"shape":"Owner"}, + "Initiator":{"shape":"Initiator"} + } + }, + "MultipartUploadId":{"type":"string"}, + "MultipartUploadList":{ + "type":"list", + "member":{"shape":"MultipartUpload"}, + "flattened":true + }, + "NextKeyMarker":{"type":"string"}, + "NextMarker":{"type":"string"}, + "NextPartNumberMarker":{"type":"integer"}, + "NextUploadIdMarker":{"type":"string"}, + "NextVersionIdMarker":{"type":"string"}, + "NoSuchBucket":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "NoSuchKey":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "NoSuchUpload":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "NoncurrentVersionExpiration":{ + "type":"structure", + "members":{ + "NoncurrentDays":{"shape":"Days"} + } + }, + "NoncurrentVersionTransition":{ + "type":"structure", + "members":{ + "NoncurrentDays":{"shape":"Days"}, + "StorageClass":{"shape":"TransitionStorageClass"} + } + }, + "NotificationConfiguration":{ + "type":"structure", + "members":{ + "TopicConfigurations":{ + "shape":"TopicConfigurationList", + "locationName":"TopicConfiguration" + }, + "QueueConfigurations":{ + "shape":"QueueConfigurationList", + "locationName":"QueueConfiguration" + }, + "LambdaFunctionConfigurations":{ + "shape":"LambdaFunctionConfigurationList", + "locationName":"CloudFunctionConfiguration" + } + } + }, + "NotificationConfigurationDeprecated":{ + "type":"structure", + "members":{ + "TopicConfiguration":{"shape":"TopicConfigurationDeprecated"}, + "QueueConfiguration":{"shape":"QueueConfigurationDeprecated"}, + "CloudFunctionConfiguration":{"shape":"CloudFunctionConfiguration"} + } + }, + "NotificationId":{"type":"string"}, + "Object":{ + "type":"structure", + "members":{ + "Key":{"shape":"ObjectKey"}, + "LastModified":{"shape":"LastModified"}, + "ETag":{"shape":"ETag"}, + "Size":{"shape":"Size"}, + "StorageClass":{"shape":"ObjectStorageClass"}, + "Owner":{"shape":"Owner"} + } + }, + "ObjectAlreadyInActiveTierError":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "ObjectCannedACL":{ + "type":"string", + "enum":[ + "private", + "public-read", + "public-read-write", + "authenticated-read", + "bucket-owner-read", + "bucket-owner-full-control" + ] + }, + "ObjectIdentifier":{ + "type":"structure", + "required":["Key"], + "members":{ + "Key":{"shape":"ObjectKey"}, + "VersionId":{"shape":"ObjectVersionId"} + } + }, + "ObjectIdentifierList":{ + "type":"list", + "member":{"shape":"ObjectIdentifier"}, + "flattened":true + }, + "ObjectKey":{"type":"string"}, + "ObjectList":{ + "type":"list", + "member":{"shape":"Object"}, + "flattened":true + }, + "ObjectNotInActiveTierError":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "ObjectStorageClass":{ + "type":"string", + "enum":[ + "STANDARD", + "REDUCED_REDUNDANCY", + "GLACIER" + ] + }, + "ObjectVersion":{ + "type":"structure", + "members":{ + "ETag":{"shape":"ETag"}, + "Size":{"shape":"Size"}, + "StorageClass":{"shape":"ObjectVersionStorageClass"}, + "Key":{"shape":"ObjectKey"}, + "VersionId":{"shape":"ObjectVersionId"}, + "IsLatest":{"shape":"IsLatest"}, + "LastModified":{"shape":"LastModified"}, + "Owner":{"shape":"Owner"} + } + }, + "ObjectVersionId":{"type":"string"}, + "ObjectVersionList":{ + "type":"list", + "member":{"shape":"ObjectVersion"}, + "flattened":true + }, + "ObjectVersionStorageClass":{ + "type":"string", + "enum":["STANDARD"] + }, + "Owner":{ + "type":"structure", + "members":{ + "DisplayName":{"shape":"DisplayName"}, + "ID":{"shape":"ID"} + } + }, + "Part":{ + "type":"structure", + "members":{ + "PartNumber":{"shape":"PartNumber"}, + "LastModified":{"shape":"LastModified"}, + "ETag":{"shape":"ETag"}, + "Size":{"shape":"Size"} + } + }, + "PartNumber":{"type":"integer"}, + "PartNumberMarker":{"type":"integer"}, + "Parts":{ + "type":"list", + "member":{"shape":"Part"}, + "flattened":true + }, + "Payer":{ + "type":"string", + "enum":[ + "Requester", + "BucketOwner" + ] + }, + "Permission":{ + "type":"string", + "enum":[ + "FULL_CONTROL", + "WRITE", + "WRITE_ACP", + "READ", + "READ_ACP" + ] + }, + "Policy":{"type":"string"}, + "Prefix":{"type":"string"}, + "Protocol":{ + "type":"string", + "enum":[ + "http", + "https" + ] + }, + "PutBucketAclRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "ACL":{ + "shape":"BucketCannedACL", + "location":"header", + "locationName":"x-amz-acl" + }, + "AccessControlPolicy":{ + "shape":"AccessControlPolicy", + "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}, + "locationName":"AccessControlPolicy" + }, + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "ContentMD5":{ + "shape":"ContentMD5", + "location":"header", + "locationName":"Content-MD5" + }, + "GrantFullControl":{ + "shape":"GrantFullControl", + "location":"header", + "locationName":"x-amz-grant-full-control" + }, + "GrantRead":{ + "shape":"GrantRead", + "location":"header", + "locationName":"x-amz-grant-read" + }, + "GrantReadACP":{ + "shape":"GrantReadACP", + "location":"header", + "locationName":"x-amz-grant-read-acp" + }, + "GrantWrite":{ + "shape":"GrantWrite", + "location":"header", + "locationName":"x-amz-grant-write" + }, + "GrantWriteACP":{ + "shape":"GrantWriteACP", + "location":"header", + "locationName":"x-amz-grant-write-acp" + } + }, + "payload":"AccessControlPolicy" + }, + "PutBucketCorsRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "CORSConfiguration":{ + "shape":"CORSConfiguration", + "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}, + "locationName":"CORSConfiguration" + }, + "ContentMD5":{ + "shape":"ContentMD5", + "location":"header", + "locationName":"Content-MD5" + } + }, + "payload":"CORSConfiguration" + }, + "PutBucketLifecycleRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "ContentMD5":{ + "shape":"ContentMD5", + "location":"header", + "locationName":"Content-MD5" + }, + "LifecycleConfiguration":{ + "shape":"LifecycleConfiguration", + "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}, + "locationName":"LifecycleConfiguration" + } + }, + "payload":"LifecycleConfiguration" + }, + "PutBucketLoggingRequest":{ + "type":"structure", + "required":[ + "Bucket", + "BucketLoggingStatus" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "BucketLoggingStatus":{ + "shape":"BucketLoggingStatus", + "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}, + "locationName":"BucketLoggingStatus" + }, + "ContentMD5":{ + "shape":"ContentMD5", + "location":"header", + "locationName":"Content-MD5" + } + }, + "payload":"BucketLoggingStatus" + }, + "PutBucketNotificationConfigurationRequest":{ + "type":"structure", + "required":[ + "Bucket", + "NotificationConfiguration" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "NotificationConfiguration":{ + "shape":"NotificationConfiguration", + "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}, + "locationName":"NotificationConfiguration" + } + }, + "payload":"NotificationConfiguration" + }, + "PutBucketNotificationRequest":{ + "type":"structure", + "required":[ + "Bucket", + "NotificationConfiguration" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "ContentMD5":{ + "shape":"ContentMD5", + "location":"header", + "locationName":"Content-MD5" + }, + "NotificationConfiguration":{ + "shape":"NotificationConfigurationDeprecated", + "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}, + "locationName":"NotificationConfiguration" + } + }, + "payload":"NotificationConfiguration" + }, + "PutBucketPolicyRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Policy" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "ContentMD5":{ + "shape":"ContentMD5", + "location":"header", + "locationName":"Content-MD5" + }, + "Policy":{"shape":"Policy"} + }, + "payload":"Policy" + }, + "PutBucketReplicationRequest":{ + "type":"structure", + "required":[ + "Bucket", + "ReplicationConfiguration" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "ContentMD5":{ + "shape":"ContentMD5", + "location":"header", + "locationName":"Content-MD5" + }, + "ReplicationConfiguration":{ + "shape":"ReplicationConfiguration", + "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}, + "locationName":"ReplicationConfiguration" + } + }, + "payload":"ReplicationConfiguration" + }, + "PutBucketRequestPaymentRequest":{ + "type":"structure", + "required":[ + "Bucket", + "RequestPaymentConfiguration" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "ContentMD5":{ + "shape":"ContentMD5", + "location":"header", + "locationName":"Content-MD5" + }, + "RequestPaymentConfiguration":{ + "shape":"RequestPaymentConfiguration", + "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}, + "locationName":"RequestPaymentConfiguration" + } + }, + "payload":"RequestPaymentConfiguration" + }, + "PutBucketTaggingRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Tagging" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "ContentMD5":{ + "shape":"ContentMD5", + "location":"header", + "locationName":"Content-MD5" + }, + "Tagging":{ + "shape":"Tagging", + "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}, + "locationName":"Tagging" + } + }, + "payload":"Tagging" + }, + "PutBucketVersioningRequest":{ + "type":"structure", + "required":[ + "Bucket", + "VersioningConfiguration" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "ContentMD5":{ + "shape":"ContentMD5", + "location":"header", + "locationName":"Content-MD5" + }, + "MFA":{ + "shape":"MFA", + "location":"header", + "locationName":"x-amz-mfa" + }, + "VersioningConfiguration":{ + "shape":"VersioningConfiguration", + "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}, + "locationName":"VersioningConfiguration" + } + }, + "payload":"VersioningConfiguration" + }, + "PutBucketWebsiteRequest":{ + "type":"structure", + "required":[ + "Bucket", + "WebsiteConfiguration" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "ContentMD5":{ + "shape":"ContentMD5", + "location":"header", + "locationName":"Content-MD5" + }, + "WebsiteConfiguration":{ + "shape":"WebsiteConfiguration", + "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}, + "locationName":"WebsiteConfiguration" + } + }, + "payload":"WebsiteConfiguration" + }, + "PutObjectAclOutput":{ + "type":"structure", + "members":{ + "RequestCharged":{ + "shape":"RequestCharged", + "location":"header", + "locationName":"x-amz-request-charged" + } + } + }, + "PutObjectAclRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Key" + ], + "members":{ + "ACL":{ + "shape":"ObjectCannedACL", + "location":"header", + "locationName":"x-amz-acl" + }, + "AccessControlPolicy":{ + "shape":"AccessControlPolicy", + "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}, + "locationName":"AccessControlPolicy" + }, + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "ContentMD5":{ + "shape":"ContentMD5", + "location":"header", + "locationName":"Content-MD5" + }, + "GrantFullControl":{ + "shape":"GrantFullControl", + "location":"header", + "locationName":"x-amz-grant-full-control" + }, + "GrantRead":{ + "shape":"GrantRead", + "location":"header", + "locationName":"x-amz-grant-read" + }, + "GrantReadACP":{ + "shape":"GrantReadACP", + "location":"header", + "locationName":"x-amz-grant-read-acp" + }, + "GrantWrite":{ + "shape":"GrantWrite", + "location":"header", + "locationName":"x-amz-grant-write" + }, + "GrantWriteACP":{ + "shape":"GrantWriteACP", + "location":"header", + "locationName":"x-amz-grant-write-acp" + }, + "Key":{ + "shape":"ObjectKey", + "location":"uri", + "locationName":"Key" + }, + "RequestPayer":{ + "shape":"RequestPayer", + "location":"header", + "locationName":"x-amz-request-payer" + } + }, + "payload":"AccessControlPolicy" + }, + "PutObjectOutput":{ + "type":"structure", + "members":{ + "Expiration":{ + "shape":"Expiration", + "location":"header", + "locationName":"x-amz-expiration" + }, + "ETag":{ + "shape":"ETag", + "location":"header", + "locationName":"ETag" + }, + "ServerSideEncryption":{ + "shape":"ServerSideEncryption", + "location":"header", + "locationName":"x-amz-server-side-encryption" + }, + "VersionId":{ + "shape":"ObjectVersionId", + "location":"header", + "locationName":"x-amz-version-id" + }, + "SSECustomerAlgorithm":{ + "shape":"SSECustomerAlgorithm", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKeyMD5":{ + "shape":"SSECustomerKeyMD5", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-key-MD5" + }, + "SSEKMSKeyId":{ + "shape":"SSEKMSKeyId", + "location":"header", + "locationName":"x-amz-server-side-encryption-aws-kms-key-id" + }, + "RequestCharged":{ + "shape":"RequestCharged", + "location":"header", + "locationName":"x-amz-request-charged" + } + } + }, + "PutObjectRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Key" + ], + "members":{ + "ACL":{ + "shape":"ObjectCannedACL", + "location":"header", + "locationName":"x-amz-acl" + }, + "Body":{ + "shape":"Body", + "streaming":true + }, + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "CacheControl":{ + "shape":"CacheControl", + "location":"header", + "locationName":"Cache-Control" + }, + "ContentDisposition":{ + "shape":"ContentDisposition", + "location":"header", + "locationName":"Content-Disposition" + }, + "ContentEncoding":{ + "shape":"ContentEncoding", + "location":"header", + "locationName":"Content-Encoding" + }, + "ContentLanguage":{ + "shape":"ContentLanguage", + "location":"header", + "locationName":"Content-Language" + }, + "ContentLength":{ + "shape":"ContentLength", + "location":"header", + "locationName":"Content-Length" + }, + "ContentMD5":{ + "shape":"ContentMD5", + "location":"header", + "locationName":"Content-MD5" + }, + "ContentType":{ + "shape":"ContentType", + "location":"header", + "locationName":"Content-Type" + }, + "Expires":{ + "shape":"Expires", + "location":"header", + "locationName":"Expires" + }, + "GrantFullControl":{ + "shape":"GrantFullControl", + "location":"header", + "locationName":"x-amz-grant-full-control" + }, + "GrantRead":{ + "shape":"GrantRead", + "location":"header", + "locationName":"x-amz-grant-read" + }, + "GrantReadACP":{ + "shape":"GrantReadACP", + "location":"header", + "locationName":"x-amz-grant-read-acp" + }, + "GrantWriteACP":{ + "shape":"GrantWriteACP", + "location":"header", + "locationName":"x-amz-grant-write-acp" + }, + "Key":{ + "shape":"ObjectKey", + "location":"uri", + "locationName":"Key" + }, + "Metadata":{ + "shape":"Metadata", + "location":"headers", + "locationName":"x-amz-meta-" + }, + "ServerSideEncryption":{ + "shape":"ServerSideEncryption", + "location":"header", + "locationName":"x-amz-server-side-encryption" + }, + "StorageClass":{ + "shape":"StorageClass", + "location":"header", + "locationName":"x-amz-storage-class" + }, + "WebsiteRedirectLocation":{ + "shape":"WebsiteRedirectLocation", + "location":"header", + "locationName":"x-amz-website-redirect-location" + }, + "SSECustomerAlgorithm":{ + "shape":"SSECustomerAlgorithm", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKey":{ + "shape":"SSECustomerKey", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-key" + }, + "SSECustomerKeyMD5":{ + "shape":"SSECustomerKeyMD5", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-key-MD5" + }, + "SSEKMSKeyId":{ + "shape":"SSEKMSKeyId", + "location":"header", + "locationName":"x-amz-server-side-encryption-aws-kms-key-id" + }, + "RequestPayer":{ + "shape":"RequestPayer", + "location":"header", + "locationName":"x-amz-request-payer" + } + }, + "payload":"Body" + }, + "QueueArn":{"type":"string"}, + "QueueConfiguration":{ + "type":"structure", + "required":[ + "QueueArn", + "Events" + ], + "members":{ + "Id":{"shape":"NotificationId"}, + "QueueArn":{ + "shape":"QueueArn", + "locationName":"Queue" + }, + "Events":{ + "shape":"EventList", + "locationName":"Event" + } + } + }, + "QueueConfigurationDeprecated":{ + "type":"structure", + "members":{ + "Id":{"shape":"NotificationId"}, + "Event":{ + "shape":"Event", + "deprecated":true + }, + "Events":{ + "shape":"EventList", + "locationName":"Event" + }, + "Queue":{"shape":"QueueArn"} + } + }, + "QueueConfigurationList":{ + "type":"list", + "member":{"shape":"QueueConfiguration"}, + "flattened":true + }, + "Quiet":{"type":"boolean"}, + "Range":{"type":"string"}, + "Redirect":{ + "type":"structure", + "members":{ + "HostName":{"shape":"HostName"}, + "HttpRedirectCode":{"shape":"HttpRedirectCode"}, + "Protocol":{"shape":"Protocol"}, + "ReplaceKeyPrefixWith":{"shape":"ReplaceKeyPrefixWith"}, + "ReplaceKeyWith":{"shape":"ReplaceKeyWith"} + } + }, + "RedirectAllRequestsTo":{ + "type":"structure", + "required":["HostName"], + "members":{ + "HostName":{"shape":"HostName"}, + "Protocol":{"shape":"Protocol"} + } + }, + "ReplaceKeyPrefixWith":{"type":"string"}, + "ReplaceKeyWith":{"type":"string"}, + "ReplicationConfiguration":{ + "type":"structure", + "required":[ + "Role", + "Rules" + ], + "members":{ + "Role":{"shape":"Role"}, + "Rules":{ + "shape":"ReplicationRules", + "locationName":"Rule" + } + } + }, + "ReplicationRule":{ + "type":"structure", + "required":[ + "Prefix", + "Status", + "Destination" + ], + "members":{ + "ID":{"shape":"ID"}, + "Prefix":{"shape":"Prefix"}, + "Status":{"shape":"ReplicationRuleStatus"}, + "Destination":{"shape":"Destination"} + } + }, + "ReplicationRuleStatus":{ + "type":"string", + "enum":[ + "Enabled", + "Disabled" + ] + }, + "ReplicationRules":{ + "type":"list", + "member":{"shape":"ReplicationRule"}, + "flattened":true + }, + "ReplicationStatus":{ + "type":"string", + "enum":[ + "COMPLETE", + "PENDING", + "FAILED", + "REPLICA" + ] + }, + "RequestCharged":{ + "type":"string", + "enum":["requester"] + }, + "RequestPayer":{ + "type":"string", + "enum":["requester"] + }, + "RequestPaymentConfiguration":{ + "type":"structure", + "required":["Payer"], + "members":{ + "Payer":{"shape":"Payer"} + } + }, + "ResponseCacheControl":{"type":"string"}, + "ResponseContentDisposition":{"type":"string"}, + "ResponseContentEncoding":{"type":"string"}, + "ResponseContentLanguage":{"type":"string"}, + "ResponseContentType":{"type":"string"}, + "ResponseExpires":{"type":"timestamp"}, + "Restore":{"type":"string"}, + "RestoreObjectOutput":{ + "type":"structure", + "members":{ + "RequestCharged":{ + "shape":"RequestCharged", + "location":"header", + "locationName":"x-amz-request-charged" + } + } + }, + "RestoreObjectRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Key" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "Key":{ + "shape":"ObjectKey", + "location":"uri", + "locationName":"Key" + }, + "VersionId":{ + "shape":"ObjectVersionId", + "location":"querystring", + "locationName":"versionId" + }, + "RestoreRequest":{ + "shape":"RestoreRequest", + "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}, + "locationName":"RestoreRequest" + }, + "RequestPayer":{ + "shape":"RequestPayer", + "location":"header", + "locationName":"x-amz-request-payer" + } + }, + "payload":"RestoreRequest" + }, + "RestoreRequest":{ + "type":"structure", + "required":["Days"], + "members":{ + "Days":{"shape":"Days"} + } + }, + "Role":{"type":"string"}, + "RoutingRule":{ + "type":"structure", + "required":["Redirect"], + "members":{ + "Condition":{"shape":"Condition"}, + "Redirect":{"shape":"Redirect"} + } + }, + "RoutingRules":{ + "type":"list", + "member":{ + "shape":"RoutingRule", + "locationName":"RoutingRule" + } + }, + "Rule":{ + "type":"structure", + "required":[ + "Prefix", + "Status" + ], + "members":{ + "Expiration":{"shape":"LifecycleExpiration"}, + "ID":{"shape":"ID"}, + "Prefix":{"shape":"Prefix"}, + "Status":{"shape":"ExpirationStatus"}, + "Transition":{"shape":"Transition"}, + "NoncurrentVersionTransition":{"shape":"NoncurrentVersionTransition"}, + "NoncurrentVersionExpiration":{"shape":"NoncurrentVersionExpiration"} + } + }, + "Rules":{ + "type":"list", + "member":{"shape":"Rule"}, + "flattened":true + }, + "SSECustomerAlgorithm":{"type":"string"}, + "SSECustomerKey":{ + "type":"string", + "sensitive":true + }, + "SSECustomerKeyMD5":{"type":"string"}, + "SSEKMSKeyId":{ + "type":"string", + "sensitive":true + }, + "ServerSideEncryption":{ + "type":"string", + "enum":["AES256"] + }, + "Size":{"type":"integer"}, + "StorageClass":{ + "type":"string", + "enum":[ + "STANDARD", + "REDUCED_REDUNDANCY" + ] + }, + "Suffix":{"type":"string"}, + "Tag":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{"shape":"ObjectKey"}, + "Value":{"shape":"Value"} + } + }, + "TagSet":{ + "type":"list", + "member":{ + "shape":"Tag", + "locationName":"Tag" + } + }, + "Tagging":{ + "type":"structure", + "required":["TagSet"], + "members":{ + "TagSet":{"shape":"TagSet"} + } + }, + "TargetBucket":{"type":"string"}, + "TargetGrant":{ + "type":"structure", + "members":{ + "Grantee":{"shape":"Grantee"}, + "Permission":{"shape":"BucketLogsPermission"} + } + }, + "TargetGrants":{ + "type":"list", + "member":{ + "shape":"TargetGrant", + "locationName":"Grant" + } + }, + "TargetPrefix":{"type":"string"}, + "TopicArn":{"type":"string"}, + "TopicConfiguration":{ + "type":"structure", + "required":[ + "TopicArn", + "Events" + ], + "members":{ + "Id":{"shape":"NotificationId"}, + "TopicArn":{ + "shape":"TopicArn", + "locationName":"Topic" + }, + "Events":{ + "shape":"EventList", + "locationName":"Event" + } + } + }, + "TopicConfigurationDeprecated":{ + "type":"structure", + "members":{ + "Id":{"shape":"NotificationId"}, + "Events":{ + "shape":"EventList", + "locationName":"Event" + }, + "Event":{ + "shape":"Event", + "deprecated":true + }, + "Topic":{"shape":"TopicArn"} + } + }, + "TopicConfigurationList":{ + "type":"list", + "member":{"shape":"TopicConfiguration"}, + "flattened":true + }, + "Transition":{ + "type":"structure", + "members":{ + "Date":{"shape":"Date"}, + "Days":{"shape":"Days"}, + "StorageClass":{"shape":"TransitionStorageClass"} + } + }, + "TransitionStorageClass":{ + "type":"string", + "enum":["GLACIER"] + }, + "Type":{ + "type":"string", + "enum":[ + "CanonicalUser", + "AmazonCustomerByEmail", + "Group" + ] + }, + "URI":{"type":"string"}, + "UploadIdMarker":{"type":"string"}, + "UploadPartCopyOutput":{ + "type":"structure", + "members":{ + "CopySourceVersionId":{ + "shape":"CopySourceVersionId", + "location":"header", + "locationName":"x-amz-copy-source-version-id" + }, + "CopyPartResult":{"shape":"CopyPartResult"}, + "ServerSideEncryption":{ + "shape":"ServerSideEncryption", + "location":"header", + "locationName":"x-amz-server-side-encryption" + }, + "SSECustomerAlgorithm":{ + "shape":"SSECustomerAlgorithm", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKeyMD5":{ + "shape":"SSECustomerKeyMD5", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-key-MD5" + }, + "SSEKMSKeyId":{ + "shape":"SSEKMSKeyId", + "location":"header", + "locationName":"x-amz-server-side-encryption-aws-kms-key-id" + }, + "RequestCharged":{ + "shape":"RequestCharged", + "location":"header", + "locationName":"x-amz-request-charged" + } + }, + "payload":"CopyPartResult" + }, + "UploadPartCopyRequest":{ + "type":"structure", + "required":[ + "Bucket", + "CopySource", + "Key", + "PartNumber", + "UploadId" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "CopySource":{ + "shape":"CopySource", + "location":"header", + "locationName":"x-amz-copy-source" + }, + "CopySourceIfMatch":{ + "shape":"CopySourceIfMatch", + "location":"header", + "locationName":"x-amz-copy-source-if-match" + }, + "CopySourceIfModifiedSince":{ + "shape":"CopySourceIfModifiedSince", + "location":"header", + "locationName":"x-amz-copy-source-if-modified-since" + }, + "CopySourceIfNoneMatch":{ + "shape":"CopySourceIfNoneMatch", + "location":"header", + "locationName":"x-amz-copy-source-if-none-match" + }, + "CopySourceIfUnmodifiedSince":{ + "shape":"CopySourceIfUnmodifiedSince", + "location":"header", + "locationName":"x-amz-copy-source-if-unmodified-since" + }, + "CopySourceRange":{ + "shape":"CopySourceRange", + "location":"header", + "locationName":"x-amz-copy-source-range" + }, + "Key":{ + "shape":"ObjectKey", + "location":"uri", + "locationName":"Key" + }, + "PartNumber":{ + "shape":"PartNumber", + "location":"querystring", + "locationName":"partNumber" + }, + "UploadId":{ + "shape":"MultipartUploadId", + "location":"querystring", + "locationName":"uploadId" + }, + "SSECustomerAlgorithm":{ + "shape":"SSECustomerAlgorithm", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKey":{ + "shape":"SSECustomerKey", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-key" + }, + "SSECustomerKeyMD5":{ + "shape":"SSECustomerKeyMD5", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-key-MD5" + }, + "CopySourceSSECustomerAlgorithm":{ + "shape":"CopySourceSSECustomerAlgorithm", + "location":"header", + "locationName":"x-amz-copy-source-server-side-encryption-customer-algorithm" + }, + "CopySourceSSECustomerKey":{ + "shape":"CopySourceSSECustomerKey", + "location":"header", + "locationName":"x-amz-copy-source-server-side-encryption-customer-key" + }, + "CopySourceSSECustomerKeyMD5":{ + "shape":"CopySourceSSECustomerKeyMD5", + "location":"header", + "locationName":"x-amz-copy-source-server-side-encryption-customer-key-MD5" + }, + "RequestPayer":{ + "shape":"RequestPayer", + "location":"header", + "locationName":"x-amz-request-payer" + } + } + }, + "UploadPartOutput":{ + "type":"structure", + "members":{ + "ServerSideEncryption":{ + "shape":"ServerSideEncryption", + "location":"header", + "locationName":"x-amz-server-side-encryption" + }, + "ETag":{ + "shape":"ETag", + "location":"header", + "locationName":"ETag" + }, + "SSECustomerAlgorithm":{ + "shape":"SSECustomerAlgorithm", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKeyMD5":{ + "shape":"SSECustomerKeyMD5", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-key-MD5" + }, + "SSEKMSKeyId":{ + "shape":"SSEKMSKeyId", + "location":"header", + "locationName":"x-amz-server-side-encryption-aws-kms-key-id" + }, + "RequestCharged":{ + "shape":"RequestCharged", + "location":"header", + "locationName":"x-amz-request-charged" + } + } + }, + "UploadPartRequest":{ + "type":"structure", + "required":[ + "Bucket", + "Key", + "PartNumber", + "UploadId" + ], + "members":{ + "Body":{ + "shape":"Body", + "streaming":true + }, + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "ContentLength":{ + "shape":"ContentLength", + "location":"header", + "locationName":"Content-Length" + }, + "ContentMD5":{ + "shape":"ContentMD5", + "location":"header", + "locationName":"Content-MD5" + }, + "Key":{ + "shape":"ObjectKey", + "location":"uri", + "locationName":"Key" + }, + "PartNumber":{ + "shape":"PartNumber", + "location":"querystring", + "locationName":"partNumber" + }, + "UploadId":{ + "shape":"MultipartUploadId", + "location":"querystring", + "locationName":"uploadId" + }, + "SSECustomerAlgorithm":{ + "shape":"SSECustomerAlgorithm", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-algorithm" + }, + "SSECustomerKey":{ + "shape":"SSECustomerKey", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-key" + }, + "SSECustomerKeyMD5":{ + "shape":"SSECustomerKeyMD5", + "location":"header", + "locationName":"x-amz-server-side-encryption-customer-key-MD5" + }, + "RequestPayer":{ + "shape":"RequestPayer", + "location":"header", + "locationName":"x-amz-request-payer" + } + }, + "payload":"Body" + }, + "Value":{"type":"string"}, + "VersionIdMarker":{"type":"string"}, + "VersioningConfiguration":{ + "type":"structure", + "members":{ + "MFADelete":{ + "shape":"MFADelete", + "locationName":"MfaDelete" + }, + "Status":{"shape":"BucketVersioningStatus"} + } + }, + "WebsiteConfiguration":{ + "type":"structure", + "members":{ + "ErrorDocument":{"shape":"ErrorDocument"}, + "IndexDocument":{"shape":"IndexDocument"}, + "RedirectAllRequestsTo":{"shape":"RedirectAllRequestsTo"}, + "RoutingRules":{"shape":"RoutingRules"} + } + }, + "WebsiteRedirectLocation":{"type":"string"} + } +} diff --git a/lib/aws-sdk/Aws/data/s3/2006-03-01/docs-2.json b/lib/aws-sdk/Aws/data/s3/2006-03-01/docs-2.json new file mode 100644 index 0000000..af757e7 --- /dev/null +++ b/lib/aws-sdk/Aws/data/s3/2006-03-01/docs-2.json @@ -0,0 +1,2213 @@ +{ + "version": "2.0", + "operations": { + "AbortMultipartUpload": "

Aborts a multipart upload.

To verify that all parts have been removed, so you don't get charged for the part storage, you should call the List Parts operation and ensure the parts list is empty.

", + "CompleteMultipartUpload": "Completes a multipart upload by assembling previously uploaded parts.", + "CopyObject": "Creates a copy of an object that is already stored in Amazon S3.", + "CreateBucket": "Creates a new bucket.", + "CreateMultipartUpload": "

Initiates a multipart upload and returns an upload ID.

Note: After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.

", + "DeleteBucket": "Deletes the bucket. All objects (including all object versions and Delete Markers) in the bucket must be deleted before the bucket itself can be deleted.", + "DeleteBucketCors": "Deletes the cors configuration information set for the bucket.", + "DeleteBucketLifecycle": "Deletes the lifecycle configuration from the bucket.", + "DeleteBucketPolicy": "Deletes the policy from the bucket.", + "DeleteBucketReplication": null, + "DeleteBucketTagging": "Deletes the tags from the bucket.", + "DeleteBucketWebsite": "This operation removes the website configuration from the bucket.", + "DeleteObject": "Removes the null version (if there is one) of an object and inserts a delete marker, which becomes the latest version of the object. If there isn't a null version, Amazon S3 does not remove any objects.", + "DeleteObjects": "This operation enables you to delete multiple objects from a bucket using a single HTTP request. You may specify up to 1000 keys.", + "GetBucketAcl": "Gets the access control policy for the bucket.", + "GetBucketCors": "Returns the cors configuration for the bucket.", + "GetBucketLifecycle": "Returns the lifecycle configuration information set on the bucket.", + "GetBucketLocation": "Returns the region the bucket resides in.", + "GetBucketLogging": "Returns the logging status of a bucket and the permissions users have to view and modify that status. To use GET, you must be the bucket owner.", + "GetBucketNotification": "Deprecated, see the GetBucketNotificationConfiguration operation.", + "GetBucketNotificationConfiguration": "Returns the notification configuration of a bucket.", + "GetBucketPolicy": "Returns the policy of a specified bucket.", + "GetBucketReplication": null, + "GetBucketRequestPayment": "Returns the request payment configuration of a bucket.", + "GetBucketTagging": "Returns the tag set associated with the bucket.", + "GetBucketVersioning": "Returns the versioning state of a bucket.", + "GetBucketWebsite": "Returns the website configuration for a bucket.", + "GetObject": "Retrieves objects from Amazon S3.", + "GetObjectAcl": "Returns the access control list (ACL) of an object.", + "GetObjectTorrent": "Return torrent files from a bucket.", + "HeadBucket": "This operation is useful to determine if a bucket exists and you have permission to access it.", + "HeadObject": "The HEAD operation retrieves metadata from an object without returning the object itself. This operation is useful if you're only interested in an object's metadata. To use HEAD, you must have READ access to the object.", + "ListBuckets": "Returns a list of all buckets owned by the authenticated sender of the request.", + "ListMultipartUploads": "This operation lists in-progress multipart uploads.", + "ListObjectVersions": "Returns metadata about all of the versions of objects in a bucket.", + "ListObjects": "Returns some or all (up to 1000) of the objects in a bucket. You can use the request parameters as selection criteria to return a subset of the objects in a bucket.", + "ListParts": "Lists the parts that have been uploaded for a specific multipart upload.", + "PutBucketAcl": "Sets the permissions on a bucket using access control lists (ACL).", + "PutBucketCors": "Sets the cors configuration for a bucket.", + "PutBucketLifecycle": "Sets lifecycle configuration for your bucket. If a lifecycle configuration exists, it replaces it.", + "PutBucketLogging": "Set the logging parameters for a bucket and to specify permissions for who can view and modify the logging parameters. To set the logging status of a bucket, you must be the bucket owner.", + "PutBucketNotification": "Deprecated, see the PutBucketNotificationConfiguraiton operation.", + "PutBucketNotificationConfiguration": "Enables notifications of specified events for a bucket.", + "PutBucketPolicy": "Replaces a policy on a bucket. If the bucket already has a policy, the one in this request completely replaces it.", + "PutBucketReplication": "Creates a new replication configuration (or replaces an existing one, if present).", + "PutBucketRequestPayment": "Sets the request payment configuration for a bucket. By default, the bucket owner pays for downloads from the bucket. This configuration parameter enables the bucket owner (only) to specify that the person requesting the download will be charged for the download. Documentation on requester pays buckets can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html", + "PutBucketTagging": "Sets the tags for a bucket.", + "PutBucketVersioning": "Sets the versioning state of an existing bucket. To set the versioning state, you must be the bucket owner.", + "PutBucketWebsite": "Set the website configuration for a bucket.", + "PutObject": "Adds an object to a bucket.", + "PutObjectAcl": "uses the acl subresource to set the access control list (ACL) permissions for an object that already exists in a bucket", + "RestoreObject": "Restores an archived copy of an object back into Amazon S3", + "UploadPart": "

Uploads a part in a multipart upload.

Note: After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.

", + "UploadPartCopy": "Uploads a part by copying data from an existing object as data source." + }, + "service": null, + "shapes": { + "AbortMultipartUploadOutput": { + "base": null, + "refs": { + } + }, + "AbortMultipartUploadRequest": { + "base": null, + "refs": { + } + }, + "AcceptRanges": { + "base": null, + "refs": { + "GetObjectOutput$AcceptRanges": null, + "HeadObjectOutput$AcceptRanges": null + } + }, + "AccessControlPolicy": { + "base": null, + "refs": { + "PutBucketAclRequest$AccessControlPolicy": null, + "PutObjectAclRequest$AccessControlPolicy": null + } + }, + "AllowedHeader": { + "base": null, + "refs": { + "AllowedHeaders$member": null + } + }, + "AllowedHeaders": { + "base": null, + "refs": { + "CORSRule$AllowedHeaders": "Specifies which headers are allowed in a pre-flight OPTIONS request." + } + }, + "AllowedMethod": { + "base": null, + "refs": { + "AllowedMethods$member": null + } + }, + "AllowedMethods": { + "base": null, + "refs": { + "CORSRule$AllowedMethods": "Identifies HTTP methods that the domain/origin specified in the rule is allowed to execute." + } + }, + "AllowedOrigin": { + "base": null, + "refs": { + "AllowedOrigins$member": null + } + }, + "AllowedOrigins": { + "base": null, + "refs": { + "CORSRule$AllowedOrigins": "One or more origins you want customers to be able to access the bucket from." + } + }, + "Body": { + "base": null, + "refs": { + "GetObjectOutput$Body": "Object data.", + "GetObjectTorrentOutput$Body": null, + "PutObjectRequest$Body": "Object data.", + "UploadPartRequest$Body": null + } + }, + "Bucket": { + "base": null, + "refs": { + "Buckets$member": null + } + }, + "BucketAlreadyExists": { + "base": "The requested bucket name is not available. The bucket namespace is shared by all users of the system. Please select a different name and try again.", + "refs": { + } + }, + "BucketCannedACL": { + "base": null, + "refs": { + "CreateBucketRequest$ACL": "The canned ACL to apply to the bucket.", + "PutBucketAclRequest$ACL": "The canned ACL to apply to the bucket." + } + }, + "BucketLocationConstraint": { + "base": null, + "refs": { + "CreateBucketConfiguration$LocationConstraint": "Specifies the region where the bucket will be created. If you don't specify a region, the bucket will be created in US Standard.", + "GetBucketLocationOutput$LocationConstraint": null + } + }, + "BucketLoggingStatus": { + "base": null, + "refs": { + "PutBucketLoggingRequest$BucketLoggingStatus": null + } + }, + "BucketLogsPermission": { + "base": null, + "refs": { + "TargetGrant$Permission": "Logging permissions assigned to the Grantee for the bucket." + } + }, + "BucketName": { + "base": null, + "refs": { + "AbortMultipartUploadRequest$Bucket": null, + "Bucket$Name": "The name of the bucket.", + "CompleteMultipartUploadOutput$Bucket": null, + "CompleteMultipartUploadRequest$Bucket": null, + "CopyObjectRequest$Bucket": null, + "CreateBucketRequest$Bucket": null, + "CreateMultipartUploadOutput$Bucket": "Name of the bucket to which the multipart upload was initiated.", + "CreateMultipartUploadRequest$Bucket": null, + "DeleteBucketCorsRequest$Bucket": null, + "DeleteBucketLifecycleRequest$Bucket": null, + "DeleteBucketPolicyRequest$Bucket": null, + "DeleteBucketReplicationRequest$Bucket": null, + "DeleteBucketRequest$Bucket": null, + "DeleteBucketTaggingRequest$Bucket": null, + "DeleteBucketWebsiteRequest$Bucket": null, + "DeleteObjectRequest$Bucket": null, + "DeleteObjectsRequest$Bucket": null, + "Destination$Bucket": "Amazon resource name (ARN) of the bucket where you want Amazon S3 to store replicas of the object identified by the rule.", + "GetBucketAclRequest$Bucket": null, + "GetBucketCorsRequest$Bucket": null, + "GetBucketLifecycleRequest$Bucket": null, + "GetBucketLocationRequest$Bucket": null, + "GetBucketLoggingRequest$Bucket": null, + "GetBucketNotificationConfigurationRequest$Bucket": "Name of the buket to get the notification configuration for.", + "GetBucketPolicyRequest$Bucket": null, + "GetBucketReplicationRequest$Bucket": null, + "GetBucketRequestPaymentRequest$Bucket": null, + "GetBucketTaggingRequest$Bucket": null, + "GetBucketVersioningRequest$Bucket": null, + "GetBucketWebsiteRequest$Bucket": null, + "GetObjectAclRequest$Bucket": null, + "GetObjectRequest$Bucket": null, + "GetObjectTorrentRequest$Bucket": null, + "HeadBucketRequest$Bucket": null, + "HeadObjectRequest$Bucket": null, + "ListMultipartUploadsOutput$Bucket": "Name of the bucket to which the multipart upload was initiated.", + "ListMultipartUploadsRequest$Bucket": null, + "ListObjectVersionsOutput$Name": null, + "ListObjectVersionsRequest$Bucket": null, + "ListObjectsOutput$Name": null, + "ListObjectsRequest$Bucket": null, + "ListPartsOutput$Bucket": "Name of the bucket to which the multipart upload was initiated.", + "ListPartsRequest$Bucket": null, + "PutBucketAclRequest$Bucket": null, + "PutBucketCorsRequest$Bucket": null, + "PutBucketLifecycleRequest$Bucket": null, + "PutBucketLoggingRequest$Bucket": null, + "PutBucketNotificationConfigurationRequest$Bucket": null, + "PutBucketNotificationRequest$Bucket": null, + "PutBucketPolicyRequest$Bucket": null, + "PutBucketReplicationRequest$Bucket": null, + "PutBucketRequestPaymentRequest$Bucket": null, + "PutBucketTaggingRequest$Bucket": null, + "PutBucketVersioningRequest$Bucket": null, + "PutBucketWebsiteRequest$Bucket": null, + "PutObjectAclRequest$Bucket": null, + "PutObjectRequest$Bucket": null, + "RestoreObjectRequest$Bucket": null, + "UploadPartCopyRequest$Bucket": null, + "UploadPartRequest$Bucket": null + } + }, + "BucketVersioningStatus": { + "base": null, + "refs": { + "GetBucketVersioningOutput$Status": "The versioning state of the bucket.", + "VersioningConfiguration$Status": "The versioning state of the bucket." + } + }, + "Buckets": { + "base": null, + "refs": { + "ListBucketsOutput$Buckets": null + } + }, + "CORSConfiguration": { + "base": null, + "refs": { + "PutBucketCorsRequest$CORSConfiguration": null + } + }, + "CORSRule": { + "base": null, + "refs": { + "CORSRules$member": null + } + }, + "CORSRules": { + "base": null, + "refs": { + "CORSConfiguration$CORSRules": null, + "GetBucketCorsOutput$CORSRules": null + } + }, + "CacheControl": { + "base": null, + "refs": { + "CopyObjectRequest$CacheControl": "Specifies caching behavior along the request/reply chain.", + "CreateMultipartUploadRequest$CacheControl": "Specifies caching behavior along the request/reply chain.", + "GetObjectOutput$CacheControl": "Specifies caching behavior along the request/reply chain.", + "HeadObjectOutput$CacheControl": "Specifies caching behavior along the request/reply chain.", + "PutObjectRequest$CacheControl": "Specifies caching behavior along the request/reply chain." + } + }, + "CloudFunction": { + "base": null, + "refs": { + "CloudFunctionConfiguration$CloudFunction": null + } + }, + "CloudFunctionConfiguration": { + "base": null, + "refs": { + "NotificationConfigurationDeprecated$CloudFunctionConfiguration": null + } + }, + "CloudFunctionInvocationRole": { + "base": null, + "refs": { + "CloudFunctionConfiguration$InvocationRole": null + } + }, + "Code": { + "base": null, + "refs": { + "Error$Code": null + } + }, + "CommonPrefix": { + "base": null, + "refs": { + "CommonPrefixList$member": null + } + }, + "CommonPrefixList": { + "base": null, + "refs": { + "ListMultipartUploadsOutput$CommonPrefixes": null, + "ListObjectVersionsOutput$CommonPrefixes": null, + "ListObjectsOutput$CommonPrefixes": null + } + }, + "CompleteMultipartUploadOutput": { + "base": null, + "refs": { + } + }, + "CompleteMultipartUploadRequest": { + "base": null, + "refs": { + } + }, + "CompletedMultipartUpload": { + "base": null, + "refs": { + "CompleteMultipartUploadRequest$MultipartUpload": null + } + }, + "CompletedPart": { + "base": null, + "refs": { + "CompletedPartList$member": null + } + }, + "CompletedPartList": { + "base": null, + "refs": { + "CompletedMultipartUpload$Parts": null + } + }, + "Condition": { + "base": null, + "refs": { + "RoutingRule$Condition": "A container for describing a condition that must be met for the specified redirect to apply. For example, 1. If request is for pages in the /docs folder, redirect to the /documents folder. 2. If request results in HTTP error 4xx, redirect request to another host where you might process the error." + } + }, + "ContentDisposition": { + "base": null, + "refs": { + "CopyObjectRequest$ContentDisposition": "Specifies presentational information for the object.", + "CreateMultipartUploadRequest$ContentDisposition": "Specifies presentational information for the object.", + "GetObjectOutput$ContentDisposition": "Specifies presentational information for the object.", + "HeadObjectOutput$ContentDisposition": "Specifies presentational information for the object.", + "PutObjectRequest$ContentDisposition": "Specifies presentational information for the object." + } + }, + "ContentEncoding": { + "base": null, + "refs": { + "CopyObjectRequest$ContentEncoding": "Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.", + "CreateMultipartUploadRequest$ContentEncoding": "Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.", + "GetObjectOutput$ContentEncoding": "Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.", + "HeadObjectOutput$ContentEncoding": "Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.", + "PutObjectRequest$ContentEncoding": "Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field." + } + }, + "ContentLanguage": { + "base": null, + "refs": { + "CopyObjectRequest$ContentLanguage": "The language the content is in.", + "CreateMultipartUploadRequest$ContentLanguage": "The language the content is in.", + "GetObjectOutput$ContentLanguage": "The language the content is in.", + "HeadObjectOutput$ContentLanguage": "The language the content is in.", + "PutObjectRequest$ContentLanguage": "The language the content is in." + } + }, + "ContentLength": { + "base": null, + "refs": { + "GetObjectOutput$ContentLength": "Size of the body in bytes.", + "HeadObjectOutput$ContentLength": "Size of the body in bytes.", + "PutObjectRequest$ContentLength": "Size of the body in bytes. This parameter is useful when the size of the body cannot be determined automatically.", + "UploadPartRequest$ContentLength": "Size of the body in bytes. This parameter is useful when the size of the body cannot be determined automatically." + } + }, + "ContentMD5": { + "base": null, + "refs": { + "PutBucketAclRequest$ContentMD5": null, + "PutBucketCorsRequest$ContentMD5": null, + "PutBucketLifecycleRequest$ContentMD5": null, + "PutBucketLoggingRequest$ContentMD5": null, + "PutBucketNotificationRequest$ContentMD5": null, + "PutBucketPolicyRequest$ContentMD5": null, + "PutBucketReplicationRequest$ContentMD5": null, + "PutBucketRequestPaymentRequest$ContentMD5": null, + "PutBucketTaggingRequest$ContentMD5": null, + "PutBucketVersioningRequest$ContentMD5": null, + "PutBucketWebsiteRequest$ContentMD5": null, + "PutObjectAclRequest$ContentMD5": null, + "PutObjectRequest$ContentMD5": null, + "UploadPartRequest$ContentMD5": null + } + }, + "ContentType": { + "base": null, + "refs": { + "CopyObjectRequest$ContentType": "A standard MIME type describing the format of the object data.", + "CreateMultipartUploadRequest$ContentType": "A standard MIME type describing the format of the object data.", + "GetObjectOutput$ContentType": "A standard MIME type describing the format of the object data.", + "HeadObjectOutput$ContentType": "A standard MIME type describing the format of the object data.", + "PutObjectRequest$ContentType": "A standard MIME type describing the format of the object data." + } + }, + "CopyObjectOutput": { + "base": null, + "refs": { + } + }, + "CopyObjectRequest": { + "base": null, + "refs": { + } + }, + "CopyObjectResult": { + "base": null, + "refs": { + "CopyObjectOutput$CopyObjectResult": null + } + }, + "CopyPartResult": { + "base": null, + "refs": { + "UploadPartCopyOutput$CopyPartResult": null + } + }, + "CopySource": { + "base": null, + "refs": { + "CopyObjectRequest$CopySource": "The name of the source bucket and key name of the source object, separated by a slash (/). Must be URL-encoded.", + "UploadPartCopyRequest$CopySource": "The name of the source bucket and key name of the source object, separated by a slash (/). Must be URL-encoded." + } + }, + "CopySourceIfMatch": { + "base": null, + "refs": { + "CopyObjectRequest$CopySourceIfMatch": "Copies the object if its entity tag (ETag) matches the specified tag.", + "UploadPartCopyRequest$CopySourceIfMatch": "Copies the object if its entity tag (ETag) matches the specified tag." + } + }, + "CopySourceIfModifiedSince": { + "base": null, + "refs": { + "CopyObjectRequest$CopySourceIfModifiedSince": "Copies the object if it has been modified since the specified time.", + "UploadPartCopyRequest$CopySourceIfModifiedSince": "Copies the object if it has been modified since the specified time." + } + }, + "CopySourceIfNoneMatch": { + "base": null, + "refs": { + "CopyObjectRequest$CopySourceIfNoneMatch": "Copies the object if its entity tag (ETag) is different than the specified ETag.", + "UploadPartCopyRequest$CopySourceIfNoneMatch": "Copies the object if its entity tag (ETag) is different than the specified ETag." + } + }, + "CopySourceIfUnmodifiedSince": { + "base": null, + "refs": { + "CopyObjectRequest$CopySourceIfUnmodifiedSince": "Copies the object if it hasn't been modified since the specified time.", + "UploadPartCopyRequest$CopySourceIfUnmodifiedSince": "Copies the object if it hasn't been modified since the specified time." + } + }, + "CopySourceRange": { + "base": null, + "refs": { + "UploadPartCopyRequest$CopySourceRange": "The range of bytes to copy from the source object. The range value must use the form bytes=first-last, where the first and last are the zero-based byte offsets to copy. For example, bytes=0-9 indicates that you want to copy the first ten bytes of the source. You can copy a range only if the source object is greater than 5 GB." + } + }, + "CopySourceSSECustomerAlgorithm": { + "base": null, + "refs": { + "CopyObjectRequest$CopySourceSSECustomerAlgorithm": "Specifies the algorithm to use when decrypting the source object (e.g., AES256).", + "UploadPartCopyRequest$CopySourceSSECustomerAlgorithm": "Specifies the algorithm to use when decrypting the source object (e.g., AES256)." + } + }, + "CopySourceSSECustomerKey": { + "base": null, + "refs": { + "CopyObjectRequest$CopySourceSSECustomerKey": "Specifies the customer-provided encryption key for Amazon S3 to use to decrypt the source object. The encryption key provided in this header must be one that was used when the source object was created.", + "UploadPartCopyRequest$CopySourceSSECustomerKey": "Specifies the customer-provided encryption key for Amazon S3 to use to decrypt the source object. The encryption key provided in this header must be one that was used when the source object was created." + } + }, + "CopySourceSSECustomerKeyMD5": { + "base": null, + "refs": { + "CopyObjectRequest$CopySourceSSECustomerKeyMD5": "Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.", + "UploadPartCopyRequest$CopySourceSSECustomerKeyMD5": "Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error." + } + }, + "CopySourceVersionId": { + "base": null, + "refs": { + "CopyObjectOutput$CopySourceVersionId": null, + "UploadPartCopyOutput$CopySourceVersionId": "The version of the source object that was copied, if you have enabled versioning on the source bucket." + } + }, + "CreateBucketConfiguration": { + "base": null, + "refs": { + "CreateBucketRequest$CreateBucketConfiguration": null + } + }, + "CreateBucketOutput": { + "base": null, + "refs": { + } + }, + "CreateBucketRequest": { + "base": null, + "refs": { + } + }, + "CreateMultipartUploadOutput": { + "base": null, + "refs": { + } + }, + "CreateMultipartUploadRequest": { + "base": null, + "refs": { + } + }, + "CreationDate": { + "base": null, + "refs": { + "Bucket$CreationDate": "Date the bucket was created." + } + }, + "Date": { + "base": null, + "refs": { + "LifecycleExpiration$Date": "Indicates at what date the object is to be moved or deleted. Should be in GMT ISO 8601 Format.", + "Transition$Date": "Indicates at what date the object is to be moved or deleted. Should be in GMT ISO 8601 Format." + } + }, + "Days": { + "base": null, + "refs": { + "LifecycleExpiration$Days": "Indicates the lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer.", + "NoncurrentVersionExpiration$NoncurrentDays": "Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon Simple Storage Service Developer Guide.", + "NoncurrentVersionTransition$NoncurrentDays": "Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon Simple Storage Service Developer Guide.", + "RestoreRequest$Days": "Lifetime of the active copy in days", + "Transition$Days": "Indicates the lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer." + } + }, + "Delete": { + "base": null, + "refs": { + "DeleteObjectsRequest$Delete": null + } + }, + "DeleteBucketCorsRequest": { + "base": null, + "refs": { + } + }, + "DeleteBucketLifecycleRequest": { + "base": null, + "refs": { + } + }, + "DeleteBucketPolicyRequest": { + "base": null, + "refs": { + } + }, + "DeleteBucketReplicationRequest": { + "base": null, + "refs": { + } + }, + "DeleteBucketRequest": { + "base": null, + "refs": { + } + }, + "DeleteBucketTaggingRequest": { + "base": null, + "refs": { + } + }, + "DeleteBucketWebsiteRequest": { + "base": null, + "refs": { + } + }, + "DeleteMarker": { + "base": null, + "refs": { + "DeleteObjectOutput$DeleteMarker": "Specifies whether the versioned object that was permanently deleted was (true) or was not (false) a delete marker.", + "DeletedObject$DeleteMarker": null, + "GetObjectOutput$DeleteMarker": "Specifies whether the object retrieved was (true) or was not (false) a Delete Marker. If false, this response header does not appear in the response.", + "HeadObjectOutput$DeleteMarker": "Specifies whether the object retrieved was (true) or was not (false) a Delete Marker. If false, this response header does not appear in the response." + } + }, + "DeleteMarkerEntry": { + "base": null, + "refs": { + "DeleteMarkers$member": null + } + }, + "DeleteMarkerVersionId": { + "base": null, + "refs": { + "DeletedObject$DeleteMarkerVersionId": null + } + }, + "DeleteMarkers": { + "base": null, + "refs": { + "ListObjectVersionsOutput$DeleteMarkers": null + } + }, + "DeleteObjectOutput": { + "base": null, + "refs": { + } + }, + "DeleteObjectRequest": { + "base": null, + "refs": { + } + }, + "DeleteObjectsOutput": { + "base": null, + "refs": { + } + }, + "DeleteObjectsRequest": { + "base": null, + "refs": { + } + }, + "DeletedObject": { + "base": null, + "refs": { + "DeletedObjects$member": null + } + }, + "DeletedObjects": { + "base": null, + "refs": { + "DeleteObjectsOutput$Deleted": null + } + }, + "Delimiter": { + "base": null, + "refs": { + "ListMultipartUploadsOutput$Delimiter": null, + "ListMultipartUploadsRequest$Delimiter": "Character you use to group keys.", + "ListObjectVersionsOutput$Delimiter": null, + "ListObjectVersionsRequest$Delimiter": "A delimiter is a character you use to group keys.", + "ListObjectsOutput$Delimiter": null, + "ListObjectsRequest$Delimiter": "A delimiter is a character you use to group keys." + } + }, + "Destination": { + "base": null, + "refs": { + "ReplicationRule$Destination": null + } + }, + "DisplayName": { + "base": null, + "refs": { + "Grantee$DisplayName": "Screen name of the grantee.", + "Initiator$DisplayName": "Name of the Principal.", + "Owner$DisplayName": null + } + }, + "ETag": { + "base": null, + "refs": { + "CompleteMultipartUploadOutput$ETag": "Entity tag of the object.", + "CompletedPart$ETag": "Entity tag returned when the part was uploaded.", + "CopyObjectResult$ETag": null, + "CopyPartResult$ETag": "Entity tag of the object.", + "GetObjectOutput$ETag": "An ETag is an opaque identifier assigned by a web server to a specific version of a resource found at a URL", + "HeadObjectOutput$ETag": "An ETag is an opaque identifier assigned by a web server to a specific version of a resource found at a URL", + "Object$ETag": null, + "ObjectVersion$ETag": null, + "Part$ETag": "Entity tag returned when the part was uploaded.", + "PutObjectOutput$ETag": "Entity tag for the uploaded object.", + "UploadPartOutput$ETag": "Entity tag for the uploaded object." + } + }, + "EmailAddress": { + "base": null, + "refs": { + "Grantee$EmailAddress": "Email address of the grantee." + } + }, + "EncodingType": { + "base": "Requests Amazon S3 to encode the object keys in the response and specifies the encoding method to use. An object key may contain any Unicode character; however, XML 1.0 parser cannot parse some characters, such as characters with an ASCII value from 0 to 10. For characters that are not supported in XML 1.0, you can add this parameter to request that Amazon S3 encode the keys in the response.", + "refs": { + "ListMultipartUploadsOutput$EncodingType": "Encoding type used by Amazon S3 to encode object keys in the response.", + "ListMultipartUploadsRequest$EncodingType": null, + "ListObjectVersionsOutput$EncodingType": "Encoding type used by Amazon S3 to encode object keys in the response.", + "ListObjectVersionsRequest$EncodingType": null, + "ListObjectsOutput$EncodingType": "Encoding type used by Amazon S3 to encode object keys in the response.", + "ListObjectsRequest$EncodingType": null + } + }, + "Error": { + "base": null, + "refs": { + "Errors$member": null + } + }, + "ErrorDocument": { + "base": null, + "refs": { + "GetBucketWebsiteOutput$ErrorDocument": null, + "WebsiteConfiguration$ErrorDocument": null + } + }, + "Errors": { + "base": null, + "refs": { + "DeleteObjectsOutput$Errors": null + } + }, + "Event": { + "base": "Bucket event for which to send notifications.", + "refs": { + "CloudFunctionConfiguration$Event": null, + "EventList$member": null, + "QueueConfigurationDeprecated$Event": null, + "TopicConfigurationDeprecated$Event": "Bucket event for which to send notifications." + } + }, + "EventList": { + "base": null, + "refs": { + "CloudFunctionConfiguration$Events": null, + "LambdaFunctionConfiguration$Events": null, + "QueueConfiguration$Events": null, + "QueueConfigurationDeprecated$Events": null, + "TopicConfiguration$Events": null, + "TopicConfigurationDeprecated$Events": null + } + }, + "Expiration": { + "base": null, + "refs": { + "CompleteMultipartUploadOutput$Expiration": "If the object expiration is configured, this will contain the expiration date (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.", + "CopyObjectOutput$Expiration": "If the object expiration is configured, the response includes this header.", + "GetObjectOutput$Expiration": "If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded.", + "HeadObjectOutput$Expiration": "If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded.", + "PutObjectOutput$Expiration": "If the object expiration is configured, this will contain the expiration date (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded." + } + }, + "ExpirationStatus": { + "base": null, + "refs": { + "Rule$Status": "If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being applied." + } + }, + "Expires": { + "base": null, + "refs": { + "CopyObjectRequest$Expires": "The date and time at which the object is no longer cacheable.", + "CreateMultipartUploadRequest$Expires": "The date and time at which the object is no longer cacheable.", + "GetObjectOutput$Expires": "The date and time at which the object is no longer cacheable.", + "HeadObjectOutput$Expires": "The date and time at which the object is no longer cacheable.", + "PutObjectRequest$Expires": "The date and time at which the object is no longer cacheable." + } + }, + "ExposeHeader": { + "base": null, + "refs": { + "ExposeHeaders$member": null + } + }, + "ExposeHeaders": { + "base": null, + "refs": { + "CORSRule$ExposeHeaders": "One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript XMLHttpRequest object)." + } + }, + "GetBucketAclOutput": { + "base": null, + "refs": { + } + }, + "GetBucketAclRequest": { + "base": null, + "refs": { + } + }, + "GetBucketCorsOutput": { + "base": null, + "refs": { + } + }, + "GetBucketCorsRequest": { + "base": null, + "refs": { + } + }, + "GetBucketLifecycleOutput": { + "base": null, + "refs": { + } + }, + "GetBucketLifecycleRequest": { + "base": null, + "refs": { + } + }, + "GetBucketLocationOutput": { + "base": null, + "refs": { + } + }, + "GetBucketLocationRequest": { + "base": null, + "refs": { + } + }, + "GetBucketLoggingOutput": { + "base": null, + "refs": { + } + }, + "GetBucketLoggingRequest": { + "base": null, + "refs": { + } + }, + "GetBucketNotificationConfigurationRequest": { + "base": null, + "refs": { + } + }, + "GetBucketPolicyOutput": { + "base": null, + "refs": { + } + }, + "GetBucketPolicyRequest": { + "base": null, + "refs": { + } + }, + "GetBucketReplicationOutput": { + "base": null, + "refs": { + } + }, + "GetBucketReplicationRequest": { + "base": null, + "refs": { + } + }, + "GetBucketRequestPaymentOutput": { + "base": null, + "refs": { + } + }, + "GetBucketRequestPaymentRequest": { + "base": null, + "refs": { + } + }, + "GetBucketTaggingOutput": { + "base": null, + "refs": { + } + }, + "GetBucketTaggingRequest": { + "base": null, + "refs": { + } + }, + "GetBucketVersioningOutput": { + "base": null, + "refs": { + } + }, + "GetBucketVersioningRequest": { + "base": null, + "refs": { + } + }, + "GetBucketWebsiteOutput": { + "base": null, + "refs": { + } + }, + "GetBucketWebsiteRequest": { + "base": null, + "refs": { + } + }, + "GetObjectAclOutput": { + "base": null, + "refs": { + } + }, + "GetObjectAclRequest": { + "base": null, + "refs": { + } + }, + "GetObjectOutput": { + "base": null, + "refs": { + } + }, + "GetObjectRequest": { + "base": null, + "refs": { + } + }, + "GetObjectTorrentOutput": { + "base": null, + "refs": { + } + }, + "GetObjectTorrentRequest": { + "base": null, + "refs": { + } + }, + "Grant": { + "base": null, + "refs": { + "Grants$member": null + } + }, + "GrantFullControl": { + "base": null, + "refs": { + "CopyObjectRequest$GrantFullControl": "Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.", + "CreateBucketRequest$GrantFullControl": "Allows grantee the read, write, read ACP, and write ACP permissions on the bucket.", + "CreateMultipartUploadRequest$GrantFullControl": "Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.", + "PutBucketAclRequest$GrantFullControl": "Allows grantee the read, write, read ACP, and write ACP permissions on the bucket.", + "PutObjectAclRequest$GrantFullControl": "Allows grantee the read, write, read ACP, and write ACP permissions on the bucket.", + "PutObjectRequest$GrantFullControl": "Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object." + } + }, + "GrantRead": { + "base": null, + "refs": { + "CopyObjectRequest$GrantRead": "Allows grantee to read the object data and its metadata.", + "CreateBucketRequest$GrantRead": "Allows grantee to list the objects in the bucket.", + "CreateMultipartUploadRequest$GrantRead": "Allows grantee to read the object data and its metadata.", + "PutBucketAclRequest$GrantRead": "Allows grantee to list the objects in the bucket.", + "PutObjectAclRequest$GrantRead": "Allows grantee to list the objects in the bucket.", + "PutObjectRequest$GrantRead": "Allows grantee to read the object data and its metadata." + } + }, + "GrantReadACP": { + "base": null, + "refs": { + "CopyObjectRequest$GrantReadACP": "Allows grantee to read the object ACL.", + "CreateBucketRequest$GrantReadACP": "Allows grantee to read the bucket ACL.", + "CreateMultipartUploadRequest$GrantReadACP": "Allows grantee to read the object ACL.", + "PutBucketAclRequest$GrantReadACP": "Allows grantee to read the bucket ACL.", + "PutObjectAclRequest$GrantReadACP": "Allows grantee to read the bucket ACL.", + "PutObjectRequest$GrantReadACP": "Allows grantee to read the object ACL." + } + }, + "GrantWrite": { + "base": null, + "refs": { + "CreateBucketRequest$GrantWrite": "Allows grantee to create, overwrite, and delete any object in the bucket.", + "PutBucketAclRequest$GrantWrite": "Allows grantee to create, overwrite, and delete any object in the bucket.", + "PutObjectAclRequest$GrantWrite": "Allows grantee to create, overwrite, and delete any object in the bucket." + } + }, + "GrantWriteACP": { + "base": null, + "refs": { + "CopyObjectRequest$GrantWriteACP": "Allows grantee to write the ACL for the applicable object.", + "CreateBucketRequest$GrantWriteACP": "Allows grantee to write the ACL for the applicable bucket.", + "CreateMultipartUploadRequest$GrantWriteACP": "Allows grantee to write the ACL for the applicable object.", + "PutBucketAclRequest$GrantWriteACP": "Allows grantee to write the ACL for the applicable bucket.", + "PutObjectAclRequest$GrantWriteACP": "Allows grantee to write the ACL for the applicable bucket.", + "PutObjectRequest$GrantWriteACP": "Allows grantee to write the ACL for the applicable object." + } + }, + "Grantee": { + "base": null, + "refs": { + "Grant$Grantee": null, + "TargetGrant$Grantee": null + } + }, + "Grants": { + "base": null, + "refs": { + "AccessControlPolicy$Grants": "A list of grants.", + "GetBucketAclOutput$Grants": "A list of grants.", + "GetObjectAclOutput$Grants": "A list of grants." + } + }, + "HeadBucketRequest": { + "base": null, + "refs": { + } + }, + "HeadObjectOutput": { + "base": null, + "refs": { + } + }, + "HeadObjectRequest": { + "base": null, + "refs": { + } + }, + "HostName": { + "base": null, + "refs": { + "Redirect$HostName": "The host name to use in the redirect request.", + "RedirectAllRequestsTo$HostName": "Name of the host where requests will be redirected." + } + }, + "HttpErrorCodeReturnedEquals": { + "base": null, + "refs": { + "Condition$HttpErrorCodeReturnedEquals": "The HTTP error code when the redirect is applied. In the event of an error, if the error code equals this value, then the specified redirect is applied. Required when parent element Condition is specified and sibling KeyPrefixEquals is not specified. If both are specified, then both must be true for the redirect to be applied." + } + }, + "HttpRedirectCode": { + "base": null, + "refs": { + "Redirect$HttpRedirectCode": "The HTTP redirect code to use on the response. Not required if one of the siblings is present." + } + }, + "ID": { + "base": null, + "refs": { + "Grantee$ID": "The canonical user ID of the grantee.", + "Initiator$ID": "If the principal is an AWS account, it provides the Canonical User ID. If the principal is an IAM User, it provides a user ARN value.", + "Owner$ID": null, + "ReplicationRule$ID": "Unique identifier for the rule. The value cannot be longer than 255 characters.", + "Rule$ID": "Unique identifier for the rule. The value cannot be longer than 255 characters." + } + }, + "IfMatch": { + "base": null, + "refs": { + "GetObjectRequest$IfMatch": "Return the object only if its entity tag (ETag) is the same as the one specified, otherwise return a 412 (precondition failed).", + "HeadObjectRequest$IfMatch": "Return the object only if its entity tag (ETag) is the same as the one specified, otherwise return a 412 (precondition failed)." + } + }, + "IfModifiedSince": { + "base": null, + "refs": { + "GetObjectRequest$IfModifiedSince": "Return the object only if it has been modified since the specified time, otherwise return a 304 (not modified).", + "HeadObjectRequest$IfModifiedSince": "Return the object only if it has been modified since the specified time, otherwise return a 304 (not modified)." + } + }, + "IfNoneMatch": { + "base": null, + "refs": { + "GetObjectRequest$IfNoneMatch": "Return the object only if its entity tag (ETag) is different from the one specified, otherwise return a 304 (not modified).", + "HeadObjectRequest$IfNoneMatch": "Return the object only if its entity tag (ETag) is different from the one specified, otherwise return a 304 (not modified)." + } + }, + "IfUnmodifiedSince": { + "base": null, + "refs": { + "GetObjectRequest$IfUnmodifiedSince": "Return the object only if it has not been modified since the specified time, otherwise return a 412 (precondition failed).", + "HeadObjectRequest$IfUnmodifiedSince": "Return the object only if it has not been modified since the specified time, otherwise return a 412 (precondition failed)." + } + }, + "IndexDocument": { + "base": null, + "refs": { + "GetBucketWebsiteOutput$IndexDocument": null, + "WebsiteConfiguration$IndexDocument": null + } + }, + "Initiated": { + "base": null, + "refs": { + "MultipartUpload$Initiated": "Date and time at which the multipart upload was initiated." + } + }, + "Initiator": { + "base": null, + "refs": { + "ListPartsOutput$Initiator": "Identifies who initiated the multipart upload.", + "MultipartUpload$Initiator": "Identifies who initiated the multipart upload." + } + }, + "IsLatest": { + "base": null, + "refs": { + "DeleteMarkerEntry$IsLatest": "Specifies whether the object is (true) or is not (false) the latest version of an object.", + "ObjectVersion$IsLatest": "Specifies whether the object is (true) or is not (false) the latest version of an object." + } + }, + "IsTruncated": { + "base": null, + "refs": { + "ListMultipartUploadsOutput$IsTruncated": "Indicates whether the returned list of multipart uploads is truncated. A value of true indicates that the list was truncated. The list can be truncated if the number of multipart uploads exceeds the limit allowed or specified by max uploads.", + "ListObjectVersionsOutput$IsTruncated": "A flag that indicates whether or not Amazon S3 returned all of the results that satisfied the search criteria. If your results were truncated, you can make a follow-up paginated request using the NextKeyMarker and NextVersionIdMarker response parameters as a starting place in another request to return the rest of the results.", + "ListObjectsOutput$IsTruncated": "A flag that indicates whether or not Amazon S3 returned all of the results that satisfied the search criteria.", + "ListPartsOutput$IsTruncated": "Indicates whether the returned list of parts is truncated." + } + }, + "KeyMarker": { + "base": null, + "refs": { + "ListMultipartUploadsOutput$KeyMarker": "The key at or after which the listing began.", + "ListMultipartUploadsRequest$KeyMarker": "Together with upload-id-marker, this parameter specifies the multipart upload after which listing should begin.", + "ListObjectVersionsOutput$KeyMarker": "Marks the last Key returned in a truncated response.", + "ListObjectVersionsRequest$KeyMarker": "Specifies the key to start with when listing objects in a bucket." + } + }, + "KeyPrefixEquals": { + "base": null, + "refs": { + "Condition$KeyPrefixEquals": "The object key name prefix when the redirect is applied. For example, to redirect requests for ExamplePage.html, the key prefix will be ExamplePage.html. To redirect request for all pages with the prefix docs/, the key prefix will be /docs, which identifies all objects in the docs/ folder. Required when the parent element Condition is specified and sibling HttpErrorCodeReturnedEquals is not specified. If both conditions are specified, both must be true for the redirect to be applied." + } + }, + "LambdaFunctionArn": { + "base": null, + "refs": { + "LambdaFunctionConfiguration$LambdaFunctionArn": "Lambda cloud function ARN that Amazon S3 can invoke when it detects events of the specified type." + } + }, + "LambdaFunctionConfiguration": { + "base": "Container for specifying the AWS Lambda notification configuration.", + "refs": { + "LambdaFunctionConfigurationList$member": null + } + }, + "LambdaFunctionConfigurationList": { + "base": null, + "refs": { + "NotificationConfiguration$LambdaFunctionConfigurations": null + } + }, + "LastModified": { + "base": null, + "refs": { + "CopyObjectResult$LastModified": null, + "CopyPartResult$LastModified": "Date and time at which the object was uploaded.", + "DeleteMarkerEntry$LastModified": "Date and time the object was last modified.", + "GetObjectOutput$LastModified": "Last modified date of the object", + "HeadObjectOutput$LastModified": "Last modified date of the object", + "Object$LastModified": null, + "ObjectVersion$LastModified": "Date and time the object was last modified.", + "Part$LastModified": "Date and time at which the part was uploaded." + } + }, + "LifecycleConfiguration": { + "base": null, + "refs": { + "PutBucketLifecycleRequest$LifecycleConfiguration": null + } + }, + "LifecycleExpiration": { + "base": null, + "refs": { + "Rule$Expiration": null + } + }, + "ListBucketsOutput": { + "base": null, + "refs": { + } + }, + "ListMultipartUploadsOutput": { + "base": null, + "refs": { + } + }, + "ListMultipartUploadsRequest": { + "base": null, + "refs": { + } + }, + "ListObjectVersionsOutput": { + "base": null, + "refs": { + } + }, + "ListObjectVersionsRequest": { + "base": null, + "refs": { + } + }, + "ListObjectsOutput": { + "base": null, + "refs": { + } + }, + "ListObjectsRequest": { + "base": null, + "refs": { + } + }, + "ListPartsOutput": { + "base": null, + "refs": { + } + }, + "ListPartsRequest": { + "base": null, + "refs": { + } + }, + "Location": { + "base": null, + "refs": { + "CompleteMultipartUploadOutput$Location": null, + "CreateBucketOutput$Location": null + } + }, + "LoggingEnabled": { + "base": null, + "refs": { + "BucketLoggingStatus$LoggingEnabled": null, + "GetBucketLoggingOutput$LoggingEnabled": null + } + }, + "MFA": { + "base": null, + "refs": { + "DeleteObjectRequest$MFA": "The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device.", + "DeleteObjectsRequest$MFA": "The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device.", + "PutBucketVersioningRequest$MFA": "The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device." + } + }, + "MFADelete": { + "base": null, + "refs": { + "VersioningConfiguration$MFADelete": "Specifies whether MFA delete is enabled in the bucket versioning configuration. This element is only returned if the bucket has been configured with MFA delete. If the bucket has never been so configured, this element is not returned." + } + }, + "MFADeleteStatus": { + "base": null, + "refs": { + "GetBucketVersioningOutput$MFADelete": "Specifies whether MFA delete is enabled in the bucket versioning configuration. This element is only returned if the bucket has been configured with MFA delete. If the bucket has never been so configured, this element is not returned." + } + }, + "Marker": { + "base": null, + "refs": { + "ListObjectsOutput$Marker": null, + "ListObjectsRequest$Marker": "Specifies the key to start with when listing objects in a bucket." + } + }, + "MaxAgeSeconds": { + "base": null, + "refs": { + "CORSRule$MaxAgeSeconds": "The time in seconds that your browser is to cache the preflight response for the specified resource." + } + }, + "MaxKeys": { + "base": null, + "refs": { + "ListObjectVersionsOutput$MaxKeys": null, + "ListObjectVersionsRequest$MaxKeys": "Sets the maximum number of keys returned in the response. The response might contain fewer keys but will never contain more.", + "ListObjectsOutput$MaxKeys": null, + "ListObjectsRequest$MaxKeys": "Sets the maximum number of keys returned in the response. The response might contain fewer keys but will never contain more." + } + }, + "MaxParts": { + "base": null, + "refs": { + "ListPartsOutput$MaxParts": "Maximum number of parts that were allowed in the response.", + "ListPartsRequest$MaxParts": "Sets the maximum number of parts to return." + } + }, + "MaxUploads": { + "base": null, + "refs": { + "ListMultipartUploadsOutput$MaxUploads": "Maximum number of multipart uploads that could have been included in the response.", + "ListMultipartUploadsRequest$MaxUploads": "Sets the maximum number of multipart uploads, from 1 to 1,000, to return in the response body. 1,000 is the maximum number of uploads that can be returned in a response." + } + }, + "Message": { + "base": null, + "refs": { + "Error$Message": null + } + }, + "Metadata": { + "base": null, + "refs": { + "CopyObjectRequest$Metadata": "A map of metadata to store with the object in S3.", + "CreateMultipartUploadRequest$Metadata": "A map of metadata to store with the object in S3.", + "GetObjectOutput$Metadata": "A map of metadata to store with the object in S3.", + "HeadObjectOutput$Metadata": "A map of metadata to store with the object in S3.", + "PutObjectRequest$Metadata": "A map of metadata to store with the object in S3." + } + }, + "MetadataDirective": { + "base": null, + "refs": { + "CopyObjectRequest$MetadataDirective": "Specifies whether the metadata is copied from the source object or replaced with metadata provided in the request." + } + }, + "MetadataKey": { + "base": null, + "refs": { + "Metadata$key": null + } + }, + "MetadataValue": { + "base": null, + "refs": { + "Metadata$value": null + } + }, + "MissingMeta": { + "base": null, + "refs": { + "GetObjectOutput$MissingMeta": "This is set to the number of metadata entries not returned in x-amz-meta headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.", + "HeadObjectOutput$MissingMeta": "This is set to the number of metadata entries not returned in x-amz-meta headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers." + } + }, + "MultipartUpload": { + "base": null, + "refs": { + "MultipartUploadList$member": null + } + }, + "MultipartUploadId": { + "base": null, + "refs": { + "AbortMultipartUploadRequest$UploadId": null, + "CompleteMultipartUploadRequest$UploadId": null, + "CreateMultipartUploadOutput$UploadId": "ID for the initiated multipart upload.", + "ListPartsOutput$UploadId": "Upload ID identifying the multipart upload whose parts are being listed.", + "ListPartsRequest$UploadId": "Upload ID identifying the multipart upload whose parts are being listed.", + "MultipartUpload$UploadId": "Upload ID that identifies the multipart upload.", + "UploadPartCopyRequest$UploadId": "Upload ID identifying the multipart upload whose part is being copied.", + "UploadPartRequest$UploadId": "Upload ID identifying the multipart upload whose part is being uploaded." + } + }, + "MultipartUploadList": { + "base": null, + "refs": { + "ListMultipartUploadsOutput$Uploads": null + } + }, + "NextKeyMarker": { + "base": null, + "refs": { + "ListMultipartUploadsOutput$NextKeyMarker": "When a list is truncated, this element specifies the value that should be used for the key-marker request parameter in a subsequent request.", + "ListObjectVersionsOutput$NextKeyMarker": "Use this value for the key marker request parameter in a subsequent request." + } + }, + "NextMarker": { + "base": null, + "refs": { + "ListObjectsOutput$NextMarker": "When response is truncated (the IsTruncated element value in the response is true), you can use the key name in this field as marker in the subsequent request to get next set of objects. Amazon S3 lists objects in alphabetical order Note: This element is returned only if you have delimiter request parameter specified. If response does not include the NextMaker and it is truncated, you can use the value of the last Key in the response as the marker in the subsequent request to get the next set of object keys." + } + }, + "NextPartNumberMarker": { + "base": null, + "refs": { + "ListPartsOutput$NextPartNumberMarker": "When a list is truncated, this element specifies the last part in the list, as well as the value to use for the part-number-marker request parameter in a subsequent request." + } + }, + "NextUploadIdMarker": { + "base": null, + "refs": { + "ListMultipartUploadsOutput$NextUploadIdMarker": "When a list is truncated, this element specifies the value that should be used for the upload-id-marker request parameter in a subsequent request." + } + }, + "NextVersionIdMarker": { + "base": null, + "refs": { + "ListObjectVersionsOutput$NextVersionIdMarker": "Use this value for the next version id marker parameter in a subsequent request." + } + }, + "NoSuchBucket": { + "base": "The specified bucket does not exist.", + "refs": { + } + }, + "NoSuchKey": { + "base": "The specified key does not exist.", + "refs": { + } + }, + "NoSuchUpload": { + "base": "The specified multipart upload does not exist.", + "refs": { + } + }, + "NoncurrentVersionExpiration": { + "base": "Specifies when noncurrent object versions expire. Upon expiration, Amazon S3 permanently deletes the noncurrent object versions. You set this lifecycle configuration action on a bucket that has versioning enabled (or suspended) to request that Amazon S3 delete noncurrent object versions at a specific period in the object's lifetime.", + "refs": { + "Rule$NoncurrentVersionExpiration": null + } + }, + "NoncurrentVersionTransition": { + "base": "Container for the transition rule that describes when noncurrent objects transition to the GLACIER storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to the GLACIER storage class at a specific period in the object's lifetime.", + "refs": { + "Rule$NoncurrentVersionTransition": null + } + }, + "NotificationConfiguration": { + "base": "Container for specifying the notification configuration of the bucket. If this element is empty, notifications are turned off on the bucket.", + "refs": { + "PutBucketNotificationConfigurationRequest$NotificationConfiguration": null + } + }, + "NotificationConfigurationDeprecated": { + "base": null, + "refs": { + "PutBucketNotificationRequest$NotificationConfiguration": null + } + }, + "NotificationId": { + "base": "Optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.", + "refs": { + "CloudFunctionConfiguration$Id": null, + "LambdaFunctionConfiguration$Id": null, + "QueueConfiguration$Id": null, + "QueueConfigurationDeprecated$Id": null, + "TopicConfiguration$Id": null, + "TopicConfigurationDeprecated$Id": null + } + }, + "Object": { + "base": null, + "refs": { + "ObjectList$member": null + } + }, + "ObjectAlreadyInActiveTierError": { + "base": "This operation is not allowed against this storage tier", + "refs": { + } + }, + "ObjectCannedACL": { + "base": null, + "refs": { + "CopyObjectRequest$ACL": "The canned ACL to apply to the object.", + "CreateMultipartUploadRequest$ACL": "The canned ACL to apply to the object.", + "PutObjectAclRequest$ACL": "The canned ACL to apply to the object.", + "PutObjectRequest$ACL": "The canned ACL to apply to the object." + } + }, + "ObjectIdentifier": { + "base": null, + "refs": { + "ObjectIdentifierList$member": null + } + }, + "ObjectIdentifierList": { + "base": null, + "refs": { + "Delete$Objects": null + } + }, + "ObjectKey": { + "base": null, + "refs": { + "AbortMultipartUploadRequest$Key": null, + "CompleteMultipartUploadOutput$Key": null, + "CompleteMultipartUploadRequest$Key": null, + "CopyObjectRequest$Key": null, + "CreateMultipartUploadOutput$Key": "Object key for which the multipart upload was initiated.", + "CreateMultipartUploadRequest$Key": null, + "DeleteMarkerEntry$Key": "The object key.", + "DeleteObjectRequest$Key": null, + "DeletedObject$Key": null, + "Error$Key": null, + "ErrorDocument$Key": "The object key name to use when a 4XX class error occurs.", + "GetObjectAclRequest$Key": null, + "GetObjectRequest$Key": null, + "GetObjectTorrentRequest$Key": null, + "HeadObjectRequest$Key": null, + "ListPartsOutput$Key": "Object key for which the multipart upload was initiated.", + "ListPartsRequest$Key": null, + "MultipartUpload$Key": "Key of the object for which the multipart upload was initiated.", + "Object$Key": null, + "ObjectIdentifier$Key": "Key name of the object to delete.", + "ObjectVersion$Key": "The object key.", + "PutObjectAclRequest$Key": null, + "PutObjectRequest$Key": null, + "RestoreObjectRequest$Key": null, + "Tag$Key": "Name of the tag.", + "UploadPartCopyRequest$Key": null, + "UploadPartRequest$Key": null + } + }, + "ObjectList": { + "base": null, + "refs": { + "ListObjectsOutput$Contents": null + } + }, + "ObjectNotInActiveTierError": { + "base": "The source object of the COPY operation is not in the active tier and is only stored in Amazon Glacier.", + "refs": { + } + }, + "ObjectStorageClass": { + "base": null, + "refs": { + "Object$StorageClass": "The class of storage used to store the object." + } + }, + "ObjectVersion": { + "base": null, + "refs": { + "ObjectVersionList$member": null + } + }, + "ObjectVersionId": { + "base": null, + "refs": { + "CompleteMultipartUploadOutput$VersionId": "Version of the object.", + "DeleteMarkerEntry$VersionId": "Version ID of an object.", + "DeleteObjectOutput$VersionId": "Returns the version ID of the delete marker created as a result of the DELETE operation.", + "DeleteObjectRequest$VersionId": "VersionId used to reference a specific version of the object.", + "DeletedObject$VersionId": null, + "Error$VersionId": null, + "GetObjectAclRequest$VersionId": "VersionId used to reference a specific version of the object.", + "GetObjectOutput$VersionId": "Version of the object.", + "GetObjectRequest$VersionId": "VersionId used to reference a specific version of the object.", + "HeadObjectOutput$VersionId": "Version of the object.", + "HeadObjectRequest$VersionId": "VersionId used to reference a specific version of the object.", + "ObjectIdentifier$VersionId": "VersionId for the specific version of the object to delete.", + "ObjectVersion$VersionId": "Version ID of an object.", + "PutObjectOutput$VersionId": "Version of the object.", + "RestoreObjectRequest$VersionId": null + } + }, + "ObjectVersionList": { + "base": null, + "refs": { + "ListObjectVersionsOutput$Versions": null + } + }, + "ObjectVersionStorageClass": { + "base": null, + "refs": { + "ObjectVersion$StorageClass": "The class of storage used to store the object." + } + }, + "Owner": { + "base": null, + "refs": { + "AccessControlPolicy$Owner": null, + "DeleteMarkerEntry$Owner": null, + "GetBucketAclOutput$Owner": null, + "GetObjectAclOutput$Owner": null, + "ListBucketsOutput$Owner": null, + "ListPartsOutput$Owner": null, + "MultipartUpload$Owner": null, + "Object$Owner": null, + "ObjectVersion$Owner": null + } + }, + "Part": { + "base": null, + "refs": { + "Parts$member": null + } + }, + "PartNumber": { + "base": null, + "refs": { + "CompletedPart$PartNumber": "Part number that identifies the part.", + "Part$PartNumber": "Part number identifying the part.", + "UploadPartCopyRequest$PartNumber": "Part number of part being copied.", + "UploadPartRequest$PartNumber": "Part number of part being uploaded." + } + }, + "PartNumberMarker": { + "base": null, + "refs": { + "ListPartsOutput$PartNumberMarker": "Part number after which listing begins.", + "ListPartsRequest$PartNumberMarker": "Specifies the part after which listing should begin. Only parts with higher part numbers will be listed." + } + }, + "Parts": { + "base": null, + "refs": { + "ListPartsOutput$Parts": null + } + }, + "Payer": { + "base": null, + "refs": { + "GetBucketRequestPaymentOutput$Payer": "Specifies who pays for the download and request fees.", + "RequestPaymentConfiguration$Payer": "Specifies who pays for the download and request fees." + } + }, + "Permission": { + "base": null, + "refs": { + "Grant$Permission": "Specifies the permission given to the grantee." + } + }, + "Policy": { + "base": null, + "refs": { + "GetBucketPolicyOutput$Policy": "The bucket policy as a JSON document.", + "PutBucketPolicyRequest$Policy": "The bucket policy as a JSON document." + } + }, + "Prefix": { + "base": null, + "refs": { + "CommonPrefix$Prefix": null, + "ListMultipartUploadsOutput$Prefix": "When a prefix is provided in the request, this field contains the specified prefix. The result contains only keys starting with the specified prefix.", + "ListMultipartUploadsRequest$Prefix": "Lists in-progress uploads only for those keys that begin with the specified prefix.", + "ListObjectVersionsOutput$Prefix": null, + "ListObjectVersionsRequest$Prefix": "Limits the response to keys that begin with the specified prefix.", + "ListObjectsOutput$Prefix": null, + "ListObjectsRequest$Prefix": "Limits the response to keys that begin with the specified prefix.", + "ReplicationRule$Prefix": "Object keyname prefix identifying one or more objects to which the rule applies. Maximum prefix length can be up to 1,024 characters. Overlapping prefixes are not supported.", + "Rule$Prefix": "Prefix identifying one or more objects to which the rule applies." + } + }, + "Protocol": { + "base": null, + "refs": { + "Redirect$Protocol": "Protocol to use (http, https) when redirecting requests. The default is the protocol that is used in the original request.", + "RedirectAllRequestsTo$Protocol": "Protocol to use (http, https) when redirecting requests. The default is the protocol that is used in the original request." + } + }, + "PutBucketAclRequest": { + "base": null, + "refs": { + } + }, + "PutBucketCorsRequest": { + "base": null, + "refs": { + } + }, + "PutBucketLifecycleRequest": { + "base": null, + "refs": { + } + }, + "PutBucketLoggingRequest": { + "base": null, + "refs": { + } + }, + "PutBucketNotificationConfigurationRequest": { + "base": null, + "refs": { + } + }, + "PutBucketNotificationRequest": { + "base": null, + "refs": { + } + }, + "PutBucketPolicyRequest": { + "base": null, + "refs": { + } + }, + "PutBucketReplicationRequest": { + "base": null, + "refs": { + } + }, + "PutBucketRequestPaymentRequest": { + "base": null, + "refs": { + } + }, + "PutBucketTaggingRequest": { + "base": null, + "refs": { + } + }, + "PutBucketVersioningRequest": { + "base": null, + "refs": { + } + }, + "PutBucketWebsiteRequest": { + "base": null, + "refs": { + } + }, + "PutObjectAclOutput": { + "base": null, + "refs": { + } + }, + "PutObjectAclRequest": { + "base": null, + "refs": { + } + }, + "PutObjectOutput": { + "base": null, + "refs": { + } + }, + "PutObjectRequest": { + "base": null, + "refs": { + } + }, + "QueueArn": { + "base": null, + "refs": { + "QueueConfiguration$QueueArn": "Amazon SQS queue ARN to which Amazon S3 will publish a message when it detects events of specified type.", + "QueueConfigurationDeprecated$Queue": null + } + }, + "QueueConfiguration": { + "base": "Container for specifying an configuration when you want Amazon S3 to publish events to an Amazon Simple Queue Service (Amazon SQS) queue.", + "refs": { + "QueueConfigurationList$member": null + } + }, + "QueueConfigurationDeprecated": { + "base": null, + "refs": { + "NotificationConfigurationDeprecated$QueueConfiguration": null + } + }, + "QueueConfigurationList": { + "base": null, + "refs": { + "NotificationConfiguration$QueueConfigurations": null + } + }, + "Quiet": { + "base": null, + "refs": { + "Delete$Quiet": "Element to enable quiet mode for the request. When you add this element, you must set its value to true." + } + }, + "Range": { + "base": null, + "refs": { + "GetObjectRequest$Range": "Downloads the specified range bytes of an object. For more information about the HTTP Range header, go to http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.", + "HeadObjectRequest$Range": "Downloads the specified range bytes of an object. For more information about the HTTP Range header, go to http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35." + } + }, + "Redirect": { + "base": null, + "refs": { + "RoutingRule$Redirect": "Container for redirect information. You can redirect requests to another host, to another page, or with another protocol. In the event of an error, you can can specify a different error code to return." + } + }, + "RedirectAllRequestsTo": { + "base": null, + "refs": { + "GetBucketWebsiteOutput$RedirectAllRequestsTo": null, + "WebsiteConfiguration$RedirectAllRequestsTo": null + } + }, + "ReplaceKeyPrefixWith": { + "base": null, + "refs": { + "Redirect$ReplaceKeyPrefixWith": "The object key prefix to use in the redirect request. For example, to redirect requests for all pages with prefix docs/ (objects in the docs/ folder) to documents/, you can set a condition block with KeyPrefixEquals set to docs/ and in the Redirect set ReplaceKeyPrefixWith to /documents. Not required if one of the siblings is present. Can be present only if ReplaceKeyWith is not provided." + } + }, + "ReplaceKeyWith": { + "base": null, + "refs": { + "Redirect$ReplaceKeyWith": "The specific object key to use in the redirect request. For example, redirect request to error.html. Not required if one of the sibling is present. Can be present only if ReplaceKeyPrefixWith is not provided." + } + }, + "ReplicationConfiguration": { + "base": "Container for replication rules. You can add as many as 1,000 rules. Total replication configuration size can be up to 2 MB.", + "refs": { + "GetBucketReplicationOutput$ReplicationConfiguration": null, + "PutBucketReplicationRequest$ReplicationConfiguration": null + } + }, + "ReplicationRule": { + "base": null, + "refs": { + "ReplicationRules$member": null + } + }, + "ReplicationRuleStatus": { + "base": null, + "refs": { + "ReplicationRule$Status": "The rule is ignored if status is not Enabled." + } + }, + "ReplicationRules": { + "base": null, + "refs": { + "ReplicationConfiguration$Rules": "Container for information about a particular replication rule. Replication configuration must have at least one rule and can contain up to 1,000 rules." + } + }, + "ReplicationStatus": { + "base": null, + "refs": { + "GetObjectOutput$ReplicationStatus": null, + "HeadObjectOutput$ReplicationStatus": null + } + }, + "RequestCharged": { + "base": "If present, indicates that the requester was successfully charged for the request.", + "refs": { + "AbortMultipartUploadOutput$RequestCharged": null, + "CompleteMultipartUploadOutput$RequestCharged": null, + "CopyObjectOutput$RequestCharged": null, + "CreateMultipartUploadOutput$RequestCharged": null, + "DeleteObjectOutput$RequestCharged": null, + "DeleteObjectsOutput$RequestCharged": null, + "GetObjectAclOutput$RequestCharged": null, + "GetObjectOutput$RequestCharged": null, + "GetObjectTorrentOutput$RequestCharged": null, + "HeadObjectOutput$RequestCharged": null, + "ListPartsOutput$RequestCharged": null, + "PutObjectAclOutput$RequestCharged": null, + "PutObjectOutput$RequestCharged": null, + "RestoreObjectOutput$RequestCharged": null, + "UploadPartCopyOutput$RequestCharged": null, + "UploadPartOutput$RequestCharged": null + } + }, + "RequestPayer": { + "base": "Confirms that the requester knows that she or he will be charged for the request. Bucket owners need not specify this parameter in their requests. Documentation on downloading objects from requester pays buckets can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html", + "refs": { + "AbortMultipartUploadRequest$RequestPayer": null, + "CompleteMultipartUploadRequest$RequestPayer": null, + "CopyObjectRequest$RequestPayer": null, + "CreateMultipartUploadRequest$RequestPayer": null, + "DeleteObjectRequest$RequestPayer": null, + "DeleteObjectsRequest$RequestPayer": null, + "GetObjectAclRequest$RequestPayer": null, + "GetObjectRequest$RequestPayer": null, + "GetObjectTorrentRequest$RequestPayer": null, + "HeadObjectRequest$RequestPayer": null, + "ListPartsRequest$RequestPayer": null, + "PutObjectAclRequest$RequestPayer": null, + "PutObjectRequest$RequestPayer": null, + "RestoreObjectRequest$RequestPayer": null, + "UploadPartCopyRequest$RequestPayer": null, + "UploadPartRequest$RequestPayer": null + } + }, + "RequestPaymentConfiguration": { + "base": null, + "refs": { + "PutBucketRequestPaymentRequest$RequestPaymentConfiguration": null + } + }, + "ResponseCacheControl": { + "base": null, + "refs": { + "GetObjectRequest$ResponseCacheControl": "Sets the Cache-Control header of the response." + } + }, + "ResponseContentDisposition": { + "base": null, + "refs": { + "GetObjectRequest$ResponseContentDisposition": "Sets the Content-Disposition header of the response" + } + }, + "ResponseContentEncoding": { + "base": null, + "refs": { + "GetObjectRequest$ResponseContentEncoding": "Sets the Content-Encoding header of the response." + } + }, + "ResponseContentLanguage": { + "base": null, + "refs": { + "GetObjectRequest$ResponseContentLanguage": "Sets the Content-Language header of the response." + } + }, + "ResponseContentType": { + "base": null, + "refs": { + "GetObjectRequest$ResponseContentType": "Sets the Content-Type header of the response." + } + }, + "ResponseExpires": { + "base": null, + "refs": { + "GetObjectRequest$ResponseExpires": "Sets the Expires header of the response." + } + }, + "Restore": { + "base": null, + "refs": { + "GetObjectOutput$Restore": "Provides information about object restoration operation and expiration time of the restored object copy.", + "HeadObjectOutput$Restore": "Provides information about object restoration operation and expiration time of the restored object copy." + } + }, + "RestoreObjectOutput": { + "base": null, + "refs": { + } + }, + "RestoreObjectRequest": { + "base": null, + "refs": { + } + }, + "RestoreRequest": { + "base": null, + "refs": { + "RestoreObjectRequest$RestoreRequest": null + } + }, + "Role": { + "base": null, + "refs": { + "ReplicationConfiguration$Role": "Amazon Resource Name (ARN) of an IAM role for Amazon S3 to assume when replicating the objects." + } + }, + "RoutingRule": { + "base": null, + "refs": { + "RoutingRules$member": null + } + }, + "RoutingRules": { + "base": null, + "refs": { + "GetBucketWebsiteOutput$RoutingRules": null, + "WebsiteConfiguration$RoutingRules": null + } + }, + "Rule": { + "base": null, + "refs": { + "Rules$member": null + } + }, + "Rules": { + "base": null, + "refs": { + "GetBucketLifecycleOutput$Rules": null, + "LifecycleConfiguration$Rules": null + } + }, + "SSECustomerAlgorithm": { + "base": null, + "refs": { + "CopyObjectOutput$SSECustomerAlgorithm": "If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.", + "CopyObjectRequest$SSECustomerAlgorithm": "Specifies the algorithm to use to when encrypting the object (e.g., AES256, aws:kms).", + "CreateMultipartUploadOutput$SSECustomerAlgorithm": "If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.", + "CreateMultipartUploadRequest$SSECustomerAlgorithm": "Specifies the algorithm to use to when encrypting the object (e.g., AES256, aws:kms).", + "GetObjectOutput$SSECustomerAlgorithm": "If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.", + "GetObjectRequest$SSECustomerAlgorithm": "Specifies the algorithm to use to when encrypting the object (e.g., AES256, aws:kms).", + "HeadObjectOutput$SSECustomerAlgorithm": "If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.", + "HeadObjectRequest$SSECustomerAlgorithm": "Specifies the algorithm to use to when encrypting the object (e.g., AES256, aws:kms).", + "PutObjectOutput$SSECustomerAlgorithm": "If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.", + "PutObjectRequest$SSECustomerAlgorithm": "Specifies the algorithm to use to when encrypting the object (e.g., AES256, aws:kms).", + "UploadPartCopyOutput$SSECustomerAlgorithm": "If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.", + "UploadPartCopyRequest$SSECustomerAlgorithm": "Specifies the algorithm to use to when encrypting the object (e.g., AES256, aws:kms).", + "UploadPartOutput$SSECustomerAlgorithm": "If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.", + "UploadPartRequest$SSECustomerAlgorithm": "Specifies the algorithm to use to when encrypting the object (e.g., AES256, aws:kms)." + } + }, + "SSECustomerKey": { + "base": null, + "refs": { + "CopyObjectRequest$SSECustomerKey": "Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header.", + "CreateMultipartUploadRequest$SSECustomerKey": "Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header.", + "GetObjectRequest$SSECustomerKey": "Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header.", + "HeadObjectRequest$SSECustomerKey": "Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header.", + "PutObjectRequest$SSECustomerKey": "Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header.", + "UploadPartCopyRequest$SSECustomerKey": "Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header. This must be the same encryption key specified in the initiate multipart upload request.", + "UploadPartRequest$SSECustomerKey": "Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header. This must be the same encryption key specified in the initiate multipart upload request." + } + }, + "SSECustomerKeyMD5": { + "base": null, + "refs": { + "CopyObjectOutput$SSECustomerKeyMD5": "If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.", + "CopyObjectRequest$SSECustomerKeyMD5": "Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.", + "CreateMultipartUploadOutput$SSECustomerKeyMD5": "If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.", + "CreateMultipartUploadRequest$SSECustomerKeyMD5": "Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.", + "GetObjectOutput$SSECustomerKeyMD5": "If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.", + "GetObjectRequest$SSECustomerKeyMD5": "Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.", + "HeadObjectOutput$SSECustomerKeyMD5": "If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.", + "HeadObjectRequest$SSECustomerKeyMD5": "Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.", + "PutObjectOutput$SSECustomerKeyMD5": "If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.", + "PutObjectRequest$SSECustomerKeyMD5": "Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.", + "UploadPartCopyOutput$SSECustomerKeyMD5": "If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.", + "UploadPartCopyRequest$SSECustomerKeyMD5": "Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.", + "UploadPartOutput$SSECustomerKeyMD5": "If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.", + "UploadPartRequest$SSECustomerKeyMD5": "Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error." + } + }, + "SSEKMSKeyId": { + "base": null, + "refs": { + "CompleteMultipartUploadOutput$SSEKMSKeyId": "If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.", + "CopyObjectOutput$SSEKMSKeyId": "If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.", + "CopyObjectRequest$SSEKMSKeyId": "Specifies the AWS KMS key ID to use for object encryption. All GET and PUT requests for an object protected by AWS KMS will fail if not made via SSL or using SigV4. Documentation on configuring any of the officially supported AWS SDKs and CLI can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version", + "CreateMultipartUploadOutput$SSEKMSKeyId": "If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.", + "CreateMultipartUploadRequest$SSEKMSKeyId": "Specifies the AWS KMS key ID to use for object encryption. All GET and PUT requests for an object protected by AWS KMS will fail if not made via SSL or using SigV4. Documentation on configuring any of the officially supported AWS SDKs and CLI can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version", + "GetObjectOutput$SSEKMSKeyId": "If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.", + "HeadObjectOutput$SSEKMSKeyId": "If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.", + "PutObjectOutput$SSEKMSKeyId": "If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.", + "PutObjectRequest$SSEKMSKeyId": "Specifies the AWS KMS key ID to use for object encryption. All GET and PUT requests for an object protected by AWS KMS will fail if not made via SSL or using SigV4. Documentation on configuring any of the officially supported AWS SDKs and CLI can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version", + "UploadPartCopyOutput$SSEKMSKeyId": "If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.", + "UploadPartOutput$SSEKMSKeyId": "If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object." + } + }, + "ServerSideEncryption": { + "base": null, + "refs": { + "CompleteMultipartUploadOutput$ServerSideEncryption": "The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).", + "CopyObjectOutput$ServerSideEncryption": "The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).", + "CopyObjectRequest$ServerSideEncryption": "The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).", + "CreateMultipartUploadOutput$ServerSideEncryption": "The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).", + "CreateMultipartUploadRequest$ServerSideEncryption": "The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).", + "GetObjectOutput$ServerSideEncryption": "The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).", + "HeadObjectOutput$ServerSideEncryption": "The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).", + "PutObjectOutput$ServerSideEncryption": "The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).", + "PutObjectRequest$ServerSideEncryption": "The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).", + "UploadPartCopyOutput$ServerSideEncryption": "The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).", + "UploadPartOutput$ServerSideEncryption": "The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms)." + } + }, + "Size": { + "base": null, + "refs": { + "Object$Size": null, + "ObjectVersion$Size": "Size in bytes of the object.", + "Part$Size": "Size of the uploaded part data." + } + }, + "StorageClass": { + "base": null, + "refs": { + "CopyObjectRequest$StorageClass": "The type of storage to use for the object. Defaults to 'STANDARD'.", + "CreateMultipartUploadRequest$StorageClass": "The type of storage to use for the object. Defaults to 'STANDARD'.", + "ListPartsOutput$StorageClass": "The class of storage used to store the object.", + "MultipartUpload$StorageClass": "The class of storage used to store the object.", + "PutObjectRequest$StorageClass": "The type of storage to use for the object. Defaults to 'STANDARD'." + } + }, + "Suffix": { + "base": null, + "refs": { + "IndexDocument$Suffix": "A suffix that is appended to a request that is for a directory on the website endpoint (e.g. if the suffix is index.html and you make a request to samplebucket/images/ the data that is returned will be for the object with the key name images/index.html) The suffix must not be empty and must not include a slash character." + } + }, + "Tag": { + "base": null, + "refs": { + "TagSet$member": null + } + }, + "TagSet": { + "base": null, + "refs": { + "GetBucketTaggingOutput$TagSet": null, + "Tagging$TagSet": null + } + }, + "Tagging": { + "base": null, + "refs": { + "PutBucketTaggingRequest$Tagging": null + } + }, + "TargetBucket": { + "base": null, + "refs": { + "LoggingEnabled$TargetBucket": "Specifies the bucket where you want Amazon S3 to store server access logs. You can have your logs delivered to any bucket that you own, including the same bucket that is being logged. You can also configure multiple buckets to deliver their logs to the same target bucket. In this case you should choose a different TargetPrefix for each source bucket so that the delivered log files can be distinguished by key." + } + }, + "TargetGrant": { + "base": null, + "refs": { + "TargetGrants$member": null + } + }, + "TargetGrants": { + "base": null, + "refs": { + "LoggingEnabled$TargetGrants": null + } + }, + "TargetPrefix": { + "base": null, + "refs": { + "LoggingEnabled$TargetPrefix": "This element lets you specify a prefix for the keys that the log files will be stored under." + } + }, + "TopicArn": { + "base": null, + "refs": { + "TopicConfiguration$TopicArn": "Amazon SNS topic ARN to which Amazon S3 will publish a message when it detects events of specified type.", + "TopicConfigurationDeprecated$Topic": "Amazon SNS topic to which Amazon S3 will publish a message to report the specified events for the bucket." + } + }, + "TopicConfiguration": { + "base": "Container for specifying the configuration when you want Amazon S3 to publish events to an Amazon Simple Notification Service (Amazon SNS) topic.", + "refs": { + "TopicConfigurationList$member": null + } + }, + "TopicConfigurationDeprecated": { + "base": null, + "refs": { + "NotificationConfigurationDeprecated$TopicConfiguration": null + } + }, + "TopicConfigurationList": { + "base": null, + "refs": { + "NotificationConfiguration$TopicConfigurations": null + } + }, + "Transition": { + "base": null, + "refs": { + "Rule$Transition": null + } + }, + "TransitionStorageClass": { + "base": null, + "refs": { + "NoncurrentVersionTransition$StorageClass": "The class of storage used to store the object.", + "Transition$StorageClass": "The class of storage used to store the object." + } + }, + "Type": { + "base": null, + "refs": { + "Grantee$Type": "Type of grantee" + } + }, + "URI": { + "base": null, + "refs": { + "Grantee$URI": "URI of the grantee group." + } + }, + "UploadIdMarker": { + "base": null, + "refs": { + "ListMultipartUploadsOutput$UploadIdMarker": "Upload ID after which listing began.", + "ListMultipartUploadsRequest$UploadIdMarker": "Together with key-marker, specifies the multipart upload after which listing should begin. If key-marker is not specified, the upload-id-marker parameter is ignored." + } + }, + "UploadPartCopyOutput": { + "base": null, + "refs": { + } + }, + "UploadPartCopyRequest": { + "base": null, + "refs": { + } + }, + "UploadPartOutput": { + "base": null, + "refs": { + } + }, + "UploadPartRequest": { + "base": null, + "refs": { + } + }, + "Value": { + "base": null, + "refs": { + "Tag$Value": "Value of the tag." + } + }, + "VersionIdMarker": { + "base": null, + "refs": { + "ListObjectVersionsOutput$VersionIdMarker": null, + "ListObjectVersionsRequest$VersionIdMarker": "Specifies the object version you want to start listing from." + } + }, + "VersioningConfiguration": { + "base": null, + "refs": { + "PutBucketVersioningRequest$VersioningConfiguration": null + } + }, + "WebsiteConfiguration": { + "base": null, + "refs": { + "PutBucketWebsiteRequest$WebsiteConfiguration": null + } + }, + "WebsiteRedirectLocation": { + "base": null, + "refs": { + "CopyObjectRequest$WebsiteRedirectLocation": "If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.", + "CreateMultipartUploadRequest$WebsiteRedirectLocation": "If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.", + "GetObjectOutput$WebsiteRedirectLocation": "If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.", + "HeadObjectOutput$WebsiteRedirectLocation": "If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.", + "PutObjectRequest$WebsiteRedirectLocation": "If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata." + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/s3/2006-03-01/paginators-1.json b/lib/aws-sdk/Aws/data/s3/2006-03-01/paginators-1.json new file mode 100644 index 0000000..d42eee3 --- /dev/null +++ b/lib/aws-sdk/Aws/data/s3/2006-03-01/paginators-1.json @@ -0,0 +1,57 @@ +{ + "pagination": { + "ListBuckets": { + "result_key": "Buckets" + }, + "ListMultipartUploads": { + "limit_key": "MaxUploads", + "more_results": "IsTruncated", + "output_token": [ + "NextKeyMarker", + "NextUploadIdMarker" + ], + "input_token": [ + "KeyMarker", + "UploadIdMarker" + ], + "result_key": [ + "Uploads", + "CommonPrefixes" + ] + }, + "ListObjectVersions": { + "more_results": "IsTruncated", + "limit_key": "MaxKeys", + "output_token": [ + "NextKeyMarker", + "NextVersionIdMarker" + ], + "input_token": [ + "KeyMarker", + "VersionIdMarker" + ], + "result_key": [ + "Versions", + "DeleteMarkers", + "CommonPrefixes" + ] + }, + "ListObjects": { + "more_results": "IsTruncated", + "limit_key": "MaxKeys", + "output_token": "NextMarker || Contents[-1].Key", + "input_token": "Marker", + "result_key": [ + "Contents", + "CommonPrefixes" + ] + }, + "ListParts": { + "more_results": "IsTruncated", + "limit_key": "MaxParts", + "output_token": "NextPartNumberMarker", + "input_token": "PartNumberMarker", + "result_key": "Parts" + } + } +} diff --git a/lib/aws-sdk/Aws/data/s3/2006-03-01/waiters-2.json b/lib/aws-sdk/Aws/data/s3/2006-03-01/waiters-2.json new file mode 100644 index 0000000..b508a8f --- /dev/null +++ b/lib/aws-sdk/Aws/data/s3/2006-03-01/waiters-2.json @@ -0,0 +1,73 @@ +{ + "version": 2, + "waiters": { + "BucketExists": { + "delay": 5, + "operation": "HeadBucket", + "maxAttempts": 20, + "acceptors": [ + { + "expected": 200, + "matcher": "status", + "state": "success" + }, + { + "expected": 301, + "matcher": "status", + "state": "success" + }, + { + "expected": 403, + "matcher": "status", + "state": "success" + }, + { + "expected": 404, + "matcher": "status", + "state": "retry" + } + ] + }, + "BucketNotExists": { + "delay": 5, + "operation": "HeadBucket", + "maxAttempts": 20, + "acceptors": [ + { + "expected": 404, + "matcher": "status", + "state": "success" + } + ] + }, + "ObjectExists": { + "delay": 5, + "operation": "HeadObject", + "maxAttempts": 20, + "acceptors": [ + { + "expected": 200, + "matcher": "status", + "state": "success" + }, + { + "expected": 404, + "matcher": "status", + "state": "retry" + } + ] + }, + "ObjectNotExists": { + "delay": 5, + "operation": "HeadObject", + "maxAttempts": 20, + "acceptors": [ + { + "expected": 404, + "matcher": "status", + "state": "success" + } + ] + } + } +} diff --git a/lib/aws-sdk/Aws/data/sns/2010-03-31/api-2.json b/lib/aws-sdk/Aws/data/sns/2010-03-31/api-2.json new file mode 100644 index 0000000..58d9a75 --- /dev/null +++ b/lib/aws-sdk/Aws/data/sns/2010-03-31/api-2.json @@ -0,0 +1,1760 @@ +{ + "metadata":{ + "apiVersion":"2010-03-31", + "endpointPrefix":"sns", + "serviceAbbreviation":"Amazon SNS", + "serviceFullName":"Amazon Simple Notification Service", + "signatureVersion":"v4", + "xmlNamespace":"http://sns.amazonaws.com/doc/2010-03-31/", + "protocol":"query" + }, + "operations":{ + "AddPermission":{ + "name":"AddPermission", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddPermissionInput"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "ConfirmSubscription":{ + "name":"ConfirmSubscription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ConfirmSubscriptionInput"}, + "output":{ + "shape":"ConfirmSubscriptionResponse", + "resultWrapper":"ConfirmSubscriptionResult" + }, + "errors":[ + { + "shape":"SubscriptionLimitExceededException", + "error":{ + "code":"SubscriptionLimitExceeded", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreatePlatformApplication":{ + "name":"CreatePlatformApplication", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreatePlatformApplicationInput"}, + "output":{ + "shape":"CreatePlatformApplicationResponse", + "resultWrapper":"CreatePlatformApplicationResult" + }, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreatePlatformEndpoint":{ + "name":"CreatePlatformEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreatePlatformEndpointInput"}, + "output":{ + "shape":"CreateEndpointResponse", + "resultWrapper":"CreatePlatformEndpointResult" + }, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateTopic":{ + "name":"CreateTopic", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateTopicInput"}, + "output":{ + "shape":"CreateTopicResponse", + "resultWrapper":"CreateTopicResult" + }, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TopicLimitExceededException", + "error":{ + "code":"TopicLimitExceeded", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteEndpoint":{ + "name":"DeleteEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteEndpointInput"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeletePlatformApplication":{ + "name":"DeletePlatformApplication", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeletePlatformApplicationInput"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteTopic":{ + "name":"DeleteTopic", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTopicInput"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "GetEndpointAttributes":{ + "name":"GetEndpointAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetEndpointAttributesInput"}, + "output":{ + "shape":"GetEndpointAttributesResponse", + "resultWrapper":"GetEndpointAttributesResult" + }, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "GetPlatformApplicationAttributes":{ + "name":"GetPlatformApplicationAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetPlatformApplicationAttributesInput"}, + "output":{ + "shape":"GetPlatformApplicationAttributesResponse", + "resultWrapper":"GetPlatformApplicationAttributesResult" + }, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "GetSubscriptionAttributes":{ + "name":"GetSubscriptionAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetSubscriptionAttributesInput"}, + "output":{ + "shape":"GetSubscriptionAttributesResponse", + "resultWrapper":"GetSubscriptionAttributesResult" + }, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "GetTopicAttributes":{ + "name":"GetTopicAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetTopicAttributesInput"}, + "output":{ + "shape":"GetTopicAttributesResponse", + "resultWrapper":"GetTopicAttributesResult" + }, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "ListEndpointsByPlatformApplication":{ + "name":"ListEndpointsByPlatformApplication", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListEndpointsByPlatformApplicationInput"}, + "output":{ + "shape":"ListEndpointsByPlatformApplicationResponse", + "resultWrapper":"ListEndpointsByPlatformApplicationResult" + }, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "ListPlatformApplications":{ + "name":"ListPlatformApplications", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListPlatformApplicationsInput"}, + "output":{ + "shape":"ListPlatformApplicationsResponse", + "resultWrapper":"ListPlatformApplicationsResult" + }, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "ListSubscriptions":{ + "name":"ListSubscriptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListSubscriptionsInput"}, + "output":{ + "shape":"ListSubscriptionsResponse", + "resultWrapper":"ListSubscriptionsResult" + }, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "ListSubscriptionsByTopic":{ + "name":"ListSubscriptionsByTopic", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListSubscriptionsByTopicInput"}, + "output":{ + "shape":"ListSubscriptionsByTopicResponse", + "resultWrapper":"ListSubscriptionsByTopicResult" + }, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "ListTopics":{ + "name":"ListTopics", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTopicsInput"}, + "output":{ + "shape":"ListTopicsResponse", + "resultWrapper":"ListTopicsResult" + }, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "Publish":{ + "name":"Publish", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PublishInput"}, + "output":{ + "shape":"PublishResponse", + "resultWrapper":"PublishResult" + }, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterValueException", + "error":{ + "code":"ParameterValueInvalid", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"EndpointDisabledException", + "error":{ + "code":"EndpointDisabled", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"PlatformApplicationDisabledException", + "error":{ + "code":"PlatformApplicationDisabled", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "RemovePermission":{ + "name":"RemovePermission", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RemovePermissionInput"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "SetEndpointAttributes":{ + "name":"SetEndpointAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetEndpointAttributesInput"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "SetPlatformApplicationAttributes":{ + "name":"SetPlatformApplicationAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetPlatformApplicationAttributesInput"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "SetSubscriptionAttributes":{ + "name":"SetSubscriptionAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetSubscriptionAttributesInput"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "SetTopicAttributes":{ + "name":"SetTopicAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetTopicAttributesInput"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "Subscribe":{ + "name":"Subscribe", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SubscribeInput"}, + "output":{ + "shape":"SubscribeResponse", + "resultWrapper":"SubscribeResult" + }, + "errors":[ + { + "shape":"SubscriptionLimitExceededException", + "error":{ + "code":"SubscriptionLimitExceeded", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "Unsubscribe":{ + "name":"Unsubscribe", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UnsubscribeInput"}, + "errors":[ + { + "shape":"InvalidParameterException", + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalErrorException", + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + { + "shape":"AuthorizationErrorException", + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"NotFoundException", + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + } + }, + "shapes":{ + "ActionsList":{ + "type":"list", + "member":{"shape":"action"} + }, + "AddPermissionInput":{ + "type":"structure", + "required":[ + "TopicArn", + "Label", + "AWSAccountId", + "ActionName" + ], + "members":{ + "TopicArn":{"shape":"topicARN"}, + "Label":{"shape":"label"}, + "AWSAccountId":{"shape":"DelegatesList"}, + "ActionName":{"shape":"ActionsList"} + } + }, + "AuthorizationErrorException":{ + "type":"structure", + "members":{ + "message":{"shape":"string"} + }, + "error":{ + "code":"AuthorizationError", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "Binary":{"type":"blob"}, + "ConfirmSubscriptionInput":{ + "type":"structure", + "required":[ + "TopicArn", + "Token" + ], + "members":{ + "TopicArn":{"shape":"topicARN"}, + "Token":{"shape":"token"}, + "AuthenticateOnUnsubscribe":{"shape":"authenticateOnUnsubscribe"} + } + }, + "ConfirmSubscriptionResponse":{ + "type":"structure", + "members":{ + "SubscriptionArn":{"shape":"subscriptionARN"} + } + }, + "CreateEndpointResponse":{ + "type":"structure", + "members":{ + "EndpointArn":{"shape":"String"} + } + }, + "CreatePlatformApplicationInput":{ + "type":"structure", + "required":[ + "Name", + "Platform", + "Attributes" + ], + "members":{ + "Name":{"shape":"String"}, + "Platform":{"shape":"String"}, + "Attributes":{"shape":"MapStringToString"} + } + }, + "CreatePlatformApplicationResponse":{ + "type":"structure", + "members":{ + "PlatformApplicationArn":{"shape":"String"} + } + }, + "CreatePlatformEndpointInput":{ + "type":"structure", + "required":[ + "PlatformApplicationArn", + "Token" + ], + "members":{ + "PlatformApplicationArn":{"shape":"String"}, + "Token":{"shape":"String"}, + "CustomUserData":{"shape":"String"}, + "Attributes":{"shape":"MapStringToString"} + } + }, + "CreateTopicInput":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"topicName"} + } + }, + "CreateTopicResponse":{ + "type":"structure", + "members":{ + "TopicArn":{"shape":"topicARN"} + } + }, + "DelegatesList":{ + "type":"list", + "member":{"shape":"delegate"} + }, + "DeleteEndpointInput":{ + "type":"structure", + "required":["EndpointArn"], + "members":{ + "EndpointArn":{"shape":"String"} + } + }, + "DeletePlatformApplicationInput":{ + "type":"structure", + "required":["PlatformApplicationArn"], + "members":{ + "PlatformApplicationArn":{"shape":"String"} + } + }, + "DeleteTopicInput":{ + "type":"structure", + "required":["TopicArn"], + "members":{ + "TopicArn":{"shape":"topicARN"} + } + }, + "Endpoint":{ + "type":"structure", + "members":{ + "EndpointArn":{"shape":"String"}, + "Attributes":{"shape":"MapStringToString"} + } + }, + "EndpointDisabledException":{ + "type":"structure", + "members":{ + "message":{"shape":"string"} + }, + "error":{ + "code":"EndpointDisabled", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "GetEndpointAttributesInput":{ + "type":"structure", + "required":["EndpointArn"], + "members":{ + "EndpointArn":{"shape":"String"} + } + }, + "GetEndpointAttributesResponse":{ + "type":"structure", + "members":{ + "Attributes":{"shape":"MapStringToString"} + } + }, + "GetPlatformApplicationAttributesInput":{ + "type":"structure", + "required":["PlatformApplicationArn"], + "members":{ + "PlatformApplicationArn":{"shape":"String"} + } + }, + "GetPlatformApplicationAttributesResponse":{ + "type":"structure", + "members":{ + "Attributes":{"shape":"MapStringToString"} + } + }, + "GetSubscriptionAttributesInput":{ + "type":"structure", + "required":["SubscriptionArn"], + "members":{ + "SubscriptionArn":{"shape":"subscriptionARN"} + } + }, + "GetSubscriptionAttributesResponse":{ + "type":"structure", + "members":{ + "Attributes":{"shape":"SubscriptionAttributesMap"} + } + }, + "GetTopicAttributesInput":{ + "type":"structure", + "required":["TopicArn"], + "members":{ + "TopicArn":{"shape":"topicARN"} + } + }, + "GetTopicAttributesResponse":{ + "type":"structure", + "members":{ + "Attributes":{"shape":"TopicAttributesMap"} + } + }, + "InternalErrorException":{ + "type":"structure", + "members":{ + "message":{"shape":"string"} + }, + "error":{ + "code":"InternalError", + "httpStatusCode":500 + }, + "exception":true, + "fault":true + }, + "InvalidParameterException":{ + "type":"structure", + "members":{ + "message":{"shape":"string"} + }, + "error":{ + "code":"InvalidParameter", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidParameterValueException":{ + "type":"structure", + "members":{ + "message":{"shape":"string"} + }, + "error":{ + "code":"ParameterValueInvalid", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ListEndpointsByPlatformApplicationInput":{ + "type":"structure", + "required":["PlatformApplicationArn"], + "members":{ + "PlatformApplicationArn":{"shape":"String"}, + "NextToken":{"shape":"String"} + } + }, + "ListEndpointsByPlatformApplicationResponse":{ + "type":"structure", + "members":{ + "Endpoints":{"shape":"ListOfEndpoints"}, + "NextToken":{"shape":"String"} + } + }, + "ListOfEndpoints":{ + "type":"list", + "member":{"shape":"Endpoint"} + }, + "ListOfPlatformApplications":{ + "type":"list", + "member":{"shape":"PlatformApplication"} + }, + "ListPlatformApplicationsInput":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"String"} + } + }, + "ListPlatformApplicationsResponse":{ + "type":"structure", + "members":{ + "PlatformApplications":{"shape":"ListOfPlatformApplications"}, + "NextToken":{"shape":"String"} + } + }, + "ListSubscriptionsByTopicInput":{ + "type":"structure", + "required":["TopicArn"], + "members":{ + "TopicArn":{"shape":"topicARN"}, + "NextToken":{"shape":"nextToken"} + } + }, + "ListSubscriptionsByTopicResponse":{ + "type":"structure", + "members":{ + "Subscriptions":{"shape":"SubscriptionsList"}, + "NextToken":{"shape":"nextToken"} + } + }, + "ListSubscriptionsInput":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"nextToken"} + } + }, + "ListSubscriptionsResponse":{ + "type":"structure", + "members":{ + "Subscriptions":{"shape":"SubscriptionsList"}, + "NextToken":{"shape":"nextToken"} + } + }, + "ListTopicsInput":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"nextToken"} + } + }, + "ListTopicsResponse":{ + "type":"structure", + "members":{ + "Topics":{"shape":"TopicsList"}, + "NextToken":{"shape":"nextToken"} + } + }, + "MapStringToString":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "MessageAttributeMap":{ + "type":"map", + "key":{ + "shape":"String", + "locationName":"Name" + }, + "value":{ + "shape":"MessageAttributeValue", + "locationName":"Value" + } + }, + "MessageAttributeValue":{ + "type":"structure", + "required":["DataType"], + "members":{ + "DataType":{"shape":"String"}, + "StringValue":{"shape":"String"}, + "BinaryValue":{"shape":"Binary"} + } + }, + "NotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"string"} + }, + "error":{ + "code":"NotFound", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "PlatformApplication":{ + "type":"structure", + "members":{ + "PlatformApplicationArn":{"shape":"String"}, + "Attributes":{"shape":"MapStringToString"} + } + }, + "PlatformApplicationDisabledException":{ + "type":"structure", + "members":{ + "message":{"shape":"string"} + }, + "error":{ + "code":"PlatformApplicationDisabled", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "PublishInput":{ + "type":"structure", + "required":["Message"], + "members":{ + "TopicArn":{"shape":"topicARN"}, + "TargetArn":{"shape":"String"}, + "Message":{"shape":"message"}, + "Subject":{"shape":"subject"}, + "MessageStructure":{"shape":"messageStructure"}, + "MessageAttributes":{"shape":"MessageAttributeMap"} + } + }, + "PublishResponse":{ + "type":"structure", + "members":{ + "MessageId":{"shape":"messageId"} + } + }, + "RemovePermissionInput":{ + "type":"structure", + "required":[ + "TopicArn", + "Label" + ], + "members":{ + "TopicArn":{"shape":"topicARN"}, + "Label":{"shape":"label"} + } + }, + "SetEndpointAttributesInput":{ + "type":"structure", + "required":[ + "EndpointArn", + "Attributes" + ], + "members":{ + "EndpointArn":{"shape":"String"}, + "Attributes":{"shape":"MapStringToString"} + } + }, + "SetPlatformApplicationAttributesInput":{ + "type":"structure", + "required":[ + "PlatformApplicationArn", + "Attributes" + ], + "members":{ + "PlatformApplicationArn":{"shape":"String"}, + "Attributes":{"shape":"MapStringToString"} + } + }, + "SetSubscriptionAttributesInput":{ + "type":"structure", + "required":[ + "SubscriptionArn", + "AttributeName" + ], + "members":{ + "SubscriptionArn":{"shape":"subscriptionARN"}, + "AttributeName":{"shape":"attributeName"}, + "AttributeValue":{"shape":"attributeValue"} + } + }, + "SetTopicAttributesInput":{ + "type":"structure", + "required":[ + "TopicArn", + "AttributeName" + ], + "members":{ + "TopicArn":{"shape":"topicARN"}, + "AttributeName":{"shape":"attributeName"}, + "AttributeValue":{"shape":"attributeValue"} + } + }, + "String":{"type":"string"}, + "SubscribeInput":{ + "type":"structure", + "required":[ + "TopicArn", + "Protocol" + ], + "members":{ + "TopicArn":{"shape":"topicARN"}, + "Protocol":{"shape":"protocol"}, + "Endpoint":{"shape":"endpoint"} + } + }, + "SubscribeResponse":{ + "type":"structure", + "members":{ + "SubscriptionArn":{"shape":"subscriptionARN"} + } + }, + "Subscription":{ + "type":"structure", + "members":{ + "SubscriptionArn":{"shape":"subscriptionARN"}, + "Owner":{"shape":"account"}, + "Protocol":{"shape":"protocol"}, + "Endpoint":{"shape":"endpoint"}, + "TopicArn":{"shape":"topicARN"} + } + }, + "SubscriptionAttributesMap":{ + "type":"map", + "key":{"shape":"attributeName"}, + "value":{"shape":"attributeValue"} + }, + "SubscriptionLimitExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"string"} + }, + "error":{ + "code":"SubscriptionLimitExceeded", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "SubscriptionsList":{ + "type":"list", + "member":{"shape":"Subscription"} + }, + "Topic":{ + "type":"structure", + "members":{ + "TopicArn":{"shape":"topicARN"} + } + }, + "TopicAttributesMap":{ + "type":"map", + "key":{"shape":"attributeName"}, + "value":{"shape":"attributeValue"} + }, + "TopicLimitExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"string"} + }, + "error":{ + "code":"TopicLimitExceeded", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "TopicsList":{ + "type":"list", + "member":{"shape":"Topic"} + }, + "UnsubscribeInput":{ + "type":"structure", + "required":["SubscriptionArn"], + "members":{ + "SubscriptionArn":{"shape":"subscriptionARN"} + } + }, + "account":{"type":"string"}, + "action":{"type":"string"}, + "attributeName":{"type":"string"}, + "attributeValue":{"type":"string"}, + "authenticateOnUnsubscribe":{"type":"string"}, + "delegate":{"type":"string"}, + "endpoint":{"type":"string"}, + "label":{"type":"string"}, + "message":{"type":"string"}, + "messageId":{"type":"string"}, + "messageStructure":{"type":"string"}, + "nextToken":{"type":"string"}, + "protocol":{"type":"string"}, + "string":{"type":"string"}, + "subject":{"type":"string"}, + "subscriptionARN":{"type":"string"}, + "token":{"type":"string"}, + "topicARN":{"type":"string"}, + "topicName":{"type":"string"} + } +} diff --git a/lib/aws-sdk/Aws/data/sns/2010-03-31/docs-2.json b/lib/aws-sdk/Aws/data/sns/2010-03-31/docs-2.json new file mode 100644 index 0000000..e1835e6 --- /dev/null +++ b/lib/aws-sdk/Aws/data/sns/2010-03-31/docs-2.json @@ -0,0 +1,564 @@ +{ + "operations": { + "AddPermission": "

Adds a statement to a topic's access control policy, granting access for the specified AWS accounts to the specified actions.

", + "ConfirmSubscription": "

Verifies an endpoint owner's intent to receive messages by validating the token sent to the endpoint by an earlier Subscribe action. If the token is valid, the action creates a new subscription and returns its Amazon Resource Name (ARN). This call requires an AWS signature only when the AuthenticateOnUnsubscribe flag is set to \"true\".

", + "CreatePlatformApplication": "

Creates a platform application object for one of the supported push notification services, such as APNS and GCM, to which devices and mobile apps may register. You must specify PlatformPrincipal and PlatformCredential attributes when using the CreatePlatformApplication action. The PlatformPrincipal is received from the notification service. For APNS/APNS_SANDBOX, PlatformPrincipal is \"SSL certificate\". For GCM, PlatformPrincipal is not applicable. For ADM, PlatformPrincipal is \"client id\". The PlatformCredential is also received from the notification service. For APNS/APNS_SANDBOX, PlatformCredential is \"private key\". For GCM, PlatformCredential is \"API key\". For ADM, PlatformCredential is \"client secret\". The PlatformApplicationArn that is returned when using CreatePlatformApplication is then used as an attribute for the CreatePlatformEndpoint action. For more information, see Using Amazon SNS Mobile Push Notifications.

", + "CreatePlatformEndpoint": "

Creates an endpoint for a device and mobile app on one of the supported push notification services, such as GCM and APNS. CreatePlatformEndpoint requires the PlatformApplicationArn that is returned from CreatePlatformApplication. The EndpointArn that is returned when using CreatePlatformEndpoint can then be used by the Publish action to send a message to a mobile app or by the Subscribe action for subscription to a topic. The CreatePlatformEndpoint action is idempotent, so if the requester already owns an endpoint with the same device token and attributes, that endpoint's ARN is returned without creating a new endpoint. For more information, see Using Amazon SNS Mobile Push Notifications.

When using CreatePlatformEndpoint with Baidu, two attributes must be provided: ChannelId and UserId. The token field must also contain the ChannelId. For more information, see Creating an Amazon SNS Endpoint for Baidu.

", + "CreateTopic": "

Creates a topic to which notifications can be published. Users can create at most 3000 topics. For more information, see http://aws.amazon.com/sns. This action is idempotent, so if the requester already owns a topic with the specified name, that topic's ARN is returned without creating a new topic.

", + "DeleteEndpoint": "

Deletes the endpoint from Amazon SNS. This action is idempotent. For more information, see Using Amazon SNS Mobile Push Notifications.

", + "DeletePlatformApplication": "

Deletes a platform application object for one of the supported push notification services, such as APNS and GCM. For more information, see Using Amazon SNS Mobile Push Notifications.

", + "DeleteTopic": "

Deletes a topic and all its subscriptions. Deleting a topic might prevent some messages previously sent to the topic from being delivered to subscribers. This action is idempotent, so deleting a topic that does not exist does not result in an error.

", + "GetEndpointAttributes": "

Retrieves the endpoint attributes for a device on one of the supported push notification services, such as GCM and APNS. For more information, see Using Amazon SNS Mobile Push Notifications.

", + "GetPlatformApplicationAttributes": "

Retrieves the attributes of the platform application object for the supported push notification services, such as APNS and GCM. For more information, see Using Amazon SNS Mobile Push Notifications.

", + "GetSubscriptionAttributes": "

Returns all of the properties of a subscription.

", + "GetTopicAttributes": "

Returns all of the properties of a topic. Topic properties returned might differ based on the authorization of the user.

", + "ListEndpointsByPlatformApplication": "

Lists the endpoints and endpoint attributes for devices in a supported push notification service, such as GCM and APNS. The results for ListEndpointsByPlatformApplication are paginated and return a limited list of endpoints, up to 100. If additional records are available after the first page results, then a NextToken string will be returned. To receive the next page, you call ListEndpointsByPlatformApplication again using the NextToken string received from the previous call. When there are no more records to return, NextToken will be null. For more information, see Using Amazon SNS Mobile Push Notifications.

", + "ListPlatformApplications": "

Lists the platform application objects for the supported push notification services, such as APNS and GCM. The results for ListPlatformApplications are paginated and return a limited list of applications, up to 100. If additional records are available after the first page results, then a NextToken string will be returned. To receive the next page, you call ListPlatformApplications using the NextToken string received from the previous call. When there are no more records to return, NextToken will be null. For more information, see Using Amazon SNS Mobile Push Notifications.

", + "ListSubscriptions": "

Returns a list of the requester's subscriptions. Each call returns a limited list of subscriptions, up to 100. If there are more subscriptions, a NextToken is also returned. Use the NextToken parameter in a new ListSubscriptions call to get further results.

", + "ListSubscriptionsByTopic": "

Returns a list of the subscriptions to a specific topic. Each call returns a limited list of subscriptions, up to 100. If there are more subscriptions, a NextToken is also returned. Use the NextToken parameter in a new ListSubscriptionsByTopic call to get further results.

", + "ListTopics": "

Returns a list of the requester's topics. Each call returns a limited list of topics, up to 100. If there are more topics, a NextToken is also returned. Use the NextToken parameter in a new ListTopics call to get further results.

", + "Publish": "

Sends a message to all of a topic's subscribed endpoints. When a messageId is returned, the message has been saved and Amazon SNS will attempt to deliver it to the topic's subscribers shortly. The format of the outgoing message to each subscribed endpoint depends on the notification protocol selected.

To use the Publish action for sending a message to a mobile endpoint, such as an app on a Kindle device or mobile phone, you must specify the EndpointArn. The EndpointArn is returned when making a call with the CreatePlatformEndpoint action. The second example below shows a request and response for publishing to a mobile endpoint.

", + "RemovePermission": "

Removes a statement from a topic's access control policy.

", + "SetEndpointAttributes": "

Sets the attributes for an endpoint for a device on one of the supported push notification services, such as GCM and APNS. For more information, see Using Amazon SNS Mobile Push Notifications.

", + "SetPlatformApplicationAttributes": "

Sets the attributes of the platform application object for the supported push notification services, such as APNS and GCM. For more information, see Using Amazon SNS Mobile Push Notifications.

", + "SetSubscriptionAttributes": "

Allows a subscription owner to set an attribute of the topic to a new value.

", + "SetTopicAttributes": "

Allows a topic owner to set an attribute of the topic to a new value.

", + "Subscribe": "

Prepares to subscribe an endpoint by sending the endpoint a confirmation message. To actually create a subscription, the endpoint owner must call the ConfirmSubscription action with the token from the confirmation message. Confirmation tokens are valid for three days.

", + "Unsubscribe": "

Deletes a subscription. If the subscription requires authentication for deletion, only the owner of the subscription or the topic's owner can unsubscribe, and an AWS signature is required. If the Unsubscribe call does not require authentication and the requester is not the subscription owner, a final cancellation message is delivered to the endpoint, so that the endpoint owner can easily resubscribe to the topic if the Unsubscribe request was unintended.

" + }, + "service": "Amazon Simple Notification Service

Amazon Simple Notification Service (Amazon SNS) is a web service that enables you to build distributed web-enabled applications. Applications can use Amazon SNS to easily push real-time notification messages to interested subscribers over multiple delivery protocols. For more information about this product see http://aws.amazon.com/sns. For detailed information about Amazon SNS features and their associated API calls, see the Amazon SNS Developer Guide.

We also provide SDKs that enable you to access Amazon SNS from your preferred programming language. The SDKs contain functionality that automatically takes care of tasks such as: cryptographically signing your service requests, retrying requests, and handling error responses. For a list of available SDKs, go to Tools for Amazon Web Services.

", + "shapes": { + "ActionsList": { + "base": null, + "refs": { + "AddPermissionInput$ActionName": "

The action you want to allow for the specified principal(s).

Valid values: any Amazon SNS action name.

" + } + }, + "AddPermissionInput": { + "base": null, + "refs": { + } + }, + "AuthorizationErrorException": { + "base": "

Indicates that the user has been denied access to the requested resource.

", + "refs": { + } + }, + "Binary": { + "base": null, + "refs": { + "MessageAttributeValue$BinaryValue": "

Binary type attributes can store any binary data, for example, compressed data, encrypted data, or images.

" + } + }, + "ConfirmSubscriptionInput": { + "base": "Input for ConfirmSubscription action.", + "refs": { + } + }, + "ConfirmSubscriptionResponse": { + "base": "Response for ConfirmSubscriptions action.", + "refs": { + } + }, + "CreateEndpointResponse": { + "base": "

Response from CreateEndpoint action.

", + "refs": { + } + }, + "CreatePlatformApplicationInput": { + "base": "

Input for CreatePlatformApplication action.

", + "refs": { + } + }, + "CreatePlatformApplicationResponse": { + "base": "

Response from CreatePlatformApplication action.

", + "refs": { + } + }, + "CreatePlatformEndpointInput": { + "base": "

Input for CreatePlatformEndpoint action.

", + "refs": { + } + }, + "CreateTopicInput": { + "base": "

Input for CreateTopic action.

", + "refs": { + } + }, + "CreateTopicResponse": { + "base": "

Response from CreateTopic action.

", + "refs": { + } + }, + "DelegatesList": { + "base": null, + "refs": { + "AddPermissionInput$AWSAccountId": "

The AWS account IDs of the users (principals) who will be given access to the specified actions. The users must have AWS accounts, but do not need to be signed up for this service.

" + } + }, + "DeleteEndpointInput": { + "base": "

Input for DeleteEndpoint action.

", + "refs": { + } + }, + "DeletePlatformApplicationInput": { + "base": "

Input for DeletePlatformApplication action.

", + "refs": { + } + }, + "DeleteTopicInput": { + "base": null, + "refs": { + } + }, + "Endpoint": { + "base": "

Endpoint for mobile app and device.

", + "refs": { + "ListOfEndpoints$member": null + } + }, + "EndpointDisabledException": { + "base": "

Exception error indicating endpoint disabled.

", + "refs": { + } + }, + "GetEndpointAttributesInput": { + "base": "

Input for GetEndpointAttributes action.

", + "refs": { + } + }, + "GetEndpointAttributesResponse": { + "base": "

Response from GetEndpointAttributes of the EndpointArn.

", + "refs": { + } + }, + "GetPlatformApplicationAttributesInput": { + "base": "

Input for GetPlatformApplicationAttributes action.

", + "refs": { + } + }, + "GetPlatformApplicationAttributesResponse": { + "base": "

Response for GetPlatformApplicationAttributes action.

", + "refs": { + } + }, + "GetSubscriptionAttributesInput": { + "base": "

Input for GetSubscriptionAttributes.

", + "refs": { + } + }, + "GetSubscriptionAttributesResponse": { + "base": "

Response for GetSubscriptionAttributes action.

", + "refs": { + } + }, + "GetTopicAttributesInput": { + "base": "

Input for GetTopicAttributes action.

", + "refs": { + } + }, + "GetTopicAttributesResponse": { + "base": "

Response for GetTopicAttributes action.

", + "refs": { + } + }, + "InternalErrorException": { + "base": "

Indicates an internal service error.

", + "refs": { + } + }, + "InvalidParameterException": { + "base": "

Indicates that a request parameter does not comply with the associated constraints.

", + "refs": { + } + }, + "InvalidParameterValueException": { + "base": "

Indicates that a request parameter does not comply with the associated constraints.

", + "refs": { + } + }, + "ListEndpointsByPlatformApplicationInput": { + "base": "

Input for ListEndpointsByPlatformApplication action.

", + "refs": { + } + }, + "ListEndpointsByPlatformApplicationResponse": { + "base": "

Response for ListEndpointsByPlatformApplication action.

", + "refs": { + } + }, + "ListOfEndpoints": { + "base": null, + "refs": { + "ListEndpointsByPlatformApplicationResponse$Endpoints": "

Endpoints returned for ListEndpointsByPlatformApplication action.

" + } + }, + "ListOfPlatformApplications": { + "base": null, + "refs": { + "ListPlatformApplicationsResponse$PlatformApplications": "

Platform applications returned when calling ListPlatformApplications action.

" + } + }, + "ListPlatformApplicationsInput": { + "base": "

Input for ListPlatformApplications action.

", + "refs": { + } + }, + "ListPlatformApplicationsResponse": { + "base": "

Response for ListPlatformApplications action.

", + "refs": { + } + }, + "ListSubscriptionsByTopicInput": { + "base": "

Input for ListSubscriptionsByTopic action.

", + "refs": { + } + }, + "ListSubscriptionsByTopicResponse": { + "base": "

Response for ListSubscriptionsByTopic action.

", + "refs": { + } + }, + "ListSubscriptionsInput": { + "base": "Input for ListSubscriptions action.", + "refs": { + } + }, + "ListSubscriptionsResponse": { + "base": "

Response for ListSubscriptions action

", + "refs": { + } + }, + "ListTopicsInput": { + "base": null, + "refs": { + } + }, + "ListTopicsResponse": { + "base": "

Response for ListTopics action.

", + "refs": { + } + }, + "MapStringToString": { + "base": null, + "refs": { + "CreatePlatformApplicationInput$Attributes": "

For a list of attributes, see SetPlatformApplicationAttributes

", + "CreatePlatformEndpointInput$Attributes": "

For a list of attributes, see SetEndpointAttributes.

", + "Endpoint$Attributes": "

Attributes for endpoint.

", + "GetEndpointAttributesResponse$Attributes": "

Attributes include the following:

  • CustomUserData -- arbitrary user data to associate with the endpoint. Amazon SNS does not use this data. The data must be in UTF-8 format and less than 2KB.
  • Enabled -- flag that enables/disables delivery to the endpoint. Amazon SNS will set this to false when a notification service indicates to Amazon SNS that the endpoint is invalid. Users can set it back to true, typically after updating Token.
  • Token -- device token, also referred to as a registration id, for an app and mobile device. This is returned from the notification service when an app and mobile device are registered with the notification service.
", + "GetPlatformApplicationAttributesResponse$Attributes": "

Attributes include the following:

  • EventEndpointCreated -- Topic ARN to which EndpointCreated event notifications should be sent.
  • EventEndpointDeleted -- Topic ARN to which EndpointDeleted event notifications should be sent.
  • EventEndpointUpdated -- Topic ARN to which EndpointUpdate event notifications should be sent.
  • EventDeliveryFailure -- Topic ARN to which DeliveryFailure event notifications should be sent upon Direct Publish delivery failure (permanent) to one of the application's endpoints.
", + "PlatformApplication$Attributes": "

Attributes for platform application object.

", + "SetEndpointAttributesInput$Attributes": "

A map of the endpoint attributes. Attributes in this map include the following:

  • CustomUserData -- arbitrary user data to associate with the endpoint. Amazon SNS does not use this data. The data must be in UTF-8 format and less than 2KB.
  • Enabled -- flag that enables/disables delivery to the endpoint. Amazon SNS will set this to false when a notification service indicates to Amazon SNS that the endpoint is invalid. Users can set it back to true, typically after updating Token.
  • Token -- device token, also referred to as a registration id, for an app and mobile device. This is returned from the notification service when an app and mobile device are registered with the notification service.
", + "SetPlatformApplicationAttributesInput$Attributes": "

A map of the platform application attributes. Attributes in this map include the following:

  • PlatformCredential -- The credential received from the notification service. For APNS/APNS_SANDBOX, PlatformCredential is \"private key\". For GCM, PlatformCredential is \"API key\". For ADM, PlatformCredential is \"client secret\".
  • PlatformPrincipal -- The principal received from the notification service. For APNS/APNS_SANDBOX, PlatformPrincipal is \"SSL certificate\". For GCM, PlatformPrincipal is not applicable. For ADM, PlatformPrincipal is \"client id\".
  • EventEndpointCreated -- Topic ARN to which EndpointCreated event notifications should be sent.
  • EventEndpointDeleted -- Topic ARN to which EndpointDeleted event notifications should be sent.
  • EventEndpointUpdated -- Topic ARN to which EndpointUpdate event notifications should be sent.
  • EventDeliveryFailure -- Topic ARN to which DeliveryFailure event notifications should be sent upon Direct Publish delivery failure (permanent) to one of the application's endpoints.
" + } + }, + "MessageAttributeMap": { + "base": null, + "refs": { + "PublishInput$MessageAttributes": "

Message attributes for Publish action.

" + } + }, + "MessageAttributeValue": { + "base": "

The user-specified message attribute value. For string data types, the value attribute has the same restrictions on the content as the message body. For more information, see Publish.

Name, type, and value must not be empty or null. In addition, the message body should not be empty or null. All parts of the message attribute, including name, type, and value, are included in the message size restriction, which is currently 256 KB (262,144 bytes). For more information, see Using Amazon SNS Message Attributes.

", + "refs": { + "MessageAttributeMap$value": null + } + }, + "NotFoundException": { + "base": "

Indicates that the requested resource does not exist.

", + "refs": { + } + }, + "PlatformApplication": { + "base": "

Platform application object.

", + "refs": { + "ListOfPlatformApplications$member": null + } + }, + "PlatformApplicationDisabledException": { + "base": "

Exception error indicating platform application disabled.

", + "refs": { + } + }, + "PublishInput": { + "base": "

Input for Publish action.

", + "refs": { + } + }, + "PublishResponse": { + "base": "

Response for Publish action.

", + "refs": { + } + }, + "RemovePermissionInput": { + "base": "

Input for RemovePermission action.

", + "refs": { + } + }, + "SetEndpointAttributesInput": { + "base": "

Input for SetEndpointAttributes action.

", + "refs": { + } + }, + "SetPlatformApplicationAttributesInput": { + "base": "

Input for SetPlatformApplicationAttributes action.

", + "refs": { + } + }, + "SetSubscriptionAttributesInput": { + "base": "

Input for SetSubscriptionAttributes action.

", + "refs": { + } + }, + "SetTopicAttributesInput": { + "base": "

Input for SetTopicAttributes action.

", + "refs": { + } + }, + "String": { + "base": null, + "refs": { + "CreateEndpointResponse$EndpointArn": "

EndpointArn returned from CreateEndpoint action.

", + "CreatePlatformApplicationInput$Name": "

Application names must be made up of only uppercase and lowercase ASCII letters, numbers, underscores, hyphens, and periods, and must be between 1 and 256 characters long.

", + "CreatePlatformApplicationInput$Platform": "

The following platforms are supported: ADM (Amazon Device Messaging), APNS (Apple Push Notification Service), APNS_SANDBOX, and GCM (Google Cloud Messaging).

", + "CreatePlatformApplicationResponse$PlatformApplicationArn": "

PlatformApplicationArn is returned.

", + "CreatePlatformEndpointInput$PlatformApplicationArn": "

PlatformApplicationArn returned from CreatePlatformApplication is used to create a an endpoint.

", + "CreatePlatformEndpointInput$Token": "

Unique identifier created by the notification service for an app on a device. The specific name for Token will vary, depending on which notification service is being used. For example, when using APNS as the notification service, you need the device token. Alternatively, when using GCM or ADM, the device token equivalent is called the registration ID.

", + "CreatePlatformEndpointInput$CustomUserData": "

Arbitrary user data to associate with the endpoint. Amazon SNS does not use this data. The data must be in UTF-8 format and less than 2KB.

", + "DeleteEndpointInput$EndpointArn": "

EndpointArn of endpoint to delete.

", + "DeletePlatformApplicationInput$PlatformApplicationArn": "

PlatformApplicationArn of platform application object to delete.

", + "Endpoint$EndpointArn": "

EndpointArn for mobile app and device.

", + "GetEndpointAttributesInput$EndpointArn": "

EndpointArn for GetEndpointAttributes input.

", + "GetPlatformApplicationAttributesInput$PlatformApplicationArn": "

PlatformApplicationArn for GetPlatformApplicationAttributesInput.

", + "ListEndpointsByPlatformApplicationInput$PlatformApplicationArn": "

PlatformApplicationArn for ListEndpointsByPlatformApplicationInput action.

", + "ListEndpointsByPlatformApplicationInput$NextToken": "

NextToken string is used when calling ListEndpointsByPlatformApplication action to retrieve additional records that are available after the first page results.

", + "ListEndpointsByPlatformApplicationResponse$NextToken": "

NextToken string is returned when calling ListEndpointsByPlatformApplication action if additional records are available after the first page results.

", + "ListPlatformApplicationsInput$NextToken": "

NextToken string is used when calling ListPlatformApplications action to retrieve additional records that are available after the first page results.

", + "ListPlatformApplicationsResponse$NextToken": "

NextToken string is returned when calling ListPlatformApplications action if additional records are available after the first page results.

", + "MapStringToString$key": null, + "MapStringToString$value": null, + "MessageAttributeMap$key": null, + "MessageAttributeValue$DataType": "

Amazon SNS supports the following logical data types: String, Number, and Binary. For more information, see Message Attribute Data Types.

", + "MessageAttributeValue$StringValue": "

Strings are Unicode with UTF8 binary encoding. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters.

", + "PlatformApplication$PlatformApplicationArn": "

PlatformApplicationArn for platform application object.

", + "PublishInput$TargetArn": "

Either TopicArn or EndpointArn, but not both.

", + "SetEndpointAttributesInput$EndpointArn": "

EndpointArn used for SetEndpointAttributes action.

", + "SetPlatformApplicationAttributesInput$PlatformApplicationArn": "

PlatformApplicationArn for SetPlatformApplicationAttributes action.

" + } + }, + "SubscribeInput": { + "base": "Input for Subscribe action.", + "refs": { + } + }, + "SubscribeResponse": { + "base": "Response for Subscribe action.", + "refs": { + } + }, + "Subscription": { + "base": "

A wrapper type for the attributes of an Amazon SNS subscription.

", + "refs": { + "SubscriptionsList$member": null + } + }, + "SubscriptionAttributesMap": { + "base": null, + "refs": { + "GetSubscriptionAttributesResponse$Attributes": "

A map of the subscription's attributes. Attributes in this map include the following:

  • SubscriptionArn -- the subscription's ARN
  • TopicArn -- the topic ARN that the subscription is associated with
  • Owner -- the AWS account ID of the subscription's owner
  • ConfirmationWasAuthenticated -- true if the subscription confirmation request was authenticated
  • DeliveryPolicy -- the JSON serialization of the subscription's delivery policy
  • EffectiveDeliveryPolicy -- the JSON serialization of the effective delivery policy that takes into account the topic delivery policy and account system defaults
" + } + }, + "SubscriptionLimitExceededException": { + "base": "

Indicates that the customer already owns the maximum allowed number of subscriptions.

", + "refs": { + } + }, + "SubscriptionsList": { + "base": null, + "refs": { + "ListSubscriptionsByTopicResponse$Subscriptions": "

A list of subscriptions.

", + "ListSubscriptionsResponse$Subscriptions": "

A list of subscriptions.

" + } + }, + "Topic": { + "base": "

A wrapper type for the topic's Amazon Resource Name (ARN). To retrieve a topic's attributes, use GetTopicAttributes.

", + "refs": { + "TopicsList$member": null + } + }, + "TopicAttributesMap": { + "base": null, + "refs": { + "GetTopicAttributesResponse$Attributes": "

A map of the topic's attributes. Attributes in this map include the following:

  • TopicArn -- the topic's ARN
  • Owner -- the AWS account ID of the topic's owner
  • Policy -- the JSON serialization of the topic's access control policy
  • DisplayName -- the human-readable name used in the \"From\" field for notifications to email and email-json endpoints
  • SubscriptionsPending -- the number of subscriptions pending confirmation on this topic
  • SubscriptionsConfirmed -- the number of confirmed subscriptions on this topic
  • SubscriptionsDeleted -- the number of deleted subscriptions on this topic
  • DeliveryPolicy -- the JSON serialization of the topic's delivery policy
  • EffectiveDeliveryPolicy -- the JSON serialization of the effective delivery policy that takes into account system defaults
" + } + }, + "TopicLimitExceededException": { + "base": "

Indicates that the customer already owns the maximum allowed number of topics.

", + "refs": { + } + }, + "TopicsList": { + "base": null, + "refs": { + "ListTopicsResponse$Topics": "

A list of topic ARNs.

" + } + }, + "UnsubscribeInput": { + "base": "

Input for Unsubscribe action.

", + "refs": { + } + }, + "account": { + "base": null, + "refs": { + "Subscription$Owner": "

The subscription's owner.

" + } + }, + "action": { + "base": null, + "refs": { + "ActionsList$member": null + } + }, + "attributeName": { + "base": null, + "refs": { + "SetSubscriptionAttributesInput$AttributeName": "

The name of the attribute you want to set. Only a subset of the subscriptions attributes are mutable.

Valid values: DeliveryPolicy | RawMessageDelivery

", + "SetTopicAttributesInput$AttributeName": "

The name of the attribute you want to set. Only a subset of the topic's attributes are mutable.

Valid values: Policy | DisplayName | DeliveryPolicy

", + "SubscriptionAttributesMap$key": null, + "TopicAttributesMap$key": null + } + }, + "attributeValue": { + "base": null, + "refs": { + "SetSubscriptionAttributesInput$AttributeValue": "

The new value for the attribute in JSON format.

", + "SetTopicAttributesInput$AttributeValue": "

The new value for the attribute.

", + "SubscriptionAttributesMap$value": null, + "TopicAttributesMap$value": null + } + }, + "authenticateOnUnsubscribe": { + "base": null, + "refs": { + "ConfirmSubscriptionInput$AuthenticateOnUnsubscribe": "

Disallows unauthenticated unsubscribes of the subscription. If the value of this parameter is true and the request has an AWS signature, then only the topic owner and the subscription owner can unsubscribe the endpoint. The unsubscribe action requires AWS authentication.

" + } + }, + "delegate": { + "base": null, + "refs": { + "DelegatesList$member": null + } + }, + "endpoint": { + "base": null, + "refs": { + "SubscribeInput$Endpoint": "

The endpoint that you want to receive notifications. Endpoints vary by protocol:

  • For the http protocol, the endpoint is an URL beginning with \"http://\"
  • For the https protocol, the endpoint is a URL beginning with \"https://\"
  • For the email protocol, the endpoint is an email address
  • For the email-json protocol, the endpoint is an email address
  • For the sms protocol, the endpoint is a phone number of an SMS-enabled device
  • For the sqs protocol, the endpoint is the ARN of an Amazon SQS queue
  • For the application protocol, the endpoint is the EndpointArn of a mobile app and device.
", + "Subscription$Endpoint": "

The subscription's endpoint (format depends on the protocol).

" + } + }, + "label": { + "base": null, + "refs": { + "AddPermissionInput$Label": "

A unique identifier for the new policy statement.

", + "RemovePermissionInput$Label": "

The unique label of the statement you want to remove.

" + } + }, + "message": { + "base": null, + "refs": { + "PublishInput$Message": "

The message you want to send to the topic.

If you want to send the same message to all transport protocols, include the text of the message as a String value.

If you want to send different messages for each transport protocol, set the value of the MessageStructure parameter to json and use a JSON object for the Message parameter. See the Examples section for the format of the JSON object.

Constraints: Messages must be UTF-8 encoded strings at most 256 KB in size (262144 bytes, not 262144 characters).

JSON-specific constraints:

  • Keys in the JSON object that correspond to supported transport protocols must have simple JSON string values.
  • The values will be parsed (unescaped) before they are used in outgoing messages.
  • Outbound notifications are JSON encoded (meaning that the characters will be reescaped for sending).
  • Values have a minimum length of 0 (the empty string, \"\", is allowed).
  • Values have a maximum length bounded by the overall message size (so, including multiple protocols may limit message sizes).
  • Non-string values will cause the key to be ignored.
  • Keys that do not correspond to supported transport protocols are ignored.
  • Duplicate keys are not allowed.
  • Failure to parse or validate any key or value in the message will cause the Publish call to return an error (no partial delivery).

" + } + }, + "messageId": { + "base": null, + "refs": { + "PublishResponse$MessageId": "

Unique identifier assigned to the published message.

Length Constraint: Maximum 100 characters

" + } + }, + "messageStructure": { + "base": null, + "refs": { + "PublishInput$MessageStructure": "

Set MessageStructure to json if you want to send a different message for each protocol. For example, using one publish action, you can send a short message to your SMS subscribers and a longer message to your email subscribers. If you set MessageStructure to json, the value of the Message parameter must:

  • be a syntactically valid JSON object; and
  • contain at least a top-level JSON key of \"default\" with a value that is a string.

You can define other top-level keys that define the message you want to send to a specific transport protocol (e.g., \"http\").

For information about sending different messages for each protocol using the AWS Management Console, go to Create Different Messages for Each Protocol in the Amazon Simple Notification Service Getting Started Guide.

Valid value: json

" + } + }, + "nextToken": { + "base": null, + "refs": { + "ListSubscriptionsByTopicInput$NextToken": "

Token returned by the previous ListSubscriptionsByTopic request.

", + "ListSubscriptionsByTopicResponse$NextToken": "

Token to pass along to the next ListSubscriptionsByTopic request. This element is returned if there are more subscriptions to retrieve.

", + "ListSubscriptionsInput$NextToken": "

Token returned by the previous ListSubscriptions request.

", + "ListSubscriptionsResponse$NextToken": "

Token to pass along to the next ListSubscriptions request. This element is returned if there are more subscriptions to retrieve.

", + "ListTopicsInput$NextToken": "

Token returned by the previous ListTopics request.

", + "ListTopicsResponse$NextToken": "

Token to pass along to the next ListTopics request. This element is returned if there are additional topics to retrieve.

" + } + }, + "protocol": { + "base": null, + "refs": { + "SubscribeInput$Protocol": "

The protocol you want to use. Supported protocols include:

  • http -- delivery of JSON-encoded message via HTTP POST
  • https -- delivery of JSON-encoded message via HTTPS POST
  • email -- delivery of message via SMTP
  • email-json -- delivery of JSON-encoded message via SMTP
  • sms -- delivery of message via SMS
  • sqs -- delivery of JSON-encoded message to an Amazon SQS queue
  • application -- delivery of JSON-encoded message to an EndpointArn for a mobile app and device.
", + "Subscription$Protocol": "

The subscription's protocol.

" + } + }, + "string": { + "base": null, + "refs": { + "AuthorizationErrorException$message": null, + "EndpointDisabledException$message": "

Message for endpoint disabled.

", + "InternalErrorException$message": null, + "InvalidParameterException$message": null, + "InvalidParameterValueException$message": null, + "NotFoundException$message": null, + "PlatformApplicationDisabledException$message": "

Message for platform application disabled.

", + "SubscriptionLimitExceededException$message": null, + "TopicLimitExceededException$message": null + } + }, + "subject": { + "base": null, + "refs": { + "PublishInput$Subject": "

Optional parameter to be used as the \"Subject\" line when the message is delivered to email endpoints. This field will also be included, if present, in the standard JSON messages delivered to other endpoints.

Constraints: Subjects must be ASCII text that begins with a letter, number, or punctuation mark; must not include line breaks or control characters; and must be less than 100 characters long.

" + } + }, + "subscriptionARN": { + "base": null, + "refs": { + "ConfirmSubscriptionResponse$SubscriptionArn": "

The ARN of the created subscription.

", + "GetSubscriptionAttributesInput$SubscriptionArn": "

The ARN of the subscription whose properties you want to get.

", + "SetSubscriptionAttributesInput$SubscriptionArn": "

The ARN of the subscription to modify.

", + "SubscribeResponse$SubscriptionArn": "

The ARN of the subscription, if the service was able to create a subscription immediately (without requiring endpoint owner confirmation).

", + "Subscription$SubscriptionArn": "

The subscription's ARN.

", + "UnsubscribeInput$SubscriptionArn": "

The ARN of the subscription to be deleted.

" + } + }, + "token": { + "base": null, + "refs": { + "ConfirmSubscriptionInput$Token": "

Short-lived token sent to an endpoint during the Subscribe action.

" + } + }, + "topicARN": { + "base": null, + "refs": { + "AddPermissionInput$TopicArn": "

The ARN of the topic whose access control policy you wish to modify.

", + "ConfirmSubscriptionInput$TopicArn": "

The ARN of the topic for which you wish to confirm a subscription.

", + "CreateTopicResponse$TopicArn": "

The Amazon Resource Name (ARN) assigned to the created topic.

", + "DeleteTopicInput$TopicArn": "

The ARN of the topic you want to delete.

", + "GetTopicAttributesInput$TopicArn": "

The ARN of the topic whose properties you want to get.

", + "ListSubscriptionsByTopicInput$TopicArn": "

The ARN of the topic for which you wish to find subscriptions.

", + "PublishInput$TopicArn": "

The topic you want to publish to.

", + "RemovePermissionInput$TopicArn": "

The ARN of the topic whose access control policy you wish to modify.

", + "SetTopicAttributesInput$TopicArn": "

The ARN of the topic to modify.

", + "SubscribeInput$TopicArn": "

The ARN of the topic you want to subscribe to.

", + "Subscription$TopicArn": "

The ARN of the subscription's topic.

", + "Topic$TopicArn": "

The topic's ARN.

" + } + }, + "topicName": { + "base": null, + "refs": { + "CreateTopicInput$Name": "

The name of the topic you want to create.

Constraints: Topic names must be made up of only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 256 characters long.

" + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/sns/2010-03-31/paginators-1.json b/lib/aws-sdk/Aws/data/sns/2010-03-31/paginators-1.json new file mode 100644 index 0000000..455e470 --- /dev/null +++ b/lib/aws-sdk/Aws/data/sns/2010-03-31/paginators-1.json @@ -0,0 +1,29 @@ +{ + "pagination": { + "ListEndpointsByPlatformApplication": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Endpoints" + }, + "ListPlatformApplications": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "PlatformApplications" + }, + "ListSubscriptions": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Subscriptions" + }, + "ListSubscriptionsByTopic": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Subscriptions" + }, + "ListTopics": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Topics" + } + } +} diff --git a/lib/aws-sdk/Aws/data/sqs/2012-11-05/api-2.json b/lib/aws-sdk/Aws/data/sqs/2012-11-05/api-2.json new file mode 100644 index 0000000..e3caadb --- /dev/null +++ b/lib/aws-sdk/Aws/data/sqs/2012-11-05/api-2.json @@ -0,0 +1,1159 @@ +{ + "metadata":{ + "apiVersion":"2012-11-05", + "endpointPrefix":"sqs", + "serviceAbbreviation":"Amazon SQS", + "serviceFullName":"Amazon Simple Queue Service", + "signatureVersion":"v4", + "xmlNamespace":"http://queue.amazonaws.com/doc/2012-11-05/", + "protocol":"query" + }, + "operations":{ + "AddPermission":{ + "name":"AddPermission", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddPermissionRequest"}, + "errors":[ + { + "shape":"OverLimit", + "error":{ + "code":"OverLimit", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "ChangeMessageVisibility":{ + "name":"ChangeMessageVisibility", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ChangeMessageVisibilityRequest"}, + "errors":[ + { + "shape":"MessageNotInflight", + "error":{ + "code":"AWS.SimpleQueueService.MessageNotInflight", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ReceiptHandleIsInvalid", + "exception":true + } + ] + }, + "ChangeMessageVisibilityBatch":{ + "name":"ChangeMessageVisibilityBatch", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ChangeMessageVisibilityBatchRequest"}, + "output":{ + "shape":"ChangeMessageVisibilityBatchResult", + "resultWrapper":"ChangeMessageVisibilityBatchResult" + }, + "errors":[ + { + "shape":"TooManyEntriesInBatchRequest", + "error":{ + "code":"AWS.SimpleQueueService.TooManyEntriesInBatchRequest", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"EmptyBatchRequest", + "error":{ + "code":"AWS.SimpleQueueService.EmptyBatchRequest", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"BatchEntryIdsNotDistinct", + "error":{ + "code":"AWS.SimpleQueueService.BatchEntryIdsNotDistinct", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidBatchEntryId", + "error":{ + "code":"AWS.SimpleQueueService.InvalidBatchEntryId", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateQueue":{ + "name":"CreateQueue", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateQueueRequest"}, + "output":{ + "shape":"CreateQueueResult", + "resultWrapper":"CreateQueueResult" + }, + "errors":[ + { + "shape":"QueueDeletedRecently", + "error":{ + "code":"AWS.SimpleQueueService.QueueDeletedRecently", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"QueueNameExists", + "error":{ + "code":"QueueAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteMessage":{ + "name":"DeleteMessage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteMessageRequest"}, + "errors":[ + { + "shape":"InvalidIdFormat", + "exception":true + }, + { + "shape":"ReceiptHandleIsInvalid", + "exception":true + } + ] + }, + "DeleteMessageBatch":{ + "name":"DeleteMessageBatch", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteMessageBatchRequest"}, + "output":{ + "shape":"DeleteMessageBatchResult", + "resultWrapper":"DeleteMessageBatchResult" + }, + "errors":[ + { + "shape":"TooManyEntriesInBatchRequest", + "error":{ + "code":"AWS.SimpleQueueService.TooManyEntriesInBatchRequest", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"EmptyBatchRequest", + "error":{ + "code":"AWS.SimpleQueueService.EmptyBatchRequest", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"BatchEntryIdsNotDistinct", + "error":{ + "code":"AWS.SimpleQueueService.BatchEntryIdsNotDistinct", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidBatchEntryId", + "error":{ + "code":"AWS.SimpleQueueService.InvalidBatchEntryId", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteQueue":{ + "name":"DeleteQueue", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteQueueRequest"} + }, + "GetQueueAttributes":{ + "name":"GetQueueAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetQueueAttributesRequest"}, + "output":{ + "shape":"GetQueueAttributesResult", + "resultWrapper":"GetQueueAttributesResult" + }, + "errors":[ + { + "shape":"InvalidAttributeName", + "exception":true + } + ] + }, + "GetQueueUrl":{ + "name":"GetQueueUrl", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetQueueUrlRequest"}, + "output":{ + "shape":"GetQueueUrlResult", + "resultWrapper":"GetQueueUrlResult" + }, + "errors":[ + { + "shape":"QueueDoesNotExist", + "error":{ + "code":"AWS.SimpleQueueService.NonExistentQueue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "ListDeadLetterSourceQueues":{ + "name":"ListDeadLetterSourceQueues", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDeadLetterSourceQueuesRequest"}, + "output":{ + "shape":"ListDeadLetterSourceQueuesResult", + "resultWrapper":"ListDeadLetterSourceQueuesResult" + }, + "errors":[ + { + "shape":"QueueDoesNotExist", + "error":{ + "code":"AWS.SimpleQueueService.NonExistentQueue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "ListQueues":{ + "name":"ListQueues", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListQueuesRequest"}, + "output":{ + "shape":"ListQueuesResult", + "resultWrapper":"ListQueuesResult" + } + }, + "PurgeQueue":{ + "name":"PurgeQueue", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PurgeQueueRequest"}, + "errors":[ + { + "shape":"QueueDoesNotExist", + "error":{ + "code":"AWS.SimpleQueueService.NonExistentQueue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"PurgeQueueInProgress", + "error":{ + "code":"AWS.SimpleQueueService.PurgeQueueInProgress", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "ReceiveMessage":{ + "name":"ReceiveMessage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ReceiveMessageRequest"}, + "output":{ + "shape":"ReceiveMessageResult", + "resultWrapper":"ReceiveMessageResult" + }, + "errors":[ + { + "shape":"OverLimit", + "error":{ + "code":"OverLimit", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + } + ] + }, + "RemovePermission":{ + "name":"RemovePermission", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RemovePermissionRequest"} + }, + "SendMessage":{ + "name":"SendMessage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SendMessageRequest"}, + "output":{ + "shape":"SendMessageResult", + "resultWrapper":"SendMessageResult" + }, + "errors":[ + { + "shape":"InvalidMessageContents", + "exception":true + }, + { + "shape":"UnsupportedOperation", + "error":{ + "code":"AWS.SimpleQueueService.UnsupportedOperation", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "SendMessageBatch":{ + "name":"SendMessageBatch", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SendMessageBatchRequest"}, + "output":{ + "shape":"SendMessageBatchResult", + "resultWrapper":"SendMessageBatchResult" + }, + "errors":[ + { + "shape":"TooManyEntriesInBatchRequest", + "error":{ + "code":"AWS.SimpleQueueService.TooManyEntriesInBatchRequest", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"EmptyBatchRequest", + "error":{ + "code":"AWS.SimpleQueueService.EmptyBatchRequest", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"BatchEntryIdsNotDistinct", + "error":{ + "code":"AWS.SimpleQueueService.BatchEntryIdsNotDistinct", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"BatchRequestTooLong", + "error":{ + "code":"AWS.SimpleQueueService.BatchRequestTooLong", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidBatchEntryId", + "error":{ + "code":"AWS.SimpleQueueService.InvalidBatchEntryId", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"UnsupportedOperation", + "error":{ + "code":"AWS.SimpleQueueService.UnsupportedOperation", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "SetQueueAttributes":{ + "name":"SetQueueAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetQueueAttributesRequest"}, + "errors":[ + { + "shape":"InvalidAttributeName", + "exception":true + } + ] + } + }, + "shapes":{ + "AWSAccountIdList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"AWSAccountId" + }, + "flattened":true + }, + "ActionNameList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"ActionName" + }, + "flattened":true + }, + "AddPermissionRequest":{ + "type":"structure", + "required":[ + "QueueUrl", + "Label", + "AWSAccountIds", + "Actions" + ], + "members":{ + "QueueUrl":{"shape":"String"}, + "Label":{"shape":"String"}, + "AWSAccountIds":{"shape":"AWSAccountIdList"}, + "Actions":{"shape":"ActionNameList"} + } + }, + "AttributeMap":{ + "type":"map", + "key":{ + "shape":"QueueAttributeName", + "locationName":"Name" + }, + "value":{ + "shape":"String", + "locationName":"Value" + }, + "flattened":true, + "locationName":"Attribute" + }, + "AttributeNameList":{ + "type":"list", + "member":{ + "shape":"QueueAttributeName", + "locationName":"AttributeName" + }, + "flattened":true + }, + "BatchEntryIdsNotDistinct":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AWS.SimpleQueueService.BatchEntryIdsNotDistinct", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "BatchRequestTooLong":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AWS.SimpleQueueService.BatchRequestTooLong", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "BatchResultErrorEntry":{ + "type":"structure", + "required":[ + "Id", + "SenderFault", + "Code" + ], + "members":{ + "Id":{"shape":"String"}, + "SenderFault":{"shape":"Boolean"}, + "Code":{"shape":"String"}, + "Message":{"shape":"String"} + } + }, + "BatchResultErrorEntryList":{ + "type":"list", + "member":{ + "shape":"BatchResultErrorEntry", + "locationName":"BatchResultErrorEntry" + }, + "flattened":true + }, + "Binary":{"type":"blob"}, + "BinaryList":{ + "type":"list", + "member":{ + "shape":"Binary", + "locationName":"BinaryListValue" + } + }, + "Boolean":{"type":"boolean"}, + "ChangeMessageVisibilityBatchRequest":{ + "type":"structure", + "required":[ + "QueueUrl", + "Entries" + ], + "members":{ + "QueueUrl":{"shape":"String"}, + "Entries":{"shape":"ChangeMessageVisibilityBatchRequestEntryList"} + } + }, + "ChangeMessageVisibilityBatchRequestEntry":{ + "type":"structure", + "required":[ + "Id", + "ReceiptHandle" + ], + "members":{ + "Id":{"shape":"String"}, + "ReceiptHandle":{"shape":"String"}, + "VisibilityTimeout":{"shape":"Integer"} + } + }, + "ChangeMessageVisibilityBatchRequestEntryList":{ + "type":"list", + "member":{ + "shape":"ChangeMessageVisibilityBatchRequestEntry", + "locationName":"ChangeMessageVisibilityBatchRequestEntry" + }, + "flattened":true + }, + "ChangeMessageVisibilityBatchResult":{ + "type":"structure", + "required":[ + "Successful", + "Failed" + ], + "members":{ + "Successful":{"shape":"ChangeMessageVisibilityBatchResultEntryList"}, + "Failed":{"shape":"BatchResultErrorEntryList"} + } + }, + "ChangeMessageVisibilityBatchResultEntry":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{"shape":"String"} + } + }, + "ChangeMessageVisibilityBatchResultEntryList":{ + "type":"list", + "member":{ + "shape":"ChangeMessageVisibilityBatchResultEntry", + "locationName":"ChangeMessageVisibilityBatchResultEntry" + }, + "flattened":true + }, + "ChangeMessageVisibilityRequest":{ + "type":"structure", + "required":[ + "QueueUrl", + "ReceiptHandle", + "VisibilityTimeout" + ], + "members":{ + "QueueUrl":{"shape":"String"}, + "ReceiptHandle":{"shape":"String"}, + "VisibilityTimeout":{"shape":"Integer"} + } + }, + "CreateQueueRequest":{ + "type":"structure", + "required":["QueueName"], + "members":{ + "QueueName":{"shape":"String"}, + "Attributes":{ + "shape":"AttributeMap", + "locationName":"Attribute" + } + } + }, + "CreateQueueResult":{ + "type":"structure", + "members":{ + "QueueUrl":{"shape":"String"} + } + }, + "DeleteMessageBatchRequest":{ + "type":"structure", + "required":[ + "QueueUrl", + "Entries" + ], + "members":{ + "QueueUrl":{"shape":"String"}, + "Entries":{"shape":"DeleteMessageBatchRequestEntryList"} + } + }, + "DeleteMessageBatchRequestEntry":{ + "type":"structure", + "required":[ + "Id", + "ReceiptHandle" + ], + "members":{ + "Id":{"shape":"String"}, + "ReceiptHandle":{"shape":"String"} + } + }, + "DeleteMessageBatchRequestEntryList":{ + "type":"list", + "member":{ + "shape":"DeleteMessageBatchRequestEntry", + "locationName":"DeleteMessageBatchRequestEntry" + }, + "flattened":true + }, + "DeleteMessageBatchResult":{ + "type":"structure", + "required":[ + "Successful", + "Failed" + ], + "members":{ + "Successful":{"shape":"DeleteMessageBatchResultEntryList"}, + "Failed":{"shape":"BatchResultErrorEntryList"} + } + }, + "DeleteMessageBatchResultEntry":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{"shape":"String"} + } + }, + "DeleteMessageBatchResultEntryList":{ + "type":"list", + "member":{ + "shape":"DeleteMessageBatchResultEntry", + "locationName":"DeleteMessageBatchResultEntry" + }, + "flattened":true + }, + "DeleteMessageRequest":{ + "type":"structure", + "required":[ + "QueueUrl", + "ReceiptHandle" + ], + "members":{ + "QueueUrl":{"shape":"String"}, + "ReceiptHandle":{"shape":"String"} + } + }, + "DeleteQueueRequest":{ + "type":"structure", + "required":["QueueUrl"], + "members":{ + "QueueUrl":{"shape":"String"} + } + }, + "EmptyBatchRequest":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AWS.SimpleQueueService.EmptyBatchRequest", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "GetQueueAttributesRequest":{ + "type":"structure", + "required":["QueueUrl"], + "members":{ + "QueueUrl":{"shape":"String"}, + "AttributeNames":{"shape":"AttributeNameList"} + } + }, + "GetQueueAttributesResult":{ + "type":"structure", + "members":{ + "Attributes":{ + "shape":"AttributeMap", + "locationName":"Attribute" + } + } + }, + "GetQueueUrlRequest":{ + "type":"structure", + "required":["QueueName"], + "members":{ + "QueueName":{"shape":"String"}, + "QueueOwnerAWSAccountId":{"shape":"String"} + } + }, + "GetQueueUrlResult":{ + "type":"structure", + "members":{ + "QueueUrl":{"shape":"String"} + } + }, + "Integer":{"type":"integer"}, + "InvalidAttributeName":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidBatchEntryId":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AWS.SimpleQueueService.InvalidBatchEntryId", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidIdFormat":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "InvalidMessageContents":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "ListDeadLetterSourceQueuesRequest":{ + "type":"structure", + "required":["QueueUrl"], + "members":{ + "QueueUrl":{"shape":"String"} + } + }, + "ListDeadLetterSourceQueuesResult":{ + "type":"structure", + "required":["queueUrls"], + "members":{ + "queueUrls":{"shape":"QueueUrlList"} + } + }, + "ListQueuesRequest":{ + "type":"structure", + "members":{ + "QueueNamePrefix":{"shape":"String"} + } + }, + "ListQueuesResult":{ + "type":"structure", + "members":{ + "QueueUrls":{"shape":"QueueUrlList"} + } + }, + "Message":{ + "type":"structure", + "members":{ + "MessageId":{"shape":"String"}, + "ReceiptHandle":{"shape":"String"}, + "MD5OfBody":{"shape":"String"}, + "Body":{"shape":"String"}, + "Attributes":{ + "shape":"AttributeMap", + "locationName":"Attribute" + }, + "MD5OfMessageAttributes":{"shape":"String"}, + "MessageAttributes":{ + "shape":"MessageAttributeMap", + "locationName":"MessageAttribute" + } + } + }, + "MessageAttributeMap":{ + "type":"map", + "key":{ + "shape":"String", + "locationName":"Name" + }, + "value":{ + "shape":"MessageAttributeValue", + "locationName":"Value" + }, + "flattened":true + }, + "MessageAttributeName":{"type":"string"}, + "MessageAttributeNameList":{ + "type":"list", + "member":{ + "shape":"MessageAttributeName", + "locationName":"MessageAttributeName" + }, + "flattened":true + }, + "MessageAttributeValue":{ + "type":"structure", + "required":["DataType"], + "members":{ + "StringValue":{"shape":"String"}, + "BinaryValue":{"shape":"Binary"}, + "StringListValues":{ + "shape":"StringList", + "flattened":true, + "locationName":"StringListValue" + }, + "BinaryListValues":{ + "shape":"BinaryList", + "flattened":true, + "locationName":"BinaryListValue" + }, + "DataType":{"shape":"String"} + } + }, + "MessageList":{ + "type":"list", + "member":{ + "shape":"Message", + "locationName":"Message" + }, + "flattened":true + }, + "MessageNotInflight":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AWS.SimpleQueueService.MessageNotInflight", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "OverLimit":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"OverLimit", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "PurgeQueueInProgress":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AWS.SimpleQueueService.PurgeQueueInProgress", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "PurgeQueueRequest":{ + "type":"structure", + "required":["QueueUrl"], + "members":{ + "QueueUrl":{"shape":"String"} + } + }, + "QueueAttributeName":{ + "type":"string", + "enum":[ + "Policy", + "VisibilityTimeout", + "MaximumMessageSize", + "MessageRetentionPeriod", + "ApproximateNumberOfMessages", + "ApproximateNumberOfMessagesNotVisible", + "CreatedTimestamp", + "LastModifiedTimestamp", + "QueueArn", + "ApproximateNumberOfMessagesDelayed", + "DelaySeconds", + "ReceiveMessageWaitTimeSeconds", + "RedrivePolicy" + ] + }, + "QueueDeletedRecently":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AWS.SimpleQueueService.QueueDeletedRecently", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "QueueDoesNotExist":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AWS.SimpleQueueService.NonExistentQueue", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "QueueNameExists":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"QueueAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "QueueUrlList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"QueueUrl" + }, + "flattened":true + }, + "ReceiptHandleIsInvalid":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "ReceiveMessageRequest":{ + "type":"structure", + "required":["QueueUrl"], + "members":{ + "QueueUrl":{"shape":"String"}, + "AttributeNames":{"shape":"AttributeNameList"}, + "MessageAttributeNames":{"shape":"MessageAttributeNameList"}, + "MaxNumberOfMessages":{"shape":"Integer"}, + "VisibilityTimeout":{"shape":"Integer"}, + "WaitTimeSeconds":{"shape":"Integer"} + } + }, + "ReceiveMessageResult":{ + "type":"structure", + "members":{ + "Messages":{"shape":"MessageList"} + } + }, + "RemovePermissionRequest":{ + "type":"structure", + "required":[ + "QueueUrl", + "Label" + ], + "members":{ + "QueueUrl":{"shape":"String"}, + "Label":{"shape":"String"} + } + }, + "SendMessageBatchRequest":{ + "type":"structure", + "required":[ + "QueueUrl", + "Entries" + ], + "members":{ + "QueueUrl":{"shape":"String"}, + "Entries":{"shape":"SendMessageBatchRequestEntryList"} + } + }, + "SendMessageBatchRequestEntry":{ + "type":"structure", + "required":[ + "Id", + "MessageBody" + ], + "members":{ + "Id":{"shape":"String"}, + "MessageBody":{"shape":"String"}, + "DelaySeconds":{"shape":"Integer"}, + "MessageAttributes":{ + "shape":"MessageAttributeMap", + "locationName":"MessageAttribute" + } + } + }, + "SendMessageBatchRequestEntryList":{ + "type":"list", + "member":{ + "shape":"SendMessageBatchRequestEntry", + "locationName":"SendMessageBatchRequestEntry" + }, + "flattened":true + }, + "SendMessageBatchResult":{ + "type":"structure", + "required":[ + "Successful", + "Failed" + ], + "members":{ + "Successful":{"shape":"SendMessageBatchResultEntryList"}, + "Failed":{"shape":"BatchResultErrorEntryList"} + } + }, + "SendMessageBatchResultEntry":{ + "type":"structure", + "required":[ + "Id", + "MessageId", + "MD5OfMessageBody" + ], + "members":{ + "Id":{"shape":"String"}, + "MessageId":{"shape":"String"}, + "MD5OfMessageBody":{"shape":"String"}, + "MD5OfMessageAttributes":{"shape":"String"} + } + }, + "SendMessageBatchResultEntryList":{ + "type":"list", + "member":{ + "shape":"SendMessageBatchResultEntry", + "locationName":"SendMessageBatchResultEntry" + }, + "flattened":true + }, + "SendMessageRequest":{ + "type":"structure", + "required":[ + "QueueUrl", + "MessageBody" + ], + "members":{ + "QueueUrl":{"shape":"String"}, + "MessageBody":{"shape":"String"}, + "DelaySeconds":{"shape":"Integer"}, + "MessageAttributes":{ + "shape":"MessageAttributeMap", + "locationName":"MessageAttribute" + } + } + }, + "SendMessageResult":{ + "type":"structure", + "members":{ + "MD5OfMessageBody":{"shape":"String"}, + "MD5OfMessageAttributes":{"shape":"String"}, + "MessageId":{"shape":"String"} + } + }, + "SetQueueAttributesRequest":{ + "type":"structure", + "required":[ + "QueueUrl", + "Attributes" + ], + "members":{ + "QueueUrl":{"shape":"String"}, + "Attributes":{ + "shape":"AttributeMap", + "locationName":"Attribute" + } + } + }, + "String":{"type":"string"}, + "StringList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"StringListValue" + } + }, + "TooManyEntriesInBatchRequest":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AWS.SimpleQueueService.TooManyEntriesInBatchRequest", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "UnsupportedOperation":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AWS.SimpleQueueService.UnsupportedOperation", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + } +} diff --git a/lib/aws-sdk/Aws/data/sqs/2012-11-05/docs-2.json b/lib/aws-sdk/Aws/data/sqs/2012-11-05/docs-2.json new file mode 100644 index 0000000..1b52dcc --- /dev/null +++ b/lib/aws-sdk/Aws/data/sqs/2012-11-05/docs-2.json @@ -0,0 +1,503 @@ +{ + "operations": { + "AddPermission": "

Adds a permission to a queue for a specific principal. This allows for sharing access to the queue.

When you create a queue, you have full control access rights for the queue. Only you (as owner of the queue) can grant or deny permissions to the queue. For more information about these permissions, see Shared Queues in the Amazon SQS Developer Guide.

AddPermission writes an Amazon SQS-generated policy. If you want to write your own policy, use SetQueueAttributes to upload your policy. For more information about writing your own policy, see Using The Access Policy Language in the Amazon SQS Developer Guide.

Some API actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this:

&Attribute.1=this

&Attribute.2=that

", + "ChangeMessageVisibility": "

Changes the visibility timeout of a specified message in a queue to a new value. The maximum allowed timeout value you can set the value to is 12 hours. This means you can't extend the timeout of a message in an existing queue to more than a total visibility timeout of 12 hours. (For more information visibility timeout, see Visibility Timeout in the Amazon SQS Developer Guide.)

For example, let's say you have a message and its default message visibility timeout is 30 minutes. You could call ChangeMessageVisiblity with a value of two hours and the effective timeout would be two hours and 30 minutes. When that time comes near you could again extend the time out by calling ChangeMessageVisiblity, but this time the maximum allowed timeout would be 9 hours and 30 minutes.

There is a 120,000 limit for the number of inflight messages per queue. Messages are inflight after they have been received from the queue by a consuming component, but have not yet been deleted from the queue. If you reach the 120,000 limit, you will receive an OverLimit error message from Amazon SQS. To help avoid reaching the limit, you should delete the messages from the queue after they have been processed. You can also increase the number of queues you use to process the messages.

If you attempt to set the VisibilityTimeout to an amount more than the maximum time left, Amazon SQS returns an error. It will not automatically recalculate and increase the timeout to the maximum time remaining. Unlike with a queue, when you change the visibility timeout for a specific message, that timeout value is applied immediately but is not saved in memory for that message. If you don't delete a message after it is received, the visibility timeout for the message the next time it is received reverts to the original timeout value, not the value you set with the ChangeMessageVisibility action.", + "ChangeMessageVisibilityBatch": "

Changes the visibility timeout of multiple messages. This is a batch version of ChangeMessageVisibility. The result of the action on each message is reported individually in the response. You can send up to 10 ChangeMessageVisibility requests with each ChangeMessageVisibilityBatch action.

Because the batch request can result in a combination of successful and unsuccessful actions, you should check for batch errors even when the call returns an HTTP status code of 200. Some API actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this:

&Attribute.1=this

&Attribute.2=that

", + "CreateQueue": "

Creates a new queue, or returns the URL of an existing one. When you request CreateQueue, you provide a name for the queue. To successfully create a new queue, you must provide a name that is unique within the scope of your own queues.

If you delete a queue, you must wait at least 60 seconds before creating a queue with the same name.

You may pass one or more attributes in the request. If you do not provide a value for any attribute, the queue will have the default value for that attribute. Permitted attributes are the same that can be set using SetQueueAttributes.

Use GetQueueUrl to get a queue's URL. GetQueueUrl requires only the QueueName parameter.

If you provide the name of an existing queue, along with the exact names and values of all the queue's attributes, CreateQueue returns the queue URL for the existing queue. If the queue name, attribute names, or attribute values do not match an existing queue, CreateQueue returns an error.

Some API actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this:

&Attribute.1=this

&Attribute.2=that

", + "DeleteMessage": "

Deletes the specified message from the specified queue. You specify the message by using the message's receipt handle and not the message ID you received when you sent the message. Even if the message is locked by another reader due to the visibility timeout setting, it is still deleted from the queue. If you leave a message in the queue for longer than the queue's configured retention period, Amazon SQS automatically deletes it.

The receipt handle is associated with a specific instance of receiving the message. If you receive a message more than once, the receipt handle you get each time you receive the message is different. When you request DeleteMessage, if you don't provide the most recently received receipt handle for the message, the request will still succeed, but the message might not be deleted.

It is possible you will receive a message even after you have deleted it. This might happen on rare occasions if one of the servers storing a copy of the message is unavailable when you request to delete the message. The copy remains on the server and might be returned to you again on a subsequent receive request. You should create your system to be idempotent so that receiving a particular message more than once is not a problem.

", + "DeleteMessageBatch": "

Deletes up to ten messages from the specified queue. This is a batch version of DeleteMessage. The result of the delete action on each message is reported individually in the response.

Because the batch request can result in a combination of successful and unsuccessful actions, you should check for batch errors even when the call returns an HTTP status code of 200.

Some API actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this:

&Attribute.1=this

&Attribute.2=that

", + "DeleteQueue": "

Deletes the queue specified by the queue URL, regardless of whether the queue is empty. If the specified queue does not exist, Amazon SQS returns a successful response.

Use DeleteQueue with care; once you delete your queue, any messages in the queue are no longer available.

When you delete a queue, the deletion process takes up to 60 seconds. Requests you send involving that queue during the 60 seconds might succeed. For example, a SendMessage request might succeed, but after the 60 seconds, the queue and that message you sent no longer exist. Also, when you delete a queue, you must wait at least 60 seconds before creating a queue with the same name.

We reserve the right to delete queues that have had no activity for more than 30 days. For more information, see How Amazon SQS Queues Work in the Amazon SQS Developer Guide.

", + "GetQueueAttributes": "

Gets attributes for the specified queue. The following attributes are supported:

  • All - returns all values.
  • ApproximateNumberOfMessages - returns the approximate number of visible messages in a queue. For more information, see Resources Required to Process Messages in the Amazon SQS Developer Guide.
  • ApproximateNumberOfMessagesNotVisible - returns the approximate number of messages that are not timed-out and not deleted. For more information, see Resources Required to Process Messages in the Amazon SQS Developer Guide.
  • VisibilityTimeout - returns the visibility timeout for the queue. For more information about visibility timeout, see Visibility Timeout in the Amazon SQS Developer Guide.
  • CreatedTimestamp - returns the time when the queue was created (epoch time in seconds).
  • LastModifiedTimestamp - returns the time when the queue was last changed (epoch time in seconds).
  • Policy - returns the queue's policy.
  • MaximumMessageSize - returns the limit of how many bytes a message can contain before Amazon SQS rejects it.
  • MessageRetentionPeriod - returns the number of seconds Amazon SQS retains a message.
  • QueueArn - returns the queue's Amazon resource name (ARN).
  • ApproximateNumberOfMessagesDelayed - returns the approximate number of messages that are pending to be added to the queue.
  • DelaySeconds - returns the default delay on the queue in seconds.
  • ReceiveMessageWaitTimeSeconds - returns the time for which a ReceiveMessage call will wait for a message to arrive.
  • RedrivePolicy - returns the parameters for dead letter queue functionality of the source queue. For more information about RedrivePolicy and dead letter queues, see Using Amazon SQS Dead Letter Queues in the Amazon SQS Developer Guide.

Going forward, new attributes might be added. If you are writing code that calls this action, we recommend that you structure your code so that it can handle new attributes gracefully. Some API actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this:

&Attribute.1=this

&Attribute.2=that

", + "GetQueueUrl": "

Returns the URL of an existing queue. This action provides a simple way to retrieve the URL of an Amazon SQS queue.

To access a queue that belongs to another AWS account, use the QueueOwnerAWSAccountId parameter to specify the account ID of the queue's owner. The queue's owner must grant you permission to access the queue. For more information about shared queue access, see AddPermission or go to Shared Queues in the Amazon SQS Developer Guide.

", + "ListDeadLetterSourceQueues": "

Returns a list of your queues that have the RedrivePolicy queue attribute configured with a dead letter queue.

For more information about using dead letter queues, see Using Amazon SQS Dead Letter Queues.

", + "ListQueues": "

Returns a list of your queues. The maximum number of queues that can be returned is 1000. If you specify a value for the optional QueueNamePrefix parameter, only queues with a name beginning with the specified value are returned.

", + "PurgeQueue": "

Deletes the messages in a queue specified by the queue URL.

When you use the PurgeQueue API, the deleted messages in the queue cannot be retrieved.

When you purge a queue, the message deletion process takes up to 60 seconds. All messages sent to the queue before calling PurgeQueue will be deleted; messages sent to the queue while it is being purged may be deleted. While the queue is being purged, messages sent to the queue before PurgeQueue was called may be received, but will be deleted within the next minute.

", + "ReceiveMessage": "

Retrieves one or more messages, with a maximum limit of 10 messages, from the specified queue. Long poll support is enabled by using the WaitTimeSeconds parameter. For more information, see Amazon SQS Long Poll in the Amazon SQS Developer Guide.

Short poll is the default behavior where a weighted random set of machines is sampled on a ReceiveMessage call. This means only the messages on the sampled machines are returned. If the number of messages in the queue is small (less than 1000), it is likely you will get fewer messages than you requested per ReceiveMessage call. If the number of messages in the queue is extremely small, you might not receive any messages in a particular ReceiveMessage response; in which case you should repeat the request.

For each message returned, the response includes the following:

  • Message body

  • MD5 digest of the message body. For information about MD5, go to http://www.faqs.org/rfcs/rfc1321.html.

  • Message ID you received when you sent the message to the queue.

  • Receipt handle.

  • Message attributes.

  • MD5 digest of the message attributes.

The receipt handle is the identifier you must provide when deleting the message. For more information, see Queue and Message Identifiers in the Amazon SQS Developer Guide.

You can provide the VisibilityTimeout parameter in your request, which will be applied to the messages that Amazon SQS returns in the response. If you do not include the parameter, the overall visibility timeout for the queue is used for the returned messages. For more information, see Visibility Timeout in the Amazon SQS Developer Guide.

Going forward, new attributes might be added. If you are writing code that calls this action, we recommend that you structure your code so that it can handle new attributes gracefully.

", + "RemovePermission": "

Revokes any permissions in the queue policy that matches the specified Label parameter. Only the owner of the queue can remove permissions.

", + "SendMessage": "

Delivers a message to the specified queue. With Amazon SQS, you now have the ability to send large payload messages that are up to 256KB (262,144 bytes) in size. To send large payloads, you must use an AWS SDK that supports SigV4 signing. To verify whether SigV4 is supported for an AWS SDK, check the SDK release notes.

The following list shows the characters (in Unicode) allowed in your message, according to the W3C XML specification. For more information, go to http://www.w3.org/TR/REC-xml/#charsets If you send any characters not included in the list, your request will be rejected.

#x9 | #xA | #xD | [#x20 to #xD7FF] | [#xE000 to #xFFFD] | [#x10000 to #x10FFFF]

", + "SendMessageBatch": "

Delivers up to ten messages to the specified queue. This is a batch version of SendMessage. The result of the send action on each message is reported individually in the response. The maximum allowed individual message size is 256 KB (262,144 bytes).

The maximum total payload size (i.e., the sum of all a batch's individual message lengths) is also 256 KB (262,144 bytes).

If the DelaySeconds parameter is not specified for an entry, the default for the queue is used.

The following list shows the characters (in Unicode) that are allowed in your message, according to the W3C XML specification. For more information, go to http://www.faqs.org/rfcs/rfc1321.html. If you send any characters that are not included in the list, your request will be rejected.

#x9 | #xA | #xD | [#x20 to #xD7FF] | [#xE000 to #xFFFD] | [#x10000 to #x10FFFF]

Because the batch request can result in a combination of successful and unsuccessful actions, you should check for batch errors even when the call returns an HTTP status code of 200. Some API actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this:

&Attribute.1=this

&Attribute.2=that

", + "SetQueueAttributes": "

Sets the value of one or more queue attributes. When you change a queue's attributes, the change can take up to 60 seconds for most of the attributes to propagate throughout the SQS system. Changes made to the MessageRetentionPeriod attribute can take up to 15 minutes.

Going forward, new attributes might be added. If you are writing code that calls this action, we recommend that you structure your code so that it can handle new attributes gracefully." + }, + "service": "

Welcome to the Amazon Simple Queue Service API Reference. This section describes who should read this guide, how the guide is organized, and other resources related to the Amazon Simple Queue Service (Amazon SQS).

Amazon SQS offers reliable and scalable hosted queues for storing messages as they travel between computers. By using Amazon SQS, you can move data between distributed components of your applications that perform different tasks without losing messages or requiring each component to be always available.

Helpful Links:

We also provide SDKs that enable you to access Amazon SQS from your preferred programming language. The SDKs contain functionality that automatically takes care of tasks such as:

  • Cryptographically signing your service requests
  • Retrying requests
  • Handling error responses

For a list of available SDKs, go to Tools for Amazon Web Services.

", + "shapes": { + "AWSAccountIdList": { + "base": null, + "refs": { + "AddPermissionRequest$AWSAccountIds": "

The AWS account number of the principal who will be given permission. The principal must have an AWS account, but does not need to be signed up for Amazon SQS. For information about locating the AWS account identification, see Your AWS Identifiers in the Amazon SQS Developer Guide.

" + } + }, + "ActionNameList": { + "base": null, + "refs": { + "AddPermissionRequest$Actions": "

The action the client wants to allow for the specified principal. The following are valid values: * | SendMessage | ReceiveMessage | DeleteMessage | ChangeMessageVisibility | GetQueueAttributes | GetQueueUrl. For more information about these actions, see Understanding Permissions in the Amazon SQS Developer Guide.

Specifying SendMessage, DeleteMessage, or ChangeMessageVisibility for the ActionName.n also grants permissions for the corresponding batch versions of those actions: SendMessageBatch, DeleteMessageBatch, and ChangeMessageVisibilityBatch.

" + } + }, + "AddPermissionRequest": { + "base": null, + "refs": { + } + }, + "AttributeMap": { + "base": null, + "refs": { + "CreateQueueRequest$Attributes": "

A map of attributes with their corresponding values.

The following lists the names, descriptions, and values of the special request parameters the CreateQueue action uses:

  • DelaySeconds - The time in seconds that the delivery of all messages in the queue will be delayed. An integer from 0 to 900 (15 minutes). The default for this attribute is 0 (zero).
  • MaximumMessageSize - The limit of how many bytes a message can contain before Amazon SQS rejects it. An integer from 1024 bytes (1 KiB) up to 262144 bytes (256 KiB). The default for this attribute is 262144 (256 KiB).
  • MessageRetentionPeriod - The number of seconds Amazon SQS retains a message. Integer representing seconds, from 60 (1 minute) to 1209600 (14 days). The default for this attribute is 345600 (4 days).
  • Policy - The queue's policy. A valid AWS policy. For more information about policy structure, see Overview of AWS IAM Policies in the Amazon IAM User Guide.
  • ReceiveMessageWaitTimeSeconds - The time for which a ReceiveMessage call will wait for a message to arrive. An integer from 0 to 20 (seconds). The default for this attribute is 0.
  • VisibilityTimeout - The visibility timeout for the queue. An integer from 0 to 43200 (12 hours). The default for this attribute is 30. For more information about visibility timeout, see Visibility Timeout in the Amazon SQS Developer Guide.

", + "GetQueueAttributesResult$Attributes": "

A map of attributes to the respective values.

", + "Message$Attributes": "

SenderId, SentTimestamp, ApproximateReceiveCount, and/or ApproximateFirstReceiveTimestamp. SentTimestamp and ApproximateFirstReceiveTimestamp are each returned as an integer representing the epoch time in milliseconds.

", + "SetQueueAttributesRequest$Attributes": "

A map of attributes to set.

The following lists the names, descriptions, and values of the special request parameters the SetQueueAttributes action uses:

  • DelaySeconds - The time in seconds that the delivery of all messages in the queue will be delayed. An integer from 0 to 900 (15 minutes). The default for this attribute is 0 (zero).
  • MaximumMessageSize - The limit of how many bytes a message can contain before Amazon SQS rejects it. An integer from 1024 bytes (1 KiB) up to 262144 bytes (256 KiB). The default for this attribute is 262144 (256 KiB).
  • MessageRetentionPeriod - The number of seconds Amazon SQS retains a message. Integer representing seconds, from 60 (1 minute) to 1209600 (14 days). The default for this attribute is 345600 (4 days).
  • Policy - The queue's policy. A valid AWS policy. For more information about policy structure, see Overview of AWS IAM Policies in the Amazon IAM User Guide.
  • ReceiveMessageWaitTimeSeconds - The time for which a ReceiveMessage call will wait for a message to arrive. An integer from 0 to 20 (seconds). The default for this attribute is 0.
  • VisibilityTimeout - The visibility timeout for the queue. An integer from 0 to 43200 (12 hours). The default for this attribute is 30. For more information about visibility timeout, see Visibility Timeout in the Amazon SQS Developer Guide.
  • RedrivePolicy - The parameters for dead letter queue functionality of the source queue. For more information about RedrivePolicy and dead letter queues, see Using Amazon SQS Dead Letter Queues in the Amazon SQS Developer Guide.

" + } + }, + "AttributeNameList": { + "base": null, + "refs": { + "GetQueueAttributesRequest$AttributeNames": "

A list of attributes to retrieve information for.

", + "ReceiveMessageRequest$AttributeNames": "

A list of attributes that need to be returned along with each message.

The following lists the names and descriptions of the attributes that can be returned:

  • All - returns all values.
  • ApproximateFirstReceiveTimestamp - returns the time when the message was first received from the queue (epoch time in milliseconds).
  • ApproximateReceiveCount - returns the number of times a message has been received from the queue but not deleted.
  • SenderId - returns the AWS account number (or the IP address, if anonymous access is allowed) of the sender.
  • SentTimestamp - returns the time when the message was sent to the queue (epoch time in milliseconds).
" + } + }, + "BatchEntryIdsNotDistinct": { + "base": "

Two or more batch entries have the same Id in the request.

", + "refs": { + } + }, + "BatchRequestTooLong": { + "base": "

The length of all the messages put together is more than the limit.

", + "refs": { + } + }, + "BatchResultErrorEntry": { + "base": "

This is used in the responses of batch API to give a detailed description of the result of an action on each entry in the request.

", + "refs": { + "BatchResultErrorEntryList$member": null + } + }, + "BatchResultErrorEntryList": { + "base": null, + "refs": { + "ChangeMessageVisibilityBatchResult$Failed": "

A list of BatchResultErrorEntry items.

", + "DeleteMessageBatchResult$Failed": "

A list of BatchResultErrorEntry items.

", + "SendMessageBatchResult$Failed": "

A list of BatchResultErrorEntry items with the error detail about each message that could not be enqueued.

" + } + }, + "Binary": { + "base": null, + "refs": { + "BinaryList$member": null, + "MessageAttributeValue$BinaryValue": "

Binary type attributes can store any binary data, for example, compressed data, encrypted data, or images.

" + } + }, + "BinaryList": { + "base": null, + "refs": { + "MessageAttributeValue$BinaryListValues": "

Not implemented. Reserved for future use.

" + } + }, + "Boolean": { + "base": null, + "refs": { + "BatchResultErrorEntry$SenderFault": "

Whether the error happened due to the sender's fault.

" + } + }, + "ChangeMessageVisibilityBatchRequest": { + "base": null, + "refs": { + } + }, + "ChangeMessageVisibilityBatchRequestEntry": { + "base": "

Encloses a receipt handle and an entry id for each message in ChangeMessageVisibilityBatch.

All of the following parameters are list parameters that must be prefixed with ChangeMessageVisibilityBatchRequestEntry.n, where n is an integer value starting with 1. For example, a parameter list for this action might look like this:

&ChangeMessageVisibilityBatchRequestEntry.1.Id=change_visibility_msg_2

&ChangeMessageVisibilityBatchRequestEntry.1.ReceiptHandle=Your_Receipt_Handle

&ChangeMessageVisibilityBatchRequestEntry.1.VisibilityTimeout=45

", + "refs": { + "ChangeMessageVisibilityBatchRequestEntryList$member": null + } + }, + "ChangeMessageVisibilityBatchRequestEntryList": { + "base": null, + "refs": { + "ChangeMessageVisibilityBatchRequest$Entries": "

A list of receipt handles of the messages for which the visibility timeout must be changed.

" + } + }, + "ChangeMessageVisibilityBatchResult": { + "base": "

For each message in the batch, the response contains a ChangeMessageVisibilityBatchResultEntry tag if the message succeeds or a BatchResultErrorEntry tag if the message fails.

", + "refs": { + } + }, + "ChangeMessageVisibilityBatchResultEntry": { + "base": "

Encloses the id of an entry in ChangeMessageVisibilityBatch.

", + "refs": { + "ChangeMessageVisibilityBatchResultEntryList$member": null + } + }, + "ChangeMessageVisibilityBatchResultEntryList": { + "base": null, + "refs": { + "ChangeMessageVisibilityBatchResult$Successful": "

A list of ChangeMessageVisibilityBatchResultEntry items.

" + } + }, + "ChangeMessageVisibilityRequest": { + "base": null, + "refs": { + } + }, + "CreateQueueRequest": { + "base": null, + "refs": { + } + }, + "CreateQueueResult": { + "base": "

Returns the QueueUrl element of the created queue.

", + "refs": { + } + }, + "DeleteMessageBatchRequest": { + "base": null, + "refs": { + } + }, + "DeleteMessageBatchRequestEntry": { + "base": "

Encloses a receipt handle and an identifier for it.

", + "refs": { + "DeleteMessageBatchRequestEntryList$member": null + } + }, + "DeleteMessageBatchRequestEntryList": { + "base": null, + "refs": { + "DeleteMessageBatchRequest$Entries": "

A list of receipt handles for the messages to be deleted.

" + } + }, + "DeleteMessageBatchResult": { + "base": "

For each message in the batch, the response contains a DeleteMessageBatchResultEntry tag if the message is deleted or a BatchResultErrorEntry tag if the message cannot be deleted.

", + "refs": { + } + }, + "DeleteMessageBatchResultEntry": { + "base": "

Encloses the id an entry in DeleteMessageBatch.

", + "refs": { + "DeleteMessageBatchResultEntryList$member": null + } + }, + "DeleteMessageBatchResultEntryList": { + "base": null, + "refs": { + "DeleteMessageBatchResult$Successful": "

A list of DeleteMessageBatchResultEntry items.

" + } + }, + "DeleteMessageRequest": { + "base": null, + "refs": { + } + }, + "DeleteQueueRequest": { + "base": null, + "refs": { + } + }, + "EmptyBatchRequest": { + "base": "

Batch request does not contain an entry.

", + "refs": { + } + }, + "GetQueueAttributesRequest": { + "base": null, + "refs": { + } + }, + "GetQueueAttributesResult": { + "base": "A list of returned queue attributes.", + "refs": { + } + }, + "GetQueueUrlRequest": { + "base": null, + "refs": { + } + }, + "GetQueueUrlResult": { + "base": "

For more information, see Responses in the Amazon SQS Developer Guide.

", + "refs": { + } + }, + "Integer": { + "base": null, + "refs": { + "ChangeMessageVisibilityBatchRequestEntry$VisibilityTimeout": "

The new value (in seconds) for the message's visibility timeout.

", + "ChangeMessageVisibilityRequest$VisibilityTimeout": "

The new value (in seconds - from 0 to 43200 - maximum 12 hours) for the message's visibility timeout.

", + "ReceiveMessageRequest$MaxNumberOfMessages": "

The maximum number of messages to return. Amazon SQS never returns more messages than this value but may return fewer. Values can be from 1 to 10. Default is 1.

All of the messages are not necessarily returned.

", + "ReceiveMessageRequest$VisibilityTimeout": "

The duration (in seconds) that the received messages are hidden from subsequent retrieve requests after being retrieved by a ReceiveMessage request.

", + "ReceiveMessageRequest$WaitTimeSeconds": "

The duration (in seconds) for which the call will wait for a message to arrive in the queue before returning. If a message is available, the call will return sooner than WaitTimeSeconds.

", + "SendMessageBatchRequestEntry$DelaySeconds": "

The number of seconds for which the message has to be delayed.

", + "SendMessageRequest$DelaySeconds": "

The number of seconds (0 to 900 - 15 minutes) to delay a specific message. Messages with a positive DelaySeconds value become available for processing after the delay time is finished. If you don't specify a value, the default value for the queue applies.

" + } + }, + "InvalidAttributeName": { + "base": "

The attribute referred to does not exist.

", + "refs": { + } + }, + "InvalidBatchEntryId": { + "base": "

The Id of a batch entry in a batch request does not abide by the specification.

", + "refs": { + } + }, + "InvalidIdFormat": { + "base": "

The receipt handle is not valid for the current version.

", + "refs": { + } + }, + "InvalidMessageContents": { + "base": "

The message contains characters outside the allowed set.

", + "refs": { + } + }, + "ListDeadLetterSourceQueuesRequest": { + "base": null, + "refs": { + } + }, + "ListDeadLetterSourceQueuesResult": { + "base": "A list of your dead letter source queues.", + "refs": { + } + }, + "ListQueuesRequest": { + "base": null, + "refs": { + } + }, + "ListQueuesResult": { + "base": "A list of your queues.", + "refs": { + } + }, + "Message": { + "base": "

An Amazon SQS message.

", + "refs": { + "MessageList$member": null + } + }, + "MessageAttributeMap": { + "base": null, + "refs": { + "Message$MessageAttributes": "

Each message attribute consists of a Name, Type, and Value. For more information, see Message Attribute Items.

", + "SendMessageBatchRequestEntry$MessageAttributes": "

Each message attribute consists of a Name, Type, and Value. For more information, see Message Attribute Items.

", + "SendMessageRequest$MessageAttributes": "

Each message attribute consists of a Name, Type, and Value. For more information, see Message Attribute Items.

" + } + }, + "MessageAttributeName": { + "base": null, + "refs": { + "MessageAttributeNameList$member": null + } + }, + "MessageAttributeNameList": { + "base": null, + "refs": { + "ReceiveMessageRequest$MessageAttributeNames": "

The name of the message attribute, where N is the index. The message attribute name can contain the following characters: A-Z, a-z, 0-9, underscore (_), hyphen (-), and period (.). The name must not start or end with a period, and it should not have successive periods. The name is case sensitive and must be unique among all attribute names for the message. The name can be up to 256 characters long. The name cannot start with \"AWS.\" or \"Amazon.\" (or any variations in casing), because these prefixes are reserved for use by Amazon Web Services.

When using ReceiveMessage, you can send a list of attribute names to receive, or you can return all of the attributes by specifying \"All\" or \".*\" in your request. You can also use \"foo.*\" to return all message attributes starting with the \"foo\" prefix.

" + } + }, + "MessageAttributeValue": { + "base": "

The user-specified message attribute value. For string data types, the value attribute has the same restrictions on the content as the message body. For more information, see SendMessage.

Name, type, and value must not be empty or null. In addition, the message body should not be empty or null. All parts of the message attribute, including name, type, and value, are included in the message size restriction, which is currently 256 KB (262,144 bytes).

", + "refs": { + "MessageAttributeMap$value": null + } + }, + "MessageList": { + "base": null, + "refs": { + "ReceiveMessageResult$Messages": "

A list of messages.

" + } + }, + "MessageNotInflight": { + "base": "

The message referred to is not in flight.

", + "refs": { + } + }, + "OverLimit": { + "base": "

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.

", + "refs": { + } + }, + "PurgeQueueInProgress": { + "base": "

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.

", + "refs": { + } + }, + "PurgeQueueRequest": { + "base": null, + "refs": { + } + }, + "QueueAttributeName": { + "base": null, + "refs": { + "AttributeMap$key": "

The name of a queue attribute.

", + "AttributeNameList$member": null + } + }, + "QueueDeletedRecently": { + "base": "

You must wait 60 seconds after deleting a queue before you can create another with the same name.

", + "refs": { + } + }, + "QueueDoesNotExist": { + "base": "

The queue referred to does not exist.

", + "refs": { + } + }, + "QueueNameExists": { + "base": "

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.

", + "refs": { + } + }, + "QueueUrlList": { + "base": null, + "refs": { + "ListDeadLetterSourceQueuesResult$queueUrls": "A list of source queue URLs that have the RedrivePolicy queue attribute configured with a dead letter queue.", + "ListQueuesResult$QueueUrls": "

A list of queue URLs, up to 1000 entries.

" + } + }, + "ReceiptHandleIsInvalid": { + "base": "

The receipt handle provided is not valid.

", + "refs": { + } + }, + "ReceiveMessageRequest": { + "base": null, + "refs": { + } + }, + "ReceiveMessageResult": { + "base": "A list of received messages.", + "refs": { + } + }, + "RemovePermissionRequest": { + "base": null, + "refs": { + } + }, + "SendMessageBatchRequest": { + "base": null, + "refs": { + } + }, + "SendMessageBatchRequestEntry": { + "base": "

Contains the details of a single Amazon SQS message along with a Id.

", + "refs": { + "SendMessageBatchRequestEntryList$member": null + } + }, + "SendMessageBatchRequestEntryList": { + "base": null, + "refs": { + "SendMessageBatchRequest$Entries": "

A list of SendMessageBatchRequestEntry items.

" + } + }, + "SendMessageBatchResult": { + "base": "

For each message in the batch, the response contains a SendMessageBatchResultEntry tag if the message succeeds or a BatchResultErrorEntry tag if the message fails.

", + "refs": { + } + }, + "SendMessageBatchResultEntry": { + "base": "

Encloses a message ID for successfully enqueued message of a SendMessageBatch.

", + "refs": { + "SendMessageBatchResultEntryList$member": null + } + }, + "SendMessageBatchResultEntryList": { + "base": null, + "refs": { + "SendMessageBatchResult$Successful": "

A list of SendMessageBatchResultEntry items.

" + } + }, + "SendMessageRequest": { + "base": null, + "refs": { + } + }, + "SendMessageResult": { + "base": "

The MD5OfMessageBody and MessageId elements.

", + "refs": { + } + }, + "SetQueueAttributesRequest": { + "base": null, + "refs": { + } + }, + "String": { + "base": null, + "refs": { + "AWSAccountIdList$member": null, + "ActionNameList$member": null, + "AddPermissionRequest$QueueUrl": "

The URL of the Amazon SQS queue to take action on.

", + "AddPermissionRequest$Label": "

The unique identification of the permission you're setting (e.g., AliceSendMessage). Constraints: Maximum 80 characters; alphanumeric characters, hyphens (-), and underscores (_) are allowed.

", + "AttributeMap$value": "

The value of a queue attribute.

", + "BatchResultErrorEntry$Id": "

The id of an entry in a batch request.

", + "BatchResultErrorEntry$Code": "

An error code representing why the action failed on this entry.

", + "BatchResultErrorEntry$Message": "

A message explaining why the action failed on this entry.

", + "ChangeMessageVisibilityBatchRequest$QueueUrl": "

The URL of the Amazon SQS queue to take action on.

", + "ChangeMessageVisibilityBatchRequestEntry$Id": "

An identifier for this particular receipt handle. This is used to communicate the result. Note that the Ids of a batch request need to be unique within the request.

", + "ChangeMessageVisibilityBatchRequestEntry$ReceiptHandle": "

A receipt handle.

", + "ChangeMessageVisibilityBatchResultEntry$Id": "

Represents a message whose visibility timeout has been changed successfully.

", + "ChangeMessageVisibilityRequest$QueueUrl": "

The URL of the Amazon SQS queue to take action on.

", + "ChangeMessageVisibilityRequest$ReceiptHandle": "

The receipt handle associated with the message whose visibility timeout should be changed. This parameter is returned by the ReceiveMessage action.

", + "CreateQueueRequest$QueueName": "

The name for the queue to be created.

", + "CreateQueueResult$QueueUrl": "

The URL for the created Amazon SQS queue.

", + "DeleteMessageBatchRequest$QueueUrl": "

The URL of the Amazon SQS queue to take action on.

", + "DeleteMessageBatchRequestEntry$Id": "

An identifier for this particular receipt handle. This is used to communicate the result. Note that the Ids of a batch request need to be unique within the request.

", + "DeleteMessageBatchRequestEntry$ReceiptHandle": "

A receipt handle.

", + "DeleteMessageBatchResultEntry$Id": "

Represents a successfully deleted message.

", + "DeleteMessageRequest$QueueUrl": "

The URL of the Amazon SQS queue to take action on.

", + "DeleteMessageRequest$ReceiptHandle": "

The receipt handle associated with the message to delete.

", + "DeleteQueueRequest$QueueUrl": "

The URL of the Amazon SQS queue to take action on.

", + "GetQueueAttributesRequest$QueueUrl": "

The URL of the Amazon SQS queue to take action on.

", + "GetQueueUrlRequest$QueueName": "

The name of the queue whose URL must be fetched. Maximum 80 characters; alphanumeric characters, hyphens (-), and underscores (_) are allowed.

", + "GetQueueUrlRequest$QueueOwnerAWSAccountId": "

The AWS account ID of the account that created the queue.

", + "GetQueueUrlResult$QueueUrl": "

The URL for the queue.

", + "ListDeadLetterSourceQueuesRequest$QueueUrl": "The queue URL of a dead letter queue.", + "ListQueuesRequest$QueueNamePrefix": "

A string to use for filtering the list results. Only those queues whose name begins with the specified string are returned.

", + "Message$MessageId": "

A unique identifier for the message. Message IDs are considered unique across all AWS accounts for an extended period of time.

", + "Message$ReceiptHandle": "

An identifier associated with the act of receiving the message. A new receipt handle is returned every time you receive a message. When deleting a message, you provide the last received receipt handle to delete the message.

", + "Message$MD5OfBody": "

An MD5 digest of the non-URL-encoded message body string.

", + "Message$Body": "

The message's contents (not URL-encoded).

", + "Message$MD5OfMessageAttributes": "

An MD5 digest of the non-URL-encoded message attribute string. This can be used to verify that Amazon SQS received the message correctly. Amazon SQS first URL decodes the message before creating the MD5 digest. For information about MD5, go to http://www.faqs.org/rfcs/rfc1321.html.

", + "MessageAttributeMap$key": null, + "MessageAttributeValue$StringValue": "

Strings are Unicode with UTF8 binary encoding. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters.

", + "MessageAttributeValue$DataType": "

Amazon SQS supports the following logical data types: String, Number, and Binary. In addition, you can append your own custom labels. For more information, see Message Attribute Data Types.

", + "PurgeQueueRequest$QueueUrl": "

The queue URL of the queue to delete the messages from when using the PurgeQueue API.

", + "QueueUrlList$member": null, + "ReceiveMessageRequest$QueueUrl": "

The URL of the Amazon SQS queue to take action on.

", + "RemovePermissionRequest$QueueUrl": "

The URL of the Amazon SQS queue to take action on.

", + "RemovePermissionRequest$Label": "

The identification of the permission to remove. This is the label added with the AddPermission action.

", + "SendMessageBatchRequest$QueueUrl": "

The URL of the Amazon SQS queue to take action on.

", + "SendMessageBatchRequestEntry$Id": "

An identifier for the message in this batch. This is used to communicate the result. Note that the Ids of a batch request need to be unique within the request.

", + "SendMessageBatchRequestEntry$MessageBody": "

Body of the message.

", + "SendMessageBatchResultEntry$Id": "

An identifier for the message in this batch.

", + "SendMessageBatchResultEntry$MessageId": "

An identifier for the message.

", + "SendMessageBatchResultEntry$MD5OfMessageBody": "

An MD5 digest of the non-URL-encoded message body string. This can be used to verify that Amazon SQS received the message correctly. Amazon SQS first URL decodes the message before creating the MD5 digest. For information about MD5, go to http://www.faqs.org/rfcs/rfc1321.html.

", + "SendMessageBatchResultEntry$MD5OfMessageAttributes": "

An MD5 digest of the non-URL-encoded message attribute string. This can be used to verify that Amazon SQS received the message batch correctly. Amazon SQS first URL decodes the message before creating the MD5 digest. For information about MD5, go to http://www.faqs.org/rfcs/rfc1321.html.

", + "SendMessageRequest$QueueUrl": "

The URL of the Amazon SQS queue to take action on.

", + "SendMessageRequest$MessageBody": "

The message to send. String maximum 256 KB in size. For a list of allowed characters, see the preceding important note.

", + "SendMessageResult$MD5OfMessageBody": "

An MD5 digest of the non-URL-encoded message body string. This can be used to verify that Amazon SQS received the message correctly. Amazon SQS first URL decodes the message before creating the MD5 digest. For information about MD5, go to http://www.faqs.org/rfcs/rfc1321.html.

", + "SendMessageResult$MD5OfMessageAttributes": "

An MD5 digest of the non-URL-encoded message attribute string. This can be used to verify that Amazon SQS received the message correctly. Amazon SQS first URL decodes the message before creating the MD5 digest. For information about MD5, go to http://www.faqs.org/rfcs/rfc1321.html.

", + "SendMessageResult$MessageId": "

An element containing the message ID of the message sent to the queue. For more information, see Queue and Message Identifiers in the Amazon SQS Developer Guide.

", + "SetQueueAttributesRequest$QueueUrl": "

The URL of the Amazon SQS queue to take action on.

", + "StringList$member": null + } + }, + "StringList": { + "base": null, + "refs": { + "MessageAttributeValue$StringListValues": "

Not implemented. Reserved for future use.

" + } + }, + "TooManyEntriesInBatchRequest": { + "base": "

Batch request contains more number of entries than permissible.

", + "refs": { + } + }, + "UnsupportedOperation": { + "base": "

Error code 400. Unsupported operation.

", + "refs": { + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/sqs/2012-11-05/paginators-1.json b/lib/aws-sdk/Aws/data/sqs/2012-11-05/paginators-1.json new file mode 100644 index 0000000..e7ac48a --- /dev/null +++ b/lib/aws-sdk/Aws/data/sqs/2012-11-05/paginators-1.json @@ -0,0 +1,7 @@ +{ + "pagination": { + "ListQueues": { + "result_key": "QueueUrls" + } + } +} diff --git a/lib/aws-sdk/Aws/data/ssm/2014-11-06/api-2.json b/lib/aws-sdk/Aws/data/ssm/2014-11-06/api-2.json new file mode 100644 index 0000000..534418d --- /dev/null +++ b/lib/aws-sdk/Aws/data/ssm/2014-11-06/api-2.json @@ -0,0 +1,1047 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2014-11-06", + "endpointPrefix":"ssm", + "jsonVersion":"1.1", + "serviceAbbreviation":"Amazon SSM", + "serviceFullName":"Amazon Simple Systems Management Service", + "signatureVersion":"v4", + "targetPrefix":"AmazonSSM", + "protocol":"json" + }, + "operations":{ + "CreateAssociation":{ + "name":"CreateAssociation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateAssociationRequest"}, + "output":{"shape":"CreateAssociationResult"}, + "errors":[ + { + "shape":"AssociationAlreadyExists", + "error":{ + "code":"AssociationAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AssociationLimitExceeded", + "error":{ + "code":"AssociationLimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{ + "code":"InternalServerError", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"InvalidDocument", + "error":{ + "code":"InvalidDocument", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidInstanceId", + "error":{ + "code":"InvalidInstanceId", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateAssociationBatch":{ + "name":"CreateAssociationBatch", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateAssociationBatchRequest"}, + "output":{"shape":"CreateAssociationBatchResult"}, + "errors":[ + { + "shape":"InternalServerError", + "error":{ + "code":"InternalServerError", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"InvalidDocument", + "error":{ + "code":"InvalidDocument", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidInstanceId", + "error":{ + "code":"InvalidInstanceId", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DuplicateInstanceId", + "error":{ + "code":"DuplicateInstanceId", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AssociationLimitExceeded", + "error":{ + "code":"AssociationLimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "CreateDocument":{ + "name":"CreateDocument", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDocumentRequest"}, + "output":{"shape":"CreateDocumentResult"}, + "errors":[ + { + "shape":"DocumentAlreadyExists", + "error":{ + "code":"DocumentAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"MaxDocumentSizeExceeded", + "error":{ + "code":"MaxDocumentSizeExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{ + "code":"InternalServerError", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"InvalidDocumentContent", + "error":{ + "code":"InvalidDocumentContent", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"DocumentLimitExceeded", + "error":{ + "code":"DocumentLimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteAssociation":{ + "name":"DeleteAssociation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteAssociationRequest"}, + "output":{"shape":"DeleteAssociationResult"}, + "errors":[ + { + "shape":"AssociationDoesNotExist", + "error":{ + "code":"AssociationDoesNotExist", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{ + "code":"InternalServerError", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"InvalidDocument", + "error":{ + "code":"InvalidDocument", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidInstanceId", + "error":{ + "code":"InvalidInstanceId", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TooManyUpdates", + "error":{ + "code":"TooManyUpdates", + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + } + ] + }, + "DeleteDocument":{ + "name":"DeleteDocument", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDocumentRequest"}, + "output":{"shape":"DeleteDocumentResult"}, + "errors":[ + { + "shape":"InternalServerError", + "error":{ + "code":"InternalServerError", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"InvalidDocument", + "error":{ + "code":"InvalidDocument", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AssociatedInstances", + "error":{ + "code":"AssociatedInstances", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeAssociation":{ + "name":"DescribeAssociation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAssociationRequest"}, + "output":{"shape":"DescribeAssociationResult"}, + "errors":[ + { + "shape":"AssociationDoesNotExist", + "error":{ + "code":"AssociationDoesNotExist", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{ + "code":"InternalServerError", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"InvalidDocument", + "error":{ + "code":"InvalidDocument", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidInstanceId", + "error":{ + "code":"InvalidInstanceId", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "DescribeDocument":{ + "name":"DescribeDocument", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDocumentRequest"}, + "output":{"shape":"DescribeDocumentResult"}, + "errors":[ + { + "shape":"InternalServerError", + "error":{ + "code":"InternalServerError", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"InvalidDocument", + "error":{ + "code":"InvalidDocument", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "GetDocument":{ + "name":"GetDocument", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDocumentRequest"}, + "output":{"shape":"GetDocumentResult"}, + "errors":[ + { + "shape":"InternalServerError", + "error":{ + "code":"InternalServerError", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"InvalidDocument", + "error":{ + "code":"InvalidDocument", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + } + ] + }, + "ListAssociations":{ + "name":"ListAssociations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListAssociationsRequest"}, + "output":{"shape":"ListAssociationsResult"}, + "errors":[ + { + "shape":"InternalServerError", + "error":{ + "code":"InternalServerError", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"InvalidNextToken", + "error":{ + "code":"InvalidNextToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "ListDocuments":{ + "name":"ListDocuments", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDocumentsRequest"}, + "output":{"shape":"ListDocumentsResult"}, + "errors":[ + { + "shape":"InternalServerError", + "error":{ + "code":"InternalServerError", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"InvalidNextToken", + "error":{ + "code":"InvalidNextToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "UpdateAssociationStatus":{ + "name":"UpdateAssociationStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateAssociationStatusRequest"}, + "output":{"shape":"UpdateAssociationStatusResult"}, + "errors":[ + { + "shape":"InternalServerError", + "error":{ + "code":"InternalServerError", + "httpStatusCode":500 + }, + "exception":true + }, + { + "shape":"InvalidInstanceId", + "error":{ + "code":"InvalidInstanceId", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidDocument", + "error":{ + "code":"InvalidDocument", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"AssociationDoesNotExist", + "error":{ + "code":"AssociationDoesNotExist", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + { + "shape":"StatusUnchanged", + "error":{ + "code":"StatusUnchanged", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"TooManyUpdates", + "error":{ + "code":"TooManyUpdates", + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + } + ] + } + }, + "shapes":{ + "AssociatedInstances":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AssociatedInstances", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "Association":{ + "type":"structure", + "members":{ + "Name":{"shape":"DocumentName"}, + "InstanceId":{"shape":"InstanceId"} + } + }, + "AssociationAlreadyExists":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AssociationAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "AssociationDescription":{ + "type":"structure", + "members":{ + "Name":{"shape":"DocumentName"}, + "InstanceId":{"shape":"InstanceId"}, + "Date":{"shape":"DateTime"}, + "Status":{"shape":"AssociationStatus"} + } + }, + "AssociationDescriptionList":{ + "type":"list", + "member":{ + "shape":"AssociationDescription", + "locationName":"AssociationDescription" + } + }, + "AssociationDoesNotExist":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AssociationDoesNotExist", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "AssociationFilter":{ + "type":"structure", + "required":[ + "key", + "value" + ], + "members":{ + "key":{"shape":"AssociationFilterKey"}, + "value":{"shape":"AssociationFilterValue"} + } + }, + "AssociationFilterKey":{ + "type":"string", + "enum":[ + "InstanceId", + "Name" + ] + }, + "AssociationFilterList":{ + "type":"list", + "member":{ + "shape":"AssociationFilter", + "locationName":"AssociationFilter" + }, + "min":1 + }, + "AssociationFilterValue":{ + "type":"string", + "min":1 + }, + "AssociationLimitExceeded":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AssociationLimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "AssociationList":{ + "type":"list", + "member":{ + "shape":"Association", + "locationName":"Association" + } + }, + "AssociationStatus":{ + "type":"structure", + "required":[ + "Date", + "Name", + "Message" + ], + "members":{ + "Date":{"shape":"DateTime"}, + "Name":{"shape":"AssociationStatusName"}, + "Message":{"shape":"StatusMessage"}, + "AdditionalInfo":{"shape":"StatusAdditionalInfo"} + } + }, + "AssociationStatusName":{ + "type":"string", + "enum":[ + "Pending", + "Success", + "Failed" + ] + }, + "BatchErrorMessage":{"type":"string"}, + "CreateAssociationBatchRequest":{ + "type":"structure", + "required":["Entries"], + "members":{ + "Entries":{"shape":"CreateAssociationBatchRequestEntries"} + } + }, + "CreateAssociationBatchRequestEntries":{ + "type":"list", + "member":{ + "shape":"CreateAssociationBatchRequestEntry", + "locationName":"entries" + } + }, + "CreateAssociationBatchRequestEntry":{ + "type":"structure", + "members":{ + "Name":{"shape":"DocumentName"}, + "InstanceId":{"shape":"InstanceId"} + } + }, + "CreateAssociationBatchResult":{ + "type":"structure", + "members":{ + "Successful":{"shape":"AssociationDescriptionList"}, + "Failed":{"shape":"FailedCreateAssociationList"} + } + }, + "CreateAssociationRequest":{ + "type":"structure", + "required":[ + "Name", + "InstanceId" + ], + "members":{ + "Name":{"shape":"DocumentName"}, + "InstanceId":{"shape":"InstanceId"} + } + }, + "CreateAssociationResult":{ + "type":"structure", + "members":{ + "AssociationDescription":{"shape":"AssociationDescription"} + } + }, + "CreateDocumentRequest":{ + "type":"structure", + "required":[ + "Content", + "Name" + ], + "members":{ + "Content":{"shape":"DocumentContent"}, + "Name":{"shape":"DocumentName"} + } + }, + "CreateDocumentResult":{ + "type":"structure", + "members":{ + "DocumentDescription":{"shape":"DocumentDescription"} + } + }, + "DateTime":{"type":"timestamp"}, + "DeleteAssociationRequest":{ + "type":"structure", + "required":[ + "Name", + "InstanceId" + ], + "members":{ + "Name":{"shape":"DocumentName"}, + "InstanceId":{"shape":"InstanceId"} + } + }, + "DeleteAssociationResult":{ + "type":"structure", + "members":{ + } + }, + "DeleteDocumentRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"DocumentName"} + } + }, + "DeleteDocumentResult":{ + "type":"structure", + "members":{ + } + }, + "DescribeAssociationRequest":{ + "type":"structure", + "required":[ + "Name", + "InstanceId" + ], + "members":{ + "Name":{"shape":"DocumentName"}, + "InstanceId":{"shape":"InstanceId"} + } + }, + "DescribeAssociationResult":{ + "type":"structure", + "members":{ + "AssociationDescription":{"shape":"AssociationDescription"} + } + }, + "DescribeDocumentRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"DocumentName"} + } + }, + "DescribeDocumentResult":{ + "type":"structure", + "members":{ + "Document":{"shape":"DocumentDescription"} + } + }, + "DocumentAlreadyExists":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DocumentAlreadyExists", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "DocumentContent":{ + "type":"string", + "min":1 + }, + "DocumentDescription":{ + "type":"structure", + "members":{ + "Sha1":{"shape":"DocumentSha1"}, + "Name":{"shape":"DocumentName"}, + "CreatedDate":{"shape":"DateTime"}, + "Status":{"shape":"DocumentStatus"} + } + }, + "DocumentFilter":{ + "type":"structure", + "required":[ + "key", + "value" + ], + "members":{ + "key":{"shape":"DocumentFilterKey"}, + "value":{"shape":"DocumentFilterValue"} + } + }, + "DocumentFilterKey":{ + "type":"string", + "enum":["Name"] + }, + "DocumentFilterList":{ + "type":"list", + "member":{ + "shape":"DocumentFilter", + "locationName":"DocumentFilter" + }, + "min":1 + }, + "DocumentFilterValue":{ + "type":"string", + "min":1 + }, + "DocumentIdentifier":{ + "type":"structure", + "members":{ + "Name":{"shape":"DocumentName"} + } + }, + "DocumentIdentifierList":{ + "type":"list", + "member":{ + "shape":"DocumentIdentifier", + "locationName":"DocumentIdentifier" + } + }, + "DocumentLimitExceeded":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DocumentLimitExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "DocumentName":{ + "type":"string", + "min":3, + "max":64, + "pattern":"^[a-zA-Z0-9_\\-.]{3,64}$" + }, + "DocumentSha1":{"type":"string"}, + "DocumentStatus":{ + "type":"string", + "enum":[ + "Creating", + "Active", + "Deleting" + ] + }, + "DuplicateInstanceId":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DuplicateInstanceId", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "FailedCreateAssociation":{ + "type":"structure", + "members":{ + "Entry":{"shape":"CreateAssociationBatchRequestEntry"}, + "Message":{"shape":"BatchErrorMessage"}, + "Fault":{"shape":"Fault"} + } + }, + "FailedCreateAssociationList":{ + "type":"list", + "member":{ + "shape":"FailedCreateAssociation", + "locationName":"FailedCreateAssociationEntry" + } + }, + "Fault":{ + "type":"string", + "enum":[ + "Client", + "Server", + "Unknown" + ] + }, + "GetDocumentRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"DocumentName"} + } + }, + "GetDocumentResult":{ + "type":"structure", + "members":{ + "Name":{"shape":"DocumentName"}, + "Content":{"shape":"DocumentContent"} + } + }, + "InstanceId":{ + "type":"string", + "min":10, + "max":10, + "pattern":"^(?=.{10}$)(i-(\\w){8})" + }, + "InternalServerError":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InternalServerError", + "httpStatusCode":500 + }, + "exception":true + }, + "InvalidDocument":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidDocument", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "InvalidDocumentContent":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "code":"InvalidDocumentContent", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidInstanceId":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidInstanceId", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "InvalidNextToken":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidNextToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ListAssociationsRequest":{ + "type":"structure", + "required":["AssociationFilterList"], + "members":{ + "AssociationFilterList":{"shape":"AssociationFilterList"}, + "MaxResults":{ + "shape":"MaxResults", + "box":true + }, + "NextToken":{"shape":"NextToken"} + } + }, + "ListAssociationsResult":{ + "type":"structure", + "members":{ + "Associations":{"shape":"AssociationList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "ListDocumentsRequest":{ + "type":"structure", + "members":{ + "DocumentFilterList":{"shape":"DocumentFilterList"}, + "MaxResults":{ + "shape":"MaxResults", + "box":true + }, + "NextToken":{"shape":"NextToken"} + } + }, + "ListDocumentsResult":{ + "type":"structure", + "members":{ + "DocumentIdentifiers":{"shape":"DocumentIdentifierList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "MaxDocumentSizeExceeded":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"MaxDocumentSizeExceeded", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "MaxResults":{ + "type":"integer", + "min":1, + "max":25 + }, + "NextToken":{"type":"string"}, + "StatusAdditionalInfo":{ + "type":"string", + "max":1024 + }, + "StatusMessage":{ + "type":"string", + "max":1024 + }, + "StatusUnchanged":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"StatusUnchanged", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "String":{"type":"string"}, + "TooManyUpdates":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"TooManyUpdates", + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + }, + "UpdateAssociationStatusRequest":{ + "type":"structure", + "required":[ + "Name", + "InstanceId", + "AssociationStatus" + ], + "members":{ + "Name":{"shape":"DocumentName"}, + "InstanceId":{"shape":"InstanceId"}, + "AssociationStatus":{"shape":"AssociationStatus"} + } + }, + "UpdateAssociationStatusResult":{ + "type":"structure", + "members":{ + "AssociationDescription":{"shape":"AssociationDescription"} + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/ssm/2014-11-06/docs-2.json b/lib/aws-sdk/Aws/data/ssm/2014-11-06/docs-2.json new file mode 100644 index 0000000..d39612f --- /dev/null +++ b/lib/aws-sdk/Aws/data/ssm/2014-11-06/docs-2.json @@ -0,0 +1,440 @@ +{ + "version": "2.0", + "operations": { + "CreateAssociation": "

Associates the specified configuration document with the specified instance.

When you associate a configuration document with an instance, the configuration agent on the instance processes the configuration document and configures the instance as specified.

If you associate a configuration document with an instance that already has an associated configuration document, we replace the current configuration document with the new configuration document.

", + "CreateAssociationBatch": "

Associates the specified configuration documents with the specified instances.

When you associate a configuration document with an instance, the configuration agent on the instance processes the configuration document and configures the instance as specified.

If you associate a configuration document with an instance that already has an associated configuration document, we replace the current configuration document with the new configuration document.

", + "CreateDocument": "

Creates a configuration document.

After you create a configuration document, you can use CreateAssociation to associate it with one or more running instances.

", + "DeleteAssociation": "

Disassociates the specified configuration document from the specified instance.

When you disassociate a configuration document from an instance, it does not change the configuration of the instance. To change the configuration state of an instance after you disassociate a configuration document, you must create a new configuration document with the desired configuration and associate it with the instance.

", + "DeleteDocument": "

Deletes the specified configuration document.

You must use DeleteAssociation to disassociate all instances that are associated with the configuration document before you can delete it.

", + "DescribeAssociation": "

Describes the associations for the specified configuration document or instance.

", + "DescribeDocument": "

Describes the specified configuration document.

", + "GetDocument": "

Gets the contents of the specified configuration document.

", + "ListAssociations": "

Lists the associations for the specified configuration document or instance.

", + "ListDocuments": "

Describes one or more of your configuration documents.

", + "UpdateAssociationStatus": "

Updates the status of the configuration document associated with the specified instance.

" + }, + "service": "

Amazon EC2 Simple Systems Manager (SSM) enables you to configure and manage your EC2 instances. You can create a configuration document and then associate it with one or more running instances.

You can use a configuration document to automate the following tasks for your Windows instances:

  • Join an AWS Directory

  • Install, repair, or uninstall software using an MSI package

  • Run PowerShell scripts

  • Configure CloudWatch Logs to monitor applications and systems

Note that configuration documents are not supported on Linux instances.

", + "shapes": { + "AssociatedInstances": { + "base": "

You must disassociate a configuration document from all instances before you can delete it.

", + "refs": { + } + }, + "Association": { + "base": "

Describes an association of a configuration document and an instance.

", + "refs": { + "AssociationList$member": null + } + }, + "AssociationAlreadyExists": { + "base": "

The specified association already exists.

", + "refs": { + } + }, + "AssociationDescription": { + "base": "

Describes an association.

", + "refs": { + "AssociationDescriptionList$member": null, + "CreateAssociationResult$AssociationDescription": "

Information about the association.

", + "DescribeAssociationResult$AssociationDescription": "

Information about the association.

", + "UpdateAssociationStatusResult$AssociationDescription": "

Information about the association.

" + } + }, + "AssociationDescriptionList": { + "base": null, + "refs": { + "CreateAssociationBatchResult$Successful": "

Information about the associations that succeeded.

" + } + }, + "AssociationDoesNotExist": { + "base": "

The specified association does not exist.

", + "refs": { + } + }, + "AssociationFilter": { + "base": "

Describes a filter.

", + "refs": { + "AssociationFilterList$member": null + } + }, + "AssociationFilterKey": { + "base": null, + "refs": { + "AssociationFilter$key": "

The name of the filter.

" + } + }, + "AssociationFilterList": { + "base": null, + "refs": { + "ListAssociationsRequest$AssociationFilterList": "

One or more filters. Use a filter to return a more specific list of results.

" + } + }, + "AssociationFilterValue": { + "base": null, + "refs": { + "AssociationFilter$value": "

The filter value.

" + } + }, + "AssociationLimitExceeded": { + "base": "

You can have at most 2,000 active associations.

", + "refs": { + } + }, + "AssociationList": { + "base": null, + "refs": { + "ListAssociationsResult$Associations": "

The associations.

" + } + }, + "AssociationStatus": { + "base": "

Describes an association status.

", + "refs": { + "AssociationDescription$Status": "

The association status.

", + "UpdateAssociationStatusRequest$AssociationStatus": "

The association status.

" + } + }, + "AssociationStatusName": { + "base": null, + "refs": { + "AssociationStatus$Name": "

The status.

" + } + }, + "BatchErrorMessage": { + "base": null, + "refs": { + "FailedCreateAssociation$Message": "

A description of the failure.

" + } + }, + "CreateAssociationBatchRequest": { + "base": null, + "refs": { + } + }, + "CreateAssociationBatchRequestEntries": { + "base": null, + "refs": { + "CreateAssociationBatchRequest$Entries": "

One or more associations.

" + } + }, + "CreateAssociationBatchRequestEntry": { + "base": "

Describes the association of a configuration document and an instance.

", + "refs": { + "CreateAssociationBatchRequestEntries$member": null, + "FailedCreateAssociation$Entry": "

The association.

" + } + }, + "CreateAssociationBatchResult": { + "base": null, + "refs": { + } + }, + "CreateAssociationRequest": { + "base": null, + "refs": { + } + }, + "CreateAssociationResult": { + "base": null, + "refs": { + } + }, + "CreateDocumentRequest": { + "base": null, + "refs": { + } + }, + "CreateDocumentResult": { + "base": null, + "refs": { + } + }, + "DateTime": { + "base": null, + "refs": { + "AssociationDescription$Date": "

The date when the association was made.

", + "AssociationStatus$Date": "

The date when the status changed.

", + "DocumentDescription$CreatedDate": "

The date when the configuration document was created.

" + } + }, + "DeleteAssociationRequest": { + "base": null, + "refs": { + } + }, + "DeleteAssociationResult": { + "base": null, + "refs": { + } + }, + "DeleteDocumentRequest": { + "base": null, + "refs": { + } + }, + "DeleteDocumentResult": { + "base": null, + "refs": { + } + }, + "DescribeAssociationRequest": { + "base": null, + "refs": { + } + }, + "DescribeAssociationResult": { + "base": null, + "refs": { + } + }, + "DescribeDocumentRequest": { + "base": null, + "refs": { + } + }, + "DescribeDocumentResult": { + "base": null, + "refs": { + } + }, + "DocumentAlreadyExists": { + "base": "

The specified configuration document already exists.

", + "refs": { + } + }, + "DocumentContent": { + "base": null, + "refs": { + "CreateDocumentRequest$Content": "

A valid JSON file. For more information about the contents of this file, see Configuration Document.

", + "GetDocumentResult$Content": "

The contents of the configuration document.

" + } + }, + "DocumentDescription": { + "base": "

Describes a configuration document.

", + "refs": { + "CreateDocumentResult$DocumentDescription": "

Information about the configuration document.

", + "DescribeDocumentResult$Document": "

Information about the configuration document.

" + } + }, + "DocumentFilter": { + "base": "

Describes a filter.

", + "refs": { + "DocumentFilterList$member": null + } + }, + "DocumentFilterKey": { + "base": null, + "refs": { + "DocumentFilter$key": "

The name of the filter.

" + } + }, + "DocumentFilterList": { + "base": null, + "refs": { + "ListDocumentsRequest$DocumentFilterList": "

One or more filters. Use a filter to return a more specific list of results.

" + } + }, + "DocumentFilterValue": { + "base": null, + "refs": { + "DocumentFilter$value": "

The value of the filter.

" + } + }, + "DocumentIdentifier": { + "base": "

Describes the name of a configuration document.

", + "refs": { + "DocumentIdentifierList$member": null + } + }, + "DocumentIdentifierList": { + "base": null, + "refs": { + "ListDocumentsResult$DocumentIdentifiers": "

The names of the configuration documents.

" + } + }, + "DocumentLimitExceeded": { + "base": "

You can have at most 100 active configuration documents.

", + "refs": { + } + }, + "DocumentName": { + "base": null, + "refs": { + "Association$Name": "

The name of the configuration document.

", + "AssociationDescription$Name": "

The name of the configuration document.

", + "CreateAssociationBatchRequestEntry$Name": "

The name of the configuration document.

", + "CreateAssociationRequest$Name": "

The name of the configuration document.

", + "CreateDocumentRequest$Name": "

A name for the configuration document.

", + "DeleteAssociationRequest$Name": "

The name of the configuration document.

", + "DeleteDocumentRequest$Name": "

The name of the configuration document.

", + "DescribeAssociationRequest$Name": "

The name of the configuration document.

", + "DescribeDocumentRequest$Name": "

The name of the configuration document.

", + "DocumentDescription$Name": "

The name of the configuration document.

", + "DocumentIdentifier$Name": "

The name of the configuration document.

", + "GetDocumentRequest$Name": "

The name of the configuration document.

", + "GetDocumentResult$Name": "

The name of the configuration document.

", + "UpdateAssociationStatusRequest$Name": "

The name of the configuration document.

" + } + }, + "DocumentSha1": { + "base": null, + "refs": { + "DocumentDescription$Sha1": "

The SHA1 hash of the document, which you can use for verification purposes.

" + } + }, + "DocumentStatus": { + "base": null, + "refs": { + "DocumentDescription$Status": "

The status of the configuration document.

" + } + }, + "DuplicateInstanceId": { + "base": "

You cannot specify an instance ID in more than one association.

", + "refs": { + } + }, + "FailedCreateAssociation": { + "base": "

Describes a failed association.

", + "refs": { + "FailedCreateAssociationList$member": null + } + }, + "FailedCreateAssociationList": { + "base": null, + "refs": { + "CreateAssociationBatchResult$Failed": "

Information about the associations that failed.

" + } + }, + "Fault": { + "base": null, + "refs": { + "FailedCreateAssociation$Fault": "

The source of the failure.

" + } + }, + "GetDocumentRequest": { + "base": null, + "refs": { + } + }, + "GetDocumentResult": { + "base": null, + "refs": { + } + }, + "InstanceId": { + "base": null, + "refs": { + "Association$InstanceId": "

The ID of the instance.

", + "AssociationDescription$InstanceId": "

The ID of the instance.

", + "CreateAssociationBatchRequestEntry$InstanceId": "

The ID of the instance.

", + "CreateAssociationRequest$InstanceId": "

The ID of the instance.

", + "DeleteAssociationRequest$InstanceId": "

The ID of the instance.

", + "DescribeAssociationRequest$InstanceId": "

The ID of the instance.

", + "UpdateAssociationStatusRequest$InstanceId": "

The ID of the instance.

" + } + }, + "InternalServerError": { + "base": "

An error occurred on the server side.

", + "refs": { + } + }, + "InvalidDocument": { + "base": "

The configuration document is not valid.

", + "refs": { + } + }, + "InvalidDocumentContent": { + "base": "

The content for the configuration document is not valid.

", + "refs": { + } + }, + "InvalidInstanceId": { + "base": "

You must specify the ID of a running instance.

", + "refs": { + } + }, + "InvalidNextToken": { + "base": "

The specified token is not valid.

", + "refs": { + } + }, + "ListAssociationsRequest": { + "base": null, + "refs": { + } + }, + "ListAssociationsResult": { + "base": null, + "refs": { + } + }, + "ListDocumentsRequest": { + "base": null, + "refs": { + } + }, + "ListDocumentsResult": { + "base": null, + "refs": { + } + }, + "MaxDocumentSizeExceeded": { + "base": "

The size limit of a configuration document is 64 KB.

", + "refs": { + } + }, + "MaxResults": { + "base": null, + "refs": { + "ListAssociationsRequest$MaxResults": "

The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.

", + "ListDocumentsRequest$MaxResults": "

The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.

" + } + }, + "NextToken": { + "base": null, + "refs": { + "ListAssociationsRequest$NextToken": "

The token for the next set of items to return. (You received this token from a previous call.)

", + "ListAssociationsResult$NextToken": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

", + "ListDocumentsRequest$NextToken": "

The token for the next set of items to return. (You received this token from a previous call.)

", + "ListDocumentsResult$NextToken": "

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

" + } + }, + "StatusAdditionalInfo": { + "base": null, + "refs": { + "AssociationStatus$AdditionalInfo": "

A user-defined string.

" + } + }, + "StatusMessage": { + "base": null, + "refs": { + "AssociationStatus$Message": "

The reason for the status.

" + } + }, + "StatusUnchanged": { + "base": "

The updated status is the same as the current status.

", + "refs": { + } + }, + "String": { + "base": null, + "refs": { + "InvalidDocumentContent$message": "

A description of the validation error.

" + } + }, + "TooManyUpdates": { + "base": "

There are concurrent updates for a resource that supports one update at a time.

", + "refs": { + } + }, + "UpdateAssociationStatusRequest": { + "base": null, + "refs": { + } + }, + "UpdateAssociationStatusResult": { + "base": null, + "refs": { + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/storagegateway/2013-06-30/api-2.json b/lib/aws-sdk/Aws/data/storagegateway/2013-06-30/api-2.json new file mode 100644 index 0000000..a260f1a --- /dev/null +++ b/lib/aws-sdk/Aws/data/storagegateway/2013-06-30/api-2.json @@ -0,0 +1,2435 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2013-06-30", + "endpointPrefix":"storagegateway", + "jsonVersion":"1.1", + "serviceFullName":"AWS Storage Gateway", + "signatureVersion":"v4", + "targetPrefix":"StorageGateway_20130630", + "protocol":"json" + }, + "operations":{ + "ActivateGateway":{ + "name":"ActivateGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ActivateGatewayInput"}, + "output":{"shape":"ActivateGatewayOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "AddCache":{ + "name":"AddCache", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddCacheInput"}, + "output":{"shape":"AddCacheOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "AddUploadBuffer":{ + "name":"AddUploadBuffer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddUploadBufferInput"}, + "output":{"shape":"AddUploadBufferOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "AddWorkingStorage":{ + "name":"AddWorkingStorage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddWorkingStorageInput"}, + "output":{"shape":"AddWorkingStorageOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "CancelArchival":{ + "name":"CancelArchival", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CancelArchivalInput"}, + "output":{"shape":"CancelArchivalOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "CancelRetrieval":{ + "name":"CancelRetrieval", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CancelRetrievalInput"}, + "output":{"shape":"CancelRetrievalOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "CreateCachediSCSIVolume":{ + "name":"CreateCachediSCSIVolume", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateCachediSCSIVolumeInput"}, + "output":{"shape":"CreateCachediSCSIVolumeOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "CreateSnapshot":{ + "name":"CreateSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateSnapshotInput"}, + "output":{"shape":"CreateSnapshotOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "CreateSnapshotFromVolumeRecoveryPoint":{ + "name":"CreateSnapshotFromVolumeRecoveryPoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateSnapshotFromVolumeRecoveryPointInput"}, + "output":{"shape":"CreateSnapshotFromVolumeRecoveryPointOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "CreateStorediSCSIVolume":{ + "name":"CreateStorediSCSIVolume", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateStorediSCSIVolumeInput"}, + "output":{"shape":"CreateStorediSCSIVolumeOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "CreateTapes":{ + "name":"CreateTapes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateTapesInput"}, + "output":{"shape":"CreateTapesOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DeleteBandwidthRateLimit":{ + "name":"DeleteBandwidthRateLimit", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteBandwidthRateLimitInput"}, + "output":{"shape":"DeleteBandwidthRateLimitOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DeleteChapCredentials":{ + "name":"DeleteChapCredentials", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteChapCredentialsInput"}, + "output":{"shape":"DeleteChapCredentialsOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DeleteGateway":{ + "name":"DeleteGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteGatewayInput"}, + "output":{"shape":"DeleteGatewayOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DeleteSnapshotSchedule":{ + "name":"DeleteSnapshotSchedule", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteSnapshotScheduleInput"}, + "output":{"shape":"DeleteSnapshotScheduleOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DeleteTape":{ + "name":"DeleteTape", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTapeInput"}, + "output":{"shape":"DeleteTapeOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DeleteTapeArchive":{ + "name":"DeleteTapeArchive", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTapeArchiveInput"}, + "output":{"shape":"DeleteTapeArchiveOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DeleteVolume":{ + "name":"DeleteVolume", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVolumeInput"}, + "output":{"shape":"DeleteVolumeOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DescribeBandwidthRateLimit":{ + "name":"DescribeBandwidthRateLimit", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeBandwidthRateLimitInput"}, + "output":{"shape":"DescribeBandwidthRateLimitOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DescribeCache":{ + "name":"DescribeCache", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeCacheInput"}, + "output":{"shape":"DescribeCacheOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DescribeCachediSCSIVolumes":{ + "name":"DescribeCachediSCSIVolumes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeCachediSCSIVolumesInput"}, + "output":{"shape":"DescribeCachediSCSIVolumesOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DescribeChapCredentials":{ + "name":"DescribeChapCredentials", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeChapCredentialsInput"}, + "output":{"shape":"DescribeChapCredentialsOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DescribeGatewayInformation":{ + "name":"DescribeGatewayInformation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeGatewayInformationInput"}, + "output":{"shape":"DescribeGatewayInformationOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DescribeMaintenanceStartTime":{ + "name":"DescribeMaintenanceStartTime", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeMaintenanceStartTimeInput"}, + "output":{"shape":"DescribeMaintenanceStartTimeOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DescribeSnapshotSchedule":{ + "name":"DescribeSnapshotSchedule", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSnapshotScheduleInput"}, + "output":{"shape":"DescribeSnapshotScheduleOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DescribeStorediSCSIVolumes":{ + "name":"DescribeStorediSCSIVolumes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeStorediSCSIVolumesInput"}, + "output":{"shape":"DescribeStorediSCSIVolumesOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DescribeTapeArchives":{ + "name":"DescribeTapeArchives", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTapeArchivesInput"}, + "output":{"shape":"DescribeTapeArchivesOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DescribeTapeRecoveryPoints":{ + "name":"DescribeTapeRecoveryPoints", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTapeRecoveryPointsInput"}, + "output":{"shape":"DescribeTapeRecoveryPointsOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DescribeTapes":{ + "name":"DescribeTapes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTapesInput"}, + "output":{"shape":"DescribeTapesOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DescribeUploadBuffer":{ + "name":"DescribeUploadBuffer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeUploadBufferInput"}, + "output":{"shape":"DescribeUploadBufferOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DescribeVTLDevices":{ + "name":"DescribeVTLDevices", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVTLDevicesInput"}, + "output":{"shape":"DescribeVTLDevicesOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DescribeWorkingStorage":{ + "name":"DescribeWorkingStorage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeWorkingStorageInput"}, + "output":{"shape":"DescribeWorkingStorageOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "DisableGateway":{ + "name":"DisableGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisableGatewayInput"}, + "output":{"shape":"DisableGatewayOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "ListGateways":{ + "name":"ListGateways", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListGatewaysInput"}, + "output":{"shape":"ListGatewaysOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "ListLocalDisks":{ + "name":"ListLocalDisks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListLocalDisksInput"}, + "output":{"shape":"ListLocalDisksOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "ListVolumeInitiators":{ + "name":"ListVolumeInitiators", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListVolumeInitiatorsInput"}, + "output":{"shape":"ListVolumeInitiatorsOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "ListVolumeRecoveryPoints":{ + "name":"ListVolumeRecoveryPoints", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListVolumeRecoveryPointsInput"}, + "output":{"shape":"ListVolumeRecoveryPointsOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "ListVolumes":{ + "name":"ListVolumes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListVolumesInput"}, + "output":{"shape":"ListVolumesOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "ResetCache":{ + "name":"ResetCache", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ResetCacheInput"}, + "output":{"shape":"ResetCacheOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "RetrieveTapeArchive":{ + "name":"RetrieveTapeArchive", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RetrieveTapeArchiveInput"}, + "output":{"shape":"RetrieveTapeArchiveOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "RetrieveTapeRecoveryPoint":{ + "name":"RetrieveTapeRecoveryPoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RetrieveTapeRecoveryPointInput"}, + "output":{"shape":"RetrieveTapeRecoveryPointOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "ShutdownGateway":{ + "name":"ShutdownGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ShutdownGatewayInput"}, + "output":{"shape":"ShutdownGatewayOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "StartGateway":{ + "name":"StartGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartGatewayInput"}, + "output":{"shape":"StartGatewayOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "UpdateBandwidthRateLimit":{ + "name":"UpdateBandwidthRateLimit", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateBandwidthRateLimitInput"}, + "output":{"shape":"UpdateBandwidthRateLimitOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "UpdateChapCredentials":{ + "name":"UpdateChapCredentials", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateChapCredentialsInput"}, + "output":{"shape":"UpdateChapCredentialsOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "UpdateGatewayInformation":{ + "name":"UpdateGatewayInformation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateGatewayInformationInput"}, + "output":{"shape":"UpdateGatewayInformationOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "UpdateGatewaySoftwareNow":{ + "name":"UpdateGatewaySoftwareNow", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateGatewaySoftwareNowInput"}, + "output":{"shape":"UpdateGatewaySoftwareNowOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "UpdateMaintenanceStartTime":{ + "name":"UpdateMaintenanceStartTime", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateMaintenanceStartTimeInput"}, + "output":{"shape":"UpdateMaintenanceStartTimeOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "UpdateSnapshotSchedule":{ + "name":"UpdateSnapshotSchedule", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateSnapshotScheduleInput"}, + "output":{"shape":"UpdateSnapshotScheduleOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + }, + "UpdateVTLDeviceType":{ + "name":"UpdateVTLDeviceType", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateVTLDeviceTypeInput"}, + "output":{"shape":"UpdateVTLDeviceTypeOutput"}, + "errors":[ + { + "shape":"InvalidGatewayRequestException", + "error":{"httpStatusCode":400}, + "exception":true + }, + { + "shape":"InternalServerError", + "error":{"httpStatusCode":500}, + "exception":true + } + ] + } + }, + "shapes":{ + "ActivateGatewayInput":{ + "type":"structure", + "required":[ + "ActivationKey", + "GatewayName", + "GatewayTimezone", + "GatewayRegion" + ], + "members":{ + "ActivationKey":{"shape":"ActivationKey"}, + "GatewayName":{"shape":"GatewayName"}, + "GatewayTimezone":{"shape":"GatewayTimezone"}, + "GatewayRegion":{"shape":"RegionId"}, + "GatewayType":{"shape":"GatewayType"}, + "TapeDriveType":{"shape":"TapeDriveType"}, + "MediumChangerType":{"shape":"MediumChangerType"} + } + }, + "ActivateGatewayOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "ActivationKey":{ + "type":"string", + "min":1, + "max":50 + }, + "AddCacheInput":{ + "type":"structure", + "required":[ + "GatewayARN", + "DiskIds" + ], + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "DiskIds":{"shape":"DiskIds"} + } + }, + "AddCacheOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "AddUploadBufferInput":{ + "type":"structure", + "required":[ + "GatewayARN", + "DiskIds" + ], + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "DiskIds":{"shape":"DiskIds"} + } + }, + "AddUploadBufferOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "AddWorkingStorageInput":{ + "type":"structure", + "required":[ + "GatewayARN", + "DiskIds" + ], + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "DiskIds":{"shape":"DiskIds"} + } + }, + "AddWorkingStorageOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "BandwidthDownloadRateLimit":{ + "type":"long", + "min":102400 + }, + "BandwidthType":{ + "type":"string", + "min":3, + "max":25 + }, + "BandwidthUploadRateLimit":{ + "type":"long", + "min":51200 + }, + "CachediSCSIVolume":{ + "type":"structure", + "members":{ + "VolumeARN":{"shape":"VolumeARN"}, + "VolumeId":{"shape":"VolumeId"}, + "VolumeType":{"shape":"VolumeType"}, + "VolumeStatus":{"shape":"VolumeStatus"}, + "VolumeSizeInBytes":{"shape":"long"}, + "VolumeProgress":{"shape":"DoubleObject"}, + "SourceSnapshotId":{"shape":"SnapshotId"}, + "VolumeiSCSIAttributes":{"shape":"VolumeiSCSIAttributes"} + } + }, + "CachediSCSIVolumes":{ + "type":"list", + "member":{"shape":"CachediSCSIVolume"} + }, + "CancelArchivalInput":{ + "type":"structure", + "required":[ + "GatewayARN", + "TapeARN" + ], + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "TapeARN":{"shape":"TapeARN"} + } + }, + "CancelArchivalOutput":{ + "type":"structure", + "members":{ + "TapeARN":{"shape":"TapeARN"} + } + }, + "CancelRetrievalInput":{ + "type":"structure", + "required":[ + "GatewayARN", + "TapeARN" + ], + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "TapeARN":{"shape":"TapeARN"} + } + }, + "CancelRetrievalOutput":{ + "type":"structure", + "members":{ + "TapeARN":{"shape":"TapeARN"} + } + }, + "ChapCredentials":{ + "type":"list", + "member":{"shape":"ChapInfo"} + }, + "ChapInfo":{ + "type":"structure", + "members":{ + "TargetARN":{"shape":"TargetARN"}, + "SecretToAuthenticateInitiator":{"shape":"ChapSecret"}, + "InitiatorName":{"shape":"IqnName"}, + "SecretToAuthenticateTarget":{"shape":"ChapSecret"} + } + }, + "ChapSecret":{ + "type":"string", + "min":1, + "max":100 + }, + "ClientToken":{ + "type":"string", + "min":5, + "max":100 + }, + "CreateCachediSCSIVolumeInput":{ + "type":"structure", + "required":[ + "GatewayARN", + "VolumeSizeInBytes", + "TargetName", + "NetworkInterfaceId", + "ClientToken" + ], + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "VolumeSizeInBytes":{"shape":"long"}, + "SnapshotId":{"shape":"SnapshotId"}, + "TargetName":{"shape":"TargetName"}, + "NetworkInterfaceId":{"shape":"NetworkInterfaceId"}, + "ClientToken":{"shape":"ClientToken"} + } + }, + "CreateCachediSCSIVolumeOutput":{ + "type":"structure", + "members":{ + "VolumeARN":{"shape":"VolumeARN"}, + "TargetARN":{"shape":"TargetARN"} + } + }, + "CreateSnapshotFromVolumeRecoveryPointInput":{ + "type":"structure", + "required":[ + "VolumeARN", + "SnapshotDescription" + ], + "members":{ + "VolumeARN":{"shape":"VolumeARN"}, + "SnapshotDescription":{"shape":"SnapshotDescription"} + } + }, + "CreateSnapshotFromVolumeRecoveryPointOutput":{ + "type":"structure", + "members":{ + "SnapshotId":{"shape":"SnapshotId"}, + "VolumeARN":{"shape":"VolumeARN"}, + "VolumeRecoveryPointTime":{"shape":"string"} + } + }, + "CreateSnapshotInput":{ + "type":"structure", + "required":[ + "VolumeARN", + "SnapshotDescription" + ], + "members":{ + "VolumeARN":{"shape":"VolumeARN"}, + "SnapshotDescription":{"shape":"SnapshotDescription"} + } + }, + "CreateSnapshotOutput":{ + "type":"structure", + "members":{ + "VolumeARN":{"shape":"VolumeARN"}, + "SnapshotId":{"shape":"SnapshotId"} + } + }, + "CreateStorediSCSIVolumeInput":{ + "type":"structure", + "required":[ + "GatewayARN", + "DiskId", + "PreserveExistingData", + "TargetName", + "NetworkInterfaceId" + ], + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "DiskId":{"shape":"DiskId"}, + "SnapshotId":{"shape":"SnapshotId"}, + "PreserveExistingData":{"shape":"boolean"}, + "TargetName":{"shape":"TargetName"}, + "NetworkInterfaceId":{"shape":"NetworkInterfaceId"} + } + }, + "CreateStorediSCSIVolumeOutput":{ + "type":"structure", + "members":{ + "VolumeARN":{"shape":"VolumeARN"}, + "VolumeSizeInBytes":{"shape":"long"}, + "TargetARN":{"shape":"TargetARN"} + } + }, + "CreateTapesInput":{ + "type":"structure", + "required":[ + "GatewayARN", + "TapeSizeInBytes", + "ClientToken", + "NumTapesToCreate", + "TapeBarcodePrefix" + ], + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "TapeSizeInBytes":{"shape":"TapeSize"}, + "ClientToken":{"shape":"ClientToken"}, + "NumTapesToCreate":{"shape":"NumTapesToCreate"}, + "TapeBarcodePrefix":{"shape":"TapeBarcodePrefix"} + } + }, + "CreateTapesOutput":{ + "type":"structure", + "members":{ + "TapeARNs":{"shape":"TapeARNs"} + } + }, + "DayOfWeek":{ + "type":"integer", + "min":0, + "max":6 + }, + "DeleteBandwidthRateLimitInput":{ + "type":"structure", + "required":[ + "GatewayARN", + "BandwidthType" + ], + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "BandwidthType":{"shape":"BandwidthType"} + } + }, + "DeleteBandwidthRateLimitOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "DeleteChapCredentialsInput":{ + "type":"structure", + "required":[ + "TargetARN", + "InitiatorName" + ], + "members":{ + "TargetARN":{"shape":"TargetARN"}, + "InitiatorName":{"shape":"IqnName"} + } + }, + "DeleteChapCredentialsOutput":{ + "type":"structure", + "members":{ + "TargetARN":{"shape":"TargetARN"}, + "InitiatorName":{"shape":"IqnName"} + } + }, + "DeleteGatewayInput":{ + "type":"structure", + "required":["GatewayARN"], + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "DeleteGatewayOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "DeleteSnapshotScheduleInput":{ + "type":"structure", + "required":["VolumeARN"], + "members":{ + "VolumeARN":{"shape":"VolumeARN"} + } + }, + "DeleteSnapshotScheduleOutput":{ + "type":"structure", + "members":{ + "VolumeARN":{"shape":"VolumeARN"} + } + }, + "DeleteTapeArchiveInput":{ + "type":"structure", + "required":["TapeARN"], + "members":{ + "TapeARN":{"shape":"TapeARN"} + } + }, + "DeleteTapeArchiveOutput":{ + "type":"structure", + "members":{ + "TapeARN":{"shape":"TapeARN"} + } + }, + "DeleteTapeInput":{ + "type":"structure", + "required":[ + "GatewayARN", + "TapeARN" + ], + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "TapeARN":{"shape":"TapeARN"} + } + }, + "DeleteTapeOutput":{ + "type":"structure", + "members":{ + "TapeARN":{"shape":"TapeARN"} + } + }, + "DeleteVolumeInput":{ + "type":"structure", + "required":["VolumeARN"], + "members":{ + "VolumeARN":{"shape":"VolumeARN"} + } + }, + "DeleteVolumeOutput":{ + "type":"structure", + "members":{ + "VolumeARN":{"shape":"VolumeARN"} + } + }, + "DescribeBandwidthRateLimitInput":{ + "type":"structure", + "required":["GatewayARN"], + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "DescribeBandwidthRateLimitOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "AverageUploadRateLimitInBitsPerSec":{"shape":"BandwidthUploadRateLimit"}, + "AverageDownloadRateLimitInBitsPerSec":{"shape":"BandwidthDownloadRateLimit"} + } + }, + "DescribeCacheInput":{ + "type":"structure", + "required":["GatewayARN"], + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "DescribeCacheOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "DiskIds":{"shape":"DiskIds"}, + "CacheAllocatedInBytes":{"shape":"long"}, + "CacheUsedPercentage":{"shape":"double"}, + "CacheDirtyPercentage":{"shape":"double"}, + "CacheHitPercentage":{"shape":"double"}, + "CacheMissPercentage":{"shape":"double"} + } + }, + "DescribeCachediSCSIVolumesInput":{ + "type":"structure", + "required":["VolumeARNs"], + "members":{ + "VolumeARNs":{"shape":"VolumeARNs"} + } + }, + "DescribeCachediSCSIVolumesOutput":{ + "type":"structure", + "members":{ + "CachediSCSIVolumes":{"shape":"CachediSCSIVolumes"} + } + }, + "DescribeChapCredentialsInput":{ + "type":"structure", + "required":["TargetARN"], + "members":{ + "TargetARN":{"shape":"TargetARN"} + } + }, + "DescribeChapCredentialsOutput":{ + "type":"structure", + "members":{ + "ChapCredentials":{"shape":"ChapCredentials"} + } + }, + "DescribeGatewayInformationInput":{ + "type":"structure", + "required":["GatewayARN"], + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "DescribeGatewayInformationOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "GatewayId":{"shape":"GatewayId"}, + "GatewayTimezone":{"shape":"GatewayTimezone"}, + "GatewayState":{"shape":"GatewayState"}, + "GatewayNetworkInterfaces":{"shape":"GatewayNetworkInterfaces"}, + "GatewayType":{"shape":"GatewayType"}, + "NextUpdateAvailabilityDate":{"shape":"NextUpdateAvailabilityDate"}, + "LastSoftwareUpdate":{"shape":"LastSoftwareUpdate"} + } + }, + "DescribeMaintenanceStartTimeInput":{ + "type":"structure", + "required":["GatewayARN"], + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "DescribeMaintenanceStartTimeOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "HourOfDay":{"shape":"HourOfDay"}, + "MinuteOfHour":{"shape":"MinuteOfHour"}, + "DayOfWeek":{"shape":"DayOfWeek"}, + "Timezone":{"shape":"GatewayTimezone"} + } + }, + "DescribeSnapshotScheduleInput":{ + "type":"structure", + "required":["VolumeARN"], + "members":{ + "VolumeARN":{"shape":"VolumeARN"} + } + }, + "DescribeSnapshotScheduleOutput":{ + "type":"structure", + "members":{ + "VolumeARN":{"shape":"VolumeARN"}, + "StartAt":{"shape":"HourOfDay"}, + "RecurrenceInHours":{"shape":"RecurrenceInHours"}, + "Description":{"shape":"Description"}, + "Timezone":{"shape":"GatewayTimezone"} + } + }, + "DescribeStorediSCSIVolumesInput":{ + "type":"structure", + "required":["VolumeARNs"], + "members":{ + "VolumeARNs":{"shape":"VolumeARNs"} + } + }, + "DescribeStorediSCSIVolumesOutput":{ + "type":"structure", + "members":{ + "StorediSCSIVolumes":{"shape":"StorediSCSIVolumes"} + } + }, + "DescribeTapeArchivesInput":{ + "type":"structure", + "members":{ + "TapeARNs":{"shape":"TapeARNs"}, + "Marker":{"shape":"Marker"}, + "Limit":{"shape":"PositiveIntObject"} + } + }, + "DescribeTapeArchivesOutput":{ + "type":"structure", + "members":{ + "TapeArchives":{"shape":"TapeArchives"}, + "Marker":{"shape":"Marker"} + } + }, + "DescribeTapeRecoveryPointsInput":{ + "type":"structure", + "required":["GatewayARN"], + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "Marker":{"shape":"Marker"}, + "Limit":{"shape":"PositiveIntObject"} + } + }, + "DescribeTapeRecoveryPointsOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "TapeRecoveryPointInfos":{"shape":"TapeRecoveryPointInfos"}, + "Marker":{"shape":"Marker"} + } + }, + "DescribeTapesInput":{ + "type":"structure", + "required":["GatewayARN"], + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "TapeARNs":{"shape":"TapeARNs"}, + "Marker":{"shape":"Marker"}, + "Limit":{"shape":"PositiveIntObject"} + } + }, + "DescribeTapesOutput":{ + "type":"structure", + "members":{ + "Tapes":{"shape":"Tapes"}, + "Marker":{"shape":"Marker"} + } + }, + "DescribeUploadBufferInput":{ + "type":"structure", + "required":["GatewayARN"], + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "DescribeUploadBufferOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "DiskIds":{"shape":"DiskIds"}, + "UploadBufferUsedInBytes":{"shape":"long"}, + "UploadBufferAllocatedInBytes":{"shape":"long"} + } + }, + "DescribeVTLDevicesInput":{ + "type":"structure", + "required":["GatewayARN"], + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "VTLDeviceARNs":{"shape":"VTLDeviceARNs"}, + "Marker":{"shape":"Marker"}, + "Limit":{"shape":"PositiveIntObject"} + } + }, + "DescribeVTLDevicesOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "VTLDevices":{"shape":"VTLDevices"}, + "Marker":{"shape":"Marker"} + } + }, + "DescribeWorkingStorageInput":{ + "type":"structure", + "required":["GatewayARN"], + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "DescribeWorkingStorageOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "DiskIds":{"shape":"DiskIds"}, + "WorkingStorageUsedInBytes":{"shape":"long"}, + "WorkingStorageAllocatedInBytes":{"shape":"long"} + } + }, + "Description":{ + "type":"string", + "min":1, + "max":255 + }, + "DeviceType":{ + "type":"string", + "min":2, + "max":50 + }, + "DeviceiSCSIAttributes":{ + "type":"structure", + "members":{ + "TargetARN":{"shape":"TargetARN"}, + "NetworkInterfaceId":{"shape":"NetworkInterfaceId"}, + "NetworkInterfacePort":{"shape":"integer"}, + "ChapEnabled":{"shape":"boolean"} + } + }, + "DisableGatewayInput":{ + "type":"structure", + "required":["GatewayARN"], + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "DisableGatewayOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "Disk":{ + "type":"structure", + "members":{ + "DiskId":{"shape":"DiskId"}, + "DiskPath":{"shape":"string"}, + "DiskNode":{"shape":"string"}, + "DiskStatus":{"shape":"string"}, + "DiskSizeInBytes":{"shape":"long"}, + "DiskAllocationType":{"shape":"DiskAllocationType"}, + "DiskAllocationResource":{"shape":"string"} + } + }, + "DiskAllocationType":{ + "type":"string", + "min":3, + "max":100 + }, + "DiskId":{ + "type":"string", + "min":1, + "max":300 + }, + "DiskIds":{ + "type":"list", + "member":{"shape":"DiskId"} + }, + "Disks":{ + "type":"list", + "member":{"shape":"Disk"} + }, + "DoubleObject":{"type":"double"}, + "ErrorCode":{ + "type":"string", + "enum":[ + "ActivationKeyExpired", + "ActivationKeyInvalid", + "ActivationKeyNotFound", + "GatewayInternalError", + "GatewayNotConnected", + "GatewayNotFound", + "GatewayProxyNetworkConnectionBusy", + "AuthenticationFailure", + "BandwidthThrottleScheduleNotFound", + "Blocked", + "CannotExportSnapshot", + "ChapCredentialNotFound", + "DiskAlreadyAllocated", + "DiskDoesNotExist", + "DiskSizeGreaterThanVolumeMaxSize", + "DiskSizeLessThanVolumeSize", + "DiskSizeNotGigAligned", + "DuplicateCertificateInfo", + "DuplicateSchedule", + "EndpointNotFound", + "IAMNotSupported", + "InitiatorInvalid", + "InitiatorNotFound", + "InternalError", + "InvalidGateway", + "InvalidEndpoint", + "InvalidParameters", + "InvalidSchedule", + "LocalStorageLimitExceeded", + "LunAlreadyAllocated ", + "LunInvalid", + "MaximumContentLengthExceeded", + "MaximumTapeCartridgeCountExceeded", + "MaximumVolumeCountExceeded", + "NetworkConfigurationChanged", + "NoDisksAvailable", + "NotImplemented", + "NotSupported", + "OperationAborted", + "OutdatedGateway", + "ParametersNotImplemented", + "RegionInvalid", + "RequestTimeout", + "ServiceUnavailable", + "SnapshotDeleted", + "SnapshotIdInvalid", + "SnapshotInProgress", + "SnapshotNotFound", + "SnapshotScheduleNotFound", + "StagingAreaFull", + "StorageFailure", + "TapeCartridgeNotFound", + "TargetAlreadyExists", + "TargetInvalid", + "TargetNotFound", + "UnauthorizedOperation", + "VolumeAlreadyExists", + "VolumeIdInvalid", + "VolumeInUse", + "VolumeNotFound", + "VolumeNotReady" + ] + }, + "GatewayARN":{ + "type":"string", + "min":50, + "max":500 + }, + "GatewayId":{ + "type":"string", + "min":12, + "max":30 + }, + "GatewayInfo":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "GatewayType":{"shape":"GatewayType"}, + "GatewayOperationalState":{"shape":"GatewayOperationalState"} + } + }, + "GatewayName":{ + "type":"string", + "min":2, + "max":255, + "pattern":"^[ -\\.0-\\[\\]-~]*[!-\\.0-\\[\\]-~][ -\\.0-\\[\\]-~]*$" + }, + "GatewayNetworkInterfaces":{ + "type":"list", + "member":{"shape":"NetworkInterface"} + }, + "GatewayOperationalState":{ + "type":"string", + "min":2, + "max":25 + }, + "GatewayState":{ + "type":"string", + "min":2, + "max":25 + }, + "GatewayTimezone":{ + "type":"string", + "min":3, + "max":10 + }, + "GatewayType":{ + "type":"string", + "min":2, + "max":20 + }, + "Gateways":{ + "type":"list", + "member":{"shape":"GatewayInfo"} + }, + "HourOfDay":{ + "type":"integer", + "min":0, + "max":23 + }, + "Initiator":{ + "type":"string", + "min":1, + "max":50 + }, + "Initiators":{ + "type":"list", + "member":{"shape":"Initiator"} + }, + "InternalServerError":{ + "type":"structure", + "members":{ + "message":{"shape":"string"}, + "error":{"shape":"StorageGatewayError"} + }, + "error":{"httpStatusCode":500}, + "exception":true + }, + "InvalidGatewayRequestException":{ + "type":"structure", + "members":{ + "message":{"shape":"string"}, + "error":{"shape":"StorageGatewayError"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "IqnName":{ + "type":"string", + "min":1, + "max":255, + "pattern":"[0-9a-z:.-]+" + }, + "LastSoftwareUpdate":{ + "type":"string", + "min":1, + "max":25 + }, + "ListGatewaysInput":{ + "type":"structure", + "members":{ + "Marker":{"shape":"Marker"}, + "Limit":{"shape":"PositiveIntObject"} + } + }, + "ListGatewaysOutput":{ + "type":"structure", + "members":{ + "Gateways":{"shape":"Gateways"}, + "Marker":{"shape":"Marker"} + } + }, + "ListLocalDisksInput":{ + "type":"structure", + "required":["GatewayARN"], + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "ListLocalDisksOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "Disks":{"shape":"Disks"} + } + }, + "ListVolumeInitiatorsInput":{ + "type":"structure", + "required":["VolumeARN"], + "members":{ + "VolumeARN":{"shape":"VolumeARN"} + } + }, + "ListVolumeInitiatorsOutput":{ + "type":"structure", + "members":{ + "Initiators":{"shape":"Initiators"} + } + }, + "ListVolumeRecoveryPointsInput":{ + "type":"structure", + "required":["GatewayARN"], + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "ListVolumeRecoveryPointsOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "VolumeRecoveryPointInfos":{"shape":"VolumeRecoveryPointInfos"} + } + }, + "ListVolumesInput":{ + "type":"structure", + "required":["GatewayARN"], + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "Marker":{"shape":"Marker"}, + "Limit":{"shape":"PositiveIntObject"} + } + }, + "ListVolumesOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "Marker":{"shape":"Marker"}, + "VolumeInfos":{"shape":"VolumeInfos"} + } + }, + "Marker":{ + "type":"string", + "min":1, + "max":1000 + }, + "MediumChangerType":{ + "type":"string", + "min":2, + "max":50 + }, + "MinuteOfHour":{ + "type":"integer", + "min":0, + "max":59 + }, + "NetworkInterface":{ + "type":"structure", + "members":{ + "Ipv4Address":{"shape":"string"}, + "MacAddress":{"shape":"string"}, + "Ipv6Address":{"shape":"string"} + } + }, + "NetworkInterfaceId":{ + "type":"string", + "pattern":"\\A(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)(\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)){3}\\z" + }, + "NextUpdateAvailabilityDate":{ + "type":"string", + "min":1, + "max":25 + }, + "NumTapesToCreate":{ + "type":"integer", + "min":1, + "max":10 + }, + "PositiveIntObject":{ + "type":"integer", + "min":1 + }, + "RecurrenceInHours":{ + "type":"integer", + "min":1, + "max":24 + }, + "RegionId":{ + "type":"string", + "min":1, + "max":25 + }, + "ResetCacheInput":{ + "type":"structure", + "required":["GatewayARN"], + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "ResetCacheOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "RetrieveTapeArchiveInput":{ + "type":"structure", + "required":[ + "TapeARN", + "GatewayARN" + ], + "members":{ + "TapeARN":{"shape":"TapeARN"}, + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "RetrieveTapeArchiveOutput":{ + "type":"structure", + "members":{ + "TapeARN":{"shape":"TapeARN"} + } + }, + "RetrieveTapeRecoveryPointInput":{ + "type":"structure", + "required":[ + "TapeARN", + "GatewayARN" + ], + "members":{ + "TapeARN":{"shape":"TapeARN"}, + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "RetrieveTapeRecoveryPointOutput":{ + "type":"structure", + "members":{ + "TapeARN":{"shape":"TapeARN"} + } + }, + "ShutdownGatewayInput":{ + "type":"structure", + "required":["GatewayARN"], + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "ShutdownGatewayOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "SnapshotDescription":{ + "type":"string", + "min":1, + "max":255 + }, + "SnapshotId":{ + "type":"string", + "pattern":"\\Asnap-[0-9a-fA-F]{8}\\z" + }, + "StartGatewayInput":{ + "type":"structure", + "required":["GatewayARN"], + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "StartGatewayOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "StorageGatewayError":{ + "type":"structure", + "members":{ + "errorCode":{"shape":"ErrorCode"}, + "errorDetails":{"shape":"errorDetails"} + } + }, + "StorediSCSIVolume":{ + "type":"structure", + "members":{ + "VolumeARN":{"shape":"VolumeARN"}, + "VolumeId":{"shape":"VolumeId"}, + "VolumeType":{"shape":"VolumeType"}, + "VolumeStatus":{"shape":"VolumeStatus"}, + "VolumeSizeInBytes":{"shape":"long"}, + "VolumeProgress":{"shape":"DoubleObject"}, + "VolumeDiskId":{"shape":"DiskId"}, + "SourceSnapshotId":{"shape":"SnapshotId"}, + "PreservedExistingData":{"shape":"boolean"}, + "VolumeiSCSIAttributes":{"shape":"VolumeiSCSIAttributes"} + } + }, + "StorediSCSIVolumes":{ + "type":"list", + "member":{"shape":"StorediSCSIVolume"} + }, + "Tape":{ + "type":"structure", + "members":{ + "TapeARN":{"shape":"TapeARN"}, + "TapeBarcode":{"shape":"TapeBarcode"}, + "TapeSizeInBytes":{"shape":"TapeSize"}, + "TapeStatus":{"shape":"TapeStatus"}, + "VTLDevice":{"shape":"VTLDeviceARN"}, + "Progress":{"shape":"DoubleObject"} + } + }, + "TapeARN":{ + "type":"string", + "min":50, + "max":500 + }, + "TapeARNs":{ + "type":"list", + "member":{"shape":"TapeARN"} + }, + "TapeArchive":{ + "type":"structure", + "members":{ + "TapeARN":{"shape":"TapeARN"}, + "TapeBarcode":{"shape":"TapeBarcode"}, + "TapeSizeInBytes":{"shape":"TapeSize"}, + "CompletionTime":{"shape":"Time"}, + "RetrievedTo":{"shape":"GatewayARN"}, + "TapeStatus":{"shape":"TapeArchiveStatus"} + } + }, + "TapeArchiveStatus":{"type":"string"}, + "TapeArchives":{ + "type":"list", + "member":{"shape":"TapeArchive"} + }, + "TapeBarcode":{ + "type":"string", + "min":7, + "max":16, + "pattern":"^[A-Z0-9]*$" + }, + "TapeBarcodePrefix":{ + "type":"string", + "min":1, + "max":4, + "pattern":"^[A-Z]*$" + }, + "TapeDriveType":{ + "type":"string", + "min":2, + "max":50 + }, + "TapeRecoveryPointInfo":{ + "type":"structure", + "members":{ + "TapeARN":{"shape":"TapeARN"}, + "TapeRecoveryPointTime":{"shape":"Time"}, + "TapeSizeInBytes":{"shape":"TapeSize"}, + "TapeStatus":{"shape":"TapeRecoveryPointStatus"} + } + }, + "TapeRecoveryPointInfos":{ + "type":"list", + "member":{"shape":"TapeRecoveryPointInfo"} + }, + "TapeRecoveryPointStatus":{"type":"string"}, + "TapeSize":{"type":"long"}, + "TapeStatus":{"type":"string"}, + "Tapes":{ + "type":"list", + "member":{"shape":"Tape"} + }, + "TargetARN":{ + "type":"string", + "min":50, + "max":800 + }, + "TargetName":{ + "type":"string", + "min":1, + "max":200, + "pattern":"^[-\\.;a-z0-9]+$" + }, + "Time":{"type":"timestamp"}, + "UpdateBandwidthRateLimitInput":{ + "type":"structure", + "required":["GatewayARN"], + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "AverageUploadRateLimitInBitsPerSec":{"shape":"BandwidthUploadRateLimit"}, + "AverageDownloadRateLimitInBitsPerSec":{"shape":"BandwidthDownloadRateLimit"} + } + }, + "UpdateBandwidthRateLimitOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "UpdateChapCredentialsInput":{ + "type":"structure", + "required":[ + "TargetARN", + "SecretToAuthenticateInitiator", + "InitiatorName" + ], + "members":{ + "TargetARN":{"shape":"TargetARN"}, + "SecretToAuthenticateInitiator":{"shape":"ChapSecret"}, + "InitiatorName":{"shape":"IqnName"}, + "SecretToAuthenticateTarget":{"shape":"ChapSecret"} + } + }, + "UpdateChapCredentialsOutput":{ + "type":"structure", + "members":{ + "TargetARN":{"shape":"TargetARN"}, + "InitiatorName":{"shape":"IqnName"} + } + }, + "UpdateGatewayInformationInput":{ + "type":"structure", + "required":["GatewayARN"], + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "GatewayName":{"shape":"GatewayName"}, + "GatewayTimezone":{"shape":"GatewayTimezone"} + } + }, + "UpdateGatewayInformationOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "UpdateGatewaySoftwareNowInput":{ + "type":"structure", + "required":["GatewayARN"], + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "UpdateGatewaySoftwareNowOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "UpdateMaintenanceStartTimeInput":{ + "type":"structure", + "required":[ + "GatewayARN", + "HourOfDay", + "MinuteOfHour", + "DayOfWeek" + ], + "members":{ + "GatewayARN":{"shape":"GatewayARN"}, + "HourOfDay":{"shape":"HourOfDay"}, + "MinuteOfHour":{"shape":"MinuteOfHour"}, + "DayOfWeek":{"shape":"DayOfWeek"} + } + }, + "UpdateMaintenanceStartTimeOutput":{ + "type":"structure", + "members":{ + "GatewayARN":{"shape":"GatewayARN"} + } + }, + "UpdateSnapshotScheduleInput":{ + "type":"structure", + "required":[ + "VolumeARN", + "StartAt", + "RecurrenceInHours" + ], + "members":{ + "VolumeARN":{"shape":"VolumeARN"}, + "StartAt":{"shape":"HourOfDay"}, + "RecurrenceInHours":{"shape":"RecurrenceInHours"}, + "Description":{"shape":"Description"} + } + }, + "UpdateSnapshotScheduleOutput":{ + "type":"structure", + "members":{ + "VolumeARN":{"shape":"VolumeARN"} + } + }, + "UpdateVTLDeviceTypeInput":{ + "type":"structure", + "required":[ + "VTLDeviceARN", + "DeviceType" + ], + "members":{ + "VTLDeviceARN":{"shape":"VTLDeviceARN"}, + "DeviceType":{"shape":"DeviceType"} + } + }, + "UpdateVTLDeviceTypeOutput":{ + "type":"structure", + "members":{ + "VTLDeviceARN":{"shape":"VTLDeviceARN"} + } + }, + "VTLDevice":{ + "type":"structure", + "members":{ + "VTLDeviceARN":{"shape":"VTLDeviceARN"}, + "VTLDeviceType":{"shape":"VTLDeviceType"}, + "VTLDeviceVendor":{"shape":"VTLDeviceVendor"}, + "VTLDeviceProductIdentifier":{"shape":"VTLDeviceProductIdentifier"}, + "DeviceiSCSIAttributes":{"shape":"DeviceiSCSIAttributes"} + } + }, + "VTLDeviceARN":{ + "type":"string", + "min":50, + "max":500 + }, + "VTLDeviceARNs":{ + "type":"list", + "member":{"shape":"VTLDeviceARN"} + }, + "VTLDeviceProductIdentifier":{"type":"string"}, + "VTLDeviceType":{"type":"string"}, + "VTLDeviceVendor":{"type":"string"}, + "VTLDevices":{ + "type":"list", + "member":{"shape":"VTLDevice"} + }, + "VolumeARN":{ + "type":"string", + "min":50, + "max":500 + }, + "VolumeARNs":{ + "type":"list", + "member":{"shape":"VolumeARN"} + }, + "VolumeId":{ + "type":"string", + "min":12, + "max":30 + }, + "VolumeInfo":{ + "type":"structure", + "members":{ + "VolumeARN":{"shape":"VolumeARN"}, + "VolumeType":{"shape":"VolumeType"} + } + }, + "VolumeInfos":{ + "type":"list", + "member":{"shape":"VolumeInfo"} + }, + "VolumeRecoveryPointInfo":{ + "type":"structure", + "members":{ + "VolumeARN":{"shape":"VolumeARN"}, + "VolumeSizeInBytes":{"shape":"long"}, + "VolumeUsageInBytes":{"shape":"long"}, + "VolumeRecoveryPointTime":{"shape":"string"} + } + }, + "VolumeRecoveryPointInfos":{ + "type":"list", + "member":{"shape":"VolumeRecoveryPointInfo"} + }, + "VolumeStatus":{ + "type":"string", + "min":3, + "max":50 + }, + "VolumeType":{ + "type":"string", + "min":3, + "max":100 + }, + "VolumeiSCSIAttributes":{ + "type":"structure", + "members":{ + "TargetARN":{"shape":"TargetARN"}, + "NetworkInterfaceId":{"shape":"NetworkInterfaceId"}, + "NetworkInterfacePort":{"shape":"integer"}, + "LunNumber":{"shape":"PositiveIntObject"}, + "ChapEnabled":{"shape":"boolean"} + } + }, + "boolean":{"type":"boolean"}, + "double":{"type":"double"}, + "errorDetails":{ + "type":"map", + "key":{"shape":"string"}, + "value":{"shape":"string"} + }, + "integer":{"type":"integer"}, + "long":{"type":"long"}, + "string":{"type":"string"} + } +} diff --git a/lib/aws-sdk/Aws/data/storagegateway/2013-06-30/docs-2.json b/lib/aws-sdk/Aws/data/storagegateway/2013-06-30/docs-2.json new file mode 100644 index 0000000..afdb3c6 --- /dev/null +++ b/lib/aws-sdk/Aws/data/storagegateway/2013-06-30/docs-2.json @@ -0,0 +1,1331 @@ +{ + "version": "2.0", + "operations": { + "ActivateGateway": "

This operation activates the gateway you previously deployed on your host. For more information, see Activate the AWS Storage Gateway. In the activation process, you specify information such as the region you want to use for storing snapshots, the time zone for scheduled snapshots the gateway snapshot schedule window, an activation key, and a name for your gateway. The activation process also associates your gateway with your account; for more information, see UpdateGatewayInformation.

You must turn on the gateway VM before you can activate your gateway.", + "AddCache": "

This operation configures one or more gateway local disks as cache for a cached-volume gateway. This operation is supported only for the gateway-cached volume architecture (see Storage Gateway Concepts).

In the request, you specify the gateway Amazon Resource Name (ARN) to which you want to add cache, and one or more disk IDs that you want to configure as cache.

", + "AddUploadBuffer": "

This operation configures one or more gateway local disks as upload buffer for a specified gateway. This operation is supported for both the gateway-stored and gateway-cached volume architectures.

In the request, you specify the gateway Amazon Resource Name (ARN) to which you want to add upload buffer, and one or more disk IDs that you want to configure as upload buffer.

", + "AddWorkingStorage": "

This operation configures one or more gateway local disks as working storage for a gateway. This operation is supported only for the gateway-stored volume architecture. This operation is deprecated method in cached-volumes API version (20120630). Use AddUploadBuffer instead.

Working storage is also referred to as upload buffer. You can also use the AddUploadBuffer operation to add upload buffer to a stored-volume gateway.

In the request, you specify the gateway Amazon Resource Name (ARN) to which you want to add working storage, and one or more disk IDs that you want to configure as working storage.

", + "CancelArchival": "

Cancels archiving of a virtual tape to the virtual tape shelf (VTS) after the archiving process is initiated.

", + "CancelRetrieval": "

Cancels retrieval of a virtual tape from the virtual tape shelf (VTS) to a gateway after the retrieval process is initiated. The virtual tape is returned to the VTS.

", + "CreateCachediSCSIVolume": "

This operation creates a cached volume on a specified cached gateway. This operation is supported only for the gateway-cached volume architecture.

Cache storage must be allocated to the gateway before you can create a cached volume. Use the AddCache operation to add cache storage to a gateway.

In the request, you must specify the gateway, size of the volume in bytes, the iSCSI target name, an IP address on which to expose the target, and a unique client token. In response, AWS Storage Gateway creates the volume and returns information about it such as the volume Amazon Resource Name (ARN), its size, and the iSCSI target ARN that initiators can use to connect to the volume target.

", + "CreateSnapshot": "

This operation initiates a snapshot of a volume.

AWS Storage Gateway provides the ability to back up point-in-time snapshots of your data to Amazon Simple Storage (S3) for durable off-site recovery, as well as import the data to an Amazon Elastic Block Store (EBS) volume in Amazon Elastic Compute Cloud (EC2). You can take snapshots of your gateway volume on a scheduled or ad-hoc basis. This API enables you to take ad-hoc snapshot. For more information, see Working With Snapshots in the AWS Storage Gateway Console.

In the CreateSnapshot request you identify the volume by providing its Amazon Resource Name (ARN). You must also provide description for the snapshot. When AWS Storage Gateway takes the snapshot of specified volume, the snapshot and description appears in the AWS Storage Gateway Console. In response, AWS Storage Gateway returns you a snapshot ID. You can use this snapshot ID to check the snapshot progress or later use it when you want to create a volume from a snapshot.

To list or delete a snapshot, you must use the Amazon EC2 API. For more information, see DescribeSnapshots or DeleteSnapshot in the EC2 API reference.", + "CreateSnapshotFromVolumeRecoveryPoint": "

This operation initiates a snapshot of a gateway from a volume recovery point. This operation is supported only for the gateway-cached volume architecture (see ).

A volume recovery point is a point in time at which all data of the volume is consistent and from which you can create a snapshot. To get a list of volume recovery point for gateway-cached volumes, use ListVolumeRecoveryPoints.

In the CreateSnapshotFromVolumeRecoveryPoint request, you identify the volume by providing its Amazon Resource Name (ARN). You must also provide a description for the snapshot. When AWS Storage Gateway takes a snapshot of the specified volume, the snapshot and its description appear in the AWS Storage Gateway console. In response, AWS Storage Gateway returns you a snapshot ID. You can use this snapshot ID to check the snapshot progress or later use it when you want to create a volume from a snapshot.

To list or delete a snapshot, you must use the Amazon EC2 API. For more information, in Amazon Elastic Compute Cloud API Reference.

", + "CreateStorediSCSIVolume": "

This operation creates a volume on a specified gateway. This operation is supported only for the gateway-stored volume architecture.

The size of the volume to create is inferred from the disk size. You can choose to preserve existing data on the disk, create volume from an existing snapshot, or create an empty volume. If you choose to create an empty gateway volume, then any existing data on the disk is erased.

In the request you must specify the gateway and the disk information on which you are creating the volume. In response, AWS Storage Gateway creates the volume and returns volume information such as the volume Amazon Resource Name (ARN), its size, and the iSCSI target ARN that initiators can use to connect to the volume target.

", + "CreateTapes": "

Creates one or more virtual tapes. You write data to the virtual tapes and then archive the tapes.

Cache storage must be allocated to the gateway before you can create virtual tapes. Use the AddCache operation to add cache storage to a gateway. ", + "DeleteBandwidthRateLimit": "

This operation deletes the bandwidth rate limits of a gateway. You can delete either the upload and download bandwidth rate limit, or you can delete both. If you delete only one of the limits, the other limit remains unchanged. To specify which gateway to work with, use the Amazon Resource Name (ARN) of the gateway in your request.

", + "DeleteChapCredentials": "

This operation deletes Challenge-Handshake Authentication Protocol (CHAP) credentials for a specified iSCSI target and initiator pair.

", + "DeleteGateway": "

This operation deletes a gateway. To specify which gateway to delete, use the Amazon Resource Name (ARN) of the gateway in your request. The operation deletes the gateway; however, it does not delete the gateway virtual machine (VM) from your host computer.

After you delete a gateway, you cannot reactivate it. Completed snapshots of the gateway volumes are not deleted upon deleting the gateway, however, pending snapshots will not complete. After you delete a gateway, your next step is to remove it from your environment.

You no longer pay software charges after the gateway is deleted; however, your existing Amazon EBS snapshots persist and you will continue to be billed for these snapshots. You can choose to remove all remaining Amazon EBS snapshots by canceling your Amazon EC2 subscription.  If you prefer not to cancel your Amazon EC2 subscription, you can delete your snapshots using the Amazon EC2 console. For more information, see the AWS Storage Gateway Detail Page.

", + "DeleteSnapshotSchedule": "

This operation deletes a snapshot of a volume.

You can take snapshots of your gateway volumes on a scheduled or ad-hoc basis. This API enables you to delete a snapshot schedule for a volume. For more information, see Working with Snapshots. In the DeleteSnapshotSchedule request, you identify the volume by providing its Amazon Resource Name (ARN).

To list or delete a snapshot, you must use the Amazon EC2 API. in Amazon Elastic Compute Cloud API Reference.

", + "DeleteTape": "

Deletes the specified virtual tape.

", + "DeleteTapeArchive": "

Deletes the specified virtual tape from the virtual tape shelf (VTS).

", + "DeleteVolume": "

This operation delete the specified gateway volume that you previously created using the CreateStorediSCSIVolume API. For gateway-stored volumes, the local disk that was configured as the storage volume is not deleted. You can reuse the local disk to create another storage volume.

Before you delete a gateway volume, make sure there are no iSCSI connections to the volume you are deleting. You should also make sure there is no snapshot in progress. You can use the Amazon Elastic Compute Cloud (Amazon EC2) API to query snapshots on the volume you are deleting and check the snapshot status. For more information, go to DescribeSnapshots in the Amazon Elastic Compute Cloud API Reference.

In the request, you must provide the Amazon Resource Name (ARN) of the storage volume you want to delete.

", + "DescribeBandwidthRateLimit": "

This operation returns the bandwidth rate limits of a gateway. By default, these limits are not set, which means no bandwidth rate limiting is in effect.

This operation only returns a value for a bandwidth rate limit only if the limit is set. If no limits are set for the gateway, then this operation returns only the gateway ARN in the response body. To specify which gateway to describe, use the Amazon Resource Name (ARN) of the gateway in your request.

", + "DescribeCache": "

This operation returns information about the cache of a gateway. This operation is supported only for the gateway-cached volume architecture.

The response includes disk IDs that are configured as cache, and it includes the amount of cache allocated and used.

", + "DescribeCachediSCSIVolumes": "

This operation returns a description of the gateway volumes specified in the request. This operation is supported only for the gateway-cached volume architecture.

The list of gateway volumes in the request must be from one gateway. In the response Amazon Storage Gateway returns volume information sorted by volume Amazon Resource Name (ARN).

", + "DescribeChapCredentials": "

This operation returns an array of Challenge-Handshake Authentication Protocol (CHAP) credentials information for a specified iSCSI target, one for each target-initiator pair.

", + "DescribeGatewayInformation": "

This operation returns metadata about a gateway such as its name, network interfaces, configured time zone, and the state (whether the gateway is running or not). To specify which gateway to describe, use the Amazon Resource Name (ARN) of the gateway in your request.

", + "DescribeMaintenanceStartTime": "

This operation returns your gateway's weekly maintenance start time including the day and time of the week. Note that values are in terms of the gateway's time zone.

", + "DescribeSnapshotSchedule": "

This operation describes the snapshot schedule for the specified gateway volume. The snapshot schedule information includes intervals at which snapshots are automatically initiated on the volume.

", + "DescribeStorediSCSIVolumes": "

This operation returns the description of the gateway volumes specified in the request. The list of gateway volumes in the request must be from one gateway. In the response Amazon Storage Gateway returns volume information sorted by volume ARNs.

", + "DescribeTapeArchives": "

Returns a description of specified virtual tapes in the virtual tape shelf (VTS).

If a specific TapeARN is not specified, AWS Storage Gateway returns a description of all virtual tapes found in the VTS associated with your account.

", + "DescribeTapeRecoveryPoints": "

Returns a list of virtual tape recovery points that are available for the specified gateway-VTL.

A recovery point is a point in time view of a virtual tape at which all the data on the virtual tape is consistent. If your gateway crashes, virtual tapes that have recovery points can be recovered to a new gateway.

", + "DescribeTapes": "

Returns a description of the specified Amazon Resource Name (ARN) of virtual tapes. If a TapeARN is not specified, returns a description of all virtual tapes associated with the specified gateway.

", + "DescribeUploadBuffer": "

This operation returns information about the upload buffer of a gateway. This operation is supported for both the gateway-stored and gateway-cached volume architectures.

The response includes disk IDs that are configured as upload buffer space, and it includes the amount of upload buffer space allocated and used.

", + "DescribeVTLDevices": "

Returns a description of virtual tape library (VTL) devices for the specified gateway. In the response, AWS Storage Gateway returns VTL device information.

The list of VTL devices must be from one gateway.

", + "DescribeWorkingStorage": "

This operation returns information about the working storage of a gateway. This operation is supported only for the gateway-stored volume architecture. This operation is deprecated in cached-volumes API version (20120630). Use DescribeUploadBuffer instead.

Working storage is also referred to as upload buffer. You can also use the DescribeUploadBuffer operation to add upload buffer to a stored-volume gateway.

The response includes disk IDs that are configured as working storage, and it includes the amount of working storage allocated and used.

", + "DisableGateway": "

Disables a gateway when the gateway is no longer functioning. For example, if your gateway VM is damaged, you can disable the gateway so you can recover virtual tapes.

Use this operation for a gateway-VTL that is not reachable or not functioning.

Once a gateway is disabled it cannot be enabled.", + "ListGateways": "

This operation lists gateways owned by an AWS account in a region specified in the request. The returned list is ordered by gateway Amazon Resource Name (ARN).

By default, the operation returns a maximum of 100 gateways. This operation supports pagination that allows you to optionally reduce the number of gateways returned in a response.

If you have more gateways than are returned in a response-that is, the response returns only a truncated list of your gateways-the response contains a marker that you can specify in your next request to fetch the next page of gateways.

", + "ListLocalDisks": "

This operation returns a list of the gateway's local disks. To specify which gateway to describe, you use the Amazon Resource Name (ARN) of the gateway in the body of the request.

The request returns a list of all disks, specifying which are configured as working storage, cache storage, or stored volume or not configured at all. The response includes a DiskStatus field. This field can have a value of present (the disk is available to use), missing (the disk is no longer connected to the gateway), or mismatch (the disk node is occupied by a disk that has incorrect metadata or the disk content is corrupted).

", + "ListVolumeInitiators": "

This operation lists iSCSI initiators that are connected to a volume. You can use this operation to determine whether a volume is being used or not.

", + "ListVolumeRecoveryPoints": "

This operation lists the recovery points for a specified gateway. This operation is supported only for the gateway-cached volume architecture.

Each gateway-cached volume has one recovery point. A volume recovery point is a point in time at which all data of the volume is consistent and from which you can create a snapshot. To create a snapshot from a volume recovery point use the CreateSnapshotFromVolumeRecoveryPoint operation.

", + "ListVolumes": "

This operation lists the iSCSI stored volumes of a gateway. Results are sorted by volume ARN. The response includes only the volume ARNs. If you want additional volume information, use the DescribeStorediSCSIVolumes API.

The operation supports pagination. By default, the operation returns a maximum of up to 100 volumes. You can optionally specify the Limit field in the body to limit the number of volumes in the response. If the number of volumes returned in the response is truncated, the response includes a Marker field. You can use this Marker value in your subsequent request to retrieve the next set of volumes.

", + "ResetCache": "

This operation resets all cache disks that have encountered a error and makes the disks available for reconfiguration as cache storage. If your cache disk encounters a error, the gateway prevents read and write operations on virtual tapes in the gateway. For example, an error can occur when a disk is corrupted or removed from the gateway. When a cache is reset, the gateway loses its cache storage. At this point you can reconfigure the disks as cache disks.

If the cache disk you are resetting contains data that has not been uploaded to Amazon S3 yet, that data can be lost. After you reset cache disks, there will be no configured cache disks left in the gateway, so you must configure at least one new cache disk for your gateway to function properly.

", + "RetrieveTapeArchive": "

Retrieves an archived virtual tape from the virtual tape shelf (VTS) to a gateway-VTL. Virtual tapes archived in the VTS are not associated with any gateway. However after a tape is retrieved, it is associated with a gateway, even though it is also listed in the VTS.

Once a tape is successfully retrieved to a gateway, it cannot be retrieved again to another gateway. You must archive the tape again before you can retrieve it to another gateway.

", + "RetrieveTapeRecoveryPoint": "

Retrieves the recovery point for the specified virtual tape.

A recovery point is a point in time view of a virtual tape at which all the data on the tape is consistent. If your gateway crashes, virtual tapes that have recovery points can be recovered to a new gateway.

The virtual tape can be retrieved to only one gateway. The retrieved tape is read-only. The virtual tape can be retrieved to only a gateway-VTL. There is no charge for retrieving recovery points.", + "ShutdownGateway": "

This operation shuts down a gateway. To specify which gateway to shut down, use the Amazon Resource Name (ARN) of the gateway in the body of your request.

The operation shuts down the gateway service component running in the storage gateway's virtual machine (VM) and not the VM.

If you want to shut down the VM, it is recommended that you first shut down the gateway component in the VM to avoid unpredictable conditions.

After the gateway is shutdown, you cannot call any other API except StartGateway, DescribeGatewayInformation, and ListGateways. For more information, see ActivateGateway. Your applications cannot read from or write to the gateway's storage volumes, and there are no snapshots taken.

When you make a shutdown request, you will get a 200 OK success response immediately. However, it might take some time for the gateway to shut down. You can call the DescribeGatewayInformation API to check the status. For more information, see ActivateGateway.

If do not intend to use the gateway again, you must delete the gateway (using DeleteGateway) to no longer pay software charges associated with the gateway.

", + "StartGateway": "

This operation starts a gateway that you previously shut down (see ShutdownGateway). After the gateway starts, you can then make other API calls, your applications can read from or write to the gateway's storage volumes and you will be able to take snapshot backups.

When you make a request, you will get a 200 OK success response immediately. However, it might take some time for the gateway to be ready. You should call DescribeGatewayInformation and check the status before making any additional API calls. For more information, see ActivateGateway.

To specify which gateway to start, use the Amazon Resource Name (ARN) of the gateway in your request.

", + "UpdateBandwidthRateLimit": "

This operation updates the bandwidth rate limits of a gateway. You can update both the upload and download bandwidth rate limit or specify only one of the two. If you don't set a bandwidth rate limit, the existing rate limit remains.

By default, a gateway's bandwidth rate limits are not set. If you don't set any limit, the gateway does not have any limitations on its bandwidth usage and could potentially use the maximum available bandwidth.

To specify which gateway to update, use the Amazon Resource Name (ARN) of the gateway in your request.

", + "UpdateChapCredentials": "

This operation updates the Challenge-Handshake Authentication Protocol (CHAP) credentials for a specified iSCSI target. By default, a gateway does not have CHAP enabled; however, for added security, you might use it.

When you update CHAP credentials, all existing connections on the target are closed and initiators must reconnect with the new credentials.

", + "UpdateGatewayInformation": "

This operation updates a gateway's metadata, which includes the gateway's name and time zone. To specify which gateway to update, use the Amazon Resource Name (ARN) of the gateway in your request.

", + "UpdateGatewaySoftwareNow": "

This operation updates the gateway virtual machine (VM) software. The request immediately triggers the software update.

When you make this request, you get a 200 OK success response immediately. However, it might take some time for the update to complete. You can call DescribeGatewayInformation to verify the gateway is in the STATE_RUNNING state. A software update forces a system restart of your gateway. You can minimize the chance of any disruption to your applications by increasing your iSCSI Initiators' timeouts. For more information about increasing iSCSI Initiator timeouts for Windows and Linux, see Customizing Your Windows iSCSI Settings and Customizing Your Linux iSCSI Settings, respectively.", + "UpdateMaintenanceStartTime": "

This operation updates a gateway's weekly maintenance start time information, including day and time of the week. The maintenance time is the time in your gateway's time zone.

", + "UpdateSnapshotSchedule": "

This operation updates a snapshot schedule configured for a gateway volume.

The default snapshot schedule for volume is once every 24 hours, starting at the creation time of the volume. You can use this API to change the snapshot schedule configured for the volume.

In the request you must identify the gateway volume whose snapshot schedule you want to update, and the schedule information, including when you want the snapshot to begin on a day and the frequency (in hours) of snapshots.

", + "UpdateVTLDeviceType": "

This operation updates the type of medium changer in a gateway-VTL. When you activate a gateway-VTL, you select a medium changer type for the gateway-VTL. This operation enables you to select a different type of medium changer after a gateway-VTL is activated.

" + }, + "service": "AWS Storage Gateway Service

AWS Storage Gateway is the service that connects an on-premises software appliance with cloud-based storage to provide seamless and secure integration between an organization's on-premises IT environment and AWS's storage infrastructure. The service enables you to securely upload data to the AWS cloud for cost effective backup and rapid disaster recovery.

Use the following links to get started using the AWS Storage Gateway Service API Reference:

", + "shapes": { + "ActivateGatewayInput": { + "base": "

A JSON object containing one or more of the following fields:

", + "refs": { + } + }, + "ActivateGatewayOutput": { + "base": "

AWS Storage Gateway returns the Amazon Resource Name (ARN) of the activated gateway. It is a string made of information such as your account, gateway name, and region. This ARN is used to reference the gateway in other API operations as well as resource-based authorization.

", + "refs": { + } + }, + "ActivationKey": { + "base": null, + "refs": { + "ActivateGatewayInput$ActivationKey": "

Your gateway activation key. You can obtain the activation key by sending an HTTP GET request with redirects enabled to the gateway IP address (port 80). The redirect URL returned in the response provides you the activation key for your gateway in the query string parameter activationKey. It may also include other activation-related parameters, however, these are merely defaults -- the arguments you pass to the ActivateGateway API call determine the actual configuration of your gateway.

" + } + }, + "AddCacheInput": { + "base": null, + "refs": { + } + }, + "AddCacheOutput": { + "base": null, + "refs": { + } + }, + "AddUploadBufferInput": { + "base": null, + "refs": { + } + }, + "AddUploadBufferOutput": { + "base": null, + "refs": { + } + }, + "AddWorkingStorageInput": { + "base": "

A JSON object containing one or more of the following fields:

", + "refs": { + } + }, + "AddWorkingStorageOutput": { + "base": "

A JSON object containing the of the gateway for which working storage was configured.

", + "refs": { + } + }, + "BandwidthDownloadRateLimit": { + "base": null, + "refs": { + "DescribeBandwidthRateLimitOutput$AverageDownloadRateLimitInBitsPerSec": "

The average download bandwidth rate limit in bits per second. This field does not appear in the response if the download rate limit is not set.

", + "UpdateBandwidthRateLimitInput$AverageDownloadRateLimitInBitsPerSec": "

The average download bandwidth rate limit in bits per second.

" + } + }, + "BandwidthType": { + "base": null, + "refs": { + "DeleteBandwidthRateLimitInput$BandwidthType": null + } + }, + "BandwidthUploadRateLimit": { + "base": null, + "refs": { + "DescribeBandwidthRateLimitOutput$AverageUploadRateLimitInBitsPerSec": "

The average upload bandwidth rate limit in bits per second. This field does not appear in the response if the upload rate limit is not set.

", + "UpdateBandwidthRateLimitInput$AverageUploadRateLimitInBitsPerSec": "

The average upload bandwidth rate limit in bits per second.

" + } + }, + "CachediSCSIVolume": { + "base": null, + "refs": { + "CachediSCSIVolumes$member": null + } + }, + "CachediSCSIVolumes": { + "base": null, + "refs": { + "DescribeCachediSCSIVolumesOutput$CachediSCSIVolumes": "

An array of objects where each object contains metadata about one cached volume.

" + } + }, + "CancelArchivalInput": { + "base": "

CancelArchivalInput

", + "refs": { + } + }, + "CancelArchivalOutput": { + "base": "

CancelArchivalOutput

", + "refs": { + } + }, + "CancelRetrievalInput": { + "base": "

CancelRetrievalInput

", + "refs": { + } + }, + "CancelRetrievalOutput": { + "base": "

CancelRetrievalOutput

", + "refs": { + } + }, + "ChapCredentials": { + "base": null, + "refs": { + "DescribeChapCredentialsOutput$ChapCredentials": "

An array of ChapInfo objects that represent CHAP credentials. Each object in the array contains CHAP credential information for one target-initiator pair. If no CHAP credentials are set, an empty array is returned. CHAP credential information is provided in a JSON object with the following fields:

  • InitiatorName: The iSCSI initiator that connects to the target.

  • SecretToAuthenticateInitiator: The secret key that the initiator (for example, the Windows client) must provide to participate in mutual CHAP with the target.

  • SecretToAuthenticateTarget: The secret key that the target must provide to participate in mutual CHAP with the initiator (e.g. Windows client).

  • TargetARN: The Amazon Resource Name (ARN) of the storage volume.

" + } + }, + "ChapInfo": { + "base": "

Describes Challenge-Handshake Authentication Protocol (CHAP) information that supports authentication between your gateway and iSCSI initiators.

", + "refs": { + "ChapCredentials$member": null + } + }, + "ChapSecret": { + "base": null, + "refs": { + "ChapInfo$SecretToAuthenticateInitiator": "

The secret key that the initiator (for example, the Windows client) must provide to participate in mutual CHAP with the target.

", + "ChapInfo$SecretToAuthenticateTarget": "

The secret key that the target must provide to participate in mutual CHAP with the initiator (e.g. Windows client).

", + "UpdateChapCredentialsInput$SecretToAuthenticateInitiator": "

The secret key that the initiator (for example, the Windows client) must provide to participate in mutual CHAP with the target.

The secret key must be between 12 and 16 bytes when encoded in UTF-8.", + "UpdateChapCredentialsInput$SecretToAuthenticateTarget": "

The secret key that the target must provide to participate in mutual CHAP with the initiator (e.g. Windows client).

Byte constraints: Minimum bytes of 12. Maximum bytes of 16.

The secret key must be between 12 and 16 bytes when encoded in UTF-8." + } + }, + "ClientToken": { + "base": null, + "refs": { + "CreateCachediSCSIVolumeInput$ClientToken": null, + "CreateTapesInput$ClientToken": "

A unique identifier that you use to retry a request. If you retry a request, use the same ClientToken you specified in the initial request.

Using the same ClientToken prevents creating the tape multiple times." + } + }, + "CreateCachediSCSIVolumeInput": { + "base": null, + "refs": { + } + }, + "CreateCachediSCSIVolumeOutput": { + "base": null, + "refs": { + } + }, + "CreateSnapshotFromVolumeRecoveryPointInput": { + "base": null, + "refs": { + } + }, + "CreateSnapshotFromVolumeRecoveryPointOutput": { + "base": null, + "refs": { + } + }, + "CreateSnapshotInput": { + "base": "

A JSON object containing one or more of the following fields:

", + "refs": { + } + }, + "CreateSnapshotOutput": { + "base": "

A JSON object containing the following fields:

", + "refs": { + } + }, + "CreateStorediSCSIVolumeInput": { + "base": "

A JSON object containing one or more of the following fields:

", + "refs": { + } + }, + "CreateStorediSCSIVolumeOutput": { + "base": "

A JSON object containing the following fields:

", + "refs": { + } + }, + "CreateTapesInput": { + "base": "

CreateTapesInput

", + "refs": { + } + }, + "CreateTapesOutput": { + "base": "

CreateTapeOutput

", + "refs": { + } + }, + "DayOfWeek": { + "base": null, + "refs": { + "DescribeMaintenanceStartTimeOutput$DayOfWeek": null, + "UpdateMaintenanceStartTimeInput$DayOfWeek": "

The maintenance start time day of the week.

" + } + }, + "DeleteBandwidthRateLimitInput": { + "base": null, + "refs": { + } + }, + "DeleteBandwidthRateLimitOutput": { + "base": "

A JSON object containing the of the gateway whose bandwidth rate information was deleted.

", + "refs": { + } + }, + "DeleteChapCredentialsInput": { + "base": "

A JSON object containing one or more of the following fields:

", + "refs": { + } + }, + "DeleteChapCredentialsOutput": { + "base": "

A JSON object containing the following fields:

", + "refs": { + } + }, + "DeleteGatewayInput": { + "base": "

A JSON object containing the id of the gateway to delete.

", + "refs": { + } + }, + "DeleteGatewayOutput": { + "base": "

A JSON object containing the id of the deleted gateway.

", + "refs": { + } + }, + "DeleteSnapshotScheduleInput": { + "base": null, + "refs": { + } + }, + "DeleteSnapshotScheduleOutput": { + "base": null, + "refs": { + } + }, + "DeleteTapeArchiveInput": { + "base": "

DeleteTapeArchiveInput

", + "refs": { + } + }, + "DeleteTapeArchiveOutput": { + "base": "

DeleteTapeArchiveOutput

", + "refs": { + } + }, + "DeleteTapeInput": { + "base": "

DeleteTapeInput

", + "refs": { + } + }, + "DeleteTapeOutput": { + "base": "

DeleteTapeOutput

", + "refs": { + } + }, + "DeleteVolumeInput": { + "base": "

A JSON object containing the DeleteVolumeInput$VolumeARN to delete.

", + "refs": { + } + }, + "DeleteVolumeOutput": { + "base": "

A JSON object containing the of the storage volume that was deleted

", + "refs": { + } + }, + "DescribeBandwidthRateLimitInput": { + "base": "

A JSON object containing the of the gateway.

", + "refs": { + } + }, + "DescribeBandwidthRateLimitOutput": { + "base": "

A JSON object containing the following fields:

", + "refs": { + } + }, + "DescribeCacheInput": { + "base": null, + "refs": { + } + }, + "DescribeCacheOutput": { + "base": null, + "refs": { + } + }, + "DescribeCachediSCSIVolumesInput": { + "base": null, + "refs": { + } + }, + "DescribeCachediSCSIVolumesOutput": { + "base": "

A JSON object containing the following fields:

", + "refs": { + } + }, + "DescribeChapCredentialsInput": { + "base": "

A JSON object containing the Amazon Resource Name (ARN) of the iSCSI volume target.

", + "refs": { + } + }, + "DescribeChapCredentialsOutput": { + "base": "

A JSON object containing a .

", + "refs": { + } + }, + "DescribeGatewayInformationInput": { + "base": "

A JSON object containing the id of the gateway.

", + "refs": { + } + }, + "DescribeGatewayInformationOutput": { + "base": "

A JSON object containing the following fields:

", + "refs": { + } + }, + "DescribeMaintenanceStartTimeInput": { + "base": "

A JSON object containing the of the gateway.

", + "refs": { + } + }, + "DescribeMaintenanceStartTimeOutput": { + "base": null, + "refs": { + } + }, + "DescribeSnapshotScheduleInput": { + "base": "

A JSON object containing the DescribeSnapshotScheduleInput$VolumeARN of the volume.

", + "refs": { + } + }, + "DescribeSnapshotScheduleOutput": { + "base": null, + "refs": { + } + }, + "DescribeStorediSCSIVolumesInput": { + "base": "

A JSON Object containing a list of DescribeStorediSCSIVolumesInput$VolumeARNs.

", + "refs": { + } + }, + "DescribeStorediSCSIVolumesOutput": { + "base": null, + "refs": { + } + }, + "DescribeTapeArchivesInput": { + "base": "

DescribeTapeArchivesInput

", + "refs": { + } + }, + "DescribeTapeArchivesOutput": { + "base": "

DescribeTapeArchivesOutput

", + "refs": { + } + }, + "DescribeTapeRecoveryPointsInput": { + "base": "

DescribeTapeRecoveryPointsInput

", + "refs": { + } + }, + "DescribeTapeRecoveryPointsOutput": { + "base": "

DescribeTapeRecoveryPointsOutput

", + "refs": { + } + }, + "DescribeTapesInput": { + "base": "

DescribeTapesInput

", + "refs": { + } + }, + "DescribeTapesOutput": { + "base": "

DescribeTapesOutput

", + "refs": { + } + }, + "DescribeUploadBufferInput": { + "base": null, + "refs": { + } + }, + "DescribeUploadBufferOutput": { + "base": null, + "refs": { + } + }, + "DescribeVTLDevicesInput": { + "base": "

DescribeVTLDevicesInput

", + "refs": { + } + }, + "DescribeVTLDevicesOutput": { + "base": "

DescribeVTLDevicesOutput

", + "refs": { + } + }, + "DescribeWorkingStorageInput": { + "base": "

A JSON object containing the of the gateway.

", + "refs": { + } + }, + "DescribeWorkingStorageOutput": { + "base": "

A JSON object containing the following fields:

", + "refs": { + } + }, + "Description": { + "base": null, + "refs": { + "DescribeSnapshotScheduleOutput$Description": null, + "UpdateSnapshotScheduleInput$Description": "

Optional description of the snapshot that overwrites the existing description.

" + } + }, + "DeviceType": { + "base": null, + "refs": { + "UpdateVTLDeviceTypeInput$DeviceType": "

The type of medium changer you want to select.

Valid Values: \"STK-L700\", \"AWS-Gateway-VTL\"

" + } + }, + "DeviceiSCSIAttributes": { + "base": "

Lists iSCSI information about a VTL device.

", + "refs": { + "VTLDevice$DeviceiSCSIAttributes": "

A list of iSCSI information about a VTL device.

" + } + }, + "DisableGatewayInput": { + "base": "

DisableGatewayInput

", + "refs": { + } + }, + "DisableGatewayOutput": { + "base": "

DisableGatewayOutput

", + "refs": { + } + }, + "Disk": { + "base": null, + "refs": { + "Disks$member": null + } + }, + "DiskAllocationType": { + "base": null, + "refs": { + "Disk$DiskAllocationType": null + } + }, + "DiskId": { + "base": null, + "refs": { + "CreateStorediSCSIVolumeInput$DiskId": "

The unique identifier for the gateway local disk that is configured as a stored volume. Use ListLocalDisks to list disk IDs for a gateway.

", + "Disk$DiskId": null, + "DiskIds$member": null, + "StorediSCSIVolume$VolumeDiskId": null + } + }, + "DiskIds": { + "base": null, + "refs": { + "AddCacheInput$DiskIds": null, + "AddUploadBufferInput$DiskIds": null, + "AddWorkingStorageInput$DiskIds": "

An array of strings that identify disks that are to be configured as working storage. Each string have a minimum length of 1 and maximum length of 300. You can get the disk IDs from the ListLocalDisks API.

", + "DescribeCacheOutput$DiskIds": null, + "DescribeUploadBufferOutput$DiskIds": null, + "DescribeWorkingStorageOutput$DiskIds": "

An array of the gateway's local disk IDs that are configured as working storage. Each local disk ID is specified as a string (minimum length of 1 and maximum length of 300). If no local disks are configured as working storage, then the DiskIds array is empty.

" + } + }, + "Disks": { + "base": null, + "refs": { + "ListLocalDisksOutput$Disks": null + } + }, + "DoubleObject": { + "base": null, + "refs": { + "CachediSCSIVolume$VolumeProgress": null, + "StorediSCSIVolume$VolumeProgress": null, + "Tape$Progress": "

For archiving virtual tapes, indicates how much data remains to be uploaded before archiving is complete.

Range: 0 (not started) to 100 (complete).

" + } + }, + "ErrorCode": { + "base": null, + "refs": { + "StorageGatewayError$errorCode": "

Additional information about the error.

" + } + }, + "GatewayARN": { + "base": "

The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation to return a list of gateways for your account and region.

", + "refs": { + "ActivateGatewayOutput$GatewayARN": null, + "AddCacheInput$GatewayARN": null, + "AddCacheOutput$GatewayARN": null, + "AddUploadBufferInput$GatewayARN": null, + "AddUploadBufferOutput$GatewayARN": null, + "AddWorkingStorageInput$GatewayARN": null, + "AddWorkingStorageOutput$GatewayARN": null, + "CancelArchivalInput$GatewayARN": null, + "CancelRetrievalInput$GatewayARN": null, + "CreateCachediSCSIVolumeInput$GatewayARN": null, + "CreateStorediSCSIVolumeInput$GatewayARN": null, + "CreateTapesInput$GatewayARN": "

The unique Amazon Resource Name(ARN) that represents the gateway to associate the virtual tapes with. Use the ListGateways operation to return a list of gateways for your account and region.

", + "DeleteBandwidthRateLimitInput$GatewayARN": null, + "DeleteBandwidthRateLimitOutput$GatewayARN": null, + "DeleteGatewayInput$GatewayARN": null, + "DeleteGatewayOutput$GatewayARN": null, + "DeleteTapeInput$GatewayARN": "

The unique Amazon Resource Name (ARN) of the gateway that the virtual tape to delete is associated with. Use the ListGateways operation to return a list of gateways for your account and region.

", + "DescribeBandwidthRateLimitInput$GatewayARN": null, + "DescribeBandwidthRateLimitOutput$GatewayARN": null, + "DescribeCacheInput$GatewayARN": null, + "DescribeCacheOutput$GatewayARN": null, + "DescribeGatewayInformationInput$GatewayARN": null, + "DescribeGatewayInformationOutput$GatewayARN": null, + "DescribeMaintenanceStartTimeInput$GatewayARN": null, + "DescribeMaintenanceStartTimeOutput$GatewayARN": null, + "DescribeTapeRecoveryPointsInput$GatewayARN": null, + "DescribeTapeRecoveryPointsOutput$GatewayARN": null, + "DescribeTapesInput$GatewayARN": null, + "DescribeUploadBufferInput$GatewayARN": null, + "DescribeUploadBufferOutput$GatewayARN": null, + "DescribeVTLDevicesInput$GatewayARN": null, + "DescribeVTLDevicesOutput$GatewayARN": null, + "DescribeWorkingStorageInput$GatewayARN": null, + "DescribeWorkingStorageOutput$GatewayARN": null, + "DisableGatewayInput$GatewayARN": null, + "DisableGatewayOutput$GatewayARN": "

The unique Amazon Resource Name of the disabled gateway.

", + "GatewayInfo$GatewayARN": null, + "ListLocalDisksInput$GatewayARN": null, + "ListLocalDisksOutput$GatewayARN": null, + "ListVolumeRecoveryPointsInput$GatewayARN": null, + "ListVolumeRecoveryPointsOutput$GatewayARN": null, + "ListVolumesInput$GatewayARN": null, + "ListVolumesOutput$GatewayARN": null, + "ResetCacheInput$GatewayARN": null, + "ResetCacheOutput$GatewayARN": null, + "RetrieveTapeArchiveInput$GatewayARN": "

The Amazon Resource Name (ARN) of the gateway you want to retrieve the virtual tape to. Use the ListGateways operation to return a list of gateways for your account and region.

You retrieve archived virtual tapes to only one gateway and the gateway must be a gateway-VTL.

", + "RetrieveTapeRecoveryPointInput$GatewayARN": null, + "ShutdownGatewayInput$GatewayARN": null, + "ShutdownGatewayOutput$GatewayARN": null, + "StartGatewayInput$GatewayARN": null, + "StartGatewayOutput$GatewayARN": null, + "TapeArchive$RetrievedTo": "

The Amazon Resource Name (ARN) of the gateway-VTL that the virtual tape is being retrieved to.

The virtual tape is retrieved from the virtual tape shelf (VTS).

", + "UpdateBandwidthRateLimitInput$GatewayARN": null, + "UpdateBandwidthRateLimitOutput$GatewayARN": null, + "UpdateGatewayInformationInput$GatewayARN": null, + "UpdateGatewayInformationOutput$GatewayARN": null, + "UpdateGatewaySoftwareNowInput$GatewayARN": null, + "UpdateGatewaySoftwareNowOutput$GatewayARN": null, + "UpdateMaintenanceStartTimeInput$GatewayARN": null, + "UpdateMaintenanceStartTimeOutput$GatewayARN": null + } + }, + "GatewayId": { + "base": null, + "refs": { + "DescribeGatewayInformationOutput$GatewayId": "

The gateway ID.

" + } + }, + "GatewayInfo": { + "base": null, + "refs": { + "Gateways$member": null + } + }, + "GatewayName": { + "base": "

A unique identifier for your gateway. This name becomes part of the gateway Amazon Resources Name (ARN) which is what you use as an input to other operations.

", + "refs": { + "ActivateGatewayInput$GatewayName": null, + "UpdateGatewayInformationInput$GatewayName": null + } + }, + "GatewayNetworkInterfaces": { + "base": null, + "refs": { + "DescribeGatewayInformationOutput$GatewayNetworkInterfaces": "

A NetworkInterface array that contains descriptions of the gateway network interfaces.

" + } + }, + "GatewayOperationalState": { + "base": null, + "refs": { + "GatewayInfo$GatewayOperationalState": null + } + }, + "GatewayState": { + "base": null, + "refs": { + "DescribeGatewayInformationOutput$GatewayState": "

One of the values that indicates the operating state of the gateway.

" + } + }, + "GatewayTimezone": { + "base": null, + "refs": { + "ActivateGatewayInput$GatewayTimezone": "

One of the values that indicates the time zone you want to set for the gateway. The time zone is used, for example, for scheduling snapshots and your gateway's maintenance schedule.

", + "DescribeGatewayInformationOutput$GatewayTimezone": "

One of the values that indicates the time zone configured for the gateway.

", + "DescribeMaintenanceStartTimeOutput$Timezone": null, + "DescribeSnapshotScheduleOutput$Timezone": null, + "UpdateGatewayInformationInput$GatewayTimezone": null + } + }, + "GatewayType": { + "base": null, + "refs": { + "ActivateGatewayInput$GatewayType": "

One of the values that defines the type of gateway to activate. The type specified is critical to all later functions of the gateway and cannot be changed after activation. The default value is STORED.

", + "DescribeGatewayInformationOutput$GatewayType": "

The type of the gateway.

", + "GatewayInfo$GatewayType": null + } + }, + "Gateways": { + "base": null, + "refs": { + "ListGatewaysOutput$Gateways": null + } + }, + "HourOfDay": { + "base": null, + "refs": { + "DescribeMaintenanceStartTimeOutput$HourOfDay": null, + "DescribeSnapshotScheduleOutput$StartAt": null, + "UpdateMaintenanceStartTimeInput$HourOfDay": "

The hour component of the maintenance start time represented as hh, where hh is the hour (00 to 23). The hour of the day is in the time zone of the gateway.

", + "UpdateSnapshotScheduleInput$StartAt": "

The hour of the day at which the snapshot schedule begins represented as hh, where hh is the hour (0 to 23). The hour of the day is in the time zone of the gateway.

" + } + }, + "Initiator": { + "base": null, + "refs": { + "Initiators$member": null + } + }, + "Initiators": { + "base": null, + "refs": { + "ListVolumeInitiatorsOutput$Initiators": "

The host names and port numbers of all iSCSI initiators that are connected to the gateway.

" + } + }, + "InternalServerError": { + "base": "

An internal server error has occurred during the request. See the error and message fields for more information.

", + "refs": { + } + }, + "InvalidGatewayRequestException": { + "base": "

An exception occurred because an invalid gateway request was issued to the service. See the error and message fields for more information.

", + "refs": { + } + }, + "IqnName": { + "base": null, + "refs": { + "ChapInfo$InitiatorName": "

The iSCSI initiator that connects to the target.

", + "DeleteChapCredentialsInput$InitiatorName": "

The iSCSI initiator that connects to the target.

", + "DeleteChapCredentialsOutput$InitiatorName": "

The iSCSI initiator that connects to the target.

", + "UpdateChapCredentialsInput$InitiatorName": "

The iSCSI initiator that connects to the target.

", + "UpdateChapCredentialsOutput$InitiatorName": "

The iSCSI initiator that connects to the target. This is the same initiator name specified in the request.

" + } + }, + "LastSoftwareUpdate": { + "base": null, + "refs": { + "DescribeGatewayInformationOutput$LastSoftwareUpdate": "

The date on which the last software update was applied to the gateway. If the gateway has never been updated, this field does not return a value in the response.

" + } + }, + "ListGatewaysInput": { + "base": "

A JSON object containing zero or more of the following fields:

", + "refs": { + } + }, + "ListGatewaysOutput": { + "base": null, + "refs": { + } + }, + "ListLocalDisksInput": { + "base": "

A JSON object containing the of the gateway.

", + "refs": { + } + }, + "ListLocalDisksOutput": { + "base": null, + "refs": { + } + }, + "ListVolumeInitiatorsInput": { + "base": "

ListVolumeInitiatorsInput

", + "refs": { + } + }, + "ListVolumeInitiatorsOutput": { + "base": "

ListVolumeInitiatorsOutput

", + "refs": { + } + }, + "ListVolumeRecoveryPointsInput": { + "base": null, + "refs": { + } + }, + "ListVolumeRecoveryPointsOutput": { + "base": null, + "refs": { + } + }, + "ListVolumesInput": { + "base": "

A JSON object that contains one or more of the following fields:

", + "refs": { + } + }, + "ListVolumesOutput": { + "base": null, + "refs": { + } + }, + "Marker": { + "base": null, + "refs": { + "DescribeTapeArchivesInput$Marker": "

An opaque string that indicates the position at which to begin describing virtual tapes.

", + "DescribeTapeArchivesOutput$Marker": "

An opaque string that indicates the position at which the virtual tapes that were fetched for description ended. Use this marker in your next request to fetch the next set of virtual tapes in the virtual tape shelf (VTS). If there are no more virtual tapes to describe, this field does not appear in the response.

", + "DescribeTapeRecoveryPointsInput$Marker": "

An opaque string that indicates the position at which to begin describing the virtual tape recovery points.

", + "DescribeTapeRecoveryPointsOutput$Marker": "

An opaque string that indicates the position at which the virtual tape recovery points that were listed for description ended.

Use this marker in your next request to list the next set of virtual tape recovery points in the list. If there are no more recovery points to describe, this field does not appear in the response.

", + "DescribeTapesInput$Marker": "

A marker value, obtained in a previous call to DescribeTapes. This marker indicates which page of results to retrieve.

If not specified, the first page of results is retrieved.

", + "DescribeTapesOutput$Marker": "

An opaque string which can be used as part of a subsequent DescribeTapes call to retrieve the next page of results.

If a response does not contain a marker, then there are no more results to be retrieved.

", + "DescribeVTLDevicesInput$Marker": "

An opaque string that indicates the position at which to begin describing the VTL devices.

", + "DescribeVTLDevicesOutput$Marker": "

An opaque string that indicates the position at which the VTL devices that were fetched for description ended. Use the marker in your next request to fetch the next set of VTL devices in the list. If there are no more VTL devices to describe, this field does not appear in the response.

", + "ListGatewaysInput$Marker": "

An opaque string that indicates the position at which to begin the returned list of gateways.

", + "ListGatewaysOutput$Marker": null, + "ListVolumesInput$Marker": "

A string that indicates the position at which to begin the returned list of volumes. Obtain the marker from the response of a previous List iSCSI Volumes request.

", + "ListVolumesOutput$Marker": null + } + }, + "MediumChangerType": { + "base": null, + "refs": { + "ActivateGatewayInput$MediumChangerType": "

The value that indicates the type of medium changer to use for gateway-VTL. This field is optional.

Valid Values: \"STK-L700\", \"AWS-Gateway-VTL\"

" + } + }, + "MinuteOfHour": { + "base": null, + "refs": { + "DescribeMaintenanceStartTimeOutput$MinuteOfHour": null, + "UpdateMaintenanceStartTimeInput$MinuteOfHour": "

The minute component of the maintenance start time represented as mm, where mm is the minute (00 to 59). The minute of the hour is in the time zone of the gateway.

" + } + }, + "NetworkInterface": { + "base": "

Describes a gateway's network interface.

", + "refs": { + "GatewayNetworkInterfaces$member": null + } + }, + "NetworkInterfaceId": { + "base": null, + "refs": { + "CreateCachediSCSIVolumeInput$NetworkInterfaceId": null, + "CreateStorediSCSIVolumeInput$NetworkInterfaceId": "

The network interface of the gateway on which to expose the iSCSI target. Only IPv4 addresses are accepted. Use DescribeGatewayInformation to get a list of the network interfaces available on a gateway.

Valid Values: A valid IP address.

", + "DeviceiSCSIAttributes$NetworkInterfaceId": "

The network interface identifier of the VTL device.

", + "VolumeiSCSIAttributes$NetworkInterfaceId": "

The network interface identifier.

" + } + }, + "NextUpdateAvailabilityDate": { + "base": null, + "refs": { + "DescribeGatewayInformationOutput$NextUpdateAvailabilityDate": "

The date on which an update to the gateway is available. This date is in the time zone of the gateway. If the gateway is not available for an update this field is not returned in the response.

" + } + }, + "NumTapesToCreate": { + "base": null, + "refs": { + "CreateTapesInput$NumTapesToCreate": "

The number of virtual tapes you want to create.

" + } + }, + "PositiveIntObject": { + "base": null, + "refs": { + "DescribeTapeArchivesInput$Limit": "

Specifies that the number of virtual tapes descried be limited to the specified number.

", + "DescribeTapeRecoveryPointsInput$Limit": "

Specifies that the number of virtual tape recovery points that are described be limited to the specified number.

", + "DescribeTapesInput$Limit": "

Specifies that the number of virtual tapes described be limited to the specified number.

Amazon Web Services may impose its own limit, if this field is not set.", + "DescribeVTLDevicesInput$Limit": "

Specifies that the number of VTL devices described be limited to the specified number.

", + "ListGatewaysInput$Limit": "

Specifies that the list of gateways returned be limited to the specified number of items.

", + "ListVolumesInput$Limit": "

Specifies that the list of volumes returned be limited to the specified number of items.

", + "VolumeiSCSIAttributes$LunNumber": "

The logical disk number.

" + } + }, + "RecurrenceInHours": { + "base": null, + "refs": { + "DescribeSnapshotScheduleOutput$RecurrenceInHours": null, + "UpdateSnapshotScheduleInput$RecurrenceInHours": "

Frequency of snapshots. Specify the number of hours between snapshots.

" + } + }, + "RegionId": { + "base": null, + "refs": { + "ActivateGatewayInput$GatewayRegion": "

One of the values that indicates the region where you want to store the snapshot backups. The gateway region specified must be the same region as the region in your Host header in the request. For more information about available regions and endpoints for AWS Storage Gateway, see Regions and Endpoints in the Amazon Web Services Glossary.

Valid Values: \"us-east-1\", \"us-west-1\", \"us-west-2\", \"eu-west-1\", \"eu-central-1\", \"ap-northeast-1\", \"ap-southeast-1\", \"ap-southeast-2\", \"sa-east-1\"

" + } + }, + "ResetCacheInput": { + "base": null, + "refs": { + } + }, + "ResetCacheOutput": { + "base": null, + "refs": { + } + }, + "RetrieveTapeArchiveInput": { + "base": "

RetrieveTapeArchiveInput

", + "refs": { + } + }, + "RetrieveTapeArchiveOutput": { + "base": "

RetrieveTapeArchiveOutput

", + "refs": { + } + }, + "RetrieveTapeRecoveryPointInput": { + "base": "

RetrieveTapeRecoveryPointInput

", + "refs": { + } + }, + "RetrieveTapeRecoveryPointOutput": { + "base": "

RetrieveTapeRecoveryPointOutput

", + "refs": { + } + }, + "ShutdownGatewayInput": { + "base": "

A JSON object containing the of the gateway to shut down.

", + "refs": { + } + }, + "ShutdownGatewayOutput": { + "base": "

A JSON object containing the of the gateway that was shut down.

", + "refs": { + } + }, + "SnapshotDescription": { + "base": null, + "refs": { + "CreateSnapshotFromVolumeRecoveryPointInput$SnapshotDescription": null, + "CreateSnapshotInput$SnapshotDescription": "

Textual description of the snapshot that appears in the Amazon EC2 console, Elastic Block Store snapshots panel in the Description field, and in the AWS Storage Gateway snapshot Details pane, Description field

" + } + }, + "SnapshotId": { + "base": null, + "refs": { + "CachediSCSIVolume$SourceSnapshotId": null, + "CreateCachediSCSIVolumeInput$SnapshotId": null, + "CreateSnapshotFromVolumeRecoveryPointOutput$SnapshotId": null, + "CreateSnapshotOutput$SnapshotId": "

The snapshot ID that is used to refer to the snapshot in future operations such as describing snapshots (Amazon Elastic Compute Cloud API DescribeSnapshots) or creating a volume from a snapshot (CreateStorediSCSIVolume).

", + "CreateStorediSCSIVolumeInput$SnapshotId": "

The snapshot ID (e.g. \"snap-1122aabb\") of the snapshot to restore as the new stored volume. Specify this field if you want to create the iSCSI storage volume from a snapshot otherwise do not include this field. To list snapshots for your account use DescribeSnapshots in the Amazon Elastic Compute Cloud API Reference.

", + "StorediSCSIVolume$SourceSnapshotId": null + } + }, + "StartGatewayInput": { + "base": "

A JSON object containing the of the gateway to start.

", + "refs": { + } + }, + "StartGatewayOutput": { + "base": "

A JSON object containing the of the gateway that was restarted.

", + "refs": { + } + }, + "StorageGatewayError": { + "base": "

Provides additional information about an error that was returned by the service as an or. See the errorCode and errorDetails members for more information about the error.

", + "refs": { + "InternalServerError$error": "

A StorageGatewayError that provides more detail about the cause of the error.

", + "InvalidGatewayRequestException$error": "

A StorageGatewayError that provides more detail about the cause of the error.

" + } + }, + "StorediSCSIVolume": { + "base": null, + "refs": { + "StorediSCSIVolumes$member": null + } + }, + "StorediSCSIVolumes": { + "base": null, + "refs": { + "DescribeStorediSCSIVolumesOutput$StorediSCSIVolumes": null + } + }, + "Tape": { + "base": "

Describes a virtual tape object.

", + "refs": { + "Tapes$member": null + } + }, + "TapeARN": { + "base": null, + "refs": { + "CancelArchivalInput$TapeARN": "

The Amazon Resource Name (ARN) of the virtual tape you want to cancel archiving for.

", + "CancelArchivalOutput$TapeARN": "

The Amazon Resource Name (ARN) of the virtual tape for which archiving was canceled.

", + "CancelRetrievalInput$TapeARN": "

The Amazon Resource Name (ARN) of the virtual tape you want to cancel retrieval for.

", + "CancelRetrievalOutput$TapeARN": "

The Amazon Resource Name (ARN) of the virtual tape for which retrieval was canceled.

", + "DeleteTapeArchiveInput$TapeARN": "

The Amazon Resource Name (ARN) of the virtual tape to delete from the virtual tape shelf (VTS).

", + "DeleteTapeArchiveOutput$TapeARN": "

The Amazon Resource Name (ARN) of the virtual tape that was deleted from the virtual tape shelf (VTS).

", + "DeleteTapeInput$TapeARN": "

The Amazon Resource Name (ARN) of the virtual tape to delete.

", + "DeleteTapeOutput$TapeARN": "

The Amazon Resource Name (ARN) of the deleted virtual tape.

", + "RetrieveTapeArchiveInput$TapeARN": "

The Amazon Resource Name (ARN) of the virtual tape you want to retrieve from the virtual tape shelf (VTS).

", + "RetrieveTapeArchiveOutput$TapeARN": "

The Amazon Resource Name (ARN) of the retrieved virtual tape.

", + "RetrieveTapeRecoveryPointInput$TapeARN": "

The Amazon Resource Name (ARN) of the virtual tape for which you want to retrieve the recovery point.

", + "RetrieveTapeRecoveryPointOutput$TapeARN": "

The Amazon Resource Name (ARN) of the virtual tape for which the recovery point was retrieved.

", + "Tape$TapeARN": "

The Amazon Resource Name (ARN) of the virtual tape.

", + "TapeARNs$member": null, + "TapeArchive$TapeARN": "

The Amazon Resource Name (ARN) of an archived virtual tape.

", + "TapeRecoveryPointInfo$TapeARN": "

The Amazon Resource Name (ARN) of the virtual tape.

" + } + }, + "TapeARNs": { + "base": null, + "refs": { + "CreateTapesOutput$TapeARNs": "

A list of unique Amazon Resource Named (ARN) the represents the virtual tapes that were created.

", + "DescribeTapeArchivesInput$TapeARNs": "

Specifies one or more unique Amazon Resource Names (ARNs) that represent the virtual tapes you want to describe.

", + "DescribeTapesInput$TapeARNs": "

Specifies one or more unique Amazon Resource Names (ARNs) that represent the virtual tapes you want to describe. If this parameter is not specified, AWS Storage Gateway returns a description of all virtual tapes associated with the specified gateway.

" + } + }, + "TapeArchive": { + "base": "

Represents a virtual tape that is archived in the virtual tape shelf (VTS).

", + "refs": { + "TapeArchives$member": null + } + }, + "TapeArchiveStatus": { + "base": null, + "refs": { + "TapeArchive$TapeStatus": "

The current state of the archived virtual tape.

" + } + }, + "TapeArchives": { + "base": null, + "refs": { + "DescribeTapeArchivesOutput$TapeArchives": "

An array of virtual tape objects in the virtual tape shelf (VTS). The description includes of the Amazon Resource Name(ARN) of the virtual tapes. The information returned includes the Amazon Resource Names (ARNs) of the tapes, size of the tapes, status of the tapes, progress of the description and tape barcode.

" + } + }, + "TapeBarcode": { + "base": null, + "refs": { + "Tape$TapeBarcode": "

The barcode that identifies a specific virtual tape.

", + "TapeArchive$TapeBarcode": "

The barcode that identifies the archived virtual tape.

" + } + }, + "TapeBarcodePrefix": { + "base": null, + "refs": { + "CreateTapesInput$TapeBarcodePrefix": "

A prefix you append to the barcode of the virtual tape you are creating. This makes a barcode unique.

The prefix must be 1 to 4 characters in length and must be upper-case letters A-Z." + } + }, + "TapeDriveType": { + "base": null, + "refs": { + "ActivateGatewayInput$TapeDriveType": "

The value that indicates the type of tape drive to use for gateway-VTL. This field is optional.

Valid Values: \"IBM-ULT3580-TD5\"

" + } + }, + "TapeRecoveryPointInfo": { + "base": "

Describes a recovery point.

", + "refs": { + "TapeRecoveryPointInfos$member": null + } + }, + "TapeRecoveryPointInfos": { + "base": null, + "refs": { + "DescribeTapeRecoveryPointsOutput$TapeRecoveryPointInfos": "

An array of TapeRecoveryPointInfos that are available for the specified gateway.

" + } + }, + "TapeRecoveryPointStatus": { + "base": null, + "refs": { + "TapeRecoveryPointInfo$TapeStatus": null + } + }, + "TapeSize": { + "base": null, + "refs": { + "CreateTapesInput$TapeSizeInBytes": "

The size, in bytes, of the virtual tapes you want to create.

The size must be gigabyte (1024*1024*1024 byte) aligned.", + "Tape$TapeSizeInBytes": "

The size, in bytes, of the virtual tape.

", + "TapeArchive$TapeSizeInBytes": "

The size, in bytes, of the archived virtual tape.

", + "TapeRecoveryPointInfo$TapeSizeInBytes": "

The size, in bytes, of the virtual tapes to recover.

" + } + }, + "TapeStatus": { + "base": null, + "refs": { + "Tape$TapeStatus": "

The current state of the virtual tape.

" + } + }, + "Tapes": { + "base": null, + "refs": { + "DescribeTapesOutput$Tapes": "

An array of virtual tape descriptions.

" + } + }, + "TargetARN": { + "base": null, + "refs": { + "ChapInfo$TargetARN": "

The Amazon Resource Name (ARN) of the volume.

Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens (-).

", + "CreateCachediSCSIVolumeOutput$TargetARN": null, + "CreateStorediSCSIVolumeOutput$TargetARN": "

he Amazon Resource Name (ARN) of the volume target that includes the iSCSI name that initiators can use to connect to the target.

", + "DeleteChapCredentialsInput$TargetARN": "

The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes operation to return to retrieve the TargetARN for specified VolumeARN.

", + "DeleteChapCredentialsOutput$TargetARN": "

The Amazon Resource Name (ARN) of the target.

", + "DescribeChapCredentialsInput$TargetARN": "

The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes operation to return to retrieve the TargetARN for specified VolumeARN.

", + "DeviceiSCSIAttributes$TargetARN": "

Specifies the unique Amazon Resource Name(ARN) that encodes the iSCSI qualified name(iqn) of a tape drive or media changer target.

", + "UpdateChapCredentialsInput$TargetARN": "

The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes operation to return the TargetARN for specified VolumeARN.

", + "UpdateChapCredentialsOutput$TargetARN": "

The Amazon Resource Name (ARN) of the target. This is the same target specified in the request.

", + "VolumeiSCSIAttributes$TargetARN": "

The Amazon Resource Name (ARN) of the volume target.

" + } + }, + "TargetName": { + "base": null, + "refs": { + "CreateCachediSCSIVolumeInput$TargetName": null, + "CreateStorediSCSIVolumeInput$TargetName": "

The name of the iSCSI target used by initiators to connect to the target and as a suffix for the target ARN. For example, specifying TargetName as myvolume results in the target ARN of arn:aws:storagegateway:us-east-1:111122223333:gateway/mygateway/target/iqn.1997-05.com.amazon:myvolume. The target name must be unique across all volumes of a gateway.

" + } + }, + "Time": { + "base": null, + "refs": { + "TapeArchive$CompletionTime": "

The time that the archiving of the virtual tape was completed.

The string format of the completion time is in the ISO8601 extended YYYY-MM-DD'T'HH:MM:SS'Z' format.

", + "TapeRecoveryPointInfo$TapeRecoveryPointTime": "

The time when the point-in-time view of the virtual tape was replicated for later recovery.

The string format of the tape recovery point time is in the ISO8601 extended YYYY-MM-DD'T'HH:MM:SS'Z' format.

" + } + }, + "UpdateBandwidthRateLimitInput": { + "base": "

A JSON object containing one or more of the following fields:

", + "refs": { + } + }, + "UpdateBandwidthRateLimitOutput": { + "base": "

A JSON object containing the of the gateway whose throttle information was updated.

", + "refs": { + } + }, + "UpdateChapCredentialsInput": { + "base": "

A JSON object containing one or more of the following fields:

", + "refs": { + } + }, + "UpdateChapCredentialsOutput": { + "base": "

A JSON object containing the following fields:

", + "refs": { + } + }, + "UpdateGatewayInformationInput": { + "base": null, + "refs": { + } + }, + "UpdateGatewayInformationOutput": { + "base": "

A JSON object containing the of the gateway that was updated.

", + "refs": { + } + }, + "UpdateGatewaySoftwareNowInput": { + "base": "

A JSON object containing the of the gateway to update.

", + "refs": { + } + }, + "UpdateGatewaySoftwareNowOutput": { + "base": "

A JSON object containing the of the gateway that was updated.

", + "refs": { + } + }, + "UpdateMaintenanceStartTimeInput": { + "base": "

A JSON object containing the following fields:

", + "refs": { + } + }, + "UpdateMaintenanceStartTimeOutput": { + "base": "

A JSON object containing the of the gateway whose maintenance start time is updated.

", + "refs": { + } + }, + "UpdateSnapshotScheduleInput": { + "base": "

A JSON object containing one or more of the following fields:

", + "refs": { + } + }, + "UpdateSnapshotScheduleOutput": { + "base": "

A JSON object containing the of the updated storage volume.

", + "refs": { + } + }, + "UpdateVTLDeviceTypeInput": { + "base": "

UpdateVTLDeviceTypeInput

", + "refs": { + } + }, + "UpdateVTLDeviceTypeOutput": { + "base": "

UpdateVTLDeviceTypeOutput

", + "refs": { + } + }, + "VTLDevice": { + "base": "

Represents a device object associated with a gateway-VTL.

", + "refs": { + "VTLDevices$member": null + } + }, + "VTLDeviceARN": { + "base": null, + "refs": { + "Tape$VTLDevice": "

The virtual tape library (VTL) device that the virtual tape is associated with.

", + "UpdateVTLDeviceTypeInput$VTLDeviceARN": "

The Amazon Resource Name (ARN) of the medium changer you want to select.

", + "UpdateVTLDeviceTypeOutput$VTLDeviceARN": "

The Amazon Resource Name (ARN) of the medium changer you have selected.

", + "VTLDevice$VTLDeviceARN": "

Specifies the unique Amazon Resource Name (ARN) of the device (tape drive or media changer).

", + "VTLDeviceARNs$member": null + } + }, + "VTLDeviceARNs": { + "base": null, + "refs": { + "DescribeVTLDevicesInput$VTLDeviceARNs": "

An array of strings, where each string represents the Amazon Resource Name (ARN) of a VTL device.

All of the specified VTL devices must be from the same gateway. If no VTL devices are specified, the result will contain all devices on the specified gateway." + } + }, + "VTLDeviceProductIdentifier": { + "base": null, + "refs": { + "VTLDevice$VTLDeviceProductIdentifier": null + } + }, + "VTLDeviceType": { + "base": null, + "refs": { + "VTLDevice$VTLDeviceType": null + } + }, + "VTLDeviceVendor": { + "base": null, + "refs": { + "VTLDevice$VTLDeviceVendor": null + } + }, + "VTLDevices": { + "base": null, + "refs": { + "DescribeVTLDevicesOutput$VTLDevices": "

An array of VTL device objects composed of the Amazon Resource Name(ARN) of the VTL devices.

" + } + }, + "VolumeARN": { + "base": null, + "refs": { + "CachediSCSIVolume$VolumeARN": null, + "CreateCachediSCSIVolumeOutput$VolumeARN": null, + "CreateSnapshotFromVolumeRecoveryPointInput$VolumeARN": null, + "CreateSnapshotFromVolumeRecoveryPointOutput$VolumeARN": null, + "CreateSnapshotInput$VolumeARN": "

The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation to return a list of gateway volumes.

", + "CreateSnapshotOutput$VolumeARN": "

The Amazon Resource Name (ARN) of the volume of which the snapshot was taken.

", + "CreateStorediSCSIVolumeOutput$VolumeARN": "

The Amazon Resource Name (ARN) of the configured volume.

", + "DeleteSnapshotScheduleInput$VolumeARN": null, + "DeleteSnapshotScheduleOutput$VolumeARN": null, + "DeleteVolumeInput$VolumeARN": "

The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation to return a list of gateway volumes.

", + "DeleteVolumeOutput$VolumeARN": "

The Amazon Resource Name (ARN) of the storage volume that was deleted. It is the same ARN you provided in the request.

", + "DescribeSnapshotScheduleInput$VolumeARN": "

The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation to return a list of gateway volumes.

", + "DescribeSnapshotScheduleOutput$VolumeARN": null, + "ListVolumeInitiatorsInput$VolumeARN": "

The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation to return a list of gateway volumes for the gateway.

", + "StorediSCSIVolume$VolumeARN": null, + "UpdateSnapshotScheduleInput$VolumeARN": "

The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation to return a list of gateway volumes.

", + "UpdateSnapshotScheduleOutput$VolumeARN": null, + "VolumeARNs$member": null, + "VolumeInfo$VolumeARN": null, + "VolumeRecoveryPointInfo$VolumeARN": null + } + }, + "VolumeARNs": { + "base": null, + "refs": { + "DescribeCachediSCSIVolumesInput$VolumeARNs": null, + "DescribeStorediSCSIVolumesInput$VolumeARNs": "

An array of strings where each string represents the Amazon Resource Name (ARN) of a stored volume. All of the specified stored volumes must from the same gateway. Use ListVolumes to get volume ARNs for a gateway.

" + } + }, + "VolumeId": { + "base": null, + "refs": { + "CachediSCSIVolume$VolumeId": null, + "StorediSCSIVolume$VolumeId": null + } + }, + "VolumeInfo": { + "base": null, + "refs": { + "VolumeInfos$member": null + } + }, + "VolumeInfos": { + "base": null, + "refs": { + "ListVolumesOutput$VolumeInfos": null + } + }, + "VolumeRecoveryPointInfo": { + "base": null, + "refs": { + "VolumeRecoveryPointInfos$member": null + } + }, + "VolumeRecoveryPointInfos": { + "base": null, + "refs": { + "ListVolumeRecoveryPointsOutput$VolumeRecoveryPointInfos": null + } + }, + "VolumeStatus": { + "base": null, + "refs": { + "CachediSCSIVolume$VolumeStatus": null, + "StorediSCSIVolume$VolumeStatus": null + } + }, + "VolumeType": { + "base": null, + "refs": { + "CachediSCSIVolume$VolumeType": null, + "StorediSCSIVolume$VolumeType": null, + "VolumeInfo$VolumeType": null + } + }, + "VolumeiSCSIAttributes": { + "base": "

Lists iSCSI information about a volume.

", + "refs": { + "CachediSCSIVolume$VolumeiSCSIAttributes": null, + "StorediSCSIVolume$VolumeiSCSIAttributes": null + } + }, + "boolean": { + "base": null, + "refs": { + "CreateStorediSCSIVolumeInput$PreserveExistingData": "

Specify this field as true if you want to preserve the data on the local disk. Otherwise, specifying this field as false creates an empty volume.

Valid Values: true, false

", + "DeviceiSCSIAttributes$ChapEnabled": "

Indicates whether mutual CHAP is enabled for the iSCSI target.

", + "StorediSCSIVolume$PreservedExistingData": null, + "VolumeiSCSIAttributes$ChapEnabled": "

Indicates whether mutual CHAP is enabled for the iSCSI target.

" + } + }, + "double": { + "base": null, + "refs": { + "DescribeCacheOutput$CacheUsedPercentage": null, + "DescribeCacheOutput$CacheDirtyPercentage": null, + "DescribeCacheOutput$CacheHitPercentage": null, + "DescribeCacheOutput$CacheMissPercentage": null + } + }, + "errorDetails": { + "base": null, + "refs": { + "StorageGatewayError$errorDetails": "

Human-readable text that provides detail about the error that occurred.

" + } + }, + "integer": { + "base": null, + "refs": { + "DeviceiSCSIAttributes$NetworkInterfacePort": "

The port used to communicate with iSCSI VTL device targets.

", + "VolumeiSCSIAttributes$NetworkInterfacePort": "

The port used to communicate with iSCSI targets.

" + } + }, + "long": { + "base": null, + "refs": { + "CachediSCSIVolume$VolumeSizeInBytes": null, + "CreateCachediSCSIVolumeInput$VolumeSizeInBytes": null, + "CreateStorediSCSIVolumeOutput$VolumeSizeInBytes": "

The size of the volume in bytes.

", + "DescribeCacheOutput$CacheAllocatedInBytes": null, + "DescribeUploadBufferOutput$UploadBufferUsedInBytes": null, + "DescribeUploadBufferOutput$UploadBufferAllocatedInBytes": null, + "DescribeWorkingStorageOutput$WorkingStorageUsedInBytes": "

The total working storage in bytes in use by the gateway. If no working storage is configured for the gateway, this field returns 0.

", + "DescribeWorkingStorageOutput$WorkingStorageAllocatedInBytes": "

The total working storage in bytes allocated for the gateway. If no working storage is configured for the gateway, this field returns 0.

", + "Disk$DiskSizeInBytes": null, + "StorediSCSIVolume$VolumeSizeInBytes": null, + "VolumeRecoveryPointInfo$VolumeSizeInBytes": null, + "VolumeRecoveryPointInfo$VolumeUsageInBytes": null + } + }, + "string": { + "base": null, + "refs": { + "CreateSnapshotFromVolumeRecoveryPointOutput$VolumeRecoveryPointTime": null, + "Disk$DiskPath": null, + "Disk$DiskNode": null, + "Disk$DiskStatus": null, + "Disk$DiskAllocationResource": null, + "InternalServerError$message": "

A human-readable message describing the error that occurred.

", + "InvalidGatewayRequestException$message": "

A human-readable message describing the error that occurred.

", + "NetworkInterface$Ipv4Address": "

The Internet Protocol version 4 (IPv4) address of the interface.

", + "NetworkInterface$MacAddress": "

The Media Access Control (MAC) address of the interface.

This is currently unsupported and will not be returned in output.", + "NetworkInterface$Ipv6Address": "

The Internet Protocol version 6 (IPv6) address of the interface. Currently not supported.

", + "VolumeRecoveryPointInfo$VolumeRecoveryPointTime": null, + "errorDetails$key": null, + "errorDetails$value": null + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/storagegateway/2013-06-30/paginators-1.json b/lib/aws-sdk/Aws/data/storagegateway/2013-06-30/paginators-1.json new file mode 100644 index 0000000..286915c --- /dev/null +++ b/lib/aws-sdk/Aws/data/storagegateway/2013-06-30/paginators-1.json @@ -0,0 +1,52 @@ +{ + "pagination": { + "DescribeCachediSCSIVolumes": { + "result_key": "CachediSCSIVolumes" + }, + "DescribeStorediSCSIVolumes": { + "result_key": "StorediSCSIVolumes" + }, + "DescribeTapeArchives": { + "input_token": "Marker", + "limit_key": "Limit", + "output_token": "Marker", + "result_key": "TapeArchives" + }, + "DescribeTapeRecoveryPoints": { + "input_token": "Marker", + "limit_key": "Limit", + "output_token": "Marker", + "result_key": "TapeRecoveryPointInfos" + }, + "DescribeTapes": { + "input_token": "Marker", + "limit_key": "Limit", + "output_token": "Marker", + "result_key": "Tapes" + }, + "DescribeVTLDevices": { + "input_token": "Marker", + "limit_key": "Limit", + "output_token": "Marker", + "result_key": "VTLDevices" + }, + "ListGateways": { + "input_token": "Marker", + "limit_key": "Limit", + "output_token": "Marker", + "result_key": "Gateways" + }, + "ListLocalDisks": { + "result_key": "Disks" + }, + "ListVolumeRecoveryPoints": { + "result_key": "VolumeRecoveryPointInfos" + }, + "ListVolumes": { + "input_token": "Marker", + "limit_key": "Limit", + "output_token": "Marker", + "result_key": "VolumeInfos" + } + } +} diff --git a/lib/aws-sdk/Aws/data/sts/2011-06-15/api-2.json b/lib/aws-sdk/Aws/data/sts/2011-06-15/api-2.json new file mode 100644 index 0000000..309a222 --- /dev/null +++ b/lib/aws-sdk/Aws/data/sts/2011-06-15/api-2.json @@ -0,0 +1,595 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2011-06-15", + "endpointPrefix":"sts", + "globalEndpoint":"sts.amazonaws.com", + "serviceAbbreviation":"AWS STS", + "serviceFullName":"AWS Security Token Service", + "signatureVersion":"v4", + "xmlNamespace":"https://sts.amazonaws.com/doc/2011-06-15/", + "protocol":"query" + }, + "operations":{ + "AssumeRole":{ + "name":"AssumeRole", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssumeRoleRequest"}, + "output":{ + "shape":"AssumeRoleResponse", + "resultWrapper":"AssumeRoleResult" + }, + "errors":[ + { + "shape":"MalformedPolicyDocumentException", + "error":{ + "code":"MalformedPolicyDocument", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"PackedPolicyTooLargeException", + "error":{ + "code":"PackedPolicyTooLarge", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "AssumeRoleWithSAML":{ + "name":"AssumeRoleWithSAML", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssumeRoleWithSAMLRequest"}, + "output":{ + "shape":"AssumeRoleWithSAMLResponse", + "resultWrapper":"AssumeRoleWithSAMLResult" + }, + "errors":[ + { + "shape":"MalformedPolicyDocumentException", + "error":{ + "code":"MalformedPolicyDocument", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"PackedPolicyTooLargeException", + "error":{ + "code":"PackedPolicyTooLarge", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"IDPRejectedClaimException", + "error":{ + "code":"IDPRejectedClaim", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidIdentityTokenException", + "error":{ + "code":"InvalidIdentityToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ExpiredTokenException", + "error":{ + "code":"ExpiredTokenException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "AssumeRoleWithWebIdentity":{ + "name":"AssumeRoleWithWebIdentity", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssumeRoleWithWebIdentityRequest"}, + "output":{ + "shape":"AssumeRoleWithWebIdentityResponse", + "resultWrapper":"AssumeRoleWithWebIdentityResult" + }, + "errors":[ + { + "shape":"MalformedPolicyDocumentException", + "error":{ + "code":"MalformedPolicyDocument", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"PackedPolicyTooLargeException", + "error":{ + "code":"PackedPolicyTooLarge", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"IDPRejectedClaimException", + "error":{ + "code":"IDPRejectedClaim", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + { + "shape":"IDPCommunicationErrorException", + "error":{ + "code":"IDPCommunicationError", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"InvalidIdentityTokenException", + "error":{ + "code":"InvalidIdentityToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"ExpiredTokenException", + "error":{ + "code":"ExpiredTokenException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "DecodeAuthorizationMessage":{ + "name":"DecodeAuthorizationMessage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DecodeAuthorizationMessageRequest"}, + "output":{ + "shape":"DecodeAuthorizationMessageResponse", + "resultWrapper":"DecodeAuthorizationMessageResult" + }, + "errors":[ + { + "shape":"InvalidAuthorizationMessageException", + "error":{ + "code":"InvalidAuthorizationMessageException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "GetFederationToken":{ + "name":"GetFederationToken", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetFederationTokenRequest"}, + "output":{ + "shape":"GetFederationTokenResponse", + "resultWrapper":"GetFederationTokenResult" + }, + "errors":[ + { + "shape":"MalformedPolicyDocumentException", + "error":{ + "code":"MalformedPolicyDocument", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + { + "shape":"PackedPolicyTooLargeException", + "error":{ + "code":"PackedPolicyTooLarge", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + ] + }, + "GetSessionToken":{ + "name":"GetSessionToken", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetSessionTokenRequest"}, + "output":{ + "shape":"GetSessionTokenResponse", + "resultWrapper":"GetSessionTokenResult" + } + } + }, + "shapes":{ + "AssumeRoleRequest":{ + "type":"structure", + "required":[ + "RoleArn", + "RoleSessionName" + ], + "members":{ + "RoleArn":{"shape":"arnType"}, + "RoleSessionName":{"shape":"userNameType"}, + "Policy":{"shape":"sessionPolicyDocumentType"}, + "DurationSeconds":{"shape":"roleDurationSecondsType"}, + "ExternalId":{"shape":"externalIdType"}, + "SerialNumber":{"shape":"serialNumberType"}, + "TokenCode":{"shape":"tokenCodeType"} + } + }, + "AssumeRoleResponse":{ + "type":"structure", + "members":{ + "Credentials":{"shape":"Credentials"}, + "AssumedRoleUser":{"shape":"AssumedRoleUser"}, + "PackedPolicySize":{"shape":"nonNegativeIntegerType"} + } + }, + "AssumeRoleWithSAMLRequest":{ + "type":"structure", + "required":[ + "RoleArn", + "PrincipalArn", + "SAMLAssertion" + ], + "members":{ + "RoleArn":{"shape":"arnType"}, + "PrincipalArn":{"shape":"arnType"}, + "SAMLAssertion":{"shape":"SAMLAssertionType"}, + "Policy":{"shape":"sessionPolicyDocumentType"}, + "DurationSeconds":{"shape":"durationSecondsType"} + } + }, + "AssumeRoleWithSAMLResponse":{ + "type":"structure", + "members":{ + "Credentials":{"shape":"Credentials"}, + "AssumedRoleUser":{"shape":"AssumedRoleUser"}, + "PackedPolicySize":{"shape":"nonNegativeIntegerType"}, + "Subject":{"shape":"Subject"}, + "SubjectType":{"shape":"SubjectType"}, + "Issuer":{"shape":"Issuer"}, + "Audience":{"shape":"Audience"}, + "NameQualifier":{"shape":"NameQualifier"} + } + }, + "AssumeRoleWithWebIdentityRequest":{ + "type":"structure", + "required":[ + "RoleArn", + "RoleSessionName", + "WebIdentityToken" + ], + "members":{ + "RoleArn":{"shape":"arnType"}, + "RoleSessionName":{"shape":"userNameType"}, + "WebIdentityToken":{"shape":"clientTokenType"}, + "ProviderId":{"shape":"urlType"}, + "Policy":{"shape":"sessionPolicyDocumentType"}, + "DurationSeconds":{"shape":"durationSecondsType"} + } + }, + "AssumeRoleWithWebIdentityResponse":{ + "type":"structure", + "members":{ + "Credentials":{"shape":"Credentials"}, + "SubjectFromWebIdentityToken":{"shape":"webIdentitySubjectType"}, + "AssumedRoleUser":{"shape":"AssumedRoleUser"}, + "PackedPolicySize":{"shape":"nonNegativeIntegerType"}, + "Provider":{"shape":"Issuer"}, + "Audience":{"shape":"Audience"} + } + }, + "AssumedRoleUser":{ + "type":"structure", + "required":[ + "AssumedRoleId", + "Arn" + ], + "members":{ + "AssumedRoleId":{"shape":"assumedRoleIdType"}, + "Arn":{"shape":"arnType"} + } + }, + "Audience":{"type":"string"}, + "Credentials":{ + "type":"structure", + "required":[ + "AccessKeyId", + "SecretAccessKey", + "SessionToken", + "Expiration" + ], + "members":{ + "AccessKeyId":{"shape":"accessKeyIdType"}, + "SecretAccessKey":{"shape":"accessKeySecretType"}, + "SessionToken":{"shape":"tokenType"}, + "Expiration":{"shape":"dateType"} + } + }, + "DecodeAuthorizationMessageRequest":{ + "type":"structure", + "required":["EncodedMessage"], + "members":{ + "EncodedMessage":{"shape":"encodedMessageType"} + } + }, + "DecodeAuthorizationMessageResponse":{ + "type":"structure", + "members":{ + "DecodedMessage":{"shape":"decodedMessageType"} + } + }, + "ExpiredTokenException":{ + "type":"structure", + "members":{ + "message":{"shape":"expiredIdentityTokenMessage"} + }, + "error":{ + "code":"ExpiredTokenException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "FederatedUser":{ + "type":"structure", + "required":[ + "FederatedUserId", + "Arn" + ], + "members":{ + "FederatedUserId":{"shape":"federatedIdType"}, + "Arn":{"shape":"arnType"} + } + }, + "GetFederationTokenRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"userNameType"}, + "Policy":{"shape":"sessionPolicyDocumentType"}, + "DurationSeconds":{"shape":"durationSecondsType"} + } + }, + "GetFederationTokenResponse":{ + "type":"structure", + "members":{ + "Credentials":{"shape":"Credentials"}, + "FederatedUser":{"shape":"FederatedUser"}, + "PackedPolicySize":{"shape":"nonNegativeIntegerType"} + } + }, + "GetSessionTokenRequest":{ + "type":"structure", + "members":{ + "DurationSeconds":{"shape":"durationSecondsType"}, + "SerialNumber":{"shape":"serialNumberType"}, + "TokenCode":{"shape":"tokenCodeType"} + } + }, + "GetSessionTokenResponse":{ + "type":"structure", + "members":{ + "Credentials":{"shape":"Credentials"} + } + }, + "IDPCommunicationErrorException":{ + "type":"structure", + "members":{ + "message":{"shape":"idpCommunicationErrorMessage"} + }, + "error":{ + "code":"IDPCommunicationError", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "IDPRejectedClaimException":{ + "type":"structure", + "members":{ + "message":{"shape":"idpRejectedClaimMessage"} + }, + "error":{ + "code":"IDPRejectedClaim", + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "InvalidAuthorizationMessageException":{ + "type":"structure", + "members":{ + "message":{"shape":"invalidAuthorizationMessage"} + }, + "error":{ + "code":"InvalidAuthorizationMessageException", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidIdentityTokenException":{ + "type":"structure", + "members":{ + "message":{"shape":"invalidIdentityTokenMessage"} + }, + "error":{ + "code":"InvalidIdentityToken", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "Issuer":{"type":"string"}, + "MalformedPolicyDocumentException":{ + "type":"structure", + "members":{ + "message":{"shape":"malformedPolicyDocumentMessage"} + }, + "error":{ + "code":"MalformedPolicyDocument", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "NameQualifier":{"type":"string"}, + "PackedPolicyTooLargeException":{ + "type":"structure", + "members":{ + "message":{"shape":"packedPolicyTooLargeMessage"} + }, + "error":{ + "code":"PackedPolicyTooLarge", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "SAMLAssertionType":{ + "type":"string", + "min":4, + "max":50000 + }, + "Subject":{"type":"string"}, + "SubjectType":{"type":"string"}, + "accessKeyIdType":{ + "type":"string", + "min":16, + "max":32, + "pattern":"[\\w]*" + }, + "accessKeySecretType":{"type":"string"}, + "arnType":{ + "type":"string", + "min":20, + "max":2048 + }, + "assumedRoleIdType":{ + "type":"string", + "min":2, + "max":96, + "pattern":"[\\w+=,.@:-]*" + }, + "clientTokenType":{ + "type":"string", + "min":4, + "max":2048 + }, + "dateType":{"type":"timestamp"}, + "decodedMessageType":{"type":"string"}, + "durationSecondsType":{ + "type":"integer", + "min":900, + "max":129600 + }, + "encodedMessageType":{ + "type":"string", + "min":1, + "max":10240 + }, + "expiredIdentityTokenMessage":{"type":"string"}, + "externalIdType":{ + "type":"string", + "min":2, + "max":1224, + "pattern":"[\\w+=,.@:\\/-]*" + }, + "federatedIdType":{ + "type":"string", + "min":2, + "max":96, + "pattern":"[\\w+=,.@\\:-]*" + }, + "idpCommunicationErrorMessage":{"type":"string"}, + "idpRejectedClaimMessage":{"type":"string"}, + "invalidAuthorizationMessage":{"type":"string"}, + "invalidIdentityTokenMessage":{"type":"string"}, + "malformedPolicyDocumentMessage":{"type":"string"}, + "nonNegativeIntegerType":{ + "type":"integer", + "min":0 + }, + "packedPolicyTooLargeMessage":{"type":"string"}, + "roleDurationSecondsType":{ + "type":"integer", + "min":900, + "max":3600 + }, + "serialNumberType":{ + "type":"string", + "min":9, + "max":256, + "pattern":"[\\w+=/:,.@-]*" + }, + "sessionPolicyDocumentType":{ + "type":"string", + "min":1, + "max":2048, + "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+" + }, + "tokenCodeType":{ + "type":"string", + "min":6, + "max":6, + "pattern":"[\\d]*" + }, + "tokenType":{"type":"string"}, + "urlType":{ + "type":"string", + "min":4, + "max":2048 + }, + "userNameType":{ + "type":"string", + "min":2, + "max":32, + "pattern":"[\\w+=,.@-]*" + }, + "webIdentitySubjectType":{ + "type":"string", + "min":6, + "max":255 + } + } +} diff --git a/lib/aws-sdk/Aws/data/sts/2011-06-15/docs-2.json b/lib/aws-sdk/Aws/data/sts/2011-06-15/docs-2.json new file mode 100644 index 0000000..f1121a9 --- /dev/null +++ b/lib/aws-sdk/Aws/data/sts/2011-06-15/docs-2.json @@ -0,0 +1,351 @@ +{ + "version": "2.0", + "operations": { + "AssumeRole": "

Returns a set of temporary security credentials (consisting of an access key ID, a secret access key, and a security token) that you can use to access AWS resources that you might not normally have access to. Typically, you use AssumeRole for cross-account access or federation.

Important: You cannot call AssumeRole by using AWS account credentials; access will be denied. You must use IAM user credentials or temporary security credentials to call AssumeRole.

For cross-account access, imagine that you own multiple accounts and need to access resources in each account. You could create long-term credentials in each account to access those resources. However, managing all those credentials and remembering which one can access which account can be time consuming. Instead, you can create one set of long-term credentials in one account and then use temporary security credentials to access all the other accounts by assuming roles in those accounts. For more information about roles, see Roles in Using IAM.

For federation, you can, for example, grant single sign-on access to the AWS Management Console. If you already have an identity and authentication system in your corporate network, you don't have to recreate user identities in AWS in order to grant those user identities access to AWS. Instead, after a user has been authenticated, you call AssumeRole (and specify the role with the appropriate permissions) to get temporary security credentials for that user. With those temporary security credentials, you construct a sign-in URL that users can use to access the console. For more information, see Scenarios for Granting Temporary Access in Using Temporary Security Credentials.

The temporary security credentials are valid for the duration that you specified when calling AssumeRole, which can be from 900 seconds (15 minutes) to 3600 seconds (1 hour). The default is 1 hour.

Optionally, you can pass an IAM access policy to this operation. If you choose not to pass a policy, the temporary security credentials that are returned by the operation have the permissions that are defined in the access policy of the role that is being assumed. If you pass a policy to this operation, the temporary security credentials that are returned by the operation have the permissions that are allowed by both the access policy of the role that is being assumed, and the policy that you pass. This gives you a way to further restrict the permissions for the resulting temporary security credentials. You cannot use the passed policy to grant permissions that are in excess of those allowed by the access policy of the role that is being assumed. For more information, see Permissions for AssumeRole in Using Temporary Security Credentials.

To assume a role, your AWS account must be trusted by the role. The trust relationship is defined in the role's trust policy when the role is created. You must also have a policy that allows you to call sts:AssumeRole.

Using MFA with AssumeRole

You can optionally include multi-factor authentication (MFA) information when you call AssumeRole. This is useful for cross-account scenarios in which you want to make sure that the user who is assuming the role has been authenticated using an AWS MFA device. In that scenario, the trust policy of the role being assumed includes a condition that tests for MFA authentication; if the caller does not include valid MFA information, the request to assume the role is denied. The condition in a trust policy that tests for MFA authentication might look like the following example.

\"Condition\": {\"Null\": {\"aws:MultiFactorAuthAge\": false}}

For more information, see Configuring MFA-Protected API Access in the Using IAM guide.

To use MFA with AssumeRole, you pass values for the SerialNumber and TokenCode parameters. The SerialNumber value identifies the user's hardware or virtual MFA device. The TokenCode is the time-based one-time password (TOTP) that the MFA devices produces.

", + "AssumeRoleWithSAML": "

Returns a set of temporary security credentials for users who have been authenticated via a SAML authentication response. This operation provides a mechanism for tying an enterprise identity store or directory to role-based AWS access without user-specific credentials or configuration.

The temporary security credentials returned by this operation consist of an access key ID, a secret access key, and a security token. Applications can use these temporary security credentials to sign calls to AWS services. The credentials are valid for the duration that you specified when calling AssumeRoleWithSAML, which can be up to 3600 seconds (1 hour) or until the time specified in the SAML authentication response's SessionNotOnOrAfter value, whichever is shorter.

The maximum duration for a session is 1 hour, and the minimum duration is 15 minutes, even if values outside this range are specified.

Optionally, you can pass an IAM access policy to this operation. If you choose not to pass a policy, the temporary security credentials that are returned by the operation have the permissions that are defined in the access policy of the role that is being assumed. If you pass a policy to this operation, the temporary security credentials that are returned by the operation have the permissions that are allowed by both the access policy of the role that is being assumed, and the policy that you pass. This gives you a way to further restrict the permissions for the resulting temporary security credentials. You cannot use the passed policy to grant permissions that are in excess of those allowed by the access policy of the role that is being assumed. For more information, see Permissions for AssumeRoleWithSAML in Using Temporary Security Credentials.

Before your application can call AssumeRoleWithSAML, you must configure your SAML identity provider (IdP) to issue the claims required by AWS. Additionally, you must use AWS Identity and Access Management (IAM) to create a SAML provider entity in your AWS account that represents your identity provider, and create an IAM role that specifies this SAML provider in its trust policy.

Calling AssumeRoleWithSAML does not require the use of AWS security credentials. The identity of the caller is validated by using keys in the metadata document that is uploaded for the SAML provider entity for your identity provider.

For more information, see the following resources:

", + "AssumeRoleWithWebIdentity": "

Returns a set of temporary security credentials for users who have been authenticated in a mobile or web application with a web identity provider, such as Amazon Cognito, Login with Amazon, Facebook, Google, or any OpenID Connect-compatible identity provider.

For mobile applications, we recommend that you use Amazon Cognito. You can use Amazon Cognito with the AWS SDK for iOS and the AWS SDK for Android to uniquely identify a user and supply the user with a consistent identity throughout the lifetime of an application.

To learn more about Amazon Cognito, see Amazon Cognito Overview in the AWS SDK for Android Developer Guide guide and Amazon Cognito Overview in the AWS SDK for iOS Developer Guide.

Calling AssumeRoleWithWebIdentity does not require the use of AWS security credentials. Therefore, you can distribute an application (for example, on mobile devices) that requests temporary security credentials without including long-term AWS credentials in the application, and without deploying server-based proxy services that use long-term AWS credentials. Instead, the identity of the caller is validated by using a token from the web identity provider.

The temporary security credentials returned by this API consist of an access key ID, a secret access key, and a security token. Applications can use these temporary security credentials to sign calls to AWS service APIs. The credentials are valid for the duration that you specified when calling AssumeRoleWithWebIdentity, which can be from 900 seconds (15 minutes) to 3600 seconds (1 hour). By default, the temporary security credentials are valid for 1 hour.

Optionally, you can pass an IAM access policy to this operation. If you choose not to pass a policy, the temporary security credentials that are returned by the operation have the permissions that are defined in the access policy of the role that is being assumed. If you pass a policy to this operation, the temporary security credentials that are returned by the operation have the permissions that are allowed by both the access policy of the role that is being assumed, and the policy that you pass. This gives you a way to further restrict the permissions for the resulting temporary security credentials. You cannot use the passed policy to grant permissions that are in excess of those allowed by the access policy of the role that is being assumed. For more information, see Permissions for AssumeRoleWithWebIdentity in Using Temporary Security Credentials.

Before your application can call AssumeRoleWithWebIdentity, you must have an identity token from a supported identity provider and create a role that the application can assume. The role that your application assumes must trust the identity provider that is associated with the identity token. In other words, the identity provider must be specified in the role's trust policy.

For more information about how to use web identity federation and the AssumeRoleWithWebIdentity API, see the following resources:

", + "DecodeAuthorizationMessage": "

Decodes additional information about the authorization status of a request from an encoded message returned in response to an AWS request.

For example, if a user is not authorized to perform an action that he or she has requested, the request returns a Client.UnauthorizedOperation response (an HTTP 403 response). Some AWS actions additionally return an encoded message that can provide details about this authorization failure.

Only certain AWS actions return an encoded authorization message. The documentation for an individual action indicates whether that action returns an encoded message in addition to returning an HTTP code.

The message is encoded because the details of the authorization status can constitute privileged information that the user who requested the action should not see. To decode an authorization status message, a user must be granted permissions via an IAM policy to request the DecodeAuthorizationMessage (sts:DecodeAuthorizationMessage) action.

The decoded message includes the following type of information:

  • Whether the request was denied due to an explicit deny or due to the absence of an explicit allow. For more information, see Determining Whether a Request is Allowed or Denied in Using IAM.
  • The principal who made the request.
  • The requested action.
  • The requested resource.
  • The values of condition keys in the context of the user's request.
", + "GetFederationToken": "

Returns a set of temporary security credentials (consisting of an access key ID, a secret access key, and a security token) for a federated user. A typical use is in a proxy application that gets temporary security credentials on behalf of distributed applications inside a corporate network. Because you must call the GetFederationToken action using the long-term security credentials of an IAM user, this call is appropriate in contexts where those credentials can be safely stored, usually in a server-based application.

If you are creating a mobile-based or browser-based app that can authenticate users using a web identity provider like Login with Amazon, Facebook, Google, or an OpenID Connect-compatible identity provider, we recommend that you use Amazon Cognito or AssumeRoleWithWebIdentity. For more information, see Creating Temporary Security Credentials for Mobile Apps Using Identity Providers in Using Temporary Security Credentials.

The GetFederationToken action must be called by using the long-term AWS security credentials of an IAM user. You can also call GetFederationToken using the security credentials of an AWS account (root), but this is not recommended. Instead, we recommend that you create an IAM user for the purpose of the proxy application and then attach a policy to the IAM user that limits federated users to only the actions and resources they need access to. For more information, see IAM Best Practices in Using IAM.

The temporary security credentials that are obtained by using the long-term credentials of an IAM user are valid for the specified duration, between 900 seconds (15 minutes) and 129600 seconds (36 hours). Temporary credentials that are obtained by using AWS account (root) credentials have a maximum duration of 3600 seconds (1 hour)

Permissions

The permissions for the temporary security credentials returned by GetFederationToken are determined by a combination of the following:

  • The policy or policies that are attached to the IAM user whose credentials are used to call GetFederationToken.
  • The policy that is passed as a parameter in the call.

The passed policy is attached to the temporary security credentials that result from the GetFederationToken API call--that is, to the federated user. When the federated user makes an AWS request, AWS evaluates the policy attached to the federated user in combination with the policy or policies attached to the IAM user whose credentials were used to call GetFederationToken. AWS allows the federated user's request only when both the federated user and the IAM user are explicitly allowed to perform the requested action. The passed policy cannot grant more permissions than those that are defined in the IAM user policy.

A typical use case is that the permissions of the IAM user whose credentials are used to call GetFederationToken are designed to allow access to all the actions and resources that any federated user will need. Then, for individual users, you pass a policy to the operation that scopes down the permissions to a level that's appropriate to that individual user, using a policy that allows only a subset of permissions that are granted to the IAM user.

If you do not pass a policy, the resulting temporary security credentials have no effective permissions. The only exception is when the temporary security credentials are used to access a resource that has a resource-based policy that specifically allows the federated user to access the resource.

For more information about how permissions work, see Permissions for GetFederationToken in Using Temporary Security Credentials. For information about using GetFederationToken to create temporary security credentials, see Creating Temporary Credentials to Enable Access for Federated Users in Using Temporary Security Credentials.

", + "GetSessionToken": "

Returns a set of temporary credentials for an AWS account or IAM user. The credentials consist of an access key ID, a secret access key, and a security token. Typically, you use GetSessionToken if you want to use MFA to protect programmatic calls to specific AWS APIs like Amazon EC2 StopInstances. MFA-enabled IAM users would need to call GetSessionToken and submit an MFA code that is associated with their MFA device. Using the temporary security credentials that are returned from the call, IAM users can then make programmatic calls to APIs that require MFA authentication.

The GetSessionToken action must be called by using the long-term AWS security credentials of the AWS account or an IAM user. Credentials that are created by IAM users are valid for the duration that you specify, between 900 seconds (15 minutes) and 129600 seconds (36 hours); credentials that are created by using account credentials have a maximum duration of 3600 seconds (1 hour).

We recommend that you do not call GetSessionToken with root account credentials. Instead, follow our best practices by creating one or more IAM users, giving them the necessary permissions, and using IAM users for everyday interaction with AWS.

The permissions associated with the temporary security credentials returned by GetSessionToken are based on the permissions associated with account or IAM user whose credentials are used to call the action. If GetSessionToken is called using root account credentials, the temporary credentials have root account permissions. Similarly, if GetSessionToken is called using the credentials of an IAM user, the temporary credentials have the same permissions as the IAM user.

For more information about using GetSessionToken to create temporary credentials, go to Creating Temporary Credentials to Enable Access for IAM Users in Using Temporary Security Credentials.

" + }, + "service": "AWS Security Token Service

The AWS Security Token Service (STS) is a web service that enables you to request temporary, limited-privilege credentials for AWS Identity and Access Management (IAM) users or for users that you authenticate (federated users). This guide provides descriptions of the STS API. For more detailed information about using this service, go to Using Temporary Security Credentials.

As an alternative to using the API, you can use one of the AWS SDKs, which consist of libraries and sample code for various programming languages and platforms (Java, Ruby, .NET, iOS, Android, etc.). The SDKs provide a convenient way to create programmatic access to STS. For example, the SDKs take care of cryptographically signing requests, managing errors, and retrying requests automatically. For information about the AWS SDKs, including how to download and install them, see the Tools for Amazon Web Services page.

For information about setting up signatures and authorization through the API, go to Signing AWS API Requests in the AWS General Reference. For general information about the Query API, go to Making Query Requests in Using IAM. For information about using security tokens with other AWS products, go to Using Temporary Security Credentials to Access AWS in Using Temporary Security Credentials.

If you're new to AWS and need additional technical information about a specific AWS product, you can find the product's technical documentation at http://aws.amazon.com/documentation/.

Endpoints

The AWS Security Token Service (STS) has a default endpoint of https://sts.amazonaws.com that maps to the US East (N. Virginia) region. Additional regions are available, but must first be activated in the AWS Management Console before you can use a different region's endpoint. For more information about activating a region for STS see Activating STS in a New Region in the Using Temporary Security Credentials guide.

For information about STS endpoints, see Regions and Endpoints in the AWS General Reference.

Recording API requests

STS supports AWS CloudTrail, which is a service that records AWS calls for your AWS account and delivers log files to an Amazon S3 bucket. By using information collected by CloudTrail, you can determine what requests were successfully made to STS, who made the request, when it was made, and so on. To learn more about CloudTrail, including how to turn it on and find your log files, see the AWS CloudTrail User Guide.

", + "shapes": { + "AssumeRoleRequest": { + "base": null, + "refs": { + } + }, + "AssumeRoleResponse": { + "base": "

Contains the response to a successful AssumeRole request, including temporary AWS credentials that can be used to make AWS requests.

", + "refs": { + } + }, + "AssumeRoleWithSAMLRequest": { + "base": null, + "refs": { + } + }, + "AssumeRoleWithSAMLResponse": { + "base": "

Contains the response to a successful AssumeRoleWithSAML request, including temporary AWS credentials that can be used to make AWS requests.

", + "refs": { + } + }, + "AssumeRoleWithWebIdentityRequest": { + "base": null, + "refs": { + } + }, + "AssumeRoleWithWebIdentityResponse": { + "base": "

Contains the response to a successful AssumeRoleWithWebIdentity request, including temporary AWS credentials that can be used to make AWS requests.

", + "refs": { + } + }, + "AssumedRoleUser": { + "base": "

The identifiers for the temporary security credentials that the operation returns.

", + "refs": { + "AssumeRoleResponse$AssumedRoleUser": "

The Amazon Resource Name (ARN) and the assumed role ID, which are identifiers that you can use to refer to the resulting temporary security credentials. For example, you can reference these credentials as a principal in a resource-based policy by using the ARN or assumed role ID. The ARN and ID include the RoleSessionName that you specified when you called AssumeRole.

", + "AssumeRoleWithSAMLResponse$AssumedRoleUser": null, + "AssumeRoleWithWebIdentityResponse$AssumedRoleUser": "

The Amazon Resource Name (ARN) and the assumed role ID, which are identifiers that you can use to refer to the resulting temporary security credentials. For example, you can reference these credentials as a principal in a resource-based policy by using the ARN or assumed role ID. The ARN and ID include the RoleSessionName that you specified when you called AssumeRole.

" + } + }, + "Audience": { + "base": null, + "refs": { + "AssumeRoleWithSAMLResponse$Audience": "

The value of the Recipient attribute of the SubjectConfirmationData element of the SAML assertion.

", + "AssumeRoleWithWebIdentityResponse$Audience": "

The intended audience (also known as client ID) of the web identity token. This is traditionally the client identifier issued to the application that requested the web identity token.

" + } + }, + "Credentials": { + "base": "

AWS credentials for API authentication.

", + "refs": { + "AssumeRoleResponse$Credentials": "

The temporary security credentials, which include an access key ID, a secret access key, and a security (or session) token.

", + "AssumeRoleWithSAMLResponse$Credentials": null, + "AssumeRoleWithWebIdentityResponse$Credentials": "

The temporary security credentials, which include an access key ID, a secret access key, and a security token.

", + "GetFederationTokenResponse$Credentials": "

Credentials for the service API authentication.

", + "GetSessionTokenResponse$Credentials": "

The session credentials for API authentication.

" + } + }, + "DecodeAuthorizationMessageRequest": { + "base": null, + "refs": { + } + }, + "DecodeAuthorizationMessageResponse": { + "base": "

A document that contains additional information about the authorization status of a request from an encoded message that is returned in response to an AWS request.

", + "refs": { + } + }, + "ExpiredTokenException": { + "base": "

The web identity token that was passed is expired or is not valid. Get a new identity token from the identity provider and then retry the request.

", + "refs": { + } + }, + "FederatedUser": { + "base": "

Identifiers for the federated user that is associated with the credentials.

", + "refs": { + "GetFederationTokenResponse$FederatedUser": "

Identifiers for the federated user associated with the credentials (such as arn:aws:sts::123456789012:federated-user/Bob or 123456789012:Bob). You can use the federated user's ARN in your resource-based policies, such as an Amazon S3 bucket policy.

" + } + }, + "GetFederationTokenRequest": { + "base": null, + "refs": { + } + }, + "GetFederationTokenResponse": { + "base": "

Contains the response to a successful GetFederationToken request, including temporary AWS credentials that can be used to make AWS requests.

", + "refs": { + } + }, + "GetSessionTokenRequest": { + "base": null, + "refs": { + } + }, + "GetSessionTokenResponse": { + "base": "

Contains the response to a successful GetSessionToken request, including temporary AWS credentials that can be used to make AWS requests.

", + "refs": { + } + }, + "IDPCommunicationErrorException": { + "base": "

The request could not be fulfilled because the non-AWS identity provider (IDP) that was asked to verify the incoming identity token could not be reached. This is often a transient error caused by network conditions. Retry the request a limited number of times so that you don't exceed the request rate. If the error persists, the non-AWS identity provider might be down or not responding.

", + "refs": { + } + }, + "IDPRejectedClaimException": { + "base": "

The identity provider (IdP) reported that authentication failed. This might be because the claim is invalid.

If this error is returned for the AssumeRoleWithWebIdentity operation, it can also mean that the claim has expired or has been explicitly revoked.

", + "refs": { + } + }, + "InvalidAuthorizationMessageException": { + "base": "

The error returned if the message passed to DecodeAuthorizationMessage was invalid. This can happen if the token contains invalid characters, such as linebreaks.

", + "refs": { + } + }, + "InvalidIdentityTokenException": { + "base": "

The web identity token that was passed could not be validated by AWS. Get a new identity token from the identity provider and then retry the request.

", + "refs": { + } + }, + "Issuer": { + "base": null, + "refs": { + "AssumeRoleWithSAMLResponse$Issuer": "

The value of the Issuer element of the SAML assertion.

", + "AssumeRoleWithWebIdentityResponse$Provider": "

The issuing authority of the web identity token presented. For OpenID Connect ID Tokens this contains the value of the iss field. For OAuth 2.0 access tokens, this contains the value of the ProviderId parameter that was passed in the AssumeRoleWithWebIdentity request.

" + } + }, + "MalformedPolicyDocumentException": { + "base": "

The request was rejected because the policy document was malformed. The error message describes the specific error.

", + "refs": { + } + }, + "NameQualifier": { + "base": null, + "refs": { + "AssumeRoleWithSAMLResponse$NameQualifier": "

A hash value based on the concatenation of the Issuer response value, the AWS account ID, and the friendly name (the last part of the ARN) of the SAML provider in IAM. The combination of NameQualifier and Subject can be used to uniquely identify a federated user.

The following pseudocode shows how the hash value is calculated:

BASE64 ( SHA1 ( \"https://example.com/saml\" + \"123456789012\" + \"/MySAMLIdP\" ) )

" + } + }, + "PackedPolicyTooLargeException": { + "base": "

The request was rejected because the policy document was too large. The error message describes how big the policy document is, in packed form, as a percentage of what the API allows.

", + "refs": { + } + }, + "SAMLAssertionType": { + "base": null, + "refs": { + "AssumeRoleWithSAMLRequest$SAMLAssertion": "

The base-64 encoded SAML authentication response provided by the IdP.

For more information, see Configuring a Relying Party and Adding Claims in the Using IAM guide.

" + } + }, + "Subject": { + "base": null, + "refs": { + "AssumeRoleWithSAMLResponse$Subject": "

The value of the NameID element in the Subject element of the SAML assertion.

" + } + }, + "SubjectType": { + "base": null, + "refs": { + "AssumeRoleWithSAMLResponse$SubjectType": "

The format of the name ID, as defined by the Format attribute in the NameID element of the SAML assertion. Typical examples of the format are transient or persistent.

If the format includes the prefix urn:oasis:names:tc:SAML:2.0:nameid-format, that prefix is removed. For example, urn:oasis:names:tc:SAML:2.0:nameid-format:transient is returned as transient. If the format includes any other prefix, the format is returned with no modifications.

" + } + }, + "accessKeyIdType": { + "base": null, + "refs": { + "Credentials$AccessKeyId": "

The access key ID that identifies the temporary security credentials.

" + } + }, + "accessKeySecretType": { + "base": null, + "refs": { + "Credentials$SecretAccessKey": "

The secret access key that can be used to sign requests.

" + } + }, + "arnType": { + "base": null, + "refs": { + "AssumeRoleRequest$RoleArn": "

The Amazon Resource Name (ARN) of the role that the caller is assuming.

", + "AssumeRoleWithSAMLRequest$RoleArn": "

The Amazon Resource Name (ARN) of the role that the caller is assuming.

", + "AssumeRoleWithSAMLRequest$PrincipalArn": "

The Amazon Resource Name (ARN) of the SAML provider in IAM that describes the IdP.

", + "AssumeRoleWithWebIdentityRequest$RoleArn": "

The Amazon Resource Name (ARN) of the role that the caller is assuming.

", + "AssumedRoleUser$Arn": "

The ARN of the temporary security credentials that are returned from the AssumeRole action. For more information about ARNs and how to use them in policies, see Identifiers for IAM Entities in Using IAM.

", + "FederatedUser$Arn": "

The ARN that specifies the federated user that is associated with the credentials. For more information about ARNs and how to use them in policies, see Identifiers for IAM Entities in Using IAM.

" + } + }, + "assumedRoleIdType": { + "base": null, + "refs": { + "AssumedRoleUser$AssumedRoleId": "

A unique identifier that contains the role ID and the role session name of the role that is being assumed. The role ID is generated by AWS when the role is created.

" + } + }, + "clientTokenType": { + "base": null, + "refs": { + "AssumeRoleWithWebIdentityRequest$WebIdentityToken": "

The OAuth 2.0 access token or OpenID Connect ID token that is provided by the identity provider. Your application must get this token by authenticating the user who is using your application with a web identity provider before the application makes an AssumeRoleWithWebIdentity call.

" + } + }, + "dateType": { + "base": null, + "refs": { + "Credentials$Expiration": "

The date on which the current credentials expire.

" + } + }, + "decodedMessageType": { + "base": null, + "refs": { + "DecodeAuthorizationMessageResponse$DecodedMessage": "

An XML document that contains the decoded message. For more information, see DecodeAuthorizationMessage.

" + } + }, + "durationSecondsType": { + "base": null, + "refs": { + "AssumeRoleWithSAMLRequest$DurationSeconds": "

The duration, in seconds, of the role session. The value can range from 900 seconds (15 minutes) to 3600 seconds (1 hour). By default, the value is set to 3600 seconds. An expiration can also be specified in the SAML authentication response's SessionNotOnOrAfter value. The actual expiration time is whichever value is shorter.

The maximum duration for a session is 1 hour, and the minimum duration is 15 minutes, even if values outside this range are specified. ", + "AssumeRoleWithWebIdentityRequest$DurationSeconds": "

The duration, in seconds, of the role session. The value can range from 900 seconds (15 minutes) to 3600 seconds (1 hour). By default, the value is set to 3600 seconds.

", + "GetFederationTokenRequest$DurationSeconds": "

The duration, in seconds, that the session should last. Acceptable durations for federation sessions range from 900 seconds (15 minutes) to 129600 seconds (36 hours), with 43200 seconds (12 hours) as the default. Sessions obtained using AWS account (root) credentials are restricted to a maximum of 3600 seconds (one hour). If the specified duration is longer than one hour, the session obtained by using AWS account (root) credentials defaults to one hour.

", + "GetSessionTokenRequest$DurationSeconds": "

The duration, in seconds, that the credentials should remain valid. Acceptable durations for IAM user sessions range from 900 seconds (15 minutes) to 129600 seconds (36 hours), with 43200 seconds (12 hours) as the default. Sessions for AWS account owners are restricted to a maximum of 3600 seconds (one hour). If the duration is longer than one hour, the session for AWS account owners defaults to one hour.

" + } + }, + "encodedMessageType": { + "base": null, + "refs": { + "DecodeAuthorizationMessageRequest$EncodedMessage": "

The encoded message that was returned with the response.

" + } + }, + "expiredIdentityTokenMessage": { + "base": null, + "refs": { + "ExpiredTokenException$message": null + } + }, + "externalIdType": { + "base": null, + "refs": { + "AssumeRoleRequest$ExternalId": "

A unique identifier that is used by third parties to assume a role in their customers' accounts. For each role that the third party can assume, they should instruct their customers to create a role with the external ID that the third party generated. Each time the third party assumes the role, they must pass the customer's external ID. The external ID is useful in order to help third parties bind a role to the customer who created it. For more information about the external ID, see About the External ID in Using Temporary Security Credentials.

" + } + }, + "federatedIdType": { + "base": null, + "refs": { + "FederatedUser$FederatedUserId": "

The string that identifies the federated user associated with the credentials, similar to the unique ID of an IAM user.

" + } + }, + "idpCommunicationErrorMessage": { + "base": null, + "refs": { + "IDPCommunicationErrorException$message": null + } + }, + "idpRejectedClaimMessage": { + "base": null, + "refs": { + "IDPRejectedClaimException$message": null + } + }, + "invalidAuthorizationMessage": { + "base": null, + "refs": { + "InvalidAuthorizationMessageException$message": null + } + }, + "invalidIdentityTokenMessage": { + "base": null, + "refs": { + "InvalidIdentityTokenException$message": null + } + }, + "malformedPolicyDocumentMessage": { + "base": null, + "refs": { + "MalformedPolicyDocumentException$message": null + } + }, + "nonNegativeIntegerType": { + "base": null, + "refs": { + "AssumeRoleResponse$PackedPolicySize": "

A percentage value that indicates the size of the policy in packed form. The service rejects any policy with a packed size greater than 100 percent, which means the policy exceeded the allowed space.

", + "AssumeRoleWithSAMLResponse$PackedPolicySize": "

A percentage value that indicates the size of the policy in packed form. The service rejects any policy with a packed size greater than 100 percent, which means the policy exceeded the allowed space.

", + "AssumeRoleWithWebIdentityResponse$PackedPolicySize": "

A percentage value that indicates the size of the policy in packed form. The service rejects any policy with a packed size greater than 100 percent, which means the policy exceeded the allowed space.

", + "GetFederationTokenResponse$PackedPolicySize": "

A percentage value indicating the size of the policy in packed form. The service rejects policies for which the packed size is greater than 100 percent of the allowed value.

" + } + }, + "packedPolicyTooLargeMessage": { + "base": null, + "refs": { + "PackedPolicyTooLargeException$message": null + } + }, + "roleDurationSecondsType": { + "base": null, + "refs": { + "AssumeRoleRequest$DurationSeconds": "

The duration, in seconds, of the role session. The value can range from 900 seconds (15 minutes) to 3600 seconds (1 hour). By default, the value is set to 3600 seconds.

" + } + }, + "serialNumberType": { + "base": null, + "refs": { + "AssumeRoleRequest$SerialNumber": "

The identification number of the MFA device that is associated with the user who is making the AssumeRole call. Specify this value if the trust policy of the role being assumed includes a condition that requires MFA authentication. The value is either the serial number for a hardware device (such as GAHT12345678) or an Amazon Resource Name (ARN) for a virtual device (such as arn:aws:iam::123456789012:mfa/user).

", + "GetSessionTokenRequest$SerialNumber": "

The identification number of the MFA device that is associated with the IAM user who is making the GetSessionToken call. Specify this value if the IAM user has a policy that requires MFA authentication. The value is either the serial number for a hardware device (such as GAHT12345678) or an Amazon Resource Name (ARN) for a virtual device (such as arn:aws:iam::123456789012:mfa/user). You can find the device for an IAM user by going to the AWS Management Console and viewing the user's security credentials.

" + } + }, + "sessionPolicyDocumentType": { + "base": null, + "refs": { + "AssumeRoleRequest$Policy": "

An IAM policy in JSON format.

The policy parameter is optional. If you pass a policy, the temporary security credentials that are returned by the operation have the permissions that are allowed by both the access policy of the role that is being assumed, and the policy that you pass. This gives you a way to further restrict the permissions for the resulting temporary security credentials. You cannot use the passed policy to grant permissions that are in excess of those allowed by the access policy of the role that is being assumed. For more information, see Permissions for AssumeRole in Using Temporary Security Credentials.

", + "AssumeRoleWithSAMLRequest$Policy": "

An IAM policy in JSON format.

The policy parameter is optional. If you pass a policy, the temporary security credentials that are returned by the operation have the permissions that are allowed by both the access policy of the role that is being assumed, and the policy that you pass. This gives you a way to further restrict the permissions for the resulting temporary security credentials. You cannot use the passed policy to grant permissions that are in excess of those allowed by the access policy of the role that is being assumed. For more information, see Permissions for AssumeRoleWithSAML in Using Temporary Security Credentials.

The policy must be 2048 bytes or shorter, and its packed size must be less than 450 bytes.", + "AssumeRoleWithWebIdentityRequest$Policy": "

An IAM policy in JSON format.

The policy parameter is optional. If you pass a policy, the temporary security credentials that are returned by the operation have the permissions that are allowed by both the access policy of the role that is being assumed, and the policy that you pass. This gives you a way to further restrict the permissions for the resulting temporary security credentials. You cannot use the passed policy to grant permissions that are in excess of those allowed by the access policy of the role that is being assumed. For more information, see Permissions for AssumeRoleWithWebIdentity in Using Temporary Security Credentials.

", + "GetFederationTokenRequest$Policy": "

An IAM policy in JSON format that is passed with the GetFederationToken call and evaluated along with the policy or policies that are attached to the IAM user whose credentials are used to call GetFederationToken. The passed policy is used to scope down the permissions that are available to the IAM user, by allowing only a subset of the permissions that are granted to the IAM user. The passed policy cannot grant more permissions than those granted to the IAM user. The final permissions for the federated user are the most restrictive set based on the intersection of the passed policy and the IAM user policy.

If you do not pass a policy, the resulting temporary security credentials have no effective permissions. The only exception is when the temporary security credentials are used to access a resource that has a resource-based policy that specifically allows the federated user to access the resource.

For more information about how permissions work, see Permissions for GetFederationToken in Using Temporary Security Credentials.

" + } + }, + "tokenCodeType": { + "base": null, + "refs": { + "AssumeRoleRequest$TokenCode": "

The value provided by the MFA device, if the trust policy of the role being assumed requires MFA (that is, if the policy includes a condition that tests for MFA). If the role being assumed requires MFA and if the TokenCode value is missing or expired, the AssumeRole call returns an \"access denied\" error.

", + "GetSessionTokenRequest$TokenCode": "

The value provided by the MFA device, if MFA is required. If any policy requires the IAM user to submit an MFA code, specify this value. If MFA authentication is required, and the user does not provide a code when requesting a set of temporary security credentials, the user will receive an \"access denied\" response when requesting resources that require MFA authentication.

" + } + }, + "tokenType": { + "base": null, + "refs": { + "Credentials$SessionToken": "

The token that users must pass to the service API to use the temporary credentials.

" + } + }, + "urlType": { + "base": null, + "refs": { + "AssumeRoleWithWebIdentityRequest$ProviderId": "

The fully qualified host component of the domain name of the identity provider.

Specify this value only for OAuth 2.0 access tokens. Currently www.amazon.com and graph.facebook.com are the only supported identity providers for OAuth 2.0 access tokens. Do not include URL schemes and port numbers.

Do not specify this value for OpenID Connect ID tokens.

" + } + }, + "userNameType": { + "base": null, + "refs": { + "AssumeRoleRequest$RoleSessionName": "

An identifier for the assumed role session. The session name is included as part of the AssumedRoleUser.

", + "AssumeRoleWithWebIdentityRequest$RoleSessionName": "

An identifier for the assumed role session. Typically, you pass the name or identifier that is associated with the user who is using your application. That way, the temporary security credentials that your application will use are associated with that user. This session name is included as part of the ARN and assumed role ID in the AssumedRoleUser response element.

", + "GetFederationTokenRequest$Name": "

The name of the federated user. The name is used as an identifier for the temporary security credentials (such as Bob). For example, you can reference the federated user name in a resource-based policy, such as in an Amazon S3 bucket policy.

" + } + }, + "webIdentitySubjectType": { + "base": null, + "refs": { + "AssumeRoleWithWebIdentityResponse$SubjectFromWebIdentityToken": "

The unique user identifier that is returned by the identity provider. This identifier is associated with the WebIdentityToken that was submitted with the AssumeRoleWithWebIdentity call. The identifier is typically unique to the user and the application that acquired the WebIdentityToken (pairwise identifier). For OpenID Connect ID tokens, this field contains the value returned by the identity provider as the token's sub (Subject) claim.

" + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/support/2013-04-15/api-2.json b/lib/aws-sdk/Aws/data/support/2013-04-15/api-2.json new file mode 100644 index 0000000..09af5f1 --- /dev/null +++ b/lib/aws-sdk/Aws/data/support/2013-04-15/api-2.json @@ -0,0 +1,869 @@ +{ + "metadata":{ + "apiVersion":"2013-04-15", + "endpointPrefix":"support", + "jsonVersion":"1.1", + "serviceFullName":"AWS Support", + "signatureVersion":"v4", + "targetPrefix":"AWSSupport_20130415", + "protocol":"json" + }, + "operations":{ + "AddAttachmentsToSet":{ + "name":"AddAttachmentsToSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddAttachmentsToSetRequest"}, + "output":{"shape":"AddAttachmentsToSetResponse"}, + "errors":[ + { + "shape":"InternalServerError", + "exception":true, + "fault":true + }, + { + "shape":"AttachmentSetIdNotFound", + "exception":true + }, + { + "shape":"AttachmentSetExpired", + "exception":true + }, + { + "shape":"AttachmentSetSizeLimitExceeded", + "exception":true + }, + { + "shape":"AttachmentLimitExceeded", + "exception":true + } + ] + }, + "AddCommunicationToCase":{ + "name":"AddCommunicationToCase", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddCommunicationToCaseRequest"}, + "output":{"shape":"AddCommunicationToCaseResponse"}, + "errors":[ + { + "shape":"InternalServerError", + "exception":true, + "fault":true + }, + { + "shape":"CaseIdNotFound", + "exception":true + }, + { + "shape":"AttachmentSetIdNotFound", + "exception":true + }, + { + "shape":"AttachmentSetExpired", + "exception":true + } + ] + }, + "CreateCase":{ + "name":"CreateCase", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateCaseRequest"}, + "output":{"shape":"CreateCaseResponse"}, + "errors":[ + { + "shape":"InternalServerError", + "exception":true, + "fault":true + }, + { + "shape":"CaseCreationLimitExceeded", + "exception":true + }, + { + "shape":"AttachmentSetIdNotFound", + "exception":true + }, + { + "shape":"AttachmentSetExpired", + "exception":true + } + ] + }, + "DescribeAttachment":{ + "name":"DescribeAttachment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAttachmentRequest"}, + "output":{"shape":"DescribeAttachmentResponse"}, + "errors":[ + { + "shape":"InternalServerError", + "exception":true, + "fault":true + }, + { + "shape":"DescribeAttachmentLimitExceeded", + "exception":true + }, + { + "shape":"AttachmentIdNotFound", + "exception":true + } + ] + }, + "DescribeCases":{ + "name":"DescribeCases", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeCasesRequest"}, + "output":{"shape":"DescribeCasesResponse"}, + "errors":[ + { + "shape":"InternalServerError", + "exception":true, + "fault":true + }, + { + "shape":"CaseIdNotFound", + "exception":true + } + ] + }, + "DescribeCommunications":{ + "name":"DescribeCommunications", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeCommunicationsRequest"}, + "output":{"shape":"DescribeCommunicationsResponse"}, + "errors":[ + { + "shape":"InternalServerError", + "exception":true, + "fault":true + }, + { + "shape":"CaseIdNotFound", + "exception":true + } + ] + }, + "DescribeServices":{ + "name":"DescribeServices", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeServicesRequest"}, + "output":{"shape":"DescribeServicesResponse"}, + "errors":[ + { + "shape":"InternalServerError", + "exception":true, + "fault":true + } + ] + }, + "DescribeSeverityLevels":{ + "name":"DescribeSeverityLevels", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSeverityLevelsRequest"}, + "output":{"shape":"DescribeSeverityLevelsResponse"}, + "errors":[ + { + "shape":"InternalServerError", + "exception":true, + "fault":true + } + ] + }, + "DescribeTrustedAdvisorCheckRefreshStatuses":{ + "name":"DescribeTrustedAdvisorCheckRefreshStatuses", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTrustedAdvisorCheckRefreshStatusesRequest"}, + "output":{"shape":"DescribeTrustedAdvisorCheckRefreshStatusesResponse"}, + "errors":[ + { + "shape":"InternalServerError", + "exception":true, + "fault":true + } + ] + }, + "DescribeTrustedAdvisorCheckResult":{ + "name":"DescribeTrustedAdvisorCheckResult", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTrustedAdvisorCheckResultRequest"}, + "output":{"shape":"DescribeTrustedAdvisorCheckResultResponse"}, + "errors":[ + { + "shape":"InternalServerError", + "exception":true, + "fault":true + } + ] + }, + "DescribeTrustedAdvisorCheckSummaries":{ + "name":"DescribeTrustedAdvisorCheckSummaries", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTrustedAdvisorCheckSummariesRequest"}, + "output":{"shape":"DescribeTrustedAdvisorCheckSummariesResponse"}, + "errors":[ + { + "shape":"InternalServerError", + "exception":true, + "fault":true + } + ] + }, + "DescribeTrustedAdvisorChecks":{ + "name":"DescribeTrustedAdvisorChecks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTrustedAdvisorChecksRequest"}, + "output":{"shape":"DescribeTrustedAdvisorChecksResponse"}, + "errors":[ + { + "shape":"InternalServerError", + "exception":true, + "fault":true + } + ] + }, + "RefreshTrustedAdvisorCheck":{ + "name":"RefreshTrustedAdvisorCheck", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RefreshTrustedAdvisorCheckRequest"}, + "output":{"shape":"RefreshTrustedAdvisorCheckResponse"}, + "errors":[ + { + "shape":"InternalServerError", + "exception":true, + "fault":true + } + ] + }, + "ResolveCase":{ + "name":"ResolveCase", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ResolveCaseRequest"}, + "output":{"shape":"ResolveCaseResponse"}, + "errors":[ + { + "shape":"InternalServerError", + "exception":true, + "fault":true + }, + { + "shape":"CaseIdNotFound", + "exception":true + } + ] + } + }, + "shapes":{ + "AddAttachmentsToSetRequest":{ + "type":"structure", + "required":["attachments"], + "members":{ + "attachmentSetId":{"shape":"AttachmentSetId"}, + "attachments":{"shape":"Attachments"} + } + }, + "AddAttachmentsToSetResponse":{ + "type":"structure", + "members":{ + "attachmentSetId":{"shape":"AttachmentSetId"}, + "expiryTime":{"shape":"ExpiryTime"} + } + }, + "AddCommunicationToCaseRequest":{ + "type":"structure", + "required":["communicationBody"], + "members":{ + "caseId":{"shape":"CaseId"}, + "communicationBody":{"shape":"CommunicationBody"}, + "ccEmailAddresses":{"shape":"CcEmailAddressList"}, + "attachmentSetId":{"shape":"AttachmentSetId"} + } + }, + "AddCommunicationToCaseResponse":{ + "type":"structure", + "members":{ + "result":{"shape":"Result"} + } + }, + "AfterTime":{"type":"string"}, + "Attachment":{ + "type":"structure", + "members":{ + "fileName":{"shape":"FileName"}, + "data":{"shape":"Data"} + } + }, + "AttachmentDetails":{ + "type":"structure", + "members":{ + "attachmentId":{"shape":"AttachmentId"}, + "fileName":{"shape":"FileName"} + } + }, + "AttachmentId":{"type":"string"}, + "AttachmentIdNotFound":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "AttachmentLimitExceeded":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "AttachmentSet":{ + "type":"list", + "member":{"shape":"AttachmentDetails"} + }, + "AttachmentSetExpired":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "AttachmentSetId":{"type":"string"}, + "AttachmentSetIdNotFound":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "AttachmentSetSizeLimitExceeded":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "Attachments":{ + "type":"list", + "member":{"shape":"Attachment"} + }, + "BeforeTime":{"type":"string"}, + "Boolean":{"type":"boolean"}, + "CaseCreationLimitExceeded":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "CaseDetails":{ + "type":"structure", + "members":{ + "caseId":{"shape":"CaseId"}, + "displayId":{"shape":"DisplayId"}, + "subject":{"shape":"Subject"}, + "status":{"shape":"Status"}, + "serviceCode":{"shape":"ServiceCode"}, + "categoryCode":{"shape":"CategoryCode"}, + "severityCode":{"shape":"SeverityCode"}, + "submittedBy":{"shape":"SubmittedBy"}, + "timeCreated":{"shape":"TimeCreated"}, + "recentCommunications":{"shape":"RecentCaseCommunications"}, + "ccEmailAddresses":{"shape":"CcEmailAddressList"}, + "language":{"shape":"Language"} + } + }, + "CaseId":{"type":"string"}, + "CaseIdList":{ + "type":"list", + "member":{"shape":"CaseId"}, + "min":0, + "max":100 + }, + "CaseIdNotFound":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "CaseList":{ + "type":"list", + "member":{"shape":"CaseDetails"} + }, + "CaseStatus":{"type":"string"}, + "Category":{ + "type":"structure", + "members":{ + "code":{"shape":"CategoryCode"}, + "name":{"shape":"CategoryName"} + } + }, + "CategoryCode":{"type":"string"}, + "CategoryList":{ + "type":"list", + "member":{"shape":"Category"} + }, + "CategoryName":{"type":"string"}, + "CcEmailAddress":{"type":"string"}, + "CcEmailAddressList":{ + "type":"list", + "member":{"shape":"CcEmailAddress"} + }, + "Communication":{ + "type":"structure", + "members":{ + "caseId":{"shape":"CaseId"}, + "body":{"shape":"CommunicationBody"}, + "submittedBy":{"shape":"SubmittedBy"}, + "timeCreated":{"shape":"TimeCreated"}, + "attachmentSet":{"shape":"AttachmentSet"} + } + }, + "CommunicationBody":{"type":"string"}, + "CommunicationList":{ + "type":"list", + "member":{"shape":"Communication"} + }, + "CreateCaseRequest":{ + "type":"structure", + "required":[ + "subject", + "communicationBody" + ], + "members":{ + "subject":{"shape":"Subject"}, + "serviceCode":{"shape":"ServiceCode"}, + "severityCode":{"shape":"SeverityCode"}, + "categoryCode":{"shape":"CategoryCode"}, + "communicationBody":{"shape":"CommunicationBody"}, + "ccEmailAddresses":{"shape":"CcEmailAddressList"}, + "language":{"shape":"Language"}, + "issueType":{"shape":"IssueType"}, + "attachmentSetId":{"shape":"AttachmentSetId"} + } + }, + "CreateCaseResponse":{ + "type":"structure", + "members":{ + "caseId":{"shape":"CaseId"} + } + }, + "Data":{"type":"blob"}, + "DescribeAttachmentLimitExceeded":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "DescribeAttachmentRequest":{ + "type":"structure", + "required":["attachmentId"], + "members":{ + "attachmentId":{"shape":"AttachmentId"} + } + }, + "DescribeAttachmentResponse":{ + "type":"structure", + "members":{ + "attachment":{"shape":"Attachment"} + } + }, + "DescribeCasesRequest":{ + "type":"structure", + "members":{ + "caseIdList":{"shape":"CaseIdList"}, + "displayId":{"shape":"DisplayId"}, + "afterTime":{"shape":"AfterTime"}, + "beforeTime":{"shape":"BeforeTime"}, + "includeResolvedCases":{"shape":"IncludeResolvedCases"}, + "nextToken":{"shape":"NextToken"}, + "maxResults":{"shape":"MaxResults"}, + "language":{"shape":"Language"}, + "includeCommunications":{"shape":"IncludeCommunications"} + } + }, + "DescribeCasesResponse":{ + "type":"structure", + "members":{ + "cases":{"shape":"CaseList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "DescribeCommunicationsRequest":{ + "type":"structure", + "required":["caseId"], + "members":{ + "caseId":{"shape":"CaseId"}, + "beforeTime":{"shape":"BeforeTime"}, + "afterTime":{"shape":"AfterTime"}, + "nextToken":{"shape":"NextToken"}, + "maxResults":{"shape":"MaxResults"} + } + }, + "DescribeCommunicationsResponse":{ + "type":"structure", + "members":{ + "communications":{"shape":"CommunicationList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "DescribeServicesRequest":{ + "type":"structure", + "members":{ + "serviceCodeList":{"shape":"ServiceCodeList"}, + "language":{"shape":"Language"} + } + }, + "DescribeServicesResponse":{ + "type":"structure", + "members":{ + "services":{"shape":"ServiceList"} + } + }, + "DescribeSeverityLevelsRequest":{ + "type":"structure", + "members":{ + "language":{"shape":"Language"} + } + }, + "DescribeSeverityLevelsResponse":{ + "type":"structure", + "members":{ + "severityLevels":{"shape":"SeverityLevelsList"} + } + }, + "DescribeTrustedAdvisorCheckRefreshStatusesRequest":{ + "type":"structure", + "required":["checkIds"], + "members":{ + "checkIds":{"shape":"StringList"} + } + }, + "DescribeTrustedAdvisorCheckRefreshStatusesResponse":{ + "type":"structure", + "required":["statuses"], + "members":{ + "statuses":{"shape":"TrustedAdvisorCheckRefreshStatusList"} + } + }, + "DescribeTrustedAdvisorCheckResultRequest":{ + "type":"structure", + "required":["checkId"], + "members":{ + "checkId":{"shape":"String"}, + "language":{"shape":"String"} + } + }, + "DescribeTrustedAdvisorCheckResultResponse":{ + "type":"structure", + "members":{ + "result":{"shape":"TrustedAdvisorCheckResult"} + } + }, + "DescribeTrustedAdvisorCheckSummariesRequest":{ + "type":"structure", + "required":["checkIds"], + "members":{ + "checkIds":{"shape":"StringList"} + } + }, + "DescribeTrustedAdvisorCheckSummariesResponse":{ + "type":"structure", + "required":["summaries"], + "members":{ + "summaries":{"shape":"TrustedAdvisorCheckSummaryList"} + } + }, + "DescribeTrustedAdvisorChecksRequest":{ + "type":"structure", + "required":["language"], + "members":{ + "language":{"shape":"String"} + } + }, + "DescribeTrustedAdvisorChecksResponse":{ + "type":"structure", + "required":["checks"], + "members":{ + "checks":{"shape":"TrustedAdvisorCheckList"} + } + }, + "DisplayId":{"type":"string"}, + "Double":{"type":"double"}, + "ErrorMessage":{"type":"string"}, + "ExpiryTime":{"type":"string"}, + "FileName":{"type":"string"}, + "IncludeCommunications":{"type":"boolean"}, + "IncludeResolvedCases":{"type":"boolean"}, + "InternalServerError":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true, + "fault":true + }, + "IssueType":{"type":"string"}, + "Language":{"type":"string"}, + "Long":{"type":"long"}, + "MaxResults":{ + "type":"integer", + "min":10, + "max":100 + }, + "NextToken":{"type":"string"}, + "RecentCaseCommunications":{ + "type":"structure", + "members":{ + "communications":{"shape":"CommunicationList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "RefreshTrustedAdvisorCheckRequest":{ + "type":"structure", + "required":["checkId"], + "members":{ + "checkId":{"shape":"String"} + } + }, + "RefreshTrustedAdvisorCheckResponse":{ + "type":"structure", + "required":["status"], + "members":{ + "status":{"shape":"TrustedAdvisorCheckRefreshStatus"} + } + }, + "ResolveCaseRequest":{ + "type":"structure", + "members":{ + "caseId":{"shape":"CaseId"} + } + }, + "ResolveCaseResponse":{ + "type":"structure", + "members":{ + "initialCaseStatus":{"shape":"CaseStatus"}, + "finalCaseStatus":{"shape":"CaseStatus"} + } + }, + "Result":{"type":"boolean"}, + "Service":{ + "type":"structure", + "members":{ + "code":{"shape":"ServiceCode"}, + "name":{"shape":"ServiceName"}, + "categories":{"shape":"CategoryList"} + } + }, + "ServiceCode":{ + "type":"string", + "pattern":"[0-9a-z\\-_]+" + }, + "ServiceCodeList":{ + "type":"list", + "member":{"shape":"ServiceCode"}, + "min":0, + "max":100 + }, + "ServiceList":{ + "type":"list", + "member":{"shape":"Service"} + }, + "ServiceName":{"type":"string"}, + "SeverityCode":{"type":"string"}, + "SeverityLevel":{ + "type":"structure", + "members":{ + "code":{"shape":"SeverityLevelCode"}, + "name":{"shape":"SeverityLevelName"} + } + }, + "SeverityLevelCode":{"type":"string"}, + "SeverityLevelName":{"type":"string"}, + "SeverityLevelsList":{ + "type":"list", + "member":{"shape":"SeverityLevel"} + }, + "Status":{"type":"string"}, + "String":{"type":"string"}, + "StringList":{ + "type":"list", + "member":{"shape":"String"} + }, + "Subject":{"type":"string"}, + "SubmittedBy":{"type":"string"}, + "TimeCreated":{"type":"string"}, + "TrustedAdvisorCategorySpecificSummary":{ + "type":"structure", + "members":{ + "costOptimizing":{"shape":"TrustedAdvisorCostOptimizingSummary"} + } + }, + "TrustedAdvisorCheckDescription":{ + "type":"structure", + "required":[ + "id", + "name", + "description", + "category", + "metadata" + ], + "members":{ + "id":{"shape":"String"}, + "name":{"shape":"String"}, + "description":{"shape":"String"}, + "category":{"shape":"String"}, + "metadata":{"shape":"StringList"} + } + }, + "TrustedAdvisorCheckList":{ + "type":"list", + "member":{"shape":"TrustedAdvisorCheckDescription"} + }, + "TrustedAdvisorCheckRefreshStatus":{ + "type":"structure", + "required":[ + "checkId", + "status", + "millisUntilNextRefreshable" + ], + "members":{ + "checkId":{"shape":"String"}, + "status":{"shape":"String"}, + "millisUntilNextRefreshable":{"shape":"Long"} + } + }, + "TrustedAdvisorCheckRefreshStatusList":{ + "type":"list", + "member":{"shape":"TrustedAdvisorCheckRefreshStatus"} + }, + "TrustedAdvisorCheckResult":{ + "type":"structure", + "required":[ + "checkId", + "timestamp", + "status", + "resourcesSummary", + "categorySpecificSummary", + "flaggedResources" + ], + "members":{ + "checkId":{"shape":"String"}, + "timestamp":{"shape":"String"}, + "status":{"shape":"String"}, + "resourcesSummary":{"shape":"TrustedAdvisorResourcesSummary"}, + "categorySpecificSummary":{"shape":"TrustedAdvisorCategorySpecificSummary"}, + "flaggedResources":{"shape":"TrustedAdvisorResourceDetailList"} + } + }, + "TrustedAdvisorCheckSummary":{ + "type":"structure", + "required":[ + "checkId", + "timestamp", + "status", + "resourcesSummary", + "categorySpecificSummary" + ], + "members":{ + "checkId":{"shape":"String"}, + "timestamp":{"shape":"String"}, + "status":{"shape":"String"}, + "hasFlaggedResources":{"shape":"Boolean"}, + "resourcesSummary":{"shape":"TrustedAdvisorResourcesSummary"}, + "categorySpecificSummary":{"shape":"TrustedAdvisorCategorySpecificSummary"} + } + }, + "TrustedAdvisorCheckSummaryList":{ + "type":"list", + "member":{"shape":"TrustedAdvisorCheckSummary"} + }, + "TrustedAdvisorCostOptimizingSummary":{ + "type":"structure", + "required":[ + "estimatedMonthlySavings", + "estimatedPercentMonthlySavings" + ], + "members":{ + "estimatedMonthlySavings":{"shape":"Double"}, + "estimatedPercentMonthlySavings":{"shape":"Double"} + } + }, + "TrustedAdvisorResourceDetail":{ + "type":"structure", + "required":[ + "status", + "region", + "resourceId", + "metadata" + ], + "members":{ + "status":{"shape":"String"}, + "region":{"shape":"String"}, + "resourceId":{"shape":"String"}, + "isSuppressed":{"shape":"Boolean"}, + "metadata":{"shape":"StringList"} + } + }, + "TrustedAdvisorResourceDetailList":{ + "type":"list", + "member":{"shape":"TrustedAdvisorResourceDetail"} + }, + "TrustedAdvisorResourcesSummary":{ + "type":"structure", + "required":[ + "resourcesProcessed", + "resourcesFlagged", + "resourcesIgnored", + "resourcesSuppressed" + ], + "members":{ + "resourcesProcessed":{"shape":"Long"}, + "resourcesFlagged":{"shape":"Long"}, + "resourcesIgnored":{"shape":"Long"}, + "resourcesSuppressed":{"shape":"Long"} + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/support/2013-04-15/docs-2.json b/lib/aws-sdk/Aws/data/support/2013-04-15/docs-2.json new file mode 100644 index 0000000..6c902a1 --- /dev/null +++ b/lib/aws-sdk/Aws/data/support/2013-04-15/docs-2.json @@ -0,0 +1,680 @@ +{ + "operations": { + "AddAttachmentsToSet": "

Adds one or more attachments to an attachment set. If an AttachmentSetId is not specified, a new attachment set is created, and the ID of the set is returned in the response. If an AttachmentSetId is specified, the attachments are added to the specified set, if it exists.

An attachment set is a temporary container for attachments that are to be added to a case or case communication. The set is available for one hour after it is created; the ExpiryTime returned in the response indicates when the set expires. The maximum number of attachments in a set is 3, and the maximum size of any attachment in the set is 5 MB.

", + "AddCommunicationToCase": "

Adds additional customer communication to an AWS Support case. You use the CaseId value to identify the case to add communication to. You can list a set of email addresses to copy on the communication using the CcEmailAddresses value. The CommunicationBody value contains the text of the communication.

The response indicates the success or failure of the request.

This operation implements a subset of the features of the AWS Support Center.

", + "CreateCase": "

Creates a new case in the AWS Support Center. This operation is modeled on the behavior of the AWS Support Center Create Case page. Its parameters require you to specify the following information:

  1. IssueType. The type of issue for the case. You can specify either \"customer-service\" or \"technical.\" If you do not indicate a value, the default is \"technical.\"
  2. ServiceCode. The code for an AWS service. You obtain the ServiceCode by calling DescribeServices.
  3. CategoryCode. The category for the service defined for the ServiceCode value. You also obtain the category code for a service by calling DescribeServices. Each AWS service defines its own set of category codes.
  4. SeverityCode. A value that indicates the urgency of the case, which in turn determines the response time according to your service level agreement with AWS Support. You obtain the SeverityCode by calling DescribeSeverityLevels.
  5. Subject. The Subject field on the AWS Support Center Create Case page.
  6. CommunicationBody. The Description field on the AWS Support Center Create Case page.
  7. AttachmentSetId. The ID of a set of attachments that has been created by using AddAttachmentsToSet.
  8. Language. The human language in which AWS Support handles the case. English and Japanese are currently supported.
  9. CcEmailAddresses. The AWS Support Center CC field on the Create Case page. You can list email addresses to be copied on any correspondence about the case. The account that opens the case is already identified by passing the AWS Credentials in the HTTP POST method or in a method or function call from one of the programming languages supported by an AWS SDK.

To add additional communication or attachments to an existing case, use AddCommunicationToCase.

A successful CreateCase request returns an AWS Support case number. Case numbers are used by the DescribeCases operation to retrieve existing AWS Support cases.

", + "DescribeAttachment": "

Returns the attachment that has the specified ID. Attachment IDs are generated by the case management system when you add an attachment to a case or case communication. Attachment IDs are returned in the AttachmentDetails objects that are returned by the DescribeCommunications operation.

", + "DescribeCases": "

Returns a list of cases that you specify by passing one or more case IDs. In addition, you can filter the cases by date by setting values for the AfterTime and BeforeTime request parameters. You can set values for the IncludeResolvedCases and IncludeCommunications request parameters to control how much information is returned.

Case data is available for 12 months after creation. If a case was created more than 12 months ago, a request for data might cause an error.

The response returns the following in JSON format:

  1. One or more CaseDetails data types.
  2. One or more NextToken values, which specify where to paginate the returned records represented by the CaseDetails objects.
", + "DescribeCommunications": "

Returns communications (and attachments) for one or more support cases. You can use the AfterTime and BeforeTime parameters to filter by date. You can use the CaseId parameter to restrict the results to a particular case.

Case data is available for 12 months after creation. If a case was created more than 12 months ago, a request for data might cause an error.

You can use the MaxResults and NextToken parameters to control the pagination of the result set. Set MaxResults to the number of cases you want displayed on each page, and use NextToken to specify the resumption of pagination.

", + "DescribeServices": "

Returns the current list of AWS services and a list of service categories that applies to each one. You then use service names and categories in your CreateCase requests. Each AWS service has its own set of categories.

The service codes and category codes correspond to the values that are displayed in the Service and Category drop-down lists on the AWS Support Center Create Case page. The values in those fields, however, do not necessarily match the service codes and categories returned by the DescribeServices request. Always use the service codes and categories obtained programmatically. This practice ensures that you always have the most recent set of service and category codes.

", + "DescribeSeverityLevels": "

Returns the list of severity levels that you can assign to an AWS Support case. The severity level for a case is also a field in the CaseDetails data type included in any CreateCase request.

", + "DescribeTrustedAdvisorCheckRefreshStatuses": "

Returns the refresh status of the Trusted Advisor checks that have the specified check IDs. Check IDs can be obtained by calling DescribeTrustedAdvisorChecks.

", + "DescribeTrustedAdvisorCheckResult": "

Returns the results of the Trusted Advisor check that has the specified check ID. Check IDs can be obtained by calling DescribeTrustedAdvisorChecks.

The response contains a TrustedAdvisorCheckResult object, which contains these three objects:

In addition, the response contains these fields:

  • Status. The alert status of the check: \"ok\" (green), \"warning\" (yellow), \"error\" (red), or \"not_available\".
  • Timestamp. The time of the last refresh of the check.
  • CheckId. The unique identifier for the check.
", + "DescribeTrustedAdvisorCheckSummaries": "

Returns the summaries of the results of the Trusted Advisor checks that have the specified check IDs. Check IDs can be obtained by calling DescribeTrustedAdvisorChecks.

The response contains an array of TrustedAdvisorCheckSummary objects.

", + "DescribeTrustedAdvisorChecks": "

Returns information about all available Trusted Advisor checks, including name, ID, category, description, and metadata. You must specify a language code; English (\"en\") and Japanese (\"ja\") are currently supported. The response contains a TrustedAdvisorCheckDescription for each check.

", + "RefreshTrustedAdvisorCheck": "

Requests a refresh of the Trusted Advisor check that has the specified check ID. Check IDs can be obtained by calling DescribeTrustedAdvisorChecks.

The response contains a TrustedAdvisorCheckRefreshStatus object, which contains these fields:

  • Status. The refresh status of the check: \"none\", \"enqueued\", \"processing\", \"success\", or \"abandoned\".
  • MillisUntilNextRefreshable. The amount of time, in milliseconds, until the check is eligible for refresh.
  • CheckId. The unique identifier for the check.
", + "ResolveCase": "

Takes a CaseId and returns the initial state of the case along with the state of the case after the call to ResolveCase completed.

" + }, + "service": "AWS Support

The AWS Support API reference is intended for programmers who need detailed information about the AWS Support operations and data types. This service enables you to manage your AWS Support cases programmatically. It uses HTTP methods that return results in JSON format.

The AWS Support service also exposes a set of Trusted Advisor features. You can retrieve a list of checks and their descriptions, get check results, specify checks to refresh, and get the refresh status of checks.

The following list describes the AWS Support case management operations:

The following list describes the operations available from the AWS Support service for Trusted Advisor:

For authentication of requests, AWS Support uses Signature Version 4 Signing Process.

See About the AWS Support API in the AWS Support User Guide for information about how to use this service to create and manage your support cases, and how to call Trusted Advisor for results of checks on your resources.

", + "shapes": { + "AddAttachmentsToSetRequest": { + "base": null, + "refs": { + } + }, + "AddAttachmentsToSetResponse": { + "base": "

The ID and expiry time of the attachment set returned by the AddAttachmentsToSet operation.

", + "refs": { + } + }, + "AddCommunicationToCaseRequest": { + "base": "

To be written.

", + "refs": { + } + }, + "AddCommunicationToCaseResponse": { + "base": "

The result of the AddCommunicationToCase operation.

", + "refs": { + } + }, + "AfterTime": { + "base": null, + "refs": { + "DescribeCasesRequest$afterTime": "

The start date for a filtered date search on support case communications. Case communications are available for 12 months after creation.

", + "DescribeCommunicationsRequest$afterTime": "

The start date for a filtered date search on support case communications. Case communications are available for 12 months after creation.

" + } + }, + "Attachment": { + "base": "

An attachment to a case communication. The attachment consists of the file name and the content of the file.

", + "refs": { + "Attachments$member": null, + "DescribeAttachmentResponse$attachment": "

The attachment content and file name.

" + } + }, + "AttachmentDetails": { + "base": "

The file name and ID of an attachment to a case communication. You can use the ID to retrieve the attachment with the DescribeAttachment operation.

", + "refs": { + "AttachmentSet$member": null + } + }, + "AttachmentId": { + "base": null, + "refs": { + "AttachmentDetails$attachmentId": "

The ID of the attachment.

", + "DescribeAttachmentRequest$attachmentId": "

The ID of the attachment to return. Attachment IDs are returned by the DescribeCommunications operation.

" + } + }, + "AttachmentIdNotFound": { + "base": "

An attachment with the specified ID could not be found.

", + "refs": { + } + }, + "AttachmentLimitExceeded": { + "base": "

The limit for the number of attachment sets created in a short period of time has been exceeded.

", + "refs": { + } + }, + "AttachmentSet": { + "base": null, + "refs": { + "Communication$attachmentSet": "

Information about the attachments to the case communication.

" + } + }, + "AttachmentSetExpired": { + "base": "

The expiration time of the attachment set has passed. The set expires 1 hour after it is created.

", + "refs": { + } + }, + "AttachmentSetId": { + "base": null, + "refs": { + "AddAttachmentsToSetRequest$attachmentSetId": "

The ID of the attachment set. If an AttachmentSetId is not specified, a new attachment set is created, and the ID of the set is returned in the response. If an AttachmentSetId is specified, the attachments are added to the specified set, if it exists.

", + "AddAttachmentsToSetResponse$attachmentSetId": "

The ID of the attachment set. If an AttachmentSetId was not specified, a new attachment set is created, and the ID of the set is returned in the response. If an AttachmentSetId was specified, the attachments are added to the specified set, if it exists.

", + "AddCommunicationToCaseRequest$attachmentSetId": "

The ID of a set of one or more attachments for the communication to add to the case. Create the set by calling AddAttachmentsToSet

", + "CreateCaseRequest$attachmentSetId": "

The ID of a set of one or more attachments for the case. Create the set by using AddAttachmentsToSet.

" + } + }, + "AttachmentSetIdNotFound": { + "base": "

An attachment set with the specified ID could not be found.

", + "refs": { + } + }, + "AttachmentSetSizeLimitExceeded": { + "base": "

A limit for the size of an attachment set has been exceeded. The limits are 3 attachments and 5 MB per attachment.

", + "refs": { + } + }, + "Attachments": { + "base": null, + "refs": { + "AddAttachmentsToSetRequest$attachments": "

One or more attachments to add to the set. The limit is 3 attachments per set, and the size limit is 5 MB per attachment.

" + } + }, + "BeforeTime": { + "base": null, + "refs": { + "DescribeCasesRequest$beforeTime": "

The end date for a filtered date search on support case communications. Case communications are available for 12 months after creation.

", + "DescribeCommunicationsRequest$beforeTime": "

The end date for a filtered date search on support case communications. Case communications are available for 12 months after creation.

" + } + }, + "Boolean": { + "base": null, + "refs": { + "TrustedAdvisorCheckSummary$hasFlaggedResources": "

Specifies whether the Trusted Advisor check has flagged resources.

", + "TrustedAdvisorResourceDetail$isSuppressed": "

Specifies whether the AWS resource was ignored by Trusted Advisor because it was marked as suppressed by the user.

" + } + }, + "CaseCreationLimitExceeded": { + "base": "

The case creation limit for the account has been exceeded.

", + "refs": { + } + }, + "CaseDetails": { + "base": "

A JSON-formatted object that contains the metadata for a support case. It is contained the response from a DescribeCases request. CaseDetails contains the following fields:

  1. CaseID. The AWS Support case ID requested or returned in the call. The case ID is an alphanumeric string formatted as shown in this example: case-12345678910-2013-c4c1d2bf33c5cf47.
  2. CategoryCode. The category of problem for the AWS Support case. Corresponds to the CategoryCode values returned by a call to DescribeServices.
  3. DisplayId. The identifier for the case on pages in the AWS Support Center.
  4. Language. The ISO 639-1 code for the language in which AWS provides support. AWS Support currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be passed explicitly for operations that take them.
  5. RecentCommunications. One or more Communication objects. Fields of these objects are Attachments, Body, CaseId, SubmittedBy, and TimeCreated.
  6. NextToken. A resumption point for pagination.
  7. ServiceCode. The identifier for the AWS service that corresponds to the service code defined in the call to DescribeServices.
  8. SeverityCode. The severity code assigned to the case. Contains one of the values returned by the call to DescribeSeverityLevels.
  9. Status. The status of the case in the AWS Support Center.
  10. Subject. The subject line of the case.
  11. SubmittedBy. The email address of the account that submitted the case.
  12. TimeCreated. The time the case was created, in ISO-8601 format.
", + "refs": { + "CaseList$member": null + } + }, + "CaseId": { + "base": null, + "refs": { + "AddCommunicationToCaseRequest$caseId": "

The AWS Support case ID requested or returned in the call. The case ID is an alphanumeric string formatted as shown in this example: case-12345678910-2013-c4c1d2bf33c5cf47

", + "CaseDetails$caseId": "

The AWS Support case ID requested or returned in the call. The case ID is an alphanumeric string formatted as shown in this example: case-12345678910-2013-c4c1d2bf33c5cf47

", + "CaseIdList$member": null, + "Communication$caseId": "

The AWS Support case ID requested or returned in the call. The case ID is an alphanumeric string formatted as shown in this example: case-12345678910-2013-c4c1d2bf33c5cf47

", + "CreateCaseResponse$caseId": "

The AWS Support case ID requested or returned in the call. The case ID is an alphanumeric string formatted as shown in this example: case-12345678910-2013-c4c1d2bf33c5cf47

", + "DescribeCommunicationsRequest$caseId": "

The AWS Support case ID requested or returned in the call. The case ID is an alphanumeric string formatted as shown in this example: case-12345678910-2013-c4c1d2bf33c5cf47

", + "ResolveCaseRequest$caseId": "

The AWS Support case ID requested or returned in the call. The case ID is an alphanumeric string formatted as shown in this example: case-12345678910-2013-c4c1d2bf33c5cf47

" + } + }, + "CaseIdList": { + "base": null, + "refs": { + "DescribeCasesRequest$caseIdList": "

A list of ID numbers of the support cases you want returned. The maximum number of cases is 100.

" + } + }, + "CaseIdNotFound": { + "base": "

The requested CaseId could not be located.

", + "refs": { + } + }, + "CaseList": { + "base": null, + "refs": { + "DescribeCasesResponse$cases": "

The details for the cases that match the request.

" + } + }, + "CaseStatus": { + "base": null, + "refs": { + "ResolveCaseResponse$initialCaseStatus": "

The status of the case when the ResolveCase request was sent.

", + "ResolveCaseResponse$finalCaseStatus": "

The status of the case after the ResolveCase request was processed.

" + } + }, + "Category": { + "base": "

A JSON-formatted name/value pair that represents the category name and category code of the problem, selected from the DescribeServices response for each AWS service.

", + "refs": { + "CategoryList$member": null + } + }, + "CategoryCode": { + "base": null, + "refs": { + "CaseDetails$categoryCode": "

The category of problem for the AWS Support case.

", + "Category$code": "

The category code for the support case.

", + "CreateCaseRequest$categoryCode": "

The category of problem for the AWS Support case.

" + } + }, + "CategoryList": { + "base": null, + "refs": { + "Service$categories": "

A list of categories that describe the type of support issue a case describes. Categories consist of a category name and a category code. Category names and codes are passed to AWS Support when you call CreateCase.

" + } + }, + "CategoryName": { + "base": null, + "refs": { + "Category$name": "

The category name for the support case.

" + } + }, + "CcEmailAddress": { + "base": null, + "refs": { + "CcEmailAddressList$member": null + } + }, + "CcEmailAddressList": { + "base": null, + "refs": { + "AddCommunicationToCaseRequest$ccEmailAddresses": "

The email addresses in the CC line of an email to be added to the support case.

", + "CaseDetails$ccEmailAddresses": "

The email addresses that receive copies of communication about the case.

", + "CreateCaseRequest$ccEmailAddresses": "

A list of email addresses that AWS Support copies on case correspondence.

" + } + }, + "Communication": { + "base": "

A communication associated with an AWS Support case. The communication consists of the case ID, the message body, attachment information, the account email address, and the date and time of the communication.

", + "refs": { + "CommunicationList$member": null + } + }, + "CommunicationBody": { + "base": null, + "refs": { + "AddCommunicationToCaseRequest$communicationBody": "

The body of an email communication to add to the support case.

", + "Communication$body": "

The text of the communication between the customer and AWS Support.

", + "CreateCaseRequest$communicationBody": "

The communication body text when you create an AWS Support case by calling CreateCase.

" + } + }, + "CommunicationList": { + "base": null, + "refs": { + "DescribeCommunicationsResponse$communications": "

The communications for the case.

", + "RecentCaseCommunications$communications": "

The five most recent communications associated with the case.

" + } + }, + "CreateCaseRequest": { + "base": null, + "refs": { + } + }, + "CreateCaseResponse": { + "base": "

The AWS Support case ID returned by a successful completion of the CreateCase operation.

", + "refs": { + } + }, + "Data": { + "base": null, + "refs": { + "Attachment$data": "

The content of the attachment file.

" + } + }, + "DescribeAttachmentLimitExceeded": { + "base": "

The limit for the number of DescribeAttachment requests in a short period of time has been exceeded.

", + "refs": { + } + }, + "DescribeAttachmentRequest": { + "base": null, + "refs": { + } + }, + "DescribeAttachmentResponse": { + "base": "

The content and file name of the attachment returned by the DescribeAttachment operation.

", + "refs": { + } + }, + "DescribeCasesRequest": { + "base": null, + "refs": { + } + }, + "DescribeCasesResponse": { + "base": "

Returns an array of CaseDetails objects and a NextToken that defines a point for pagination in the result set.

", + "refs": { + } + }, + "DescribeCommunicationsRequest": { + "base": null, + "refs": { + } + }, + "DescribeCommunicationsResponse": { + "base": "

The communications returned by the DescribeCommunications operation.

", + "refs": { + } + }, + "DescribeServicesRequest": { + "base": null, + "refs": { + } + }, + "DescribeServicesResponse": { + "base": "

The list of AWS services returned by the DescribeServices operation.

", + "refs": { + } + }, + "DescribeSeverityLevelsRequest": { + "base": null, + "refs": { + } + }, + "DescribeSeverityLevelsResponse": { + "base": "

The list of severity levels returned by the DescribeSeverityLevels operation.

", + "refs": { + } + }, + "DescribeTrustedAdvisorCheckRefreshStatusesRequest": { + "base": null, + "refs": { + } + }, + "DescribeTrustedAdvisorCheckRefreshStatusesResponse": { + "base": "

The statuses of the Trusted Advisor checks returned by the DescribeTrustedAdvisorCheckRefreshStatuses operation.

", + "refs": { + } + }, + "DescribeTrustedAdvisorCheckResultRequest": { + "base": null, + "refs": { + } + }, + "DescribeTrustedAdvisorCheckResultResponse": { + "base": "

The result of the Trusted Advisor check returned by the DescribeTrustedAdvisorCheckResult operation.

", + "refs": { + } + }, + "DescribeTrustedAdvisorCheckSummariesRequest": { + "base": null, + "refs": { + } + }, + "DescribeTrustedAdvisorCheckSummariesResponse": { + "base": "

The summaries of the Trusted Advisor checks returned by the DescribeTrustedAdvisorCheckSummaries operation.

", + "refs": { + } + }, + "DescribeTrustedAdvisorChecksRequest": { + "base": null, + "refs": { + } + }, + "DescribeTrustedAdvisorChecksResponse": { + "base": "

Information about the Trusted Advisor checks returned by the DescribeTrustedAdvisorChecks operation.

", + "refs": { + } + }, + "DisplayId": { + "base": null, + "refs": { + "CaseDetails$displayId": "

The ID displayed for the case in the AWS Support Center. This is a numeric string.

", + "DescribeCasesRequest$displayId": "

The ID displayed for a case in the AWS Support Center user interface.

" + } + }, + "Double": { + "base": null, + "refs": { + "TrustedAdvisorCostOptimizingSummary$estimatedMonthlySavings": "

The estimated monthly savings that might be realized if the recommended actions are taken.

", + "TrustedAdvisorCostOptimizingSummary$estimatedPercentMonthlySavings": "

The estimated percentage of savings that might be realized if the recommended actions are taken.

" + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "AttachmentIdNotFound$message": "

An attachment with the specified ID could not be found.

", + "AttachmentLimitExceeded$message": "

The limit for the number of attachment sets created in a short period of time has been exceeded.

", + "AttachmentSetExpired$message": "

The expiration time of the attachment set has passed. The set expires 1 hour after it is created.

", + "AttachmentSetIdNotFound$message": "

An attachment set with the specified ID could not be found.

", + "AttachmentSetSizeLimitExceeded$message": "

A limit for the size of an attachment set has been exceeded. The limits are 3 attachments and 5 MB per attachment.

", + "CaseCreationLimitExceeded$message": "

An error message that indicates that you have exceeded the number of cases you can have open.

", + "CaseIdNotFound$message": "

The requested CaseId could not be located.

", + "DescribeAttachmentLimitExceeded$message": "

The limit for the number of DescribeAttachment requests in a short period of time has been exceeded.

", + "InternalServerError$message": "

An internal server error occurred.

" + } + }, + "ExpiryTime": { + "base": null, + "refs": { + "AddAttachmentsToSetResponse$expiryTime": "

The time and date when the attachment set expires.

" + } + }, + "FileName": { + "base": null, + "refs": { + "Attachment$fileName": "

The name of the attachment file.

", + "AttachmentDetails$fileName": "

The file name of the attachment.

" + } + }, + "IncludeCommunications": { + "base": null, + "refs": { + "DescribeCasesRequest$includeCommunications": "

Specifies whether communications should be included in the DescribeCases results. The default is true.

" + } + }, + "IncludeResolvedCases": { + "base": null, + "refs": { + "DescribeCasesRequest$includeResolvedCases": "

Specifies whether resolved support cases should be included in the DescribeCases results. The default is false.

" + } + }, + "InternalServerError": { + "base": "

An internal server error occurred.

", + "refs": { + } + }, + "IssueType": { + "base": null, + "refs": { + "CreateCaseRequest$issueType": "

The type of issue for the case. You can specify either \"customer-service\" or \"technical.\" If you do not indicate a value, the default is \"technical.\"

" + } + }, + "Language": { + "base": null, + "refs": { + "CaseDetails$language": "

The ISO 639-1 code for the language in which AWS provides support. AWS Support currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be passed explicitly for operations that take them.

", + "CreateCaseRequest$language": "

The ISO 639-1 code for the language in which AWS provides support. AWS Support currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be passed explicitly for operations that take them.

", + "DescribeCasesRequest$language": "

The ISO 639-1 code for the language in which AWS provides support. AWS Support currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be passed explicitly for operations that take them.

", + "DescribeServicesRequest$language": "

The ISO 639-1 code for the language in which AWS provides support. AWS Support currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be passed explicitly for operations that take them.

", + "DescribeSeverityLevelsRequest$language": "

The ISO 639-1 code for the language in which AWS provides support. AWS Support currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be passed explicitly for operations that take them.

" + } + }, + "Long": { + "base": null, + "refs": { + "TrustedAdvisorCheckRefreshStatus$millisUntilNextRefreshable": "

The amount of time, in milliseconds, until the Trusted Advisor check is eligible for refresh.

", + "TrustedAdvisorResourcesSummary$resourcesProcessed": "

The number of AWS resources that were analyzed by the Trusted Advisor check.

", + "TrustedAdvisorResourcesSummary$resourcesFlagged": "

The number of AWS resources that were flagged (listed) by the Trusted Advisor check.

", + "TrustedAdvisorResourcesSummary$resourcesIgnored": "

The number of AWS resources ignored by Trusted Advisor because information was unavailable.

", + "TrustedAdvisorResourcesSummary$resourcesSuppressed": "

The number of AWS resources ignored by Trusted Advisor because they were marked as suppressed by the user.

" + } + }, + "MaxResults": { + "base": null, + "refs": { + "DescribeCasesRequest$maxResults": "

The maximum number of results to return before paginating.

", + "DescribeCommunicationsRequest$maxResults": "

The maximum number of results to return before paginating.

" + } + }, + "NextToken": { + "base": null, + "refs": { + "DescribeCasesRequest$nextToken": "

A resumption point for pagination.

", + "DescribeCasesResponse$nextToken": "

A resumption point for pagination.

", + "DescribeCommunicationsRequest$nextToken": "

A resumption point for pagination.

", + "DescribeCommunicationsResponse$nextToken": "

A resumption point for pagination.

", + "RecentCaseCommunications$nextToken": "

A resumption point for pagination.

" + } + }, + "RecentCaseCommunications": { + "base": "

The five most recent communications associated with the case.

", + "refs": { + "CaseDetails$recentCommunications": "

The five most recent communications between you and AWS Support Center, including the IDs of any attachments to the communications. Also includes a nextToken that you can use to retrieve earlier communications.

" + } + }, + "RefreshTrustedAdvisorCheckRequest": { + "base": null, + "refs": { + } + }, + "RefreshTrustedAdvisorCheckResponse": { + "base": "

The current refresh status of a Trusted Advisor check.

", + "refs": { + } + }, + "ResolveCaseRequest": { + "base": null, + "refs": { + } + }, + "ResolveCaseResponse": { + "base": "

The status of the case returned by the ResolveCase operation.

", + "refs": { + } + }, + "Result": { + "base": null, + "refs": { + "AddCommunicationToCaseResponse$result": "

True if AddCommunicationToCase succeeds. Otherwise, returns an error.

" + } + }, + "Service": { + "base": "

Information about an AWS service returned by the DescribeServices operation.

", + "refs": { + "ServiceList$member": null + } + }, + "ServiceCode": { + "base": null, + "refs": { + "CaseDetails$serviceCode": "

The code for the AWS service returned by the call to DescribeServices.

", + "CreateCaseRequest$serviceCode": "

The code for the AWS service returned by the call to DescribeServices.

", + "Service$code": "

The code for an AWS service returned by the DescribeServices response. The Name element contains the corresponding friendly name.

", + "ServiceCodeList$member": null + } + }, + "ServiceCodeList": { + "base": null, + "refs": { + "DescribeServicesRequest$serviceCodeList": "

A JSON-formatted list of service codes available for AWS services.

" + } + }, + "ServiceList": { + "base": null, + "refs": { + "DescribeServicesResponse$services": "

A JSON-formatted list of AWS services.

" + } + }, + "ServiceName": { + "base": null, + "refs": { + "Service$name": "

The friendly name for an AWS service. The Code element contains the corresponding code.

" + } + }, + "SeverityCode": { + "base": null, + "refs": { + "CaseDetails$severityCode": "

The code for the severity level returned by the call to DescribeSeverityLevels.

", + "CreateCaseRequest$severityCode": "

The code for the severity level returned by the call to DescribeSeverityLevels.

The availability of severity levels depends on each customer's support subscription. In other words, your subscription may not necessarily require the urgent level of response time.

" + } + }, + "SeverityLevel": { + "base": "

A code and name pair that represent a severity level that can be applied to a support case.

", + "refs": { + "SeverityLevelsList$member": null + } + }, + "SeverityLevelCode": { + "base": null, + "refs": { + "SeverityLevel$code": "

One of four values: \"low,\" \"medium,\" \"high,\" and \"urgent\". These values correspond to response times returned to the caller in SeverityLevel.name.

" + } + }, + "SeverityLevelName": { + "base": null, + "refs": { + "SeverityLevel$name": "

The name of the severity level that corresponds to the severity level code.

" + } + }, + "SeverityLevelsList": { + "base": null, + "refs": { + "DescribeSeverityLevelsResponse$severityLevels": "

The available severity levels for the support case. Available severity levels are defined by your service level agreement with AWS.

" + } + }, + "Status": { + "base": null, + "refs": { + "CaseDetails$status": "

The status of the case.

" + } + }, + "String": { + "base": null, + "refs": { + "DescribeTrustedAdvisorCheckResultRequest$checkId": "

The unique identifier for the Trusted Advisor check.

", + "DescribeTrustedAdvisorCheckResultRequest$language": "

The ISO 639-1 code for the language in which AWS provides support. AWS Support currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be passed explicitly for operations that take them.

", + "DescribeTrustedAdvisorChecksRequest$language": "

The ISO 639-1 code for the language in which AWS provides support. AWS Support currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be passed explicitly for operations that take them.

", + "RefreshTrustedAdvisorCheckRequest$checkId": "

The unique identifier for the Trusted Advisor check.

", + "StringList$member": null, + "TrustedAdvisorCheckDescription$id": "

The unique identifier for the Trusted Advisor check.

", + "TrustedAdvisorCheckDescription$name": "

The display name for the Trusted Advisor check.

", + "TrustedAdvisorCheckDescription$description": "

The description of the Trusted Advisor check, which includes the alert criteria and recommended actions (contains HTML markup).

", + "TrustedAdvisorCheckDescription$category": "

The category of the Trusted Advisor check.

", + "TrustedAdvisorCheckRefreshStatus$checkId": "

The unique identifier for the Trusted Advisor check.

", + "TrustedAdvisorCheckRefreshStatus$status": "

The status of the Trusted Advisor check for which a refresh has been requested: \"none\", \"enqueued\", \"processing\", \"success\", or \"abandoned\".

", + "TrustedAdvisorCheckResult$checkId": "

The unique identifier for the Trusted Advisor check.

", + "TrustedAdvisorCheckResult$timestamp": "

The time of the last refresh of the check.

", + "TrustedAdvisorCheckResult$status": "

The alert status of the check: \"ok\" (green), \"warning\" (yellow), \"error\" (red), or \"not_available\".

", + "TrustedAdvisorCheckSummary$checkId": "

The unique identifier for the Trusted Advisor check.

", + "TrustedAdvisorCheckSummary$timestamp": "

The time of the last refresh of the check.

", + "TrustedAdvisorCheckSummary$status": "

The alert status of the check: \"ok\" (green), \"warning\" (yellow), \"error\" (red), or \"not_available\".

", + "TrustedAdvisorResourceDetail$status": "

The status code for the resource identified in the Trusted Advisor check.

", + "TrustedAdvisorResourceDetail$region": "

The AWS region in which the identified resource is located.

", + "TrustedAdvisorResourceDetail$resourceId": "

The unique identifier for the identified resource.

" + } + }, + "StringList": { + "base": null, + "refs": { + "DescribeTrustedAdvisorCheckRefreshStatusesRequest$checkIds": "

The IDs of the Trusted Advisor checks.

", + "DescribeTrustedAdvisorCheckSummariesRequest$checkIds": "

The IDs of the Trusted Advisor checks.

", + "TrustedAdvisorCheckDescription$metadata": "

The column headings for the data returned by the Trusted Advisor check. The order of the headings corresponds to the order of the data in the Metadata element of the TrustedAdvisorResourceDetail for the check. Metadata contains all the data that is shown in the Excel download, even in those cases where the UI shows just summary data.

", + "TrustedAdvisorResourceDetail$metadata": "

Additional information about the identified resource. The exact metadata and its order can be obtained by inspecting the TrustedAdvisorCheckDescription object returned by the call to DescribeTrustedAdvisorChecks. Metadata contains all the data that is shown in the Excel download, even in those cases where the UI shows just summary data.

" + } + }, + "Subject": { + "base": null, + "refs": { + "CaseDetails$subject": "

The subject line for the case in the AWS Support Center.

", + "CreateCaseRequest$subject": "

The title of the AWS Support case.

" + } + }, + "SubmittedBy": { + "base": null, + "refs": { + "CaseDetails$submittedBy": "

The email address of the account that submitted the case.

", + "Communication$submittedBy": "

The email address of the account that submitted the AWS Support case.

" + } + }, + "TimeCreated": { + "base": null, + "refs": { + "CaseDetails$timeCreated": "

The time that the case was case created in the AWS Support Center.

", + "Communication$timeCreated": "

The time the communication was created.

" + } + }, + "TrustedAdvisorCategorySpecificSummary": { + "base": "

The container for summary information that relates to the category of the Trusted Advisor check.

", + "refs": { + "TrustedAdvisorCheckResult$categorySpecificSummary": "

Summary information that relates to the category of the check. Cost Optimizing is the only category that is currently supported.

", + "TrustedAdvisorCheckSummary$categorySpecificSummary": "

Summary information that relates to the category of the check. Cost Optimizing is the only category that is currently supported.

" + } + }, + "TrustedAdvisorCheckDescription": { + "base": "

The description and metadata for a Trusted Advisor check.

", + "refs": { + "TrustedAdvisorCheckList$member": null + } + }, + "TrustedAdvisorCheckList": { + "base": null, + "refs": { + "DescribeTrustedAdvisorChecksResponse$checks": "

Information about all available Trusted Advisor checks.

" + } + }, + "TrustedAdvisorCheckRefreshStatus": { + "base": "

The refresh status of a Trusted Advisor check.

", + "refs": { + "RefreshTrustedAdvisorCheckResponse$status": "

The current refresh status for a check, including the amount of time until the check is eligible for refresh.

", + "TrustedAdvisorCheckRefreshStatusList$member": null + } + }, + "TrustedAdvisorCheckRefreshStatusList": { + "base": null, + "refs": { + "DescribeTrustedAdvisorCheckRefreshStatusesResponse$statuses": "

The refresh status of the specified Trusted Advisor checks.

" + } + }, + "TrustedAdvisorCheckResult": { + "base": "

The results of a Trusted Advisor check returned by DescribeTrustedAdvisorCheckResult.

", + "refs": { + "DescribeTrustedAdvisorCheckResultResponse$result": "

The detailed results of the Trusted Advisor check.

" + } + }, + "TrustedAdvisorCheckSummary": { + "base": "

A summary of a Trusted Advisor check result, including the alert status, last refresh, and number of resources examined.

", + "refs": { + "TrustedAdvisorCheckSummaryList$member": null + } + }, + "TrustedAdvisorCheckSummaryList": { + "base": null, + "refs": { + "DescribeTrustedAdvisorCheckSummariesResponse$summaries": "

The summary information for the requested Trusted Advisor checks.

" + } + }, + "TrustedAdvisorCostOptimizingSummary": { + "base": "

The estimated cost savings that might be realized if the recommended actions are taken.

", + "refs": { + "TrustedAdvisorCategorySpecificSummary$costOptimizing": "

The summary information about cost savings for a Trusted Advisor check that is in the Cost Optimizing category.

" + } + }, + "TrustedAdvisorResourceDetail": { + "base": "

Contains information about a resource identified by a Trusted Advisor check.

", + "refs": { + "TrustedAdvisorResourceDetailList$member": null + } + }, + "TrustedAdvisorResourceDetailList": { + "base": null, + "refs": { + "TrustedAdvisorCheckResult$flaggedResources": "

The details about each resource listed in the check result.

" + } + }, + "TrustedAdvisorResourcesSummary": { + "base": "

Details about AWS resources that were analyzed in a call to Trusted Advisor DescribeTrustedAdvisorCheckSummaries.

", + "refs": { + "TrustedAdvisorCheckResult$resourcesSummary": null, + "TrustedAdvisorCheckSummary$resourcesSummary": null + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/support/2013-04-15/paginators-1.json b/lib/aws-sdk/Aws/data/support/2013-04-15/paginators-1.json new file mode 100644 index 0000000..1368630 --- /dev/null +++ b/lib/aws-sdk/Aws/data/support/2013-04-15/paginators-1.json @@ -0,0 +1,25 @@ +{ + "pagination": { + "DescribeCases": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "cases" + }, + "DescribeCommunications": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "communications" + }, + "DescribeServices": { + "result_key": "services" + }, + "DescribeTrustedAdvisorCheckRefreshStatuses": { + "result_key": "statuses" + }, + "DescribeTrustedAdvisorCheckSummaries": { + "result_key": "summaries" + } + } +} diff --git a/lib/aws-sdk/Aws/data/swf/2012-01-25/api-2.json b/lib/aws-sdk/Aws/data/swf/2012-01-25/api-2.json new file mode 100644 index 0000000..561adb6 --- /dev/null +++ b/lib/aws-sdk/Aws/data/swf/2012-01-25/api-2.json @@ -0,0 +1,2675 @@ +{ + "metadata":{ + "apiVersion":"2012-01-25", + "endpointPrefix":"swf", + "jsonVersion":"1.0", + "serviceAbbreviation":"Amazon SWF", + "serviceFullName":"Amazon Simple Workflow Service", + "signatureVersion":"v4", + "targetPrefix":"SimpleWorkflowService", + "timestampFormat":"unixTimestamp", + "protocol":"json" + }, + "operations":{ + "CountClosedWorkflowExecutions":{ + "name":"CountClosedWorkflowExecutions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CountClosedWorkflowExecutionsInput"}, + "output":{"shape":"WorkflowExecutionCount"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "CountOpenWorkflowExecutions":{ + "name":"CountOpenWorkflowExecutions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CountOpenWorkflowExecutionsInput"}, + "output":{"shape":"WorkflowExecutionCount"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "CountPendingActivityTasks":{ + "name":"CountPendingActivityTasks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CountPendingActivityTasksInput"}, + "output":{"shape":"PendingTaskCount"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "CountPendingDecisionTasks":{ + "name":"CountPendingDecisionTasks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CountPendingDecisionTasksInput"}, + "output":{"shape":"PendingTaskCount"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "DeprecateActivityType":{ + "name":"DeprecateActivityType", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeprecateActivityTypeInput"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"TypeDeprecatedFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "DeprecateDomain":{ + "name":"DeprecateDomain", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeprecateDomainInput"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"DomainDeprecatedFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "DeprecateWorkflowType":{ + "name":"DeprecateWorkflowType", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeprecateWorkflowTypeInput"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"TypeDeprecatedFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "DescribeActivityType":{ + "name":"DescribeActivityType", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeActivityTypeInput"}, + "output":{"shape":"ActivityTypeDetail"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "DescribeDomain":{ + "name":"DescribeDomain", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeDomainInput"}, + "output":{"shape":"DomainDetail"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "DescribeWorkflowExecution":{ + "name":"DescribeWorkflowExecution", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeWorkflowExecutionInput"}, + "output":{"shape":"WorkflowExecutionDetail"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "DescribeWorkflowType":{ + "name":"DescribeWorkflowType", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeWorkflowTypeInput"}, + "output":{"shape":"WorkflowTypeDetail"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "GetWorkflowExecutionHistory":{ + "name":"GetWorkflowExecutionHistory", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetWorkflowExecutionHistoryInput"}, + "output":{"shape":"History"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "ListActivityTypes":{ + "name":"ListActivityTypes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListActivityTypesInput"}, + "output":{"shape":"ActivityTypeInfos"}, + "errors":[ + { + "shape":"OperationNotPermittedFault", + "exception":true + }, + { + "shape":"UnknownResourceFault", + "exception":true + } + ] + }, + "ListClosedWorkflowExecutions":{ + "name":"ListClosedWorkflowExecutions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListClosedWorkflowExecutionsInput"}, + "output":{"shape":"WorkflowExecutionInfos"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "ListDomains":{ + "name":"ListDomains", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDomainsInput"}, + "output":{"shape":"DomainInfos"}, + "errors":[ + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "ListOpenWorkflowExecutions":{ + "name":"ListOpenWorkflowExecutions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListOpenWorkflowExecutionsInput"}, + "output":{"shape":"WorkflowExecutionInfos"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "ListWorkflowTypes":{ + "name":"ListWorkflowTypes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListWorkflowTypesInput"}, + "output":{"shape":"WorkflowTypeInfos"}, + "errors":[ + { + "shape":"OperationNotPermittedFault", + "exception":true + }, + { + "shape":"UnknownResourceFault", + "exception":true + } + ] + }, + "PollForActivityTask":{ + "name":"PollForActivityTask", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PollForActivityTaskInput"}, + "output":{"shape":"ActivityTask"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + }, + { + "shape":"LimitExceededFault", + "exception":true + } + ] + }, + "PollForDecisionTask":{ + "name":"PollForDecisionTask", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PollForDecisionTaskInput"}, + "output":{"shape":"DecisionTask"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + }, + { + "shape":"LimitExceededFault", + "exception":true + } + ] + }, + "RecordActivityTaskHeartbeat":{ + "name":"RecordActivityTaskHeartbeat", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RecordActivityTaskHeartbeatInput"}, + "output":{"shape":"ActivityTaskStatus"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "RegisterActivityType":{ + "name":"RegisterActivityType", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RegisterActivityTypeInput"}, + "errors":[ + { + "shape":"TypeAlreadyExistsFault", + "exception":true + }, + { + "shape":"LimitExceededFault", + "exception":true + }, + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "RegisterDomain":{ + "name":"RegisterDomain", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RegisterDomainInput"}, + "errors":[ + { + "shape":"DomainAlreadyExistsFault", + "exception":true + }, + { + "shape":"LimitExceededFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "RegisterWorkflowType":{ + "name":"RegisterWorkflowType", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RegisterWorkflowTypeInput"}, + "errors":[ + { + "shape":"TypeAlreadyExistsFault", + "exception":true + }, + { + "shape":"LimitExceededFault", + "exception":true + }, + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "RequestCancelWorkflowExecution":{ + "name":"RequestCancelWorkflowExecution", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RequestCancelWorkflowExecutionInput"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "RespondActivityTaskCanceled":{ + "name":"RespondActivityTaskCanceled", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RespondActivityTaskCanceledInput"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "RespondActivityTaskCompleted":{ + "name":"RespondActivityTaskCompleted", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RespondActivityTaskCompletedInput"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "RespondActivityTaskFailed":{ + "name":"RespondActivityTaskFailed", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RespondActivityTaskFailedInput"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "RespondDecisionTaskCompleted":{ + "name":"RespondDecisionTaskCompleted", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RespondDecisionTaskCompletedInput"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "SignalWorkflowExecution":{ + "name":"SignalWorkflowExecution", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SignalWorkflowExecutionInput"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + }, + "StartWorkflowExecution":{ + "name":"StartWorkflowExecution", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartWorkflowExecutionInput"}, + "output":{"shape":"Run"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"TypeDeprecatedFault", + "exception":true + }, + { + "shape":"WorkflowExecutionAlreadyStartedFault", + "exception":true + }, + { + "shape":"LimitExceededFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + }, + { + "shape":"DefaultUndefinedFault", + "exception":true + } + ] + }, + "TerminateWorkflowExecution":{ + "name":"TerminateWorkflowExecution", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TerminateWorkflowExecutionInput"}, + "errors":[ + { + "shape":"UnknownResourceFault", + "exception":true + }, + { + "shape":"OperationNotPermittedFault", + "exception":true + } + ] + } + }, + "shapes":{ + "ActivityId":{ + "type":"string", + "min":1, + "max":256 + }, + "ActivityTask":{ + "type":"structure", + "required":[ + "taskToken", + "activityId", + "startedEventId", + "workflowExecution", + "activityType" + ], + "members":{ + "taskToken":{"shape":"TaskToken"}, + "activityId":{"shape":"ActivityId"}, + "startedEventId":{"shape":"EventId"}, + "workflowExecution":{"shape":"WorkflowExecution"}, + "activityType":{"shape":"ActivityType"}, + "input":{"shape":"Data"} + } + }, + "ActivityTaskCancelRequestedEventAttributes":{ + "type":"structure", + "required":[ + "decisionTaskCompletedEventId", + "activityId" + ], + "members":{ + "decisionTaskCompletedEventId":{"shape":"EventId"}, + "activityId":{"shape":"ActivityId"} + } + }, + "ActivityTaskCanceledEventAttributes":{ + "type":"structure", + "required":[ + "scheduledEventId", + "startedEventId" + ], + "members":{ + "details":{"shape":"Data"}, + "scheduledEventId":{"shape":"EventId"}, + "startedEventId":{"shape":"EventId"}, + "latestCancelRequestedEventId":{"shape":"EventId"} + } + }, + "ActivityTaskCompletedEventAttributes":{ + "type":"structure", + "required":[ + "scheduledEventId", + "startedEventId" + ], + "members":{ + "result":{"shape":"Data"}, + "scheduledEventId":{"shape":"EventId"}, + "startedEventId":{"shape":"EventId"} + } + }, + "ActivityTaskFailedEventAttributes":{ + "type":"structure", + "required":[ + "scheduledEventId", + "startedEventId" + ], + "members":{ + "reason":{"shape":"FailureReason"}, + "details":{"shape":"Data"}, + "scheduledEventId":{"shape":"EventId"}, + "startedEventId":{"shape":"EventId"} + } + }, + "ActivityTaskScheduledEventAttributes":{ + "type":"structure", + "required":[ + "activityType", + "activityId", + "taskList", + "decisionTaskCompletedEventId" + ], + "members":{ + "activityType":{"shape":"ActivityType"}, + "activityId":{"shape":"ActivityId"}, + "input":{"shape":"Data"}, + "control":{"shape":"Data"}, + "scheduleToStartTimeout":{"shape":"DurationInSecondsOptional"}, + "scheduleToCloseTimeout":{"shape":"DurationInSecondsOptional"}, + "startToCloseTimeout":{"shape":"DurationInSecondsOptional"}, + "taskList":{"shape":"TaskList"}, + "taskPriority":{"shape":"TaskPriority"}, + "decisionTaskCompletedEventId":{"shape":"EventId"}, + "heartbeatTimeout":{"shape":"DurationInSecondsOptional"} + } + }, + "ActivityTaskStartedEventAttributes":{ + "type":"structure", + "required":["scheduledEventId"], + "members":{ + "identity":{"shape":"Identity"}, + "scheduledEventId":{"shape":"EventId"} + } + }, + "ActivityTaskStatus":{ + "type":"structure", + "required":["cancelRequested"], + "members":{ + "cancelRequested":{"shape":"Canceled"} + } + }, + "ActivityTaskTimedOutEventAttributes":{ + "type":"structure", + "required":[ + "timeoutType", + "scheduledEventId", + "startedEventId" + ], + "members":{ + "timeoutType":{"shape":"ActivityTaskTimeoutType"}, + "scheduledEventId":{"shape":"EventId"}, + "startedEventId":{"shape":"EventId"}, + "details":{"shape":"LimitedData"} + } + }, + "ActivityTaskTimeoutType":{ + "type":"string", + "enum":[ + "START_TO_CLOSE", + "SCHEDULE_TO_START", + "SCHEDULE_TO_CLOSE", + "HEARTBEAT" + ] + }, + "ActivityType":{ + "type":"structure", + "required":[ + "name", + "version" + ], + "members":{ + "name":{"shape":"Name"}, + "version":{"shape":"Version"} + } + }, + "ActivityTypeConfiguration":{ + "type":"structure", + "members":{ + "defaultTaskStartToCloseTimeout":{"shape":"DurationInSecondsOptional"}, + "defaultTaskHeartbeatTimeout":{"shape":"DurationInSecondsOptional"}, + "defaultTaskList":{"shape":"TaskList"}, + "defaultTaskPriority":{"shape":"TaskPriority"}, + "defaultTaskScheduleToStartTimeout":{"shape":"DurationInSecondsOptional"}, + "defaultTaskScheduleToCloseTimeout":{"shape":"DurationInSecondsOptional"} + } + }, + "ActivityTypeDetail":{ + "type":"structure", + "required":[ + "typeInfo", + "configuration" + ], + "members":{ + "typeInfo":{"shape":"ActivityTypeInfo"}, + "configuration":{"shape":"ActivityTypeConfiguration"} + } + }, + "ActivityTypeInfo":{ + "type":"structure", + "required":[ + "activityType", + "status", + "creationDate" + ], + "members":{ + "activityType":{"shape":"ActivityType"}, + "status":{"shape":"RegistrationStatus"}, + "description":{"shape":"Description"}, + "creationDate":{"shape":"Timestamp"}, + "deprecationDate":{"shape":"Timestamp"} + } + }, + "ActivityTypeInfoList":{ + "type":"list", + "member":{"shape":"ActivityTypeInfo"} + }, + "ActivityTypeInfos":{ + "type":"structure", + "required":["typeInfos"], + "members":{ + "typeInfos":{"shape":"ActivityTypeInfoList"}, + "nextPageToken":{"shape":"PageToken"} + } + }, + "CancelTimerDecisionAttributes":{ + "type":"structure", + "required":["timerId"], + "members":{ + "timerId":{"shape":"TimerId"} + } + }, + "CancelTimerFailedCause":{ + "type":"string", + "enum":[ + "TIMER_ID_UNKNOWN", + "OPERATION_NOT_PERMITTED" + ] + }, + "CancelTimerFailedEventAttributes":{ + "type":"structure", + "required":[ + "timerId", + "cause", + "decisionTaskCompletedEventId" + ], + "members":{ + "timerId":{"shape":"TimerId"}, + "cause":{"shape":"CancelTimerFailedCause"}, + "decisionTaskCompletedEventId":{"shape":"EventId"} + } + }, + "CancelWorkflowExecutionDecisionAttributes":{ + "type":"structure", + "members":{ + "details":{"shape":"Data"} + } + }, + "CancelWorkflowExecutionFailedCause":{ + "type":"string", + "enum":[ + "UNHANDLED_DECISION", + "OPERATION_NOT_PERMITTED" + ] + }, + "CancelWorkflowExecutionFailedEventAttributes":{ + "type":"structure", + "required":[ + "cause", + "decisionTaskCompletedEventId" + ], + "members":{ + "cause":{"shape":"CancelWorkflowExecutionFailedCause"}, + "decisionTaskCompletedEventId":{"shape":"EventId"} + } + }, + "Canceled":{"type":"boolean"}, + "ChildPolicy":{ + "type":"string", + "enum":[ + "TERMINATE", + "REQUEST_CANCEL", + "ABANDON" + ] + }, + "ChildWorkflowExecutionCanceledEventAttributes":{ + "type":"structure", + "required":[ + "workflowExecution", + "workflowType", + "initiatedEventId", + "startedEventId" + ], + "members":{ + "workflowExecution":{"shape":"WorkflowExecution"}, + "workflowType":{"shape":"WorkflowType"}, + "details":{"shape":"Data"}, + "initiatedEventId":{"shape":"EventId"}, + "startedEventId":{"shape":"EventId"} + } + }, + "ChildWorkflowExecutionCompletedEventAttributes":{ + "type":"structure", + "required":[ + "workflowExecution", + "workflowType", + "initiatedEventId", + "startedEventId" + ], + "members":{ + "workflowExecution":{"shape":"WorkflowExecution"}, + "workflowType":{"shape":"WorkflowType"}, + "result":{"shape":"Data"}, + "initiatedEventId":{"shape":"EventId"}, + "startedEventId":{"shape":"EventId"} + } + }, + "ChildWorkflowExecutionFailedEventAttributes":{ + "type":"structure", + "required":[ + "workflowExecution", + "workflowType", + "initiatedEventId", + "startedEventId" + ], + "members":{ + "workflowExecution":{"shape":"WorkflowExecution"}, + "workflowType":{"shape":"WorkflowType"}, + "reason":{"shape":"FailureReason"}, + "details":{"shape":"Data"}, + "initiatedEventId":{"shape":"EventId"}, + "startedEventId":{"shape":"EventId"} + } + }, + "ChildWorkflowExecutionStartedEventAttributes":{ + "type":"structure", + "required":[ + "workflowExecution", + "workflowType", + "initiatedEventId" + ], + "members":{ + "workflowExecution":{"shape":"WorkflowExecution"}, + "workflowType":{"shape":"WorkflowType"}, + "initiatedEventId":{"shape":"EventId"} + } + }, + "ChildWorkflowExecutionTerminatedEventAttributes":{ + "type":"structure", + "required":[ + "workflowExecution", + "workflowType", + "initiatedEventId", + "startedEventId" + ], + "members":{ + "workflowExecution":{"shape":"WorkflowExecution"}, + "workflowType":{"shape":"WorkflowType"}, + "initiatedEventId":{"shape":"EventId"}, + "startedEventId":{"shape":"EventId"} + } + }, + "ChildWorkflowExecutionTimedOutEventAttributes":{ + "type":"structure", + "required":[ + "workflowExecution", + "workflowType", + "timeoutType", + "initiatedEventId", + "startedEventId" + ], + "members":{ + "workflowExecution":{"shape":"WorkflowExecution"}, + "workflowType":{"shape":"WorkflowType"}, + "timeoutType":{"shape":"WorkflowExecutionTimeoutType"}, + "initiatedEventId":{"shape":"EventId"}, + "startedEventId":{"shape":"EventId"} + } + }, + "CloseStatus":{ + "type":"string", + "enum":[ + "COMPLETED", + "FAILED", + "CANCELED", + "TERMINATED", + "CONTINUED_AS_NEW", + "TIMED_OUT" + ] + }, + "CloseStatusFilter":{ + "type":"structure", + "required":["status"], + "members":{ + "status":{"shape":"CloseStatus"} + } + }, + "CompleteWorkflowExecutionDecisionAttributes":{ + "type":"structure", + "members":{ + "result":{"shape":"Data"} + } + }, + "CompleteWorkflowExecutionFailedCause":{ + "type":"string", + "enum":[ + "UNHANDLED_DECISION", + "OPERATION_NOT_PERMITTED" + ] + }, + "CompleteWorkflowExecutionFailedEventAttributes":{ + "type":"structure", + "required":[ + "cause", + "decisionTaskCompletedEventId" + ], + "members":{ + "cause":{"shape":"CompleteWorkflowExecutionFailedCause"}, + "decisionTaskCompletedEventId":{"shape":"EventId"} + } + }, + "ContinueAsNewWorkflowExecutionDecisionAttributes":{ + "type":"structure", + "members":{ + "input":{"shape":"Data"}, + "executionStartToCloseTimeout":{"shape":"DurationInSecondsOptional"}, + "taskList":{"shape":"TaskList"}, + "taskPriority":{"shape":"TaskPriority"}, + "taskStartToCloseTimeout":{"shape":"DurationInSecondsOptional"}, + "childPolicy":{"shape":"ChildPolicy"}, + "tagList":{"shape":"TagList"}, + "workflowTypeVersion":{"shape":"Version"} + } + }, + "ContinueAsNewWorkflowExecutionFailedCause":{ + "type":"string", + "enum":[ + "UNHANDLED_DECISION", + "WORKFLOW_TYPE_DEPRECATED", + "WORKFLOW_TYPE_DOES_NOT_EXIST", + "DEFAULT_EXECUTION_START_TO_CLOSE_TIMEOUT_UNDEFINED", + "DEFAULT_TASK_START_TO_CLOSE_TIMEOUT_UNDEFINED", + "DEFAULT_TASK_LIST_UNDEFINED", + "DEFAULT_CHILD_POLICY_UNDEFINED", + "CONTINUE_AS_NEW_WORKFLOW_EXECUTION_RATE_EXCEEDED", + "OPERATION_NOT_PERMITTED" + ] + }, + "ContinueAsNewWorkflowExecutionFailedEventAttributes":{ + "type":"structure", + "required":[ + "cause", + "decisionTaskCompletedEventId" + ], + "members":{ + "cause":{"shape":"ContinueAsNewWorkflowExecutionFailedCause"}, + "decisionTaskCompletedEventId":{"shape":"EventId"} + } + }, + "Count":{ + "type":"integer", + "min":0 + }, + "CountClosedWorkflowExecutionsInput":{ + "type":"structure", + "required":["domain"], + "members":{ + "domain":{"shape":"DomainName"}, + "startTimeFilter":{"shape":"ExecutionTimeFilter"}, + "closeTimeFilter":{"shape":"ExecutionTimeFilter"}, + "executionFilter":{"shape":"WorkflowExecutionFilter"}, + "typeFilter":{"shape":"WorkflowTypeFilter"}, + "tagFilter":{"shape":"TagFilter"}, + "closeStatusFilter":{"shape":"CloseStatusFilter"} + } + }, + "CountOpenWorkflowExecutionsInput":{ + "type":"structure", + "required":[ + "domain", + "startTimeFilter" + ], + "members":{ + "domain":{"shape":"DomainName"}, + "startTimeFilter":{"shape":"ExecutionTimeFilter"}, + "typeFilter":{"shape":"WorkflowTypeFilter"}, + "tagFilter":{"shape":"TagFilter"}, + "executionFilter":{"shape":"WorkflowExecutionFilter"} + } + }, + "CountPendingActivityTasksInput":{ + "type":"structure", + "required":[ + "domain", + "taskList" + ], + "members":{ + "domain":{"shape":"DomainName"}, + "taskList":{"shape":"TaskList"} + } + }, + "CountPendingDecisionTasksInput":{ + "type":"structure", + "required":[ + "domain", + "taskList" + ], + "members":{ + "domain":{"shape":"DomainName"}, + "taskList":{"shape":"TaskList"} + } + }, + "Data":{ + "type":"string", + "max":32768 + }, + "Decision":{ + "type":"structure", + "required":["decisionType"], + "members":{ + "decisionType":{"shape":"DecisionType"}, + "scheduleActivityTaskDecisionAttributes":{"shape":"ScheduleActivityTaskDecisionAttributes"}, + "requestCancelActivityTaskDecisionAttributes":{"shape":"RequestCancelActivityTaskDecisionAttributes"}, + "completeWorkflowExecutionDecisionAttributes":{"shape":"CompleteWorkflowExecutionDecisionAttributes"}, + "failWorkflowExecutionDecisionAttributes":{"shape":"FailWorkflowExecutionDecisionAttributes"}, + "cancelWorkflowExecutionDecisionAttributes":{"shape":"CancelWorkflowExecutionDecisionAttributes"}, + "continueAsNewWorkflowExecutionDecisionAttributes":{"shape":"ContinueAsNewWorkflowExecutionDecisionAttributes"}, + "recordMarkerDecisionAttributes":{"shape":"RecordMarkerDecisionAttributes"}, + "startTimerDecisionAttributes":{"shape":"StartTimerDecisionAttributes"}, + "cancelTimerDecisionAttributes":{"shape":"CancelTimerDecisionAttributes"}, + "signalExternalWorkflowExecutionDecisionAttributes":{"shape":"SignalExternalWorkflowExecutionDecisionAttributes"}, + "requestCancelExternalWorkflowExecutionDecisionAttributes":{"shape":"RequestCancelExternalWorkflowExecutionDecisionAttributes"}, + "startChildWorkflowExecutionDecisionAttributes":{"shape":"StartChildWorkflowExecutionDecisionAttributes"} + } + }, + "DecisionList":{ + "type":"list", + "member":{"shape":"Decision"} + }, + "DecisionTask":{ + "type":"structure", + "required":[ + "taskToken", + "startedEventId", + "workflowExecution", + "workflowType", + "events" + ], + "members":{ + "taskToken":{"shape":"TaskToken"}, + "startedEventId":{"shape":"EventId"}, + "workflowExecution":{"shape":"WorkflowExecution"}, + "workflowType":{"shape":"WorkflowType"}, + "events":{"shape":"HistoryEventList"}, + "nextPageToken":{"shape":"PageToken"}, + "previousStartedEventId":{"shape":"EventId"} + } + }, + "DecisionTaskCompletedEventAttributes":{ + "type":"structure", + "required":[ + "scheduledEventId", + "startedEventId" + ], + "members":{ + "executionContext":{"shape":"Data"}, + "scheduledEventId":{"shape":"EventId"}, + "startedEventId":{"shape":"EventId"} + } + }, + "DecisionTaskScheduledEventAttributes":{ + "type":"structure", + "required":["taskList"], + "members":{ + "taskList":{"shape":"TaskList"}, + "taskPriority":{"shape":"TaskPriority"}, + "startToCloseTimeout":{"shape":"DurationInSecondsOptional"} + } + }, + "DecisionTaskStartedEventAttributes":{ + "type":"structure", + "required":["scheduledEventId"], + "members":{ + "identity":{"shape":"Identity"}, + "scheduledEventId":{"shape":"EventId"} + } + }, + "DecisionTaskTimedOutEventAttributes":{ + "type":"structure", + "required":[ + "timeoutType", + "scheduledEventId", + "startedEventId" + ], + "members":{ + "timeoutType":{"shape":"DecisionTaskTimeoutType"}, + "scheduledEventId":{"shape":"EventId"}, + "startedEventId":{"shape":"EventId"} + } + }, + "DecisionTaskTimeoutType":{ + "type":"string", + "enum":["START_TO_CLOSE"] + }, + "DecisionType":{ + "type":"string", + "enum":[ + "ScheduleActivityTask", + "RequestCancelActivityTask", + "CompleteWorkflowExecution", + "FailWorkflowExecution", + "CancelWorkflowExecution", + "ContinueAsNewWorkflowExecution", + "RecordMarker", + "StartTimer", + "CancelTimer", + "SignalExternalWorkflowExecution", + "RequestCancelExternalWorkflowExecution", + "StartChildWorkflowExecution" + ] + }, + "DefaultUndefinedFault":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "DeprecateActivityTypeInput":{ + "type":"structure", + "required":[ + "domain", + "activityType" + ], + "members":{ + "domain":{"shape":"DomainName"}, + "activityType":{"shape":"ActivityType"} + } + }, + "DeprecateDomainInput":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{"shape":"DomainName"} + } + }, + "DeprecateWorkflowTypeInput":{ + "type":"structure", + "required":[ + "domain", + "workflowType" + ], + "members":{ + "domain":{"shape":"DomainName"}, + "workflowType":{"shape":"WorkflowType"} + } + }, + "DescribeActivityTypeInput":{ + "type":"structure", + "required":[ + "domain", + "activityType" + ], + "members":{ + "domain":{"shape":"DomainName"}, + "activityType":{"shape":"ActivityType"} + } + }, + "DescribeDomainInput":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{"shape":"DomainName"} + } + }, + "DescribeWorkflowExecutionInput":{ + "type":"structure", + "required":[ + "domain", + "execution" + ], + "members":{ + "domain":{"shape":"DomainName"}, + "execution":{"shape":"WorkflowExecution"} + } + }, + "DescribeWorkflowTypeInput":{ + "type":"structure", + "required":[ + "domain", + "workflowType" + ], + "members":{ + "domain":{"shape":"DomainName"}, + "workflowType":{"shape":"WorkflowType"} + } + }, + "Description":{ + "type":"string", + "max":1024 + }, + "DomainAlreadyExistsFault":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "DomainConfiguration":{ + "type":"structure", + "required":["workflowExecutionRetentionPeriodInDays"], + "members":{ + "workflowExecutionRetentionPeriodInDays":{"shape":"DurationInDays"} + } + }, + "DomainDeprecatedFault":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "DomainDetail":{ + "type":"structure", + "required":[ + "domainInfo", + "configuration" + ], + "members":{ + "domainInfo":{"shape":"DomainInfo"}, + "configuration":{"shape":"DomainConfiguration"} + } + }, + "DomainInfo":{ + "type":"structure", + "required":[ + "name", + "status" + ], + "members":{ + "name":{"shape":"DomainName"}, + "status":{"shape":"RegistrationStatus"}, + "description":{"shape":"Description"} + } + }, + "DomainInfoList":{ + "type":"list", + "member":{"shape":"DomainInfo"} + }, + "DomainInfos":{ + "type":"structure", + "required":["domainInfos"], + "members":{ + "domainInfos":{"shape":"DomainInfoList"}, + "nextPageToken":{"shape":"PageToken"} + } + }, + "DomainName":{ + "type":"string", + "min":1, + "max":256 + }, + "DurationInDays":{ + "type":"string", + "min":1, + "max":8 + }, + "DurationInSeconds":{ + "type":"string", + "min":1, + "max":8 + }, + "DurationInSecondsOptional":{ + "type":"string", + "max":8 + }, + "ErrorMessage":{"type":"string"}, + "EventId":{"type":"long"}, + "EventType":{ + "type":"string", + "enum":[ + "WorkflowExecutionStarted", + "WorkflowExecutionCancelRequested", + "WorkflowExecutionCompleted", + "CompleteWorkflowExecutionFailed", + "WorkflowExecutionFailed", + "FailWorkflowExecutionFailed", + "WorkflowExecutionTimedOut", + "WorkflowExecutionCanceled", + "CancelWorkflowExecutionFailed", + "WorkflowExecutionContinuedAsNew", + "ContinueAsNewWorkflowExecutionFailed", + "WorkflowExecutionTerminated", + "DecisionTaskScheduled", + "DecisionTaskStarted", + "DecisionTaskCompleted", + "DecisionTaskTimedOut", + "ActivityTaskScheduled", + "ScheduleActivityTaskFailed", + "ActivityTaskStarted", + "ActivityTaskCompleted", + "ActivityTaskFailed", + "ActivityTaskTimedOut", + "ActivityTaskCanceled", + "ActivityTaskCancelRequested", + "RequestCancelActivityTaskFailed", + "WorkflowExecutionSignaled", + "MarkerRecorded", + "RecordMarkerFailed", + "TimerStarted", + "StartTimerFailed", + "TimerFired", + "TimerCanceled", + "CancelTimerFailed", + "StartChildWorkflowExecutionInitiated", + "StartChildWorkflowExecutionFailed", + "ChildWorkflowExecutionStarted", + "ChildWorkflowExecutionCompleted", + "ChildWorkflowExecutionFailed", + "ChildWorkflowExecutionTimedOut", + "ChildWorkflowExecutionCanceled", + "ChildWorkflowExecutionTerminated", + "SignalExternalWorkflowExecutionInitiated", + "SignalExternalWorkflowExecutionFailed", + "ExternalWorkflowExecutionSignaled", + "RequestCancelExternalWorkflowExecutionInitiated", + "RequestCancelExternalWorkflowExecutionFailed", + "ExternalWorkflowExecutionCancelRequested" + ] + }, + "ExecutionStatus":{ + "type":"string", + "enum":[ + "OPEN", + "CLOSED" + ] + }, + "ExecutionTimeFilter":{ + "type":"structure", + "required":["oldestDate"], + "members":{ + "oldestDate":{"shape":"Timestamp"}, + "latestDate":{"shape":"Timestamp"} + } + }, + "ExternalWorkflowExecutionCancelRequestedEventAttributes":{ + "type":"structure", + "required":[ + "workflowExecution", + "initiatedEventId" + ], + "members":{ + "workflowExecution":{"shape":"WorkflowExecution"}, + "initiatedEventId":{"shape":"EventId"} + } + }, + "ExternalWorkflowExecutionSignaledEventAttributes":{ + "type":"structure", + "required":[ + "workflowExecution", + "initiatedEventId" + ], + "members":{ + "workflowExecution":{"shape":"WorkflowExecution"}, + "initiatedEventId":{"shape":"EventId"} + } + }, + "FailWorkflowExecutionDecisionAttributes":{ + "type":"structure", + "members":{ + "reason":{"shape":"FailureReason"}, + "details":{"shape":"Data"} + } + }, + "FailWorkflowExecutionFailedCause":{ + "type":"string", + "enum":[ + "UNHANDLED_DECISION", + "OPERATION_NOT_PERMITTED" + ] + }, + "FailWorkflowExecutionFailedEventAttributes":{ + "type":"structure", + "required":[ + "cause", + "decisionTaskCompletedEventId" + ], + "members":{ + "cause":{"shape":"FailWorkflowExecutionFailedCause"}, + "decisionTaskCompletedEventId":{"shape":"EventId"} + } + }, + "FailureReason":{ + "type":"string", + "max":256 + }, + "GetWorkflowExecutionHistoryInput":{ + "type":"structure", + "required":[ + "domain", + "execution" + ], + "members":{ + "domain":{"shape":"DomainName"}, + "execution":{"shape":"WorkflowExecution"}, + "nextPageToken":{"shape":"PageToken"}, + "maximumPageSize":{"shape":"PageSize"}, + "reverseOrder":{"shape":"ReverseOrder"} + } + }, + "History":{ + "type":"structure", + "required":["events"], + "members":{ + "events":{"shape":"HistoryEventList"}, + "nextPageToken":{"shape":"PageToken"} + } + }, + "HistoryEvent":{ + "type":"structure", + "required":[ + "eventTimestamp", + "eventType", + "eventId" + ], + "members":{ + "eventTimestamp":{"shape":"Timestamp"}, + "eventType":{"shape":"EventType"}, + "eventId":{"shape":"EventId"}, + "workflowExecutionStartedEventAttributes":{"shape":"WorkflowExecutionStartedEventAttributes"}, + "workflowExecutionCompletedEventAttributes":{"shape":"WorkflowExecutionCompletedEventAttributes"}, + "completeWorkflowExecutionFailedEventAttributes":{"shape":"CompleteWorkflowExecutionFailedEventAttributes"}, + "workflowExecutionFailedEventAttributes":{"shape":"WorkflowExecutionFailedEventAttributes"}, + "failWorkflowExecutionFailedEventAttributes":{"shape":"FailWorkflowExecutionFailedEventAttributes"}, + "workflowExecutionTimedOutEventAttributes":{"shape":"WorkflowExecutionTimedOutEventAttributes"}, + "workflowExecutionCanceledEventAttributes":{"shape":"WorkflowExecutionCanceledEventAttributes"}, + "cancelWorkflowExecutionFailedEventAttributes":{"shape":"CancelWorkflowExecutionFailedEventAttributes"}, + "workflowExecutionContinuedAsNewEventAttributes":{"shape":"WorkflowExecutionContinuedAsNewEventAttributes"}, + "continueAsNewWorkflowExecutionFailedEventAttributes":{"shape":"ContinueAsNewWorkflowExecutionFailedEventAttributes"}, + "workflowExecutionTerminatedEventAttributes":{"shape":"WorkflowExecutionTerminatedEventAttributes"}, + "workflowExecutionCancelRequestedEventAttributes":{"shape":"WorkflowExecutionCancelRequestedEventAttributes"}, + "decisionTaskScheduledEventAttributes":{"shape":"DecisionTaskScheduledEventAttributes"}, + "decisionTaskStartedEventAttributes":{"shape":"DecisionTaskStartedEventAttributes"}, + "decisionTaskCompletedEventAttributes":{"shape":"DecisionTaskCompletedEventAttributes"}, + "decisionTaskTimedOutEventAttributes":{"shape":"DecisionTaskTimedOutEventAttributes"}, + "activityTaskScheduledEventAttributes":{"shape":"ActivityTaskScheduledEventAttributes"}, + "activityTaskStartedEventAttributes":{"shape":"ActivityTaskStartedEventAttributes"}, + "activityTaskCompletedEventAttributes":{"shape":"ActivityTaskCompletedEventAttributes"}, + "activityTaskFailedEventAttributes":{"shape":"ActivityTaskFailedEventAttributes"}, + "activityTaskTimedOutEventAttributes":{"shape":"ActivityTaskTimedOutEventAttributes"}, + "activityTaskCanceledEventAttributes":{"shape":"ActivityTaskCanceledEventAttributes"}, + "activityTaskCancelRequestedEventAttributes":{"shape":"ActivityTaskCancelRequestedEventAttributes"}, + "workflowExecutionSignaledEventAttributes":{"shape":"WorkflowExecutionSignaledEventAttributes"}, + "markerRecordedEventAttributes":{"shape":"MarkerRecordedEventAttributes"}, + "recordMarkerFailedEventAttributes":{"shape":"RecordMarkerFailedEventAttributes"}, + "timerStartedEventAttributes":{"shape":"TimerStartedEventAttributes"}, + "timerFiredEventAttributes":{"shape":"TimerFiredEventAttributes"}, + "timerCanceledEventAttributes":{"shape":"TimerCanceledEventAttributes"}, + "startChildWorkflowExecutionInitiatedEventAttributes":{"shape":"StartChildWorkflowExecutionInitiatedEventAttributes"}, + "childWorkflowExecutionStartedEventAttributes":{"shape":"ChildWorkflowExecutionStartedEventAttributes"}, + "childWorkflowExecutionCompletedEventAttributes":{"shape":"ChildWorkflowExecutionCompletedEventAttributes"}, + "childWorkflowExecutionFailedEventAttributes":{"shape":"ChildWorkflowExecutionFailedEventAttributes"}, + "childWorkflowExecutionTimedOutEventAttributes":{"shape":"ChildWorkflowExecutionTimedOutEventAttributes"}, + "childWorkflowExecutionCanceledEventAttributes":{"shape":"ChildWorkflowExecutionCanceledEventAttributes"}, + "childWorkflowExecutionTerminatedEventAttributes":{"shape":"ChildWorkflowExecutionTerminatedEventAttributes"}, + "signalExternalWorkflowExecutionInitiatedEventAttributes":{"shape":"SignalExternalWorkflowExecutionInitiatedEventAttributes"}, + "externalWorkflowExecutionSignaledEventAttributes":{"shape":"ExternalWorkflowExecutionSignaledEventAttributes"}, + "signalExternalWorkflowExecutionFailedEventAttributes":{"shape":"SignalExternalWorkflowExecutionFailedEventAttributes"}, + "externalWorkflowExecutionCancelRequestedEventAttributes":{"shape":"ExternalWorkflowExecutionCancelRequestedEventAttributes"}, + "requestCancelExternalWorkflowExecutionInitiatedEventAttributes":{"shape":"RequestCancelExternalWorkflowExecutionInitiatedEventAttributes"}, + "requestCancelExternalWorkflowExecutionFailedEventAttributes":{"shape":"RequestCancelExternalWorkflowExecutionFailedEventAttributes"}, + "scheduleActivityTaskFailedEventAttributes":{"shape":"ScheduleActivityTaskFailedEventAttributes"}, + "requestCancelActivityTaskFailedEventAttributes":{"shape":"RequestCancelActivityTaskFailedEventAttributes"}, + "startTimerFailedEventAttributes":{"shape":"StartTimerFailedEventAttributes"}, + "cancelTimerFailedEventAttributes":{"shape":"CancelTimerFailedEventAttributes"}, + "startChildWorkflowExecutionFailedEventAttributes":{"shape":"StartChildWorkflowExecutionFailedEventAttributes"} + } + }, + "HistoryEventList":{ + "type":"list", + "member":{"shape":"HistoryEvent"} + }, + "Identity":{ + "type":"string", + "max":256 + }, + "LimitExceededFault":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "LimitedData":{ + "type":"string", + "max":2048 + }, + "ListActivityTypesInput":{ + "type":"structure", + "required":[ + "domain", + "registrationStatus" + ], + "members":{ + "domain":{"shape":"DomainName"}, + "name":{"shape":"Name"}, + "registrationStatus":{"shape":"RegistrationStatus"}, + "nextPageToken":{"shape":"PageToken"}, + "maximumPageSize":{"shape":"PageSize"}, + "reverseOrder":{"shape":"ReverseOrder"} + } + }, + "ListClosedWorkflowExecutionsInput":{ + "type":"structure", + "required":["domain"], + "members":{ + "domain":{"shape":"DomainName"}, + "startTimeFilter":{"shape":"ExecutionTimeFilter"}, + "closeTimeFilter":{"shape":"ExecutionTimeFilter"}, + "executionFilter":{"shape":"WorkflowExecutionFilter"}, + "closeStatusFilter":{"shape":"CloseStatusFilter"}, + "typeFilter":{"shape":"WorkflowTypeFilter"}, + "tagFilter":{"shape":"TagFilter"}, + "nextPageToken":{"shape":"PageToken"}, + "maximumPageSize":{"shape":"PageSize"}, + "reverseOrder":{"shape":"ReverseOrder"} + } + }, + "ListDomainsInput":{ + "type":"structure", + "required":["registrationStatus"], + "members":{ + "nextPageToken":{"shape":"PageToken"}, + "registrationStatus":{"shape":"RegistrationStatus"}, + "maximumPageSize":{"shape":"PageSize"}, + "reverseOrder":{"shape":"ReverseOrder"} + } + }, + "ListOpenWorkflowExecutionsInput":{ + "type":"structure", + "required":[ + "domain", + "startTimeFilter" + ], + "members":{ + "domain":{"shape":"DomainName"}, + "startTimeFilter":{"shape":"ExecutionTimeFilter"}, + "typeFilter":{"shape":"WorkflowTypeFilter"}, + "tagFilter":{"shape":"TagFilter"}, + "nextPageToken":{"shape":"PageToken"}, + "maximumPageSize":{"shape":"PageSize"}, + "reverseOrder":{"shape":"ReverseOrder"}, + "executionFilter":{"shape":"WorkflowExecutionFilter"} + } + }, + "ListWorkflowTypesInput":{ + "type":"structure", + "required":[ + "domain", + "registrationStatus" + ], + "members":{ + "domain":{"shape":"DomainName"}, + "name":{"shape":"Name"}, + "registrationStatus":{"shape":"RegistrationStatus"}, + "nextPageToken":{"shape":"PageToken"}, + "maximumPageSize":{"shape":"PageSize"}, + "reverseOrder":{"shape":"ReverseOrder"} + } + }, + "MarkerName":{ + "type":"string", + "min":1, + "max":256 + }, + "MarkerRecordedEventAttributes":{ + "type":"structure", + "required":[ + "markerName", + "decisionTaskCompletedEventId" + ], + "members":{ + "markerName":{"shape":"MarkerName"}, + "details":{"shape":"Data"}, + "decisionTaskCompletedEventId":{"shape":"EventId"} + } + }, + "Name":{ + "type":"string", + "min":1, + "max":256 + }, + "OpenDecisionTasksCount":{ + "type":"integer", + "min":0, + "max":1 + }, + "OperationNotPermittedFault":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "PageSize":{ + "type":"integer", + "min":0, + "max":1000 + }, + "PageToken":{ + "type":"string", + "max":2048 + }, + "PendingTaskCount":{ + "type":"structure", + "required":["count"], + "members":{ + "count":{"shape":"Count"}, + "truncated":{"shape":"Truncated"} + } + }, + "PollForActivityTaskInput":{ + "type":"structure", + "required":[ + "domain", + "taskList" + ], + "members":{ + "domain":{"shape":"DomainName"}, + "taskList":{"shape":"TaskList"}, + "identity":{"shape":"Identity"} + } + }, + "PollForDecisionTaskInput":{ + "type":"structure", + "required":[ + "domain", + "taskList" + ], + "members":{ + "domain":{"shape":"DomainName"}, + "taskList":{"shape":"TaskList"}, + "identity":{"shape":"Identity"}, + "nextPageToken":{"shape":"PageToken"}, + "maximumPageSize":{"shape":"PageSize"}, + "reverseOrder":{"shape":"ReverseOrder"} + } + }, + "RecordActivityTaskHeartbeatInput":{ + "type":"structure", + "required":["taskToken"], + "members":{ + "taskToken":{"shape":"TaskToken"}, + "details":{"shape":"LimitedData"} + } + }, + "RecordMarkerDecisionAttributes":{ + "type":"structure", + "required":["markerName"], + "members":{ + "markerName":{"shape":"MarkerName"}, + "details":{"shape":"Data"} + } + }, + "RecordMarkerFailedCause":{ + "type":"string", + "enum":["OPERATION_NOT_PERMITTED"] + }, + "RecordMarkerFailedEventAttributes":{ + "type":"structure", + "required":[ + "markerName", + "cause", + "decisionTaskCompletedEventId" + ], + "members":{ + "markerName":{"shape":"MarkerName"}, + "cause":{"shape":"RecordMarkerFailedCause"}, + "decisionTaskCompletedEventId":{"shape":"EventId"} + } + }, + "RegisterActivityTypeInput":{ + "type":"structure", + "required":[ + "domain", + "name", + "version" + ], + "members":{ + "domain":{"shape":"DomainName"}, + "name":{"shape":"Name"}, + "version":{"shape":"Version"}, + "description":{"shape":"Description"}, + "defaultTaskStartToCloseTimeout":{"shape":"DurationInSecondsOptional"}, + "defaultTaskHeartbeatTimeout":{"shape":"DurationInSecondsOptional"}, + "defaultTaskList":{"shape":"TaskList"}, + "defaultTaskPriority":{"shape":"TaskPriority"}, + "defaultTaskScheduleToStartTimeout":{"shape":"DurationInSecondsOptional"}, + "defaultTaskScheduleToCloseTimeout":{"shape":"DurationInSecondsOptional"} + } + }, + "RegisterDomainInput":{ + "type":"structure", + "required":[ + "name", + "workflowExecutionRetentionPeriodInDays" + ], + "members":{ + "name":{"shape":"DomainName"}, + "description":{"shape":"Description"}, + "workflowExecutionRetentionPeriodInDays":{"shape":"DurationInDays"} + } + }, + "RegisterWorkflowTypeInput":{ + "type":"structure", + "required":[ + "domain", + "name", + "version" + ], + "members":{ + "domain":{"shape":"DomainName"}, + "name":{"shape":"Name"}, + "version":{"shape":"Version"}, + "description":{"shape":"Description"}, + "defaultTaskStartToCloseTimeout":{"shape":"DurationInSecondsOptional"}, + "defaultExecutionStartToCloseTimeout":{"shape":"DurationInSecondsOptional"}, + "defaultTaskList":{"shape":"TaskList"}, + "defaultTaskPriority":{"shape":"TaskPriority"}, + "defaultChildPolicy":{"shape":"ChildPolicy"} + } + }, + "RegistrationStatus":{ + "type":"string", + "enum":[ + "REGISTERED", + "DEPRECATED" + ] + }, + "RequestCancelActivityTaskDecisionAttributes":{ + "type":"structure", + "required":["activityId"], + "members":{ + "activityId":{"shape":"ActivityId"} + } + }, + "RequestCancelActivityTaskFailedCause":{ + "type":"string", + "enum":[ + "ACTIVITY_ID_UNKNOWN", + "OPERATION_NOT_PERMITTED" + ] + }, + "RequestCancelActivityTaskFailedEventAttributes":{ + "type":"structure", + "required":[ + "activityId", + "cause", + "decisionTaskCompletedEventId" + ], + "members":{ + "activityId":{"shape":"ActivityId"}, + "cause":{"shape":"RequestCancelActivityTaskFailedCause"}, + "decisionTaskCompletedEventId":{"shape":"EventId"} + } + }, + "RequestCancelExternalWorkflowExecutionDecisionAttributes":{ + "type":"structure", + "required":["workflowId"], + "members":{ + "workflowId":{"shape":"WorkflowId"}, + "runId":{"shape":"RunIdOptional"}, + "control":{"shape":"Data"} + } + }, + "RequestCancelExternalWorkflowExecutionFailedCause":{ + "type":"string", + "enum":[ + "UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION", + "REQUEST_CANCEL_EXTERNAL_WORKFLOW_EXECUTION_RATE_EXCEEDED", + "OPERATION_NOT_PERMITTED" + ] + }, + "RequestCancelExternalWorkflowExecutionFailedEventAttributes":{ + "type":"structure", + "required":[ + "workflowId", + "cause", + "initiatedEventId", + "decisionTaskCompletedEventId" + ], + "members":{ + "workflowId":{"shape":"WorkflowId"}, + "runId":{"shape":"RunIdOptional"}, + "cause":{"shape":"RequestCancelExternalWorkflowExecutionFailedCause"}, + "initiatedEventId":{"shape":"EventId"}, + "decisionTaskCompletedEventId":{"shape":"EventId"}, + "control":{"shape":"Data"} + } + }, + "RequestCancelExternalWorkflowExecutionInitiatedEventAttributes":{ + "type":"structure", + "required":[ + "workflowId", + "decisionTaskCompletedEventId" + ], + "members":{ + "workflowId":{"shape":"WorkflowId"}, + "runId":{"shape":"RunIdOptional"}, + "decisionTaskCompletedEventId":{"shape":"EventId"}, + "control":{"shape":"Data"} + } + }, + "RequestCancelWorkflowExecutionInput":{ + "type":"structure", + "required":[ + "domain", + "workflowId" + ], + "members":{ + "domain":{"shape":"DomainName"}, + "workflowId":{"shape":"WorkflowId"}, + "runId":{"shape":"RunIdOptional"} + } + }, + "RespondActivityTaskCanceledInput":{ + "type":"structure", + "required":["taskToken"], + "members":{ + "taskToken":{"shape":"TaskToken"}, + "details":{"shape":"Data"} + } + }, + "RespondActivityTaskCompletedInput":{ + "type":"structure", + "required":["taskToken"], + "members":{ + "taskToken":{"shape":"TaskToken"}, + "result":{"shape":"Data"} + } + }, + "RespondActivityTaskFailedInput":{ + "type":"structure", + "required":["taskToken"], + "members":{ + "taskToken":{"shape":"TaskToken"}, + "reason":{"shape":"FailureReason"}, + "details":{"shape":"Data"} + } + }, + "RespondDecisionTaskCompletedInput":{ + "type":"structure", + "required":["taskToken"], + "members":{ + "taskToken":{"shape":"TaskToken"}, + "decisions":{"shape":"DecisionList"}, + "executionContext":{"shape":"Data"} + } + }, + "ReverseOrder":{"type":"boolean"}, + "Run":{ + "type":"structure", + "members":{ + "runId":{"shape":"RunId"} + } + }, + "RunId":{ + "type":"string", + "min":1, + "max":64 + }, + "RunIdOptional":{ + "type":"string", + "max":64 + }, + "ScheduleActivityTaskDecisionAttributes":{ + "type":"structure", + "required":[ + "activityType", + "activityId" + ], + "members":{ + "activityType":{"shape":"ActivityType"}, + "activityId":{"shape":"ActivityId"}, + "control":{"shape":"Data"}, + "input":{"shape":"Data"}, + "scheduleToCloseTimeout":{"shape":"DurationInSecondsOptional"}, + "taskList":{"shape":"TaskList"}, + "taskPriority":{"shape":"TaskPriority"}, + "scheduleToStartTimeout":{"shape":"DurationInSecondsOptional"}, + "startToCloseTimeout":{"shape":"DurationInSecondsOptional"}, + "heartbeatTimeout":{"shape":"DurationInSecondsOptional"} + } + }, + "ScheduleActivityTaskFailedCause":{ + "type":"string", + "enum":[ + "ACTIVITY_TYPE_DEPRECATED", + "ACTIVITY_TYPE_DOES_NOT_EXIST", + "ACTIVITY_ID_ALREADY_IN_USE", + "OPEN_ACTIVITIES_LIMIT_EXCEEDED", + "ACTIVITY_CREATION_RATE_EXCEEDED", + "DEFAULT_SCHEDULE_TO_CLOSE_TIMEOUT_UNDEFINED", + "DEFAULT_TASK_LIST_UNDEFINED", + "DEFAULT_SCHEDULE_TO_START_TIMEOUT_UNDEFINED", + "DEFAULT_START_TO_CLOSE_TIMEOUT_UNDEFINED", + "DEFAULT_HEARTBEAT_TIMEOUT_UNDEFINED", + "OPERATION_NOT_PERMITTED" + ] + }, + "ScheduleActivityTaskFailedEventAttributes":{ + "type":"structure", + "required":[ + "activityType", + "activityId", + "cause", + "decisionTaskCompletedEventId" + ], + "members":{ + "activityType":{"shape":"ActivityType"}, + "activityId":{"shape":"ActivityId"}, + "cause":{"shape":"ScheduleActivityTaskFailedCause"}, + "decisionTaskCompletedEventId":{"shape":"EventId"} + } + }, + "SignalExternalWorkflowExecutionDecisionAttributes":{ + "type":"structure", + "required":[ + "workflowId", + "signalName" + ], + "members":{ + "workflowId":{"shape":"WorkflowId"}, + "runId":{"shape":"RunIdOptional"}, + "signalName":{"shape":"SignalName"}, + "input":{"shape":"Data"}, + "control":{"shape":"Data"} + } + }, + "SignalExternalWorkflowExecutionFailedCause":{ + "type":"string", + "enum":[ + "UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION", + "SIGNAL_EXTERNAL_WORKFLOW_EXECUTION_RATE_EXCEEDED", + "OPERATION_NOT_PERMITTED" + ] + }, + "SignalExternalWorkflowExecutionFailedEventAttributes":{ + "type":"structure", + "required":[ + "workflowId", + "cause", + "initiatedEventId", + "decisionTaskCompletedEventId" + ], + "members":{ + "workflowId":{"shape":"WorkflowId"}, + "runId":{"shape":"RunIdOptional"}, + "cause":{"shape":"SignalExternalWorkflowExecutionFailedCause"}, + "initiatedEventId":{"shape":"EventId"}, + "decisionTaskCompletedEventId":{"shape":"EventId"}, + "control":{"shape":"Data"} + } + }, + "SignalExternalWorkflowExecutionInitiatedEventAttributes":{ + "type":"structure", + "required":[ + "workflowId", + "signalName", + "decisionTaskCompletedEventId" + ], + "members":{ + "workflowId":{"shape":"WorkflowId"}, + "runId":{"shape":"RunIdOptional"}, + "signalName":{"shape":"SignalName"}, + "input":{"shape":"Data"}, + "decisionTaskCompletedEventId":{"shape":"EventId"}, + "control":{"shape":"Data"} + } + }, + "SignalName":{ + "type":"string", + "min":1, + "max":256 + }, + "SignalWorkflowExecutionInput":{ + "type":"structure", + "required":[ + "domain", + "workflowId", + "signalName" + ], + "members":{ + "domain":{"shape":"DomainName"}, + "workflowId":{"shape":"WorkflowId"}, + "runId":{"shape":"RunIdOptional"}, + "signalName":{"shape":"SignalName"}, + "input":{"shape":"Data"} + } + }, + "StartChildWorkflowExecutionDecisionAttributes":{ + "type":"structure", + "required":[ + "workflowType", + "workflowId" + ], + "members":{ + "workflowType":{"shape":"WorkflowType"}, + "workflowId":{"shape":"WorkflowId"}, + "control":{"shape":"Data"}, + "input":{"shape":"Data"}, + "executionStartToCloseTimeout":{"shape":"DurationInSecondsOptional"}, + "taskList":{"shape":"TaskList"}, + "taskPriority":{"shape":"TaskPriority"}, + "taskStartToCloseTimeout":{"shape":"DurationInSecondsOptional"}, + "childPolicy":{"shape":"ChildPolicy"}, + "tagList":{"shape":"TagList"} + } + }, + "StartChildWorkflowExecutionFailedCause":{ + "type":"string", + "enum":[ + "WORKFLOW_TYPE_DOES_NOT_EXIST", + "WORKFLOW_TYPE_DEPRECATED", + "OPEN_CHILDREN_LIMIT_EXCEEDED", + "OPEN_WORKFLOWS_LIMIT_EXCEEDED", + "CHILD_CREATION_RATE_EXCEEDED", + "WORKFLOW_ALREADY_RUNNING", + "DEFAULT_EXECUTION_START_TO_CLOSE_TIMEOUT_UNDEFINED", + "DEFAULT_TASK_LIST_UNDEFINED", + "DEFAULT_TASK_START_TO_CLOSE_TIMEOUT_UNDEFINED", + "DEFAULT_CHILD_POLICY_UNDEFINED", + "OPERATION_NOT_PERMITTED" + ] + }, + "StartChildWorkflowExecutionFailedEventAttributes":{ + "type":"structure", + "required":[ + "workflowType", + "cause", + "workflowId", + "initiatedEventId", + "decisionTaskCompletedEventId" + ], + "members":{ + "workflowType":{"shape":"WorkflowType"}, + "cause":{"shape":"StartChildWorkflowExecutionFailedCause"}, + "workflowId":{"shape":"WorkflowId"}, + "initiatedEventId":{"shape":"EventId"}, + "decisionTaskCompletedEventId":{"shape":"EventId"}, + "control":{"shape":"Data"} + } + }, + "StartChildWorkflowExecutionInitiatedEventAttributes":{ + "type":"structure", + "required":[ + "workflowId", + "workflowType", + "taskList", + "decisionTaskCompletedEventId", + "childPolicy" + ], + "members":{ + "workflowId":{"shape":"WorkflowId"}, + "workflowType":{"shape":"WorkflowType"}, + "control":{"shape":"Data"}, + "input":{"shape":"Data"}, + "executionStartToCloseTimeout":{"shape":"DurationInSecondsOptional"}, + "taskList":{"shape":"TaskList"}, + "taskPriority":{"shape":"TaskPriority"}, + "decisionTaskCompletedEventId":{"shape":"EventId"}, + "childPolicy":{"shape":"ChildPolicy"}, + "taskStartToCloseTimeout":{"shape":"DurationInSecondsOptional"}, + "tagList":{"shape":"TagList"} + } + }, + "StartTimerDecisionAttributes":{ + "type":"structure", + "required":[ + "timerId", + "startToFireTimeout" + ], + "members":{ + "timerId":{"shape":"TimerId"}, + "control":{"shape":"Data"}, + "startToFireTimeout":{"shape":"DurationInSeconds"} + } + }, + "StartTimerFailedCause":{ + "type":"string", + "enum":[ + "TIMER_ID_ALREADY_IN_USE", + "OPEN_TIMERS_LIMIT_EXCEEDED", + "TIMER_CREATION_RATE_EXCEEDED", + "OPERATION_NOT_PERMITTED" + ] + }, + "StartTimerFailedEventAttributes":{ + "type":"structure", + "required":[ + "timerId", + "cause", + "decisionTaskCompletedEventId" + ], + "members":{ + "timerId":{"shape":"TimerId"}, + "cause":{"shape":"StartTimerFailedCause"}, + "decisionTaskCompletedEventId":{"shape":"EventId"} + } + }, + "StartWorkflowExecutionInput":{ + "type":"structure", + "required":[ + "domain", + "workflowId", + "workflowType" + ], + "members":{ + "domain":{"shape":"DomainName"}, + "workflowId":{"shape":"WorkflowId"}, + "workflowType":{"shape":"WorkflowType"}, + "taskList":{"shape":"TaskList"}, + "taskPriority":{"shape":"TaskPriority"}, + "input":{"shape":"Data"}, + "executionStartToCloseTimeout":{"shape":"DurationInSecondsOptional"}, + "tagList":{"shape":"TagList"}, + "taskStartToCloseTimeout":{"shape":"DurationInSecondsOptional"}, + "childPolicy":{"shape":"ChildPolicy"} + } + }, + "Tag":{ + "type":"string", + "min":1, + "max":256 + }, + "TagFilter":{ + "type":"structure", + "required":["tag"], + "members":{ + "tag":{"shape":"Tag"} + } + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":5 + }, + "TaskList":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{"shape":"Name"} + } + }, + "TaskPriority":{ + "type":"string", + "max":11 + }, + "TaskToken":{ + "type":"string", + "min":1, + "max":1024 + }, + "TerminateReason":{ + "type":"string", + "max":256 + }, + "TerminateWorkflowExecutionInput":{ + "type":"structure", + "required":[ + "domain", + "workflowId" + ], + "members":{ + "domain":{"shape":"DomainName"}, + "workflowId":{"shape":"WorkflowId"}, + "runId":{"shape":"RunIdOptional"}, + "reason":{"shape":"TerminateReason"}, + "details":{"shape":"Data"}, + "childPolicy":{"shape":"ChildPolicy"} + } + }, + "TimerCanceledEventAttributes":{ + "type":"structure", + "required":[ + "timerId", + "startedEventId", + "decisionTaskCompletedEventId" + ], + "members":{ + "timerId":{"shape":"TimerId"}, + "startedEventId":{"shape":"EventId"}, + "decisionTaskCompletedEventId":{"shape":"EventId"} + } + }, + "TimerFiredEventAttributes":{ + "type":"structure", + "required":[ + "timerId", + "startedEventId" + ], + "members":{ + "timerId":{"shape":"TimerId"}, + "startedEventId":{"shape":"EventId"} + } + }, + "TimerId":{ + "type":"string", + "min":1, + "max":256 + }, + "TimerStartedEventAttributes":{ + "type":"structure", + "required":[ + "timerId", + "startToFireTimeout", + "decisionTaskCompletedEventId" + ], + "members":{ + "timerId":{"shape":"TimerId"}, + "control":{"shape":"Data"}, + "startToFireTimeout":{"shape":"DurationInSeconds"}, + "decisionTaskCompletedEventId":{"shape":"EventId"} + } + }, + "Timestamp":{"type":"timestamp"}, + "Truncated":{"type":"boolean"}, + "TypeAlreadyExistsFault":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "TypeDeprecatedFault":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "UnknownResourceFault":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "Version":{ + "type":"string", + "min":1, + "max":64 + }, + "VersionOptional":{ + "type":"string", + "max":64 + }, + "WorkflowExecution":{ + "type":"structure", + "required":[ + "workflowId", + "runId" + ], + "members":{ + "workflowId":{"shape":"WorkflowId"}, + "runId":{"shape":"RunId"} + } + }, + "WorkflowExecutionAlreadyStartedFault":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "WorkflowExecutionCancelRequestedCause":{ + "type":"string", + "enum":["CHILD_POLICY_APPLIED"] + }, + "WorkflowExecutionCancelRequestedEventAttributes":{ + "type":"structure", + "members":{ + "externalWorkflowExecution":{"shape":"WorkflowExecution"}, + "externalInitiatedEventId":{"shape":"EventId"}, + "cause":{"shape":"WorkflowExecutionCancelRequestedCause"} + } + }, + "WorkflowExecutionCanceledEventAttributes":{ + "type":"structure", + "required":["decisionTaskCompletedEventId"], + "members":{ + "details":{"shape":"Data"}, + "decisionTaskCompletedEventId":{"shape":"EventId"} + } + }, + "WorkflowExecutionCompletedEventAttributes":{ + "type":"structure", + "required":["decisionTaskCompletedEventId"], + "members":{ + "result":{"shape":"Data"}, + "decisionTaskCompletedEventId":{"shape":"EventId"} + } + }, + "WorkflowExecutionConfiguration":{ + "type":"structure", + "required":[ + "taskStartToCloseTimeout", + "executionStartToCloseTimeout", + "taskList", + "childPolicy" + ], + "members":{ + "taskStartToCloseTimeout":{"shape":"DurationInSeconds"}, + "executionStartToCloseTimeout":{"shape":"DurationInSeconds"}, + "taskList":{"shape":"TaskList"}, + "taskPriority":{"shape":"TaskPriority"}, + "childPolicy":{"shape":"ChildPolicy"} + } + }, + "WorkflowExecutionContinuedAsNewEventAttributes":{ + "type":"structure", + "required":[ + "decisionTaskCompletedEventId", + "newExecutionRunId", + "taskList", + "childPolicy", + "workflowType" + ], + "members":{ + "input":{"shape":"Data"}, + "decisionTaskCompletedEventId":{"shape":"EventId"}, + "newExecutionRunId":{"shape":"RunId"}, + "executionStartToCloseTimeout":{"shape":"DurationInSecondsOptional"}, + "taskList":{"shape":"TaskList"}, + "taskPriority":{"shape":"TaskPriority"}, + "taskStartToCloseTimeout":{"shape":"DurationInSecondsOptional"}, + "childPolicy":{"shape":"ChildPolicy"}, + "tagList":{"shape":"TagList"}, + "workflowType":{"shape":"WorkflowType"} + } + }, + "WorkflowExecutionCount":{ + "type":"structure", + "required":["count"], + "members":{ + "count":{"shape":"Count"}, + "truncated":{"shape":"Truncated"} + } + }, + "WorkflowExecutionDetail":{ + "type":"structure", + "required":[ + "executionInfo", + "executionConfiguration", + "openCounts" + ], + "members":{ + "executionInfo":{"shape":"WorkflowExecutionInfo"}, + "executionConfiguration":{"shape":"WorkflowExecutionConfiguration"}, + "openCounts":{"shape":"WorkflowExecutionOpenCounts"}, + "latestActivityTaskTimestamp":{"shape":"Timestamp"}, + "latestExecutionContext":{"shape":"Data"} + } + }, + "WorkflowExecutionFailedEventAttributes":{ + "type":"structure", + "required":["decisionTaskCompletedEventId"], + "members":{ + "reason":{"shape":"FailureReason"}, + "details":{"shape":"Data"}, + "decisionTaskCompletedEventId":{"shape":"EventId"} + } + }, + "WorkflowExecutionFilter":{ + "type":"structure", + "required":["workflowId"], + "members":{ + "workflowId":{"shape":"WorkflowId"} + } + }, + "WorkflowExecutionInfo":{ + "type":"structure", + "required":[ + "execution", + "workflowType", + "startTimestamp", + "executionStatus" + ], + "members":{ + "execution":{"shape":"WorkflowExecution"}, + "workflowType":{"shape":"WorkflowType"}, + "startTimestamp":{"shape":"Timestamp"}, + "closeTimestamp":{"shape":"Timestamp"}, + "executionStatus":{"shape":"ExecutionStatus"}, + "closeStatus":{"shape":"CloseStatus"}, + "parent":{"shape":"WorkflowExecution"}, + "tagList":{"shape":"TagList"}, + "cancelRequested":{"shape":"Canceled"} + } + }, + "WorkflowExecutionInfoList":{ + "type":"list", + "member":{"shape":"WorkflowExecutionInfo"} + }, + "WorkflowExecutionInfos":{ + "type":"structure", + "required":["executionInfos"], + "members":{ + "executionInfos":{"shape":"WorkflowExecutionInfoList"}, + "nextPageToken":{"shape":"PageToken"} + } + }, + "WorkflowExecutionOpenCounts":{ + "type":"structure", + "required":[ + "openActivityTasks", + "openDecisionTasks", + "openTimers", + "openChildWorkflowExecutions" + ], + "members":{ + "openActivityTasks":{"shape":"Count"}, + "openDecisionTasks":{"shape":"OpenDecisionTasksCount"}, + "openTimers":{"shape":"Count"}, + "openChildWorkflowExecutions":{"shape":"Count"} + } + }, + "WorkflowExecutionSignaledEventAttributes":{ + "type":"structure", + "required":["signalName"], + "members":{ + "signalName":{"shape":"SignalName"}, + "input":{"shape":"Data"}, + "externalWorkflowExecution":{"shape":"WorkflowExecution"}, + "externalInitiatedEventId":{"shape":"EventId"} + } + }, + "WorkflowExecutionStartedEventAttributes":{ + "type":"structure", + "required":[ + "childPolicy", + "taskList", + "workflowType" + ], + "members":{ + "input":{"shape":"Data"}, + "executionStartToCloseTimeout":{"shape":"DurationInSecondsOptional"}, + "taskStartToCloseTimeout":{"shape":"DurationInSecondsOptional"}, + "childPolicy":{"shape":"ChildPolicy"}, + "taskList":{"shape":"TaskList"}, + "workflowType":{"shape":"WorkflowType"}, + "tagList":{"shape":"TagList"}, + "taskPriority":{"shape":"TaskPriority"}, + "continuedExecutionRunId":{"shape":"RunIdOptional"}, + "parentWorkflowExecution":{"shape":"WorkflowExecution"}, + "parentInitiatedEventId":{"shape":"EventId"} + } + }, + "WorkflowExecutionTerminatedCause":{ + "type":"string", + "enum":[ + "CHILD_POLICY_APPLIED", + "EVENT_LIMIT_EXCEEDED", + "OPERATOR_INITIATED" + ] + }, + "WorkflowExecutionTerminatedEventAttributes":{ + "type":"structure", + "required":["childPolicy"], + "members":{ + "reason":{"shape":"TerminateReason"}, + "details":{"shape":"Data"}, + "childPolicy":{"shape":"ChildPolicy"}, + "cause":{"shape":"WorkflowExecutionTerminatedCause"} + } + }, + "WorkflowExecutionTimedOutEventAttributes":{ + "type":"structure", + "required":[ + "timeoutType", + "childPolicy" + ], + "members":{ + "timeoutType":{"shape":"WorkflowExecutionTimeoutType"}, + "childPolicy":{"shape":"ChildPolicy"} + } + }, + "WorkflowExecutionTimeoutType":{ + "type":"string", + "enum":["START_TO_CLOSE"] + }, + "WorkflowId":{ + "type":"string", + "min":1, + "max":256 + }, + "WorkflowType":{ + "type":"structure", + "required":[ + "name", + "version" + ], + "members":{ + "name":{"shape":"Name"}, + "version":{"shape":"Version"} + } + }, + "WorkflowTypeConfiguration":{ + "type":"structure", + "members":{ + "defaultTaskStartToCloseTimeout":{"shape":"DurationInSecondsOptional"}, + "defaultExecutionStartToCloseTimeout":{"shape":"DurationInSecondsOptional"}, + "defaultTaskList":{"shape":"TaskList"}, + "defaultTaskPriority":{"shape":"TaskPriority"}, + "defaultChildPolicy":{"shape":"ChildPolicy"} + } + }, + "WorkflowTypeDetail":{ + "type":"structure", + "required":[ + "typeInfo", + "configuration" + ], + "members":{ + "typeInfo":{"shape":"WorkflowTypeInfo"}, + "configuration":{"shape":"WorkflowTypeConfiguration"} + } + }, + "WorkflowTypeFilter":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{"shape":"Name"}, + "version":{"shape":"VersionOptional"} + } + }, + "WorkflowTypeInfo":{ + "type":"structure", + "required":[ + "workflowType", + "status", + "creationDate" + ], + "members":{ + "workflowType":{"shape":"WorkflowType"}, + "status":{"shape":"RegistrationStatus"}, + "description":{"shape":"Description"}, + "creationDate":{"shape":"Timestamp"}, + "deprecationDate":{"shape":"Timestamp"} + } + }, + "WorkflowTypeInfoList":{ + "type":"list", + "member":{"shape":"WorkflowTypeInfo"} + }, + "WorkflowTypeInfos":{ + "type":"structure", + "required":["typeInfos"], + "members":{ + "typeInfos":{"shape":"WorkflowTypeInfoList"}, + "nextPageToken":{"shape":"PageToken"} + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/swf/2012-01-25/docs-2.json b/lib/aws-sdk/Aws/data/swf/2012-01-25/docs-2.json new file mode 100644 index 0000000..2f747bc --- /dev/null +++ b/lib/aws-sdk/Aws/data/swf/2012-01-25/docs-2.json @@ -0,0 +1,1569 @@ +{ + "operations": { + "CountClosedWorkflowExecutions": "

Returns the number of closed workflow executions within the given domain that meet the specified filtering criteria.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • tagFilter.tag: String constraint. The key is swf:tagFilter.tag.
    • typeFilter.name: String constraint. The key is swf:typeFilter.name.
    • typeFilter.version: String constraint. The key is swf:typeFilter.version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "CountOpenWorkflowExecutions": "

Returns the number of open workflow executions within the given domain that meet the specified filtering criteria.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • tagFilter.tag: String constraint. The key is swf:tagFilter.tag.
    • typeFilter.name: String constraint. The key is swf:typeFilter.name.
    • typeFilter.version: String constraint. The key is swf:typeFilter.version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "CountPendingActivityTasks": "

Returns the estimated number of activity tasks in the specified task list. The count returned is an approximation and is not guaranteed to be exact. If you specify a task list that no activity task was ever scheduled in then 0 will be returned.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the taskList.name parameter by using a Condition element with the swf:taskList.name key to allow the action to access only certain task lists.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "CountPendingDecisionTasks": "

Returns the estimated number of decision tasks in the specified task list. The count returned is an approximation and is not guaranteed to be exact. If you specify a task list that no decision task was ever scheduled in then 0 will be returned.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the taskList.name parameter by using a Condition element with the swf:taskList.name key to allow the action to access only certain task lists.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "DeprecateActivityType": "

Deprecates the specified activity type. After an activity type has been deprecated, you cannot create new tasks of that activity type. Tasks of this type that were scheduled before the type was deprecated will continue to run.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • activityType.name: String constraint. The key is swf:activityType.name.
    • activityType.version: String constraint. The key is swf:activityType.version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "DeprecateDomain": "

Deprecates the specified domain. After a domain has been deprecated it cannot be used to create new workflow executions or register new types. However, you can still use visibility actions on this domain. Deprecating a domain also deprecates all activity and workflow types registered in the domain. Executions that were started before the domain was deprecated will continue to run.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "DeprecateWorkflowType": "

Deprecates the specified workflow type. After a workflow type has been deprecated, you cannot create new executions of that type. Executions that were started before the type was deprecated will continue to run. A deprecated workflow type may still be used when calling visibility actions.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • workflowType.name: String constraint. The key is swf:workflowType.name.
    • workflowType.version: String constraint. The key is swf:workflowType.version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "DescribeActivityType": "

Returns information about the specified activity type. This includes configuration settings provided when the type was registered and other general information about the type.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • activityType.name: String constraint. The key is swf:activityType.name.
    • activityType.version: String constraint. The key is swf:activityType.version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "DescribeDomain": "

Returns information about the specified domain, including description and status.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "DescribeWorkflowExecution": "

Returns information about the specified workflow execution including its type and some statistics.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "DescribeWorkflowType": "

Returns information about the specified workflow type. This includes configuration settings specified when the type was registered and other information such as creation date, current status, etc.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • workflowType.name: String constraint. The key is swf:workflowType.name.
    • workflowType.version: String constraint. The key is swf:workflowType.version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "GetWorkflowExecutionHistory": "

Returns the history of the specified workflow execution. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "ListActivityTypes": "

Returns information about all activities registered in the specified domain that match the specified name and registration status. The result includes information like creation date, current status of the activity, etc. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "ListClosedWorkflowExecutions": "

Returns a list of closed workflow executions in the specified domain that meet the filtering criteria. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • tagFilter.tag: String constraint. The key is swf:tagFilter.tag.
    • typeFilter.name: String constraint. The key is swf:typeFilter.name.
    • typeFilter.version: String constraint. The key is swf:typeFilter.version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "ListDomains": "

Returns the list of domains registered in the account. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains. The element must be set to arn:aws:swf::AccountID:domain/*, where AccountID is the account ID, with no dashes.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "ListOpenWorkflowExecutions": "

Returns a list of open workflow executions in the specified domain that meet the filtering criteria. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call.

This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • tagFilter.tag: String constraint. The key is swf:tagFilter.tag.
    • typeFilter.name: String constraint. The key is swf:typeFilter.name.
    • typeFilter.version: String constraint. The key is swf:typeFilter.version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "ListWorkflowTypes": "

Returns information about workflow types in the specified domain. The results may be split into multiple pages that can be retrieved by making the call repeatedly.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "PollForActivityTask": "

Used by workers to get an ActivityTask from the specified activity taskList. This initiates a long poll, where the service holds the HTTP connection open and responds as soon as a task becomes available. The maximum time the service holds on to the request before responding is 60 seconds. If no task is available within 60 seconds, the poll will return an empty result. An empty result, in this context, means that an ActivityTask is returned, but that the value of taskToken is an empty string. If a task is returned, the worker should use its type to identify and process it correctly.

Workers should set their client side socket timeout to at least 70 seconds (10 seconds higher than the maximum time service may hold the poll request).

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the taskList.name parameter by using a Condition element with the swf:taskList.name key to allow the action to access only certain task lists.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "PollForDecisionTask": "

Used by deciders to get a DecisionTask from the specified decision taskList. A decision task may be returned for any open workflow execution that is using the specified task list. The task includes a paginated view of the history of the workflow execution. The decider should use the workflow type and the history to determine how to properly handle the task.

This action initiates a long poll, where the service holds the HTTP connection open and responds as soon a task becomes available. If no decision task is available in the specified task list before the timeout of 60 seconds expires, an empty result is returned. An empty result, in this context, means that a DecisionTask is returned, but that the value of taskToken is an empty string.

Deciders should set their client side socket timeout to at least 70 seconds (10 seconds higher than the timeout). Because the number of workflow history events for a single workflow execution might be very large, the result returned might be split up across a number of pages. To retrieve subsequent pages, make additional calls to PollForDecisionTask using the nextPageToken returned by the initial call. Note that you do not call GetWorkflowExecutionHistory with this nextPageToken. Instead, call PollForDecisionTask again.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the taskList.name parameter by using a Condition element with the swf:taskList.name key to allow the action to access only certain task lists.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "RecordActivityTaskHeartbeat": "

Used by activity workers to report to the service that the ActivityTask represented by the specified taskToken is still making progress. The worker can also (optionally) specify details of the progress, for example percent complete, using the details parameter. This action can also be used by the worker as a mechanism to check if cancellation is being requested for the activity task. If a cancellation is being attempted for the specified task, then the boolean cancelRequested flag returned by the service is set to true.

This action resets the taskHeartbeatTimeout clock. The taskHeartbeatTimeout is specified in RegisterActivityType.

This action does not in itself create an event in the workflow execution history. However, if the task times out, the workflow execution history will contain a ActivityTaskTimedOut event that contains the information from the last heartbeat generated by the activity worker.

The taskStartToCloseTimeout of an activity type is the maximum duration of an activity task, regardless of the number of RecordActivityTaskHeartbeat requests received. The taskStartToCloseTimeout is also specified in RegisterActivityType. This operation is only useful for long-lived activities to report liveliness of the task and to determine if a cancellation is being attempted. If the cancelRequested flag returns true, a cancellation is being attempted. If the worker can cancel the activity, it should respond with RespondActivityTaskCanceled. Otherwise, it should ignore the cancellation request.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "RegisterActivityType": "

Registers a new activity type along with its configuration settings in the specified domain.

A TypeAlreadyExists fault is returned if the type already exists in the domain. You cannot change any configuration settings of the type after its registration, and it must be registered as a new version.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • defaultTaskList.name: String constraint. The key is swf:defaultTaskList.name.
    • name: String constraint. The key is swf:name.
    • version: String constraint. The key is swf:version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "RegisterDomain": "

Registers a new domain.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • You cannot use an IAM policy to control domain access for this action. The name of the domain being registered is available as the resource of this action.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "RegisterWorkflowType": "

Registers a new workflow type and its configuration settings in the specified domain.

The retention period for the workflow history is set by the RegisterDomain action.

If the type already exists, then a TypeAlreadyExists fault is returned. You cannot change the configuration settings of a workflow type once it is registered and it must be registered as a new version.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • defaultTaskList.name: String constraint. The key is swf:defaultTaskList.name.
    • name: String constraint. The key is swf:name.
    • version: String constraint. The key is swf:version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "RequestCancelWorkflowExecution": "

Records a WorkflowExecutionCancelRequested event in the currently running workflow execution identified by the given domain, workflowId, and runId. This logically requests the cancellation of the workflow execution as a whole. It is up to the decider to take appropriate actions when it receives an execution history with this event.

If the runId is not specified, the WorkflowExecutionCancelRequested event is recorded in the history of the current open workflow execution with the specified workflowId in the domain. Because this action allows the workflow to properly clean up and gracefully close, it should be used instead of TerminateWorkflowExecution when possible.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "RespondActivityTaskCanceled": "

Used by workers to tell the service that the ActivityTask identified by the taskToken was successfully canceled. Additional details can be optionally provided using the details argument.

These details (if provided) appear in the ActivityTaskCanceled event added to the workflow history.

Only use this operation if the canceled flag of a RecordActivityTaskHeartbeat request returns true and if the activity can be safely undone or abandoned.

A task is considered open from the time that it is scheduled until it is closed. Therefore a task is reported as open while a worker is processing it. A task is closed after it has been specified in a call to RespondActivityTaskCompleted, RespondActivityTaskCanceled, RespondActivityTaskFailed, or the task has timed out.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "RespondActivityTaskCompleted": "

Used by workers to tell the service that the ActivityTask identified by the taskToken completed successfully with a result (if provided). The result appears in the ActivityTaskCompleted event in the workflow history.

If the requested task does not complete successfully, use RespondActivityTaskFailed instead. If the worker finds that the task is canceled through the canceled flag returned by RecordActivityTaskHeartbeat, it should cancel the task, clean up and then call RespondActivityTaskCanceled.

A task is considered open from the time that it is scheduled until it is closed. Therefore a task is reported as open while a worker is processing it. A task is closed after it has been specified in a call to RespondActivityTaskCompleted, RespondActivityTaskCanceled, RespondActivityTaskFailed, or the task has timed out.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "RespondActivityTaskFailed": "

Used by workers to tell the service that the ActivityTask identified by the taskToken has failed with reason (if specified). The reason and details appear in the ActivityTaskFailed event added to the workflow history.

A task is considered open from the time that it is scheduled until it is closed. Therefore a task is reported as open while a worker is processing it. A task is closed after it has been specified in a call to RespondActivityTaskCompleted, RespondActivityTaskCanceled, RespondActivityTaskFailed, or the task has timed out.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "RespondDecisionTaskCompleted": "

Used by deciders to tell the service that the DecisionTask identified by the taskToken has successfully completed. The decisions argument specifies the list of decisions made while processing the task.

A DecisionTaskCompleted event is added to the workflow history. The executionContext specified is attached to the event in the workflow execution history.

Access Control

If an IAM policy grants permission to use RespondDecisionTaskCompleted, it can express permissions for the list of decisions in the decisions parameter. Each of the decisions has one or more parameters, much like a regular API call. To allow for policies to be as readable as possible, you can express permissions on decisions as if they were actual API calls, including applying conditions to some parameters. For more information, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "SignalWorkflowExecution": "

Records a WorkflowExecutionSignaled event in the workflow execution history and creates a decision task for the workflow execution identified by the given domain, workflowId and runId. The event is recorded with the specified user defined signalName and input (if provided).

If a runId is not specified, then the WorkflowExecutionSignaled event is recorded in the history of the current open workflow with the matching workflowId in the domain. If the specified workflow execution is not open, this method fails with UnknownResource.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "StartWorkflowExecution": "

Starts an execution of the workflow type in the specified domain using the provided workflowId and input data.

This action returns the newly started workflow execution.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • tagList.member.0: The key is swf:tagList.member.0.
    • tagList.member.1: The key is swf:tagList.member.1.
    • tagList.member.2: The key is swf:tagList.member.2.
    • tagList.member.3: The key is swf:tagList.member.3.
    • tagList.member.4: The key is swf:tagList.member.4.
    • taskList: String constraint. The key is swf:taskList.name.
    • workflowType.name: String constraint. The key is swf:workflowType.name.
    • workflowType.version: String constraint. The key is swf:workflowType.version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "TerminateWorkflowExecution": "

Records a WorkflowExecutionTerminated event and forces closure of the workflow execution identified by the given domain, runId, and workflowId. The child policy, registered with the workflow type or specified when starting this execution, is applied to any open child workflow executions of this workflow execution.

If the identified workflow execution was in progress, it is terminated immediately. If a runId is not specified, then the WorkflowExecutionTerminated event is recorded in the history of the current open workflow with the matching workflowId in the domain. You should consider using RequestCancelWorkflowExecution action instead because it allows the workflow to gracefully close while TerminateWorkflowExecution does not.

Access Control

You can use IAM policies to control this action's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

" + }, + "service": "Amazon Simple Workflow Service

The Amazon Simple Workflow Service (Amazon SWF) makes it easy to build applications that use Amazon's cloud to coordinate work across distributed components. In Amazon SWF, a task represents a logical unit of work that is performed by a component of your workflow. Coordinating tasks in a workflow involves managing intertask dependencies, scheduling, and concurrency in accordance with the logical flow of the application.

Amazon SWF gives you full control over implementing tasks and coordinating them without worrying about underlying complexities such as tracking their progress and maintaining their state.

This documentation serves as reference only. For a broader overview of the Amazon SWF programming model, see the Amazon SWF Developer Guide.

", + "shapes": { + "ActivityId": { + "base": null, + "refs": { + "ActivityTask$activityId": "

The unique ID of the task.

", + "ActivityTaskCancelRequestedEventAttributes$activityId": "

The unique ID of the task.

", + "ActivityTaskScheduledEventAttributes$activityId": "

The unique id of the activity task.

", + "RequestCancelActivityTaskDecisionAttributes$activityId": "

The activityId of the activity task to be canceled.

", + "RequestCancelActivityTaskFailedEventAttributes$activityId": "

The activityId provided in the RequestCancelActivityTask decision that failed.

", + "ScheduleActivityTaskDecisionAttributes$activityId": "

Required. The activityId of the activity task.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", + "ScheduleActivityTaskFailedEventAttributes$activityId": "

The activityId provided in the ScheduleActivityTask decision that failed.

" + } + }, + "ActivityTask": { + "base": "

Unit of work sent to an activity worker.

", + "refs": { + } + }, + "ActivityTaskCancelRequestedEventAttributes": { + "base": "

Provides details of the ActivityTaskCancelRequested event.

", + "refs": { + "HistoryEvent$activityTaskCancelRequestedEventAttributes": "

If the event is of type ActivityTaskcancelRequested then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "ActivityTaskCanceledEventAttributes": { + "base": "

Provides details of the ActivityTaskCanceled event.

", + "refs": { + "HistoryEvent$activityTaskCanceledEventAttributes": "

If the event is of type ActivityTaskCanceled then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "ActivityTaskCompletedEventAttributes": { + "base": "

Provides details of the ActivityTaskCompleted event.

", + "refs": { + "HistoryEvent$activityTaskCompletedEventAttributes": "

If the event is of type ActivityTaskCompleted then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "ActivityTaskFailedEventAttributes": { + "base": "

Provides details of the ActivityTaskFailed event.

", + "refs": { + "HistoryEvent$activityTaskFailedEventAttributes": "

If the event is of type ActivityTaskFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "ActivityTaskScheduledEventAttributes": { + "base": "

Provides details of the ActivityTaskScheduled event.

", + "refs": { + "HistoryEvent$activityTaskScheduledEventAttributes": "

If the event is of type ActivityTaskScheduled then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "ActivityTaskStartedEventAttributes": { + "base": "

Provides details of the ActivityTaskStarted event.

", + "refs": { + "HistoryEvent$activityTaskStartedEventAttributes": "

If the event is of type ActivityTaskStarted then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "ActivityTaskStatus": { + "base": "

Status information about an activity task.

", + "refs": { + } + }, + "ActivityTaskTimedOutEventAttributes": { + "base": "

Provides details of the ActivityTaskTimedOut event.

", + "refs": { + "HistoryEvent$activityTaskTimedOutEventAttributes": "

If the event is of type ActivityTaskTimedOut then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "ActivityTaskTimeoutType": { + "base": null, + "refs": { + "ActivityTaskTimedOutEventAttributes$timeoutType": "

The type of the timeout that caused this event.

" + } + }, + "ActivityType": { + "base": "

Represents an activity type.

", + "refs": { + "ActivityTask$activityType": "

The type of this activity task.

", + "ActivityTaskScheduledEventAttributes$activityType": "

The type of the activity task.

", + "ActivityTypeInfo$activityType": "

The ActivityType type structure representing the activity type.

", + "DeprecateActivityTypeInput$activityType": "

The activity type to deprecate.

", + "DescribeActivityTypeInput$activityType": "

The activity type to get information about. Activity types are identified by the name and version that were supplied when the activity was registered.

", + "ScheduleActivityTaskDecisionAttributes$activityType": "

Required. The type of the activity task to schedule.

", + "ScheduleActivityTaskFailedEventAttributes$activityType": "

The activity type provided in the ScheduleActivityTask decision that failed.

" + } + }, + "ActivityTypeConfiguration": { + "base": "

Configuration settings registered with the activity type.

", + "refs": { + "ActivityTypeDetail$configuration": "

The configuration settings registered with the activity type.

" + } + }, + "ActivityTypeDetail": { + "base": "

Detailed information about an activity type.

", + "refs": { + } + }, + "ActivityTypeInfo": { + "base": "

Detailed information about an activity type.

", + "refs": { + "ActivityTypeDetail$typeInfo": "

General information about the activity type.

The status of activity type (returned in the ActivityTypeInfo structure) can be one of the following.

  • REGISTERED: The type is registered and available. Workers supporting this type should be running.
  • DEPRECATED: The type was deprecated using DeprecateActivityType, but is still in use. You should keep workers supporting this type running. You cannot create new tasks of this type.
", + "ActivityTypeInfoList$member": null + } + }, + "ActivityTypeInfoList": { + "base": null, + "refs": { + "ActivityTypeInfos$typeInfos": "

List of activity type information.

" + } + }, + "ActivityTypeInfos": { + "base": "

Contains a paginated list of activity type information structures.

", + "refs": { + } + }, + "CancelTimerDecisionAttributes": { + "base": "

Provides details of the CancelTimer decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "refs": { + "Decision$cancelTimerDecisionAttributes": "

Provides details of the CancelTimer decision. It is not set for other decision types.

" + } + }, + "CancelTimerFailedCause": { + "base": null, + "refs": { + "CancelTimerFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + } + }, + "CancelTimerFailedEventAttributes": { + "base": "

Provides details of the CancelTimerFailed event.

", + "refs": { + "HistoryEvent$cancelTimerFailedEventAttributes": "

If the event is of type CancelTimerFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "CancelWorkflowExecutionDecisionAttributes": { + "base": "

Provides details of the CancelWorkflowExecution decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "refs": { + "Decision$cancelWorkflowExecutionDecisionAttributes": "

Provides details of the CancelWorkflowExecution decision. It is not set for other decision types.

" + } + }, + "CancelWorkflowExecutionFailedCause": { + "base": null, + "refs": { + "CancelWorkflowExecutionFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + } + }, + "CancelWorkflowExecutionFailedEventAttributes": { + "base": "

Provides details of the CancelWorkflowExecutionFailed event.

", + "refs": { + "HistoryEvent$cancelWorkflowExecutionFailedEventAttributes": "

If the event is of type CancelWorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "Canceled": { + "base": null, + "refs": { + "ActivityTaskStatus$cancelRequested": "

Set to true if cancellation of the task is requested.

", + "WorkflowExecutionInfo$cancelRequested": "

Set to true if a cancellation is requested for this workflow execution.

" + } + }, + "ChildPolicy": { + "base": null, + "refs": { + "ContinueAsNewWorkflowExecutionDecisionAttributes$childPolicy": "

If set, specifies the policy to use for the child workflow executions of the new execution if it is terminated by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This policy overrides the default child policy specified when registering the workflow type using RegisterWorkflowType.

The supported child policies are:

  • TERMINATE: the child executions will be terminated.
  • REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.
  • ABANDON: no action will be taken. The child executions will continue to run.
A child policy for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default child policy was specified at registration time then a fault will be returned.", + "RegisterWorkflowTypeInput$defaultChildPolicy": "

If set, specifies the default policy to use for the child workflow executions when a workflow execution of this type is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution Decision.

The supported child policies are:

  • TERMINATE: the child executions will be terminated.
  • REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.
  • ABANDON: no action will be taken. The child executions will continue to run.
", + "StartChildWorkflowExecutionDecisionAttributes$childPolicy": "

Optional. If set, specifies the policy to use for the child workflow executions if the workflow execution being started is terminated by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This policy overrides the default child policy specified when registering the workflow type using RegisterWorkflowType.

The supported child policies are:

  • TERMINATE: the child executions will be terminated.
  • REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.
  • ABANDON: no action will be taken. The child executions will continue to run.
A child policy for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default child policy was specified at registration time then a fault will be returned.", + "StartChildWorkflowExecutionInitiatedEventAttributes$childPolicy": "

The policy to use for the child workflow executions if this execution gets terminated by explicitly calling the TerminateWorkflowExecution action or due to an expired timeout.

The supported child policies are:

  • TERMINATE: the child executions will be terminated.
  • REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.
  • ABANDON: no action will be taken. The child executions will continue to run.
", + "StartWorkflowExecutionInput$childPolicy": "

If set, specifies the policy to use for the child workflow executions of this workflow execution if it is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This policy overrides the default child policy specified when registering the workflow type using RegisterWorkflowType.

The supported child policies are:

  • TERMINATE: the child executions will be terminated.
  • REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.
  • ABANDON: no action will be taken. The child executions will continue to run.
A child policy for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default child policy was specified at registration time then a fault will be returned.", + "TerminateWorkflowExecutionInput$childPolicy": "

If set, specifies the policy to use for the child workflow executions of the workflow execution being terminated. This policy overrides the child policy specified for the workflow execution at registration time or when starting the execution.

The supported child policies are:

  • TERMINATE: the child executions will be terminated.
  • REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.
  • ABANDON: no action will be taken. The child executions will continue to run.
A child policy for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default child policy was specified at registration time then a fault will be returned.", + "WorkflowExecutionConfiguration$childPolicy": "

The policy to use for the child workflow executions if this workflow execution is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout.

The supported child policies are:

  • TERMINATE: the child executions will be terminated.
  • REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.
  • ABANDON: no action will be taken. The child executions will continue to run.
", + "WorkflowExecutionContinuedAsNewEventAttributes$childPolicy": "

The policy to use for the child workflow executions of the new execution if it is terminated by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout.

The supported child policies are:

  • TERMINATE: the child executions will be terminated.
  • REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.
  • ABANDON: no action will be taken. The child executions will continue to run.
", + "WorkflowExecutionStartedEventAttributes$childPolicy": "

The policy to use for the child workflow executions if this workflow execution is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout.

The supported child policies are:

  • TERMINATE: the child executions will be terminated.
  • REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.
  • ABANDON: no action will be taken. The child executions will continue to run.
", + "WorkflowExecutionTerminatedEventAttributes$childPolicy": "

The policy used for the child workflow executions of this workflow execution.

The supported child policies are:

  • TERMINATE: the child executions will be terminated.
  • REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.
  • ABANDON: no action will be taken. The child executions will continue to run.
", + "WorkflowExecutionTimedOutEventAttributes$childPolicy": "

The policy used for the child workflow executions of this workflow execution.

The supported child policies are:

  • TERMINATE: the child executions will be terminated.
  • REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.
  • ABANDON: no action will be taken. The child executions will continue to run.
", + "WorkflowTypeConfiguration$defaultChildPolicy": "

Optional. The default policy to use for the child workflow executions when a workflow execution of this type is terminated, by calling the TerminateWorkflowExecution action explicitly or due to an expired timeout. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution Decision.

The supported child policies are:

  • TERMINATE: the child executions will be terminated.
  • REQUEST_CANCEL: a request to cancel will be attempted for each child execution by recording a WorkflowExecutionCancelRequested event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.
  • ABANDON: no action will be taken. The child executions will continue to run.
" + } + }, + "ChildWorkflowExecutionCanceledEventAttributes": { + "base": "

Provide details of the ChildWorkflowExecutionCanceled event.

", + "refs": { + "HistoryEvent$childWorkflowExecutionCanceledEventAttributes": "

If the event is of type ChildWorkflowExecutionCanceled then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "ChildWorkflowExecutionCompletedEventAttributes": { + "base": "

Provides details of the ChildWorkflowExecutionCompleted event.

", + "refs": { + "HistoryEvent$childWorkflowExecutionCompletedEventAttributes": "

If the event is of type ChildWorkflowExecutionCompleted then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "ChildWorkflowExecutionFailedEventAttributes": { + "base": "

Provides details of the ChildWorkflowExecutionFailed event.

", + "refs": { + "HistoryEvent$childWorkflowExecutionFailedEventAttributes": "

If the event is of type ChildWorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "ChildWorkflowExecutionStartedEventAttributes": { + "base": "

Provides details of the ChildWorkflowExecutionStarted event.

", + "refs": { + "HistoryEvent$childWorkflowExecutionStartedEventAttributes": "

If the event is of type ChildWorkflowExecutionStarted then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "ChildWorkflowExecutionTerminatedEventAttributes": { + "base": "

Provides details of the ChildWorkflowExecutionTerminated event.

", + "refs": { + "HistoryEvent$childWorkflowExecutionTerminatedEventAttributes": "

If the event is of type ChildWorkflowExecutionTerminated then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "ChildWorkflowExecutionTimedOutEventAttributes": { + "base": "

Provides details of the ChildWorkflowExecutionTimedOut event.

", + "refs": { + "HistoryEvent$childWorkflowExecutionTimedOutEventAttributes": "

If the event is of type ChildWorkflowExecutionTimedOut then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "CloseStatus": { + "base": null, + "refs": { + "CloseStatusFilter$status": "

Required. The close status that must match the close status of an execution for it to meet the criteria of this filter.

", + "WorkflowExecutionInfo$closeStatus": "

If the execution status is closed then this specifies how the execution was closed:

  • COMPLETED: the execution was successfully completed.
  • CANCELED: the execution was canceled.Cancellation allows the implementation to gracefully clean up before the execution is closed.
  • TERMINATED: the execution was force terminated.
  • FAILED: the execution failed to complete.
  • TIMED_OUT: the execution did not complete in the alloted time and was automatically timed out.
  • CONTINUED_AS_NEW: the execution is logically continued. This means the current execution was completed and a new execution was started to carry on the workflow.
" + } + }, + "CloseStatusFilter": { + "base": "

Used to filter the closed workflow executions in visibility APIs by their close status.

", + "refs": { + "CountClosedWorkflowExecutionsInput$closeStatusFilter": "

If specified, only workflow executions that match this close status are counted. This filter has an affect only if executionStatus is specified as CLOSED.

closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.", + "ListClosedWorkflowExecutionsInput$closeStatusFilter": "

If specified, only workflow executions that match this close status are listed. For example, if TERMINATED is specified, then only TERMINATED workflow executions are listed.

closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request." + } + }, + "CompleteWorkflowExecutionDecisionAttributes": { + "base": "

Provides details of the CompleteWorkflowExecution decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "refs": { + "Decision$completeWorkflowExecutionDecisionAttributes": "

Provides details of the CompleteWorkflowExecution decision. It is not set for other decision types.

" + } + }, + "CompleteWorkflowExecutionFailedCause": { + "base": null, + "refs": { + "CompleteWorkflowExecutionFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + } + }, + "CompleteWorkflowExecutionFailedEventAttributes": { + "base": "

Provides details of the CompleteWorkflowExecutionFailed event.

", + "refs": { + "HistoryEvent$completeWorkflowExecutionFailedEventAttributes": "

If the event is of type CompleteWorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "ContinueAsNewWorkflowExecutionDecisionAttributes": { + "base": "

Provides details of the ContinueAsNewWorkflowExecution decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • tag: Optional.. A tag used to identify the workflow execution
    • taskList: String constraint. The key is swf:taskList.name.
    • workflowType.version: String constraint. The key is swf:workflowType.version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "refs": { + "Decision$continueAsNewWorkflowExecutionDecisionAttributes": "

Provides details of the ContinueAsNewWorkflowExecution decision. It is not set for other decision types.

" + } + }, + "ContinueAsNewWorkflowExecutionFailedCause": { + "base": null, + "refs": { + "ContinueAsNewWorkflowExecutionFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + } + }, + "ContinueAsNewWorkflowExecutionFailedEventAttributes": { + "base": "

Provides details of the ContinueAsNewWorkflowExecutionFailed event.

", + "refs": { + "HistoryEvent$continueAsNewWorkflowExecutionFailedEventAttributes": "

If the event is of type ContinueAsNewWorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "Count": { + "base": null, + "refs": { + "PendingTaskCount$count": "

The number of tasks in the task list.

", + "WorkflowExecutionCount$count": "

The number of workflow executions.

", + "WorkflowExecutionOpenCounts$openActivityTasks": "

The count of activity tasks whose status is OPEN.

", + "WorkflowExecutionOpenCounts$openTimers": "

The count of timers started by this workflow execution that have not fired yet.

", + "WorkflowExecutionOpenCounts$openChildWorkflowExecutions": "

The count of child workflow executions whose status is OPEN.

" + } + }, + "CountClosedWorkflowExecutionsInput": { + "base": null, + "refs": { + } + }, + "CountOpenWorkflowExecutionsInput": { + "base": null, + "refs": { + } + }, + "CountPendingActivityTasksInput": { + "base": null, + "refs": { + } + }, + "CountPendingDecisionTasksInput": { + "base": null, + "refs": { + } + }, + "Data": { + "base": null, + "refs": { + "ActivityTask$input": "

The inputs provided when the activity task was scheduled. The form of the input is user defined and should be meaningful to the activity implementation.

", + "ActivityTaskCanceledEventAttributes$details": "

Details of the cancellation (if any).

", + "ActivityTaskCompletedEventAttributes$result": "

The results of the activity task (if any).

", + "ActivityTaskFailedEventAttributes$details": "

The details of the failure (if any).

", + "ActivityTaskScheduledEventAttributes$input": "

The input provided to the activity task.

", + "ActivityTaskScheduledEventAttributes$control": "

Optional. Data attached to the event that can be used by the decider in subsequent workflow tasks. This data is not sent to the activity.

", + "CancelWorkflowExecutionDecisionAttributes$details": "

Optional. details of the cancellation.

", + "ChildWorkflowExecutionCanceledEventAttributes$details": "

Details of the cancellation (if provided).

", + "ChildWorkflowExecutionCompletedEventAttributes$result": "

The result of the child workflow execution (if any).

", + "ChildWorkflowExecutionFailedEventAttributes$details": "

The details of the failure (if provided).

", + "CompleteWorkflowExecutionDecisionAttributes$result": "

The result of the workflow execution. The form of the result is implementation defined.

", + "ContinueAsNewWorkflowExecutionDecisionAttributes$input": "

The input provided to the new workflow execution.

", + "DecisionTaskCompletedEventAttributes$executionContext": "

User defined context for the workflow execution.

", + "FailWorkflowExecutionDecisionAttributes$details": "

Optional. Details of the failure.

", + "MarkerRecordedEventAttributes$details": "

Details of the marker (if any).

", + "RecordMarkerDecisionAttributes$details": "

Optional. details of the marker.

", + "RequestCancelExternalWorkflowExecutionDecisionAttributes$control": "

Optional. Data attached to the event that can be used by the decider in subsequent workflow tasks.

", + "RequestCancelExternalWorkflowExecutionFailedEventAttributes$control": null, + "RequestCancelExternalWorkflowExecutionInitiatedEventAttributes$control": "

Optional. Data attached to the event that can be used by the decider in subsequent workflow tasks.

", + "RespondActivityTaskCanceledInput$details": "

Optional. Information about the cancellation.

", + "RespondActivityTaskCompletedInput$result": "

The result of the activity task. It is a free form string that is implementation specific.

", + "RespondActivityTaskFailedInput$details": "

Optional. Detailed information about the failure.

", + "RespondDecisionTaskCompletedInput$executionContext": "

User defined context to add to workflow execution.

", + "ScheduleActivityTaskDecisionAttributes$control": "

Optional. Data attached to the event that can be used by the decider in subsequent workflow tasks. This data is not sent to the activity.

", + "ScheduleActivityTaskDecisionAttributes$input": "

The input provided to the activity task.

", + "SignalExternalWorkflowExecutionDecisionAttributes$input": "

Optional. Input data to be provided with the signal. The target workflow execution will use the signal name and input data to process the signal.

", + "SignalExternalWorkflowExecutionDecisionAttributes$control": "

Optional. Data attached to the event that can be used by the decider in subsequent decision tasks.

", + "SignalExternalWorkflowExecutionFailedEventAttributes$control": null, + "SignalExternalWorkflowExecutionInitiatedEventAttributes$input": "

Input provided to the signal (if any).

", + "SignalExternalWorkflowExecutionInitiatedEventAttributes$control": "

Optional. data attached to the event that can be used by the decider in subsequent decision tasks.

", + "SignalWorkflowExecutionInput$input": "

Data to attach to the WorkflowExecutionSignaled event in the target workflow execution's history.

", + "StartChildWorkflowExecutionDecisionAttributes$control": "

Optional. Data attached to the event that can be used by the decider in subsequent workflow tasks. This data is not sent to the child workflow execution.

", + "StartChildWorkflowExecutionDecisionAttributes$input": "

The input to be provided to the workflow execution.

", + "StartChildWorkflowExecutionFailedEventAttributes$control": null, + "StartChildWorkflowExecutionInitiatedEventAttributes$control": "

Optional. Data attached to the event that can be used by the decider in subsequent decision tasks. This data is not sent to the activity.

", + "StartChildWorkflowExecutionInitiatedEventAttributes$input": "

The inputs provided to the child workflow execution (if any).

", + "StartTimerDecisionAttributes$control": "

Optional. Data attached to the event that can be used by the decider in subsequent workflow tasks.

", + "StartWorkflowExecutionInput$input": "

The input for the workflow execution. This is a free form string which should be meaningful to the workflow you are starting. This input is made available to the new workflow execution in the WorkflowExecutionStarted history event.

", + "TerminateWorkflowExecutionInput$details": "

Optional. Details for terminating the workflow execution.

", + "TimerStartedEventAttributes$control": "

Optional. Data attached to the event that can be used by the decider in subsequent workflow tasks.

", + "WorkflowExecutionCanceledEventAttributes$details": "

Details for the cancellation (if any).

", + "WorkflowExecutionCompletedEventAttributes$result": "

The result produced by the workflow execution upon successful completion.

", + "WorkflowExecutionContinuedAsNewEventAttributes$input": "

The input provided to the new workflow execution.

", + "WorkflowExecutionDetail$latestExecutionContext": "

The latest executionContext provided by the decider for this workflow execution. A decider can provide an executionContext (a free-form string) when closing a decision task using RespondDecisionTaskCompleted.

", + "WorkflowExecutionFailedEventAttributes$details": "

The details of the failure (if any).

", + "WorkflowExecutionSignaledEventAttributes$input": "

Inputs provided with the signal (if any). The decider can use the signal name and inputs to determine how to process the signal.

", + "WorkflowExecutionStartedEventAttributes$input": "

The input provided to the workflow execution (if any).

", + "WorkflowExecutionTerminatedEventAttributes$details": "

The details provided for the termination (if any).

" + } + }, + "Decision": { + "base": "

Specifies a decision made by the decider. A decision can be one of these types:

  • CancelTimer: cancels a previously started timer and records a TimerCanceled event in the history.
  • CancelWorkflowExecution: closes the workflow execution and records a WorkflowExecutionCanceled event in the history.
  • CompleteWorkflowExecution: closes the workflow execution and records a WorkflowExecutionCompleted event in the history .
  • ContinueAsNewWorkflowExecution: closes the workflow execution and starts a new workflow execution of the same type using the same workflow id and a unique run Id. A WorkflowExecutionContinuedAsNew event is recorded in the history.
  • FailWorkflowExecution: closes the workflow execution and records a WorkflowExecutionFailed event in the history.
  • RecordMarker: records a MarkerRecorded event in the history. Markers can be used for adding custom information in the history for instance to let deciders know that they do not need to look at the history beyond the marker event.
  • RequestCancelActivityTask: attempts to cancel a previously scheduled activity task. If the activity task was scheduled but has not been assigned to a worker, then it will be canceled. If the activity task was already assigned to a worker, then the worker will be informed that cancellation has been requested in the response to RecordActivityTaskHeartbeat.
  • RequestCancelExternalWorkflowExecution: requests that a request be made to cancel the specified external workflow execution and records a RequestCancelExternalWorkflowExecutionInitiated event in the history.
  • ScheduleActivityTask: schedules an activity task.
  • SignalExternalWorkflowExecution: requests a signal to be delivered to the specified external workflow execution and records a SignalExternalWorkflowExecutionInitiated event in the history.
  • StartChildWorkflowExecution: requests that a child workflow execution be started and records a StartChildWorkflowExecutionInitiated event in the history. The child workflow execution is a separate workflow execution with its own history.
  • StartTimer: starts a timer for this workflow execution and records a TimerStarted event in the history. This timer will fire after the specified delay and record a TimerFired event.

Access Control

If you grant permission to use RespondDecisionTaskCompleted, you can use IAM policies to express permissions for the list of decisions returned by this action as if they were members of the API. Treating decisions as a pseudo API maintains a uniform conceptual model and helps keep policies readable. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

Decision Failure

Decisions can fail for several reasons

  • The ordering of decisions should follow a logical flow. Some decisions might not make sense in the current context of the workflow execution and will therefore fail.
  • A limit on your account was reached.
  • The decision lacks sufficient permissions.

One of the following events might be added to the history to indicate an error. The event attribute's cause parameter indicates the cause. If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

  • ScheduleActivityTaskFailed: a ScheduleActivityTask decision failed. This could happen if the activity type specified in the decision is not registered, is in a deprecated state, or the decision is not properly configured.
  • RequestCancelActivityTaskFailed: a RequestCancelActivityTask decision failed. This could happen if there is no open activity task with the specified activityId.
  • StartTimerFailed: a StartTimer decision failed. This could happen if there is another open timer with the same timerId.
  • CancelTimerFailed: a CancelTimer decision failed. This could happen if there is no open timer with the specified timerId.
  • StartChildWorkflowExecutionFailed: a StartChildWorkflowExecution decision failed. This could happen if the workflow type specified is not registered, is deprecated, or the decision is not properly configured.
  • SignalExternalWorkflowExecutionFailed: a SignalExternalWorkflowExecution decision failed. This could happen if the workflowID specified in the decision was incorrect.
  • RequestCancelExternalWorkflowExecutionFailed: a RequestCancelExternalWorkflowExecution decision failed. This could happen if the workflowID specified in the decision was incorrect.
  • CancelWorkflowExecutionFailed: a CancelWorkflowExecution decision failed. This could happen if there is an unhandled decision task pending in the workflow execution.
  • CompleteWorkflowExecutionFailed: a CompleteWorkflowExecution decision failed. This could happen if there is an unhandled decision task pending in the workflow execution.
  • ContinueAsNewWorkflowExecutionFailed: a ContinueAsNewWorkflowExecution decision failed. This could happen if there is an unhandled decision task pending in the workflow execution or the ContinueAsNewWorkflowExecution decision was not configured correctly.
  • FailWorkflowExecutionFailed: a FailWorkflowExecution decision failed. This could happen if there is an unhandled decision task pending in the workflow execution.

The preceding error events might occur due to an error in the decider logic, which might put the workflow execution in an unstable state The cause field in the event structure for the error event indicates the cause of the error.

A workflow execution may be closed by the decider by returning one of the following decisions when completing a decision task: CompleteWorkflowExecution, FailWorkflowExecution, CancelWorkflowExecution and ContinueAsNewWorkflowExecution. An UnhandledDecision fault will be returned if a workflow closing decision is specified and a signal or activity event had been added to the history while the decision task was being performed by the decider. Unlike the above situations which are logic issues, this fault is always possible because of race conditions in a distributed system. The right action here is to call RespondDecisionTaskCompleted without any decisions. This would result in another decision task with these new events included in the history. The decider should handle the new events and may decide to close the workflow execution.

How to Code a Decision

You code a decision by first setting the decision type field to one of the above decision values, and then set the corresponding attributes field shown below:

", + "refs": { + "DecisionList$member": null + } + }, + "DecisionList": { + "base": null, + "refs": { + "RespondDecisionTaskCompletedInput$decisions": "

The list of decisions (possibly empty) made by the decider while processing this decision task. See the docs for the Decision structure for details.

" + } + }, + "DecisionTask": { + "base": "

A structure that represents a decision task. Decision tasks are sent to deciders in order for them to make decisions.

", + "refs": { + } + }, + "DecisionTaskCompletedEventAttributes": { + "base": "

Provides details of the DecisionTaskCompleted event.

", + "refs": { + "HistoryEvent$decisionTaskCompletedEventAttributes": "

If the event is of type DecisionTaskCompleted then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "DecisionTaskScheduledEventAttributes": { + "base": "

Provides details about the DecisionTaskScheduled event.

", + "refs": { + "HistoryEvent$decisionTaskScheduledEventAttributes": "

If the event is of type DecisionTaskScheduled then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "DecisionTaskStartedEventAttributes": { + "base": "

Provides details of the DecisionTaskStarted event.

", + "refs": { + "HistoryEvent$decisionTaskStartedEventAttributes": "

If the event is of type DecisionTaskStarted then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "DecisionTaskTimedOutEventAttributes": { + "base": "

Provides details of the DecisionTaskTimedOut event.

", + "refs": { + "HistoryEvent$decisionTaskTimedOutEventAttributes": "

If the event is of type DecisionTaskTimedOut then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "DecisionTaskTimeoutType": { + "base": null, + "refs": { + "DecisionTaskTimedOutEventAttributes$timeoutType": "

The type of timeout that expired before the decision task could be completed.

" + } + }, + "DecisionType": { + "base": null, + "refs": { + "Decision$decisionType": "

Specifies the type of the decision.

" + } + }, + "DefaultUndefinedFault": { + "base": null, + "refs": { + } + }, + "DeprecateActivityTypeInput": { + "base": null, + "refs": { + } + }, + "DeprecateDomainInput": { + "base": null, + "refs": { + } + }, + "DeprecateWorkflowTypeInput": { + "base": null, + "refs": { + } + }, + "DescribeActivityTypeInput": { + "base": null, + "refs": { + } + }, + "DescribeDomainInput": { + "base": null, + "refs": { + } + }, + "DescribeWorkflowExecutionInput": { + "base": null, + "refs": { + } + }, + "DescribeWorkflowTypeInput": { + "base": null, + "refs": { + } + }, + "Description": { + "base": null, + "refs": { + "ActivityTypeInfo$description": "

The description of the activity type provided in RegisterActivityType.

", + "DomainInfo$description": "

The description of the domain provided through RegisterDomain.

", + "RegisterActivityTypeInput$description": "

A textual description of the activity type.

", + "RegisterDomainInput$description": "

A text description of the domain.

", + "RegisterWorkflowTypeInput$description": "

Textual description of the workflow type.

", + "WorkflowTypeInfo$description": "

The description of the type registered through RegisterWorkflowType.

" + } + }, + "DomainAlreadyExistsFault": { + "base": "

Returned if the specified domain already exists. You will get this fault even if the existing domain is in deprecated status.

", + "refs": { + } + }, + "DomainConfiguration": { + "base": "

Contains the configuration settings of a domain.

", + "refs": { + "DomainDetail$configuration": null + } + }, + "DomainDeprecatedFault": { + "base": "

Returned when the specified domain has been deprecated.

", + "refs": { + } + }, + "DomainDetail": { + "base": "

Contains details of a domain.

", + "refs": { + } + }, + "DomainInfo": { + "base": "

Contains general information about a domain.

", + "refs": { + "DomainDetail$domainInfo": null, + "DomainInfoList$member": null + } + }, + "DomainInfoList": { + "base": null, + "refs": { + "DomainInfos$domainInfos": "

A list of DomainInfo structures.

" + } + }, + "DomainInfos": { + "base": "

Contains a paginated collection of DomainInfo structures.

", + "refs": { + } + }, + "DomainName": { + "base": null, + "refs": { + "CountClosedWorkflowExecutionsInput$domain": "

The name of the domain containing the workflow executions to count.

", + "CountOpenWorkflowExecutionsInput$domain": "

The name of the domain containing the workflow executions to count.

", + "CountPendingActivityTasksInput$domain": "

The name of the domain that contains the task list.

", + "CountPendingDecisionTasksInput$domain": "

The name of the domain that contains the task list.

", + "DeprecateActivityTypeInput$domain": "

The name of the domain in which the activity type is registered.

", + "DeprecateDomainInput$name": "

The name of the domain to deprecate.

", + "DeprecateWorkflowTypeInput$domain": "

The name of the domain in which the workflow type is registered.

", + "DescribeActivityTypeInput$domain": "

The name of the domain in which the activity type is registered.

", + "DescribeDomainInput$name": "

The name of the domain to describe.

", + "DescribeWorkflowExecutionInput$domain": "

The name of the domain containing the workflow execution.

", + "DescribeWorkflowTypeInput$domain": "

The name of the domain in which this workflow type is registered.

", + "DomainInfo$name": "

The name of the domain. This name is unique within the account.

", + "GetWorkflowExecutionHistoryInput$domain": "

The name of the domain containing the workflow execution.

", + "ListActivityTypesInput$domain": "

The name of the domain in which the activity types have been registered.

", + "ListClosedWorkflowExecutionsInput$domain": "

The name of the domain that contains the workflow executions to list.

", + "ListOpenWorkflowExecutionsInput$domain": "

The name of the domain that contains the workflow executions to list.

", + "ListWorkflowTypesInput$domain": "

The name of the domain in which the workflow types have been registered.

", + "PollForActivityTaskInput$domain": "

The name of the domain that contains the task lists being polled.

", + "PollForDecisionTaskInput$domain": "

The name of the domain containing the task lists to poll.

", + "RegisterActivityTypeInput$domain": "

The name of the domain in which this activity is to be registered.

", + "RegisterDomainInput$name": "

Name of the domain to register. The name must be unique in the region that the domain is registered in.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", + "RegisterWorkflowTypeInput$domain": "

The name of the domain in which to register the workflow type.

", + "RequestCancelWorkflowExecutionInput$domain": "

The name of the domain containing the workflow execution to cancel.

", + "SignalWorkflowExecutionInput$domain": "

The name of the domain containing the workflow execution to signal.

", + "StartWorkflowExecutionInput$domain": "

The name of the domain in which the workflow execution is created.

", + "TerminateWorkflowExecutionInput$domain": "

The domain of the workflow execution to terminate.

" + } + }, + "DurationInDays": { + "base": null, + "refs": { + "DomainConfiguration$workflowExecutionRetentionPeriodInDays": "

The retention period for workflow executions in this domain.

", + "RegisterDomainInput$workflowExecutionRetentionPeriodInDays": "

The duration (in days) that records and histories of workflow executions on the domain should be kept by the service. After the retention period, the workflow execution is not available in the results of visibility calls.

If you pass the value NONE or 0 (zero), then the workflow execution history will not be retained. As soon as the workflow execution completes, the execution record and its history are deleted.

The maximum workflow execution retention period is 90 days. For more information about Amazon SWF service limits, see: Amazon SWF Service Limits in the Amazon SWF Developer Guide.

" + } + }, + "DurationInSeconds": { + "base": null, + "refs": { + "StartTimerDecisionAttributes$startToFireTimeout": "

Required. The duration to wait before firing the timer.

The duration is specified in seconds; an integer greater than or equal to 0.

", + "TimerStartedEventAttributes$startToFireTimeout": "

The duration of time after which the timer will fire.

The duration is specified in seconds; an integer greater than or equal to 0.

", + "WorkflowExecutionConfiguration$taskStartToCloseTimeout": "

The maximum duration allowed for decision tasks for this workflow execution.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", + "WorkflowExecutionConfiguration$executionStartToCloseTimeout": "

The total duration for this workflow execution.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

" + } + }, + "DurationInSecondsOptional": { + "base": null, + "refs": { + "ActivityTaskScheduledEventAttributes$scheduleToStartTimeout": "

The maximum amount of time the activity task can wait to be assigned to a worker.

", + "ActivityTaskScheduledEventAttributes$scheduleToCloseTimeout": "

The maximum amount of time for this activity task.

", + "ActivityTaskScheduledEventAttributes$startToCloseTimeout": "

The maximum amount of time a worker may take to process the activity task.

", + "ActivityTaskScheduledEventAttributes$heartbeatTimeout": "

The maximum time before which the worker processing this task must report progress by calling RecordActivityTaskHeartbeat. If the timeout is exceeded, the activity task is automatically timed out. If the worker subsequently attempts to record a heartbeat or return a result, it will be ignored.

", + "ActivityTypeConfiguration$defaultTaskStartToCloseTimeout": "

Optional. The default maximum duration for tasks of an activity type specified when registering the activity type. You can override this default when scheduling a task through the ScheduleActivityTask Decision.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", + "ActivityTypeConfiguration$defaultTaskHeartbeatTimeout": "

Optional. The default maximum time, in seconds, before which a worker processing a task must report progress by calling RecordActivityTaskHeartbeat.

You can specify this value only when registering an activity type. The registered default value can be overridden when you schedule a task through the ScheduleActivityTask Decision. If the activity worker subsequently attempts to record a heartbeat or returns a result, the activity worker receives an UnknownResource fault. In this case, Amazon SWF no longer considers the activity task to be valid; the activity worker should clean up the activity task.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", + "ActivityTypeConfiguration$defaultTaskScheduleToStartTimeout": "

Optional. The default maximum duration, specified when registering the activity type, that a task of an activity type can wait before being assigned to a worker. You can override this default when scheduling a task through the ScheduleActivityTask Decision.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", + "ActivityTypeConfiguration$defaultTaskScheduleToCloseTimeout": "

Optional. The default maximum duration, specified when registering the activity type, for tasks of this activity type. You can override this default when scheduling a task through the ScheduleActivityTask Decision.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", + "ContinueAsNewWorkflowExecutionDecisionAttributes$executionStartToCloseTimeout": "

If set, specifies the total duration for this workflow execution. This overrides the defaultExecutionStartToCloseTimeout specified when registering the workflow type.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

An execution start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this field. If neither this field is set nor a default execution start-to-close timeout was specified at registration time then a fault will be returned.", + "ContinueAsNewWorkflowExecutionDecisionAttributes$taskStartToCloseTimeout": "

Specifies the maximum duration of decision tasks for the new workflow execution. This parameter overrides the defaultTaskStartToCloseTimout specified when registering the workflow type using RegisterWorkflowType.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

A task start-to-close timeout for the new workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task start-to-close timeout was specified at registration time then a fault will be returned.", + "DecisionTaskScheduledEventAttributes$startToCloseTimeout": "

The maximum duration for this decision task. The task is considered timed out if it does not completed within this duration.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", + "RegisterActivityTypeInput$defaultTaskStartToCloseTimeout": "

If set, specifies the default maximum duration that a worker can take to process tasks of this activity type. This default can be overridden when scheduling an activity task using the ScheduleActivityTask Decision.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", + "RegisterActivityTypeInput$defaultTaskHeartbeatTimeout": "

If set, specifies the default maximum time before which a worker processing a task of this type must report progress by calling RecordActivityTaskHeartbeat. If the timeout is exceeded, the activity task is automatically timed out. This default can be overridden when scheduling an activity task using the ScheduleActivityTask Decision. If the activity worker subsequently attempts to record a heartbeat or returns a result, the activity worker receives an UnknownResource fault. In this case, Amazon SWF no longer considers the activity task to be valid; the activity worker should clean up the activity task.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", + "RegisterActivityTypeInput$defaultTaskScheduleToStartTimeout": "

If set, specifies the default maximum duration that a task of this activity type can wait before being assigned to a worker. This default can be overridden when scheduling an activity task using the ScheduleActivityTask Decision.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", + "RegisterActivityTypeInput$defaultTaskScheduleToCloseTimeout": "

If set, specifies the default maximum duration for a task of this activity type. This default can be overridden when scheduling an activity task using the ScheduleActivityTask Decision.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", + "RegisterWorkflowTypeInput$defaultTaskStartToCloseTimeout": "

If set, specifies the default maximum duration of decision tasks for this workflow type. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution Decision.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", + "RegisterWorkflowTypeInput$defaultExecutionStartToCloseTimeout": "

If set, specifies the default maximum duration for executions of this workflow type. You can override this default when starting an execution through the StartWorkflowExecution Action or StartChildWorkflowExecution Decision.

The duration is specified in seconds; an integer greater than or equal to 0. Unlike some of the other timeout parameters in Amazon SWF, you cannot specify a value of \"NONE\" for defaultExecutionStartToCloseTimeout; there is a one-year max limit on the time that a workflow execution can run. Exceeding this limit will always cause the workflow execution to time out.

", + "ScheduleActivityTaskDecisionAttributes$scheduleToCloseTimeout": "

The maximum duration for this activity task.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

A schedule-to-close timeout for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default schedule-to-close timeout was specified at registration time then a fault will be returned.", + "ScheduleActivityTaskDecisionAttributes$scheduleToStartTimeout": "

Optional. If set, specifies the maximum duration the activity task can wait to be assigned to a worker. This overrides the default schedule-to-start timeout specified when registering the activity type using RegisterActivityType.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

A schedule-to-start timeout for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default schedule-to-start timeout was specified at registration time then a fault will be returned.", + "ScheduleActivityTaskDecisionAttributes$startToCloseTimeout": "

If set, specifies the maximum duration a worker may take to process this activity task. This overrides the default start-to-close timeout specified when registering the activity type using RegisterActivityType.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

A start-to-close timeout for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default start-to-close timeout was specified at registration time then a fault will be returned.", + "ScheduleActivityTaskDecisionAttributes$heartbeatTimeout": "

If set, specifies the maximum time before which a worker processing a task of this type must report progress by calling RecordActivityTaskHeartbeat. If the timeout is exceeded, the activity task is automatically timed out. If the worker subsequently attempts to record a heartbeat or returns a result, it will be ignored. This overrides the default heartbeat timeout specified when registering the activity type using RegisterActivityType.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", + "StartChildWorkflowExecutionDecisionAttributes$executionStartToCloseTimeout": "

The total duration for this workflow execution. This overrides the defaultExecutionStartToCloseTimeout specified when registering the workflow type.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

An execution start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default execution start-to-close timeout was specified at registration time then a fault will be returned.", + "StartChildWorkflowExecutionDecisionAttributes$taskStartToCloseTimeout": "

Specifies the maximum duration of decision tasks for this workflow execution. This parameter overrides the defaultTaskStartToCloseTimout specified when registering the workflow type using RegisterWorkflowType.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

A task start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task start-to-close timeout was specified at registration time then a fault will be returned.", + "StartChildWorkflowExecutionInitiatedEventAttributes$executionStartToCloseTimeout": "

The maximum duration for the child workflow execution. If the workflow execution is not closed within this duration, it will be timed out and force terminated.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", + "StartChildWorkflowExecutionInitiatedEventAttributes$taskStartToCloseTimeout": "

The maximum duration allowed for the decision tasks for this workflow execution.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", + "StartWorkflowExecutionInput$executionStartToCloseTimeout": "

The total duration for this workflow execution. This overrides the defaultExecutionStartToCloseTimeout specified when registering the workflow type.

The duration is specified in seconds; an integer greater than or equal to 0. Exceeding this limit will cause the workflow execution to time out. Unlike some of the other timeout parameters in Amazon SWF, you cannot specify a value of \"NONE\" for this timeout; there is a one-year max limit on the time that a workflow execution can run.

An execution start-to-close timeout must be specified either through this parameter or as a default when the workflow type is registered. If neither this parameter nor a default execution start-to-close timeout is specified, a fault is returned.", + "StartWorkflowExecutionInput$taskStartToCloseTimeout": "

Specifies the maximum duration of decision tasks for this workflow execution. This parameter overrides the defaultTaskStartToCloseTimout specified when registering the workflow type using RegisterWorkflowType.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

A task start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task start-to-close timeout was specified at registration time then a fault will be returned.", + "WorkflowExecutionContinuedAsNewEventAttributes$executionStartToCloseTimeout": "

The total duration allowed for the new workflow execution.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", + "WorkflowExecutionContinuedAsNewEventAttributes$taskStartToCloseTimeout": "

The maximum duration of decision tasks for the new workflow execution.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", + "WorkflowExecutionStartedEventAttributes$executionStartToCloseTimeout": "

The maximum duration for this workflow execution.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", + "WorkflowExecutionStartedEventAttributes$taskStartToCloseTimeout": "

The maximum duration of decision tasks for this workflow type.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", + "WorkflowTypeConfiguration$defaultTaskStartToCloseTimeout": "

Optional. The default maximum duration, specified when registering the workflow type, that a decision task for executions of this workflow type might take before returning completion or failure. If the task does not close in the specified time then the task is automatically timed out and rescheduled. If the decider eventually reports a completion or failure, it is ignored. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution Decision.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

", + "WorkflowTypeConfiguration$defaultExecutionStartToCloseTimeout": "

Optional. The default maximum duration, specified when registering the workflow type, for executions of this workflow type. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution Decision.

The duration is specified in seconds; an integer greater than or equal to 0. The value \"NONE\" can be used to specify unlimited duration.

" + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "DefaultUndefinedFault$message": null, + "DomainAlreadyExistsFault$message": "

A description that may help with diagnosing the cause of the fault.

", + "DomainDeprecatedFault$message": "

A description that may help with diagnosing the cause of the fault.

", + "LimitExceededFault$message": "

A description that may help with diagnosing the cause of the fault.

", + "OperationNotPermittedFault$message": "

A description that may help with diagnosing the cause of the fault.

", + "TypeAlreadyExistsFault$message": "

A description that may help with diagnosing the cause of the fault.

", + "TypeDeprecatedFault$message": "

A description that may help with diagnosing the cause of the fault.

", + "UnknownResourceFault$message": "

A description that may help with diagnosing the cause of the fault.

", + "WorkflowExecutionAlreadyStartedFault$message": "

A description that may help with diagnosing the cause of the fault.

" + } + }, + "EventId": { + "base": null, + "refs": { + "ActivityTask$startedEventId": "

The id of the ActivityTaskStarted event recorded in the history.

", + "ActivityTaskCancelRequestedEventAttributes$decisionTaskCompletedEventId": "

The id of the DecisionTaskCompleted event corresponding to the decision task that resulted in the RequestCancelActivityTask decision for this cancellation request. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ActivityTaskCanceledEventAttributes$scheduledEventId": "

The id of the ActivityTaskScheduled event that was recorded when this activity task was scheduled. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ActivityTaskCanceledEventAttributes$startedEventId": "

The Id of the ActivityTaskStarted event recorded when this activity task was started. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ActivityTaskCanceledEventAttributes$latestCancelRequestedEventId": "

If set, contains the Id of the last ActivityTaskCancelRequested event recorded for this activity task. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ActivityTaskCompletedEventAttributes$scheduledEventId": "

The id of the ActivityTaskScheduled event that was recorded when this activity task was scheduled. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ActivityTaskCompletedEventAttributes$startedEventId": "

The Id of the ActivityTaskStarted event recorded when this activity task was started. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ActivityTaskFailedEventAttributes$scheduledEventId": "

The id of the ActivityTaskScheduled event that was recorded when this activity task was scheduled. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ActivityTaskFailedEventAttributes$startedEventId": "

The Id of the ActivityTaskStarted event recorded when this activity task was started. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ActivityTaskScheduledEventAttributes$decisionTaskCompletedEventId": "

The id of the DecisionTaskCompleted event corresponding to the decision that resulted in the scheduling of this activity task. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ActivityTaskStartedEventAttributes$scheduledEventId": "

The id of the ActivityTaskScheduled event that was recorded when this activity task was scheduled. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ActivityTaskTimedOutEventAttributes$scheduledEventId": "

The id of the ActivityTaskScheduled event that was recorded when this activity task was scheduled. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ActivityTaskTimedOutEventAttributes$startedEventId": "

The Id of the ActivityTaskStarted event recorded when this activity task was started. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "CancelTimerFailedEventAttributes$decisionTaskCompletedEventId": "

The id of the DecisionTaskCompleted event corresponding to the decision task that resulted in the CancelTimer decision to cancel this timer. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "CancelWorkflowExecutionFailedEventAttributes$decisionTaskCompletedEventId": "

The id of the DecisionTaskCompleted event corresponding to the decision task that resulted in the CancelWorkflowExecution decision for this cancellation request. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ChildWorkflowExecutionCanceledEventAttributes$initiatedEventId": "

The id of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution Decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ChildWorkflowExecutionCanceledEventAttributes$startedEventId": "

The Id of the ChildWorkflowExecutionStarted event recorded when this child workflow execution was started. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ChildWorkflowExecutionCompletedEventAttributes$initiatedEventId": "

The id of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution Decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ChildWorkflowExecutionCompletedEventAttributes$startedEventId": "

The Id of the ChildWorkflowExecutionStarted event recorded when this child workflow execution was started. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ChildWorkflowExecutionFailedEventAttributes$initiatedEventId": "

The id of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution Decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ChildWorkflowExecutionFailedEventAttributes$startedEventId": "

The Id of the ChildWorkflowExecutionStarted event recorded when this child workflow execution was started. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ChildWorkflowExecutionStartedEventAttributes$initiatedEventId": "

The id of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution Decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ChildWorkflowExecutionTerminatedEventAttributes$initiatedEventId": "

The id of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution Decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ChildWorkflowExecutionTerminatedEventAttributes$startedEventId": "

The Id of the ChildWorkflowExecutionStarted event recorded when this child workflow execution was started. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ChildWorkflowExecutionTimedOutEventAttributes$initiatedEventId": "

The id of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution Decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ChildWorkflowExecutionTimedOutEventAttributes$startedEventId": "

The Id of the ChildWorkflowExecutionStarted event recorded when this child workflow execution was started. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "CompleteWorkflowExecutionFailedEventAttributes$decisionTaskCompletedEventId": "

The id of the DecisionTaskCompleted event corresponding to the decision task that resulted in the CompleteWorkflowExecution decision to complete this execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ContinueAsNewWorkflowExecutionFailedEventAttributes$decisionTaskCompletedEventId": "

The id of the DecisionTaskCompleted event corresponding to the decision task that resulted in the ContinueAsNewWorkflowExecution decision that started this execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "DecisionTask$startedEventId": "

The id of the DecisionTaskStarted event recorded in the history.

", + "DecisionTask$previousStartedEventId": "

The id of the DecisionTaskStarted event of the previous decision task of this workflow execution that was processed by the decider. This can be used to determine the events in the history new since the last decision task received by the decider.

", + "DecisionTaskCompletedEventAttributes$scheduledEventId": "

The id of the DecisionTaskScheduled event that was recorded when this decision task was scheduled. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "DecisionTaskCompletedEventAttributes$startedEventId": "

The Id of the DecisionTaskStarted event recorded when this decision task was started. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "DecisionTaskStartedEventAttributes$scheduledEventId": "

The id of the DecisionTaskScheduled event that was recorded when this decision task was scheduled. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "DecisionTaskTimedOutEventAttributes$scheduledEventId": "

The id of the DecisionTaskScheduled event that was recorded when this decision task was scheduled. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "DecisionTaskTimedOutEventAttributes$startedEventId": "

The Id of the DecisionTaskStarted event recorded when this decision task was started. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ExternalWorkflowExecutionCancelRequestedEventAttributes$initiatedEventId": "

The id of the RequestCancelExternalWorkflowExecutionInitiated event corresponding to the RequestCancelExternalWorkflowExecution decision to cancel this external workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ExternalWorkflowExecutionSignaledEventAttributes$initiatedEventId": "

The id of the SignalExternalWorkflowExecutionInitiated event corresponding to the SignalExternalWorkflowExecution decision to request this signal. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "FailWorkflowExecutionFailedEventAttributes$decisionTaskCompletedEventId": "

The id of the DecisionTaskCompleted event corresponding to the decision task that resulted in the FailWorkflowExecution decision to fail this execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "HistoryEvent$eventId": "

The system generated id of the event. This id uniquely identifies the event with in the workflow execution history.

", + "MarkerRecordedEventAttributes$decisionTaskCompletedEventId": "

The id of the DecisionTaskCompleted event corresponding to the decision task that resulted in the RecordMarker decision that requested this marker. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "RecordMarkerFailedEventAttributes$decisionTaskCompletedEventId": "

The id of the DecisionTaskCompleted event corresponding to the decision task that resulted in the RecordMarkerFailed decision for this cancellation request. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "RequestCancelActivityTaskFailedEventAttributes$decisionTaskCompletedEventId": "

The id of the DecisionTaskCompleted event corresponding to the decision task that resulted in the RequestCancelActivityTask decision for this cancellation request. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "RequestCancelExternalWorkflowExecutionFailedEventAttributes$initiatedEventId": "

The id of the RequestCancelExternalWorkflowExecutionInitiated event corresponding to the RequestCancelExternalWorkflowExecution decision to cancel this external workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "RequestCancelExternalWorkflowExecutionFailedEventAttributes$decisionTaskCompletedEventId": "

The id of the DecisionTaskCompleted event corresponding to the decision task that resulted in the RequestCancelExternalWorkflowExecution decision for this cancellation request. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "RequestCancelExternalWorkflowExecutionInitiatedEventAttributes$decisionTaskCompletedEventId": "

The id of the DecisionTaskCompleted event corresponding to the decision task that resulted in the RequestCancelExternalWorkflowExecution decision for this cancellation request. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "ScheduleActivityTaskFailedEventAttributes$decisionTaskCompletedEventId": "

The id of the DecisionTaskCompleted event corresponding to the decision that resulted in the scheduling of this activity task. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "SignalExternalWorkflowExecutionFailedEventAttributes$initiatedEventId": "

The id of the SignalExternalWorkflowExecutionInitiated event corresponding to the SignalExternalWorkflowExecution decision to request this signal. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "SignalExternalWorkflowExecutionFailedEventAttributes$decisionTaskCompletedEventId": "

The id of the DecisionTaskCompleted event corresponding to the decision task that resulted in the SignalExternalWorkflowExecution decision for this signal. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "SignalExternalWorkflowExecutionInitiatedEventAttributes$decisionTaskCompletedEventId": "

The id of the DecisionTaskCompleted event corresponding to the decision task that resulted in the SignalExternalWorkflowExecution decision for this signal. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "StartChildWorkflowExecutionFailedEventAttributes$initiatedEventId": "

The id of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution Decision to start this child workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "StartChildWorkflowExecutionFailedEventAttributes$decisionTaskCompletedEventId": "

The id of the DecisionTaskCompleted event corresponding to the decision task that resulted in the StartChildWorkflowExecution Decision to request this child workflow execution. This information can be useful for diagnosing problems by tracing back the cause of events.

", + "StartChildWorkflowExecutionInitiatedEventAttributes$decisionTaskCompletedEventId": "

The id of the DecisionTaskCompleted event corresponding to the decision task that resulted in the StartChildWorkflowExecution Decision to request this child workflow execution. This information can be useful for diagnosing problems by tracing back the cause of events.

", + "StartTimerFailedEventAttributes$decisionTaskCompletedEventId": "

The id of the DecisionTaskCompleted event corresponding to the decision task that resulted in the StartTimer decision for this activity task. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "TimerCanceledEventAttributes$startedEventId": "

The id of the TimerStarted event that was recorded when this timer was started. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "TimerCanceledEventAttributes$decisionTaskCompletedEventId": "

The id of the DecisionTaskCompleted event corresponding to the decision task that resulted in the CancelTimer decision to cancel this timer. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "TimerFiredEventAttributes$startedEventId": "

The id of the TimerStarted event that was recorded when this timer was started. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "TimerStartedEventAttributes$decisionTaskCompletedEventId": "

The id of the DecisionTaskCompleted event corresponding to the decision task that resulted in the StartTimer decision for this activity task. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "WorkflowExecutionCancelRequestedEventAttributes$externalInitiatedEventId": "

The id of the RequestCancelExternalWorkflowExecutionInitiated event corresponding to the RequestCancelExternalWorkflowExecution decision to cancel this workflow execution.The source event with this Id can be found in the history of the source workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "WorkflowExecutionCanceledEventAttributes$decisionTaskCompletedEventId": "

The id of the DecisionTaskCompleted event corresponding to the decision task that resulted in the CancelWorkflowExecution decision for this cancellation request. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "WorkflowExecutionCompletedEventAttributes$decisionTaskCompletedEventId": "

The id of the DecisionTaskCompleted event corresponding to the decision task that resulted in the CompleteWorkflowExecution decision to complete this execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "WorkflowExecutionContinuedAsNewEventAttributes$decisionTaskCompletedEventId": "

The id of the DecisionTaskCompleted event corresponding to the decision task that resulted in the ContinueAsNewWorkflowExecution decision that started this execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "WorkflowExecutionFailedEventAttributes$decisionTaskCompletedEventId": "

The id of the DecisionTaskCompleted event corresponding to the decision task that resulted in the FailWorkflowExecution decision to fail this execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

", + "WorkflowExecutionSignaledEventAttributes$externalInitiatedEventId": "

The id of the SignalExternalWorkflowExecutionInitiated event corresponding to the SignalExternalWorkflow decision to signal this workflow execution.The source event with this Id can be found in the history of the source workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event. This field is set only if the signal was initiated by another workflow execution.

", + "WorkflowExecutionStartedEventAttributes$parentInitiatedEventId": "

The id of the StartChildWorkflowExecutionInitiated event corresponding to the StartChildWorkflowExecution Decision to start this workflow execution. The source event with this Id can be found in the history of the source workflow execution. This information can be useful for diagnosing problems by tracing back the chain of events leading up to this event.

" + } + }, + "EventType": { + "base": null, + "refs": { + "HistoryEvent$eventType": "

The type of the history event.

" + } + }, + "ExecutionStatus": { + "base": null, + "refs": { + "WorkflowExecutionInfo$executionStatus": "

The current status of the execution.

" + } + }, + "ExecutionTimeFilter": { + "base": "

Used to filter the workflow executions in visibility APIs by various time-based rules. Each parameter, if specified, defines a rule that must be satisfied by each returned query result. The parameter values are in the Unix Time format. For example: \"oldestDate\": 1325376070.

", + "refs": { + "CountClosedWorkflowExecutionsInput$startTimeFilter": "

If specified, only workflow executions that meet the start time criteria of the filter are counted.

startTimeFilter and closeTimeFilter are mutually exclusive. You must specify one of these in a request but not both.", + "CountClosedWorkflowExecutionsInput$closeTimeFilter": "

If specified, only workflow executions that meet the close time criteria of the filter are counted.

startTimeFilter and closeTimeFilter are mutually exclusive. You must specify one of these in a request but not both.", + "CountOpenWorkflowExecutionsInput$startTimeFilter": "

Specifies the start time criteria that workflow executions must meet in order to be counted.

", + "ListClosedWorkflowExecutionsInput$startTimeFilter": "

If specified, the workflow executions are included in the returned results based on whether their start times are within the range specified by this filter. Also, if this parameter is specified, the returned results are ordered by their start times.

startTimeFilter and closeTimeFilter are mutually exclusive. You must specify one of these in a request but not both.", + "ListClosedWorkflowExecutionsInput$closeTimeFilter": "

If specified, the workflow executions are included in the returned results based on whether their close times are within the range specified by this filter. Also, if this parameter is specified, the returned results are ordered by their close times.

startTimeFilter and closeTimeFilter are mutually exclusive. You must specify one of these in a request but not both.", + "ListOpenWorkflowExecutionsInput$startTimeFilter": "

Workflow executions are included in the returned results based on whether their start times are within the range specified by this filter.

" + } + }, + "ExternalWorkflowExecutionCancelRequestedEventAttributes": { + "base": "

Provides details of the ExternalWorkflowExecutionCancelRequested event.

", + "refs": { + "HistoryEvent$externalWorkflowExecutionCancelRequestedEventAttributes": "

If the event is of type ExternalWorkflowExecutionCancelRequested then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "ExternalWorkflowExecutionSignaledEventAttributes": { + "base": "

Provides details of the ExternalWorkflowExecutionSignaled event.

", + "refs": { + "HistoryEvent$externalWorkflowExecutionSignaledEventAttributes": "

If the event is of type ExternalWorkflowExecutionSignaled then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "FailWorkflowExecutionDecisionAttributes": { + "base": "

Provides details of the FailWorkflowExecution decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "refs": { + "Decision$failWorkflowExecutionDecisionAttributes": "

Provides details of the FailWorkflowExecution decision. It is not set for other decision types.

" + } + }, + "FailWorkflowExecutionFailedCause": { + "base": null, + "refs": { + "FailWorkflowExecutionFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + } + }, + "FailWorkflowExecutionFailedEventAttributes": { + "base": "

Provides details of the FailWorkflowExecutionFailed event.

", + "refs": { + "HistoryEvent$failWorkflowExecutionFailedEventAttributes": "

If the event is of type FailWorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "FailureReason": { + "base": null, + "refs": { + "ActivityTaskFailedEventAttributes$reason": "

The reason provided for the failure (if any).

", + "ChildWorkflowExecutionFailedEventAttributes$reason": "

The reason for the failure (if provided).

", + "FailWorkflowExecutionDecisionAttributes$reason": "

A descriptive reason for the failure that may help in diagnostics.

", + "RespondActivityTaskFailedInput$reason": "

Description of the error that may assist in diagnostics.

", + "WorkflowExecutionFailedEventAttributes$reason": "

The descriptive reason provided for the failure (if any).

" + } + }, + "GetWorkflowExecutionHistoryInput": { + "base": null, + "refs": { + } + }, + "History": { + "base": "

Paginated representation of a workflow history for a workflow execution. This is the up to date, complete and authoritative record of the events related to all tasks and events in the life of the workflow execution.

", + "refs": { + } + }, + "HistoryEvent": { + "base": "

Event within a workflow execution. A history event can be one of these types:

  • WorkflowExecutionStarted: The workflow execution was started.
  • WorkflowExecutionCompleted: The workflow execution was closed due to successful completion.
  • WorkflowExecutionFailed: The workflow execution closed due to a failure.
  • WorkflowExecutionTimedOut: The workflow execution was closed because a time out was exceeded.
  • WorkflowExecutionCanceled: The workflow execution was successfully canceled and closed.
  • WorkflowExecutionTerminated: The workflow execution was terminated.
  • WorkflowExecutionContinuedAsNew: The workflow execution was closed and a new execution of the same type was created with the same workflowId.
  • WorkflowExecutionCancelRequested: A request to cancel this workflow execution was made.
  • DecisionTaskScheduled: A decision task was scheduled for the workflow execution.
  • DecisionTaskStarted: The decision task was dispatched to a decider.
  • DecisionTaskCompleted: The decider successfully completed a decision task by calling RespondDecisionTaskCompleted.
  • DecisionTaskTimedOut: The decision task timed out.
  • ActivityTaskScheduled: An activity task was scheduled for execution.
  • ScheduleActivityTaskFailed: Failed to process ScheduleActivityTask decision. This happens when the decision is not configured properly, for example the activity type specified is not registered.
  • ActivityTaskStarted: The scheduled activity task was dispatched to a worker.
  • ActivityTaskCompleted: An activity worker successfully completed an activity task by calling RespondActivityTaskCompleted.
  • ActivityTaskFailed: An activity worker failed an activity task by calling RespondActivityTaskFailed.
  • ActivityTaskTimedOut: The activity task timed out.
  • ActivityTaskCanceled: The activity task was successfully canceled.
  • ActivityTaskCancelRequested: A RequestCancelActivityTask decision was received by the system.
  • RequestCancelActivityTaskFailed: Failed to process RequestCancelActivityTask decision. This happens when the decision is not configured properly.
  • WorkflowExecutionSignaled: An external signal was received for the workflow execution.
  • MarkerRecorded: A marker was recorded in the workflow history as the result of a RecordMarker decision.
  • TimerStarted: A timer was started for the workflow execution due to a StartTimer decision.
  • StartTimerFailed: Failed to process StartTimer decision. This happens when the decision is not configured properly, for example a timer already exists with the specified timer Id.
  • TimerFired: A timer, previously started for this workflow execution, fired.
  • TimerCanceled: A timer, previously started for this workflow execution, was successfully canceled.
  • CancelTimerFailed: Failed to process CancelTimer decision. This happens when the decision is not configured properly, for example no timer exists with the specified timer Id.
  • StartChildWorkflowExecutionInitiated: A request was made to start a child workflow execution.
  • StartChildWorkflowExecutionFailed: Failed to process StartChildWorkflowExecution decision. This happens when the decision is not configured properly, for example the workflow type specified is not registered.
  • ChildWorkflowExecutionStarted: A child workflow execution was successfully started.
  • ChildWorkflowExecutionCompleted: A child workflow execution, started by this workflow execution, completed successfully and was closed.
  • ChildWorkflowExecutionFailed: A child workflow execution, started by this workflow execution, failed to complete successfully and was closed.
  • ChildWorkflowExecutionTimedOut: A child workflow execution, started by this workflow execution, timed out and was closed.
  • ChildWorkflowExecutionCanceled: A child workflow execution, started by this workflow execution, was canceled and closed.
  • ChildWorkflowExecutionTerminated: A child workflow execution, started by this workflow execution, was terminated.
  • SignalExternalWorkflowExecutionInitiated: A request to signal an external workflow was made.
  • ExternalWorkflowExecutionSignaled: A signal, requested by this workflow execution, was successfully delivered to the target external workflow execution.
  • SignalExternalWorkflowExecutionFailed: The request to signal an external workflow execution failed.
  • RequestCancelExternalWorkflowExecutionInitiated: A request was made to request the cancellation of an external workflow execution.
  • ExternalWorkflowExecutionCancelRequested: Request to cancel an external workflow execution was successfully delivered to the target execution.
  • RequestCancelExternalWorkflowExecutionFailed: Request to cancel an external workflow execution failed.
", + "refs": { + "HistoryEventList$member": null + } + }, + "HistoryEventList": { + "base": null, + "refs": { + "DecisionTask$events": "

A paginated list of history events of the workflow execution. The decider uses this during the processing of the decision task.

", + "History$events": "

The list of history events.

" + } + }, + "Identity": { + "base": null, + "refs": { + "ActivityTaskStartedEventAttributes$identity": "

Identity of the worker that was assigned this task. This aids diagnostics when problems arise. The form of this identity is user defined.

", + "DecisionTaskStartedEventAttributes$identity": "

Identity of the decider making the request. This enables diagnostic tracing when problems arise. The form of this identity is user defined.

", + "PollForActivityTaskInput$identity": "

Identity of the worker making the request, recorded in the ActivityTaskStarted event in the workflow history. This enables diagnostic tracing when problems arise. The form of this identity is user defined.

", + "PollForDecisionTaskInput$identity": "

Identity of the decider making the request, which is recorded in the DecisionTaskStarted event in the workflow history. This enables diagnostic tracing when problems arise. The form of this identity is user defined.

" + } + }, + "LimitExceededFault": { + "base": "

Returned by any operation if a system imposed limitation has been reached. To address this fault you should either clean up unused resources or increase the limit by contacting AWS.

", + "refs": { + } + }, + "LimitedData": { + "base": null, + "refs": { + "ActivityTaskTimedOutEventAttributes$details": "

Contains the content of the details parameter for the last call made by the activity to RecordActivityTaskHeartbeat.

", + "RecordActivityTaskHeartbeatInput$details": "

If specified, contains details about the progress of the task.

" + } + }, + "ListActivityTypesInput": { + "base": null, + "refs": { + } + }, + "ListClosedWorkflowExecutionsInput": { + "base": null, + "refs": { + } + }, + "ListDomainsInput": { + "base": null, + "refs": { + } + }, + "ListOpenWorkflowExecutionsInput": { + "base": null, + "refs": { + } + }, + "ListWorkflowTypesInput": { + "base": null, + "refs": { + } + }, + "MarkerName": { + "base": null, + "refs": { + "MarkerRecordedEventAttributes$markerName": "

The name of the marker.

", + "RecordMarkerDecisionAttributes$markerName": "

Required. The name of the marker.

", + "RecordMarkerFailedEventAttributes$markerName": "

The marker's name.

" + } + }, + "MarkerRecordedEventAttributes": { + "base": "

Provides details of the MarkerRecorded event.

", + "refs": { + "HistoryEvent$markerRecordedEventAttributes": "

If the event is of type MarkerRecorded then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "Name": { + "base": null, + "refs": { + "ActivityType$name": "

The name of this activity.

The combination of activity type name and version must be unique within a domain.", + "ListActivityTypesInput$name": "

If specified, only lists the activity types that have this name.

", + "ListWorkflowTypesInput$name": "

If specified, lists the workflow type with this name.

", + "RegisterActivityTypeInput$name": "

The name of the activity type within the domain.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", + "RegisterWorkflowTypeInput$name": "

The name of the workflow type.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", + "TaskList$name": "

The name of the task list.

", + "WorkflowType$name": "

Required. The name of the workflow type.

The combination of workflow type name and version must be unique with in a domain.", + "WorkflowTypeFilter$name": "

Required. Name of the workflow type.

" + } + }, + "OpenDecisionTasksCount": { + "base": null, + "refs": { + "WorkflowExecutionOpenCounts$openDecisionTasks": "

The count of decision tasks whose status is OPEN. A workflow execution can have at most one open decision task.

" + } + }, + "OperationNotPermittedFault": { + "base": "

Returned when the caller does not have sufficient permissions to invoke the action.

", + "refs": { + } + }, + "PageSize": { + "base": null, + "refs": { + "GetWorkflowExecutionHistoryInput$maximumPageSize": "

The maximum number of results that will be returned per call. nextPageToken can be used to obtain futher pages of results. The default is 100, which is the maximum allowed page size. You can, however, specify a page size smaller than 100.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

", + "ListActivityTypesInput$maximumPageSize": "

The maximum number of results that will be returned per call. nextPageToken can be used to obtain futher pages of results. The default is 100, which is the maximum allowed page size. You can, however, specify a page size smaller than 100.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

", + "ListClosedWorkflowExecutionsInput$maximumPageSize": "

The maximum number of results that will be returned per call. nextPageToken can be used to obtain futher pages of results. The default is 100, which is the maximum allowed page size. You can, however, specify a page size smaller than 100.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

", + "ListDomainsInput$maximumPageSize": "

The maximum number of results that will be returned per call. nextPageToken can be used to obtain futher pages of results. The default is 100, which is the maximum allowed page size. You can, however, specify a page size smaller than 100.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

", + "ListOpenWorkflowExecutionsInput$maximumPageSize": "

The maximum number of results that will be returned per call. nextPageToken can be used to obtain futher pages of results. The default is 100, which is the maximum allowed page size. You can, however, specify a page size smaller than 100.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

", + "ListWorkflowTypesInput$maximumPageSize": "

The maximum number of results that will be returned per call. nextPageToken can be used to obtain futher pages of results. The default is 100, which is the maximum allowed page size. You can, however, specify a page size smaller than 100.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

", + "PollForDecisionTaskInput$maximumPageSize": "

The maximum number of results that will be returned per call. nextPageToken can be used to obtain futher pages of results. The default is 100, which is the maximum allowed page size. You can, however, specify a page size smaller than 100.

This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.

" + } + }, + "PageToken": { + "base": null, + "refs": { + "ActivityTypeInfos$nextPageToken": "

If a NextPageToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextPageToken. Keep all other arguments unchanged.

The configured maximumPageSize determines how many results can be returned in a single call.

", + "DecisionTask$nextPageToken": "

If a NextPageToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextPageToken. Keep all other arguments unchanged.

The configured maximumPageSize determines how many results can be returned in a single call.

", + "DomainInfos$nextPageToken": "

If a NextPageToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextPageToken. Keep all other arguments unchanged.

The configured maximumPageSize determines how many results can be returned in a single call.

", + "GetWorkflowExecutionHistoryInput$nextPageToken": "

If a NextPageToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextPageToken. Keep all other arguments unchanged.

The configured maximumPageSize determines how many results can be returned in a single call.

", + "History$nextPageToken": "

If a NextPageToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextPageToken. Keep all other arguments unchanged.

The configured maximumPageSize determines how many results can be returned in a single call.

", + "ListActivityTypesInput$nextPageToken": "

If a NextPageToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextPageToken. Keep all other arguments unchanged.

The configured maximumPageSize determines how many results can be returned in a single call.

", + "ListClosedWorkflowExecutionsInput$nextPageToken": "

If a NextPageToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextPageToken. Keep all other arguments unchanged.

The configured maximumPageSize determines how many results can be returned in a single call.

", + "ListDomainsInput$nextPageToken": "

If a NextPageToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextPageToken. Keep all other arguments unchanged.

The configured maximumPageSize determines how many results can be returned in a single call.

", + "ListOpenWorkflowExecutionsInput$nextPageToken": "

If a NextPageToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextPageToken. Keep all other arguments unchanged.

The configured maximumPageSize determines how many results can be returned in a single call.

", + "ListWorkflowTypesInput$nextPageToken": "

If a NextPageToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextPageToken. Keep all other arguments unchanged.

The configured maximumPageSize determines how many results can be returned in a single call.

", + "PollForDecisionTaskInput$nextPageToken": "

If a NextPageToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextPageToken. Keep all other arguments unchanged.

The configured maximumPageSize determines how many results can be returned in a single call.

The nextPageToken returned by this action cannot be used with GetWorkflowExecutionHistory to get the next page. You must call PollForDecisionTask again (with the nextPageToken) to retrieve the next page of history records. Calling PollForDecisionTask with a nextPageToken will not return a new decision task..", + "WorkflowExecutionInfos$nextPageToken": "

If a NextPageToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextPageToken. Keep all other arguments unchanged.

The configured maximumPageSize determines how many results can be returned in a single call.

", + "WorkflowTypeInfos$nextPageToken": "

If a NextPageToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in nextPageToken. Keep all other arguments unchanged.

The configured maximumPageSize determines how many results can be returned in a single call.

" + } + }, + "PendingTaskCount": { + "base": "

Contains the count of tasks in a task list.

", + "refs": { + } + }, + "PollForActivityTaskInput": { + "base": null, + "refs": { + } + }, + "PollForDecisionTaskInput": { + "base": null, + "refs": { + } + }, + "RecordActivityTaskHeartbeatInput": { + "base": null, + "refs": { + } + }, + "RecordMarkerDecisionAttributes": { + "base": "

Provides details of the RecordMarker decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "refs": { + "Decision$recordMarkerDecisionAttributes": "

Provides details of the RecordMarker decision. It is not set for other decision types.

" + } + }, + "RecordMarkerFailedCause": { + "base": null, + "refs": { + "RecordMarkerFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + } + }, + "RecordMarkerFailedEventAttributes": { + "base": "

Provides details of the RecordMarkerFailed event.

", + "refs": { + "HistoryEvent$recordMarkerFailedEventAttributes": "

If the event is of type DecisionTaskFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "RegisterActivityTypeInput": { + "base": null, + "refs": { + } + }, + "RegisterDomainInput": { + "base": null, + "refs": { + } + }, + "RegisterWorkflowTypeInput": { + "base": null, + "refs": { + } + }, + "RegistrationStatus": { + "base": null, + "refs": { + "ActivityTypeInfo$status": "

The current status of the activity type.

", + "DomainInfo$status": "

The status of the domain:

  • REGISTERED: The domain is properly registered and available. You can use this domain for registering types and creating new workflow executions.
  • DEPRECATED: The domain was deprecated using DeprecateDomain, but is still in use. You should not create new workflow executions in this domain.
", + "ListActivityTypesInput$registrationStatus": "

Specifies the registration status of the activity types to list.

", + "ListDomainsInput$registrationStatus": "

Specifies the registration status of the domains to list.

", + "ListWorkflowTypesInput$registrationStatus": "

Specifies the registration status of the workflow types to list.

", + "WorkflowTypeInfo$status": "

The current status of the workflow type.

" + } + }, + "RequestCancelActivityTaskDecisionAttributes": { + "base": "

Provides details of the RequestCancelActivityTask decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "refs": { + "Decision$requestCancelActivityTaskDecisionAttributes": "

Provides details of the RequestCancelActivityTask decision. It is not set for other decision types.

" + } + }, + "RequestCancelActivityTaskFailedCause": { + "base": null, + "refs": { + "RequestCancelActivityTaskFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + } + }, + "RequestCancelActivityTaskFailedEventAttributes": { + "base": "

Provides details of the RequestCancelActivityTaskFailed event.

", + "refs": { + "HistoryEvent$requestCancelActivityTaskFailedEventAttributes": "

If the event is of type RequestCancelActivityTaskFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "RequestCancelExternalWorkflowExecutionDecisionAttributes": { + "base": "

Provides details of the RequestCancelExternalWorkflowExecution decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "refs": { + "Decision$requestCancelExternalWorkflowExecutionDecisionAttributes": "

Provides details of the RequestCancelExternalWorkflowExecution decision. It is not set for other decision types.

" + } + }, + "RequestCancelExternalWorkflowExecutionFailedCause": { + "base": null, + "refs": { + "RequestCancelExternalWorkflowExecutionFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + } + }, + "RequestCancelExternalWorkflowExecutionFailedEventAttributes": { + "base": "

Provides details of the RequestCancelExternalWorkflowExecutionFailed event.

", + "refs": { + "HistoryEvent$requestCancelExternalWorkflowExecutionFailedEventAttributes": "

If the event is of type RequestCancelExternalWorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "RequestCancelExternalWorkflowExecutionInitiatedEventAttributes": { + "base": "

Provides details of the RequestCancelExternalWorkflowExecutionInitiated event.

", + "refs": { + "HistoryEvent$requestCancelExternalWorkflowExecutionInitiatedEventAttributes": "

If the event is of type RequestCancelExternalWorkflowExecutionInitiated then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "RequestCancelWorkflowExecutionInput": { + "base": null, + "refs": { + } + }, + "RespondActivityTaskCanceledInput": { + "base": null, + "refs": { + } + }, + "RespondActivityTaskCompletedInput": { + "base": null, + "refs": { + } + }, + "RespondActivityTaskFailedInput": { + "base": null, + "refs": { + } + }, + "RespondDecisionTaskCompletedInput": { + "base": null, + "refs": { + } + }, + "ReverseOrder": { + "base": null, + "refs": { + "GetWorkflowExecutionHistoryInput$reverseOrder": "

When set to true, returns the events in reverse order. By default the results are returned in ascending order of the eventTimeStamp of the events.

", + "ListActivityTypesInput$reverseOrder": "

When set to true, returns the results in reverse order. By default, the results are returned in ascending alphabetical order by name of the activity types.

", + "ListClosedWorkflowExecutionsInput$reverseOrder": "

When set to true, returns the results in reverse order. By default the results are returned in descending order of the start or the close time of the executions.

", + "ListDomainsInput$reverseOrder": "

When set to true, returns the results in reverse order. By default, the results are returned in ascending alphabetical order by name of the domains.

", + "ListOpenWorkflowExecutionsInput$reverseOrder": "

When set to true, returns the results in reverse order. By default the results are returned in descending order of the start time of the executions.

", + "ListWorkflowTypesInput$reverseOrder": "

When set to true, returns the results in reverse order. By default the results are returned in ascending alphabetical order of the name of the workflow types.

", + "PollForDecisionTaskInput$reverseOrder": "

When set to true, returns the events in reverse order. By default the results are returned in ascending order of the eventTimestamp of the events.

" + } + }, + "Run": { + "base": "

Specifies the runId of a workflow execution.

", + "refs": { + } + }, + "RunId": { + "base": null, + "refs": { + "Run$runId": "

The runId of a workflow execution. This Id is generated by the service and can be used to uniquely identify the workflow execution within a domain.

", + "WorkflowExecution$runId": "

A system-generated unique identifier for the workflow execution.

", + "WorkflowExecutionContinuedAsNewEventAttributes$newExecutionRunId": "

The runId of the new workflow execution.

" + } + }, + "RunIdOptional": { + "base": null, + "refs": { + "RequestCancelExternalWorkflowExecutionDecisionAttributes$runId": "

The runId of the external workflow execution to cancel.

", + "RequestCancelExternalWorkflowExecutionFailedEventAttributes$runId": "

The runId of the external workflow execution.

", + "RequestCancelExternalWorkflowExecutionInitiatedEventAttributes$runId": "

The runId of the external workflow execution to be canceled.

", + "RequestCancelWorkflowExecutionInput$runId": "

The runId of the workflow execution to cancel.

", + "SignalExternalWorkflowExecutionDecisionAttributes$runId": "

The runId of the workflow execution to be signaled.

", + "SignalExternalWorkflowExecutionFailedEventAttributes$runId": "

The runId of the external workflow execution that the signal was being delivered to.

", + "SignalExternalWorkflowExecutionInitiatedEventAttributes$runId": "

The runId of the external workflow execution to send the signal to.

", + "SignalWorkflowExecutionInput$runId": "

The runId of the workflow execution to signal.

", + "TerminateWorkflowExecutionInput$runId": "

The runId of the workflow execution to terminate.

", + "WorkflowExecutionStartedEventAttributes$continuedExecutionRunId": "

If this workflow execution was started due to a ContinueAsNewWorkflowExecution decision, then it contains the runId of the previous workflow execution that was closed and continued as this execution.

" + } + }, + "ScheduleActivityTaskDecisionAttributes": { + "base": "

Provides details of the ScheduleActivityTask decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • activityType.name: String constraint. The key is swf:activityType.name.
    • activityType.version: String constraint. The key is swf:activityType.version.
    • taskList: String constraint. The key is swf:taskList.name.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "refs": { + "Decision$scheduleActivityTaskDecisionAttributes": "

Provides details of the ScheduleActivityTask decision. It is not set for other decision types.

" + } + }, + "ScheduleActivityTaskFailedCause": { + "base": null, + "refs": { + "ScheduleActivityTaskFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + } + }, + "ScheduleActivityTaskFailedEventAttributes": { + "base": "

Provides details of the ScheduleActivityTaskFailed event.

", + "refs": { + "HistoryEvent$scheduleActivityTaskFailedEventAttributes": "

If the event is of type ScheduleActivityTaskFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "SignalExternalWorkflowExecutionDecisionAttributes": { + "base": "

Provides details of the SignalExternalWorkflowExecution decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "refs": { + "Decision$signalExternalWorkflowExecutionDecisionAttributes": "

Provides details of the SignalExternalWorkflowExecution decision. It is not set for other decision types.

" + } + }, + "SignalExternalWorkflowExecutionFailedCause": { + "base": null, + "refs": { + "SignalExternalWorkflowExecutionFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + } + }, + "SignalExternalWorkflowExecutionFailedEventAttributes": { + "base": "

Provides details of the SignalExternalWorkflowExecutionFailed event.

", + "refs": { + "HistoryEvent$signalExternalWorkflowExecutionFailedEventAttributes": "

If the event is of type SignalExternalWorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "SignalExternalWorkflowExecutionInitiatedEventAttributes": { + "base": "

Provides details of the SignalExternalWorkflowExecutionInitiated event.

", + "refs": { + "HistoryEvent$signalExternalWorkflowExecutionInitiatedEventAttributes": "

If the event is of type SignalExternalWorkflowExecutionInitiated then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "SignalName": { + "base": null, + "refs": { + "SignalExternalWorkflowExecutionDecisionAttributes$signalName": "

Required. The name of the signal.The target workflow execution will use the signal name and input to process the signal.

", + "SignalExternalWorkflowExecutionInitiatedEventAttributes$signalName": "

The name of the signal.

", + "SignalWorkflowExecutionInput$signalName": "

The name of the signal. This name must be meaningful to the target workflow.

", + "WorkflowExecutionSignaledEventAttributes$signalName": "

The name of the signal received. The decider can use the signal name and inputs to determine how to the process the signal.

" + } + }, + "SignalWorkflowExecutionInput": { + "base": null, + "refs": { + } + }, + "StartChildWorkflowExecutionDecisionAttributes": { + "base": "

Provides details of the StartChildWorkflowExecution decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • Constrain the following parameters by using a Condition element with the appropriate keys.
    • tagList.member.N: The key is \"swf:tagList.N\" where N is the tag number from 0 to 4, inclusive.
    • taskList: String constraint. The key is swf:taskList.name.
    • workflowType.name: String constraint. The key is swf:workflowType.name.
    • workflowType.version: String constraint. The key is swf:workflowType.version.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "refs": { + "Decision$startChildWorkflowExecutionDecisionAttributes": "

Provides details of the StartChildWorkflowExecution decision. It is not set for other decision types.

" + } + }, + "StartChildWorkflowExecutionFailedCause": { + "base": null, + "refs": { + "StartChildWorkflowExecutionFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + } + }, + "StartChildWorkflowExecutionFailedEventAttributes": { + "base": "

Provides details of the StartChildWorkflowExecutionFailed event.

", + "refs": { + "HistoryEvent$startChildWorkflowExecutionFailedEventAttributes": "

If the event is of type StartChildWorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "StartChildWorkflowExecutionInitiatedEventAttributes": { + "base": "

Provides details of the StartChildWorkflowExecutionInitiated event.

", + "refs": { + "HistoryEvent$startChildWorkflowExecutionInitiatedEventAttributes": "

If the event is of type StartChildWorkflowExecutionInitiated then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "StartTimerDecisionAttributes": { + "base": "

Provides details of the StartTimer decision.

Access Control

You can use IAM policies to control this decision's access to Amazon SWF resources as follows:

  • Use a Resource element with the domain name to limit the action to only specified domains.
  • Use an Action element to allow or deny permission to call this action.
  • You cannot use an IAM policy to constrain this action's parameters.

If the caller does not have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's cause parameter will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows.

", + "refs": { + "Decision$startTimerDecisionAttributes": "

Provides details of the StartTimer decision. It is not set for other decision types.

" + } + }, + "StartTimerFailedCause": { + "base": null, + "refs": { + "StartTimerFailedEventAttributes$cause": "

The cause of the failure. This information is generated by the system and can be useful for diagnostic purposes.

If cause is set to OPERATION_NOT_PERMITTED, the decision failed because it lacked sufficient permissions. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows." + } + }, + "StartTimerFailedEventAttributes": { + "base": "

Provides details of the StartTimerFailed event.

", + "refs": { + "HistoryEvent$startTimerFailedEventAttributes": "

If the event is of type StartTimerFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "StartWorkflowExecutionInput": { + "base": null, + "refs": { + } + }, + "Tag": { + "base": null, + "refs": { + "TagFilter$tag": "

Required. Specifies the tag that must be associated with the execution for it to meet the filter criteria.

", + "TagList$member": null + } + }, + "TagFilter": { + "base": "

Used to filter the workflow executions in visibility APIs based on a tag.

", + "refs": { + "CountClosedWorkflowExecutionsInput$tagFilter": "

If specified, only executions that have a tag that matches the filter are counted.

closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.", + "CountOpenWorkflowExecutionsInput$tagFilter": "

If specified, only executions that have a tag that matches the filter are counted.

executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.", + "ListClosedWorkflowExecutionsInput$tagFilter": "

If specified, only executions that have the matching tag are listed.

closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.", + "ListOpenWorkflowExecutionsInput$tagFilter": "

If specified, only executions that have the matching tag are listed.

executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request." + } + }, + "TagList": { + "base": null, + "refs": { + "ContinueAsNewWorkflowExecutionDecisionAttributes$tagList": "

The list of tags to associate with the new workflow execution. A maximum of 5 tags can be specified. You can list workflow executions with a specific tag by calling ListOpenWorkflowExecutions or ListClosedWorkflowExecutions and specifying a TagFilter.

", + "StartChildWorkflowExecutionDecisionAttributes$tagList": "

The list of tags to associate with the child workflow execution. A maximum of 5 tags can be specified. You can list workflow executions with a specific tag by calling ListOpenWorkflowExecutions or ListClosedWorkflowExecutions and specifying a TagFilter.

", + "StartChildWorkflowExecutionInitiatedEventAttributes$tagList": "

The list of tags to associated with the child workflow execution.

", + "StartWorkflowExecutionInput$tagList": "

The list of tags to associate with the workflow execution. You can specify a maximum of 5 tags. You can list workflow executions with a specific tag by calling ListOpenWorkflowExecutions or ListClosedWorkflowExecutions and specifying a TagFilter.

", + "WorkflowExecutionContinuedAsNewEventAttributes$tagList": "

The list of tags associated with the new workflow execution.

", + "WorkflowExecutionInfo$tagList": "

The list of tags associated with the workflow execution. Tags can be used to identify and list workflow executions of interest through the visibility APIs. A workflow execution can have a maximum of 5 tags.

", + "WorkflowExecutionStartedEventAttributes$tagList": "

The list of tags associated with this workflow execution. An execution can have up to 5 tags.

" + } + }, + "TaskList": { + "base": "

Represents a task list.

", + "refs": { + "ActivityTaskScheduledEventAttributes$taskList": "

The task list in which the activity task has been scheduled.

", + "ActivityTypeConfiguration$defaultTaskList": "

Optional. The default task list specified for this activity type at registration. This default is used if a task list is not provided when a task is scheduled through the ScheduleActivityTask Decision. You can override the default registered task list when scheduling a task through the ScheduleActivityTask Decision.

", + "ContinueAsNewWorkflowExecutionDecisionAttributes$taskList": null, + "CountPendingActivityTasksInput$taskList": "

The name of the task list.

", + "CountPendingDecisionTasksInput$taskList": "

The name of the task list.

", + "DecisionTaskScheduledEventAttributes$taskList": "

The name of the task list in which the decision task was scheduled.

", + "PollForActivityTaskInput$taskList": "

Specifies the task list to poll for activity tasks.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", + "PollForDecisionTaskInput$taskList": "

Specifies the task list to poll for decision tasks.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", + "RegisterActivityTypeInput$defaultTaskList": "

If set, specifies the default task list to use for scheduling tasks of this activity type. This default task list is used if a task list is not provided when a task is scheduled through the ScheduleActivityTask Decision.

", + "RegisterWorkflowTypeInput$defaultTaskList": "

If set, specifies the default task list to use for scheduling decision tasks for executions of this workflow type. This default is used only if a task list is not provided when starting the execution through the StartWorkflowExecution Action or StartChildWorkflowExecution Decision.

", + "ScheduleActivityTaskDecisionAttributes$taskList": "

If set, specifies the name of the task list in which to schedule the activity task. If not specified, the defaultTaskList registered with the activity type will be used.

A task list for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default task list was specified at registration time then a fault will be returned.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", + "StartChildWorkflowExecutionDecisionAttributes$taskList": "

The name of the task list to be used for decision tasks of the child workflow execution.

A task list for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task list was specified at registration time then a fault will be returned.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", + "StartChildWorkflowExecutionInitiatedEventAttributes$taskList": "

The name of the task list used for the decision tasks of the child workflow execution.

", + "StartWorkflowExecutionInput$taskList": "

The task list to use for the decision tasks generated for this workflow execution. This overrides the defaultTaskList specified when registering the workflow type.

A task list for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task list was specified at registration time then a fault will be returned.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", + "WorkflowExecutionConfiguration$taskList": "

The task list used for the decision tasks generated for this workflow execution.

", + "WorkflowExecutionContinuedAsNewEventAttributes$taskList": null, + "WorkflowExecutionStartedEventAttributes$taskList": "

The name of the task list for scheduling the decision tasks for this workflow execution.

", + "WorkflowTypeConfiguration$defaultTaskList": "

Optional. The default task list, specified when registering the workflow type, for decisions tasks scheduled for workflow executions of this type. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution Decision.

" + } + }, + "TaskPriority": { + "base": null, + "refs": { + "ActivityTaskScheduledEventAttributes$taskPriority": "

Optional. The priority to assign to the scheduled activity task. This will override any default priority that was assigned when the activity type was registered. If not set, then the priority set on the activity type is used as the task priority.

Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide.

", + "ActivityTypeConfiguration$defaultTaskPriority": "

Optional. The default task priority for tasks of this activity type, specified at registration. If not set, then \"0\" will be used as the default priority. This default can be overridden when scheduling an activity task.

Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide.

", + "ContinueAsNewWorkflowExecutionDecisionAttributes$taskPriority": "

Optional. The task priority that, if set, specifies the priority for the decision tasks for this workflow execution. This overrides the defaultTaskPriority specified when registering the workflow type. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide.

", + "DecisionTaskScheduledEventAttributes$taskPriority": "

Optional. A task priority that, if set, specifies the priority for this decision task. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide.

", + "RegisterActivityTypeInput$defaultTaskPriority": "

The default task priority to assign to the activity type. If not assigned, then \"0\" will be used. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide.

", + "RegisterWorkflowTypeInput$defaultTaskPriority": "

The default task priority to assign to the workflow type. If not assigned, then \"0\" will be used. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide.

", + "ScheduleActivityTaskDecisionAttributes$taskPriority": "

Optional. If set, specifies the priority with which the activity task is to be assigned to a worker. This overrides the defaultTaskPriority specified when registering the activity type using RegisterActivityType. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide.

", + "StartChildWorkflowExecutionDecisionAttributes$taskPriority": "

Optional. A task priority that, if set, specifies the priority for a decision task of this workflow execution. This overrides the defaultTaskPriority specified when registering the workflow type. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide.

", + "StartChildWorkflowExecutionInitiatedEventAttributes$taskPriority": "

Optional. The priority assigned for the decision tasks for this workflow execution. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide.

", + "StartWorkflowExecutionInput$taskPriority": "

The task priority to use for this workflow execution. This will override any default priority that was assigned when the workflow type was registered. If not set, then the default task priority for the workflow type will be used. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide.

", + "WorkflowExecutionConfiguration$taskPriority": "

The priority assigned to decision tasks for this workflow execution. Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide.

", + "WorkflowExecutionContinuedAsNewEventAttributes$taskPriority": null, + "WorkflowExecutionStartedEventAttributes$taskPriority": null, + "WorkflowTypeConfiguration$defaultTaskPriority": "

Optional. The default task priority, specified when registering the workflow type, for all decision tasks of this workflow type. This default can be overridden when starting a workflow execution using the StartWorkflowExecution action or the StartChildWorkflowExecution decision.

Valid values are integers that range from Java's Integer.MIN_VALUE (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers indicate higher priority.

For more information about setting task priority, see Setting Task Priority in the Amazon Simple Workflow Developer Guide.

" + } + }, + "TaskToken": { + "base": null, + "refs": { + "ActivityTask$taskToken": "

The opaque string used as a handle on the task. This token is used by workers to communicate progress and response information back to the system about the task.

", + "DecisionTask$taskToken": "

The opaque string used as a handle on the task. This token is used by workers to communicate progress and response information back to the system about the task.

", + "RecordActivityTaskHeartbeatInput$taskToken": "

The taskToken of the ActivityTask.

taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results. ", + "RespondActivityTaskCanceledInput$taskToken": "

The taskToken of the ActivityTask.

taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results.", + "RespondActivityTaskCompletedInput$taskToken": "

The taskToken of the ActivityTask.

taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results.", + "RespondActivityTaskFailedInput$taskToken": "

The taskToken of the ActivityTask.

taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results.", + "RespondDecisionTaskCompletedInput$taskToken": "

The taskToken from the DecisionTask.

taskToken is generated by the service and should be treated as an opaque value. If the task is passed to another process, its taskToken must also be passed. This enables it to provide its progress and respond with results." + } + }, + "TerminateReason": { + "base": null, + "refs": { + "TerminateWorkflowExecutionInput$reason": "

Optional. A descriptive reason for terminating the workflow execution.

", + "WorkflowExecutionTerminatedEventAttributes$reason": "

The reason provided for the termination (if any).

" + } + }, + "TerminateWorkflowExecutionInput": { + "base": null, + "refs": { + } + }, + "TimerCanceledEventAttributes": { + "base": "

Provides details of the TimerCanceled event.

", + "refs": { + "HistoryEvent$timerCanceledEventAttributes": "

If the event is of type TimerCanceled then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "TimerFiredEventAttributes": { + "base": "

Provides details of the TimerFired event.

", + "refs": { + "HistoryEvent$timerFiredEventAttributes": "

If the event is of type TimerFired then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "TimerId": { + "base": null, + "refs": { + "CancelTimerDecisionAttributes$timerId": "

Required. The unique Id of the timer to cancel.

", + "CancelTimerFailedEventAttributes$timerId": "

The timerId provided in the CancelTimer decision that failed.

", + "StartTimerDecisionAttributes$timerId": "

Required. The unique Id of the timer.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", + "StartTimerFailedEventAttributes$timerId": "

The timerId provided in the StartTimer decision that failed.

", + "TimerCanceledEventAttributes$timerId": "

The unique Id of the timer that was canceled.

", + "TimerFiredEventAttributes$timerId": "

The unique Id of the timer that fired.

", + "TimerStartedEventAttributes$timerId": "

The unique Id of the timer that was started.

" + } + }, + "TimerStartedEventAttributes": { + "base": "

Provides details of the TimerStarted event.

", + "refs": { + "HistoryEvent$timerStartedEventAttributes": "

If the event is of type TimerStarted then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "Timestamp": { + "base": null, + "refs": { + "ActivityTypeInfo$creationDate": "

The date and time this activity type was created through RegisterActivityType.

", + "ActivityTypeInfo$deprecationDate": "

If DEPRECATED, the date and time DeprecateActivityType was called.

", + "ExecutionTimeFilter$oldestDate": "

Specifies the oldest start or close date and time to return.

", + "ExecutionTimeFilter$latestDate": "

Specifies the latest start or close date and time to return.

", + "HistoryEvent$eventTimestamp": "

The date and time when the event occurred.

", + "WorkflowExecutionDetail$latestActivityTaskTimestamp": "

The time when the last activity task was scheduled for this workflow execution. You can use this information to determine if the workflow has not made progress for an unusually long period of time and might require a corrective action.

", + "WorkflowExecutionInfo$startTimestamp": "

The time when the execution was started.

", + "WorkflowExecutionInfo$closeTimestamp": "

The time when the workflow execution was closed. Set only if the execution status is CLOSED.

", + "WorkflowTypeInfo$creationDate": "

The date when this type was registered.

", + "WorkflowTypeInfo$deprecationDate": "

If the type is in deprecated state, then it is set to the date when the type was deprecated.

" + } + }, + "Truncated": { + "base": null, + "refs": { + "PendingTaskCount$truncated": "

If set to true, indicates that the actual count was more than the maximum supported by this API and the count returned is the truncated value.

", + "WorkflowExecutionCount$truncated": "

If set to true, indicates that the actual count was more than the maximum supported by this API and the count returned is the truncated value.

" + } + }, + "TypeAlreadyExistsFault": { + "base": "

Returned if the type already exists in the specified domain. You will get this fault even if the existing type is in deprecated status. You can specify another version if the intent is to create a new distinct version of the type.

", + "refs": { + } + }, + "TypeDeprecatedFault": { + "base": "

Returned when the specified activity or workflow type was already deprecated.

", + "refs": { + } + }, + "UnknownResourceFault": { + "base": "

Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.

", + "refs": { + } + }, + "Version": { + "base": null, + "refs": { + "ActivityType$version": "

The version of this activity.

The combination of activity type name and version must be unique with in a domain.", + "ContinueAsNewWorkflowExecutionDecisionAttributes$workflowTypeVersion": null, + "RegisterActivityTypeInput$version": "

The version of the activity type.

The activity type consists of the name and version, the combination of which must be unique within the domain.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", + "RegisterWorkflowTypeInput$version": "

The version of the workflow type.

The workflow type consists of the name and version, the combination of which must be unique within the domain. To get a list of all currently registered workflow types, use the ListWorkflowTypes action.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", + "WorkflowType$version": "

Required. The version of the workflow type.

The combination of workflow type name and version must be unique with in a domain." + } + }, + "VersionOptional": { + "base": null, + "refs": { + "WorkflowTypeFilter$version": "

Version of the workflow type.

" + } + }, + "WorkflowExecution": { + "base": "

Represents a workflow execution.

", + "refs": { + "ActivityTask$workflowExecution": "

The workflow execution that started this activity task.

", + "ChildWorkflowExecutionCanceledEventAttributes$workflowExecution": "

The child workflow execution that was canceled.

", + "ChildWorkflowExecutionCompletedEventAttributes$workflowExecution": "

The child workflow execution that was completed.

", + "ChildWorkflowExecutionFailedEventAttributes$workflowExecution": "

The child workflow execution that failed.

", + "ChildWorkflowExecutionStartedEventAttributes$workflowExecution": "

The child workflow execution that was started.

", + "ChildWorkflowExecutionTerminatedEventAttributes$workflowExecution": "

The child workflow execution that was terminated.

", + "ChildWorkflowExecutionTimedOutEventAttributes$workflowExecution": "

The child workflow execution that timed out.

", + "DecisionTask$workflowExecution": "

The workflow execution for which this decision task was created.

", + "DescribeWorkflowExecutionInput$execution": "

The workflow execution to describe.

", + "ExternalWorkflowExecutionCancelRequestedEventAttributes$workflowExecution": "

The external workflow execution to which the cancellation request was delivered.

", + "ExternalWorkflowExecutionSignaledEventAttributes$workflowExecution": "

The external workflow execution that the signal was delivered to.

", + "GetWorkflowExecutionHistoryInput$execution": "

Specifies the workflow execution for which to return the history.

", + "WorkflowExecutionCancelRequestedEventAttributes$externalWorkflowExecution": "

The external workflow execution for which the cancellation was requested.

", + "WorkflowExecutionInfo$execution": "

The workflow execution this information is about.

", + "WorkflowExecutionInfo$parent": "

If this workflow execution is a child of another execution then contains the workflow execution that started this execution.

", + "WorkflowExecutionSignaledEventAttributes$externalWorkflowExecution": "

The workflow execution that sent the signal. This is set only of the signal was sent by another workflow execution.

", + "WorkflowExecutionStartedEventAttributes$parentWorkflowExecution": "

The source workflow execution that started this workflow execution. The member is not set if the workflow execution was not started by a workflow.

" + } + }, + "WorkflowExecutionAlreadyStartedFault": { + "base": "

Returned by StartWorkflowExecution when an open execution with the same workflowId is already running in the specified domain.

", + "refs": { + } + }, + "WorkflowExecutionCancelRequestedCause": { + "base": null, + "refs": { + "WorkflowExecutionCancelRequestedEventAttributes$cause": "

If set, indicates that the request to cancel the workflow execution was automatically generated, and specifies the cause. This happens if the parent workflow execution times out or is terminated, and the child policy is set to cancel child executions.

" + } + }, + "WorkflowExecutionCancelRequestedEventAttributes": { + "base": "

Provides details of the WorkflowExecutionCancelRequested event.

", + "refs": { + "HistoryEvent$workflowExecutionCancelRequestedEventAttributes": "

If the event is of type WorkflowExecutionCancelRequested then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "WorkflowExecutionCanceledEventAttributes": { + "base": "

Provides details of the WorkflowExecutionCanceled event.

", + "refs": { + "HistoryEvent$workflowExecutionCanceledEventAttributes": "

If the event is of type WorkflowExecutionCanceled then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "WorkflowExecutionCompletedEventAttributes": { + "base": "

Provides details of the WorkflowExecutionCompleted event.

", + "refs": { + "HistoryEvent$workflowExecutionCompletedEventAttributes": "

If the event is of type WorkflowExecutionCompleted then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "WorkflowExecutionConfiguration": { + "base": "

The configuration settings for a workflow execution including timeout values, tasklist etc. These configuration settings are determined from the defaults specified when registering the workflow type and those specified when starting the workflow execution.

", + "refs": { + "WorkflowExecutionDetail$executionConfiguration": "

The configuration settings for this workflow execution including timeout values, tasklist etc.

" + } + }, + "WorkflowExecutionContinuedAsNewEventAttributes": { + "base": "

Provides details of the WorkflowExecutionContinuedAsNew event.

", + "refs": { + "HistoryEvent$workflowExecutionContinuedAsNewEventAttributes": "

If the event is of type WorkflowExecutionContinuedAsNew then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "WorkflowExecutionCount": { + "base": "

Contains the count of workflow executions returned from CountOpenWorkflowExecutions or CountClosedWorkflowExecutions

", + "refs": { + } + }, + "WorkflowExecutionDetail": { + "base": "

Contains details about a workflow execution.

", + "refs": { + } + }, + "WorkflowExecutionFailedEventAttributes": { + "base": "

Provides details of the WorkflowExecutionFailed event.

", + "refs": { + "HistoryEvent$workflowExecutionFailedEventAttributes": "

If the event is of type WorkflowExecutionFailed then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "WorkflowExecutionFilter": { + "base": "

Used to filter the workflow executions in visibility APIs by their workflowId.

", + "refs": { + "CountClosedWorkflowExecutionsInput$executionFilter": "

If specified, only workflow executions matching the WorkflowId in the filter are counted.

closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.", + "CountOpenWorkflowExecutionsInput$executionFilter": "

If specified, only workflow executions matching the WorkflowId in the filter are counted.

executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.", + "ListClosedWorkflowExecutionsInput$executionFilter": "

If specified, only workflow executions matching the workflow id specified in the filter are returned.

closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.", + "ListOpenWorkflowExecutionsInput$executionFilter": "

If specified, only workflow executions matching the workflow id specified in the filter are returned.

executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request." + } + }, + "WorkflowExecutionInfo": { + "base": "

Contains information about a workflow execution.

", + "refs": { + "WorkflowExecutionDetail$executionInfo": "

Information about the workflow execution.

", + "WorkflowExecutionInfoList$member": null + } + }, + "WorkflowExecutionInfoList": { + "base": null, + "refs": { + "WorkflowExecutionInfos$executionInfos": "

The list of workflow information structures.

" + } + }, + "WorkflowExecutionInfos": { + "base": "

Contains a paginated list of information about workflow executions.

", + "refs": { + } + }, + "WorkflowExecutionOpenCounts": { + "base": "

Contains the counts of open tasks, child workflow executions and timers for a workflow execution.

", + "refs": { + "WorkflowExecutionDetail$openCounts": "

The number of tasks for this workflow execution. This includes open and closed tasks of all types.

" + } + }, + "WorkflowExecutionSignaledEventAttributes": { + "base": "

Provides details of the WorkflowExecutionSignaled event.

", + "refs": { + "HistoryEvent$workflowExecutionSignaledEventAttributes": "

If the event is of type WorkflowExecutionSignaled then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "WorkflowExecutionStartedEventAttributes": { + "base": "

Provides details of WorkflowExecutionStarted event.

", + "refs": { + "HistoryEvent$workflowExecutionStartedEventAttributes": "

If the event is of type WorkflowExecutionStarted then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "WorkflowExecutionTerminatedCause": { + "base": null, + "refs": { + "WorkflowExecutionTerminatedEventAttributes$cause": "

If set, indicates that the workflow execution was automatically terminated, and specifies the cause. This happens if the parent workflow execution times out or is terminated and the child policy is set to terminate child executions.

" + } + }, + "WorkflowExecutionTerminatedEventAttributes": { + "base": "

Provides details of the WorkflowExecutionTerminated event.

", + "refs": { + "HistoryEvent$workflowExecutionTerminatedEventAttributes": "

If the event is of type WorkflowExecutionTerminated then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "WorkflowExecutionTimedOutEventAttributes": { + "base": "

Provides details of the WorkflowExecutionTimedOut event.

", + "refs": { + "HistoryEvent$workflowExecutionTimedOutEventAttributes": "

If the event is of type WorkflowExecutionTimedOut then this member is set and provides detailed information about the event. It is not set for other event types.

" + } + }, + "WorkflowExecutionTimeoutType": { + "base": null, + "refs": { + "ChildWorkflowExecutionTimedOutEventAttributes$timeoutType": "

The type of the timeout that caused the child workflow execution to time out.

", + "WorkflowExecutionTimedOutEventAttributes$timeoutType": "

The type of timeout that caused this event.

" + } + }, + "WorkflowId": { + "base": null, + "refs": { + "RequestCancelExternalWorkflowExecutionDecisionAttributes$workflowId": "

Required. The workflowId of the external workflow execution to cancel.

", + "RequestCancelExternalWorkflowExecutionFailedEventAttributes$workflowId": "

The workflowId of the external workflow to which the cancel request was to be delivered.

", + "RequestCancelExternalWorkflowExecutionInitiatedEventAttributes$workflowId": "

The workflowId of the external workflow execution to be canceled.

", + "RequestCancelWorkflowExecutionInput$workflowId": "

The workflowId of the workflow execution to cancel.

", + "SignalExternalWorkflowExecutionDecisionAttributes$workflowId": "

Required. The workflowId of the workflow execution to be signaled.

", + "SignalExternalWorkflowExecutionFailedEventAttributes$workflowId": "

The workflowId of the external workflow execution that the signal was being delivered to.

", + "SignalExternalWorkflowExecutionInitiatedEventAttributes$workflowId": "

The workflowId of the external workflow execution.

", + "SignalWorkflowExecutionInput$workflowId": "

The workflowId of the workflow execution to signal.

", + "StartChildWorkflowExecutionDecisionAttributes$workflowId": "

Required. The workflowId of the workflow execution.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", + "StartChildWorkflowExecutionFailedEventAttributes$workflowId": "

The workflowId of the child workflow execution.

", + "StartChildWorkflowExecutionInitiatedEventAttributes$workflowId": "

The workflowId of the child workflow execution.

", + "StartWorkflowExecutionInput$workflowId": "

The user defined identifier associated with the workflow execution. You can use this to associate a custom identifier with the workflow execution. You may specify the same identifier if a workflow execution is logically a restart of a previous execution. You cannot have two open workflow executions with the same workflowId at the same time.

The specified string must not start or end with whitespace. It must not contain a : (colon), / (slash), | (vertical bar), or any control characters (\\u0000-\\u001f | \\u007f - \\u009f). Also, it must not contain the literal string quotarnquot.

", + "TerminateWorkflowExecutionInput$workflowId": "

The workflowId of the workflow execution to terminate.

", + "WorkflowExecution$workflowId": "

The user defined identifier associated with the workflow execution.

", + "WorkflowExecutionFilter$workflowId": "

The workflowId to pass of match the criteria of this filter.

" + } + }, + "WorkflowType": { + "base": "

Represents a workflow type.

", + "refs": { + "ChildWorkflowExecutionCanceledEventAttributes$workflowType": "

The type of the child workflow execution.

", + "ChildWorkflowExecutionCompletedEventAttributes$workflowType": "

The type of the child workflow execution.

", + "ChildWorkflowExecutionFailedEventAttributes$workflowType": "

The type of the child workflow execution.

", + "ChildWorkflowExecutionStartedEventAttributes$workflowType": "

The type of the child workflow execution.

", + "ChildWorkflowExecutionTerminatedEventAttributes$workflowType": "

The type of the child workflow execution.

", + "ChildWorkflowExecutionTimedOutEventAttributes$workflowType": "

The type of the child workflow execution.

", + "DecisionTask$workflowType": "

The type of the workflow execution for which this decision task was created.

", + "DeprecateWorkflowTypeInput$workflowType": "

The workflow type to deprecate.

", + "DescribeWorkflowTypeInput$workflowType": "

The workflow type to describe.

", + "StartChildWorkflowExecutionDecisionAttributes$workflowType": "

Required. The type of the workflow execution to be started.

", + "StartChildWorkflowExecutionFailedEventAttributes$workflowType": "

The workflow type provided in the StartChildWorkflowExecution Decision that failed.

", + "StartChildWorkflowExecutionInitiatedEventAttributes$workflowType": "

The type of the child workflow execution.

", + "StartWorkflowExecutionInput$workflowType": "

The type of the workflow to start.

", + "WorkflowExecutionContinuedAsNewEventAttributes$workflowType": null, + "WorkflowExecutionInfo$workflowType": "

The type of the workflow execution.

", + "WorkflowExecutionStartedEventAttributes$workflowType": "

The workflow type of this execution.

", + "WorkflowTypeInfo$workflowType": "

The workflow type this information is about.

" + } + }, + "WorkflowTypeConfiguration": { + "base": "

The configuration settings of a workflow type.

", + "refs": { + "WorkflowTypeDetail$configuration": "

Configuration settings of the workflow type registered through RegisterWorkflowType

" + } + }, + "WorkflowTypeDetail": { + "base": "

Contains details about a workflow type.

", + "refs": { + } + }, + "WorkflowTypeFilter": { + "base": "

Used to filter workflow execution query results by type. Each parameter, if specified, defines a rule that must be satisfied by each returned result.

", + "refs": { + "CountClosedWorkflowExecutionsInput$typeFilter": "

If specified, indicates the type of the workflow executions to be counted.

closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.", + "CountOpenWorkflowExecutionsInput$typeFilter": "

Specifies the type of the workflow executions to be counted.

executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.", + "ListClosedWorkflowExecutionsInput$typeFilter": "

If specified, only executions of the type specified in the filter are returned.

closeStatusFilter, executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.", + "ListOpenWorkflowExecutionsInput$typeFilter": "

If specified, only executions of the type specified in the filter are returned.

executionFilter, typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request." + } + }, + "WorkflowTypeInfo": { + "base": "

Contains information about a workflow type.

", + "refs": { + "WorkflowTypeDetail$typeInfo": "

General information about the workflow type.

The status of the workflow type (returned in the WorkflowTypeInfo structure) can be one of the following.

  • REGISTERED: The type is registered and available. Workers supporting this type should be running.
  • DEPRECATED: The type was deprecated using DeprecateWorkflowType, but is still in use. You should keep workers supporting this type running. You cannot create new workflow executions of this type.
", + "WorkflowTypeInfoList$member": null + } + }, + "WorkflowTypeInfoList": { + "base": null, + "refs": { + "WorkflowTypeInfos$typeInfos": "

The list of workflow type information.

" + } + }, + "WorkflowTypeInfos": { + "base": "

Contains a paginated list of information structures about workflow types.

", + "refs": { + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/swf/2012-01-25/paginators-1.json b/lib/aws-sdk/Aws/data/swf/2012-01-25/paginators-1.json new file mode 100644 index 0000000..892ee38 --- /dev/null +++ b/lib/aws-sdk/Aws/data/swf/2012-01-25/paginators-1.json @@ -0,0 +1,46 @@ +{ + "pagination": { + "GetWorkflowExecutionHistory": { + "limit_key": "maximumPageSize", + "input_token": "nextPageToken", + "output_token": "nextPageToken", + "result_key": "events" + }, + "ListActivityTypes": { + "limit_key": "maximumPageSize", + "input_token": "nextPageToken", + "output_token": "nextPageToken", + "result_key": "typeInfos" + }, + "ListClosedWorkflowExecutions": { + "limit_key": "maximumPageSize", + "input_token": "nextPageToken", + "output_token": "nextPageToken", + "result_key": "executionInfos" + }, + "ListDomains": { + "limit_key": "maximumPageSize", + "input_token": "nextPageToken", + "output_token": "nextPageToken", + "result_key": "domainInfos" + }, + "ListOpenWorkflowExecutions": { + "limit_key": "maximumPageSize", + "input_token": "nextPageToken", + "output_token": "nextPageToken", + "result_key": "executionInfos" + }, + "ListWorkflowTypes": { + "limit_key": "maximumPageSize", + "input_token": "nextPageToken", + "output_token": "nextPageToken", + "result_key": "typeInfos" + }, + "PollForDecisionTask": { + "limit_key": "maximumPageSize", + "input_token": "nextPageToken", + "output_token": "nextPageToken", + "result_key": "events" + } + } +} diff --git a/lib/aws-sdk/Aws/data/workspaces/2015-04-08/api-2.json b/lib/aws-sdk/Aws/data/workspaces/2015-04-08/api-2.json new file mode 100644 index 0000000..97ef386 --- /dev/null +++ b/lib/aws-sdk/Aws/data/workspaces/2015-04-08/api-2.json @@ -0,0 +1,519 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2015-04-08", + "endpointPrefix":"workspaces", + "jsonVersion":"1.1", + "serviceFullName":"Amazon WorkSpaces", + "signatureVersion":"v4", + "targetPrefix":"WorkspacesService", + "protocol":"json" + }, + "operations":{ + "CreateWorkspaces":{ + "name":"CreateWorkspaces", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateWorkspacesRequest"}, + "output":{"shape":"CreateWorkspacesResult"}, + "errors":[ + { + "shape":"ResourceLimitExceededException", + "exception":true + } + ] + }, + "DescribeWorkspaceBundles":{ + "name":"DescribeWorkspaceBundles", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeWorkspaceBundlesRequest"}, + "output":{"shape":"DescribeWorkspaceBundlesResult"}, + "errors":[ + { + "shape":"InvalidParameterValuesException", + "exception":true + } + ] + }, + "DescribeWorkspaceDirectories":{ + "name":"DescribeWorkspaceDirectories", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeWorkspaceDirectoriesRequest"}, + "output":{"shape":"DescribeWorkspaceDirectoriesResult"}, + "errors":[ + { + "shape":"InvalidParameterValuesException", + "exception":true + } + ] + }, + "DescribeWorkspaces":{ + "name":"DescribeWorkspaces", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeWorkspacesRequest"}, + "output":{"shape":"DescribeWorkspacesResult"}, + "errors":[ + { + "shape":"InvalidParameterValuesException", + "exception":true + }, + { + "shape":"ResourceUnavailableException", + "exception":true + } + ] + }, + "RebootWorkspaces":{ + "name":"RebootWorkspaces", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RebootWorkspacesRequest"}, + "output":{"shape":"RebootWorkspacesResult"} + }, + "RebuildWorkspaces":{ + "name":"RebuildWorkspaces", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RebuildWorkspacesRequest"}, + "output":{"shape":"RebuildWorkspacesResult"} + }, + "TerminateWorkspaces":{ + "name":"TerminateWorkspaces", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TerminateWorkspacesRequest"}, + "output":{"shape":"TerminateWorkspacesResult"} + } + }, + "shapes":{ + "ARN":{ + "type":"string", + "pattern":"^arn:aws:[A-Za-z0-9][A-za-z0-9_/.-]{0,62}:[A-za-z0-9_/.-]{0,63}:[A-za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-za-z0-9_/.-]{0,127}$" + }, + "Alias":{"type":"string"}, + "BooleanObject":{"type":"boolean"}, + "BundleId":{ + "type":"string", + "pattern":"^wsb-[0-9a-z]{8,63}$" + }, + "BundleIdList":{ + "type":"list", + "member":{"shape":"BundleId"}, + "min":1, + "max":25 + }, + "BundleList":{ + "type":"list", + "member":{"shape":"WorkspaceBundle"} + }, + "BundleOwner":{"type":"string"}, + "Compute":{ + "type":"string", + "enum":[ + "VALUE", + "STANDARD", + "PERFORMANCE" + ] + }, + "ComputeType":{ + "type":"structure", + "members":{ + "Name":{"shape":"Compute"} + } + }, + "CreateWorkspacesRequest":{ + "type":"structure", + "required":["Workspaces"], + "members":{ + "Workspaces":{"shape":"WorkspaceRequestList"} + } + }, + "CreateWorkspacesResult":{ + "type":"structure", + "members":{ + "FailedRequests":{"shape":"FailedCreateWorkspaceRequests"}, + "PendingRequests":{"shape":"WorkspaceList"} + } + }, + "DefaultOu":{"type":"string"}, + "DefaultWorkspaceCreationProperties":{ + "type":"structure", + "members":{ + "EnableWorkDocs":{"shape":"BooleanObject"}, + "EnableInternetAccess":{"shape":"BooleanObject"}, + "DefaultOu":{"shape":"DefaultOu"}, + "CustomSecurityGroupId":{"shape":"SecurityGroupId"}, + "UserEnabledAsLocalAdministrator":{"shape":"BooleanObject"} + } + }, + "DescribeWorkspaceBundlesRequest":{ + "type":"structure", + "members":{ + "BundleIds":{"shape":"BundleIdList"}, + "Owner":{"shape":"BundleOwner"}, + "NextToken":{"shape":"PaginationToken"} + } + }, + "DescribeWorkspaceBundlesResult":{ + "type":"structure", + "members":{ + "Bundles":{"shape":"BundleList"}, + "NextToken":{"shape":"PaginationToken"} + } + }, + "DescribeWorkspaceDirectoriesRequest":{ + "type":"structure", + "members":{ + "DirectoryIds":{"shape":"DirectoryIdList"}, + "NextToken":{"shape":"PaginationToken"} + } + }, + "DescribeWorkspaceDirectoriesResult":{ + "type":"structure", + "members":{ + "Directories":{"shape":"DirectoryList"}, + "NextToken":{"shape":"PaginationToken"} + } + }, + "DescribeWorkspacesRequest":{ + "type":"structure", + "members":{ + "WorkspaceIds":{"shape":"WorkspaceIdList"}, + "DirectoryId":{"shape":"DirectoryId"}, + "UserName":{"shape":"UserName"}, + "BundleId":{"shape":"BundleId"}, + "Limit":{"shape":"Limit"}, + "NextToken":{"shape":"PaginationToken"} + } + }, + "DescribeWorkspacesResult":{ + "type":"structure", + "members":{ + "Workspaces":{"shape":"WorkspaceList"}, + "NextToken":{"shape":"PaginationToken"} + } + }, + "Description":{"type":"string"}, + "DirectoryId":{ + "type":"string", + "pattern":"^d-[0-9a-f]{8,63}$" + }, + "DirectoryIdList":{ + "type":"list", + "member":{"shape":"DirectoryId"}, + "min":1, + "max":25 + }, + "DirectoryList":{ + "type":"list", + "member":{"shape":"WorkspaceDirectory"} + }, + "DirectoryName":{"type":"string"}, + "DnsIpAddresses":{ + "type":"list", + "member":{"shape":"IpAddress"} + }, + "ErrorType":{"type":"string"}, + "ExceptionMessage":{"type":"string"}, + "FailedCreateWorkspaceRequest":{ + "type":"structure", + "members":{ + "WorkspaceRequest":{"shape":"WorkspaceRequest"}, + "ErrorCode":{"shape":"ErrorType"}, + "ErrorMessage":{"shape":"Description"} + } + }, + "FailedCreateWorkspaceRequests":{ + "type":"list", + "member":{"shape":"FailedCreateWorkspaceRequest"} + }, + "FailedRebootWorkspaceRequests":{ + "type":"list", + "member":{"shape":"FailedWorkspaceChangeRequest"} + }, + "FailedRebuildWorkspaceRequests":{ + "type":"list", + "member":{"shape":"FailedWorkspaceChangeRequest"} + }, + "FailedTerminateWorkspaceRequests":{ + "type":"list", + "member":{"shape":"FailedWorkspaceChangeRequest"} + }, + "FailedWorkspaceChangeRequest":{ + "type":"structure", + "members":{ + "WorkspaceId":{"shape":"WorkspaceId"}, + "ErrorCode":{"shape":"ErrorType"}, + "ErrorMessage":{"shape":"Description"} + } + }, + "InvalidParameterValuesException":{ + "type":"structure", + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "exception":true + }, + "IpAddress":{"type":"string"}, + "Limit":{ + "type":"integer", + "min":1, + "max":25 + }, + "NonEmptyString":{ + "type":"string", + "min":1 + }, + "PaginationToken":{ + "type":"string", + "min":1, + "max":63 + }, + "RebootRequest":{ + "type":"structure", + "required":["WorkspaceId"], + "members":{ + "WorkspaceId":{"shape":"WorkspaceId"} + } + }, + "RebootWorkspaceRequests":{ + "type":"list", + "member":{"shape":"RebootRequest"}, + "min":1, + "max":25 + }, + "RebootWorkspacesRequest":{ + "type":"structure", + "required":["RebootWorkspaceRequests"], + "members":{ + "RebootWorkspaceRequests":{"shape":"RebootWorkspaceRequests"} + } + }, + "RebootWorkspacesResult":{ + "type":"structure", + "members":{ + "FailedRequests":{"shape":"FailedRebootWorkspaceRequests"} + } + }, + "RebuildRequest":{ + "type":"structure", + "required":["WorkspaceId"], + "members":{ + "WorkspaceId":{"shape":"WorkspaceId"} + } + }, + "RebuildWorkspaceRequests":{ + "type":"list", + "member":{"shape":"RebuildRequest"}, + "min":1, + "max":1 + }, + "RebuildWorkspacesRequest":{ + "type":"structure", + "required":["RebuildWorkspaceRequests"], + "members":{ + "RebuildWorkspaceRequests":{"shape":"RebuildWorkspaceRequests"} + } + }, + "RebuildWorkspacesResult":{ + "type":"structure", + "members":{ + "FailedRequests":{"shape":"FailedRebuildWorkspaceRequests"} + } + }, + "RegistrationCode":{ + "type":"string", + "min":1, + "max":20 + }, + "ResourceLimitExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "exception":true + }, + "ResourceUnavailableException":{ + "type":"structure", + "members":{ + "message":{"shape":"ExceptionMessage"}, + "ResourceId":{"shape":"NonEmptyString"} + }, + "exception":true + }, + "SecurityGroupId":{ + "type":"string", + "pattern":"^(sg-[0-9a-f]{8})$" + }, + "SubnetId":{ + "type":"string", + "pattern":"^(subnet-[0-9a-f]{8})$" + }, + "SubnetIds":{ + "type":"list", + "member":{"shape":"SubnetId"} + }, + "TerminateRequest":{ + "type":"structure", + "required":["WorkspaceId"], + "members":{ + "WorkspaceId":{"shape":"WorkspaceId"} + } + }, + "TerminateWorkspaceRequests":{ + "type":"list", + "member":{"shape":"TerminateRequest"}, + "min":1, + "max":25 + }, + "TerminateWorkspacesRequest":{ + "type":"structure", + "required":["TerminateWorkspaceRequests"], + "members":{ + "TerminateWorkspaceRequests":{"shape":"TerminateWorkspaceRequests"} + } + }, + "TerminateWorkspacesResult":{ + "type":"structure", + "members":{ + "FailedRequests":{"shape":"FailedTerminateWorkspaceRequests"} + } + }, + "UserName":{ + "type":"string", + "min":1, + "max":63 + }, + "UserStorage":{ + "type":"structure", + "members":{ + "Capacity":{"shape":"NonEmptyString"} + } + }, + "Workspace":{ + "type":"structure", + "members":{ + "WorkspaceId":{"shape":"WorkspaceId"}, + "DirectoryId":{"shape":"DirectoryId"}, + "UserName":{"shape":"UserName"}, + "IpAddress":{"shape":"IpAddress"}, + "State":{"shape":"WorkspaceState"}, + "BundleId":{"shape":"BundleId"}, + "SubnetId":{"shape":"SubnetId"}, + "ErrorMessage":{"shape":"Description"}, + "ErrorCode":{"shape":"WorkspaceErrorCode"} + } + }, + "WorkspaceBundle":{ + "type":"structure", + "members":{ + "BundleId":{"shape":"BundleId"}, + "Name":{"shape":"NonEmptyString"}, + "Owner":{"shape":"BundleOwner"}, + "Description":{"shape":"Description"}, + "UserStorage":{"shape":"UserStorage"}, + "ComputeType":{"shape":"ComputeType"} + } + }, + "WorkspaceDirectory":{ + "type":"structure", + "members":{ + "DirectoryId":{"shape":"DirectoryId"}, + "Alias":{"shape":"Alias"}, + "DirectoryName":{"shape":"DirectoryName"}, + "RegistrationCode":{"shape":"RegistrationCode"}, + "SubnetIds":{"shape":"SubnetIds"}, + "DnsIpAddresses":{"shape":"DnsIpAddresses"}, + "CustomerUserName":{"shape":"UserName"}, + "IamRoleId":{"shape":"ARN"}, + "DirectoryType":{"shape":"WorkspaceDirectoryType"}, + "WorkspaceSecurityGroupId":{"shape":"SecurityGroupId"}, + "State":{"shape":"WorkspaceDirectoryState"}, + "WorkspaceCreationProperties":{"shape":"DefaultWorkspaceCreationProperties"} + } + }, + "WorkspaceDirectoryState":{ + "type":"string", + "enum":[ + "REGISTERING", + "REGISTERED", + "DEREGISTERING", + "DEREGISTERED", + "ERROR" + ] + }, + "WorkspaceDirectoryType":{ + "type":"string", + "enum":[ + "SIMPLE_AD", + "AD_CONNECTOR" + ] + }, + "WorkspaceErrorCode":{"type":"string"}, + "WorkspaceId":{ + "type":"string", + "pattern":"^ws-[0-9a-z]{8,63}$" + }, + "WorkspaceIdList":{ + "type":"list", + "member":{"shape":"WorkspaceId"}, + "min":1, + "max":25 + }, + "WorkspaceList":{ + "type":"list", + "member":{"shape":"Workspace"} + }, + "WorkspaceRequest":{ + "type":"structure", + "required":[ + "DirectoryId", + "UserName", + "BundleId" + ], + "members":{ + "DirectoryId":{"shape":"DirectoryId"}, + "UserName":{"shape":"UserName"}, + "BundleId":{"shape":"BundleId"} + } + }, + "WorkspaceRequestList":{ + "type":"list", + "member":{"shape":"WorkspaceRequest"}, + "min":1, + "max":25 + }, + "WorkspaceState":{ + "type":"string", + "enum":[ + "PENDING", + "AVAILABLE", + "IMPAIRED", + "UNHEALTHY", + "REBOOTING", + "REBUILDING", + "TERMINATING", + "TERMINATED", + "SUSPENDED", + "ERROR" + ] + } + } +} diff --git a/lib/aws-sdk/Aws/data/workspaces/2015-04-08/docs-2.json b/lib/aws-sdk/Aws/data/workspaces/2015-04-08/docs-2.json new file mode 100644 index 0000000..1bf19c9 --- /dev/null +++ b/lib/aws-sdk/Aws/data/workspaces/2015-04-08/docs-2.json @@ -0,0 +1,457 @@ +{ + "version": "2.0", + "operations": { + "CreateWorkspaces": "

Creates one or more WorkSpaces.

This operation is asynchronous and returns before the WorkSpaces are created.

", + "DescribeWorkspaceBundles": "

Obtains information about the WorkSpace bundles that are available to your account in the specified region.

You can filter the results with either the BundleIds parameter, or the Owner parameter, but not both.

This operation supports pagination with the use of the NextToken request and response parameters. If more results are available, the NextToken response member contains a token that you pass in the next call to this operation to retrieve the next set of items.

", + "DescribeWorkspaceDirectories": "

Retrieves information about the AWS Directory Service directories in the region that are registered with Amazon WorkSpaces and are available to your account.

This operation supports pagination with the use of the NextToken request and response parameters. If more results are available, the NextToken response member contains a token that you pass in the next call to this operation to retrieve the next set of items.

", + "DescribeWorkspaces": "

Obtains information about the specified WorkSpaces.

Only one of the filter parameters, such as BundleId, DirectoryId, or WorkspaceIds, can be specified at a time.

This operation supports pagination with the use of the NextToken request and response parameters. If more results are available, the NextToken response member contains a token that you pass in the next call to this operation to retrieve the next set of items.

", + "RebootWorkspaces": "

Reboots the specified WorkSpaces.

To be able to reboot a WorkSpace, the WorkSpace must have a State of AVAILABLE, IMPAIRED, or INOPERABLE.

This operation is asynchronous and will return before the WorkSpaces have rebooted.

", + "RebuildWorkspaces": "

Rebuilds the specified WorkSpaces.

Rebuilding a WorkSpace is a potentially destructive action that can result in the loss of data. Rebuilding a WorkSpace causes the following to occur:

  • The system is restored to the image of the bundle that the WorkSpace is created from. Any applications that have been installed, or system settings that have been made since the WorkSpace was created will be lost.
  • The data drive (D drive) is re-created from the last automatic snapshot taken of the data drive. The current contents of the data drive are overwritten. Automatic snapshots of the data drive are taken every 12 hours, so the snapshot can be as much as 12 hours old.

To be able to rebuild a WorkSpace, the WorkSpace must have a State of AVAILABLE or ERROR.

This operation is asynchronous and will return before the WorkSpaces have been completely rebuilt.

", + "TerminateWorkspaces": "

Terminates the specified WorkSpaces.

Terminating a WorkSpace is a permanent action and cannot be undone. The user's data is not maintained and will be destroyed. If you need to archive any user data, contact Amazon Web Services before terminating the WorkSpace.

You can terminate a WorkSpace that is in any state except SUSPENDED.

This operation is asynchronous and will return before the WorkSpaces have been completely terminated.

" + }, + "service": "Amazon WorkSpaces Service

This is the Amazon WorkSpaces API Reference. This guide provides detailed information about Amazon WorkSpaces operations, data types, parameters, and errors.

", + "shapes": { + "ARN": { + "base": null, + "refs": { + "WorkspaceDirectory$IamRoleId": "

The identifier of the IAM role. This is the role that allows Amazon WorkSpaces to make calls to other services, such as Amazon EC2, on your behalf.

" + } + }, + "Alias": { + "base": null, + "refs": { + "WorkspaceDirectory$Alias": "

The directory alias.

" + } + }, + "BooleanObject": { + "base": null, + "refs": { + "DefaultWorkspaceCreationProperties$EnableWorkDocs": "

Specifies if the directory is enabled for Amazon WorkDocs.

", + "DefaultWorkspaceCreationProperties$EnableInternetAccess": "

A public IP address will be attached to all WorkSpaces that are created or rebuilt.

", + "DefaultWorkspaceCreationProperties$UserEnabledAsLocalAdministrator": "

The WorkSpace user is an administrator on the WorkSpace.

" + } + }, + "BundleId": { + "base": null, + "refs": { + "BundleIdList$member": null, + "DescribeWorkspacesRequest$BundleId": "

The identifier of a bundle to obtain the WorkSpaces for. All WorkSpaces that are created from this bundle will be retrieved. This parameter cannot be combined with any other filter parameter.

", + "Workspace$BundleId": "

The identifier of the bundle that the WorkSpace was created from.

", + "WorkspaceBundle$BundleId": "

The bundle identifier.

", + "WorkspaceRequest$BundleId": "

The identifier of the bundle to create the WorkSpace from. You can use the DescribeWorkspaceBundles operation to obtain a list of the bundles that are available.

" + } + }, + "BundleIdList": { + "base": null, + "refs": { + "DescribeWorkspaceBundlesRequest$BundleIds": "

An array of strings that contains the identifiers of the bundles to retrieve. This parameter cannot be combined with any other filter parameter.

" + } + }, + "BundleList": { + "base": null, + "refs": { + "DescribeWorkspaceBundlesResult$Bundles": "

An array of structures that contain information about the bundles.

" + } + }, + "BundleOwner": { + "base": null, + "refs": { + "DescribeWorkspaceBundlesRequest$Owner": "

The owner of the bundles to retrieve. This parameter cannot be combined with any other filter parameter.

This contains one of the following values:

  • null - Retrieves the bundles that belong to the account making the call.
  • AMAZON - Retrieves the bundles that are provided by AWS.
", + "WorkspaceBundle$Owner": "

The owner of the bundle. This contains the owner's account identifier, or AMAZON if the bundle is provided by AWS.

" + } + }, + "Compute": { + "base": null, + "refs": { + "ComputeType$Name": "

The name of the compute type for the bundle.

" + } + }, + "ComputeType": { + "base": "

Contains information about the compute type of a WorkSpace bundle.

", + "refs": { + "WorkspaceBundle$ComputeType": "

A ComputeType object that specifies the compute type for the bundle.

" + } + }, + "CreateWorkspacesRequest": { + "base": "

Contains the inputs for the CreateWorkspaces operation.

", + "refs": { + } + }, + "CreateWorkspacesResult": { + "base": "

Contains the result of the CreateWorkspaces operation.

", + "refs": { + } + }, + "DefaultOu": { + "base": null, + "refs": { + "DefaultWorkspaceCreationProperties$DefaultOu": "

The organizational unit (OU) in the directory that the WorkSpace machine accounts are placed in.

" + } + }, + "DefaultWorkspaceCreationProperties": { + "base": "

Contains default WorkSpace creation information.

", + "refs": { + "WorkspaceDirectory$WorkspaceCreationProperties": "

A structure that specifies the default creation properties for all WorkSpaces in the directory.

" + } + }, + "DescribeWorkspaceBundlesRequest": { + "base": "

Contains the inputs for the DescribeWorkspaceBundles operation.

", + "refs": { + } + }, + "DescribeWorkspaceBundlesResult": { + "base": "

Contains the results of the DescribeWorkspaceBundles operation.

", + "refs": { + } + }, + "DescribeWorkspaceDirectoriesRequest": { + "base": "

Contains the inputs for the DescribeWorkspaceDirectories operation.

", + "refs": { + } + }, + "DescribeWorkspaceDirectoriesResult": { + "base": "

Contains the results of the DescribeWorkspaceDirectories operation.

", + "refs": { + } + }, + "DescribeWorkspacesRequest": { + "base": "

Contains the inputs for the DescribeWorkspaces operation.

", + "refs": { + } + }, + "DescribeWorkspacesResult": { + "base": "

Contains the results for the DescribeWorkspaces operation.

", + "refs": { + } + }, + "Description": { + "base": null, + "refs": { + "FailedCreateWorkspaceRequest$ErrorMessage": "

The textual error message.

", + "FailedWorkspaceChangeRequest$ErrorMessage": "

The textual error message.

", + "Workspace$ErrorMessage": "

If the WorkSpace could not be created, this contains a textual error message that describes the failure.

", + "WorkspaceBundle$Description": "

The bundle description.

" + } + }, + "DirectoryId": { + "base": null, + "refs": { + "DescribeWorkspacesRequest$DirectoryId": "

Specifies the directory identifier to which to limit the WorkSpaces. Optionally, you can specify a specific directory user with the UserName parameter. This parameter cannot be combined with any other filter parameter.

", + "DirectoryIdList$member": null, + "Workspace$DirectoryId": "

The identifier of the AWS Directory Service directory that the WorkSpace belongs to.

", + "WorkspaceDirectory$DirectoryId": "

The directory identifier.

", + "WorkspaceRequest$DirectoryId": "

The identifier of the AWS Directory Service directory to create the WorkSpace in. You can use the DescribeWorkspaceDirectories operation to obtain a list of the directories that are available.

" + } + }, + "DirectoryIdList": { + "base": null, + "refs": { + "DescribeWorkspaceDirectoriesRequest$DirectoryIds": "

An array of strings that contains the directory identifiers to retrieve information for. If this member is null, all directories are retrieved.

" + } + }, + "DirectoryList": { + "base": null, + "refs": { + "DescribeWorkspaceDirectoriesResult$Directories": "

An array of structures that contain information about the directories.

" + } + }, + "DirectoryName": { + "base": null, + "refs": { + "WorkspaceDirectory$DirectoryName": "

The name of the directory.

" + } + }, + "DnsIpAddresses": { + "base": null, + "refs": { + "WorkspaceDirectory$DnsIpAddresses": "

An array of strings that contains the IP addresses of the DNS servers for the directory.

" + } + }, + "ErrorType": { + "base": null, + "refs": { + "FailedCreateWorkspaceRequest$ErrorCode": "

The error code.

", + "FailedWorkspaceChangeRequest$ErrorCode": "

The error code.

" + } + }, + "ExceptionMessage": { + "base": null, + "refs": { + "InvalidParameterValuesException$message": "

The exception error message.

", + "ResourceLimitExceededException$message": "

The exception error message.

", + "ResourceUnavailableException$message": "

The exception error message.

" + } + }, + "FailedCreateWorkspaceRequest": { + "base": "

Contains information about a WorkSpace that could not be created.

", + "refs": { + "FailedCreateWorkspaceRequests$member": null + } + }, + "FailedCreateWorkspaceRequests": { + "base": null, + "refs": { + "CreateWorkspacesResult$FailedRequests": "

An array of structures that represent the WorkSpaces that could not be created.

" + } + }, + "FailedRebootWorkspaceRequests": { + "base": null, + "refs": { + "RebootWorkspacesResult$FailedRequests": "

An array of structures that represent any WorkSpaces that could not be rebooted.

" + } + }, + "FailedRebuildWorkspaceRequests": { + "base": null, + "refs": { + "RebuildWorkspacesResult$FailedRequests": "

An array of structures that represent any WorkSpaces that could not be rebuilt.

" + } + }, + "FailedTerminateWorkspaceRequests": { + "base": null, + "refs": { + "TerminateWorkspacesResult$FailedRequests": "

An array of structures that represent any WorkSpaces that could not be terminated.

" + } + }, + "FailedWorkspaceChangeRequest": { + "base": "

Contains information about a WorkSpace that could not be rebooted (RebootWorkspaces), rebuilt (RebuildWorkspaces), or terminated (TerminateWorkspaces).

", + "refs": { + "FailedRebootWorkspaceRequests$member": null, + "FailedRebuildWorkspaceRequests$member": null, + "FailedTerminateWorkspaceRequests$member": null + } + }, + "InvalidParameterValuesException": { + "base": "

One or more parameter values are not valid.

", + "refs": { + } + }, + "IpAddress": { + "base": null, + "refs": { + "DnsIpAddresses$member": null, + "Workspace$IpAddress": "

The IP address of the WorkSpace.

" + } + }, + "Limit": { + "base": null, + "refs": { + "DescribeWorkspacesRequest$Limit": "

The maximum number of items to return.

" + } + }, + "NonEmptyString": { + "base": null, + "refs": { + "ResourceUnavailableException$ResourceId": "

The identifier of the resource that is not available.

", + "UserStorage$Capacity": "

The amount of user storage for the bundle.

", + "WorkspaceBundle$Name": "

The name of the bundle.

" + } + }, + "PaginationToken": { + "base": null, + "refs": { + "DescribeWorkspaceBundlesRequest$NextToken": "

The NextToken value from a previous call to this operation. Pass null if this is the first call.

", + "DescribeWorkspaceBundlesResult$NextToken": "

If not null, more results are available. Pass this value for the NextToken parameter in a subsequent call to this operation to retrieve the next set of items. This token is valid for one day and must be used within that timeframe.

", + "DescribeWorkspaceDirectoriesRequest$NextToken": "

The NextToken value from a previous call to this operation. Pass null if this is the first call.

", + "DescribeWorkspaceDirectoriesResult$NextToken": "

If not null, more results are available. Pass this value for the NextToken parameter in a subsequent call to this operation to retrieve the next set of items. This token is valid for one day and must be used within that timeframe.

", + "DescribeWorkspacesRequest$NextToken": "

The NextToken value from a previous call to this operation. Pass null if this is the first call.

", + "DescribeWorkspacesResult$NextToken": "

If not null, more results are available. Pass this value for the NextToken parameter in a subsequent call to this operation to retrieve the next set of items. This token is valid for one day and must be used within that timeframe.

" + } + }, + "RebootRequest": { + "base": "

Contains information used with the RebootWorkspaces operation to reboot a WorkSpace.

", + "refs": { + "RebootWorkspaceRequests$member": null + } + }, + "RebootWorkspaceRequests": { + "base": null, + "refs": { + "RebootWorkspacesRequest$RebootWorkspaceRequests": "

An array of structures that specify the WorkSpaces to reboot.

" + } + }, + "RebootWorkspacesRequest": { + "base": "

Contains the inputs for the RebootWorkspaces operation.

", + "refs": { + } + }, + "RebootWorkspacesResult": { + "base": "

Contains the results of the RebootWorkspaces operation.

", + "refs": { + } + }, + "RebuildRequest": { + "base": "

Contains information used with the RebuildWorkspaces operation to rebuild a WorkSpace.

", + "refs": { + "RebuildWorkspaceRequests$member": null + } + }, + "RebuildWorkspaceRequests": { + "base": null, + "refs": { + "RebuildWorkspacesRequest$RebuildWorkspaceRequests": "

An array of structures that specify the WorkSpaces to rebuild.

" + } + }, + "RebuildWorkspacesRequest": { + "base": "

Contains the inputs for the RebuildWorkspaces operation.

", + "refs": { + } + }, + "RebuildWorkspacesResult": { + "base": "

Contains the results of the RebuildWorkspaces operation.

", + "refs": { + } + }, + "RegistrationCode": { + "base": null, + "refs": { + "WorkspaceDirectory$RegistrationCode": "

The registration code for the directory. This is the code that users enter in their Amazon WorkSpaces client application to connect to the directory.

" + } + }, + "ResourceLimitExceededException": { + "base": "

Your resource limits have been exceeded.

", + "refs": { + } + }, + "ResourceUnavailableException": { + "base": "

The specified resource is not available.

", + "refs": { + } + }, + "SecurityGroupId": { + "base": null, + "refs": { + "DefaultWorkspaceCreationProperties$CustomSecurityGroupId": "

The identifier of any custom security groups that are applied to the WorkSpaces when they are created.

", + "WorkspaceDirectory$WorkspaceSecurityGroupId": "

The identifier of the security group that is assigned to new WorkSpaces.

" + } + }, + "SubnetId": { + "base": null, + "refs": { + "SubnetIds$member": null, + "Workspace$SubnetId": "

The identifier of the subnet that the WorkSpace is in.

" + } + }, + "SubnetIds": { + "base": null, + "refs": { + "WorkspaceDirectory$SubnetIds": "

An array of strings that contains the identifiers of the subnets used with the directory.

" + } + }, + "TerminateRequest": { + "base": "

Contains information used with the TerminateWorkspaces operation to terminate a WorkSpace.

", + "refs": { + "TerminateWorkspaceRequests$member": null + } + }, + "TerminateWorkspaceRequests": { + "base": null, + "refs": { + "TerminateWorkspacesRequest$TerminateWorkspaceRequests": "

An array of structures that specify the WorkSpaces to terminate.

" + } + }, + "TerminateWorkspacesRequest": { + "base": "

Contains the inputs for the TerminateWorkspaces operation.

", + "refs": { + } + }, + "TerminateWorkspacesResult": { + "base": "

Contains the results of the TerminateWorkspaces operation.

", + "refs": { + } + }, + "UserName": { + "base": null, + "refs": { + "DescribeWorkspacesRequest$UserName": "

Used with the DirectoryId parameter to specify the directory user for which to obtain the WorkSpace.

", + "Workspace$UserName": "

The user that the WorkSpace is assigned to.

", + "WorkspaceDirectory$CustomerUserName": "

The user name for the service account.

", + "WorkspaceRequest$UserName": "

The username that the WorkSpace is assigned to. This username must exist in the AWS Directory Service directory specified by the DirectoryId member.

" + } + }, + "UserStorage": { + "base": "

Contains information about the user storage for a WorkSpace bundle.

", + "refs": { + "WorkspaceBundle$UserStorage": "

A UserStorage object that specifies the amount of user storage that the bundle contains.

" + } + }, + "Workspace": { + "base": "

Contains information about a WorkSpace.

", + "refs": { + "WorkspaceList$member": null + } + }, + "WorkspaceBundle": { + "base": "

Contains information about a WorkSpace bundle.

", + "refs": { + "BundleList$member": null + } + }, + "WorkspaceDirectory": { + "base": "

Contains information about an AWS Directory Service directory for use with Amazon WorkSpaces.

", + "refs": { + "DirectoryList$member": null + } + }, + "WorkspaceDirectoryState": { + "base": null, + "refs": { + "WorkspaceDirectory$State": "

The state of the directory's registration with Amazon WorkSpaces

" + } + }, + "WorkspaceDirectoryType": { + "base": null, + "refs": { + "WorkspaceDirectory$DirectoryType": "

The directory type.

" + } + }, + "WorkspaceErrorCode": { + "base": null, + "refs": { + "Workspace$ErrorCode": "

If the WorkSpace could not be created, this contains the error code.

" + } + }, + "WorkspaceId": { + "base": null, + "refs": { + "FailedWorkspaceChangeRequest$WorkspaceId": "

The identifier of the WorkSpace.

", + "RebootRequest$WorkspaceId": "

The identifier of the WorkSpace to reboot.

", + "RebuildRequest$WorkspaceId": "

The identifier of the WorkSpace to rebuild.

", + "TerminateRequest$WorkspaceId": "

The identifier of the WorkSpace to terminate.

", + "Workspace$WorkspaceId": "

The identifier of the WorkSpace.

", + "WorkspaceIdList$member": null + } + }, + "WorkspaceIdList": { + "base": null, + "refs": { + "DescribeWorkspacesRequest$WorkspaceIds": "

An array of strings that contain the identifiers of the WorkSpaces for which to retrieve information. This parameter cannot be combined with any other filter parameter.

Because the CreateWorkspaces operation is asynchronous, the identifier returned by CreateWorkspaces is not immediately available. If you immediately call DescribeWorkspaces with this identifier, no information will be returned.

" + } + }, + "WorkspaceList": { + "base": null, + "refs": { + "CreateWorkspacesResult$PendingRequests": "

An array of structures that represent the WorkSpaces that were created.

Because this operation is asynchronous, the identifier in WorkspaceId is not immediately available. If you immediately call DescribeWorkspaces with this identifier, no information will be returned.

", + "DescribeWorkspacesResult$Workspaces": "

An array of structures that contain the information about the WorkSpaces.

Because the CreateWorkspaces operation is asynchronous, some of this information may be incomplete for a newly-created WorkSpace.

" + } + }, + "WorkspaceRequest": { + "base": "

Contains information about a WorkSpace creation request.

", + "refs": { + "FailedCreateWorkspaceRequest$WorkspaceRequest": "

A WorkspaceRequest object that contains the information about the WorkSpace that could not be created.

", + "WorkspaceRequestList$member": null + } + }, + "WorkspaceRequestList": { + "base": null, + "refs": { + "CreateWorkspacesRequest$Workspaces": "

An array of structures that specify the WorkSpaces to create.

" + } + }, + "WorkspaceState": { + "base": null, + "refs": { + "Workspace$State": "

The operational state of the WorkSpace.

" + } + } + } +} diff --git a/lib/aws-sdk/Aws/data/workspaces/2015-04-08/paginators-1.json b/lib/aws-sdk/Aws/data/workspaces/2015-04-08/paginators-1.json new file mode 100644 index 0000000..efa8cba --- /dev/null +++ b/lib/aws-sdk/Aws/data/workspaces/2015-04-08/paginators-1.json @@ -0,0 +1,20 @@ +{ + "pagination": { + "DescribeWorkspaceBundles": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Bundles" + }, + "DescribeWorkspaceDirectories": { + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Directories" + }, + "DescribeWorkspaces": { + "limit_key": "Limit", + "input_token": "NextToken", + "output_token": "NextToken", + "result_key": "Workspaces" + } + } +} diff --git a/lib/aws-sdk/Aws/functions.php b/lib/aws-sdk/Aws/functions.php new file mode 100644 index 0000000..c82ab95 --- /dev/null +++ b/lib/aws-sdk/Aws/functions.php @@ -0,0 +1,311 @@ +load($path); +} + +/** + * Clears the compiled JSON cache, deleting all "*.json.php" files that are + * used by the SDK. + */ +function clear_compiled_json() +{ + $loader = new JsonCompiler(); + $loader->purge(); +} + +//----------------------------------------------------------------------------- +// Directory iterator functions. +//----------------------------------------------------------------------------- + +/** + * Iterates over the files in a directory and works with custom wrappers. + * + * @param string $path Path to open (e.g., "s3://foo/bar"). + * @param resource $context Stream wrapper context. + * + * @return \Generator Yields relative filename strings. + */ +function dir_iterator($path, $context = null) +{ + $dh = $context ? opendir($path, $context) : opendir($path); + if (!$dh) { + throw new \InvalidArgumentException('File not found: ' . $path); + } + while (($file = readdir($dh)) !== false) { + yield $file; + } + closedir($dh); +} + +/** + * Returns a recursive directory iterator that yields absolute filenames. + * + * This iterator is not broken like PHP's built-in DirectoryIterator (which + * will read the first file from a stream wrapper, then rewind, then read + * it again). + * + * @param string $path Path to traverse (e.g., s3://bucket/key, /tmp) + * @param resource $context Stream context options. + * + * @return \Generator Yields absolute filenames. + */ +function recursive_dir_iterator($path, $context = null) +{ + $invalid = ['.' => true, '..' => true]; + $pathLen = strlen($path) + 1; + $iterator = dir_iterator($path, $context); + $queue = []; + do { + while ($iterator->valid()) { + $file = $iterator->current(); + $iterator->next(); + if (isset($invalid[basename($file)])) { + continue; + } + $fullPath = "{$path}/{$file}"; + yield $fullPath; + if (is_dir($fullPath)) { + $queue[] = $iterator; + $iterator = map( + dir_iterator($fullPath, $context), + function ($file) use ($fullPath, $pathLen) { + return substr("{$fullPath}/{$file}", $pathLen); + } + ); + continue; + } + } + $iterator = array_pop($queue); + } while ($iterator); +} + +//----------------------------------------------------------------------------- +// Misc. functions. +//----------------------------------------------------------------------------- + +/** + * Debug function used to describe the provided value type and class. + * + * @param mixed $input + * + * @return string Returns a string containing the type of the variable and + * if a class is provided, the class name. + */ +function describe_type($input) +{ + switch (gettype($input)) { + case 'object': + return 'object(' . get_class($input) . ')'; + case 'array': + return 'array(' . count($input) . ')'; + default: + ob_start(); + var_dump($input); + // normalize float vs double + return str_replace('double(', 'float(', rtrim(ob_get_clean())); + } +} + +/** + * Creates a default HTTP handler based on the available clients. + * + * @return callable + */ +function default_http_handler() +{ + $version = (string) ClientInterface::VERSION; + if ($version[0] === '5') { + return new \Aws\Handler\GuzzleV5\GuzzleHandler(); + } elseif ($version[0] === '6') { + return new \Aws\Handler\GuzzleV6\GuzzleHandler(); + } else { + throw new \RuntimeException('Unknown Guzzle version: ' . $version); + } +} + +/** + * Serialize a request for a command but do not send it. + * + * Returns a promise that is fulfilled with the serialized request. + * + * @param CommandInterface $command Command to serialize. + * + * @return RequestInterface + * @throws \RuntimeException + */ +function serialize(CommandInterface $command) +{ + $request = null; + $handlerList = $command->getHandlerList(); + + // Return a mock result. + $handlerList->setHandler( + function (CommandInterface $_, RequestInterface $r) use (&$request) { + $request = $r; + return new FulfilledPromise(new Result([])); + } + ); + + call_user_func($handlerList->resolve(), $command)->wait(); + if (!$request instanceof RequestInterface) { + throw new \RuntimeException( + 'Calling handler did not serialize request' + ); + } + + return $request; +} diff --git a/lib/aws-sdk/CHANGELOG.md b/lib/aws-sdk/CHANGELOG.md index 2e7c7bf..837a1b2 100644 --- a/lib/aws-sdk/CHANGELOG.md +++ b/lib/aws-sdk/CHANGELOG.md @@ -1,28 +1,61 @@ # CHANGELOG -## 2.8.10 - 2015-06-11 +## 3.0.4 - 2015-06-11 * `Aws\AutoScaling` - Added support for attaching and detaching load balancers. -* `Aws\Ec2` - Added support for VPC flow logs and the M4 instance types. -* `Aws\Ecs` - Added support for the UpdateContainerAgent operation. -* `Aws\CloudHsm` - Fixed a configuration issue that was affecting some operations. - -## 2.8.9 - 2015-06-04 - * `Aws\CloudWatchLogs` - Added support for the PutSubscriptionFilter, DescribeSubscriptionFilters, and DeleteSubscriptionFilter operations. -* `Aws\DynamoDb` - Fixed the DynamoDB `Marshaler` to better handler empty maps. * `Aws\CognitoIdentity` - Added support for the DeleteIdentities operation, and hiding disabled identities with the ListIdentities operation. +* `Aws\Ec2` - Added support for VPC flow logs and the M4 instance types. +* `Aws\Ecs` - Added support for the UpdateContainerAgent operation. +* `Aws\S3` - Improvements to how errors are handled in the `StreamWrapper`. * `Aws\StorageGateway` - Added support for the ListVolumeInitiators operation. +* `Aws` - Fixes a bug such that empty maps are handled correctly in JSON + requests. + +## 3.0.3 - 2015-06-01 -## 2.8.8 - 2015-05-28 +* `Aws\MachineLearning` - Fixed the `Predict` operation to use the provided + `PredictEndpoint` as the host. + +## 3.0.2 - 2015-05-29 + +* `Aws` - Fixed an issue preventing some clients from being instantiated via + their constructors due to a mismatch between class name and endpoint prefix. + +## 3.0.1 - 2015-05-28 * `Aws\Lambda` - Added Amazon S3 upload support. +## 3.0.0 - 2015-05-27 + +* Asynchronous requests. + * Features like _waiters_ and _multipart uploaders_ can also be used + asynchronously. + * Asynchronous workflows can be created using _promises_ and _coroutines_. + * Improved performance of concurrent/batched requests via _command pools_. +* Decoupled HTTP layer. + * [Guzzle 6](http://guzzlephp.org) is used by default to send requests, + but Guzzle 5 is also supported out of the box. + * The SDK can now work in environments where cURL is not available. + * Custom HTTP handlers are also supported. +* Follows the [PSR-4 and PSR-7 standards](http://php-fig.org). +* Middleware system for customizing service client behavior. +* Flexible _paginators_ for iterating through paginated results. +* Ability to query data from _result_ and _paginator_ objects with + [JMESPath](http://jmespath.org/). +* Easy debugging via the `'debug'` client configuration option. +* Customizable retries via the `'retries'` client configuration option. +* More flexibility in credential loading via _credential providers_. +* Strictly follows the [SemVer](http://semver.org/) standard going forward. +* **For more details about what has changed, see the + [Migration Guide](http://docs.aws.amazon.com/aws-sdk-php/v3/guide/guide/migration.html)**. + ## 2.8.7 - 2015-05-26 -* `Aws\Efs` - [Amazon Elastic File System (Amazon EFS)](http://aws.amazon.com/efs/) +* `Aws\Efs` - Added support for the [Amazon Elastic File System (Amazon + EFS)](http://aws.amazon.com/efs/) * Failing to parse an XML error response will now fail gracefully as a `PhpInternalXmlParseError` AWS error code. @@ -282,6 +315,16 @@ for details about any changes you may need to make to your code for this upgrade * Added support for configuring push synchronization to the Cognito Sync client. * Updated docblocks in a few S3 and Glacier classes to improve IDE experience. +## 3.0.0-beta.1 - 2014-10-14 + +* New requirements on Guzzle 5 and PHP 5.5. +* Event system now uses Guzzle 5 events and no longer utilizes Symfony2. +* `version` and `region` are noww required parameter for each client + constructor. You can op-into using the latest version of a service by + setting `version` to `latest`. +* Removed `Aws\S3\ResumableDownload`. +* More information to follow. + ## 2.7.2 - 2014-10-23 * Updated AWS Identity and Access Management (IAM) to the latest version. diff --git a/lib/aws-sdk/Doctrine/Common/Cache/ApcCache.php b/lib/aws-sdk/Doctrine/Common/Cache/ApcCache.php deleted file mode 100644 index abd5e71..0000000 --- a/lib/aws-sdk/Doctrine/Common/Cache/ApcCache.php +++ /dev/null @@ -1,106 +0,0 @@ -. - */ - -namespace Doctrine\Common\Cache; - -/** - * APC cache provider. - * - * @link www.doctrine-project.org - * @since 2.0 - * @author Benjamin Eberlei - * @author Guilherme Blanco - * @author Jonathan Wage - * @author Roman Borschel - * @author David Abdemoulaie - */ -class ApcCache extends CacheProvider -{ - /** - * {@inheritdoc} - */ - protected function doFetch($id) - { - return apc_fetch($id); - } - - /** - * {@inheritdoc} - */ - protected function doContains($id) - { - return apc_exists($id); - } - - /** - * {@inheritdoc} - */ - protected function doSave($id, $data, $lifeTime = 0) - { - return (bool) apc_store($id, $data, (int) $lifeTime); - } - - /** - * {@inheritdoc} - */ - protected function doDelete($id) - { - return apc_delete($id); - } - - /** - * {@inheritdoc} - */ - protected function doFlush() - { - return apc_clear_cache() && apc_clear_cache('user'); - } - - /** - * {@inheritdoc} - */ - protected function doFetchMultiple(array $keys) - { - return apc_fetch($keys); - } - - /** - * {@inheritdoc} - */ - protected function doGetStats() - { - $info = apc_cache_info('', true); - $sma = apc_sma_info(); - - // @TODO - Temporary fix @see https://github.com/krakjoe/apcu/pull/42 - if (PHP_VERSION_ID >= 50500) { - $info['num_hits'] = isset($info['num_hits']) ? $info['num_hits'] : $info['nhits']; - $info['num_misses'] = isset($info['num_misses']) ? $info['num_misses'] : $info['nmisses']; - $info['start_time'] = isset($info['start_time']) ? $info['start_time'] : $info['stime']; - } - - return array( - Cache::STATS_HITS => $info['num_hits'], - Cache::STATS_MISSES => $info['num_misses'], - Cache::STATS_UPTIME => $info['start_time'], - Cache::STATS_MEMORY_USAGE => $info['mem_size'], - Cache::STATS_MEMORY_AVAILABLE => $sma['avail_mem'], - ); - } -} diff --git a/lib/aws-sdk/Doctrine/Common/Cache/ArrayCache.php b/lib/aws-sdk/Doctrine/Common/Cache/ArrayCache.php deleted file mode 100644 index 31a0729..0000000 --- a/lib/aws-sdk/Doctrine/Common/Cache/ArrayCache.php +++ /dev/null @@ -1,94 +0,0 @@ -. - */ - -namespace Doctrine\Common\Cache; - -/** - * Array cache driver. - * - * @link www.doctrine-project.org - * @since 2.0 - * @author Benjamin Eberlei - * @author Guilherme Blanco - * @author Jonathan Wage - * @author Roman Borschel - * @author David Abdemoulaie - */ -class ArrayCache extends CacheProvider -{ - /** - * @var array $data - */ - private $data = array(); - - /** - * {@inheritdoc} - */ - protected function doFetch($id) - { - return $this->doContains($id) ? $this->data[$id] : false; - } - - /** - * {@inheritdoc} - */ - protected function doContains($id) - { - // isset() is required for performance optimizations, to avoid unnecessary function calls to array_key_exists. - return isset($this->data[$id]) || array_key_exists($id, $this->data); - } - - /** - * {@inheritdoc} - */ - protected function doSave($id, $data, $lifeTime = 0) - { - $this->data[$id] = $data; - - return true; - } - - /** - * {@inheritdoc} - */ - protected function doDelete($id) - { - unset($this->data[$id]); - - return true; - } - - /** - * {@inheritdoc} - */ - protected function doFlush() - { - $this->data = array(); - - return true; - } - - /** - * {@inheritdoc} - */ - protected function doGetStats() - { - return null; - } -} diff --git a/lib/aws-sdk/Doctrine/Common/Cache/Cache.php b/lib/aws-sdk/Doctrine/Common/Cache/Cache.php deleted file mode 100644 index 205a123..0000000 --- a/lib/aws-sdk/Doctrine/Common/Cache/Cache.php +++ /dev/null @@ -1,112 +0,0 @@ -. - */ - -namespace Doctrine\Common\Cache; - -/** - * Interface for cache drivers. - * - * @link www.doctrine-project.org - * @since 2.0 - * @author Benjamin Eberlei - * @author Guilherme Blanco - * @author Jonathan Wage - * @author Roman Borschel - * @author Fabio B. Silva - * @author Kévin Dunglas - */ -interface Cache -{ - const STATS_HITS = 'hits'; - const STATS_MISSES = 'misses'; - const STATS_UPTIME = 'uptime'; - const STATS_MEMORY_USAGE = 'memory_usage'; - const STATS_MEMORY_AVAILABLE = 'memory_available'; - /** - * Only for backward compatibility (may be removed in next major release) - * - * @deprecated - */ - const STATS_MEMORY_AVAILIABLE = 'memory_available'; - - /** - * Fetches an entry from the cache. - * - * @param string $id The id of the cache entry to fetch. - * - * @return mixed The cached data or FALSE, if no cache entry exists for the given id. - */ - public function fetch($id); - - /** - * Tests if an entry exists in the cache. - * - * @param string $id The cache id of the entry to check for. - * - * @return boolean TRUE if a cache entry exists for the given cache id, FALSE otherwise. - */ - public function contains($id); - - /** - * Puts data into the cache. - * - * @param string $id The cache id. - * @param mixed $data The cache entry/data. - * @param int $lifeTime The cache lifetime. - * If != 0, sets a specific lifetime for this cache entry (0 => infinite lifeTime). - * - * @return boolean TRUE if the entry was successfully stored in the cache, FALSE otherwise. - */ - public function save($id, $data, $lifeTime = 0); - - /** - * Deletes a cache entry. - * - * @param string $id The cache id. - * - * @return boolean TRUE if the cache entry was successfully deleted, FALSE otherwise. - */ - public function delete($id); - - /** - * Retrieves cached information from the data store. - * - * The server's statistics array has the following values: - * - * - hits - * Number of keys that have been requested and found present. - * - * - misses - * Number of items that have been requested and not found. - * - * - uptime - * Time that the server is running. - * - * - memory_usage - * Memory used by this server to store items. - * - * - memory_available - * Memory allowed to use for storage. - * - * @since 2.2 - * - * @return array|null An associative array with server's statistics if available, NULL otherwise. - */ - public function getStats(); -} diff --git a/lib/aws-sdk/Doctrine/Common/Cache/CacheProvider.php b/lib/aws-sdk/Doctrine/Common/Cache/CacheProvider.php deleted file mode 100644 index e911f61..0000000 --- a/lib/aws-sdk/Doctrine/Common/Cache/CacheProvider.php +++ /dev/null @@ -1,277 +0,0 @@ -. - */ - -namespace Doctrine\Common\Cache; - -/** - * Base class for cache provider implementations. - * - * @since 2.2 - * @author Benjamin Eberlei - * @author Guilherme Blanco - * @author Jonathan Wage - * @author Roman Borschel - * @author Fabio B. Silva - */ -abstract class CacheProvider implements Cache, FlushableCache, ClearableCache, MultiGetCache -{ - const DOCTRINE_NAMESPACE_CACHEKEY = 'DoctrineNamespaceCacheKey[%s]'; - - /** - * The namespace to prefix all cache ids with. - * - * @var string - */ - private $namespace = ''; - - /** - * The namespace version. - * - * @var integer|null - */ - private $namespaceVersion; - - /** - * Sets the namespace to prefix all cache ids with. - * - * @param string $namespace - * - * @return void - */ - public function setNamespace($namespace) - { - $this->namespace = (string) $namespace; - $this->namespaceVersion = null; - } - - /** - * Retrieves the namespace that prefixes all cache ids. - * - * @return string - */ - public function getNamespace() - { - return $this->namespace; - } - - /** - * {@inheritdoc} - */ - public function fetch($id) - { - return $this->doFetch($this->getNamespacedId($id)); - } - - /** - * {@inheritdoc} - */ - public function fetchMultiple(array $keys) - { - // note: the array_combine() is in place to keep an association between our $keys and the $namespacedKeys - $namespacedKeys = array_combine($keys, array_map(array($this, 'getNamespacedId'), $keys)); - $items = $this->doFetchMultiple($namespacedKeys); - $foundItems = array(); - - // no internal array function supports this sort of mapping: needs to be iterative - // this filters and combines keys in one pass - foreach ($namespacedKeys as $requestedKey => $namespacedKey) { - if (isset($items[$namespacedKey])) { - $foundItems[$requestedKey] = $items[$namespacedKey]; - } - } - - return $foundItems; - } - - /** - * {@inheritdoc} - */ - public function contains($id) - { - return $this->doContains($this->getNamespacedId($id)); - } - - /** - * {@inheritdoc} - */ - public function save($id, $data, $lifeTime = 0) - { - return $this->doSave($this->getNamespacedId($id), $data, $lifeTime); - } - - /** - * {@inheritdoc} - */ - public function delete($id) - { - return $this->doDelete($this->getNamespacedId($id)); - } - - /** - * {@inheritdoc} - */ - public function getStats() - { - return $this->doGetStats(); - } - - /** - * {@inheritDoc} - */ - public function flushAll() - { - return $this->doFlush(); - } - - /** - * {@inheritDoc} - */ - public function deleteAll() - { - $namespaceCacheKey = $this->getNamespaceCacheKey(); - $namespaceVersion = $this->getNamespaceVersion() + 1; - - $this->namespaceVersion = $namespaceVersion; - - return $this->doSave($namespaceCacheKey, $namespaceVersion); - } - - /** - * Prefixes the passed id with the configured namespace value. - * - * @param string $id The id to namespace. - * - * @return string The namespaced id. - */ - private function getNamespacedId($id) - { - $namespaceVersion = $this->getNamespaceVersion(); - - return sprintf('%s[%s][%s]', $this->namespace, $id, $namespaceVersion); - } - - /** - * Returns the namespace cache key. - * - * @return string - */ - private function getNamespaceCacheKey() - { - return sprintf(self::DOCTRINE_NAMESPACE_CACHEKEY, $this->namespace); - } - - /** - * Returns the namespace version. - * - * @return integer - */ - private function getNamespaceVersion() - { - if (null !== $this->namespaceVersion) { - return $this->namespaceVersion; - } - - $namespaceCacheKey = $this->getNamespaceCacheKey(); - $namespaceVersion = $this->doFetch($namespaceCacheKey); - - if (false === $namespaceVersion) { - $namespaceVersion = 1; - - $this->doSave($namespaceCacheKey, $namespaceVersion); - } - - $this->namespaceVersion = $namespaceVersion; - - return $this->namespaceVersion; - } - - /** - * Default implementation of doFetchMultiple. Each driver that supports multi-get should owerwrite it. - * - * @param array $keys Array of keys to retrieve from cache - * @return array Array of values retrieved for the given keys. - */ - protected function doFetchMultiple(array $keys) - { - $returnValues = array(); - - foreach ($keys as $index => $key) { - if (false !== ($item = $this->doFetch($key))) { - $returnValues[$key] = $item; - } - } - - return $returnValues; - } - - /** - * Fetches an entry from the cache. - * - * @param string $id The id of the cache entry to fetch. - * - * @return string|boolean The cached data or FALSE, if no cache entry exists for the given id. - */ - abstract protected function doFetch($id); - - /** - * Tests if an entry exists in the cache. - * - * @param string $id The cache id of the entry to check for. - * - * @return boolean TRUE if a cache entry exists for the given cache id, FALSE otherwise. - */ - abstract protected function doContains($id); - - /** - * Puts data into the cache. - * - * @param string $id The cache id. - * @param string $data The cache entry/data. - * @param int $lifeTime The lifetime. If != 0, sets a specific lifetime for this - * cache entry (0 => infinite lifeTime). - * - * @return boolean TRUE if the entry was successfully stored in the cache, FALSE otherwise. - */ - abstract protected function doSave($id, $data, $lifeTime = 0); - - /** - * Deletes a cache entry. - * - * @param string $id The cache id. - * - * @return boolean TRUE if the cache entry was successfully deleted, FALSE otherwise. - */ - abstract protected function doDelete($id); - - /** - * Flushes all cache entries. - * - * @return boolean TRUE if the cache entries were successfully flushed, FALSE otherwise. - */ - abstract protected function doFlush(); - - /** - * Retrieves cached information from the data store. - * - * @since 2.2 - * - * @return array|null An associative array with server's statistics if available, NULL otherwise. - */ - abstract protected function doGetStats(); -} diff --git a/lib/aws-sdk/Doctrine/Common/Cache/ChainCache.php b/lib/aws-sdk/Doctrine/Common/Cache/ChainCache.php deleted file mode 100644 index 96c9b54..0000000 --- a/lib/aws-sdk/Doctrine/Common/Cache/ChainCache.php +++ /dev/null @@ -1,147 +0,0 @@ -. - */ - -namespace Doctrine\Common\Cache; - -/** - * Cache provider that allows to easily chain multiple cache providers - * - * @author Michaël Gallego - */ -class ChainCache extends CacheProvider -{ - /** - * @var CacheProvider[] - */ - private $cacheProviders = array(); - - /** - * Constructor - * - * @param CacheProvider[] $cacheProviders - */ - public function __construct($cacheProviders = array()) - { - $this->cacheProviders = $cacheProviders; - } - - /** - * {@inheritDoc} - */ - public function setNamespace($namespace) - { - parent::setNamespace($namespace); - - foreach ($this->cacheProviders as $cacheProvider) { - $cacheProvider->setNamespace($namespace); - } - } - - /** - * {@inheritDoc} - */ - protected function doFetch($id) - { - foreach ($this->cacheProviders as $key => $cacheProvider) { - if ($cacheProvider->doContains($id)) { - $value = $cacheProvider->doFetch($id); - - // We populate all the previous cache layers (that are assumed to be faster) - for ($subKey = $key - 1 ; $subKey >= 0 ; $subKey--) { - $this->cacheProviders[$subKey]->doSave($id, $value); - } - - return $value; - } - } - - return false; - } - - /** - * {@inheritDoc} - */ - protected function doContains($id) - { - foreach ($this->cacheProviders as $cacheProvider) { - if ($cacheProvider->doContains($id)) { - return true; - } - } - - return false; - } - - /** - * {@inheritDoc} - */ - protected function doSave($id, $data, $lifeTime = 0) - { - $stored = true; - - foreach ($this->cacheProviders as $cacheProvider) { - $stored = $cacheProvider->doSave($id, $data, $lifeTime) && $stored; - } - - return $stored; - } - - /** - * {@inheritDoc} - */ - protected function doDelete($id) - { - $deleted = true; - - foreach ($this->cacheProviders as $cacheProvider) { - $deleted = $cacheProvider->doDelete($id) && $deleted; - } - - return $deleted; - } - - /** - * {@inheritDoc} - */ - protected function doFlush() - { - $flushed = true; - - foreach ($this->cacheProviders as $cacheProvider) { - $flushed = $cacheProvider->doFlush() && $flushed; - } - - return $flushed; - } - - /** - * {@inheritDoc} - */ - protected function doGetStats() - { - // We return all the stats from all adapters - $stats = array(); - - foreach ($this->cacheProviders as $cacheProvider) { - $stats[] = $cacheProvider->doGetStats(); - } - - return $stats; - } -} diff --git a/lib/aws-sdk/Doctrine/Common/Cache/ClearableCache.php b/lib/aws-sdk/Doctrine/Common/Cache/ClearableCache.php deleted file mode 100644 index f8b0161..0000000 --- a/lib/aws-sdk/Doctrine/Common/Cache/ClearableCache.php +++ /dev/null @@ -1,37 +0,0 @@ -. - */ - -namespace Doctrine\Common\Cache; - -/** - * Interface for cache that can be flushed. - * - * @link www.doctrine-project.org - * @since 1.4 - * @author Adirelle - */ -interface ClearableCache -{ - /** - * Deletes all cache entries. - * - * @return boolean TRUE if the cache entries were successfully deleted, FALSE otherwise. - */ - public function deleteAll(); -} diff --git a/lib/aws-sdk/Doctrine/Common/Cache/CouchbaseCache.php b/lib/aws-sdk/Doctrine/Common/Cache/CouchbaseCache.php deleted file mode 100644 index c21691d..0000000 --- a/lib/aws-sdk/Doctrine/Common/Cache/CouchbaseCache.php +++ /dev/null @@ -1,121 +0,0 @@ -. - */ - -namespace Doctrine\Common\Cache; - -use \Couchbase; - -/** - * Couchbase cache provider. - * - * @link www.doctrine-project.org - * @since 2.4 - * @author Michael Nitschinger - */ -class CouchbaseCache extends CacheProvider -{ - /** - * @var Couchbase|null - */ - private $couchbase; - - /** - * Sets the Couchbase instance to use. - * - * @param Couchbase $couchbase - * - * @return void - */ - public function setCouchbase(Couchbase $couchbase) - { - $this->couchbase = $couchbase; - } - - /** - * Gets the Couchbase instance used by the cache. - * - * @return Couchbase|null - */ - public function getCouchbase() - { - return $this->couchbase; - } - - /** - * {@inheritdoc} - */ - protected function doFetch($id) - { - return $this->couchbase->get($id) ?: false; - } - - /** - * {@inheritdoc} - */ - protected function doContains($id) - { - return (null !== $this->couchbase->get($id)); - } - - /** - * {@inheritdoc} - */ - protected function doSave($id, $data, $lifeTime = 0) - { - if ($lifeTime > 30 * 24 * 3600) { - $lifeTime = time() + $lifeTime; - } - return $this->couchbase->set($id, $data, (int) $lifeTime); - } - - /** - * {@inheritdoc} - */ - protected function doDelete($id) - { - return $this->couchbase->delete($id); - } - - /** - * {@inheritdoc} - */ - protected function doFlush() - { - return $this->couchbase->flush(); - } - - /** - * {@inheritdoc} - */ - protected function doGetStats() - { - $stats = $this->couchbase->getStats(); - $servers = $this->couchbase->getServers(); - $server = explode(":", $servers[0]); - $key = $server[0] . ":" . "11210"; - $stats = $stats[$key]; - return array( - Cache::STATS_HITS => $stats['get_hits'], - Cache::STATS_MISSES => $stats['get_misses'], - Cache::STATS_UPTIME => $stats['uptime'], - Cache::STATS_MEMORY_USAGE => $stats['bytes'], - Cache::STATS_MEMORY_AVAILABLE => $stats['limit_maxbytes'], - ); - } -} diff --git a/lib/aws-sdk/Doctrine/Common/Cache/FileCache.php b/lib/aws-sdk/Doctrine/Common/Cache/FileCache.php deleted file mode 100644 index 243c28c..0000000 --- a/lib/aws-sdk/Doctrine/Common/Cache/FileCache.php +++ /dev/null @@ -1,223 +0,0 @@ -. - */ - -namespace Doctrine\Common\Cache; - -/** - * Base file cache driver. - * - * @since 2.3 - * @author Fabio B. Silva - */ -abstract class FileCache extends CacheProvider -{ - /** - * The cache directory. - * - * @var string - */ - protected $directory; - - /** - * The cache file extension. - * - * @var string - */ - private $extension; - - /** - * @var string[] regular expressions for replacing disallowed characters in file name - */ - private $disallowedCharacterPatterns = array( - '/\-/', // replaced to disambiguate original `-` and `-` derived from replacements - '/[^a-zA-Z0-9\-_\[\]]/' // also excludes non-ascii chars (not supported, depending on FS) - ); - - /** - * @var string[] replacements for disallowed file characters - */ - private $replacementCharacters = array('__', '-'); - - /** - * Constructor. - * - * @param string $directory The cache directory. - * @param string $extension The cache file extension. - * - * @throws \InvalidArgumentException - */ - public function __construct($directory, $extension = '') - { - if ( ! is_dir($directory) && ! @mkdir($directory, 0777, true)) { - throw new \InvalidArgumentException(sprintf( - 'The directory "%s" does not exist and could not be created.', - $directory - )); - } - - if ( ! is_writable($directory)) { - throw new \InvalidArgumentException(sprintf( - 'The directory "%s" is not writable.', - $directory - )); - } - - $this->directory = realpath($directory); - $this->extension = (string) $extension; - } - - /** - * Gets the cache directory. - * - * @return string - */ - public function getDirectory() - { - return $this->directory; - } - - /** - * Gets the cache file extension. - * - * @return string|null - */ - public function getExtension() - { - return $this->extension; - } - - /** - * @param string $id - * - * @return string - */ - protected function getFilename($id) - { - return $this->directory - . DIRECTORY_SEPARATOR - . implode(str_split(hash('sha256', $id), 2), DIRECTORY_SEPARATOR) - . DIRECTORY_SEPARATOR - . preg_replace($this->disallowedCharacterPatterns, $this->replacementCharacters, $id) - . $this->extension; - } - - /** - * {@inheritdoc} - */ - protected function doDelete($id) - { - return @unlink($this->getFilename($id)); - } - - /** - * {@inheritdoc} - */ - protected function doFlush() - { - foreach ($this->getIterator() as $name => $file) { - @unlink($name); - } - - return true; - } - - /** - * {@inheritdoc} - */ - protected function doGetStats() - { - $usage = 0; - foreach ($this->getIterator() as $file) { - $usage += $file->getSize(); - } - - $free = disk_free_space($this->directory); - - return array( - Cache::STATS_HITS => null, - Cache::STATS_MISSES => null, - Cache::STATS_UPTIME => null, - Cache::STATS_MEMORY_USAGE => $usage, - Cache::STATS_MEMORY_AVAILABLE => $free, - ); - } - - /** - * Create path if needed. - * - * @param string $path - * @return bool TRUE on success or if path already exists, FALSE if path cannot be created. - */ - private function createPathIfNeeded($path) - { - if ( ! is_dir($path)) { - if (false === @mkdir($path, 0777, true) && !is_dir($path)) { - return false; - } - } - - return true; - } - - /** - * Writes a string content to file in an atomic way. - * - * @param string $filename Path to the file where to write the data. - * @param string $content The content to write - * - * @return bool TRUE on success, FALSE if path cannot be created, if path is not writable or an any other error. - */ - protected function writeFile($filename, $content) - { - $filepath = pathinfo($filename, PATHINFO_DIRNAME); - - if ( ! $this->createPathIfNeeded($filepath)) { - return false; - } - - if ( ! is_writable($filepath)) { - return false; - } - - $tmpFile = tempnam($filepath, 'swap'); - - if (file_put_contents($tmpFile, $content) !== false) { - if (@rename($tmpFile, $filename)) { - @chmod($filename, 0666 & ~umask()); - - return true; - } - - @unlink($tmpFile); - } - - return false; - } - - /** - * @return \Iterator - */ - private function getIterator() - { - return new \RegexIterator( - new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($this->directory)), - '/^.+' . preg_quote($this->extension, '/') . '$/i' - ); - } -} diff --git a/lib/aws-sdk/Doctrine/Common/Cache/FilesystemCache.php b/lib/aws-sdk/Doctrine/Common/Cache/FilesystemCache.php deleted file mode 100644 index 6b44aa0..0000000 --- a/lib/aws-sdk/Doctrine/Common/Cache/FilesystemCache.php +++ /dev/null @@ -1,111 +0,0 @@ -. - */ - -namespace Doctrine\Common\Cache; - -/** - * Filesystem cache driver. - * - * @since 2.3 - * @author Fabio B. Silva - */ -class FilesystemCache extends FileCache -{ - const EXTENSION = '.doctrinecache.data'; - - /** - * {@inheritdoc} - */ - public function __construct($directory, $extension = self::EXTENSION) - { - parent::__construct($directory, $extension); - } - - /** - * {@inheritdoc} - */ - protected function doFetch($id) - { - $data = ''; - $lifetime = -1; - $filename = $this->getFilename($id); - - if ( ! is_file($filename)) { - return false; - } - - $resource = fopen($filename, "r"); - - if (false !== ($line = fgets($resource))) { - $lifetime = (integer) $line; - } - - if ($lifetime !== 0 && $lifetime < time()) { - fclose($resource); - - return false; - } - - while (false !== ($line = fgets($resource))) { - $data .= $line; - } - - fclose($resource); - - return unserialize($data); - } - - /** - * {@inheritdoc} - */ - protected function doContains($id) - { - $lifetime = -1; - $filename = $this->getFilename($id); - - if ( ! is_file($filename)) { - return false; - } - - $resource = fopen($filename, "r"); - - if (false !== ($line = fgets($resource))) { - $lifetime = (integer) $line; - } - - fclose($resource); - - return $lifetime === 0 || $lifetime > time(); - } - - /** - * {@inheritdoc} - */ - protected function doSave($id, $data, $lifeTime = 0) - { - if ($lifeTime > 0) { - $lifeTime = time() + $lifeTime; - } - - $data = serialize($data); - $filename = $this->getFilename($id); - - return $this->writeFile($filename, $lifeTime . PHP_EOL . $data); - } -} diff --git a/lib/aws-sdk/Doctrine/Common/Cache/FlushableCache.php b/lib/aws-sdk/Doctrine/Common/Cache/FlushableCache.php deleted file mode 100644 index 817cee7..0000000 --- a/lib/aws-sdk/Doctrine/Common/Cache/FlushableCache.php +++ /dev/null @@ -1,37 +0,0 @@ -. - */ - -namespace Doctrine\Common\Cache; - -/** - * Interface for cache that can be flushed. - * - * @link www.doctrine-project.org - * @since 1.4 - * @author Adirelle - */ -interface FlushableCache -{ - /** - * Flushes all cache entries. - * - * @return boolean TRUE if the cache entries were successfully flushed, FALSE otherwise. - */ - public function flushAll(); -} diff --git a/lib/aws-sdk/Doctrine/Common/Cache/MemcacheCache.php b/lib/aws-sdk/Doctrine/Common/Cache/MemcacheCache.php deleted file mode 100644 index c5098fd..0000000 --- a/lib/aws-sdk/Doctrine/Common/Cache/MemcacheCache.php +++ /dev/null @@ -1,125 +0,0 @@ -. - */ - -namespace Doctrine\Common\Cache; - -use \Memcache; - -/** - * Memcache cache provider. - * - * @link www.doctrine-project.org - * @since 2.0 - * @author Benjamin Eberlei - * @author Guilherme Blanco - * @author Jonathan Wage - * @author Roman Borschel - * @author David Abdemoulaie - */ -class MemcacheCache extends CacheProvider -{ - /** - * @var Memcache|null - */ - private $memcache; - - /** - * Sets the memcache instance to use. - * - * @param Memcache $memcache - * - * @return void - */ - public function setMemcache(Memcache $memcache) - { - $this->memcache = $memcache; - } - - /** - * Gets the memcache instance used by the cache. - * - * @return Memcache|null - */ - public function getMemcache() - { - return $this->memcache; - } - - /** - * {@inheritdoc} - */ - protected function doFetch($id) - { - return $this->memcache->get($id); - } - - /** - * {@inheritdoc} - */ - protected function doContains($id) - { - $flags = null; - $this->memcache->get($id, $flags); - - //if memcache has changed the value of "flags", it means the value exists - return ($flags !== null); - } - - /** - * {@inheritdoc} - */ - protected function doSave($id, $data, $lifeTime = 0) - { - if ($lifeTime > 30 * 24 * 3600) { - $lifeTime = time() + $lifeTime; - } - return $this->memcache->set($id, $data, 0, (int) $lifeTime); - } - - /** - * {@inheritdoc} - */ - protected function doDelete($id) - { - return $this->memcache->delete($id); - } - - /** - * {@inheritdoc} - */ - protected function doFlush() - { - return $this->memcache->flush(); - } - - /** - * {@inheritdoc} - */ - protected function doGetStats() - { - $stats = $this->memcache->getStats(); - return array( - Cache::STATS_HITS => $stats['get_hits'], - Cache::STATS_MISSES => $stats['get_misses'], - Cache::STATS_UPTIME => $stats['uptime'], - Cache::STATS_MEMORY_USAGE => $stats['bytes'], - Cache::STATS_MEMORY_AVAILABLE => $stats['limit_maxbytes'], - ); - } -} diff --git a/lib/aws-sdk/Doctrine/Common/Cache/MemcachedCache.php b/lib/aws-sdk/Doctrine/Common/Cache/MemcachedCache.php deleted file mode 100644 index 040c26c..0000000 --- a/lib/aws-sdk/Doctrine/Common/Cache/MemcachedCache.php +++ /dev/null @@ -1,132 +0,0 @@ -. - */ - -namespace Doctrine\Common\Cache; - -use \Memcached; - -/** - * Memcached cache provider. - * - * @link www.doctrine-project.org - * @since 2.2 - * @author Benjamin Eberlei - * @author Guilherme Blanco - * @author Jonathan Wage - * @author Roman Borschel - * @author David Abdemoulaie - */ -class MemcachedCache extends CacheProvider -{ - /** - * @var Memcached|null - */ - private $memcached; - - /** - * Sets the memcache instance to use. - * - * @param Memcached $memcached - * - * @return void - */ - public function setMemcached(Memcached $memcached) - { - $this->memcached = $memcached; - } - - /** - * Gets the memcached instance used by the cache. - * - * @return Memcached|null - */ - public function getMemcached() - { - return $this->memcached; - } - - /** - * {@inheritdoc} - */ - protected function doFetch($id) - { - return $this->memcached->get($id); - } - - /** - * {@inheritdoc} - */ - protected function doFetchMultiple(array $keys) - { - return $this->memcached->getMulti($keys); - } - - /** - * {@inheritdoc} - */ - protected function doContains($id) - { - return (false !== $this->memcached->get($id)); - } - - /** - * {@inheritdoc} - */ - protected function doSave($id, $data, $lifeTime = 0) - { - if ($lifeTime > 30 * 24 * 3600) { - $lifeTime = time() + $lifeTime; - } - return $this->memcached->set($id, $data, (int) $lifeTime); - } - - /** - * {@inheritdoc} - */ - protected function doDelete($id) - { - return $this->memcached->delete($id); - } - - /** - * {@inheritdoc} - */ - protected function doFlush() - { - return $this->memcached->flush(); - } - - /** - * {@inheritdoc} - */ - protected function doGetStats() - { - $stats = $this->memcached->getStats(); - $servers = $this->memcached->getServerList(); - $key = $servers[0]['host'] . ':' . $servers[0]['port']; - $stats = $stats[$key]; - return array( - Cache::STATS_HITS => $stats['get_hits'], - Cache::STATS_MISSES => $stats['get_misses'], - Cache::STATS_UPTIME => $stats['uptime'], - Cache::STATS_MEMORY_USAGE => $stats['bytes'], - Cache::STATS_MEMORY_AVAILABLE => $stats['limit_maxbytes'], - ); - } -} diff --git a/lib/aws-sdk/Doctrine/Common/Cache/MongoDBCache.php b/lib/aws-sdk/Doctrine/Common/Cache/MongoDBCache.php deleted file mode 100644 index 0c7ac0a..0000000 --- a/lib/aws-sdk/Doctrine/Common/Cache/MongoDBCache.php +++ /dev/null @@ -1,191 +0,0 @@ -. - */ - -namespace Doctrine\Common\Cache; - -use MongoBinData; -use MongoCollection; -use MongoDate; - -/** - * MongoDB cache provider. - * - * @since 1.1 - * @author Jeremy Mikola - */ -class MongoDBCache extends CacheProvider -{ - /** - * The data field will store the serialized PHP value. - */ - const DATA_FIELD = 'd'; - - /** - * The expiration field will store a MongoDate value indicating when the - * cache entry should expire. - * - * With MongoDB 2.2+, entries can be automatically deleted by MongoDB by - * indexing this field wit the "expireAfterSeconds" option equal to zero. - * This will direct MongoDB to regularly query for and delete any entries - * whose date is older than the current time. Entries without a date value - * in this field will be ignored. - * - * The cache provider will also check dates on its own, in case expired - * entries are fetched before MongoDB's TTLMonitor pass can expire them. - * - * @see http://docs.mongodb.org/manual/tutorial/expire-data/ - */ - const EXPIRATION_FIELD = 'e'; - - /** - * @var MongoCollection - */ - private $collection; - - /** - * Constructor. - * - * This provider will default to the write concern and read preference - * options set on the MongoCollection instance (or inherited from MongoDB or - * MongoClient). Using an unacknowledged write concern (< 1) may make the - * return values of delete() and save() unreliable. Reading from secondaries - * may make contain() and fetch() unreliable. - * - * @see http://www.php.net/manual/en/mongo.readpreferences.php - * @see http://www.php.net/manual/en/mongo.writeconcerns.php - * @param MongoCollection $collection - */ - public function __construct(MongoCollection $collection) - { - $this->collection = $collection; - } - - /** - * {@inheritdoc} - */ - protected function doFetch($id) - { - $document = $this->collection->findOne(array('_id' => $id), array(self::DATA_FIELD, self::EXPIRATION_FIELD)); - - if ($document === null) { - return false; - } - - if ($this->isExpired($document)) { - $this->doDelete($id); - return false; - } - - return unserialize($document[self::DATA_FIELD]->bin); - } - - /** - * {@inheritdoc} - */ - protected function doContains($id) - { - $document = $this->collection->findOne(array('_id' => $id), array(self::EXPIRATION_FIELD)); - - if ($document === null) { - return false; - } - - if ($this->isExpired($document)) { - $this->doDelete($id); - return false; - } - - return true; - } - - /** - * {@inheritdoc} - */ - protected function doSave($id, $data, $lifeTime = 0) - { - $result = $this->collection->update( - array('_id' => $id), - array('$set' => array( - self::EXPIRATION_FIELD => ($lifeTime > 0 ? new MongoDate(time() + $lifeTime) : null), - self::DATA_FIELD => new MongoBinData(serialize($data), MongoBinData::BYTE_ARRAY), - )), - array('upsert' => true, 'multiple' => false) - ); - - return isset($result['ok']) ? $result['ok'] == 1 : true; - } - - /** - * {@inheritdoc} - */ - protected function doDelete($id) - { - $result = $this->collection->remove(array('_id' => $id)); - - return isset($result['n']) ? $result['n'] == 1 : true; - } - - /** - * {@inheritdoc} - */ - protected function doFlush() - { - // Use remove() in lieu of drop() to maintain any collection indexes - $result = $this->collection->remove(); - - return isset($result['ok']) ? $result['ok'] == 1 : true; - } - - /** - * {@inheritdoc} - */ - protected function doGetStats() - { - $serverStatus = $this->collection->db->command(array( - 'serverStatus' => 1, - 'locks' => 0, - 'metrics' => 0, - 'recordStats' => 0, - 'repl' => 0, - )); - - $collStats = $this->collection->db->command(array('collStats' => 1)); - - return array( - Cache::STATS_HITS => null, - Cache::STATS_MISSES => null, - Cache::STATS_UPTIME => (isset($serverStatus['uptime']) ? (integer) $serverStatus['uptime'] : null), - Cache::STATS_MEMORY_USAGE => (isset($collStats['size']) ? (integer) $collStats['size'] : null), - Cache::STATS_MEMORY_AVAILABLE => null, - ); - } - - /** - * Check if the document is expired. - * - * @param array $document - * @return boolean - */ - private function isExpired(array $document) - { - return isset($document[self::EXPIRATION_FIELD]) && - $document[self::EXPIRATION_FIELD] instanceof MongoDate && - $document[self::EXPIRATION_FIELD]->sec < time(); - } -} diff --git a/lib/aws-sdk/Doctrine/Common/Cache/MultiGetCache.php b/lib/aws-sdk/Doctrine/Common/Cache/MultiGetCache.php deleted file mode 100644 index df7146d..0000000 --- a/lib/aws-sdk/Doctrine/Common/Cache/MultiGetCache.php +++ /dev/null @@ -1,39 +0,0 @@ -. - */ - -namespace Doctrine\Common\Cache; - -/** - * Interface for cache drivers that allows to get many items at once. - * - * @link www.doctrine-project.org - * @since 1.4 - * @author Asmir Mustafic - */ -interface MultiGetCache -{ - /** - * Returns an associative array of values for keys is found in cache. - * - * @param string[] $keys Array of keys to retrieve from cache - * @return mixed[] Array of retrieved values, indexed by the specified keys. - * Values that couldn't be retrieved are not contained in this array. - */ - function fetchMultiple(array $keys); -} diff --git a/lib/aws-sdk/Doctrine/Common/Cache/PhpFileCache.php b/lib/aws-sdk/Doctrine/Common/Cache/PhpFileCache.php deleted file mode 100644 index 12dda5a..0000000 --- a/lib/aws-sdk/Doctrine/Common/Cache/PhpFileCache.php +++ /dev/null @@ -1,120 +0,0 @@ -. - */ - -namespace Doctrine\Common\Cache; - -/** - * Php file cache driver. - * - * @since 2.3 - * @author Fabio B. Silva - */ -class PhpFileCache extends FileCache -{ - const EXTENSION = '.doctrinecache.php'; - - /** - * {@inheritdoc} - */ - public function __construct($directory, $extension = self::EXTENSION) - { - parent::__construct($directory, $extension); - } - - /** - * {@inheritdoc} - */ - protected function doFetch($id) - { - $value = $this->includeFileForId($id); - - if (! $value) { - return false; - } - - if ($value['lifetime'] !== 0 && $value['lifetime'] < time()) { - return false; - } - - return $value['data']; - } - - /** - * {@inheritdoc} - */ - protected function doContains($id) - { - $value = $this->includeFileForId($id); - - if (! $value) { - return false; - } - - return $value['lifetime'] === 0 || $value['lifetime'] > time(); - } - - /** - * {@inheritdoc} - */ - protected function doSave($id, $data, $lifeTime = 0) - { - if ($lifeTime > 0) { - $lifeTime = time() + $lifeTime; - } - - if (is_object($data) && ! method_exists($data, '__set_state')) { - throw new \InvalidArgumentException( - "Invalid argument given, PhpFileCache only allows objects that implement __set_state() " . - "and fully support var_export(). You can use the FilesystemCache to save arbitrary object " . - "graphs using serialize()/deserialize()." - ); - } - - $filename = $this->getFilename($id); - - $value = array( - 'lifetime' => $lifeTime, - 'data' => $data - ); - - $value = var_export($value, true); - $code = sprintf('writeFile($filename, $code); - } - - /** - * @param string $id - * - * @return array|false - */ - private function includeFileForId($id) - { - $fileName = $this->getFilename($id); - - // note: error suppression is still faster than `file_exists`, `is_file` and `is_readable` - $value = @include $fileName; - - if (! isset($value['lifetime'])) { - return false; - } - - return $value; - } -} diff --git a/lib/aws-sdk/Doctrine/Common/Cache/PredisCache.php b/lib/aws-sdk/Doctrine/Common/Cache/PredisCache.php deleted file mode 100644 index 887f1ba..0000000 --- a/lib/aws-sdk/Doctrine/Common/Cache/PredisCache.php +++ /dev/null @@ -1,106 +0,0 @@ - - */ -class PredisCache extends CacheProvider -{ - /** - * @var Client - */ - private $client; - - /** - * @param Client $client - * - * @return void - */ - public function __construct(Client $client) - { - $this->client = $client; - } - - /** - * {@inheritdoc} - */ - protected function doFetch($id) - { - $result = $this->client->get($id); - if (null === $result) { - return false; - } - - return $result; - } - - /** - * {@inheritdoc} - */ - protected function doFetchMultiple(array $keys) - { - $fetchedItems = call_user_func_array(array($this->client, 'mget'), $keys); - - return array_filter(array_combine($keys, $fetchedItems)); - } - /** - * {@inheritdoc} - */ - protected function doContains($id) - { - return $this->client->exists($id); - } - - /** - * {@inheritdoc} - */ - protected function doSave($id, $data, $lifeTime = 0) - { - if ($lifeTime > 0) { - $response = $this->client->setex($id, $lifeTime, $data); - } else { - $response = $this->client->set($id, $data); - } - - return $response === true || $response == 'OK'; - } - - /** - * {@inheritdoc} - */ - protected function doDelete($id) - { - return $this->client->del($id) > 0; - } - - /** - * {@inheritdoc} - */ - protected function doFlush() - { - $response = $this->client->flushdb(); - - return $response === true || $response == 'OK'; - } - - /** - * {@inheritdoc} - */ - protected function doGetStats() - { - $info = $this->client->info(); - - return array( - Cache::STATS_HITS => false, - Cache::STATS_MISSES => false, - Cache::STATS_UPTIME => $info['Server']['uptime_in_seconds'], - Cache::STATS_MEMORY_USAGE => $info['Memory']['used_memory'], - Cache::STATS_MEMORY_AVAILABLE => false - ); - } -} diff --git a/lib/aws-sdk/Doctrine/Common/Cache/RedisCache.php b/lib/aws-sdk/Doctrine/Common/Cache/RedisCache.php deleted file mode 100644 index bffa022..0000000 --- a/lib/aws-sdk/Doctrine/Common/Cache/RedisCache.php +++ /dev/null @@ -1,150 +0,0 @@ -. - */ - -namespace Doctrine\Common\Cache; - -use Redis; - -/** - * Redis cache provider. - * - * @link www.doctrine-project.org - * @since 2.2 - * @author Osman Ungur - */ -class RedisCache extends CacheProvider -{ - /** - * @var Redis|null - */ - private $redis; - - /** - * Sets the redis instance to use. - * - * @param Redis $redis - * - * @return void - */ - public function setRedis(Redis $redis) - { - $redis->setOption(Redis::OPT_SERIALIZER, $this->getSerializerValue()); - $this->redis = $redis; - } - - /** - * Gets the redis instance used by the cache. - * - * @return Redis|null - */ - public function getRedis() - { - return $this->redis; - } - - /** - * {@inheritdoc} - */ - protected function doFetch($id) - { - return $this->redis->get($id); - } - - /** - * {@inheritdoc} - */ - protected function doFetchMultiple(array $keys) - { - $returnValues = array(); - $fetchedItems = $this->redis->mget($keys); - foreach ($keys as $key) { - if (isset($fetchedItems[$key])) { - $returnValues[$key] = $fetchedItems[$key]; - } - } - - return $returnValues; - } - - /** - * {@inheritdoc} - */ - protected function doContains($id) - { - return $this->redis->exists($id); - } - - /** - * {@inheritdoc} - */ - protected function doSave($id, $data, $lifeTime = 0) - { - if ($lifeTime > 0) { - return $this->redis->setex($id, $lifeTime, $data); - } - - return $this->redis->set($id, $data); - } - - /** - * {@inheritdoc} - */ - protected function doDelete($id) - { - return $this->redis->delete($id) > 0; - } - - /** - * {@inheritdoc} - */ - protected function doFlush() - { - return $this->redis->flushDB(); - } - - /** - * {@inheritdoc} - */ - protected function doGetStats() - { - $info = $this->redis->info(); - return array( - Cache::STATS_HITS => false, - Cache::STATS_MISSES => false, - Cache::STATS_UPTIME => $info['uptime_in_seconds'], - Cache::STATS_MEMORY_USAGE => $info['used_memory'], - Cache::STATS_MEMORY_AVAILABLE => false - ); - } - - /** - * Returns the serializer constant to use. If Redis is compiled with - * igbinary support, that is used. Otherwise the default PHP serializer is - * used. - * - * @return integer One of the Redis::SERIALIZER_* constants - */ - protected function getSerializerValue() - { - if (defined('HHVM_VERSION')) { - return Redis::SERIALIZER_PHP; - } - return defined('Redis::SERIALIZER_IGBINARY') ? Redis::SERIALIZER_IGBINARY : Redis::SERIALIZER_PHP; - } -} diff --git a/lib/aws-sdk/Doctrine/Common/Cache/RiakCache.php b/lib/aws-sdk/Doctrine/Common/Cache/RiakCache.php deleted file mode 100644 index 8bb6b4b..0000000 --- a/lib/aws-sdk/Doctrine/Common/Cache/RiakCache.php +++ /dev/null @@ -1,250 +0,0 @@ -. - */ - -namespace Doctrine\Common\Cache; - -use Riak\Bucket; -use Riak\Connection; -use Riak\Input; -use Riak\Exception; -use Riak\Object; - -/** - * Riak cache provider. - * - * @link www.doctrine-project.org - * @since 1.1 - * @author Guilherme Blanco - */ -class RiakCache extends CacheProvider -{ - const EXPIRES_HEADER = 'X-Riak-Meta-Expires'; - - /** - * @var \Riak\Bucket - */ - private $bucket; - - /** - * Sets the riak bucket instance to use. - * - * @param \Riak\Bucket $bucket - */ - public function __construct(Bucket $bucket) - { - $this->bucket = $bucket; - } - - /** - * {@inheritdoc} - */ - protected function doFetch($id) - { - try { - $response = $this->bucket->get($id); - - // No objects found - if ( ! $response->hasObject()) { - return false; - } - - // Check for attempted siblings - $object = ($response->hasSiblings()) - ? $this->resolveConflict($id, $response->getVClock(), $response->getObjectList()) - : $response->getFirstObject(); - - // Check for expired object - if ($this->isExpired($object)) { - $this->bucket->delete($object); - - return false; - } - - return unserialize($object->getContent()); - } catch (Exception\RiakException $e) { - // Covers: - // - Riak\ConnectionException - // - Riak\CommunicationException - // - Riak\UnexpectedResponseException - // - Riak\NotFoundException - } - - return false; - } - - /** - * {@inheritdoc} - */ - protected function doContains($id) - { - try { - // We only need the HEAD, not the entire object - $input = new Input\GetInput(); - - $input->setReturnHead(true); - - $response = $this->bucket->get($id, $input); - - // No objects found - if ( ! $response->hasObject()) { - return false; - } - - $object = $response->getFirstObject(); - - // Check for expired object - if ($this->isExpired($object)) { - $this->bucket->delete($object); - - return false; - } - - return true; - } catch (Exception\RiakException $e) { - // Do nothing - } - - return false; - } - - /** - * {@inheritdoc} - */ - protected function doSave($id, $data, $lifeTime = 0) - { - try { - $object = new Object($id); - - $object->setContent(serialize($data)); - - if ($lifeTime > 0) { - $object->addMetadata(self::EXPIRES_HEADER, (string) (time() + $lifeTime)); - } - - $this->bucket->put($object); - - return true; - } catch (Exception\RiakException $e) { - // Do nothing - } - - return false; - } - - /** - * {@inheritdoc} - */ - protected function doDelete($id) - { - try { - $this->bucket->delete($id); - - return true; - } catch (Exception\BadArgumentsException $e) { - // Key did not exist on cluster already - } catch (Exception\RiakException $e) { - // Covers: - // - Riak\Exception\ConnectionException - // - Riak\Exception\CommunicationException - // - Riak\Exception\UnexpectedResponseException - } - - return false; - } - - /** - * {@inheritdoc} - */ - protected function doFlush() - { - try { - $keyList = $this->bucket->getKeyList(); - - foreach ($keyList as $key) { - $this->bucket->delete($key); - } - - return true; - } catch (Exception\RiakException $e) { - // Do nothing - } - - return false; - } - - /** - * {@inheritdoc} - */ - protected function doGetStats() - { - // Only exposed through HTTP stats API, not Protocol Buffers API - return null; - } - - /** - * Check if a given Riak Object have expired. - * - * @param \Riak\Object $object - * - * @return boolean - */ - private function isExpired(Object $object) - { - $metadataMap = $object->getMetadataMap(); - - return isset($metadataMap[self::EXPIRES_HEADER]) - && $metadataMap[self::EXPIRES_HEADER] < time(); - } - - /** - * On-read conflict resolution. Applied approach here is last write wins. - * Specific needs may override this method to apply alternate conflict resolutions. - * - * {@internal Riak does not attempt to resolve a write conflict, and store - * it as sibling of conflicted one. By following this approach, it is up to - * the next read to resolve the conflict. When this happens, your fetched - * object will have a list of siblings (read as a list of objects). - * In our specific case, we do not care about the intermediate ones since - * they are all the same read from storage, and we do apply a last sibling - * (last write) wins logic. - * If by any means our resolution generates another conflict, it'll up to - * next read to properly solve it.} - * - * @param string $id - * @param string $vClock - * @param array $objectList - * - * @return \Riak\Object - */ - protected function resolveConflict($id, $vClock, array $objectList) - { - // Our approach here is last-write wins - $winner = $objectList[count($objectList)]; - - $putInput = new Input\PutInput(); - $putInput->setVClock($vClock); - - $mergedObject = new Object($id); - $mergedObject->setContent($winner->getContent()); - - $this->bucket->put($mergedObject, $putInput); - - return $mergedObject; - } -} diff --git a/lib/aws-sdk/Doctrine/Common/Cache/SQLite3Cache.php b/lib/aws-sdk/Doctrine/Common/Cache/SQLite3Cache.php deleted file mode 100644 index b12978c..0000000 --- a/lib/aws-sdk/Doctrine/Common/Cache/SQLite3Cache.php +++ /dev/null @@ -1,219 +0,0 @@ -. - */ - -namespace Doctrine\Common\Cache; - -use SQLite3; -use SQLite3Result; - -/** - * SQLite3 cache provider. - * - * @since 1.4 - * @author Jake Bell - */ -class SQLite3Cache extends CacheProvider -{ - /** - * The ID field will store the cache key. - */ - const ID_FIELD = 'k'; - - /** - * The data field will store the serialized PHP value. - */ - const DATA_FIELD = 'd'; - - /** - * The expiration field will store a date value indicating when the - * cache entry should expire. - */ - const EXPIRATION_FIELD = 'e'; - - /** - * @var SQLite3 - */ - private $sqlite; - - /** - * @var string - */ - private $table; - - /** - * Constructor. - * - * Calling the constructor will ensure that the database file and table - * exist and will create both if they don't. - * - * @param SQLite3 $sqlite - * @param string $table - */ - public function __construct(SQLite3 $sqlite, $table) - { - $this->sqlite = $sqlite; - $this->table = (string) $table; - - list($id, $data, $exp) = $this->getFields(); - - return $this->sqlite->exec(sprintf( - 'CREATE TABLE IF NOT EXISTS %s(%s TEXT PRIMARY KEY NOT NULL, %s BLOB, %s INTEGER)', - $table, - $id, - $data, - $exp - )); - } - - /** - * {@inheritdoc} - */ - protected function doFetch($id) - { - if ($item = $this->findById($id)) { - return unserialize($item[self::DATA_FIELD]); - } - - return false; - } - - /** - * {@inheritdoc} - */ - protected function doContains($id) - { - return (boolean) $this->findById($id, false); - } - - /** - * {@inheritdoc} - */ - protected function doSave($id, $data, $lifeTime = 0) - { - $statement = $this->sqlite->prepare(sprintf( - 'INSERT OR REPLACE INTO %s (%s) VALUES (:id, :data, :expire)', - $this->table, - implode(',', $this->getFields()) - )); - - $statement->bindValue(':id', $id); - $statement->bindValue(':data', serialize($data), SQLITE3_BLOB); - $statement->bindValue(':expire', $lifeTime > 0 ? time() + $lifeTime : null); - - return $statement->execute() instanceof SQLite3Result; - } - - /** - * {@inheritdoc} - */ - protected function doDelete($id) - { - list($idField) = $this->getFields(); - - $statement = $this->sqlite->prepare(sprintf( - 'DELETE FROM %s WHERE %s = :id', - $this->table, - $idField - )); - - $statement->bindValue(':id', $id); - - return $statement->execute() instanceof SQLite3Result; - } - - /** - * {@inheritdoc} - */ - protected function doFlush() - { - return $this->sqlite->exec(sprintf('DELETE FROM %s', $this->table)); - } - - /** - * {@inheritdoc} - */ - protected function doGetStats() - { - // no-op. - } - - /** - * Find a single row by ID. - * - * @param mixed $id - * @param boolean $includeData - * - * @return array|null - */ - private function findById($id, $includeData = true) - { - list($idField) = $fields = $this->getFields(); - - if (!$includeData) { - $key = array_search(static::DATA_FIELD, $fields); - unset($fields[$key]); - } - - $statement = $this->sqlite->prepare(sprintf( - 'SELECT %s FROM %s WHERE %s = :id LIMIT 1', - implode(',', $fields), - $this->table, - $idField - )); - - $statement->bindValue(':id', $id, SQLITE3_TEXT); - - $item = $statement->execute()->fetchArray(SQLITE3_ASSOC); - - if ($item === false) { - return null; - } - - if ($this->isExpired($item)) { - $this->doDelete($id); - - return null; - } - - return $item; - } - - /** - * Gets an array of the fields in our table. - * - * @return array - */ - private function getFields() - { - return array(static::ID_FIELD, static::DATA_FIELD, static::EXPIRATION_FIELD); - } - - /** - * Check if the item is expired. - * - * @param array $item - * @return boolean - */ - private function isExpired(array $item) - { - return isset($item[static::EXPIRATION_FIELD]) && - $item[self::EXPIRATION_FIELD] !== null && - $item[self::EXPIRATION_FIELD] < time(); - } -} diff --git a/lib/aws-sdk/Doctrine/Common/Cache/Version.php b/lib/aws-sdk/Doctrine/Common/Cache/Version.php deleted file mode 100644 index d742fa0..0000000 --- a/lib/aws-sdk/Doctrine/Common/Cache/Version.php +++ /dev/null @@ -1,25 +0,0 @@ -. - */ - -namespace Doctrine\Common\Cache; - -class Version -{ - const VERSION = '1.4.0-DEV'; -} diff --git a/lib/aws-sdk/Doctrine/Common/Cache/VoidCache.php b/lib/aws-sdk/Doctrine/Common/Cache/VoidCache.php deleted file mode 100644 index 65e8456..0000000 --- a/lib/aws-sdk/Doctrine/Common/Cache/VoidCache.php +++ /dev/null @@ -1,78 +0,0 @@ -. - */ - -namespace Doctrine\Common\Cache; - -/** - * Void cache driver. The cache could be of use in tests where you don`t need to cache anything. - * - * @link www.doctrine-project.org - * @since 1.5 - * @author Kotlyar Maksim - */ -class VoidCache extends CacheProvider -{ - /** - * {@inheritDoc} - */ - protected function doFetch($id) - { - return false; - } - - /** - * {@inheritDoc} - */ - protected function doContains($id) - { - return false; - } - - /** - * {@inheritDoc} - */ - protected function doSave($id, $data, $lifeTime = 0) - { - return true; - } - - /** - * {@inheritDoc} - */ - protected function doDelete($id) - { - return true; - } - - /** - * {@inheritDoc} - */ - protected function doFlush() - { - return true; - } - - /** - * {@inheritDoc} - */ - protected function doGetStats() - { - return; - } -} diff --git a/lib/aws-sdk/Doctrine/Common/Cache/WinCacheCache.php b/lib/aws-sdk/Doctrine/Common/Cache/WinCacheCache.php deleted file mode 100644 index ae32772..0000000 --- a/lib/aws-sdk/Doctrine/Common/Cache/WinCacheCache.php +++ /dev/null @@ -1,91 +0,0 @@ -. - */ - -namespace Doctrine\Common\Cache; - -/** - * WinCache cache provider. - * - * @link www.doctrine-project.org - * @since 2.2 - * @author Benjamin Eberlei - * @author Guilherme Blanco - * @author Jonathan Wage - * @author Roman Borschel - * @author David Abdemoulaie - */ -class WinCacheCache extends CacheProvider -{ - /** - * {@inheritdoc} - */ - protected function doFetch($id) - { - return wincache_ucache_get($id); - } - - /** - * {@inheritdoc} - */ - protected function doContains($id) - { - return wincache_ucache_exists($id); - } - - /** - * {@inheritdoc} - */ - protected function doSave($id, $data, $lifeTime = 0) - { - return (bool) wincache_ucache_set($id, $data, (int) $lifeTime); - } - - /** - * {@inheritdoc} - */ - protected function doDelete($id) - { - return wincache_ucache_delete($id); - } - - /** - * {@inheritdoc} - */ - protected function doFlush() - { - return wincache_ucache_clear(); - } - - /** - * {@inheritdoc} - */ - protected function doGetStats() - { - $info = wincache_ucache_info(); - $meminfo = wincache_ucache_meminfo(); - - return array( - Cache::STATS_HITS => $info['total_hit_count'], - Cache::STATS_MISSES => $info['total_miss_count'], - Cache::STATS_UPTIME => $info['total_cache_uptime'], - Cache::STATS_MEMORY_USAGE => $meminfo['memory_total'], - Cache::STATS_MEMORY_AVAILABLE => $meminfo['memory_free'], - ); - } -} diff --git a/lib/aws-sdk/Doctrine/Common/Cache/XcacheCache.php b/lib/aws-sdk/Doctrine/Common/Cache/XcacheCache.php deleted file mode 100644 index a2c4ca5..0000000 --- a/lib/aws-sdk/Doctrine/Common/Cache/XcacheCache.php +++ /dev/null @@ -1,112 +0,0 @@ -. - */ - -namespace Doctrine\Common\Cache; - -/** - * Xcache cache driver. - * - * @link www.doctrine-project.org - * @since 2.0 - * @author Benjamin Eberlei - * @author Guilherme Blanco - * @author Jonathan Wage - * @author Roman Borschel - * @author David Abdemoulaie - */ -class XcacheCache extends CacheProvider -{ - /** - * {@inheritdoc} - */ - protected function doFetch($id) - { - return $this->doContains($id) ? unserialize(xcache_get($id)) : false; - } - - /** - * {@inheritdoc} - */ - protected function doContains($id) - { - return xcache_isset($id); - } - - /** - * {@inheritdoc} - */ - protected function doSave($id, $data, $lifeTime = 0) - { - return xcache_set($id, serialize($data), (int) $lifeTime); - } - - /** - * {@inheritdoc} - */ - protected function doDelete($id) - { - return xcache_unset($id); - } - - /** - * {@inheritdoc} - */ - protected function doFlush() - { - $this->checkAuthorization(); - - xcache_clear_cache(XC_TYPE_VAR); - - return true; - } - - /** - * Checks that xcache.admin.enable_auth is Off. - * - * @return void - * - * @throws \BadMethodCallException When xcache.admin.enable_auth is On. - */ - protected function checkAuthorization() - { - if (ini_get('xcache.admin.enable_auth')) { - throw new \BadMethodCallException( - 'To use all features of \Doctrine\Common\Cache\XcacheCache, ' - . 'you must set "xcache.admin.enable_auth" to "Off" in your php.ini.' - ); - } - } - - /** - * {@inheritdoc} - */ - protected function doGetStats() - { - $this->checkAuthorization(); - - $info = xcache_info(XC_TYPE_VAR, 0); - return array( - Cache::STATS_HITS => $info['hits'], - Cache::STATS_MISSES => $info['misses'], - Cache::STATS_UPTIME => null, - Cache::STATS_MEMORY_USAGE => $info['size'], - Cache::STATS_MEMORY_AVAILABLE => $info['avail'], - ); - } -} diff --git a/lib/aws-sdk/Doctrine/Common/Cache/ZendDataCache.php b/lib/aws-sdk/Doctrine/Common/Cache/ZendDataCache.php deleted file mode 100644 index 6e35ac8..0000000 --- a/lib/aws-sdk/Doctrine/Common/Cache/ZendDataCache.php +++ /dev/null @@ -1,83 +0,0 @@ -. - */ - -namespace Doctrine\Common\Cache; - -/** - * Zend Data Cache cache driver. - * - * @link www.doctrine-project.org - * @since 2.0 - * @author Ralph Schindler - * @author Guilherme Blanco - */ -class ZendDataCache extends CacheProvider -{ - /** - * {@inheritdoc} - */ - protected function doFetch($id) - { - return zend_shm_cache_fetch($id); - } - - /** - * {@inheritdoc} - */ - protected function doContains($id) - { - return (false !== zend_shm_cache_fetch($id)); - } - - /** - * {@inheritdoc} - */ - protected function doSave($id, $data, $lifeTime = 0) - { - return zend_shm_cache_store($id, $data, $lifeTime); - } - - /** - * {@inheritdoc} - */ - protected function doDelete($id) - { - return zend_shm_cache_delete($id); - } - - /** - * {@inheritdoc} - */ - protected function doFlush() - { - $namespace = $this->getNamespace(); - if (empty($namespace)) { - return zend_shm_cache_clear(); - } - return zend_shm_cache_clear($namespace); - } - - /** - * {@inheritdoc} - */ - protected function doGetStats() - { - return null; - } -} diff --git a/lib/aws-sdk/Guzzle/Batch/AbstractBatchDecorator.php b/lib/aws-sdk/Guzzle/Batch/AbstractBatchDecorator.php deleted file mode 100644 index 0625d71..0000000 --- a/lib/aws-sdk/Guzzle/Batch/AbstractBatchDecorator.php +++ /dev/null @@ -1,66 +0,0 @@ -decoratedBatch = $decoratedBatch; - } - - /** - * Allow decorators to implement custom methods - * - * @param string $method Missing method name - * @param array $args Method arguments - * - * @return mixed - * @codeCoverageIgnore - */ - public function __call($method, array $args) - { - return call_user_func_array(array($this->decoratedBatch, $method), $args); - } - - public function add($item) - { - $this->decoratedBatch->add($item); - - return $this; - } - - public function flush() - { - return $this->decoratedBatch->flush(); - } - - public function isEmpty() - { - return $this->decoratedBatch->isEmpty(); - } - - /** - * Trace the decorators associated with the batch - * - * @return array - */ - public function getDecorators() - { - $found = array($this); - if (method_exists($this->decoratedBatch, 'getDecorators')) { - $found = array_merge($found, $this->decoratedBatch->getDecorators()); - } - - return $found; - } -} diff --git a/lib/aws-sdk/Guzzle/Batch/Batch.php b/lib/aws-sdk/Guzzle/Batch/Batch.php deleted file mode 100644 index 4d41c54..0000000 --- a/lib/aws-sdk/Guzzle/Batch/Batch.php +++ /dev/null @@ -1,92 +0,0 @@ -transferStrategy = $transferStrategy; - $this->divisionStrategy = $divisionStrategy; - $this->queue = new \SplQueue(); - $this->queue->setIteratorMode(\SplQueue::IT_MODE_DELETE); - $this->dividedBatches = array(); - } - - public function add($item) - { - $this->queue->enqueue($item); - - return $this; - } - - public function flush() - { - $this->createBatches(); - - $items = array(); - foreach ($this->dividedBatches as $batchIndex => $dividedBatch) { - while ($dividedBatch->valid()) { - $batch = $dividedBatch->current(); - $dividedBatch->next(); - try { - $this->transferStrategy->transfer($batch); - $items = array_merge($items, $batch); - } catch (\Exception $e) { - throw new BatchTransferException($batch, $items, $e, $this->transferStrategy, $this->divisionStrategy); - } - } - // Keep the divided batch down to a minimum in case of a later exception - unset($this->dividedBatches[$batchIndex]); - } - - return $items; - } - - public function isEmpty() - { - return count($this->queue) == 0 && count($this->dividedBatches) == 0; - } - - /** - * Create batches for any queued items - */ - protected function createBatches() - { - if (count($this->queue)) { - if ($batches = $this->divisionStrategy->createBatches($this->queue)) { - // Convert arrays into iterators - if (is_array($batches)) { - $batches = new \ArrayIterator($batches); - } - $this->dividedBatches[] = $batches; - } - } - } -} diff --git a/lib/aws-sdk/Guzzle/Batch/BatchBuilder.php b/lib/aws-sdk/Guzzle/Batch/BatchBuilder.php deleted file mode 100644 index ea99b4d..0000000 --- a/lib/aws-sdk/Guzzle/Batch/BatchBuilder.php +++ /dev/null @@ -1,199 +0,0 @@ - 'Guzzle\Batch\BatchRequestTransfer', - 'command' => 'Guzzle\Batch\BatchCommandTransfer' - ); - - /** - * Create a new instance of the BatchBuilder - * - * @return BatchBuilder - */ - public static function factory() - { - return new self(); - } - - /** - * Automatically flush the batch when the size of the queue reaches a certain threshold. Adds {@see FlushingBatch}. - * - * @param $threshold Number of items to allow in the queue before a flush - * - * @return BatchBuilder - */ - public function autoFlushAt($threshold) - { - $this->autoFlush = $threshold; - - return $this; - } - - /** - * Maintain a history of all items that have been transferred using the batch. Adds {@see HistoryBatch}. - * - * @return BatchBuilder - */ - public function keepHistory() - { - $this->history = true; - - return $this; - } - - /** - * Buffer exceptions thrown during transfer so that you can transfer as much as possible, and after a transfer - * completes, inspect each exception that was thrown. Enables the {@see ExceptionBufferingBatch} decorator. - * - * @return BatchBuilder - */ - public function bufferExceptions() - { - $this->exceptionBuffering = true; - - return $this; - } - - /** - * Notify a callable each time a batch flush completes. Enables the {@see NotifyingBatch} decorator. - * - * @param mixed $callable Callable function to notify - * - * @return BatchBuilder - * @throws InvalidArgumentException if the argument is not callable - */ - public function notify($callable) - { - $this->afterFlush = $callable; - - return $this; - } - - /** - * Configures the batch to transfer batches of requests. Associates a {@see \Guzzle\Http\BatchRequestTransfer} - * object as both the transfer and divisor strategy. - * - * @param int $batchSize Batch size for each batch of requests - * - * @return BatchBuilder - */ - public function transferRequests($batchSize = 50) - { - $className = self::$mapping['request']; - $this->transferStrategy = new $className($batchSize); - $this->divisorStrategy = $this->transferStrategy; - - return $this; - } - - /** - * Configures the batch to transfer batches commands. Associates as - * {@see \Guzzle\Service\Command\BatchCommandTransfer} as both the transfer and divisor strategy. - * - * @param int $batchSize Batch size for each batch of commands - * - * @return BatchBuilder - */ - public function transferCommands($batchSize = 50) - { - $className = self::$mapping['command']; - $this->transferStrategy = new $className($batchSize); - $this->divisorStrategy = $this->transferStrategy; - - return $this; - } - - /** - * Specify the strategy used to divide the queue into an array of batches - * - * @param BatchDivisorInterface $divisorStrategy Strategy used to divide a batch queue into batches - * - * @return BatchBuilder - */ - public function createBatchesWith(BatchDivisorInterface $divisorStrategy) - { - $this->divisorStrategy = $divisorStrategy; - - return $this; - } - - /** - * Specify the strategy used to transport the items when flush is called - * - * @param BatchTransferInterface $transferStrategy How items are transferred - * - * @return BatchBuilder - */ - public function transferWith(BatchTransferInterface $transferStrategy) - { - $this->transferStrategy = $transferStrategy; - - return $this; - } - - /** - * Create and return the instantiated batch - * - * @return BatchInterface - * @throws RuntimeException if no transfer strategy has been specified - */ - public function build() - { - if (!$this->transferStrategy) { - throw new RuntimeException('No transfer strategy has been specified'); - } - - if (!$this->divisorStrategy) { - throw new RuntimeException('No divisor strategy has been specified'); - } - - $batch = new Batch($this->transferStrategy, $this->divisorStrategy); - - if ($this->exceptionBuffering) { - $batch = new ExceptionBufferingBatch($batch); - } - - if ($this->afterFlush) { - $batch = new NotifyingBatch($batch, $this->afterFlush); - } - - if ($this->autoFlush) { - $batch = new FlushingBatch($batch, $this->autoFlush); - } - - if ($this->history) { - $batch = new HistoryBatch($batch); - } - - return $batch; - } -} diff --git a/lib/aws-sdk/Guzzle/Batch/BatchClosureDivisor.php b/lib/aws-sdk/Guzzle/Batch/BatchClosureDivisor.php deleted file mode 100644 index e0a2d95..0000000 --- a/lib/aws-sdk/Guzzle/Batch/BatchClosureDivisor.php +++ /dev/null @@ -1,39 +0,0 @@ -callable = $callable; - $this->context = $context; - } - - public function createBatches(\SplQueue $queue) - { - return call_user_func($this->callable, $queue, $this->context); - } -} diff --git a/lib/aws-sdk/Guzzle/Batch/BatchClosureTransfer.php b/lib/aws-sdk/Guzzle/Batch/BatchClosureTransfer.php deleted file mode 100644 index 9cbf1ab..0000000 --- a/lib/aws-sdk/Guzzle/Batch/BatchClosureTransfer.php +++ /dev/null @@ -1,40 +0,0 @@ -callable = $callable; - $this->context = $context; - } - - public function transfer(array $batch) - { - return empty($batch) ? null : call_user_func($this->callable, $batch, $this->context); - } -} diff --git a/lib/aws-sdk/Guzzle/Batch/BatchCommandTransfer.php b/lib/aws-sdk/Guzzle/Batch/BatchCommandTransfer.php deleted file mode 100644 index d55ac7d..0000000 --- a/lib/aws-sdk/Guzzle/Batch/BatchCommandTransfer.php +++ /dev/null @@ -1,75 +0,0 @@ -batchSize = $batchSize; - } - - /** - * Creates batches by grouping commands by their associated client - * {@inheritdoc} - */ - public function createBatches(\SplQueue $queue) - { - $groups = new \SplObjectStorage(); - foreach ($queue as $item) { - if (!$item instanceof CommandInterface) { - throw new InvalidArgumentException('All items must implement Guzzle\Service\Command\CommandInterface'); - } - $client = $item->getClient(); - if (!$groups->contains($client)) { - $groups->attach($client, new \ArrayObject(array($item))); - } else { - $groups[$client]->append($item); - } - } - - $batches = array(); - foreach ($groups as $batch) { - $batches = array_merge($batches, array_chunk($groups[$batch]->getArrayCopy(), $this->batchSize)); - } - - return $batches; - } - - public function transfer(array $batch) - { - if (empty($batch)) { - return; - } - - // Get the client of the first found command - $client = reset($batch)->getClient(); - - // Keep a list of all commands with invalid clients - $invalid = array_filter($batch, function ($command) use ($client) { - return $command->getClient() !== $client; - }); - - if (!empty($invalid)) { - throw new InconsistentClientTransferException($invalid); - } - - $client->execute($batch); - } -} diff --git a/lib/aws-sdk/Guzzle/Batch/BatchDivisorInterface.php b/lib/aws-sdk/Guzzle/Batch/BatchDivisorInterface.php deleted file mode 100644 index 0214f05..0000000 --- a/lib/aws-sdk/Guzzle/Batch/BatchDivisorInterface.php +++ /dev/null @@ -1,18 +0,0 @@ -batchSize = $batchSize; - } - - /** - * Creates batches of requests by grouping requests by their associated curl multi object. - * {@inheritdoc} - */ - public function createBatches(\SplQueue $queue) - { - // Create batches by client objects - $groups = new \SplObjectStorage(); - foreach ($queue as $item) { - if (!$item instanceof RequestInterface) { - throw new InvalidArgumentException('All items must implement Guzzle\Http\Message\RequestInterface'); - } - $client = $item->getClient(); - if (!$groups->contains($client)) { - $groups->attach($client, array($item)); - } else { - $current = $groups[$client]; - $current[] = $item; - $groups[$client] = $current; - } - } - - $batches = array(); - foreach ($groups as $batch) { - $batches = array_merge($batches, array_chunk($groups[$batch], $this->batchSize)); - } - - return $batches; - } - - public function transfer(array $batch) - { - if ($batch) { - reset($batch)->getClient()->send($batch); - } - } -} diff --git a/lib/aws-sdk/Guzzle/Batch/BatchSizeDivisor.php b/lib/aws-sdk/Guzzle/Batch/BatchSizeDivisor.php deleted file mode 100644 index 67f90a5..0000000 --- a/lib/aws-sdk/Guzzle/Batch/BatchSizeDivisor.php +++ /dev/null @@ -1,47 +0,0 @@ -size = $size; - } - - /** - * Set the size of each batch - * - * @param int $size Size of each batch - * - * @return BatchSizeDivisor - */ - public function setSize($size) - { - $this->size = $size; - - return $this; - } - - /** - * Get the size of each batch - * - * @return int - */ - public function getSize() - { - return $this->size; - } - - public function createBatches(\SplQueue $queue) - { - return array_chunk(iterator_to_array($queue, false), $this->size); - } -} diff --git a/lib/aws-sdk/Guzzle/Batch/BatchTransferInterface.php b/lib/aws-sdk/Guzzle/Batch/BatchTransferInterface.php deleted file mode 100644 index 2e0b60d..0000000 --- a/lib/aws-sdk/Guzzle/Batch/BatchTransferInterface.php +++ /dev/null @@ -1,16 +0,0 @@ -batch = $batch; - $this->transferredItems = $transferredItems; - $this->transferStrategy = $transferStrategy; - $this->divisorStrategy = $divisorStrategy; - parent::__construct( - 'Exception encountered while transferring batch: ' . $exception->getMessage(), - $exception->getCode(), - $exception - ); - } - - /** - * Get the batch that we being sent when the exception occurred - * - * @return array - */ - public function getBatch() - { - return $this->batch; - } - - /** - * Get the items transferred at the point in which the exception was encountered - * - * @return array - */ - public function getTransferredItems() - { - return $this->transferredItems; - } - - /** - * Get the transfer strategy - * - * @return TransferStrategy - */ - public function getTransferStrategy() - { - return $this->transferStrategy; - } - - /** - * Get the divisor strategy - * - * @return DivisorStrategy - */ - public function getDivisorStrategy() - { - return $this->divisorStrategy; - } -} diff --git a/lib/aws-sdk/Guzzle/Batch/ExceptionBufferingBatch.php b/lib/aws-sdk/Guzzle/Batch/ExceptionBufferingBatch.php deleted file mode 100644 index d7a8928..0000000 --- a/lib/aws-sdk/Guzzle/Batch/ExceptionBufferingBatch.php +++ /dev/null @@ -1,50 +0,0 @@ -decoratedBatch->isEmpty()) { - try { - $transferredItems = $this->decoratedBatch->flush(); - } catch (BatchTransferException $e) { - $this->exceptions[] = $e; - $transferredItems = $e->getTransferredItems(); - } - $items = array_merge($items, $transferredItems); - } - - return $items; - } - - /** - * Get the buffered exceptions - * - * @return array Array of BatchTransferException objects - */ - public function getExceptions() - { - return $this->exceptions; - } - - /** - * Clear the buffered exceptions - */ - public function clearExceptions() - { - $this->exceptions = array(); - } -} diff --git a/lib/aws-sdk/Guzzle/Batch/FlushingBatch.php b/lib/aws-sdk/Guzzle/Batch/FlushingBatch.php deleted file mode 100644 index 367b684..0000000 --- a/lib/aws-sdk/Guzzle/Batch/FlushingBatch.php +++ /dev/null @@ -1,60 +0,0 @@ -threshold = $threshold; - parent::__construct($decoratedBatch); - } - - /** - * Set the auto-flush threshold - * - * @param int $threshold The auto-flush threshold - * - * @return FlushingBatch - */ - public function setThreshold($threshold) - { - $this->threshold = $threshold; - - return $this; - } - - /** - * Get the auto-flush threshold - * - * @return int - */ - public function getThreshold() - { - return $this->threshold; - } - - public function add($item) - { - $this->decoratedBatch->add($item); - if (++$this->currentTotal >= $this->threshold) { - $this->currentTotal = 0; - $this->decoratedBatch->flush(); - } - - return $this; - } -} diff --git a/lib/aws-sdk/Guzzle/Batch/HistoryBatch.php b/lib/aws-sdk/Guzzle/Batch/HistoryBatch.php deleted file mode 100644 index e345fdc..0000000 --- a/lib/aws-sdk/Guzzle/Batch/HistoryBatch.php +++ /dev/null @@ -1,39 +0,0 @@ -history[] = $item; - $this->decoratedBatch->add($item); - - return $this; - } - - /** - * Get the batch history - * - * @return array - */ - public function getHistory() - { - return $this->history; - } - - /** - * Clear the batch history - */ - public function clearHistory() - { - $this->history = array(); - } -} diff --git a/lib/aws-sdk/Guzzle/Batch/NotifyingBatch.php b/lib/aws-sdk/Guzzle/Batch/NotifyingBatch.php deleted file mode 100644 index 96d04da..0000000 --- a/lib/aws-sdk/Guzzle/Batch/NotifyingBatch.php +++ /dev/null @@ -1,38 +0,0 @@ -callable = $callable; - parent::__construct($decoratedBatch); - } - - public function flush() - { - $items = $this->decoratedBatch->flush(); - call_user_func($this->callable, $items); - - return $items; - } -} diff --git a/lib/aws-sdk/Guzzle/Cache/AbstractCacheAdapter.php b/lib/aws-sdk/Guzzle/Cache/AbstractCacheAdapter.php deleted file mode 100644 index a5c5271..0000000 --- a/lib/aws-sdk/Guzzle/Cache/AbstractCacheAdapter.php +++ /dev/null @@ -1,21 +0,0 @@ -cache; - } -} diff --git a/lib/aws-sdk/Guzzle/Cache/CacheAdapterFactory.php b/lib/aws-sdk/Guzzle/Cache/CacheAdapterFactory.php deleted file mode 100644 index 94e6234..0000000 --- a/lib/aws-sdk/Guzzle/Cache/CacheAdapterFactory.php +++ /dev/null @@ -1,117 +0,0 @@ -newInstanceArgs($args); - } - } catch (\Exception $e) { - throw new RuntimeException($e->getMessage(), $e->getCode(), $e); - } - } -} diff --git a/lib/aws-sdk/Guzzle/Cache/CacheAdapterInterface.php b/lib/aws-sdk/Guzzle/Cache/CacheAdapterInterface.php deleted file mode 100644 index 970c9e2..0000000 --- a/lib/aws-sdk/Guzzle/Cache/CacheAdapterInterface.php +++ /dev/null @@ -1,55 +0,0 @@ -callables = $callables; - } - - public function contains($id, array $options = null) - { - return call_user_func($this->callables['contains'], $id, $options); - } - - public function delete($id, array $options = null) - { - return call_user_func($this->callables['delete'], $id, $options); - } - - public function fetch($id, array $options = null) - { - return call_user_func($this->callables['fetch'], $id, $options); - } - - public function save($id, $data, $lifeTime = false, array $options = null) - { - return call_user_func($this->callables['save'], $id, $data, $lifeTime, $options); - } -} diff --git a/lib/aws-sdk/Guzzle/Cache/DoctrineCacheAdapter.php b/lib/aws-sdk/Guzzle/Cache/DoctrineCacheAdapter.php deleted file mode 100644 index e1aaf9f..0000000 --- a/lib/aws-sdk/Guzzle/Cache/DoctrineCacheAdapter.php +++ /dev/null @@ -1,41 +0,0 @@ -cache = $cache; - } - - public function contains($id, array $options = null) - { - return $this->cache->contains($id); - } - - public function delete($id, array $options = null) - { - return $this->cache->delete($id); - } - - public function fetch($id, array $options = null) - { - return $this->cache->fetch($id); - } - - public function save($id, $data, $lifeTime = false, array $options = null) - { - return $this->cache->save($id, $data, $lifeTime !== false ? $lifeTime : 0); - } -} diff --git a/lib/aws-sdk/Guzzle/Cache/NullCacheAdapter.php b/lib/aws-sdk/Guzzle/Cache/NullCacheAdapter.php deleted file mode 100644 index 68bd4af..0000000 --- a/lib/aws-sdk/Guzzle/Cache/NullCacheAdapter.php +++ /dev/null @@ -1,31 +0,0 @@ -cache = $cache; - } - - public function contains($id, array $options = null) - { - return $this->cache->test($id); - } - - public function delete($id, array $options = null) - { - return $this->cache->remove($id); - } - - public function fetch($id, array $options = null) - { - return $this->cache->load($id); - } - - public function save($id, $data, $lifeTime = false, array $options = null) - { - return $this->cache->save($data, $id, array(), $lifeTime); - } -} diff --git a/lib/aws-sdk/Guzzle/Cache/Zf2CacheAdapter.php b/lib/aws-sdk/Guzzle/Cache/Zf2CacheAdapter.php deleted file mode 100644 index 1fc18a5..0000000 --- a/lib/aws-sdk/Guzzle/Cache/Zf2CacheAdapter.php +++ /dev/null @@ -1,41 +0,0 @@ -cache = $cache; - } - - public function contains($id, array $options = null) - { - return $this->cache->hasItem($id); - } - - public function delete($id, array $options = null) - { - return $this->cache->removeItem($id); - } - - public function fetch($id, array $options = null) - { - return $this->cache->getItem($id); - } - - public function save($id, $data, $lifeTime = false, array $options = null) - { - return $this->cache->setItem($id, $data); - } -} diff --git a/lib/aws-sdk/Guzzle/Common/AbstractHasDispatcher.php b/lib/aws-sdk/Guzzle/Common/AbstractHasDispatcher.php deleted file mode 100644 index d1e842b..0000000 --- a/lib/aws-sdk/Guzzle/Common/AbstractHasDispatcher.php +++ /dev/null @@ -1,49 +0,0 @@ -eventDispatcher = $eventDispatcher; - - return $this; - } - - public function getEventDispatcher() - { - if (!$this->eventDispatcher) { - $this->eventDispatcher = new EventDispatcher(); - } - - return $this->eventDispatcher; - } - - public function dispatch($eventName, array $context = array()) - { - return $this->getEventDispatcher()->dispatch($eventName, new Event($context)); - } - - public function addSubscriber(EventSubscriberInterface $subscriber) - { - $this->getEventDispatcher()->addSubscriber($subscriber); - - return $this; - } -} diff --git a/lib/aws-sdk/Guzzle/Common/Collection.php b/lib/aws-sdk/Guzzle/Common/Collection.php deleted file mode 100644 index 5cb1535..0000000 --- a/lib/aws-sdk/Guzzle/Common/Collection.php +++ /dev/null @@ -1,403 +0,0 @@ -data = $data; - } - - /** - * Create a new collection from an array, validate the keys, and add default values where missing - * - * @param array $config Configuration values to apply. - * @param array $defaults Default parameters - * @param array $required Required parameter names - * - * @return self - * @throws InvalidArgumentException if a parameter is missing - */ - public static function fromConfig(array $config = array(), array $defaults = array(), array $required = array()) - { - $data = $config + $defaults; - - if ($missing = array_diff($required, array_keys($data))) { - throw new InvalidArgumentException('Config is missing the following keys: ' . implode(', ', $missing)); - } - - return new self($data); - } - - public function count() - { - return count($this->data); - } - - public function getIterator() - { - return new \ArrayIterator($this->data); - } - - public function toArray() - { - return $this->data; - } - - /** - * Removes all key value pairs - * - * @return Collection - */ - public function clear() - { - $this->data = array(); - - return $this; - } - - /** - * Get all or a subset of matching key value pairs - * - * @param array $keys Pass an array of keys to retrieve only a subset of key value pairs - * - * @return array Returns an array of all matching key value pairs - */ - public function getAll(array $keys = null) - { - return $keys ? array_intersect_key($this->data, array_flip($keys)) : $this->data; - } - - /** - * Get a specific key value. - * - * @param string $key Key to retrieve. - * - * @return mixed|null Value of the key or NULL - */ - public function get($key) - { - return isset($this->data[$key]) ? $this->data[$key] : null; - } - - /** - * Set a key value pair - * - * @param string $key Key to set - * @param mixed $value Value to set - * - * @return Collection Returns a reference to the object - */ - public function set($key, $value) - { - $this->data[$key] = $value; - - return $this; - } - - /** - * Add a value to a key. If a key of the same name has already been added, the key value will be converted into an - * array and the new value will be pushed to the end of the array. - * - * @param string $key Key to add - * @param mixed $value Value to add to the key - * - * @return Collection Returns a reference to the object. - */ - public function add($key, $value) - { - if (!array_key_exists($key, $this->data)) { - $this->data[$key] = $value; - } elseif (is_array($this->data[$key])) { - $this->data[$key][] = $value; - } else { - $this->data[$key] = array($this->data[$key], $value); - } - - return $this; - } - - /** - * Remove a specific key value pair - * - * @param string $key A key to remove - * - * @return Collection - */ - public function remove($key) - { - unset($this->data[$key]); - - return $this; - } - - /** - * Get all keys in the collection - * - * @return array - */ - public function getKeys() - { - return array_keys($this->data); - } - - /** - * Returns whether or not the specified key is present. - * - * @param string $key The key for which to check the existence. - * - * @return bool - */ - public function hasKey($key) - { - return array_key_exists($key, $this->data); - } - - /** - * Case insensitive search the keys in the collection - * - * @param string $key Key to search for - * - * @return bool|string Returns false if not found, otherwise returns the key - */ - public function keySearch($key) - { - foreach (array_keys($this->data) as $k) { - if (!strcasecmp($k, $key)) { - return $k; - } - } - - return false; - } - - /** - * Checks if any keys contains a certain value - * - * @param string $value Value to search for - * - * @return mixed Returns the key if the value was found FALSE if the value was not found. - */ - public function hasValue($value) - { - return array_search($value, $this->data); - } - - /** - * Replace the data of the object with the value of an array - * - * @param array $data Associative array of data - * - * @return Collection Returns a reference to the object - */ - public function replace(array $data) - { - $this->data = $data; - - return $this; - } - - /** - * Add and merge in a Collection or array of key value pair data. - * - * @param Collection|array $data Associative array of key value pair data - * - * @return Collection Returns a reference to the object. - */ - public function merge($data) - { - foreach ($data as $key => $value) { - $this->add($key, $value); - } - - return $this; - } - - /** - * Over write key value pairs in this collection with all of the data from an array or collection. - * - * @param array|\Traversable $data Values to override over this config - * - * @return self - */ - public function overwriteWith($data) - { - if (is_array($data)) { - $this->data = $data + $this->data; - } elseif ($data instanceof Collection) { - $this->data = $data->toArray() + $this->data; - } else { - foreach ($data as $key => $value) { - $this->data[$key] = $value; - } - } - - return $this; - } - - /** - * Returns a Collection containing all the elements of the collection after applying the callback function to each - * one. The Closure should accept three parameters: (string) $key, (string) $value, (array) $context and return a - * modified value - * - * @param \Closure $closure Closure to apply - * @param array $context Context to pass to the closure - * @param bool $static Set to TRUE to use the same class as the return rather than returning a Collection - * - * @return Collection - */ - public function map(\Closure $closure, array $context = array(), $static = true) - { - $collection = $static ? new static() : new self(); - foreach ($this as $key => $value) { - $collection->add($key, $closure($key, $value, $context)); - } - - return $collection; - } - - /** - * Iterates over each key value pair in the collection passing them to the Closure. If the Closure function returns - * true, the current value from input is returned into the result Collection. The Closure must accept three - * parameters: (string) $key, (string) $value and return Boolean TRUE or FALSE for each value. - * - * @param \Closure $closure Closure evaluation function - * @param bool $static Set to TRUE to use the same class as the return rather than returning a Collection - * - * @return Collection - */ - public function filter(\Closure $closure, $static = true) - { - $collection = ($static) ? new static() : new self(); - foreach ($this->data as $key => $value) { - if ($closure($key, $value)) { - $collection->add($key, $value); - } - } - - return $collection; - } - - public function offsetExists($offset) - { - return isset($this->data[$offset]); - } - - public function offsetGet($offset) - { - return isset($this->data[$offset]) ? $this->data[$offset] : null; - } - - public function offsetSet($offset, $value) - { - $this->data[$offset] = $value; - } - - public function offsetUnset($offset) - { - unset($this->data[$offset]); - } - - /** - * Set a value into a nested array key. Keys will be created as needed to set the value. - * - * @param string $path Path to set - * @param mixed $value Value to set at the key - * - * @return self - * @throws RuntimeException when trying to setPath using a nested path that travels through a scalar value - */ - public function setPath($path, $value) - { - $current =& $this->data; - $queue = explode('/', $path); - while (null !== ($key = array_shift($queue))) { - if (!is_array($current)) { - throw new RuntimeException("Trying to setPath {$path}, but {$key} is set and is not an array"); - } elseif (!$queue) { - $current[$key] = $value; - } elseif (isset($current[$key])) { - $current =& $current[$key]; - } else { - $current[$key] = array(); - $current =& $current[$key]; - } - } - - return $this; - } - - /** - * Gets a value from the collection using an array path (e.g. foo/baz/bar would retrieve bar from two nested arrays) - * Allows for wildcard searches which recursively combine matches up to the level at which the wildcard occurs. This - * can be useful for accepting any key of a sub-array and combining matching keys from each diverging path. - * - * @param string $path Path to traverse and retrieve a value from - * @param string $separator Character used to add depth to the search - * @param mixed $data Optional data to descend into (used when wildcards are encountered) - * - * @return mixed|null - */ - public function getPath($path, $separator = '/', $data = null) - { - if ($data === null) { - $data =& $this->data; - } - - $path = is_array($path) ? $path : explode($separator, $path); - while (null !== ($part = array_shift($path))) { - if (!is_array($data)) { - return null; - } elseif (isset($data[$part])) { - $data =& $data[$part]; - } elseif ($part != '*') { - return null; - } else { - // Perform a wildcard search by diverging and merging paths - $result = array(); - foreach ($data as $value) { - if (!$path) { - $result = array_merge_recursive($result, (array) $value); - } elseif (null !== ($test = $this->getPath($path, $separator, $value))) { - $result = array_merge_recursive($result, (array) $test); - } - } - return $result; - } - } - - return $data; - } - - /** - * Inject configuration settings into an input string - * - * @param string $input Input to inject - * - * @return string - * @deprecated - */ - public function inject($input) - { - Version::warn(__METHOD__ . ' is deprecated'); - $replace = array(); - foreach ($this->data as $key => $val) { - $replace['{' . $key . '}'] = $val; - } - - return strtr($input, $replace); - } -} diff --git a/lib/aws-sdk/Guzzle/Common/Event.php b/lib/aws-sdk/Guzzle/Common/Event.php deleted file mode 100644 index fad76a9..0000000 --- a/lib/aws-sdk/Guzzle/Common/Event.php +++ /dev/null @@ -1,52 +0,0 @@ -context = $context; - } - - public function getIterator() - { - return new \ArrayIterator($this->context); - } - - public function offsetGet($offset) - { - return isset($this->context[$offset]) ? $this->context[$offset] : null; - } - - public function offsetSet($offset, $value) - { - $this->context[$offset] = $value; - } - - public function offsetExists($offset) - { - return isset($this->context[$offset]); - } - - public function offsetUnset($offset) - { - unset($this->context[$offset]); - } - - public function toArray() - { - return $this->context; - } -} diff --git a/lib/aws-sdk/Guzzle/Common/Exception/BadMethodCallException.php b/lib/aws-sdk/Guzzle/Common/Exception/BadMethodCallException.php deleted file mode 100644 index 08d1c72..0000000 --- a/lib/aws-sdk/Guzzle/Common/Exception/BadMethodCallException.php +++ /dev/null @@ -1,5 +0,0 @@ -shortMessage = $message; - } - - /** - * Set all of the exceptions - * - * @param array $exceptions Array of exceptions - * - * @return self - */ - public function setExceptions(array $exceptions) - { - $this->exceptions = array(); - foreach ($exceptions as $exception) { - $this->add($exception); - } - - return $this; - } - - /** - * Add exceptions to the collection - * - * @param ExceptionCollection|\Exception $e Exception to add - * - * @return ExceptionCollection; - */ - public function add($e) - { - $this->exceptions[] = $e; - if ($this->message) { - $this->message .= "\n"; - } - - $this->message .= $this->getExceptionMessage($e, 0); - - return $this; - } - - /** - * Get the total number of request exceptions - * - * @return int - */ - public function count() - { - return count($this->exceptions); - } - - /** - * Allows array-like iteration over the request exceptions - * - * @return \ArrayIterator - */ - public function getIterator() - { - return new \ArrayIterator($this->exceptions); - } - - /** - * Get the first exception in the collection - * - * @return \Exception - */ - public function getFirst() - { - return $this->exceptions ? $this->exceptions[0] : null; - } - - private function getExceptionMessage(\Exception $e, $depth = 0) - { - static $sp = ' '; - $prefix = $depth ? str_repeat($sp, $depth) : ''; - $message = "{$prefix}(" . get_class($e) . ') ' . $e->getFile() . ' line ' . $e->getLine() . "\n"; - - if ($e instanceof self) { - if ($e->shortMessage) { - $message .= "\n{$prefix}{$sp}" . str_replace("\n", "\n{$prefix}{$sp}", $e->shortMessage) . "\n"; - } - foreach ($e as $ee) { - $message .= "\n" . $this->getExceptionMessage($ee, $depth + 1); - } - } else { - $message .= "\n{$prefix}{$sp}" . str_replace("\n", "\n{$prefix}{$sp}", $e->getMessage()) . "\n"; - $message .= "\n{$prefix}{$sp}" . str_replace("\n", "\n{$prefix}{$sp}", $e->getTraceAsString()) . "\n"; - } - - return str_replace(getcwd(), '.', $message); - } -} diff --git a/lib/aws-sdk/Guzzle/Common/Exception/GuzzleException.php b/lib/aws-sdk/Guzzle/Common/Exception/GuzzleException.php deleted file mode 100644 index 458e6f2..0000000 --- a/lib/aws-sdk/Guzzle/Common/Exception/GuzzleException.php +++ /dev/null @@ -1,8 +0,0 @@ -body = $body; - } - - public function __toString() - { - return (string) $this->body; - } - - /** - * Allow decorators to implement custom methods - * - * @param string $method Missing method name - * @param array $args Method arguments - * - * @return mixed - */ - public function __call($method, array $args) - { - return call_user_func_array(array($this->body, $method), $args); - } - - public function close() - { - return $this->body->close(); - } - - public function setRewindFunction($callable) - { - $this->body->setRewindFunction($callable); - - return $this; - } - - public function rewind() - { - return $this->body->rewind(); - } - - public function compress($filter = 'zlib.deflate') - { - return $this->body->compress($filter); - } - - public function uncompress($filter = 'zlib.inflate') - { - return $this->body->uncompress($filter); - } - - public function getContentLength() - { - return $this->getSize(); - } - - public function getContentType() - { - return $this->body->getContentType(); - } - - public function getContentMd5($rawOutput = false, $base64Encode = false) - { - $hash = Stream::getHash($this, 'md5', $rawOutput); - - return $hash && $base64Encode ? base64_encode($hash) : $hash; - } - - public function getContentEncoding() - { - return $this->body->getContentEncoding(); - } - - public function getMetaData($key = null) - { - return $this->body->getMetaData($key); - } - - public function getStream() - { - return $this->body->getStream(); - } - - public function setStream($stream, $size = 0) - { - $this->body->setStream($stream, $size); - - return $this; - } - - public function detachStream() - { - $this->body->detachStream(); - - return $this; - } - - public function getWrapper() - { - return $this->body->getWrapper(); - } - - public function getWrapperData() - { - return $this->body->getWrapperData(); - } - - public function getStreamType() - { - return $this->body->getStreamType(); - } - - public function getUri() - { - return $this->body->getUri(); - } - - public function getSize() - { - return $this->body->getSize(); - } - - public function isReadable() - { - return $this->body->isReadable(); - } - - public function isRepeatable() - { - return $this->isSeekable() && $this->isReadable(); - } - - public function isWritable() - { - return $this->body->isWritable(); - } - - public function isConsumed() - { - return $this->body->isConsumed(); - } - - /** - * Alias of isConsumed() - * {@inheritdoc} - */ - public function feof() - { - return $this->isConsumed(); - } - - public function isLocal() - { - return $this->body->isLocal(); - } - - public function isSeekable() - { - return $this->body->isSeekable(); - } - - public function setSize($size) - { - $this->body->setSize($size); - - return $this; - } - - public function seek($offset, $whence = SEEK_SET) - { - return $this->body->seek($offset, $whence); - } - - public function read($length) - { - return $this->body->read($length); - } - - public function write($string) - { - return $this->body->write($string); - } - - public function readLine($maxLength = null) - { - return $this->body->readLine($maxLength); - } - - public function ftell() - { - return $this->body->ftell(); - } - - public function getCustomData($key) - { - return $this->body->getCustomData($key); - } - - public function setCustomData($key, $value) - { - $this->body->setCustomData($key, $value); - - return $this; - } -} diff --git a/lib/aws-sdk/Guzzle/Http/CachingEntityBody.php b/lib/aws-sdk/Guzzle/Http/CachingEntityBody.php deleted file mode 100644 index c65c136..0000000 --- a/lib/aws-sdk/Guzzle/Http/CachingEntityBody.php +++ /dev/null @@ -1,229 +0,0 @@ -remoteStream = $body; - $this->body = new EntityBody(fopen('php://temp', 'r+')); - } - - /** - * Will give the contents of the buffer followed by the exhausted remote stream. - * - * Warning: Loads the entire stream into memory - * - * @return string - */ - public function __toString() - { - $pos = $this->ftell(); - $this->rewind(); - - $str = ''; - while (!$this->isConsumed()) { - $str .= $this->read(16384); - } - - $this->seek($pos); - - return $str; - } - - public function getSize() - { - return max($this->body->getSize(), $this->remoteStream->getSize()); - } - - /** - * {@inheritdoc} - * @throws RuntimeException When seeking with SEEK_END or when seeking past the total size of the buffer stream - */ - public function seek($offset, $whence = SEEK_SET) - { - if ($whence == SEEK_SET) { - $byte = $offset; - } elseif ($whence == SEEK_CUR) { - $byte = $offset + $this->ftell(); - } else { - throw new RuntimeException(__CLASS__ . ' supports only SEEK_SET and SEEK_CUR seek operations'); - } - - // You cannot skip ahead past where you've read from the remote stream - if ($byte > $this->body->getSize()) { - throw new RuntimeException( - "Cannot seek to byte {$byte} when the buffered stream only contains {$this->body->getSize()} bytes" - ); - } - - return $this->body->seek($byte); - } - - public function rewind() - { - return $this->seek(0); - } - - /** - * Does not support custom rewind functions - * - * @throws RuntimeException - */ - public function setRewindFunction($callable) - { - throw new RuntimeException(__CLASS__ . ' does not support custom stream rewind functions'); - } - - public function read($length) - { - // Perform a regular read on any previously read data from the buffer - $data = $this->body->read($length); - $remaining = $length - strlen($data); - - // More data was requested so read from the remote stream - if ($remaining) { - // If data was written to the buffer in a position that would have been filled from the remote stream, - // then we must skip bytes on the remote stream to emulate overwriting bytes from that position. This - // mimics the behavior of other PHP stream wrappers. - $remoteData = $this->remoteStream->read($remaining + $this->skipReadBytes); - - if ($this->skipReadBytes) { - $len = strlen($remoteData); - $remoteData = substr($remoteData, $this->skipReadBytes); - $this->skipReadBytes = max(0, $this->skipReadBytes - $len); - } - - $data .= $remoteData; - $this->body->write($remoteData); - } - - return $data; - } - - public function write($string) - { - // When appending to the end of the currently read stream, you'll want to skip bytes from being read from - // the remote stream to emulate other stream wrappers. Basically replacing bytes of data of a fixed length. - $overflow = (strlen($string) + $this->ftell()) - $this->remoteStream->ftell(); - if ($overflow > 0) { - $this->skipReadBytes += $overflow; - } - - return $this->body->write($string); - } - - /** - * {@inheritdoc} - * @link http://php.net/manual/en/function.fgets.php - */ - public function readLine($maxLength = null) - { - $buffer = ''; - $size = 0; - while (!$this->isConsumed()) { - $byte = $this->read(1); - $buffer .= $byte; - // Break when a new line is found or the max length - 1 is reached - if ($byte == PHP_EOL || ++$size == $maxLength - 1) { - break; - } - } - - return $buffer; - } - - public function isConsumed() - { - return $this->body->isConsumed() && $this->remoteStream->isConsumed(); - } - - /** - * Close both the remote stream and buffer stream - */ - public function close() - { - return $this->remoteStream->close() && $this->body->close(); - } - - public function setStream($stream, $size = 0) - { - $this->remoteStream->setStream($stream, $size); - } - - public function getContentType() - { - return $this->remoteStream->getContentType(); - } - - public function getContentEncoding() - { - return $this->remoteStream->getContentEncoding(); - } - - public function getMetaData($key = null) - { - return $this->remoteStream->getMetaData($key); - } - - public function getStream() - { - return $this->remoteStream->getStream(); - } - - public function getWrapper() - { - return $this->remoteStream->getWrapper(); - } - - public function getWrapperData() - { - return $this->remoteStream->getWrapperData(); - } - - public function getStreamType() - { - return $this->remoteStream->getStreamType(); - } - - public function getUri() - { - return $this->remoteStream->getUri(); - } - - /** - * Always retrieve custom data from the remote stream - * {@inheritdoc} - */ - public function getCustomData($key) - { - return $this->remoteStream->getCustomData($key); - } - - /** - * Always set custom data on the remote stream - * {@inheritdoc} - */ - public function setCustomData($key, $value) - { - $this->remoteStream->setCustomData($key, $value); - - return $this; - } -} diff --git a/lib/aws-sdk/Guzzle/Http/Client.php b/lib/aws-sdk/Guzzle/Http/Client.php deleted file mode 100644 index 3d7298d..0000000 --- a/lib/aws-sdk/Guzzle/Http/Client.php +++ /dev/null @@ -1,524 +0,0 @@ -setConfig($config ?: new Collection()); - $this->initSsl(); - $this->setBaseUrl($baseUrl); - $this->defaultHeaders = new Collection(); - $this->setRequestFactory(RequestFactory::getInstance()); - $this->userAgent = $this->getDefaultUserAgent(); - if (!$this->config[self::DISABLE_REDIRECTS]) { - $this->addSubscriber(new RedirectPlugin()); - } - } - - final public function setConfig($config) - { - if ($config instanceof Collection) { - $this->config = $config; - } elseif (is_array($config)) { - $this->config = new Collection($config); - } else { - throw new InvalidArgumentException('Config must be an array or Collection'); - } - - return $this; - } - - final public function getConfig($key = false) - { - return $key ? $this->config[$key] : $this->config; - } - - /** - * Set a default request option on the client that will be used as a default for each request - * - * @param string $keyOrPath request.options key (e.g. allow_redirects) or path to a nested key (e.g. headers/foo) - * @param mixed $value Value to set - * - * @return $this - */ - public function setDefaultOption($keyOrPath, $value) - { - $keyOrPath = self::REQUEST_OPTIONS . '/' . $keyOrPath; - $this->config->setPath($keyOrPath, $value); - - return $this; - } - - /** - * Retrieve a default request option from the client - * - * @param string $keyOrPath request.options key (e.g. allow_redirects) or path to a nested key (e.g. headers/foo) - * - * @return mixed|null - */ - public function getDefaultOption($keyOrPath) - { - $keyOrPath = self::REQUEST_OPTIONS . '/' . $keyOrPath; - - return $this->config->getPath($keyOrPath); - } - - final public function setSslVerification($certificateAuthority = true, $verifyPeer = true, $verifyHost = 2) - { - $opts = $this->config[self::CURL_OPTIONS] ?: array(); - - if ($certificateAuthority === true) { - // use bundled CA bundle, set secure defaults - $opts[CURLOPT_CAINFO] = __DIR__ . '/Resources/cacert.pem'; - $opts[CURLOPT_SSL_VERIFYPEER] = true; - $opts[CURLOPT_SSL_VERIFYHOST] = 2; - } elseif ($certificateAuthority === false) { - unset($opts[CURLOPT_CAINFO]); - $opts[CURLOPT_SSL_VERIFYPEER] = false; - $opts[CURLOPT_SSL_VERIFYHOST] = 0; - } elseif ($verifyPeer !== true && $verifyPeer !== false && $verifyPeer !== 1 && $verifyPeer !== 0) { - throw new InvalidArgumentException('verifyPeer must be 1, 0 or boolean'); - } elseif ($verifyHost !== 0 && $verifyHost !== 1 && $verifyHost !== 2) { - throw new InvalidArgumentException('verifyHost must be 0, 1 or 2'); - } else { - $opts[CURLOPT_SSL_VERIFYPEER] = $verifyPeer; - $opts[CURLOPT_SSL_VERIFYHOST] = $verifyHost; - if (is_file($certificateAuthority)) { - unset($opts[CURLOPT_CAPATH]); - $opts[CURLOPT_CAINFO] = $certificateAuthority; - } elseif (is_dir($certificateAuthority)) { - unset($opts[CURLOPT_CAINFO]); - $opts[CURLOPT_CAPATH] = $certificateAuthority; - } else { - throw new RuntimeException( - 'Invalid option passed to ' . self::SSL_CERT_AUTHORITY . ': ' . $certificateAuthority - ); - } - } - - $this->config->set(self::CURL_OPTIONS, $opts); - - return $this; - } - - public function createRequest($method = 'GET', $uri = null, $headers = null, $body = null, array $options = array()) - { - if (!$uri) { - $url = $this->getBaseUrl(); - } else { - if (!is_array($uri)) { - $templateVars = null; - } else { - list($uri, $templateVars) = $uri; - } - if (strpos($uri, '://')) { - // Use absolute URLs as-is - $url = $this->expandTemplate($uri, $templateVars); - } else { - $url = Url::factory($this->getBaseUrl())->combine($this->expandTemplate($uri, $templateVars)); - } - } - - // If default headers are provided, then merge them under any explicitly provided headers for the request - if (count($this->defaultHeaders)) { - if (!$headers) { - $headers = $this->defaultHeaders->toArray(); - } elseif (is_array($headers)) { - $headers += $this->defaultHeaders->toArray(); - } elseif ($headers instanceof Collection) { - $headers = $headers->toArray() + $this->defaultHeaders->toArray(); - } - } - - return $this->prepareRequest($this->requestFactory->create($method, (string) $url, $headers, $body), $options); - } - - public function getBaseUrl($expand = true) - { - return $expand ? $this->expandTemplate($this->baseUrl) : $this->baseUrl; - } - - public function setBaseUrl($url) - { - $this->baseUrl = $url; - - return $this; - } - - public function setUserAgent($userAgent, $includeDefault = false) - { - if ($includeDefault) { - $userAgent .= ' ' . $this->getDefaultUserAgent(); - } - $this->userAgent = $userAgent; - - return $this; - } - - /** - * Get the default User-Agent string to use with Guzzle - * - * @return string - */ - public function getDefaultUserAgent() - { - return 'Guzzle/' . Version::VERSION - . ' curl/' . CurlVersion::getInstance()->get('version') - . ' PHP/' . PHP_VERSION; - } - - public function get($uri = null, $headers = null, $options = array()) - { - // BC compat: $options can be a string, resource, etc to specify where the response body is downloaded - return is_array($options) - ? $this->createRequest('GET', $uri, $headers, null, $options) - : $this->createRequest('GET', $uri, $headers, $options); - } - - public function head($uri = null, $headers = null, array $options = array()) - { - return $this->createRequest('HEAD', $uri, $headers, null, $options); - } - - public function delete($uri = null, $headers = null, $body = null, array $options = array()) - { - return $this->createRequest('DELETE', $uri, $headers, $body, $options); - } - - public function put($uri = null, $headers = null, $body = null, array $options = array()) - { - return $this->createRequest('PUT', $uri, $headers, $body, $options); - } - - public function patch($uri = null, $headers = null, $body = null, array $options = array()) - { - return $this->createRequest('PATCH', $uri, $headers, $body, $options); - } - - public function post($uri = null, $headers = null, $postBody = null, array $options = array()) - { - return $this->createRequest('POST', $uri, $headers, $postBody, $options); - } - - public function options($uri = null, array $options = array()) - { - return $this->createRequest('OPTIONS', $uri, $options); - } - - public function send($requests) - { - if (!($requests instanceof RequestInterface)) { - return $this->sendMultiple($requests); - } - - try { - /** @var $requests RequestInterface */ - $this->getCurlMulti()->add($requests)->send(); - return $requests->getResponse(); - } catch (ExceptionCollection $e) { - throw $e->getFirst(); - } - } - - /** - * Set a curl multi object to be used internally by the client for transferring requests. - * - * @param CurlMultiInterface $curlMulti Multi object - * - * @return self - */ - public function setCurlMulti(CurlMultiInterface $curlMulti) - { - $this->curlMulti = $curlMulti; - - return $this; - } - - /** - * @return CurlMultiInterface|CurlMultiProxy - */ - public function getCurlMulti() - { - if (!$this->curlMulti) { - $this->curlMulti = new CurlMultiProxy( - self::MAX_HANDLES, - $this->getConfig('select_timeout') ?: self::DEFAULT_SELECT_TIMEOUT - ); - } - - return $this->curlMulti; - } - - public function setRequestFactory(RequestFactoryInterface $factory) - { - $this->requestFactory = $factory; - - return $this; - } - - /** - * Set the URI template expander to use with the client - * - * @param UriTemplateInterface $uriTemplate URI template expander - * - * @return self - */ - public function setUriTemplate(UriTemplateInterface $uriTemplate) - { - $this->uriTemplate = $uriTemplate; - - return $this; - } - - /** - * Expand a URI template while merging client config settings into the template variables - * - * @param string $template Template to expand - * @param array $variables Variables to inject - * - * @return string - */ - protected function expandTemplate($template, array $variables = null) - { - $expansionVars = $this->getConfig()->toArray(); - if ($variables) { - $expansionVars = $variables + $expansionVars; - } - - return $this->getUriTemplate()->expand($template, $expansionVars); - } - - /** - * Get the URI template expander used by the client - * - * @return UriTemplateInterface - */ - protected function getUriTemplate() - { - if (!$this->uriTemplate) { - $this->uriTemplate = ParserRegistry::getInstance()->getParser('uri_template'); - } - - return $this->uriTemplate; - } - - /** - * Send multiple requests in parallel - * - * @param array $requests Array of RequestInterface objects - * - * @return array Returns an array of Response objects - */ - protected function sendMultiple(array $requests) - { - $curlMulti = $this->getCurlMulti(); - foreach ($requests as $request) { - $curlMulti->add($request); - } - $curlMulti->send(); - - /** @var $request RequestInterface */ - $result = array(); - foreach ($requests as $request) { - $result[] = $request->getResponse(); - } - - return $result; - } - - /** - * Prepare a request to be sent from the Client by adding client specific behaviors and properties to the request. - * - * @param RequestInterface $request Request to prepare for the client - * @param array $options Options to apply to the request - * - * @return RequestInterface - */ - protected function prepareRequest(RequestInterface $request, array $options = array()) - { - $request->setClient($this)->setEventDispatcher(clone $this->getEventDispatcher()); - - if ($curl = $this->config[self::CURL_OPTIONS]) { - $request->getCurlOptions()->overwriteWith(CurlHandle::parseCurlConfig($curl)); - } - - if ($params = $this->config[self::REQUEST_PARAMS]) { - Version::warn('request.params is deprecated. Use request.options to add default request options.'); - $request->getParams()->overwriteWith($params); - } - - if ($this->userAgent && !$request->hasHeader('User-Agent')) { - $request->setHeader('User-Agent', $this->userAgent); - } - - if ($defaults = $this->config[self::REQUEST_OPTIONS]) { - $this->requestFactory->applyOptions($request, $defaults, RequestFactoryInterface::OPTIONS_AS_DEFAULTS); - } - - if ($options) { - $this->requestFactory->applyOptions($request, $options); - } - - $this->dispatch('client.create_request', array('client' => $this, 'request' => $request)); - - return $request; - } - - /** - * Initializes SSL settings - */ - protected function initSsl() - { - $authority = $this->config[self::SSL_CERT_AUTHORITY]; - - if ($authority === 'system') { - return; - } - - if ($authority === null) { - $authority = true; - } - - if ($authority === true && substr(__FILE__, 0, 7) == 'phar://') { - $authority = self::extractPharCacert(__DIR__ . '/Resources/cacert.pem'); - } - - $this->setSslVerification($authority); - } - - /** - * @deprecated - */ - public function getDefaultHeaders() - { - Version::warn(__METHOD__ . ' is deprecated. Use the request.options array to retrieve default request options'); - return $this->defaultHeaders; - } - - /** - * @deprecated - */ - public function setDefaultHeaders($headers) - { - Version::warn(__METHOD__ . ' is deprecated. Use the request.options array to specify default request options'); - if ($headers instanceof Collection) { - $this->defaultHeaders = $headers; - } elseif (is_array($headers)) { - $this->defaultHeaders = new Collection($headers); - } else { - throw new InvalidArgumentException('Headers must be an array or Collection'); - } - - return $this; - } - - /** - * @deprecated - */ - public function preparePharCacert($md5Check = true) - { - return sys_get_temp_dir() . '/guzzle-cacert.pem'; - } - - /** - * Copies the phar cacert from a phar into the temp directory. - * - * @param string $pharCacertPath Path to the phar cacert. For example: - * 'phar://aws.phar/Guzzle/Http/Resources/cacert.pem' - * - * @return string Returns the path to the extracted cacert file. - * @throws \RuntimeException Throws if the phar cacert cannot be found or - * the file cannot be copied to the temp dir. - */ - public static function extractPharCacert($pharCacertPath) - { - // Copy the cacert.pem file from the phar if it is not in the temp - // folder. - $certFile = sys_get_temp_dir() . '/guzzle-cacert.pem'; - - if (!file_exists($pharCacertPath)) { - throw new \RuntimeException("Could not find $pharCacertPath"); - } - - if (!file_exists($certFile) || - filesize($certFile) != filesize($pharCacertPath) - ) { - if (!copy($pharCacertPath, $certFile)) { - throw new \RuntimeException( - "Could not copy {$pharCacertPath} to {$certFile}: " - . var_export(error_get_last(), true) - ); - } - } - - return $certFile; - } -} diff --git a/lib/aws-sdk/Guzzle/Http/ClientInterface.php b/lib/aws-sdk/Guzzle/Http/ClientInterface.php deleted file mode 100644 index 10e4de2..0000000 --- a/lib/aws-sdk/Guzzle/Http/ClientInterface.php +++ /dev/null @@ -1,223 +0,0 @@ -getCurlOptions(); - $mediator = new RequestMediator($request, $requestCurlOptions->get('emit_io')); - $tempContentLength = null; - $method = $request->getMethod(); - $bodyAsString = $requestCurlOptions->get(self::BODY_AS_STRING); - - // Prepare url - $url = (string)$request->getUrl(); - if(($pos = strpos($url, '#')) !== false ){ - // strip fragment from url - $url = substr($url, 0, $pos); - } - - // Array of default cURL options. - $curlOptions = array( - CURLOPT_URL => $url, - CURLOPT_CONNECTTIMEOUT => 150, - CURLOPT_RETURNTRANSFER => false, - CURLOPT_HEADER => false, - CURLOPT_PORT => $request->getPort(), - CURLOPT_HTTPHEADER => array(), - CURLOPT_WRITEFUNCTION => array($mediator, 'writeResponseBody'), - CURLOPT_HEADERFUNCTION => array($mediator, 'receiveResponseHeader'), - CURLOPT_HTTP_VERSION => $request->getProtocolVersion() === '1.0' - ? CURL_HTTP_VERSION_1_0 : CURL_HTTP_VERSION_1_1, - // Verifies the authenticity of the peer's certificate - CURLOPT_SSL_VERIFYPEER => 1, - // Certificate must indicate that the server is the server to which you meant to connect - CURLOPT_SSL_VERIFYHOST => 2 - ); - - if (defined('CURLOPT_PROTOCOLS')) { - // Allow only HTTP and HTTPS protocols - $curlOptions[CURLOPT_PROTOCOLS] = CURLPROTO_HTTP | CURLPROTO_HTTPS; - } - - // Add CURLOPT_ENCODING if Accept-Encoding header is provided - if ($acceptEncodingHeader = $request->getHeader('Accept-Encoding')) { - $curlOptions[CURLOPT_ENCODING] = (string) $acceptEncodingHeader; - // Let cURL set the Accept-Encoding header, prevents duplicate values - $request->removeHeader('Accept-Encoding'); - } - - // Enable curl debug information if the 'debug' param was set - if ($requestCurlOptions->get('debug')) { - $curlOptions[CURLOPT_STDERR] = fopen('php://temp', 'r+'); - // @codeCoverageIgnoreStart - if (false === $curlOptions[CURLOPT_STDERR]) { - throw new RuntimeException('Unable to create a stream for CURLOPT_STDERR'); - } - // @codeCoverageIgnoreEnd - $curlOptions[CURLOPT_VERBOSE] = true; - } - - // Specify settings according to the HTTP method - if ($method == 'GET') { - $curlOptions[CURLOPT_HTTPGET] = true; - } elseif ($method == 'HEAD') { - $curlOptions[CURLOPT_NOBODY] = true; - // HEAD requests do not use a write function - unset($curlOptions[CURLOPT_WRITEFUNCTION]); - } elseif (!($request instanceof EntityEnclosingRequest)) { - $curlOptions[CURLOPT_CUSTOMREQUEST] = $method; - } else { - - $curlOptions[CURLOPT_CUSTOMREQUEST] = $method; - - // Handle sending raw bodies in a request - if ($request->getBody()) { - // You can send the body as a string using curl's CURLOPT_POSTFIELDS - if ($bodyAsString) { - $curlOptions[CURLOPT_POSTFIELDS] = (string) $request->getBody(); - // Allow curl to add the Content-Length for us to account for the times when - // POST redirects are followed by GET requests - if ($tempContentLength = $request->getHeader('Content-Length')) { - $tempContentLength = (int) (string) $tempContentLength; - } - // Remove the curl generated Content-Type header if none was set manually - if (!$request->hasHeader('Content-Type')) { - $curlOptions[CURLOPT_HTTPHEADER][] = 'Content-Type:'; - } - } else { - $curlOptions[CURLOPT_UPLOAD] = true; - // Let cURL handle setting the Content-Length header - if ($tempContentLength = $request->getHeader('Content-Length')) { - $tempContentLength = (int) (string) $tempContentLength; - $curlOptions[CURLOPT_INFILESIZE] = $tempContentLength; - } - // Add a callback for curl to read data to send with the request only if a body was specified - $curlOptions[CURLOPT_READFUNCTION] = array($mediator, 'readRequestBody'); - // Attempt to seek to the start of the stream - $request->getBody()->seek(0); - } - - } else { - - // Special handling for POST specific fields and files - $postFields = false; - if (count($request->getPostFiles())) { - $postFields = $request->getPostFields()->useUrlEncoding(false)->urlEncode(); - foreach ($request->getPostFiles() as $key => $data) { - $prefixKeys = count($data) > 1; - foreach ($data as $index => $file) { - // Allow multiple files in the same key - $fieldKey = $prefixKeys ? "{$key}[{$index}]" : $key; - $postFields[$fieldKey] = $file->getCurlValue(); - } - } - } elseif (count($request->getPostFields())) { - $postFields = (string) $request->getPostFields()->useUrlEncoding(true); - } - - if ($postFields !== false) { - if ($method == 'POST') { - unset($curlOptions[CURLOPT_CUSTOMREQUEST]); - $curlOptions[CURLOPT_POST] = true; - } - $curlOptions[CURLOPT_POSTFIELDS] = $postFields; - $request->removeHeader('Content-Length'); - } - } - - // If the Expect header is not present, prevent curl from adding it - if (!$request->hasHeader('Expect')) { - $curlOptions[CURLOPT_HTTPHEADER][] = 'Expect:'; - } - } - - // If a Content-Length header was specified but we want to allow curl to set one for us - if (null !== $tempContentLength) { - $request->removeHeader('Content-Length'); - } - - // Set custom cURL options - foreach ($requestCurlOptions->toArray() as $key => $value) { - if (is_numeric($key)) { - $curlOptions[$key] = $value; - } - } - - // Do not set an Accept header by default - if (!isset($curlOptions[CURLOPT_ENCODING])) { - $curlOptions[CURLOPT_HTTPHEADER][] = 'Accept:'; - } - - // Add any custom headers to the request. Empty headers will cause curl to not send the header at all. - foreach ($request->getHeaderLines() as $line) { - $curlOptions[CURLOPT_HTTPHEADER][] = $line; - } - - // Add the content-length header back if it was temporarily removed - if (null !== $tempContentLength) { - $request->setHeader('Content-Length', $tempContentLength); - } - - // Apply the options to a new cURL handle. - $handle = curl_init(); - - // Enable the progress function if the 'progress' param was set - if ($requestCurlOptions->get('progress')) { - // Wrap the function in a function that provides the curl handle to the mediator's progress function - // Using this rather than injecting the handle into the mediator prevents a circular reference - $curlOptions[CURLOPT_PROGRESSFUNCTION] = function () use ($mediator, $handle) { - $args = func_get_args(); - $args[] = $handle; - - // PHP 5.5 pushed the handle onto the start of the args - if (is_resource($args[0])) { - array_shift($args); - } - - call_user_func_array(array($mediator, 'progress'), $args); - }; - $curlOptions[CURLOPT_NOPROGRESS] = false; - } - - curl_setopt_array($handle, $curlOptions); - - return new static($handle, $curlOptions); - } - - /** - * Construct a new CurlHandle object that wraps a cURL handle - * - * @param resource $handle Configured cURL handle resource - * @param Collection|array $options Curl options to use with the handle - * - * @throws InvalidArgumentException - */ - public function __construct($handle, $options) - { - if (!is_resource($handle)) { - throw new InvalidArgumentException('Invalid handle provided'); - } - if (is_array($options)) { - $this->options = new Collection($options); - } elseif ($options instanceof Collection) { - $this->options = $options; - } else { - throw new InvalidArgumentException('Expected array or Collection'); - } - $this->handle = $handle; - } - - /** - * Destructor - */ - public function __destruct() - { - $this->close(); - } - - /** - * Close the curl handle - */ - public function close() - { - if (is_resource($this->handle)) { - curl_close($this->handle); - } - $this->handle = null; - } - - /** - * Check if the handle is available and still OK - * - * @return bool - */ - public function isAvailable() - { - return is_resource($this->handle); - } - - /** - * Get the last error that occurred on the cURL handle - * - * @return string - */ - public function getError() - { - return $this->isAvailable() ? curl_error($this->handle) : ''; - } - - /** - * Get the last error number that occurred on the cURL handle - * - * @return int - */ - public function getErrorNo() - { - if ($this->errorNo) { - return $this->errorNo; - } - - return $this->isAvailable() ? curl_errno($this->handle) : CURLE_OK; - } - - /** - * Set the curl error number - * - * @param int $error Error number to set - * - * @return CurlHandle - */ - public function setErrorNo($error) - { - $this->errorNo = $error; - - return $this; - } - - /** - * Get cURL curl_getinfo data - * - * @param int $option Option to retrieve. Pass null to retrieve all data as an array. - * - * @return array|mixed - */ - public function getInfo($option = null) - { - if (!is_resource($this->handle)) { - return null; - } - - if (null !== $option) { - return curl_getinfo($this->handle, $option) ?: null; - } - - return curl_getinfo($this->handle) ?: array(); - } - - /** - * Get the stderr output - * - * @param bool $asResource Set to TRUE to get an fopen resource - * - * @return string|resource|null - */ - public function getStderr($asResource = false) - { - $stderr = $this->getOptions()->get(CURLOPT_STDERR); - if (!$stderr) { - return null; - } - - if ($asResource) { - return $stderr; - } - - fseek($stderr, 0); - $e = stream_get_contents($stderr); - fseek($stderr, 0, SEEK_END); - - return $e; - } - - /** - * Get the URL that this handle is connecting to - * - * @return Url - */ - public function getUrl() - { - return Url::factory($this->options->get(CURLOPT_URL)); - } - - /** - * Get the wrapped curl handle - * - * @return resource|null Returns the cURL handle or null if it was closed - */ - public function getHandle() - { - return $this->isAvailable() ? $this->handle : null; - } - - /** - * Get the cURL setopt options of the handle. Changing values in the return object will have no effect on the curl - * handle after it is created. - * - * @return Collection - */ - public function getOptions() - { - return $this->options; - } - - /** - * Update a request based on the log messages of the CurlHandle - * - * @param RequestInterface $request Request to update - */ - public function updateRequestFromTransfer(RequestInterface $request) - { - if (!$request->getResponse()) { - return; - } - - // Update the transfer stats of the response - $request->getResponse()->setInfo($this->getInfo()); - - if (!$log = $this->getStderr(true)) { - return; - } - - // Parse the cURL stderr output for outgoing requests - $headers = ''; - fseek($log, 0); - while (($line = fgets($log)) !== false) { - if ($line && $line[0] == '>') { - $headers = substr(trim($line), 2) . "\r\n"; - while (($line = fgets($log)) !== false) { - if ($line[0] == '*' || $line[0] == '<') { - break; - } else { - $headers .= trim($line) . "\r\n"; - } - } - } - } - - // Add request headers to the request exactly as they were sent - if ($headers) { - $parsed = ParserRegistry::getInstance()->getParser('message')->parseRequest($headers); - if (!empty($parsed['headers'])) { - $request->setHeaders(array()); - foreach ($parsed['headers'] as $name => $value) { - $request->setHeader($name, $value); - } - } - if (!empty($parsed['version'])) { - $request->setProtocolVersion($parsed['version']); - } - } - } - - /** - * Parse the config and replace curl.* configurators into the constant based values so it can be used elsewhere - * - * @param array|Collection $config The configuration we want to parse - * - * @return array - */ - public static function parseCurlConfig($config) - { - $curlOptions = array(); - foreach ($config as $key => $value) { - if (is_string($key) && defined($key)) { - // Convert constants represented as string to constant int values - $key = constant($key); - } - if (is_string($value) && defined($value)) { - $value = constant($value); - } - $curlOptions[$key] = $value; - } - - return $curlOptions; - } -} diff --git a/lib/aws-sdk/Guzzle/Http/Curl/CurlMulti.php b/lib/aws-sdk/Guzzle/Http/Curl/CurlMulti.php deleted file mode 100644 index 9e4e637..0000000 --- a/lib/aws-sdk/Guzzle/Http/Curl/CurlMulti.php +++ /dev/null @@ -1,423 +0,0 @@ - array('CURLM_BAD_HANDLE', 'The passed-in handle is not a valid CURLM handle.'), - CURLM_BAD_EASY_HANDLE => array('CURLM_BAD_EASY_HANDLE', "An easy handle was not good/valid. It could mean that it isn't an easy handle at all, or possibly that the handle already is in used by this or another multi handle."), - CURLM_OUT_OF_MEMORY => array('CURLM_OUT_OF_MEMORY', 'You are doomed.'), - CURLM_INTERNAL_ERROR => array('CURLM_INTERNAL_ERROR', 'This can only be returned if libcurl bugs. Please report it to us!') - ); - - /** @var float */ - protected $selectTimeout; - - public function __construct($selectTimeout = 1.0) - { - $this->selectTimeout = $selectTimeout; - $this->multiHandle = curl_multi_init(); - // @codeCoverageIgnoreStart - if ($this->multiHandle === false) { - throw new CurlException('Unable to create multi handle'); - } - // @codeCoverageIgnoreEnd - $this->reset(); - } - - public function __destruct() - { - if (is_resource($this->multiHandle)) { - curl_multi_close($this->multiHandle); - } - } - - public function add(RequestInterface $request) - { - $this->requests[] = $request; - // If requests are currently transferring and this is async, then the - // request must be prepared now as the send() method is not called. - $this->beforeSend($request); - $this->dispatch(self::ADD_REQUEST, array('request' => $request)); - - return $this; - } - - public function all() - { - return $this->requests; - } - - public function remove(RequestInterface $request) - { - $this->removeHandle($request); - if (($index = array_search($request, $this->requests, true)) !== false) { - $request = $this->requests[$index]; - unset($this->requests[$index]); - $this->requests = array_values($this->requests); - $this->dispatch(self::REMOVE_REQUEST, array('request' => $request)); - return true; - } - - return false; - } - - public function reset($hard = false) - { - // Remove each request - if ($this->requests) { - foreach ($this->requests as $request) { - $this->remove($request); - } - } - - $this->handles = new \SplObjectStorage(); - $this->requests = $this->resourceHash = $this->exceptions = $this->successful = array(); - } - - public function send() - { - $this->perform(); - $exceptions = $this->exceptions; - $successful = $this->successful; - $this->reset(); - - if ($exceptions) { - $this->throwMultiException($exceptions, $successful); - } - } - - public function count() - { - return count($this->requests); - } - - /** - * Build and throw a MultiTransferException - * - * @param array $exceptions Exceptions encountered - * @param array $successful Successful requests - * @throws MultiTransferException - */ - protected function throwMultiException(array $exceptions, array $successful) - { - $multiException = new MultiTransferException('Errors during multi transfer'); - - while ($e = array_shift($exceptions)) { - $multiException->addFailedRequestWithException($e['request'], $e['exception']); - } - - // Add successful requests - foreach ($successful as $request) { - if (!$multiException->containsRequest($request)) { - $multiException->addSuccessfulRequest($request); - } - } - - throw $multiException; - } - - /** - * Prepare for sending - * - * @param RequestInterface $request Request to prepare - * @throws \Exception on error preparing the request - */ - protected function beforeSend(RequestInterface $request) - { - try { - $state = $request->setState(RequestInterface::STATE_TRANSFER); - if ($state == RequestInterface::STATE_TRANSFER) { - $this->addHandle($request); - } else { - // Requests might decide they don't need to be sent just before - // transfer (e.g. CachePlugin) - $this->remove($request); - if ($state == RequestInterface::STATE_COMPLETE) { - $this->successful[] = $request; - } - } - } catch (\Exception $e) { - // Queue the exception to be thrown when sent - $this->removeErroredRequest($request, $e); - } - } - - private function addHandle(RequestInterface $request) - { - $handle = $this->createCurlHandle($request)->getHandle(); - $this->checkCurlResult( - curl_multi_add_handle($this->multiHandle, $handle) - ); - } - - /** - * Create a curl handle for a request - * - * @param RequestInterface $request Request - * - * @return CurlHandle - */ - protected function createCurlHandle(RequestInterface $request) - { - $wrapper = CurlHandle::factory($request); - $this->handles[$request] = $wrapper; - $this->resourceHash[(int) $wrapper->getHandle()] = $request; - - return $wrapper; - } - - /** - * Get the data from the multi handle - */ - protected function perform() - { - $event = new Event(array('curl_multi' => $this)); - - while ($this->requests) { - // Notify each request as polling - $blocking = $total = 0; - foreach ($this->requests as $request) { - ++$total; - $event['request'] = $request; - $request->getEventDispatcher()->dispatch(self::POLLING_REQUEST, $event); - // The blocking variable just has to be non-falsey to block the loop - if ($request->getParams()->hasKey(self::BLOCKING)) { - ++$blocking; - } - } - if ($blocking == $total) { - // Sleep to prevent eating CPU because no requests are actually pending a select call - usleep(500); - } else { - $this->executeHandles(); - } - } - } - - /** - * Execute and select curl handles - */ - private function executeHandles() - { - // The first curl_multi_select often times out no matter what, but is usually required for fast transfers - $selectTimeout = 0.001; - $active = false; - do { - while (($mrc = curl_multi_exec($this->multiHandle, $active)) == CURLM_CALL_MULTI_PERFORM); - $this->checkCurlResult($mrc); - $this->processMessages(); - if ($active && curl_multi_select($this->multiHandle, $selectTimeout) === -1) { - // Perform a usleep if a select returns -1: https://bugs.php.net/bug.php?id=61141 - usleep(150); - } - $selectTimeout = $this->selectTimeout; - } while ($active); - } - - /** - * Process any received curl multi messages - */ - private function processMessages() - { - while ($done = curl_multi_info_read($this->multiHandle)) { - $request = $this->resourceHash[(int) $done['handle']]; - try { - $this->processResponse($request, $this->handles[$request], $done); - $this->successful[] = $request; - } catch (\Exception $e) { - $this->removeErroredRequest($request, $e); - } - } - } - - /** - * Remove a request that encountered an exception - * - * @param RequestInterface $request Request to remove - * @param \Exception $e Exception encountered - */ - protected function removeErroredRequest(RequestInterface $request, \Exception $e = null) - { - $this->exceptions[] = array('request' => $request, 'exception' => $e); - $this->remove($request); - $this->dispatch(self::MULTI_EXCEPTION, array('exception' => $e, 'all_exceptions' => $this->exceptions)); - } - - /** - * Check for errors and fix headers of a request based on a curl response - * - * @param RequestInterface $request Request to process - * @param CurlHandle $handle Curl handle object - * @param array $curl Array returned from curl_multi_info_read - * - * @throws CurlException on Curl error - */ - protected function processResponse(RequestInterface $request, CurlHandle $handle, array $curl) - { - // Set the transfer stats on the response - $handle->updateRequestFromTransfer($request); - // Check if a cURL exception occurred, and if so, notify things - $curlException = $this->isCurlException($request, $handle, $curl); - - // Always remove completed curl handles. They can be added back again - // via events if needed (e.g. ExponentialBackoffPlugin) - $this->removeHandle($request); - - if (!$curlException) { - if ($this->validateResponseWasSet($request)) { - $state = $request->setState( - RequestInterface::STATE_COMPLETE, - array('handle' => $handle) - ); - // Only remove the request if it wasn't resent as a result of - // the state change - if ($state != RequestInterface::STATE_TRANSFER) { - $this->remove($request); - } - } - return; - } - - // Set the state of the request to an error - $state = $request->setState(RequestInterface::STATE_ERROR, array('exception' => $curlException)); - // Allow things to ignore the error if possible - if ($state != RequestInterface::STATE_TRANSFER) { - $this->remove($request); - } - - // The error was not handled, so fail - if ($state == RequestInterface::STATE_ERROR) { - /** @var CurlException $curlException */ - throw $curlException; - } - } - - /** - * Remove a curl handle from the curl multi object - * - * @param RequestInterface $request Request that owns the handle - */ - protected function removeHandle(RequestInterface $request) - { - if (isset($this->handles[$request])) { - $handle = $this->handles[$request]; - curl_multi_remove_handle($this->multiHandle, $handle->getHandle()); - unset($this->handles[$request]); - unset($this->resourceHash[(int) $handle->getHandle()]); - $handle->close(); - } - } - - /** - * Check if a cURL transfer resulted in what should be an exception - * - * @param RequestInterface $request Request to check - * @param CurlHandle $handle Curl handle object - * @param array $curl Array returned from curl_multi_info_read - * - * @return CurlException|bool - */ - private function isCurlException(RequestInterface $request, CurlHandle $handle, array $curl) - { - if (CURLM_OK == $curl['result'] || CURLM_CALL_MULTI_PERFORM == $curl['result']) { - return false; - } - - $handle->setErrorNo($curl['result']); - $e = new CurlException(sprintf('[curl] %s: %s [url] %s', - $handle->getErrorNo(), $handle->getError(), $handle->getUrl())); - $e->setCurlHandle($handle) - ->setRequest($request) - ->setCurlInfo($handle->getInfo()) - ->setError($handle->getError(), $handle->getErrorNo()); - - return $e; - } - - /** - * Throw an exception for a cURL multi response if needed - * - * @param int $code Curl response code - * @throws CurlException - */ - private function checkCurlResult($code) - { - if ($code != CURLM_OK && $code != CURLM_CALL_MULTI_PERFORM) { - throw new CurlException(isset($this->multiErrors[$code]) - ? "cURL error: {$code} ({$this->multiErrors[$code][0]}): cURL message: {$this->multiErrors[$code][1]}" - : 'Unexpected cURL error: ' . $code - ); - } - } - - /** - * @link https://github.com/guzzle/guzzle/issues/710 - */ - private function validateResponseWasSet(RequestInterface $request) - { - if ($request->getResponse()) { - return true; - } - - $body = $request instanceof EntityEnclosingRequestInterface - ? $request->getBody() - : null; - - if (!$body) { - $rex = new RequestException( - 'No response was received for a request with no body. This' - . ' could mean that you are saturating your network.' - ); - $rex->setRequest($request); - $this->removeErroredRequest($request, $rex); - } elseif (!$body->isSeekable() || !$body->seek(0)) { - // Nothing we can do with this. Sorry! - $rex = new RequestException( - 'The connection was unexpectedly closed. The request would' - . ' have been retried, but attempting to rewind the' - . ' request body failed.' - ); - $rex->setRequest($request); - $this->removeErroredRequest($request, $rex); - } else { - $this->remove($request); - // Add the request back to the batch to retry automatically. - $this->requests[] = $request; - $this->addHandle($request); - } - - return false; - } -} diff --git a/lib/aws-sdk/Guzzle/Http/Curl/CurlMultiInterface.php b/lib/aws-sdk/Guzzle/Http/Curl/CurlMultiInterface.php deleted file mode 100644 index 0ead757..0000000 --- a/lib/aws-sdk/Guzzle/Http/Curl/CurlMultiInterface.php +++ /dev/null @@ -1,58 +0,0 @@ -maxHandles = $maxHandles; - $this->selectTimeout = $selectTimeout; - // You can get some weird "Too many open files" errors when sending a large amount of requests in parallel. - // These two statements autoload classes before a system runs out of file descriptors so that you can get back - // valuable error messages if you run out. - class_exists('Guzzle\Http\Message\Response'); - class_exists('Guzzle\Http\Exception\CurlException'); - } - - public function add(RequestInterface $request) - { - $this->queued[] = $request; - - return $this; - } - - public function all() - { - $requests = $this->queued; - foreach ($this->handles as $handle) { - $requests = array_merge($requests, $handle->all()); - } - - return $requests; - } - - public function remove(RequestInterface $request) - { - foreach ($this->queued as $i => $r) { - if ($request === $r) { - unset($this->queued[$i]); - return true; - } - } - - foreach ($this->handles as $handle) { - if ($handle->remove($request)) { - return true; - } - } - - return false; - } - - public function reset($hard = false) - { - $this->queued = array(); - $this->groups = array(); - foreach ($this->handles as $handle) { - $handle->reset(); - } - if ($hard) { - $this->handles = array(); - } - - return $this; - } - - public function send() - { - if ($this->queued) { - $group = $this->getAvailableHandle(); - // Add this handle to a list of handles than is claimed - $this->groups[] = $group; - while ($request = array_shift($this->queued)) { - $group->add($request); - } - try { - $group->send(); - array_pop($this->groups); - $this->cleanupHandles(); - } catch (\Exception $e) { - // Remove the group and cleanup if an exception was encountered and no more requests in group - if (!$group->count()) { - array_pop($this->groups); - $this->cleanupHandles(); - } - throw $e; - } - } - } - - public function count() - { - return count($this->all()); - } - - /** - * Get an existing available CurlMulti handle or create a new one - * - * @return CurlMulti - */ - protected function getAvailableHandle() - { - // Grab a handle that is not claimed - foreach ($this->handles as $h) { - if (!in_array($h, $this->groups, true)) { - return $h; - } - } - - // All are claimed, so create one - $handle = new CurlMulti($this->selectTimeout); - $handle->setEventDispatcher($this->getEventDispatcher()); - $this->handles[] = $handle; - - return $handle; - } - - /** - * Trims down unused CurlMulti handles to limit the number of open connections - */ - protected function cleanupHandles() - { - if ($diff = max(0, count($this->handles) - $this->maxHandles)) { - for ($i = count($this->handles) - 1; $i > 0 && $diff > 0; $i--) { - if (!count($this->handles[$i])) { - unset($this->handles[$i]); - $diff--; - } - } - $this->handles = array_values($this->handles); - } - } -} diff --git a/lib/aws-sdk/Guzzle/Http/Curl/CurlVersion.php b/lib/aws-sdk/Guzzle/Http/Curl/CurlVersion.php deleted file mode 100644 index c3f99dd..0000000 --- a/lib/aws-sdk/Guzzle/Http/Curl/CurlVersion.php +++ /dev/null @@ -1,66 +0,0 @@ -version) { - $this->version = curl_version(); - } - - return $this->version; - } - - /** - * Get a specific type of curl information - * - * @param string $type Version information to retrieve. This value is one of: - * - version_number: cURL 24 bit version number - * - version: cURL version number, as a string - * - ssl_version_number: OpenSSL 24 bit version number - * - ssl_version: OpenSSL version number, as a string - * - libz_version: zlib version number, as a string - * - host: Information about the host where cURL was built - * - features: A bitmask of the CURL_VERSION_XXX constants - * - protocols: An array of protocols names supported by cURL - * - * @return string|float|bool if the $type is found, and false if not found - */ - public function get($type) - { - $version = $this->getAll(); - - return isset($version[$type]) ? $version[$type] : false; - } -} diff --git a/lib/aws-sdk/Guzzle/Http/Curl/RequestMediator.php b/lib/aws-sdk/Guzzle/Http/Curl/RequestMediator.php deleted file mode 100644 index 5d1a0cd..0000000 --- a/lib/aws-sdk/Guzzle/Http/Curl/RequestMediator.php +++ /dev/null @@ -1,147 +0,0 @@ -request = $request; - $this->emitIo = $emitIo; - } - - /** - * Receive a response header from curl - * - * @param resource $curl Curl handle - * @param string $header Received header - * - * @return int - */ - public function receiveResponseHeader($curl, $header) - { - static $normalize = array("\r", "\n"); - $length = strlen($header); - $header = str_replace($normalize, '', $header); - - if (strpos($header, 'HTTP/') === 0) { - - $startLine = explode(' ', $header, 3); - $code = $startLine[1]; - $status = isset($startLine[2]) ? $startLine[2] : ''; - - // Only download the body of the response to the specified response - // body when a successful response is received. - if ($code >= 200 && $code < 300) { - $body = $this->request->getResponseBody(); - } else { - $body = EntityBody::factory(); - } - - $response = new Response($code, null, $body); - $response->setStatus($code, $status); - $this->request->startResponse($response); - - $this->request->dispatch('request.receive.status_line', array( - 'request' => $this, - 'line' => $header, - 'status_code' => $code, - 'reason_phrase' => $status - )); - - } elseif ($pos = strpos($header, ':')) { - $this->request->getResponse()->addHeader( - trim(substr($header, 0, $pos)), - trim(substr($header, $pos + 1)) - ); - } - - return $length; - } - - /** - * Received a progress notification - * - * @param int $downloadSize Total download size - * @param int $downloaded Amount of bytes downloaded - * @param int $uploadSize Total upload size - * @param int $uploaded Amount of bytes uploaded - * @param resource $handle CurlHandle object - */ - public function progress($downloadSize, $downloaded, $uploadSize, $uploaded, $handle = null) - { - $this->request->dispatch('curl.callback.progress', array( - 'request' => $this->request, - 'handle' => $handle, - 'download_size' => $downloadSize, - 'downloaded' => $downloaded, - 'upload_size' => $uploadSize, - 'uploaded' => $uploaded - )); - } - - /** - * Write data to the response body of a request - * - * @param resource $curl Curl handle - * @param string $write Data that was received - * - * @return int - */ - public function writeResponseBody($curl, $write) - { - if ($this->emitIo) { - $this->request->dispatch('curl.callback.write', array( - 'request' => $this->request, - 'write' => $write - )); - } - - if ($response = $this->request->getResponse()) { - return $response->getBody()->write($write); - } else { - // Unexpected data received before response headers - abort transfer - return 0; - } - } - - /** - * Read data from the request body and send it to curl - * - * @param resource $ch Curl handle - * @param resource $fd File descriptor - * @param int $length Amount of data to read - * - * @return string - */ - public function readRequestBody($ch, $fd, $length) - { - if (!($body = $this->request->getBody())) { - return ''; - } - - $read = (string) $body->read($length); - if ($this->emitIo) { - $this->request->dispatch('curl.callback.read', array('request' => $this->request, 'read' => $read)); - } - - return $read; - } -} diff --git a/lib/aws-sdk/Guzzle/Http/EntityBody.php b/lib/aws-sdk/Guzzle/Http/EntityBody.php deleted file mode 100644 index b60d170..0000000 --- a/lib/aws-sdk/Guzzle/Http/EntityBody.php +++ /dev/null @@ -1,201 +0,0 @@ -rewindFunction = $callable; - - return $this; - } - - public function rewind() - { - return $this->rewindFunction ? call_user_func($this->rewindFunction, $this) : parent::rewind(); - } - - /** - * Create a new EntityBody from a string - * - * @param string $string String of data - * - * @return EntityBody - */ - public static function fromString($string) - { - $stream = fopen('php://temp', 'r+'); - if ($string !== '') { - fwrite($stream, $string); - rewind($stream); - } - - return new static($stream); - } - - public function compress($filter = 'zlib.deflate') - { - $result = $this->handleCompression($filter); - $this->contentEncoding = $result ? $filter : false; - - return $result; - } - - public function uncompress($filter = 'zlib.inflate') - { - $offsetStart = 0; - - // When inflating gzipped data, the first 10 bytes must be stripped - // if a gzip header is present - if ($filter == 'zlib.inflate') { - // @codeCoverageIgnoreStart - if (!$this->isReadable() || ($this->isConsumed() && !$this->isSeekable())) { - return false; - } - // @codeCoverageIgnoreEnd - if (stream_get_contents($this->stream, 3, 0) === "\x1f\x8b\x08") { - $offsetStart = 10; - } - } - - $this->contentEncoding = false; - - return $this->handleCompression($filter, $offsetStart); - } - - public function getContentLength() - { - return $this->getSize(); - } - - public function getContentType() - { - return $this->getUri() ? Mimetypes::getInstance()->fromFilename($this->getUri()) : null; - } - - public function getContentMd5($rawOutput = false, $base64Encode = false) - { - if ($hash = self::getHash($this, 'md5', $rawOutput)) { - return $hash && $base64Encode ? base64_encode($hash) : $hash; - } else { - return false; - } - } - - /** - * Calculate the MD5 hash of an entity body - * - * @param EntityBodyInterface $body Entity body to calculate the hash for - * @param bool $rawOutput Whether or not to use raw output - * @param bool $base64Encode Whether or not to base64 encode raw output (only if raw output is true) - * - * @return bool|string Returns an MD5 string on success or FALSE on failure - * @deprecated This will be deprecated soon - * @codeCoverageIgnore - */ - public static function calculateMd5(EntityBodyInterface $body, $rawOutput = false, $base64Encode = false) - { - Version::warn(__CLASS__ . ' is deprecated. Use getContentMd5()'); - return $body->getContentMd5($rawOutput, $base64Encode); - } - - public function setStreamFilterContentEncoding($streamFilterContentEncoding) - { - $this->contentEncoding = $streamFilterContentEncoding; - - return $this; - } - - public function getContentEncoding() - { - return strtr($this->contentEncoding, array( - 'zlib.deflate' => 'gzip', - 'bzip2.compress' => 'compress' - )) ?: false; - } - - protected function handleCompression($filter, $offsetStart = 0) - { - // @codeCoverageIgnoreStart - if (!$this->isReadable() || ($this->isConsumed() && !$this->isSeekable())) { - return false; - } - // @codeCoverageIgnoreEnd - - $handle = fopen('php://temp', 'r+'); - $filter = @stream_filter_append($handle, $filter, STREAM_FILTER_WRITE); - if (!$filter) { - return false; - } - - // Seek to the offset start if possible - $this->seek($offsetStart); - while ($data = fread($this->stream, 8096)) { - fwrite($handle, $data); - } - - fclose($this->stream); - $this->stream = $handle; - stream_filter_remove($filter); - $stat = fstat($this->stream); - $this->size = $stat['size']; - $this->rebuildCache(); - $this->seek(0); - - // Remove any existing rewind function as the underlying stream has been replaced - $this->rewindFunction = null; - - return true; - } -} diff --git a/lib/aws-sdk/Guzzle/Http/EntityBodyInterface.php b/lib/aws-sdk/Guzzle/Http/EntityBodyInterface.php deleted file mode 100644 index e640f57..0000000 --- a/lib/aws-sdk/Guzzle/Http/EntityBodyInterface.php +++ /dev/null @@ -1,73 +0,0 @@ -isClientError()) { - $label = 'Client error response'; - $class = __NAMESPACE__ . '\\ClientErrorResponseException'; - } elseif ($response->isServerError()) { - $label = 'Server error response'; - $class = __NAMESPACE__ . '\\ServerErrorResponseException'; - } else { - $label = 'Unsuccessful response'; - $class = __CLASS__; - } - - $message = $label . PHP_EOL . implode(PHP_EOL, array( - '[status code] ' . $response->getStatusCode(), - '[reason phrase] ' . $response->getReasonPhrase(), - '[url] ' . $request->getUrl(), - )); - - $e = new $class($message); - $e->setResponse($response); - $e->setRequest($request); - - return $e; - } - - /** - * Set the response that caused the exception - * - * @param Response $response Response to set - */ - public function setResponse(Response $response) - { - $this->response = $response; - } - - /** - * Get the response that caused the exception - * - * @return Response - */ - public function getResponse() - { - return $this->response; - } -} diff --git a/lib/aws-sdk/Guzzle/Http/Exception/ClientErrorResponseException.php b/lib/aws-sdk/Guzzle/Http/Exception/ClientErrorResponseException.php deleted file mode 100644 index 04d7ddc..0000000 --- a/lib/aws-sdk/Guzzle/Http/Exception/ClientErrorResponseException.php +++ /dev/null @@ -1,8 +0,0 @@ -curlError = $error; - $this->curlErrorNo = $number; - - return $this; - } - - /** - * Set the associated curl handle - * - * @param CurlHandle $handle Curl handle - * - * @return self - */ - public function setCurlHandle(CurlHandle $handle) - { - $this->handle = $handle; - - return $this; - } - - /** - * Get the associated cURL handle - * - * @return CurlHandle|null - */ - public function getCurlHandle() - { - return $this->handle; - } - - /** - * Get the associated cURL error message - * - * @return string|null - */ - public function getError() - { - return $this->curlError; - } - - /** - * Get the associated cURL error number - * - * @return int|null - */ - public function getErrorNo() - { - return $this->curlErrorNo; - } - - /** - * Returns curl information about the transfer - * - * @return array - */ - public function getCurlInfo() - { - return $this->curlInfo; - } - - /** - * Set curl transfer information - * - * @param array $info Array of curl transfer information - * - * @return self - * @link http://php.net/manual/en/function.curl-getinfo.php - */ - public function setCurlInfo(array $info) - { - $this->curlInfo = $info; - - return $this; - } -} diff --git a/lib/aws-sdk/Guzzle/Http/Exception/HttpException.php b/lib/aws-sdk/Guzzle/Http/Exception/HttpException.php deleted file mode 100644 index ee87295..0000000 --- a/lib/aws-sdk/Guzzle/Http/Exception/HttpException.php +++ /dev/null @@ -1,10 +0,0 @@ -successfulRequests, $this->failedRequests); - } - - /** - * Add to the array of successful requests - * - * @param RequestInterface $request Successful request - * - * @return self - */ - public function addSuccessfulRequest(RequestInterface $request) - { - $this->successfulRequests[] = $request; - - return $this; - } - - /** - * Add to the array of failed requests - * - * @param RequestInterface $request Failed request - * - * @return self - */ - public function addFailedRequest(RequestInterface $request) - { - $this->failedRequests[] = $request; - - return $this; - } - - /** - * Add to the array of failed requests and associate with exceptions - * - * @param RequestInterface $request Failed request - * @param \Exception $exception Exception to add and associate with - * - * @return self - */ - public function addFailedRequestWithException(RequestInterface $request, \Exception $exception) - { - $this->add($exception) - ->addFailedRequest($request) - ->exceptionForRequest[spl_object_hash($request)] = $exception; - - return $this; - } - - /** - * Get the Exception that caused the given $request to fail - * - * @param RequestInterface $request Failed command - * - * @return \Exception|null - */ - public function getExceptionForFailedRequest(RequestInterface $request) - { - $oid = spl_object_hash($request); - - return isset($this->exceptionForRequest[$oid]) ? $this->exceptionForRequest[$oid] : null; - } - - /** - * Set all of the successful requests - * - * @param array Array of requests - * - * @return self - */ - public function setSuccessfulRequests(array $requests) - { - $this->successfulRequests = $requests; - - return $this; - } - - /** - * Set all of the failed requests - * - * @param array Array of requests - * - * @return self - */ - public function setFailedRequests(array $requests) - { - $this->failedRequests = $requests; - - return $this; - } - - /** - * Get an array of successful requests sent in the multi transfer - * - * @return array - */ - public function getSuccessfulRequests() - { - return $this->successfulRequests; - } - - /** - * Get an array of failed requests sent in the multi transfer - * - * @return array - */ - public function getFailedRequests() - { - return $this->failedRequests; - } - - /** - * Check if the exception object contains a request - * - * @param RequestInterface $request Request to check - * - * @return bool - */ - public function containsRequest(RequestInterface $request) - { - return in_array($request, $this->failedRequests, true) || in_array($request, $this->successfulRequests, true); - } -} diff --git a/lib/aws-sdk/Guzzle/Http/Exception/RequestException.php b/lib/aws-sdk/Guzzle/Http/Exception/RequestException.php deleted file mode 100644 index 274df2c..0000000 --- a/lib/aws-sdk/Guzzle/Http/Exception/RequestException.php +++ /dev/null @@ -1,39 +0,0 @@ -request = $request; - - return $this; - } - - /** - * Get the request that caused the exception - * - * @return RequestInterface - */ - public function getRequest() - { - return $this->request; - } -} diff --git a/lib/aws-sdk/Guzzle/Http/Exception/ServerErrorResponseException.php b/lib/aws-sdk/Guzzle/Http/Exception/ServerErrorResponseException.php deleted file mode 100644 index f0f7cfe..0000000 --- a/lib/aws-sdk/Guzzle/Http/Exception/ServerErrorResponseException.php +++ /dev/null @@ -1,8 +0,0 @@ -eventDispatcher = $eventDispatcher; - - return $this; - } - - public function getEventDispatcher() - { - if (!$this->eventDispatcher) { - $this->eventDispatcher = new EventDispatcher(); - } - - return $this->eventDispatcher; - } - - public function dispatch($eventName, array $context = array()) - { - return $this->getEventDispatcher()->dispatch($eventName, new Event($context)); - } - - /** - * {@inheritdoc} - * @codeCoverageIgnore - */ - public function addSubscriber(EventSubscriberInterface $subscriber) - { - $this->getEventDispatcher()->addSubscriber($subscriber); - - return $this; - } - - public function read($length) - { - $event = array( - 'body' => $this, - 'length' => $length, - 'read' => $this->body->read($length) - ); - $this->dispatch('body.read', $event); - - return $event['read']; - } - - public function write($string) - { - $event = array( - 'body' => $this, - 'write' => $string, - 'result' => $this->body->write($string) - ); - $this->dispatch('body.write', $event); - - return $event['result']; - } -} diff --git a/lib/aws-sdk/Guzzle/Http/Message/AbstractMessage.php b/lib/aws-sdk/Guzzle/Http/Message/AbstractMessage.php deleted file mode 100644 index 0d066ff..0000000 --- a/lib/aws-sdk/Guzzle/Http/Message/AbstractMessage.php +++ /dev/null @@ -1,220 +0,0 @@ -params = new Collection(); - $this->headerFactory = new HeaderFactory(); - $this->headers = new HeaderCollection(); - } - - /** - * Set the header factory to use to create headers - * - * @param HeaderFactoryInterface $factory - * - * @return self - */ - public function setHeaderFactory(HeaderFactoryInterface $factory) - { - $this->headerFactory = $factory; - - return $this; - } - - public function getParams() - { - return $this->params; - } - - public function addHeader($header, $value) - { - if (isset($this->headers[$header])) { - $this->headers[$header]->add($value); - } elseif ($value instanceof HeaderInterface) { - $this->headers[$header] = $value; - } else { - $this->headers[$header] = $this->headerFactory->createHeader($header, $value); - } - - return $this; - } - - public function addHeaders(array $headers) - { - foreach ($headers as $key => $value) { - $this->addHeader($key, $value); - } - - return $this; - } - - public function getHeader($header) - { - return $this->headers[$header]; - } - - public function getHeaders() - { - return $this->headers; - } - - public function getHeaderLines() - { - $headers = array(); - foreach ($this->headers as $value) { - $headers[] = $value->getName() . ': ' . $value; - } - - return $headers; - } - - public function setHeader($header, $value) - { - unset($this->headers[$header]); - $this->addHeader($header, $value); - - return $this; - } - - public function setHeaders(array $headers) - { - $this->headers->clear(); - foreach ($headers as $key => $value) { - $this->addHeader($key, $value); - } - - return $this; - } - - public function hasHeader($header) - { - return isset($this->headers[$header]); - } - - public function removeHeader($header) - { - unset($this->headers[$header]); - - return $this; - } - - /** - * @deprecated Use $message->getHeader()->parseParams() - * @codeCoverageIgnore - */ - public function getTokenizedHeader($header, $token = ';') - { - Version::warn(__METHOD__ . ' is deprecated. Use $message->getHeader()->parseParams()'); - if ($this->hasHeader($header)) { - $data = new Collection(); - foreach ($this->getHeader($header)->parseParams() as $values) { - foreach ($values as $key => $value) { - if ($value === '') { - $data->set($data->count(), $key); - } else { - $data->add($key, $value); - } - } - } - return $data; - } - } - - /** - * @deprecated - * @codeCoverageIgnore - */ - public function setTokenizedHeader($header, $data, $token = ';') - { - Version::warn(__METHOD__ . ' is deprecated.'); - return $this; - } - - /** - * @deprecated - * @codeCoverageIgnore - */ - public function getCacheControlDirective($directive) - { - Version::warn(__METHOD__ . ' is deprecated. Use $message->getHeader(\'Cache-Control\')->getDirective()'); - if (!($header = $this->getHeader('Cache-Control'))) { - return null; - } - - return $header->getDirective($directive); - } - - /** - * @deprecated - * @codeCoverageIgnore - */ - public function hasCacheControlDirective($directive) - { - Version::warn(__METHOD__ . ' is deprecated. Use $message->getHeader(\'Cache-Control\')->hasDirective()'); - if ($header = $this->getHeader('Cache-Control')) { - return $header->hasDirective($directive); - } else { - return false; - } - } - - /** - * @deprecated - * @codeCoverageIgnore - */ - public function addCacheControlDirective($directive, $value = true) - { - Version::warn(__METHOD__ . ' is deprecated. Use $message->getHeader(\'Cache-Control\')->addDirective()'); - if (!($header = $this->getHeader('Cache-Control'))) { - $this->addHeader('Cache-Control', ''); - $header = $this->getHeader('Cache-Control'); - } - - $header->addDirective($directive, $value); - - return $this; - } - - /** - * @deprecated - * @codeCoverageIgnore - */ - public function removeCacheControlDirective($directive) - { - Version::warn(__METHOD__ . ' is deprecated. Use $message->getHeader(\'Cache-Control\')->removeDirective()'); - if ($header = $this->getHeader('Cache-Control')) { - $header->removeDirective($directive); - } - - return $this; - } -} diff --git a/lib/aws-sdk/Guzzle/Http/Message/EntityEnclosingRequest.php b/lib/aws-sdk/Guzzle/Http/Message/EntityEnclosingRequest.php deleted file mode 100644 index 212850a..0000000 --- a/lib/aws-sdk/Guzzle/Http/Message/EntityEnclosingRequest.php +++ /dev/null @@ -1,247 +0,0 @@ -postFields = new QueryString(); - parent::__construct($method, $url, $headers); - } - - /** - * @return string - */ - public function __toString() - { - // Only attempt to include the POST data if it's only fields - if (count($this->postFields) && empty($this->postFiles)) { - return parent::__toString() . (string) $this->postFields; - } - - return parent::__toString() . $this->body; - } - - public function setState($state, array $context = array()) - { - parent::setState($state, $context); - if ($state == self::STATE_TRANSFER && !$this->body && !count($this->postFields) && !count($this->postFiles)) { - $this->setHeader('Content-Length', 0)->removeHeader('Transfer-Encoding'); - } - - return $this->state; - } - - public function setBody($body, $contentType = null) - { - $this->body = EntityBody::factory($body); - - // Auto detect the Content-Type from the path of the request if possible - if ($contentType === null && !$this->hasHeader('Content-Type')) { - $contentType = $this->body->getContentType(); - } - - if ($contentType) { - $this->setHeader('Content-Type', $contentType); - } - - // Always add the Expect 100-Continue header if the body cannot be rewound. This helps with redirects. - if (!$this->body->isSeekable() && $this->expectCutoff !== false) { - $this->setHeader('Expect', '100-Continue'); - } - - // Set the Content-Length header if it can be determined - $size = $this->body->getContentLength(); - if ($size !== null && $size !== false) { - $this->setHeader('Content-Length', $size); - if ($size > $this->expectCutoff) { - $this->setHeader('Expect', '100-Continue'); - } - } elseif (!$this->hasHeader('Content-Length')) { - if ('1.1' == $this->protocolVersion) { - $this->setHeader('Transfer-Encoding', 'chunked'); - } else { - throw new RequestException( - 'Cannot determine Content-Length and cannot use chunked Transfer-Encoding when using HTTP/1.0' - ); - } - } - - return $this; - } - - public function getBody() - { - return $this->body; - } - - /** - * Set the size that the entity body of the request must exceed before adding the Expect: 100-Continue header. - * - * @param int|bool $size Cutoff in bytes. Set to false to never send the expect header (even with non-seekable data) - * - * @return self - */ - public function setExpectHeaderCutoff($size) - { - $this->expectCutoff = $size; - if ($size === false || !$this->body) { - $this->removeHeader('Expect'); - } elseif ($this->body && $this->body->getSize() && $this->body->getSize() > $size) { - $this->setHeader('Expect', '100-Continue'); - } - - return $this; - } - - public function configureRedirects($strict = false, $maxRedirects = 5) - { - $this->getParams()->set(RedirectPlugin::STRICT_REDIRECTS, $strict); - if ($maxRedirects == 0) { - $this->getParams()->set(RedirectPlugin::DISABLE, true); - } else { - $this->getParams()->set(RedirectPlugin::MAX_REDIRECTS, $maxRedirects); - } - - return $this; - } - - public function getPostField($field) - { - return $this->postFields->get($field); - } - - public function getPostFields() - { - return $this->postFields; - } - - public function setPostField($key, $value) - { - $this->postFields->set($key, $value); - $this->processPostFields(); - - return $this; - } - - public function addPostFields($fields) - { - $this->postFields->merge($fields); - $this->processPostFields(); - - return $this; - } - - public function removePostField($field) - { - $this->postFields->remove($field); - $this->processPostFields(); - - return $this; - } - - public function getPostFiles() - { - return $this->postFiles; - } - - public function getPostFile($fieldName) - { - return isset($this->postFiles[$fieldName]) ? $this->postFiles[$fieldName] : null; - } - - public function removePostFile($fieldName) - { - unset($this->postFiles[$fieldName]); - $this->processPostFields(); - - return $this; - } - - public function addPostFile($field, $filename = null, $contentType = null, $postname = null) - { - $data = null; - - if ($field instanceof PostFileInterface) { - $data = $field; - } elseif (is_array($filename)) { - // Allow multiple values to be set in a single key - foreach ($filename as $file) { - $this->addPostFile($field, $file, $contentType); - } - return $this; - } elseif (!is_string($filename)) { - throw new RequestException('The path to a file must be a string'); - } elseif (!empty($filename)) { - // Adding an empty file will cause cURL to error out - $data = new PostFile($field, $filename, $contentType, $postname); - } - - if ($data) { - if (!isset($this->postFiles[$data->getFieldName()])) { - $this->postFiles[$data->getFieldName()] = array($data); - } else { - $this->postFiles[$data->getFieldName()][] = $data; - } - $this->processPostFields(); - } - - return $this; - } - - public function addPostFiles(array $files) - { - foreach ($files as $key => $file) { - if ($file instanceof PostFileInterface) { - $this->addPostFile($file, null, null, false); - } elseif (is_string($file)) { - // Convert non-associative array keys into 'file' - if (is_numeric($key)) { - $key = 'file'; - } - $this->addPostFile($key, $file, null, false); - } else { - throw new RequestException('File must be a string or instance of PostFileInterface'); - } - } - - return $this; - } - - /** - * Determine what type of request should be sent based on post fields - */ - protected function processPostFields() - { - if (!$this->postFiles) { - $this->removeHeader('Expect')->setHeader('Content-Type', self::URL_ENCODED); - } else { - $this->setHeader('Content-Type', self::MULTIPART); - if ($this->expectCutoff !== false) { - $this->setHeader('Expect', '100-Continue'); - } - } - } -} diff --git a/lib/aws-sdk/Guzzle/Http/Message/EntityEnclosingRequestInterface.php b/lib/aws-sdk/Guzzle/Http/Message/EntityEnclosingRequestInterface.php deleted file mode 100644 index 49ad459..0000000 --- a/lib/aws-sdk/Guzzle/Http/Message/EntityEnclosingRequestInterface.php +++ /dev/null @@ -1,137 +0,0 @@ - filenames where filename can be a string or PostFileInterface - * - * @return self - */ - public function addPostFiles(array $files); - - /** - * Configure how redirects are handled for the request - * - * @param bool $strict Set to true to follow strict RFC compliance when redirecting POST requests. Most - * browsers with follow a 301-302 redirect for a POST request with a GET request. This is - * the default behavior of Guzzle. Enable strict redirects to redirect these responses - * with a POST rather than a GET request. - * @param int $maxRedirects Specify the maximum number of allowed redirects. Set to 0 to disable redirects. - * - * @return self - */ - public function configureRedirects($strict = false, $maxRedirects = 5); -} diff --git a/lib/aws-sdk/Guzzle/Http/Message/Header.php b/lib/aws-sdk/Guzzle/Http/Message/Header.php deleted file mode 100644 index 50597b2..0000000 --- a/lib/aws-sdk/Guzzle/Http/Message/Header.php +++ /dev/null @@ -1,182 +0,0 @@ -header = trim($header); - $this->glue = $glue; - - foreach ((array) $values as $value) { - foreach ((array) $value as $v) { - $this->values[] = $v; - } - } - } - - public function __toString() - { - return implode($this->glue . ' ', $this->toArray()); - } - - public function add($value) - { - $this->values[] = $value; - - return $this; - } - - public function getName() - { - return $this->header; - } - - public function setName($name) - { - $this->header = $name; - - return $this; - } - - public function setGlue($glue) - { - $this->glue = $glue; - - return $this; - } - - public function getGlue() - { - return $this->glue; - } - - /** - * Normalize the header to be a single header with an array of values. - * - * If any values of the header contains the glue string value (e.g. ","), then the value will be exploded into - * multiple entries in the header. - * - * @return self - */ - public function normalize() - { - $values = $this->toArray(); - - for ($i = 0, $total = count($values); $i < $total; $i++) { - if (strpos($values[$i], $this->glue) !== false) { - // Explode on glue when the glue is not inside of a comma - foreach (preg_split('/' . preg_quote($this->glue) . '(?=([^"]*"[^"]*")*[^"]*$)/', $values[$i]) as $v) { - $values[] = trim($v); - } - unset($values[$i]); - } - } - - $this->values = array_values($values); - - return $this; - } - - public function hasValue($searchValue) - { - return in_array($searchValue, $this->toArray()); - } - - public function removeValue($searchValue) - { - $this->values = array_values(array_filter($this->values, function ($value) use ($searchValue) { - return $value != $searchValue; - })); - - return $this; - } - - public function toArray() - { - return $this->values; - } - - public function count() - { - return count($this->toArray()); - } - - public function getIterator() - { - return new \ArrayIterator($this->toArray()); - } - - public function parseParams() - { - $params = $matches = array(); - $callback = array($this, 'trimHeader'); - - // Normalize the header into a single array and iterate over all values - foreach ($this->normalize()->toArray() as $val) { - $part = array(); - foreach (preg_split('/;(?=([^"]*"[^"]*")*[^"]*$)/', $val) as $kvp) { - if (!preg_match_all('/<[^>]+>|[^=]+/', $kvp, $matches)) { - continue; - } - $pieces = array_map($callback, $matches[0]); - $part[$pieces[0]] = isset($pieces[1]) ? $pieces[1] : ''; - } - if ($part) { - $params[] = $part; - } - } - - return $params; - } - - /** - * @deprecated - * @codeCoverageIgnore - */ - public function hasExactHeader($header) - { - Version::warn(__METHOD__ . ' is deprecated'); - return $this->header == $header; - } - - /** - * @deprecated - * @codeCoverageIgnore - */ - public function raw() - { - Version::warn(__METHOD__ . ' is deprecated. Use toArray()'); - return $this->toArray(); - } - - /** - * Trim a header by removing excess spaces and wrapping quotes - * - * @param $str - * - * @return string - */ - protected function trimHeader($str) - { - static $trimmed = "\"' \n\t"; - - return trim($str, $trimmed); - } -} diff --git a/lib/aws-sdk/Guzzle/Http/Message/Header/CacheControl.php b/lib/aws-sdk/Guzzle/Http/Message/Header/CacheControl.php deleted file mode 100644 index 77789e5..0000000 --- a/lib/aws-sdk/Guzzle/Http/Message/Header/CacheControl.php +++ /dev/null @@ -1,121 +0,0 @@ -directives = null; - } - - public function removeValue($searchValue) - { - parent::removeValue($searchValue); - $this->directives = null; - } - - /** - * Check if a specific cache control directive exists - * - * @param string $param Directive to retrieve - * - * @return bool - */ - public function hasDirective($param) - { - $directives = $this->getDirectives(); - - return isset($directives[$param]); - } - - /** - * Get a specific cache control directive - * - * @param string $param Directive to retrieve - * - * @return string|bool|null - */ - public function getDirective($param) - { - $directives = $this->getDirectives(); - - return isset($directives[$param]) ? $directives[$param] : null; - } - - /** - * Add a cache control directive - * - * @param string $param Directive to add - * @param string $value Value to set - * - * @return self - */ - public function addDirective($param, $value) - { - $directives = $this->getDirectives(); - $directives[$param] = $value; - $this->updateFromDirectives($directives); - - return $this; - } - - /** - * Remove a cache control directive by name - * - * @param string $param Directive to remove - * - * @return self - */ - public function removeDirective($param) - { - $directives = $this->getDirectives(); - unset($directives[$param]); - $this->updateFromDirectives($directives); - - return $this; - } - - /** - * Get an associative array of cache control directives - * - * @return array - */ - public function getDirectives() - { - if ($this->directives === null) { - $this->directives = array(); - foreach ($this->parseParams() as $collection) { - foreach ($collection as $key => $value) { - $this->directives[$key] = $value === '' ? true : $value; - } - } - } - - return $this->directives; - } - - /** - * Updates the header value based on the parsed directives - * - * @param array $directives Array of cache control directives - */ - protected function updateFromDirectives(array $directives) - { - $this->directives = $directives; - $this->values = array(); - - foreach ($directives as $key => $value) { - $this->values[] = $value === true ? $key : "{$key}={$value}"; - } - } -} diff --git a/lib/aws-sdk/Guzzle/Http/Message/Header/HeaderCollection.php b/lib/aws-sdk/Guzzle/Http/Message/Header/HeaderCollection.php deleted file mode 100644 index 8c7f6ae..0000000 --- a/lib/aws-sdk/Guzzle/Http/Message/Header/HeaderCollection.php +++ /dev/null @@ -1,108 +0,0 @@ -headers = $headers; - } - - public function __clone() - { - foreach ($this->headers as &$header) { - $header = clone $header; - } - } - - /** - * Clears the header collection - */ - public function clear() - { - $this->headers = array(); - } - - /** - * Set a header on the collection - * - * @param HeaderInterface $header Header to add - * - * @return self - */ - public function add(HeaderInterface $header) - { - $this->headers[strtolower($header->getName())] = $header; - - return $this; - } - - /** - * Get an array of header objects - * - * @return array - */ - public function getAll() - { - return $this->headers; - } - - /** - * Alias of offsetGet - */ - public function get($key) - { - return $this->offsetGet($key); - } - - public function count() - { - return count($this->headers); - } - - public function offsetExists($offset) - { - return isset($this->headers[strtolower($offset)]); - } - - public function offsetGet($offset) - { - $l = strtolower($offset); - - return isset($this->headers[$l]) ? $this->headers[$l] : null; - } - - public function offsetSet($offset, $value) - { - $this->add($value); - } - - public function offsetUnset($offset) - { - unset($this->headers[strtolower($offset)]); - } - - public function getIterator() - { - return new \ArrayIterator($this->headers); - } - - public function toArray() - { - $result = array(); - foreach ($this->headers as $header) { - $result[$header->getName()] = $header->toArray(); - } - - return $result; - } -} diff --git a/lib/aws-sdk/Guzzle/Http/Message/Header/HeaderFactory.php b/lib/aws-sdk/Guzzle/Http/Message/Header/HeaderFactory.php deleted file mode 100644 index 0273be5..0000000 --- a/lib/aws-sdk/Guzzle/Http/Message/Header/HeaderFactory.php +++ /dev/null @@ -1,26 +0,0 @@ - 'Guzzle\Http\Message\Header\CacheControl', - 'link' => 'Guzzle\Http\Message\Header\Link', - ); - - public function createHeader($header, $value = null) - { - $lowercase = strtolower($header); - - return isset($this->mapping[$lowercase]) - ? new $this->mapping[$lowercase]($header, $value) - : new Header($header, $value); - } -} diff --git a/lib/aws-sdk/Guzzle/Http/Message/Header/HeaderFactoryInterface.php b/lib/aws-sdk/Guzzle/Http/Message/Header/HeaderFactoryInterface.php deleted file mode 100644 index 9457cf6..0000000 --- a/lib/aws-sdk/Guzzle/Http/Message/Header/HeaderFactoryInterface.php +++ /dev/null @@ -1,19 +0,0 @@ -", "rel=\"{$rel}\""); - - foreach ($params as $k => $v) { - $values[] = "{$k}=\"{$v}\""; - } - - return $this->add(implode('; ', $values)); - } - - /** - * Check if a specific link exists for a given rel attribute - * - * @param string $rel rel value - * - * @return bool - */ - public function hasLink($rel) - { - return $this->getLink($rel) !== null; - } - - /** - * Get a specific link for a given rel attribute - * - * @param string $rel Rel value - * - * @return array|null - */ - public function getLink($rel) - { - foreach ($this->getLinks() as $link) { - if (isset($link['rel']) && $link['rel'] == $rel) { - return $link; - } - } - - return null; - } - - /** - * Get an associative array of links - * - * For example: - * Link: ; rel=front; type="image/jpeg", ; rel=back; type="image/jpeg" - * - * - * var_export($response->getLinks()); - * array( - * array( - * 'url' => 'http:/.../front.jpeg', - * 'rel' => 'back', - * 'type' => 'image/jpeg', - * ) - * ) - * - * - * @return array - */ - public function getLinks() - { - $links = $this->parseParams(); - - foreach ($links as &$link) { - $key = key($link); - unset($link[$key]); - $link['url'] = trim($key, '<> '); - } - - return $links; - } -} diff --git a/lib/aws-sdk/Guzzle/Http/Message/MessageInterface.php b/lib/aws-sdk/Guzzle/Http/Message/MessageInterface.php deleted file mode 100644 index 62bcd43..0000000 --- a/lib/aws-sdk/Guzzle/Http/Message/MessageInterface.php +++ /dev/null @@ -1,102 +0,0 @@ -fieldName = $fieldName; - $this->setFilename($filename); - $this->postname = $postname ? $postname : basename($filename); - $this->contentType = $contentType ?: $this->guessContentType(); - } - - public function setFieldName($name) - { - $this->fieldName = $name; - - return $this; - } - - public function getFieldName() - { - return $this->fieldName; - } - - public function setFilename($filename) - { - // Remove leading @ symbol - if (strpos($filename, '@') === 0) { - $filename = substr($filename, 1); - } - - if (!is_readable($filename)) { - throw new InvalidArgumentException("Unable to open {$filename} for reading"); - } - - $this->filename = $filename; - - return $this; - } - - public function setPostname($postname) - { - $this->postname = $postname; - - return $this; - } - - public function getFilename() - { - return $this->filename; - } - - public function getPostname() - { - return $this->postname; - } - - public function setContentType($type) - { - $this->contentType = $type; - - return $this; - } - - public function getContentType() - { - return $this->contentType; - } - - public function getCurlValue() - { - // PHP 5.5 introduced a CurlFile object that deprecates the old @filename syntax - // See: https://wiki.php.net/rfc/curl-file-upload - if (function_exists('curl_file_create')) { - return curl_file_create($this->filename, $this->contentType, $this->postname); - } - - // Use the old style if using an older version of PHP - $value = "@{$this->filename};filename=" . $this->postname; - if ($this->contentType) { - $value .= ';type=' . $this->contentType; - } - - return $value; - } - - /** - * @deprecated - * @codeCoverageIgnore - */ - public function getCurlString() - { - Version::warn(__METHOD__ . ' is deprecated. Use getCurlValue()'); - return $this->getCurlValue(); - } - - /** - * Determine the Content-Type of the file - */ - protected function guessContentType() - { - return Mimetypes::getInstance()->fromFilename($this->filename) ?: 'application/octet-stream'; - } -} diff --git a/lib/aws-sdk/Guzzle/Http/Message/PostFileInterface.php b/lib/aws-sdk/Guzzle/Http/Message/PostFileInterface.php deleted file mode 100644 index 7f0779d..0000000 --- a/lib/aws-sdk/Guzzle/Http/Message/PostFileInterface.php +++ /dev/null @@ -1,83 +0,0 @@ -method = strtoupper($method); - $this->curlOptions = new Collection(); - $this->setUrl($url); - - if ($headers) { - // Special handling for multi-value headers - foreach ($headers as $key => $value) { - // Deal with collisions with Host and Authorization - if ($key == 'host' || $key == 'Host') { - $this->setHeader($key, $value); - } elseif ($value instanceof HeaderInterface) { - $this->addHeader($key, $value); - } else { - foreach ((array) $value as $v) { - $this->addHeader($key, $v); - } - } - } - } - - $this->setState(self::STATE_NEW); - } - - public function __clone() - { - if ($this->eventDispatcher) { - $this->eventDispatcher = clone $this->eventDispatcher; - } - $this->curlOptions = clone $this->curlOptions; - $this->params = clone $this->params; - $this->url = clone $this->url; - $this->response = $this->responseBody = null; - $this->headers = clone $this->headers; - - $this->setState(RequestInterface::STATE_NEW); - $this->dispatch('request.clone', array('request' => $this)); - } - - /** - * Get the HTTP request as a string - * - * @return string - */ - public function __toString() - { - return $this->getRawHeaders() . "\r\n\r\n"; - } - - /** - * Default method that will throw exceptions if an unsuccessful response is received. - * - * @param Event $event Received - * @throws BadResponseException if the response is not successful - */ - public static function onRequestError(Event $event) - { - $e = BadResponseException::factory($event['request'], $event['response']); - $event['request']->setState(self::STATE_ERROR, array('exception' => $e) + $event->toArray()); - throw $e; - } - - public function setClient(ClientInterface $client) - { - $this->client = $client; - - return $this; - } - - public function getClient() - { - return $this->client; - } - - public function getRawHeaders() - { - $protocolVersion = $this->protocolVersion ?: '1.1'; - - return trim($this->method . ' ' . $this->getResource()) . ' ' - . strtoupper(str_replace('https', 'http', $this->url->getScheme())) - . '/' . $protocolVersion . "\r\n" . implode("\r\n", $this->getHeaderLines()); - } - - public function setUrl($url) - { - if ($url instanceof Url) { - $this->url = $url; - } else { - $this->url = Url::factory($url); - } - - // Update the port and host header - $this->setPort($this->url->getPort()); - - if ($this->url->getUsername() || $this->url->getPassword()) { - $this->setAuth($this->url->getUsername(), $this->url->getPassword()); - // Remove the auth info from the URL - $this->url->setUsername(null); - $this->url->setPassword(null); - } - - return $this; - } - - public function send() - { - if (!$this->client) { - throw new RuntimeException('A client must be set on the request'); - } - - return $this->client->send($this); - } - - public function getResponse() - { - return $this->response; - } - - public function getQuery($asString = false) - { - return $asString - ? (string) $this->url->getQuery() - : $this->url->getQuery(); - } - - public function getMethod() - { - return $this->method; - } - - public function getScheme() - { - return $this->url->getScheme(); - } - - public function setScheme($scheme) - { - $this->url->setScheme($scheme); - - return $this; - } - - public function getHost() - { - return $this->url->getHost(); - } - - public function setHost($host) - { - $this->url->setHost($host); - $this->setPort($this->url->getPort()); - - return $this; - } - - public function getProtocolVersion() - { - return $this->protocolVersion; - } - - public function setProtocolVersion($protocol) - { - $this->protocolVersion = $protocol; - - return $this; - } - - public function getPath() - { - return '/' . ltrim($this->url->getPath(), '/'); - } - - public function setPath($path) - { - $this->url->setPath($path); - - return $this; - } - - public function getPort() - { - return $this->url->getPort(); - } - - public function setPort($port) - { - $this->url->setPort($port); - - // Include the port in the Host header if it is not the default port for the scheme of the URL - $scheme = $this->url->getScheme(); - if ($port && (($scheme == 'http' && $port != 80) || ($scheme == 'https' && $port != 443))) { - $this->headers['host'] = $this->headerFactory->createHeader('Host', $this->url->getHost() . ':' . $port); - } else { - $this->headers['host'] = $this->headerFactory->createHeader('Host', $this->url->getHost()); - } - - return $this; - } - - public function getUsername() - { - return $this->username; - } - - public function getPassword() - { - return $this->password; - } - - public function setAuth($user, $password = '', $scheme = CURLAUTH_BASIC) - { - static $authMap = array( - 'basic' => CURLAUTH_BASIC, - 'digest' => CURLAUTH_DIGEST, - 'ntlm' => CURLAUTH_NTLM, - 'any' => CURLAUTH_ANY - ); - - // If we got false or null, disable authentication - if (!$user) { - $this->password = $this->username = null; - $this->removeHeader('Authorization'); - $this->getCurlOptions()->remove(CURLOPT_HTTPAUTH); - return $this; - } - - if (!is_numeric($scheme)) { - $scheme = strtolower($scheme); - if (!isset($authMap[$scheme])) { - throw new InvalidArgumentException($scheme . ' is not a valid authentication type'); - } - $scheme = $authMap[$scheme]; - } - - $this->username = $user; - $this->password = $password; - - // Bypass CURL when using basic auth to promote connection reuse - if ($scheme == CURLAUTH_BASIC) { - $this->getCurlOptions()->remove(CURLOPT_HTTPAUTH); - $this->setHeader('Authorization', 'Basic ' . base64_encode($this->username . ':' . $this->password)); - } else { - $this->getCurlOptions() - ->set(CURLOPT_HTTPAUTH, $scheme) - ->set(CURLOPT_USERPWD, $this->username . ':' . $this->password); - } - - return $this; - } - - public function getResource() - { - $resource = $this->getPath(); - if ($query = (string) $this->url->getQuery()) { - $resource .= '?' . $query; - } - - return $resource; - } - - public function getUrl($asObject = false) - { - return $asObject ? clone $this->url : (string) $this->url; - } - - public function getState() - { - return $this->state; - } - - public function setState($state, array $context = array()) - { - $oldState = $this->state; - $this->state = $state; - - switch ($state) { - case self::STATE_NEW: - $this->response = null; - break; - case self::STATE_TRANSFER: - if ($oldState !== $state) { - // Fix Content-Length and Transfer-Encoding collisions - if ($this->hasHeader('Transfer-Encoding') && $this->hasHeader('Content-Length')) { - $this->removeHeader('Transfer-Encoding'); - } - $this->dispatch('request.before_send', array('request' => $this)); - } - break; - case self::STATE_COMPLETE: - if ($oldState !== $state) { - $this->processResponse($context); - $this->responseBody = null; - } - break; - case self::STATE_ERROR: - if (isset($context['exception'])) { - $this->dispatch('request.exception', array( - 'request' => $this, - 'response' => isset($context['response']) ? $context['response'] : $this->response, - 'exception' => isset($context['exception']) ? $context['exception'] : null - )); - } - } - - return $this->state; - } - - public function getCurlOptions() - { - return $this->curlOptions; - } - - public function startResponse(Response $response) - { - $this->state = self::STATE_TRANSFER; - $response->setEffectiveUrl((string) $this->getUrl()); - $this->response = $response; - - return $this; - } - - public function setResponse(Response $response, $queued = false) - { - $response->setEffectiveUrl((string) $this->url); - - if ($queued) { - $ed = $this->getEventDispatcher(); - $ed->addListener('request.before_send', $f = function ($e) use ($response, &$f, $ed) { - $e['request']->setResponse($response); - $ed->removeListener('request.before_send', $f); - }, -9999); - } else { - $this->response = $response; - // If a specific response body is specified, then use it instead of the response's body - if ($this->responseBody && !$this->responseBody->getCustomData('default') && !$response->isRedirect()) { - $this->getResponseBody()->write((string) $this->response->getBody()); - } else { - $this->responseBody = $this->response->getBody(); - } - $this->setState(self::STATE_COMPLETE); - } - - return $this; - } - - public function setResponseBody($body) - { - // Attempt to open a file for writing if a string was passed - if (is_string($body)) { - // @codeCoverageIgnoreStart - if (!($body = fopen($body, 'w+'))) { - throw new InvalidArgumentException('Could not open ' . $body . ' for writing'); - } - // @codeCoverageIgnoreEnd - } - - $this->responseBody = EntityBody::factory($body); - - return $this; - } - - public function getResponseBody() - { - if ($this->responseBody === null) { - $this->responseBody = EntityBody::factory()->setCustomData('default', true); - } - - return $this->responseBody; - } - - /** - * Determine if the response body is repeatable (readable + seekable) - * - * @return bool - * @deprecated Use getResponseBody()->isSeekable() - * @codeCoverageIgnore - */ - public function isResponseBodyRepeatable() - { - Version::warn(__METHOD__ . ' is deprecated. Use $request->getResponseBody()->isRepeatable()'); - return !$this->responseBody ? true : $this->responseBody->isRepeatable(); - } - - public function getCookies() - { - if ($cookie = $this->getHeader('Cookie')) { - $data = ParserRegistry::getInstance()->getParser('cookie')->parseCookie($cookie); - return $data['cookies']; - } - - return array(); - } - - public function getCookie($name) - { - $cookies = $this->getCookies(); - - return isset($cookies[$name]) ? $cookies[$name] : null; - } - - public function addCookie($name, $value) - { - if (!$this->hasHeader('Cookie')) { - $this->setHeader('Cookie', "{$name}={$value}"); - } else { - $this->getHeader('Cookie')->add("{$name}={$value}"); - } - - // Always use semicolons to separate multiple cookie headers - $this->getHeader('Cookie')->setGlue(';'); - - return $this; - } - - public function removeCookie($name) - { - if ($cookie = $this->getHeader('Cookie')) { - foreach ($cookie as $cookieValue) { - if (strpos($cookieValue, $name . '=') === 0) { - $cookie->removeValue($cookieValue); - } - } - } - - return $this; - } - - public function setEventDispatcher(EventDispatcherInterface $eventDispatcher) - { - $this->eventDispatcher = $eventDispatcher; - $this->eventDispatcher->addListener('request.error', array(__CLASS__, 'onRequestError'), -255); - - return $this; - } - - public function getEventDispatcher() - { - if (!$this->eventDispatcher) { - $this->setEventDispatcher(new EventDispatcher()); - } - - return $this->eventDispatcher; - } - - public function dispatch($eventName, array $context = array()) - { - $context['request'] = $this; - - return $this->getEventDispatcher()->dispatch($eventName, new Event($context)); - } - - public function addSubscriber(EventSubscriberInterface $subscriber) - { - $this->getEventDispatcher()->addSubscriber($subscriber); - - return $this; - } - - /** - * Get an array containing the request and response for event notifications - * - * @return array - */ - protected function getEventArray() - { - return array( - 'request' => $this, - 'response' => $this->response - ); - } - - /** - * Process a received response - * - * @param array $context Contextual information - * @throws RequestException|BadResponseException on unsuccessful responses - */ - protected function processResponse(array $context = array()) - { - if (!$this->response) { - // If no response, then processResponse shouldn't have been called - $e = new RequestException('Error completing request'); - $e->setRequest($this); - throw $e; - } - - $this->state = self::STATE_COMPLETE; - - // A request was sent, but we don't know if we'll send more or if the final response will be successful - $this->dispatch('request.sent', $this->getEventArray() + $context); - - // Some response processors will remove the response or reset the state (example: ExponentialBackoffPlugin) - if ($this->state == RequestInterface::STATE_COMPLETE) { - - // The request completed, so the HTTP transaction is complete - $this->dispatch('request.complete', $this->getEventArray()); - - // If the response is bad, allow listeners to modify it or throw exceptions. You can change the response by - // modifying the Event object in your listeners or calling setResponse() on the request - if ($this->response->isError()) { - $event = new Event($this->getEventArray()); - $this->getEventDispatcher()->dispatch('request.error', $event); - // Allow events of request.error to quietly change the response - if ($event['response'] !== $this->response) { - $this->response = $event['response']; - } - } - - // If a successful response was received, dispatch an event - if ($this->response->isSuccessful()) { - $this->dispatch('request.success', $this->getEventArray()); - } - } - } - - /** - * @deprecated Use Guzzle\Plugin\Cache\DefaultCanCacheStrategy - * @codeCoverageIgnore - */ - public function canCache() - { - Version::warn(__METHOD__ . ' is deprecated. Use Guzzle\Plugin\Cache\DefaultCanCacheStrategy.'); - if (class_exists('Guzzle\Plugin\Cache\DefaultCanCacheStrategy')) { - $canCache = new \Guzzle\Plugin\Cache\DefaultCanCacheStrategy(); - return $canCache->canCacheRequest($this); - } else { - return false; - } - } - - /** - * @deprecated Use the history plugin (not emitting a warning as this is built-into the RedirectPlugin for now) - * @codeCoverageIgnore - */ - public function setIsRedirect($isRedirect) - { - $this->isRedirect = $isRedirect; - - return $this; - } - - /** - * @deprecated Use the history plugin - * @codeCoverageIgnore - */ - public function isRedirect() - { - Version::warn(__METHOD__ . ' is deprecated. Use the HistoryPlugin to track this.'); - return $this->isRedirect; - } -} diff --git a/lib/aws-sdk/Guzzle/Http/Message/RequestFactory.php b/lib/aws-sdk/Guzzle/Http/Message/RequestFactory.php deleted file mode 100644 index ba00a76..0000000 --- a/lib/aws-sdk/Guzzle/Http/Message/RequestFactory.php +++ /dev/null @@ -1,359 +0,0 @@ -methods = array_flip(get_class_methods(__CLASS__)); - } - - public function fromMessage($message) - { - $parsed = ParserRegistry::getInstance()->getParser('message')->parseRequest($message); - - if (!$parsed) { - return false; - } - - $request = $this->fromParts($parsed['method'], $parsed['request_url'], - $parsed['headers'], $parsed['body'], $parsed['protocol'], - $parsed['version']); - - // EntityEnclosingRequest adds an "Expect: 100-Continue" header when using a raw request body for PUT or POST - // requests. This factory method should accurately reflect the message, so here we are removing the Expect - // header if one was not supplied in the message. - if (!isset($parsed['headers']['Expect']) && !isset($parsed['headers']['expect'])) { - $request->removeHeader('Expect'); - } - - return $request; - } - - public function fromParts( - $method, - array $urlParts, - $headers = null, - $body = null, - $protocol = 'HTTP', - $protocolVersion = '1.1' - ) { - return $this->create($method, Url::buildUrl($urlParts), $headers, $body) - ->setProtocolVersion($protocolVersion); - } - - public function create($method, $url, $headers = null, $body = null, array $options = array()) - { - $method = strtoupper($method); - - if ($method == 'GET' || $method == 'HEAD' || $method == 'TRACE') { - // Handle non-entity-enclosing request methods - $request = new $this->requestClass($method, $url, $headers); - if ($body) { - // The body is where the response body will be stored - $type = gettype($body); - if ($type == 'string' || $type == 'resource' || $type == 'object') { - $request->setResponseBody($body); - } - } - } else { - // Create an entity enclosing request by default - $request = new $this->entityEnclosingRequestClass($method, $url, $headers); - if ($body || $body === '0') { - // Add POST fields and files to an entity enclosing request if an array is used - if (is_array($body) || $body instanceof Collection) { - // Normalize PHP style cURL uploads with a leading '@' symbol - foreach ($body as $key => $value) { - if (is_string($value) && substr($value, 0, 1) == '@') { - $request->addPostFile($key, $value); - unset($body[$key]); - } - } - // Add the fields if they are still present and not all files - $request->addPostFields($body); - } else { - // Add a raw entity body body to the request - $request->setBody($body, (string) $request->getHeader('Content-Type')); - if ((string) $request->getHeader('Transfer-Encoding') == 'chunked') { - $request->removeHeader('Content-Length'); - } - } - } - } - - if ($options) { - $this->applyOptions($request, $options); - } - - return $request; - } - - /** - * Clone a request while changing the method. Emulates the behavior of - * {@see Guzzle\Http\Message\Request::clone}, but can change the HTTP method. - * - * @param RequestInterface $request Request to clone - * @param string $method Method to set - * - * @return RequestInterface - */ - public function cloneRequestWithMethod(RequestInterface $request, $method) - { - // Create the request with the same client if possible - if ($request->getClient()) { - $cloned = $request->getClient()->createRequest($method, $request->getUrl(), $request->getHeaders()); - } else { - $cloned = $this->create($method, $request->getUrl(), $request->getHeaders()); - } - - $cloned->getCurlOptions()->replace($request->getCurlOptions()->toArray()); - $cloned->setEventDispatcher(clone $request->getEventDispatcher()); - // Ensure that that the Content-Length header is not copied if changing to GET or HEAD - if (!($cloned instanceof EntityEnclosingRequestInterface)) { - $cloned->removeHeader('Content-Length'); - } elseif ($request instanceof EntityEnclosingRequestInterface) { - $cloned->setBody($request->getBody()); - } - $cloned->getParams()->replace($request->getParams()->toArray()); - $cloned->dispatch('request.clone', array('request' => $cloned)); - - return $cloned; - } - - public function applyOptions(RequestInterface $request, array $options = array(), $flags = self::OPTIONS_NONE) - { - // Iterate over each key value pair and attempt to apply a config using function visitors - foreach ($options as $key => $value) { - $method = "visit_{$key}"; - if (isset($this->methods[$method])) { - $this->{$method}($request, $value, $flags); - } - } - } - - protected function visit_headers(RequestInterface $request, $value, $flags) - { - if (!is_array($value)) { - throw new InvalidArgumentException('headers value must be an array'); - } - - if ($flags & self::OPTIONS_AS_DEFAULTS) { - // Merge headers in but do not overwrite existing values - foreach ($value as $key => $header) { - if (!$request->hasHeader($key)) { - $request->setHeader($key, $header); - } - } - } else { - $request->addHeaders($value); - } - } - - protected function visit_body(RequestInterface $request, $value, $flags) - { - if ($request instanceof EntityEnclosingRequestInterface) { - $request->setBody($value); - } else { - throw new InvalidArgumentException('Attempting to set a body on a non-entity-enclosing request'); - } - } - - protected function visit_allow_redirects(RequestInterface $request, $value, $flags) - { - if ($value === false) { - $request->getParams()->set(RedirectPlugin::DISABLE, true); - } - } - - protected function visit_auth(RequestInterface $request, $value, $flags) - { - if (!is_array($value)) { - throw new InvalidArgumentException('auth value must be an array'); - } - - $request->setAuth($value[0], isset($value[1]) ? $value[1] : null, isset($value[2]) ? $value[2] : 'basic'); - } - - protected function visit_query(RequestInterface $request, $value, $flags) - { - if (!is_array($value)) { - throw new InvalidArgumentException('query value must be an array'); - } - - if ($flags & self::OPTIONS_AS_DEFAULTS) { - // Merge query string values in but do not overwrite existing values - $query = $request->getQuery(); - $query->overwriteWith(array_diff_key($value, $query->toArray())); - } else { - $request->getQuery()->overwriteWith($value); - } - } - - protected function visit_cookies(RequestInterface $request, $value, $flags) - { - if (!is_array($value)) { - throw new InvalidArgumentException('cookies value must be an array'); - } - - foreach ($value as $name => $v) { - $request->addCookie($name, $v); - } - } - - protected function visit_events(RequestInterface $request, $value, $flags) - { - if (!is_array($value)) { - throw new InvalidArgumentException('events value must be an array'); - } - - foreach ($value as $name => $method) { - if (is_array($method)) { - $request->getEventDispatcher()->addListener($name, $method[0], $method[1]); - } else { - $request->getEventDispatcher()->addListener($name, $method); - } - } - } - - protected function visit_plugins(RequestInterface $request, $value, $flags) - { - if (!is_array($value)) { - throw new InvalidArgumentException('plugins value must be an array'); - } - - foreach ($value as $plugin) { - $request->addSubscriber($plugin); - } - } - - protected function visit_exceptions(RequestInterface $request, $value, $flags) - { - if ($value === false || $value === 0) { - $dispatcher = $request->getEventDispatcher(); - foreach ($dispatcher->getListeners('request.error') as $listener) { - if (is_array($listener) && $listener[0] == 'Guzzle\Http\Message\Request' && $listener[1] = 'onRequestError') { - $dispatcher->removeListener('request.error', $listener); - break; - } - } - } - } - - protected function visit_save_to(RequestInterface $request, $value, $flags) - { - $request->setResponseBody($value); - } - - protected function visit_params(RequestInterface $request, $value, $flags) - { - if (!is_array($value)) { - throw new InvalidArgumentException('params value must be an array'); - } - - $request->getParams()->overwriteWith($value); - } - - protected function visit_timeout(RequestInterface $request, $value, $flags) - { - if (defined('CURLOPT_TIMEOUT_MS')) { - $request->getCurlOptions()->set(CURLOPT_TIMEOUT_MS, $value * 1000); - } else { - $request->getCurlOptions()->set(CURLOPT_TIMEOUT, $value); - } - } - - protected function visit_connect_timeout(RequestInterface $request, $value, $flags) - { - if (defined('CURLOPT_CONNECTTIMEOUT_MS')) { - $request->getCurlOptions()->set(CURLOPT_CONNECTTIMEOUT_MS, $value * 1000); - } else { - $request->getCurlOptions()->set(CURLOPT_CONNECTTIMEOUT, $value); - } - } - - protected function visit_debug(RequestInterface $request, $value, $flags) - { - if ($value) { - $request->getCurlOptions()->set(CURLOPT_VERBOSE, true); - } - } - - protected function visit_verify(RequestInterface $request, $value, $flags) - { - $curl = $request->getCurlOptions(); - if ($value === true || is_string($value)) { - $curl[CURLOPT_SSL_VERIFYHOST] = 2; - $curl[CURLOPT_SSL_VERIFYPEER] = true; - if ($value !== true) { - $curl[CURLOPT_CAINFO] = $value; - } - } elseif ($value === false) { - unset($curl[CURLOPT_CAINFO]); - $curl[CURLOPT_SSL_VERIFYHOST] = 0; - $curl[CURLOPT_SSL_VERIFYPEER] = false; - } - } - - protected function visit_proxy(RequestInterface $request, $value, $flags) - { - $request->getCurlOptions()->set(CURLOPT_PROXY, $value, $flags); - } - - protected function visit_cert(RequestInterface $request, $value, $flags) - { - if (is_array($value)) { - $request->getCurlOptions()->set(CURLOPT_SSLCERT, $value[0]); - $request->getCurlOptions()->set(CURLOPT_SSLCERTPASSWD, $value[1]); - } else { - $request->getCurlOptions()->set(CURLOPT_SSLCERT, $value); - } - } - - protected function visit_ssl_key(RequestInterface $request, $value, $flags) - { - if (is_array($value)) { - $request->getCurlOptions()->set(CURLOPT_SSLKEY, $value[0]); - $request->getCurlOptions()->set(CURLOPT_SSLKEYPASSWD, $value[1]); - } else { - $request->getCurlOptions()->set(CURLOPT_SSLKEY, $value); - } - } -} diff --git a/lib/aws-sdk/Guzzle/Http/Message/RequestFactoryInterface.php b/lib/aws-sdk/Guzzle/Http/Message/RequestFactoryInterface.php deleted file mode 100644 index 6088f10..0000000 --- a/lib/aws-sdk/Guzzle/Http/Message/RequestFactoryInterface.php +++ /dev/null @@ -1,105 +0,0 @@ - 'Continue', - 101 => 'Switching Protocols', - 102 => 'Processing', - 200 => 'OK', - 201 => 'Created', - 202 => 'Accepted', - 203 => 'Non-Authoritative Information', - 204 => 'No Content', - 205 => 'Reset Content', - 206 => 'Partial Content', - 207 => 'Multi-Status', - 208 => 'Already Reported', - 226 => 'IM Used', - 300 => 'Multiple Choices', - 301 => 'Moved Permanently', - 302 => 'Found', - 303 => 'See Other', - 304 => 'Not Modified', - 305 => 'Use Proxy', - 307 => 'Temporary Redirect', - 308 => 'Permanent Redirect', - 400 => 'Bad Request', - 401 => 'Unauthorized', - 402 => 'Payment Required', - 403 => 'Forbidden', - 404 => 'Not Found', - 405 => 'Method Not Allowed', - 406 => 'Not Acceptable', - 407 => 'Proxy Authentication Required', - 408 => 'Request Timeout', - 409 => 'Conflict', - 410 => 'Gone', - 411 => 'Length Required', - 412 => 'Precondition Failed', - 413 => 'Request Entity Too Large', - 414 => 'Request-URI Too Long', - 415 => 'Unsupported Media Type', - 416 => 'Requested Range Not Satisfiable', - 417 => 'Expectation Failed', - 422 => 'Unprocessable Entity', - 423 => 'Locked', - 424 => 'Failed Dependency', - 425 => 'Reserved for WebDAV advanced collections expired proposal', - 426 => 'Upgrade required', - 428 => 'Precondition Required', - 429 => 'Too Many Requests', - 431 => 'Request Header Fields Too Large', - 500 => 'Internal Server Error', - 501 => 'Not Implemented', - 502 => 'Bad Gateway', - 503 => 'Service Unavailable', - 504 => 'Gateway Timeout', - 505 => 'HTTP Version Not Supported', - 506 => 'Variant Also Negotiates (Experimental)', - 507 => 'Insufficient Storage', - 508 => 'Loop Detected', - 510 => 'Not Extended', - 511 => 'Network Authentication Required', - ); - - /** @var EntityBodyInterface The response body */ - protected $body; - - /** @var string The reason phrase of the response (human readable code) */ - protected $reasonPhrase; - - /** @var string The status code of the response */ - protected $statusCode; - - /** @var array Information about the request */ - protected $info = array(); - - /** @var string The effective URL that returned this response */ - protected $effectiveUrl; - - /** @var array Cacheable response codes (see RFC 2616:13.4) */ - protected static $cacheResponseCodes = array(200, 203, 206, 300, 301, 410); - - /** - * Create a new Response based on a raw response message - * - * @param string $message Response message - * - * @return self|bool Returns false on error - */ - public static function fromMessage($message) - { - $data = ParserRegistry::getInstance()->getParser('message')->parseResponse($message); - if (!$data) { - return false; - } - - $response = new static($data['code'], $data['headers'], $data['body']); - $response->setProtocol($data['protocol'], $data['version']) - ->setStatus($data['code'], $data['reason_phrase']); - - // Set the appropriate Content-Length if the one set is inaccurate (e.g. setting to X) - $contentLength = (string) $response->getHeader('Content-Length'); - $actualLength = strlen($data['body']); - if (strlen($data['body']) > 0 && $contentLength != $actualLength) { - $response->setHeader('Content-Length', $actualLength); - } - - return $response; - } - - /** - * Construct the response - * - * @param string $statusCode The response status code (e.g. 200, 404, etc) - * @param ToArrayInterface|array $headers The response headers - * @param string|resource|EntityBodyInterface $body The body of the response - * - * @throws BadResponseException if an invalid response code is given - */ - public function __construct($statusCode, $headers = null, $body = null) - { - parent::__construct(); - $this->setStatus($statusCode); - $this->body = EntityBody::factory($body !== null ? $body : ''); - - if ($headers) { - if (is_array($headers)) { - $this->setHeaders($headers); - } elseif ($headers instanceof ToArrayInterface) { - $this->setHeaders($headers->toArray()); - } else { - throw new BadResponseException('Invalid headers argument received'); - } - } - } - - /** - * @return string - */ - public function __toString() - { - return $this->getMessage(); - } - - public function serialize() - { - return json_encode(array( - 'status' => $this->statusCode, - 'body' => (string) $this->body, - 'headers' => $this->headers->toArray() - )); - } - - public function unserialize($serialize) - { - $data = json_decode($serialize, true); - $this->__construct($data['status'], $data['headers'], $data['body']); - } - - /** - * Get the response entity body - * - * @param bool $asString Set to TRUE to return a string of the body rather than a full body object - * - * @return EntityBodyInterface|string - */ - public function getBody($asString = false) - { - return $asString ? (string) $this->body : $this->body; - } - - /** - * Set the response entity body - * - * @param EntityBodyInterface|string $body Body to set - * - * @return self - */ - public function setBody($body) - { - $this->body = EntityBody::factory($body); - - return $this; - } - - /** - * Set the protocol and protocol version of the response - * - * @param string $protocol Response protocol - * @param string $version Protocol version - * - * @return self - */ - public function setProtocol($protocol, $version) - { - $this->protocol = $protocol; - $this->protocolVersion = $version; - - return $this; - } - - /** - * Get the protocol used for the response (e.g. HTTP) - * - * @return string - */ - public function getProtocol() - { - return $this->protocol; - } - - /** - * Get the HTTP protocol version - * - * @return string - */ - public function getProtocolVersion() - { - return $this->protocolVersion; - } - - /** - * Get a cURL transfer information - * - * @param string $key A single statistic to check - * - * @return array|string|null Returns all stats if no key is set, a single stat if a key is set, or null if a key - * is set and not found - * @link http://www.php.net/manual/en/function.curl-getinfo.php - */ - public function getInfo($key = null) - { - if ($key === null) { - return $this->info; - } elseif (array_key_exists($key, $this->info)) { - return $this->info[$key]; - } else { - return null; - } - } - - /** - * Set the transfer information - * - * @param array $info Array of cURL transfer stats - * - * @return self - */ - public function setInfo(array $info) - { - $this->info = $info; - - return $this; - } - - /** - * Set the response status - * - * @param int $statusCode Response status code to set - * @param string $reasonPhrase Response reason phrase - * - * @return self - * @throws BadResponseException when an invalid response code is received - */ - public function setStatus($statusCode, $reasonPhrase = '') - { - $this->statusCode = (int) $statusCode; - - if (!$reasonPhrase && isset(self::$statusTexts[$this->statusCode])) { - $this->reasonPhrase = self::$statusTexts[$this->statusCode]; - } else { - $this->reasonPhrase = $reasonPhrase; - } - - return $this; - } - - /** - * Get the response status code - * - * @return integer - */ - public function getStatusCode() - { - return $this->statusCode; - } - - /** - * Get the entire response as a string - * - * @return string - */ - public function getMessage() - { - $message = $this->getRawHeaders(); - - // Only include the body in the message if the size is < 2MB - $size = $this->body->getSize(); - if ($size < 2097152) { - $message .= (string) $this->body; - } - - return $message; - } - - /** - * Get the the raw message headers as a string - * - * @return string - */ - public function getRawHeaders() - { - $headers = 'HTTP/1.1 ' . $this->statusCode . ' ' . $this->reasonPhrase . "\r\n"; - $lines = $this->getHeaderLines(); - if (!empty($lines)) { - $headers .= implode("\r\n", $lines) . "\r\n"; - } - - return $headers . "\r\n"; - } - - /** - * Get the response reason phrase- a human readable version of the numeric - * status code - * - * @return string - */ - public function getReasonPhrase() - { - return $this->reasonPhrase; - } - - /** - * Get the Accept-Ranges HTTP header - * - * @return string Returns what partial content range types this server supports. - */ - public function getAcceptRanges() - { - return (string) $this->getHeader('Accept-Ranges'); - } - - /** - * Calculate the age of the response - * - * @return integer - */ - public function calculateAge() - { - $age = $this->getHeader('Age'); - - if ($age === null && $this->getDate()) { - $age = time() - strtotime($this->getDate()); - } - - return $age === null ? null : (int) (string) $age; - } - - /** - * Get the Age HTTP header - * - * @return integer|null Returns the age the object has been in a proxy cache in seconds. - */ - public function getAge() - { - return (string) $this->getHeader('Age'); - } - - /** - * Get the Allow HTTP header - * - * @return string|null Returns valid actions for a specified resource. To be used for a 405 Method not allowed. - */ - public function getAllow() - { - return (string) $this->getHeader('Allow'); - } - - /** - * Check if an HTTP method is allowed by checking the Allow response header - * - * @param string $method Method to check - * - * @return bool - */ - public function isMethodAllowed($method) - { - $allow = $this->getHeader('Allow'); - if ($allow) { - foreach (explode(',', $allow) as $allowable) { - if (!strcasecmp(trim($allowable), $method)) { - return true; - } - } - } - - return false; - } - - /** - * Get the Cache-Control HTTP header - * - * @return string - */ - public function getCacheControl() - { - return (string) $this->getHeader('Cache-Control'); - } - - /** - * Get the Connection HTTP header - * - * @return string - */ - public function getConnection() - { - return (string) $this->getHeader('Connection'); - } - - /** - * Get the Content-Encoding HTTP header - * - * @return string|null - */ - public function getContentEncoding() - { - return (string) $this->getHeader('Content-Encoding'); - } - - /** - * Get the Content-Language HTTP header - * - * @return string|null Returns the language the content is in. - */ - public function getContentLanguage() - { - return (string) $this->getHeader('Content-Language'); - } - - /** - * Get the Content-Length HTTP header - * - * @return integer Returns the length of the response body in bytes - */ - public function getContentLength() - { - return (int) (string) $this->getHeader('Content-Length'); - } - - /** - * Get the Content-Location HTTP header - * - * @return string|null Returns an alternate location for the returned data (e.g /index.htm) - */ - public function getContentLocation() - { - return (string) $this->getHeader('Content-Location'); - } - - /** - * Get the Content-Disposition HTTP header - * - * @return string|null Returns the Content-Disposition header - */ - public function getContentDisposition() - { - return (string) $this->getHeader('Content-Disposition'); - } - - /** - * Get the Content-MD5 HTTP header - * - * @return string|null Returns a Base64-encoded binary MD5 sum of the content of the response. - */ - public function getContentMd5() - { - return (string) $this->getHeader('Content-MD5'); - } - - /** - * Get the Content-Range HTTP header - * - * @return string Returns where in a full body message this partial message belongs (e.g. bytes 21010-47021/47022). - */ - public function getContentRange() - { - return (string) $this->getHeader('Content-Range'); - } - - /** - * Get the Content-Type HTTP header - * - * @return string Returns the mime type of this content. - */ - public function getContentType() - { - return (string) $this->getHeader('Content-Type'); - } - - /** - * Checks if the Content-Type is of a certain type. This is useful if the - * Content-Type header contains charset information and you need to know if - * the Content-Type matches a particular type. - * - * @param string $type Content type to check against - * - * @return bool - */ - public function isContentType($type) - { - return stripos($this->getHeader('Content-Type'), $type) !== false; - } - - /** - * Get the Date HTTP header - * - * @return string|null Returns the date and time that the message was sent. - */ - public function getDate() - { - return (string) $this->getHeader('Date'); - } - - /** - * Get the ETag HTTP header - * - * @return string|null Returns an identifier for a specific version of a resource, often a Message digest. - */ - public function getEtag() - { - return (string) $this->getHeader('ETag'); - } - - /** - * Get the Expires HTTP header - * - * @return string|null Returns the date/time after which the response is considered stale. - */ - public function getExpires() - { - return (string) $this->getHeader('Expires'); - } - - /** - * Get the Last-Modified HTTP header - * - * @return string|null Returns the last modified date for the requested object, in RFC 2822 format - * (e.g. Tue, 15 Nov 1994 12:45:26 GMT) - */ - public function getLastModified() - { - return (string) $this->getHeader('Last-Modified'); - } - - /** - * Get the Location HTTP header - * - * @return string|null Used in redirection, or when a new resource has been created. - */ - public function getLocation() - { - return (string) $this->getHeader('Location'); - } - - /** - * Get the Pragma HTTP header - * - * @return Header|null Returns the implementation-specific headers that may have various effects anywhere along - * the request-response chain. - */ - public function getPragma() - { - return (string) $this->getHeader('Pragma'); - } - - /** - * Get the Proxy-Authenticate HTTP header - * - * @return string|null Authentication to access the proxy (e.g. Basic) - */ - public function getProxyAuthenticate() - { - return (string) $this->getHeader('Proxy-Authenticate'); - } - - /** - * Get the Retry-After HTTP header - * - * @return int|null If an entity is temporarily unavailable, this instructs the client to try again after a - * specified period of time. - */ - public function getRetryAfter() - { - return (string) $this->getHeader('Retry-After'); - } - - /** - * Get the Server HTTP header - * - * @return string|null A name for the server - */ - public function getServer() - { - return (string) $this->getHeader('Server'); - } - - /** - * Get the Set-Cookie HTTP header - * - * @return string|null An HTTP cookie. - */ - public function getSetCookie() - { - return (string) $this->getHeader('Set-Cookie'); - } - - /** - * Get the Trailer HTTP header - * - * @return string|null The Trailer general field value indicates that the given set of header fields is present in - * the trailer of a message encoded with chunked transfer-coding. - */ - public function getTrailer() - { - return (string) $this->getHeader('Trailer'); - } - - /** - * Get the Transfer-Encoding HTTP header - * - * @return string|null The form of encoding used to safely transfer the entity to the user - */ - public function getTransferEncoding() - { - return (string) $this->getHeader('Transfer-Encoding'); - } - - /** - * Get the Vary HTTP header - * - * @return string|null Tells downstream proxies how to match future request headers to decide whether the cached - * response can be used rather than requesting a fresh one from the origin server. - */ - public function getVary() - { - return (string) $this->getHeader('Vary'); - } - - /** - * Get the Via HTTP header - * - * @return string|null Informs the client of proxies through which the response was sent. - */ - public function getVia() - { - return (string) $this->getHeader('Via'); - } - - /** - * Get the Warning HTTP header - * - * @return string|null A general warning about possible problems with the entity body - */ - public function getWarning() - { - return (string) $this->getHeader('Warning'); - } - - /** - * Get the WWW-Authenticate HTTP header - * - * @return string|null Indicates the authentication scheme that should be used to access the requested entity - */ - public function getWwwAuthenticate() - { - return (string) $this->getHeader('WWW-Authenticate'); - } - - /** - * Checks if HTTP Status code is a Client Error (4xx) - * - * @return bool - */ - public function isClientError() - { - return $this->statusCode >= 400 && $this->statusCode < 500; - } - - /** - * Checks if HTTP Status code is Server OR Client Error (4xx or 5xx) - * - * @return boolean - */ - public function isError() - { - return $this->isClientError() || $this->isServerError(); - } - - /** - * Checks if HTTP Status code is Information (1xx) - * - * @return bool - */ - public function isInformational() - { - return $this->statusCode < 200; - } - - /** - * Checks if HTTP Status code is a Redirect (3xx) - * - * @return bool - */ - public function isRedirect() - { - return $this->statusCode >= 300 && $this->statusCode < 400; - } - - /** - * Checks if HTTP Status code is Server Error (5xx) - * - * @return bool - */ - public function isServerError() - { - return $this->statusCode >= 500 && $this->statusCode < 600; - } - - /** - * Checks if HTTP Status code is Successful (2xx | 304) - * - * @return bool - */ - public function isSuccessful() - { - return ($this->statusCode >= 200 && $this->statusCode < 300) || $this->statusCode == 304; - } - - /** - * Check if the response can be cached based on the response headers - * - * @return bool Returns TRUE if the response can be cached or false if not - */ - public function canCache() - { - // Check if the response is cacheable based on the code - if (!in_array((int) $this->getStatusCode(), self::$cacheResponseCodes)) { - return false; - } - - // Make sure a valid body was returned and can be cached - if ((!$this->getBody()->isReadable() || !$this->getBody()->isSeekable()) - && ($this->getContentLength() > 0 || $this->getTransferEncoding() == 'chunked')) { - return false; - } - - // Never cache no-store resources (this is a private cache, so private - // can be cached) - if ($this->getHeader('Cache-Control') && $this->getHeader('Cache-Control')->hasDirective('no-store')) { - return false; - } - - return $this->isFresh() || $this->getFreshness() === null || $this->canValidate(); - } - - /** - * Gets the number of seconds from the current time in which this response is still considered fresh - * - * @return int|null Returns the number of seconds - */ - public function getMaxAge() - { - if ($header = $this->getHeader('Cache-Control')) { - // s-max-age, then max-age, then Expires - if ($age = $header->getDirective('s-maxage')) { - return $age; - } - if ($age = $header->getDirective('max-age')) { - return $age; - } - } - - if ($this->getHeader('Expires')) { - return strtotime($this->getExpires()) - time(); - } - - return null; - } - - /** - * Check if the response is considered fresh. - * - * A response is considered fresh when its age is less than or equal to the freshness lifetime (maximum age) of the - * response. - * - * @return bool|null - */ - public function isFresh() - { - $fresh = $this->getFreshness(); - - return $fresh === null ? null : $fresh >= 0; - } - - /** - * Check if the response can be validated against the origin server using a conditional GET request. - * - * @return bool - */ - public function canValidate() - { - return $this->getEtag() || $this->getLastModified(); - } - - /** - * Get the freshness of the response by returning the difference of the maximum lifetime of the response and the - * age of the response (max-age - age). - * - * Freshness values less than 0 mean that the response is no longer fresh and is ABS(freshness) seconds expired. - * Freshness values of greater than zero is the number of seconds until the response is no longer fresh. A NULL - * result means that no freshness information is available. - * - * @return int - */ - public function getFreshness() - { - $maxAge = $this->getMaxAge(); - $age = $this->calculateAge(); - - return $maxAge && $age ? ($maxAge - $age) : null; - } - - /** - * Parse the JSON response body and return an array - * - * @return array|string|int|bool|float - * @throws RuntimeException if the response body is not in JSON format - */ - public function json() - { - $data = json_decode((string) $this->body, true); - if (JSON_ERROR_NONE !== json_last_error()) { - throw new RuntimeException('Unable to parse response body into JSON: ' . json_last_error()); - } - - return $data === null ? array() : $data; - } - - /** - * Parse the XML response body and return a \SimpleXMLElement. - * - * In order to prevent XXE attacks, this method disables loading external - * entities. If you rely on external entities, then you must parse the - * XML response manually by accessing the response body directly. - * - * @return \SimpleXMLElement - * @throws RuntimeException if the response body is not in XML format - * @link http://websec.io/2012/08/27/Preventing-XXE-in-PHP.html - */ - public function xml() - { - $errorMessage = null; - $internalErrors = libxml_use_internal_errors(true); - $disableEntities = libxml_disable_entity_loader(true); - libxml_clear_errors(); - - try { - $xml = new \SimpleXMLElement((string) $this->body ?: '', LIBXML_NONET); - if ($error = libxml_get_last_error()) { - $errorMessage = $error->message; - } - } catch (\Exception $e) { - $errorMessage = $e->getMessage(); - } - - libxml_clear_errors(); - libxml_use_internal_errors($internalErrors); - libxml_disable_entity_loader($disableEntities); - - if ($errorMessage) { - throw new RuntimeException('Unable to parse response body into XML: ' . $errorMessage); - } - - return $xml; - } - - /** - * Get the redirect count of this response - * - * @return int - */ - public function getRedirectCount() - { - return (int) $this->params->get(RedirectPlugin::REDIRECT_COUNT); - } - - /** - * Set the effective URL that resulted in this response (e.g. the last redirect URL) - * - * @param string $url The effective URL - * - * @return self - */ - public function setEffectiveUrl($url) - { - $this->effectiveUrl = $url; - - return $this; - } - - /** - * Get the effective URL that resulted in this response (e.g. the last redirect URL) - * - * @return string - */ - public function getEffectiveUrl() - { - return $this->effectiveUrl; - } - - /** - * @deprecated - * @codeCoverageIgnore - */ - public function getPreviousResponse() - { - Version::warn(__METHOD__ . ' is deprecated. Use the HistoryPlugin.'); - return null; - } - - /** - * @deprecated - * @codeCoverageIgnore - */ - public function setRequest($request) - { - Version::warn(__METHOD__ . ' is deprecated'); - return $this; - } - - /** - * @deprecated - * @codeCoverageIgnore - */ - public function getRequest() - { - Version::warn(__METHOD__ . ' is deprecated'); - return null; - } -} diff --git a/lib/aws-sdk/Guzzle/Http/Mimetypes.php b/lib/aws-sdk/Guzzle/Http/Mimetypes.php deleted file mode 100644 index d71586a..0000000 --- a/lib/aws-sdk/Guzzle/Http/Mimetypes.php +++ /dev/null @@ -1,962 +0,0 @@ - 'text/vnd.in3d.3dml', - '3g2' => 'video/3gpp2', - '3gp' => 'video/3gpp', - '7z' => 'application/x-7z-compressed', - 'aab' => 'application/x-authorware-bin', - 'aac' => 'audio/x-aac', - 'aam' => 'application/x-authorware-map', - 'aas' => 'application/x-authorware-seg', - 'abw' => 'application/x-abiword', - 'ac' => 'application/pkix-attr-cert', - 'acc' => 'application/vnd.americandynamics.acc', - 'ace' => 'application/x-ace-compressed', - 'acu' => 'application/vnd.acucobol', - 'acutc' => 'application/vnd.acucorp', - 'adp' => 'audio/adpcm', - 'aep' => 'application/vnd.audiograph', - 'afm' => 'application/x-font-type1', - 'afp' => 'application/vnd.ibm.modcap', - 'ahead' => 'application/vnd.ahead.space', - 'ai' => 'application/postscript', - 'aif' => 'audio/x-aiff', - 'aifc' => 'audio/x-aiff', - 'aiff' => 'audio/x-aiff', - 'air' => 'application/vnd.adobe.air-application-installer-package+zip', - 'ait' => 'application/vnd.dvb.ait', - 'ami' => 'application/vnd.amiga.ami', - 'apk' => 'application/vnd.android.package-archive', - 'application' => 'application/x-ms-application', - 'apr' => 'application/vnd.lotus-approach', - 'asa' => 'text/plain', - 'asax' => 'application/octet-stream', - 'asc' => 'application/pgp-signature', - 'ascx' => 'text/plain', - 'asf' => 'video/x-ms-asf', - 'ashx' => 'text/plain', - 'asm' => 'text/x-asm', - 'asmx' => 'text/plain', - 'aso' => 'application/vnd.accpac.simply.aso', - 'asp' => 'text/plain', - 'aspx' => 'text/plain', - 'asx' => 'video/x-ms-asf', - 'atc' => 'application/vnd.acucorp', - 'atom' => 'application/atom+xml', - 'atomcat' => 'application/atomcat+xml', - 'atomsvc' => 'application/atomsvc+xml', - 'atx' => 'application/vnd.antix.game-component', - 'au' => 'audio/basic', - 'avi' => 'video/x-msvideo', - 'aw' => 'application/applixware', - 'axd' => 'text/plain', - 'azf' => 'application/vnd.airzip.filesecure.azf', - 'azs' => 'application/vnd.airzip.filesecure.azs', - 'azw' => 'application/vnd.amazon.ebook', - 'bat' => 'application/x-msdownload', - 'bcpio' => 'application/x-bcpio', - 'bdf' => 'application/x-font-bdf', - 'bdm' => 'application/vnd.syncml.dm+wbxml', - 'bed' => 'application/vnd.realvnc.bed', - 'bh2' => 'application/vnd.fujitsu.oasysprs', - 'bin' => 'application/octet-stream', - 'bmi' => 'application/vnd.bmi', - 'bmp' => 'image/bmp', - 'book' => 'application/vnd.framemaker', - 'box' => 'application/vnd.previewsystems.box', - 'boz' => 'application/x-bzip2', - 'bpk' => 'application/octet-stream', - 'btif' => 'image/prs.btif', - 'bz' => 'application/x-bzip', - 'bz2' => 'application/x-bzip2', - 'c' => 'text/x-c', - 'c11amc' => 'application/vnd.cluetrust.cartomobile-config', - 'c11amz' => 'application/vnd.cluetrust.cartomobile-config-pkg', - 'c4d' => 'application/vnd.clonk.c4group', - 'c4f' => 'application/vnd.clonk.c4group', - 'c4g' => 'application/vnd.clonk.c4group', - 'c4p' => 'application/vnd.clonk.c4group', - 'c4u' => 'application/vnd.clonk.c4group', - 'cab' => 'application/vnd.ms-cab-compressed', - 'car' => 'application/vnd.curl.car', - 'cat' => 'application/vnd.ms-pki.seccat', - 'cc' => 'text/x-c', - 'cct' => 'application/x-director', - 'ccxml' => 'application/ccxml+xml', - 'cdbcmsg' => 'application/vnd.contact.cmsg', - 'cdf' => 'application/x-netcdf', - 'cdkey' => 'application/vnd.mediastation.cdkey', - 'cdmia' => 'application/cdmi-capability', - 'cdmic' => 'application/cdmi-container', - 'cdmid' => 'application/cdmi-domain', - 'cdmio' => 'application/cdmi-object', - 'cdmiq' => 'application/cdmi-queue', - 'cdx' => 'chemical/x-cdx', - 'cdxml' => 'application/vnd.chemdraw+xml', - 'cdy' => 'application/vnd.cinderella', - 'cer' => 'application/pkix-cert', - 'cfc' => 'application/x-coldfusion', - 'cfm' => 'application/x-coldfusion', - 'cgm' => 'image/cgm', - 'chat' => 'application/x-chat', - 'chm' => 'application/vnd.ms-htmlhelp', - 'chrt' => 'application/vnd.kde.kchart', - 'cif' => 'chemical/x-cif', - 'cii' => 'application/vnd.anser-web-certificate-issue-initiation', - 'cil' => 'application/vnd.ms-artgalry', - 'cla' => 'application/vnd.claymore', - 'class' => 'application/java-vm', - 'clkk' => 'application/vnd.crick.clicker.keyboard', - 'clkp' => 'application/vnd.crick.clicker.palette', - 'clkt' => 'application/vnd.crick.clicker.template', - 'clkw' => 'application/vnd.crick.clicker.wordbank', - 'clkx' => 'application/vnd.crick.clicker', - 'clp' => 'application/x-msclip', - 'cmc' => 'application/vnd.cosmocaller', - 'cmdf' => 'chemical/x-cmdf', - 'cml' => 'chemical/x-cml', - 'cmp' => 'application/vnd.yellowriver-custom-menu', - 'cmx' => 'image/x-cmx', - 'cod' => 'application/vnd.rim.cod', - 'com' => 'application/x-msdownload', - 'conf' => 'text/plain', - 'cpio' => 'application/x-cpio', - 'cpp' => 'text/x-c', - 'cpt' => 'application/mac-compactpro', - 'crd' => 'application/x-mscardfile', - 'crl' => 'application/pkix-crl', - 'crt' => 'application/x-x509-ca-cert', - 'cryptonote' => 'application/vnd.rig.cryptonote', - 'cs' => 'text/plain', - 'csh' => 'application/x-csh', - 'csml' => 'chemical/x-csml', - 'csp' => 'application/vnd.commonspace', - 'css' => 'text/css', - 'cst' => 'application/x-director', - 'csv' => 'text/csv', - 'cu' => 'application/cu-seeme', - 'curl' => 'text/vnd.curl', - 'cww' => 'application/prs.cww', - 'cxt' => 'application/x-director', - 'cxx' => 'text/x-c', - 'dae' => 'model/vnd.collada+xml', - 'daf' => 'application/vnd.mobius.daf', - 'dataless' => 'application/vnd.fdsn.seed', - 'davmount' => 'application/davmount+xml', - 'dcr' => 'application/x-director', - 'dcurl' => 'text/vnd.curl.dcurl', - 'dd2' => 'application/vnd.oma.dd2+xml', - 'ddd' => 'application/vnd.fujixerox.ddd', - 'deb' => 'application/x-debian-package', - 'def' => 'text/plain', - 'deploy' => 'application/octet-stream', - 'der' => 'application/x-x509-ca-cert', - 'dfac' => 'application/vnd.dreamfactory', - 'dic' => 'text/x-c', - 'dir' => 'application/x-director', - 'dis' => 'application/vnd.mobius.dis', - 'dist' => 'application/octet-stream', - 'distz' => 'application/octet-stream', - 'djv' => 'image/vnd.djvu', - 'djvu' => 'image/vnd.djvu', - 'dll' => 'application/x-msdownload', - 'dmg' => 'application/octet-stream', - 'dms' => 'application/octet-stream', - 'dna' => 'application/vnd.dna', - 'doc' => 'application/msword', - 'docm' => 'application/vnd.ms-word.document.macroenabled.12', - 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - 'dot' => 'application/msword', - 'dotm' => 'application/vnd.ms-word.template.macroenabled.12', - 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', - 'dp' => 'application/vnd.osgi.dp', - 'dpg' => 'application/vnd.dpgraph', - 'dra' => 'audio/vnd.dra', - 'dsc' => 'text/prs.lines.tag', - 'dssc' => 'application/dssc+der', - 'dtb' => 'application/x-dtbook+xml', - 'dtd' => 'application/xml-dtd', - 'dts' => 'audio/vnd.dts', - 'dtshd' => 'audio/vnd.dts.hd', - 'dump' => 'application/octet-stream', - 'dvi' => 'application/x-dvi', - 'dwf' => 'model/vnd.dwf', - 'dwg' => 'image/vnd.dwg', - 'dxf' => 'image/vnd.dxf', - 'dxp' => 'application/vnd.spotfire.dxp', - 'dxr' => 'application/x-director', - 'ecelp4800' => 'audio/vnd.nuera.ecelp4800', - 'ecelp7470' => 'audio/vnd.nuera.ecelp7470', - 'ecelp9600' => 'audio/vnd.nuera.ecelp9600', - 'ecma' => 'application/ecmascript', - 'edm' => 'application/vnd.novadigm.edm', - 'edx' => 'application/vnd.novadigm.edx', - 'efif' => 'application/vnd.picsel', - 'ei6' => 'application/vnd.pg.osasli', - 'elc' => 'application/octet-stream', - 'eml' => 'message/rfc822', - 'emma' => 'application/emma+xml', - 'eol' => 'audio/vnd.digital-winds', - 'eot' => 'application/vnd.ms-fontobject', - 'eps' => 'application/postscript', - 'epub' => 'application/epub+zip', - 'es3' => 'application/vnd.eszigno3+xml', - 'esf' => 'application/vnd.epson.esf', - 'et3' => 'application/vnd.eszigno3+xml', - 'etx' => 'text/x-setext', - 'exe' => 'application/x-msdownload', - 'exi' => 'application/exi', - 'ext' => 'application/vnd.novadigm.ext', - 'ez' => 'application/andrew-inset', - 'ez2' => 'application/vnd.ezpix-album', - 'ez3' => 'application/vnd.ezpix-package', - 'f' => 'text/x-fortran', - 'f4v' => 'video/x-f4v', - 'f77' => 'text/x-fortran', - 'f90' => 'text/x-fortran', - 'fbs' => 'image/vnd.fastbidsheet', - 'fcs' => 'application/vnd.isac.fcs', - 'fdf' => 'application/vnd.fdf', - 'fe_launch' => 'application/vnd.denovo.fcselayout-link', - 'fg5' => 'application/vnd.fujitsu.oasysgp', - 'fgd' => 'application/x-director', - 'fh' => 'image/x-freehand', - 'fh4' => 'image/x-freehand', - 'fh5' => 'image/x-freehand', - 'fh7' => 'image/x-freehand', - 'fhc' => 'image/x-freehand', - 'fig' => 'application/x-xfig', - 'fli' => 'video/x-fli', - 'flo' => 'application/vnd.micrografx.flo', - 'flv' => 'video/x-flv', - 'flw' => 'application/vnd.kde.kivio', - 'flx' => 'text/vnd.fmi.flexstor', - 'fly' => 'text/vnd.fly', - 'fm' => 'application/vnd.framemaker', - 'fnc' => 'application/vnd.frogans.fnc', - 'for' => 'text/x-fortran', - 'fpx' => 'image/vnd.fpx', - 'frame' => 'application/vnd.framemaker', - 'fsc' => 'application/vnd.fsc.weblaunch', - 'fst' => 'image/vnd.fst', - 'ftc' => 'application/vnd.fluxtime.clip', - 'fti' => 'application/vnd.anser-web-funds-transfer-initiation', - 'fvt' => 'video/vnd.fvt', - 'fxp' => 'application/vnd.adobe.fxp', - 'fxpl' => 'application/vnd.adobe.fxp', - 'fzs' => 'application/vnd.fuzzysheet', - 'g2w' => 'application/vnd.geoplan', - 'g3' => 'image/g3fax', - 'g3w' => 'application/vnd.geospace', - 'gac' => 'application/vnd.groove-account', - 'gdl' => 'model/vnd.gdl', - 'geo' => 'application/vnd.dynageo', - 'gex' => 'application/vnd.geometry-explorer', - 'ggb' => 'application/vnd.geogebra.file', - 'ggt' => 'application/vnd.geogebra.tool', - 'ghf' => 'application/vnd.groove-help', - 'gif' => 'image/gif', - 'gim' => 'application/vnd.groove-identity-message', - 'gmx' => 'application/vnd.gmx', - 'gnumeric' => 'application/x-gnumeric', - 'gph' => 'application/vnd.flographit', - 'gqf' => 'application/vnd.grafeq', - 'gqs' => 'application/vnd.grafeq', - 'gram' => 'application/srgs', - 'gre' => 'application/vnd.geometry-explorer', - 'grv' => 'application/vnd.groove-injector', - 'grxml' => 'application/srgs+xml', - 'gsf' => 'application/x-font-ghostscript', - 'gtar' => 'application/x-gtar', - 'gtm' => 'application/vnd.groove-tool-message', - 'gtw' => 'model/vnd.gtw', - 'gv' => 'text/vnd.graphviz', - 'gxt' => 'application/vnd.geonext', - 'h' => 'text/x-c', - 'h261' => 'video/h261', - 'h263' => 'video/h263', - 'h264' => 'video/h264', - 'hal' => 'application/vnd.hal+xml', - 'hbci' => 'application/vnd.hbci', - 'hdf' => 'application/x-hdf', - 'hh' => 'text/x-c', - 'hlp' => 'application/winhlp', - 'hpgl' => 'application/vnd.hp-hpgl', - 'hpid' => 'application/vnd.hp-hpid', - 'hps' => 'application/vnd.hp-hps', - 'hqx' => 'application/mac-binhex40', - 'hta' => 'application/octet-stream', - 'htc' => 'text/html', - 'htke' => 'application/vnd.kenameaapp', - 'htm' => 'text/html', - 'html' => 'text/html', - 'hvd' => 'application/vnd.yamaha.hv-dic', - 'hvp' => 'application/vnd.yamaha.hv-voice', - 'hvs' => 'application/vnd.yamaha.hv-script', - 'i2g' => 'application/vnd.intergeo', - 'icc' => 'application/vnd.iccprofile', - 'ice' => 'x-conference/x-cooltalk', - 'icm' => 'application/vnd.iccprofile', - 'ico' => 'image/x-icon', - 'ics' => 'text/calendar', - 'ief' => 'image/ief', - 'ifb' => 'text/calendar', - 'ifm' => 'application/vnd.shana.informed.formdata', - 'iges' => 'model/iges', - 'igl' => 'application/vnd.igloader', - 'igm' => 'application/vnd.insors.igm', - 'igs' => 'model/iges', - 'igx' => 'application/vnd.micrografx.igx', - 'iif' => 'application/vnd.shana.informed.interchange', - 'imp' => 'application/vnd.accpac.simply.imp', - 'ims' => 'application/vnd.ms-ims', - 'in' => 'text/plain', - 'ini' => 'text/plain', - 'ipfix' => 'application/ipfix', - 'ipk' => 'application/vnd.shana.informed.package', - 'irm' => 'application/vnd.ibm.rights-management', - 'irp' => 'application/vnd.irepository.package+xml', - 'iso' => 'application/octet-stream', - 'itp' => 'application/vnd.shana.informed.formtemplate', - 'ivp' => 'application/vnd.immervision-ivp', - 'ivu' => 'application/vnd.immervision-ivu', - 'jad' => 'text/vnd.sun.j2me.app-descriptor', - 'jam' => 'application/vnd.jam', - 'jar' => 'application/java-archive', - 'java' => 'text/x-java-source', - 'jisp' => 'application/vnd.jisp', - 'jlt' => 'application/vnd.hp-jlyt', - 'jnlp' => 'application/x-java-jnlp-file', - 'joda' => 'application/vnd.joost.joda-archive', - 'jpe' => 'image/jpeg', - 'jpeg' => 'image/jpeg', - 'jpg' => 'image/jpeg', - 'jpgm' => 'video/jpm', - 'jpgv' => 'video/jpeg', - 'jpm' => 'video/jpm', - 'js' => 'text/javascript', - 'json' => 'application/json', - 'kar' => 'audio/midi', - 'karbon' => 'application/vnd.kde.karbon', - 'kfo' => 'application/vnd.kde.kformula', - 'kia' => 'application/vnd.kidspiration', - 'kml' => 'application/vnd.google-earth.kml+xml', - 'kmz' => 'application/vnd.google-earth.kmz', - 'kne' => 'application/vnd.kinar', - 'knp' => 'application/vnd.kinar', - 'kon' => 'application/vnd.kde.kontour', - 'kpr' => 'application/vnd.kde.kpresenter', - 'kpt' => 'application/vnd.kde.kpresenter', - 'ksp' => 'application/vnd.kde.kspread', - 'ktr' => 'application/vnd.kahootz', - 'ktx' => 'image/ktx', - 'ktz' => 'application/vnd.kahootz', - 'kwd' => 'application/vnd.kde.kword', - 'kwt' => 'application/vnd.kde.kword', - 'lasxml' => 'application/vnd.las.las+xml', - 'latex' => 'application/x-latex', - 'lbd' => 'application/vnd.llamagraphics.life-balance.desktop', - 'lbe' => 'application/vnd.llamagraphics.life-balance.exchange+xml', - 'les' => 'application/vnd.hhe.lesson-player', - 'lha' => 'application/octet-stream', - 'link66' => 'application/vnd.route66.link66+xml', - 'list' => 'text/plain', - 'list3820' => 'application/vnd.ibm.modcap', - 'listafp' => 'application/vnd.ibm.modcap', - 'log' => 'text/plain', - 'lostxml' => 'application/lost+xml', - 'lrf' => 'application/octet-stream', - 'lrm' => 'application/vnd.ms-lrm', - 'ltf' => 'application/vnd.frogans.ltf', - 'lvp' => 'audio/vnd.lucent.voice', - 'lwp' => 'application/vnd.lotus-wordpro', - 'lzh' => 'application/octet-stream', - 'm13' => 'application/x-msmediaview', - 'm14' => 'application/x-msmediaview', - 'm1v' => 'video/mpeg', - 'm21' => 'application/mp21', - 'm2a' => 'audio/mpeg', - 'm2v' => 'video/mpeg', - 'm3a' => 'audio/mpeg', - 'm3u' => 'audio/x-mpegurl', - 'm3u8' => 'application/vnd.apple.mpegurl', - 'm4a' => 'audio/mp4', - 'm4u' => 'video/vnd.mpegurl', - 'm4v' => 'video/mp4', - 'ma' => 'application/mathematica', - 'mads' => 'application/mads+xml', - 'mag' => 'application/vnd.ecowin.chart', - 'maker' => 'application/vnd.framemaker', - 'man' => 'text/troff', - 'mathml' => 'application/mathml+xml', - 'mb' => 'application/mathematica', - 'mbk' => 'application/vnd.mobius.mbk', - 'mbox' => 'application/mbox', - 'mc1' => 'application/vnd.medcalcdata', - 'mcd' => 'application/vnd.mcd', - 'mcurl' => 'text/vnd.curl.mcurl', - 'mdb' => 'application/x-msaccess', - 'mdi' => 'image/vnd.ms-modi', - 'me' => 'text/troff', - 'mesh' => 'model/mesh', - 'meta4' => 'application/metalink4+xml', - 'mets' => 'application/mets+xml', - 'mfm' => 'application/vnd.mfmp', - 'mgp' => 'application/vnd.osgeo.mapguide.package', - 'mgz' => 'application/vnd.proteus.magazine', - 'mid' => 'audio/midi', - 'midi' => 'audio/midi', - 'mif' => 'application/vnd.mif', - 'mime' => 'message/rfc822', - 'mj2' => 'video/mj2', - 'mjp2' => 'video/mj2', - 'mlp' => 'application/vnd.dolby.mlp', - 'mmd' => 'application/vnd.chipnuts.karaoke-mmd', - 'mmf' => 'application/vnd.smaf', - 'mmr' => 'image/vnd.fujixerox.edmics-mmr', - 'mny' => 'application/x-msmoney', - 'mobi' => 'application/x-mobipocket-ebook', - 'mods' => 'application/mods+xml', - 'mov' => 'video/quicktime', - 'movie' => 'video/x-sgi-movie', - 'mp2' => 'audio/mpeg', - 'mp21' => 'application/mp21', - 'mp2a' => 'audio/mpeg', - 'mp3' => 'audio/mpeg', - 'mp4' => 'video/mp4', - 'mp4a' => 'audio/mp4', - 'mp4s' => 'application/mp4', - 'mp4v' => 'video/mp4', - 'mpc' => 'application/vnd.mophun.certificate', - 'mpe' => 'video/mpeg', - 'mpeg' => 'video/mpeg', - 'mpg' => 'video/mpeg', - 'mpg4' => 'video/mp4', - 'mpga' => 'audio/mpeg', - 'mpkg' => 'application/vnd.apple.installer+xml', - 'mpm' => 'application/vnd.blueice.multipass', - 'mpn' => 'application/vnd.mophun.application', - 'mpp' => 'application/vnd.ms-project', - 'mpt' => 'application/vnd.ms-project', - 'mpy' => 'application/vnd.ibm.minipay', - 'mqy' => 'application/vnd.mobius.mqy', - 'mrc' => 'application/marc', - 'mrcx' => 'application/marcxml+xml', - 'ms' => 'text/troff', - 'mscml' => 'application/mediaservercontrol+xml', - 'mseed' => 'application/vnd.fdsn.mseed', - 'mseq' => 'application/vnd.mseq', - 'msf' => 'application/vnd.epson.msf', - 'msh' => 'model/mesh', - 'msi' => 'application/x-msdownload', - 'msl' => 'application/vnd.mobius.msl', - 'msty' => 'application/vnd.muvee.style', - 'mts' => 'model/vnd.mts', - 'mus' => 'application/vnd.musician', - 'musicxml' => 'application/vnd.recordare.musicxml+xml', - 'mvb' => 'application/x-msmediaview', - 'mwf' => 'application/vnd.mfer', - 'mxf' => 'application/mxf', - 'mxl' => 'application/vnd.recordare.musicxml', - 'mxml' => 'application/xv+xml', - 'mxs' => 'application/vnd.triscape.mxs', - 'mxu' => 'video/vnd.mpegurl', - 'n-gage' => 'application/vnd.nokia.n-gage.symbian.install', - 'n3' => 'text/n3', - 'nb' => 'application/mathematica', - 'nbp' => 'application/vnd.wolfram.player', - 'nc' => 'application/x-netcdf', - 'ncx' => 'application/x-dtbncx+xml', - 'ngdat' => 'application/vnd.nokia.n-gage.data', - 'nlu' => 'application/vnd.neurolanguage.nlu', - 'nml' => 'application/vnd.enliven', - 'nnd' => 'application/vnd.noblenet-directory', - 'nns' => 'application/vnd.noblenet-sealer', - 'nnw' => 'application/vnd.noblenet-web', - 'npx' => 'image/vnd.net-fpx', - 'nsf' => 'application/vnd.lotus-notes', - 'oa2' => 'application/vnd.fujitsu.oasys2', - 'oa3' => 'application/vnd.fujitsu.oasys3', - 'oas' => 'application/vnd.fujitsu.oasys', - 'obd' => 'application/x-msbinder', - 'oda' => 'application/oda', - 'odb' => 'application/vnd.oasis.opendocument.database', - 'odc' => 'application/vnd.oasis.opendocument.chart', - 'odf' => 'application/vnd.oasis.opendocument.formula', - 'odft' => 'application/vnd.oasis.opendocument.formula-template', - 'odg' => 'application/vnd.oasis.opendocument.graphics', - 'odi' => 'application/vnd.oasis.opendocument.image', - 'odm' => 'application/vnd.oasis.opendocument.text-master', - 'odp' => 'application/vnd.oasis.opendocument.presentation', - 'ods' => 'application/vnd.oasis.opendocument.spreadsheet', - 'odt' => 'application/vnd.oasis.opendocument.text', - 'oga' => 'audio/ogg', - 'ogg' => 'audio/ogg', - 'ogv' => 'video/ogg', - 'ogx' => 'application/ogg', - 'onepkg' => 'application/onenote', - 'onetmp' => 'application/onenote', - 'onetoc' => 'application/onenote', - 'onetoc2' => 'application/onenote', - 'opf' => 'application/oebps-package+xml', - 'oprc' => 'application/vnd.palm', - 'org' => 'application/vnd.lotus-organizer', - 'osf' => 'application/vnd.yamaha.openscoreformat', - 'osfpvg' => 'application/vnd.yamaha.openscoreformat.osfpvg+xml', - 'otc' => 'application/vnd.oasis.opendocument.chart-template', - 'otf' => 'application/x-font-otf', - 'otg' => 'application/vnd.oasis.opendocument.graphics-template', - 'oth' => 'application/vnd.oasis.opendocument.text-web', - 'oti' => 'application/vnd.oasis.opendocument.image-template', - 'otp' => 'application/vnd.oasis.opendocument.presentation-template', - 'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template', - 'ott' => 'application/vnd.oasis.opendocument.text-template', - 'oxt' => 'application/vnd.openofficeorg.extension', - 'p' => 'text/x-pascal', - 'p10' => 'application/pkcs10', - 'p12' => 'application/x-pkcs12', - 'p7b' => 'application/x-pkcs7-certificates', - 'p7c' => 'application/pkcs7-mime', - 'p7m' => 'application/pkcs7-mime', - 'p7r' => 'application/x-pkcs7-certreqresp', - 'p7s' => 'application/pkcs7-signature', - 'p8' => 'application/pkcs8', - 'pas' => 'text/x-pascal', - 'paw' => 'application/vnd.pawaafile', - 'pbd' => 'application/vnd.powerbuilder6', - 'pbm' => 'image/x-portable-bitmap', - 'pcf' => 'application/x-font-pcf', - 'pcl' => 'application/vnd.hp-pcl', - 'pclxl' => 'application/vnd.hp-pclxl', - 'pct' => 'image/x-pict', - 'pcurl' => 'application/vnd.curl.pcurl', - 'pcx' => 'image/x-pcx', - 'pdb' => 'application/vnd.palm', - 'pdf' => 'application/pdf', - 'pfa' => 'application/x-font-type1', - 'pfb' => 'application/x-font-type1', - 'pfm' => 'application/x-font-type1', - 'pfr' => 'application/font-tdpfr', - 'pfx' => 'application/x-pkcs12', - 'pgm' => 'image/x-portable-graymap', - 'pgn' => 'application/x-chess-pgn', - 'pgp' => 'application/pgp-encrypted', - 'php' => 'text/x-php', - 'phps' => 'application/x-httpd-phps', - 'pic' => 'image/x-pict', - 'pkg' => 'application/octet-stream', - 'pki' => 'application/pkixcmp', - 'pkipath' => 'application/pkix-pkipath', - 'plb' => 'application/vnd.3gpp.pic-bw-large', - 'plc' => 'application/vnd.mobius.plc', - 'plf' => 'application/vnd.pocketlearn', - 'pls' => 'application/pls+xml', - 'pml' => 'application/vnd.ctc-posml', - 'png' => 'image/png', - 'pnm' => 'image/x-portable-anymap', - 'portpkg' => 'application/vnd.macports.portpkg', - 'pot' => 'application/vnd.ms-powerpoint', - 'potm' => 'application/vnd.ms-powerpoint.template.macroenabled.12', - 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template', - 'ppam' => 'application/vnd.ms-powerpoint.addin.macroenabled.12', - 'ppd' => 'application/vnd.cups-ppd', - 'ppm' => 'image/x-portable-pixmap', - 'pps' => 'application/vnd.ms-powerpoint', - 'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroenabled.12', - 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', - 'ppt' => 'application/vnd.ms-powerpoint', - 'pptm' => 'application/vnd.ms-powerpoint.presentation.macroenabled.12', - 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', - 'pqa' => 'application/vnd.palm', - 'prc' => 'application/x-mobipocket-ebook', - 'pre' => 'application/vnd.lotus-freelance', - 'prf' => 'application/pics-rules', - 'ps' => 'application/postscript', - 'psb' => 'application/vnd.3gpp.pic-bw-small', - 'psd' => 'image/vnd.adobe.photoshop', - 'psf' => 'application/x-font-linux-psf', - 'pskcxml' => 'application/pskc+xml', - 'ptid' => 'application/vnd.pvi.ptid1', - 'pub' => 'application/x-mspublisher', - 'pvb' => 'application/vnd.3gpp.pic-bw-var', - 'pwn' => 'application/vnd.3m.post-it-notes', - 'pya' => 'audio/vnd.ms-playready.media.pya', - 'pyv' => 'video/vnd.ms-playready.media.pyv', - 'qam' => 'application/vnd.epson.quickanime', - 'qbo' => 'application/vnd.intu.qbo', - 'qfx' => 'application/vnd.intu.qfx', - 'qps' => 'application/vnd.publishare-delta-tree', - 'qt' => 'video/quicktime', - 'qwd' => 'application/vnd.quark.quarkxpress', - 'qwt' => 'application/vnd.quark.quarkxpress', - 'qxb' => 'application/vnd.quark.quarkxpress', - 'qxd' => 'application/vnd.quark.quarkxpress', - 'qxl' => 'application/vnd.quark.quarkxpress', - 'qxt' => 'application/vnd.quark.quarkxpress', - 'ra' => 'audio/x-pn-realaudio', - 'ram' => 'audio/x-pn-realaudio', - 'rar' => 'application/x-rar-compressed', - 'ras' => 'image/x-cmu-raster', - 'rb' => 'text/plain', - 'rcprofile' => 'application/vnd.ipunplugged.rcprofile', - 'rdf' => 'application/rdf+xml', - 'rdz' => 'application/vnd.data-vision.rdz', - 'rep' => 'application/vnd.businessobjects', - 'res' => 'application/x-dtbresource+xml', - 'resx' => 'text/xml', - 'rgb' => 'image/x-rgb', - 'rif' => 'application/reginfo+xml', - 'rip' => 'audio/vnd.rip', - 'rl' => 'application/resource-lists+xml', - 'rlc' => 'image/vnd.fujixerox.edmics-rlc', - 'rld' => 'application/resource-lists-diff+xml', - 'rm' => 'application/vnd.rn-realmedia', - 'rmi' => 'audio/midi', - 'rmp' => 'audio/x-pn-realaudio-plugin', - 'rms' => 'application/vnd.jcp.javame.midlet-rms', - 'rnc' => 'application/relax-ng-compact-syntax', - 'roff' => 'text/troff', - 'rp9' => 'application/vnd.cloanto.rp9', - 'rpss' => 'application/vnd.nokia.radio-presets', - 'rpst' => 'application/vnd.nokia.radio-preset', - 'rq' => 'application/sparql-query', - 'rs' => 'application/rls-services+xml', - 'rsd' => 'application/rsd+xml', - 'rss' => 'application/rss+xml', - 'rtf' => 'application/rtf', - 'rtx' => 'text/richtext', - 's' => 'text/x-asm', - 'saf' => 'application/vnd.yamaha.smaf-audio', - 'sbml' => 'application/sbml+xml', - 'sc' => 'application/vnd.ibm.secure-container', - 'scd' => 'application/x-msschedule', - 'scm' => 'application/vnd.lotus-screencam', - 'scq' => 'application/scvp-cv-request', - 'scs' => 'application/scvp-cv-response', - 'scurl' => 'text/vnd.curl.scurl', - 'sda' => 'application/vnd.stardivision.draw', - 'sdc' => 'application/vnd.stardivision.calc', - 'sdd' => 'application/vnd.stardivision.impress', - 'sdkd' => 'application/vnd.solent.sdkm+xml', - 'sdkm' => 'application/vnd.solent.sdkm+xml', - 'sdp' => 'application/sdp', - 'sdw' => 'application/vnd.stardivision.writer', - 'see' => 'application/vnd.seemail', - 'seed' => 'application/vnd.fdsn.seed', - 'sema' => 'application/vnd.sema', - 'semd' => 'application/vnd.semd', - 'semf' => 'application/vnd.semf', - 'ser' => 'application/java-serialized-object', - 'setpay' => 'application/set-payment-initiation', - 'setreg' => 'application/set-registration-initiation', - 'sfd-hdstx' => 'application/vnd.hydrostatix.sof-data', - 'sfs' => 'application/vnd.spotfire.sfs', - 'sgl' => 'application/vnd.stardivision.writer-global', - 'sgm' => 'text/sgml', - 'sgml' => 'text/sgml', - 'sh' => 'application/x-sh', - 'shar' => 'application/x-shar', - 'shf' => 'application/shf+xml', - 'sig' => 'application/pgp-signature', - 'silo' => 'model/mesh', - 'sis' => 'application/vnd.symbian.install', - 'sisx' => 'application/vnd.symbian.install', - 'sit' => 'application/x-stuffit', - 'sitx' => 'application/x-stuffitx', - 'skd' => 'application/vnd.koan', - 'skm' => 'application/vnd.koan', - 'skp' => 'application/vnd.koan', - 'skt' => 'application/vnd.koan', - 'sldm' => 'application/vnd.ms-powerpoint.slide.macroenabled.12', - 'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide', - 'slt' => 'application/vnd.epson.salt', - 'sm' => 'application/vnd.stepmania.stepchart', - 'smf' => 'application/vnd.stardivision.math', - 'smi' => 'application/smil+xml', - 'smil' => 'application/smil+xml', - 'snd' => 'audio/basic', - 'snf' => 'application/x-font-snf', - 'so' => 'application/octet-stream', - 'spc' => 'application/x-pkcs7-certificates', - 'spf' => 'application/vnd.yamaha.smaf-phrase', - 'spl' => 'application/x-futuresplash', - 'spot' => 'text/vnd.in3d.spot', - 'spp' => 'application/scvp-vp-response', - 'spq' => 'application/scvp-vp-request', - 'spx' => 'audio/ogg', - 'src' => 'application/x-wais-source', - 'sru' => 'application/sru+xml', - 'srx' => 'application/sparql-results+xml', - 'sse' => 'application/vnd.kodak-descriptor', - 'ssf' => 'application/vnd.epson.ssf', - 'ssml' => 'application/ssml+xml', - 'st' => 'application/vnd.sailingtracker.track', - 'stc' => 'application/vnd.sun.xml.calc.template', - 'std' => 'application/vnd.sun.xml.draw.template', - 'stf' => 'application/vnd.wt.stf', - 'sti' => 'application/vnd.sun.xml.impress.template', - 'stk' => 'application/hyperstudio', - 'stl' => 'application/vnd.ms-pki.stl', - 'str' => 'application/vnd.pg.format', - 'stw' => 'application/vnd.sun.xml.writer.template', - 'sub' => 'image/vnd.dvb.subtitle', - 'sus' => 'application/vnd.sus-calendar', - 'susp' => 'application/vnd.sus-calendar', - 'sv4cpio' => 'application/x-sv4cpio', - 'sv4crc' => 'application/x-sv4crc', - 'svc' => 'application/vnd.dvb.service', - 'svd' => 'application/vnd.svd', - 'svg' => 'image/svg+xml', - 'svgz' => 'image/svg+xml', - 'swa' => 'application/x-director', - 'swf' => 'application/x-shockwave-flash', - 'swi' => 'application/vnd.aristanetworks.swi', - 'sxc' => 'application/vnd.sun.xml.calc', - 'sxd' => 'application/vnd.sun.xml.draw', - 'sxg' => 'application/vnd.sun.xml.writer.global', - 'sxi' => 'application/vnd.sun.xml.impress', - 'sxm' => 'application/vnd.sun.xml.math', - 'sxw' => 'application/vnd.sun.xml.writer', - 't' => 'text/troff', - 'tao' => 'application/vnd.tao.intent-module-archive', - 'tar' => 'application/x-tar', - 'tcap' => 'application/vnd.3gpp2.tcap', - 'tcl' => 'application/x-tcl', - 'teacher' => 'application/vnd.smart.teacher', - 'tei' => 'application/tei+xml', - 'teicorpus' => 'application/tei+xml', - 'tex' => 'application/x-tex', - 'texi' => 'application/x-texinfo', - 'texinfo' => 'application/x-texinfo', - 'text' => 'text/plain', - 'tfi' => 'application/thraud+xml', - 'tfm' => 'application/x-tex-tfm', - 'thmx' => 'application/vnd.ms-officetheme', - 'tif' => 'image/tiff', - 'tiff' => 'image/tiff', - 'tmo' => 'application/vnd.tmobile-livetv', - 'torrent' => 'application/x-bittorrent', - 'tpl' => 'application/vnd.groove-tool-template', - 'tpt' => 'application/vnd.trid.tpt', - 'tr' => 'text/troff', - 'tra' => 'application/vnd.trueapp', - 'trm' => 'application/x-msterminal', - 'tsd' => 'application/timestamped-data', - 'tsv' => 'text/tab-separated-values', - 'ttc' => 'application/x-font-ttf', - 'ttf' => 'application/x-font-ttf', - 'ttl' => 'text/turtle', - 'twd' => 'application/vnd.simtech-mindmapper', - 'twds' => 'application/vnd.simtech-mindmapper', - 'txd' => 'application/vnd.genomatix.tuxedo', - 'txf' => 'application/vnd.mobius.txf', - 'txt' => 'text/plain', - 'u32' => 'application/x-authorware-bin', - 'udeb' => 'application/x-debian-package', - 'ufd' => 'application/vnd.ufdl', - 'ufdl' => 'application/vnd.ufdl', - 'umj' => 'application/vnd.umajin', - 'unityweb' => 'application/vnd.unity', - 'uoml' => 'application/vnd.uoml+xml', - 'uri' => 'text/uri-list', - 'uris' => 'text/uri-list', - 'urls' => 'text/uri-list', - 'ustar' => 'application/x-ustar', - 'utz' => 'application/vnd.uiq.theme', - 'uu' => 'text/x-uuencode', - 'uva' => 'audio/vnd.dece.audio', - 'uvd' => 'application/vnd.dece.data', - 'uvf' => 'application/vnd.dece.data', - 'uvg' => 'image/vnd.dece.graphic', - 'uvh' => 'video/vnd.dece.hd', - 'uvi' => 'image/vnd.dece.graphic', - 'uvm' => 'video/vnd.dece.mobile', - 'uvp' => 'video/vnd.dece.pd', - 'uvs' => 'video/vnd.dece.sd', - 'uvt' => 'application/vnd.dece.ttml+xml', - 'uvu' => 'video/vnd.uvvu.mp4', - 'uvv' => 'video/vnd.dece.video', - 'uvva' => 'audio/vnd.dece.audio', - 'uvvd' => 'application/vnd.dece.data', - 'uvvf' => 'application/vnd.dece.data', - 'uvvg' => 'image/vnd.dece.graphic', - 'uvvh' => 'video/vnd.dece.hd', - 'uvvi' => 'image/vnd.dece.graphic', - 'uvvm' => 'video/vnd.dece.mobile', - 'uvvp' => 'video/vnd.dece.pd', - 'uvvs' => 'video/vnd.dece.sd', - 'uvvt' => 'application/vnd.dece.ttml+xml', - 'uvvu' => 'video/vnd.uvvu.mp4', - 'uvvv' => 'video/vnd.dece.video', - 'uvvx' => 'application/vnd.dece.unspecified', - 'uvx' => 'application/vnd.dece.unspecified', - 'vcd' => 'application/x-cdlink', - 'vcf' => 'text/x-vcard', - 'vcg' => 'application/vnd.groove-vcard', - 'vcs' => 'text/x-vcalendar', - 'vcx' => 'application/vnd.vcx', - 'vis' => 'application/vnd.visionary', - 'viv' => 'video/vnd.vivo', - 'vor' => 'application/vnd.stardivision.writer', - 'vox' => 'application/x-authorware-bin', - 'vrml' => 'model/vrml', - 'vsd' => 'application/vnd.visio', - 'vsf' => 'application/vnd.vsf', - 'vss' => 'application/vnd.visio', - 'vst' => 'application/vnd.visio', - 'vsw' => 'application/vnd.visio', - 'vtu' => 'model/vnd.vtu', - 'vxml' => 'application/voicexml+xml', - 'w3d' => 'application/x-director', - 'wad' => 'application/x-doom', - 'wav' => 'audio/x-wav', - 'wax' => 'audio/x-ms-wax', - 'wbmp' => 'image/vnd.wap.wbmp', - 'wbs' => 'application/vnd.criticaltools.wbs+xml', - 'wbxml' => 'application/vnd.wap.wbxml', - 'wcm' => 'application/vnd.ms-works', - 'wdb' => 'application/vnd.ms-works', - 'weba' => 'audio/webm', - 'webm' => 'video/webm', - 'webp' => 'image/webp', - 'wg' => 'application/vnd.pmi.widget', - 'wgt' => 'application/widget', - 'wks' => 'application/vnd.ms-works', - 'wm' => 'video/x-ms-wm', - 'wma' => 'audio/x-ms-wma', - 'wmd' => 'application/x-ms-wmd', - 'wmf' => 'application/x-msmetafile', - 'wml' => 'text/vnd.wap.wml', - 'wmlc' => 'application/vnd.wap.wmlc', - 'wmls' => 'text/vnd.wap.wmlscript', - 'wmlsc' => 'application/vnd.wap.wmlscriptc', - 'wmv' => 'video/x-ms-wmv', - 'wmx' => 'video/x-ms-wmx', - 'wmz' => 'application/x-ms-wmz', - 'woff' => 'application/x-font-woff', - 'wpd' => 'application/vnd.wordperfect', - 'wpl' => 'application/vnd.ms-wpl', - 'wps' => 'application/vnd.ms-works', - 'wqd' => 'application/vnd.wqd', - 'wri' => 'application/x-mswrite', - 'wrl' => 'model/vrml', - 'wsdl' => 'application/wsdl+xml', - 'wspolicy' => 'application/wspolicy+xml', - 'wtb' => 'application/vnd.webturbo', - 'wvx' => 'video/x-ms-wvx', - 'x32' => 'application/x-authorware-bin', - 'x3d' => 'application/vnd.hzn-3d-crossword', - 'xap' => 'application/x-silverlight-app', - 'xar' => 'application/vnd.xara', - 'xbap' => 'application/x-ms-xbap', - 'xbd' => 'application/vnd.fujixerox.docuworks.binder', - 'xbm' => 'image/x-xbitmap', - 'xdf' => 'application/xcap-diff+xml', - 'xdm' => 'application/vnd.syncml.dm+xml', - 'xdp' => 'application/vnd.adobe.xdp+xml', - 'xdssc' => 'application/dssc+xml', - 'xdw' => 'application/vnd.fujixerox.docuworks', - 'xenc' => 'application/xenc+xml', - 'xer' => 'application/patch-ops-error+xml', - 'xfdf' => 'application/vnd.adobe.xfdf', - 'xfdl' => 'application/vnd.xfdl', - 'xht' => 'application/xhtml+xml', - 'xhtml' => 'application/xhtml+xml', - 'xhvml' => 'application/xv+xml', - 'xif' => 'image/vnd.xiff', - 'xla' => 'application/vnd.ms-excel', - 'xlam' => 'application/vnd.ms-excel.addin.macroenabled.12', - 'xlc' => 'application/vnd.ms-excel', - 'xlm' => 'application/vnd.ms-excel', - 'xls' => 'application/vnd.ms-excel', - 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroenabled.12', - 'xlsm' => 'application/vnd.ms-excel.sheet.macroenabled.12', - 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - 'xlt' => 'application/vnd.ms-excel', - 'xltm' => 'application/vnd.ms-excel.template.macroenabled.12', - 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', - 'xlw' => 'application/vnd.ms-excel', - 'xml' => 'application/xml', - 'xo' => 'application/vnd.olpc-sugar', - 'xop' => 'application/xop+xml', - 'xpi' => 'application/x-xpinstall', - 'xpm' => 'image/x-xpixmap', - 'xpr' => 'application/vnd.is-xpr', - 'xps' => 'application/vnd.ms-xpsdocument', - 'xpw' => 'application/vnd.intercon.formnet', - 'xpx' => 'application/vnd.intercon.formnet', - 'xsl' => 'application/xml', - 'xslt' => 'application/xslt+xml', - 'xsm' => 'application/vnd.syncml+xml', - 'xspf' => 'application/xspf+xml', - 'xul' => 'application/vnd.mozilla.xul+xml', - 'xvm' => 'application/xv+xml', - 'xvml' => 'application/xv+xml', - 'xwd' => 'image/x-xwindowdump', - 'xyz' => 'chemical/x-xyz', - 'yaml' => 'text/yaml', - 'yang' => 'application/yang', - 'yin' => 'application/yin+xml', - 'yml' => 'text/yaml', - 'zaz' => 'application/vnd.zzazz.deck+xml', - 'zip' => 'application/zip', - 'zir' => 'application/vnd.zul', - 'zirz' => 'application/vnd.zul', - 'zmm' => 'application/vnd.handheld-entertainment+xml' - ); - - /** - * Get a singleton instance of the class - * - * @return self - * @codeCoverageIgnore - */ - public static function getInstance() - { - if (!self::$instance) { - self::$instance = new self(); - } - - return self::$instance; - } - - /** - * Get a mimetype value from a file extension - * - * @param string $extension File extension - * - * @return string|null - * - */ - public function fromExtension($extension) - { - $extension = strtolower($extension); - - return isset($this->mimetypes[$extension]) ? $this->mimetypes[$extension] : null; - } - - /** - * Get a mimetype from a filename - * - * @param string $filename Filename to generate a mimetype from - * - * @return string|null - */ - public function fromFilename($filename) - { - return $this->fromExtension(pathinfo($filename, PATHINFO_EXTENSION)); - } -} diff --git a/lib/aws-sdk/Guzzle/Http/QueryAggregator/CommaAggregator.php b/lib/aws-sdk/Guzzle/Http/QueryAggregator/CommaAggregator.php deleted file mode 100644 index 4b4e49d..0000000 --- a/lib/aws-sdk/Guzzle/Http/QueryAggregator/CommaAggregator.php +++ /dev/null @@ -1,20 +0,0 @@ -isUrlEncoding()) { - return array($query->encodeValue($key) => implode(',', array_map(array($query, 'encodeValue'), $value))); - } else { - return array($key => implode(',', $value)); - } - } -} diff --git a/lib/aws-sdk/Guzzle/Http/QueryAggregator/DuplicateAggregator.php b/lib/aws-sdk/Guzzle/Http/QueryAggregator/DuplicateAggregator.php deleted file mode 100644 index 1bf1730..0000000 --- a/lib/aws-sdk/Guzzle/Http/QueryAggregator/DuplicateAggregator.php +++ /dev/null @@ -1,22 +0,0 @@ -isUrlEncoding()) { - return array($query->encodeValue($key) => array_map(array($query, 'encodeValue'), $value)); - } else { - return array($key => $value); - } - } -} diff --git a/lib/aws-sdk/Guzzle/Http/QueryAggregator/PhpAggregator.php b/lib/aws-sdk/Guzzle/Http/QueryAggregator/PhpAggregator.php deleted file mode 100644 index 133ea2b..0000000 --- a/lib/aws-sdk/Guzzle/Http/QueryAggregator/PhpAggregator.php +++ /dev/null @@ -1,27 +0,0 @@ - $v) { - $k = "{$key}[{$k}]"; - if (is_array($v)) { - $ret = array_merge($ret, self::aggregate($k, $v, $query)); - } else { - $ret[$query->encodeValue($k)] = $query->encodeValue($v); - } - } - - return $ret; - } -} diff --git a/lib/aws-sdk/Guzzle/Http/QueryAggregator/QueryAggregatorInterface.php b/lib/aws-sdk/Guzzle/Http/QueryAggregator/QueryAggregatorInterface.php deleted file mode 100644 index 72bee62..0000000 --- a/lib/aws-sdk/Guzzle/Http/QueryAggregator/QueryAggregatorInterface.php +++ /dev/null @@ -1,22 +0,0 @@ -add($key, $value); - $foundDuplicates = true; - } elseif ($paramIsPhpStyleArray) { - $q[$key] = array($value); - } else { - $q[$key] = $value; - } - } else { - // Uses false by default to represent keys with no trailing "=" sign. - $q->add($key, false); - } - } - - // Use the duplicate aggregator if duplicates were found and not using PHP style arrays - if ($foundDuplicates && !$foundPhpStyle) { - $q->setAggregator(new DuplicateAggregator()); - } - - return $q; - } - - /** - * Convert the query string parameters to a query string string - * - * @return string - * @throws RuntimeException - */ - public function __toString() - { - if (!$this->data) { - return ''; - } - - $queryList = array(); - foreach ($this->prepareData($this->data) as $name => $value) { - $queryList[] = $this->convertKvp($name, $value); - } - - return implode($this->fieldSeparator, $queryList); - } - - /** - * Get the query string field separator - * - * @return string - */ - public function getFieldSeparator() - { - return $this->fieldSeparator; - } - - /** - * Get the query string value separator - * - * @return string - */ - public function getValueSeparator() - { - return $this->valueSeparator; - } - - /** - * Returns the type of URL encoding used by the query string - * - * One of: false, "RFC 3986", or "application/x-www-form-urlencoded" - * - * @return bool|string - */ - public function getUrlEncoding() - { - return $this->urlEncode; - } - - /** - * Returns true or false if using URL encoding - * - * @return bool - */ - public function isUrlEncoding() - { - return $this->urlEncode !== false; - } - - /** - * Provide a function for combining multi-valued query string parameters into a single or multiple fields - * - * @param null|QueryAggregatorInterface $aggregator Pass in a QueryAggregatorInterface object to handle converting - * deeply nested query string variables into a flattened array. - * Pass null to use the default PHP style aggregator. For legacy - * reasons, this function accepts a callable that must accepts a - * $key, $value, and query object. - * @return self - * @see \Guzzle\Http\QueryString::aggregateUsingComma() - */ - public function setAggregator(QueryAggregatorInterface $aggregator = null) - { - // Use the default aggregator if none was set - if (!$aggregator) { - if (!self::$defaultAggregator) { - self::$defaultAggregator = new PhpAggregator(); - } - $aggregator = self::$defaultAggregator; - } - - $this->aggregator = $aggregator; - - return $this; - } - - /** - * Set whether or not field names and values should be rawurlencoded - * - * @param bool|string $encode Set to TRUE to use RFC 3986 encoding (rawurlencode), false to disable encoding, or - * form_urlencoding to use application/x-www-form-urlencoded encoding (urlencode) - * @return self - */ - public function useUrlEncoding($encode) - { - $this->urlEncode = ($encode === true) ? self::RFC_3986 : $encode; - - return $this; - } - - /** - * Set the query string separator - * - * @param string $separator The query string separator that will separate fields - * - * @return self - */ - public function setFieldSeparator($separator) - { - $this->fieldSeparator = $separator; - - return $this; - } - - /** - * Set the query string value separator - * - * @param string $separator The query string separator that will separate values from fields - * - * @return self - */ - public function setValueSeparator($separator) - { - $this->valueSeparator = $separator; - - return $this; - } - - /** - * Returns an array of url encoded field names and values - * - * @return array - */ - public function urlEncode() - { - return $this->prepareData($this->data); - } - - /** - * URL encodes a value based on the url encoding type of the query string object - * - * @param string $value Value to encode - * - * @return string - */ - public function encodeValue($value) - { - if ($this->urlEncode == self::RFC_3986) { - return rawurlencode($value); - } elseif ($this->urlEncode == self::FORM_URLENCODED) { - return urlencode($value); - } else { - return (string) $value; - } - } - - /** - * Url encode parameter data and convert nested query strings into a flattened hash. - * - * @param array $data The data to encode - * - * @return array Returns an array of encoded values and keys - */ - protected function prepareData(array $data) - { - // If no aggregator is present then set the default - if (!$this->aggregator) { - $this->setAggregator(null); - } - - $temp = array(); - foreach ($data as $key => $value) { - if ($value === false || $value === null) { - // False and null will not include the "=". Use an empty string to include the "=". - $temp[$this->encodeValue($key)] = $value; - } elseif (is_array($value)) { - $temp = array_merge($temp, $this->aggregator->aggregate($key, $value, $this)); - } else { - $temp[$this->encodeValue($key)] = $this->encodeValue($value); - } - } - - return $temp; - } - - /** - * Converts a key value pair that can contain strings, nulls, false, or arrays - * into a single string. - * - * @param string $name Name of the field - * @param mixed $value Value of the field - * @return string - */ - private function convertKvp($name, $value) - { - if ($value === self::BLANK || $value === null || $value === false) { - return $name; - } elseif (!is_array($value)) { - return $name . $this->valueSeparator . $value; - } - - $result = ''; - foreach ($value as $v) { - $result .= $this->convertKvp($name, $v) . $this->fieldSeparator; - } - - return rtrim($result, $this->fieldSeparator); - } -} diff --git a/lib/aws-sdk/Guzzle/Http/ReadLimitEntityBody.php b/lib/aws-sdk/Guzzle/Http/ReadLimitEntityBody.php deleted file mode 100644 index ef28273..0000000 --- a/lib/aws-sdk/Guzzle/Http/ReadLimitEntityBody.php +++ /dev/null @@ -1,122 +0,0 @@ -setLimit($limit)->setOffset($offset); - } - - /** - * Returns only a subset of the decorated entity body when cast as a string - * {@inheritdoc} - */ - public function __toString() - { - if (!$this->body->isReadable() || - (!$this->body->isSeekable() && $this->body->isConsumed()) - ) { - return ''; - } - - $originalPos = $this->body->ftell(); - $this->body->seek($this->offset); - $data = ''; - while (!$this->feof()) { - $data .= $this->read(1048576); - } - $this->body->seek($originalPos); - - return (string) $data ?: ''; - } - - public function isConsumed() - { - return $this->body->isConsumed() || - ($this->body->ftell() >= $this->offset + $this->limit); - } - - /** - * Returns the Content-Length of the limited subset of data - * {@inheritdoc} - */ - public function getContentLength() - { - $length = $this->body->getContentLength(); - - return $length === false - ? $this->limit - : min($this->limit, min($length, $this->offset + $this->limit) - $this->offset); - } - - /** - * Allow for a bounded seek on the read limited entity body - * {@inheritdoc} - */ - public function seek($offset, $whence = SEEK_SET) - { - return $whence === SEEK_SET - ? $this->body->seek(max($this->offset, min($this->offset + $this->limit, $offset))) - : false; - } - - /** - * Set the offset to start limiting from - * - * @param int $offset Offset to seek to and begin byte limiting from - * - * @return self - */ - public function setOffset($offset) - { - $this->body->seek($offset); - $this->offset = $offset; - - return $this; - } - - /** - * Set the limit of bytes that the decorator allows to be read from the stream - * - * @param int $limit Total number of bytes to allow to be read from the stream - * - * @return self - */ - public function setLimit($limit) - { - $this->limit = $limit; - - return $this; - } - - public function read($length) - { - // Check if the current position is less than the total allowed bytes + original offset - $remaining = ($this->offset + $this->limit) - $this->body->ftell(); - if ($remaining > 0) { - // Only return the amount of requested data, ensuring that the byte limit is not exceeded - return $this->body->read(min($remaining, $length)); - } else { - return false; - } - } -} diff --git a/lib/aws-sdk/Guzzle/Http/RedirectPlugin.php b/lib/aws-sdk/Guzzle/Http/RedirectPlugin.php deleted file mode 100644 index 1a824b8..0000000 --- a/lib/aws-sdk/Guzzle/Http/RedirectPlugin.php +++ /dev/null @@ -1,250 +0,0 @@ - array('onRequestSent', 100), - 'request.clone' => 'cleanupRequest', - 'request.before_send' => 'cleanupRequest' - ); - } - - /** - * Clean up the parameters of a request when it is cloned - * - * @param Event $event Event emitted - */ - public function cleanupRequest(Event $event) - { - $params = $event['request']->getParams(); - unset($params[self::REDIRECT_COUNT]); - unset($params[self::PARENT_REQUEST]); - } - - /** - * Called when a request receives a redirect response - * - * @param Event $event Event emitted - */ - public function onRequestSent(Event $event) - { - $response = $event['response']; - $request = $event['request']; - - // Only act on redirect requests with Location headers - if (!$response || $request->getParams()->get(self::DISABLE)) { - return; - } - - // Trace the original request based on parameter history - $original = $this->getOriginalRequest($request); - - // Terminating condition to set the effective response on the original request - if (!$response->isRedirect() || !$response->hasHeader('Location')) { - if ($request !== $original) { - // This is a terminating redirect response, so set it on the original request - $response->getParams()->set(self::REDIRECT_COUNT, $original->getParams()->get(self::REDIRECT_COUNT)); - $original->setResponse($response); - $response->setEffectiveUrl($request->getUrl()); - } - return; - } - - $this->sendRedirectRequest($original, $request, $response); - } - - /** - * Get the original request that initiated a series of redirects - * - * @param RequestInterface $request Request to get the original request from - * - * @return RequestInterface - */ - protected function getOriginalRequest(RequestInterface $request) - { - $original = $request; - // The number of redirects is held on the original request, so determine which request that is - while ($parent = $original->getParams()->get(self::PARENT_REQUEST)) { - $original = $parent; - } - - return $original; - } - - /** - * Create a redirect request for a specific request object - * - * Takes into account strict RFC compliant redirection (e.g. redirect POST with POST) vs doing what most clients do - * (e.g. redirect POST with GET). - * - * @param RequestInterface $request Request being redirected - * @param RequestInterface $original Original request - * @param int $statusCode Status code of the redirect - * @param string $location Location header of the redirect - * - * @return RequestInterface Returns a new redirect request - * @throws CouldNotRewindStreamException If the body needs to be rewound but cannot - */ - protected function createRedirectRequest( - RequestInterface $request, - $statusCode, - $location, - RequestInterface $original - ) { - $redirectRequest = null; - $strict = $original->getParams()->get(self::STRICT_REDIRECTS); - - // Switch method to GET for 303 redirects. 301 and 302 redirects also switch to GET unless we are forcing RFC - // compliance to emulate what most browsers do. NOTE: IE only switches methods on 301/302 when coming from a POST. - if ($request instanceof EntityEnclosingRequestInterface && ($statusCode == 303 || (!$strict && $statusCode <= 302))) { - $redirectRequest = RequestFactory::getInstance()->cloneRequestWithMethod($request, 'GET'); - } else { - $redirectRequest = clone $request; - } - - $redirectRequest->setIsRedirect(true); - // Always use the same response body when redirecting - $redirectRequest->setResponseBody($request->getResponseBody()); - - $location = Url::factory($location); - // If the location is not absolute, then combine it with the original URL - if (!$location->isAbsolute()) { - $originalUrl = $redirectRequest->getUrl(true); - // Remove query string parameters and just take what is present on the redirect Location header - $originalUrl->getQuery()->clear(); - $location = $originalUrl->combine((string) $location, true); - } - - $redirectRequest->setUrl($location); - - // Add the parent request to the request before it sends (make sure it's before the onRequestClone event too) - $redirectRequest->getEventDispatcher()->addListener( - 'request.before_send', - $func = function ($e) use (&$func, $request, $redirectRequest) { - $redirectRequest->getEventDispatcher()->removeListener('request.before_send', $func); - $e['request']->getParams()->set(RedirectPlugin::PARENT_REQUEST, $request); - } - ); - - // Rewind the entity body of the request if needed - if ($redirectRequest instanceof EntityEnclosingRequestInterface && $redirectRequest->getBody()) { - $body = $redirectRequest->getBody(); - // Only rewind the body if some of it has been read already, and throw an exception if the rewind fails - if ($body->ftell() && !$body->rewind()) { - throw new CouldNotRewindStreamException( - 'Unable to rewind the non-seekable entity body of the request after redirecting. cURL probably ' - . 'sent part of body before the redirect occurred. Try adding acustom rewind function using on the ' - . 'entity body of the request using setRewindFunction().' - ); - } - } - - return $redirectRequest; - } - - /** - * Prepare the request for redirection and enforce the maximum number of allowed redirects per client - * - * @param RequestInterface $original Original request - * @param RequestInterface $request Request to prepare and validate - * @param Response $response The current response - * - * @return RequestInterface - */ - protected function prepareRedirection(RequestInterface $original, RequestInterface $request, Response $response) - { - $params = $original->getParams(); - // This is a new redirect, so increment the redirect counter - $current = $params[self::REDIRECT_COUNT] + 1; - $params[self::REDIRECT_COUNT] = $current; - // Use a provided maximum value or default to a max redirect count of 5 - $max = isset($params[self::MAX_REDIRECTS]) ? $params[self::MAX_REDIRECTS] : $this->defaultMaxRedirects; - - // Throw an exception if the redirect count is exceeded - if ($current > $max) { - $this->throwTooManyRedirectsException($original, $max); - return false; - } else { - // Create a redirect request based on the redirect rules set on the request - return $this->createRedirectRequest( - $request, - $response->getStatusCode(), - trim($response->getLocation()), - $original - ); - } - } - - /** - * Send a redirect request and handle any errors - * - * @param RequestInterface $original The originating request - * @param RequestInterface $request The current request being redirected - * @param Response $response The response of the current request - * - * @throws BadResponseException|\Exception - */ - protected function sendRedirectRequest(RequestInterface $original, RequestInterface $request, Response $response) - { - // Validate and create a redirect request based on the original request and current response - if ($redirectRequest = $this->prepareRedirection($original, $request, $response)) { - try { - $redirectRequest->send(); - } catch (BadResponseException $e) { - $e->getResponse(); - if (!$e->getResponse()) { - throw $e; - } - } - } - } - - /** - * Throw a too many redirects exception for a request - * - * @param RequestInterface $original Request - * @param int $max Max allowed redirects - * - * @throws TooManyRedirectsException when too many redirects have been issued - */ - protected function throwTooManyRedirectsException(RequestInterface $original, $max) - { - $original->getEventDispatcher()->addListener( - 'request.complete', - $func = function ($e) use (&$func, $original, $max) { - $original->getEventDispatcher()->removeListener('request.complete', $func); - $str = "{$max} redirects were issued for this request:\n" . $e['request']->getRawHeaders(); - throw new TooManyRedirectsException($str); - } - ); - } -} diff --git a/lib/aws-sdk/Guzzle/Http/Resources/cacert.pem b/lib/aws-sdk/Guzzle/Http/Resources/cacert.pem deleted file mode 100644 index 18ce703..0000000 --- a/lib/aws-sdk/Guzzle/Http/Resources/cacert.pem +++ /dev/null @@ -1,3870 +0,0 @@ -## -## Bundle of CA Root Certificates -## -## Certificate data from Mozilla downloaded on: Wed Aug 13 21:49:32 2014 -## -## This is a bundle of X.509 certificates of public Certificate Authorities -## (CA). These were automatically extracted from Mozilla's root certificates -## file (certdata.txt). This file can be found in the mozilla source tree: -## http://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt -## -## It contains the certificates in PEM format and therefore -## can be directly used with curl / libcurl / php_curl, or with -## an Apache+mod_ssl webserver for SSL client authentication. -## Just configure this file as the SSLCACertificateFile. -## -## Conversion done with mk-ca-bundle.pl verison 1.22. -## SHA1: bf2c15b3019e696660321d2227d942936dc50aa7 -## - - -GTE CyberTrust Global Root -========================== ------BEGIN CERTIFICATE----- -MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUg -Q29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNvbHV0aW9ucywgSW5jLjEjMCEG -A1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJvb3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEz -MjM1OTAwWjB1MQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQL -Ex5HVEUgQ3liZXJUcnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0 -IEdsb2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrHiM3dFw4u -sJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTSr41tiGeA5u2ylc9yMcql -HHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X404Wqk2kmhXBIgD8SFcd5tB8FLztimQID -AQABMA0GCSqGSIb3DQEBBAUAA4GBAG3rGwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMW -M4ETCJ57NE7fQMh017l93PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OF -NMQkpw0PlZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/ ------END CERTIFICATE----- - -Thawte Server CA -================ ------BEGIN CERTIFICATE----- -MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT -DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs -dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UE -AxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5j -b20wHhcNOTYwODAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNV -BAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29u -c3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcG -A1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0 -ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl -/Kj0R1HahbUgdJSGHg91yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg7 -1CcEJRCXL+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGjEzAR -MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG7oWDTSEwjsrZqG9J -GubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6eQNuozDJ0uW8NxuOzRAvZim+aKZuZ -GCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZqdq5snUb9kLy78fyGPmJvKP/iiMucEc= ------END CERTIFICATE----- - -Thawte Premium Server CA -======================== ------BEGIN CERTIFICATE----- -MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkExFTATBgNVBAgT -DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs -dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UE -AxMYVGhhd3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZl -ckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYT -AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU -VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2 -aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3DQEJARYZ -cHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2 -aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIh -Udib0GfQug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/ -qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAm -SCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUIhfzJATj/Tb7yFkJD57taRvvBxhEf -8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7t -UCemDaYj+bvLpgcUQg== ------END CERTIFICATE----- - -Equifax Secure CA -================= ------BEGIN CERTIFICATE----- -MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE -ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT -B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB -nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR -fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW -8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG -A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE -CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG -A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS -spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB -Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961 -zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB -BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95 -70+sB3c4 ------END CERTIFICATE----- - -Verisign Class 3 Public Primary Certification Authority -======================================================= ------BEGIN CERTIFICATE----- -MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx -FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5 -IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVow -XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz -IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA -A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94 -f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol -hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBALtMEivPLCYA -TxQT3ab7/AoRhIzzKBxnki98tsX63/Dolbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59Ah -WM1pF+NEHJwZRDmJXNycAA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2Omuf -Tqj/ZA1k ------END CERTIFICATE----- - -Verisign Class 3 Public Primary Certification Authority - G2 -============================================================ ------BEGIN CERTIFICATE----- -MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT -MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy -eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln -biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz -dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT -MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy -eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln -biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz -dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCO -FoUgRm1HP9SFIIThbbP4pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71 -lSk8UOg013gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwIDAQAB -MA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSkU01UbSuvDV1Ai2TT -1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7iF6YM40AIOw7n60RzKprxaZLvcRTD -Oaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpYoJ2daZH9 ------END CERTIFICATE----- - -GlobalSign Root CA -================== ------BEGIN CERTIFICATE----- -MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx -GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds -b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV -BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD -VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa -DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc -THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb -Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP -c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX -gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV -HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF -AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj -Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG -j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH -hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC -X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== ------END CERTIFICATE----- - -GlobalSign Root CA - R2 -======================= ------BEGIN CERTIFICATE----- -MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv -YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh -bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT -aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln -bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6 -ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp -s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN -S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL -TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C -ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E -FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i -YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN -BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp -9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu -01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7 -9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 -TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== ------END CERTIFICATE----- - -ValiCert Class 1 VA -=================== ------BEGIN CERTIFICATE----- -MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp -b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs -YXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh -bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIy -MjM0OFoXDTE5MDYyNTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0 -d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEg -UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0 -LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA -A4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9YLqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIi -GQj4/xEjm84H9b9pGib+TunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCm -DuJWBQ8YTfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0LBwG -lN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLWI8sogTLDAHkY7FkX -icnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPwnXS3qT6gpf+2SQMT2iLM7XGCK5nP -Orf1LXLI ------END CERTIFICATE----- - -ValiCert Class 2 VA -=================== ------BEGIN CERTIFICATE----- -MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp -b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs -YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh -bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw -MTk1NFoXDTE5MDYyNjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0 -d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIg -UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0 -LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA -A4GNADCBiQKBgQDOOnHK5avIWZJV16vYdA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVC -CSRrCl6zfN1SLUzm1NZ9WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7Rf -ZHM047QSv4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9vUJSZ -SWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTuIYEZoDJJKPTEjlbV -UjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwCW/POuZ6lcg5Ktz885hZo+L7tdEy8 -W9ViH0Pd ------END CERTIFICATE----- - -RSA Root Certificate 1 -====================== ------BEGIN CERTIFICATE----- -MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp -b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs -YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh -bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw -MjIzM1oXDTE5MDYyNjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0 -d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMg -UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0 -LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA -A4GNADCBiQKBgQDjmFGWHOjVsQaBalfDcnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td -3zZxFJmP3MKS8edgkpfs2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89H -BFx1cQqYJJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliEZwgs -3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJn0WuPIqpsHEzXcjF -V9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/APhmcGcwTTYJBtYze4D1gCCAPRX5r -on+jjBXu ------END CERTIFICATE----- - -Verisign Class 3 Public Primary Certification Authority - G3 -============================================================ ------BEGIN CERTIFICATE----- -MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV -UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv -cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl -IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw -CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy -dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv -cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg -Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1 -EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc -cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw -EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj -055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA -ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f -j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC -/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0 -xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa -t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ== ------END CERTIFICATE----- - -Verisign Class 4 Public Primary Certification Authority - G3 -============================================================ ------BEGIN CERTIFICATE----- -MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV -UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv -cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl -IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw -CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy -dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv -cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg -Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS -tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM -8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW -Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX -Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA -j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt -mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm -fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd -RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG -UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg== ------END CERTIFICATE----- - -Entrust.net Secure Server CA -============================ ------BEGIN CERTIFICATE----- -MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMCVVMxFDASBgNV -BAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5uZXQvQ1BTIGluY29ycC4gYnkg -cmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRl -ZDE6MDgGA1UEAxMxRW50cnVzdC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhv -cml0eTAeFw05OTA1MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIG -A1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBi -eSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1p -dGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0 -aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQ -aO2f55M28Qpku0f1BBc/I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5 -gXpa0zf3wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OCAdcw -ggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHboIHYpIHVMIHSMQsw -CQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5l -dC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF -bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENl -cnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu -dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0MFqBDzIwMTkw -NTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7UISX8+1i0Bow -HQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAaMAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EA -BAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyN -Ewr75Ji174z4xRAN95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9 -n9cd2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI= ------END CERTIFICATE----- - -Entrust.net Premium 2048 Secure Server CA -========================================= ------BEGIN CERTIFICATE----- -MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u -ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp -bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV -BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx -NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3 -d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl -MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u -ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL -Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr -hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW -nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi -VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ -KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy -T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf -zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT -J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e -nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE= ------END CERTIFICATE----- - -Baltimore CyberTrust Root -========================= ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE -ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li -ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC -SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs -dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME -uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB -UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C -G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9 -XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr -l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI -VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB -BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh -cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5 -hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa -Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H -RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp ------END CERTIFICATE----- - -Equifax Secure Global eBusiness CA -================================== ------BEGIN CERTIFICATE----- -MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT -RXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNp -bmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIwMDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMx -HDAaBgNVBAoTE0VxdWlmYXggU2VjdXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEds -b2JhbCBlQnVzaW5lc3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRV -PEnCUdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc58O/gGzN -qfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/o5brhTMhHD4ePmBudpxn -hcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAHMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j -BBgwFoAUvqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hs -MA0GCSqGSIb3DQEBBAUAA4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okEN -I7SS+RkAZ70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv8qIY -NMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV ------END CERTIFICATE----- - -Equifax Secure eBusiness CA 1 -============================= ------BEGIN CERTIFICATE----- -MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT -RXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENB -LTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQwMDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UE -ChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNz -IENBLTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ -1MRoRvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBuWqDZQu4a -IZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKwEnv+j6YDAgMBAAGjZjBk -MBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEp4MlIR21kW -Nl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRKeDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQF -AAOBgQB1W6ibAxHm6VZMzfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5 -lSE/9dR+WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN/Bf+ -KpYrtWKmpj29f5JZzVoqgrI3eQ== ------END CERTIFICATE----- - -AddTrust Low-Value Services Root -================================ ------BEGIN CERTIFICATE----- -MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML -QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU -cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw -CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO -ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6 -54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr -oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1 -Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui -GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w -HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD -AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT -RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw -HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt -ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph -iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY -eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr -mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj -ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk= ------END CERTIFICATE----- - -AddTrust External Root -====================== ------BEGIN CERTIFICATE----- -MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML -QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD -VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw -NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU -cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg -Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821 -+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw -Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo -aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy -2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7 -7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P -BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL -VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk -VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB -IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl -j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 -6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355 -e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u -G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= ------END CERTIFICATE----- - -AddTrust Public Services Root -============================= ------BEGIN CERTIFICATE----- -MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML -QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU -cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ -BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l -dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu -nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i -d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG -Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw -HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G -A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB -/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux -FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G -A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4 -JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL -+YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao -GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9 -Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H -EufOX1362KqxMy3ZdvJOOjMMK7MtkAY= ------END CERTIFICATE----- - -AddTrust Qualified Certificates Root -==================================== ------BEGIN CERTIFICATE----- -MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML -QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU -cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx -CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ -IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG -9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx -64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3 -KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o -L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR -wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU -MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/ -BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE -BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y -azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD -ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG -GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X -dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze -RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB -iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE= ------END CERTIFICATE----- - -Entrust Root Certification Authority -==================================== ------BEGIN CERTIFICATE----- -MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV -BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw -b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG -A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0 -MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu -MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu -Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v -dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz -A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww -Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68 -j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN -rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw -DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1 -MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH -hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA -A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM -Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa -v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS -W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0 -tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8 ------END CERTIFICATE----- - -RSA Security 2048 v3 -==================== ------BEGIN CERTIFICATE----- -MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK -ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy -MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb -BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC -AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7 -Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb -WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH -KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP -+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/ -MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E -FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY -v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj -0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj -VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395 -nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA -pKnXwiJPZ9d37CAFYd4= ------END CERTIFICATE----- - -GeoTrust Global CA -================== ------BEGIN CERTIFICATE----- -MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK -Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw -MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j -LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo -BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet -8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc -T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU -vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD -AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk -DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q -zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4 -d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2 -mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p -XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm -Mw== ------END CERTIFICATE----- - -GeoTrust Global CA 2 -==================== ------BEGIN CERTIFICATE----- -MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN -R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw -MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j -LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/ -NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k -LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA -Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b -HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF -MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH -K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7 -srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh -ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL -OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC -x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF -H4z1Ir+rzoPz4iIprn2DQKi6bA== ------END CERTIFICATE----- - -GeoTrust Universal CA -===================== ------BEGIN CERTIFICATE----- -MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN -R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1 -MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu -Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP -ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t -JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e -RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs -7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d -8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V -qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga -Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB -Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu -KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08 -ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0 -XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB -hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc -aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2 -qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL -oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK -xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF -KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2 -DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK -xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU -p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI -P/rmMuGNG2+k5o7Y+SlIis5z/iw= ------END CERTIFICATE----- - -GeoTrust Universal CA 2 -======================= ------BEGIN CERTIFICATE----- -MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN -R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0 -MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg -SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA -A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0 -DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17 -j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q -JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a -QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2 -WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP -20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn -ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC -SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG -8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2 -+/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E -BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z -dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ -4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+ -mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq -A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg -Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP -pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d -FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp -gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm -X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS ------END CERTIFICATE----- - -America Online Root Certification Authority 1 -============================================= ------BEGIN CERTIFICATE----- -MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT -QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp -Y2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkG -A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg -T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lkhsmj76CG -v2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym1BW32J/X3HGrfpq/m44z -DyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsWOqMFf6Dch9Wc/HKpoH145LcxVR5lu9Rh -sCFg7RAycsWSJR74kEoYeEfffjA3PlAb2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP -8c9GsEsPPt2IYriMqQkoO3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0T -AQH/BAUwAwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAUAK3Z -o/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4IBAQB8itEf -GDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkFZu90821fnZmv9ov761KyBZiibyrF -VL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAbLjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft -3OJvx8Fi8eNy1gTIdGcL+oiroQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43g -Kd8hdIaC2y+CMMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds -sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7 ------END CERTIFICATE----- - -America Online Root Certification Authority 2 -============================================= ------BEGIN CERTIFICATE----- -MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT -QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp -Y2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkG -A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg -T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQAD -ggIPADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC206B89en -fHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFciKtZHgVdEglZTvYYUAQv8 -f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2JxhP7JsowtS013wMPgwr38oE18aO6lhO -qKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9BoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JN -RvCAOVIyD+OEsnpD8l7eXz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0 -gBe4lL8BPeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67Xnfn -6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEqZ8A9W6Wa6897Gqid -FEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZo2C7HK2JNDJiuEMhBnIMoVxtRsX6 -Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnj -B453cMor9H124HhnAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3Op -aaEg5+31IqEjFNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE -AwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmnxPBUlgtk87FY -T15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2LHo1YGwRgJfMqZJS5ivmae2p -+DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzcccobGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXg -JXUjhx5c3LqdsKyzadsXg8n33gy8CNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//Zoy -zH1kUQ7rVyZ2OuMeIjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgO -ZtMADjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2FAjgQ5ANh -1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUXOm/9riW99XJZZLF0Kjhf -GEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPbAZO1XB4Y3WRayhgoPmMEEf0cjQAPuDff -Z4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQlZvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuP -cX/9XhmgD0uRuMRUvAawRY8mkaKO/qk= ------END CERTIFICATE----- - -Visa eCommerce Root -=================== ------BEGIN CERTIFICATE----- -MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG -EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug -QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2 -WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm -VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv -bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL -F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b -RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0 -TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI -/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs -GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG -MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc -CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW -YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz -zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu -YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt -398znM/jra6O1I7mT1GvFpLgXPYHDw== ------END CERTIFICATE----- - -Certum Root CA -============== ------BEGIN CERTIFICATE----- -MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK -ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla -Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u -by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x -wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL -kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ -89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K -Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P -NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq -hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+ -GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg -GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/ -0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS -qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw== ------END CERTIFICATE----- - -Comodo AAA Services root -======================== ------BEGIN CERTIFICATE----- -MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS -R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg -TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw -MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl -c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV -BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG -C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs -i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW -Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH -Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK -Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f -BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl -cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz -LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm -7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz -Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z -8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C -12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== ------END CERTIFICATE----- - -Comodo Secure Services root -=========================== ------BEGIN CERTIFICATE----- -MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS -R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg -TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw -MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu -Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi -BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP -9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc -rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC -oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V -p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E -FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w -gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj -YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm -aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm -4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj -Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL -DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw -pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H -RR3B7Hzs/Sk= ------END CERTIFICATE----- - -Comodo Trusted Services root -============================ ------BEGIN CERTIFICATE----- -MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS -R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg -TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw -MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h -bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw -IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7 -3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y -/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6 -juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS -ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud -DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB -/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp -ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl -cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw -uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32 -pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA -BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l -R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O -9y5Xt5hwXsjEeLBi ------END CERTIFICATE----- - -QuoVadis Root CA -================ ------BEGIN CERTIFICATE----- -MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE -ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 -eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz -MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp -cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD -EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk -J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL -F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL -YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen -AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w -PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y -ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7 -MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj -YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs -ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh -Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW -Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu -BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw -FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0 -aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6 -tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo -fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul -LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x -gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi -5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi -5nrQNiOKSnQ2+Q== ------END CERTIFICATE----- - -QuoVadis Root CA 2 -================== ------BEGIN CERTIFICATE----- -MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT -EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx -ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM -aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC -DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6 -XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk -lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB -lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy -lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt -66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn -wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh -D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy -BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie -J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud -DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU -a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT -ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv -Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3 -UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm -VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK -+JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW -IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1 -WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X -f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II -4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8 -VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u ------END CERTIFICATE----- - -QuoVadis Root CA 3 -================== ------BEGIN CERTIFICATE----- -MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT -EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx -OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM -aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC -DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg -DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij -KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K -DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv -BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp -p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8 -nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX -MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM -Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz -uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT -BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj -YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0 -aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB -BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD -VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4 -ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE -AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV -qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s -hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z -POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2 -Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp -8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC -bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu -g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p -vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr -qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto= ------END CERTIFICATE----- - -Security Communication Root CA -============================== ------BEGIN CERTIFICATE----- -MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP -U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw -HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP -U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw -8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM -DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX -5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd -DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2 -JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw -DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g -0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a -mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ -s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ -6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi -FL39vmwLAw== ------END CERTIFICATE----- - -Sonera Class 2 Root CA -====================== ------BEGIN CERTIFICATE----- -MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG -U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw -NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh -IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3 -/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT -dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG -f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P -tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH -nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT -XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt -0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI -cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph -Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx -EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH -llpwrN9M ------END CERTIFICATE----- - -Staat der Nederlanden Root CA -============================= ------BEGIN CERTIFICATE----- -MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE -ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g -Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w -HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh -bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt -vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P -jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca -C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth -vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6 -22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV -HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v -dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN -BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR -EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw -MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y -nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR -iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw== ------END CERTIFICATE----- - -TDC Internet Root CA -==================== ------BEGIN CERTIFICATE----- -MIIEKzCCAxOgAwIBAgIEOsylTDANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJESzEVMBMGA1UE -ChMMVERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTAeFw0wMTA0MDUx -NjMzMTdaFw0yMTA0MDUxNzAzMTdaMEMxCzAJBgNVBAYTAkRLMRUwEwYDVQQKEwxUREMgSW50ZXJu -ZXQxHTAbBgNVBAsTFFREQyBJbnRlcm5ldCBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAxLhAvJHVYx/XmaCLDEAedLdInUaMArLgJF/wGROnN4NrXceO+YQwzho7+vvOi20j -xsNuZp+Jpd/gQlBn+h9sHvTQBda/ytZO5GhgbEaqHF1j4QeGDmUApy6mcca8uYGoOn0a0vnRrEvL -znWv3Hv6gXPU/Lq9QYjUdLP5Xjg6PEOo0pVOd20TDJ2PeAG3WiAfAzc14izbSysseLlJ28TQx5yc -5IogCSEWVmb/Bexb4/DPqyQkXsN/cHoSxNK1EKC2IeGNeGlVRGn1ypYcNIUXJXfi9i8nmHj9eQY6 -otZaQ8H/7AQ77hPv01ha/5Lr7K7a8jcDR0G2l8ktCkEiu7vmpwIDAQABo4IBJTCCASEwEQYJYIZI -AYb4QgEBBAQDAgAHMGUGA1UdHwReMFwwWqBYoFakVDBSMQswCQYDVQQGEwJESzEVMBMGA1UEChMM -VERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTENMAsGA1UEAxMEQ1JM -MTArBgNVHRAEJDAigA8yMDAxMDQwNTE2MzMxN1qBDzIwMjEwNDA1MTcwMzE3WjALBgNVHQ8EBAMC -AQYwHwYDVR0jBBgwFoAUbGQBx/2FbazI2p5QCIUItTxWqFAwHQYDVR0OBBYEFGxkAcf9hW2syNqe -UAiFCLU8VqhQMAwGA1UdEwQFMAMBAf8wHQYJKoZIhvZ9B0EABBAwDhsIVjUuMDo0LjADAgSQMA0G -CSqGSIb3DQEBBQUAA4IBAQBOQ8zR3R0QGwZ/t6T609lN+yOfI1Rb5osvBCiLtSdtiaHsmGnc540m -gwV5dOy0uaOXwTUA/RXaOYE6lTGQ3pfphqiZdwzlWqCE/xIWrG64jcN7ksKsLtB9KOy282A4aW8+ -2ARVPp7MVdK6/rtHBNcK2RYKNCn1WBPVT8+PVkuzHu7TmHnaCB4Mb7j4Fifvwm899qNLPg7kbWzb -O0ESm70NRyN/PErQr8Cv9u8btRXE64PECV90i9kR+8JWsTz4cMo0jUNAE4z9mQNUecYu6oah9jrU -Cbz0vGbMPVjQV0kK7iXiQe4T+Zs4NNEA9X7nlB38aQNiuJkFBT1reBK9sG9l ------END CERTIFICATE----- - -UTN DATACorp SGC Root CA -======================== ------BEGIN CERTIFICATE----- -MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE -BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl -IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ -BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa -MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w -HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy -dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys -raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo -wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA -9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv -33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud -DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9 -BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD -LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3 -DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft -Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0 -I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx -EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP -DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI ------END CERTIFICATE----- - -UTN USERFirst Hardware Root CA -============================== ------BEGIN CERTIFICATE----- -MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE -BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl -IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd -BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx -OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0 -eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz -ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI -wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd -tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8 -i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf -Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw -gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF -lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF -UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF -BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM -//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW -XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2 -lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn -iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67 -nfhmqA== ------END CERTIFICATE----- - -Camerfirma Chambers of Commerce Root -==================================== ------BEGIN CERTIFICATE----- -MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe -QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i -ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx -NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp -cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn -MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC -AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU -xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH -NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW -DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV -d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud -EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v -cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P -AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh -bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD -VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz -aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi -fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD -L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN -UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n -ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1 -erfutGWaIZDgqtCYvDi1czyL+Nw= ------END CERTIFICATE----- - -Camerfirma Global Chambersign Root -================================== ------BEGIN CERTIFICATE----- -MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe -QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i -ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx -NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt -YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg -MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw -ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J -1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O -by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl -6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c -8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/ -BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j -aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B -Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj -aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y -ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh -bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA -PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y -gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ -PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4 -IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes -t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A== ------END CERTIFICATE----- - -NetLock Notary (Class A) Root -============================= ------BEGIN CERTIFICATE----- -MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI -EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6 -dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j -ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX -DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH -EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD -VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz -cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM -D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ -z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC -/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7 -tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6 -4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG -A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC -Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv -bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu -IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn -LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0 -ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz -IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh -IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu -b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh -bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg -Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp -bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5 -ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP -ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB -CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr -KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM -8CgHrTwXZoi1/baI ------END CERTIFICATE----- - -NetLock Business (Class B) Root -=============================== ------BEGIN CERTIFICATE----- -MIIFSzCCBLSgAwIBAgIBaTANBgkqhkiG9w0BAQQFADCBmTELMAkGA1UEBhMCSFUxETAPBgNVBAcT -CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV -BAsTEVRhbnVzaXR2YW55a2lhZG9rMTIwMAYDVQQDEylOZXRMb2NrIFV6bGV0aSAoQ2xhc3MgQikg -VGFudXNpdHZhbnlraWFkbzAeFw05OTAyMjUxNDEwMjJaFw0xOTAyMjAxNDEwMjJaMIGZMQswCQYD -VQQGEwJIVTERMA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRv -bnNhZ2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxMjAwBgNVBAMTKU5ldExvY2sg -VXpsZXRpIChDbGFzcyBCKSBUYW51c2l0dmFueWtpYWRvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB -iQKBgQCx6gTsIKAjwo84YM/HRrPVG/77uZmeBNwcf4xKgZjupNTKihe5In+DCnVMm8Bp2GQ5o+2S -o/1bXHQawEfKOml2mrriRBf8TKPV/riXiK+IA4kfpPIEPsgHC+b5sy96YhQJRhTKZPWLgLViqNhr -1nGTLbO/CVRY7QbrqHvcQ7GhaQIDAQABo4ICnzCCApswEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNV -HQ8BAf8EBAMCAAYwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1GSUdZ -RUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pvbGdhbHRh -dGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQuIEEgaGl0 -ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2VnLWJpenRv -c2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUg -YXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJh -c2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBhIGh0dHBz -Oi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVub3J6ZXNA -bmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBhbmQgdGhl -IHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sgQ1BTIGF2 -YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBj -cHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4GBAATbrowXr/gOkDFOzT4JwG06sPgzTEdM -43WIEJessDgVkcYplswhwG08pXTP2IKlOcNl40JwuyKQ433bNXbhoLXan3BukxowOR0w2y7jfLKR -stE3Kfq51hdcR0/jHTjrn9V7lagonhVK0dHQKwCXoOKSNitjrFgBazMpUIaD8QFI ------END CERTIFICATE----- - -NetLock Express (Class C) Root -============================== ------BEGIN CERTIFICATE----- -MIIFTzCCBLigAwIBAgIBaDANBgkqhkiG9w0BAQQFADCBmzELMAkGA1UEBhMCSFUxETAPBgNVBAcT -CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV -BAsTEVRhbnVzaXR2YW55a2lhZG9rMTQwMgYDVQQDEytOZXRMb2NrIEV4cHJlc3N6IChDbGFzcyBD -KSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNTE0MDgxMVoXDTE5MDIyMDE0MDgxMVowgZsxCzAJ -BgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6 -dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE0MDIGA1UEAxMrTmV0TG9j -ayBFeHByZXNzeiAoQ2xhc3MgQykgVGFudXNpdHZhbnlraWFkbzCBnzANBgkqhkiG9w0BAQEFAAOB -jQAwgYkCgYEA6+ywbGGKIyWvYCDj2Z/8kwvbXY2wobNAOoLO/XXgeDIDhlqGlZHtU/qdQPzm6N3Z -W3oDvV3zOwzDUXmbrVWg6dADEK8KuhRC2VImESLH0iDMgqSaqf64gXadarfSNnU+sYYJ9m5tfk63 -euyucYT2BDMIJTLrdKwWRMbkQJMdf60CAwEAAaOCAp8wggKbMBIGA1UdEwEB/wQIMAYBAf8CAQQw -DgYDVR0PAQH/BAQDAgAGMBEGCWCGSAGG+EIBAQQEAwIABzCCAmAGCWCGSAGG+EIBDQSCAlEWggJN -RklHWUVMRU0hIEV6ZW4gdGFudXNpdHZhbnkgYSBOZXRMb2NrIEtmdC4gQWx0YWxhbm9zIFN6b2xn -YWx0YXRhc2kgRmVsdGV0ZWxlaWJlbiBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBB -IGhpdGVsZXNpdGVzIGZvbHlhbWF0YXQgYSBOZXRMb2NrIEtmdC4gdGVybWVrZmVsZWxvc3NlZy1i -aXp0b3NpdGFzYSB2ZWRpLiBBIGRpZ2l0YWxpcyBhbGFpcmFzIGVsZm9nYWRhc2FuYWsgZmVsdGV0 -ZWxlIGF6IGVsb2lydCBlbGxlbm9yemVzaSBlbGphcmFzIG1lZ3RldGVsZS4gQXogZWxqYXJhcyBs -ZWlyYXNhIG1lZ3RhbGFsaGF0byBhIE5ldExvY2sgS2Z0LiBJbnRlcm5ldCBob25sYXBqYW4gYSBo -dHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIGNpbWVuIHZhZ3kga2VyaGV0byBheiBlbGxlbm9y -emVzQG5ldGxvY2submV0IGUtbWFpbCBjaW1lbi4gSU1QT1JUQU5UISBUaGUgaXNzdWFuY2UgYW5k -IHRoZSB1c2Ugb2YgdGhpcyBjZXJ0aWZpY2F0ZSBpcyBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIENQ -UyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cubmV0bG9jay5uZXQvZG9jcyBvciBieSBlLW1haWwg -YXQgY3BzQG5ldGxvY2submV0LjANBgkqhkiG9w0BAQQFAAOBgQAQrX/XDDKACtiG8XmYta3UzbM2 -xJZIwVzNmtkFLp++UOv0JhQQLdRmF/iewSf98e3ke0ugbLWrmldwpu2gpO0u9f38vf5NNwgMvOOW -gyL1SRt/Syu0VMGAfJlOHdCM7tCs5ZL6dVb+ZKATj7i4Fp1hBWeAyNDYpQcCNJgEjTME1A== ------END CERTIFICATE----- - -XRamp Global CA Root -==================== ------BEGIN CERTIFICATE----- -MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE -BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj -dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx -HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg -U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp -dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu -IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx -foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE -zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs -AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry -xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud -EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap -oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC -AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc -/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt -qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n -nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz -8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw= ------END CERTIFICATE----- - -Go Daddy Class 2 CA -=================== ------BEGIN CERTIFICATE----- -MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY -VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp -ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG -A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g -RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD -ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv -2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32 -qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j -YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY -vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O -BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o -atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu -MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG -A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim -PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt -I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ -HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI -Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b -vZ8= ------END CERTIFICATE----- - -Starfield Class 2 CA -==================== ------BEGIN CERTIFICATE----- -MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc -U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg -Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo -MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG -A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG -SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY -bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ -JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm -epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN -F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF -MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f -hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo -bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g -QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs -afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM -PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl -xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD -KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3 -QBFGmh95DmK/D5fs4C8fF5Q= ------END CERTIFICATE----- - -StartCom Certification Authority -================================ ------BEGIN CERTIFICATE----- -MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN -U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu -ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0 -NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk -LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg -U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw -ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y -o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/ -Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d -eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt -2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z -6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ -osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/ -untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc -UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT -37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE -FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0 -Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj -YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH -AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw -Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg -U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5 -LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl -cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh -cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT -dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC -AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh -3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm -vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk -fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3 -fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ -EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq -yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl -1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/ -lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro -g14= ------END CERTIFICATE----- - -Taiwan GRCA -=========== ------BEGIN CERTIFICATE----- -MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG -EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X -DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv -dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD -ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN -w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5 -BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O -1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO -htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov -J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7 -Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t -B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB -O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8 -lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV -HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2 -09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ -TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj -Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2 -Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU -D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz -DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk -Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk -7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ -CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy -+fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS ------END CERTIFICATE----- - -Swisscom Root CA 1 -================== ------BEGIN CERTIFICATE----- -MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQG -EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy -dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4 -MTgyMjA2MjBaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln -aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIIC -IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9m2BtRsiM -MW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdihFvkcxC7mlSpnzNApbjyF -NDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/TilftKaNXXsLmREDA/7n29uj/x2lzZAe -AR81sH8A25Bvxn570e56eqeqDFdvpG3FEzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkC -b6dJtDZd0KTeByy2dbcokdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn -7uHbHaBuHYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNFvJbN -cA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo19AOeCMgkckkKmUp -WyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjCL3UcPX7ape8eYIVpQtPM+GP+HkM5 -haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNY -MUJDLXT5xp6mig/p/r+D5kNXJLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw -HQYDVR0hBBYwFDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j -BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzcK6FptWfUjNP9 -MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzfky9NfEBWMXrrpA9gzXrzvsMn -jgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7IkVh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQ -MbFamIp1TpBcahQq4FJHgmDmHtqBsfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4H -VtA4oJVwIHaM190e3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtl -vrsRls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ipmXeascCl -OS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HHb6D0jqTsNFFbjCYDcKF3 -1QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksfrK/7DZBaZmBwXarNeNQk7shBoJMBkpxq -nvy5JMWzFYJ+vq6VK+uxwNrjAWALXmmshFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCy -x/yP2FS1k2Kdzs9Z+z0YzirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMW -NY6E0F/6MBr1mmz0DlP5OlvRHA== ------END CERTIFICATE----- - -DigiCert Assured ID Root CA -=========================== ------BEGIN CERTIFICATE----- -MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw -IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx -MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL -ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO -9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy -UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW -/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy -oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf -GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF -66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq -hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc -EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn -SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i -8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe -+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== ------END CERTIFICATE----- - -DigiCert Global Root CA -======================= ------BEGIN CERTIFICATE----- -MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw -HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw -MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 -dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq -hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn -TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5 -BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H -4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y -7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB -o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm -8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF -BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr -EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt -tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886 -UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk -CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= ------END CERTIFICATE----- - -DigiCert High Assurance EV Root CA -================================== ------BEGIN CERTIFICATE----- -MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw -KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw -MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ -MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu -Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t -Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS -OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3 -MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ -NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe -h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB -Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY -JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ -V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp -myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK -mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe -vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K ------END CERTIFICATE----- - -Certplus Class 2 Primary CA -=========================== ------BEGIN CERTIFICATE----- -MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE -BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN -OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy -dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR -5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ -Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO -YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e -e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME -CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ -YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t -L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD -P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R -TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+ -7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW -//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7 -l7+ijrRU ------END CERTIFICATE----- - -DST Root CA X3 -============== ------BEGIN CERTIFICATE----- -MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK -ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X -DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1 -cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT -rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9 -UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy -xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d -utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T -AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ -MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug -dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE -GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw -RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS -fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ ------END CERTIFICATE----- - -DST ACES CA X6 -============== ------BEGIN CERTIFICATE----- -MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG -EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT -MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha -MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE -CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI -DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa -pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow -GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy -MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud -EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu -Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy -dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU -CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2 -5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t -Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq -nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs -vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3 -oKfN5XozNmr6mis= ------END CERTIFICATE----- - -TURKTRUST Certificate Services Provider Root 1 -============================================== ------BEGIN CERTIFICATE----- -MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2VMOcUktUUlVTVCBF -bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGDAJUUjEP -MA0GA1UEBwwGQU5LQVJBMVYwVAYDVQQKDE0oYykgMjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0 -acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1MTMx -MDI3MTdaFw0xNTAzMjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RSVVNUIEVsZWt0cm9uaWsg -U2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLExCzAJBgNVBAYMAlRSMQ8wDQYDVQQHDAZB -TktBUkExVjBUBgNVBAoMTShjKSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBC -aWxpxZ9pbSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7XfIMYGFbazt0K3gNfUW9InTojAPBxhEqPZW8qZSwu5GX -yGl8hMW0kWxsE2qkVa2kheiVfrMArwDCBRj1cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8i -Si9BB35JYbOG7E6mQW6EvAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5CurKZ -8y1UiBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1JuTm5Rh8i27fbMx4 -W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51b0dewQIDAQABoxAwDjAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAV9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46 -sWrv7/hg0Uw2ZkUd82YCdAR7kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxE -q8Sn5RTOPEFhfEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oSN7wBGjSFvW5P55Fy -B0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8KsF8kOipKMDTkcatKIdAaLX/7KfS0zgY -nNN9aV3wxqUeJBujR/xpB2jn5Jq07Q+hh4cCzofSSE7hvP/L8XKSRGQDJereW26fyfJOrN3H ------END CERTIFICATE----- - -TURKTRUST Certificate Services Provider Root 2 -============================================== ------BEGIN CERTIFICATE----- -MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF -bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP -MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg -QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN -MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr -dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G -A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls -acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe -LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI -x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g -QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr -5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB -AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G -A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt -Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4 -Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+ -hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P -9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5 -UrbnBEI= ------END CERTIFICATE----- - -SwissSign Gold CA - G2 -====================== ------BEGIN CERTIFICATE----- -MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw -EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN -MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp -c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B -AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq -t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C -jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg -vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF -ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR -AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend -jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO -peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR -7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi -GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64 -OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov -L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm -5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr -44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf -Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m -Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp -mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk -vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf -KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br -NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj -viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ ------END CERTIFICATE----- - -SwissSign Silver CA - G2 -======================== ------BEGIN CERTIFICATE----- -MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT -BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X -DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3 -aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG -9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644 -N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm -+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH -6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu -MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h -qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5 -FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs -ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc -celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X -CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ -BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB -tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0 -cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P -4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F -kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L -3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx -/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa -DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP -e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu -WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ -DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub -DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u ------END CERTIFICATE----- - -GeoTrust Primary Certification Authority -======================================== ------BEGIN CERTIFICATE----- -MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG -EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD -ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx -CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ -cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN -b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9 -nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge -RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt -tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI -hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K -Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN -NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa -Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG -1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk= ------END CERTIFICATE----- - -thawte Primary Root CA -====================== ------BEGIN CERTIFICATE----- -MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE -BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 -aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv -cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3 -MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg -SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv -KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT -FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs -oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ -1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc -q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K -aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p -afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF -AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE -uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX -xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89 -jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH -z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA== ------END CERTIFICATE----- - -VeriSign Class 3 Public Primary Certification Authority - G5 -============================================================ ------BEGIN CERTIFICATE----- -MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE -BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO -ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk -IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp -ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB -yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln -biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh -dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt -YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz -j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD -Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/ -Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r -fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/ -BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv -Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy -aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG -SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+ -X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE -KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC -Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE -ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq ------END CERTIFICATE----- - -SecureTrust CA -============== ------BEGIN CERTIFICATE----- -MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG -EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy -dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe -BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC -ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX -OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t -DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH -GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b -01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH -ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/ -BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj -aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ -KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu -SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf -mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ -nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR -3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= ------END CERTIFICATE----- - -Secure Global CA -================ ------BEGIN CERTIFICATE----- -MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG -EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH -bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg -MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg -Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx -YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ -bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g -8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV -HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi -0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud -EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn -oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA -MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+ -OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn -CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5 -3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc -f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW ------END CERTIFICATE----- - -COMODO Certification Authority -============================== ------BEGIN CERTIFICATE----- -MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE -BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG -A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1 -dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb -MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD -T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH -+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww -xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV -4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA -1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI -rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k -b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC -AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP -OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ -RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc -IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN -+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ== ------END CERTIFICATE----- - -Network Solutions Certificate Authority -======================================= ------BEGIN CERTIFICATE----- -MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG -EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr -IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx -MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu -MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx -jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT -aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT -crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc -/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB -AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP -BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv -bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA -A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q -4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/ -GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv -wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD -ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey ------END CERTIFICATE----- - -WellsSecure Public Root Certificate Authority -============================================= ------BEGIN CERTIFICATE----- -MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM -F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw -NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN -MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl -bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD -VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1 -iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13 -i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8 -bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB -K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB -AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu -cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm -lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB -i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww -GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg -Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI -K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0 -bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj -qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es -E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ -tylv2G0xffX8oRAHh84vWdw+WNs= ------END CERTIFICATE----- - -COMODO ECC Certification Authority -================================== ------BEGIN CERTIFICATE----- -MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC -R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE -ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix -GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR -Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo -b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X -4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni -wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG -FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA -U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= ------END CERTIFICATE----- - -IGC/A -===== ------BEGIN CERTIFICATE----- -MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkZSMQ8wDQYD -VQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVE -Q1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZy -MB4XDTAyMTIxMzE0MjkyM1oXDTIwMTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQI -EwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NT -STEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMIIB -IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaIs9z4iPf930Pfeo2aSVz2 -TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCW -So7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYy -HF2fYPepraX/z9E0+X1bF8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNd -frGoRpAxVs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGdPDPQ -tQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNVHSAEDjAMMAoGCCqB -egF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAxNjAfBgNVHSMEGDAWgBSjBS8YYFDC -iQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUFAAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RK -q89toB9RlPhJy3Q2FLwV3duJL92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3Q -MZsyK10XZZOYYLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg -Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2aNjSaTFR+FwNI -lQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R0982gaEbeC9xs/FZTEYYKKuF -0mBWWg== ------END CERTIFICATE----- - -Security Communication EV RootCA1 -================================= ------BEGIN CERTIFICATE----- -MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc -U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh -dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE -BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl -Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO -/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX -WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z -ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4 -bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK -9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG -SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm -iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG -Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW -mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW -T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490 ------END CERTIFICATE----- - -OISTE WISeKey Global Root GA CA -=============================== ------BEGIN CERTIFICATE----- -MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE -BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG -A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH -bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD -VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw -IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5 -IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9 -Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg -Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD -d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ -/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R -LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ -KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm -MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4 -+vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa -hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY -okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0= ------END CERTIFICATE----- - -Microsec e-Szigno Root CA -========================= ------BEGIN CERTIFICATE----- -MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAwcjELMAkGA1UE -BhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNyb3NlYyBMdGQuMRQwEgYDVQQL -EwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9zZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0 -MDYxMjI4NDRaFw0xNzA0MDYxMjI4NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVz -dDEWMBQGA1UEChMNTWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMT -GU1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2uuO/TEdyB5s87lozWbxXG -d36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/N -oqdNAoI/gqyFxuEPkEeZlApxcpMqyabAvjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjc -QR/Ji3HWVBTji1R4P770Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJ -PqW+jqpx62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcBAQRb -MFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3AwLQYIKwYBBQUHMAKG -IWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAPBgNVHRMBAf8EBTADAQH/MIIBcwYD -VR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIBAQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3 -LmUtc3ppZ25vLmh1L1NaU1ovMIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0A -dAB2AOEAbgB5ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn -AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABTAHoAbwBsAGcA -4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABhACAAcwB6AGUAcgBpAG4AdAAg -AGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABoAHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMA -egBpAGcAbgBvAC4AaAB1AC8AUwBaAFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6 -Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NO -PU1pY3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxPPU1pY3Jv -c2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5h -cnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuBEGluZm9AZS1zemlnbm8uaHWkdzB1MSMw -IQYDVQQDDBpNaWNyb3NlYyBlLVN6aWduw7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhT -WjEWMBQGA1UEChMNTWljcm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhV -MIGsBgNVHSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJIVTER -MA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDASBgNVBAsTC2UtU3pp -Z25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBSb290IENBghEAzLjnv04pGv2i3Gal -HCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMT -nGZjWS7KXHAM/IO8VbH0jgdsZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FE -aGAHQzAxQmHl7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a -86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfRhUZLphK3dehK -yVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/MPMMNz7UwiiAc7EBt51alhQB -S6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU= ------END CERTIFICATE----- - -Certigna -======== ------BEGIN CERTIFICATE----- -MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw -EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3 -MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI -Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q -XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH -GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p -ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg -DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf -Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ -tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ -BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J -SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA -hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+ -ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu -PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY -1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw -WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== ------END CERTIFICATE----- - -AC Ra\xC3\xADz Certic\xC3\xA1mara S.A. -====================================== ------BEGIN CERTIFICATE----- -MIIGZjCCBE6gAwIBAgIPB35Sk3vgFeNX8GmMy+wMMA0GCSqGSIb3DQEBBQUAMHsxCzAJBgNVBAYT -AkNPMUcwRQYDVQQKDD5Tb2NpZWRhZCBDYW1lcmFsIGRlIENlcnRpZmljYWNpw7NuIERpZ2l0YWwg -LSBDZXJ0aWPDoW1hcmEgUy5BLjEjMCEGA1UEAwwaQUMgUmHDrXogQ2VydGljw6FtYXJhIFMuQS4w -HhcNMDYxMTI3MjA0NjI5WhcNMzAwNDAyMjE0MjAyWjB7MQswCQYDVQQGEwJDTzFHMEUGA1UECgw+ -U29jaWVkYWQgQ2FtZXJhbCBkZSBDZXJ0aWZpY2FjacOzbiBEaWdpdGFsIC0gQ2VydGljw6FtYXJh -IFMuQS4xIzAhBgNVBAMMGkFDIFJhw616IENlcnRpY8OhbWFyYSBTLkEuMIICIjANBgkqhkiG9w0B -AQEFAAOCAg8AMIICCgKCAgEAq2uJo1PMSCMI+8PPUZYILrgIem08kBeGqentLhM0R7LQcNzJPNCN -yu5LF6vQhbCnIwTLqKL85XXbQMpiiY9QngE9JlsYhBzLfDe3fezTf3MZsGqy2IiKLUV0qPezuMDU -2s0iiXRNWhU5cxh0T7XrmafBHoi0wpOQY5fzp6cSsgkiBzPZkc0OnB8OIMfuuzONj8LSWKdf/WU3 -4ojC2I+GdV75LaeHM/J4Ny+LvB2GNzmxlPLYvEqcgxhaBvzz1NS6jBUJJfD5to0EfhcSM2tXSExP -2yYe68yQ54v5aHxwD6Mq0Do43zeX4lvegGHTgNiRg0JaTASJaBE8rF9ogEHMYELODVoqDA+bMMCm -8Ibbq0nXl21Ii/kDwFJnmxL3wvIumGVC2daa49AZMQyth9VXAnow6IYm+48jilSH5L887uvDdUhf -HjlvgWJsxS3EF1QZtzeNnDeRyPYL1epjb4OsOMLzP96a++EjYfDIJss2yKHzMI+ko6Kh3VOz3vCa -Mh+DkXkwwakfU5tTohVTP92dsxA7SH2JD/ztA/X7JWR1DhcZDY8AFmd5ekD8LVkH2ZD6mq093ICK -5lw1omdMEWux+IBkAC1vImHFrEsm5VoQgpukg3s0956JkSCXjrdCx2bD0Omk1vUgjcTDlaxECp1b -czwmPS9KvqfJpxAe+59QafMCAwEAAaOB5jCB4zAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE -AwIBBjAdBgNVHQ4EFgQU0QnQ6dfOeXRU+Tows/RtLAMDG2gwgaAGA1UdIASBmDCBlTCBkgYEVR0g -ADCBiTArBggrBgEFBQcCARYfaHR0cDovL3d3dy5jZXJ0aWNhbWFyYS5jb20vZHBjLzBaBggrBgEF -BQcCAjBOGkxMaW1pdGFjaW9uZXMgZGUgZ2FyYW507WFzIGRlIGVzdGUgY2VydGlmaWNhZG8gc2Ug -cHVlZGVuIGVuY29udHJhciBlbiBsYSBEUEMuMA0GCSqGSIb3DQEBBQUAA4ICAQBclLW4RZFNjmEf -AygPU3zmpFmps4p6xbD/CHwso3EcIRNnoZUSQDWDg4902zNc8El2CoFS3UnUmjIz75uny3XlesuX -EpBcunvFm9+7OSPI/5jOCk0iAUgHforA1SBClETvv3eiiWdIG0ADBaGJ7M9i4z0ldma/Jre7Ir5v -/zlXdLp6yQGVwZVR6Kss+LGGIOk/yzVb0hfpKv6DExdA7ohiZVvVO2Dpezy4ydV/NgIlqmjCMRW3 -MGXrfx1IebHPOeJCgBbT9ZMj/EyXyVo3bHwi2ErN0o42gzmRkBDI8ck1fj+404HGIGQatlDCIaR4 -3NAvO2STdPCWkPHv+wlaNECW8DYSwaN0jJN+Qd53i+yG2dIPPy3RzECiiWZIHiCznCNZc6lEc7wk -eZBWN7PGKX6jD/EpOe9+XCgycDWs2rjIdWb8m0w5R44bb5tNAlQiM+9hup4phO9OSzNHdpdqy35f -/RWmnkJDW2ZaiogN9xa5P1FlK2Zqi9E4UqLWRhH6/JocdJ6PlwsCT2TG9WjTSy3/pDceiz+/RL5h -RqGEPQgnTIEgd4kI6mdAXmwIUV80WoyWaM3X94nCHNMyAK9Sy9NgWyo6R35rMDOhYil/SrnhLecU -Iw4OGEfhefwVVdCx/CVxY3UzHCMrr1zZ7Ud3YA47Dx7SwNxkBYn8eNZcLCZDqQ== ------END CERTIFICATE----- - -TC TrustCenter Class 2 CA II -============================ ------BEGIN CERTIFICATE----- -MIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC -REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy -IENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYw -MTEyMTQzODQzWhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1 -c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UE -AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jftMjWQ+nEdVl//OEd+DFw -IxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKguNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2 -xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2JXjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQ -Xa7pIXSSTYtZgo+U4+lK8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7u -SNQZu+995OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1UdEwEB -/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3kUrL84J6E1wIqzCB -7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90 -Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU -cnVzdENlbnRlciUyMENsYXNzJTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i -SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u -TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iSGNn3Bzn1LL4G -dXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprtZjluS5TmVfwLG4t3wVMTZonZ -KNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8au0WOB9/WIFaGusyiC2y8zl3gK9etmF1Kdsj -TYjKUCjLhdLTEKJZbtOTVAB6okaVhgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kP -JOzHdiEoZa5X6AeIdUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfk -vQ== ------END CERTIFICATE----- - -TC TrustCenter Class 3 CA II -============================ ------BEGIN CERTIFICATE----- -MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC -REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy -IENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYw -MTEyMTQ0MTU3WhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1 -c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UE -AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJWHt4bNwcwIi9v8Qbxq63W -yKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+QVl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo -6SI7dYnWRBpl8huXJh0obazovVkdKyT21oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZ -uV3bOx4a+9P/FRQI2AlqukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk -2ZyqBwi1Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1UdEwEB -/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NXXAek0CSnwPIA1DCB -7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90 -Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU -cnVzdENlbnRlciUyMENsYXNzJTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i -SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u -TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlNirTzwppVMXzE -O2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8TtXqluJucsG7Kv5sbviRmEb8 -yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9 -IJqDnxrcOfHFcqMRA/07QlIp2+gB95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal -092Y+tTmBvTwtiBjS+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc -5A== ------END CERTIFICATE----- - -TC TrustCenter Universal CA I -============================= ------BEGIN CERTIFICATE----- -MIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTELMAkGA1UEBhMC -REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNVBAsTG1RDIFRydXN0Q2VudGVy -IFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcN -MDYwMzIyMTU1NDI4WhcNMjUxMjMxMjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMg -VHJ1c3RDZW50ZXIgR21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYw -JAYDVQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSRJJZ4Hgmgm5qVSkr1YnwC -qMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3TfCZdzHd55yx4Oagmcw6iXSVphU9VDprv -xrlE4Vc93x9UIuVvZaozhDrzznq+VZeujRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtw -ag+1m7Z3W0hZneTvWq3zwZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9O -gdwZu5GQfezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYDVR0j -BBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0GCSqGSIb3DQEBBQUAA4IBAQAo0uCG -1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X17caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/Cy -vwbZ71q+s2IhtNerNXxTPqYn8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3 -ghUJGooWMNjsydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT -ujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/2TYcuiUaUj0a -7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY ------END CERTIFICATE----- - -Deutsche Telekom Root CA 2 -========================== ------BEGIN CERTIFICATE----- -MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT -RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG -A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5 -MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G -A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS -b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5 -bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI -KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY -AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK -Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV -jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV -HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr -E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy -zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8 -rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G -dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU -Cm26OWMohpLzGITY+9HPBVZkVw== ------END CERTIFICATE----- - -ComSign Secured CA -================== ------BEGIN CERTIFICATE----- -MIIDqzCCApOgAwIBAgIRAMcoRwmzuGxFjB36JPU2TukwDQYJKoZIhvcNAQEFBQAwPDEbMBkGA1UE -AxMSQ29tU2lnbiBTZWN1cmVkIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQGEwJJTDAeFw0w -NDAzMjQxMTM3MjBaFw0yOTAzMTYxNTA0NTZaMDwxGzAZBgNVBAMTEkNvbVNpZ24gU2VjdXJlZCBD -QTEQMA4GA1UEChMHQ29tU2lnbjELMAkGA1UEBhMCSUwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -ggEKAoIBAQDGtWhfHZQVw6QIVS3joFd67+l0Kru5fFdJGhFeTymHDEjWaueP1H5XJLkGieQcPOqs -49ohgHMhCu95mGwfCP+hUH3ymBvJVG8+pSjsIQQPRbsHPaHA+iqYHU4Gk/v1iDurX8sWv+bznkqH -7Rnqwp9D5PGBpX8QTz7RSmKtUxvLg/8HZaWSLWapW7ha9B20IZFKF3ueMv5WJDmyVIRD9YTC2LxB -kMyd1mja6YJQqTtoz7VdApRgFrFD2UNd3V2Hbuq7s8lr9gOUCXDeFhF6K+h2j0kQmHe5Y1yLM5d1 -9guMsqtb3nQgJT/j8xH5h2iGNXHDHYwt6+UarA9z1YJZQIDTAgMBAAGjgacwgaQwDAYDVR0TBAUw -AwEB/zBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vZmVkaXIuY29tc2lnbi5jby5pbC9jcmwvQ29t -U2lnblNlY3VyZWRDQS5jcmwwDgYDVR0PAQH/BAQDAgGGMB8GA1UdIwQYMBaAFMFL7XC29z58ADsA -j8c+DkWfHl3sMB0GA1UdDgQWBBTBS+1wtvc+fAA7AI/HPg5Fnx5d7DANBgkqhkiG9w0BAQUFAAOC -AQEAFs/ukhNQq3sUnjO2QiBq1BW9Cav8cujvR3qQrFHBZE7piL1DRYHjZiM/EoZNGeQFsOY3wo3a -BijJD4mkU6l1P7CW+6tMM1X5eCZGbxs2mPtCdsGCuY7e+0X5YxtiOzkGynd6qDwJz2w2PQ8KRUtp -FhpFfTMDZflScZAmlaxMDPWLkz/MdXSFmLr/YnpNH4n+rr2UAJm/EaXc4HnFFgt9AmEd6oX5AhVP -51qJThRv4zdLhfXBPGHg/QVBspJ/wx2g0K5SZGBrGMYmnNj1ZOQ2GmKfig8+/21OGVZOIJFsnzQz -OjRXUDpvgV4GxvU+fE6OK85lBi5d0ipTdF7Tbieejw== ------END CERTIFICATE----- - -Cybertrust Global Root -====================== ------BEGIN CERTIFICATE----- -MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li -ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4 -MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD -ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA -+Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW -0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL -AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin -89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT -8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP -BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2 -MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G -A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO -lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi -5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2 -hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T -X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW -WL1WMRJOEcgh4LMRkWXbtKaIOM5V ------END CERTIFICATE----- - -ePKI Root Certification Authority -================================= ------BEGIN CERTIFICATE----- -MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG -EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg -Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx -MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq -MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B -AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs -IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi -lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv -qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX -12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O -WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+ -ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao -lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/ -vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi -Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi -MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH -ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0 -1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq -KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV -xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP -NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r -GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE -xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx -gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy -sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD -BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw= ------END CERTIFICATE----- - -T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3 -============================================================================================================================= ------BEGIN CERTIFICATE----- -MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH -DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q -aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry -b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV -BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg -S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4 -MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl -IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF -n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl -IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft -dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl -cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO -Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1 -xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR -6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL -hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd -BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF -MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4 -N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT -y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh -LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M -dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI= ------END CERTIFICATE----- - -Buypass Class 2 CA 1 -==================== ------BEGIN CERTIFICATE----- -MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU -QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAxMB4XDTA2 -MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh -c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7M -cXA0ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLXl18xoS83 -0r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVBHfCuuCkslFJgNJQ72uA4 -0Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/R -uFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0P -AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLPgcIV -1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+DKhQ7SLHrQVMdvvt -7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKuBctN518fV4bVIJwo+28TOPX2EZL2 -fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w -wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho ------END CERTIFICATE----- - -Buypass Class 3 CA 1 -==================== ------BEGIN CERTIFICATE----- -MIIDUzCCAjugAwIBAgIBAjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU -QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMyBDQSAxMB4XDTA1 -MDUwOTE0MTMwM1oXDTE1MDUwOTE0MTMwM1owSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh -c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDMgQ0EgMTCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAKSO13TZKWTeXx+HgJHqTjnmGcZEC4DVC69TB4sSveZn8AKx -ifZgisRbsELRwCGoy+Gb72RRtqfPFfV0gGgEkKBYouZ0plNTVUhjP5JW3SROjvi6K//zNIqeKNc0 -n6wv1g/xpC+9UrJJhW05NfBEMJNGJPO251P7vGGvqaMU+8IXF4Rs4HyI+MkcVyzwPX6UvCWThOia -AJpFBUJXgPROztmuOfbIUxAMZTpHe2DC1vqRycZxbL2RhzyRhkmr8w+gbCZ2Xhysm3HljbybIR6c -1jh+JIAVMYKWsUnTYjdbiAwKYjT+p0h+mbEwi5A3lRyoH6UsjfRVyNvdWQrCrXig9IsCAwEAAaNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUOBTmyPCppAP0Tj4io1vy1uCtQHQwDgYDVR0P -AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQABZ6OMySU9E2NdFm/soT4JXJEVKirZgCFPBdy7 -pYmrEzMqnji3jG8CcmPHc3ceCQa6Oyh7pEfJYWsICCD8igWKH7y6xsL+z27sEzNxZy5p+qksP2bA -EllNC1QCkoS72xLvg3BweMhT+t/Gxv/ciC8HwEmdMldg0/L2mSlf56oBzKwzqBwKu5HEA6BvtjT5 -htOzdlSY9EqBs1OdTUDs5XcTRa9bqh/YL0yCe/4qxFi7T/ye/QNlGioOw6UgFpRreaaiErS7GqQj -el/wroQk5PMr+4okoyeYZdowdXb8GZHo2+ubPzK/QJcHJrrM85SFSnonk8+QQtS4Wxam58tAA915 ------END CERTIFICATE----- - -EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 -========================================================================== ------BEGIN CERTIFICATE----- -MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNVBAMML0VCRyBF -bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMTcwNQYDVQQKDC5FQkcg -QmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXptZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAe -Fw0wNjA4MTcwMDIxMDlaFw0xNjA4MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25p -ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2lt -IFRla25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h4fuXd7hxlugTlkaDT7by -X3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAktiHq6yOU/im/+4mRDGSaBUorzAzu8T2b -gmmkTPiab+ci2hC6X5L8GCcKqKpE+i4stPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfr -eYteIAbTdgtsApWjluTLdlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZ -TqNGFav4c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8UmTDGy -Y5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z+kI2sSXFCjEmN1Zn -uqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0OLna9XvNRiYuoP1Vzv9s6xiQFlpJI -qkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMWOeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vm -ExH8nYQKE3vwO9D8owrXieqWfo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0 -Nokb+Clsi7n2l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB -/wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgwFoAU587GT/wW -Z5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+8ygjdsZs93/mQJ7ANtyVDR2t -FcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgm -zJNSroIBk5DKd8pNSe/iWtkqvTDOTLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64k -XPBfrAowzIpAoHMEwfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqT -bCmYIai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJnxk1Gj7sU -RT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4QDgZxGhBM/nV+/x5XOULK -1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9qKd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt -2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11thie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQ -Y9iJSrSq3RZj9W6+YKH47ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9 -AahH3eU7QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT ------END CERTIFICATE----- - -certSIGN ROOT CA -================ ------BEGIN CERTIFICATE----- -MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD -VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa -Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE -CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I -JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH -rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2 -ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD -0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943 -AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B -Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB -AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8 -SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0 -x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt -vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz -TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD ------END CERTIFICATE----- - -CNNIC ROOT -========== ------BEGIN CERTIFICATE----- -MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE -ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw -OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD -o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz -VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT -VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or -czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK -y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC -wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S -lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5 -Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM -O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8 -BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2 -G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m -mxE= ------END CERTIFICATE----- - -ApplicationCA - Japanese Government -=================================== ------BEGIN CERTIFICATE----- -MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEcMBoGA1UEChMT -SmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRpb25DQTAeFw0wNzEyMTIxNTAw -MDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYTAkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zl -cm5tZW50MRYwFAYDVQQLEw1BcHBsaWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEAp23gdE6Hj6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4 -fl+Kf5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55IrmTwcrN -wVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cwFO5cjFW6WY2H/CPek9AE -jP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDihtQWEjdnjDuGWk81quzMKq2edY3rZ+nYVu -nyoKb58DKTCXKB28t89UKU5RMfkntigm/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRU -WssmP3HMlEYNllPqa0jQk/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNV -BAYTAkpQMRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOCseOD -vOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADlqRHZ3ODrs -o2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJhyzjVOGjprIIC8CFqMjSnHH2HZ9g -/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYD -io+nEhEMy/0/ecGc/WLuo89UDNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmW -dupwX3kSa+SjB1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL -rosot4LKGAfmt1t06SAZf7IbiVQ= ------END CERTIFICATE----- - -GeoTrust Primary Certification Authority - G3 -============================================= ------BEGIN CERTIFICATE----- -MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE -BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0 -IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy -eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz -NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo -YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT -LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j -K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE -c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C -IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu -dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr -2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9 -cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE -Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD -AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s -t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt ------END CERTIFICATE----- - -thawte Primary Root CA - G2 -=========================== ------BEGIN CERTIFICATE----- -MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC -VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu -IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg -Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV -MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG -b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt -IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS -LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5 -8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU -mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN -G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K -rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg== ------END CERTIFICATE----- - -thawte Primary Root CA - G3 -=========================== ------BEGIN CERTIFICATE----- -MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE -BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 -aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv -cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w -ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh -d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD -VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG -A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At -P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC -+BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY -7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW -vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ -KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK -A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu -t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC -8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm -er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A= ------END CERTIFICATE----- - -GeoTrust Primary Certification Authority - G2 -============================================= ------BEGIN CERTIFICATE----- -MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC -VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu -Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD -ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1 -OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg -MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl -b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG -BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc -KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD -VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+ -EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m -ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2 -npaqBA+K ------END CERTIFICATE----- - -VeriSign Universal Root Certification Authority -=============================================== ------BEGIN CERTIFICATE----- -MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE -BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO -ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk -IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u -IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV -UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv -cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl -IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0 -aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj -1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP -MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72 -9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I -AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR -tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G -CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O -a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud -DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3 -Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx -Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx -P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P -wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4 -mJO37M2CYfE45k+XmCpajQ== ------END CERTIFICATE----- - -VeriSign Class 3 Public Primary Certification Authority - G4 -============================================================ ------BEGIN CERTIFICATE----- -MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC -VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3 -b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz -ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj -YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL -MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU -cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo -b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5 -IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8 -Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz -rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB -/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw -HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u -Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD -A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx -AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA== ------END CERTIFICATE----- - -NetLock Arany (Class Gold) Főtanúsítvány -============================================ ------BEGIN CERTIFICATE----- -MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G -A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610 -dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB -cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx -MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO -ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv -biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6 -c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu -0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw -/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk -H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw -fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1 -neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB -BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW -qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta -YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC -bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna -NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu -dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= ------END CERTIFICATE----- - -Staat der Nederlanden Root CA - G2 -================================== ------BEGIN CERTIFICATE----- -MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE -CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g -Um9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMC -TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l -ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ -5291qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8SpuOUfiUtn -vWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPUZ5uW6M7XxgpT0GtJlvOj -CwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvEpMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiil -e7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCR -OME4HYYEhLoaJXhena/MUGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpI -CT0ugpTNGmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy5V65 -48r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv6q012iDTiIJh8BIi -trzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEKeN5KzlW/HdXZt1bv8Hb/C3m1r737 -qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMB -AAGjgZcwgZQwDwYDVR0TAQH/BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcC -ARYxaHR0cDovL3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV -HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqGSIb3DQEBCwUA -A4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLySCZa59sCrI2AGeYwRTlHSeYAz -+51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwj -f/ST7ZwaUb7dRUG/kSS0H4zpX897IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaN -kqbG9AclVMwWVxJKgnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfk -CpYL+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxLvJxxcypF -URmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkmbEgeqmiSBeGCc1qb3Adb -CG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvkN1trSt8sV4pAWja63XVECDdCcAz+3F4h -oKOKwJCcaNpQ5kUQR3i2TtJlycM33+FCY7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoV -IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm -66+KAQ== ------END CERTIFICATE----- - -CA Disig -======== ------BEGIN CERTIFICATE----- -MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMK -QnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwHhcNMDYw -MzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlz -bGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgm -GErENx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnXmjxUizkD -Pw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYDXcDtab86wYqg6I7ZuUUo -hwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhWS8+2rT+MitcE5eN4TPWGqvWP+j1scaMt -ymfraHtuM6kMgiioTGohQBUgDCZbg8KpFhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8w -gfwwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0P -AQH/BAQDAgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cuZGlz -aWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5zay9jYS9jcmwvY2Ff -ZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2svY2EvY3JsL2NhX2Rpc2lnLmNybDAa -BgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEwDQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59t -WDYcPQuBDRIrRhCA/ec8J9B6yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3 -mkkp7M5+cTxqEEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/ -CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeBEicTXxChds6K -ezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFNPGO+I++MzVpQuGhU+QqZMxEA -4Z7CRneC9VkGjCFMhwnN5ag= ------END CERTIFICATE----- - -Juur-SK -======= ------BEGIN CERTIFICATE----- -MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcNAQkBFglwa2lA -c2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMRAw -DgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMwMVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqG -SIb3DQEJARYJcGtpQHNrLmVlMQswCQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVy -aW1pc2tlc2t1czEQMA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOBSvZiF3tf -TQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkzABpTpyHhOEvWgxutr2TC -+Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvHLCu3GFH+4Hv2qEivbDtPL+/40UceJlfw -UR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMPPbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDa -Tpxt4brNj3pssAki14sL2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQF -MAMBAf8wggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwICMIHD -HoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDkAGwAagBhAHMAdABh -AHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0AHMAZQBlAHIAaQBtAGkAcwBrAGUA -cwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABzAGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABr -AGkAbgBuAGkAdABhAG0AaQBzAGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nw -cy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE -FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcYP2/v6X2+MA4G -A1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOiCfP+JmeaUOTDBS8rNXiRTHyo -ERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+gkcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyL -abVAyJRld/JXIWY7zoVAtjNjGr95HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678 -IIbsSt4beDI3poHSna9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkh -Mp6qqIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0ZTbvGRNs2 -yyqcjg== ------END CERTIFICATE----- - -Hongkong Post Root CA 1 -======================= ------BEGIN CERTIFICATE----- -MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT -DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx -NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n -IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1 -ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr -auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh -qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY -V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV -HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i -h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio -l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei -IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps -T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT -c4afU9hDDl3WY4JxHYB0yvbiAmvZWg== ------END CERTIFICATE----- - -SecureSign RootCA11 -=================== ------BEGIN CERTIFICATE----- -MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi -SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS -b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw -KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1 -cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL -TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO -wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq -g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP -O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA -bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX -t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh -OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r -bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ -Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01 -y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061 -lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I= ------END CERTIFICATE----- - -ACEDICOM Root -============= ------BEGIN CERTIFICATE----- -MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UEAwwNQUNFRElD -T00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMB4XDTA4 -MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEWMBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoG -A1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEF -AAOCAg8AMIICCgKCAgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHk -WLn709gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7XBZXehuD -YAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5PGrjm6gSSrj0RuVFCPYew -MYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAKt0SdE3QrwqXrIhWYENiLxQSfHY9g5QYb -m8+5eaA9oiM/Qj9r+hwDezCNzmzAv+YbX79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbk -HQl/Sog4P75n/TSW9R28MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTT -xKJxqvQUfecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI2Sf2 -3EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyHK9caUPgn6C9D4zq9 -2Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEaeZAwUswdbxcJzbPEHXEUkFDWug/Fq -TYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz -4SsrSbbXc6GqlPUB53NlTKxQMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU -9QHnc2VMrFAwRAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv -bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWImfQwng4/F9tqg -aHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3gvoFNTPhNahXwOf9jU8/kzJP -eGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKeI6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1Pwk -zQSulgUV1qzOMPPKC8W64iLgpq0i5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1 -ThCojz2GuHURwCRiipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oI -KiMnMCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZo5NjEFIq -nxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6zqylfDJKZ0DcMDQj3dcE -I2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacNGHk0vFQYXlPKNFHtRQrmjseCNj6nOGOp -MCwXEGCSn1WHElkQwg9naRHMTh5+Spqtr0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3o -tkYNbn5XOmeUwssfnHdKZ05phkOTOPu220+DkdRgfks+KzgHVZhepA== ------END CERTIFICATE----- - -Verisign Class 3 Public Primary Certification Authority -======================================================= ------BEGIN CERTIFICATE----- -MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCVVMx -FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5 -IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVow -XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz -IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA -A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94 -f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol -hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBABByUqkFFBky -CEHwxWsKzH4PIRnN5GfcX6kb5sroc50i2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWX -bj9T/UWZYB2oK0z5XqcJ2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/ -D/xwzoiQ ------END CERTIFICATE----- - -Microsec e-Szigno Root CA 2009 -============================== ------BEGIN CERTIFICATE----- -MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER -MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv -c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o -dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE -BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt -U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA -fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG -0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA -pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm -1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC -AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf -QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE -FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o -lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX -I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 -tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02 -yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi -LXpUq3DDfSJlgnCW ------END CERTIFICATE----- - -E-Guven Kok Elektronik Sertifika Hizmet Saglayicisi -=================================================== ------BEGIN CERTIFICATE----- -MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG -EwJUUjEoMCYGA1UEChMfRWxla3Ryb25payBCaWxnaSBHdXZlbmxpZ2kgQS5TLjE8MDoGA1UEAxMz -ZS1HdXZlbiBLb2sgRWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhZ2xheWljaXNpMB4XDTA3 -MDEwNDExMzI0OFoXDTE3MDEwNDExMzI0OFowdTELMAkGA1UEBhMCVFIxKDAmBgNVBAoTH0VsZWt0 -cm9uaWsgQmlsZ2kgR3V2ZW5saWdpIEEuUy4xPDA6BgNVBAMTM2UtR3V2ZW4gS29rIEVsZWt0cm9u -aWsgU2VydGlmaWthIEhpem1ldCBTYWdsYXlpY2lzaTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBAMMSIJ6wXgBljU5Gu4Bc6SwGl9XzcslwuedLZYDBS75+PNdUMZTe1RK6UxYC6lhj71vY -8+0qGqpxSKPcEC1fX+tcS5yWCEIlKBHMilpiAVDV6wlTL/jDj/6z/P2douNffb7tC+Bg62nsM+3Y -jfsSSYMAyYuXjDtzKjKzEve5TfL0TW3H5tYmNwjy2f1rXKPlSFxYvEK+A1qBuhw1DADT9SN+cTAI -JjjcJRFHLfO6IxClv7wC90Nex/6wN1CZew+TzuZDLMN+DfIcQ2Zgy2ExR4ejT669VmxMvLz4Bcpk -9Ok0oSy1c+HCPujIyTQlCFzz7abHlJ+tiEMl1+E5YP6sOVkCAwEAAaNCMEAwDgYDVR0PAQH/BAQD -AgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ/uRLOU1fqRTy7ZVZoEVtstxNulMA0GCSqG -SIb3DQEBBQUAA4IBAQB/X7lTW2M9dTLn+sR0GstG30ZpHFLPqk/CaOv/gKlR6D1id4k9CnU58W5d -F4dvaAXBlGzZXd/aslnLpRCKysw5zZ/rTt5S/wzw9JKp8mxTq5vSR6AfdPebmvEvFZ96ZDAYBzwq -D2fK/A+JYZ1lpTzlvBNbCNvj/+27BrtqBrF6T2XGgv0enIu1De5Iu7i9qgi0+6N8y5/NkHZchpZ4 -Vwpm+Vganf2XKWDeEaaQHBkc7gGWIjQ0LpH5t8Qn0Xvmv/uARFoW5evg1Ao4vOSR49XrXMGs3xtq -fJ7lddK2l4fbzIcrQzqECK+rPNv3PGYxhrCdU3nt+CPeQuMtgvEP5fqX ------END CERTIFICATE----- - -GlobalSign Root CA - R3 -======================= ------BEGIN CERTIFICATE----- -MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv -YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh -bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT -aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln -bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt -iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ -0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3 -rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl -OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2 -xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE -FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7 -lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8 -EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E -bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18 -YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r -kpeDMdmztcpHWD9f ------END CERTIFICATE----- - -Autoridad de Certificacion Firmaprofesional CIF A62634068 -========================================================= ------BEGIN CERTIFICATE----- -MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA -BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 -MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw -QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB -NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD -Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P -B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY -7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH -ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI -plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX -MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX -LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK -bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU -vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud -EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH -DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp -cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA -bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx -ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx -51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk -R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP -T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f -Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl -osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR -crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR -saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD -KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi -6Et8Vcad+qMUu2WFbm5PEn4KPJ2V ------END CERTIFICATE----- - -Izenpe.com -========== ------BEGIN CERTIFICATE----- -MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG -EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz -MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu -QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ -03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK -ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU -+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC -PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT -OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK -F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK -0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+ -0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB -leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID -AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+ -SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG -NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx -MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O -BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l -Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga -kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q -hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs -g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5 -aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5 -nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC -ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo -Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z -WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw== ------END CERTIFICATE----- - -Chambers of Commerce Root - 2008 -================================ ------BEGIN CERTIFICATE----- -MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD -MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv -bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu -QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy -Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl -ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF -EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl -cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA -XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj -h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/ -ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk -NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g -D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331 -lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ -0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj -ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2 -EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI -G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ -BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh -bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh -bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC -CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH -AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1 -wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH -3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU -RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6 -M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1 -YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF -9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK -zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG -nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg -OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ ------END CERTIFICATE----- - -Global Chambersign Root - 2008 -============================== ------BEGIN CERTIFICATE----- -MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD -MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv -bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu -QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx -NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg -Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ -QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD -aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf -VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf -XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0 -ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB -/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA -TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M -H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe -Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF -HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh -wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB -AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT -BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE -BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm -aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm -aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp -1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0 -dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG -/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6 -ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s -dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg -9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH -foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du -qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr -P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq -c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z -09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B ------END CERTIFICATE----- - -Go Daddy Root Certificate Authority - G2 -======================================== ------BEGIN CERTIFICATE----- -MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT -B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu -MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 -MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 -b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G -A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq -9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD -+qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd -fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl -NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9 -BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac -vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r -5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV -N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO -LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1 ------END CERTIFICATE----- - -Starfield Root Certificate Authority - G2 -========================================= ------BEGIN CERTIFICATE----- -MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT -B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s -b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 -eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw -DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg -VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB -dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv -W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs -bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk -N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf -ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU -JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol -TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx -4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw -F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K -pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ -c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 ------END CERTIFICATE----- - -Starfield Services Root Certificate Authority - G2 -================================================== ------BEGIN CERTIFICATE----- -MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT -B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s -b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl -IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV -BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT -dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg -Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2 -h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa -hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP -LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB -rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw -AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG -SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP -E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy -xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd -iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza -YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6 ------END CERTIFICATE----- - -AffirmTrust Commercial -====================== ------BEGIN CERTIFICATE----- -MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS -BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw -MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly -bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb -DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV -C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6 -BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww -MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV -HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG -hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi -qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv -0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh -sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= ------END CERTIFICATE----- - -AffirmTrust Networking -====================== ------BEGIN CERTIFICATE----- -MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS -BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw -MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly -bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE -Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI -dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24 -/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb -h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV -HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu -UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6 -12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23 -WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9 -/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= ------END CERTIFICATE----- - -AffirmTrust Premium -=================== ------BEGIN CERTIFICATE----- -MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS -BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy -OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy -dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A -MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn -BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV -5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs -+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd -GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R -p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI -S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04 -6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5 -/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo -+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB -/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv -MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg -Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC -6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S -L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK -+4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV -BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg -IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60 -g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb -zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw== ------END CERTIFICATE----- - -AffirmTrust Premium ECC -======================= ------BEGIN CERTIFICATE----- -MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV -BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx -MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U -cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA -IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ -N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW -BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK -BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X -57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM -eQ== ------END CERTIFICATE----- - -Certum Trusted Network CA -========================= ------BEGIN CERTIFICATE----- -MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK -ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy -MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU -ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC -l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J -J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4 -fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0 -cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB -Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw -DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj -jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1 -mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj -Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI -03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= ------END CERTIFICATE----- - -Certinomis - Autorité Racine -============================= ------BEGIN CERTIFICATE----- -MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK -Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg -LSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkG -A1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYw -JAYDVQQDDB1DZXJ0aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQAD -ggIPADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jYF1AMnmHa -wE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N8y4oH3DfVS9O7cdxbwly -Lu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWerP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw -2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92N -jMD2AR5vpTESOH2VwnHu7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9q -c1pkIuVC28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6lSTC -lrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1Enn1So2+WLhl+HPNb -xxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB0iSVL1N6aaLwD4ZFjliCK0wi1F6g -530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql095gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna -4NH4+ej9Uji29YnfAgMBAAGjWzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G -A1UdDgQWBBQNjLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ -KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9sov3/4gbIOZ/x -WqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZMOH8oMDX/nyNTt7buFHAAQCva -R6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40 -nJ+U8/aGH88bc62UeYdocMMzpXDn2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1B -CxMjidPJC+iKunqjo3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjv -JL1vnxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG5ERQL1TE -qkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWqpdEdnV1j6CTmNhTih60b -WfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZbdsLLO7XSAPCjDuGtbkD326C00EauFddE -wk01+dIL8hf2rGbVJLJP0RyZwG71fet0BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/ -vgt2Fl43N+bYdJeimUV5 ------END CERTIFICATE----- - -Root CA Generalitat Valenciana -============================== ------BEGIN CERTIFICATE----- -MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJFUzEfMB0GA1UE -ChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290 -IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcNMDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3 -WjBoMQswCQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UE -CxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+WmmmO3I2 -F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKjSgbwJ/BXufjpTjJ3Cj9B -ZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGlu6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQ -D0EbtFpKd71ng+CT516nDOeB0/RSrFOyA8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXte -JajCq+TA81yc477OMUxkHl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMB -AAGjggM7MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBraS5n -dmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIICIwYKKwYBBAG/VQIB -ADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBl -AHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIAYQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIA -YQBsAGkAdABhAHQAIABWAGEAbABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQBy -AGEAYwBpAPMAbgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA -aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMAaQBvAG4AYQBt -AGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQAZQAgAEEAdQB0AG8AcgBpAGQA -YQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBu -AHQAcgBhACAAZQBuACAAbABhACAAZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAA -OgAvAC8AdwB3AHcALgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0 -dHA6Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+yeAT8MIGV -BgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQswCQYDVQQGEwJFUzEfMB0G -A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5S -b290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRh -TvW1yEICKrNcda3FbcrnlD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdz -Ckj+IHLtb8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg9J63 -NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XFducTZnV+ZfsBn5OH -iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt -+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM= ------END CERTIFICATE----- - -A-Trust-nQual-03 -================ ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJBVDFIMEYGA1UE -Cgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy -a2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5RdWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5R -dWFsLTAzMB4XDTA1MDgxNzIyMDAwMFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgw -RgYDVQQKDD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0 -ZW52ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMMEEEtVHJ1 -c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtPWFuA/OQO8BBC4SA -zewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUjlUC5B3ilJfYKvUWG6Nm9wASOhURh73+n -yfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZznF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPE -SU7l0+m0iKsMrmKS1GWH2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4 -iHQF63n1k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs2e3V -cuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0OBAoECERqlWdV -eRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAVdRU0VlIXLOThaq/Yy/kgM40 -ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fGKOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmr -sQd7TZjTXLDR8KdCoLXEjq/+8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZd -JXDRZslo+S4RFGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS -mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmEDNuxUCAKGkq6 -ahq97BvIxYSazQ== ------END CERTIFICATE----- - -TWCA Root Certification Authority -================================= ------BEGIN CERTIFICATE----- -MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ -VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG -EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB -IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK -AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx -QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC -oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP -4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r -y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB -BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG -9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC -mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW -QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY -T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny -Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== ------END CERTIFICATE----- - -Security Communication RootCA2 -============================== ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc -U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh -dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC -SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy -aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++ -+T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R -3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV -spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K -EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8 -QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB -CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj -u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk -3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q -tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29 -mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 ------END CERTIFICATE----- - -EC-ACC -====== ------BEGIN CERTIFICATE----- -MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE -BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w -ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD -VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE -CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT -BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7 -MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt -SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl -Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh -cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK -w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT -ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4 -HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a -E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw -0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD -VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0 -Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l -dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ -lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa -Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe -l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2 -E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D -5EI= ------END CERTIFICATE----- - -Hellenic Academic and Research Institutions RootCA 2011 -======================================================= ------BEGIN CERTIFICATE----- -MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT -O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y -aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z -IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT -AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z -IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo -IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI -1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa -71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u -8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH -3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/ -MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8 -MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu -b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt -XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 -TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD -/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N -7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4 ------END CERTIFICATE----- - -Actalis Authentication Root CA -============================== ------BEGIN CERTIFICATE----- -MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM -BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE -AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky -MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz -IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290 -IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ -wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa -by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6 -zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f -YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2 -oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l -EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7 -hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8 -EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5 -jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY -iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt -ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI -WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0 -JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx -K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+ -Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC -4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo -2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz -lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem -OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9 -vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg== ------END CERTIFICATE----- - -Trustis FPS Root CA -=================== ------BEGIN CERTIFICATE----- -MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG -EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290 -IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV -BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ -KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ -RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk -H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa -cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt -o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA -AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd -BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c -GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC -yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P -8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV -l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl -iB6XzCGcKQENZetX2fNXlrtIzYE= ------END CERTIFICATE----- - -StartCom Certification Authority -================================ ------BEGIN CERTIFICATE----- -MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN -U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu -ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0 -NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk -LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg -U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw -ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y -o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/ -Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d -eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt -2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z -6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ -osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/ -untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc -UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT -37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD -VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ -Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0 -dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu -c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv -bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0 -aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0 -aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t -L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG -cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5 -fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm -N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN -Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T -tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX -e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA -2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs -HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE -JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib -D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8= ------END CERTIFICATE----- - -StartCom Certification Authority G2 -=================================== ------BEGIN CERTIFICATE----- -MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN -U3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg -RzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UE -ChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3Jp -dHkgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8O -o1XJJZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsDvfOpL9HG -4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnooD/Uefyf3lLE3PbfHkffi -Aez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/Q0kGi4xDuFby2X8hQxfqp0iVAXV16iul -Q5XqFYSdCI0mblWbq9zSOdIxHWDirMxWRST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbs -O+wmETRIjfaAKxojAuuKHDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8H -vKTlXcxNnw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM0D4L -nMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/iUUjXuG+v+E5+M5iS -FGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9Ha90OrInwMEePnWjFqmveiJdnxMa -z6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHgTuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJ -KoZIhvcNAQELBQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K -2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfXUfEpY9Z1zRbk -J4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl6/2o1PXWT6RbdejF0mCy2wl+ -JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG -/+gyRr61M3Z3qAFdlsHB1b6uJcDJHgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTc -nIhT76IxW1hPkWLIwpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/Xld -blhYXzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5lIxKVCCIc -l85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoohdVddLHRDiBYmxOlsGOm -7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulrso8uBtjRkcfGEvRM/TAXw8HaOFvjqerm -obp573PYtlNXLfbQ4ddI ------END CERTIFICATE----- - -Buypass Class 2 Root CA -======================= ------BEGIN CERTIFICATE----- -MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU -QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X -DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 -eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw -DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1 -g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn -9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b -/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU -CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff -awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI -zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn -Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX -Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs -M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD -VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF -AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s -A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI -osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S -aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd -DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD -LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0 -oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC -wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS -CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN -rJgWVqA= ------END CERTIFICATE----- - -Buypass Class 3 Root CA -======================= ------BEGIN CERTIFICATE----- -MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU -QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X -DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 -eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw -DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH -sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR -5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh -7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ -ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH -2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV -/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ -RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA -Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq -j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD -VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF -AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV -cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G -uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG -Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8 -ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2 -KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz -6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug -UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe -eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi -Cp/HuZc= ------END CERTIFICATE----- - -T-TeleSec GlobalRoot Class 3 -============================ ------BEGIN CERTIFICATE----- -MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM -IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU -cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx -MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz -dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD -ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK -9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU -NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF -iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W -0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA -MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr -AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb -fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT -ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h -P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml -e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw== ------END CERTIFICATE----- - -EE Certification Centre Root CA -=============================== ------BEGIN CERTIFICATE----- -MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG -EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy -dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw -MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB -UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy -ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB -DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM -TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2 -rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw -93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN -P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T -AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ -MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF -BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj -xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM -lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u -uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU -3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM -dcGWxZ0= ------END CERTIFICATE----- - -TURKTRUST Certificate Services Provider Root 2007 -================================================= ------BEGIN CERTIFICATE----- -MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOcUktUUlVTVCBF -bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP -MA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg -QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4X -DTA3MTIyNTE4MzcxOVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxl -a3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMCVFIxDzAN -BgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp -bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4gKGMpIEFyYWzEsWsgMjAwNzCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9N -YvDdE3ePYakqtdTyuTFYKTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQv -KUmi8wUG+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveGHtya -KhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6PIzdezKKqdfcYbwnT -rqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M733WB2+Y8a+xwXrXgTW4qhe04MsC -AwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHkYb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAP -BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/s -Px+EnWVUXKgWAkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I -aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5mxRZNTZPz/OO -Xl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsaXRik7r4EW5nVcV9VZWRi1aKb -BFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZqxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAK -poRq0Tl9 ------END CERTIFICATE----- - -D-TRUST Root Class 3 CA 2 2009 -============================== ------BEGIN CERTIFICATE----- -MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK -DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe -Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE -LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD -ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA -BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv -KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z -p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC -AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ -4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y -eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw -MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G -PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw -OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm -2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0 -o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV -dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph -X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I= ------END CERTIFICATE----- - -D-TRUST Root Class 3 CA 2 EV 2009 -================================= ------BEGIN CERTIFICATE----- -MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK -DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw -OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK -DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw -OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS -egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh -zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T -7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60 -sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35 -11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv -cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v -ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El -MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp -b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh -c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+ -PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05 -nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX -ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA -NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv -w9y4AyHqnxbxLFS1 ------END CERTIFICATE----- - -PSCProcert -========== ------BEGIN CERTIFICATE----- -MIIJhjCCB26gAwIBAgIBCzANBgkqhkiG9w0BAQsFADCCAR4xPjA8BgNVBAMTNUF1dG9yaWRhZCBk -ZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9sYW5vMQswCQYDVQQGEwJWRTEQ -MA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlzdHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lz -dGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBl -cmludGVuZGVuY2lhIGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUw -IwYJKoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTEwMTIyODE2NTEwMFoXDTIw -MTIyNTIzNTk1OVowgdExJjAkBgkqhkiG9w0BCQEWF2NvbnRhY3RvQHByb2NlcnQubmV0LnZlMQ8w -DQYDVQQHEwZDaGFjYW8xEDAOBgNVBAgTB01pcmFuZGExKjAoBgNVBAsTIVByb3ZlZWRvciBkZSBD -ZXJ0aWZpY2Fkb3MgUFJPQ0VSVDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZp -Y2FjaW9uIEVsZWN0cm9uaWNhMQswCQYDVQQGEwJWRTETMBEGA1UEAxMKUFNDUHJvY2VydDCCAiIw -DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANW39KOUM6FGqVVhSQ2oh3NekS1wwQYalNo97BVC -wfWMrmoX8Yqt/ICV6oNEolt6Vc5Pp6XVurgfoCfAUFM+jbnADrgV3NZs+J74BCXfgI8Qhd19L3uA -3VcAZCP4bsm+lU/hdezgfl6VzbHvvnpC2Mks0+saGiKLt38GieU89RLAu9MLmV+QfI4tL3czkkoh -RqipCKzx9hEC2ZUWno0vluYC3XXCFCpa1sl9JcLB/KpnheLsvtF8PPqv1W7/U0HU9TI4seJfxPmO -EO8GqQKJ/+MMbpfg353bIdD0PghpbNjU5Db4g7ayNo+c7zo3Fn2/omnXO1ty0K+qP1xmk6wKImG2 -0qCZyFSTXai20b1dCl53lKItwIKOvMoDKjSuc/HUtQy9vmebVOvh+qBa7Dh+PsHMosdEMXXqP+UH -0quhJZb25uSgXTcYOWEAM11G1ADEtMo88aKjPvM6/2kwLkDd9p+cJsmWN63nOaK/6mnbVSKVUyqU -td+tFjiBdWbjxywbk5yqjKPK2Ww8F22c3HxT4CAnQzb5EuE8XL1mv6JpIzi4mWCZDlZTOpx+FIyw -Bm/xhnaQr/2v/pDGj59/i5IjnOcVdo/Vi5QTcmn7K2FjiO/mpF7moxdqWEfLcU8UC17IAggmosvp -r2uKGcfLFFb14dq12fy/czja+eevbqQ34gcnAgMBAAGjggMXMIIDEzASBgNVHRMBAf8ECDAGAQH/ -AgEBMDcGA1UdEgQwMC6CD3N1c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAz -Ni0wMB0GA1UdDgQWBBRBDxk4qpl/Qguk1yeYVKIXTC1RVDCCAVAGA1UdIwSCAUcwggFDgBStuyId -xuDSAaj9dlBSk+2YwU2u06GCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0b3JpZGFkIGRlIENlcnRp -ZmljYWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xhbm8xCzAJBgNVBAYTAlZFMRAwDgYDVQQH -EwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0byBDYXBpdGFsMTYwNAYDVQQKEy1TaXN0ZW1hIE5h -Y2lvbmFsIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5k -ZW5jaWEgZGUgU2VydmljaW9zIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkqhkiG -9w0BCQEWFmFjcmFpekBzdXNjZXJ0ZS5nb2IudmWCAQowDgYDVR0PAQH/BAQDAgEGME0GA1UdEQRG -MESCDnByb2NlcnQubmV0LnZloBUGBWCGXgIBoAwMClBTQy0wMDAwMDKgGwYFYIZeAgKgEgwQUklG -LUotMzE2MzUzNzMtNzB2BgNVHR8EbzBtMEagRKBChkBodHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52 -ZS9sY3IvQ0VSVElGSUNBRE8tUkFJWi1TSEEzODRDUkxERVIuY3JsMCOgIaAfhh1sZGFwOi8vYWNy -YWl6LnN1c2NlcnRlLmdvYi52ZTA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9v -Y3NwLnN1c2NlcnRlLmdvYi52ZTBBBgNVHSAEOjA4MDYGBmCGXgMBAjAsMCoGCCsGAQUFBwIBFh5o -dHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9kcGMwDQYJKoZIhvcNAQELBQADggIBACtZ6yKZu4Sq -T96QxtGGcSOeSwORR3C7wJJg7ODU523G0+1ng3dS1fLld6c2suNUvtm7CpsR72H0xpkzmfWvADmN -g7+mvTV+LFwxNG9s2/NkAZiqlCxB3RWGymspThbASfzXg0gTB1GEMVKIu4YXx2sviiCtxQuPcD4q -uxtxj7mkoP3YldmvWb8lK5jpY5MvYB7Eqvh39YtsL+1+LrVPQA3uvFd359m21D+VJzog1eWuq2w1 -n8GhHVnchIHuTQfiSLaeS5UtQbHh6N5+LwUeaO6/u5BlOsju6rEYNxxik6SgMexxbJHmpHmJWhSn -FFAFTKQAVzAswbVhltw+HoSvOULP5dAssSS830DD7X9jSr3hTxJkhpXzsOfIt+FTvZLm8wyWuevo -5pLtp4EJFAv8lXrPj9Y0TzYS3F7RNHXGRoAvlQSMx4bEqCaJqD8Zm4G7UaRKhqsLEQ+xrmNTbSjq -3TNWOByyrYDT13K9mmyZY+gAu0F2BbdbmRiKw7gSXFbPVgx96OLP7bx0R/vu0xdOIk9W/1DzLuY5 -poLWccret9W6aAjtmcz9opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3Y -eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km ------END CERTIFICATE----- - -China Internet Network Information Center EV Certificates Root -============================================================== ------BEGIN CERTIFICATE----- -MIID9zCCAt+gAwIBAgIESJ8AATANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCQ04xMjAwBgNV -BAoMKUNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyMUcwRQYDVQQDDD5D -aGluYSBJbnRlcm5ldCBOZXR3b3JrIEluZm9ybWF0aW9uIENlbnRlciBFViBDZXJ0aWZpY2F0ZXMg -Um9vdDAeFw0xMDA4MzEwNzExMjVaFw0zMDA4MzEwNzExMjVaMIGKMQswCQYDVQQGEwJDTjEyMDAG -A1UECgwpQ2hpbmEgSW50ZXJuZXQgTmV0d29yayBJbmZvcm1hdGlvbiBDZW50ZXIxRzBFBgNVBAMM -PkNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyIEVWIENlcnRpZmljYXRl -cyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm35z7r07eKpkQ0H1UN+U8i6y -jUqORlTSIRLIOTJCBumD1Z9S7eVnAztUwYyZmczpwA//DdmEEbK40ctb3B75aDFk4Zv6dOtouSCV -98YPjUesWgbdYavi7NifFy2cyjw1l1VxzUOFsUcW9SxTgHbP0wBkvUCZ3czY28Sf1hNfQYOL+Q2H -klY0bBoQCxfVWhyXWIQ8hBouXJE0bhlffxdpxWXvayHG1VA6v2G5BY3vbzQ6sm8UY78WO5upKv23 -KzhmBsUs4qpnHkWnjQRmQvaPK++IIGmPMowUc9orhpFjIpryp9vOiYurXccUwVswah+xt54ugQEC -7c+WXmPbqOY4twIDAQABo2MwYTAfBgNVHSMEGDAWgBR8cks5x8DbYqVPm6oYNJKiyoOCWTAPBgNV -HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUfHJLOcfA22KlT5uqGDSSosqD -glkwDQYJKoZIhvcNAQEFBQADggEBACrDx0M3j92tpLIM7twUbY8opJhJywyA6vPtI2Z1fcXTIWd5 -0XPFtQO3WKwMVC/GVhMPMdoG52U7HW8228gd+f2ABsqjPWYWqJ1MFn3AlUa1UeTiH9fqBk1jjZaM -7+czV0I664zBechNdn3e9rG3geCg+aF4RhcaVpjwTj2rHO3sOdwHSPdj/gauwqRcalsyiMXHM4Ws -ZkJHwlgkmeHlPuV1LI5D1l08eB6olYIpUNHRFrrvwb562bTYzB5MRuF3sTGrvSrIzo9uoV1/A3U0 -5K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATywy39FCqQmbkHzJ8= ------END CERTIFICATE----- - -Swisscom Root CA 2 -================== ------BEGIN CERTIFICATE----- -MIIF2TCCA8GgAwIBAgIQHp4o6Ejy5e/DfEoeWhhntjANBgkqhkiG9w0BAQsFADBkMQswCQYDVQQG -EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy -dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMjAeFw0xMTA2MjQwODM4MTRaFw0zMTA2 -MjUwNzM4MTRaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln -aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAyMIIC -IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlUJOhJ1R5tMJ6HJaI2nbeHCOFvErjw0DzpPM -LgAIe6szjPTpQOYXTKueuEcUMncy3SgM3hhLX3af+Dk7/E6J2HzFZ++r0rk0X2s682Q2zsKwzxNo -ysjL67XiPS4h3+os1OD5cJZM/2pYmLcX5BtS5X4HAB1f2uY+lQS3aYg5oUFgJWFLlTloYhyxCwWJ -wDaCFCE/rtuh/bxvHGCGtlOUSbkrRsVPACu/obvLP+DHVxxX6NZp+MEkUp2IVd3Chy50I9AU/SpH -Wrumnf2U5NGKpV+GY3aFy6//SSj8gO1MedK75MDvAe5QQQg1I3ArqRa0jG6F6bYRzzHdUyYb3y1a -SgJA/MTAtukxGggo5WDDH8SQjhBiYEQN7Aq+VRhxLKX0srwVYv8c474d2h5Xszx+zYIdkeNL6yxS -NLCK/RJOlrDrcH+eOfdmQrGrrFLadkBXeyq96G4DsguAhYidDMfCd7Camlf0uPoTXGiTOmekl9Ab -mbeGMktg2M7v0Ax/lZ9vh0+Hio5fCHyqW/xavqGRn1V9TrALacywlKinh/LTSlDcX3KwFnUey7QY -Ypqwpzmqm59m2I2mbJYV4+by+PGDYmy7Velhk6M99bFXi08jsJvllGov34zflVEpYKELKeRcVVi3 -qPyZ7iVNTA6z00yPhOgpD/0QVAKFyPnlw4vP5w8CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw -HQYDVR0hBBYwFDASBgdghXQBUwIBBgdghXQBUwIBMBIGA1UdEwEB/wQIMAYBAf8CAQcwHQYDVR0O -BBYEFE0mICKJS9PVpAqhb97iEoHF8TwuMB8GA1UdIwQYMBaAFE0mICKJS9PVpAqhb97iEoHF8Twu -MA0GCSqGSIb3DQEBCwUAA4ICAQAyCrKkG8t9voJXiblqf/P0wS4RfbgZPnm3qKhyN2abGu2sEzsO -v2LwnN+ee6FTSA5BesogpxcbtnjsQJHzQq0Qw1zv/2BZf82Fo4s9SBwlAjxnffUy6S8w5X2lejjQ -82YqZh6NM4OKb3xuqFp1mrjX2lhIREeoTPpMSQpKwhI3qEAMw8jh0FcNlzKVxzqfl9NX+Ave5XLz -o9v/tdhZsnPdTSpxsrpJ9csc1fV5yJmz/MFMdOO0vSk3FQQoHt5FRnDsr7p4DooqzgB53MBfGWcs -a0vvaGgLQ+OswWIJ76bdZWGgr4RVSJFSHMYlkSrQwSIjYVmvRRGFHQEkNI/Ps/8XciATwoCqISxx -OQ7Qj1zB09GOInJGTB2Wrk9xseEFKZZZ9LuedT3PDTcNYtsmjGOpI99nBjx8Oto0QuFmtEYE3saW -mA9LSHokMnWRn6z3aOkquVVlzl1h0ydw2Df+n7mvoC5Wt6NlUe07qxS/TFED6F+KBZvuim6c779o -+sjaC+NCydAXFJy3SuCvkychVSa1ZC+N8f+mQAWFBVzKBxlcCxMoTFh/wqXvRdpg065lYZ1Tg3TC -rvJcwhbtkj6EPnNgiLx29CzP0H1907he0ZESEOnN3col49XtmS++dYFLJPlFRpTJKSFTnCZFqhMX -5OfNeOI5wSsSnqaeG8XmDtkx2Q== ------END CERTIFICATE----- - -Swisscom Root EV CA 2 -===================== ------BEGIN CERTIFICATE----- -MIIF4DCCA8igAwIBAgIRAPL6ZOJ0Y9ON/RAdBB92ylgwDQYJKoZIhvcNAQELBQAwZzELMAkGA1UE -BhMCY2gxETAPBgNVBAoTCFN3aXNzY29tMSUwIwYDVQQLExxEaWdpdGFsIENlcnRpZmljYXRlIFNl -cnZpY2VzMR4wHAYDVQQDExVTd2lzc2NvbSBSb290IEVWIENBIDIwHhcNMTEwNjI0MDk0NTA4WhcN -MzEwNjI1MDg0NTA4WjBnMQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsT -HERpZ2l0YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxHjAcBgNVBAMTFVN3aXNzY29tIFJvb3QgRVYg -Q0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMT3HS9X6lds93BdY7BxUglgRCgz -o3pOCvrY6myLURYaVa5UJsTMRQdBTxB5f3HSek4/OE6zAMaVylvNwSqD1ycfMQ4jFrclyxy0uYAy -Xhqdk/HoPGAsp15XGVhRXrwsVgu42O+LgrQ8uMIkqBPHoCE2G3pXKSinLr9xJZDzRINpUKTk4Rti -GZQJo/PDvO/0vezbE53PnUgJUmfANykRHvvSEaeFGHR55E+FFOtSN+KxRdjMDUN/rhPSays/p8Li -qG12W0OfvrSdsyaGOx9/5fLoZigWJdBLlzin5M8J0TbDC77aO0RYjb7xnglrPvMyxyuHxuxenPaH -Za0zKcQvidm5y8kDnftslFGXEBuGCxobP/YCfnvUxVFkKJ3106yDgYjTdLRZncHrYTNaRdHLOdAG -alNgHa/2+2m8atwBz735j9m9W8E6X47aD0upm50qKGsaCnw8qyIL5XctcfaCNYGu+HuB5ur+rPQa -m3Rc6I8k9l2dRsQs0h4rIWqDJ2dVSqTjyDKXZpBy2uPUZC5f46Fq9mDU5zXNysRojddxyNMkM3Ox -bPlq4SjbX8Y96L5V5jcb7STZDxmPX2MYWFCBUWVv8p9+agTnNCRxunZLWB4ZvRVgRaoMEkABnRDi -xzgHcgplwLa7JSnaFp6LNYth7eVxV4O1PHGf40+/fh6Bn0GXAgMBAAGjgYYwgYMwDgYDVR0PAQH/ -BAQDAgGGMB0GA1UdIQQWMBQwEgYHYIV0AVMCAgYHYIV0AVMCAjASBgNVHRMBAf8ECDAGAQH/AgED -MB0GA1UdDgQWBBRF2aWBbj2ITY1x0kbBbkUe88SAnTAfBgNVHSMEGDAWgBRF2aWBbj2ITY1x0kbB -bkUe88SAnTANBgkqhkiG9w0BAQsFAAOCAgEAlDpzBp9SSzBc1P6xXCX5145v9Ydkn+0UjrgEjihL -j6p7jjm02Vj2e6E1CqGdivdj5eu9OYLU43otb98TPLr+flaYC/NUn81ETm484T4VvwYmneTwkLbU -wp4wLh/vx3rEUMfqe9pQy3omywC0Wqu1kx+AiYQElY2NfwmTv9SoqORjbdlk5LgpWgi/UOGED1V7 -XwgiG/W9mR4U9s70WBCCswo9GcG/W6uqmdjyMb3lOGbcWAXH7WMaLgqXfIeTK7KK4/HsGOV1timH -59yLGn602MnTihdsfSlEvoqq9X46Lmgxk7lq2prg2+kupYTNHAq4Sgj5nPFhJpiTt3tm7JFe3VE/ -23MPrQRYCd0EApUKPtN236YQHoA96M2kZNEzx5LH4k5E4wnJTsJdhw4Snr8PyQUQ3nqjsTzyP6Wq -J3mtMX0f/fwZacXduT98zca0wjAefm6S139hdlqP65VNvBFuIXxZN5nQBrz5Bm0yFqXZaajh3DyA -HmBR3NdUIR7KYndP+tiPsys6DXhyyWhBWkdKwqPrGtcKqzwyVcgKEZzfdNbwQBUdyLmPtTbFr/gi -uMod89a2GQ+fYWVq6nTIfI/DT11lgh/ZDYnadXL77/FHZxOzyNEZiCcmmpl5fx7kLD977vHeTYuW -l8PVP3wbI+2ksx0WckNLIOFZfsLorSa/ovc= ------END CERTIFICATE----- - -CA Disig Root R1 -================ ------BEGIN CERTIFICATE----- -MIIFaTCCA1GgAwIBAgIJAMMDmu5QkG4oMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNVBAYTAlNLMRMw -EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp -ZyBSb290IFIxMB4XDTEyMDcxOTA5MDY1NloXDTQyMDcxOTA5MDY1NlowUjELMAkGA1UEBhMCU0sx -EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp -c2lnIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqw3j33Jijp1pedxiy -3QRkD2P9m5YJgNXoqqXinCaUOuiZc4yd39ffg/N4T0Dhf9Kn0uXKE5Pn7cZ3Xza1lK/oOI7bm+V8 -u8yN63Vz4STN5qctGS7Y1oprFOsIYgrY3LMATcMjfF9DCCMyEtztDK3AfQ+lekLZWnDZv6fXARz2 -m6uOt0qGeKAeVjGu74IKgEH3G8muqzIm1Cxr7X1r5OJeIgpFy4QxTaz+29FHuvlglzmxZcfe+5nk -CiKxLU3lSCZpq+Kq8/v8kiky6bM+TR8noc2OuRf7JT7JbvN32g0S9l3HuzYQ1VTW8+DiR0jm3hTa -YVKvJrT1cU/J19IG32PK/yHoWQbgCNWEFVP3Q+V8xaCJmGtzxmjOZd69fwX3se72V6FglcXM6pM6 -vpmumwKjrckWtc7dXpl4fho5frLABaTAgqWjR56M6ly2vGfb5ipN0gTco65F97yLnByn1tUD3AjL -LhbKXEAz6GfDLuemROoRRRw1ZS0eRWEkG4IupZ0zXWX4Qfkuy5Q/H6MMMSRE7cderVC6xkGbrPAX -ZcD4XW9boAo0PO7X6oifmPmvTiT6l7Jkdtqr9O3jw2Dv1fkCyC2fg69naQanMVXVz0tv/wQFx1is -XxYb5dKj6zHbHzMVTdDypVP1y+E9Tmgt2BLdqvLmTZtJ5cUoobqwWsagtQIDAQABo0IwQDAPBgNV -HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUiQq0OJMa5qvum5EY+fU8PjXQ -04IwDQYJKoZIhvcNAQEFBQADggIBADKL9p1Kyb4U5YysOMo6CdQbzoaz3evUuii+Eq5FLAR0rBNR -xVgYZk2C2tXck8An4b58n1KeElb21Zyp9HWc+jcSjxyT7Ff+Bw+r1RL3D65hXlaASfX8MPWbTx9B -LxyE04nH4toCdu0Jz2zBuByDHBb6lM19oMgY0sidbvW9adRtPTXoHqJPYNcHKfyyo6SdbhWSVhlM -CrDpfNIZTUJG7L399ldb3Zh+pE3McgODWF3vkzpBemOqfDqo9ayk0d2iLbYq/J8BjuIQscTK5Gfb -VSUZP/3oNn6z4eGBrxEWi1CXYBmCAMBrTXO40RMHPuq2MU/wQppt4hF05ZSsjYSVPCGvxdpHyN85 -YmLLW1AL14FABZyb7bq2ix4Eb5YgOe2kfSnbSM6C3NQCjR0EMVrHS/BsYVLXtFHCgWzN4funodKS -ds+xDzdYpPJScWc/DIh4gInByLUfkmO+p3qKViwaqKactV2zY9ATIKHrkWzQjX2v3wvkF7mGnjix -lAxYjOBVqjtjbZqJYLhkKpLGN/R+Q0O3c+gB53+XD9fyexn9GtePyfqFa3qdnom2piiZk4hA9z7N -UaPK6u95RyG1/jLix8NRb76AdPCkwzryT+lf3xkK8jsTQ6wxpLPn6/wY1gGp8yqPNg7rtLG8t0zJ -a7+h89n07eLw4+1knj0vllJPgFOL ------END CERTIFICATE----- - -CA Disig Root R2 -================ ------BEGIN CERTIFICATE----- -MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNVBAYTAlNLMRMw -EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp -ZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQyMDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sx -EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp -c2lnIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbC -w3OeNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNHPWSb6Wia -xswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3Ix2ymrdMxp7zo5eFm1tL7 -A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbeQTg06ov80egEFGEtQX6sx3dOy1FU+16S -GBsEWmjGycT6txOgmLcRK7fWV8x8nhfRyyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqV -g8NTEQxzHQuyRpDRQjrOQG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa -5Beny912H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJQfYE -koopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUDi/ZnWejBBhG93c+A -Ak9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORsnLMOPReisjQS1n6yqEm70XooQL6i -Fh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNV -HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5u -Qu0wDQYJKoZIhvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM -tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqfGopTpti72TVV -sRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkblvdhuDvEK7Z4bLQjb/D907Je -dR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W8 -1k/BfDxujRNt+3vrMNDcTa/F1balTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjx -mHHEt38OFdAlab0inSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01 -utI3gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18DrG5gPcFw0 -sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3OszMOl6W8KjptlwlCFtaOg -UxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8xL4ysEr3vQCj8KWefshNPZiTEUxnpHikV -7+ZtsH8tZ/3zbBt1RqPlShfppNcL ------END CERTIFICATE----- - -ACCVRAIZ1 -========= ------BEGIN CERTIFICATE----- -MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB -SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1 -MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH -UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC -DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM -jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0 -RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD -aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ -0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG -WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7 -8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR -5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J -9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK -Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw -Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu -Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 -VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM -Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA -QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh -AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA -YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj -AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA -IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk -aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0 -dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2 -MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI -hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E -R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN -YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49 -nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ -TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3 -sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h -I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg -Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd -3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p -EfbRD0tVNEYqi4Y7 ------END CERTIFICATE----- - -TWCA Global Root CA -=================== ------BEGIN CERTIFICATE----- -MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT -CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD -QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK -EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg -Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C -nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV -r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR -Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV -tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W -KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99 -sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p -yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn -kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI -zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC -AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g -cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn -LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M -8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg -/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg -lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP -A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m -i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8 -EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3 -zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0= ------END CERTIFICATE----- - -TeliaSonera Root CA v1 -====================== ------BEGIN CERTIFICATE----- -MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE -CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4 -MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW -VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+ -6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA -3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k -B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn -Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH -oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3 -F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ -oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7 -gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc -TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB -AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW -DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm -zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx -0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW -pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV -G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc -c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT -JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2 -qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6 -Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems -WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= ------END CERTIFICATE----- - -E-Tugra Certification Authority -=============================== ------BEGIN CERTIFICATE----- -MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w -DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls -ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN -ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw -NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx -QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl -cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD -DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A -MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd -hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K -CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g -ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ -BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0 -E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz -rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq -jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn -rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5 -dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB -/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG -MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK -kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO -XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807 -VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo -a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc -dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV -KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT -Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0 -8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G -C7TbO6Orb1wdtn7os4I07QZcJA== ------END CERTIFICATE----- - -T-TeleSec GlobalRoot Class 2 -============================ ------BEGIN CERTIFICATE----- -MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM -IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU -cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx -MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz -dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD -ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ -SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F -vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970 -2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV -WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA -MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy -YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4 -r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf -vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR -3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN -9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg== ------END CERTIFICATE----- - -Atos TrustedRoot 2011 -===================== ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU -cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4 -MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG -A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV -hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr -54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+ -DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320 -HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR -z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R -l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ -bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB -CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h -k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh -TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9 -61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G -3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed ------END CERTIFICATE----- - diff --git a/lib/aws-sdk/Guzzle/Http/StaticClient.php b/lib/aws-sdk/Guzzle/Http/StaticClient.php deleted file mode 100644 index dbd4c18..0000000 --- a/lib/aws-sdk/Guzzle/Http/StaticClient.php +++ /dev/null @@ -1,157 +0,0 @@ -createRequest($method, $url, null, null, $options); - - if (isset($options['stream'])) { - if ($options['stream'] instanceof StreamRequestFactoryInterface) { - return $options['stream']->fromRequest($request); - } elseif ($options['stream'] == true) { - $streamFactory = new PhpStreamRequestFactory(); - return $streamFactory->fromRequest($request); - } - } - - return $request->send(); - } - - /** - * Send a GET request - * - * @param string $url URL of the request - * @param array $options Array of request options - * - * @return \Guzzle\Http\Message\Response - * @see Guzzle::request for a list of available options - */ - public static function get($url, $options = array()) - { - return self::request('GET', $url, $options); - } - - /** - * Send a HEAD request - * - * @param string $url URL of the request - * @param array $options Array of request options - * - * @return \Guzzle\Http\Message\Response - * @see Guzzle::request for a list of available options - */ - public static function head($url, $options = array()) - { - return self::request('HEAD', $url, $options); - } - - /** - * Send a DELETE request - * - * @param string $url URL of the request - * @param array $options Array of request options - * - * @return \Guzzle\Http\Message\Response - * @see Guzzle::request for a list of available options - */ - public static function delete($url, $options = array()) - { - return self::request('DELETE', $url, $options); - } - - /** - * Send a POST request - * - * @param string $url URL of the request - * @param array $options Array of request options - * - * @return \Guzzle\Http\Message\Response - * @see Guzzle::request for a list of available options - */ - public static function post($url, $options = array()) - { - return self::request('POST', $url, $options); - } - - /** - * Send a PUT request - * - * @param string $url URL of the request - * @param array $options Array of request options - * - * @return \Guzzle\Http\Message\Response - * @see Guzzle::request for a list of available options - */ - public static function put($url, $options = array()) - { - return self::request('PUT', $url, $options); - } - - /** - * Send a PATCH request - * - * @param string $url URL of the request - * @param array $options Array of request options - * - * @return \Guzzle\Http\Message\Response - * @see Guzzle::request for a list of available options - */ - public static function patch($url, $options = array()) - { - return self::request('PATCH', $url, $options); - } - - /** - * Send an OPTIONS request - * - * @param string $url URL of the request - * @param array $options Array of request options - * - * @return \Guzzle\Http\Message\Response - * @see Guzzle::request for a list of available options - */ - public static function options($url, $options = array()) - { - return self::request('OPTIONS', $url, $options); - } -} diff --git a/lib/aws-sdk/Guzzle/Http/Url.php b/lib/aws-sdk/Guzzle/Http/Url.php deleted file mode 100644 index 6a4e772..0000000 --- a/lib/aws-sdk/Guzzle/Http/Url.php +++ /dev/null @@ -1,554 +0,0 @@ - null, 'host' => null, 'path' => null, 'port' => null, 'query' => null, - 'user' => null, 'pass' => null, 'fragment' => null); - - if (false === ($parts = parse_url($url))) { - throw new InvalidArgumentException('Was unable to parse malformed url: ' . $url); - } - - $parts += $defaults; - - // Convert the query string into a QueryString object - if ($parts['query'] || 0 !== strlen($parts['query'])) { - $parts['query'] = QueryString::fromString($parts['query']); - } - - return new static($parts['scheme'], $parts['host'], $parts['user'], - $parts['pass'], $parts['port'], $parts['path'], $parts['query'], - $parts['fragment']); - } - - /** - * Build a URL from parse_url parts. The generated URL will be a relative URL if a scheme or host are not provided. - * - * @param array $parts Array of parse_url parts - * - * @return string - */ - public static function buildUrl(array $parts) - { - $url = $scheme = ''; - - if (isset($parts['scheme'])) { - $scheme = $parts['scheme']; - $url .= $scheme . ':'; - } - - if (isset($parts['host'])) { - $url .= '//'; - if (isset($parts['user'])) { - $url .= $parts['user']; - if (isset($parts['pass'])) { - $url .= ':' . $parts['pass']; - } - $url .= '@'; - } - - $url .= $parts['host']; - - // Only include the port if it is not the default port of the scheme - if (isset($parts['port']) - && !(($scheme == 'http' && $parts['port'] == 80) || ($scheme == 'https' && $parts['port'] == 443)) - ) { - $url .= ':' . $parts['port']; - } - } - - // Add the path component if present - if (isset($parts['path']) && 0 !== strlen($parts['path'])) { - // Always ensure that the path begins with '/' if set and something is before the path - if ($url && $parts['path'][0] != '/' && substr($url, -1) != '/') { - $url .= '/'; - } - $url .= $parts['path']; - } - - // Add the query string if present - if (isset($parts['query'])) { - $url .= '?' . $parts['query']; - } - - // Ensure that # is only added to the url if fragment contains anything. - if (isset($parts['fragment'])) { - $url .= '#' . $parts['fragment']; - } - - return $url; - } - - /** - * Create a new URL from URL parts - * - * @param string $scheme Scheme of the URL - * @param string $host Host of the URL - * @param string $username Username of the URL - * @param string $password Password of the URL - * @param int $port Port of the URL - * @param string $path Path of the URL - * @param QueryString|array|string $query Query string of the URL - * @param string $fragment Fragment of the URL - */ - public function __construct($scheme, $host, $username = null, $password = null, $port = null, $path = null, QueryString $query = null, $fragment = null) - { - $this->scheme = $scheme; - $this->host = $host; - $this->port = $port; - $this->username = $username; - $this->password = $password; - $this->fragment = $fragment; - if (!$query) { - $this->query = new QueryString(); - } else { - $this->setQuery($query); - } - $this->setPath($path); - } - - /** - * Clone the URL - */ - public function __clone() - { - $this->query = clone $this->query; - } - - /** - * Returns the URL as a URL string - * - * @return string - */ - public function __toString() - { - return self::buildUrl($this->getParts()); - } - - /** - * Get the parts of the URL as an array - * - * @return array - */ - public function getParts() - { - $query = (string) $this->query; - - return array( - 'scheme' => $this->scheme, - 'user' => $this->username, - 'pass' => $this->password, - 'host' => $this->host, - 'port' => $this->port, - 'path' => $this->getPath(), - 'query' => $query !== '' ? $query : null, - 'fragment' => $this->fragment, - ); - } - - /** - * Set the host of the request. - * - * @param string $host Host to set (e.g. www.yahoo.com, yahoo.com) - * - * @return Url - */ - public function setHost($host) - { - if (strpos($host, ':') === false) { - $this->host = $host; - } else { - list($host, $port) = explode(':', $host); - $this->host = $host; - $this->setPort($port); - } - - return $this; - } - - /** - * Get the host part of the URL - * - * @return string - */ - public function getHost() - { - return $this->host; - } - - /** - * Set the scheme part of the URL (http, https, ftp, etc) - * - * @param string $scheme Scheme to set - * - * @return Url - */ - public function setScheme($scheme) - { - if ($this->scheme == 'http' && $this->port == 80) { - $this->port = null; - } elseif ($this->scheme == 'https' && $this->port == 443) { - $this->port = null; - } - - $this->scheme = $scheme; - - return $this; - } - - /** - * Get the scheme part of the URL - * - * @return string - */ - public function getScheme() - { - return $this->scheme; - } - - /** - * Set the port part of the URL - * - * @param int $port Port to set - * - * @return Url - */ - public function setPort($port) - { - $this->port = $port; - - return $this; - } - - /** - * Get the port part of the URl. Will return the default port for a given scheme if no port has been set. - * - * @return int|null - */ - public function getPort() - { - if ($this->port) { - return $this->port; - } elseif ($this->scheme == 'http') { - return 80; - } elseif ($this->scheme == 'https') { - return 443; - } - - return null; - } - - /** - * Set the path part of the URL - * - * @param array|string $path Path string or array of path segments - * - * @return Url - */ - public function setPath($path) - { - static $pathReplace = array(' ' => '%20', '?' => '%3F'); - if (is_array($path)) { - $path = '/' . implode('/', $path); - } - - $this->path = strtr($path, $pathReplace); - - return $this; - } - - /** - * Normalize the URL so that double slashes and relative paths are removed - * - * @return Url - */ - public function normalizePath() - { - if (!$this->path || $this->path == '/' || $this->path == '*') { - return $this; - } - - $results = array(); - $segments = $this->getPathSegments(); - foreach ($segments as $segment) { - if ($segment == '..') { - array_pop($results); - } elseif ($segment != '.' && $segment != '') { - $results[] = $segment; - } - } - - // Combine the normalized parts and add the leading slash if needed - $this->path = ($this->path[0] == '/' ? '/' : '') . implode('/', $results); - - // Add the trailing slash if necessary - if ($this->path != '/' && end($segments) == '') { - $this->path .= '/'; - } - - return $this; - } - - /** - * Add a relative path to the currently set path. - * - * @param string $relativePath Relative path to add - * - * @return Url - */ - public function addPath($relativePath) - { - if ($relativePath != '/' && is_string($relativePath) && strlen($relativePath) > 0) { - // Add a leading slash if needed - if ($relativePath[0] != '/') { - $relativePath = '/' . $relativePath; - } - $this->setPath(str_replace('//', '/', $this->path . $relativePath)); - } - - return $this; - } - - /** - * Get the path part of the URL - * - * @return string - */ - public function getPath() - { - return $this->path; - } - - /** - * Get the path segments of the URL as an array - * - * @return array - */ - public function getPathSegments() - { - return array_slice(explode('/', $this->getPath()), 1); - } - - /** - * Set the password part of the URL - * - * @param string $password Password to set - * - * @return Url - */ - public function setPassword($password) - { - $this->password = $password; - - return $this; - } - - /** - * Get the password part of the URL - * - * @return null|string - */ - public function getPassword() - { - return $this->password; - } - - /** - * Set the username part of the URL - * - * @param string $username Username to set - * - * @return Url - */ - public function setUsername($username) - { - $this->username = $username; - - return $this; - } - - /** - * Get the username part of the URl - * - * @return null|string - */ - public function getUsername() - { - return $this->username; - } - - /** - * Get the query part of the URL as a QueryString object - * - * @return QueryString - */ - public function getQuery() - { - return $this->query; - } - - /** - * Set the query part of the URL - * - * @param QueryString|string|array $query Query to set - * - * @return Url - */ - public function setQuery($query) - { - if (is_string($query)) { - $output = null; - parse_str($query, $output); - $this->query = new QueryString($output); - } elseif (is_array($query)) { - $this->query = new QueryString($query); - } elseif ($query instanceof QueryString) { - $this->query = $query; - } - - return $this; - } - - /** - * Get the fragment part of the URL - * - * @return null|string - */ - public function getFragment() - { - return $this->fragment; - } - - /** - * Set the fragment part of the URL - * - * @param string $fragment Fragment to set - * - * @return Url - */ - public function setFragment($fragment) - { - $this->fragment = $fragment; - - return $this; - } - - /** - * Check if this is an absolute URL - * - * @return bool - */ - public function isAbsolute() - { - return $this->scheme && $this->host; - } - - /** - * Combine the URL with another URL. Follows the rules specific in RFC 3986 section 5.4. - * - * @param string $url Relative URL to combine with - * @param bool $strictRfc3986 Set to true to use strict RFC 3986 compliance when merging paths. When first - * released, Guzzle used an incorrect algorithm for combining relative URL paths. In - * order to not break users, we introduced this flag to allow the merging of URLs based - * on strict RFC 3986 section 5.4.1. This means that "http://a.com/foo/baz" merged with - * "bar" would become "http://a.com/foo/bar". When this value is set to false, it would - * become "http://a.com/foo/baz/bar". - * @return Url - * @throws InvalidArgumentException - * @link http://tools.ietf.org/html/rfc3986#section-5.4 - */ - public function combine($url, $strictRfc3986 = false) - { - $url = self::factory($url); - - // Use the more absolute URL as the base URL - if (!$this->isAbsolute() && $url->isAbsolute()) { - $url = $url->combine($this); - } - - // Passing a URL with a scheme overrides everything - if ($buffer = $url->getScheme()) { - $this->scheme = $buffer; - $this->host = $url->getHost(); - $this->port = $url->getPort(); - $this->username = $url->getUsername(); - $this->password = $url->getPassword(); - $this->path = $url->getPath(); - $this->query = $url->getQuery(); - $this->fragment = $url->getFragment(); - return $this; - } - - // Setting a host overrides the entire rest of the URL - if ($buffer = $url->getHost()) { - $this->host = $buffer; - $this->port = $url->getPort(); - $this->username = $url->getUsername(); - $this->password = $url->getPassword(); - $this->path = $url->getPath(); - $this->query = $url->getQuery(); - $this->fragment = $url->getFragment(); - return $this; - } - - $path = $url->getPath(); - $query = $url->getQuery(); - - if (!$path) { - if (count($query)) { - $this->addQuery($query, $strictRfc3986); - } - } else { - if ($path[0] == '/') { - $this->path = $path; - } elseif ($strictRfc3986) { - $this->path .= '/../' . $path; - } else { - $this->path .= '/' . $path; - } - $this->normalizePath(); - $this->addQuery($query, $strictRfc3986); - } - - $this->fragment = $url->getFragment(); - - return $this; - } - - private function addQuery(QueryString $new, $strictRfc386) - { - if (!$strictRfc386) { - $new->merge($this->query); - } - - $this->query = $new; - } -} diff --git a/lib/aws-sdk/Guzzle/Inflection/Inflector.php b/lib/aws-sdk/Guzzle/Inflection/Inflector.php deleted file mode 100644 index c699773..0000000 --- a/lib/aws-sdk/Guzzle/Inflection/Inflector.php +++ /dev/null @@ -1,38 +0,0 @@ - array(), - 'camel' => array() - ); - - /** @var int Max entries per cache */ - protected $maxCacheSize; - - /** @var InflectorInterface Decorated inflector */ - protected $decoratedInflector; - - /** - * @param InflectorInterface $inflector Inflector being decorated - * @param int $maxCacheSize Maximum number of cached items to hold per cache - */ - public function __construct(InflectorInterface $inflector, $maxCacheSize = 500) - { - $this->decoratedInflector = $inflector; - $this->maxCacheSize = $maxCacheSize; - } - - public function snake($word) - { - if (!isset($this->cache['snake'][$word])) { - $this->pruneCache('snake'); - $this->cache['snake'][$word] = $this->decoratedInflector->snake($word); - } - - return $this->cache['snake'][$word]; - } - - /** - * Converts strings from snake_case to upper CamelCase - * - * @param string $word Value to convert into upper CamelCase - * - * @return string - */ - public function camel($word) - { - if (!isset($this->cache['camel'][$word])) { - $this->pruneCache('camel'); - $this->cache['camel'][$word] = $this->decoratedInflector->camel($word); - } - - return $this->cache['camel'][$word]; - } - - /** - * Prune one of the named caches by removing 20% of the cache if it is full - * - * @param string $cache Type of cache to prune - */ - protected function pruneCache($cache) - { - if (count($this->cache[$cache]) == $this->maxCacheSize) { - $this->cache[$cache] = array_slice($this->cache[$cache], $this->maxCacheSize * 0.2); - } - } -} diff --git a/lib/aws-sdk/Guzzle/Inflection/PreComputedInflector.php b/lib/aws-sdk/Guzzle/Inflection/PreComputedInflector.php deleted file mode 100644 index db37e4f..0000000 --- a/lib/aws-sdk/Guzzle/Inflection/PreComputedInflector.php +++ /dev/null @@ -1,59 +0,0 @@ - array(), - 'camel' => array() - ); - - /** @var InflectorInterface Decorated inflector */ - protected $decoratedInflector; - - /** - * @param InflectorInterface $inflector Inflector being decorated - * @param array $snake Hash of pre-computed camel to snake - * @param array $camel Hash of pre-computed snake to camel - * @param bool $mirror Mirror snake and camel reflections - */ - public function __construct(InflectorInterface $inflector, array $snake = array(), array $camel = array(), $mirror = false) - { - if ($mirror) { - $camel = array_merge(array_flip($snake), $camel); - $snake = array_merge(array_flip($camel), $snake); - } - - $this->decoratedInflector = $inflector; - $this->mapping = array( - 'snake' => $snake, - 'camel' => $camel - ); - } - - public function snake($word) - { - return isset($this->mapping['snake'][$word]) - ? $this->mapping['snake'][$word] - : $this->decoratedInflector->snake($word); - } - - /** - * Converts strings from snake_case to upper CamelCase - * - * @param string $word Value to convert into upper CamelCase - * - * @return string - */ - public function camel($word) - { - return isset($this->mapping['camel'][$word]) - ? $this->mapping['camel'][$word] - : $this->decoratedInflector->camel($word); - } -} diff --git a/lib/aws-sdk/Guzzle/Iterator/AppendIterator.php b/lib/aws-sdk/Guzzle/Iterator/AppendIterator.php deleted file mode 100644 index 1b6bd7e..0000000 --- a/lib/aws-sdk/Guzzle/Iterator/AppendIterator.php +++ /dev/null @@ -1,19 +0,0 @@ -getArrayIterator()->append($iterator); - } -} diff --git a/lib/aws-sdk/Guzzle/Iterator/ChunkedIterator.php b/lib/aws-sdk/Guzzle/Iterator/ChunkedIterator.php deleted file mode 100644 index d76cdd4..0000000 --- a/lib/aws-sdk/Guzzle/Iterator/ChunkedIterator.php +++ /dev/null @@ -1,56 +0,0 @@ -chunkSize = $chunkSize; - } - - public function rewind() - { - parent::rewind(); - $this->next(); - } - - public function next() - { - $this->chunk = array(); - for ($i = 0; $i < $this->chunkSize && parent::valid(); $i++) { - $this->chunk[] = parent::current(); - parent::next(); - } - } - - public function current() - { - return $this->chunk; - } - - public function valid() - { - return (bool) $this->chunk; - } -} diff --git a/lib/aws-sdk/Guzzle/Iterator/FilterIterator.php b/lib/aws-sdk/Guzzle/Iterator/FilterIterator.php deleted file mode 100644 index b103367..0000000 --- a/lib/aws-sdk/Guzzle/Iterator/FilterIterator.php +++ /dev/null @@ -1,36 +0,0 @@ -callback = $callback; - } - - public function accept() - { - return call_user_func($this->callback, $this->current()); - } -} diff --git a/lib/aws-sdk/Guzzle/Iterator/MapIterator.php b/lib/aws-sdk/Guzzle/Iterator/MapIterator.php deleted file mode 100644 index 7e586bd..0000000 --- a/lib/aws-sdk/Guzzle/Iterator/MapIterator.php +++ /dev/null @@ -1,34 +0,0 @@ -callback = $callback; - } - - public function current() - { - return call_user_func($this->callback, parent::current()); - } -} diff --git a/lib/aws-sdk/Guzzle/Iterator/MethodProxyIterator.php b/lib/aws-sdk/Guzzle/Iterator/MethodProxyIterator.php deleted file mode 100644 index de4ab03..0000000 --- a/lib/aws-sdk/Guzzle/Iterator/MethodProxyIterator.php +++ /dev/null @@ -1,27 +0,0 @@ -getInnerIterator(); - while ($i instanceof \OuterIterator) { - $i = $i->getInnerIterator(); - } - - return call_user_func_array(array($i, $name), $args); - } -} diff --git a/lib/aws-sdk/Guzzle/Log/AbstractLogAdapter.php b/lib/aws-sdk/Guzzle/Log/AbstractLogAdapter.php deleted file mode 100644 index 7f6271b..0000000 --- a/lib/aws-sdk/Guzzle/Log/AbstractLogAdapter.php +++ /dev/null @@ -1,16 +0,0 @@ -log; - } -} diff --git a/lib/aws-sdk/Guzzle/Log/ArrayLogAdapter.php b/lib/aws-sdk/Guzzle/Log/ArrayLogAdapter.php deleted file mode 100644 index a70fc8d..0000000 --- a/lib/aws-sdk/Guzzle/Log/ArrayLogAdapter.php +++ /dev/null @@ -1,34 +0,0 @@ -logs[] = array('message' => $message, 'priority' => $priority, 'extras' => $extras); - } - - /** - * Get logged entries - * - * @return array - */ - public function getLogs() - { - return $this->logs; - } - - /** - * Clears logged entries - */ - public function clearLogs() - { - $this->logs = array(); - } -} diff --git a/lib/aws-sdk/Guzzle/Log/ClosureLogAdapter.php b/lib/aws-sdk/Guzzle/Log/ClosureLogAdapter.php deleted file mode 100644 index d4bb73f..0000000 --- a/lib/aws-sdk/Guzzle/Log/ClosureLogAdapter.php +++ /dev/null @@ -1,23 +0,0 @@ -log = $logObject; - } - - public function log($message, $priority = LOG_INFO, $extras = array()) - { - call_user_func($this->log, $message, $priority, $extras); - } -} diff --git a/lib/aws-sdk/Guzzle/Log/LogAdapterInterface.php b/lib/aws-sdk/Guzzle/Log/LogAdapterInterface.php deleted file mode 100644 index d7ac4ea..0000000 --- a/lib/aws-sdk/Guzzle/Log/LogAdapterInterface.php +++ /dev/null @@ -1,18 +0,0 @@ ->>>>>>>\n{request}\n<<<<<<<<\n{response}\n--------\n{curl_stderr}"; - const SHORT_FORMAT = '[{ts}] "{method} {resource} {protocol}/{version}" {code}'; - - /** - * @var string Template used to format log messages - */ - protected $template; - - /** - * @param string $template Log message template - */ - public function __construct($template = self::DEFAULT_FORMAT) - { - $this->template = $template ?: self::DEFAULT_FORMAT; - } - - /** - * Set the template to use for logging - * - * @param string $template Log message template - * - * @return self - */ - public function setTemplate($template) - { - $this->template = $template; - - return $this; - } - - /** - * Returns a formatted message - * - * @param RequestInterface $request Request that was sent - * @param Response $response Response that was received - * @param CurlHandle $handle Curl handle associated with the message - * @param array $customData Associative array of custom template data - * - * @return string - */ - public function format( - RequestInterface $request, - Response $response = null, - CurlHandle $handle = null, - array $customData = array() - ) { - $cache = $customData; - - return preg_replace_callback( - '/{\s*([A-Za-z_\-\.0-9]+)\s*}/', - function (array $matches) use ($request, $response, $handle, &$cache) { - - if (array_key_exists($matches[1], $cache)) { - return $cache[$matches[1]]; - } - - $result = ''; - switch ($matches[1]) { - case 'request': - $result = (string) $request; - break; - case 'response': - $result = (string) $response; - break; - case 'req_body': - $result = $request instanceof EntityEnclosingRequestInterface - ? (string) $request->getBody() : ''; - break; - case 'res_body': - $result = $response ? $response->getBody(true) : ''; - break; - case 'ts': - $result = gmdate('c'); - break; - case 'method': - $result = $request->getMethod(); - break; - case 'url': - $result = (string) $request->getUrl(); - break; - case 'resource': - $result = $request->getResource(); - break; - case 'protocol': - $result = 'HTTP'; - break; - case 'version': - $result = $request->getProtocolVersion(); - break; - case 'host': - $result = $request->getHost(); - break; - case 'hostname': - $result = gethostname(); - break; - case 'port': - $result = $request->getPort(); - break; - case 'code': - $result = $response ? $response->getStatusCode() : ''; - break; - case 'phrase': - $result = $response ? $response->getReasonPhrase() : ''; - break; - case 'connect_time': - $result = $handle && $handle->getInfo(CURLINFO_CONNECT_TIME) - ? $handle->getInfo(CURLINFO_CONNECT_TIME) - : ($response ? $response->getInfo('connect_time') : ''); - break; - case 'total_time': - $result = $handle && $handle->getInfo(CURLINFO_TOTAL_TIME) - ? $handle->getInfo(CURLINFO_TOTAL_TIME) - : ($response ? $response->getInfo('total_time') : ''); - break; - case 'curl_error': - $result = $handle ? $handle->getError() : ''; - break; - case 'curl_code': - $result = $handle ? $handle->getErrorNo() : ''; - break; - case 'curl_stderr': - $result = $handle ? $handle->getStderr() : ''; - break; - default: - if (strpos($matches[1], 'req_header_') === 0) { - $result = $request->getHeader(substr($matches[1], 11)); - } elseif ($response && strpos($matches[1], 'res_header_') === 0) { - $result = $response->getHeader(substr($matches[1], 11)); - } - } - - $cache[$matches[1]] = $result; - return $result; - }, - $this->template - ); - } -} diff --git a/lib/aws-sdk/Guzzle/Log/MonologLogAdapter.php b/lib/aws-sdk/Guzzle/Log/MonologLogAdapter.php deleted file mode 100644 index 6afe7b6..0000000 --- a/lib/aws-sdk/Guzzle/Log/MonologLogAdapter.php +++ /dev/null @@ -1,34 +0,0 @@ - Logger::DEBUG, - LOG_INFO => Logger::INFO, - LOG_WARNING => Logger::WARNING, - LOG_ERR => Logger::ERROR, - LOG_CRIT => Logger::CRITICAL, - LOG_ALERT => Logger::ALERT - ); - - public function __construct(Logger $logObject) - { - $this->log = $logObject; - } - - public function log($message, $priority = LOG_INFO, $extras = array()) - { - $this->log->addRecord(self::$mapping[$priority], $message, $extras); - } -} diff --git a/lib/aws-sdk/Guzzle/Log/PsrLogAdapter.php b/lib/aws-sdk/Guzzle/Log/PsrLogAdapter.php deleted file mode 100644 index 38a2b60..0000000 --- a/lib/aws-sdk/Guzzle/Log/PsrLogAdapter.php +++ /dev/null @@ -1,36 +0,0 @@ - LogLevel::DEBUG, - LOG_INFO => LogLevel::INFO, - LOG_WARNING => LogLevel::WARNING, - LOG_ERR => LogLevel::ERROR, - LOG_CRIT => LogLevel::CRITICAL, - LOG_ALERT => LogLevel::ALERT - ); - - public function __construct(LoggerInterface $logObject) - { - $this->log = $logObject; - } - - public function log($message, $priority = LOG_INFO, $extras = array()) - { - $this->log->log(self::$mapping[$priority], $message, $extras); - } -} diff --git a/lib/aws-sdk/Guzzle/Log/Zf1LogAdapter.php b/lib/aws-sdk/Guzzle/Log/Zf1LogAdapter.php deleted file mode 100644 index 0ea8e3b..0000000 --- a/lib/aws-sdk/Guzzle/Log/Zf1LogAdapter.php +++ /dev/null @@ -1,24 +0,0 @@ -log = $logObject; - Version::warn(__CLASS__ . ' is deprecated'); - } - - public function log($message, $priority = LOG_INFO, $extras = array()) - { - $this->log->log($message, $priority, $extras); - } -} diff --git a/lib/aws-sdk/Guzzle/Log/Zf2LogAdapter.php b/lib/aws-sdk/Guzzle/Log/Zf2LogAdapter.php deleted file mode 100644 index 863f6a1..0000000 --- a/lib/aws-sdk/Guzzle/Log/Zf2LogAdapter.php +++ /dev/null @@ -1,21 +0,0 @@ -log = $logObject; - } - - public function log($message, $priority = LOG_INFO, $extras = array()) - { - $this->log->log($priority, $message, $extras); - } -} diff --git a/lib/aws-sdk/Guzzle/Parser/Cookie/CookieParser.php b/lib/aws-sdk/Guzzle/Parser/Cookie/CookieParser.php deleted file mode 100644 index 4349eeb..0000000 --- a/lib/aws-sdk/Guzzle/Parser/Cookie/CookieParser.php +++ /dev/null @@ -1,131 +0,0 @@ - 'Domain', - 'path' => 'Path', - 'max_age' => 'Max-Age', - 'expires' => 'Expires', - 'version' => 'Version', - 'secure' => 'Secure', - 'port' => 'Port', - 'discard' => 'Discard', - 'comment' => 'Comment', - 'comment_url' => 'Comment-Url', - 'http_only' => 'HttpOnly' - ); - - public function parseCookie($cookie, $host = null, $path = null, $decode = false) - { - // Explode the cookie string using a series of semicolons - $pieces = array_filter(array_map('trim', explode(';', $cookie))); - - // The name of the cookie (first kvp) must include an equal sign. - if (empty($pieces) || !strpos($pieces[0], '=')) { - return false; - } - - // Create the default return array - $data = array_merge(array_fill_keys(array_keys(self::$cookieParts), null), array( - 'cookies' => array(), - 'data' => array(), - 'path' => null, - 'http_only' => false, - 'discard' => false, - 'domain' => $host - )); - $foundNonCookies = 0; - - // Add the cookie pieces into the parsed data array - foreach ($pieces as $part) { - - $cookieParts = explode('=', $part, 2); - $key = trim($cookieParts[0]); - - if (count($cookieParts) == 1) { - // Can be a single value (e.g. secure, httpOnly) - $value = true; - } else { - // Be sure to strip wrapping quotes - $value = trim($cookieParts[1], " \n\r\t\0\x0B\""); - if ($decode) { - $value = urldecode($value); - } - } - - // Only check for non-cookies when cookies have been found - if (!empty($data['cookies'])) { - foreach (self::$cookieParts as $mapValue => $search) { - if (!strcasecmp($search, $key)) { - $data[$mapValue] = $mapValue == 'port' ? array_map('trim', explode(',', $value)) : $value; - $foundNonCookies++; - continue 2; - } - } - } - - // If cookies have not yet been retrieved, or this value was not found in the pieces array, treat it as a - // cookie. IF non-cookies have been parsed, then this isn't a cookie, it's cookie data. Cookies then data. - $data[$foundNonCookies ? 'data' : 'cookies'][$key] = $value; - } - - // Calculate the expires date - if (!$data['expires'] && $data['max_age']) { - $data['expires'] = time() + (int) $data['max_age']; - } - - // Check path attribute according RFC6265 http://tools.ietf.org/search/rfc6265#section-5.2.4 - // "If the attribute-value is empty or if the first character of the - // attribute-value is not %x2F ("/"): - // Let cookie-path be the default-path. - // Otherwise: - // Let cookie-path be the attribute-value." - if (!$data['path'] || substr($data['path'], 0, 1) !== '/') { - $data['path'] = $this->getDefaultPath($path); - } - - return $data; - } - - /** - * Get default cookie path according to RFC 6265 - * http://tools.ietf.org/search/rfc6265#section-5.1.4 Paths and Path-Match - * - * @param string $path Request uri-path - * - * @return string - */ - protected function getDefaultPath($path) { - // "The user agent MUST use an algorithm equivalent to the following algorithm - // to compute the default-path of a cookie:" - - // "2. If the uri-path is empty or if the first character of the uri-path is not - // a %x2F ("/") character, output %x2F ("/") and skip the remaining steps. - if (empty($path) || substr($path, 0, 1) !== '/') { - return '/'; - } - - // "3. If the uri-path contains no more than one %x2F ("/") character, output - // %x2F ("/") and skip the remaining step." - if ($path === "/") { - return $path; - } - - $rightSlashPos = strrpos($path, '/'); - if ($rightSlashPos === 0) { - return "/"; - } - - // "4. Output the characters of the uri-path from the first character up to, - // but not including, the right-most %x2F ("/")." - return substr($path, 0, $rightSlashPos); - - } -} diff --git a/lib/aws-sdk/Guzzle/Parser/Cookie/CookieParserInterface.php b/lib/aws-sdk/Guzzle/Parser/Cookie/CookieParserInterface.php deleted file mode 100644 index d21ffe2..0000000 --- a/lib/aws-sdk/Guzzle/Parser/Cookie/CookieParserInterface.php +++ /dev/null @@ -1,33 +0,0 @@ - $requestUrl, - 'scheme' => 'http' - ); - - // Check for the Host header - if (isset($parts['headers']['Host'])) { - $urlParts['host'] = $parts['headers']['Host']; - } elseif (isset($parts['headers']['host'])) { - $urlParts['host'] = $parts['headers']['host']; - } else { - $urlParts['host'] = null; - } - - if (false === strpos($urlParts['host'], ':')) { - $urlParts['port'] = ''; - } else { - $hostParts = explode(':', $urlParts['host']); - $urlParts['host'] = trim($hostParts[0]); - $urlParts['port'] = (int) trim($hostParts[1]); - if ($urlParts['port'] == 443) { - $urlParts['scheme'] = 'https'; - } - } - - // Check if a query is present - $path = $urlParts['path']; - $qpos = strpos($path, '?'); - if ($qpos) { - $urlParts['query'] = substr($path, $qpos + 1); - $urlParts['path'] = substr($path, 0, $qpos); - } else { - $urlParts['query'] = ''; - } - - return $urlParts; - } -} diff --git a/lib/aws-sdk/Guzzle/Parser/Message/MessageParser.php b/lib/aws-sdk/Guzzle/Parser/Message/MessageParser.php deleted file mode 100644 index efc1aa3..0000000 --- a/lib/aws-sdk/Guzzle/Parser/Message/MessageParser.php +++ /dev/null @@ -1,110 +0,0 @@ -parseMessage($message); - - // Parse the protocol and protocol version - if (isset($parts['start_line'][2])) { - $startParts = explode('/', $parts['start_line'][2]); - $protocol = strtoupper($startParts[0]); - $version = isset($startParts[1]) ? $startParts[1] : '1.1'; - } else { - $protocol = 'HTTP'; - $version = '1.1'; - } - - $parsed = array( - 'method' => strtoupper($parts['start_line'][0]), - 'protocol' => $protocol, - 'version' => $version, - 'headers' => $parts['headers'], - 'body' => $parts['body'] - ); - - $parsed['request_url'] = $this->getUrlPartsFromMessage(isset($parts['start_line'][1]) ? $parts['start_line'][1] : '' , $parsed); - - return $parsed; - } - - public function parseResponse($message) - { - if (!$message) { - return false; - } - - $parts = $this->parseMessage($message); - list($protocol, $version) = explode('/', trim($parts['start_line'][0])); - - return array( - 'protocol' => $protocol, - 'version' => $version, - 'code' => $parts['start_line'][1], - 'reason_phrase' => isset($parts['start_line'][2]) ? $parts['start_line'][2] : '', - 'headers' => $parts['headers'], - 'body' => $parts['body'] - ); - } - - /** - * Parse a message into parts - * - * @param string $message Message to parse - * - * @return array - */ - protected function parseMessage($message) - { - $startLine = null; - $headers = array(); - $body = ''; - - // Iterate over each line in the message, accounting for line endings - $lines = preg_split('/(\\r?\\n)/', $message, -1, PREG_SPLIT_DELIM_CAPTURE); - for ($i = 0, $totalLines = count($lines); $i < $totalLines; $i += 2) { - - $line = $lines[$i]; - - // If two line breaks were encountered, then this is the end of body - if (empty($line)) { - if ($i < $totalLines - 1) { - $body = implode('', array_slice($lines, $i + 2)); - } - break; - } - - // Parse message headers - if (!$startLine) { - $startLine = explode(' ', $line, 3); - } elseif (strpos($line, ':')) { - $parts = explode(':', $line, 2); - $key = trim($parts[0]); - $value = isset($parts[1]) ? trim($parts[1]) : ''; - if (!isset($headers[$key])) { - $headers[$key] = $value; - } elseif (!is_array($headers[$key])) { - $headers[$key] = array($headers[$key], $value); - } else { - $headers[$key][] = $value; - } - } - } - - return array( - 'start_line' => $startLine, - 'headers' => $headers, - 'body' => $body - ); - } -} diff --git a/lib/aws-sdk/Guzzle/Parser/Message/MessageParserInterface.php b/lib/aws-sdk/Guzzle/Parser/Message/MessageParserInterface.php deleted file mode 100644 index cc44808..0000000 --- a/lib/aws-sdk/Guzzle/Parser/Message/MessageParserInterface.php +++ /dev/null @@ -1,27 +0,0 @@ - $parts->requestMethod, - 'protocol' => 'HTTP', - 'version' => number_format($parts->httpVersion, 1), - 'headers' => $parts->headers, - 'body' => $parts->body - ); - - $parsed['request_url'] = $this->getUrlPartsFromMessage($parts->requestUrl, $parsed); - - return $parsed; - } - - public function parseResponse($message) - { - if (!$message) { - return false; - } - - $parts = http_parse_message($message); - - return array( - 'protocol' => 'HTTP', - 'version' => number_format($parts->httpVersion, 1), - 'code' => $parts->responseCode, - 'reason_phrase' => $parts->responseStatus, - 'headers' => $parts->headers, - 'body' => $parts->body - ); - } -} diff --git a/lib/aws-sdk/Guzzle/Parser/ParserRegistry.php b/lib/aws-sdk/Guzzle/Parser/ParserRegistry.php deleted file mode 100644 index f838683..0000000 --- a/lib/aws-sdk/Guzzle/Parser/ParserRegistry.php +++ /dev/null @@ -1,75 +0,0 @@ - 'Guzzle\\Parser\\Message\\MessageParser', - 'cookie' => 'Guzzle\\Parser\\Cookie\\CookieParser', - 'url' => 'Guzzle\\Parser\\Url\\UrlParser', - 'uri_template' => 'Guzzle\\Parser\\UriTemplate\\UriTemplate', - ); - - /** - * @return self - * @codeCoverageIgnore - */ - public static function getInstance() - { - if (!self::$instance) { - self::$instance = new static; - } - - return self::$instance; - } - - public function __construct() - { - // Use the PECL URI template parser if available - if (extension_loaded('uri_template')) { - $this->mapping['uri_template'] = 'Guzzle\\Parser\\UriTemplate\\PeclUriTemplate'; - } - } - - /** - * Get a parser by name from an instance - * - * @param string $name Name of the parser to retrieve - * - * @return mixed|null - */ - public function getParser($name) - { - if (!isset($this->instances[$name])) { - if (!isset($this->mapping[$name])) { - return null; - } - $class = $this->mapping[$name]; - $this->instances[$name] = new $class(); - } - - return $this->instances[$name]; - } - - /** - * Register a custom parser by name with the register - * - * @param string $name Name or handle of the parser to register - * @param mixed $parser Instantiated parser to register - */ - public function registerParser($name, $parser) - { - $this->instances[$name] = $parser; - } -} diff --git a/lib/aws-sdk/Guzzle/Parser/UriTemplate/PeclUriTemplate.php b/lib/aws-sdk/Guzzle/Parser/UriTemplate/PeclUriTemplate.php deleted file mode 100644 index b0764e8..0000000 --- a/lib/aws-sdk/Guzzle/Parser/UriTemplate/PeclUriTemplate.php +++ /dev/null @@ -1,26 +0,0 @@ -utf8 = $utf8; - } - - public function parseUrl($url) - { - Version::warn(__CLASS__ . ' is deprecated. Just use parse_url()'); - - static $defaults = array('scheme' => null, 'host' => null, 'path' => null, 'port' => null, 'query' => null, - 'user' => null, 'pass' => null, 'fragment' => null); - - $parts = parse_url($url); - - // Need to handle query parsing specially for UTF-8 requirements - if ($this->utf8 && isset($parts['query'])) { - $queryPos = strpos($url, '?'); - if (isset($parts['fragment'])) { - $parts['query'] = substr($url, $queryPos + 1, strpos($url, '#') - $queryPos - 1); - } else { - $parts['query'] = substr($url, $queryPos + 1); - } - } - - return $parts + $defaults; - } -} diff --git a/lib/aws-sdk/Guzzle/Parser/Url/UrlParserInterface.php b/lib/aws-sdk/Guzzle/Parser/Url/UrlParserInterface.php deleted file mode 100644 index 89ac4b3..0000000 --- a/lib/aws-sdk/Guzzle/Parser/Url/UrlParserInterface.php +++ /dev/null @@ -1,19 +0,0 @@ - 'onBeforeSend', - 'request.exception' => 'onRequestTimeout', - 'request.sent' => 'onRequestSent', - 'curl.callback.progress' => 'onCurlProgress' - ); - } - - /** - * Event used to ensure that progress callback are emitted from the curl handle's request mediator. - * - * @param Event $event - */ - public function onBeforeSend(Event $event) - { - // Ensure that progress callbacks are dispatched - $event['request']->getCurlOptions()->set('progress', true); - } - - /** - * Event emitted when a curl progress function is called. When the amount of data uploaded == the amount of data to - * upload OR any bytes have been downloaded, then time the request out after 1ms because we're done with - * transmitting the request, and tell curl not download a body. - * - * @param Event $event - */ - public function onCurlProgress(Event $event) - { - if ($event['handle'] && - ($event['downloaded'] || (isset($event['uploaded']) && $event['upload_size'] === $event['uploaded'])) - ) { - // Timeout after 1ms - curl_setopt($event['handle'], CURLOPT_TIMEOUT_MS, 1); - // Even if the response is quick, tell curl not to download the body. - // - Note that we can only perform this shortcut if the request transmitted a body so as to ensure that the - // request method is not converted to a HEAD request before the request was sent via curl. - if ($event['uploaded']) { - curl_setopt($event['handle'], CURLOPT_NOBODY, true); - } - } - } - - /** - * Event emitted when a curl exception occurs. Ignore the exception and set a mock response. - * - * @param Event $event - */ - public function onRequestTimeout(Event $event) - { - if ($event['exception'] instanceof CurlException) { - $event['request']->setResponse(new Response(200, array( - 'X-Guzzle-Async' => 'Did not wait for the response' - ))); - } - } - - /** - * Event emitted when a request completes because it took less than 1ms. Add an X-Guzzle-Async header to notify the - * caller that there is no body in the message. - * - * @param Event $event - */ - public function onRequestSent(Event $event) - { - // Let the caller know this was meant to be async - $event['request']->getResponse()->setHeader('X-Guzzle-Async', 'Did not wait for the response'); - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Backoff/AbstractBackoffStrategy.php b/lib/aws-sdk/Guzzle/Plugin/Backoff/AbstractBackoffStrategy.php deleted file mode 100644 index 0a85983..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Backoff/AbstractBackoffStrategy.php +++ /dev/null @@ -1,91 +0,0 @@ -next = $next; - } - - /** - * Get the next backoff strategy in the chain - * - * @return AbstractBackoffStrategy|null - */ - public function getNext() - { - return $this->next; - } - - public function getBackoffPeriod( - $retries, - RequestInterface $request, - Response $response = null, - HttpException $e = null - ) { - $delay = $this->getDelay($retries, $request, $response, $e); - if ($delay === false) { - // The strategy knows that this must not be retried - return false; - } elseif ($delay === null) { - // If the strategy is deferring a decision and the next strategy will not make a decision then return false - return !$this->next || !$this->next->makesDecision() - ? false - : $this->next->getBackoffPeriod($retries, $request, $response, $e); - } elseif ($delay === true) { - // if the strategy knows that it must retry but is deferring to the next to determine the delay - if (!$this->next) { - return 0; - } else { - $next = $this->next; - while ($next->makesDecision() && $next->getNext()) { - $next = $next->getNext(); - } - return !$next->makesDecision() ? $next->getBackoffPeriod($retries, $request, $response, $e) : 0; - } - } else { - return $delay; - } - } - - /** - * Check if the strategy does filtering and makes decisions on whether or not to retry. - * - * Strategies that return false will never retry if all of the previous strategies in a chain defer on a backoff - * decision. - * - * @return bool - */ - abstract public function makesDecision(); - - /** - * Implement the concrete strategy - * - * @param int $retries Number of retries of the request - * @param RequestInterface $request Request that was sent - * @param Response $response Response that was received. Note that there may not be a response - * @param HttpException $e Exception that was encountered if any - * - * @return bool|int|null Returns false to not retry or the number of seconds to delay between retries. Return true - * or null to defer to the next strategy if available, and if not, return 0. - */ - abstract protected function getDelay( - $retries, - RequestInterface $request, - Response $response = null, - HttpException $e = null - ); -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Backoff/AbstractErrorCodeBackoffStrategy.php b/lib/aws-sdk/Guzzle/Plugin/Backoff/AbstractErrorCodeBackoffStrategy.php deleted file mode 100644 index 6ebee6c..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Backoff/AbstractErrorCodeBackoffStrategy.php +++ /dev/null @@ -1,40 +0,0 @@ -errorCodes = array_fill_keys($codes ?: static::$defaultErrorCodes, 1); - $this->next = $next; - } - - /** - * Get the default failure codes to retry - * - * @return array - */ - public static function getDefaultFailureCodes() - { - return static::$defaultErrorCodes; - } - - public function makesDecision() - { - return true; - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Backoff/BackoffLogger.php b/lib/aws-sdk/Guzzle/Plugin/Backoff/BackoffLogger.php deleted file mode 100644 index ec54c28..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Backoff/BackoffLogger.php +++ /dev/null @@ -1,76 +0,0 @@ -logger = $logger; - $this->formatter = $formatter ?: new MessageFormatter(self::DEFAULT_FORMAT); - } - - public static function getSubscribedEvents() - { - return array(BackoffPlugin::RETRY_EVENT => 'onRequestRetry'); - } - - /** - * Set the template to use for logging - * - * @param string $template Log message template - * - * @return self - */ - public function setTemplate($template) - { - $this->formatter->setTemplate($template); - - return $this; - } - - /** - * Called when a request is being retried - * - * @param Event $event Event emitted - */ - public function onRequestRetry(Event $event) - { - $this->logger->log($this->formatter->format( - $event['request'], - $event['response'], - $event['handle'], - array( - 'retries' => $event['retries'], - 'delay' => $event['delay'] - ) - )); - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Backoff/BackoffPlugin.php b/lib/aws-sdk/Guzzle/Plugin/Backoff/BackoffPlugin.php deleted file mode 100644 index 99ace05..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Backoff/BackoffPlugin.php +++ /dev/null @@ -1,126 +0,0 @@ -strategy = $strategy; - } - - /** - * Retrieve a basic truncated exponential backoff plugin that will retry HTTP errors and cURL errors - * - * @param int $maxRetries Maximum number of retries - * @param array $httpCodes HTTP response codes to retry - * @param array $curlCodes cURL error codes to retry - * - * @return self - */ - public static function getExponentialBackoff( - $maxRetries = 3, - array $httpCodes = null, - array $curlCodes = null - ) { - return new self(new TruncatedBackoffStrategy($maxRetries, - new HttpBackoffStrategy($httpCodes, - new CurlBackoffStrategy($curlCodes, - new ExponentialBackoffStrategy() - ) - ) - )); - } - - public static function getAllEvents() - { - return array(self::RETRY_EVENT); - } - - public static function getSubscribedEvents() - { - return array( - 'request.sent' => 'onRequestSent', - 'request.exception' => 'onRequestSent', - CurlMultiInterface::POLLING_REQUEST => 'onRequestPoll' - ); - } - - /** - * Called when a request has been sent and isn't finished processing - * - * @param Event $event - */ - public function onRequestSent(Event $event) - { - $request = $event['request']; - $response = $event['response']; - $exception = $event['exception']; - - $params = $request->getParams(); - $retries = (int) $params->get(self::RETRY_PARAM); - $delay = $this->strategy->getBackoffPeriod($retries, $request, $response, $exception); - - if ($delay !== false) { - // Calculate how long to wait until the request should be retried - $params->set(self::RETRY_PARAM, ++$retries) - ->set(self::DELAY_PARAM, microtime(true) + $delay); - // Send the request again - $request->setState(RequestInterface::STATE_TRANSFER); - $this->dispatch(self::RETRY_EVENT, array( - 'request' => $request, - 'response' => $response, - 'handle' => ($exception && $exception instanceof CurlException) ? $exception->getCurlHandle() : null, - 'retries' => $retries, - 'delay' => $delay - )); - } - } - - /** - * Called when a request is polling in the curl multi object - * - * @param Event $event - */ - public function onRequestPoll(Event $event) - { - $request = $event['request']; - $delay = $request->getParams()->get(self::DELAY_PARAM); - - // If the duration of the delay has passed, retry the request using the pool - if (null !== $delay && microtime(true) >= $delay) { - // Remove the request from the pool and then add it back again. This is required for cURL to know that we - // want to retry sending the easy handle. - $request->getParams()->remove(self::DELAY_PARAM); - // Rewind the request body if possible - if ($request instanceof EntityEnclosingRequestInterface && $request->getBody()) { - $request->getBody()->seek(0); - } - $multi = $event['curl_multi']; - $multi->remove($request); - $multi->add($request); - } - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Backoff/BackoffStrategyInterface.php b/lib/aws-sdk/Guzzle/Plugin/Backoff/BackoffStrategyInterface.php deleted file mode 100644 index 4e590db..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Backoff/BackoffStrategyInterface.php +++ /dev/null @@ -1,30 +0,0 @@ -callback = $callback; - $this->decision = (bool) $decision; - $this->next = $next; - } - - public function makesDecision() - { - return $this->decision; - } - - protected function getDelay($retries, RequestInterface $request, Response $response = null, HttpException $e = null) - { - return call_user_func($this->callback, $retries, $request, $response, $e); - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Backoff/ConstantBackoffStrategy.php b/lib/aws-sdk/Guzzle/Plugin/Backoff/ConstantBackoffStrategy.php deleted file mode 100644 index 061d2a4..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Backoff/ConstantBackoffStrategy.php +++ /dev/null @@ -1,34 +0,0 @@ -delay = $delay; - } - - public function makesDecision() - { - return false; - } - - protected function getDelay($retries, RequestInterface $request, Response $response = null, HttpException $e = null) - { - return $this->delay; - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Backoff/CurlBackoffStrategy.php b/lib/aws-sdk/Guzzle/Plugin/Backoff/CurlBackoffStrategy.php deleted file mode 100644 index a584ed4..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Backoff/CurlBackoffStrategy.php +++ /dev/null @@ -1,28 +0,0 @@ -errorCodes[$e->getErrorNo()]) ? true : null; - } - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Backoff/ExponentialBackoffStrategy.php b/lib/aws-sdk/Guzzle/Plugin/Backoff/ExponentialBackoffStrategy.php deleted file mode 100644 index fb2912d..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Backoff/ExponentialBackoffStrategy.php +++ /dev/null @@ -1,25 +0,0 @@ -isSuccessful()) { - return false; - } else { - return isset($this->errorCodes[$response->getStatusCode()]) ? true : null; - } - } - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Backoff/LinearBackoffStrategy.php b/lib/aws-sdk/Guzzle/Plugin/Backoff/LinearBackoffStrategy.php deleted file mode 100644 index b35e8a4..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Backoff/LinearBackoffStrategy.php +++ /dev/null @@ -1,36 +0,0 @@ -step = $step; - } - - public function makesDecision() - { - return false; - } - - protected function getDelay($retries, RequestInterface $request, Response $response = null, HttpException $e = null) - { - return $retries * $this->step; - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Backoff/ReasonPhraseBackoffStrategy.php b/lib/aws-sdk/Guzzle/Plugin/Backoff/ReasonPhraseBackoffStrategy.php deleted file mode 100644 index 4fd73fe..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Backoff/ReasonPhraseBackoffStrategy.php +++ /dev/null @@ -1,25 +0,0 @@ -errorCodes[$response->getReasonPhrase()]) ? true : null; - } - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Backoff/TruncatedBackoffStrategy.php b/lib/aws-sdk/Guzzle/Plugin/Backoff/TruncatedBackoffStrategy.php deleted file mode 100644 index 3608f35..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Backoff/TruncatedBackoffStrategy.php +++ /dev/null @@ -1,36 +0,0 @@ -max = $maxRetries; - $this->next = $next; - } - - public function makesDecision() - { - return true; - } - - protected function getDelay($retries, RequestInterface $request, Response $response = null, HttpException $e = null) - { - return $retries < $this->max ? null : false; - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Cache/CacheKeyProviderInterface.php b/lib/aws-sdk/Guzzle/Plugin/Cache/CacheKeyProviderInterface.php deleted file mode 100644 index 7790f88..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Cache/CacheKeyProviderInterface.php +++ /dev/null @@ -1,11 +0,0 @@ - new DefaultCacheStorage($options)); - } elseif ($options instanceof CacheStorageInterface) { - $options = array('storage' => $options); - } elseif ($options) { - $options = array('storage' => new DefaultCacheStorage(CacheAdapterFactory::fromCache($options))); - } elseif (!class_exists('Doctrine\Common\Cache\ArrayCache')) { - // @codeCoverageIgnoreStart - throw new InvalidArgumentException('No cache was provided and Doctrine is not installed'); - // @codeCoverageIgnoreEnd - } - } - - $this->autoPurge = isset($options['auto_purge']) ? $options['auto_purge'] : false; - - // Add a cache storage if a cache adapter was provided - $this->storage = isset($options['storage']) - ? $options['storage'] - : new DefaultCacheStorage(new DoctrineCacheAdapter(new ArrayCache())); - - if (!isset($options['can_cache'])) { - $this->canCache = new DefaultCanCacheStrategy(); - } else { - $this->canCache = is_callable($options['can_cache']) - ? new CallbackCanCacheStrategy($options['can_cache']) - : $options['can_cache']; - } - - // Use the provided revalidation strategy or the default - $this->revalidation = isset($options['revalidation']) - ? $options['revalidation'] - : new DefaultRevalidation($this->storage, $this->canCache); - } - - public static function getSubscribedEvents() - { - return array( - 'request.before_send' => array('onRequestBeforeSend', -255), - 'request.sent' => array('onRequestSent', 255), - 'request.error' => array('onRequestError', 0), - 'request.exception' => array('onRequestException', 0), - ); - } - - /** - * Check if a response in cache will satisfy the request before sending - * - * @param Event $event - */ - public function onRequestBeforeSend(Event $event) - { - $request = $event['request']; - $request->addHeader('Via', sprintf('%s GuzzleCache/%s', $request->getProtocolVersion(), Version::VERSION)); - - if (!$this->canCache->canCacheRequest($request)) { - switch ($request->getMethod()) { - case 'PURGE': - $this->purge($request); - $request->setResponse(new Response(200, array(), 'purged')); - break; - case 'PUT': - case 'POST': - case 'DELETE': - case 'PATCH': - if ($this->autoPurge) { - $this->purge($request); - } - } - return; - } - - if ($response = $this->storage->fetch($request)) { - $params = $request->getParams(); - $params['cache.lookup'] = true; - $response->setHeader( - 'Age', - time() - strtotime($response->getDate() ? : $response->getLastModified() ?: 'now') - ); - // Validate that the response satisfies the request - if ($this->canResponseSatisfyRequest($request, $response)) { - if (!isset($params['cache.hit'])) { - $params['cache.hit'] = true; - } - $request->setResponse($response); - } - } - } - - /** - * If possible, store a response in cache after sending - * - * @param Event $event - */ - public function onRequestSent(Event $event) - { - $request = $event['request']; - $response = $event['response']; - - if ($request->getParams()->get('cache.hit') === null && - $this->canCache->canCacheRequest($request) && - $this->canCache->canCacheResponse($response) - ) { - $this->storage->cache($request, $response); - } - - $this->addResponseHeaders($request, $response); - } - - /** - * If possible, return a cache response on an error - * - * @param Event $event - */ - public function onRequestError(Event $event) - { - $request = $event['request']; - - if (!$this->canCache->canCacheRequest($request)) { - return; - } - - if ($response = $this->storage->fetch($request)) { - $response->setHeader( - 'Age', - time() - strtotime($response->getLastModified() ? : $response->getDate() ?: 'now') - ); - - if ($this->canResponseSatisfyFailedRequest($request, $response)) { - $request->getParams()->set('cache.hit', 'error'); - $this->addResponseHeaders($request, $response); - $event['response'] = $response; - $event->stopPropagation(); - } - } - } - - /** - * If possible, set a cache response on a cURL exception - * - * @param Event $event - * - * @return null - */ - public function onRequestException(Event $event) - { - if (!$event['exception'] instanceof CurlException) { - return; - } - - $request = $event['request']; - if (!$this->canCache->canCacheRequest($request)) { - return; - } - - if ($response = $this->storage->fetch($request)) { - $response->setHeader('Age', time() - strtotime($response->getDate() ? : 'now')); - if (!$this->canResponseSatisfyFailedRequest($request, $response)) { - return; - } - $request->getParams()->set('cache.hit', 'error'); - $request->setResponse($response); - $this->addResponseHeaders($request, $response); - $event->stopPropagation(); - } - } - - /** - * Check if a cache response satisfies a request's caching constraints - * - * @param RequestInterface $request Request to validate - * @param Response $response Response to validate - * - * @return bool - */ - public function canResponseSatisfyRequest(RequestInterface $request, Response $response) - { - $responseAge = $response->calculateAge(); - $reqc = $request->getHeader('Cache-Control'); - $resc = $response->getHeader('Cache-Control'); - - // Check the request's max-age header against the age of the response - if ($reqc && $reqc->hasDirective('max-age') && - $responseAge > $reqc->getDirective('max-age')) { - return false; - } - - // Check the response's max-age header - if ($response->isFresh() === false) { - $maxStale = $reqc ? $reqc->getDirective('max-stale') : null; - if (null !== $maxStale) { - if ($maxStale !== true && $response->getFreshness() < (-1 * $maxStale)) { - return false; - } - } elseif ($resc && $resc->hasDirective('max-age') - && $responseAge > $resc->getDirective('max-age') - ) { - return false; - } - } - - if ($this->revalidation->shouldRevalidate($request, $response)) { - try { - return $this->revalidation->revalidate($request, $response); - } catch (CurlException $e) { - $request->getParams()->set('cache.hit', 'error'); - return $this->canResponseSatisfyFailedRequest($request, $response); - } - } - - return true; - } - - /** - * Check if a cache response satisfies a failed request's caching constraints - * - * @param RequestInterface $request Request to validate - * @param Response $response Response to validate - * - * @return bool - */ - public function canResponseSatisfyFailedRequest(RequestInterface $request, Response $response) - { - $reqc = $request->getHeader('Cache-Control'); - $resc = $response->getHeader('Cache-Control'); - $requestStaleIfError = $reqc ? $reqc->getDirective('stale-if-error') : null; - $responseStaleIfError = $resc ? $resc->getDirective('stale-if-error') : null; - - if (!$requestStaleIfError && !$responseStaleIfError) { - return false; - } - - if (is_numeric($requestStaleIfError) && $response->getAge() - $response->getMaxAge() > $requestStaleIfError) { - return false; - } - - if (is_numeric($responseStaleIfError) && $response->getAge() - $response->getMaxAge() > $responseStaleIfError) { - return false; - } - - return true; - } - - /** - * Purge all cache entries for a given URL - * - * @param string $url URL to purge - */ - public function purge($url) - { - // BC compatibility with previous version that accepted a Request object - $url = $url instanceof RequestInterface ? $url->getUrl() : $url; - $this->storage->purge($url); - } - - /** - * Add the plugin's headers to a response - * - * @param RequestInterface $request Request - * @param Response $response Response to add headers to - */ - protected function addResponseHeaders(RequestInterface $request, Response $response) - { - $params = $request->getParams(); - $response->setHeader('Via', sprintf('%s GuzzleCache/%s', $request->getProtocolVersion(), Version::VERSION)); - - $lookup = ($params['cache.lookup'] === true ? 'HIT' : 'MISS') . ' from GuzzleCache'; - if ($header = $response->getHeader('X-Cache-Lookup')) { - // Don't add duplicates - $values = $header->toArray(); - $values[] = $lookup; - $response->setHeader('X-Cache-Lookup', array_unique($values)); - } else { - $response->setHeader('X-Cache-Lookup', $lookup); - } - - if ($params['cache.hit'] === true) { - $xcache = 'HIT from GuzzleCache'; - } elseif ($params['cache.hit'] == 'error') { - $xcache = 'HIT_ERROR from GuzzleCache'; - } else { - $xcache = 'MISS from GuzzleCache'; - } - - if ($header = $response->getHeader('X-Cache')) { - // Don't add duplicates - $values = $header->toArray(); - $values[] = $xcache; - $response->setHeader('X-Cache', array_unique($values)); - } else { - $response->setHeader('X-Cache', $xcache); - } - - if ($response->isFresh() === false) { - $response->addHeader('Warning', sprintf('110 GuzzleCache/%s "Response is stale"', Version::VERSION)); - if ($params['cache.hit'] === 'error') { - $response->addHeader('Warning', sprintf('111 GuzzleCache/%s "Revalidation failed"', Version::VERSION)); - } - } - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Cache/CacheStorageInterface.php b/lib/aws-sdk/Guzzle/Plugin/Cache/CacheStorageInterface.php deleted file mode 100644 index f3d9154..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Cache/CacheStorageInterface.php +++ /dev/null @@ -1,43 +0,0 @@ -requestCallback = $requestCallback; - $this->responseCallback = $responseCallback; - } - - public function canCacheRequest(RequestInterface $request) - { - return $this->requestCallback - ? call_user_func($this->requestCallback, $request) - : parent::canCacheRequest($request); - } - - public function canCacheResponse(Response $response) - { - return $this->responseCallback - ? call_user_func($this->responseCallback, $response) - : parent::canCacheResponse($response); - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Cache/CanCacheStrategyInterface.php b/lib/aws-sdk/Guzzle/Plugin/Cache/CanCacheStrategyInterface.php deleted file mode 100644 index 6e01a8e..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Cache/CanCacheStrategyInterface.php +++ /dev/null @@ -1,30 +0,0 @@ -getParams()->get(self::CACHE_KEY); - - if (!$key) { - - $cloned = clone $request; - $cloned->removeHeader('Cache-Control'); - - // Check to see how and if the key should be filtered - foreach (explode(';', $request->getParams()->get(self::CACHE_KEY_FILTER)) as $part) { - $pieces = array_map('trim', explode('=', $part)); - if (isset($pieces[1])) { - foreach (array_map('trim', explode(',', $pieces[1])) as $remove) { - if ($pieces[0] == 'header') { - $cloned->removeHeader($remove); - } elseif ($pieces[0] == 'query') { - $cloned->getQuery()->remove($remove); - } - } - } - } - - $raw = (string) $cloned; - $key = 'GZ' . md5($raw); - $request->getParams()->set(self::CACHE_KEY, $key)->set(self::CACHE_KEY_RAW, $raw); - } - - return $key; - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Cache/DefaultCacheStorage.php b/lib/aws-sdk/Guzzle/Plugin/Cache/DefaultCacheStorage.php deleted file mode 100644 index 26d7a8b..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Cache/DefaultCacheStorage.php +++ /dev/null @@ -1,266 +0,0 @@ -cache = CacheAdapterFactory::fromCache($cache); - $this->defaultTtl = $defaultTtl; - $this->keyPrefix = $keyPrefix; - } - - public function cache(RequestInterface $request, Response $response) - { - $currentTime = time(); - - $overrideTtl = $request->getParams()->get('cache.override_ttl'); - if ($overrideTtl) { - $ttl = $overrideTtl; - } else { - $maxAge = $response->getMaxAge(); - if ($maxAge !== null) { - $ttl = $maxAge; - } else { - $ttl = $this->defaultTtl; - } - } - - if ($cacheControl = $response->getHeader('Cache-Control')) { - $stale = $cacheControl->getDirective('stale-if-error'); - if ($stale === true) { - $ttl += $ttl; - } else if (is_numeric($stale)) { - $ttl += $stale; - } - } - - // Determine which manifest key should be used - $key = $this->getCacheKey($request); - $persistedRequest = $this->persistHeaders($request); - $entries = array(); - - if ($manifest = $this->cache->fetch($key)) { - // Determine which cache entries should still be in the cache - $vary = $response->getVary(); - foreach (unserialize($manifest) as $entry) { - // Check if the entry is expired - if ($entry[4] < $currentTime) { - continue; - } - $entry[1]['vary'] = isset($entry[1]['vary']) ? $entry[1]['vary'] : ''; - if ($vary != $entry[1]['vary'] || !$this->requestsMatch($vary, $entry[0], $persistedRequest)) { - $entries[] = $entry; - } - } - } - - // Persist the response body if needed - $bodyDigest = null; - if ($response->getBody() && $response->getBody()->getContentLength() > 0) { - $bodyDigest = $this->getBodyKey($request->getUrl(), $response->getBody()); - $this->cache->save($bodyDigest, (string) $response->getBody(), $ttl); - } - - array_unshift($entries, array( - $persistedRequest, - $this->persistHeaders($response), - $response->getStatusCode(), - $bodyDigest, - $currentTime + $ttl - )); - - $this->cache->save($key, serialize($entries)); - } - - public function delete(RequestInterface $request) - { - $key = $this->getCacheKey($request); - if ($entries = $this->cache->fetch($key)) { - // Delete each cached body - foreach (unserialize($entries) as $entry) { - if ($entry[3]) { - $this->cache->delete($entry[3]); - } - } - $this->cache->delete($key); - } - } - - public function purge($url) - { - foreach (array('GET', 'HEAD', 'POST', 'PUT', 'DELETE') as $method) { - $this->delete(new Request($method, $url)); - } - } - - public function fetch(RequestInterface $request) - { - $key = $this->getCacheKey($request); - if (!($entries = $this->cache->fetch($key))) { - return null; - } - - $match = null; - $headers = $this->persistHeaders($request); - $entries = unserialize($entries); - foreach ($entries as $index => $entry) { - if ($this->requestsMatch(isset($entry[1]['vary']) ? $entry[1]['vary'] : '', $headers, $entry[0])) { - $match = $entry; - break; - } - } - - if (!$match) { - return null; - } - - // Ensure that the response is not expired - $response = null; - if ($match[4] < time()) { - $response = -1; - } else { - $response = new Response($match[2], $match[1]); - if ($match[3]) { - if ($body = $this->cache->fetch($match[3])) { - $response->setBody($body); - } else { - // The response is not valid because the body was somehow deleted - $response = -1; - } - } - } - - if ($response === -1) { - // Remove the entry from the metadata and update the cache - unset($entries[$index]); - if ($entries) { - $this->cache->save($key, serialize($entries)); - } else { - $this->cache->delete($key); - } - return null; - } - - return $response; - } - - /** - * Hash a request URL into a string that returns cache metadata - * - * @param RequestInterface $request - * - * @return string - */ - protected function getCacheKey(RequestInterface $request) - { - // Allow cache.key_filter to trim down the URL cache key by removing generate query string values (e.g. auth) - if ($filter = $request->getParams()->get('cache.key_filter')) { - $url = $request->getUrl(true); - foreach (explode(',', $filter) as $remove) { - $url->getQuery()->remove(trim($remove)); - } - } else { - $url = $request->getUrl(); - } - - return $this->keyPrefix . md5($request->getMethod() . ' ' . $url); - } - - /** - * Create a cache key for a response's body - * - * @param string $url URL of the entry - * @param EntityBodyInterface $body Response body - * - * @return string - */ - protected function getBodyKey($url, EntityBodyInterface $body) - { - return $this->keyPrefix . md5($url) . $body->getContentMd5(); - } - - /** - * Determines whether two Request HTTP header sets are non-varying - * - * @param string $vary Response vary header - * @param array $r1 HTTP header array - * @param array $r2 HTTP header array - * - * @return bool - */ - private function requestsMatch($vary, $r1, $r2) - { - if ($vary) { - foreach (explode(',', $vary) as $header) { - $key = trim(strtolower($header)); - $v1 = isset($r1[$key]) ? $r1[$key] : null; - $v2 = isset($r2[$key]) ? $r2[$key] : null; - if ($v1 !== $v2) { - return false; - } - } - } - - return true; - } - - /** - * Creates an array of cacheable and normalized message headers - * - * @param MessageInterface $message - * - * @return array - */ - private function persistHeaders(MessageInterface $message) - { - // Headers are excluded from the caching (see RFC 2616:13.5.1) - static $noCache = array( - 'age' => true, - 'connection' => true, - 'keep-alive' => true, - 'proxy-authenticate' => true, - 'proxy-authorization' => true, - 'te' => true, - 'trailers' => true, - 'transfer-encoding' => true, - 'upgrade' => true, - 'set-cookie' => true, - 'set-cookie2' => true - ); - - // Clone the response to not destroy any necessary headers when caching - $headers = $message->getHeaders()->getAll(); - $headers = array_diff_key($headers, $noCache); - // Cast the headers to a string - $headers = array_map(function ($h) { return (string) $h; }, $headers); - - return $headers; - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Cache/DefaultCanCacheStrategy.php b/lib/aws-sdk/Guzzle/Plugin/Cache/DefaultCanCacheStrategy.php deleted file mode 100644 index 3ca1fbf..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Cache/DefaultCanCacheStrategy.php +++ /dev/null @@ -1,32 +0,0 @@ -getMethod() != RequestInterface::GET && $request->getMethod() != RequestInterface::HEAD) { - return false; - } - - // Never cache requests when using no-store - if ($request->hasHeader('Cache-Control') && $request->getHeader('Cache-Control')->hasDirective('no-store')) { - return false; - } - - return true; - } - - public function canCacheResponse(Response $response) - { - return $response->isSuccessful() && $response->canCache(); - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Cache/DefaultRevalidation.php b/lib/aws-sdk/Guzzle/Plugin/Cache/DefaultRevalidation.php deleted file mode 100644 index af33234..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Cache/DefaultRevalidation.php +++ /dev/null @@ -1,174 +0,0 @@ -storage = $cache; - $this->canCache = $canCache ?: new DefaultCanCacheStrategy(); - } - - public function revalidate(RequestInterface $request, Response $response) - { - try { - $revalidate = $this->createRevalidationRequest($request, $response); - $validateResponse = $revalidate->send(); - if ($validateResponse->getStatusCode() == 200) { - return $this->handle200Response($request, $validateResponse); - } elseif ($validateResponse->getStatusCode() == 304) { - return $this->handle304Response($request, $validateResponse, $response); - } - } catch (BadResponseException $e) { - $this->handleBadResponse($e); - } - - // Other exceptions encountered in the revalidation request are ignored - // in hopes that sending a request to the origin server will fix it - return false; - } - - public function shouldRevalidate(RequestInterface $request, Response $response) - { - if ($request->getMethod() != RequestInterface::GET) { - return false; - } - - $reqCache = $request->getHeader('Cache-Control'); - $resCache = $response->getHeader('Cache-Control'); - - $revalidate = $request->getHeader('Pragma') == 'no-cache' || - ($reqCache && ($reqCache->hasDirective('no-cache') || $reqCache->hasDirective('must-revalidate'))) || - ($resCache && ($resCache->hasDirective('no-cache') || $resCache->hasDirective('must-revalidate'))); - - // Use the strong ETag validator if available and the response contains no Cache-Control directive - if (!$revalidate && !$resCache && $response->hasHeader('ETag')) { - $revalidate = true; - } - - return $revalidate; - } - - /** - * Handles a bad response when attempting to revalidate - * - * @param BadResponseException $e Exception encountered - * - * @throws BadResponseException - */ - protected function handleBadResponse(BadResponseException $e) - { - // 404 errors mean the resource no longer exists, so remove from - // cache, and prevent an additional request by throwing the exception - if ($e->getResponse()->getStatusCode() == 404) { - $this->storage->delete($e->getRequest()); - throw $e; - } - } - - /** - * Creates a request to use for revalidation - * - * @param RequestInterface $request Request - * @param Response $response Response to revalidate - * - * @return RequestInterface returns a revalidation request - */ - protected function createRevalidationRequest(RequestInterface $request, Response $response) - { - $revalidate = clone $request; - $revalidate->removeHeader('Pragma')->removeHeader('Cache-Control'); - - if ($response->getLastModified()) { - $revalidate->setHeader('If-Modified-Since', $response->getLastModified()); - } - - if ($response->getEtag()) { - $revalidate->setHeader('If-None-Match', $response->getEtag()); - } - - // Remove any cache plugins that might be on the request to prevent infinite recursive revalidations - $dispatcher = $revalidate->getEventDispatcher(); - foreach ($dispatcher->getListeners() as $eventName => $listeners) { - foreach ($listeners as $listener) { - if (is_array($listener) && $listener[0] instanceof CachePlugin) { - $dispatcher->removeListener($eventName, $listener); - } - } - } - - return $revalidate; - } - - /** - * Handles a 200 response response from revalidating. The server does not support validation, so use this response. - * - * @param RequestInterface $request Request that was sent - * @param Response $validateResponse Response received - * - * @return bool Returns true if valid, false if invalid - */ - protected function handle200Response(RequestInterface $request, Response $validateResponse) - { - $request->setResponse($validateResponse); - if ($this->canCache->canCacheResponse($validateResponse)) { - $this->storage->cache($request, $validateResponse); - } - - return false; - } - - /** - * Handle a 304 response and ensure that it is still valid - * - * @param RequestInterface $request Request that was sent - * @param Response $validateResponse Response received - * @param Response $response Original cached response - * - * @return bool Returns true if valid, false if invalid - */ - protected function handle304Response(RequestInterface $request, Response $validateResponse, Response $response) - { - static $replaceHeaders = array('Date', 'Expires', 'Cache-Control', 'ETag', 'Last-Modified'); - - // Make sure that this response has the same ETag - if ($validateResponse->getEtag() != $response->getEtag()) { - return false; - } - - // Replace cached headers with any of these headers from the - // origin server that might be more up to date - $modified = false; - foreach ($replaceHeaders as $name) { - if ($validateResponse->hasHeader($name)) { - $modified = true; - $response->setHeader($name, $validateResponse->getHeader($name)); - } - } - - // Store the updated response in cache - if ($modified && $this->canCache->canCacheResponse($response)) { - $this->storage->cache($request, $response); - } - - return true; - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Cache/DenyRevalidation.php b/lib/aws-sdk/Guzzle/Plugin/Cache/DenyRevalidation.php deleted file mode 100644 index 88b86f3..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Cache/DenyRevalidation.php +++ /dev/null @@ -1,19 +0,0 @@ - '', - 'value' => '', - 'domain' => '', - 'path' => '/', - 'expires' => null, - 'max_age' => 0, - 'comment' => null, - 'comment_url' => null, - 'port' => array(), - 'version' => null, - 'secure' => false, - 'discard' => false, - 'http_only' => false - ); - - $this->data = array_merge($defaults, $data); - // Extract the expires value and turn it into a UNIX timestamp if needed - if (!$this->getExpires() && $this->getMaxAge()) { - // Calculate the expires date - $this->setExpires(time() + (int) $this->getMaxAge()); - } elseif ($this->getExpires() && !is_numeric($this->getExpires())) { - $this->setExpires(strtotime($this->getExpires())); - } - } - - /** - * Get the cookie as an array - * - * @return array - */ - public function toArray() - { - return $this->data; - } - - /** - * Get the cookie name - * - * @return string - */ - public function getName() - { - return $this->data['name']; - } - - /** - * Set the cookie name - * - * @param string $name Cookie name - * - * @return Cookie - */ - public function setName($name) - { - return $this->setData('name', $name); - } - - /** - * Get the cookie value - * - * @return string - */ - public function getValue() - { - return $this->data['value']; - } - - /** - * Set the cookie value - * - * @param string $value Cookie value - * - * @return Cookie - */ - public function setValue($value) - { - return $this->setData('value', $value); - } - - /** - * Get the domain - * - * @return string|null - */ - public function getDomain() - { - return $this->data['domain']; - } - - /** - * Set the domain of the cookie - * - * @param string $domain - * - * @return Cookie - */ - public function setDomain($domain) - { - return $this->setData('domain', $domain); - } - - /** - * Get the path - * - * @return string - */ - public function getPath() - { - return $this->data['path']; - } - - /** - * Set the path of the cookie - * - * @param string $path Path of the cookie - * - * @return Cookie - */ - public function setPath($path) - { - return $this->setData('path', $path); - } - - /** - * Maximum lifetime of the cookie in seconds - * - * @return int|null - */ - public function getMaxAge() - { - return $this->data['max_age']; - } - - /** - * Set the max-age of the cookie - * - * @param int $maxAge Max age of the cookie in seconds - * - * @return Cookie - */ - public function setMaxAge($maxAge) - { - return $this->setData('max_age', $maxAge); - } - - /** - * The UNIX timestamp when the cookie expires - * - * @return mixed - */ - public function getExpires() - { - return $this->data['expires']; - } - - /** - * Set the unix timestamp for which the cookie will expire - * - * @param int $timestamp Unix timestamp - * - * @return Cookie - */ - public function setExpires($timestamp) - { - return $this->setData('expires', $timestamp); - } - - /** - * Version of the cookie specification. RFC 2965 is 1 - * - * @return mixed - */ - public function getVersion() - { - return $this->data['version']; - } - - /** - * Set the cookie version - * - * @param string|int $version Version to set - * - * @return Cookie - */ - public function setVersion($version) - { - return $this->setData('version', $version); - } - - /** - * Get whether or not this is a secure cookie - * - * @return null|bool - */ - public function getSecure() - { - return $this->data['secure']; - } - - /** - * Set whether or not the cookie is secure - * - * @param bool $secure Set to true or false if secure - * - * @return Cookie - */ - public function setSecure($secure) - { - return $this->setData('secure', (bool) $secure); - } - - /** - * Get whether or not this is a session cookie - * - * @return null|bool - */ - public function getDiscard() - { - return $this->data['discard']; - } - - /** - * Set whether or not this is a session cookie - * - * @param bool $discard Set to true or false if this is a session cookie - * - * @return Cookie - */ - public function setDiscard($discard) - { - return $this->setData('discard', $discard); - } - - /** - * Get the comment - * - * @return string|null - */ - public function getComment() - { - return $this->data['comment']; - } - - /** - * Set the comment of the cookie - * - * @param string $comment Cookie comment - * - * @return Cookie - */ - public function setComment($comment) - { - return $this->setData('comment', $comment); - } - - /** - * Get the comment URL of the cookie - * - * @return string|null - */ - public function getCommentUrl() - { - return $this->data['comment_url']; - } - - /** - * Set the comment URL of the cookie - * - * @param string $commentUrl Cookie comment URL for more information - * - * @return Cookie - */ - public function setCommentUrl($commentUrl) - { - return $this->setData('comment_url', $commentUrl); - } - - /** - * Get an array of acceptable ports this cookie can be used with - * - * @return array - */ - public function getPorts() - { - return $this->data['port']; - } - - /** - * Set a list of acceptable ports this cookie can be used with - * - * @param array $ports Array of acceptable ports - * - * @return Cookie - */ - public function setPorts(array $ports) - { - return $this->setData('port', $ports); - } - - /** - * Get whether or not this is an HTTP only cookie - * - * @return bool - */ - public function getHttpOnly() - { - return $this->data['http_only']; - } - - /** - * Set whether or not this is an HTTP only cookie - * - * @param bool $httpOnly Set to true or false if this is HTTP only - * - * @return Cookie - */ - public function setHttpOnly($httpOnly) - { - return $this->setData('http_only', $httpOnly); - } - - /** - * Get an array of extra cookie data - * - * @return array - */ - public function getAttributes() - { - return $this->data['data']; - } - - /** - * Get a specific data point from the extra cookie data - * - * @param string $name Name of the data point to retrieve - * - * @return null|string - */ - public function getAttribute($name) - { - return array_key_exists($name, $this->data['data']) ? $this->data['data'][$name] : null; - } - - /** - * Set a cookie data attribute - * - * @param string $name Name of the attribute to set - * @param string $value Value to set - * - * @return Cookie - */ - public function setAttribute($name, $value) - { - $this->data['data'][$name] = $value; - - return $this; - } - - /** - * Check if the cookie matches a path value - * - * @param string $path Path to check against - * - * @return bool - */ - public function matchesPath($path) - { - // RFC6265 http://tools.ietf.org/search/rfc6265#section-5.1.4 - // A request-path path-matches a given cookie-path if at least one of - // the following conditions holds: - - // o The cookie-path and the request-path are identical. - if ($path == $this->getPath()) { - return true; - } - - $pos = stripos($path, $this->getPath()); - if ($pos === 0) { - // o The cookie-path is a prefix of the request-path, and the last - // character of the cookie-path is %x2F ("/"). - if (substr($this->getPath(), -1, 1) === "/") { - return true; - } - - // o The cookie-path is a prefix of the request-path, and the first - // character of the request-path that is not included in the cookie- - // path is a %x2F ("/") character. - if (substr($path, strlen($this->getPath()), 1) === "/") { - return true; - } - } - - return false; - } - - /** - * Check if the cookie matches a domain value - * - * @param string $domain Domain to check against - * - * @return bool - */ - public function matchesDomain($domain) - { - // Remove the leading '.' as per spec in RFC 6265: http://tools.ietf.org/html/rfc6265#section-5.2.3 - $cookieDomain = ltrim($this->getDomain(), '.'); - - // Domain not set or exact match. - if (!$cookieDomain || !strcasecmp($domain, $cookieDomain)) { - return true; - } - - // Matching the subdomain according to RFC 6265: http://tools.ietf.org/html/rfc6265#section-5.1.3 - if (filter_var($domain, FILTER_VALIDATE_IP)) { - return false; - } - - return (bool) preg_match('/\.' . preg_quote($cookieDomain, '/') . '$/i', $domain); - } - - /** - * Check if the cookie is compatible with a specific port - * - * @param int $port Port to check - * - * @return bool - */ - public function matchesPort($port) - { - return count($this->getPorts()) == 0 || in_array($port, $this->getPorts()); - } - - /** - * Check if the cookie is expired - * - * @return bool - */ - public function isExpired() - { - return $this->getExpires() && time() > $this->getExpires(); - } - - /** - * Check if the cookie is valid according to RFC 6265 - * - * @return bool|string Returns true if valid or an error message if invalid - */ - public function validate() - { - // Names must not be empty, but can be 0 - $name = $this->getName(); - if (empty($name) && !is_numeric($name)) { - return 'The cookie name must not be empty'; - } - - // Check if any of the invalid characters are present in the cookie name - if (strpbrk($name, self::getInvalidCharacters()) !== false) { - return 'The cookie name must not contain invalid characters: ' . $name; - } - - // Value must not be empty, but can be 0 - $value = $this->getValue(); - if (empty($value) && !is_numeric($value)) { - return 'The cookie value must not be empty'; - } - - // Domains must not be empty, but can be 0 - // A "0" is not a valid internet domain, but may be used as server name in a private network - $domain = $this->getDomain(); - if (empty($domain) && !is_numeric($domain)) { - return 'The cookie domain must not be empty'; - } - - return true; - } - - /** - * Set a value and return the cookie object - * - * @param string $key Key to set - * @param string $value Value to set - * - * @return Cookie - */ - private function setData($key, $value) - { - $this->data[$key] = $value; - - return $this; - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Cookie/CookieJar/ArrayCookieJar.php b/lib/aws-sdk/Guzzle/Plugin/Cookie/CookieJar/ArrayCookieJar.php deleted file mode 100644 index 6b67503..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Cookie/CookieJar/ArrayCookieJar.php +++ /dev/null @@ -1,237 +0,0 @@ -strictMode = $strictMode; - } - - /** - * Enable or disable strict mode on the cookie jar - * - * @param bool $strictMode Set to true to throw exceptions when invalid cookies are added. False to ignore them. - * - * @return self - */ - public function setStrictMode($strictMode) - { - $this->strictMode = $strictMode; - } - - public function remove($domain = null, $path = null, $name = null) - { - $cookies = $this->all($domain, $path, $name, false, false); - $this->cookies = array_filter($this->cookies, function (Cookie $cookie) use ($cookies) { - return !in_array($cookie, $cookies, true); - }); - - return $this; - } - - public function removeTemporary() - { - $this->cookies = array_filter($this->cookies, function (Cookie $cookie) { - return !$cookie->getDiscard() && $cookie->getExpires(); - }); - - return $this; - } - - public function removeExpired() - { - $currentTime = time(); - $this->cookies = array_filter($this->cookies, function (Cookie $cookie) use ($currentTime) { - return !$cookie->getExpires() || $currentTime < $cookie->getExpires(); - }); - - return $this; - } - - public function all($domain = null, $path = null, $name = null, $skipDiscardable = false, $skipExpired = true) - { - return array_values(array_filter($this->cookies, function (Cookie $cookie) use ( - $domain, - $path, - $name, - $skipDiscardable, - $skipExpired - ) { - return false === (($name && $cookie->getName() != $name) || - ($skipExpired && $cookie->isExpired()) || - ($skipDiscardable && ($cookie->getDiscard() || !$cookie->getExpires())) || - ($path && !$cookie->matchesPath($path)) || - ($domain && !$cookie->matchesDomain($domain))); - })); - } - - public function add(Cookie $cookie) - { - // Only allow cookies with set and valid domain, name, value - $result = $cookie->validate(); - if ($result !== true) { - if ($this->strictMode) { - throw new InvalidCookieException($result); - } else { - $this->removeCookieIfEmpty($cookie); - return false; - } - } - - // Resolve conflicts with previously set cookies - foreach ($this->cookies as $i => $c) { - - // Two cookies are identical, when their path, domain, port and name are identical - if ($c->getPath() != $cookie->getPath() || - $c->getDomain() != $cookie->getDomain() || - $c->getPorts() != $cookie->getPorts() || - $c->getName() != $cookie->getName() - ) { - continue; - } - - // The previously set cookie is a discard cookie and this one is not so allow the new cookie to be set - if (!$cookie->getDiscard() && $c->getDiscard()) { - unset($this->cookies[$i]); - continue; - } - - // If the new cookie's expiration is further into the future, then replace the old cookie - if ($cookie->getExpires() > $c->getExpires()) { - unset($this->cookies[$i]); - continue; - } - - // If the value has changed, we better change it - if ($cookie->getValue() !== $c->getValue()) { - unset($this->cookies[$i]); - continue; - } - - // The cookie exists, so no need to continue - return false; - } - - $this->cookies[] = $cookie; - - return true; - } - - /** - * Serializes the cookie cookieJar - * - * @return string - */ - public function serialize() - { - // Only serialize long term cookies and unexpired cookies - return json_encode(array_map(function (Cookie $cookie) { - return $cookie->toArray(); - }, $this->all(null, null, null, true, true))); - } - - /** - * Unserializes the cookie cookieJar - */ - public function unserialize($data) - { - $data = json_decode($data, true); - if (empty($data)) { - $this->cookies = array(); - } else { - $this->cookies = array_map(function (array $cookie) { - return new Cookie($cookie); - }, $data); - } - } - - /** - * Returns the total number of stored cookies - * - * @return int - */ - public function count() - { - return count($this->cookies); - } - - /** - * Returns an iterator - * - * @return \ArrayIterator - */ - public function getIterator() - { - return new \ArrayIterator($this->cookies); - } - - public function addCookiesFromResponse(Response $response, RequestInterface $request = null) - { - if ($cookieHeader = $response->getHeader('Set-Cookie')) { - $parser = ParserRegistry::getInstance()->getParser('cookie'); - foreach ($cookieHeader as $cookie) { - if ($parsed = $request - ? $parser->parseCookie($cookie, $request->getHost(), $request->getPath()) - : $parser->parseCookie($cookie) - ) { - // Break up cookie v2 into multiple cookies - foreach ($parsed['cookies'] as $key => $value) { - $row = $parsed; - $row['name'] = $key; - $row['value'] = $value; - unset($row['cookies']); - $this->add(new Cookie($row)); - } - } - } - } - } - - public function getMatchingCookies(RequestInterface $request) - { - // Find cookies that match this request - $cookies = $this->all($request->getHost(), $request->getPath()); - // Remove ineligible cookies - foreach ($cookies as $index => $cookie) { - if (!$cookie->matchesPort($request->getPort()) || ($cookie->getSecure() && $request->getScheme() != 'https')) { - unset($cookies[$index]); - } - }; - - return $cookies; - } - - /** - * If a cookie already exists and the server asks to set it again with a null value, the - * cookie must be deleted. - * - * @param \Guzzle\Plugin\Cookie\Cookie $cookie - */ - private function removeCookieIfEmpty(Cookie $cookie) - { - $cookieValue = $cookie->getValue(); - if ($cookieValue === null || $cookieValue === '') { - $this->remove($cookie->getDomain(), $cookie->getPath(), $cookie->getName()); - } - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Cookie/CookieJar/CookieJarInterface.php b/lib/aws-sdk/Guzzle/Plugin/Cookie/CookieJar/CookieJarInterface.php deleted file mode 100644 index 7faa7d2..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Cookie/CookieJar/CookieJarInterface.php +++ /dev/null @@ -1,85 +0,0 @@ -filename = $cookieFile; - $this->load(); - } - - /** - * Saves the file when shutting down - */ - public function __destruct() - { - $this->persist(); - } - - /** - * Save the contents of the data array to the file - * - * @throws RuntimeException if the file cannot be found or created - */ - protected function persist() - { - if (false === file_put_contents($this->filename, $this->serialize())) { - // @codeCoverageIgnoreStart - throw new RuntimeException('Unable to open file ' . $this->filename); - // @codeCoverageIgnoreEnd - } - } - - /** - * Load the contents of the json formatted file into the data array and discard any unsaved state - */ - protected function load() - { - $json = file_get_contents($this->filename); - if (false === $json) { - // @codeCoverageIgnoreStart - throw new RuntimeException('Unable to open file ' . $this->filename); - // @codeCoverageIgnoreEnd - } - - $this->unserialize($json); - $this->cookies = $this->cookies ?: array(); - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Cookie/CookiePlugin.php b/lib/aws-sdk/Guzzle/Plugin/Cookie/CookiePlugin.php deleted file mode 100644 index df3210e..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Cookie/CookiePlugin.php +++ /dev/null @@ -1,70 +0,0 @@ -cookieJar = $cookieJar ?: new ArrayCookieJar(); - } - - public static function getSubscribedEvents() - { - return array( - 'request.before_send' => array('onRequestBeforeSend', 125), - 'request.sent' => array('onRequestSent', 125) - ); - } - - /** - * Get the cookie cookieJar - * - * @return CookieJarInterface - */ - public function getCookieJar() - { - return $this->cookieJar; - } - - /** - * Add cookies before a request is sent - * - * @param Event $event - */ - public function onRequestBeforeSend(Event $event) - { - $request = $event['request']; - if (!$request->getParams()->get('cookies.disable')) { - $request->removeHeader('Cookie'); - // Find cookies that match this request - foreach ($this->cookieJar->getMatchingCookies($request) as $cookie) { - $request->addCookie($cookie->getName(), $cookie->getValue()); - } - } - } - - /** - * Extract cookies from a sent request - * - * @param Event $event - */ - public function onRequestSent(Event $event) - { - $this->cookieJar->addCookiesFromResponse($event['response'], $event['request']); - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Cookie/Exception/InvalidCookieException.php b/lib/aws-sdk/Guzzle/Plugin/Cookie/Exception/InvalidCookieException.php deleted file mode 100644 index b1fa6fd..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Cookie/Exception/InvalidCookieException.php +++ /dev/null @@ -1,7 +0,0 @@ -getConfig()->setPath('request.options/auth', array('user', 'pass', 'Basic|Digest'); - */ -class CurlAuthPlugin implements EventSubscriberInterface -{ - private $username; - private $password; - private $scheme; - - /** - * @param string $username HTTP basic auth username - * @param string $password Password - * @param int $scheme Curl auth scheme - */ - public function __construct($username, $password, $scheme=CURLAUTH_BASIC) - { - Version::warn(__CLASS__ . " is deprecated. Use \$client->getConfig()->setPath('request.options/auth', array('user', 'pass', 'Basic|Digest');"); - $this->username = $username; - $this->password = $password; - $this->scheme = $scheme; - } - - public static function getSubscribedEvents() - { - return array('client.create_request' => array('onRequestCreate', 255)); - } - - /** - * Add basic auth - * - * @param Event $event - */ - public function onRequestCreate(Event $event) - { - $event['request']->setAuth($this->username, $this->password, $this->scheme); - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/ErrorResponse/ErrorResponseExceptionInterface.php b/lib/aws-sdk/Guzzle/Plugin/ErrorResponse/ErrorResponseExceptionInterface.php deleted file mode 100644 index 5dce8bd..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/ErrorResponse/ErrorResponseExceptionInterface.php +++ /dev/null @@ -1,22 +0,0 @@ - array('onCommandBeforeSend', -1)); - } - - /** - * Adds a listener to requests before they sent from a command - * - * @param Event $event Event emitted - */ - public function onCommandBeforeSend(Event $event) - { - $command = $event['command']; - if ($operation = $command->getOperation()) { - if ($operation->getErrorResponses()) { - $request = $command->getRequest(); - $request->getEventDispatcher() - ->addListener('request.complete', $this->getErrorClosure($request, $command, $operation)); - } - } - } - - /** - * @param RequestInterface $request Request that received an error - * @param CommandInterface $command Command that created the request - * @param Operation $operation Operation that defines the request and errors - * - * @return \Closure Returns a closure - * @throws ErrorResponseException - */ - protected function getErrorClosure(RequestInterface $request, CommandInterface $command, Operation $operation) - { - return function (Event $event) use ($request, $command, $operation) { - $response = $event['response']; - foreach ($operation->getErrorResponses() as $error) { - if (!isset($error['class'])) { - continue; - } - if (isset($error['code']) && $response->getStatusCode() != $error['code']) { - continue; - } - if (isset($error['reason']) && $response->getReasonPhrase() != $error['reason']) { - continue; - } - $className = $error['class']; - $errorClassInterface = __NAMESPACE__ . '\\ErrorResponseExceptionInterface'; - if (!class_exists($className)) { - throw new ErrorResponseException("{$className} does not exist"); - } elseif (!(in_array($errorClassInterface, class_implements($className)))) { - throw new ErrorResponseException("{$className} must implement {$errorClassInterface}"); - } - throw $className::fromCommand($command, $response); - } - }; - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/ErrorResponse/Exception/ErrorResponseException.php b/lib/aws-sdk/Guzzle/Plugin/ErrorResponse/Exception/ErrorResponseException.php deleted file mode 100644 index 1d89e40..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/ErrorResponse/Exception/ErrorResponseException.php +++ /dev/null @@ -1,7 +0,0 @@ - array('onRequestSent', 9999)); - } - - /** - * Convert to a string that contains all request and response headers - * - * @return string - */ - public function __toString() - { - $lines = array(); - foreach ($this->transactions as $entry) { - $response = isset($entry['response']) ? $entry['response'] : ''; - $lines[] = '> ' . trim($entry['request']) . "\n\n< " . trim($response) . "\n"; - } - - return implode("\n", $lines); - } - - /** - * Add a request to the history - * - * @param RequestInterface $request Request to add - * @param Response $response Response of the request - * - * @return HistoryPlugin - */ - public function add(RequestInterface $request, Response $response = null) - { - if (!$response && $request->getResponse()) { - $response = $request->getResponse(); - } - - $this->transactions[] = array('request' => $request, 'response' => $response); - if (count($this->transactions) > $this->getlimit()) { - array_shift($this->transactions); - } - - return $this; - } - - /** - * Set the max number of requests to store - * - * @param int $limit Limit - * - * @return HistoryPlugin - */ - public function setLimit($limit) - { - $this->limit = (int) $limit; - - return $this; - } - - /** - * Get the request limit - * - * @return int - */ - public function getLimit() - { - return $this->limit; - } - - /** - * Get all of the raw transactions in the form of an array of associative arrays containing - * 'request' and 'response' keys. - * - * @return array - */ - public function getAll() - { - return $this->transactions; - } - - /** - * Get the requests in the history - * - * @return \ArrayIterator - */ - public function getIterator() - { - // Return an iterator just like the old iteration of the HistoryPlugin for BC compatibility (use getAll()) - return new \ArrayIterator(array_map(function ($entry) { - $entry['request']->getParams()->set('actual_response', $entry['response']); - return $entry['request']; - }, $this->transactions)); - } - - /** - * Get the number of requests in the history - * - * @return int - */ - public function count() - { - return count($this->transactions); - } - - /** - * Get the last request sent - * - * @return RequestInterface - */ - public function getLastRequest() - { - $last = end($this->transactions); - - return $last['request']; - } - - /** - * Get the last response in the history - * - * @return Response|null - */ - public function getLastResponse() - { - $last = end($this->transactions); - - return isset($last['response']) ? $last['response'] : null; - } - - /** - * Clears the history - * - * @return HistoryPlugin - */ - public function clear() - { - $this->transactions = array(); - - return $this; - } - - public function onRequestSent(Event $event) - { - $this->add($event['request'], $event['response']); - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Log/LogPlugin.php b/lib/aws-sdk/Guzzle/Plugin/Log/LogPlugin.php deleted file mode 100644 index cabdea8..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Log/LogPlugin.php +++ /dev/null @@ -1,161 +0,0 @@ -logAdapter = $logAdapter; - $this->formatter = $formatter instanceof MessageFormatter ? $formatter : new MessageFormatter($formatter); - $this->wireBodies = $wireBodies; - } - - /** - * Get a log plugin that outputs full request, response, and curl error information to stderr - * - * @param bool $wireBodies Set to false to disable request/response body output when they use are not repeatable - * @param resource $stream Stream to write to when logging. Defaults to STDERR when it is available - * - * @return self - */ - public static function getDebugPlugin($wireBodies = true, $stream = null) - { - if ($stream === null) { - if (defined('STDERR')) { - $stream = STDERR; - } else { - $stream = fopen('php://output', 'w'); - } - } - - return new self(new ClosureLogAdapter(function ($m) use ($stream) { - fwrite($stream, $m . PHP_EOL); - }), "# Request:\n{request}\n\n# Response:\n{response}\n\n# Errors: {curl_code} {curl_error}", $wireBodies); - } - - public static function getSubscribedEvents() - { - return array( - 'curl.callback.write' => array('onCurlWrite', 255), - 'curl.callback.read' => array('onCurlRead', 255), - 'request.before_send' => array('onRequestBeforeSend', 255), - 'request.sent' => array('onRequestSent', 255) - ); - } - - /** - * Event triggered when curl data is read from a request - * - * @param Event $event - */ - public function onCurlRead(Event $event) - { - // Stream the request body to the log if the body is not repeatable - if ($wire = $event['request']->getParams()->get('request_wire')) { - $wire->write($event['read']); - } - } - - /** - * Event triggered when curl data is written to a response - * - * @param Event $event - */ - public function onCurlWrite(Event $event) - { - // Stream the response body to the log if the body is not repeatable - if ($wire = $event['request']->getParams()->get('response_wire')) { - $wire->write($event['write']); - } - } - - /** - * Called before a request is sent - * - * @param Event $event - */ - public function onRequestBeforeSend(Event $event) - { - if ($this->wireBodies) { - $request = $event['request']; - // Ensure that curl IO events are emitted - $request->getCurlOptions()->set('emit_io', true); - // We need to make special handling for content wiring and non-repeatable streams. - if ($request instanceof EntityEnclosingRequestInterface && $request->getBody() - && (!$request->getBody()->isSeekable() || !$request->getBody()->isReadable()) - ) { - // The body of the request cannot be recalled so logging the body will require us to buffer it - $request->getParams()->set('request_wire', EntityBody::factory()); - } - if (!$request->getResponseBody()->isRepeatable()) { - // The body of the response cannot be recalled so logging the body will require us to buffer it - $request->getParams()->set('response_wire', EntityBody::factory()); - } - } - } - - /** - * Triggers the actual log write when a request completes - * - * @param Event $event - */ - public function onRequestSent(Event $event) - { - $request = $event['request']; - $response = $event['response']; - $handle = $event['handle']; - - if ($wire = $request->getParams()->get('request_wire')) { - $request = clone $request; - $request->setBody($wire); - } - - if ($wire = $request->getParams()->get('response_wire')) { - $response = clone $response; - $response->setBody($wire); - } - - // Send the log message to the adapter, adding a category and host - $priority = $response && $response->isError() ? LOG_ERR : LOG_DEBUG; - $message = $this->formatter->format($request, $response, $handle); - $this->logAdapter->log($message, $priority, array( - 'request' => $request, - 'response' => $response, - 'handle' => $handle - )); - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Md5/CommandContentMd5Plugin.php b/lib/aws-sdk/Guzzle/Plugin/Md5/CommandContentMd5Plugin.php deleted file mode 100644 index 8512424..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Md5/CommandContentMd5Plugin.php +++ /dev/null @@ -1,57 +0,0 @@ -contentMd5Param = $contentMd5Param; - $this->validateMd5Param = $validateMd5Param; - } - - public static function getSubscribedEvents() - { - return array('command.before_send' => array('onCommandBeforeSend', -255)); - } - - public function onCommandBeforeSend(Event $event) - { - $command = $event['command']; - $request = $command->getRequest(); - - // Only add an MD5 is there is a MD5 option on the operation and it has a payload - if ($request instanceof EntityEnclosingRequestInterface && $request->getBody() - && $command->getOperation()->hasParam($this->contentMd5Param)) { - // Check if an MD5 checksum value should be passed along to the request - if ($command[$this->contentMd5Param] === true) { - if (false !== ($md5 = $request->getBody()->getContentMd5(true, true))) { - $request->setHeader('Content-MD5', $md5); - } - } - } - - // Check if MD5 validation should be used with the response - if ($command[$this->validateMd5Param] === true) { - $request->addSubscriber(new Md5ValidatorPlugin(true, false)); - } - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Md5/Md5ValidatorPlugin.php b/lib/aws-sdk/Guzzle/Plugin/Md5/Md5ValidatorPlugin.php deleted file mode 100644 index 5d7a378..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Md5/Md5ValidatorPlugin.php +++ /dev/null @@ -1,88 +0,0 @@ -contentLengthCutoff = $contentLengthCutoff; - $this->contentEncoded = $contentEncoded; - } - - public static function getSubscribedEvents() - { - return array('request.complete' => array('onRequestComplete', 255)); - } - - /** - * {@inheritdoc} - * @throws UnexpectedValueException - */ - public function onRequestComplete(Event $event) - { - $response = $event['response']; - - if (!$contentMd5 = $response->getContentMd5()) { - return; - } - - $contentEncoding = $response->getContentEncoding(); - if ($contentEncoding && !$this->contentEncoded) { - return false; - } - - // Make sure that the size of the request is under the cutoff size - if ($this->contentLengthCutoff) { - $size = $response->getContentLength() ?: $response->getBody()->getSize(); - if (!$size || $size > $this->contentLengthCutoff) { - return; - } - } - - if (!$contentEncoding) { - $hash = $response->getBody()->getContentMd5(); - } elseif ($contentEncoding == 'gzip') { - $response->getBody()->compress('zlib.deflate'); - $hash = $response->getBody()->getContentMd5(); - $response->getBody()->uncompress(); - } elseif ($contentEncoding == 'compress') { - $response->getBody()->compress('bzip2.compress'); - $hash = $response->getBody()->getContentMd5(); - $response->getBody()->uncompress(); - } else { - return; - } - - if ($contentMd5 !== $hash) { - throw new UnexpectedValueException( - "The response entity body may have been modified over the wire. The Content-MD5 " - . "received ({$contentMd5}) did not match the calculated MD5 hash ({$hash})." - ); - } - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Mock/MockPlugin.php b/lib/aws-sdk/Guzzle/Plugin/Mock/MockPlugin.php deleted file mode 100644 index 2440578..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Mock/MockPlugin.php +++ /dev/null @@ -1,245 +0,0 @@ -readBodies = $readBodies; - $this->temporary = $temporary; - if ($items) { - foreach ($items as $item) { - if ($item instanceof \Exception) { - $this->addException($item); - } else { - $this->addResponse($item); - } - } - } - } - - public static function getSubscribedEvents() - { - // Use a number lower than the CachePlugin - return array('request.before_send' => array('onRequestBeforeSend', -999)); - } - - public static function getAllEvents() - { - return array('mock.request'); - } - - /** - * Get a mock response from a file - * - * @param string $path File to retrieve a mock response from - * - * @return Response - * @throws InvalidArgumentException if the file is not found - */ - public static function getMockFile($path) - { - if (!file_exists($path)) { - throw new InvalidArgumentException('Unable to open mock file: ' . $path); - } - - return Response::fromMessage(file_get_contents($path)); - } - - /** - * Set whether or not to consume the entity body of a request when a mock - * response is used - * - * @param bool $readBodies Set to true to read and consume entity bodies - * - * @return self - */ - public function readBodies($readBodies) - { - $this->readBodies = $readBodies; - - return $this; - } - - /** - * Returns the number of remaining mock responses - * - * @return int - */ - public function count() - { - return count($this->queue); - } - - /** - * Add a response to the end of the queue - * - * @param string|Response $response Response object or path to response file - * - * @return MockPlugin - * @throws InvalidArgumentException if a string or Response is not passed - */ - public function addResponse($response) - { - if (!($response instanceof Response)) { - if (!is_string($response)) { - throw new InvalidArgumentException('Invalid response'); - } - $response = self::getMockFile($response); - } - - $this->queue[] = $response; - - return $this; - } - - /** - * Add an exception to the end of the queue - * - * @param CurlException $e Exception to throw when the request is executed - * - * @return MockPlugin - */ - public function addException(CurlException $e) - { - $this->queue[] = $e; - - return $this; - } - - /** - * Clear the queue - * - * @return MockPlugin - */ - public function clearQueue() - { - $this->queue = array(); - - return $this; - } - - /** - * Returns an array of mock responses remaining in the queue - * - * @return array - */ - public function getQueue() - { - return $this->queue; - } - - /** - * Check if this is a temporary plugin - * - * @return bool - */ - public function isTemporary() - { - return $this->temporary; - } - - /** - * Get a response from the front of the list and add it to a request - * - * @param RequestInterface $request Request to mock - * - * @return self - * @throws CurlException When request.send is called and an exception is queued - */ - public function dequeue(RequestInterface $request) - { - $this->dispatch('mock.request', array('plugin' => $this, 'request' => $request)); - - $item = array_shift($this->queue); - if ($item instanceof Response) { - if ($this->readBodies && $request instanceof EntityEnclosingRequestInterface) { - $request->getEventDispatcher()->addListener('request.sent', $f = function (Event $event) use (&$f) { - while ($data = $event['request']->getBody()->read(8096)); - // Remove the listener after one-time use - $event['request']->getEventDispatcher()->removeListener('request.sent', $f); - }); - } - $request->setResponse($item); - } elseif ($item instanceof CurlException) { - // Emulates exceptions encountered while transferring requests - $item->setRequest($request); - $state = $request->setState(RequestInterface::STATE_ERROR, array('exception' => $item)); - // Only throw if the exception wasn't handled - if ($state == RequestInterface::STATE_ERROR) { - throw $item; - } - } - - return $this; - } - - /** - * Clear the array of received requests - */ - public function flush() - { - $this->received = array(); - } - - /** - * Get an array of requests that were mocked by this plugin - * - * @return array - */ - public function getReceivedRequests() - { - return $this->received; - } - - /** - * Called when a request is about to be sent - * - * @param Event $event - * @throws \OutOfBoundsException When queue is empty - */ - public function onRequestBeforeSend(Event $event) - { - if (!$this->queue) { - throw new \OutOfBoundsException('Mock queue is empty'); - } - - $request = $event['request']; - $this->received[] = $request; - // Detach the filter from the client so it's a one-time use - if ($this->temporary && count($this->queue) == 1 && $request->getClient()) { - $request->getClient()->getEventDispatcher()->removeSubscriber($this); - } - $this->dequeue($request); - } -} diff --git a/lib/aws-sdk/Guzzle/Plugin/Oauth/OauthPlugin.php b/lib/aws-sdk/Guzzle/Plugin/Oauth/OauthPlugin.php deleted file mode 100644 index 95e0c3e..0000000 --- a/lib/aws-sdk/Guzzle/Plugin/Oauth/OauthPlugin.php +++ /dev/null @@ -1,306 +0,0 @@ -config = Collection::fromConfig($config, array( - 'version' => '1.0', - 'request_method' => self::REQUEST_METHOD_HEADER, - 'consumer_key' => 'anonymous', - 'consumer_secret' => 'anonymous', - 'signature_method' => 'HMAC-SHA1', - 'signature_callback' => function($stringToSign, $key) { - return hash_hmac('sha1', $stringToSign, $key, true); - } - ), array( - 'signature_method', 'signature_callback', 'version', - 'consumer_key', 'consumer_secret' - )); - } - - public static function getSubscribedEvents() - { - return array( - 'request.before_send' => array('onRequestBeforeSend', -1000) - ); - } - - /** - * Request before-send event handler - * - * @param Event $event Event received - * @return array - * @throws \InvalidArgumentException - */ - public function onRequestBeforeSend(Event $event) - { - $timestamp = $this->getTimestamp($event); - $request = $event['request']; - $nonce = $this->generateNonce($request); - $authorizationParams = $this->getOauthParams($timestamp, $nonce); - $authorizationParams['oauth_signature'] = $this->getSignature($request, $timestamp, $nonce); - - switch ($this->config['request_method']) { - case self::REQUEST_METHOD_HEADER: - $request->setHeader( - 'Authorization', - $this->buildAuthorizationHeader($authorizationParams) - ); - break; - case self::REQUEST_METHOD_QUERY: - foreach ($authorizationParams as $key => $value) { - $request->getQuery()->set($key, $value); - } - break; - default: - throw new \InvalidArgumentException(sprintf( - 'Invalid consumer method "%s"', - $this->config['request_method'] - )); - } - - return $authorizationParams; - } - - /** - * Builds the Authorization header for a request - * - * @param array $authorizationParams Associative array of authorization parameters - * - * @return string - */ - private function buildAuthorizationHeader($authorizationParams) - { - $authorizationString = 'OAuth '; - foreach ($authorizationParams as $key => $val) { - if ($val) { - $authorizationString .= $key . '="' . urlencode($val) . '", '; - } - } - - return substr($authorizationString, 0, -2); - } - - /** - * Calculate signature for request - * - * @param RequestInterface $request Request to generate a signature for - * @param integer $timestamp Timestamp to use for nonce - * @param string $nonce - * - * @return string - */ - public function getSignature(RequestInterface $request, $timestamp, $nonce) - { - $string = $this->getStringToSign($request, $timestamp, $nonce); - $key = urlencode($this->config['consumer_secret']) . '&' . urlencode($this->config['token_secret']); - - return base64_encode(call_user_func($this->config['signature_callback'], $string, $key)); - } - - /** - * Calculate string to sign - * - * @param RequestInterface $request Request to generate a signature for - * @param int $timestamp Timestamp to use for nonce - * @param string $nonce - * - * @return string - */ - public function getStringToSign(RequestInterface $request, $timestamp, $nonce) - { - $params = $this->getParamsToSign($request, $timestamp, $nonce); - - // Convert booleans to strings. - $params = $this->prepareParameters($params); - - // Build signing string from combined params - $parameterString = clone $request->getQuery(); - $parameterString->replace($params); - - $url = Url::factory($request->getUrl())->setQuery('')->setFragment(null); - - return strtoupper($request->getMethod()) . '&' - . rawurlencode($url) . '&' - . rawurlencode((string) $parameterString); - } - - /** - * Get the oauth parameters as named by the oauth spec - * - * @param $timestamp - * @param $nonce - * @return Collection - */ - protected function getOauthParams($timestamp, $nonce) - { - $params = new Collection(array( - 'oauth_consumer_key' => $this->config['consumer_key'], - 'oauth_nonce' => $nonce, - 'oauth_signature_method' => $this->config['signature_method'], - 'oauth_timestamp' => $timestamp, - )); - - // Optional parameters should not be set if they have not been set in the config as - // the parameter may be considered invalid by the Oauth service. - $optionalParams = array( - 'callback' => 'oauth_callback', - 'token' => 'oauth_token', - 'verifier' => 'oauth_verifier', - 'version' => 'oauth_version' - ); - - foreach ($optionalParams as $optionName => $oauthName) { - if (isset($this->config[$optionName]) == true) { - $params[$oauthName] = $this->config[$optionName]; - } - } - - return $params; - } - - /** - * Get all of the parameters required to sign a request including: - * * The oauth params - * * The request GET params - * * The params passed in the POST body (with a content-type of application/x-www-form-urlencoded) - * - * @param RequestInterface $request Request to generate a signature for - * @param integer $timestamp Timestamp to use for nonce - * @param string $nonce - * - * @return array - */ - public function getParamsToSign(RequestInterface $request, $timestamp, $nonce) - { - $params = $this->getOauthParams($timestamp, $nonce); - - // Add query string parameters - $params->merge($request->getQuery()); - - // Add POST fields to signing string if required - if ($this->shouldPostFieldsBeSigned($request)) - { - $params->merge($request->getPostFields()); - } - - // Sort params - $params = $params->toArray(); - uksort($params, 'strcmp'); - - return $params; - } - - /** - * Decide whether the post fields should be added to the base string that Oauth signs. - * This implementation is correct. Non-conformant APIs may require that this method be - * overwritten e.g. the Flickr API incorrectly adds the post fields when the Content-Type - * is 'application/x-www-form-urlencoded' - * - * @param $request - * @return bool Whether the post fields should be signed or not - */ - public function shouldPostFieldsBeSigned($request) - { - if (!$this->config->get('disable_post_params') && - $request instanceof EntityEnclosingRequestInterface && - false !== strpos($request->getHeader('Content-Type'), 'application/x-www-form-urlencoded')) - { - return true; - } - - return false; - } - - /** - * Returns a Nonce Based on the unique id and URL. This will allow for multiple requests in parallel with the same - * exact timestamp to use separate nonce's. - * - * @param RequestInterface $request Request to generate a nonce for - * - * @return string - */ - public function generateNonce(RequestInterface $request) - { - return sha1(uniqid('', true) . $request->getUrl()); - } - - /** - * Gets timestamp from event or create new timestamp - * - * @param Event $event Event containing contextual information - * - * @return int - */ - public function getTimestamp(Event $event) - { - return $event['timestamp'] ?: time(); - } - - /** - * Convert booleans to strings, removed unset parameters, and sorts the array - * - * @param array $data Data array - * - * @return array - */ - protected function prepareParameters($data) - { - ksort($data); - foreach ($data as $key => &$value) { - switch (gettype($value)) { - case 'NULL': - unset($data[$key]); - break; - case 'array': - $data[$key] = self::prepareParameters($value); - break; - case 'boolean': - $data[$key] = $value ? 'true' : 'false'; - break; - } - } - - return $data; - } -} diff --git a/lib/aws-sdk/Guzzle/Service/AbstractConfigLoader.php b/lib/aws-sdk/Guzzle/Service/AbstractConfigLoader.php deleted file mode 100644 index cd06f57..0000000 --- a/lib/aws-sdk/Guzzle/Service/AbstractConfigLoader.php +++ /dev/null @@ -1,177 +0,0 @@ - 'JSON_ERROR_NONE - No errors', - JSON_ERROR_DEPTH => 'JSON_ERROR_DEPTH - Maximum stack depth exceeded', - JSON_ERROR_STATE_MISMATCH => 'JSON_ERROR_STATE_MISMATCH - Underflow or the modes mismatch', - JSON_ERROR_CTRL_CHAR => 'JSON_ERROR_CTRL_CHAR - Unexpected control character found', - JSON_ERROR_SYNTAX => 'JSON_ERROR_SYNTAX - Syntax error, malformed JSON', - JSON_ERROR_UTF8 => 'JSON_ERROR_UTF8 - Malformed UTF-8 characters, possibly incorrectly encoded' - ); - - public function load($config, array $options = array()) - { - // Reset the array of loaded files because this is a new config - $this->loadedFiles = array(); - - if (is_string($config)) { - $config = $this->loadFile($config); - } elseif (!is_array($config)) { - throw new InvalidArgumentException('Unknown type passed to configuration loader: ' . gettype($config)); - } else { - $this->mergeIncludes($config); - } - - return $this->build($config, $options); - } - - /** - * Add an include alias to the loader - * - * @param string $filename Filename to alias (e.g. _foo) - * @param string $alias Actual file to use (e.g. /path/to/foo.json) - * - * @return self - */ - public function addAlias($filename, $alias) - { - $this->aliases[$filename] = $alias; - - return $this; - } - - /** - * Remove an alias from the loader - * - * @param string $alias Alias to remove - * - * @return self - */ - public function removeAlias($alias) - { - unset($this->aliases[$alias]); - - return $this; - } - - /** - * Perform the parsing of a config file and create the end result - * - * @param array $config Configuration data - * @param array $options Options to use when building - * - * @return mixed - */ - protected abstract function build($config, array $options); - - /** - * Load a configuration file (can load JSON or PHP files that return an array when included) - * - * @param string $filename File to load - * - * @return array - * @throws InvalidArgumentException - * @throws RuntimeException when the JSON cannot be parsed - */ - protected function loadFile($filename) - { - if (isset($this->aliases[$filename])) { - $filename = $this->aliases[$filename]; - } - - switch (pathinfo($filename, PATHINFO_EXTENSION)) { - case 'js': - case 'json': - $level = error_reporting(0); - $json = file_get_contents($filename); - error_reporting($level); - - if ($json === false) { - $err = error_get_last(); - throw new InvalidArgumentException("Unable to open {$filename}: " . $err['message']); - } - - $config = json_decode($json, true); - // Throw an exception if there was an error loading the file - if ($error = json_last_error()) { - $message = isset(self::$jsonErrors[$error]) ? self::$jsonErrors[$error] : 'Unknown error'; - throw new RuntimeException("Error loading JSON data from {$filename}: ({$error}) - {$message}"); - } - break; - case 'php': - if (!is_readable($filename)) { - throw new InvalidArgumentException("Unable to open {$filename} for reading"); - } - $config = require $filename; - if (!is_array($config)) { - throw new InvalidArgumentException('PHP files must return an array of configuration data'); - } - break; - default: - throw new InvalidArgumentException('Unknown file extension: ' . $filename); - } - - // Keep track of this file being loaded to prevent infinite recursion - $this->loadedFiles[$filename] = true; - - // Merge include files into the configuration array - $this->mergeIncludes($config, dirname($filename)); - - return $config; - } - - /** - * Merges in all include files - * - * @param array $config Config data that contains includes - * @param string $basePath Base path to use when a relative path is encountered - * - * @return array Returns the merged and included data - */ - protected function mergeIncludes(&$config, $basePath = null) - { - if (!empty($config['includes'])) { - foreach ($config['includes'] as &$path) { - // Account for relative paths - if ($path[0] != DIRECTORY_SEPARATOR && !isset($this->aliases[$path]) && $basePath) { - $path = "{$basePath}/{$path}"; - } - // Don't load the same files more than once - if (!isset($this->loadedFiles[$path])) { - $this->loadedFiles[$path] = true; - $config = $this->mergeData($this->loadFile($path), $config); - } - } - } - } - - /** - * Default implementation for merging two arrays of data (uses array_merge_recursive) - * - * @param array $a Original data - * @param array $b Data to merge into the original and overwrite existing values - * - * @return array - */ - protected function mergeData(array $a, array $b) - { - return array_merge_recursive($a, $b); - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Builder/ServiceBuilder.php b/lib/aws-sdk/Guzzle/Service/Builder/ServiceBuilder.php deleted file mode 100644 index 38150db..0000000 --- a/lib/aws-sdk/Guzzle/Service/Builder/ServiceBuilder.php +++ /dev/null @@ -1,189 +0,0 @@ -load($config, $globalParameters); - } - - /** - * @param array $serviceBuilderConfig Service configuration settings: - * - name: Name of the service - * - class: Client class to instantiate using a factory method - * - params: array of key value pair configuration settings for the builder - */ - public function __construct(array $serviceBuilderConfig = array()) - { - $this->builderConfig = $serviceBuilderConfig; - } - - public static function getAllEvents() - { - return array('service_builder.create_client'); - } - - public function unserialize($serialized) - { - $this->builderConfig = json_decode($serialized, true); - } - - public function serialize() - { - return json_encode($this->builderConfig); - } - - /** - * Attach a plugin to every client created by the builder - * - * @param EventSubscriberInterface $plugin Plugin to attach to each client - * - * @return self - */ - public function addGlobalPlugin(EventSubscriberInterface $plugin) - { - $this->plugins[] = $plugin; - - return $this; - } - - /** - * Get data from the service builder without triggering the building of a service - * - * @param string $name Name of the service to retrieve - * - * @return array|null - */ - public function getData($name) - { - return isset($this->builderConfig[$name]) ? $this->builderConfig[$name] : null; - } - - public function get($name, $throwAway = false) - { - if (!isset($this->builderConfig[$name])) { - - // Check to see if arbitrary data is being referenced - if (isset($this->clients[$name])) { - return $this->clients[$name]; - } - - // Check aliases and return a match if found - foreach ($this->builderConfig as $actualName => $config) { - if (isset($config['alias']) && $config['alias'] == $name) { - return $this->get($actualName, $throwAway); - } - } - throw new ServiceNotFoundException('No service is registered as ' . $name); - } - - if (!$throwAway && isset($this->clients[$name])) { - return $this->clients[$name]; - } - - $builder =& $this->builderConfig[$name]; - - // Convert references to the actual client - foreach ($builder['params'] as &$v) { - if (is_string($v) && substr($v, 0, 1) == '{' && substr($v, -1) == '}') { - $v = $this->get(trim($v, '{} ')); - } - } - - // Get the configured parameters and merge in any parameters provided for throw-away clients - $config = $builder['params']; - if (is_array($throwAway)) { - $config = $throwAway + $config; - } - - $client = $builder['class']::factory($config); - - if (!$throwAway) { - $this->clients[$name] = $client; - } - - if ($client instanceof ClientInterface) { - foreach ($this->plugins as $plugin) { - $client->addSubscriber($plugin); - } - // Dispatch an event letting listeners know a client was created - $this->dispatch('service_builder.create_client', array('client' => $client)); - } - - return $client; - } - - public function set($key, $service) - { - if (is_array($service) && isset($service['class']) && isset($service['params'])) { - $this->builderConfig[$key] = $service; - } else { - $this->clients[$key] = $service; - } - - return $this; - } - - public function offsetSet($offset, $value) - { - $this->set($offset, $value); - } - - public function offsetUnset($offset) - { - unset($this->builderConfig[$offset]); - unset($this->clients[$offset]); - } - - public function offsetExists($offset) - { - return isset($this->builderConfig[$offset]) || isset($this->clients[$offset]); - } - - public function offsetGet($offset) - { - return $this->get($offset); - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Builder/ServiceBuilderInterface.php b/lib/aws-sdk/Guzzle/Service/Builder/ServiceBuilderInterface.php deleted file mode 100644 index 4fc310a..0000000 --- a/lib/aws-sdk/Guzzle/Service/Builder/ServiceBuilderInterface.php +++ /dev/null @@ -1,40 +0,0 @@ - &$service) { - - $service['params'] = isset($service['params']) ? $service['params'] : array(); - - // Check if this client builder extends another client - if (!empty($service['extends'])) { - - // Make sure that the service it's extending has been defined - if (!isset($services[$service['extends']])) { - throw new ServiceNotFoundException( - "{$name} is trying to extend a non-existent service: {$service['extends']}" - ); - } - - $extended = &$services[$service['extends']]; - - // Use the correct class attribute - if (empty($service['class'])) { - $service['class'] = isset($extended['class']) ? $extended['class'] : ''; - } - if ($extendsParams = isset($extended['params']) ? $extended['params'] : false) { - $service['params'] = $service['params'] + $extendsParams; - } - } - - // Overwrite default values with global parameter values - if (!empty($options)) { - $service['params'] = $options + $service['params']; - } - - $service['class'] = isset($service['class']) ? $service['class'] : ''; - } - - return new $class($services); - } - - protected function mergeData(array $a, array $b) - { - $result = $b + $a; - - // Merge services using a recursive union of arrays - if (isset($a['services']) && $b['services']) { - - // Get a union of the services of the two arrays - $result['services'] = $b['services'] + $a['services']; - - // Merge each service in using a union of the two arrays - foreach ($result['services'] as $name => &$service) { - - // By default, services completely override a previously defined service unless it extends itself - if (isset($a['services'][$name]['extends']) - && isset($b['services'][$name]['extends']) - && $b['services'][$name]['extends'] == $name - ) { - $service += $a['services'][$name]; - // Use the `extends` attribute of the parent - $service['extends'] = $a['services'][$name]['extends']; - // Merge parameters using a union if both have parameters - if (isset($a['services'][$name]['params'])) { - $service['params'] += $a['services'][$name]['params']; - } - } - } - } - - return $result; - } -} diff --git a/lib/aws-sdk/Guzzle/Service/CachingConfigLoader.php b/lib/aws-sdk/Guzzle/Service/CachingConfigLoader.php deleted file mode 100644 index 26f8360..0000000 --- a/lib/aws-sdk/Guzzle/Service/CachingConfigLoader.php +++ /dev/null @@ -1,46 +0,0 @@ -loader = $loader; - $this->cache = $cache; - } - - public function load($config, array $options = array()) - { - if (!is_string($config)) { - $key = false; - } else { - $key = 'loader_' . crc32($config); - if ($result = $this->cache->fetch($key)) { - return $result; - } - } - - $result = $this->loader->load($config, $options); - if ($key) { - $this->cache->save($key, $result); - } - - return $result; - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Client.php b/lib/aws-sdk/Guzzle/Service/Client.php deleted file mode 100644 index 3e5f8e5..0000000 --- a/lib/aws-sdk/Guzzle/Service/Client.php +++ /dev/null @@ -1,297 +0,0 @@ -getCommand($method, isset($args[0]) ? $args[0] : array())->getResult(); - } - - public function getCommand($name, array $args = array()) - { - // Add global client options to the command - if ($options = $this->getConfig(self::COMMAND_PARAMS)) { - $args += $options; - } - - if (!($command = $this->getCommandFactory()->factory($name, $args))) { - throw new InvalidArgumentException("Command was not found matching {$name}"); - } - - $command->setClient($this); - $this->dispatch('client.command.create', array('client' => $this, 'command' => $command)); - - return $command; - } - - /** - * Set the command factory used to create commands by name - * - * @param CommandFactoryInterface $factory Command factory - * - * @return self - */ - public function setCommandFactory(CommandFactoryInterface $factory) - { - $this->commandFactory = $factory; - - return $this; - } - - /** - * Set the resource iterator factory associated with the client - * - * @param ResourceIteratorFactoryInterface $factory Resource iterator factory - * - * @return self - */ - public function setResourceIteratorFactory(ResourceIteratorFactoryInterface $factory) - { - $this->resourceIteratorFactory = $factory; - - return $this; - } - - public function getIterator($command, array $commandOptions = null, array $iteratorOptions = array()) - { - if (!($command instanceof CommandInterface)) { - $command = $this->getCommand($command, $commandOptions ?: array()); - } - - return $this->getResourceIteratorFactory()->build($command, $iteratorOptions); - } - - public function execute($command) - { - if ($command instanceof CommandInterface) { - $this->send($this->prepareCommand($command)); - $this->dispatch('command.after_send', array('command' => $command)); - return $command->getResult(); - } elseif (is_array($command) || $command instanceof \Traversable) { - return $this->executeMultiple($command); - } else { - throw new InvalidArgumentException('Command must be a command or array of commands'); - } - } - - public function setDescription(ServiceDescriptionInterface $service) - { - $this->serviceDescription = $service; - - if ($this->getCommandFactory() && $this->getCommandFactory() instanceof CompositeFactory) { - $this->commandFactory->add(new Command\Factory\ServiceDescriptionFactory($service)); - } - - // If a baseUrl was set on the description, then update the client - if ($baseUrl = $service->getBaseUrl()) { - $this->setBaseUrl($baseUrl); - } - - return $this; - } - - public function getDescription() - { - return $this->serviceDescription; - } - - /** - * Set the inflector used with the client - * - * @param InflectorInterface $inflector Inflection object - * - * @return self - */ - public function setInflector(InflectorInterface $inflector) - { - $this->inflector = $inflector; - - return $this; - } - - /** - * Get the inflector used with the client - * - * @return self - */ - public function getInflector() - { - if (!$this->inflector) { - $this->inflector = Inflector::getDefault(); - } - - return $this->inflector; - } - - /** - * Prepare a command for sending and get the RequestInterface object created by the command - * - * @param CommandInterface $command Command to prepare - * - * @return RequestInterface - */ - protected function prepareCommand(CommandInterface $command) - { - // Set the client and prepare the command - $request = $command->setClient($this)->prepare(); - // Set the state to new if the command was previously executed - $request->setState(RequestInterface::STATE_NEW); - $this->dispatch('command.before_send', array('command' => $command)); - - return $request; - } - - /** - * Execute multiple commands in parallel - * - * @param array|Traversable $commands Array of CommandInterface objects to execute - * - * @return array Returns an array of the executed commands - * @throws Exception\CommandTransferException - */ - protected function executeMultiple($commands) - { - $requests = array(); - $commandRequests = new \SplObjectStorage(); - - foreach ($commands as $command) { - $request = $this->prepareCommand($command); - $commandRequests[$request] = $command; - $requests[] = $request; - } - - try { - $this->send($requests); - foreach ($commands as $command) { - $this->dispatch('command.after_send', array('command' => $command)); - } - return $commands; - } catch (MultiTransferException $failureException) { - // Throw a CommandTransferException using the successful and failed commands - $e = CommandTransferException::fromMultiTransferException($failureException); - - // Remove failed requests from the successful requests array and add to the failures array - foreach ($failureException->getFailedRequests() as $request) { - if (isset($commandRequests[$request])) { - $e->addFailedCommand($commandRequests[$request]); - unset($commandRequests[$request]); - } - } - - // Always emit the command after_send events for successful commands - foreach ($commandRequests as $success) { - $e->addSuccessfulCommand($commandRequests[$success]); - $this->dispatch('command.after_send', array('command' => $commandRequests[$success])); - } - - throw $e; - } - } - - protected function getResourceIteratorFactory() - { - if (!$this->resourceIteratorFactory) { - // Build the default resource iterator factory if one is not set - $clientClass = get_class($this); - $prefix = substr($clientClass, 0, strrpos($clientClass, '\\')); - $this->resourceIteratorFactory = new ResourceIteratorClassFactory(array( - "{$prefix}\\Iterator", - "{$prefix}\\Model" - )); - } - - return $this->resourceIteratorFactory; - } - - /** - * Get the command factory associated with the client - * - * @return CommandFactoryInterface - */ - protected function getCommandFactory() - { - if (!$this->commandFactory) { - $this->commandFactory = CompositeFactory::getDefaultChain($this); - } - - return $this->commandFactory; - } - - /** - * @deprecated - * @codeCoverageIgnore - */ - public function enableMagicMethods($isEnabled) - { - Version::warn(__METHOD__ . ' is deprecated'); - } -} diff --git a/lib/aws-sdk/Guzzle/Service/ClientInterface.php b/lib/aws-sdk/Guzzle/Service/ClientInterface.php deleted file mode 100644 index 814154f..0000000 --- a/lib/aws-sdk/Guzzle/Service/ClientInterface.php +++ /dev/null @@ -1,68 +0,0 @@ -operation = $operation ?: $this->createOperation(); - foreach ($this->operation->getParams() as $name => $arg) { - $currentValue = $this[$name]; - $configValue = $arg->getValue($currentValue); - // If default or static values are set, then this should always be updated on the config object - if ($currentValue !== $configValue) { - $this[$name] = $configValue; - } - } - - $headers = $this[self::HEADERS_OPTION]; - if (!$headers instanceof Collection) { - $this[self::HEADERS_OPTION] = new Collection((array) $headers); - } - - // You can set a command.on_complete option in your parameters to set an onComplete callback - if ($onComplete = $this['command.on_complete']) { - unset($this['command.on_complete']); - $this->setOnComplete($onComplete); - } - - // Set the hidden additional parameters - if (!$this[self::HIDDEN_PARAMS]) { - $this[self::HIDDEN_PARAMS] = array( - self::HEADERS_OPTION, - self::RESPONSE_PROCESSING, - self::HIDDEN_PARAMS, - self::REQUEST_OPTIONS - ); - } - - $this->init(); - } - - /** - * Custom clone behavior - */ - public function __clone() - { - $this->request = null; - $this->result = null; - } - - /** - * Execute the command in the same manner as calling a function - * - * @return mixed Returns the result of {@see AbstractCommand::execute} - */ - public function __invoke() - { - return $this->execute(); - } - - public function getName() - { - return $this->operation->getName(); - } - - /** - * Get the API command information about the command - * - * @return OperationInterface - */ - public function getOperation() - { - return $this->operation; - } - - public function setOnComplete($callable) - { - if (!is_callable($callable)) { - throw new InvalidArgumentException('The onComplete function must be callable'); - } - - $this->onComplete = $callable; - - return $this; - } - - public function execute() - { - if (!$this->client) { - throw new CommandException('A client must be associated with the command before it can be executed.'); - } - - return $this->client->execute($this); - } - - public function getClient() - { - return $this->client; - } - - public function setClient(ClientInterface $client) - { - $this->client = $client; - - return $this; - } - - public function getRequest() - { - if (!$this->request) { - throw new CommandException('The command must be prepared before retrieving the request'); - } - - return $this->request; - } - - public function getResponse() - { - if (!$this->isExecuted()) { - $this->execute(); - } - - return $this->request->getResponse(); - } - - public function getResult() - { - if (!$this->isExecuted()) { - $this->execute(); - } - - if (null === $this->result) { - $this->process(); - // Call the onComplete method if one is set - if ($this->onComplete) { - call_user_func($this->onComplete, $this); - } - } - - return $this->result; - } - - public function setResult($result) - { - $this->result = $result; - - return $this; - } - - public function isPrepared() - { - return $this->request !== null; - } - - public function isExecuted() - { - return $this->request !== null && $this->request->getState() == 'complete'; - } - - public function prepare() - { - if (!$this->isPrepared()) { - if (!$this->client) { - throw new CommandException('A client must be associated with the command before it can be prepared.'); - } - - // If no response processing value was specified, then attempt to use the highest level of processing - if (!isset($this[self::RESPONSE_PROCESSING])) { - $this[self::RESPONSE_PROCESSING] = self::TYPE_MODEL; - } - - // Notify subscribers of the client that the command is being prepared - $this->client->dispatch('command.before_prepare', array('command' => $this)); - - // Fail on missing required arguments, and change parameters via filters - $this->validate(); - // Delegate to the subclass that implements the build method - $this->build(); - - // Add custom request headers set on the command - if ($headers = $this[self::HEADERS_OPTION]) { - foreach ($headers as $key => $value) { - $this->request->setHeader($key, $value); - } - } - - // Add any curl options to the request - if ($options = $this[Client::CURL_OPTIONS]) { - $this->request->getCurlOptions()->overwriteWith(CurlHandle::parseCurlConfig($options)); - } - - // Set a custom response body - if ($responseBody = $this[self::RESPONSE_BODY]) { - $this->request->setResponseBody($responseBody); - } - - $this->client->dispatch('command.after_prepare', array('command' => $this)); - } - - return $this->request; - } - - /** - * Set the validator used to validate and prepare command parameters and nested JSON schemas. If no validator is - * set, then the command will validate using the default {@see SchemaValidator}. - * - * @param ValidatorInterface $validator Validator used to prepare and validate properties against a JSON schema - * - * @return self - */ - public function setValidator(ValidatorInterface $validator) - { - $this->validator = $validator; - - return $this; - } - - public function getRequestHeaders() - { - return $this[self::HEADERS_OPTION]; - } - - /** - * Initialize the command (hook that can be implemented in subclasses) - */ - protected function init() {} - - /** - * Create the request object that will carry out the command - */ - abstract protected function build(); - - /** - * Hook used to create an operation for concrete commands that are not associated with a service description - * - * @return OperationInterface - */ - protected function createOperation() - { - return new Operation(array('name' => get_class($this))); - } - - /** - * Create the result of the command after the request has been completed. - * Override this method in subclasses to customize this behavior - */ - protected function process() - { - $this->result = $this[self::RESPONSE_PROCESSING] != self::TYPE_RAW - ? DefaultResponseParser::getInstance()->parse($this) - : $this->request->getResponse(); - } - - /** - * Validate and prepare the command based on the schema and rules defined by the command's Operation object - * - * @throws ValidationException when validation errors occur - */ - protected function validate() - { - // Do not perform request validation/transformation if it is disable - if ($this[self::DISABLE_VALIDATION]) { - return; - } - - $errors = array(); - $validator = $this->getValidator(); - foreach ($this->operation->getParams() as $name => $schema) { - $value = $this[$name]; - if (!$validator->validate($schema, $value)) { - $errors = array_merge($errors, $validator->getErrors()); - } elseif ($value !== $this[$name]) { - // Update the config value if it changed and no validation errors were encountered - $this->data[$name] = $value; - } - } - - // Validate additional parameters - $hidden = $this[self::HIDDEN_PARAMS]; - - if ($properties = $this->operation->getAdditionalParameters()) { - foreach ($this->toArray() as $name => $value) { - // It's only additional if it isn't defined in the schema - if (!$this->operation->hasParam($name) && !in_array($name, $hidden)) { - // Always set the name so that error messages are useful - $properties->setName($name); - if (!$validator->validate($properties, $value)) { - $errors = array_merge($errors, $validator->getErrors()); - } elseif ($value !== $this[$name]) { - $this->data[$name] = $value; - } - } - } - } - - if (!empty($errors)) { - $e = new ValidationException('Validation errors: ' . implode("\n", $errors)); - $e->setErrors($errors); - throw $e; - } - } - - /** - * Get the validator used to prepare and validate properties. If no validator has been set on the command, then - * the default {@see SchemaValidator} will be used. - * - * @return ValidatorInterface - */ - protected function getValidator() - { - if (!$this->validator) { - $this->validator = SchemaValidator::getInstance(); - } - - return $this->validator; - } - - /** - * Get array of any validation errors - * If no validator has been set then return false - */ - public function getValidationErrors() - { - if (!$this->validator) { - return false; - } - - return $this->validator->getErrors(); - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/ClosureCommand.php b/lib/aws-sdk/Guzzle/Service/Command/ClosureCommand.php deleted file mode 100644 index cb6ac40..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/ClosureCommand.php +++ /dev/null @@ -1,41 +0,0 @@ -request = $closure($this, $this->operation); - - if (!$this->request || !$this->request instanceof RequestInterface) { - throw new UnexpectedValueException('Closure command did not return a RequestInterface object'); - } - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/CommandInterface.php b/lib/aws-sdk/Guzzle/Service/Command/CommandInterface.php deleted file mode 100644 index fbb61d2..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/CommandInterface.php +++ /dev/null @@ -1,128 +0,0 @@ -stopPropagation(); - } - - /** - * Get the created object - * - * @return mixed - */ - public function getResult() - { - return $this['result']; - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/DefaultRequestSerializer.php b/lib/aws-sdk/Guzzle/Service/Command/DefaultRequestSerializer.php deleted file mode 100644 index 2dc4acd..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/DefaultRequestSerializer.php +++ /dev/null @@ -1,169 +0,0 @@ -factory = $factory; - } - - /** - * Add a location visitor to the serializer - * - * @param string $location Location to associate with the visitor - * @param RequestVisitorInterface $visitor Visitor to attach - * - * @return self - */ - public function addVisitor($location, RequestVisitorInterface $visitor) - { - $this->factory->addRequestVisitor($location, $visitor); - - return $this; - } - - public function prepare(CommandInterface $command) - { - $request = $this->createRequest($command); - // Keep an array of visitors found in the operation - $foundVisitors = array(); - $operation = $command->getOperation(); - - // Add arguments to the request using the location attribute - foreach ($operation->getParams() as $name => $arg) { - /** @var $arg \Guzzle\Service\Description\Parameter */ - $location = $arg->getLocation(); - // Skip 'uri' locations because they've already been processed - if ($location && $location != 'uri') { - // Instantiate visitors as they are detected in the properties - if (!isset($foundVisitors[$location])) { - $foundVisitors[$location] = $this->factory->getRequestVisitor($location); - } - // Ensure that a value has been set for this parameter - $value = $command[$name]; - if ($value !== null) { - // Apply the parameter value with the location visitor - $foundVisitors[$location]->visit($command, $request, $arg, $value); - } - } - } - - // Serialize additional parameters - if ($additional = $operation->getAdditionalParameters()) { - if ($visitor = $this->prepareAdditionalParameters($operation, $command, $request, $additional)) { - $foundVisitors[$additional->getLocation()] = $visitor; - } - } - - // Call the after method on each visitor found in the operation - foreach ($foundVisitors as $visitor) { - $visitor->after($command, $request); - } - - return $request; - } - - /** - * Serialize additional parameters - * - * @param OperationInterface $operation Operation that owns the command - * @param CommandInterface $command Command to prepare - * @param RequestInterface $request Request to serialize - * @param Parameter $additional Additional parameters - * - * @return null|RequestVisitorInterface - */ - protected function prepareAdditionalParameters( - OperationInterface $operation, - CommandInterface $command, - RequestInterface $request, - Parameter $additional - ) { - if (!($location = $additional->getLocation())) { - return; - } - - $visitor = $this->factory->getRequestVisitor($location); - $hidden = $command[$command::HIDDEN_PARAMS]; - - foreach ($command->toArray() as $key => $value) { - // Ignore values that are null or built-in command options - if ($value !== null - && !in_array($key, $hidden) - && !$operation->hasParam($key) - ) { - $additional->setName($key); - $visitor->visit($command, $request, $additional, $value); - } - } - - return $visitor; - } - - /** - * Create a request for the command and operation - * - * @param CommandInterface $command Command to create a request for - * - * @return RequestInterface - */ - protected function createRequest(CommandInterface $command) - { - $operation = $command->getOperation(); - $client = $command->getClient(); - $options = $command[AbstractCommand::REQUEST_OPTIONS] ?: array(); - - // If the command does not specify a template, then assume the base URL of the client - if (!($uri = $operation->getUri())) { - return $client->createRequest($operation->getHttpMethod(), $client->getBaseUrl(), null, null, $options); - } - - // Get the path values and use the client config settings - $variables = array(); - foreach ($operation->getParams() as $name => $arg) { - if ($arg->getLocation() == 'uri') { - if (isset($command[$name])) { - $variables[$name] = $arg->filter($command[$name]); - if (!is_array($variables[$name])) { - $variables[$name] = (string) $variables[$name]; - } - } - } - } - - return $client->createRequest($operation->getHttpMethod(), array($uri, $variables), null, null, $options); - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/DefaultResponseParser.php b/lib/aws-sdk/Guzzle/Service/Command/DefaultResponseParser.php deleted file mode 100644 index 4fe3803..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/DefaultResponseParser.php +++ /dev/null @@ -1,55 +0,0 @@ -getRequest()->getResponse(); - - // Account for hard coded content-type values specified in service descriptions - if ($contentType = $command['command.expects']) { - $response->setHeader('Content-Type', $contentType); - } else { - $contentType = (string) $response->getHeader('Content-Type'); - } - - return $this->handleParsing($command, $response, $contentType); - } - - protected function handleParsing(CommandInterface $command, Response $response, $contentType) - { - $result = $response; - if ($result->getBody()) { - if (stripos($contentType, 'json') !== false) { - $result = $result->json(); - } elseif (stripos($contentType, 'xml') !== false) { - $result = $result->xml(); - } - } - - return $result; - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/Factory/AliasFactory.php b/lib/aws-sdk/Guzzle/Service/Command/Factory/AliasFactory.php deleted file mode 100644 index 1c5ce07..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/Factory/AliasFactory.php +++ /dev/null @@ -1,39 +0,0 @@ -client = $client; - $this->aliases = $aliases; - } - - public function factory($name, array $args = array()) - { - if (isset($this->aliases[$name])) { - try { - return $this->client->getCommand($this->aliases[$name], $args); - } catch (InvalidArgumentException $e) { - return null; - } - } - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/Factory/CompositeFactory.php b/lib/aws-sdk/Guzzle/Service/Command/Factory/CompositeFactory.php deleted file mode 100644 index 8c46983..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/Factory/CompositeFactory.php +++ /dev/null @@ -1,154 +0,0 @@ -getDescription()) { - $factories[] = new ServiceDescriptionFactory($description); - } - $factories[] = new ConcreteClassFactory($client); - - return new self($factories); - } - - /** - * @param array $factories Array of command factories - */ - public function __construct(array $factories = array()) - { - $this->factories = $factories; - } - - /** - * Add a command factory to the chain - * - * @param FactoryInterface $factory Factory to add - * @param string|FactoryInterface $before Insert the new command factory before a command factory class or object - * matching a class name. - * @return CompositeFactory - */ - public function add(FactoryInterface $factory, $before = null) - { - $pos = null; - - if ($before) { - foreach ($this->factories as $i => $f) { - if ($before instanceof FactoryInterface) { - if ($f === $before) { - $pos = $i; - break; - } - } elseif (is_string($before)) { - if ($f instanceof $before) { - $pos = $i; - break; - } - } - } - } - - if ($pos === null) { - $this->factories[] = $factory; - } else { - array_splice($this->factories, $i, 0, array($factory)); - } - - return $this; - } - - /** - * Check if the chain contains a specific command factory - * - * @param FactoryInterface|string $factory Factory to check - * - * @return bool - */ - public function has($factory) - { - return (bool) $this->find($factory); - } - - /** - * Remove a specific command factory from the chain - * - * @param string|FactoryInterface $factory Factory to remove by name or instance - * - * @return CompositeFactory - */ - public function remove($factory = null) - { - if (!($factory instanceof FactoryInterface)) { - $factory = $this->find($factory); - } - - $this->factories = array_values(array_filter($this->factories, function($f) use ($factory) { - return $f !== $factory; - })); - - return $this; - } - - /** - * Get a command factory by class name - * - * @param string|FactoryInterface $factory Command factory class or instance - * - * @return null|FactoryInterface - */ - public function find($factory) - { - foreach ($this->factories as $f) { - if ($factory === $f || (is_string($factory) && $f instanceof $factory)) { - return $f; - } - } - } - - /** - * Create a command using the associated command factories - * - * @param string $name Name of the command - * @param array $args Command arguments - * - * @return CommandInterface - */ - public function factory($name, array $args = array()) - { - foreach ($this->factories as $factory) { - $command = $factory->factory($name, $args); - if ($command) { - return $command; - } - } - } - - public function count() - { - return count($this->factories); - } - - public function getIterator() - { - return new \ArrayIterator($this->factories); - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/Factory/ConcreteClassFactory.php b/lib/aws-sdk/Guzzle/Service/Command/Factory/ConcreteClassFactory.php deleted file mode 100644 index 0e93dea..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/Factory/ConcreteClassFactory.php +++ /dev/null @@ -1,47 +0,0 @@ -client = $client; - $this->inflector = $inflector ?: Inflector::getDefault(); - } - - public function factory($name, array $args = array()) - { - // Determine the class to instantiate based on the namespace of the current client and the default directory - $prefix = $this->client->getConfig('command.prefix'); - if (!$prefix) { - // The prefix can be specified in a factory method and is cached - $prefix = implode('\\', array_slice(explode('\\', get_class($this->client)), 0, -1)) . '\\Command\\'; - $this->client->getConfig()->set('command.prefix', $prefix); - } - - $class = $prefix . str_replace(' ', '\\', ucwords(str_replace('.', ' ', $this->inflector->camel($name)))); - - // Create the concrete command if it exists - if (class_exists($class)) { - return new $class($args); - } - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/Factory/FactoryInterface.php b/lib/aws-sdk/Guzzle/Service/Command/Factory/FactoryInterface.php deleted file mode 100644 index 35c299d..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/Factory/FactoryInterface.php +++ /dev/null @@ -1,21 +0,0 @@ -map = $map; - } - - public function factory($name, array $args = array()) - { - if (isset($this->map[$name])) { - $class = $this->map[$name]; - - return new $class($args); - } - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/Factory/ServiceDescriptionFactory.php b/lib/aws-sdk/Guzzle/Service/Command/Factory/ServiceDescriptionFactory.php deleted file mode 100644 index b943a5b..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/Factory/ServiceDescriptionFactory.php +++ /dev/null @@ -1,71 +0,0 @@ -setServiceDescription($description); - $this->inflector = $inflector; - } - - /** - * Change the service description used with the factory - * - * @param ServiceDescriptionInterface $description Service description to use - * - * @return FactoryInterface - */ - public function setServiceDescription(ServiceDescriptionInterface $description) - { - $this->description = $description; - - return $this; - } - - /** - * Returns the service description - * - * @return ServiceDescriptionInterface - */ - public function getServiceDescription() - { - return $this->description; - } - - public function factory($name, array $args = array()) - { - $command = $this->description->getOperation($name); - - // If a command wasn't found, then try to uppercase the first letter and try again - if (!$command) { - $command = $this->description->getOperation(ucfirst($name)); - // If an inflector was passed, then attempt to get the command using snake_case inflection - if (!$command && $this->inflector) { - $command = $this->description->getOperation($this->inflector->snake($name)); - } - } - - if ($command) { - $class = $command->getClass(); - return new $class($args, $command, $this->description); - } - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/AbstractRequestVisitor.php b/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/AbstractRequestVisitor.php deleted file mode 100644 index adcfca1..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/AbstractRequestVisitor.php +++ /dev/null @@ -1,69 +0,0 @@ -resolveRecursively($value, $param) - : $param->filter($value); - } - - /** - * Map nested parameters into the location_key based parameters - * - * @param array $value Value to map - * @param Parameter $param Parameter that holds information about the current key - * - * @return array Returns the mapped array - */ - protected function resolveRecursively(array $value, Parameter $param) - { - foreach ($value as $name => &$v) { - switch ($param->getType()) { - case 'object': - if ($subParam = $param->getProperty($name)) { - $key = $subParam->getWireName(); - $value[$key] = $this->prepareValue($v, $subParam); - if ($name != $key) { - unset($value[$name]); - } - } elseif ($param->getAdditionalProperties() instanceof Parameter) { - $v = $this->prepareValue($v, $param->getAdditionalProperties()); - } - break; - case 'array': - if ($items = $param->getItems()) { - $v = $this->prepareValue($v, $items); - } - break; - } - } - - return $param->filter($value); - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/BodyVisitor.php b/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/BodyVisitor.php deleted file mode 100644 index 168d780..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/BodyVisitor.php +++ /dev/null @@ -1,58 +0,0 @@ -filter($value); - $entityBody = EntityBody::factory($value); - $request->setBody($entityBody); - $this->addExpectHeader($request, $entityBody, $param->getData('expect_header')); - // Add the Content-Encoding header if one is set on the EntityBody - if ($encoding = $entityBody->getContentEncoding()) { - $request->setHeader('Content-Encoding', $encoding); - } - } - - /** - * Add the appropriate expect header to a request - * - * @param EntityEnclosingRequestInterface $request Request to update - * @param EntityBodyInterface $body Entity body of the request - * @param string|int $expect Expect header setting - */ - protected function addExpectHeader(EntityEnclosingRequestInterface $request, EntityBodyInterface $body, $expect) - { - // Allow the `expect` data parameter to be set to remove the Expect header from the request - if ($expect === false) { - $request->removeHeader('Expect'); - } elseif ($expect !== true) { - // Default to using a MB as the point in which to start using the expect header - $expect = $expect ?: 1048576; - // If the expect_header value is numeric then only add if the size is greater than the cutoff - if (is_numeric($expect) && $body->getSize()) { - if ($body->getSize() < $expect) { - $request->removeHeader('Expect'); - } else { - $request->setHeader('Expect', '100-Continue'); - } - } - } - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/HeaderVisitor.php b/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/HeaderVisitor.php deleted file mode 100644 index 2a53754..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/HeaderVisitor.php +++ /dev/null @@ -1,44 +0,0 @@ -filter($value); - if ($param->getType() == 'object' && $param->getAdditionalProperties() instanceof Parameter) { - $this->addPrefixedHeaders($request, $param, $value); - } else { - $request->setHeader($param->getWireName(), $value); - } - } - - /** - * Add a prefixed array of headers to the request - * - * @param RequestInterface $request Request to update - * @param Parameter $param Parameter object - * @param array $value Header array to add - * - * @throws InvalidArgumentException - */ - protected function addPrefixedHeaders(RequestInterface $request, Parameter $param, $value) - { - if (!is_array($value)) { - throw new InvalidArgumentException('An array of mapped headers expected, but received a single value'); - } - $prefix = $param->getSentAs(); - foreach ($value as $headerName => $headerValue) { - $request->setHeader($prefix . $headerName, $headerValue); - } - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/JsonVisitor.php b/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/JsonVisitor.php deleted file mode 100644 index 757e1c5..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/JsonVisitor.php +++ /dev/null @@ -1,63 +0,0 @@ -data = new \SplObjectStorage(); - } - - /** - * Set the Content-Type header to add to the request if JSON is added to the body. This visitor does not add a - * Content-Type header unless you specify one here. - * - * @param string $header Header to set when JSON is added (e.g. application/json) - * - * @return self - */ - public function setContentTypeHeader($header = 'application/json') - { - $this->jsonContentType = $header; - - return $this; - } - - public function visit(CommandInterface $command, RequestInterface $request, Parameter $param, $value) - { - if (isset($this->data[$command])) { - $json = $this->data[$command]; - } else { - $json = array(); - } - $json[$param->getWireName()] = $this->prepareValue($value, $param); - $this->data[$command] = $json; - } - - public function after(CommandInterface $command, RequestInterface $request) - { - if (isset($this->data[$command])) { - // Don't overwrite the Content-Type if one is set - if ($this->jsonContentType && !$request->hasHeader('Content-Type')) { - $request->setHeader('Content-Type', $this->jsonContentType); - } - - $request->setBody(json_encode($this->data[$command])); - unset($this->data[$command]); - } - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/PostFieldVisitor.php b/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/PostFieldVisitor.php deleted file mode 100644 index 975850b..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/PostFieldVisitor.php +++ /dev/null @@ -1,18 +0,0 @@ -setPostField($param->getWireName(), $this->prepareValue($value, $param)); - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/PostFileVisitor.php b/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/PostFileVisitor.php deleted file mode 100644 index 0853ebe..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/PostFileVisitor.php +++ /dev/null @@ -1,24 +0,0 @@ -filter($value); - if ($value instanceof PostFileInterface) { - $request->addPostFile($value); - } else { - $request->addPostFile($param->getWireName(), $value); - } - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/QueryVisitor.php b/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/QueryVisitor.php deleted file mode 100644 index 315877a..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/QueryVisitor.php +++ /dev/null @@ -1,18 +0,0 @@ -getQuery()->set($param->getWireName(), $this->prepareValue($value, $param)); - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/RequestVisitorInterface.php b/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/RequestVisitorInterface.php deleted file mode 100644 index 14e0b2d..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/RequestVisitorInterface.php +++ /dev/null @@ -1,31 +0,0 @@ -setResponseBody($value); - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/XmlVisitor.php b/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/XmlVisitor.php deleted file mode 100644 index 5b71487..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Request/XmlVisitor.php +++ /dev/null @@ -1,252 +0,0 @@ -data = new \SplObjectStorage(); - } - - /** - * Change the content-type header that is added when XML is found - * - * @param string $header Header to set when XML is found - * - * @return self - */ - public function setContentTypeHeader($header) - { - $this->contentType = $header; - - return $this; - } - - public function visit(CommandInterface $command, RequestInterface $request, Parameter $param, $value) - { - $xml = isset($this->data[$command]) - ? $this->data[$command] - : $this->createRootElement($param->getParent()); - $this->addXml($xml, $param, $value); - - $this->data[$command] = $xml; - } - - public function after(CommandInterface $command, RequestInterface $request) - { - $xml = null; - - // If data was found that needs to be serialized, then do so - if (isset($this->data[$command])) { - $xml = $this->finishDocument($this->data[$command]); - unset($this->data[$command]); - } else { - // Check if XML should always be sent for the command - $operation = $command->getOperation(); - if ($operation->getData('xmlAllowEmpty')) { - $xmlWriter = $this->createRootElement($operation); - $xml = $this->finishDocument($xmlWriter); - } - } - - if ($xml) { - // Don't overwrite the Content-Type if one is set - if ($this->contentType && !$request->hasHeader('Content-Type')) { - $request->setHeader('Content-Type', $this->contentType); - } - $request->setBody($xml); - } - } - - /** - * Create the root XML element to use with a request - * - * @param Operation $operation Operation object - * - * @return \XMLWriter - */ - protected function createRootElement(Operation $operation) - { - static $defaultRoot = array('name' => 'Request'); - // If no root element was specified, then just wrap the XML in 'Request' - $root = $operation->getData('xmlRoot') ?: $defaultRoot; - // Allow the XML declaration to be customized with xmlEncoding - $encoding = $operation->getData('xmlEncoding'); - - $xmlWriter = $this->startDocument($encoding); - - $xmlWriter->startElement($root['name']); - // Create the wrapping element with no namespaces if no namespaces were present - if (!empty($root['namespaces'])) { - // Create the wrapping element with an array of one or more namespaces - foreach ((array) $root['namespaces'] as $prefix => $uri) { - $nsLabel = 'xmlns'; - if (!is_numeric($prefix)) { - $nsLabel .= ':'.$prefix; - } - $xmlWriter->writeAttribute($nsLabel, $uri); - } - } - return $xmlWriter; - } - - /** - * Recursively build the XML body - * - * @param \XMLWriter $xmlWriter XML to modify - * @param Parameter $param API Parameter - * @param mixed $value Value to add - */ - protected function addXml(\XMLWriter $xmlWriter, Parameter $param, $value) - { - if ($value === null) { - return; - } - - $value = $param->filter($value); - $type = $param->getType(); - $name = $param->getWireName(); - $prefix = null; - $namespace = $param->getData('xmlNamespace'); - if (false !== strpos($name, ':')) { - list($prefix, $name) = explode(':', $name, 2); - } - - if ($type == 'object' || $type == 'array') { - if (!$param->getData('xmlFlattened')) { - $xmlWriter->startElementNS(null, $name, $namespace); - } - if ($param->getType() == 'array') { - $this->addXmlArray($xmlWriter, $param, $value); - } elseif ($param->getType() == 'object') { - $this->addXmlObject($xmlWriter, $param, $value); - } - if (!$param->getData('xmlFlattened')) { - $xmlWriter->endElement(); - } - return; - } - if ($param->getData('xmlAttribute')) { - $this->writeAttribute($xmlWriter, $prefix, $name, $namespace, $value); - } else { - $this->writeElement($xmlWriter, $prefix, $name, $namespace, $value); - } - } - - /** - * Write an attribute with namespace if used - * - * @param \XMLWriter $xmlWriter XMLWriter instance - * @param string $prefix Namespace prefix if any - * @param string $name Attribute name - * @param string $namespace The uri of the namespace - * @param string $value The attribute content - */ - protected function writeAttribute($xmlWriter, $prefix, $name, $namespace, $value) - { - if (empty($namespace)) { - $xmlWriter->writeAttribute($name, $value); - } else { - $xmlWriter->writeAttributeNS($prefix, $name, $namespace, $value); - } - } - - /** - * Write an element with namespace if used - * - * @param \XMLWriter $xmlWriter XML writer resource - * @param string $prefix Namespace prefix if any - * @param string $name Element name - * @param string $namespace The uri of the namespace - * @param string $value The element content - */ - protected function writeElement(\XMLWriter $xmlWriter, $prefix, $name, $namespace, $value) - { - $xmlWriter->startElementNS($prefix, $name, $namespace); - if (strpbrk($value, '<>&')) { - $xmlWriter->writeCData($value); - } else { - $xmlWriter->writeRaw($value); - } - $xmlWriter->endElement(); - } - - /** - * Create a new xml writer and start a document - * - * @param string $encoding document encoding - * - * @return \XMLWriter the writer resource - */ - protected function startDocument($encoding) - { - $xmlWriter = new \XMLWriter(); - $xmlWriter->openMemory(); - $xmlWriter->startDocument('1.0', $encoding); - - return $xmlWriter; - } - - /** - * End the document and return the output - * - * @param \XMLWriter $xmlWriter - * - * @return \string the writer resource - */ - protected function finishDocument($xmlWriter) - { - $xmlWriter->endDocument(); - - return $xmlWriter->outputMemory(); - } - - /** - * Add an array to the XML - */ - protected function addXmlArray(\XMLWriter $xmlWriter, Parameter $param, &$value) - { - if ($items = $param->getItems()) { - foreach ($value as $v) { - $this->addXml($xmlWriter, $items, $v); - } - } - } - - /** - * Add an object to the XML - */ - protected function addXmlObject(\XMLWriter $xmlWriter, Parameter $param, &$value) - { - $noAttributes = array(); - // add values which have attributes - foreach ($value as $name => $v) { - if ($property = $param->getProperty($name)) { - if ($property->getData('xmlAttribute')) { - $this->addXml($xmlWriter, $property, $v); - } else { - $noAttributes[] = array('value' => $v, 'property' => $property); - } - } - } - // now add values with no attributes - foreach ($noAttributes as $element) { - $this->addXml($xmlWriter, $element['property'], $element['value']); - } - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/AbstractResponseVisitor.php b/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/AbstractResponseVisitor.php deleted file mode 100644 index d87eeb9..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/AbstractResponseVisitor.php +++ /dev/null @@ -1,26 +0,0 @@ -getName()] = $param->filter($response->getBody()); - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/HeaderVisitor.php b/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/HeaderVisitor.php deleted file mode 100644 index 0f8737c..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/HeaderVisitor.php +++ /dev/null @@ -1,50 +0,0 @@ -getType() == 'object' && $param->getAdditionalProperties() instanceof Parameter) { - $this->processPrefixedHeaders($response, $param, $value); - } else { - $value[$param->getName()] = $param->filter((string) $response->getHeader($param->getWireName())); - } - } - - /** - * Process a prefixed header array - * - * @param Response $response Response that contains the headers - * @param Parameter $param Parameter object - * @param array $value Value response array to modify - */ - protected function processPrefixedHeaders(Response $response, Parameter $param, &$value) - { - // Grab prefixed headers that should be placed into an array with the prefix stripped - if ($prefix = $param->getSentAs()) { - $container = $param->getName(); - $len = strlen($prefix); - // Find all matching headers and place them into the containing element - foreach ($response->getHeaders()->toArray() as $key => $header) { - if (stripos($key, $prefix) === 0) { - // Account for multi-value headers - $value[$container][substr($key, $len)] = count($header) == 1 ? end($header) : $header; - } - } - } - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/JsonVisitor.php b/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/JsonVisitor.php deleted file mode 100644 index a609ebd..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/JsonVisitor.php +++ /dev/null @@ -1,93 +0,0 @@ -getResponse()->json(); - } - - public function visit( - CommandInterface $command, - Response $response, - Parameter $param, - &$value, - $context = null - ) { - $name = $param->getName(); - $key = $param->getWireName(); - if (isset($value[$key])) { - $this->recursiveProcess($param, $value[$key]); - if ($key != $name) { - $value[$name] = $value[$key]; - unset($value[$key]); - } - } - } - - /** - * Recursively process a parameter while applying filters - * - * @param Parameter $param API parameter being validated - * @param mixed $value Value to validate and process. The value may change during this process. - */ - protected function recursiveProcess(Parameter $param, &$value) - { - if ($value === null) { - return; - } - - if (is_array($value)) { - $type = $param->getType(); - if ($type == 'array') { - foreach ($value as &$item) { - $this->recursiveProcess($param->getItems(), $item); - } - } elseif ($type == 'object' && !isset($value[0])) { - // On the above line, we ensure that the array is associative and not numerically indexed - $knownProperties = array(); - if ($properties = $param->getProperties()) { - foreach ($properties as $property) { - $name = $property->getName(); - $key = $property->getWireName(); - $knownProperties[$name] = 1; - if (isset($value[$key])) { - $this->recursiveProcess($property, $value[$key]); - if ($key != $name) { - $value[$name] = $value[$key]; - unset($value[$key]); - } - } - } - } - - // Remove any unknown and potentially unsafe properties - if ($param->getAdditionalProperties() === false) { - $value = array_intersect_key($value, $knownProperties); - } elseif (($additional = $param->getAdditionalProperties()) !== true) { - // Validate and filter additional properties - foreach ($value as &$v) { - $this->recursiveProcess($additional, $v); - } - } - } - } - - $value = $param->filter($value); - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/ReasonPhraseVisitor.php b/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/ReasonPhraseVisitor.php deleted file mode 100644 index 1b10ebc..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/ReasonPhraseVisitor.php +++ /dev/null @@ -1,23 +0,0 @@ -getName()] = $response->getReasonPhrase(); - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/ResponseVisitorInterface.php b/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/ResponseVisitorInterface.php deleted file mode 100644 index 033f40c..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/ResponseVisitorInterface.php +++ /dev/null @@ -1,46 +0,0 @@ -getName()] = $response->getStatusCode(); - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/XmlVisitor.php b/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/XmlVisitor.php deleted file mode 100644 index bb7124b..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/Response/XmlVisitor.php +++ /dev/null @@ -1,151 +0,0 @@ -getResponse()->xml()), true); - } - - public function visit( - CommandInterface $command, - Response $response, - Parameter $param, - &$value, - $context = null - ) { - $sentAs = $param->getWireName(); - $name = $param->getName(); - if (isset($value[$sentAs])) { - $this->recursiveProcess($param, $value[$sentAs]); - if ($name != $sentAs) { - $value[$name] = $value[$sentAs]; - unset($value[$sentAs]); - } - } - } - - /** - * Recursively process a parameter while applying filters - * - * @param Parameter $param API parameter being processed - * @param mixed $value Value to validate and process. The value may change during this process. - */ - protected function recursiveProcess(Parameter $param, &$value) - { - $type = $param->getType(); - - if (!is_array($value)) { - if ($type == 'array') { - // Cast to an array if the value was a string, but should be an array - $this->recursiveProcess($param->getItems(), $value); - $value = array($value); - } - } elseif ($type == 'object') { - $this->processObject($param, $value); - } elseif ($type == 'array') { - $this->processArray($param, $value); - } elseif ($type == 'string' && gettype($value) == 'array') { - $value = ''; - } - - if ($value !== null) { - $value = $param->filter($value); - } - } - - /** - * Process an array - * - * @param Parameter $param API parameter being parsed - * @param mixed $value Value to process - */ - protected function processArray(Parameter $param, &$value) - { - // Convert the node if it was meant to be an array - if (!isset($value[0])) { - // Collections fo nodes are sometimes wrapped in an additional array. For example: - // 12 should become: - // array('Items' => array(array('a' => 1), array('a' => 2)) - // Some nodes are not wrapped. For example: 12 - // should become array('Foo' => array(array('a' => 1), array('a' => 2)) - if ($param->getItems() && isset($value[$param->getItems()->getWireName()])) { - // Account for the case of a collection wrapping wrapped nodes: Items => Item[] - $value = $value[$param->getItems()->getWireName()]; - // If the wrapped node only had one value, then make it an array of nodes - if (!isset($value[0]) || !is_array($value)) { - $value = array($value); - } - } elseif (!empty($value)) { - // Account for repeated nodes that must be an array: Foo => Baz, Foo => Baz, but only if the - // value is set and not empty - $value = array($value); - } - } - - foreach ($value as &$item) { - $this->recursiveProcess($param->getItems(), $item); - } - } - - /** - * Process an object - * - * @param Parameter $param API parameter being parsed - * @param mixed $value Value to process - */ - protected function processObject(Parameter $param, &$value) - { - // Ensure that the array is associative and not numerically indexed - if (!isset($value[0]) && ($properties = $param->getProperties())) { - $knownProperties = array(); - foreach ($properties as $property) { - $name = $property->getName(); - $sentAs = $property->getWireName(); - $knownProperties[$name] = 1; - if ($property->getData('xmlAttribute')) { - $this->processXmlAttribute($property, $value); - } elseif (isset($value[$sentAs])) { - $this->recursiveProcess($property, $value[$sentAs]); - if ($name != $sentAs) { - $value[$name] = $value[$sentAs]; - unset($value[$sentAs]); - } - } - } - - // Remove any unknown and potentially unsafe properties - if ($param->getAdditionalProperties() === false) { - $value = array_intersect_key($value, $knownProperties); - } - } - } - - /** - * Process an XML attribute property - * - * @param Parameter $property Property to process - * @param array $value Value to process and update - */ - protected function processXmlAttribute(Parameter $property, array &$value) - { - $sentAs = $property->getWireName(); - if (isset($value['@attributes'][$sentAs])) { - $value[$property->getName()] = $value['@attributes'][$sentAs]; - unset($value['@attributes'][$sentAs]); - if (empty($value['@attributes'])) { - unset($value['@attributes']); - } - } - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/VisitorFlyweight.php b/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/VisitorFlyweight.php deleted file mode 100644 index 74cb628..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/LocationVisitor/VisitorFlyweight.php +++ /dev/null @@ -1,138 +0,0 @@ - 'Guzzle\Service\Command\LocationVisitor\Request\BodyVisitor', - 'request.header' => 'Guzzle\Service\Command\LocationVisitor\Request\HeaderVisitor', - 'request.json' => 'Guzzle\Service\Command\LocationVisitor\Request\JsonVisitor', - 'request.postField' => 'Guzzle\Service\Command\LocationVisitor\Request\PostFieldVisitor', - 'request.postFile' => 'Guzzle\Service\Command\LocationVisitor\Request\PostFileVisitor', - 'request.query' => 'Guzzle\Service\Command\LocationVisitor\Request\QueryVisitor', - 'request.response_body' => 'Guzzle\Service\Command\LocationVisitor\Request\ResponseBodyVisitor', - 'request.responseBody' => 'Guzzle\Service\Command\LocationVisitor\Request\ResponseBodyVisitor', - 'request.xml' => 'Guzzle\Service\Command\LocationVisitor\Request\XmlVisitor', - 'response.body' => 'Guzzle\Service\Command\LocationVisitor\Response\BodyVisitor', - 'response.header' => 'Guzzle\Service\Command\LocationVisitor\Response\HeaderVisitor', - 'response.json' => 'Guzzle\Service\Command\LocationVisitor\Response\JsonVisitor', - 'response.reasonPhrase' => 'Guzzle\Service\Command\LocationVisitor\Response\ReasonPhraseVisitor', - 'response.statusCode' => 'Guzzle\Service\Command\LocationVisitor\Response\StatusCodeVisitor', - 'response.xml' => 'Guzzle\Service\Command\LocationVisitor\Response\XmlVisitor' - ); - - /** @var array Array of mappings of location names to classes */ - protected $mappings; - - /** @var array Cache of instantiated visitors */ - protected $cache = array(); - - /** - * @return self - * @codeCoverageIgnore - */ - public static function getInstance() - { - if (!self::$instance) { - self::$instance = new self(); - } - - return self::$instance; - } - - /** - * @param array $mappings Array mapping request.name and response.name to location visitor classes. Leave null to - * use the default values. - */ - public function __construct(array $mappings = null) - { - $this->mappings = $mappings === null ? self::$defaultMappings : $mappings; - } - - /** - * Get an instance of a request visitor by location name - * - * @param string $visitor Visitor name - * - * @return RequestVisitorInterface - */ - public function getRequestVisitor($visitor) - { - return $this->getKey('request.' . $visitor); - } - - /** - * Get an instance of a response visitor by location name - * - * @param string $visitor Visitor name - * - * @return ResponseVisitorInterface - */ - public function getResponseVisitor($visitor) - { - return $this->getKey('response.' . $visitor); - } - - /** - * Add a response visitor to the factory by name - * - * @param string $name Name of the visitor - * @param RequestVisitorInterface $visitor Visitor to add - * - * @return self - */ - public function addRequestVisitor($name, RequestVisitorInterface $visitor) - { - $this->cache['request.' . $name] = $visitor; - - return $this; - } - - /** - * Add a response visitor to the factory by name - * - * @param string $name Name of the visitor - * @param ResponseVisitorInterface $visitor Visitor to add - * - * @return self - */ - public function addResponseVisitor($name, ResponseVisitorInterface $visitor) - { - $this->cache['response.' . $name] = $visitor; - - return $this; - } - - /** - * Get a visitor by key value name - * - * @param string $key Key name to retrieve - * - * @return mixed - * @throws InvalidArgumentException - */ - private function getKey($key) - { - if (!isset($this->cache[$key])) { - if (!isset($this->mappings[$key])) { - list($type, $name) = explode('.', $key); - throw new InvalidArgumentException("No {$type} visitor has been mapped for {$name}"); - } - $this->cache[$key] = new $this->mappings[$key]; - } - - return $this->cache[$key]; - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/OperationCommand.php b/lib/aws-sdk/Guzzle/Service/Command/OperationCommand.php deleted file mode 100644 index 0748b5a..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/OperationCommand.php +++ /dev/null @@ -1,89 +0,0 @@ -responseParser = $parser; - - return $this; - } - - /** - * Set the request serializer used with the command - * - * @param RequestSerializerInterface $serializer Request serializer - * - * @return self - */ - public function setRequestSerializer(RequestSerializerInterface $serializer) - { - $this->requestSerializer = $serializer; - - return $this; - } - - /** - * Get the request serializer used with the command - * - * @return RequestSerializerInterface - */ - public function getRequestSerializer() - { - if (!$this->requestSerializer) { - // Use the default request serializer if none was found - $this->requestSerializer = DefaultRequestSerializer::getInstance(); - } - - return $this->requestSerializer; - } - - /** - * Get the response parser used for the operation - * - * @return ResponseParserInterface - */ - public function getResponseParser() - { - if (!$this->responseParser) { - // Use the default response parser if none was found - $this->responseParser = OperationResponseParser::getInstance(); - } - - return $this->responseParser; - } - - protected function build() - { - // Prepare and serialize the request - $this->request = $this->getRequestSerializer()->prepare($this); - } - - protected function process() - { - // Do not process the response if 'command.response_processing' is set to 'raw' - $this->result = $this[self::RESPONSE_PROCESSING] == self::TYPE_RAW - ? $this->request->getResponse() - : $this->getResponseParser()->parse($this); - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/OperationResponseParser.php b/lib/aws-sdk/Guzzle/Service/Command/OperationResponseParser.php deleted file mode 100644 index ca00bc0..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/OperationResponseParser.php +++ /dev/null @@ -1,195 +0,0 @@ -factory = $factory; - $this->schemaInModels = $schemaInModels; - } - - /** - * Add a location visitor to the command - * - * @param string $location Location to associate with the visitor - * @param ResponseVisitorInterface $visitor Visitor to attach - * - * @return self - */ - public function addVisitor($location, ResponseVisitorInterface $visitor) - { - $this->factory->addResponseVisitor($location, $visitor); - - return $this; - } - - protected function handleParsing(CommandInterface $command, Response $response, $contentType) - { - $operation = $command->getOperation(); - $type = $operation->getResponseType(); - $model = null; - - if ($type == OperationInterface::TYPE_MODEL) { - $model = $operation->getServiceDescription()->getModel($operation->getResponseClass()); - } elseif ($type == OperationInterface::TYPE_CLASS) { - return $this->parseClass($command); - } - - if (!$model) { - // Return basic processing if the responseType is not model or the model cannot be found - return parent::handleParsing($command, $response, $contentType); - } elseif ($command[AbstractCommand::RESPONSE_PROCESSING] != AbstractCommand::TYPE_MODEL) { - // Returns a model with no visiting if the command response processing is not model - return new Model(parent::handleParsing($command, $response, $contentType)); - } else { - // Only inject the schema into the model if "schemaInModel" is true - return new Model($this->visitResult($model, $command, $response), $this->schemaInModels ? $model : null); - } - } - - /** - * Parse a class object - * - * @param CommandInterface $command Command to parse into an object - * - * @return mixed - * @throws ResponseClassException - */ - protected function parseClass(CommandInterface $command) - { - // Emit the operation.parse_class event. If a listener injects a 'result' property, then that will be the result - $event = new CreateResponseClassEvent(array('command' => $command)); - $command->getClient()->getEventDispatcher()->dispatch('command.parse_response', $event); - if ($result = $event->getResult()) { - return $result; - } - - $className = $command->getOperation()->getResponseClass(); - if (!method_exists($className, 'fromCommand')) { - throw new ResponseClassException("{$className} must exist and implement a static fromCommand() method"); - } - - return $className::fromCommand($command); - } - - /** - * Perform transformations on the result array - * - * @param Parameter $model Model that defines the structure - * @param CommandInterface $command Command that performed the operation - * @param Response $response Response received - * - * @return array Returns the array of result data - */ - protected function visitResult(Parameter $model, CommandInterface $command, Response $response) - { - $foundVisitors = $result = $knownProps = array(); - $props = $model->getProperties(); - - foreach ($props as $schema) { - if ($location = $schema->getLocation()) { - // Trigger the before method on the first found visitor of this type - if (!isset($foundVisitors[$location])) { - $foundVisitors[$location] = $this->factory->getResponseVisitor($location); - $foundVisitors[$location]->before($command, $result); - } - } - } - - // Visit additional properties when it is an actual schema - if (($additional = $model->getAdditionalProperties()) instanceof Parameter) { - $this->visitAdditionalProperties($model, $command, $response, $additional, $result, $foundVisitors); - } - - // Apply the parameter value with the location visitor - foreach ($props as $schema) { - $knownProps[$schema->getName()] = 1; - if ($location = $schema->getLocation()) { - $foundVisitors[$location]->visit($command, $response, $schema, $result); - } - } - - // Remove any unknown and potentially unsafe top-level properties - if ($additional === false) { - $result = array_intersect_key($result, $knownProps); - } - - // Call the after() method of each found visitor - foreach ($foundVisitors as $visitor) { - $visitor->after($command); - } - - return $result; - } - - protected function visitAdditionalProperties( - Parameter $model, - CommandInterface $command, - Response $response, - Parameter $additional, - &$result, - array &$foundVisitors - ) { - // Only visit when a location is specified - if ($location = $additional->getLocation()) { - if (!isset($foundVisitors[$location])) { - $foundVisitors[$location] = $this->factory->getResponseVisitor($location); - $foundVisitors[$location]->before($command, $result); - } - // Only traverse if an array was parsed from the before() visitors - if (is_array($result)) { - // Find each additional property - foreach (array_keys($result) as $key) { - // Check if the model actually knows this property. If so, then it is not additional - if (!$model->getProperty($key)) { - // Set the name to the key so that we can parse it with each visitor - $additional->setName($key); - $foundVisitors[$location]->visit($command, $response, $additional, $result); - } - } - // Reset the additionalProperties name to null - $additional->setName(null); - } - } - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Command/RequestSerializerInterface.php b/lib/aws-sdk/Guzzle/Service/Command/RequestSerializerInterface.php deleted file mode 100644 index 60b9334..0000000 --- a/lib/aws-sdk/Guzzle/Service/Command/RequestSerializerInterface.php +++ /dev/null @@ -1,21 +0,0 @@ - true, 'httpMethod' => true, 'uri' => true, 'class' => true, 'responseClass' => true, - 'responseType' => true, 'responseNotes' => true, 'notes' => true, 'summary' => true, 'documentationUrl' => true, - 'deprecated' => true, 'data' => true, 'parameters' => true, 'additionalParameters' => true, - 'errorResponses' => true - ); - - /** @var array Parameters */ - protected $parameters = array(); - - /** @var Parameter Additional parameters schema */ - protected $additionalParameters; - - /** @var string Name of the command */ - protected $name; - - /** @var string HTTP method */ - protected $httpMethod; - - /** @var string This is a short summary of what the operation does */ - protected $summary; - - /** @var string A longer text field to explain the behavior of the operation. */ - protected $notes; - - /** @var string Reference URL providing more information about the operation */ - protected $documentationUrl; - - /** @var string HTTP URI of the command */ - protected $uri; - - /** @var string Class of the command object */ - protected $class; - - /** @var string This is what is returned from the method */ - protected $responseClass; - - /** @var string Type information about the response */ - protected $responseType; - - /** @var string Information about the response returned by the operation */ - protected $responseNotes; - - /** @var bool Whether or not the command is deprecated */ - protected $deprecated; - - /** @var array Array of errors that could occur when running the command */ - protected $errorResponses; - - /** @var ServiceDescriptionInterface */ - protected $description; - - /** @var array Extra operation information */ - protected $data; - - /** - * Builds an Operation object using an array of configuration data: - * - name: (string) Name of the command - * - httpMethod: (string) HTTP method of the operation - * - uri: (string) URI template that can create a relative or absolute URL - * - class: (string) Concrete class that implements this command - * - parameters: (array) Associative array of parameters for the command. {@see Parameter} for information. - * - summary: (string) This is a short summary of what the operation does - * - notes: (string) A longer text field to explain the behavior of the operation. - * - documentationUrl: (string) Reference URL providing more information about the operation - * - responseClass: (string) This is what is returned from the method. Can be a primitive, PSR-0 compliant - * class name, or model. - * - responseNotes: (string) Information about the response returned by the operation - * - responseType: (string) One of 'primitive', 'class', 'model', or 'documentation'. If not specified, this - * value will be automatically inferred based on whether or not there is a model matching the - * name, if a matching PSR-0 compliant class name is found, or set to 'primitive' by default. - * - deprecated: (bool) Set to true if this is a deprecated command - * - errorResponses: (array) Errors that could occur when executing the command. Array of hashes, each with a - * 'code' (the HTTP response code), 'reason' (response reason phrase or description of the - * error), and 'class' (a custom exception class that would be thrown if the error is - * encountered). - * - data: (array) Any extra data that might be used to help build or serialize the operation - * - additionalParameters: (null|array) Parameter schema to use when an option is passed to the operation that is - * not in the schema - * - * @param array $config Array of configuration data - * @param ServiceDescriptionInterface $description Service description used to resolve models if $ref tags are found - */ - public function __construct(array $config = array(), ServiceDescriptionInterface $description = null) - { - $this->description = $description; - - // Get the intersection of the available properties and properties set on the operation - foreach (array_intersect_key($config, self::$properties) as $key => $value) { - $this->{$key} = $value; - } - - $this->class = $this->class ?: self::DEFAULT_COMMAND_CLASS; - $this->deprecated = (bool) $this->deprecated; - $this->errorResponses = $this->errorResponses ?: array(); - $this->data = $this->data ?: array(); - - if (!$this->responseClass) { - $this->responseClass = 'array'; - $this->responseType = 'primitive'; - } elseif ($this->responseType) { - // Set the response type to perform validation - $this->setResponseType($this->responseType); - } else { - // A response class was set and no response type was set, so guess what the type is - $this->inferResponseType(); - } - - // Parameters need special handling when adding - if ($this->parameters) { - foreach ($this->parameters as $name => $param) { - if ($param instanceof Parameter) { - $param->setName($name)->setParent($this); - } elseif (is_array($param)) { - $param['name'] = $name; - $this->addParam(new Parameter($param, $this->description)); - } - } - } - - if ($this->additionalParameters) { - if ($this->additionalParameters instanceof Parameter) { - $this->additionalParameters->setParent($this); - } elseif (is_array($this->additionalParameters)) { - $this->setadditionalParameters(new Parameter($this->additionalParameters, $this->description)); - } - } - } - - public function toArray() - { - $result = array(); - // Grab valid properties and filter out values that weren't set - foreach (array_keys(self::$properties) as $check) { - if ($value = $this->{$check}) { - $result[$check] = $value; - } - } - // Remove the name property - unset($result['name']); - // Parameters need to be converted to arrays - $result['parameters'] = array(); - foreach ($this->parameters as $key => $param) { - $result['parameters'][$key] = $param->toArray(); - } - // Additional parameters need to be cast to an array - if ($this->additionalParameters instanceof Parameter) { - $result['additionalParameters'] = $this->additionalParameters->toArray(); - } - - return $result; - } - - public function getServiceDescription() - { - return $this->description; - } - - public function setServiceDescription(ServiceDescriptionInterface $description) - { - $this->description = $description; - - return $this; - } - - public function getParams() - { - return $this->parameters; - } - - public function getParamNames() - { - return array_keys($this->parameters); - } - - public function hasParam($name) - { - return isset($this->parameters[$name]); - } - - public function getParam($param) - { - return isset($this->parameters[$param]) ? $this->parameters[$param] : null; - } - - /** - * Add a parameter to the command - * - * @param Parameter $param Parameter to add - * - * @return self - */ - public function addParam(Parameter $param) - { - $this->parameters[$param->getName()] = $param; - $param->setParent($this); - - return $this; - } - - /** - * Remove a parameter from the command - * - * @param string $name Name of the parameter to remove - * - * @return self - */ - public function removeParam($name) - { - unset($this->parameters[$name]); - - return $this; - } - - public function getHttpMethod() - { - return $this->httpMethod; - } - - /** - * Set the HTTP method of the command - * - * @param string $httpMethod Method to set - * - * @return self - */ - public function setHttpMethod($httpMethod) - { - $this->httpMethod = $httpMethod; - - return $this; - } - - public function getClass() - { - return $this->class; - } - - /** - * Set the concrete class of the command - * - * @param string $className Concrete class name - * - * @return self - */ - public function setClass($className) - { - $this->class = $className; - - return $this; - } - - public function getName() - { - return $this->name; - } - - /** - * Set the name of the command - * - * @param string $name Name of the command - * - * @return self - */ - public function setName($name) - { - $this->name = $name; - - return $this; - } - - public function getSummary() - { - return $this->summary; - } - - /** - * Set a short summary of what the operation does - * - * @param string $summary Short summary of the operation - * - * @return self - */ - public function setSummary($summary) - { - $this->summary = $summary; - - return $this; - } - - public function getNotes() - { - return $this->notes; - } - - /** - * Set a longer text field to explain the behavior of the operation. - * - * @param string $notes Notes on the operation - * - * @return self - */ - public function setNotes($notes) - { - $this->notes = $notes; - - return $this; - } - - public function getDocumentationUrl() - { - return $this->documentationUrl; - } - - /** - * Set the URL pointing to additional documentation on the command - * - * @param string $docUrl Documentation URL - * - * @return self - */ - public function setDocumentationUrl($docUrl) - { - $this->documentationUrl = $docUrl; - - return $this; - } - - public function getResponseClass() - { - return $this->responseClass; - } - - /** - * Set what is returned from the method. Can be a primitive, class name, or model. For example: 'array', - * 'Guzzle\\Foo\\Baz', or 'MyModelName' (to reference a model by ID). - * - * @param string $responseClass Type of response - * - * @return self - */ - public function setResponseClass($responseClass) - { - $this->responseClass = $responseClass; - $this->inferResponseType(); - - return $this; - } - - public function getResponseType() - { - return $this->responseType; - } - - /** - * Set qualifying information about the responseClass. One of 'primitive', 'class', 'model', or 'documentation' - * - * @param string $responseType Response type information - * - * @return self - * @throws InvalidArgumentException - */ - public function setResponseType($responseType) - { - static $types = array( - self::TYPE_PRIMITIVE => true, - self::TYPE_CLASS => true, - self::TYPE_MODEL => true, - self::TYPE_DOCUMENTATION => true - ); - if (!isset($types[$responseType])) { - throw new InvalidArgumentException('responseType must be one of ' . implode(', ', array_keys($types))); - } - - $this->responseType = $responseType; - - return $this; - } - - public function getResponseNotes() - { - return $this->responseNotes; - } - - /** - * Set notes about the response of the operation - * - * @param string $notes Response notes - * - * @return self - */ - public function setResponseNotes($notes) - { - $this->responseNotes = $notes; - - return $this; - } - - public function getDeprecated() - { - return $this->deprecated; - } - - /** - * Set whether or not the command is deprecated - * - * @param bool $isDeprecated Set to true to mark as deprecated - * - * @return self - */ - public function setDeprecated($isDeprecated) - { - $this->deprecated = $isDeprecated; - - return $this; - } - - public function getUri() - { - return $this->uri; - } - - /** - * Set the URI template of the command - * - * @param string $uri URI template to set - * - * @return self - */ - public function setUri($uri) - { - $this->uri = $uri; - - return $this; - } - - public function getErrorResponses() - { - return $this->errorResponses; - } - - /** - * Add an error to the command - * - * @param string $code HTTP response code - * @param string $reason HTTP response reason phrase or information about the error - * @param string $class Exception class associated with the error - * - * @return self - */ - public function addErrorResponse($code, $reason, $class) - { - $this->errorResponses[] = array('code' => $code, 'reason' => $reason, 'class' => $class); - - return $this; - } - - /** - * Set all of the error responses of the operation - * - * @param array $errorResponses Hash of error name to a hash containing a code, reason, class - * - * @return self - */ - public function setErrorResponses(array $errorResponses) - { - $this->errorResponses = $errorResponses; - - return $this; - } - - public function getData($name) - { - return isset($this->data[$name]) ? $this->data[$name] : null; - } - - /** - * Set a particular data point on the operation - * - * @param string $name Name of the data value - * @param mixed $value Value to set - * - * @return self - */ - public function setData($name, $value) - { - $this->data[$name] = $value; - - return $this; - } - - /** - * Get the additionalParameters of the operation - * - * @return Parameter|null - */ - public function getAdditionalParameters() - { - return $this->additionalParameters; - } - - /** - * Set the additionalParameters of the operation - * - * @param Parameter|null $parameter Parameter to set - * - * @return self - */ - public function setAdditionalParameters($parameter) - { - if ($this->additionalParameters = $parameter) { - $this->additionalParameters->setParent($this); - } - - return $this; - } - - /** - * Infer the response type from the responseClass value - */ - protected function inferResponseType() - { - static $primitives = array('array' => 1, 'boolean' => 1, 'string' => 1, 'integer' => 1, '' => 1); - if (isset($primitives[$this->responseClass])) { - $this->responseType = self::TYPE_PRIMITIVE; - } elseif ($this->description && $this->description->hasModel($this->responseClass)) { - $this->responseType = self::TYPE_MODEL; - } else { - $this->responseType = self::TYPE_CLASS; - } - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Description/OperationInterface.php b/lib/aws-sdk/Guzzle/Service/Description/OperationInterface.php deleted file mode 100644 index 4de41bd..0000000 --- a/lib/aws-sdk/Guzzle/Service/Description/OperationInterface.php +++ /dev/null @@ -1,159 +0,0 @@ -getModel($data['$ref'])) { - $data = $model->toArray() + $data; - } - } elseif (isset($data['extends'])) { - // If this parameter extends from another parameter then start with the actual data - // union in the parent's data (e.g. actual supersedes parent) - if ($extends = $description->getModel($data['extends'])) { - $data += $extends->toArray(); - } - } - } - - // Pull configuration data into the parameter - foreach ($data as $key => $value) { - $this->{$key} = $value; - } - - $this->serviceDescription = $description; - $this->required = (bool) $this->required; - $this->data = (array) $this->data; - - if ($this->filters) { - $this->setFilters((array) $this->filters); - } - - if ($this->type == 'object' && $this->additionalProperties === null) { - $this->additionalProperties = true; - } - } - - /** - * Convert the object to an array - * - * @return array - */ - public function toArray() - { - static $checks = array('required', 'description', 'static', 'type', 'format', 'instanceOf', 'location', 'sentAs', - 'pattern', 'minimum', 'maximum', 'minItems', 'maxItems', 'minLength', 'maxLength', 'data', 'enum', - 'filters'); - - $result = array(); - - // Anything that is in the `Items` attribute of an array *must* include it's name if available - if ($this->parent instanceof self && $this->parent->getType() == 'array' && isset($this->name)) { - $result['name'] = $this->name; - } - - foreach ($checks as $c) { - if ($value = $this->{$c}) { - $result[$c] = $value; - } - } - - if ($this->default !== null) { - $result['default'] = $this->default; - } - - if ($this->items !== null) { - $result['items'] = $this->getItems()->toArray(); - } - - if ($this->additionalProperties !== null) { - $result['additionalProperties'] = $this->getAdditionalProperties(); - if ($result['additionalProperties'] instanceof self) { - $result['additionalProperties'] = $result['additionalProperties']->toArray(); - } - } - - if ($this->type == 'object' && $this->properties) { - $result['properties'] = array(); - foreach ($this->getProperties() as $name => $property) { - $result['properties'][$name] = $property->toArray(); - } - } - - return $result; - } - - /** - * Get the default or static value of the command based on a value - * - * @param string $value Value that is currently set - * - * @return mixed Returns the value, a static value if one is present, or a default value - */ - public function getValue($value) - { - if ($this->static || ($this->default !== null && $value === null)) { - return $this->default; - } - - return $value; - } - - /** - * Run a value through the filters OR format attribute associated with the parameter - * - * @param mixed $value Value to filter - * - * @return mixed Returns the filtered value - */ - public function filter($value) - { - // Formats are applied exclusively and supersed filters - if ($this->format) { - return SchemaFormatter::format($this->format, $value); - } - - // Convert Boolean values - if ($this->type == 'boolean' && !is_bool($value)) { - $value = filter_var($value, FILTER_VALIDATE_BOOLEAN); - } - - // Apply filters to the value - if ($this->filters) { - foreach ($this->filters as $filter) { - if (is_array($filter)) { - // Convert complex filters that hold value place holders - foreach ($filter['args'] as &$data) { - if ($data == '@value') { - $data = $value; - } elseif ($data == '@api') { - $data = $this; - } - } - $value = call_user_func_array($filter['method'], $filter['args']); - } else { - $value = call_user_func($filter, $value); - } - } - } - - return $value; - } - - /** - * Get the name of the parameter - * - * @return string - */ - public function getName() - { - return $this->name; - } - - /** - * Get the key of the parameter, where sentAs will supersede name if it is set - * - * @return string - */ - public function getWireName() - { - return $this->sentAs ?: $this->name; - } - - /** - * Set the name of the parameter - * - * @param string $name Name to set - * - * @return self - */ - public function setName($name) - { - $this->name = $name; - - return $this; - } - - /** - * Get the type(s) of the parameter - * - * @return string|array - */ - public function getType() - { - return $this->type; - } - - /** - * Set the type(s) of the parameter - * - * @param string|array $type Type of parameter or array of simple types used in a union - * - * @return self - */ - public function setType($type) - { - $this->type = $type; - - return $this; - } - - /** - * Get if the parameter is required - * - * @return bool - */ - public function getRequired() - { - return $this->required; - } - - /** - * Set if the parameter is required - * - * @param bool $isRequired Whether or not the parameter is required - * - * @return self - */ - public function setRequired($isRequired) - { - $this->required = (bool) $isRequired; - - return $this; - } - - /** - * Get the default value of the parameter - * - * @return string|null - */ - public function getDefault() - { - return $this->default; - } - - /** - * Set the default value of the parameter - * - * @param string|null $default Default value to set - * - * @return self - */ - public function setDefault($default) - { - $this->default = $default; - - return $this; - } - - /** - * Get the description of the parameter - * - * @return string|null - */ - public function getDescription() - { - return $this->description; - } - - /** - * Set the description of the parameter - * - * @param string $description Description - * - * @return self - */ - public function setDescription($description) - { - $this->description = $description; - - return $this; - } - - /** - * Get the minimum acceptable value for an integer - * - * @return int|null - */ - public function getMinimum() - { - return $this->minimum; - } - - /** - * Set the minimum acceptable value for an integer - * - * @param int|null $min Minimum - * - * @return self - */ - public function setMinimum($min) - { - $this->minimum = $min; - - return $this; - } - - /** - * Get the maximum acceptable value for an integer - * - * @return int|null - */ - public function getMaximum() - { - return $this->maximum; - } - - /** - * Set the maximum acceptable value for an integer - * - * @param int $max Maximum - * - * @return self - */ - public function setMaximum($max) - { - $this->maximum = $max; - - return $this; - } - - /** - * Get the minimum allowed length of a string value - * - * @return int - */ - public function getMinLength() - { - return $this->minLength; - } - - /** - * Set the minimum allowed length of a string value - * - * @param int|null $min Minimum - * - * @return self - */ - public function setMinLength($min) - { - $this->minLength = $min; - - return $this; - } - - /** - * Get the maximum allowed length of a string value - * - * @return int|null - */ - public function getMaxLength() - { - return $this->maxLength; - } - - /** - * Set the maximum allowed length of a string value - * - * @param int $max Maximum length - * - * @return self - */ - public function setMaxLength($max) - { - $this->maxLength = $max; - - return $this; - } - - /** - * Get the maximum allowed number of items in an array value - * - * @return int|null - */ - public function getMaxItems() - { - return $this->maxItems; - } - - /** - * Set the maximum allowed number of items in an array value - * - * @param int $max Maximum - * - * @return self - */ - public function setMaxItems($max) - { - $this->maxItems = $max; - - return $this; - } - - /** - * Get the minimum allowed number of items in an array value - * - * @return int - */ - public function getMinItems() - { - return $this->minItems; - } - - /** - * Set the minimum allowed number of items in an array value - * - * @param int|null $min Minimum - * - * @return self - */ - public function setMinItems($min) - { - $this->minItems = $min; - - return $this; - } - - /** - * Get the location of the parameter - * - * @return string|null - */ - public function getLocation() - { - return $this->location; - } - - /** - * Set the location of the parameter - * - * @param string|null $location Location of the parameter - * - * @return self - */ - public function setLocation($location) - { - $this->location = $location; - - return $this; - } - - /** - * Get the sentAs attribute of the parameter that used with locations to sentAs an attribute when it is being - * applied to a location. - * - * @return string|null - */ - public function getSentAs() - { - return $this->sentAs; - } - - /** - * Set the sentAs attribute - * - * @param string|null $name Name of the value as it is sent over the wire - * - * @return self - */ - public function setSentAs($name) - { - $this->sentAs = $name; - - return $this; - } - - /** - * Retrieve a known property from the parameter by name or a data property by name. When not specific name value - * is specified, all data properties will be returned. - * - * @param string|null $name Specify a particular property name to retrieve - * - * @return array|mixed|null - */ - public function getData($name = null) - { - if (!$name) { - return $this->data; - } - - if (isset($this->data[$name])) { - return $this->data[$name]; - } elseif (isset($this->{$name})) { - return $this->{$name}; - } - - return null; - } - - /** - * Set the extra data properties of the parameter or set a specific extra property - * - * @param string|array|null $nameOrData The name of a specific extra to set or an array of extras to set - * @param mixed|null $data When setting a specific extra property, specify the data to set for it - * - * @return self - */ - public function setData($nameOrData, $data = null) - { - if (is_array($nameOrData)) { - $this->data = $nameOrData; - } else { - $this->data[$nameOrData] = $data; - } - - return $this; - } - - /** - * Get whether or not the default value can be changed - * - * @return mixed|null - */ - public function getStatic() - { - return $this->static; - } - - /** - * Set to true if the default value cannot be changed - * - * @param bool $static True or false - * - * @return self - */ - public function setStatic($static) - { - $this->static = (bool) $static; - - return $this; - } - - /** - * Get an array of filters used by the parameter - * - * @return array - */ - public function getFilters() - { - return $this->filters ?: array(); - } - - /** - * Set the array of filters used by the parameter - * - * @param array $filters Array of functions to use as filters - * - * @return self - */ - public function setFilters(array $filters) - { - $this->filters = array(); - foreach ($filters as $filter) { - $this->addFilter($filter); - } - - return $this; - } - - /** - * Add a filter to the parameter - * - * @param string|array $filter Method to filter the value through - * - * @return self - * @throws InvalidArgumentException - */ - public function addFilter($filter) - { - if (is_array($filter)) { - if (!isset($filter['method'])) { - throw new InvalidArgumentException('A [method] value must be specified for each complex filter'); - } - } - - if (!$this->filters) { - $this->filters = array($filter); - } else { - $this->filters[] = $filter; - } - - return $this; - } - - /** - * Get the parent object (an {@see OperationInterface} or {@see Parameter} - * - * @return OperationInterface|Parameter|null - */ - public function getParent() - { - return $this->parent; - } - - /** - * Set the parent object of the parameter - * - * @param OperationInterface|Parameter|null $parent Parent container of the parameter - * - * @return self - */ - public function setParent($parent) - { - $this->parent = $parent; - - return $this; - } - - /** - * Get the properties of the parameter - * - * @return array - */ - public function getProperties() - { - if (!$this->propertiesCache) { - $this->propertiesCache = array(); - foreach (array_keys($this->properties) as $name) { - $this->propertiesCache[$name] = $this->getProperty($name); - } - } - - return $this->propertiesCache; - } - - /** - * Get a specific property from the parameter - * - * @param string $name Name of the property to retrieve - * - * @return null|Parameter - */ - public function getProperty($name) - { - if (!isset($this->properties[$name])) { - return null; - } - - if (!($this->properties[$name] instanceof self)) { - $this->properties[$name]['name'] = $name; - $this->properties[$name] = new static($this->properties[$name], $this->serviceDescription); - $this->properties[$name]->setParent($this); - } - - return $this->properties[$name]; - } - - /** - * Remove a property from the parameter - * - * @param string $name Name of the property to remove - * - * @return self - */ - public function removeProperty($name) - { - unset($this->properties[$name]); - $this->propertiesCache = null; - - return $this; - } - - /** - * Add a property to the parameter - * - * @param Parameter $property Properties to set - * - * @return self - */ - public function addProperty(Parameter $property) - { - $this->properties[$property->getName()] = $property; - $property->setParent($this); - $this->propertiesCache = null; - - return $this; - } - - /** - * Get the additionalProperties value of the parameter - * - * @return bool|Parameter|null - */ - public function getAdditionalProperties() - { - if (is_array($this->additionalProperties)) { - $this->additionalProperties = new static($this->additionalProperties, $this->serviceDescription); - $this->additionalProperties->setParent($this); - } - - return $this->additionalProperties; - } - - /** - * Set the additionalProperties value of the parameter - * - * @param bool|Parameter|null $additional Boolean to allow any, an Parameter to specify a schema, or false to disallow - * - * @return self - */ - public function setAdditionalProperties($additional) - { - $this->additionalProperties = $additional; - - return $this; - } - - /** - * Set the items data of the parameter - * - * @param Parameter|null $items Items to set - * - * @return self - */ - public function setItems(Parameter $items = null) - { - if ($this->items = $items) { - $this->items->setParent($this); - } - - return $this; - } - - /** - * Get the item data of the parameter - * - * @return Parameter|null - */ - public function getItems() - { - if (is_array($this->items)) { - $this->items = new static($this->items, $this->serviceDescription); - $this->items->setParent($this); - } - - return $this->items; - } - - /** - * Get the class that the parameter must implement - * - * @return null|string - */ - public function getInstanceOf() - { - return $this->instanceOf; - } - - /** - * Set the class that the parameter must be an instance of - * - * @param string|null $instanceOf Class or interface name - * - * @return self - */ - public function setInstanceOf($instanceOf) - { - $this->instanceOf = $instanceOf; - - return $this; - } - - /** - * Get the enum of strings that are valid for the parameter - * - * @return array|null - */ - public function getEnum() - { - return $this->enum; - } - - /** - * Set the enum of strings that are valid for the parameter - * - * @param array|null $enum Array of strings or null - * - * @return self - */ - public function setEnum(array $enum = null) - { - $this->enum = $enum; - - return $this; - } - - /** - * Get the regex pattern that must match a value when the value is a string - * - * @return string - */ - public function getPattern() - { - return $this->pattern; - } - - /** - * Set the regex pattern that must match a value when the value is a string - * - * @param string $pattern Regex pattern - * - * @return self - */ - public function setPattern($pattern) - { - $this->pattern = $pattern; - - return $this; - } - - /** - * Get the format attribute of the schema - * - * @return string - */ - public function getFormat() - { - return $this->format; - } - - /** - * Set the format attribute of the schema - * - * @param string $format Format to set (e.g. date, date-time, timestamp, time, date-time-http) - * - * @return self - */ - public function setFormat($format) - { - $this->format = $format; - - return $this; - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Description/SchemaFormatter.php b/lib/aws-sdk/Guzzle/Service/Description/SchemaFormatter.php deleted file mode 100644 index 7f47fc9..0000000 --- a/lib/aws-sdk/Guzzle/Service/Description/SchemaFormatter.php +++ /dev/null @@ -1,156 +0,0 @@ -setTimezone(self::getUtcTimeZone())->format($format); - } - - throw new InvalidArgumentException('Date/Time values must be either a string, integer, or DateTime object'); - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Description/SchemaValidator.php b/lib/aws-sdk/Guzzle/Service/Description/SchemaValidator.php deleted file mode 100644 index b045422..0000000 --- a/lib/aws-sdk/Guzzle/Service/Description/SchemaValidator.php +++ /dev/null @@ -1,291 +0,0 @@ -castIntegerToStringType = $castIntegerToStringType; - } - - public function validate(Parameter $param, &$value) - { - $this->errors = array(); - $this->recursiveProcess($param, $value); - - if (empty($this->errors)) { - return true; - } else { - sort($this->errors); - return false; - } - } - - /** - * Get the errors encountered while validating - * - * @return array - */ - public function getErrors() - { - return $this->errors ?: array(); - } - - /** - * Recursively validate a parameter - * - * @param Parameter $param API parameter being validated - * @param mixed $value Value to validate and validate. The value may change during this validate. - * @param string $path Current validation path (used for error reporting) - * @param int $depth Current depth in the validation validate - * - * @return bool Returns true if valid, or false if invalid - */ - protected function recursiveProcess(Parameter $param, &$value, $path = '', $depth = 0) - { - // Update the value by adding default or static values - $value = $param->getValue($value); - - $required = $param->getRequired(); - // if the value is null and the parameter is not required or is static, then skip any further recursion - if ((null === $value && !$required) || $param->getStatic()) { - return true; - } - - $type = $param->getType(); - // Attempt to limit the number of times is_array is called by tracking if the value is an array - $valueIsArray = is_array($value); - // If a name is set then update the path so that validation messages are more helpful - if ($name = $param->getName()) { - $path .= "[{$name}]"; - } - - if ($type == 'object') { - - // Objects are either associative arrays, ToArrayInterface, or some other object - if ($param->getInstanceOf()) { - $instance = $param->getInstanceOf(); - if (!($value instanceof $instance)) { - $this->errors[] = "{$path} must be an instance of {$instance}"; - return false; - } - } - - // Determine whether or not this "value" has properties and should be traversed - $traverse = $temporaryValue = false; - - // Convert the value to an array - if (!$valueIsArray && $value instanceof ToArrayInterface) { - $value = $value->toArray(); - } - - if ($valueIsArray) { - // Ensure that the array is associative and not numerically indexed - if (isset($value[0])) { - $this->errors[] = "{$path} must be an array of properties. Got a numerically indexed array."; - return false; - } - $traverse = true; - } elseif ($value === null) { - // Attempt to let the contents be built up by default values if possible - $value = array(); - $temporaryValue = $valueIsArray = $traverse = true; - } - - if ($traverse) { - - if ($properties = $param->getProperties()) { - // if properties were found, the validate each property of the value - foreach ($properties as $property) { - $name = $property->getName(); - if (isset($value[$name])) { - $this->recursiveProcess($property, $value[$name], $path, $depth + 1); - } else { - $current = null; - $this->recursiveProcess($property, $current, $path, $depth + 1); - // Only set the value if it was populated with something - if (null !== $current) { - $value[$name] = $current; - } - } - } - } - - $additional = $param->getAdditionalProperties(); - if ($additional !== true) { - // If additional properties were found, then validate each against the additionalProperties attr. - $keys = array_keys($value); - // Determine the keys that were specified that were not listed in the properties of the schema - $diff = array_diff($keys, array_keys($properties)); - if (!empty($diff)) { - // Determine which keys are not in the properties - if ($additional instanceOf Parameter) { - foreach ($diff as $key) { - $this->recursiveProcess($additional, $value[$key], "{$path}[{$key}]", $depth); - } - } else { - // if additionalProperties is set to false and there are additionalProperties in the values, then fail - foreach ($diff as $prop) { - $this->errors[] = sprintf('%s[%s] is not an allowed property', $path, $prop); - } - } - } - } - - // A temporary value will be used to traverse elements that have no corresponding input value. - // This allows nested required parameters with default values to bubble up into the input. - // Here we check if we used a temp value and nothing bubbled up, then we need to remote the value. - if ($temporaryValue && empty($value)) { - $value = null; - $valueIsArray = false; - } - } - - } elseif ($type == 'array' && $valueIsArray && $param->getItems()) { - foreach ($value as $i => &$item) { - // Validate each item in an array against the items attribute of the schema - $this->recursiveProcess($param->getItems(), $item, $path . "[{$i}]", $depth + 1); - } - } - - // If the value is required and the type is not null, then there is an error if the value is not set - if ($required && $value === null && $type != 'null') { - $message = "{$path} is " . ($param->getType() ? ('a required ' . implode(' or ', (array) $param->getType())) : 'required'); - if ($param->getDescription()) { - $message .= ': ' . $param->getDescription(); - } - $this->errors[] = $message; - return false; - } - - // Validate that the type is correct. If the type is string but an integer was passed, the class can be - // instructed to cast the integer to a string to pass validation. This is the default behavior. - if ($type && (!$type = $this->determineType($type, $value))) { - if ($this->castIntegerToStringType && $param->getType() == 'string' && is_integer($value)) { - $value = (string) $value; - } else { - $this->errors[] = "{$path} must be of type " . implode(' or ', (array) $param->getType()); - } - } - - // Perform type specific validation for strings, arrays, and integers - if ($type == 'string') { - - // Strings can have enums which are a list of predefined values - if (($enum = $param->getEnum()) && !in_array($value, $enum)) { - $this->errors[] = "{$path} must be one of " . implode(' or ', array_map(function ($s) { - return '"' . addslashes($s) . '"'; - }, $enum)); - } - // Strings can have a regex pattern that the value must match - if (($pattern = $param->getPattern()) && !preg_match($pattern, $value)) { - $this->errors[] = "{$path} must match the following regular expression: {$pattern}"; - } - - $strLen = null; - if ($min = $param->getMinLength()) { - $strLen = strlen($value); - if ($strLen < $min) { - $this->errors[] = "{$path} length must be greater than or equal to {$min}"; - } - } - if ($max = $param->getMaxLength()) { - if (($strLen ?: strlen($value)) > $max) { - $this->errors[] = "{$path} length must be less than or equal to {$max}"; - } - } - - } elseif ($type == 'array') { - - $size = null; - if ($min = $param->getMinItems()) { - $size = count($value); - if ($size < $min) { - $this->errors[] = "{$path} must contain {$min} or more elements"; - } - } - if ($max = $param->getMaxItems()) { - if (($size ?: count($value)) > $max) { - $this->errors[] = "{$path} must contain {$max} or fewer elements"; - } - } - - } elseif ($type == 'integer' || $type == 'number' || $type == 'numeric') { - if (($min = $param->getMinimum()) && $value < $min) { - $this->errors[] = "{$path} must be greater than or equal to {$min}"; - } - if (($max = $param->getMaximum()) && $value > $max) { - $this->errors[] = "{$path} must be less than or equal to {$max}"; - } - } - - return empty($this->errors); - } - - /** - * From the allowable types, determine the type that the variable matches - * - * @param string $type Parameter type - * @param mixed $value Value to determine the type - * - * @return string|bool Returns the matching type on - */ - protected function determineType($type, $value) - { - foreach ((array) $type as $t) { - if ($t == 'string' && (is_string($value) || (is_object($value) && method_exists($value, '__toString')))) { - return 'string'; - } elseif ($t == 'object' && (is_array($value) || is_object($value))) { - return 'object'; - } elseif ($t == 'array' && is_array($value)) { - return 'array'; - } elseif ($t == 'integer' && is_integer($value)) { - return 'integer'; - } elseif ($t == 'boolean' && is_bool($value)) { - return 'boolean'; - } elseif ($t == 'number' && is_numeric($value)) { - return 'number'; - } elseif ($t == 'numeric' && is_numeric($value)) { - return 'numeric'; - } elseif ($t == 'null' && !$value) { - return 'null'; - } elseif ($t == 'any') { - return 'any'; - } - } - - return false; - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Description/ServiceDescription.php b/lib/aws-sdk/Guzzle/Service/Description/ServiceDescription.php deleted file mode 100644 index 286e65e..0000000 --- a/lib/aws-sdk/Guzzle/Service/Description/ServiceDescription.php +++ /dev/null @@ -1,271 +0,0 @@ -load($config, $options); - } - - /** - * @param array $config Array of configuration data - */ - public function __construct(array $config = array()) - { - $this->fromArray($config); - } - - public function serialize() - { - return json_encode($this->toArray()); - } - - public function unserialize($json) - { - $this->operations = array(); - $this->fromArray(json_decode($json, true)); - } - - public function toArray() - { - $result = array( - 'name' => $this->name, - 'apiVersion' => $this->apiVersion, - 'baseUrl' => $this->baseUrl, - 'description' => $this->description - ) + $this->extraData; - $result['operations'] = array(); - foreach ($this->getOperations() as $name => $operation) { - $result['operations'][$operation->getName() ?: $name] = $operation->toArray(); - } - if (!empty($this->models)) { - $result['models'] = array(); - foreach ($this->models as $id => $model) { - $result['models'][$id] = $model instanceof Parameter ? $model->toArray(): $model; - } - } - - return array_filter($result); - } - - public function getBaseUrl() - { - return $this->baseUrl; - } - - /** - * Set the baseUrl of the description - * - * @param string $baseUrl Base URL of each operation - * - * @return self - */ - public function setBaseUrl($baseUrl) - { - $this->baseUrl = $baseUrl; - - return $this; - } - - public function getOperations() - { - foreach (array_keys($this->operations) as $name) { - $this->getOperation($name); - } - - return $this->operations; - } - - public function hasOperation($name) - { - return isset($this->operations[$name]); - } - - public function getOperation($name) - { - // Lazily retrieve and build operations - if (!isset($this->operations[$name])) { - return null; - } - - if (!($this->operations[$name] instanceof Operation)) { - $this->operations[$name] = new Operation($this->operations[$name], $this); - } - - return $this->operations[$name]; - } - - /** - * Add a operation to the service description - * - * @param OperationInterface $operation Operation to add - * - * @return self - */ - public function addOperation(OperationInterface $operation) - { - $this->operations[$operation->getName()] = $operation->setServiceDescription($this); - - return $this; - } - - public function getModel($id) - { - if (!isset($this->models[$id])) { - return null; - } - - if (!($this->models[$id] instanceof Parameter)) { - $this->models[$id] = new Parameter($this->models[$id] + array('name' => $id), $this); - } - - return $this->models[$id]; - } - - public function getModels() - { - // Ensure all models are converted into parameter objects - foreach (array_keys($this->models) as $id) { - $this->getModel($id); - } - - return $this->models; - } - - public function hasModel($id) - { - return isset($this->models[$id]); - } - - /** - * Add a model to the service description - * - * @param Parameter $model Model to add - * - * @return self - */ - public function addModel(Parameter $model) - { - $this->models[$model->getName()] = $model; - - return $this; - } - - public function getApiVersion() - { - return $this->apiVersion; - } - - public function getName() - { - return $this->name; - } - - public function getDescription() - { - return $this->description; - } - - public function getData($key) - { - return isset($this->extraData[$key]) ? $this->extraData[$key] : null; - } - - public function setData($key, $value) - { - $this->extraData[$key] = $value; - - return $this; - } - - /** - * Initialize the state from an array - * - * @param array $config Configuration data - * @throws InvalidArgumentException - */ - protected function fromArray(array $config) - { - // Keep a list of default keys used in service descriptions that is later used to determine extra data keys - static $defaultKeys = array('name', 'models', 'apiVersion', 'baseUrl', 'description'); - // Pull in the default configuration values - foreach ($defaultKeys as $key) { - if (isset($config[$key])) { - $this->{$key} = $config[$key]; - } - } - - // Account for the Swagger name for Guzzle's baseUrl - if (isset($config['basePath'])) { - $this->baseUrl = $config['basePath']; - } - - // Ensure that the models and operations properties are always arrays - $this->models = (array) $this->models; - $this->operations = (array) $this->operations; - - // We want to add operations differently than adding the other properties - $defaultKeys[] = 'operations'; - - // Create operations for each operation - if (isset($config['operations'])) { - foreach ($config['operations'] as $name => $operation) { - if (!($operation instanceof Operation) && !is_array($operation)) { - throw new InvalidArgumentException('Invalid operation in service description: ' - . gettype($operation)); - } - $this->operations[$name] = $operation; - } - } - - // Get all of the additional properties of the service description and store them in a data array - foreach (array_diff(array_keys($config), $defaultKeys) as $key) { - $this->extraData[$key] = $config[$key]; - } - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Description/ServiceDescriptionInterface.php b/lib/aws-sdk/Guzzle/Service/Description/ServiceDescriptionInterface.php deleted file mode 100644 index 5983e58..0000000 --- a/lib/aws-sdk/Guzzle/Service/Description/ServiceDescriptionInterface.php +++ /dev/null @@ -1,106 +0,0 @@ - $op) { - $name = $op['name'] = isset($op['name']) ? $op['name'] : $name; - // Extend other operations - if (!empty($op['extends'])) { - $this->resolveExtension($name, $op, $operations); - } - $op['parameters'] = isset($op['parameters']) ? $op['parameters'] : array(); - $operations[$name] = $op; - } - } - - return new ServiceDescription(array( - 'apiVersion' => isset($config['apiVersion']) ? $config['apiVersion'] : null, - 'baseUrl' => isset($config['baseUrl']) ? $config['baseUrl'] : null, - 'description' => isset($config['description']) ? $config['description'] : null, - 'operations' => $operations, - 'models' => isset($config['models']) ? $config['models'] : null - ) + $config); - } - - /** - * @param string $name Name of the operation - * @param array $op Operation value array - * @param array $operations Currently loaded operations - * @throws DescriptionBuilderException when extending a non-existent operation - */ - protected function resolveExtension($name, array &$op, array &$operations) - { - $resolved = array(); - $original = empty($op['parameters']) ? false: $op['parameters']; - $hasClass = !empty($op['class']); - foreach ((array) $op['extends'] as $extendedCommand) { - if (empty($operations[$extendedCommand])) { - throw new DescriptionBuilderException("{$name} extends missing operation {$extendedCommand}"); - } - $toArray = $operations[$extendedCommand]; - $resolved = empty($resolved) - ? $toArray['parameters'] - : array_merge($resolved, $toArray['parameters']); - - $op = $op + $toArray; - if (!$hasClass && isset($toArray['class'])) { - $op['class'] = $toArray['class']; - } - } - $op['parameters'] = $original ? array_merge($resolved, $original) : $resolved; - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Description/ValidatorInterface.php b/lib/aws-sdk/Guzzle/Service/Description/ValidatorInterface.php deleted file mode 100644 index 94ca77d..0000000 --- a/lib/aws-sdk/Guzzle/Service/Description/ValidatorInterface.php +++ /dev/null @@ -1,28 +0,0 @@ -getMessage(), $e->getCode(), $e->getPrevious()); - $ce->setSuccessfulRequests($e->getSuccessfulRequests()); - - $alreadyAddedExceptions = array(); - foreach ($e->getFailedRequests() as $request) { - if ($re = $e->getExceptionForFailedRequest($request)) { - $alreadyAddedExceptions[] = $re; - $ce->addFailedRequestWithException($request, $re); - } else { - $ce->addFailedRequest($request); - } - } - - // Add any exceptions that did not map to a request - if (count($alreadyAddedExceptions) < count($e)) { - foreach ($e as $ex) { - if (!in_array($ex, $alreadyAddedExceptions)) { - $ce->add($ex); - } - } - } - - return $ce; - } - - /** - * Get all of the commands in the transfer - * - * @return array - */ - public function getAllCommands() - { - return array_merge($this->successfulCommands, $this->failedCommands); - } - - /** - * Add to the array of successful commands - * - * @param CommandInterface $command Successful command - * - * @return self - */ - public function addSuccessfulCommand(CommandInterface $command) - { - $this->successfulCommands[] = $command; - - return $this; - } - - /** - * Add to the array of failed commands - * - * @param CommandInterface $command Failed command - * - * @return self - */ - public function addFailedCommand(CommandInterface $command) - { - $this->failedCommands[] = $command; - - return $this; - } - - /** - * Get an array of successful commands - * - * @return array - */ - public function getSuccessfulCommands() - { - return $this->successfulCommands; - } - - /** - * Get an array of failed commands - * - * @return array - */ - public function getFailedCommands() - { - return $this->failedCommands; - } - - /** - * Get the Exception that caused the given $command to fail - * - * @param CommandInterface $command Failed command - * - * @return \Exception|null - */ - public function getExceptionForFailedCommand(CommandInterface $command) - { - return $this->getExceptionForFailedRequest($command->getRequest()); - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Exception/DescriptionBuilderException.php b/lib/aws-sdk/Guzzle/Service/Exception/DescriptionBuilderException.php deleted file mode 100644 index 1407e56..0000000 --- a/lib/aws-sdk/Guzzle/Service/Exception/DescriptionBuilderException.php +++ /dev/null @@ -1,7 +0,0 @@ -invalidCommands = $commands; - parent::__construct( - 'Encountered commands in a batch transfer that use inconsistent clients. The batching ' . - 'strategy you use with a command transfer must divide command batches by client.' - ); - } - - /** - * Get the invalid commands - * - * @return array - */ - public function getCommands() - { - return $this->invalidCommands; - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Exception/ResponseClassException.php b/lib/aws-sdk/Guzzle/Service/Exception/ResponseClassException.php deleted file mode 100644 index d59ff21..0000000 --- a/lib/aws-sdk/Guzzle/Service/Exception/ResponseClassException.php +++ /dev/null @@ -1,9 +0,0 @@ -errors = $errors; - } - - /** - * Get any validation errors - * - * @return array - */ - public function getErrors() - { - return $this->errors; - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Resource/AbstractResourceIteratorFactory.php b/lib/aws-sdk/Guzzle/Service/Resource/AbstractResourceIteratorFactory.php deleted file mode 100644 index 21140e7..0000000 --- a/lib/aws-sdk/Guzzle/Service/Resource/AbstractResourceIteratorFactory.php +++ /dev/null @@ -1,37 +0,0 @@ -canBuild($command)) { - throw new InvalidArgumentException('Iterator was not found for ' . $command->getName()); - } - - $className = $this->getClassName($command); - - return new $className($command, $options); - } - - public function canBuild(CommandInterface $command) - { - return (bool) $this->getClassName($command); - } - - /** - * Get the name of the class to instantiate for the command - * - * @param CommandInterface $command Command that is associated with the iterator - * - * @return string - */ - abstract protected function getClassName(CommandInterface $command); -} diff --git a/lib/aws-sdk/Guzzle/Service/Resource/CompositeResourceIteratorFactory.php b/lib/aws-sdk/Guzzle/Service/Resource/CompositeResourceIteratorFactory.php deleted file mode 100644 index 2efc133..0000000 --- a/lib/aws-sdk/Guzzle/Service/Resource/CompositeResourceIteratorFactory.php +++ /dev/null @@ -1,67 +0,0 @@ -factories = $factories; - } - - public function build(CommandInterface $command, array $options = array()) - { - if (!($factory = $this->getFactory($command))) { - throw new InvalidArgumentException('Iterator was not found for ' . $command->getName()); - } - - return $factory->build($command, $options); - } - - public function canBuild(CommandInterface $command) - { - return $this->getFactory($command) !== false; - } - - /** - * Add a factory to the composite factory - * - * @param ResourceIteratorFactoryInterface $factory Factory to add - * - * @return self - */ - public function addFactory(ResourceIteratorFactoryInterface $factory) - { - $this->factories[] = $factory; - - return $this; - } - - /** - * Get the factory that matches the command object - * - * @param CommandInterface $command Command retrieving the iterator for - * - * @return ResourceIteratorFactoryInterface|bool - */ - protected function getFactory(CommandInterface $command) - { - foreach ($this->factories as $factory) { - if ($factory->canBuild($command)) { - return $factory; - } - } - - return false; - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Resource/MapResourceIteratorFactory.php b/lib/aws-sdk/Guzzle/Service/Resource/MapResourceIteratorFactory.php deleted file mode 100644 index c71ca9d..0000000 --- a/lib/aws-sdk/Guzzle/Service/Resource/MapResourceIteratorFactory.php +++ /dev/null @@ -1,34 +0,0 @@ -map = $map; - } - - public function getClassName(CommandInterface $command) - { - $className = $command->getName(); - - if (isset($this->map[$className])) { - return $this->map[$className]; - } elseif (isset($this->map['*'])) { - // If a wildcard was added, then always use that - return $this->map['*']; - } - - return null; - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Resource/Model.php b/lib/aws-sdk/Guzzle/Service/Resource/Model.php deleted file mode 100644 index 2322434..0000000 --- a/lib/aws-sdk/Guzzle/Service/Resource/Model.php +++ /dev/null @@ -1,64 +0,0 @@ -data = $data; - $this->structure = $structure; - } - - /** - * Get the structure of the model - * - * @return Parameter - */ - public function getStructure() - { - return $this->structure ?: new Parameter(); - } - - /** - * Provides debug information about the model object - * - * @return string - */ - public function __toString() - { - $output = 'Debug output of '; - if ($this->structure) { - $output .= $this->structure->getName() . ' '; - } - $output .= 'model'; - $output = str_repeat('=', strlen($output)) . "\n" . $output . "\n" . str_repeat('=', strlen($output)) . "\n\n"; - $output .= "Model data\n-----------\n\n"; - $output .= "This data can be retrieved from the model object using the get() method of the model " - . "(e.g. \$model->get(\$key)) or accessing the model like an associative array (e.g. \$model['key']).\n\n"; - $lines = array_slice(explode("\n", trim(print_r($this->toArray(), true))), 2, -1); - $output .= implode("\n", $lines); - - if ($this->structure) { - $output .= "\n\nModel structure\n---------------\n\n"; - $output .= "The following JSON document defines how the model was parsed from an HTTP response into the " - . "associative array structure you see above.\n\n"; - $output .= ' ' . json_encode($this->structure->toArray()) . "\n\n"; - } - - return $output . "\n"; - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Resource/ResourceIterator.php b/lib/aws-sdk/Guzzle/Service/Resource/ResourceIterator.php deleted file mode 100644 index e141524..0000000 --- a/lib/aws-sdk/Guzzle/Service/Resource/ResourceIterator.php +++ /dev/null @@ -1,254 +0,0 @@ -originalCommand = $command; - - // Parse options from the array of options - $this->data = $data; - $this->limit = array_key_exists('limit', $data) ? $data['limit'] : 0; - $this->pageSize = array_key_exists('page_size', $data) ? $data['page_size'] : false; - } - - /** - * Get all of the resources as an array (Warning: this could issue a large number of requests) - * - * @return array - */ - public function toArray() - { - return iterator_to_array($this, false); - } - - public function setLimit($limit) - { - $this->limit = $limit; - $this->resetState(); - - return $this; - } - - public function setPageSize($pageSize) - { - $this->pageSize = $pageSize; - $this->resetState(); - - return $this; - } - - /** - * Get an option from the iterator - * - * @param string $key Key of the option to retrieve - * - * @return mixed|null Returns NULL if not set or the value if set - */ - public function get($key) - { - return array_key_exists($key, $this->data) ? $this->data[$key] : null; - } - - /** - * Set an option on the iterator - * - * @param string $key Key of the option to set - * @param mixed $value Value to set for the option - * - * @return ResourceIterator - */ - public function set($key, $value) - { - $this->data[$key] = $value; - - return $this; - } - - public function current() - { - return $this->resources ? current($this->resources) : false; - } - - public function key() - { - return max(0, $this->iteratedCount - 1); - } - - public function count() - { - return $this->retrievedCount; - } - - /** - * Get the total number of requests sent - * - * @return int - */ - public function getRequestCount() - { - return $this->requestCount; - } - - /** - * Rewind the Iterator to the first element and send the original command - */ - public function rewind() - { - // Use the original command - $this->command = clone $this->originalCommand; - $this->resetState(); - $this->next(); - } - - public function valid() - { - return !$this->invalid && (!$this->resources || $this->current() || $this->nextToken) - && (!$this->limit || $this->iteratedCount < $this->limit + 1); - } - - public function next() - { - $this->iteratedCount++; - - // Check if a new set of resources needs to be retrieved - $sendRequest = false; - if (!$this->resources) { - $sendRequest = true; - } else { - // iterate over the internal array - $current = next($this->resources); - $sendRequest = $current === false && $this->nextToken && (!$this->limit || $this->iteratedCount < $this->limit + 1); - } - - if ($sendRequest) { - - $this->dispatch('resource_iterator.before_send', array( - 'iterator' => $this, - 'resources' => $this->resources - )); - - // Get a new command object from the original command - $this->command = clone $this->originalCommand; - // Send a request and retrieve the newly loaded resources - $this->resources = $this->sendRequest(); - $this->requestCount++; - - // If no resources were found, then the last request was not needed - // and iteration must stop - if (empty($this->resources)) { - $this->invalid = true; - } else { - // Add to the number of retrieved resources - $this->retrievedCount += count($this->resources); - // Ensure that we rewind to the beginning of the array - reset($this->resources); - } - - $this->dispatch('resource_iterator.after_send', array( - 'iterator' => $this, - 'resources' => $this->resources - )); - } - } - - /** - * Retrieve the NextToken that can be used in other iterators. - * - * @return string Returns a NextToken - */ - public function getNextToken() - { - return $this->nextToken; - } - - /** - * Returns the value that should be specified for the page size for a request that will maintain any hard limits, - * but still honor the specified pageSize if the number of items retrieved + pageSize < hard limit - * - * @return int Returns the page size of the next request. - */ - protected function calculatePageSize() - { - if ($this->limit && $this->iteratedCount + $this->pageSize > $this->limit) { - return 1 + ($this->limit - $this->iteratedCount); - } - - return (int) $this->pageSize; - } - - /** - * Reset the internal state of the iterator without triggering a rewind() - */ - protected function resetState() - { - $this->iteratedCount = 0; - $this->retrievedCount = 0; - $this->nextToken = false; - $this->resources = null; - $this->invalid = false; - } - - /** - * Send a request to retrieve the next page of results. Hook for subclasses to implement. - * - * @return array Returns the newly loaded resources - */ - abstract protected function sendRequest(); -} diff --git a/lib/aws-sdk/Guzzle/Service/Resource/ResourceIteratorApplyBatched.php b/lib/aws-sdk/Guzzle/Service/Resource/ResourceIteratorApplyBatched.php deleted file mode 100644 index 6aa3615..0000000 --- a/lib/aws-sdk/Guzzle/Service/Resource/ResourceIteratorApplyBatched.php +++ /dev/null @@ -1,111 +0,0 @@ -iterator = $iterator; - $this->callback = $callback; - Version::warn(__CLASS__ . ' is deprecated'); - } - - /** - * Apply the callback to the contents of the resource iterator - * - * @param int $perBatch The number of records to group per batch transfer - * - * @return int Returns the number of iterated resources - */ - public function apply($perBatch = 50) - { - $this->iterated = $this->batches = $batches = 0; - $that = $this; - $it = $this->iterator; - $callback = $this->callback; - - $batch = BatchBuilder::factory() - ->createBatchesWith(new BatchSizeDivisor($perBatch)) - ->transferWith(new BatchClosureTransfer(function (array $batch) use ($that, $callback, &$batches, $it) { - $batches++; - $that->dispatch('iterator_batch.before_batch', array('iterator' => $it, 'batch' => $batch)); - call_user_func_array($callback, array($it, $batch)); - $that->dispatch('iterator_batch.after_batch', array('iterator' => $it, 'batch' => $batch)); - })) - ->autoFlushAt($perBatch) - ->build(); - - $this->dispatch('iterator_batch.created_batch', array('batch' => $batch)); - - foreach ($this->iterator as $resource) { - $this->iterated++; - $batch->add($resource); - } - - $batch->flush(); - $this->batches = $batches; - - return $this->iterated; - } - - /** - * Get the total number of batches sent - * - * @return int - */ - public function getBatchCount() - { - return $this->batches; - } - - /** - * Get the total number of iterated resources - * - * @return int - */ - public function getIteratedCount() - { - return $this->iterated; - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Resource/ResourceIteratorClassFactory.php b/lib/aws-sdk/Guzzle/Service/Resource/ResourceIteratorClassFactory.php deleted file mode 100644 index 2fd9980..0000000 --- a/lib/aws-sdk/Guzzle/Service/Resource/ResourceIteratorClassFactory.php +++ /dev/null @@ -1,60 +0,0 @@ - AbcFoo). - */ -class ResourceIteratorClassFactory extends AbstractResourceIteratorFactory -{ - /** @var array List of namespaces used to look for classes */ - protected $namespaces; - - /** @var InflectorInterface Inflector used to determine class names */ - protected $inflector; - - /** - * @param string|array $namespaces List of namespaces for iterator objects - * @param InflectorInterface $inflector Inflector used to resolve class names - */ - public function __construct($namespaces = array(), InflectorInterface $inflector = null) - { - $this->namespaces = (array) $namespaces; - $this->inflector = $inflector ?: Inflector::getDefault(); - } - - /** - * Registers a namespace to check for Iterators - * - * @param string $namespace Namespace which contains Iterator classes - * - * @return self - */ - public function registerNamespace($namespace) - { - array_unshift($this->namespaces, $namespace); - - return $this; - } - - protected function getClassName(CommandInterface $command) - { - $iteratorName = $this->inflector->camel($command->getName()) . 'Iterator'; - - // Determine the name of the class to load - foreach ($this->namespaces as $namespace) { - $potentialClassName = $namespace . '\\' . $iteratorName; - if (class_exists($potentialClassName)) { - return $potentialClassName; - } - } - - return false; - } -} diff --git a/lib/aws-sdk/Guzzle/Service/Resource/ResourceIteratorFactoryInterface.php b/lib/aws-sdk/Guzzle/Service/Resource/ResourceIteratorFactoryInterface.php deleted file mode 100644 index 8b4e8db..0000000 --- a/lib/aws-sdk/Guzzle/Service/Resource/ResourceIteratorFactoryInterface.php +++ /dev/null @@ -1,30 +0,0 @@ -contextOptions = stream_context_get_options($context); - $this->context = $context; - } elseif (is_array($context) || !$context) { - $this->contextOptions = $context; - $this->createContext($params); - } elseif ($context) { - throw new InvalidArgumentException('$context must be an array or resource'); - } - - // Dispatch the before send event - $request->dispatch('request.before_send', array( - 'request' => $request, - 'context' => $this->context, - 'context_options' => $this->contextOptions - )); - - $this->setUrl($request); - $this->addDefaultContextOptions($request); - $this->addSslOptions($request); - $this->addBodyOptions($request); - $this->addProxyOptions($request); - - // Create the file handle but silence errors - return $this->createStream($params) - ->setCustomData('request', $request) - ->setCustomData('response_headers', $this->getLastResponseHeaders()); - } - - /** - * Set an option on the context and the internal options array - * - * @param string $wrapper Stream wrapper name of http - * @param string $name Context name - * @param mixed $value Context value - * @param bool $overwrite Set to true to overwrite an existing value - */ - protected function setContextValue($wrapper, $name, $value, $overwrite = false) - { - if (!isset($this->contextOptions[$wrapper])) { - $this->contextOptions[$wrapper] = array($name => $value); - } elseif (!$overwrite && isset($this->contextOptions[$wrapper][$name])) { - return; - } - $this->contextOptions[$wrapper][$name] = $value; - stream_context_set_option($this->context, $wrapper, $name, $value); - } - - /** - * Create a stream context - * - * @param array $params Parameter array - */ - protected function createContext(array $params) - { - $options = $this->contextOptions; - $this->context = $this->createResource(function () use ($params, $options) { - return stream_context_create($options, $params); - }); - } - - /** - * Get the last response headers received by the HTTP request - * - * @return array - */ - public function getLastResponseHeaders() - { - return $this->lastResponseHeaders; - } - - /** - * Adds the default context options to the stream context options - * - * @param RequestInterface $request Request - */ - protected function addDefaultContextOptions(RequestInterface $request) - { - $this->setContextValue('http', 'method', $request->getMethod()); - $headers = $request->getHeaderLines(); - - // "Connection: close" is required to get streams to work in HTTP 1.1 - if (!$request->hasHeader('Connection')) { - $headers[] = 'Connection: close'; - } - - $this->setContextValue('http', 'header', $headers); - $this->setContextValue('http', 'protocol_version', $request->getProtocolVersion()); - $this->setContextValue('http', 'ignore_errors', true); - } - - /** - * Set the URL to use with the factory - * - * @param RequestInterface $request Request that owns the URL - */ - protected function setUrl(RequestInterface $request) - { - $this->url = $request->getUrl(true); - - // Check for basic Auth username - if ($request->getUsername()) { - $this->url->setUsername($request->getUsername()); - } - - // Check for basic Auth password - if ($request->getPassword()) { - $this->url->setPassword($request->getPassword()); - } - } - - /** - * Add SSL options to the stream context - * - * @param RequestInterface $request Request - */ - protected function addSslOptions(RequestInterface $request) - { - if ($request->getCurlOptions()->get(CURLOPT_SSL_VERIFYPEER)) { - $this->setContextValue('ssl', 'verify_peer', true, true); - if ($cafile = $request->getCurlOptions()->get(CURLOPT_CAINFO)) { - $this->setContextValue('ssl', 'cafile', $cafile, true); - } - } else { - $this->setContextValue('ssl', 'verify_peer', false, true); - } - } - - /** - * Add body (content) specific options to the context options - * - * @param RequestInterface $request - */ - protected function addBodyOptions(RequestInterface $request) - { - // Add the content for the request if needed - if (!($request instanceof EntityEnclosingRequestInterface)) { - return; - } - - if (count($request->getPostFields())) { - $this->setContextValue('http', 'content', (string) $request->getPostFields(), true); - } elseif ($request->getBody()) { - $this->setContextValue('http', 'content', (string) $request->getBody(), true); - } - - // Always ensure a content-length header is sent - if (isset($this->contextOptions['http']['content'])) { - $headers = isset($this->contextOptions['http']['header']) ? $this->contextOptions['http']['header'] : array(); - $headers[] = 'Content-Length: ' . strlen($this->contextOptions['http']['content']); - $this->setContextValue('http', 'header', $headers, true); - } - } - - /** - * Add proxy parameters to the context if needed - * - * @param RequestInterface $request Request - */ - protected function addProxyOptions(RequestInterface $request) - { - if ($proxy = $request->getCurlOptions()->get(CURLOPT_PROXY)) { - $this->setContextValue('http', 'proxy', $proxy); - } - } - - /** - * Create the stream for the request with the context options - * - * @param array $params Parameters of the stream - * - * @return StreamInterface - */ - protected function createStream(array $params) - { - $http_response_header = null; - $url = $this->url; - $context = $this->context; - $fp = $this->createResource(function () use ($context, $url, &$http_response_header) { - return fopen((string) $url, 'r', false, $context); - }); - - // Determine the class to instantiate - $className = isset($params['stream_class']) ? $params['stream_class'] : __NAMESPACE__ . '\\Stream'; - - /** @var $stream StreamInterface */ - $stream = new $className($fp); - - // Track the response headers of the request - if (isset($http_response_header)) { - $this->lastResponseHeaders = $http_response_header; - $this->processResponseHeaders($stream); - } - - return $stream; - } - - /** - * Process response headers - * - * @param StreamInterface $stream - */ - protected function processResponseHeaders(StreamInterface $stream) - { - // Set the size on the stream if it was returned in the response - foreach ($this->lastResponseHeaders as $header) { - if ((stripos($header, 'Content-Length:')) === 0) { - $stream->setSize(trim(substr($header, 15))); - } - } - } - - /** - * Create a resource and check to ensure it was created successfully - * - * @param callable $callback Closure to invoke that must return a valid resource - * - * @return resource - * @throws RuntimeException on error - */ - protected function createResource($callback) - { - $errors = null; - set_error_handler(function ($_, $msg, $file, $line) use (&$errors) { - $errors[] = array( - 'message' => $msg, - 'file' => $file, - 'line' => $line - ); - return true; - }); - $resource = call_user_func($callback); - restore_error_handler(); - - if (!$resource) { - $message = 'Error creating resource. '; - foreach ($errors as $err) { - foreach ($err as $key => $value) { - $message .= "[$key] $value" . PHP_EOL; - } - } - throw new RuntimeException(trim($message)); - } - - return $resource; - } -} diff --git a/lib/aws-sdk/Guzzle/Stream/Stream.php b/lib/aws-sdk/Guzzle/Stream/Stream.php deleted file mode 100644 index 12bed26..0000000 --- a/lib/aws-sdk/Guzzle/Stream/Stream.php +++ /dev/null @@ -1,289 +0,0 @@ - array( - 'r' => true, 'w+' => true, 'r+' => true, 'x+' => true, 'c+' => true, - 'rb' => true, 'w+b' => true, 'r+b' => true, 'x+b' => true, 'c+b' => true, - 'rt' => true, 'w+t' => true, 'r+t' => true, 'x+t' => true, 'c+t' => true, 'a+' => true - ), - 'write' => array( - 'w' => true, 'w+' => true, 'rw' => true, 'r+' => true, 'x+' => true, 'c+' => true, - 'wb' => true, 'w+b' => true, 'r+b' => true, 'x+b' => true, 'c+b' => true, - 'w+t' => true, 'r+t' => true, 'x+t' => true, 'c+t' => true, 'a' => true, 'a+' => true - ) - ); - - /** - * @param resource $stream Stream resource to wrap - * @param int $size Size of the stream in bytes. Only pass if the size cannot be obtained from the stream. - * - * @throws InvalidArgumentException if the stream is not a stream resource - */ - public function __construct($stream, $size = null) - { - $this->setStream($stream, $size); - } - - /** - * Closes the stream when the helper is destructed - */ - public function __destruct() - { - $this->close(); - } - - public function __toString() - { - if (!$this->isReadable() || (!$this->isSeekable() && $this->isConsumed())) { - return ''; - } - - $originalPos = $this->ftell(); - $body = stream_get_contents($this->stream, -1, 0); - $this->seek($originalPos); - - return $body; - } - - public function close() - { - if (is_resource($this->stream)) { - fclose($this->stream); - } - $this->cache[self::IS_READABLE] = false; - $this->cache[self::IS_WRITABLE] = false; - } - - /** - * Calculate a hash of a Stream - * - * @param StreamInterface $stream Stream to calculate the hash for - * @param string $algo Hash algorithm (e.g. md5, crc32, etc) - * @param bool $rawOutput Whether or not to use raw output - * - * @return bool|string Returns false on failure or a hash string on success - */ - public static function getHash(StreamInterface $stream, $algo, $rawOutput = false) - { - $pos = $stream->ftell(); - if (!$stream->seek(0)) { - return false; - } - - $ctx = hash_init($algo); - while (!$stream->feof()) { - hash_update($ctx, $stream->read(8192)); - } - - $out = hash_final($ctx, (bool) $rawOutput); - $stream->seek($pos); - - return $out; - } - - public function getMetaData($key = null) - { - $meta = stream_get_meta_data($this->stream); - - return !$key ? $meta : (array_key_exists($key, $meta) ? $meta[$key] : null); - } - - public function getStream() - { - return $this->stream; - } - - public function setStream($stream, $size = null) - { - if (!is_resource($stream)) { - throw new InvalidArgumentException('Stream must be a resource'); - } - - $this->size = $size; - $this->stream = $stream; - $this->rebuildCache(); - - return $this; - } - - public function detachStream() - { - $this->stream = null; - - return $this; - } - - public function getWrapper() - { - return $this->cache[self::WRAPPER_TYPE]; - } - - public function getWrapperData() - { - return $this->getMetaData('wrapper_data') ?: array(); - } - - public function getStreamType() - { - return $this->cache[self::STREAM_TYPE]; - } - - public function getUri() - { - return $this->cache['uri']; - } - - public function getSize() - { - if ($this->size !== null) { - return $this->size; - } - - // If the stream is a file based stream and local, then use fstat - clearstatcache(true, $this->cache['uri']); - $stats = fstat($this->stream); - if (isset($stats['size'])) { - $this->size = $stats['size']; - return $this->size; - } elseif ($this->cache[self::IS_READABLE] && $this->cache[self::SEEKABLE]) { - // Only get the size based on the content if the the stream is readable and seekable - $pos = $this->ftell(); - $this->size = strlen((string) $this); - $this->seek($pos); - return $this->size; - } - - return false; - } - - public function isReadable() - { - return $this->cache[self::IS_READABLE]; - } - - public function isRepeatable() - { - return $this->cache[self::IS_READABLE] && $this->cache[self::SEEKABLE]; - } - - public function isWritable() - { - return $this->cache[self::IS_WRITABLE]; - } - - public function isConsumed() - { - return feof($this->stream); - } - - public function feof() - { - return $this->isConsumed(); - } - - public function isLocal() - { - return $this->cache[self::IS_LOCAL]; - } - - public function isSeekable() - { - return $this->cache[self::SEEKABLE]; - } - - public function setSize($size) - { - $this->size = $size; - - return $this; - } - - public function seek($offset, $whence = SEEK_SET) - { - return $this->cache[self::SEEKABLE] ? fseek($this->stream, $offset, $whence) === 0 : false; - } - - public function read($length) - { - return fread($this->stream, $length); - } - - public function write($string) - { - // We can't know the size after writing anything - $this->size = null; - - return fwrite($this->stream, $string); - } - - public function ftell() - { - return ftell($this->stream); - } - - public function rewind() - { - return $this->seek(0); - } - - public function readLine($maxLength = null) - { - if (!$this->cache[self::IS_READABLE]) { - return false; - } else { - return $maxLength ? fgets($this->getStream(), $maxLength) : fgets($this->getStream()); - } - } - - public function setCustomData($key, $value) - { - $this->customData[$key] = $value; - - return $this; - } - - public function getCustomData($key) - { - return isset($this->customData[$key]) ? $this->customData[$key] : null; - } - - /** - * Reprocess stream metadata - */ - protected function rebuildCache() - { - $this->cache = stream_get_meta_data($this->stream); - $this->cache[self::IS_LOCAL] = stream_is_local($this->stream); - $this->cache[self::IS_READABLE] = isset(self::$readWriteHash['read'][$this->cache['mode']]); - $this->cache[self::IS_WRITABLE] = isset(self::$readWriteHash['write'][$this->cache['mode']]); - } -} diff --git a/lib/aws-sdk/Guzzle/Stream/StreamInterface.php b/lib/aws-sdk/Guzzle/Stream/StreamInterface.php deleted file mode 100644 index 6d7dc37..0000000 --- a/lib/aws-sdk/Guzzle/Stream/StreamInterface.php +++ /dev/null @@ -1,218 +0,0 @@ - 'http://www.foo.com/1.0/', + * 'timeout' => 0, + * 'allow_redirects' => false, + * 'proxy' => '192.168.16.1:10' + * ]); + * + * Client configuration settings include the following options: + * + * - handler: (callable) Function that transfers HTTP requests over the + * wire. The function is called with a Psr7\Http\Message\RequestInterface + * and array of transfer options, and must return a + * GuzzleHttp\Promise\PromiseInterface that is fulfilled with a + * Psr7\Http\Message\ResponseInterface on success. "handler" is a + * constructor only option that cannot be overridden in per/request + * options. If no handler is provided, a default handler will be created + * that enables all of the request options below by attaching all of the + * default middleware to the handler. + * - base_uri: (string|UriInterface) Base URI of the client that is merged + * into relative URIs. Can be a string or instance of UriInterface. + * - **: any request option + * + * @param array $config Client configuration settings. + * + * @see \GuzzleHttp\RequestOptions for a list of available request options. + */ + public function __construct(array $config = []) + { + if (!isset($config['handler'])) { + $config['handler'] = HandlerStack::create(); + } + + // Convert the base_uri to a UriInterface + if (isset($config['base_uri'])) { + $config['base_uri'] = Psr7\uri_for($config['base_uri']); + } + + $this->configureDefaults($config); + } + + public function __call($method, $args) + { + if (count($args) < 1) { + throw new \InvalidArgumentException('Magic request methods require a URI and optional options array'); + } + + $uri = $args[0]; + $opts = isset($args[1]) ? $args[1] : []; + + return substr($method, -5) === 'Async' + ? $this->requestAsync(substr($method, 0, -5), $uri, $opts) + : $this->request($method, $uri, $opts); + } + + public function sendAsync(RequestInterface $request, array $options = []) + { + // Merge the base URI into the request URI if needed. + $options = $this->prepareDefaults($options); + + return $this->transfer( + $request->withUri($this->buildUri($request->getUri(), $options)), + $options + ); + } + + public function send(RequestInterface $request, array $options = []) + { + $options[RequestOptions::SYNCHRONOUS] = true; + return $this->sendAsync($request, $options)->wait(); + } + + public function requestAsync($method, $uri = null, array $options = []) + { + $options = $this->prepareDefaults($options); + // Remove request modifying parameter because it can be done up-front. + $headers = isset($options['headers']) ? $options['headers'] : []; + $body = isset($options['body']) ? $options['body'] : null; + $version = isset($options['version']) ? $options['version'] : '1.1'; + // Merge the URI into the base URI. + $uri = $this->buildUri($uri, $options); + if (is_array($body)) { + $this->invalidBody(); + } + $request = new Psr7\Request($method, $uri, $headers, $body, $version); + // Remove the option so that they are not doubly-applied. + unset($options['headers'], $options['body'], $options['version']); + + return $this->transfer($request, $options); + } + + public function request($method, $uri = null, array $options = []) + { + $options[RequestOptions::SYNCHRONOUS] = true; + return $this->requestAsync($method, $uri, $options)->wait(); + } + + public function getConfig($option = null) + { + return $option === null + ? $this->config + : (isset($this->config[$option]) ? $this->config[$option] : null); + } + + private function buildUri($uri, array $config) + { + if (!isset($config['base_uri'])) { + return $uri instanceof UriInterface ? $uri : new Psr7\Uri($uri); + } + + return Psr7\Uri::resolve(Psr7\uri_for($config['base_uri']), $uri); + } + + /** + * Configures the default options for a client. + * + * @param array $config + * + * @return array + */ + private function configureDefaults(array $config) + { + $defaults = [ + 'allow_redirects' => RedirectMiddleware::$defaultSettings, + 'http_errors' => true, + 'decode_content' => true, + 'verify' => true, + 'cookies' => false + ]; + + // Use the standard Linux HTTP_PROXY and HTTPS_PROXY if set + if ($proxy = getenv('HTTP_PROXY')) { + $defaults['proxy']['http'] = $proxy; + } + + if ($proxy = getenv('HTTPS_PROXY')) { + $defaults['proxy']['https'] = $proxy; + } + + $this->config = $config + $defaults; + + if (!empty($config['cookies']) && $config['cookies'] === true) { + $this->config['cookies'] = new CookieJar(); + } + + // Add the default user-agent header. + if (!isset($this->config['headers'])) { + $this->config['headers'] = ['User-Agent' => default_user_agent()]; + } else { + // Add the User-Agent header if one was not already set. + foreach (array_keys($this->config['headers']) as $name) { + if (strtolower($name) === 'user-agent') { + return; + } + } + $this->config['headers']['User-Agent'] = default_user_agent(); + } + } + + /** + * Merges default options into the array. + * + * @param array $options Options to modify by reference + * + * @return array + */ + private function prepareDefaults($options) + { + $defaults = $this->config; + + if (!empty($defaults['headers'])) { + // Default headers are only added if they are not present. + $defaults['_conditional'] = $defaults['headers']; + unset($defaults['headers']); + } + + // Special handling for headers is required as they are added as + // conditional headers and as headers passed to a request ctor. + if (array_key_exists('headers', $options)) { + // Allows default headers to be unset. + if ($options['headers'] === null) { + $defaults['_conditional'] = null; + unset($options['headers']); + } elseif (!is_array($options['headers'])) { + throw new \InvalidArgumentException('headers must be an array'); + } + } + + // Shallow merge defaults underneath options. + $result = $options + $defaults; + + // Remove null values. + foreach ($result as $k => $v) { + if ($v === null) { + unset($result[$k]); + } + } + + return $result; + } + + /** + * Transfers the given request and applies request options. + * + * The URI of the request is not modified and the request options are used + * as-is without merging in default options. + * + * @param RequestInterface $request + * @param array $options + * + * @return Promise\PromiseInterface + */ + private function transfer(RequestInterface $request, array $options) + { + // save_to -> sink + if (isset($options['save_to'])) { + $options['sink'] = $options['save_to']; + unset($options['save_to']); + } + + // exceptions -> http_error + if (isset($options['exceptions'])) { + $options['http_errors'] = $options['exceptions']; + unset($options['exceptions']); + } + + $request = $this->applyOptions($request, $options); + $handler = $options['handler']; + + try { + return Promise\promise_for($handler($request, $options)); + } catch (\Exception $e) { + return Promise\rejection_for($e); + } + } + + /** + * Applies the array of request options to a request. + * + * @param RequestInterface $request + * @param array $options + * + * @return RequestInterface + */ + private function applyOptions(RequestInterface $request, array &$options) + { + $modify = []; + + if (isset($options['form_params'])) { + $options['body'] = http_build_query($options['form_params']); + unset($options['form_params']); + $options['_conditional']['Content-Type'] = 'application/x-www-form-urlencoded'; + } + + if (isset($options['multipart'])) { + $elements = $options['multipart']; + unset($options['multipart']); + $options['body'] = new Psr7\MultipartStream($elements); + // Use a multipart/form-data POST if a Content-Type is not set. + $options['_conditional']['Content-Type'] = 'multipart/form-data; boundary=' + . $options['body']->getBoundary(); + } + + if (!empty($options['decode_content']) + && $options['decode_content'] !== true + ) { + $modify['set_headers']['Accept-Encoding'] = $options['decode_content']; + } + + if (isset($options['headers'])) { + if (isset($modify['set_headers'])) { + $modify['set_headers'] = $options['headers'] + $modify['set_headers']; + } else { + $modify['set_headers'] = $options['headers']; + } + unset($options['headers']); + } + + if (isset($options['body'])) { + if (is_array($options['body'])) { + $this->invalidBody(); + } + $modify['body'] = Psr7\stream_for($options['body']); + unset($options['body']); + } + + if (!empty($options['auth'])) { + $value = $options['auth']; + $type = is_array($value) + ? (isset($value[2]) ? strtolower($value[2]) : 'basic') + : $value; + $config['auth'] = $value; + switch (strtolower($type)) { + case 'basic': + $modify['set_headers']['Authorization'] = 'Basic ' + . base64_encode("$value[0]:$value[1]"); + break; + case 'digest': + // @todo: Do not rely on curl + $options['curl'][CURLOPT_HTTPAUTH] = CURLAUTH_DIGEST; + $options['curl'][CURLOPT_USERPWD] = "$value[0]:$value[1]"; + break; + } + } + + if (isset($options['query'])) { + $value = $options['query']; + if (is_array($value)) { + $value = http_build_query($value, null, '&', PHP_QUERY_RFC3986); + } + if (!is_string($value)) { + throw new Iae('query must be a string or array'); + } + $modify['query'] = $value; + unset($options['query']); + } + + if (isset($options['json'])) { + $modify['body'] = Psr7\stream_for(json_encode($options['json'])); + $options['_conditional']['Content-Type'] = 'application/json'; + unset($options['json']); + } + + $request = Psr7\modify_request($request, $modify); + + // Merge in conditional headers if they are not present. + if (isset($options['_conditional'])) { + // Build up the changes so it's in a single clone of the message. + $modify = []; + foreach ($options['_conditional'] as $k => $v) { + if (!$request->hasHeader($k)) { + $modify['set_headers'][$k] = $v; + } + } + $request = Psr7\modify_request($request, $modify); + // Don't pass this internal value along to middleware/handlers. + unset($options['_conditional']); + } + + return $request; + } + + private function invalidBody() + { + throw new \InvalidArgumentException('Passing in the "body" request ' + . 'option as an array to send a POST request has been deprecated. ' + . 'Please use the "form_params" request option to send a ' + . 'application/x-www-form-urlencoded request, or a the "multipart" ' + . 'request option to send a multipart/form-data request.'); + } +} diff --git a/lib/aws-sdk/GuzzleHttp/ClientInterface.php b/lib/aws-sdk/GuzzleHttp/ClientInterface.php new file mode 100644 index 0000000..7706a22 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/ClientInterface.php @@ -0,0 +1,84 @@ +strictMode = $strictMode; + + foreach ($cookieArray as $cookie) { + if (!($cookie instanceof SetCookie)) { + $cookie = new SetCookie($cookie); + } + $this->setCookie($cookie); + } + } + + /** + * Create a new Cookie jar from an associative array and domain. + * + * @param array $cookies Cookies to create the jar from + * @param string $domain Domain to set the cookies to + * + * @return self + */ + public static function fromArray(array $cookies, $domain) + { + $cookieJar = new self(); + foreach ($cookies as $name => $value) { + $cookieJar->setCookie(new SetCookie([ + 'Domain' => $domain, + 'Name' => $name, + 'Value' => $value, + 'Discard' => true + ])); + } + + return $cookieJar; + } + + /** + * Quote the cookie value if it is not already quoted and it contains + * problematic characters. + * + * @param string $value Value that may or may not need to be quoted + * + * @return string + */ + public static function getCookieValue($value) + { + if (substr($value, 0, 1) !== '"' && + substr($value, -1, 1) !== '"' && + strpbrk($value, ';,') + ) { + $value = '"' . $value . '"'; + } + + return $value; + } + + public function toArray() + { + return array_map(function (SetCookie $cookie) { + return $cookie->toArray(); + }, $this->getIterator()->getArrayCopy()); + } + + public function clear($domain = null, $path = null, $name = null) + { + if (!$domain) { + $this->cookies = []; + return; + } elseif (!$path) { + $this->cookies = array_filter( + $this->cookies, + function (SetCookie $cookie) use ($path, $domain) { + return !$cookie->matchesDomain($domain); + } + ); + } elseif (!$name) { + $this->cookies = array_filter( + $this->cookies, + function (SetCookie $cookie) use ($path, $domain) { + return !($cookie->matchesPath($path) && + $cookie->matchesDomain($domain)); + } + ); + } else { + $this->cookies = array_filter( + $this->cookies, + function (SetCookie $cookie) use ($path, $domain, $name) { + return !($cookie->getName() == $name && + $cookie->matchesPath($path) && + $cookie->matchesDomain($domain)); + } + ); + } + } + + public function clearSessionCookies() + { + $this->cookies = array_filter( + $this->cookies, + function (SetCookie $cookie) { + return !$cookie->getDiscard() && $cookie->getExpires(); + } + ); + } + + public function setCookie(SetCookie $cookie) + { + // Only allow cookies with set and valid domain, name, value + $result = $cookie->validate(); + if ($result !== true) { + if ($this->strictMode) { + throw new \RuntimeException('Invalid cookie: ' . $result); + } else { + $this->removeCookieIfEmpty($cookie); + return false; + } + } + + // Resolve conflicts with previously set cookies + foreach ($this->cookies as $i => $c) { + + // Two cookies are identical, when their path, and domain are + // identical. + if ($c->getPath() != $cookie->getPath() || + $c->getDomain() != $cookie->getDomain() || + $c->getName() != $cookie->getName() + ) { + continue; + } + + // The previously set cookie is a discard cookie and this one is + // not so allow the new cookie to be set + if (!$cookie->getDiscard() && $c->getDiscard()) { + unset($this->cookies[$i]); + continue; + } + + // If the new cookie's expiration is further into the future, then + // replace the old cookie + if ($cookie->getExpires() > $c->getExpires()) { + unset($this->cookies[$i]); + continue; + } + + // If the value has changed, we better change it + if ($cookie->getValue() !== $c->getValue()) { + unset($this->cookies[$i]); + continue; + } + + // The cookie exists, so no need to continue + return false; + } + + $this->cookies[] = $cookie; + + return true; + } + + public function count() + { + return count($this->cookies); + } + + public function getIterator() + { + return new \ArrayIterator(array_values($this->cookies)); + } + + public function extractCookies( + RequestInterface $request, + ResponseInterface $response + ) { + if ($cookieHeader = $response->getHeader('Set-Cookie')) { + foreach ($cookieHeader as $cookie) { + $sc = SetCookie::fromString($cookie); + if (!$sc->getDomain()) { + $sc->setDomain($request->getUri()->getHost()); + } + $this->setCookie($sc); + } + } + } + + public function withCookieHeader(RequestInterface $request) + { + $values = []; + $uri = $request->getUri(); + $scheme = $uri->getScheme(); + $host = $uri->getHost(); + $path = $uri->getPath() ?: '/'; + + foreach ($this->cookies as $cookie) { + if ($cookie->matchesPath($path) && + $cookie->matchesDomain($host) && + !$cookie->isExpired() && + (!$cookie->getSecure() || $scheme == 'https') + ) { + $values[] = $cookie->getName() . '=' + . self::getCookieValue($cookie->getValue()); + } + } + + return $values + ? $request->withHeader('Cookie', implode('; ', $values)) + : $request; + } + + /** + * If a cookie already exists and the server asks to set it again with a + * null value, the cookie must be deleted. + * + * @param SetCookie $cookie + */ + private function removeCookieIfEmpty(SetCookie $cookie) + { + $cookieValue = $cookie->getValue(); + if ($cookieValue === null || $cookieValue === '') { + $this->clear( + $cookie->getDomain(), + $cookie->getPath(), + $cookie->getName() + ); + } + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Cookie/CookieJarInterface.php b/lib/aws-sdk/GuzzleHttp/Cookie/CookieJarInterface.php new file mode 100644 index 0000000..2cf298a --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Cookie/CookieJarInterface.php @@ -0,0 +1,84 @@ +filename = $cookieFile; + + if (file_exists($cookieFile)) { + $this->load($cookieFile); + } + } + + /** + * Saves the file when shutting down + */ + public function __destruct() + { + $this->save($this->filename); + } + + /** + * Saves the cookies to a file. + * + * @param string $filename File to save + * @throws \RuntimeException if the file cannot be found or created + */ + public function save($filename) + { + $json = []; + foreach ($this as $cookie) { + /** @var SetCookie $cookie */ + if ($cookie->getExpires() && !$cookie->getDiscard()) { + $json[] = $cookie->toArray(); + } + } + + if (false === file_put_contents($filename, json_encode($json))) { + throw new \RuntimeException("Unable to save file {$filename}"); + } + } + + /** + * Load cookies from a JSON formatted file. + * + * Old cookies are kept unless overwritten by newly loaded ones. + * + * @param string $filename Cookie file to load. + * @throws \RuntimeException if the file cannot be loaded. + */ + public function load($filename) + { + $json = file_get_contents($filename); + if (false === $json) { + throw new \RuntimeException("Unable to load file {$filename}"); + } + + $data = json_decode($json, true); + if (is_array($data)) { + foreach (json_decode($json, true) as $cookie) { + $this->setCookie(new SetCookie($cookie)); + } + } elseif (strlen($data)) { + throw new \RuntimeException("Invalid cookie file: {$filename}"); + } + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Cookie/SessionCookieJar.php b/lib/aws-sdk/GuzzleHttp/Cookie/SessionCookieJar.php new file mode 100644 index 0000000..1688eb6 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Cookie/SessionCookieJar.php @@ -0,0 +1,65 @@ +sessionKey = $sessionKey; + $this->load(); + } + + /** + * Saves cookies to session when shutting down + */ + public function __destruct() + { + $this->save(); + } + + /** + * Save cookies to the client session + */ + public function save() + { + $json = []; + foreach ($this as $cookie) { + /** @var SetCookie $cookie */ + if ($cookie->getExpires() && !$cookie->getDiscard()) { + $json[] = $cookie->toArray(); + } + } + + $_SESSION[$this->sessionKey] = json_encode($json); + } + + /** + * Load the contents of the client session into the data array + */ + protected function load() + { + $cookieJar = isset($_SESSION[$this->sessionKey]) + ? $_SESSION[$this->sessionKey] + : null; + + $data = json_decode($cookieJar, true); + if (is_array($data)) { + foreach ($data as $cookie) { + $this->setCookie(new SetCookie($cookie)); + } + } elseif (strlen($data)) { + throw new \RuntimeException("Invalid cookie data"); + } + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Cookie/SetCookie.php b/lib/aws-sdk/GuzzleHttp/Cookie/SetCookie.php new file mode 100644 index 0000000..cf31906 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Cookie/SetCookie.php @@ -0,0 +1,371 @@ + null, + 'Value' => null, + 'Domain' => null, + 'Path' => '/', + 'Max-Age' => null, + 'Expires' => null, + 'Secure' => false, + 'Discard' => false, + 'HttpOnly' => false + ]; + + /** @var array Cookie data */ + private $data; + + /** + * Create a new SetCookie object from a string + * + * @param string $cookie Set-Cookie header string + * + * @return self + */ + public static function fromString($cookie) + { + // Create the default return array + $data = self::$defaults; + // Explode the cookie string using a series of semicolons + $pieces = array_filter(array_map('trim', explode(';', $cookie))); + // The name of the cookie (first kvp) must include an equal sign. + if (empty($pieces) || !strpos($pieces[0], '=')) { + return new self($data); + } + + // Add the cookie pieces into the parsed data array + foreach ($pieces as $part) { + + $cookieParts = explode('=', $part, 2); + $key = trim($cookieParts[0]); + $value = isset($cookieParts[1]) + ? trim($cookieParts[1], " \n\r\t\0\x0B\"") + : true; + + // Only check for non-cookies when cookies have been found + if (empty($data['Name'])) { + $data['Name'] = $key; + $data['Value'] = $value; + } else { + foreach (array_keys(self::$defaults) as $search) { + if (!strcasecmp($search, $key)) { + $data[$search] = $value; + continue 2; + } + } + $data[$key] = $value; + } + } + + return new self($data); + } + + /** + * @param array $data Array of cookie data provided by a Cookie parser + */ + public function __construct(array $data = []) + { + $this->data = array_replace(self::$defaults, $data); + // Extract the Expires value and turn it into a UNIX timestamp if needed + if (!$this->getExpires() && $this->getMaxAge()) { + // Calculate the Expires date + $this->setExpires(time() + $this->getMaxAge()); + } elseif ($this->getExpires() && !is_numeric($this->getExpires())) { + $this->setExpires($this->getExpires()); + } + } + + public function __toString() + { + $str = $this->data['Name'] . '=' . $this->data['Value'] . '; '; + foreach ($this->data as $k => $v) { + if ($k != 'Name' && $k != 'Value' && $v !== null && $v !== false) { + if ($k == 'Expires') { + $str .= 'Expires=' . gmdate('D, d M Y H:i:s \G\M\T', $v) . '; '; + } else { + $str .= ($v === true ? $k : "{$k}={$v}") . '; '; + } + } + } + + return rtrim($str, '; '); + } + + public function toArray() + { + return $this->data; + } + + /** + * Get the cookie name + * + * @return string + */ + public function getName() + { + return $this->data['Name']; + } + + /** + * Set the cookie name + * + * @param string $name Cookie name + */ + public function setName($name) + { + $this->data['Name'] = $name; + } + + /** + * Get the cookie value + * + * @return string + */ + public function getValue() + { + return $this->data['Value']; + } + + /** + * Set the cookie value + * + * @param string $value Cookie value + */ + public function setValue($value) + { + $this->data['Value'] = $value; + } + + /** + * Get the domain + * + * @return string|null + */ + public function getDomain() + { + return $this->data['Domain']; + } + + /** + * Set the domain of the cookie + * + * @param string $domain + */ + public function setDomain($domain) + { + $this->data['Domain'] = $domain; + } + + /** + * Get the path + * + * @return string + */ + public function getPath() + { + return $this->data['Path']; + } + + /** + * Set the path of the cookie + * + * @param string $path Path of the cookie + */ + public function setPath($path) + { + $this->data['Path'] = $path; + } + + /** + * Maximum lifetime of the cookie in seconds + * + * @return int|null + */ + public function getMaxAge() + { + return $this->data['Max-Age']; + } + + /** + * Set the max-age of the cookie + * + * @param int $maxAge Max age of the cookie in seconds + */ + public function setMaxAge($maxAge) + { + $this->data['Max-Age'] = $maxAge; + } + + /** + * The UNIX timestamp when the cookie Expires + * + * @return mixed + */ + public function getExpires() + { + return $this->data['Expires']; + } + + /** + * Set the unix timestamp for which the cookie will expire + * + * @param int $timestamp Unix timestamp + */ + public function setExpires($timestamp) + { + $this->data['Expires'] = is_numeric($timestamp) + ? (int) $timestamp + : strtotime($timestamp); + } + + /** + * Get whether or not this is a secure cookie + * + * @return null|bool + */ + public function getSecure() + { + return $this->data['Secure']; + } + + /** + * Set whether or not the cookie is secure + * + * @param bool $secure Set to true or false if secure + */ + public function setSecure($secure) + { + $this->data['Secure'] = $secure; + } + + /** + * Get whether or not this is a session cookie + * + * @return null|bool + */ + public function getDiscard() + { + return $this->data['Discard']; + } + + /** + * Set whether or not this is a session cookie + * + * @param bool $discard Set to true or false if this is a session cookie + */ + public function setDiscard($discard) + { + $this->data['Discard'] = $discard; + } + + /** + * Get whether or not this is an HTTP only cookie + * + * @return bool + */ + public function getHttpOnly() + { + return $this->data['HttpOnly']; + } + + /** + * Set whether or not this is an HTTP only cookie + * + * @param bool $httpOnly Set to true or false if this is HTTP only + */ + public function setHttpOnly($httpOnly) + { + $this->data['HttpOnly'] = $httpOnly; + } + + /** + * Check if the cookie matches a path value + * + * @param string $path Path to check against + * + * @return bool + */ + public function matchesPath($path) + { + return !$this->getPath() || 0 === stripos($path, $this->getPath()); + } + + /** + * Check if the cookie matches a domain value + * + * @param string $domain Domain to check against + * + * @return bool + */ + public function matchesDomain($domain) + { + // Remove the leading '.' as per spec in RFC 6265. + // http://tools.ietf.org/html/rfc6265#section-5.2.3 + $cookieDomain = ltrim($this->getDomain(), '.'); + + // Domain not set or exact match. + if (!$cookieDomain || !strcasecmp($domain, $cookieDomain)) { + return true; + } + + // Matching the subdomain according to RFC 6265. + // http://tools.ietf.org/html/rfc6265#section-5.1.3 + if (filter_var($domain, FILTER_VALIDATE_IP)) { + return false; + } + + return (bool) preg_match('/\.' . preg_quote($cookieDomain) . '$/i', $domain); + } + + /** + * Check if the cookie is expired + * + * @return bool + */ + public function isExpired() + { + return $this->getExpires() && time() > $this->getExpires(); + } + + /** + * Check if the cookie is valid according to RFC 6265 + * + * @return bool|string Returns true if valid or an error message if invalid + */ + public function validate() + { + // Names must not be empty, but can be 0 + $name = $this->getName(); + if (empty($name) && !is_numeric($name)) { + return 'The cookie name must not be empty'; + } + + // Check if any of the invalid characters are present in the cookie name + if (preg_match("/[=,; \t\r\n\013\014]/", $name)) { + return "Cookie name must not cannot invalid characters: =,; \\t\\r\\n\\013\\014"; + } + + // Value must not be empty, but can be 0 + $value = $this->getValue(); + if (empty($value) && !is_numeric($value)) { + return 'The cookie value must not be empty'; + } + + // Domains must not be empty, but can be 0 + // A "0" is not a valid internet domain, but may be used as server name + // in a private network. + $domain = $this->getDomain(); + if (empty($domain) && !is_numeric($domain)) { + return 'The cookie domain must not be empty'; + } + + return true; + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Exception/BadResponseException.php b/lib/aws-sdk/GuzzleHttp/Exception/BadResponseException.php new file mode 100644 index 0000000..fd78431 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Exception/BadResponseException.php @@ -0,0 +1,7 @@ +getStatusCode() + : 0; + parent::__construct($message, $code, $previous); + $this->request = $request; + $this->response = $response; + $this->handlerContext = $handlerContext; + } + + /** + * Wrap non-RequestExceptions with a RequestException + * + * @param RequestInterface $request + * @param \Exception $e + * + * @return RequestException + */ + public static function wrapException(RequestInterface $request, \Exception $e) + { + return $e instanceof RequestException + ? $e + : new RequestException($e->getMessage(), $request, null, $e); + } + + /** + * Factory method to create a new exception with a normalized error message + * + * @param RequestInterface $request Request + * @param ResponseInterface $response Response received + * @param \Exception $previous Previous exception + * @param array $ctx Optional handler context. + * + * @return self + */ + public static function create( + RequestInterface $request, + ResponseInterface $response = null, + \Exception $previous = null, + array $ctx = [] + ) { + if (!$response) { + return new self( + 'Error completing request', + $request, + null, + $previous, + $ctx + ); + } + + $level = floor($response->getStatusCode() / 100); + if ($level == '4') { + $label = 'Client error response'; + $className = __NAMESPACE__ . '\\ClientException'; + } elseif ($level == '5') { + $label = 'Server error response'; + $className = __NAMESPACE__ . '\\ServerException'; + } else { + $label = 'Unsuccessful response'; + $className = __CLASS__; + } + + $message = $label . ' [url] ' . $request->getUri() + . ' [status code] ' . $response->getStatusCode() + . ' [reason phrase] ' . $response->getReasonPhrase(); + + return new $className($message, $request, $response, $previous, $ctx); + } + + /** + * Get the request that caused the exception + * + * @return RequestInterface + */ + public function getRequest() + { + return $this->request; + } + + /** + * Get the associated response + * + * @return ResponseInterface|null + */ + public function getResponse() + { + return $this->response; + } + + /** + * Check if a response was received + * + * @return bool + */ + public function hasResponse() + { + return $this->response !== null; + } + + /** + * Get contextual information about the error from the underlying handler. + * + * The contents of this array will vary depending on which handler you are + * using. It may also be just an empty array. Relying on this data will + * couple you to a specific handler, but can give more debug information + * when needed. + * + * @return array + */ + public function getHandlerContext() + { + return $this->handlerContext; + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Exception/SeekException.php b/lib/aws-sdk/GuzzleHttp/Exception/SeekException.php new file mode 100644 index 0000000..a77c289 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Exception/SeekException.php @@ -0,0 +1,27 @@ +stream = $stream; + $msg = $msg ?: 'Could not seek the stream to position ' . $pos; + parent::__construct($msg); + } + + /** + * @return StreamInterface + */ + public function getStream() + { + return $this->stream; + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Exception/ServerException.php b/lib/aws-sdk/GuzzleHttp/Exception/ServerException.php new file mode 100644 index 0000000..7cdd340 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Exception/ServerException.php @@ -0,0 +1,7 @@ +maxHandles = $maxHandles; + } + + public function create(RequestInterface $request, array $options) + { + $easy = new EasyHandle; + $easy->request = $request; + $easy->options = $options; + $conf = $this->getDefaultConf($easy); + $this->applyMethod($easy, $conf); + $this->applyHandlerOptions($easy, $conf); + $this->applyHeaders($easy, $conf); + unset($conf['_headers']); + + if (isset($options['curl']['body_as_string'])) { + $options['_body_as_string'] = $options['curl']['body_as_string']; + unset($options['curl']['body_as_string']); + } + + // Add handler options from the request configuration options + if (isset($options['curl'])) { + $conf += $options['curl']; + } + + $conf[CURLOPT_HEADERFUNCTION] = $this->createHeaderFn($easy); + $easy->handle = $this->handles + ? array_pop($this->handles) + : curl_init(); + curl_setopt_array($easy->handle, $conf); + + return $easy; + } + + public function release(EasyHandle $easy) + { + $resource = $easy->handle; + unset($easy->handle); + + if (count($this->handles) >= $this->maxHandles) { + curl_close($resource); + } else { + curl_reset($resource); + $this->handles[] = $resource; + } + } + + /** + * Completes a cURL transaction, either returning a response promise or a + * rejected promise. + * + * @param callable $handler + * @param EasyHandle $easy + * @param CurlFactoryInterface $factory Dictates how the handle is released + * + * @return \GuzzleHttp\Promise\PromiseInterface + */ + public static function finish( + callable $handler, + EasyHandle $easy, + CurlFactoryInterface $factory + ) { + if (!$easy->response || $easy->errno) { + return self::finishError($handler, $easy, $factory); + } + + // Return the response if it is present and there is no error. + $factory->release($easy); + + // Rewind the body of the response if possible. + $body = $easy->response->getBody(); + if ($body->isSeekable()) { + $body->rewind(); + } + + return new FulfilledPromise($easy->response); + } + + private static function finishError( + callable $handler, + EasyHandle $easy, + CurlFactoryInterface $factory + ) { + // Get error information and release the handle to the factory. + $ctx = [ + 'errno' => $easy->errno, + 'error' => curl_error($easy->handle) + ?: curl_strerror($easy->errno) + ] + curl_getinfo($easy->handle); + $factory->release($easy); + + // Retry when nothing is present or when curl failed to rewind. + if (empty($easy->options['_err_message']) + && (!$easy->errno || $easy->errno == 65) + ) { + return self::retryFailedRewind($handler, $easy, $ctx); + } + + return self::createRejection($easy, $ctx); + } + + private static function createRejection(EasyHandle $easy, array $ctx) + { + static $connectionErrors = [ + CURLE_OPERATION_TIMEOUTED => true, + CURLE_COULDNT_RESOLVE_HOST => true, + CURLE_COULDNT_CONNECT => true, + CURLE_SSL_CONNECT_ERROR => true, + CURLE_GOT_NOTHING => true, + ]; + + // If an exception was encountered during the onHeaders event, then + // return a rejected promise that wraps that exception. + if ($easy->onHeadersException) { + return new RejectedPromise( + new RequestException( + 'An error was encountered during the on_headers event', + $easy->request, + $easy->response, + $easy->onHeadersException, + $ctx + ) + ); + } + + $message = sprintf( + 'cURL error %s: %s (%s)', + $ctx['errno'], + $ctx['error'], + 'see http://curl.haxx.se/libcurl/c/libcurl-errors.html' + ); + + // Create a connection exception if it was a specific error code. + $error = isset($connectionErrors[$easy->errno]) + ? new ConnectException($message, $easy->request, null, $ctx) + : new RequestException($message, $easy->request, $easy->response, null, $ctx); + + return new RejectedPromise($error); + } + + private function getDefaultConf(EasyHandle $easy) + { + $conf = [ + '_headers' => $easy->request->getHeaders(), + CURLOPT_CUSTOMREQUEST => $easy->request->getMethod(), + CURLOPT_URL => (string) $easy->request->getUri(), + CURLOPT_RETURNTRANSFER => false, + CURLOPT_HEADER => false, + CURLOPT_CONNECTTIMEOUT => 150, + CURLOPT_PROTOCOLS => CURLPROTO_HTTP | CURLPROTO_HTTPS, + ]; + + $version = $easy->request->getProtocolVersion(); + if ($version == 1.1) { + $conf[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_1_1; + } elseif ($version == 2.0) { + $conf[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_2_0; + } else { + $conf[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_1_0; + } + + return $conf; + } + + private function applyMethod(EasyHandle $easy, array &$conf) + { + $body = $easy->request->getBody(); + $size = $body->getSize(); + + if ($size === null || $size > 0) { + $this->applyBody($easy->request, $easy->options, $conf); + return; + } + + $method = $easy->request->getMethod(); + if ($method === 'PUT' || $method === 'POST') { + // See http://tools.ietf.org/html/rfc7230#section-3.3.2 + if (!$easy->request->hasHeader('Content-Length')) { + $conf[CURLOPT_HTTPHEADER][] = 'Content-Length: 0'; + } + } elseif ($method === 'HEAD') { + $conf[CURLOPT_NOBODY] = true; + unset( + $conf[CURLOPT_WRITEFUNCTION], + $conf[CURLOPT_READFUNCTION], + $conf[CURLOPT_FILE], + $conf[CURLOPT_INFILE] + ); + } + } + + private function applyBody(RequestInterface $request, array $options, array &$conf) + { + $size = $request->hasHeader('Content-Length') + ? (int) $request->getHeaderLine('Content-Length') + : null; + + // Send the body as a string if the size is less than 1MB OR if the + // [curl][body_as_string] request value is set. + if (($size !== null && $size < 1000000) || + !empty($options['_body_as_string']) + ) { + $conf[CURLOPT_POSTFIELDS] = (string) $request->getBody(); + // Don't duplicate the Content-Length header + $this->removeHeader('Content-Length', $conf); + $this->removeHeader('Transfer-Encoding', $conf); + } else { + $conf[CURLOPT_UPLOAD] = true; + if ($size !== null) { + $conf[CURLOPT_INFILESIZE] = $size; + $this->removeHeader('Content-Length', $conf); + } + $body = $request->getBody(); + $conf[CURLOPT_READFUNCTION] = function ($ch, $fd, $length) use ($body) { + return $body->read($length); + }; + } + + // If the Expect header is not present, prevent curl from adding it + if (!$request->hasHeader('Expect')) { + $conf[CURLOPT_HTTPHEADER][] = 'Expect:'; + } + + // cURL sometimes adds a content-type by default. Prevent this. + if (!$request->hasHeader('Content-Type')) { + $conf[CURLOPT_HTTPHEADER][] = 'Content-Type:'; + } + } + + private function applyHeaders(EasyHandle $easy, array &$conf) + { + foreach ($conf['_headers'] as $name => $values) { + foreach ($values as $value) { + $conf[CURLOPT_HTTPHEADER][] = "$name: $value"; + } + } + + // Remove the Accept header if one was not set + if (!$easy->request->hasHeader('Accept')) { + $conf[CURLOPT_HTTPHEADER][] = 'Accept:'; + } + } + + /** + * Remove a header from the options array. + * + * @param string $name Case-insensitive header to remove + * @param array $options Array of options to modify + */ + private function removeHeader($name, array &$options) + { + foreach (array_keys($options['_headers']) as $key) { + if (!strcasecmp($key, $name)) { + unset($options['_headers'][$key]); + return; + } + } + } + + private function applyHandlerOptions(EasyHandle $easy, array &$conf) + { + $options = $easy->options; + if (isset($options['verify'])) { + if ($options['verify'] === false) { + unset($conf[CURLOPT_CAINFO]); + $conf[CURLOPT_SSL_VERIFYHOST] = 0; + $conf[CURLOPT_SSL_VERIFYPEER] = false; + } else { + $conf[CURLOPT_SSL_VERIFYHOST] = 2; + $conf[CURLOPT_SSL_VERIFYPEER] = true; + if (is_string($options['verify'])) { + $conf[CURLOPT_CAINFO] = $options['verify']; + if (!file_exists($options['verify'])) { + throw new \InvalidArgumentException( + "SSL CA bundle not found: {$options['verify']}" + ); + } + } + } + } + + if (!empty($options['decode_content'])) { + $accept = $easy->request->getHeaderLine('Accept-Encoding'); + if ($accept) { + $conf[CURLOPT_ENCODING] = $accept; + } else { + $conf[CURLOPT_ENCODING] = ''; + // Don't let curl send the header over the wire + $conf[CURLOPT_HTTPHEADER][] = 'Accept-Encoding:'; + } + } + + if (isset($options['sink'])) { + $sink = $options['sink']; + if (!is_string($sink)) { + $sink = \GuzzleHttp\Psr7\stream_for($sink); + } elseif (!is_dir(dirname($sink))) { + // Ensure that the directory exists before failing in curl. + throw new \RuntimeException(sprintf( + 'Directory %s does not exist for sink value of %s', + dirname($sink), + $sink + )); + } else { + $sink = new LazyOpenStream($sink, 'w+'); + } + $easy->sink = $sink; + $conf[CURLOPT_WRITEFUNCTION] = function ($ch, $write) use ($sink) { + return $sink->write($write); + }; + } else { + // Use a default temp stream if no sink was set. + $conf[CURLOPT_FILE] = fopen('php://temp', 'w+'); + $easy->sink = Psr7\stream_for($conf[CURLOPT_FILE]); + } + + if (isset($options['timeout'])) { + $conf[CURLOPT_TIMEOUT_MS] = $options['timeout'] * 1000; + } + + if (isset($options['connect_timeout'])) { + $conf[CURLOPT_CONNECTTIMEOUT_MS] = $options['connect_timeout'] * 1000; + } + + if (isset($options['proxy'])) { + if (!is_array($options['proxy'])) { + $conf[CURLOPT_PROXY] = $options['proxy']; + } elseif ($scheme = $easy->request->getUri()->getScheme()) { + if (isset($options['proxy'][$scheme])) { + $conf[CURLOPT_PROXY] = $options['proxy'][$scheme]; + } + } + } + + if (isset($options['cert'])) { + $cert = $options['cert']; + if (is_array($cert)) { + $conf[CURLOPT_SSLCERTPASSWD] = $cert[1]; + $cert = $cert[0]; + } + if (!file_exists($cert)) { + throw new \InvalidArgumentException( + "SSL certificate not found: {$cert}" + ); + } + $conf[CURLOPT_SSLCERT] = $cert; + } + + if (isset($options['ssl_key'])) { + $sslKey = $options['ssl_key']; + if (is_array($sslKey)) { + $conf[CURLOPT_SSLKEYPASSWD] = $sslKey[1]; + $sslKey = $sslKey[0]; + } + if (!file_exists($sslKey)) { + throw new \InvalidArgumentException( + "SSL private key not found: {$sslKey}" + ); + } + $conf[CURLOPT_SSLKEY] = $sslKey; + } + + if (isset($options['progress'])) { + $progress = $options['progress']; + if (!is_callable($progress)) { + throw new \InvalidArgumentException( + 'progress client option must be callable' + ); + } + $conf[CURLOPT_NOPROGRESS] = false; + $conf[CURLOPT_PROGRESSFUNCTION] = function () use ($progress) { + $args = func_get_args(); + // PHP 5.5 pushed the handle onto the start of the args + if (is_resource($args[0])) { + array_shift($args); + } + call_user_func_array($progress, $args); + }; + } + + if (!empty($options['debug'])) { + $conf[CURLOPT_STDERR] = \GuzzleHttp\debug_resource($options['debug']); + $conf[CURLOPT_VERBOSE] = true; + } + } + + /** + * This function ensures that a response was set on a transaction. If one + * was not set, then the request is retried if possible. This error + * typically means you are sending a payload, curl encountered a + * "Connection died, retrying a fresh connect" error, tried to rewind the + * stream, and then encountered a "necessary data rewind wasn't possible" + * error, causing the request to be sent through curl_multi_info_read() + * without an error status. + */ + private static function retryFailedRewind( + callable $handler, + EasyHandle $easy, + array $ctx + ) { + try { + // Only rewind if the body has been read from. + $body = $easy->request->getBody(); + if ($body->tell() > 0) { + $body->rewind(); + } + } catch (\RuntimeException $e) { + $ctx['error'] = 'The connection unexpectedly failed without ' + . 'providing an error. The request would have been retried, ' + . 'but attempting to rewind the request body failed. ' + . 'Exception: ' . $e; + return self::createRejection($easy, $ctx); + } + + // Retry no more than 3 times before giving up. + if (!isset($easy->options['_curl_retries'])) { + $easy->options['_curl_retries'] = 1; + } elseif ($easy->options['_curl_retries'] == 2) { + $ctx['error'] = 'The cURL request was retried 3 times ' + . 'and did not succeed. The most likely reason for the failure ' + . 'is that cURL was unable to rewind the body of the request ' + . 'and subsequent retries resulted in the same error. Turn on ' + . 'the debug option to see what went wrong. See ' + . 'https://bugs.php.net/bug.php?id=47204 for more information.'; + return self::createRejection($easy, $ctx); + } else { + $easy->options['_curl_retries']++; + } + + return $handler($easy->request, $easy->options); + } + + private function createHeaderFn(EasyHandle $easy) + { + if (!isset($easy->options['on_headers'])) { + $onHeaders = null; + } elseif (!is_callable($easy->options['on_headers'])) { + throw new \InvalidArgumentException('on_headers must be callable'); + } else { + $onHeaders = $easy->options['on_headers']; + } + + return function ($ch, $h) use ( + $onHeaders, + $easy, + &$startingResponse + ) { + $value = trim($h); + if ($value === '') { + $startingResponse = true; + $easy->createResponse(); + if ($onHeaders) { + try { + $onHeaders($easy->response); + } catch (\Exception $e) { + // Associate the exception with the handle and trigger + // a curl header write error by returning 0. + $easy->onHeadersException = $e; + return -1; + } + } + } elseif ($startingResponse) { + $startingResponse = false; + $easy->headers = [$value]; + } else { + $easy->headers[] = $value; + } + return strlen($h); + }; + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Handler/CurlFactoryInterface.php b/lib/aws-sdk/GuzzleHttp/Handler/CurlFactoryInterface.php new file mode 100644 index 0000000..b0fc236 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Handler/CurlFactoryInterface.php @@ -0,0 +1,27 @@ +factory = isset($options['handle_factory']) + ? $options['handle_factory'] + : new CurlFactory(3); + } + + public function __invoke(RequestInterface $request, array $options) + { + if (isset($options['delay'])) { + usleep($options['delay'] * 1000); + } + + $easy = $this->factory->create($request, $options); + curl_exec($easy->handle); + $easy->errno = curl_errno($easy->handle); + + return CurlFactory::finish($this, $easy, $this->factory); + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Handler/CurlMultiHandler.php b/lib/aws-sdk/GuzzleHttp/Handler/CurlMultiHandler.php new file mode 100644 index 0000000..417850b --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Handler/CurlMultiHandler.php @@ -0,0 +1,197 @@ +factory = isset($options['handle_factory']) + ? $options['handle_factory'] : new CurlFactory(50); + $this->selectTimeout = isset($options['select_timeout']) + ? $options['select_timeout'] : 1; + } + + public function __get($name) + { + if ($name === '_mh') { + return $this->_mh = curl_multi_init(); + } + + throw new \BadMethodCallException(); + } + + public function __destruct() + { + if (isset($this->_mh)) { + curl_multi_close($this->_mh); + unset($this->_mh); + } + } + + public function __invoke(RequestInterface $request, array $options) + { + $easy = $this->factory->create($request, $options); + $id = (int) $easy->handle; + + $promise = new Promise( + [$this, 'execute'], + function () use ($id) { return $this->cancel($id); } + ); + + $this->addRequest(['easy' => $easy, 'deferred' => $promise]); + + return $promise; + } + + /** + * Ticks the curl event loop. + */ + public function tick() + { + // Add any delayed handles if needed. + if ($this->delays) { + $currentTime = microtime(true); + foreach ($this->delays as $id => $delay) { + if ($currentTime >= $delay) { + unset($this->delays[$id]); + curl_multi_add_handle( + $this->_mh, + $this->handles[$id]['easy']->handle + ); + } + } + } + + // Step through the task queue which may add additional requests. + P\queue()->run(); + + if ($this->active && + curl_multi_select($this->_mh, $this->selectTimeout) === -1 + ) { + // Perform a usleep if a select returns -1. + // See: https://bugs.php.net/bug.php?id=61141 + usleep(250); + } + + while (curl_multi_exec($this->_mh, $this->active) === CURLM_CALL_MULTI_PERFORM); + + $this->processMessages(); + } + + /** + * Runs until all outstanding connections have completed. + */ + public function execute() + { + $queue = P\queue(); + + while ($this->handles || !$queue->isEmpty()) { + // If there are no transfers, then sleep for the next delay + if (!$this->active && $this->delays) { + usleep($this->timeToNext()); + } + $this->tick(); + } + } + + private function addRequest(array $entry) + { + $easy = $entry['easy']; + $id = (int) $easy->handle; + $this->handles[$id] = $entry; + if (empty($easy->options['delay'])) { + curl_multi_add_handle($this->_mh, $easy->handle); + } else { + $this->delays[$id] = microtime(true) + ($easy->options['delay'] / 1000); + } + } + + /** + * Cancels a handle from sending and removes references to it. + * + * @param int $id Handle ID to cancel and remove. + * + * @return bool True on success, false on failure. + */ + private function cancel($id) + { + // Cannot cancel if it has been processed. + if (!isset($this->handles[$id])) { + return false; + } + + $handle = $this->handles[$id]['easy']->handle; + unset($this->delays[$id], $this->handles[$id]); + curl_multi_remove_handle($this->_mh, $handle); + curl_close($handle); + + return true; + } + + private function processMessages() + { + while ($done = curl_multi_info_read($this->_mh)) { + $id = (int) $done['handle']; + curl_multi_remove_handle($this->_mh, $done['handle']); + + if (!isset($this->handles[$id])) { + // Probably was cancelled. + continue; + } + + $entry = $this->handles[$id]; + unset($this->handles[$id], $this->delays[$id]); + $entry['easy']->errno = $done['result']; + $entry['deferred']->resolve( + CurlFactory::finish( + $this, + $entry['easy'], + $this->factory + ) + ); + } + } + + private function timeToNext() + { + $currentTime = microtime(true); + $nextTime = PHP_INT_MAX; + foreach ($this->delays as $time) { + if ($time < $nextTime) { + $nextTime = $time; + } + } + + return max(0, $currentTime - $nextTime); + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Handler/EasyHandle.php b/lib/aws-sdk/GuzzleHttp/Handler/EasyHandle.php new file mode 100644 index 0000000..b70ca81 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Handler/EasyHandle.php @@ -0,0 +1,71 @@ +headers)) { + throw new \RuntimeException('No headers have been received'); + } + + // HTTP-version SP status-code SP reason-phrase + $startLine = explode(' ', array_shift($this->headers), 3); + + // Attach a response to the easy handle with the parsed headers. + $this->response = new Response( + $startLine[1], + \GuzzleHttp\headers_from_lines($this->headers), + $this->sink, + substr($startLine[0], 5), + isset($startLine[2]) ? (int) $startLine[2] : null + ); + } + + public function __get($name) + { + $msg = $name === 'handle' + ? 'The EasyHandle has been released' + : 'Invalid property: ' . $name; + throw new \BadMethodCallException($msg); + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Handler/MockHandler.php b/lib/aws-sdk/GuzzleHttp/Handler/MockHandler.php new file mode 100644 index 0000000..0d5fe94 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Handler/MockHandler.php @@ -0,0 +1,133 @@ +onFulfilled = $onFulfilled; + $this->onRejected = $onRejected; + + if ($queue) { + call_user_func_array([$this, 'append'], $queue); + } + } + + public function __invoke(RequestInterface $request, array $options) + { + if (!$this->queue) { + throw new \OutOfBoundsException('Mock queue is empty'); + } + + if (isset($options['delay'])) { + usleep($options['delay'] * 1000); + } + + $this->lastRequest = $request; + $this->lastOptions = $options; + $response = array_shift($this->queue); + + if (is_callable($response)) { + $response = $response($request, $options); + } + + $response = $response instanceof \Exception + ? new RejectedPromise($response) + : \GuzzleHttp\Promise\promise_for($response); + + if (!$this->onFulfilled && !$this->onRejected) { + return $response; + } + + return $response->then( + function ($value) { + if ($this->onFulfilled) { + call_user_func($this->onFulfilled, $value); + } + return $value; + }, + function ($reason) { + if ($this->onRejected) { + call_user_func($this->onRejected, $reason); + } + return new RejectedPromise($reason); + } + ); + } + + /** + * Adds one or more variadic requests, exceptions, callables, or promises + * to the queue. + */ + public function append() + { + foreach (func_get_args() as $value) { + if ($value instanceof ResponseInterface + || $value instanceof \Exception + || $value instanceof PromiseInterface + || is_callable($value) + ) { + $this->queue[] = $value; + } else { + throw new \InvalidArgumentException('Expected a response or ' + . 'exception. Found ' . \GuzzleHttp\describe_type($value)); + } + } + } + + /** + * Get the last received request. + * + * @return RequestInterface + */ + public function getLastRequest() + { + return $this->lastRequest; + } + + /** + * Get the last received request options. + * + * @return RequestInterface + */ + public function getLastOptions() + { + return $this->lastOptions; + } + + /** + * Returns the number of remaining items in the queue. + * + * @return int + */ + public function count() + { + return count($this->queue); + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Handler/Proxy.php b/lib/aws-sdk/GuzzleHttp/Handler/Proxy.php new file mode 100644 index 0000000..9bd76d2 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Handler/Proxy.php @@ -0,0 +1,54 @@ +withoutHeader('Expect'); + $stream = $this->createStream($request, $options); + return $this->createResponse($request, $options, $stream); + } catch (\InvalidArgumentException $e) { + throw $e; + } catch (\Exception $e) { + // Determine if the error was a networking error. + $message = $e->getMessage(); + // This list can probably get more comprehensive. + if (strpos($message, 'getaddrinfo') // DNS lookup failed + || strpos($message, 'Connection refused') + ) { + $e = new ConnectException($e->getMessage(), $request, $e); + } + return new RejectedPromise( + RequestException::wrapException($request, $e) + ); + } + } + + private function createResponse( + RequestInterface $request, + array $options, + $stream + ) { + $hdrs = $this->lastHeaders; + $this->lastHeaders = []; + $parts = explode(' ', array_shift($hdrs), 3); + $ver = explode('/', $parts[0])[1]; + $status = $parts[1]; + $reason = isset($parts[2]) ? $parts[2] : null; + $headers = \GuzzleHttp\headers_from_lines($hdrs); + $stream = Psr7\stream_for($this->checkDecode($options, $headers, $stream)); + $sink = $this->createSink($stream, $options); + $response = new Psr7\Response($status, $headers, $sink, $ver, $reason); + + if (isset($options['on_headers'])) { + try { + $options['on_headers']($response); + } catch (\Exception $e) { + $msg = 'An error was encountered during the on_headers event'; + $ex = new RequestException($msg, $request, $response, $e); + return new RejectedPromise($ex); + } + } + + if ($sink !== $stream) { + $this->drain($stream, $sink); + } + + return new FulfilledPromise($response); + } + + private function createSink(StreamInterface $stream, array $options) + { + if (!empty($options['stream'])) { + return $stream; + } + + $sink = isset($options['sink']) + ? $options['sink'] + : fopen('php://temp', 'r+'); + + return is_string($sink) + ? new Psr7\Stream(Psr7\try_fopen($sink, 'r+')) + : Psr7\stream_for($sink); + } + + private function checkDecode(array $options, array $headers, $stream) + { + // Automatically decode responses when instructed. + if (!empty($options['decode_content'])) { + foreach ($headers as $key => $value) { + if (strtolower($key) == 'content-encoding') { + if ($value[0] == 'gzip' || $value[0] == 'deflate') { + return new Psr7\InflateStream( + Psr7\stream_for($stream) + ); + } + } + } + } + + return $stream; + } + + /** + * Drains the source stream into the "sink" client option. + * + * @param StreamInterface $source + * @param StreamInterface $sink + * + * @return StreamInterface + * @throws \RuntimeException when the sink option is invalid. + */ + private function drain(StreamInterface $source, StreamInterface $sink) + { + Psr7\copy_to_stream($source, $sink); + $sink->seek(0); + $source->close(); + + return $sink; + } + + /** + * Create a resource and check to ensure it was created successfully + * + * @param callable $callback Callable that returns stream resource + * + * @return resource + * @throws \RuntimeException on error + */ + private function createResource(callable $callback) + { + $errors = null; + set_error_handler(function ($_, $msg, $file, $line) use (&$errors) { + $errors[] = [ + 'message' => $msg, + 'file' => $file, + 'line' => $line + ]; + return true; + }); + + $resource = $callback(); + restore_error_handler(); + + if (!$resource) { + $message = 'Error creating resource: '; + foreach ($errors as $err) { + foreach ($err as $key => $value) { + $message .= "[$key] $value" . PHP_EOL; + } + } + throw new \RuntimeException(trim($message)); + } + + return $resource; + } + + private function createStream(RequestInterface $request, array $options) + { + static $methods; + if (!$methods) { + $methods = array_flip(get_class_methods(__CLASS__)); + } + + // HTTP/1.1 streams using the PHP stream wrapper require a + // Connection: close header + if ($request->getProtocolVersion() == '1.1' + && !$request->hasHeader('Connection') + ) { + $request = $request->withHeader('Connection', 'close'); + } + + // Ensure SSL is verified by default + if (!isset($options['verify'])) { + $options['verify'] = true; + } + + $params = []; + $context = $this->getDefaultContext($request, $options); + + if (isset($options['on_headers']) && !is_callable($options['on_headers'])) { + throw new \InvalidArgumentException('on_headers must be callable'); + } + + if (!empty($options)) { + foreach ($options as $key => $value) { + $method = "add_{$key}"; + if (isset($methods[$method])) { + $this->{$method}($request, $context, $value, $params); + } + } + } + + if (isset($options['stream_context'])) { + if (!is_array($options['stream_context'])) { + throw new \InvalidArgumentException('stream_context must be an array'); + } + $context = array_replace_recursive( + $context, + $options['stream_context'] + ); + } + + $context = $this->createResource( + function () use ($context, $params) { + return stream_context_create($context, $params); + } + ); + + return $this->createResource( + function () use ($request, &$http_response_header, $context) { + $resource = fopen($request->getUri(), 'r', null, $context); + $this->lastHeaders = $http_response_header; + return $resource; + } + ); + } + + private function getDefaultContext(RequestInterface $request) + { + $headers = ''; + foreach ($request->getHeaders() as $name => $value) { + foreach ($value as $val) { + $headers .= "$name: $val\r\n"; + } + } + + $context = [ + 'http' => [ + 'method' => $request->getMethod(), + 'header' => $headers, + 'protocol_version' => $request->getProtocolVersion(), + 'ignore_errors' => true, + 'follow_location' => 0, + ], + ]; + + $body = (string) $request->getBody(); + + if (!empty($body)) { + $context['http']['content'] = $body; + // Prevent the HTTP handler from adding a Content-Type header. + if (!$request->hasHeader('Content-Type')) { + $context['http']['header'] .= "Content-Type:\r\n"; + } + } + + $context['http']['header'] = rtrim($context['http']['header']); + + return $context; + } + + private function add_proxy(RequestInterface $request, &$options, $value, &$params) + { + if (!is_array($value)) { + $options['http']['proxy'] = $value; + } else { + $scheme = $request->getUri()->getScheme(); + if (isset($value[$scheme])) { + $options['http']['proxy'] = $value[$scheme]; + } + } + } + + private function add_timeout(RequestInterface $request, &$options, $value, &$params) + { + $options['http']['timeout'] = $value; + } + + private function add_verify(RequestInterface $request, &$options, $value, &$params) + { + if ($value === true) { + // PHP 5.6 or greater will find the system cert by default. When + // < 5.6, use the Guzzle bundled cacert. + if (PHP_VERSION_ID < 50600) { + $options['ssl']['cafile'] = \GuzzleHttp\default_ca_bundle(); + } + } elseif (is_string($value)) { + $options['ssl']['cafile'] = $value; + if (!file_exists($value)) { + throw new \RuntimeException("SSL CA bundle not found: $value"); + } + } elseif ($value === false) { + $options['ssl']['verify_peer'] = false; + return; + } else { + throw new \InvalidArgumentException('Invalid verify request option'); + } + + $options['ssl']['verify_peer'] = true; + $options['ssl']['allow_self_signed'] = false; + } + + private function add_cert(RequestInterface $request, &$options, $value, &$params) + { + if (is_array($value)) { + $options['ssl']['passphrase'] = $value[1]; + $value = $value[0]; + } + + if (!file_exists($value)) { + throw new \RuntimeException("SSL certificate not found: {$value}"); + } + + $options['ssl']['local_cert'] = $value; + } + + private function add_progress(RequestInterface $request, &$options, $value, &$params) + { + $this->addNotification( + $params, + function ($code, $a, $b, $c, $transferred, $total) use ($value) { + if ($code == STREAM_NOTIFY_PROGRESS) { + $value($total, $transferred, null, null); + } + } + ); + } + + private function add_debug(RequestInterface $request, &$options, $value, &$params) + { + if ($value === false) { + return; + } + + static $map = [ + STREAM_NOTIFY_CONNECT => 'CONNECT', + STREAM_NOTIFY_AUTH_REQUIRED => 'AUTH_REQUIRED', + STREAM_NOTIFY_AUTH_RESULT => 'AUTH_RESULT', + STREAM_NOTIFY_MIME_TYPE_IS => 'MIME_TYPE_IS', + STREAM_NOTIFY_FILE_SIZE_IS => 'FILE_SIZE_IS', + STREAM_NOTIFY_REDIRECTED => 'REDIRECTED', + STREAM_NOTIFY_PROGRESS => 'PROGRESS', + STREAM_NOTIFY_FAILURE => 'FAILURE', + STREAM_NOTIFY_COMPLETED => 'COMPLETED', + STREAM_NOTIFY_RESOLVE => 'RESOLVE', + ]; + static $args = ['severity', 'message', 'message_code', + 'bytes_transferred', 'bytes_max']; + + $value = \GuzzleHttp\debug_resource($value); + $ident = $request->getMethod() . ' ' . $request->getUri(); + $this->addNotification( + $params, + function () use ($ident, $value, $map, $args) { + $passed = func_get_args(); + $code = array_shift($passed); + fprintf($value, '<%s> [%s] ', $ident, $map[$code]); + foreach (array_filter($passed) as $i => $v) { + fwrite($value, $args[$i] . ': "' . $v . '" '); + } + fwrite($value, "\n"); + } + ); + } + + private function addNotification(array &$params, callable $notify) + { + // Wrap the existing function if needed. + if (!isset($params['notification'])) { + $params['notification'] = $notify; + } else { + $params['notification'] = $this->callArray([ + $params['notification'], + $notify + ]); + } + } + + private function callArray(array $functions) + { + return function () use ($functions) { + $args = func_get_args(); + foreach ($functions as $fn) { + call_user_func_array($fn, $args); + } + }; + } +} diff --git a/lib/aws-sdk/GuzzleHttp/HandlerStack.php b/lib/aws-sdk/GuzzleHttp/HandlerStack.php new file mode 100644 index 0000000..3dcb2c2 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/HandlerStack.php @@ -0,0 +1,272 @@ +push(Middleware::cookies(), 'cookies'); + $stack->push(Middleware::redirect(), 'allow_redirects'); + $stack->push(Middleware::httpErrors(), 'http_errors'); + $stack->push(Middleware::prepareBody(), 'prepare_body'); + + return $stack; + } + + /** + * @param callable $handler Underlying HTTP handler. + */ + public function __construct(callable $handler = null) + { + $this->handler = $handler; + } + + /** + * Invokes the handler stack as a composed handler + * + * @param RequestInterface $request + * @param array $options + */ + public function __invoke(RequestInterface $request, array $options) + { + if (!$this->cached) { + $this->cached = $this->resolve(); + } + + $handler = $this->cached; + return $handler($request, $options); + } + + /** + * Dumps a string representation of the stack. + * + * @return string + */ + public function __toString() + { + $depth = 0; + $stack = []; + if ($this->handler) { + $stack[] = "0) Handler: " . $this->debugCallable($this->handler); + } + + $result = ''; + foreach (array_reverse($this->stack) as $tuple) { + $depth++; + $str = "{$depth}) Name: '{$tuple[1]}', "; + $str .= "Function: " . $this->debugCallable($tuple[0]); + $result = "> {$str}\n{$result}"; + $stack[] = $str; + } + + foreach (array_keys($stack) as $k) { + $result .= "< {$stack[$k]}\n"; + } + + return $result; + } + + /** + * Set the HTTP handler that actually returns a promise. + * + * @param callable $handler Accepts a request and array of options and + * returns a Promise. + */ + public function setHandler(callable $handler) + { + $this->handler = $handler; + $this->cached = null; + } + + /** + * Returns true if the builder has a handler. + * + * @return bool + */ + public function hasHandler() + { + return (bool) $this->handler; + } + + /** + * Unshift a middleware to the bottom of the stack. + * + * @param callable $middleware Middleware function + * @param string $name Name to register for this middleware. + */ + public function unshift(callable $middleware, $name = null) + { + array_unshift($this->stack, [$middleware, $name]); + $this->cached = null; + } + + /** + * Push a middleware to the top of the stack. + * + * @param callable $middleware Middleware function + * @param string $name Name to register for this middleware. + */ + public function push(callable $middleware, $name = '') + { + $this->stack[] = [$middleware, $name]; + $this->cached = null; + } + + /** + * Add a middleware before another middleware by name. + * + * @param string $findName Middleware to find + * @param callable $middleware Middleware function + * @param string $withName Name to register for this middleware. + */ + public function before($findName, callable $middleware, $withName = '') + { + $this->splice($findName, $withName, $middleware, true); + } + + /** + * Add a middleware after another middleware by name. + * + * @param string $findName Middleware to find + * @param callable $middleware Middleware function + * @param string $withName Name to register for this middleware. + */ + public function after($findName, callable $middleware, $withName = '') + { + $this->splice($findName, $withName, $middleware, false); + } + + /** + * Remove a middleware by instance or name from the stack. + * + * @param callable|string $remove Middleware to remove by instance or name. + */ + public function remove($remove) + { + $this->cached = null; + $idx = is_callable($remove) ? 0 : 1; + $this->stack = array_values(array_filter( + $this->stack, + function ($tuple) use ($idx, $remove) { + return $tuple[$idx] !== $remove; + } + )); + } + + /** + * Compose the middleware and handler into a single callable function. + * + * @return callable + */ + public function resolve() + { + if (!($prev = $this->handler)) { + throw new \LogicException('No handler has been specified'); + } + + foreach (array_reverse($this->stack) as $fn) { + $prev = $fn[0]($prev); + } + + return $prev; + } + + /** + * @param $name + * @return int + */ + private function findByName($name) + { + foreach ($this->stack as $k => $v) { + if ($v[1] === $name) { + return $k; + } + } + + throw new \InvalidArgumentException("Middleware not found: $name"); + } + + /** + * Splices a function into the middleware list at a specific position. + * + * @param $findName + * @param $withName + * @param callable $middleware + * @param $before + */ + private function splice($findName, $withName, callable $middleware, $before) + { + $this->cached = null; + $idx = $this->findByName($findName); + $tuple = [$middleware, $withName]; + + if ($before) { + if ($idx === 0) { + array_unshift($this->stack, $tuple); + } else { + $replacement = [$tuple, $this->stack[$idx]]; + array_splice($this->stack, $idx, 1, $replacement); + } + } elseif ($idx === count($this->stack) - 1) { + $this->stack[] = $tuple; + } else { + $replacement = [$this->stack[$idx], $tuple]; + array_splice($this->stack, $idx, 1, $replacement); + } + } + + /** + * Provides a debug string for a given callable. + * + * @param array|callable $fn Function to write as a string. + * + * @return string + */ + private function debugCallable($fn) + { + if (is_string($fn)) { + return "callable({$fn})"; + } + + if (is_array($fn)) { + return is_string($fn[0]) + ? "callable({$fn[0]}::{$fn[1]})" + : "callable(['" . get_class($fn[0]) . "', '{$fn[1]}'])"; + } + + return 'callable(' . spl_object_hash($fn) . ')'; + } +} diff --git a/lib/aws-sdk/GuzzleHttp/MessageFormatter.php b/lib/aws-sdk/GuzzleHttp/MessageFormatter.php new file mode 100644 index 0000000..80876cb --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/MessageFormatter.php @@ -0,0 +1,176 @@ +>>>>>>>\n{request}\n<<<<<<<<\n{response}\n--------\n{error}"; + const SHORT = '[{ts}] "{method} {target} HTTP/{version}" {code}'; + + /** @var string Template used to format log messages */ + private $template; + + /** + * @param string $template Log message template + */ + public function __construct($template = self::CLF) + { + $this->template = $template ?: self::CLF; + } + + /** + * Returns a formatted message string. + * + * @param RequestInterface $request Request that was sent + * @param ResponseInterface $response Response that was received + * @param \Exception $error Exception that was received + * + * @return string + */ + public function format( + RequestInterface $request, + ResponseInterface $response = null, + \Exception $error = null + ) { + $cache = []; + + return preg_replace_callback( + '/{\s*([A-Za-z_\-\.0-9]+)\s*}/', + function (array $matches) use ($request, $response, $error, &$cache) { + + if (isset($cache[$matches[1]])) { + return $cache[$matches[1]]; + } + + $result = ''; + switch ($matches[1]) { + case 'request': + $result = Psr7\str($request); + break; + case 'response': + $result = $response ? Psr7\str($response) : ''; + break; + case 'req_headers': + $result = trim($request->getMethod() + . ' ' . $request->getRequestTarget()) + . ' HTTP/' . $request->getProtocolVersion() . "\r\n" + . $this->headers($request); + break; + case 'res_headers': + $result = $response ? + sprintf( + 'HTTP/%s %d %s', + $response->getProtocolVersion(), + $response->getStatusCode(), + $response->getReasonPhrase() + ) . "\r\n" . $this->headers($response) + : 'NULL'; + break; + case 'req_body': + $result = $request->getBody(); + break; + case 'res_body': + $result = $response ? $response->getBody() : 'NULL'; + break; + case 'ts': + $result = gmdate('c'); + break; + case 'method': + $result = $request->getMethod(); + break; + case 'version': + $result = $request->getProtocolVersion(); + break; + case 'uri': + case 'url': + $result = $request->getUri(); + break; + case 'target': + $result = $request->getRequestTarget(); + break; + case 'req_version': + $result = $request->getProtocolVersion(); + break; + case 'res_version': + $result = $response + ? $response->getProtocolVersion() + : 'NULL'; + break; + case 'host': + $result = $request->getHeaderLine('Host'); + break; + case 'hostname': + $result = gethostname(); + break; + case 'code': + $result = $response ? $response->getStatusCode() : 'NULL'; + break; + case 'phrase': + $result = $response ? $response->getReasonPhrase() : 'NULL'; + break; + case 'error': + $result = $error ? $error->getMessage() : 'NULL'; + break; + default: + // handle prefixed dynamic headers + if (strpos($matches[1], 'req_header_') === 0) { + $result = $request->getHeaderLine(substr($matches[1], 11)); + } elseif (strpos($matches[1], 'res_header_') === 0) { + $result = $response + ? $response->getHeaderLine(substr($matches[1], 11)) + : 'NULL'; + } + } + + $cache[$matches[1]] = $result; + return $result; + }, + $this->template + ); + } + + private function headers(MessageInterface $message) + { + $result = ''; + foreach ($message->getHeaders() as $name => $values) { + $result .= $name . ': ' . implode(', ', $values) . "\r\n"; + } + + return trim($result); + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Middleware.php b/lib/aws-sdk/GuzzleHttp/Middleware.php new file mode 100644 index 0000000..8b5a5ee --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Middleware.php @@ -0,0 +1,251 @@ +withCookieHeader($request); + return $handler($request, $options) + ->then(function ($response) use ($cookieJar, $request) { + $cookieJar->extractCookies($request, $response); + return $response; + } + ); + }; + }; + } + + /** + * Middleware that throws exceptions for 4xx or 5xx responses when the + * "http_error" request option is set to true. + * + * @return callable Returns a function that accepts the next handler. + */ + public static function httpErrors() + { + return function (callable $handler) { + return function ($request, array $options) use ($handler) { + if (empty($options['http_errors'])) { + return $handler($request, $options); + } + return $handler($request, $options)->then( + function (ResponseInterface $response) use ($request, $handler) { + $code = $response->getStatusCode(); + if ($code < 400) { + return $response; + } + throw $code > 499 + ? new ServerException("Server error: $code", $request, $response) + : new ClientException("Client error: $code", $request, $response); + } + ); + }; + }; + } + + /** + * Middleware that pushes history data to an ArrayAccess container. + * + * @param array $container Container to hold the history (by reference). + * + * @return callable Returns a function that accepts the next handler. + */ + public static function history(array &$container) + { + return function (callable $handler) use (&$container) { + return function ($request, array $options) use ($handler, &$container) { + return $handler($request, $options)->then( + function ($value) use ($request, &$container, $options) { + $container[] = [ + 'request' => $request, + 'response' => $value, + 'error' => null, + 'options' => $options + ]; + return $value; + }, + function ($reason) use ($request, &$container, $options) { + $container[] = [ + 'request' => $request, + 'response' => null, + 'error' => $reason, + 'options' => $options + ]; + return new RejectedPromise($reason); + } + ); + }; + }; + } + + /** + * Middleware that invokes a callback before and after sending a request. + * + * The provided listener cannot modify or alter the response. It simply + * "taps" into the chain to be notified before returning the promise. The + * before listener accepts a request and options array, and the after + * listener accepts a request, options array, and response promise. + * + * @param callable $before Function to invoke before forwarding the request. + * @param callable $after Function invoked after forwarding. + * + * @return callable Returns a function that accepts the next handler. + */ + public static function tap(callable $before = null, callable $after = null) + { + return function (callable $handler) use ($before, $after) { + return function ($request, array $options) use ($handler, $before, $after) { + if ($before) { + $before($request, $options); + } + $response = $handler($request, $options); + if ($after) { + $after($request, $options, $response); + } + return $response; + }; + }; + } + + /** + * Middleware that handles request redirects. + * + * @return callable Returns a function that accepts the next handler. + */ + public static function redirect() + { + return function (callable $handler) { + return new RedirectMiddleware($handler); + }; + } + + /** + * Middleware that retries requests based on the boolean result of + * invoking the provided "decider" function. + * + * If no delay function is provided, a simple implementation of exponential + * backoff will be utilized. + * + * @param callable $decider Function that accepts the number of retries, + * a request, [response], and [exception] and + * returns true if the request is to be retried. + * @param callable $delay Function that accepts the number of retries and + * returns the number of milliseconds to delay. + * + * @return callable Returns a function that accepts the next handler. + */ + public static function retry(callable $decider, callable $delay = null) + { + return function (callable $handler) use ($decider, $delay) { + return new RetryMiddleware($decider, $handler, $delay); + }; + } + + /** + * Middleware that logs requests, responses, and errors using a message + * formatter. + * + * @param LoggerInterface $logger Logs messages. + * @param MessageFormatter $formatter Formatter used to create message strings. + * + * @return callable Returns a function that accepts the next handler. + */ + public static function log(LoggerInterface $logger, MessageFormatter $formatter) + { + return function (callable $handler) use ($logger, $formatter) { + return function ($request, array $options) use ($handler, $logger, $formatter) { + return $handler($request, $options)->then( + function ($response) use ($logger, $request, $formatter) { + $message = $formatter->format($request, $response); + $logger->info($message); + return $response; + }, + function ($reason) use ($logger, $request, $formatter) { + $response = $reason instanceof RequestException + ? $reason->getResponse() + : null; + $message = $formatter->format($request, $response, $reason); + $logger->notice($message); + return \GuzzleHttp\Promise\rejection_for($reason); + } + ); + }; + }; + } + + /** + * This middleware adds a default content-type if possible, a default + * content-length or transfer-encoding header, and the expect header. + * + * @return callable + */ + public static function prepareBody() + { + return function (callable $handler) { + return new PrepareBodyMiddleware($handler); + }; + } + + /** + * Middleware that applies a map function to the request before passing to + * the next handler. + * + * @param callable $fn Function that accepts a RequestInterface and returns + * a RequestInterface. + * @return callable + */ + public static function mapRequest(callable $fn) + { + return function (callable $handler) use ($fn) { + return function ($request, array $options) use ($handler, $fn) { + return $handler($fn($request), $options); + }; + }; + } + + /** + * Middleware that applies a map function to the resolved promise's + * response. + * + * @param callable $fn Function that accepts a ResponseInterface and + * returns a ResponseInterface. + * @return callable + */ + public static function mapResponse(callable $fn) + { + return function (callable $handler) use ($fn) { + return function ($request, array $options) use ($handler, $fn) { + return $handler($request, $options)->then($fn); + }; + }; + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Pool.php b/lib/aws-sdk/GuzzleHttp/Pool.php new file mode 100644 index 0000000..bc41d6e --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Pool.php @@ -0,0 +1,123 @@ +sendAsync($rfn, $opts); + } elseif (is_callable($rfn)) { + yield $rfn($opts); + } else { + throw new \InvalidArgumentException('Each value yielded by ' + . 'the iterator must be a Psr7\Http\Message\RequestInterface ' + . 'or a callable that returns a promise that fulfills ' + . 'with a Psr7\Message\Http\ResponseInterface object.'); + } + } + }; + + $this->each = new EachPromise($requests(), $config); + } + + public function promise() + { + return $this->each->promise(); + } + + /** + * Sends multiple requests concurrently and returns an array of responses + * and exceptions that uses the same ordering as the provided requests. + * + * IMPORTANT: This method keeps every request and response in memory, and + * as such, is NOT recommended when sending a large number or an + * indeterminate number of requests concurrently. + * + * @param ClientInterface $client Client used to send the requests + * @param array|\Iterator $requests Requests to send concurrently. + * @param array $options Passes through the options available in + * {@see GuzzleHttp\Pool::__construct} + * + * @return array Returns an array containing the response or an exception + * in the same order that the requests were sent. + * @throws \InvalidArgumentException if the event format is incorrect. + */ + public static function batch( + ClientInterface $client, + $requests, + array $options = [] + ) { + $res = []; + self::cmpCallback($options, 'fulfilled', $res); + self::cmpCallback($options, 'rejected', $res); + $pool = new static($client, $requests, $options); + $pool->promise()->wait(); + ksort($res); + + return $res; + } + + private static function cmpCallback(array &$options, $name, array &$results) + { + if (!isset($options[$name])) { + $options[$name] = function ($v, $k) use (&$results) { + $results[$k] = $v; + }; + } else { + $currentFn = $options[$name]; + $options[$name] = function ($v, $k) use (&$results, $currentFn) { + $currentFn($v, $k); + $results[$k] = $v; + }; + } + } +} diff --git a/lib/aws-sdk/GuzzleHttp/PrepareBodyMiddleware.php b/lib/aws-sdk/GuzzleHttp/PrepareBodyMiddleware.php new file mode 100644 index 0000000..e6d176b --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/PrepareBodyMiddleware.php @@ -0,0 +1,112 @@ + true, 'HEAD' => true]; + + /** + * @param callable $nextHandler Next handler to invoke. + */ + public function __construct(callable $nextHandler) + { + $this->nextHandler = $nextHandler; + } + + /** + * @param RequestInterface $request + * @param array $options + * + * @return PromiseInterface + */ + public function __invoke(RequestInterface $request, array $options) + { + $fn = $this->nextHandler; + + // Don't do anything if the request has no body. + if (isset(self::$skipMethods[$request->getMethod()]) + || $request->getBody()->getSize() === 0 + ) { + return $fn($request, $options); + } + + $modify = []; + + // Add a default content-type if possible. + if (!$request->hasHeader('Content-Type')) { + if ($uri = $request->getBody()->getMetadata('uri')) { + if ($type = Psr7\mimetype_from_filename($uri)) { + $modify['set_headers']['Content-Type'] = $type; + } + } + } + + // Add a default content-length or transfer-encoding header. + if (!isset(self::$skipMethods[$request->getMethod()]) + && !$request->hasHeader('Content-Length') + && !$request->hasHeader('Transfer-Encoding') + ) { + $size = $request->getBody()->getSize(); + if ($size !== null) { + $modify['set_headers']['Content-Length'] = $size; + } else { + $modify['set_headers']['Transfer-Encoding'] = 'chunked'; + } + } + + // Add the expect header if needed. + $this->addExpectHeader($request, $options, $modify); + + return $fn(Psr7\modify_request($request, $modify), $options); + } + + private function addExpectHeader( + RequestInterface $request, + array $options, + array &$modify + ) { + // Determine if the Expect header should be used + if ($request->hasHeader('Expect')) { + return; + } + + $expect = isset($options['expect']) ? $options['expect'] : null; + + // Return if disabled or if you're not using HTTP/1.1 or HTTP/2.0 + if ($expect === false || $request->getProtocolVersion() < 1.1) { + return; + } + + // The expect header is unconditionally enabled + if ($expect === true) { + $modify['set_headers']['Expect'] = '100-Continue'; + return; + } + + // By default, send the expect header when the payload is > 1mb + if ($expect === null) { + $expect = 1048576; + } + + // Always add if the body cannot be rewound, the size cannot be + // determined, or the size is greater than the cutoff threshold + $body = $request->getBody(); + $size = $body->getSize(); + + if ($size === null || $size >= (int) $expect || !$body->isSeekable()) { + $modify['set_headers']['Expect'] = '100-Continue'; + } + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Promise/AggregateException.php b/lib/aws-sdk/GuzzleHttp/Promise/AggregateException.php new file mode 100644 index 0000000..6a5690c --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Promise/AggregateException.php @@ -0,0 +1,16 @@ +iterable = iter_for($iterable); + + if (isset($config['concurrency'])) { + $this->concurrency = $config['concurrency']; + } + + if (isset($config['fulfilled'])) { + $this->onFulfilled = $config['fulfilled']; + } + + if (isset($config['rejected'])) { + $this->onRejected = $config['rejected']; + } + } + + public function promise() + { + if ($this->aggregate) { + return $this->aggregate; + } + + try { + $this->createPromise(); + $this->iterable->rewind(); + $this->refillPending(); + } catch (\Exception $e) { + $this->aggregate->reject($e); + } + + return $this->aggregate; + } + + private function createPromise() + { + $this->aggregate = new Promise(function () { + $this->refillPending(); + reset($this->pending); + // Consume a potentially fluctuating list of promises while + // ensuring that indexes are maintained (precluding array_shift). + while ($promise = current($this->pending)) { + next($this->pending); + $promise->wait(); + if ($this->aggregate->getState() !== PromiseInterface::PENDING) { + return; + } + } + }); + + // Clear the references when the promise is resolved. + $clearFn = function () { + $this->iterable = $this->concurrency = $this->pending = null; + $this->onFulfilled = $this->onRejected = null; + }; + + $this->aggregate->then($clearFn, $clearFn); + } + + private function refillPending() + { + if (!$this->concurrency) { + // Add all pending promises. + while ($this->addPending()); + } else { + // Add only up to N pending promises. + $concurrency = is_callable($this->concurrency) + ? call_user_func($this->concurrency, count($this->pending)) + : $this->concurrency; + $concurrency = max($concurrency - count($this->pending), 0); + while ($concurrency-- && $this->addPending()); + } + } + + private function addPending() + { + if (!$this->iterable || !$this->iterable->valid()) { + return false; + } + + $promise = promise_for($this->iterable->current()); + $idx = $this->iterable->key(); + + try { + $this->iterable->next(); + } catch (\Exception $e) { + $this->aggregate->reject($e); + return false; + } + + $this->pending[$idx] = $promise->then( + function ($value) use ($idx) { + if ($this->onFulfilled) { + call_user_func( + $this->onFulfilled, $value, $idx, $this->aggregate + ); + } + $this->step($idx); + }, + function ($reason) use ($idx) { + if ($this->onRejected) { + call_user_func( + $this->onRejected, $reason, $idx, $this->aggregate + ); + } + $this->step($idx); + } + ); + + return true; + } + + private function checkIfFinished() + { + if (!$this->pending && !$this->iterable->valid()) { + // Resolve the promise if there's nothing left to do. + $this->aggregate->resolve(null); + return true; + } + + return false; + } + + private function step($idx) + { + // If the promise was already resolved, then ignore this step. + if ($this->aggregate->getState() !== PromiseInterface::PENDING) { + return; + } + + unset($this->pending[$idx]); + + if (!$this->checkIfFinished()) { + // Add more pending promises if possible. + $this->refillPending(); + } + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Promise/FulfilledPromise.php b/lib/aws-sdk/GuzzleHttp/Promise/FulfilledPromise.php new file mode 100644 index 0000000..5596296 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Promise/FulfilledPromise.php @@ -0,0 +1,80 @@ +value = $value; + } + + public function then( + callable $onFulfilled = null, + callable $onRejected = null + ) { + // Return itself if there is no onFulfilled function. + if (!$onFulfilled) { + return $this; + } + + $queue = queue(); + $p = new Promise([$queue, 'run']); + $value = $this->value; + $queue->add(static function () use ($p, $value, $onFulfilled) { + if ($p->getState() === self::PENDING) { + try { + $p->resolve($onFulfilled($value)); + } catch (\Exception $e) { + $p->reject($e); + } + } + }); + + return $p; + } + + public function otherwise(callable $onRejected) + { + return $this->then(null, $onRejected); + } + + public function wait($unwrap = true, $defaultDelivery = null) + { + return $unwrap ? $this->value : null; + } + + public function getState() + { + return self::FULFILLED; + } + + public function resolve($value) + { + if ($value !== $this->value) { + throw new \LogicException("Cannot resolve a fulfilled promise"); + } + } + + public function reject($reason) + { + throw new \LogicException("Cannot reject a fulfilled promise"); + } + + public function cancel() + { + // pass + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Promise/Promise.php b/lib/aws-sdk/GuzzleHttp/Promise/Promise.php new file mode 100644 index 0000000..c2cf969 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Promise/Promise.php @@ -0,0 +1,268 @@ +waitFn = $waitFn; + $this->cancelFn = $cancelFn; + } + + public function then( + callable $onFulfilled = null, + callable $onRejected = null + ) { + if ($this->state === self::PENDING) { + $p = new Promise(null, [$this, 'cancel']); + $this->handlers[] = [$p, $onFulfilled, $onRejected]; + $p->waitList = $this->waitList; + $p->waitList[] = $this; + return $p; + } + + // Return a fulfilled promise and immediately invoke any callbacks. + if ($this->state === self::FULFILLED) { + return $onFulfilled + ? promise_for($this->result)->then($onFulfilled) + : promise_for($this->result); + } + + // It's either cancelled or rejected, so return a rejected promise + // and immediately invoke any callbacks. + $rejection = rejection_for($this->result); + return $onRejected ? $rejection->then(null, $onRejected) : $rejection; + } + + public function otherwise(callable $onRejected) + { + return $this->then(null, $onRejected); + } + + public function wait($unwrap = true) + { + $this->waitIfPending(); + + if (!$unwrap) { + return null; + } + + if ($this->result instanceof PromiseInterface) { + return $this->result->wait($unwrap); + } elseif ($this->state === self::FULFILLED) { + return $this->result; + } else { + // It's rejected so "unwrap" and throw an exception. + throw exception_for($this->result); + } + } + + public function getState() + { + return $this->state; + } + + public function cancel() + { + if ($this->state !== self::PENDING) { + return; + } + + $this->waitFn = $this->waitList = null; + + if ($this->cancelFn) { + $fn = $this->cancelFn; + $this->cancelFn = null; + try { + $fn(); + } catch (\Exception $e) { + $this->reject($e); + } + } + + // Reject the promise only if it wasn't rejected in a then callback. + if ($this->state === self::PENDING) { + $this->reject(new CancellationException('Promise has been cancelled')); + } + } + + public function resolve($value) + { + $this->settle(self::FULFILLED, $value); + } + + public function reject($reason) + { + $this->settle(self::REJECTED, $reason); + } + + private function settle($state, $value) + { + if ($this->state !== self::PENDING) { + // Ignore calls with the same resolution. + if ($state === $this->state && $value === $this->result) { + return; + } + throw $this->state === $state + ? new \LogicException("The promise is already {$state}.") + : new \LogicException("Cannot change a {$this->state} promise to {$state}"); + } + + if ($value === $this) { + throw new \LogicException('Cannot fulfill or reject a promise with itself'); + } + + // Clear out the state of the promise but stash the handlers. + $this->state = $state; + $this->result = $value; + $handlers = $this->handlers; + $this->handlers = null; + $this->waitList = $this->waitFn = null; + $this->cancelFn = null; + + if (!$handlers) { + return; + } + + // If the value was not a settled promise or a thenable, then resolve + // it in the task queue using the correct ID. + if (!method_exists($value, 'then')) { + $id = $state === self::FULFILLED ? 1 : 2; + // It's a success, so resolve the handlers in the queue. + queue()->add(static function () use ($id, $value, $handlers) { + foreach ($handlers as $handler) { + self::callHandler($id, $value, $handler); + } + }); + } elseif ($value instanceof Promise + && $value->getState() === self::PENDING + ) { + // We can just merge our handlers onto the next promise. + $value->handlers = array_merge($value->handlers, $handlers); + } else { + // Resolve the handlers when the forwarded promise is resolved. + $value->then( + static function ($value) use ($handlers) { + foreach ($handlers as $handler) { + self::callHandler(1, $value, $handler); + } + }, + static function ($reason) use ($handlers) { + foreach ($handlers as $handler) { + self::callHandler(2, $reason, $handler); + } + } + ); + } + } + + /** + * Call a stack of handlers using a specific callback index and value. + * + * @param int $index 1 (resolve) or 2 (reject). + * @param mixed $value Value to pass to the callback. + * @param array $handler Array of handler data (promise and callbacks). + * + * @return array Returns the next group to resolve. + */ + private static function callHandler($index, $value, array $handler) + { + /** @var PromiseInterface $promise */ + $promise = $handler[0]; + + // The promise may have been cancelled or resolved before placing + // this thunk in the queue. + if ($promise->getState() !== self::PENDING) { + return; + } + + try { + if (isset($handler[$index])) { + $promise->resolve($handler[$index]($value)); + } elseif ($index === 1) { + // Forward resolution values as-is. + $promise->resolve($value); + } else { + // Forward rejections down the chain. + $promise->reject($value); + } + } catch (\Exception $reason) { + $promise->reject($reason); + } + } + + private function waitIfPending() + { + if ($this->state !== self::PENDING) { + return; + } elseif ($this->waitFn) { + $this->invokeWaitFn(); + } elseif ($this->waitList) { + $this->invokeWaitList(); + } else { + // If there's not wait function, then reject the promise. + $this->reject('Cannot wait on a promise that has ' + . 'no internal wait function. You must provide a wait ' + . 'function when constructing the promise to be able to ' + . 'wait on a promise.'); + } + + queue()->run(); + + if ($this->state === self::PENDING) { + $this->reject('Invoking the wait callback did not resolve the promise'); + } + } + + private function invokeWaitFn() + { + try { + $wfn = $this->waitFn; + $this->waitFn = null; + $wfn(true); + } catch (\Exception $reason) { + if ($this->state === self::PENDING) { + // The promise has not been resolved yet, so reject the promise + // with the exception. + $this->reject($reason); + } else { + // The promise was already resolved, so there's a problem in + // the application. + throw $reason; + } + } + } + + private function invokeWaitList() + { + $waitList = $this->waitList; + $this->waitList = null; + + foreach ($waitList as $result) { + descend: + $result->waitIfPending(); + if ($result->result instanceof Promise) { + $result = $result->result; + goto descend; + } + } + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Promise/PromiseInterface.php b/lib/aws-sdk/GuzzleHttp/Promise/PromiseInterface.php new file mode 100644 index 0000000..8f5f4b9 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Promise/PromiseInterface.php @@ -0,0 +1,93 @@ +reason = $reason; + } + + public function then( + callable $onFulfilled = null, + callable $onRejected = null + ) { + // If there's no onRejected callback then just return self. + if (!$onRejected) { + return $this; + } + + $queue = queue(); + $reason = $this->reason; + $p = new Promise([$queue, 'run']); + $queue->add(static function () use ($p, $reason, $onRejected) { + if ($p->getState() === self::PENDING) { + try { + // Return a resolved promise if onRejected does not throw. + $p->resolve($onRejected($reason)); + } catch (\Exception $e) { + // onRejected threw, so return a rejected promise. + $p->reject($e); + } + } + }); + + return $p; + } + + public function otherwise(callable $onRejected) + { + return $this->then(null, $onRejected); + } + + public function wait($unwrap = true, $defaultDelivery = null) + { + if ($unwrap) { + throw exception_for($this->reason); + } + } + + public function getState() + { + return self::REJECTED; + } + + public function resolve($value) + { + throw new \LogicException("Cannot resolve a rejected promise"); + } + + public function reject($reason) + { + if ($reason !== $this->reason) { + throw new \LogicException("Cannot reject a rejected promise"); + } + } + + public function cancel() + { + // pass + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Promise/RejectionException.php b/lib/aws-sdk/GuzzleHttp/Promise/RejectionException.php new file mode 100644 index 0000000..07c1136 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Promise/RejectionException.php @@ -0,0 +1,47 @@ +reason = $reason; + + $message = 'The promise was rejected'; + + if ($description) { + $message .= ' with reason: ' . $description; + } elseif (is_string($reason) + || (is_object($reason) && method_exists($reason, '__toString')) + ) { + $message .= ' with reason: ' . $this->reason; + } elseif ($reason instanceof \JsonSerializable) { + $message .= ' with reason: ' + . json_encode($this->reason, JSON_PRETTY_PRINT); + } + + parent::__construct($message); + } + + /** + * Returns the rejection reason. + * + * @return mixed + */ + public function getReason() + { + return $this->reason; + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Promise/TaskQueue.php b/lib/aws-sdk/GuzzleHttp/Promise/TaskQueue.php new file mode 100644 index 0000000..5026363 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Promise/TaskQueue.php @@ -0,0 +1,79 @@ +run(); + */ +class TaskQueue +{ + private $enableShutdown = true; + private $queue = []; + + public function __construct($withShutdown = true) + { + if ($withShutdown) { + register_shutdown_function(function () { + if ($this->enableShutdown) { + // Only run the tasks if an E_ERROR didn't occur. + $err = error_get_last(); + if (!$err || ($err['type'] ^ E_ERROR)) { + $this->run(); + } + } + }); + } + } + + /** + * Returns true if the queue is empty. + * + * @return bool + */ + public function isEmpty() + { + return !$this->queue; + } + + /** + * Adds a task to the queue that will be executed the next time run is + * called. + * + * @param callable $task + */ + public function add(callable $task) + { + $this->queue[] = $task; + } + + /** + * Execute all of the pending task in the queue. + */ + public function run() + { + while ($task = array_shift($this->queue)) { + $task(); + } + } + + /** + * The task queue will be run and exhausted by default when the process + * exits IFF the exit is not the result of a PHP E_ERROR error. + * + * You can disable running the automatic shutdown of the queue by calling + * this function. If you disable the task queue shutdown process, then you + * MUST either run the task queue (as a result of running your event loop + * or manually using the run() method) or wait on each outstanding promise. + * + * Note: This shutdown will occur before any destructors are triggered. + */ + public function disableShutdown() + { + $this->enableShutdown = false; + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Promise/functions.php b/lib/aws-sdk/GuzzleHttp/Promise/functions.php new file mode 100644 index 0000000..eca27b2 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Promise/functions.php @@ -0,0 +1,500 @@ + + * while ($eventLoop->isRunning()) { + * GuzzleHttp\Promise\queue()->run(); + * } + * + * + * @return TaskQueue + */ +function queue() +{ + static $queue; + + if (!$queue) { + $queue = new TaskQueue(); + } + + return $queue; +} + +/** + * Adds a function to run in the task queue when it is next `run()` and returns + * a promise that is fulfilled or rejected with the result. + * + * @param callable $task Task function to run. + * + * @return PromiseInterface + */ +function task(callable $task) +{ + $queue = queue(); + $promise = new Promise([$queue, 'run']); + $queue->add(function () use ($task, $promise) { + try { + $promise->resolve($task()); + } catch (\Exception $e) { + $promise->reject($e); + } + }); + + return $promise; +} + +/** + * Creates a promise for a value if the value is not a promise. + * + * @param mixed $value Promise or value. + * + * @return PromiseInterface + */ +function promise_for($value) +{ + if ($value instanceof PromiseInterface) { + return $value; + } + + // Return a Guzzle promise that shadows the given promise. + if (method_exists($value, 'then')) { + $wfn = method_exists($value, 'wait') ? [$value, 'wait'] : null; + $cfn = method_exists($value, 'cancel') ? [$value, 'cancel'] : null; + $promise = new Promise($wfn, $cfn); + $value->then([$promise, 'resolve'], [$promise, 'reject']); + return $promise; + } + + return new FulfilledPromise($value); +} + +/** + * Creates a rejected promise for a reason if the reason is not a promise. If + * the provided reason is a promise, then it is returned as-is. + * + * @param mixed $reason Promise or reason. + * + * @return PromiseInterface + */ +function rejection_for($reason) +{ + if ($reason instanceof PromiseInterface) { + return $reason; + } + + return new RejectedPromise($reason); +} + +/** + * Create an exception for a rejected promise value. + * + * @param mixed $reason + * + * @return \Exception + */ +function exception_for($reason) +{ + return $reason instanceof \Exception + ? $reason + : new RejectionException($reason); +} + +/** + * Returns an iterator for the given value. + * + * @param mixed $value + * + * @return \Iterator + */ +function iter_for($value) +{ + if ($value instanceof \Iterator) { + return $value; + } elseif (is_array($value)) { + return new \ArrayIterator($value); + } else { + return new \ArrayIterator([$value]); + } +} + +/** + * Synchronously waits on a promise to resolve and returns an inspection state + * array. + * + * Returns a state associative array containing a "state" key mapping to a + * valid promise state. If the state of the promise is "fulfilled", the array + * will contain a "value" key mapping to the fulfilled value of the promise. If + * the promise is rejected, the array will contain a "reason" key mapping to + * the rejection reason of the promise. + * + * @param PromiseInterface $promise Promise or value. + * + * @return array + */ +function inspect(PromiseInterface $promise) +{ + try { + return [ + 'state' => PromiseInterface::FULFILLED, + 'value' => $promise->wait() + ]; + } catch (RejectionException $e) { + return ['state' => 'rejected', 'reason' => $e->getReason()]; + } catch (\Exception $e) { + return ['state' => 'rejected', 'reason' => $e]; + } +} + +/** + * Waits on all of the provided promises, but does not unwrap rejected promises + * as thrown exception. + * + * Returns an array of inspection state arrays. + * + * @param PromiseInterface[] $promises Traversable of promises to wait upon. + * + * @return array + * @see GuzzleHttp\Promise\inspect for the inspection state array format. + */ +function inspect_all($promises) +{ + $results = []; + foreach ($promises as $key => $promise) { + $results[$key] = inspect($promise); + } + + return $results; +} + +/** + * Waits on all of the provided promises and returns the fulfilled values. + * + * Returns an array that contains the value of each promise (in the same order + * the promises were provided). An exception is thrown if any of the promises + * are rejected. + * + * @param mixed $promises Iterable of PromiseInterface objects to wait on. + * + * @return array + * @throws \Exception on error + */ +function unwrap($promises) +{ + $results = []; + foreach ($promises as $key => $promise) { + $results[$key] = $promise->wait(); + } + + return $results; +} + +/** + * Given an array of promises, return a promise that is fulfilled when all the + * items in the array are fulfilled. + * + * The promise's fulfillment value is an array with fulfillment values at + * respective positions to the original array. If any promise in the array + * rejects, the returned promise is rejected with the rejection reason. + * + * @param mixed $promises Promises or values. + * + * @return Promise + */ +function all($promises) +{ + $results = []; + return each( + $promises, + function ($value, $idx) use (&$results) { + $results[$idx] = $value; + }, + function ($reason, $idx, Promise $aggregate) { + $aggregate->reject($reason); + } + )->then(function () use (&$results) { + ksort($results); + return $results; + }); +} + +/** + * Initiate a competitive race between multiple promises or values (values will + * become immediately fulfilled promises). + * + * When count amount of promises have been fulfilled, the returned promise is + * fulfilled with an array that contains the fulfillment values of the winners + * in order of resolution. + * + * This prommise is rejected with a {@see GuzzleHttp\Promise\AggregateException} + * if the number of fulfilled promises is less than the desired $count. + * + * @param int $count Total number of promises. + * @param mixed $promises Promises or values. + * + * @return Promise + */ +function some($count, $promises) +{ + $results = []; + $rejections = []; + + return each( + $promises, + function ($value, $idx, PromiseInterface $p) use (&$results, $count) { + if ($p->getState() !== PromiseInterface::PENDING) { + return; + } + $results[$idx] = $value; + if (count($results) >= $count) { + $p->resolve(null); + } + }, + function ($reason) use (&$rejections) { + $rejections[] = $reason; + } + )->then( + function () use (&$results, &$rejections, $count) { + if (count($results) !== $count) { + throw new AggregateException( + 'Not enough promises to fulfill count', + $rejections + ); + } + ksort($results); + return array_values($results); + } + ); +} + +/** + * Like some(), with 1 as count. However, if the promise fulfills, the + * fulfillment value is not an array of 1 but the value directly. + * + * @param mixed $promises Promises or values. + * + * @return PromiseInterface + */ +function any($promises) +{ + return some(1, $promises)->then(function ($values) { return $values[0]; }); +} + +/** + * Returns a promise that is fulfilled when all of the provided promises have + * been fulfilled or rejected. + * + * The returned promise is fulfilled with an array of inspection state arrays. + * + * @param mixed $promises Promises or values. + * + * @return Promise + * @see GuzzleHttp\Promise\inspect for the inspection state array format. + */ +function settle($promises) +{ + $results = []; + + return each( + $promises, + function ($value, $idx) use (&$results) { + $results[$idx] = ['state' => 'fulfilled', 'value' => $value]; + }, + function ($reason, $idx) use (&$results) { + $results[$idx] = ['state' => 'rejected', 'reason' => $reason]; + } + )->then(function () use (&$results) { + ksort($results); + return $results; + }); +} + +/** + * Given an iterator that yields promises or values, returns a promise that is + * fulfilled with a null value when the iterator has been consumed or the + * aggregate promise has been fulfilled or rejected. + * + * $onFulfilled is a function that accepts the fulfilled value, iterator + * index, and the aggregate promise. The callback can invoke any necessary side + * effects and choose to resolve or reject the aggregate promise if needed. + * + * $onRejected is a function that accepts the rejection reason, iterator + * index, and the aggregate promise. The callback can invoke any necessary side + * effects and choose to resolve or reject the aggregate promise if needed. + * + * @param mixed $iterable Iterator or array to iterate over. + * @param callable $onFulfilled + * @param callable $onRejected + * + * @return Promise + */ +function each( + $iterable, + callable $onFulfilled = null, + callable $onRejected = null +) { + return (new EachPromise($iterable, [ + 'fulfilled' => $onFulfilled, + 'rejected' => $onRejected + ]))->promise(); +} + +/** + * Like each, but only allows a certain number of outstanding promises at any + * given time. + * + * $concurrency may be an integer or a function that accepts the number of + * pending promises and returns a numeric concurrency limit value to allow for + * dynamic a concurrency size. + * + * @param mixed $iterable + * @param int|callable $concurrency + * @param callable $onFulfilled + * @param callable $onRejected + * + * @return mixed + */ +function each_limit( + $iterable, + $concurrency, + callable $onFulfilled = null, + callable $onRejected = null +) { + return (new EachPromise($iterable, [ + 'fulfilled' => $onFulfilled, + 'rejected' => $onRejected, + 'concurrency' => $concurrency + ]))->promise(); +} + +/** + * Like each_limit, but ensures that no promise in the given $iterable argument + * is rejected. If any promise is rejected, then the aggregate promise is + * rejected with the encountered rejection. + * + * @param mixed $iterable + * @param int|callable $concurrency + * @param callable $onFulfilled + * + * @return mixed + */ +function each_limit_all( + $iterable, + $concurrency, + callable $onFulfilled = null +) { + return each_limit( + $iterable, + $concurrency, + $onFulfilled, + function ($reason, $idx, PromiseInterface $aggregate) { + $aggregate->reject($reason); + } + ); +} + +/** + * Returns true if a promise is fulfilled. + * + * @param PromiseInterface $promise + * + * @return bool + */ +function is_fulfilled(PromiseInterface $promise) +{ + return $promise->getState() === PromiseInterface::FULFILLED; +} + +/** + * Returns true if a promise is rejected. + * + * @param PromiseInterface $promise + * + * @return bool + */ +function is_rejected(PromiseInterface $promise) +{ + return $promise->getState() === PromiseInterface::REJECTED; +} + +/** + * Returns true if a promise is fulfilled or rejected. + * + * @param PromiseInterface $promise + * + * @return bool + */ +function is_settled(PromiseInterface $promise) +{ + return $promise->getState() !== PromiseInterface::PENDING; +} + +/** + * Creates a promise that is resolved using a generator that yields values or + * promises (somewhat similar to C#'s async keyword). + * + * When called, the coroutine function will start an instance of the generator + * and returns a promise that is fulfilled with its final yielded value. + * + * Control is returned back to the generator when the yielded promise settles. + * This can lead to less verbose code when doing lots of sequential async calls + * with minimal processing in between. + * + * use GuzzleHttp\Promise; + * + * function createPromise($value) { + * return new Promise\FulfilledPromise($value); + * } + * + * $promise = Promise\coroutine(function () { + * $value = (yield createPromise('a')); + * try { + * $value = (yield createPromise($value . 'b')); + * } catch (\Exception $e) { + * // The promise was rejected. + * } + * yield $value . 'c'; + * }); + * + * // Outputs "abc" + * $promise->then(function ($v) { echo $v; }); + * + * @param callable $generatorFn Generator function to wrap into a promise. + * + * @return Promise + * @link https://github.com/petkaantonov/bluebird/blob/master/API.md#generators inspiration + */ +function coroutine(callable $generatorFn) +{ + $generator = $generatorFn(); + return __next_coroutine($generator->current(), $generator)->then(); +} + +/** @internal */ +function __next_coroutine($yielded, \Generator $generator) +{ + return promise_for($yielded)->then( + function ($value) use ($generator) { + $nextYield = $generator->send($value); + return $generator->valid() + ? __next_coroutine($nextYield, $generator) + : $value; + }, + function ($reason) use ($generator) { + $nextYield = $generator->throw(exception_for($reason)); + // The throw was caught, so keep iterating on the coroutine + return __next_coroutine($nextYield, $generator); + } + ); +} diff --git a/lib/aws-sdk/GuzzleHttp/Psr7/AppendStream.php b/lib/aws-sdk/GuzzleHttp/Psr7/AppendStream.php new file mode 100644 index 0000000..23039fd --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Psr7/AppendStream.php @@ -0,0 +1,233 @@ +addStream($stream); + } + } + + public function __toString() + { + try { + $this->rewind(); + return $this->getContents(); + } catch (\Exception $e) { + return ''; + } + } + + /** + * Add a stream to the AppendStream + * + * @param StreamInterface $stream Stream to append. Must be readable. + * + * @throws \InvalidArgumentException if the stream is not readable + */ + public function addStream(StreamInterface $stream) + { + if (!$stream->isReadable()) { + throw new \InvalidArgumentException('Each stream must be readable'); + } + + // The stream is only seekable if all streams are seekable + if (!$stream->isSeekable()) { + $this->seekable = false; + } + + $this->streams[] = $stream; + } + + public function getContents() + { + return copy_to_string($this); + } + + /** + * Closes each attached stream. + * + * {@inheritdoc} + */ + public function close() + { + $this->pos = $this->current = 0; + + foreach ($this->streams as $stream) { + $stream->close(); + } + + $this->streams = []; + } + + /** + * Detaches each attached stream + * + * {@inheritdoc} + */ + public function detach() + { + $this->close(); + $this->detached = true; + } + + public function tell() + { + return $this->pos; + } + + /** + * Tries to calculate the size by adding the size of each stream. + * + * If any of the streams do not return a valid number, then the size of the + * append stream cannot be determined and null is returned. + * + * {@inheritdoc} + */ + public function getSize() + { + $size = 0; + + foreach ($this->streams as $stream) { + $s = $stream->getSize(); + if ($s === null) { + return null; + } + $size += $s; + } + + return $size; + } + + public function eof() + { + return !$this->streams || + ($this->current >= count($this->streams) - 1 && + $this->streams[$this->current]->eof()); + } + + public function rewind() + { + $this->seek(0); + } + + /** + * Attempts to seek to the given position. Only supports SEEK_SET. + * + * {@inheritdoc} + */ + public function seek($offset, $whence = SEEK_SET) + { + if (!$this->seekable) { + throw new \RuntimeException('This AppendStream is not seekable'); + } elseif ($whence !== SEEK_SET) { + throw new \RuntimeException('The AppendStream can only seek with SEEK_SET'); + } + + $this->pos = $this->current = 0; + + // Rewind each stream + foreach ($this->streams as $i => $stream) { + try { + $stream->rewind(); + } catch (\Exception $e) { + throw new \RuntimeException('Unable to seek stream ' + . $i . ' of the AppendStream', 0, $e); + } + } + + // Seek to the actual position by reading from each stream + while ($this->pos < $offset && !$this->eof()) { + $result = $this->read(min(8096, $offset - $this->pos)); + if ($result === '') { + break; + } + } + } + + /** + * Reads from all of the appended streams until the length is met or EOF. + * + * {@inheritdoc} + */ + public function read($length) + { + $buffer = ''; + $total = count($this->streams) - 1; + $remaining = $length; + $progressToNext = false; + + while ($remaining > 0) { + + // Progress to the next stream if needed. + if ($progressToNext || $this->streams[$this->current]->eof()) { + $progressToNext = false; + if ($this->current === $total) { + break; + } + $this->current++; + } + + $result = $this->streams[$this->current]->read($remaining); + + // Using a loose comparison here to match on '', false, and null + if ($result == null) { + $progressToNext = true; + continue; + } + + $buffer .= $result; + $remaining = $length - strlen($buffer); + } + + $this->pos += strlen($buffer); + + return $buffer; + } + + public function isReadable() + { + return true; + } + + public function isWritable() + { + return false; + } + + public function isSeekable() + { + return $this->seekable; + } + + public function write($string) + { + throw new \RuntimeException('Cannot write to an AppendStream'); + } + + public function getMetadata($key = null) + { + return $key ? null : []; + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Psr7/BufferStream.php b/lib/aws-sdk/GuzzleHttp/Psr7/BufferStream.php new file mode 100644 index 0000000..af4d4c2 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Psr7/BufferStream.php @@ -0,0 +1,137 @@ +hwm = $hwm; + } + + public function __toString() + { + return $this->getContents(); + } + + public function getContents() + { + $buffer = $this->buffer; + $this->buffer = ''; + + return $buffer; + } + + public function close() + { + $this->buffer = ''; + } + + public function detach() + { + $this->close(); + } + + public function getSize() + { + return strlen($this->buffer); + } + + public function isReadable() + { + return true; + } + + public function isWritable() + { + return true; + } + + public function isSeekable() + { + return false; + } + + public function rewind() + { + $this->seek(0); + } + + public function seek($offset, $whence = SEEK_SET) + { + throw new \RuntimeException('Cannot seek a BufferStream'); + } + + public function eof() + { + return strlen($this->buffer) === 0; + } + + public function tell() + { + throw new \RuntimeException('Cannot determine the position of a BufferStream'); + } + + /** + * Reads data from the buffer. + */ + public function read($length) + { + $currentLength = strlen($this->buffer); + + if ($length >= $currentLength) { + // No need to slice the buffer because we don't have enough data. + $result = $this->buffer; + $this->buffer = ''; + } else { + // Slice up the result to provide a subset of the buffer. + $result = substr($this->buffer, 0, $length); + $this->buffer = substr($this->buffer, $length); + } + + return $result; + } + + /** + * Writes data to the buffer. + */ + public function write($string) + { + $this->buffer .= $string; + + // TODO: What should happen here? + if (strlen($this->buffer) >= $this->hwm) { + return false; + } + + return strlen($string); + } + + public function getMetadata($key = null) + { + if ($key == 'hwm') { + return $this->hwm; + } + + return $key ? null : []; + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Psr7/CachingStream.php b/lib/aws-sdk/GuzzleHttp/Psr7/CachingStream.php new file mode 100644 index 0000000..8fc9d2a --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Psr7/CachingStream.php @@ -0,0 +1,125 @@ +remoteStream = $stream; + $this->stream = $target ?: new Stream(fopen('php://temp', 'r+')); + } + + public function getSize() + { + return max($this->stream->getSize(), $this->remoteStream->getSize()); + } + + public function rewind() + { + $this->seek(0); + } + + /** + * {@inheritdoc} + * @throws \RuntimeException When seeking with SEEK_END or when seeking + * past the total size of the buffer stream + */ + public function seek($offset, $whence = SEEK_SET) + { + if ($whence == SEEK_SET) { + $byte = $offset; + } elseif ($whence == SEEK_CUR) { + $byte = $offset + $this->tell(); + } else { + throw new \RuntimeException('CachingStream::seek() supports SEEK_SET and SEEK_CUR'); + } + + // You cannot skip ahead past where you've read from the remote stream + if ($byte > $this->stream->getSize()) { + throw new \RuntimeException( + sprintf('Cannot seek to byte %d when the buffered stream only' + . ' contains %d bytes', $byte, $this->stream->getSize()) + ); + } + + $this->stream->seek($byte); + } + + public function read($length) + { + // Perform a regular read on any previously read data from the buffer + $data = $this->stream->read($length); + $remaining = $length - strlen($data); + + // More data was requested so read from the remote stream + if ($remaining) { + // If data was written to the buffer in a position that would have + // been filled from the remote stream, then we must skip bytes on + // the remote stream to emulate overwriting bytes from that + // position. This mimics the behavior of other PHP stream wrappers. + $remoteData = $this->remoteStream->read( + $remaining + $this->skipReadBytes + ); + + if ($this->skipReadBytes) { + $len = strlen($remoteData); + $remoteData = substr($remoteData, $this->skipReadBytes); + $this->skipReadBytes = max(0, $this->skipReadBytes - $len); + } + + $data .= $remoteData; + $this->stream->write($remoteData); + } + + return $data; + } + + public function write($string) + { + // When appending to the end of the currently read stream, you'll want + // to skip bytes from being read from the remote stream to emulate + // other stream wrappers. Basically replacing bytes of data of a fixed + // length. + $overflow = (strlen($string) + $this->tell()) - $this->remoteStream->tell(); + if ($overflow > 0) { + $this->skipReadBytes += $overflow; + } + + return $this->stream->write($string); + } + + public function eof() + { + return $this->stream->eof() && $this->remoteStream->eof(); + } + + /** + * Close both the remote stream and buffer stream + */ + public function close() + { + $this->remoteStream->close() && $this->stream->close(); + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Psr7/DroppingStream.php b/lib/aws-sdk/GuzzleHttp/Psr7/DroppingStream.php new file mode 100644 index 0000000..8935c80 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Psr7/DroppingStream.php @@ -0,0 +1,42 @@ +stream = $stream; + $this->maxLength = $maxLength; + } + + public function write($string) + { + $diff = $this->maxLength - $this->stream->getSize(); + + // Begin returning 0 when the underlying stream is too large. + if ($diff <= 0) { + return 0; + } + + // Write the stream or a subset of the stream if needed. + if (strlen($string) < $diff) { + return $this->stream->write($string); + } + + return $this->stream->write(substr($string, 0, $diff)); + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Psr7/FnStream.php b/lib/aws-sdk/GuzzleHttp/Psr7/FnStream.php new file mode 100644 index 0000000..cc9b445 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Psr7/FnStream.php @@ -0,0 +1,149 @@ +methods = $methods; + + // Create the functions on the class + foreach ($methods as $name => $fn) { + $this->{'_fn_' . $name} = $fn; + } + } + + /** + * Lazily determine which methods are not implemented. + * @throws \BadMethodCallException + */ + public function __get($name) + { + throw new \BadMethodCallException(str_replace('_fn_', '', $name) + . '() is not implemented in the FnStream'); + } + + /** + * The close method is called on the underlying stream only if possible. + */ + public function __destruct() + { + if (isset($this->_fn_close)) { + call_user_func($this->_fn_close); + } + } + + /** + * Adds custom functionality to an underlying stream by intercepting + * specific method calls. + * + * @param StreamInterface $stream Stream to decorate + * @param array $methods Hash of method name to a closure + * + * @return FnStream + */ + public static function decorate(StreamInterface $stream, array $methods) + { + // If any of the required methods were not provided, then simply + // proxy to the decorated stream. + foreach (array_diff(self::$slots, array_keys($methods)) as $diff) { + $methods[$diff] = [$stream, $diff]; + } + + return new self($methods); + } + + public function __toString() + { + return call_user_func($this->_fn___toString); + } + + public function close() + { + return call_user_func($this->_fn_close); + } + + public function detach() + { + return call_user_func($this->_fn_detach); + } + + public function getSize() + { + return call_user_func($this->_fn_getSize); + } + + public function tell() + { + return call_user_func($this->_fn_tell); + } + + public function eof() + { + return call_user_func($this->_fn_eof); + } + + public function isSeekable() + { + return call_user_func($this->_fn_isSeekable); + } + + public function rewind() + { + call_user_func($this->_fn_rewind); + } + + public function seek($offset, $whence = SEEK_SET) + { + call_user_func($this->_fn_seek, $offset, $whence); + } + + public function isWritable() + { + return call_user_func($this->_fn_isWritable); + } + + public function write($string) + { + return call_user_func($this->_fn_write, $string); + } + + public function isReadable() + { + return call_user_func($this->_fn_isReadable); + } + + public function read($length) + { + return call_user_func($this->_fn_read, $length); + } + + public function getContents() + { + return call_user_func($this->_fn_getContents); + } + + public function getMetadata($key = null) + { + return call_user_func($this->_fn_getMetadata, $key); + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Psr7/InflateStream.php b/lib/aws-sdk/GuzzleHttp/Psr7/InflateStream.php new file mode 100644 index 0000000..2c8628b --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Psr7/InflateStream.php @@ -0,0 +1,29 @@ +stream = new Stream($resource); + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Psr7/LazyOpenStream.php b/lib/aws-sdk/GuzzleHttp/Psr7/LazyOpenStream.php new file mode 100644 index 0000000..02cec3a --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Psr7/LazyOpenStream.php @@ -0,0 +1,39 @@ +filename = $filename; + $this->mode = $mode; + } + + /** + * Creates the underlying stream lazily when required. + * + * @return StreamInterface + */ + protected function createStream() + { + return stream_for(try_fopen($this->filename, $this->mode)); + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Psr7/LimitStream.php b/lib/aws-sdk/GuzzleHttp/Psr7/LimitStream.php new file mode 100644 index 0000000..7f2298b --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Psr7/LimitStream.php @@ -0,0 +1,155 @@ +stream = $stream; + $this->setLimit($limit); + $this->setOffset($offset); + } + + public function eof() + { + // Always return true if the underlying stream is EOF + if ($this->stream->eof()) { + return true; + } + + // No limit and the underlying stream is not at EOF + if ($this->limit == -1) { + return false; + } + + return $this->stream->tell() >= $this->offset + $this->limit; + } + + /** + * Returns the size of the limited subset of data + * {@inheritdoc} + */ + public function getSize() + { + if (null === ($length = $this->stream->getSize())) { + return null; + } elseif ($this->limit == -1) { + return $length - $this->offset; + } else { + return min($this->limit, $length - $this->offset); + } + } + + /** + * Allow for a bounded seek on the read limited stream + * {@inheritdoc} + */ + public function seek($offset, $whence = SEEK_SET) + { + if ($whence !== SEEK_SET || $offset < 0) { + throw new \RuntimeException(sprintf( + 'Cannot seek to offset % with whence %s', + $offset, + $whence + )); + } + + $offset += $this->offset; + + if ($this->limit !== -1) { + if ($offset > $this->offset + $this->limit) { + $offset = $this->offset + $this->limit; + } + } + + $this->stream->seek($offset); + } + + /** + * Give a relative tell() + * {@inheritdoc} + */ + public function tell() + { + return $this->stream->tell() - $this->offset; + } + + /** + * Set the offset to start limiting from + * + * @param int $offset Offset to seek to and begin byte limiting from + * + * @throws \RuntimeException if the stream cannot be seeked. + */ + public function setOffset($offset) + { + $current = $this->stream->tell(); + + if ($current !== $offset) { + // If the stream cannot seek to the offset position, then read to it + if ($this->stream->isSeekable()) { + $this->stream->seek($offset); + } elseif ($current > $offset) { + throw new \RuntimeException("Could not seek to stream offset $offset"); + } else { + $this->stream->read($offset - $current); + } + } + + $this->offset = $offset; + } + + /** + * Set the limit of bytes that the decorator allows to be read from the + * stream. + * + * @param int $limit Number of bytes to allow to be read from the stream. + * Use -1 for no limit. + */ + public function setLimit($limit) + { + $this->limit = $limit; + } + + public function read($length) + { + if ($this->limit == -1) { + return $this->stream->read($length); + } + + // Check if the current position is less than the total allowed + // bytes + original offset + $remaining = ($this->offset + $this->limit) - $this->stream->tell(); + if ($remaining > 0) { + // Only return the amount of requested data, ensuring that the byte + // limit is not exceeded + return $this->stream->read(min($remaining, $length)); + } + + return ''; + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Psr7/MessageTrait.php b/lib/aws-sdk/GuzzleHttp/Psr7/MessageTrait.php new file mode 100644 index 0000000..123205c --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Psr7/MessageTrait.php @@ -0,0 +1,158 @@ +protocol; + } + + public function withProtocolVersion($version) + { + if ($this->protocol === $version) { + return $this; + } + + $new = clone $this; + $new->protocol = $version; + return $new; + } + + public function getHeaders() + { + return $this->headerLines; + } + + public function hasHeader($header) + { + return isset($this->headers[strtolower($header)]); + } + + public function getHeader($header) + { + $name = strtolower($header); + return isset($this->headers[$name]) ? $this->headers[$name] : []; + } + + public function getHeaderLine($header) + { + return implode(', ', $this->getHeader($header)); + } + + public function withHeader($header, $value) + { + $new = clone $this; + $header = trim($header); + $name = strtolower($header); + + if (!is_array($value)) { + $new->headers[$name] = [trim($value)]; + } else { + $new->headers[$name] = $value; + foreach ($new->headers[$name] as &$v) { + $v = trim($v); + } + } + + // Remove the header lines. + foreach (array_keys($new->headerLines) as $key) { + if (strtolower($key) === $name) { + unset($new->headerLines[$key]); + } + } + + // Add the header line. + $new->headerLines[$header] = $new->headers[$name]; + + return $new; + } + + public function withAddedHeader($header, $value) + { + if (!$this->hasHeader($header)) { + return $this->withHeader($header, $value); + } + + $new = clone $this; + $new->headers[strtolower($header)][] = $value; + $new->headerLines[$header][] = $value; + return $new; + } + + public function withoutHeader($header) + { + if (!$this->hasHeader($header)) { + return $this; + } + + $new = clone $this; + $name = strtolower($header); + unset($new->headers[$name]); + + foreach (array_keys($new->headerLines) as $key) { + if (strtolower($key) === $name) { + unset($new->headerLines[$key]); + } + } + + return $new; + } + + public function getBody() + { + if (!$this->stream) { + $this->stream = stream_for(''); + } + + return $this->stream; + } + + public function withBody(StreamInterface $body) + { + if ($body === $this->stream) { + return $this; + } + + $new = clone $this; + $new->stream = $body; + return $new; + } + + private function setHeaders(array $headers) + { + $this->headerLines = $this->headers = []; + foreach ($headers as $header => $value) { + $header = trim($header); + $name = strtolower($header); + if (!is_array($value)) { + $value = trim($value); + $this->headers[$name][] = $value; + $this->headerLines[$header][] = $value; + } else { + foreach ($value as $v) { + $v = trim($v); + $this->headers[$name][] = $v; + $this->headerLines[$header][] = $v; + } + } + } + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Psr7/MultipartStream.php b/lib/aws-sdk/GuzzleHttp/Psr7/MultipartStream.php new file mode 100644 index 0000000..b232f8b --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Psr7/MultipartStream.php @@ -0,0 +1,152 @@ +boundary = $boundary ?: uniqid(); + $this->stream = $this->createStream($elements); + } + + /** + * Get the boundary + * + * @return string + */ + public function getBoundary() + { + return $this->boundary; + } + + public function isWritable() + { + return false; + } + + /** + * Get the headers needed before transferring the content of a POST file + */ + private function getHeaders(array $headers) + { + $str = ''; + foreach ($headers as $key => $value) { + $str .= "{$key}: {$value}\r\n"; + } + + return "--{$this->boundary}\r\n" . trim($str) . "\r\n\r\n"; + } + + /** + * Create the aggregate stream that will be used to upload the POST data + */ + protected function createStream(array $elements) + { + $stream = new AppendStream(); + + foreach ($elements as $element) { + $this->addElement($stream, $element); + } + + // Add the trailing boundary with CRLF + $stream->addStream(stream_for("--{$this->boundary}--\r\n")); + + return $stream; + } + + private function addElement(AppendStream $stream, array $element) + { + foreach (['contents', 'name'] as $key) { + if (!array_key_exists($key, $element)) { + throw new \InvalidArgumentException("A '{$key}' key is required"); + } + } + + $element['contents'] = stream_for($element['contents']); + + if (empty($element['filename'])) { + $uri = $element['contents']->getMetadata('uri'); + if (substr($uri, 0, 6) !== 'php://') { + $element['filename'] = $uri; + } + } + + list($body, $headers) = $this->createElement( + $element['name'], + $element['contents'], + isset($element['filename']) ? $element['filename'] : null, + isset($element['headers']) ? $element['headers'] : [] + ); + + $stream->addStream(stream_for($this->getHeaders($headers))); + $stream->addStream($body); + $stream->addStream(stream_for("\r\n")); + } + + /** + * @return array + */ + private function createElement($name, $stream, $filename, array $headers) + { + // Set a default content-disposition header if one was no provided + $disposition = $this->getHeader($headers, 'content-disposition'); + if (!$disposition) { + $headers['Content-Disposition'] = $filename + ? sprintf('form-data; name="%s"; filename="%s"', + $name, + basename($filename)) + : "form-data; name=\"{$name}\""; + } + + // Set a default content-length header if one was no provided + $length = $this->getHeader($headers, 'content-length'); + if (!$length) { + if ($length = $stream->getSize()) { + $headers['Content-Length'] = (string) $length; + } + } + + // Set a default Content-Type if one was not supplied + $type = $this->getHeader($headers, 'content-type'); + if (!$type && $filename) { + if ($type = mimetype_from_filename($filename)) { + $headers['Content-Type'] = $type; + } + } + + return [$stream, $headers]; + } + + private function getHeader(array $headers, $key) + { + foreach ($headers as $k => $v) { + if ($k === $key) { + return $v; + } + } + + return null; + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Psr7/NoSeekStream.php b/lib/aws-sdk/GuzzleHttp/Psr7/NoSeekStream.php new file mode 100644 index 0000000..2332218 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Psr7/NoSeekStream.php @@ -0,0 +1,22 @@ +source = $source; + $this->size = isset($options['size']) ? $options['size'] : null; + $this->metadata = isset($options['metadata']) ? $options['metadata'] : []; + $this->buffer = new BufferStream(); + } + + public function __toString() + { + try { + return copy_to_string($this); + } catch (\Exception $e) { + return ''; + } + } + + public function close() + { + $this->detach(); + } + + public function detach() + { + $this->tellPos = false; + $this->source = null; + } + + public function getSize() + { + return $this->size; + } + + public function tell() + { + return $this->tellPos; + } + + public function eof() + { + return !$this->source; + } + + public function isSeekable() + { + return false; + } + + public function rewind() + { + $this->seek(0); + } + + public function seek($offset, $whence = SEEK_SET) + { + throw new \RuntimeException('Cannot seek a PumpStream'); + } + + public function isWritable() + { + return false; + } + + public function write($string) + { + throw new \RuntimeException('Cannot write to a PumpStream'); + } + + public function isReadable() + { + return true; + } + + public function read($length) + { + $data = $this->buffer->read($length); + $readLen = strlen($data); + $this->tellPos += $readLen; + $remaining = $length - $readLen; + + if ($remaining) { + $this->pump($remaining); + $data .= $this->buffer->read($remaining); + $this->tellPos += strlen($data) - $readLen; + } + + return $data; + } + + public function getContents() + { + $result = ''; + while (!$this->eof()) { + $result .= $this->read(1000000); + } + + return $result; + } + + public function getMetadata($key = null) + { + if (!$key) { + return $this->metadata; + } + + return isset($this->metadata[$key]) ? $this->metadata[$key] : null; + } + + private function pump($length) + { + if ($this->source) { + do { + $data = call_user_func($this->source, $length); + if ($data === false || $data === null) { + $this->source = null; + return; + } + $this->buffer->write($data); + $length -= strlen($data); + } while ($length > 0); + } + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Psr7/Request.php b/lib/aws-sdk/GuzzleHttp/Psr7/Request.php new file mode 100644 index 0000000..798ea68 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Psr7/Request.php @@ -0,0 +1,149 @@ +method = strtoupper($method); + $this->uri = $uri; + $this->setHeaders($headers); + $this->protocol = $protocolVersion; + + $host = $uri->getHost(); + if ($host && !$this->hasHeader('Host')) { + $this->updateHostFromUri($host); + } + + if ($body) { + $this->stream = stream_for($body); + } + } + + public function getRequestTarget() + { + if ($this->requestTarget !== null) { + return $this->requestTarget; + } + + $target = $this->uri->getPath(); + if ($target == null) { + $target = '/'; + } + if ($this->uri->getQuery()) { + $target .= '?' . $this->uri->getQuery(); + } + + return $target; + } + + public function withRequestTarget($requestTarget) + { + if (preg_match('#\s#', $requestTarget)) { + throw new InvalidArgumentException( + 'Invalid request target provided; cannot contain whitespace' + ); + } + + $new = clone $this; + $new->requestTarget = $requestTarget; + return $new; + } + + public function getMethod() + { + return $this->method; + } + + public function withMethod($method) + { + $new = clone $this; + $new->method = strtoupper($method); + return $new; + } + + public function getUri() + { + return $this->uri; + } + + public function withUri(UriInterface $uri, $preserveHost = false) + { + if ($uri === $this->uri) { + return $this; + } + + $new = clone $this; + $new->uri = $uri; + + if (!$preserveHost) { + if ($host = $uri->getHost()) { + $new->updateHostFromUri($host); + } + } + + return $new; + } + + public function withHeader($header, $value) + { + /** @var Request $newInstance */ + $newInstance = $this->withParentHeader($header, $value); + return $newInstance; + } + + private function updateHostFromUri($host) + { + // Ensure Host is the first header. + // See: http://tools.ietf.org/html/rfc7230#section-5.4 + if ($port = $this->uri->getPort()) { + $host .= ':' . $port; + } + + $this->headerLines = ['Host' => [$host]] + $this->headerLines; + $this->headers = ['host' => [$host]] + $this->headers; + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Psr7/Response.php b/lib/aws-sdk/GuzzleHttp/Psr7/Response.php new file mode 100644 index 0000000..7a7a469 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Psr7/Response.php @@ -0,0 +1,130 @@ + 'Continue', + 101 => 'Switching Protocols', + 102 => 'Processing', + 200 => 'OK', + 201 => 'Created', + 202 => 'Accepted', + 203 => 'Non-Authoritative Information', + 204 => 'No Content', + 205 => 'Reset Content', + 206 => 'Partial Content', + 207 => 'Multi-status', + 208 => 'Already Reported', + 300 => 'Multiple Choices', + 301 => 'Moved Permanently', + 302 => 'Found', + 303 => 'See Other', + 304 => 'Not Modified', + 305 => 'Use Proxy', + 306 => 'Switch Proxy', + 307 => 'Temporary Redirect', + 400 => 'Bad Request', + 401 => 'Unauthorized', + 402 => 'Payment Required', + 403 => 'Forbidden', + 404 => 'Not Found', + 405 => 'Method Not Allowed', + 406 => 'Not Acceptable', + 407 => 'Proxy Authentication Required', + 408 => 'Request Time-out', + 409 => 'Conflict', + 410 => 'Gone', + 411 => 'Length Required', + 412 => 'Precondition Failed', + 413 => 'Request Entity Too Large', + 414 => 'Request-URI Too Large', + 415 => 'Unsupported Media Type', + 416 => 'Requested range not satisfiable', + 417 => 'Expectation Failed', + 418 => 'I\'m a teapot', + 422 => 'Unprocessable Entity', + 423 => 'Locked', + 424 => 'Failed Dependency', + 425 => 'Unordered Collection', + 426 => 'Upgrade Required', + 428 => 'Precondition Required', + 429 => 'Too Many Requests', + 431 => 'Request Header Fields Too Large', + 500 => 'Internal Server Error', + 501 => 'Not Implemented', + 502 => 'Bad Gateway', + 503 => 'Service Unavailable', + 504 => 'Gateway Time-out', + 505 => 'HTTP Version not supported', + 506 => 'Variant Also Negotiates', + 507 => 'Insufficient Storage', + 508 => 'Loop Detected', + 511 => 'Network Authentication Required', + ]; + + /** @var null|string */ + private $reasonPhrase = ''; + + /** @var int */ + private $statusCode = 200; + + /** + * @param int $status Status code for the response, if any. + * @param array $headers Headers for the response, if any. + * @param mixed $body Stream body. + * @param string $version Protocol version. + * @param string $reason Reason phrase (a default will be used if possible). + */ + public function __construct( + $status = 200, + array $headers = [], + $body = null, + $version = '1.1', + $reason = null + ) { + $this->statusCode = (int) $status; + + if ($body) { + $this->stream = stream_for($body); + } + + $this->setHeaders($headers); + if (!$reason && isset(self::$phrases[$this->statusCode])) { + $this->reasonPhrase = self::$phrases[$status]; + } else { + $this->reasonPhrase = (string) $reason; + } + + $this->protocol = $version; + } + + public function getStatusCode() + { + return $this->statusCode; + } + + public function getReasonPhrase() + { + return $this->reasonPhrase; + } + + public function withStatus($code, $reasonPhrase = '') + { + $new = clone $this; + $new->statusCode = (int) $code; + if (!$reasonPhrase && isset(self::$phrases[$new->statusCode])) { + $reasonPhrase = self::$phrases[$new->statusCode]; + } + $new->reasonPhrase = $reasonPhrase; + return $new; + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Psr7/Stream.php b/lib/aws-sdk/GuzzleHttp/Psr7/Stream.php new file mode 100644 index 0000000..0b0db01 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Psr7/Stream.php @@ -0,0 +1,245 @@ + [ + 'r' => true, 'w+' => true, 'r+' => true, 'x+' => true, 'c+' => true, + 'rb' => true, 'w+b' => true, 'r+b' => true, 'x+b' => true, + 'c+b' => true, 'rt' => true, 'w+t' => true, 'r+t' => true, + 'x+t' => true, 'c+t' => true, 'a+' => true + ], + 'write' => [ + 'w' => true, 'w+' => true, 'rw' => true, 'r+' => true, 'x+' => true, + 'c+' => true, 'wb' => true, 'w+b' => true, 'r+b' => true, + 'x+b' => true, 'c+b' => true, 'w+t' => true, 'r+t' => true, + 'x+t' => true, 'c+t' => true, 'a' => true, 'a+' => true + ] + ]; + + /** + * This constructor accepts an associative array of options. + * + * - size: (int) If a read stream would otherwise have an indeterminate + * size, but the size is known due to foreknownledge, then you can + * provide that size, in bytes. + * - metadata: (array) Any additional metadata to return when the metadata + * of the stream is accessed. + * + * @param resource $stream Stream resource to wrap. + * @param array $options Associative array of options. + * + * @throws \InvalidArgumentException if the stream is not a stream resource + */ + public function __construct($stream, $options = []) + { + if (!is_resource($stream)) { + throw new \InvalidArgumentException('Stream must be a resource'); + } + + if (isset($options['size'])) { + $this->size = $options['size']; + } + + $this->customMetadata = isset($options['metadata']) + ? $options['metadata'] + : []; + + $this->stream = $stream; + $meta = stream_get_meta_data($this->stream); + $this->seekable = $meta['seekable']; + $this->readable = isset(self::$readWriteHash['read'][$meta['mode']]); + $this->writable = isset(self::$readWriteHash['write'][$meta['mode']]); + $this->uri = $this->getMetadata('uri'); + } + + public function __get($name) + { + if ($name == 'stream') { + throw new \RuntimeException('The stream is detached'); + } + + throw new \BadMethodCallException('No value for ' . $name); + } + + /** + * Closes the stream when the destructed + */ + public function __destruct() + { + $this->close(); + } + + public function __toString() + { + try { + $this->seek(0); + return (string) stream_get_contents($this->stream); + } catch (\Exception $e) { + return ''; + } + } + + public function getContents() + { + $contents = stream_get_contents($this->stream); + + if ($contents === false) { + throw new \RuntimeException('Unable to read stream contents'); + } + + return $contents; + } + + public function close() + { + if (isset($this->stream)) { + if (is_resource($this->stream)) { + fclose($this->stream); + } + $this->detach(); + } + } + + public function detach() + { + if (!isset($this->stream)) { + return null; + } + + $result = $this->stream; + unset($this->stream); + $this->size = $this->uri = null; + $this->readable = $this->writable = $this->seekable = false; + + return $result; + } + + public function getSize() + { + if ($this->size !== null) { + return $this->size; + } + + if (!isset($this->stream)) { + return null; + } + + // Clear the stat cache if the stream has a URI + if ($this->uri) { + clearstatcache(true, $this->uri); + } + + $stats = fstat($this->stream); + if (isset($stats['size'])) { + $this->size = $stats['size']; + return $this->size; + } + + return null; + } + + public function isReadable() + { + return $this->readable; + } + + public function isWritable() + { + return $this->writable; + } + + public function isSeekable() + { + return $this->seekable; + } + + public function eof() + { + return !$this->stream || feof($this->stream); + } + + public function tell() + { + $result = ftell($this->stream); + + if ($result === false) { + throw new \RuntimeException('Unable to determine stream position'); + } + + return $result; + } + + public function rewind() + { + $this->seek(0); + } + + public function seek($offset, $whence = SEEK_SET) + { + if (!$this->seekable) { + throw new \RuntimeException('Stream is not seekable'); + } elseif (fseek($this->stream, $offset, $whence) === -1) { + throw new \RuntimeException('Unable to seek to stream position ' + . $offset . ' with whence ' . var_export($whence, true)); + } + } + + public function read($length) + { + if (!$this->readable) { + throw new \RuntimeException('Cannot read from non-readable stream'); + } + + return fread($this->stream, $length); + } + + public function write($string) + { + if (!$this->writable) { + throw new \RuntimeException('Cannot write to a non-writable stream'); + } + + // We can't know the size after writing anything + $this->size = null; + $result = fwrite($this->stream, $string); + + if ($result === false) { + throw new \RuntimeException('Unable to write to stream'); + } + + return $result; + } + + public function getMetadata($key = null) + { + if (!isset($this->stream)) { + return $key ? null : []; + } elseif (!$key) { + return $this->customMetadata + stream_get_meta_data($this->stream); + } elseif (isset($this->customMetadata[$key])) { + return $this->customMetadata[$key]; + } + + $meta = stream_get_meta_data($this->stream); + + return isset($meta[$key]) ? $meta[$key] : null; + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Psr7/StreamDecoratorTrait.php b/lib/aws-sdk/GuzzleHttp/Psr7/StreamDecoratorTrait.php new file mode 100644 index 0000000..daec6f5 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Psr7/StreamDecoratorTrait.php @@ -0,0 +1,149 @@ +stream = $stream; + } + + /** + * Magic method used to create a new stream if streams are not added in + * the constructor of a decorator (e.g., LazyOpenStream). + * + * @param string $name Name of the property (allows "stream" only). + * + * @return StreamInterface + */ + public function __get($name) + { + if ($name == 'stream') { + $this->stream = $this->createStream(); + return $this->stream; + } + + throw new \UnexpectedValueException("$name not found on class"); + } + + public function __toString() + { + try { + if ($this->isSeekable()) { + $this->seek(0); + } + return $this->getContents(); + } catch (\Exception $e) { + // Really, PHP? https://bugs.php.net/bug.php?id=53648 + trigger_error('StreamDecorator::__toString exception: ' + . (string) $e, E_USER_ERROR); + return ''; + } + } + + public function getContents() + { + return copy_to_string($this); + } + + /** + * Allow decorators to implement custom methods + * + * @param string $method Missing method name + * @param array $args Method arguments + * + * @return mixed + */ + public function __call($method, array $args) + { + $result = call_user_func_array([$this->stream, $method], $args); + + // Always return the wrapped object if the result is a return $this + return $result === $this->stream ? $this : $result; + } + + public function close() + { + $this->stream->close(); + } + + public function getMetadata($key = null) + { + return $this->stream->getMetadata($key); + } + + public function detach() + { + return $this->stream->detach(); + } + + public function getSize() + { + return $this->stream->getSize(); + } + + public function eof() + { + return $this->stream->eof(); + } + + public function tell() + { + return $this->stream->tell(); + } + + public function isReadable() + { + return $this->stream->isReadable(); + } + + public function isWritable() + { + return $this->stream->isWritable(); + } + + public function isSeekable() + { + return $this->stream->isSeekable(); + } + + public function rewind() + { + $this->seek(0); + } + + public function seek($offset, $whence = SEEK_SET) + { + $this->stream->seek($offset, $whence); + } + + public function read($length) + { + return $this->stream->read($length); + } + + public function write($string) + { + return $this->stream->write($string); + } + + /** + * Implement in subclasses to dynamically create streams when requested. + * + * @return StreamInterface + * @throws \BadMethodCallException + */ + protected function createStream() + { + throw new \BadMethodCallException('Not implemented'); + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Psr7/StreamWrapper.php b/lib/aws-sdk/GuzzleHttp/Psr7/StreamWrapper.php new file mode 100644 index 0000000..cf7b223 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Psr7/StreamWrapper.php @@ -0,0 +1,121 @@ +isReadable()) { + $mode = $stream->isWritable() ? 'r+' : 'r'; + } elseif ($stream->isWritable()) { + $mode = 'w'; + } else { + throw new \InvalidArgumentException('The stream must be readable, ' + . 'writable, or both.'); + } + + return fopen('guzzle://stream', $mode, null, stream_context_create([ + 'guzzle' => ['stream' => $stream] + ])); + } + + /** + * Registers the stream wrapper if needed + */ + public static function register() + { + if (!in_array('guzzle', stream_get_wrappers())) { + stream_wrapper_register('guzzle', __CLASS__); + } + } + + public function stream_open($path, $mode, $options, &$opened_path) + { + $options = stream_context_get_options($this->context); + + if (!isset($options['guzzle']['stream'])) { + return false; + } + + $this->mode = $mode; + $this->stream = $options['guzzle']['stream']; + + return true; + } + + public function stream_read($count) + { + return $this->stream->read($count); + } + + public function stream_write($data) + { + return (int) $this->stream->write($data); + } + + public function stream_tell() + { + return $this->stream->tell(); + } + + public function stream_eof() + { + return $this->stream->eof(); + } + + public function stream_seek($offset, $whence) + { + $this->stream->seek($offset, $whence); + + return true; + } + + public function stream_stat() + { + static $modeMap = [ + 'r' => 33060, + 'r+' => 33206, + 'w' => 33188 + ]; + + return [ + 'dev' => 0, + 'ino' => 0, + 'mode' => $modeMap[$this->mode], + 'nlink' => 0, + 'uid' => 0, + 'gid' => 0, + 'rdev' => 0, + 'size' => $this->stream->getSize() ?: 0, + 'atime' => 0, + 'mtime' => 0, + 'ctime' => 0, + 'blksize' => 0, + 'blocks' => 0 + ]; + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Psr7/Uri.php b/lib/aws-sdk/GuzzleHttp/Psr7/Uri.php new file mode 100644 index 0000000..cce0765 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Psr7/Uri.php @@ -0,0 +1,599 @@ + 80, + 'https' => 443, + ]; + + private static $charUnreserved = 'a-zA-Z0-9_\-\.~'; + private static $charSubDelims = '!\$&\'\(\)\*\+,;='; + private static $replaceQuery = ['=' => '%3D', '&' => '%26']; + + /** @var string Uri scheme. */ + private $scheme = ''; + + /** @var string Uri user info. */ + private $userInfo = ''; + + /** @var string Uri host. */ + private $host = ''; + + /** @var int|null Uri port. */ + private $port; + + /** @var string Uri path. */ + private $path = ''; + + /** @var string Uri query string. */ + private $query = ''; + + /** @var string Uri fragment. */ + private $fragment = ''; + + /** + * @param string $uri URI to parse and wrap. + */ + public function __construct($uri = '') + { + if ($uri != null) { + $parts = parse_url($uri); + if ($parts === false) { + throw new \InvalidArgumentException("Unable to parse URI: $uri"); + } + $this->applyParts($parts); + } + } + + public function __toString() + { + return self::createUriString( + $this->scheme, + $this->getAuthority(), + $this->getPath(), + $this->query, + $this->fragment + ); + } + + /** + * Removes dot segments from a path and returns the new path. + * + * @param string $path + * + * @return string + * @link http://tools.ietf.org/html/rfc3986#section-5.2.4 + */ + public static function removeDotSegments($path) + { + static $noopPaths = ['' => true, '/' => true, '*' => true]; + static $ignoreSegments = ['.' => true, '..' => true]; + + if (isset($noopPaths[$path])) { + return $path; + } + + $results = []; + $segments = explode('/', $path); + foreach ($segments as $segment) { + if ($segment == '..') { + array_pop($results); + } elseif (!isset($ignoreSegments[$segment])) { + $results[] = $segment; + } + } + + $newPath = implode('/', $results); + // Add the leading slash if necessary + if (substr($path, 0, 1) === '/' && + substr($newPath, 0, 1) !== '/' + ) { + $newPath = '/' . $newPath; + } + + // Add the trailing slash if necessary + if ($newPath != '/' && isset($ignoreSegments[end($segments)])) { + $newPath .= '/'; + } + + return $newPath; + } + + /** + * Resolve a base URI with a relative URI and return a new URI. + * + * @param UriInterface $base Base URI + * @param string $rel Relative URI + * + * @return UriInterface + */ + public static function resolve(UriInterface $base, $rel) + { + if ($rel === null || $rel === '') { + return $base; + } + + if ($rel instanceof UriInterface) { + $relParts = [ + 'scheme' => $rel->getScheme(), + 'host' => $rel->getHost(), + 'port' => $rel->getPort(), + 'path' => $rel->getPath(), + 'query' => $rel->getQuery(), + 'fragment' => $rel->getFragment() + ]; + } else { + $relParts = parse_url($rel) + [ + 'scheme' => '', + 'host' => '', + 'port' => '', + 'path' => '', + 'query' => '', + 'fragment' => '' + ]; + } + + if (!empty($relParts['scheme']) && !empty($relParts['host'])) { + return $rel instanceof UriInterface + ? $rel + : self::fromParts($relParts); + } + + $parts = [ + 'scheme' => $base->getScheme(), + 'host' => $base->getHost(), + 'port' => $base->getPort(), + 'path' => $base->getPath(), + 'query' => $base->getQuery(), + 'fragment' => $base->getFragment() + ]; + + if (!empty($relParts['host'])) { + $parts['host'] = $relParts['host']; + $parts['port'] = $relParts['port']; + $parts['path'] = self::removeDotSegments($relParts['path']); + $parts['query'] = $relParts['query']; + $parts['fragment'] = $relParts['fragment']; + } elseif (!empty($relParts['path'])) { + if (substr($relParts['path'], 0, 1) == '/') { + $parts['path'] = self::removeDotSegments($relParts['path']); + $parts['query'] = $relParts['query']; + $parts['fragment'] = $relParts['fragment']; + } else { + if (!empty($parts['host']) && empty($parts['path'])) { + $mergedPath = '/'; + } else { + $mergedPath = substr($parts['path'], 0, strrpos($parts['path'], '/') + 1); + } + $parts['path'] = self::removeDotSegments($mergedPath . $relParts['path']); + $parts['query'] = $relParts['query']; + $parts['fragment'] = $relParts['fragment']; + } + } elseif (!empty($relParts['query'])) { + $parts['query'] = $relParts['query']; + } elseif ($relParts['fragment'] != null) { + $parts['fragment'] = $relParts['fragment']; + } + + return static::fromParts($parts); + } + + /** + * Create a new URI with a specific query string value removed. + * + * Any existing query string values that exactly match the provided key are + * removed. + * + * Note: this function will convert "=" to "%3D" and "&" to "%26". + * + * @param UriInterface $uri URI to use as a base. + * @param string $key Query string key value pair to remove. + * + * @return UriInterface + */ + public static function withoutQueryValue(UriInterface $uri, $key) + { + $current = $uri->getQuery(); + if (!$current) { + return $uri; + } + + $result = []; + foreach (explode('&', $current) as $part) { + if (explode('=', $part)[0] !== $key) { + $result[] = $part; + }; + } + + return $uri->withQuery(implode('&', $result)); + } + + /** + * Create a new URI with a specific query string value. + * + * Any existing query string values that exactly match the provided key are + * removed and replaced with the given key value pair. + * + * Note: this function will convert "=" to "%3D" and "&" to "%26". + * + * @param UriInterface $uri URI to use as a base. + * @param string $key Key to set. + * @param string $value Value to set. + * + * @return UriInterface + */ + public static function withQueryValue(UriInterface $uri, $key, $value) + { + $current = $uri->getQuery(); + $key = strtr($key, self::$replaceQuery); + + if (!$current) { + $result = []; + } else { + $result = []; + foreach (explode('&', $current) as $part) { + if (explode('=', $part)[0] !== $key) { + $result[] = $part; + }; + } + } + + if ($value !== null) { + $result[] = $key . '=' . strtr($value, self::$replaceQuery); + } else { + $result[] = $key; + } + + return $uri->withQuery(implode('&', $result)); + } + + /** + * Create a URI from a hash of parse_url parts. + * + * @param array $parts + * + * @return self + */ + public static function fromParts(array $parts) + { + $uri = new self(); + $uri->applyParts($parts); + return $uri; + } + + public function getScheme() + { + return $this->scheme; + } + + public function getAuthority() + { + if (empty($this->host)) { + return ''; + } + + $authority = $this->host; + if (!empty($this->userInfo)) { + $authority = $this->userInfo . '@' . $authority; + } + + if ($this->isNonStandardPort($this->scheme, $this->host, $this->port)) { + $authority .= ':' . $this->port; + } + + return $authority; + } + + public function getUserInfo() + { + return $this->userInfo; + } + + public function getHost() + { + return $this->host; + } + + public function getPort() + { + return $this->port; + } + + public function getPath() + { + return $this->path == null ? '' : $this->path; + } + + public function getQuery() + { + return $this->query; + } + + public function getFragment() + { + return $this->fragment; + } + + public function withScheme($scheme) + { + $scheme = $this->filterScheme($scheme); + + if ($this->scheme === $scheme) { + return $this; + } + + $new = clone $this; + $new->scheme = $scheme; + $new->port = $new->filterPort($new->scheme, $new->host, $new->port); + return $new; + } + + public function withUserInfo($user, $password = null) + { + $info = $user; + if ($password) { + $info .= ':' . $password; + } + + if ($this->userInfo === $info) { + return $this; + } + + $new = clone $this; + $new->userInfo = $info; + return $new; + } + + public function withHost($host) + { + if ($this->host === $host) { + return $this; + } + + $new = clone $this; + $new->host = $host; + return $new; + } + + public function withPort($port) + { + $port = $this->filterPort($this->scheme, $this->host, $port); + + if ($this->port === $port) { + return $this; + } + + $new = clone $this; + $new->port = $port; + return $new; + } + + public function withPath($path) + { + if (!is_string($path)) { + throw new \InvalidArgumentException( + 'Invalid path provided; must be a string' + ); + } + + $path = $this->filterPath($path); + + if ($this->path === $path) { + return $this; + } + + $new = clone $this; + $new->path = $path; + return $new; + } + + public function withQuery($query) + { + if (!is_string($query) && !method_exists($query, '__toString')) { + throw new \InvalidArgumentException( + 'Query string must be a string' + ); + } + + $query = (string) $query; + if (substr($query, 0, 1) === '?') { + $query = substr($query, 1); + } + + $query = $this->filterQueryAndFragment($query); + + if ($this->query === $query) { + return $this; + } + + $new = clone $this; + $new->query = $query; + return $new; + } + + public function withFragment($fragment) + { + if (substr($fragment, 0, 1) === '#') { + $fragment = substr($fragment, 1); + } + + $fragment = $this->filterQueryAndFragment($fragment); + + if ($this->fragment === $fragment) { + return $this; + } + + $new = clone $this; + $new->fragment = $fragment; + return $new; + } + + /** + * Apply parse_url parts to a URI. + * + * @param $parts Array of parse_url parts to apply. + */ + private function applyParts(array $parts) + { + $this->scheme = isset($parts['scheme']) + ? $this->filterScheme($parts['scheme']) + : ''; + $this->userInfo = isset($parts['user']) ? $parts['user'] : ''; + $this->host = isset($parts['host']) ? $parts['host'] : ''; + $this->port = !empty($parts['port']) + ? $this->filterPort($this->scheme, $this->host, $parts['port']) + : null; + $this->path = isset($parts['path']) + ? $this->filterPath($parts['path']) + : ''; + $this->query = isset($parts['query']) + ? $this->filterQueryAndFragment($parts['query']) + : ''; + $this->fragment = isset($parts['fragment']) + ? $this->filterQueryAndFragment($parts['fragment']) + : ''; + if (isset($parts['pass'])) { + $this->userInfo .= ':' . $parts['pass']; + } + } + + /** + * Create a URI string from its various parts + * + * @param string $scheme + * @param string $authority + * @param string $path + * @param string $query + * @param string $fragment + * @return string + */ + private static function createUriString($scheme, $authority, $path, $query, $fragment) + { + $uri = ''; + + if (!empty($scheme)) { + $uri .= $scheme . '://'; + } + + if (!empty($authority)) { + $uri .= $authority; + } + + if ($path != null) { + $uri .= $path; + } + + if ($query != null) { + $uri .= '?' . $query; + } + + if ($fragment != null) { + $uri .= '#' . $fragment; + } + + return $uri; + } + + /** + * Is a given port non-standard for the current scheme? + * + * @param string $scheme + * @param string $host + * @param int $port + * @return bool + */ + private static function isNonStandardPort($scheme, $host, $port) + { + if (!$scheme) { + return true; + } + + if (!$host || !$port) { + return false; + } + + return !isset(static::$schemes[$scheme]) || $port !== static::$schemes[$scheme]; + } + + /** + * @param string $scheme + * + * @return string + */ + private function filterScheme($scheme) + { + $scheme = strtolower($scheme); + $scheme = rtrim($scheme, ':/'); + + return $scheme; + } + + /** + * @param string $scheme + * @param string $host + * @param int $port + * + * @return int|null + * + * @throws \InvalidArgumentException If the port is invalid. + */ + private function filterPort($scheme, $host, $port) + { + if (null !== $port) { + $port = (int) $port; + if (1 > $port || 0xffff < $port) { + throw new \InvalidArgumentException( + sprintf('Invalid port: %d. Must be between 1 and 65535', $port) + ); + } + } + + return $this->isNonStandardPort($scheme, $host, $port) ? $port : null; + } + + /** + * Filters the path of a URI + * + * @param $path + * + * @return string + */ + private function filterPath($path) + { + if ($path != null && substr($path, 0, 1) !== '/') { + $path = '/' . $path; + } + + return preg_replace_callback( + '/(?:[^' . self::$charUnreserved . ':@&=\+\$,\/;%]+|%(?![A-Fa-f0-9]{2}))/', + function ($match) { return rawurlencode($match[0]); }, + $path + ); + } + + /** + * Filters the query string or fragment of a URI. + * + * @param $str + * + * @return string + */ + private function filterQueryAndFragment($str) + { + return preg_replace_callback( + '/(?:[^' . self::$charUnreserved . self::$charSubDelims . '%:@\/\?]+|%(?![A-Fa-f0-9]{2}))/', + function ($match) { return rawurlencode($match[0]); }, + $str + ); + } +} diff --git a/lib/aws-sdk/GuzzleHttp/Psr7/functions.php b/lib/aws-sdk/GuzzleHttp/Psr7/functions.php new file mode 100644 index 0000000..a1cec41 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/Psr7/functions.php @@ -0,0 +1,799 @@ +getMethod() . ' ' + . $message->getRequestTarget()) + . ' HTTP/' . $message->getProtocolVersion(); + if (!$message->hasHeader('host')) { + $msg .= "\r\nHost: " . $message->getUri()->getHost(); + } + } elseif ($message instanceof ResponseInterface) { + $msg = 'HTTP/' . $message->getProtocolVersion() . ' ' + . $message->getStatusCode() . ' ' + . $message->getReasonPhrase(); + } else { + throw new \InvalidArgumentException('Unknown message type'); + } + + foreach ($message->getHeaders() as $name => $values) { + $msg .= "\r\n{$name}: " . implode(', ', $values); + } + + return "{$msg}\r\n\r\n" . $message->getBody(); +} + +/** + * Returns a UriInterface for the given value. + * + * This function accepts a string or {@see Psr\Http\Message\UriInterface} and + * returns a UriInterface for the given value. If the value is already a + * `UriInterface`, it is returned as-is. + * + * @param string|UriInterface $uri + * + * @return UriInterface + * @throws \InvalidArgumentException + */ +function uri_for($uri) +{ + if ($uri instanceof UriInterface) { + return $uri; + } elseif (is_string($uri)) { + return new Uri($uri); + } + + throw new \InvalidArgumentException('URI must be a string or UriInterface'); +} + +/** + * Create a new stream based on the input type. + * + * Options is an associative array that can contain the following keys: + * - metadata: Array of custom metadata. + * - size: Size of the stream. + * + * @param resource|string|StreamInterface $resource Entity body data + * @param array $options Additional options + * + * @return Stream + * @throws \InvalidArgumentException if the $resource arg is not valid. + */ +function stream_for($resource = '', array $options = []) +{ + switch (gettype($resource)) { + case 'string': + $stream = fopen('php://temp', 'r+'); + if ($resource !== '') { + fwrite($stream, $resource); + fseek($stream, 0); + } + return new Stream($stream, $options); + case 'resource': + return new Stream($resource, $options); + case 'object': + if ($resource instanceof StreamInterface) { + return $resource; + } elseif ($resource instanceof \Iterator) { + return new PumpStream(function () use ($resource) { + if (!$resource->valid()) { + return false; + } + $result = $resource->current(); + $resource->next(); + return $result; + }, $options); + } elseif (method_exists($resource, '__toString')) { + return stream_for((string) $resource, $options); + } + break; + case 'NULL': + return new Stream(fopen('php://temp', 'r+'), $options); + } + + if (is_callable($resource)) { + return new PumpStream($resource, $options); + } + + throw new \InvalidArgumentException('Invalid resource type: ' . gettype($resource)); +} + +/** + * Parse an array of header values containing ";" separated data into an + * array of associative arrays representing the header key value pair + * data of the header. When a parameter does not contain a value, but just + * contains a key, this function will inject a key with a '' string value. + * + * @param string|array $header Header to parse into components. + * + * @return array Returns the parsed header values. + */ +function parse_header($header) +{ + static $trimmed = "\"' \n\t\r"; + $params = $matches = []; + + foreach (normalize_header($header) as $val) { + $part = []; + foreach (preg_split('/;(?=([^"]*"[^"]*")*[^"]*$)/', $val) as $kvp) { + if (preg_match_all('/<[^>]+>|[^=]+/', $kvp, $matches)) { + $m = $matches[0]; + if (isset($m[1])) { + $part[trim($m[0], $trimmed)] = trim($m[1], $trimmed); + } else { + $part[] = trim($m[0], $trimmed); + } + } + } + if ($part) { + $params[] = $part; + } + } + + return $params; +} + +/** + * Converts an array of header values that may contain comma separated + * headers into an array of headers with no comma separated values. + * + * @param string|array $header Header to normalize. + * + * @return array Returns the normalized header field values. + */ +function normalize_header($header) +{ + if (!is_array($header)) { + return array_map('trim', explode(',', $header)); + } + + $result = []; + foreach ($header as $value) { + foreach ((array) $value as $v) { + if (strpos($v, ',') === false) { + $result[] = $v; + continue; + } + foreach (preg_split('/,(?=([^"]*"[^"]*")*[^"]*$)/', $v) as $vv) { + $result[] = trim($vv); + } + } + } + + return $result; +} + +/** + * Clone and modify a request with the given changes. + * + * The changes can be one of: + * - method: (string) Changes the HTTP method. + * - set_headers: (array) Sets the given headers. + * - remove_headers: (array) Remove the given headers. + * - body: (mixed) Sets the given body. + * - uri: (UriInterface) Set the URI. + * - query: (string) Set the query string value of the URI. + * - version: (string) Set the protocol version. + * + * @param RequestInterface $request Request to clone and modify. + * @param array $changes Changes to apply. + * + * @return RequestInterface + */ +function modify_request(RequestInterface $request, array $changes) +{ + if (!$changes) { + return $request; + } + + $headers = $request->getHeaders(); + + if (!isset($changes['uri'])) { + $uri = $request->getUri(); + } else { + // Remove the host header if one is on the URI + if ($host = $changes['uri']->getHost()) { + $changes['set_headers']['Host'] = $host; + } + $uri = $changes['uri']; + } + + if (!empty($changes['remove_headers'])) { + $headers = _caseless_remove($changes['remove_headers'], $headers); + } + + if (!empty($changes['set_headers'])) { + $headers = _caseless_remove(array_keys($changes['set_headers']), $headers); + $headers = $changes['set_headers'] + $headers; + } + + if (isset($changes['query'])) { + $uri = $uri->withQuery($changes['query']); + } + + return new Request( + isset($changes['method']) ? $changes['method'] : $request->getMethod(), + $uri, + $headers, + isset($changes['body']) ? $changes['body'] : $request->getBody(), + isset($changes['version']) + ? $changes['version'] + : $request->getProtocolVersion() + ); +} + +/** + * Attempts to rewind a message body and throws an exception on failure. + * + * The body of the message will only be rewound if a call to `tell()` returns a + * value other than `0`. + * + * @param MessageInterface $message Message to rewind + * + * @throws \RuntimeException + */ +function rewind_body(MessageInterface $message) +{ + $body = $message->getBody(); + + if ($body->tell()) { + $body->rewind(); + } +} + +/** + * Safely opens a PHP stream resource using a filename. + * + * When fopen fails, PHP normally raises a warning. This function adds an + * error handler that checks for errors and throws an exception instead. + * + * @param string $filename File to open + * @param string $mode Mode used to open the file + * + * @return resource + * @throws \RuntimeException if the file cannot be opened + */ +function try_fopen($filename, $mode) +{ + $ex = null; + set_error_handler(function () use ($filename, $mode, &$ex) { + $ex = new \RuntimeException(sprintf( + 'Unable to open %s using mode %s: %s', + $filename, + $mode, + func_get_args()[1] + )); + }); + + $handle = fopen($filename, $mode); + restore_error_handler(); + + if ($ex) { + /** @var $ex \RuntimeException */ + throw $ex; + } + + return $handle; +} + +/** + * Copy the contents of a stream into a string until the given number of + * bytes have been read. + * + * @param StreamInterface $stream Stream to read + * @param int $maxLen Maximum number of bytes to read. Pass -1 + * to read the entire stream. + * @return string + * @throws \RuntimeException on error. + */ +function copy_to_string(StreamInterface $stream, $maxLen = -1) +{ + $buffer = ''; + + if ($maxLen === -1) { + while (!$stream->eof()) { + $buf = $stream->read(1048576); + // Using a loose equality here to match on '' and false. + if ($buf == null) { + break; + } + $buffer .= $buf; + } + return $buffer; + } + + $len = 0; + while (!$stream->eof() && $len < $maxLen) { + $buf = $stream->read($maxLen - $len); + // Using a loose equality here to match on '' and false. + if ($buf == null) { + break; + } + $buffer .= $buf; + $len = strlen($buffer); + } + + return $buffer; +} + +/** + * Copy the contents of a stream into another stream until the given number + * of bytes have been read. + * + * @param StreamInterface $source Stream to read from + * @param StreamInterface $dest Stream to write to + * @param int $maxLen Maximum number of bytes to read. Pass -1 + * to read the entire stream. + * + * @throws \RuntimeException on error. + */ +function copy_to_stream( + StreamInterface $source, + StreamInterface $dest, + $maxLen = -1 +) { + if ($maxLen === -1) { + while (!$source->eof()) { + if (!$dest->write($source->read(1048576))) { + break; + } + } + return; + } + + $bytes = 0; + while (!$source->eof()) { + $buf = $source->read($maxLen - $bytes); + if (!($len = strlen($buf))) { + break; + } + $bytes += $len; + $dest->write($buf); + if ($bytes == $maxLen) { + break; + } + } +} + +/** + * Calculate a hash of a Stream + * + * @param StreamInterface $stream Stream to calculate the hash for + * @param string $algo Hash algorithm (e.g. md5, crc32, etc) + * @param bool $rawOutput Whether or not to use raw output + * + * @return string Returns the hash of the stream + * @throws \RuntimeException on error. + */ +function hash( + StreamInterface $stream, + $algo, + $rawOutput = false +) { + $pos = $stream->tell(); + + if ($pos > 0) { + $stream->rewind(); + } + + $ctx = hash_init($algo); + while (!$stream->eof()) { + hash_update($ctx, $stream->read(1048576)); + } + + $out = hash_final($ctx, (bool) $rawOutput); + $stream->seek($pos); + + return $out; +} + +/** + * Read a line from the stream up to the maximum allowed buffer length + * + * @param StreamInterface $stream Stream to read from + * @param int $maxLength Maximum buffer length + * + * @return string|bool + */ +function readline(StreamInterface $stream, $maxLength = null) +{ + $buffer = ''; + $size = 0; + + while (!$stream->eof()) { + // Using a loose equality here to match on '' and false. + if (null == ($byte = $stream->read(1))) { + return $buffer; + } + $buffer .= $byte; + // Break when a new line is found or the max length - 1 is reached + if ($byte == PHP_EOL || ++$size == $maxLength - 1) { + break; + } + } + + return $buffer; +} + +/** + * Parses a request message string into a request object. + * + * @param string $message Request message string. + * + * @return Request + */ +function parse_request($message) +{ + $data = _parse_message($message); + if (!preg_match('/^[a-zA-Z]+\s+\/.*/', $data['start-line'])) { + throw new \InvalidArgumentException('Invalid request string'); + } + $parts = explode(' ', $data['start-line'], 3); + $version = isset($parts[2]) ? explode('/', $parts[2])[1] : '1.1'; + + return new Request( + $parts[0], + _parse_request_uri($parts[1], $data['headers']), + $data['headers'], + $data['body'], + $version + ); +} + +/** + * Parses a response message string into a response object. + * + * @param string $message Response message string. + * + * @return Response + */ +function parse_response($message) +{ + $data = _parse_message($message); + if (!preg_match('/^HTTP\/.* [0-9]{3} .*/', $data['start-line'])) { + throw new \InvalidArgumentException('Invalid response string'); + } + $parts = explode(' ', $data['start-line'], 3); + + return new Response( + $parts[1], + $data['headers'], + $data['body'], + explode('/', $parts[0])[1], + isset($parts[2]) ? $parts[2] : null + ); +} + +/** + * Parse a query string into an associative array. + * + * If multiple values are found for the same key, the value of that key + * value pair will become an array. This function does not parse nested + * PHP style arrays into an associative array (e.g., foo[a]=1&foo[b]=2 will + * be parsed into ['foo[a]' => '1', 'foo[b]' => '2']). + * + * @param string $str Query string to parse + * @param bool|string $urlEncoding How the query string is encoded + * + * @return array + */ +function parse_query($str, $urlEncoding = true) +{ + $result = []; + + if ($str === '') { + return $result; + } + + if ($urlEncoding === true) { + $decoder = function ($value) { + return rawurldecode(str_replace('+', ' ', $value)); + }; + } elseif ($urlEncoding == PHP_QUERY_RFC3986) { + $decoder = 'rawurldecode'; + } elseif ($urlEncoding == PHP_QUERY_RFC1738) { + $decoder = 'urldecode'; + } else { + $decoder = function ($str) { return $str; }; + } + + foreach (explode('&', $str) as $kvp) { + $parts = explode('=', $kvp, 2); + $key = $decoder($parts[0]); + $value = isset($parts[1]) ? $decoder($parts[1]) : null; + if (!isset($result[$key])) { + $result[$key] = $value; + } else { + if (!is_array($result[$key])) { + $result[$key] = [$result[$key]]; + } + $result[$key][] = $value; + } + } + + return $result; +} + +/** + * Build a query string from an array of key value pairs. + * + * This function can use the return value of parseQuery() to build a query + * string. This function does not modify the provided keys when an array is + * encountered (like http_build_query would). + * + * @param array $params Query string parameters. + * @param int|false $encoding Set to false to not encode, PHP_QUERY_RFC3986 + * to encode using RFC3986, or PHP_QUERY_RFC1738 + * to encode using RFC1738. + * @return string + */ +function build_query(array $params, $encoding = PHP_QUERY_RFC3986) +{ + if (!$params) { + return ''; + } + + if ($encoding === false) { + $encoder = function ($str) { return $str; }; + } elseif ($encoding == PHP_QUERY_RFC3986) { + $encoder = 'rawurlencode'; + } elseif ($encoding == PHP_QUERY_RFC1738) { + $encoder = 'urlencode'; + } else { + throw new \InvalidArgumentException('Invalid type'); + } + + $qs = ''; + foreach ($params as $k => $v) { + $k = $encoder($k); + if (!is_array($v)) { + $qs .= $k; + if ($v !== null) { + $qs .= '=' . $encoder($v); + } + $qs .= '&'; + } else { + foreach ($v as $vv) { + $qs .= $k; + if ($vv !== null) { + $qs .= '=' . $encoder($vv); + } + $qs .= '&'; + } + } + } + + return $qs ? (string) substr($qs, 0, -1) : ''; +} + +/** + * Determines the mimetype of a file by looking at its extension. + * + * @param $filename + * + * @return null|string + */ +function mimetype_from_filename($filename) +{ + return mimetype_from_extension(pathinfo($filename, PATHINFO_EXTENSION)); +} + +/** + * Maps a file extensions to a mimetype. + * + * @param $extension string The file extension. + * + * @return string|null + * @link http://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x/conf/mime.types + */ +function mimetype_from_extension($extension) +{ + static $mimetypes = [ + '7z' => 'application/x-7z-compressed', + 'aac' => 'audio/x-aac', + 'ai' => 'application/postscript', + 'aif' => 'audio/x-aiff', + 'asc' => 'text/plain', + 'asf' => 'video/x-ms-asf', + 'atom' => 'application/atom+xml', + 'avi' => 'video/x-msvideo', + 'bmp' => 'image/bmp', + 'bz2' => 'application/x-bzip2', + 'cer' => 'application/pkix-cert', + 'crl' => 'application/pkix-crl', + 'crt' => 'application/x-x509-ca-cert', + 'css' => 'text/css', + 'csv' => 'text/csv', + 'cu' => 'application/cu-seeme', + 'deb' => 'application/x-debian-package', + 'doc' => 'application/msword', + 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', + 'dvi' => 'application/x-dvi', + 'eot' => 'application/vnd.ms-fontobject', + 'eps' => 'application/postscript', + 'epub' => 'application/epub+zip', + 'etx' => 'text/x-setext', + 'flac' => 'audio/flac', + 'flv' => 'video/x-flv', + 'gif' => 'image/gif', + 'gz' => 'application/gzip', + 'htm' => 'text/html', + 'html' => 'text/html', + 'ico' => 'image/x-icon', + 'ics' => 'text/calendar', + 'ini' => 'text/plain', + 'iso' => 'application/x-iso9660-image', + 'jar' => 'application/java-archive', + 'jpe' => 'image/jpeg', + 'jpeg' => 'image/jpeg', + 'jpg' => 'image/jpeg', + 'js' => 'text/javascript', + 'json' => 'application/json', + 'latex' => 'application/x-latex', + 'log' => 'text/plain', + 'm4a' => 'audio/mp4', + 'm4v' => 'video/mp4', + 'mid' => 'audio/midi', + 'midi' => 'audio/midi', + 'mov' => 'video/quicktime', + 'mp3' => 'audio/mpeg', + 'mp4' => 'video/mp4', + 'mp4a' => 'audio/mp4', + 'mp4v' => 'video/mp4', + 'mpe' => 'video/mpeg', + 'mpeg' => 'video/mpeg', + 'mpg' => 'video/mpeg', + 'mpg4' => 'video/mp4', + 'oga' => 'audio/ogg', + 'ogg' => 'audio/ogg', + 'ogv' => 'video/ogg', + 'ogx' => 'application/ogg', + 'pbm' => 'image/x-portable-bitmap', + 'pdf' => 'application/pdf', + 'pgm' => 'image/x-portable-graymap', + 'png' => 'image/png', + 'pnm' => 'image/x-portable-anymap', + 'ppm' => 'image/x-portable-pixmap', + 'ppt' => 'application/vnd.ms-powerpoint', + 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', + 'ps' => 'application/postscript', + 'qt' => 'video/quicktime', + 'rar' => 'application/x-rar-compressed', + 'ras' => 'image/x-cmu-raster', + 'rss' => 'application/rss+xml', + 'rtf' => 'application/rtf', + 'sgm' => 'text/sgml', + 'sgml' => 'text/sgml', + 'svg' => 'image/svg+xml', + 'swf' => 'application/x-shockwave-flash', + 'tar' => 'application/x-tar', + 'tif' => 'image/tiff', + 'tiff' => 'image/tiff', + 'torrent' => 'application/x-bittorrent', + 'ttf' => 'application/x-font-ttf', + 'txt' => 'text/plain', + 'wav' => 'audio/x-wav', + 'webm' => 'video/webm', + 'wma' => 'audio/x-ms-wma', + 'wmv' => 'video/x-ms-wmv', + 'woff' => 'application/x-font-woff', + 'wsdl' => 'application/wsdl+xml', + 'xbm' => 'image/x-xbitmap', + 'xls' => 'application/vnd.ms-excel', + 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', + 'xml' => 'application/xml', + 'xpm' => 'image/x-xpixmap', + 'xwd' => 'image/x-xwindowdump', + 'yaml' => 'text/yaml', + 'yml' => 'text/yaml', + 'zip' => 'application/zip', + ]; + + $extension = strtolower($extension); + + return isset($mimetypes[$extension]) + ? $mimetypes[$extension] + : null; +} + +/** + * Parses an HTTP message into an associative array. + * + * The array contains the "start-line" key containing the start line of + * the message, "headers" key containing an associative array of header + * array values, and a "body" key containing the body of the message. + * + * @param string $message HTTP request or response to parse. + * + * @return array + * @internal + */ +function _parse_message($message) +{ + if (!$message) { + throw new \InvalidArgumentException('Invalid message'); + } + + // Iterate over each line in the message, accounting for line endings + $lines = preg_split('/(\\r?\\n)/', $message, -1, PREG_SPLIT_DELIM_CAPTURE); + $result = ['start-line' => array_shift($lines), 'headers' => [], 'body' => '']; + array_shift($lines); + + for ($i = 0, $totalLines = count($lines); $i < $totalLines; $i += 2) { + $line = $lines[$i]; + // If two line breaks were encountered, then this is the end of body + if (empty($line)) { + if ($i < $totalLines - 1) { + $result['body'] = implode('', array_slice($lines, $i + 2)); + } + break; + } + if (strpos($line, ':')) { + $parts = explode(':', $line, 2); + $key = trim($parts[0]); + $value = isset($parts[1]) ? trim($parts[1]) : ''; + $result['headers'][$key][] = $value; + } + } + + return $result; +} + +/** + * Constructs a URI for an HTTP request message. + * + * @param string $path Path from the start-line + * @param array $headers Array of headers (each value an array). + * + * @return string + * @internal + */ +function _parse_request_uri($path, array $headers) +{ + $hostKey = array_filter(array_keys($headers), function ($k) { + return strtolower($k) === 'host'; + }); + + // If no host is found, then a full URI cannot be constructed. + if (!$hostKey) { + return $path; + } + + $host = $headers[reset($hostKey)][0]; + $scheme = substr($host, -4) === ':443' ? 'https' : 'http'; + + return $scheme . '://' . $host . '/' . ltrim($path, '/'); +} + +/** @internal */ +function _caseless_remove($keys, array $data) +{ + $result = []; + + foreach ($keys as &$key) { + $key = strtolower($key); + } + + foreach ($data as $k => $v) { + if (!in_array(strtolower($k), $keys)) { + $result[$k] = $v; + } + } + + return $result; +} diff --git a/lib/aws-sdk/GuzzleHttp/RedirectMiddleware.php b/lib/aws-sdk/GuzzleHttp/RedirectMiddleware.php new file mode 100644 index 0000000..99d9e7e --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/RedirectMiddleware.php @@ -0,0 +1,189 @@ + 5, + 'protocols' => ['http', 'https'], + 'strict' => false, + 'referer' => false + ]; + + /** @var callable */ + private $nextHandler; + + /** + * @param callable $nextHandler Next handler to invoke. + */ + public function __construct(callable $nextHandler) + { + $this->nextHandler = $nextHandler; + } + + /** + * @param RequestInterface $request + * @param array $options + * + * @return PromiseInterface + */ + public function __invoke(RequestInterface $request, array $options) + { + $fn = $this->nextHandler; + + if (empty($options['allow_redirects'])) { + return $fn($request, $options); + } + + if ($options['allow_redirects'] === true) { + $options['allow_redirects'] = self::$defaultSettings; + } elseif (!is_array($options['allow_redirects'])) { + throw new \InvalidArgumentException('allow_redirects must be true, false, or array'); + } else { + // Merge the default settings with the provided settings + $options['allow_redirects'] += self::$defaultSettings; + } + + if (empty($options['allow_redirects']['max'])) { + return $fn($request, $options); + } + + return $fn($request, $options) + ->then(function (ResponseInterface $response) use ($request, $options) { + return $this->checkRedirect($request, $options, $response); + }); + } + + /** + * @param RequestInterface $request + * @param array $options + * @param ResponseInterface|PromiseInterface $response + * + * @return ResponseInterface|PromiseInterface + */ + public function checkRedirect( + RequestInterface $request, + array $options, + ResponseInterface $response + ) { + if (substr($response->getStatusCode(), 0, 1) != '3' + || !$response->hasHeader('Location') + ) { + return $response; + } + + $this->guardMax($request, $options); + $nextRequest = $this->modifyRequest($request, $options, $response); + + return $this($nextRequest, $options); + } + + private function guardMax(RequestInterface $request, array &$options) + { + $current = isset($options['__redirect_count']) + ? $options['__redirect_count'] + : 0; + $options['__redirect_count'] = $current + 1; + $max = $options['allow_redirects']['max']; + + if ($options['__redirect_count'] > $max) { + throw new TooManyRedirectsException( + "Will not follow more than {$max} redirects", + $request + ); + } + } + + /** + * @param RequestInterface $request + * @param array $options + * @param ResponseInterface $response + * + * @return RequestInterface + */ + public function modifyRequest( + RequestInterface $request, + array $options, + ResponseInterface $response + ) { + // Request modifications to apply. + $modify = []; + $protocols = $options['allow_redirects']['protocols']; + + // Use a GET request if this is an entity enclosing request and we are + // not forcing RFC compliance, but rather emulating what all browsers + // would do. + $statusCode = $response->getStatusCode(); + if ($statusCode == 303 || + ($statusCode <= 302 && $request->getBody() && !$options['allow_redirects']['strict']) + ) { + $modify['method'] = 'GET'; + $modify['body'] = ''; + } + + $modify['uri'] = $this->redirectUri($request, $response, $protocols); + Psr7\rewind_body($request); + + // Add the Referer header if it is told to do so and only + // add the header if we are not redirecting from https to http. + if ($options['allow_redirects']['referer'] + && $modify['uri']->getScheme() === $request->getUri()->getScheme() + ) { + $uri = $request->getUri()->withUserInfo('', ''); + $modify['set_headers']['Referer'] = (string) $uri; + } else { + $modify['remove_headers'][] = 'Referer'; + } + + return Psr7\modify_request($request, $modify); + } + + /** + * Set the appropriate URL on the request based on the location header + * + * @param RequestInterface $request + * @param ResponseInterface $response + * @param array $protocols + * + * @return UriInterface + */ + private function redirectUri( + RequestInterface $request, + ResponseInterface $response, + array $protocols + ) { + $location = Psr7\Uri::resolve( + $request->getUri(), + $response->getHeaderLine('Location') + ); + + // Ensure that the redirect URI is allowed based on the protocols. + if (!in_array($location->getScheme(), $protocols)) { + throw new BadResponseException( + sprintf( + 'Redirect URI, %s, does not use one of the allowed redirect protocols: %s', + $location, + implode(', ', $protocols) + ), + $request, + $response + ); + } + + return $location; + } +} diff --git a/lib/aws-sdk/GuzzleHttp/RequestOptions.php b/lib/aws-sdk/GuzzleHttp/RequestOptions.php new file mode 100644 index 0000000..6f4f159 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/RequestOptions.php @@ -0,0 +1,211 @@ +decider = $decider; + $this->nextHandler = $nextHandler; + $this->delay = $delay ?: __CLASS__ . '::exponentialDelay'; + } + + /** + * Default exponential backoff delay function. + * + * @param $retries + * + * @return int + */ + public static function exponentialDelay($retries) + { + return (int) pow(2, $retries - 1); + } + + /** + * @param RequestInterface $request + * @param array $options + * + * @return PromiseInterface + */ + public function __invoke(RequestInterface $request, array $options) + { + if (!isset($options['retries'])) { + $options['retries'] = 0; + } + + $fn = $this->nextHandler; + return $fn($request, $options) + ->then( + $this->onFulfilled($request, $options), + $this->onRejected($request, $options) + ); + } + + private function onFulfilled(RequestInterface $req, array $options) + { + return function ($value) use ($req, $options) { + if (!call_user_func( + $this->decider, + $options['retries'], + $req, + $value, + null + )) { + return $value; + } + return $this->doRetry($req, $options); + }; + } + + private function onRejected(RequestInterface $req, array $options) + { + return function ($reason) use ($req, $options) { + if (!call_user_func( + $this->decider, + $options['retries'], + $req, + null, + $reason + )) { + return new RejectedPromise($reason); + } + return $this->doRetry($req, $options); + }; + } + + private function doRetry(RequestInterface $request, array $options) + { + $options['delay'] = call_user_func($this->delay, ++$options['retries']); + + return $this($request, $options); + } +} diff --git a/lib/aws-sdk/Guzzle/Parser/UriTemplate/UriTemplate.php b/lib/aws-sdk/GuzzleHttp/UriTemplate.php similarity index 59% rename from lib/aws-sdk/Guzzle/Parser/UriTemplate/UriTemplate.php rename to lib/aws-sdk/GuzzleHttp/UriTemplate.php index 0df032f..55dfeb5 100644 --- a/lib/aws-sdk/Guzzle/Parser/UriTemplate/UriTemplate.php +++ b/lib/aws-sdk/GuzzleHttp/UriTemplate.php @@ -1,61 +1,54 @@ true, '#' => true, '.' => true, '/' => true, ';' => true, '?' => true, '&' => true + '' => array('prefix' => '', 'joiner' => ',', 'query' => false), + '+' => array('prefix' => '', 'joiner' => ',', 'query' => false), + '#' => array('prefix' => '#', 'joiner' => ',', 'query' => false), + '.' => array('prefix' => '.', 'joiner' => '.', 'query' => false), + '/' => array('prefix' => '/', 'joiner' => '/', 'query' => false), + ';' => array('prefix' => ';', 'joiner' => ';', 'query' => true), + '?' => array('prefix' => '?', 'joiner' => '&', 'query' => true), + '&' => array('prefix' => '&', 'joiner' => '&', 'query' => true) ); /** @var array Delimiters */ - private static $delims = array( - ':', '/', '?', '#', '[', ']', '@', '!', '$', '&', '\'', '(', ')', '*', '+', ',', ';', '=' - ); + private static $delims = array(':', '/', '?', '#', '[', ']', '@', '!', '$', + '&', '\'', '(', ')', '*', '+', ',', ';', '='); /** @var array Percent encoded delimiters */ - private static $delimsPct = array( - '%3A', '%2F', '%3F', '%23', '%5B', '%5D', '%40', '%21', '%24', '%26', '%27', '%28', '%29', '%2A', '%2B', '%2C', - '%3B', '%3D' - ); + private static $delimsPct = array('%3A', '%2F', '%3F', '%23', '%5B', '%5D', + '%40', '%21', '%24', '%26', '%27', '%28', '%29', '%2A', '%2B', '%2C', + '%3B', '%3D'); public function expand($template, array $variables) { - if ($this->regex == self::DEFAULT_PATTERN && false === strpos($template, '{')) { + if (false === strpos($template, '{')) { return $template; } $this->template = $template; $this->variables = $variables; - return preg_replace_callback($this->regex, array($this, 'expandMatch'), $this->template); - } - - /** - * Set the regex patten used to expand URI templates - * - * @param string $regexPattern - */ - public function setRegex($regexPattern) - { - $this->regex = $regexPattern; + return preg_replace_callback( + '/\{([^\}]+)\}/', + [$this, 'expandMatch'], + $this->template + ); } /** @@ -67,23 +60,22 @@ class UriTemplate implements UriTemplateInterface */ private function parseExpression($expression) { - // Check for URI operators - $operator = ''; + $result = array(); if (isset(self::$operatorHash[$expression[0]])) { - $operator = $expression[0]; + $result['operator'] = $expression[0]; $expression = substr($expression, 1); + } else { + $result['operator'] = ''; } - $values = explode(',', $expression); - foreach ($values as &$value) { + foreach (explode(',', $expression) as $value) { $value = trim($value); $varspec = array(); - $substrPos = strpos($value, ':'); - if ($substrPos) { - $varspec['value'] = substr($value, 0, $substrPos); + if ($colonPos = strpos($value, ':')) { + $varspec['value'] = substr($value, 0, $colonPos); $varspec['modifier'] = ':'; - $varspec['position'] = (int) substr($value, $substrPos + 1); + $varspec['position'] = (int) substr($value, $colonPos + 1); } elseif (substr($value, -1) == '*') { $varspec['modifier'] = '*'; $varspec['value'] = substr($value, 0, -1); @@ -91,13 +83,10 @@ class UriTemplate implements UriTemplateInterface $varspec['value'] = (string) $value; $varspec['modifier'] = ''; } - $value = $varspec; + $result['values'][] = $varspec; } - return array( - 'operator' => $operator, - 'values' => $values - ); + return $result; } /** @@ -109,39 +98,22 @@ class UriTemplate implements UriTemplateInterface */ private function expandMatch(array $matches) { - static $rfc1738to3986 = array( - '+' => '%20', - '%7e' => '~' - ); + static $rfc1738to3986 = array('+' => '%20', '%7e' => '~'); - $parsed = self::parseExpression($matches[1]); $replacements = array(); - - $prefix = $parsed['operator']; - $joiner = $parsed['operator']; - $useQueryString = false; - if ($parsed['operator'] == '?') { - $joiner = '&'; - $useQueryString = true; - } elseif ($parsed['operator'] == '&') { - $useQueryString = true; - } elseif ($parsed['operator'] == '#') { - $joiner = ','; - } elseif ($parsed['operator'] == ';') { - $useQueryString = true; - } elseif ($parsed['operator'] == '' || $parsed['operator'] == '+') { - $joiner = ','; - $prefix = ''; - } + $parsed = self::parseExpression($matches[1]); + $prefix = self::$operatorHash[$parsed['operator']]['prefix']; + $joiner = self::$operatorHash[$parsed['operator']]['joiner']; + $useQuery = self::$operatorHash[$parsed['operator']]['query']; foreach ($parsed['values'] as $value) { - if (!array_key_exists($value['value'], $this->variables) || $this->variables[$value['value']] === null) { + if (!isset($this->variables[$value['value']])) { continue; } $variable = $this->variables[$value['value']]; - $actuallyUseQueryString = $useQueryString; + $actuallyUseQuery = $useQuery; $expanded = ''; if (is_array($variable)) { @@ -159,7 +131,9 @@ class UriTemplate implements UriTemplateInterface if (!$isNestedArray) { $var = rawurlencode($var); - if ($parsed['operator'] == '+' || $parsed['operator'] == '#') { + if ($parsed['operator'] == '+' || + $parsed['operator'] == '#' + ) { $var = $this->decodeReserved($var); } } @@ -167,12 +141,16 @@ class UriTemplate implements UriTemplateInterface if ($value['modifier'] == '*') { if ($isAssoc) { if ($isNestedArray) { - // Nested arrays must allow for deeply nested structures - $var = strtr(http_build_query(array($key => $var)), $rfc1738to3986); + // Nested arrays must allow for deeply nested + // structures. + $var = strtr( + http_build_query([$key => $var]), + $rfc1738to3986 + ); } else { $var = $key . '=' . $var; } - } elseif ($key > 0 && $actuallyUseQueryString) { + } elseif ($key > 0 && $actuallyUseQuery) { $var = $value['value'] . '=' . $var; } } @@ -181,17 +159,20 @@ class UriTemplate implements UriTemplateInterface } if (empty($variable)) { - $actuallyUseQueryString = false; + $actuallyUseQuery = false; } elseif ($value['modifier'] == '*') { $expanded = implode($joiner, $kvp); if ($isAssoc) { - // Don't prepend the value name when using the explode modifier with an associative array - $actuallyUseQueryString = false; + // Don't prepend the value name when using the explode + // modifier with an associative array. + $actuallyUseQuery = false; } } else { if ($isAssoc) { - // When an associative array is encountered and the explode modifier is not set, then the - // result must be a comma separated list of keys followed by their respective values. + // When an associative array is encountered and the + // explode modifier is not set, then the result must be + // a comma separated list of keys followed by their + // respective values. foreach ($kvp as $k => &$v) { $v = $k . ',' . $v; } @@ -209,7 +190,7 @@ class UriTemplate implements UriTemplateInterface } } - if ($actuallyUseQueryString) { + if ($actuallyUseQuery) { if (!$expanded && $joiner != '&') { $expanded = $value['value']; } else { @@ -229,7 +210,12 @@ class UriTemplate implements UriTemplateInterface } /** - * Determines if an array is associative + * Determines if an array is associative. + * + * This makes the assumption that input arrays are sequences or hashes. + * This assumption is a tradeoff for accuracy in favor of speed, but it + * should work in almost every case where input is supplied for a URI + * template. * * @param array $array Array to check * @@ -237,11 +223,12 @@ class UriTemplate implements UriTemplateInterface */ private function isAssoc(array $array) { - return (bool) count(array_filter(array_keys($array), 'is_string')); + return $array && array_keys($array)[0] !== 0; } /** - * Removes percent encoding on reserved characters (used with + and # modifiers) + * Removes percent encoding on reserved characters (used with + and # + * modifiers). * * @param string $string String to fix * diff --git a/lib/aws-sdk/GuzzleHttp/functions.php b/lib/aws-sdk/GuzzleHttp/functions.php new file mode 100644 index 0000000..70f4881 --- /dev/null +++ b/lib/aws-sdk/GuzzleHttp/functions.php @@ -0,0 +1,206 @@ +expand($template, $variables); +} + +/** + * Debug function used to describe the provided value type and class. + * + * @param mixed $input + * + * @return string Returns a string containing the type of the variable and + * if a class is provided, the class name. + */ +function describe_type($input) +{ + switch (gettype($input)) { + case 'object': + return 'object(' . get_class($input) . ')'; + case 'array': + return 'array(' . count($input) . ')'; + default: + ob_start(); + var_dump($input); + // normalize float vs double + return str_replace('double(', 'float(', rtrim(ob_get_clean())); + } +} + +/** + * Parses an array of header lines into an associative array of headers. + * + * @param array $lines Header lines array of strings in the following + * format: "Name: Value" + * @return array + */ +function headers_from_lines($lines) +{ + $headers = []; + + foreach ($lines as $line) { + $parts = explode(':', $line, 2); + $headers[trim($parts[0])][] = isset($parts[1]) + ? trim($parts[1]) + : null; + } + + return $headers; +} + +/** + * Returns a debug stream based on the provided variable. + * + * @param mixed $value Optional value + * + * @return resource + */ +function debug_resource($value = null) +{ + if (is_resource($value)) { + return $value; + } elseif (defined('STDOUT')) { + return STDOUT; + } + + return fopen('php://output', 'w'); +} + +/** + * Chooses and creates a default handler to use based on the environment. + * + * The returned handler is not wrapped by any default middlewares. + * + * @throws \RuntimeException if no viable Handler is available. + * @return callable Returns the best handler for the given system. + */ +function choose_handler() +{ + $handler = null; + if (extension_loaded('curl')) { + $handler = Proxy::wrapSync(new CurlMultiHandler(), new CurlHandler()); + } + + if (ini_get('allow_url_fopen')) { + $handler = $handler + ? Proxy::wrapStreaming($handler, new StreamHandler()) + : new StreamHandler(); + } elseif (!$handler) { + throw new \RuntimeException('GuzzleHttp requires cURL, the ' + . 'allow_url_fopen ini setting, or a custom HTTP handler.'); + } + + return $handler; +} + +/** + * Get the default User-Agent string to use with Guzzle + * + * @return string + */ +function default_user_agent() +{ + static $defaultAgent = ''; + + if (!$defaultAgent) { + $defaultAgent = 'GuzzleHttp/' . Client::VERSION; + if (extension_loaded('curl')) { + $defaultAgent .= ' curl/' . \curl_version()['version']; + } + $defaultAgent .= ' PHP/' . PHP_VERSION; + } + + return $defaultAgent; +} + +/** + * Returns the default cacert bundle for the current system. + * + * First, the openssl.cafile and curl.cainfo php.ini settings are checked. + * If those settings are not configured, then the common locations for + * bundles found on Red Hat, CentOS, Fedora, Ubuntu, Debian, FreeBSD, OS X + * and Windows are checked. If any of these file locations are found on + * disk, they will be utilized. + * + * Note: the result of this function is cached for subsequent calls. + * + * @return string + * @throws \RuntimeException if no bundle can be found. + */ +function default_ca_bundle() +{ + static $cached = null; + static $cafiles = [ + // Red Hat, CentOS, Fedora (provided by the ca-certificates package) + '/etc/pki/tls/certs/ca-bundle.crt', + // Ubuntu, Debian (provided by the ca-certificates package) + '/etc/ssl/certs/ca-certificates.crt', + // FreeBSD (provided by the ca_root_nss package) + '/usr/local/share/certs/ca-root-nss.crt', + // OS X provided by homebrew (using the default path) + '/usr/local/etc/openssl/cert.pem', + // Windows? + 'C:\\windows\\system32\\curl-ca-bundle.crt', + 'C:\\windows\\curl-ca-bundle.crt', + ]; + + if ($cached) { + return $cached; + } + + if ($ca = ini_get('openssl.cafile')) { + return $cached = $ca; + } + + if ($ca = ini_get('curl.cainfo')) { + return $cached = $ca; + } + + foreach ($cafiles as $filename) { + if (file_exists($filename)) { + return $cached = $filename; + } + } + + throw new \RuntimeException(<<< EOT +No system CA bundle could be found in any of the the common system locations. +PHP versions earlier than 5.6 are not properly configured to use the system's +CA bundle by default. In order to verify peer certificates, you will need to +supply the path on disk to a certificate bundle to the 'verify' request +option: http://docs.guzzlephp.org/en/latest/clients.html#verify. If you do not +need a specific certificate bundle, then Mozilla provides a commonly used CA +bundle which can be downloaded here (provided by the maintainer of cURL): +https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt. Once +you have a CA bundle available on disk, you can set the 'openssl.cafile' PHP +ini setting to point to the path to the file, allowing you to omit the 'verify' +request option. See http://curl.haxx.se/docs/sslcerts.html for more +information. +EOT + ); +} diff --git a/lib/aws-sdk/JmesPath/AstRuntime.php b/lib/aws-sdk/JmesPath/AstRuntime.php new file mode 100644 index 0000000..db8a60e --- /dev/null +++ b/lib/aws-sdk/JmesPath/AstRuntime.php @@ -0,0 +1,47 @@ +interpreter = new TreeInterpreter($fnDispatcher); + $this->parser = $parser ?: new Parser(); + } + + /** + * Returns data from the provided input that matches a given JMESPath + * expression. + * + * @param string $expression JMESPath expression to evaluate + * @param mixed $data Data to search. This data should be data that + * is similar to data returned from json_decode + * using associative arrays rather than objects. + * + * @return mixed|null Returns the matching data or null + */ + public function __invoke($expression, $data) + { + if (!isset($this->cache[$expression])) { + // Clear the AST cache when it hits 1024 entries + if (++$this->cachedCount > 1024) { + $this->cache = []; + $this->cachedCount = 0; + } + $this->cache[$expression] = $this->parser->parse($expression); + } + + return $this->interpreter->visit($this->cache[$expression], $data); + } +} diff --git a/lib/aws-sdk/JmesPath/CompilerRuntime.php b/lib/aws-sdk/JmesPath/CompilerRuntime.php new file mode 100644 index 0000000..f2becb9 --- /dev/null +++ b/lib/aws-sdk/JmesPath/CompilerRuntime.php @@ -0,0 +1,83 @@ +parser = $parser ?: new Parser(); + $this->compiler = new TreeCompiler(); + $dir = $dir ?: sys_get_temp_dir(); + + if (!is_dir($dir) && !mkdir($dir, 0755, true)) { + throw new \RuntimeException("Unable to create cache directory: $dir"); + } + + $this->cacheDir = realpath($dir); + $this->interpreter = new TreeInterpreter(); + } + + /** + * Returns data from the provided input that matches a given JMESPath + * expression. + * + * @param string $expression JMESPath expression to evaluate + * @param mixed $data Data to search. This data should be data that + * is similar to data returned from json_decode + * using associative arrays rather than objects. + * + * @return mixed|null Returns the matching data or null + * @throws \RuntimeException + */ + public function __invoke($expression, $data) + { + $functionName = 'jmespath_' . md5($expression); + + if (!function_exists($functionName)) { + $filename = "{$this->cacheDir}/{$functionName}.php"; + if (!file_exists($filename)) { + $this->compile($filename, $expression, $functionName); + } + require $filename; + } + + return $functionName($this->interpreter, $data); + } + + private function compile($filename, $expression, $functionName) + { + $code = $this->compiler->visit( + $this->parser->parse($expression), + $functionName, + $expression + ); + + if (!file_put_contents($filename, $code)) { + throw new \RuntimeException(sprintf( + 'Unable to write the compiled PHP code to: %s (%s)', + $filename, + var_export(error_get_last(), true) + )); + } + } +} diff --git a/lib/aws-sdk/JmesPath/DebugRuntime.php b/lib/aws-sdk/JmesPath/DebugRuntime.php new file mode 100644 index 0000000..4052561 --- /dev/null +++ b/lib/aws-sdk/JmesPath/DebugRuntime.php @@ -0,0 +1,109 @@ +runtime = $runtime; + $this->out = $output ?: STDOUT; + $this->lexer = new Lexer(); + $this->parser = new Parser($this->lexer); + } + + public function __invoke($expression, $data) + { + if ($this->runtime instanceof CompilerRuntime) { + return $this->debugCompiled($expression, $data); + } + + return $this->debugInterpreted($expression, $data); + } + + private function debugInterpreted($expression, $data) + { + return $this->debugCallback( + function () use ($expression, $data) { + $runtime = $this->runtime; + return $runtime($expression, $data); + }, + $expression, + $data + ); + } + + private function debugCompiled($expression, $data) + { + $result = $this->debugCallback( + function () use ($expression, $data) { + $runtime = $this->runtime; + return $runtime($expression, $data); + }, + $expression, + $data + ); + $this->dumpCompiledCode($expression); + + return $result; + } + + private function dumpTokens($expression) + { + $lexer = new Lexer(); + fwrite($this->out, "Tokens\n======\n\n"); + $tokens = $lexer->tokenize($expression); + + foreach ($tokens as $t) { + fprintf( + $this->out, + "%3d %-13s %s\n", $t['pos'], $t['type'], + json_encode($t['value']) + ); + } + + fwrite($this->out, "\n"); + } + + private function dumpAst($expression) + { + $parser = new Parser(); + $ast = $parser->parse($expression); + fwrite($this->out, "AST\n========\n\n"); + fwrite($this->out, json_encode($ast, JSON_PRETTY_PRINT) . "\n"); + } + + private function dumpCompiledCode($expression) + { + fwrite($this->out, "Code\n========\n\n"); + $dir = sys_get_temp_dir(); + $hash = md5($expression); + $functionName = "jmespath_{$hash}"; + $filename = "{$dir}/{$functionName}.php"; + fwrite($this->out, "File: {$filename}\n\n"); + fprintf($this->out, file_get_contents($filename)); + } + + private function debugCallback(callable $debugFn, $expression, $data) + { + fprintf($this->out, "Expression\n==========\n\n%s\n\n", $expression); + $this->dumpTokens($expression); + $this->dumpAst($expression); + fprintf($this->out, "\nData\n====\n\n%s\n\n", json_encode($data, JSON_PRETTY_PRINT)); + $startTime = microtime(true); + $result = $debugFn(); + $total = microtime(true) - $startTime; + fprintf($this->out, "\nResult\n======\n\n%s\n\n", json_encode($result, JSON_PRETTY_PRINT)); + fwrite($this->out, "Time\n====\n\n"); + fprintf($this->out, "Total time: %f ms\n\n", $total); + + return $result; + } +} diff --git a/lib/aws-sdk/JmesPath/Env.php b/lib/aws-sdk/JmesPath/Env.php new file mode 100644 index 0000000..9da5d69 --- /dev/null +++ b/lib/aws-sdk/JmesPath/Env.php @@ -0,0 +1,66 @@ +{'fn_' . $fn}($args); + } + + private function fn_abs(array $args) + { + $this->validate('abs', $args, [['number']]); + return abs($args[0]); + } + + private function fn_avg(array $args) + { + $this->validate('avg', $args, [['array']]); + $sum = $this->reduce('avg:0', $args[0], ['number'], function ($a, $b) { + return $a + $b; + }); + return $args[0] ? ($sum / count($args[0])) : null; + } + + private function fn_ceil(array $args) + { + $this->validate('ceil', $args, [['number']]); + return ceil($args[0]); + } + + private function fn_contains(array $args) + { + $this->validate('contains', $args, [['string', 'array'], ['any']]); + if (is_array($args[0])) { + return in_array($args[1], $args[0]); + } elseif (is_string($args[1])) { + return strpos($args[0], $args[1]) !== false; + } else { + return null; + } + } + + private function fn_ends_with(array $args) + { + $this->validate('ends_with', $args, [['string'], ['string']]); + list($search, $suffix) = $args; + return $suffix === '' || substr($search, -strlen($suffix)) === $suffix; + } + + private function fn_floor(array $args) + { + $this->validate('floor', $args, [['number']]); + return floor($args[0]); + } + + private function fn_not_null(array $args) + { + if (!$args) { + throw new \RuntimeException( + "not_null() expects 1 or more arguments, 0 were provided" + ); + } + + return array_reduce($args, function ($carry, $item) { + return $carry !== null ? $carry : $item; + }); + } + + private function fn_join(array $args) + { + $this->validate('join', $args, [['string'], ['array']]); + $fn = function ($a, $b, $i) use ($args) { + return $i ? ($a . $args[0] . $b) : $b; + }; + return $this->reduce('join:0', $args[1], ['string'], $fn); + } + + private function fn_keys(array $args) + { + $this->validate('keys', $args, [['object']]); + return array_keys((array) $args[0]); + } + + private function fn_length(array $args) + { + $this->validate('length', $args, [['string', 'array', 'object']]); + return is_string($args[0]) ? strlen($args[0]) : count((array) $args[0]); + } + + private function fn_max(array $args) + { + $this->validate('max', $args, [['array']]); + $fn = function ($a, $b) { return $a >= $b ? $a : $b; }; + return $this->reduce('max:0', $args[0], ['number', 'string'], $fn); + } + + private function fn_max_by(array $args) + { + $this->validate('max_by', $args, [['array'], ['expression']]); + $expr = $this->wrapExpression('max_by:1', $args[1], ['number', 'string']); + $fn = function ($carry, $item, $index) use ($expr) { + return $index + ? ($expr($carry) >= $expr($item) ? $carry : $item) + : $item; + }; + return $this->reduce('max_by:1', $args[0], ['any'], $fn); + } + + private function fn_min(array $args) + { + $this->validate('min', $args, [['array']]); + $fn = function ($a, $b, $i) { return $i && $a <= $b ? $a : $b; }; + return $this->reduce('min:0', $args[0], ['number', 'string'], $fn); + } + + private function fn_min_by(array $args) + { + $this->validate('min_by', $args, [['array'], ['expression']]); + $expr = $this->wrapExpression('min_by:1', $args[1], ['number', 'string']); + $i = -1; + $fn = function ($a, $b) use ($expr, &$i) { + return ++$i ? ($expr($a) <= $expr($b) ? $a : $b) : $b; + }; + return $this->reduce('min_by:1', $args[0], ['any'], $fn); + } + + private function fn_reverse(array $args) + { + $this->validate('reverse', $args, [['array', 'string']]); + if (is_array($args[0])) { + return array_reverse($args[0]); + } elseif (is_string($args[0])) { + return strrev($args[0]); + } else { + throw new \RuntimeException('Cannot reverse provided argument'); + } + } + + private function fn_sum(array $args) + { + $this->validate('sum', $args, [['array']]); + $fn = function ($a, $b) { return $a + $b; }; + return $this->reduce('sum:0', $args[0], ['number'], $fn); + } + + private function fn_sort(array $args) + { + $this->validate('sort', $args, [['array']]); + $valid = ['string', 'number']; + return Utils::stableSort($args[0], function ($a, $b) use ($valid) { + $this->validateSeq('sort:0', $valid, $a, $b); + return strnatcmp($a, $b); + }); + } + + private function fn_sort_by(array $args) + { + $this->validate('sort_by', $args, [['array'], ['expression']]); + $expr = $args[1]; + $valid = ['string', 'number']; + return Utils::stableSort( + $args[0], + function ($a, $b) use ($expr, $valid) { + $va = $expr($a); + $vb = $expr($b); + $this->validateSeq('sort_by:0', $valid, $va, $vb); + return strnatcmp($va, $vb); + } + ); + } + + private function fn_starts_with(array $args) + { + $this->validate('starts_with', $args, [['string'], ['string']]); + list($search, $prefix) = $args; + return $prefix === '' || strpos($search, $prefix) === 0; + } + + private function fn_type(array $args) + { + $this->validateArity('type', count($args), 1); + return Utils::type($args[0]); + } + + private function fn_to_string(array $args) + { + $this->validateArity('to_string', count($args), 1); + $v = $args[0]; + if (is_string($v)) { + return $v; + } elseif (is_object($v) + && !($v instanceof \JsonSerializable) + && method_exists($v, '__toString') + ) { + return (string) $v; + } + + return json_encode($v); + } + + private function fn_to_number(array $args) + { + $this->validateArity('to_number', count($args), 1); + $value = $args[0]; + $type = Utils::type($value); + if ($type == 'number') { + return $value; + } elseif ($type == 'string' && is_numeric($value)) { + return strpos($value, '.') ? (float) $value : (int) $value; + } else { + return null; + } + } + + private function fn_values(array $args) + { + $this->validate('values', $args, [['array', 'object']]); + return array_values((array) $args[0]); + } + + private function fn_merge(array $args) + { + if (!$args) { + throw new \RuntimeException( + "merge() expects 1 or more arguments, 0 were provided" + ); + } + + return call_user_func_array('array_replace', $args); + } + + private function fn_to_array(array $args) + { + $this->validate('to_array', $args, [['any']]); + + return Utils::isArray($args[0]) ? $args[0] : [$args[0]]; + } + + private function typeError($from, $msg) + { + if (strpos($from, ':')) { + list($fn, $pos) = explode(':', $from); + throw new \RuntimeException( + sprintf('Argument %d of %s %s', $pos, $fn, $msg) + ); + } else { + throw new \RuntimeException( + sprintf('Type error: %s %s', $from, $msg) + ); + } + } + + private function validateArity($from, $given, $expected) + { + if ($given != $expected) { + $err = "%s() expects {$expected} arguments, {$given} were provided"; + throw new \RuntimeException(sprintf($err, $from)); + } + } + + private function validate($from, $args, $types = []) + { + $this->validateArity($from, count($args), count($types)); + foreach ($args as $index => $value) { + if (!isset($types[$index]) || !$types[$index]) { + continue; + } + $this->validateType("{$from}:{$index}", $value, $types[$index]); + } + } + + private function validateType($from, $value, array $types) + { + if ($types[0] == 'any' + || in_array(Utils::type($value), $types) + || ($value === [] && in_array('object', $types)) + ) { + return; + } + $msg = 'must be one of the following types: ' . implode(', ', $types) + . '. ' . Utils::type($value) . ' found'; + $this->typeError($from, $msg); + } + + /** + * Validates value A and B, ensures they both are correctly typed, and of + * the same type. + * + * @param string $from String of function:argument_position + * @param array $types Array of valid value types. + * @param mixed $a Value A + * @param mixed $b Value B + */ + private function validateSeq($from, array $types, $a, $b) + { + $ta = Utils::type($a); + $tb = Utils::type($b); + + if ($ta !== $tb) { + $msg = "encountered a type mismatch in sequence: {$ta}, {$tb}"; + $this->typeError($from, $msg); + } + + $typeMatch = ($types && $types[0] == 'any') || in_array($ta, $types); + if (!$typeMatch) { + $msg = 'encountered a type error in sequence. The argument must be ' + . 'an array of ' . implode('|', $types) . ' types. ' + . "Found {$ta}, {$tb}."; + $this->typeError($from, $msg); + } + } + + /** + * Reduces and validates an array of values to a single value using a fn. + * + * @param string $from String of function:argument_position + * @param array $values Values to reduce. + * @param array $types Array of valid value types. + * @param callable $reduce Reduce function that accepts ($carry, $item). + * + * @return mixed + */ + private function reduce($from, array $values, array $types, callable $reduce) + { + $i = -1; + return array_reduce( + $values, + function ($carry, $item) use ($from, $types, $reduce, &$i) { + if (++$i > 0) { + $this->validateSeq($from, $types, $carry, $item); + } + return $reduce($carry, $item, $i); + } + ); + } + + /** + * Validates the return values of expressions as they are applied. + * + * @param string $from Function name : position + * @param callable $expr Expression function to validate. + * @param array $types Array of acceptable return type values. + * + * @return callable Returns a wrapped function + */ + private function wrapExpression($from, callable $expr, array $types) + { + list($fn, $pos) = explode(':', $from); + $from = "The expression return value of argument {$pos} of {$fn}"; + return function ($value) use ($from, $expr, $types) { + $value = $expr($value); + $this->validateType($from, $value, $types); + return $value; + }; + } + + /** @internal Pass function name validation off to runtime */ + public function __call($name, $args) + { + $name = str_replace('fn_', '', $name); + throw new \RuntimeException("Call to undefined function {$name}"); + } +} diff --git a/lib/aws-sdk/JmesPath/JmesPath.php b/lib/aws-sdk/JmesPath/JmesPath.php new file mode 100644 index 0000000..7214fa8 --- /dev/null +++ b/lib/aws-sdk/JmesPath/JmesPath.php @@ -0,0 +1,15 @@ + self::STATE_LT, + '>' => self::STATE_GT, + '=' => self::STATE_EQ, + '!' => self::STATE_NOT, + '[' => self::STATE_LBRACKET, + '|' => self::STATE_PIPE, + '`' => self::STATE_JSON_LITERAL, + '"' => self::STATE_QUOTED_STRING, + "'" => self::STATE_STRING_LITERAL, + '-' => self::STATE_NUMBER, + '0' => self::STATE_NUMBER, + '1' => self::STATE_NUMBER, + '2' => self::STATE_NUMBER, + '3' => self::STATE_NUMBER, + '4' => self::STATE_NUMBER, + '5' => self::STATE_NUMBER, + '6' => self::STATE_NUMBER, + '7' => self::STATE_NUMBER, + '8' => self::STATE_NUMBER, + '9' => self::STATE_NUMBER, + ' ' => self::STATE_WHITESPACE, + "\t" => self::STATE_WHITESPACE, + "\n" => self::STATE_WHITESPACE, + "\r" => self::STATE_WHITESPACE, + '.' => self::STATE_SINGLE_CHAR, + '*' => self::STATE_SINGLE_CHAR, + ']' => self::STATE_SINGLE_CHAR, + ',' => self::STATE_SINGLE_CHAR, + ':' => self::STATE_SINGLE_CHAR, + '@' => self::STATE_SINGLE_CHAR, + '&' => self::STATE_SINGLE_CHAR, + '(' => self::STATE_SINGLE_CHAR, + ')' => self::STATE_SINGLE_CHAR, + '{' => self::STATE_SINGLE_CHAR, + '}' => self::STATE_SINGLE_CHAR, + '_' => self::STATE_IDENTIFIER, + 'A' => self::STATE_IDENTIFIER, + 'B' => self::STATE_IDENTIFIER, + 'C' => self::STATE_IDENTIFIER, + 'D' => self::STATE_IDENTIFIER, + 'E' => self::STATE_IDENTIFIER, + 'F' => self::STATE_IDENTIFIER, + 'G' => self::STATE_IDENTIFIER, + 'H' => self::STATE_IDENTIFIER, + 'I' => self::STATE_IDENTIFIER, + 'J' => self::STATE_IDENTIFIER, + 'K' => self::STATE_IDENTIFIER, + 'L' => self::STATE_IDENTIFIER, + 'M' => self::STATE_IDENTIFIER, + 'N' => self::STATE_IDENTIFIER, + 'O' => self::STATE_IDENTIFIER, + 'P' => self::STATE_IDENTIFIER, + 'Q' => self::STATE_IDENTIFIER, + 'R' => self::STATE_IDENTIFIER, + 'S' => self::STATE_IDENTIFIER, + 'T' => self::STATE_IDENTIFIER, + 'U' => self::STATE_IDENTIFIER, + 'V' => self::STATE_IDENTIFIER, + 'W' => self::STATE_IDENTIFIER, + 'X' => self::STATE_IDENTIFIER, + 'Y' => self::STATE_IDENTIFIER, + 'Z' => self::STATE_IDENTIFIER, + 'a' => self::STATE_IDENTIFIER, + 'b' => self::STATE_IDENTIFIER, + 'c' => self::STATE_IDENTIFIER, + 'd' => self::STATE_IDENTIFIER, + 'e' => self::STATE_IDENTIFIER, + 'f' => self::STATE_IDENTIFIER, + 'g' => self::STATE_IDENTIFIER, + 'h' => self::STATE_IDENTIFIER, + 'i' => self::STATE_IDENTIFIER, + 'j' => self::STATE_IDENTIFIER, + 'k' => self::STATE_IDENTIFIER, + 'l' => self::STATE_IDENTIFIER, + 'm' => self::STATE_IDENTIFIER, + 'n' => self::STATE_IDENTIFIER, + 'o' => self::STATE_IDENTIFIER, + 'p' => self::STATE_IDENTIFIER, + 'q' => self::STATE_IDENTIFIER, + 'r' => self::STATE_IDENTIFIER, + 's' => self::STATE_IDENTIFIER, + 't' => self::STATE_IDENTIFIER, + 'u' => self::STATE_IDENTIFIER, + 'v' => self::STATE_IDENTIFIER, + 'w' => self::STATE_IDENTIFIER, + 'x' => self::STATE_IDENTIFIER, + 'y' => self::STATE_IDENTIFIER, + 'z' => self::STATE_IDENTIFIER, + ]; + + /** @var array Valid identifier characters after first character */ + private $validIdentifier = [ + 'A' => true, 'B' => true, 'C' => true, 'D' => true, 'E' => true, + 'F' => true, 'G' => true, 'H' => true, 'I' => true, 'J' => true, + 'K' => true, 'L' => true, 'M' => true, 'N' => true, 'O' => true, + 'P' => true, 'Q' => true, 'R' => true, 'S' => true, 'T' => true, + 'U' => true, 'V' => true, 'W' => true, 'X' => true, 'Y' => true, + 'Z' => true, 'a' => true, 'b' => true, 'c' => true, 'd' => true, + 'e' => true, 'f' => true, 'g' => true, 'h' => true, 'i' => true, + 'j' => true, 'k' => true, 'l' => true, 'm' => true, 'n' => true, + 'o' => true, 'p' => true, 'q' => true, 'r' => true, 's' => true, + 't' => true, 'u' => true, 'v' => true, 'w' => true, 'x' => true, + 'y' => true, 'z' => true, '_' => true, '0' => true, '1' => true, + '2' => true, '3' => true, '4' => true, '5' => true, '6' => true, + '7' => true, '8' => true, '9' => true, + ]; + + /** @var array Valid number characters after the first character */ + private $numbers = [ + '0' => true, '1' => true, '2' => true, '3' => true, '4' => true, + '5' => true, '6' => true, '7' => true, '8' => true, '9' => true + ]; + + /** @var array Map of simple single character tokens */ + private $simpleTokens = [ + '.' => self::T_DOT, + '*' => self::T_STAR, + ']' => self::T_RBRACKET, + ',' => self::T_COMMA, + ':' => self::T_COLON, + '@' => self::T_CURRENT, + '&' => self::T_EXPREF, + '(' => self::T_LPAREN, + ')' => self::T_RPAREN, + '{' => self::T_LBRACE, + '}' => self::T_RBRACE, + ]; + + /** + * Tokenize the JMESPath expression into an array of tokens hashes that + * contain a 'type', 'value', and 'key'. + * + * @param string $input JMESPath input + * + * @return array + * @throws SyntaxErrorException + */ + public function tokenize($input) + { + $tokens = []; + + if ($input === '') { + goto eof; + } + + $chars = str_split($input); + + while (false !== ($current = current($chars))) { + + // Every character must be in the transition character table. + if (!isset(self::$transitionTable[$current])) { + $tokens[] = [ + 'type' => self::T_UNKNOWN, + 'pos' => key($chars), + 'value' => $current + ]; + next($chars); + continue; + } + + $state = self::$transitionTable[$current]; + + if ($state === self::STATE_SINGLE_CHAR) { + + // Consume simple tokens like ".", ",", "@", etc. + $tokens[] = [ + 'type' => $this->simpleTokens[$current], + 'pos' => key($chars), + 'value' => $current + ]; + next($chars); + + } elseif ($state === self::STATE_IDENTIFIER) { + + // Consume identifiers + $start = key($chars); + $buffer = ''; + do { + $buffer .= $current; + $current = next($chars); + } while ($current !== false && isset($this->validIdentifier[$current])); + $tokens[] = [ + 'type' => self::T_IDENTIFIER, + 'value' => $buffer, + 'pos' => $start + ]; + + } elseif ($state === self::STATE_WHITESPACE) { + + // Skip whitespace + next($chars); + + } elseif ($state === self::STATE_LBRACKET) { + + // Consume "[", "[?", and "[]" + $position = key($chars); + $actual = next($chars); + if ($actual === ']') { + next($chars); + $tokens[] = [ + 'type' => self::T_FLATTEN, + 'pos' => $position, + 'value' => '[]' + ]; + } elseif ($actual === '?') { + next($chars); + $tokens[] = [ + 'type' => self::T_FILTER, + 'pos' => $position, + 'value' => '[?' + ]; + } else { + $tokens[] = [ + 'type' => self::T_LBRACKET, + 'pos' => $position, + 'value' => '[' + ]; + } + + } elseif ($state === self::STATE_STRING_LITERAL) { + + // Consume raw string literals + $tokens[] = $this->inside($chars, "'", self::T_LITERAL); + + } elseif ($state === self::STATE_PIPE) { + + // Consume pipe and OR + $tokens[] = $this->matchOr($chars, '|', '|', self::T_OR, self::T_PIPE); + + } elseif ($state == self::STATE_JSON_LITERAL) { + + // Consume JSON literals + $token = $this->inside($chars, '`', self::T_LITERAL); + if ($token['type'] === self::T_LITERAL) { + $token['value'] = str_replace('\\`', '`', $token['value']); + $token = $this->parseJson($token); + } + $tokens[] = $token; + + } elseif ($state == self::STATE_NUMBER) { + + // Consume numbers + $start = key($chars); + $buffer = ''; + do { + $buffer .= $current; + $current = next($chars); + } while ($current !== false && isset($this->numbers[$current])); + $tokens[] = [ + 'type' => self::T_NUMBER, + 'value' => (int)$buffer, + 'pos' => $start + ]; + + } elseif ($state === self::STATE_QUOTED_STRING) { + + // Consume quoted identifiers + $token = $this->inside($chars, '"', self::T_QUOTED_IDENTIFIER); + if ($token['type'] === self::T_QUOTED_IDENTIFIER) { + $token['value'] = '"' . $token['value'] . '"'; + $token = $this->parseJson($token); + } + $tokens[] = $token; + + } elseif ($state === self::STATE_EQ) { + + // Consume equals + $tokens[] = $this->matchOr($chars, '=', '=', self::T_COMPARATOR, self::T_UNKNOWN); + + } elseif ($state === self::STATE_NOT) { + + // Consume not equal + $tokens[] = $this->matchOr($chars, '!', '=', self::T_COMPARATOR, self::T_UNKNOWN); + + } else { + + // either '<' or '>' + // Consume less than and greater than + $tokens[] = $this->matchOr($chars, $current, '=', self::T_COMPARATOR, self::T_COMPARATOR); + + } + } + + eof: + $tokens[] = [ + 'type' => self::T_EOF, + 'pos' => strlen($input), + 'value' => null + ]; + + return $tokens; + } + + /** + * Returns a token based on whether or not the next token matches the + * expected value. If it does, a token of "$type" is returned. Otherwise, + * a token of "$orElse" type is returned. + * + * @param array $chars Array of characters by reference. + * @param string $current The current character. + * @param string $expected Expected character. + * @param string $type Expected result type. + * @param string $orElse Otherwise return a token of this type. + * + * @return array Returns a conditional token. + */ + private function matchOr(array &$chars, $current, $expected, $type, $orElse) + { + if (next($chars) === $expected) { + next($chars); + return [ + 'type' => $type, + 'pos' => key($chars) - 1, + 'value' => $current . $expected + ]; + } + + return [ + 'type' => $orElse, + 'pos' => key($chars) - 1, + 'value' => $current + ]; + } + + /** + * Returns a token the is the result of consuming inside of delimiter + * characters. Escaped delimiters will be adjusted before returning a + * value. If the token is not closed, "unknown" is returned. + * + * @param array $chars Array of characters by reference. + * @param string $delim The delimiter character. + * @param string $type Token type. + * + * @return array Returns the consumed token. + */ + private function inside(array &$chars, $delim, $type) + { + $position = key($chars); + $current = next($chars); + $buffer = ''; + + while ($current !== $delim) { + if ($current === '\\') { + $buffer .= '\\'; + $current = next($chars); + } + if ($current === false) { + // Unclosed delimiter + return [ + 'type' => self::T_UNKNOWN, + 'value' => $buffer, + 'pos' => $position + ]; + } + $buffer .= $current; + $current = next($chars); + } + + next($chars); + + return ['type' => $type, 'value' => $buffer, 'pos' => $position]; + } + + /** + * Parses a JSON token or sets the token type to "unknown" on error. + * + * @param array $token Token that needs parsing. + * + * @return array Returns a token with a parsed value. + */ + private function parseJson(array $token) + { + $value = json_decode($token['value'], true); + + if ($error = json_last_error()) { + // Legacy support for elided quotes. Try to parse again by adding + // quotes around the bad input value. + $value = json_decode('"' . $token['value'] . '"', true); + if ($error = json_last_error()) { + $token['type'] = self::T_UNKNOWN; + return $token; + } + } + + $token['value'] = $value; + return $token; + } +} diff --git a/lib/aws-sdk/JmesPath/Parser.php b/lib/aws-sdk/JmesPath/Parser.php new file mode 100644 index 0000000..f757e4d --- /dev/null +++ b/lib/aws-sdk/JmesPath/Parser.php @@ -0,0 +1,491 @@ + T::T_EOF]; + private static $currentNode = ['type' => T::T_CURRENT]; + + private static $bp = [ + T::T_EOF => 0, + T::T_QUOTED_IDENTIFIER => 0, + T::T_IDENTIFIER => 0, + T::T_RBRACKET => 0, + T::T_RPAREN => 0, + T::T_COMMA => 0, + T::T_RBRACE => 0, + T::T_NUMBER => 0, + T::T_CURRENT => 0, + T::T_EXPREF => 0, + T::T_COLON => 0, + T::T_PIPE => 1, + T::T_COMPARATOR => 2, + T::T_OR => 5, + T::T_FLATTEN => 6, + T::T_STAR => 20, + T::T_FILTER => 21, + T::T_DOT => 40, + T::T_LBRACE => 50, + T::T_LBRACKET => 55, + T::T_LPAREN => 60, + ]; + + /** @var array Acceptable tokens after a dot token */ + private static $afterDot = [ + T::T_IDENTIFIER => true, // foo.bar + T::T_QUOTED_IDENTIFIER => true, // foo."bar" + T::T_STAR => true, // foo.* + T::T_LBRACE => true, // foo[1] + T::T_LBRACKET => true, // foo{a: 0} + T::T_FILTER => true, // foo.[?bar==10] + ]; + + /** + * @param Lexer $lexer Lexer used to tokenize expressions + */ + public function __construct(Lexer $lexer = null) + { + $this->lexer = $lexer ?: new Lexer(); + } + + /** + * Parses a JMESPath expression into an AST + * + * @param string $expression JMESPath expression to compile + * + * @return array Returns an array based AST + * @throws SyntaxErrorException + */ + public function parse($expression) + { + $this->expression = $expression; + $this->tokens = $this->lexer->tokenize($expression); + $this->tpos = -1; + $this->next(); + $result = $this->expr(); + + if ($this->token['type'] === T::T_EOF) { + return $result; + } + + throw $this->syntax('Did not reach the end of the token stream'); + } + + /** + * Parses an expression while rbp < lbp. + * + * @param int $rbp Right bound precedence + * + * @return array + */ + private function expr($rbp = 0) + { + $left = $this->{"nud_{$this->token['type']}"}(); + while ($rbp < self::$bp[$this->token['type']]) { + $left = $this->{"led_{$this->token['type']}"}($left); + } + + return $left; + } + + private function nud_identifier() + { + $token = $this->token; + $this->next(); + return ['type' => 'field', 'value' => $token['value']]; + } + + private function nud_quoted_identifier() + { + $token = $this->token; + $this->next(); + $this->assertNotToken(T::T_LPAREN); + return ['type' => 'field', 'value' => $token['value']]; + } + + private function nud_current() + { + $this->next(); + return self::$currentNode; + } + + private function nud_literal() + { + $token = $this->token; + $this->next(); + return ['type' => 'literal', 'value' => $token['value']]; + } + + private function nud_expref() + { + $this->next(); + return ['type' => T::T_EXPREF, 'children' => [$this->expr(self::$bp[T::T_EXPREF])]]; + } + + private function nud_lbrace() + { + static $validKeys = [T::T_QUOTED_IDENTIFIER => true, T::T_IDENTIFIER => true]; + $this->next($validKeys); + $pairs = []; + + do { + $pairs[] = $this->parseKeyValuePair(); + if ($this->token['type'] == T::T_COMMA) { + $this->next($validKeys); + } + } while ($this->token['type'] !== T::T_RBRACE); + + $this->next(); + + return['type' => 'multi_select_hash', 'children' => $pairs]; + } + + private function nud_flatten() + { + return $this->led_flatten(self::$currentNode); + } + + private function nud_filter() + { + return $this->led_filter(self::$currentNode); + } + + private function nud_star() + { + return $this->parseWildcardObject(self::$currentNode); + } + + private function nud_lbracket() + { + $this->next(); + $type = $this->token['type']; + if ($type == T::T_NUMBER || $type == T::T_COLON) { + return $this->parseArrayIndexExpression(); + } elseif ($type == T::T_STAR && $this->lookahead() == T::T_RBRACKET) { + return $this->parseWildcardArray(); + } else { + return $this->parseMultiSelectList(); + } + } + + private function led_lbracket(array $left) + { + static $nextTypes = [T::T_NUMBER => true, T::T_COLON => true, T::T_STAR => true]; + $this->next($nextTypes); + switch ($this->token['type']) { + case T::T_NUMBER: + case T::T_COLON: + return [ + 'type' => 'subexpression', + 'children' => [$left, $this->parseArrayIndexExpression()] + ]; + default: + return $this->parseWildcardArray($left); + } + } + + private function led_flatten(array $left) + { + $this->next(); + + return [ + 'type' => 'projection', + 'from' => 'array', + 'children' => [ + ['type' => T::T_FLATTEN, 'children' => [$left]], + $this->parseProjection(self::$bp[T::T_FLATTEN]) + ] + ]; + } + + private function led_dot(array $left) + { + $this->next(self::$afterDot); + + if ($this->token['type'] == T::T_STAR) { + return $this->parseWildcardObject($left); + } + + return [ + 'type' => 'subexpression', + 'children' => [$left, $this->parseDot(self::$bp[T::T_DOT])] + ]; + } + + private function led_or(array $left) + { + $this->next(); + return [ + 'type' => T::T_OR, + 'children' => [$left, $this->expr(self::$bp[T::T_OR])] + ]; + } + + private function led_pipe(array $left) + { + $this->next(); + return [ + 'type' => T::T_PIPE, + 'children' => [$left, $this->expr(self::$bp[T::T_PIPE])] + ]; + } + + private function led_lparen(array $left) + { + $args = []; + $this->next(); + + while ($this->token['type'] != T::T_RPAREN) { + $args[] = $this->expr(0); + if ($this->token['type'] == T::T_COMMA) { + $this->next(); + } + } + + $this->next(); + + return [ + 'type' => 'function', + 'value' => $left['value'], + 'children' => $args + ]; + } + + private function led_filter(array $left) + { + $this->next(); + $expression = $this->expr(); + if ($this->token['type'] != T::T_RBRACKET) { + throw $this->syntax('Expected a closing rbracket for the filter'); + } + + $this->next(); + $rhs = $this->parseProjection(self::$bp[T::T_FILTER]); + + return [ + 'type' => 'projection', + 'from' => 'array', + 'children' => [ + $left ?: self::$currentNode, + [ + 'type' => 'condition', + 'children' => [$expression, $rhs] + ] + ] + ]; + } + + private function led_comparator(array $left) + { + $token = $this->token; + $this->next(); + + return [ + 'type' => T::T_COMPARATOR, + 'value' => $token['value'], + 'children' => [$left, $this->expr()] + ]; + } + + private function parseProjection($bp) + { + $type = $this->token['type']; + if (self::$bp[$type] < 10) { + return self::$currentNode; + } elseif ($type == T::T_DOT) { + $this->next(self::$afterDot); + return $this->parseDot($bp); + } elseif ($type == T::T_LBRACKET || $type == T::T_FILTER) { + return $this->expr($bp); + } + + throw $this->syntax('Syntax error after projection'); + } + + private function parseDot($bp) + { + if ($this->token['type'] == T::T_LBRACKET) { + $this->next(); + return $this->parseMultiSelectList(); + } + + return $this->expr($bp); + } + + private function parseKeyValuePair() + { + static $validColon = [T::T_COLON => true]; + $key = $this->token['value']; + $this->next($validColon); + $this->next(); + + return [ + 'type' => 'key_val_pair', + 'value' => $key, + 'children' => [$this->expr()] + ]; + } + + private function parseWildcardObject(array $left = null) + { + $this->next(); + + return [ + 'type' => 'projection', + 'from' => 'object', + 'children' => [ + $left ?: self::$currentNode, + $this->parseProjection(self::$bp[T::T_STAR]) + ] + ]; + } + + private function parseWildcardArray(array $left = null) + { + static $getRbracket = [T::T_RBRACKET => true]; + $this->next($getRbracket); + $this->next(); + + return [ + 'type' => 'projection', + 'from' => 'array', + 'children' => [ + $left ?: self::$currentNode, + $this->parseProjection(self::$bp[T::T_STAR]) + ] + ]; + } + + /** + * Parses an array index expression (e.g., [0], [1:2:3] + */ + private function parseArrayIndexExpression() + { + static $matchNext = [ + T::T_NUMBER => true, + T::T_COLON => true, + T::T_RBRACKET => true + ]; + + $pos = 0; + $parts = [null, null, null]; + $expected = $matchNext; + + do { + if ($this->token['type'] == T::T_COLON) { + $pos++; + $expected = $matchNext; + } elseif ($this->token['type'] == T::T_NUMBER) { + $parts[$pos] = $this->token['value']; + $expected = [T::T_COLON => true, T::T_RBRACKET => true]; + } + $this->next($expected); + } while ($this->token['type'] != T::T_RBRACKET); + + // Consume the closing bracket + $this->next(); + + if ($pos === 0) { + // No colons were found so this is a simple index extraction + return ['type' => 'index', 'value' => $parts[0]]; + } + + if ($pos > 2) { + throw $this->syntax('Invalid array slice syntax: too many colons'); + } + + // Sliced array from start (e.g., [2:]) + return [ + 'type' => 'projection', + 'from' => 'array', + 'children' => [ + ['type' => 'slice', 'value' => $parts], + $this->parseProjection(self::$bp[T::T_STAR]) + ] + ]; + } + + private function parseMultiSelectList() + { + $nodes = []; + + do { + $nodes[] = $this->expr(); + if ($this->token['type'] == T::T_COMMA) { + $this->next(); + $this->assertNotToken(T::T_RBRACKET); + } + } while ($this->token['type'] !== T::T_RBRACKET); + $this->next(); + + return ['type' => 'multi_select_list', 'children' => $nodes]; + } + + private function syntax($msg) + { + return new SyntaxErrorException($msg, $this->token, $this->expression); + } + + private function lookahead() + { + return (!isset($this->tokens[$this->tpos + 1])) + ? T::T_EOF + : $this->tokens[$this->tpos + 1]['type']; + } + + private function next(array $match = null) + { + if (!isset($this->tokens[$this->tpos + 1])) { + $this->token = self::$nullToken; + } else { + $this->token = $this->tokens[++$this->tpos]; + } + + if ($match && !isset($match[$this->token['type']])) { + throw $this->syntax($match); + } + } + + private function assertNotToken($type) + { + if ($this->token['type'] == $type) { + throw $this->syntax("Token {$this->tpos} not allowed to be $type"); + } + } + + /** + * @internal Handles undefined tokens without paying the cost of validation + */ + public function __call($method, $args) + { + $prefix = substr($method, 0, 4); + if ($prefix == 'nud_' || $prefix == 'led_') { + $token = substr($method, 4); + $message = "Unexpected \"$token\" token ($method). Expected one of" + . " the following tokens: " + . implode(', ', array_map(function ($i) { + return '"' . substr($i, 4) . '"'; + }, array_filter( + get_class_methods($this), + function ($i) use ($prefix) { + return strpos($i, $prefix) === 0; + } + ))); + throw $this->syntax($message); + } + + throw new \BadMethodCallException("Call to undefined method $method"); + } +} diff --git a/lib/aws-sdk/JmesPath/SyntaxErrorException.php b/lib/aws-sdk/JmesPath/SyntaxErrorException.php new file mode 100644 index 0000000..65be17e --- /dev/null +++ b/lib/aws-sdk/JmesPath/SyntaxErrorException.php @@ -0,0 +1,36 @@ +createTokenMessage($token, $expectedTypesOrMessage); + parent::__construct($message); + } + + private function createTokenMessage(array $token, array $valid) + { + return sprintf( + 'Expected one of the following: %s; found %s "%s"', + implode(', ', array_keys($valid)), + $token['type'], + $token['value'] + ); + } +} diff --git a/lib/aws-sdk/JmesPath/TreeCompiler.php b/lib/aws-sdk/JmesPath/TreeCompiler.php new file mode 100644 index 0000000..7c53cb7 --- /dev/null +++ b/lib/aws-sdk/JmesPath/TreeCompiler.php @@ -0,0 +1,400 @@ +vars = []; + $this->source = $this->indentation = ''; + $this->write("write('use JmesPath\\TreeInterpreter as Ti;') + ->write('use JmesPath\\FnDispatcher as Fn;') + ->write('use JmesPath\\Utils;') + ->write('') + ->write('function %s(Ti $interpreter, $value) {', $fnName) + ->indent() + ->write('$current = $value;') + ->dispatch($ast) + ->write('') + ->write('return $value;') + ->outdent() + ->write('}'); + + return $this->source; + } + + /** + * @param array $node + * @return mixed + */ + private function dispatch(array $node) + { + return $this->{"visit_{$node['type']}"}($node); + } + + /** + * Creates a monotonically incrementing unique variable name by prefix. + * + * @param string $prefix Variable name prefix + * + * @return string + */ + private function makeVar($prefix) + { + if (!isset($this->vars[$prefix])) { + $this->vars[$prefix] = 0; + return '$' . $prefix; + } + + return '$' . $prefix . ++$this->vars[$prefix]; + } + + /** + * Writes the given line of source code. Pass positional arguments to write + * that match the format of sprintf. + * + * @param string $str String to write + * @return $this + */ + private function write($str) + { + $this->source .= $this->indentation; + if (func_num_args() == 1) { + $this->source .= $str . "\n"; + return $this; + } + $this->source .= vsprintf($str, array_slice(func_get_args(), 1)) . "\n"; + return $this; + } + + /** + * Decreases the indentation level of code being written + * @return $this + */ + private function outdent() + { + $this->indentation = substr($this->indentation, 0, -4); + return $this; + } + + /** + * Increases the indentation level of code being written + * @return $this + */ + private function indent() + { + $this->indentation .= ' '; + return $this; + } + + private function visit_or(array $node) + { + $a = $this->makeVar('beforeOr'); + return $this + ->write('%s = $value;', $a) + ->dispatch($node['children'][0]) + ->write('if (!$value && $value !== "0" && $value !== 0) {') + ->indent() + ->write('$value = %s;', $a) + ->dispatch($node['children'][1]) + ->outdent() + ->write('}'); + } + + private function visit_subexpression(array $node) + { + return $this + ->dispatch($node['children'][0]) + ->write('if ($value !== null) {') + ->indent() + ->dispatch($node['children'][1]) + ->outdent() + ->write('}'); + } + + private function visit_field(array $node) + { + $arr = '$value[' . var_export($node['value'], true) . ']'; + $obj = '$value->{' . var_export($node['value'], true) . '}'; + $this->write('if (is_array($value) || $value instanceof \\ArrayAccess) {') + ->indent() + ->write('$value = isset(%s) ? %s : null;', $arr, $arr) + ->outdent() + ->write('} elseif ($value instanceof \\stdClass) {') + ->indent() + ->write('$value = isset(%s) ? %s : null;', $obj, $obj) + ->outdent() + ->write("} else {") + ->indent() + ->write('$value = null;') + ->outdent() + ->write("}"); + + return $this; + } + + private function visit_index(array $node) + { + if ($node['value'] >= 0) { + $check = '$value[' . $node['value'] . ']'; + return $this->write( + '$value = (is_array($value) || $value instanceof \\ArrayAccess)' + . ' && isset(%s) ? %s : null;', + $check, $check + ); + } + + $a = $this->makeVar('count'); + return $this + ->write('if (is_array($value) || ($value instanceof \\ArrayAccess && $value instanceof \\Countable)) {') + ->indent() + ->write('%s = count($value) + %s;', $a, $node['value']) + ->write('$value = isset($value[%s]) ? $value[%s] : null;', $a, $a) + ->outdent() + ->write('} else {') + ->indent() + ->write('$value = null;') + ->outdent() + ->write('}'); + } + + private function visit_literal(array $node) + { + return $this->write('$value = %s;', var_export($node['value'], true)); + } + + private function visit_pipe(array $node) + { + return $this + ->dispatch($node['children'][0]) + ->write('$current = $value;') + ->dispatch($node['children'][1]); + } + + private function visit_multi_select_list(array $node) + { + return $this->visit_multi_select_hash($node); + } + + private function visit_multi_select_hash(array $node) + { + $tmpCurrent = $this->makeVar('cur'); + $listVal = $this->makeVar('list'); + $value = $this->makeVar('prev'); + $this->write('if ($value !== null) {') + ->indent() + ->write('%s = [];', $listVal) + ->write('%s = $current;', $tmpCurrent) + ->write('%s = $value;', $value); + + $first = true; + foreach ($node['children'] as $child) { + if (!$first) { + $this->write('$value = %s;', $value); + } + $first = false; + if ($node['type'] == 'multi_select_hash') { + $this->dispatch($child['children'][0]); + $key = var_export($child['value'], true); + $this->write('%s[%s] = $value;', $listVal, $key); + } else { + $this->dispatch($child); + $this->write('%s[] = $value;', $listVal); + } + } + + return $this + ->write('$value = %s;', $listVal) + ->write('$current = %s;', $tmpCurrent) + ->outdent() + ->write('}'); + } + + private function visit_function(array $node) + { + $value = $this->makeVar('val'); + $current = $this->makeVar('current'); + $args = $this->makeVar('args'); + $this->write('%s = $value;', $value) + ->write('%s = $current;', $current) + ->write('%s = [];', $args); + + foreach ($node['children'] as $arg) { + $this->dispatch($arg); + $this->write('%s[] = $value;', $args) + ->write('$current = %s;', $current) + ->write('$value = %s;', $value); + } + + return $this->write( + '$value = Fn::getInstance()->__invoke("%s", %s);', + $node['value'], $args + ); + } + + private function visit_slice(array $node) + { + return $this + ->write('$value = !is_string($value) && !Utils::isArray($value)') + ->write(' ? null : Utils::slice($value, %s, %s, %s);', + var_export($node['value'][0], true), + var_export($node['value'][1], true), + var_export($node['value'][2], true) + ); + } + + private function visit_current(array $node) + { + return $this->write('// Visiting current node (no-op)'); + } + + private function visit_expref(array $node) + { + $child = var_export($node['children'][0], true); + return $this->write('$value = function ($value) use ($interpreter) {') + ->indent() + ->write('return $interpreter->visit(%s, $value);', $child) + ->outdent() + ->write('};'); + } + + private function visit_flatten(array $node) + { + $this->dispatch($node['children'][0]); + $merged = $this->makeVar('merged'); + $val = $this->makeVar('val'); + + $this + ->write('// Visiting merge node') + ->write('if (!Utils::isArray($value)) {') + ->indent() + ->write('$value = null;') + ->outdent() + ->write('} else {') + ->indent() + ->write('%s = [];', $merged) + ->write('foreach ($value as %s) {', $val) + ->indent() + ->write('if (is_array(%s) && isset(%s[0])) {', $val, $val) + ->indent() + ->write('%s = array_merge(%s, %s);', $merged, $merged, $val) + ->outdent() + ->write('} elseif (%s !== []) {', $val) + ->indent() + ->write('%s[] = %s;', $merged, $val) + ->outdent() + ->write('}') + ->outdent() + ->write('}') + ->write('$value = %s;', $merged) + ->outdent() + ->write('}'); + + return $this; + } + + private function visit_projection(array $node) + { + $val = $this->makeVar('val'); + $collected = $this->makeVar('collected'); + $this->write('// Visiting projection node') + ->dispatch($node['children'][0]) + ->write(''); + + if (!isset($node['from'])) { + $this->write('if (!is_array($value) || !($value instanceof \stdClass)) { $value = null; }'); + } elseif ($node['from'] == 'object') { + $this->write('if (!Utils::isObject($value)) { $value = null; }'); + } elseif ($node['from'] == 'array') { + $this->write('if (!Utils::isArray($value)) { $value = null; }'); + } + + $this->write('if ($value !== null) {') + ->indent() + ->write('%s = [];', $collected) + ->write('foreach ((array) $value as %s) {', $val) + ->indent() + ->write('$value = %s;', $val) + ->dispatch($node['children'][1]) + ->write('if ($value !== null) {') + ->indent() + ->write('%s[] = $value;', $collected) + ->outdent() + ->write('}') + ->outdent() + ->write('}') + ->write('$value = %s;', $collected) + ->outdent() + ->write('}'); + + return $this; + } + + private function visit_condition(array $node) + { + return $this + ->write('// Visiting projection node') + ->dispatch($node['children'][0]) + ->write('if ($value !== null) {') + ->indent() + ->dispatch($node['children'][1]) + ->outdent() + ->write('}'); + } + + private function visit_comparator(array $node) + { + $value = $this->makeVar('val'); + $tmpCurrent = $this->makeVar('cur'); + $a = $this->makeVar('left'); + $b = $this->makeVar('right'); + + $this + ->write('// Visiting comparator node') + ->write('%s = $value;', $value) + ->write('%s = $current;', $tmpCurrent) + ->dispatch($node['children'][0]) + ->write('%s = $value;', $a) + ->write('$value = %s;', $value) + ->dispatch($node['children'][1]) + ->write('%s = $value;', $b); + + if ($node['value'] == '==') { + $this->write('$result = Utils::isEqual(%s, %s);', $a, $b); + } elseif ($node['value'] == '!=') { + $this->write('$result = !Utils::isEqual(%s, %s);', $a, $b); + } else { + $this->write( + '$result = is_int(%s) && is_int(%s) && %s %s %s;', + $a, $b, $a, $node['value'], $b + ); + } + + return $this + ->write('$value = $result === true ? %s : null;', $value) + ->write('$current = %s;', $tmpCurrent); + } + + /** @internal */ + public function __call($method, $args) + { + throw new \RuntimeException( + sprintf('Invalid node encountered: %s', json_encode($args[0])) + ); + } +} diff --git a/lib/aws-sdk/JmesPath/TreeInterpreter.php b/lib/aws-sdk/JmesPath/TreeInterpreter.php new file mode 100644 index 0000000..6b53488 --- /dev/null +++ b/lib/aws-sdk/JmesPath/TreeInterpreter.php @@ -0,0 +1,226 @@ +fnDispatcher = $fnDispatcher ?: FnDispatcher::getInstance(); + } + + /** + * Visits each node in a JMESPath AST and returns the evaluated result. + * + * @param array $node JMESPath AST node + * @param mixed $data Data to evaluate + * + * @return mixed + */ + public function visit(array $node, $data) + { + return $this->dispatch($node, $data); + } + + /** + * Recursively traverses an AST using depth-first, pre-order traversal. + * The evaluation logic for each node type is embedded into a large switch + * statement to avoid the cost of "double dispatch". + * @return mixed + */ + private function dispatch(array $node, $value) + { + $dispatcher = $this->fnDispatcher; + + switch ($node['type']) { + + case 'field': + if (is_array($value) || $value instanceof \ArrayAccess) { + return isset($value[$node['value']]) ? $value[$node['value']] : null; + } elseif ($value instanceof \stdClass) { + return isset($value->{$node['value']}) ? $value->{$node['value']} : null; + } + return null; + + case 'subexpression': + return $this->dispatch( + $node['children'][1], + $this->dispatch($node['children'][0], $value) + ); + + case 'index': + if (!Utils::isArray($value)) { + return null; + } + $idx = $node['value'] >= 0 + ? $node['value'] + : $node['value'] + count($value); + return isset($value[$idx]) ? $value[$idx] : null; + + case 'projection': + $left = $this->dispatch($node['children'][0], $value); + switch ($node['from']) { + case 'object': + if (!Utils::isObject($left)) { + return null; + } + break; + case 'array': + if (!Utils::isArray($left)) { + return null; + } + break; + default: + if (!is_array($left) || !($left instanceof \stdClass)) { + return null; + } + } + + $collected = []; + foreach ((array) $left as $val) { + $result = $this->dispatch($node['children'][1], $val); + if ($result !== null) { + $collected[] = $result; + } + } + + return $collected; + + case 'flatten': + static $skipElement = []; + $value = $this->dispatch($node['children'][0], $value); + + if (!Utils::isArray($value)) { + return null; + } + + $merged = []; + foreach ($value as $values) { + // Only merge up arrays lists and not hashes + if (is_array($values) && isset($values[0])) { + $merged = array_merge($merged, $values); + } elseif ($values !== $skipElement) { + $merged[] = $values; + } + } + + return $merged; + + case 'literal': + return $node['value']; + + case 'current': + return $value; + + case 'or': + $result = $this->dispatch($node['children'][0], $value); + if (!$result && $result !== '0' && $result !== 0) { + $result = $this->dispatch($node['children'][1], $value); + } + + return $result; + + case 'pipe': + return $this->dispatch( + $node['children'][1], + $this->dispatch($node['children'][0], $value) + ); + + case 'multi_select_list': + if ($value === null) { + return null; + } + + $collected = []; + foreach ($node['children'] as $node) { + $collected[] = $this->dispatch($node, $value); + } + + return $collected; + + case 'multi_select_hash': + if ($value === null) { + return null; + } + + $collected = []; + foreach ($node['children'] as $node) { + $collected[$node['value']] = $this->dispatch( + $node['children'][0], + $value + ); + } + + return $collected; + + case 'comparator': + $left = $this->dispatch($node['children'][0], $value); + $right = $this->dispatch($node['children'][1], $value); + if ($node['value'] == '==') { + return Utils::isEqual($left, $right); + } elseif ($node['value'] == '!=') { + return !Utils::isEqual($left, $right); + } else { + return self::relativeCmp($left, $right, $node['value']); + } + + case 'condition': + return true === $this->dispatch($node['children'][0], $value) + ? $this->dispatch($node['children'][1], $value) + : null; + + case 'function': + $args = []; + foreach ($node['children'] as $arg) { + $args[] = $this->dispatch($arg, $value); + } + return $dispatcher($node['value'], $args); + + case 'slice': + return is_string($value) || Utils::isArray($value) + ? Utils::slice( + $value, + $node['value'][0], + $node['value'][1], + $node['value'][2] + ) : null; + + case 'expref': + $apply = $node['children'][0]; + return function ($value) use ($apply) { + return $this->visit($apply, $value); + }; + + default: + throw new \RuntimeException("Unknown node type: {$node['type']}"); + } + } + + /** + * @return bool + */ + private static function relativeCmp($left, $right, $cmp) + { + if (!is_int($left) || !is_int($right)) { + return false; + } + + switch ($cmp) { + case '>': return $left > $right; + case '>=': return $left >= $right; + case '<': return $left < $right; + case '<=': return $left <= $right; + default: throw new \RuntimeException("Invalid comparison: $cmp"); + } + } +} diff --git a/lib/aws-sdk/JmesPath/Utils.php b/lib/aws-sdk/JmesPath/Utils.php new file mode 100644 index 0000000..6f2d538 --- /dev/null +++ b/lib/aws-sdk/JmesPath/Utils.php @@ -0,0 +1,211 @@ + 'boolean', + 'string' => 'string', + 'NULL' => 'null', + 'double' => 'number', + 'float' => 'number', + 'integer' => 'number' + ]; + + /** + * Gets the JMESPath type equivalent of a PHP variable. + * + * @param mixed $arg PHP variable + * @return string Returns the JSON data type + * @throws \InvalidArgumentException when an unknown type is given. + */ + public static function type($arg) + { + $type = gettype($arg); + if (isset(self::$typeMap[$type])) { + return self::$typeMap[$type]; + } elseif ($type === 'array') { + if (empty($arg)) { + return 'array'; + } + reset($arg); + return key($arg) === 0 ? 'array' : 'object'; + } elseif ($arg instanceof \stdClass) { + return 'object'; + } elseif ($arg instanceof \Closure) { + return 'expression'; + } elseif ($arg instanceof \ArrayAccess + && $arg instanceof \Countable + ) { + return count($arg) == 0 || $arg->offsetExists(0) + ? 'array' + : 'object'; + } elseif (method_exists($arg, '__toString')) { + return 'string'; + } + + throw new \InvalidArgumentException( + 'Unable to determine JMESPath type from ' . get_class($arg) + ); + } + + /** + * Determine if the provided value is a JMESPath compatible object. + * + * @param mixed $value + * + * @return bool + */ + public static function isObject($value) + { + if (is_array($value)) { + return !$value || array_keys($value)[0] !== 0; + } + + // Handle array-like values. Must be empty or offset 0 does not exist + return $value instanceof \Countable && $value instanceof \ArrayAccess + ? count($value) == 0 || !$value->offsetExists(0) + : $value instanceof \stdClass; + } + + /** + * Determine if the provided value is a JMESPath compatible array. + * + * @param mixed $value + * + * @return bool + */ + public static function isArray($value) + { + if (is_array($value)) { + return !$value || array_keys($value)[0] === 0; + } + + // Handle array-like values. Must be empty or offset 0 exists. + return $value instanceof \Countable && $value instanceof \ArrayAccess + ? count($value) == 0 || $value->offsetExists(0) + : false; + } + + /** + * JSON aware value comparison function. + * + * @param mixed $a First value to compare + * @param mixed $b Second value to compare + * + * @return bool + */ + public static function isEqual($a, $b) + { + if ($a === $b) { + return true; + } elseif ($a instanceof \stdClass) { + return self::isEqual((array) $a, $b); + } elseif ($b instanceof \stdClass) { + return self::isEqual($a, (array) $b); + } else { + return false; + } + } + + /** + * JMESPath requires a stable sorting algorithm, so here we'll implement + * a simple Schwartzian transform that uses array index positions as tie + * breakers. + * + * @param array $data List or map of data to sort + * @param callable $sortFn Callable used to sort values + * + * @return array Returns the sorted array + * @link http://en.wikipedia.org/wiki/Schwartzian_transform + */ + public static function stableSort(array $data, callable $sortFn) + { + // Decorate each item by creating an array of [value, index] + array_walk($data, function (&$v, $k) { $v = [$v, $k]; }); + // Sort by the sort function and use the index as a tie-breaker + uasort($data, function ($a, $b) use ($sortFn) { + return $sortFn($a[0], $b[0]) ?: ($a[1] < $b[1] ? -1 : 1); + }); + + // Undecorate each item and return the resulting sorted array + return array_map(function ($v) { return $v[0]; }, array_values($data)); + } + + /** + * Creates a Python-style slice of a string or array. + * + * @param array|string $value Value to slice + * @param int|null $start Starting position + * @param int|null $stop Stop position + * @param int $step Step (1, 2, -1, -2, etc.) + * + * @return array|string + * @throws \InvalidArgumentException + */ + public static function slice($value, $start = null, $stop = null, $step = 1) + { + if (!is_array($value) && !is_string($value)) { + throw new \InvalidArgumentException('Expects string or array'); + } + + return self::sliceIndices($value, $start, $stop, $step); + } + + private static function adjustEndpoint($length, $endpoint, $step) + { + if ($endpoint < 0) { + $endpoint += $length; + if ($endpoint < 0) { + $endpoint = $step < 0 ? -1 : 0; + } + } elseif ($endpoint >= $length) { + $endpoint = $step < 0 ? $length - 1 : $length; + } + + return $endpoint; + } + + private static function adjustSlice($length, $start, $stop, $step) + { + if ($step === null) { + $step = 1; + } elseif ($step === 0) { + throw new \RuntimeException('step cannot be 0'); + } + + if ($start === null) { + $start = $step < 0 ? $length - 1 : 0; + } else { + $start = self::adjustEndpoint($length, $start, $step); + } + + if ($stop === null) { + $stop = $step < 0 ? -1 : $length; + } else { + $stop = self::adjustEndpoint($length, $stop, $step); + } + + return [$start, $stop, $step]; + } + + private static function sliceIndices($subject, $start, $stop, $step) + { + $type = gettype($subject); + $len = $type == 'string' ? strlen($subject) : count($subject); + list($start, $stop, $step) = self::adjustSlice($len, $start, $stop, $step); + + $result = []; + if ($step > 0) { + for ($i = $start; $i < $stop; $i += $step) { + $result[] = $subject[$i]; + } + } else { + for ($i = $start; $i > $stop; $i += $step) { + $result[] = $subject[$i]; + } + } + + return $type == 'string' ? implode($result, '') : $result; + } +} diff --git a/lib/aws-sdk/Monolog/ErrorHandler.php b/lib/aws-sdk/Monolog/ErrorHandler.php deleted file mode 100644 index c892335..0000000 --- a/lib/aws-sdk/Monolog/ErrorHandler.php +++ /dev/null @@ -1,208 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog; - -use Psr\Log\LoggerInterface; -use Psr\Log\LogLevel; - -/** - * Monolog error handler - * - * A facility to enable logging of runtime errors, exceptions and fatal errors. - * - * Quick setup: ErrorHandler::register($logger); - * - * @author Jordi Boggiano - */ -class ErrorHandler -{ - private $logger; - - private $previousExceptionHandler; - private $uncaughtExceptionLevel; - - private $previousErrorHandler; - private $errorLevelMap; - - private $fatalLevel; - private $reservedMemory; - private static $fatalErrors = array(E_ERROR, E_PARSE, E_CORE_ERROR, E_COMPILE_ERROR, E_USER_ERROR); - - public function __construct(LoggerInterface $logger) - { - $this->logger = $logger; - } - - /** - * Registers a new ErrorHandler for a given Logger - * - * By default it will handle errors, exceptions and fatal errors - * - * @param LoggerInterface $logger - * @param array|false $errorLevelMap an array of E_* constant to LogLevel::* constant mapping, or false to disable error handling - * @param int|false $exceptionLevel a LogLevel::* constant, or false to disable exception handling - * @param int|false $fatalLevel a LogLevel::* constant, or false to disable fatal error handling - * @return ErrorHandler - */ - public static function register(LoggerInterface $logger, $errorLevelMap = array(), $exceptionLevel = null, $fatalLevel = null) - { - $handler = new static($logger); - if ($errorLevelMap !== false) { - $handler->registerErrorHandler($errorLevelMap); - } - if ($exceptionLevel !== false) { - $handler->registerExceptionHandler($exceptionLevel); - } - if ($fatalLevel !== false) { - $handler->registerFatalHandler($fatalLevel); - } - - return $handler; - } - - public function registerExceptionHandler($level = null, $callPrevious = true) - { - $prev = set_exception_handler(array($this, 'handleException')); - $this->uncaughtExceptionLevel = $level; - if ($callPrevious && $prev) { - $this->previousExceptionHandler = $prev; - } - } - - public function registerErrorHandler(array $levelMap = array(), $callPrevious = true, $errorTypes = -1) - { - $prev = set_error_handler(array($this, 'handleError'), $errorTypes); - $this->errorLevelMap = array_replace($this->defaultErrorLevelMap(), $levelMap); - if ($callPrevious) { - $this->previousErrorHandler = $prev ?: true; - } - } - - public function registerFatalHandler($level = null, $reservedMemorySize = 20) - { - register_shutdown_function(array($this, 'handleFatalError')); - - $this->reservedMemory = str_repeat(' ', 1024 * $reservedMemorySize); - $this->fatalLevel = $level; - } - - protected function defaultErrorLevelMap() - { - return array( - E_ERROR => LogLevel::CRITICAL, - E_WARNING => LogLevel::WARNING, - E_PARSE => LogLevel::ALERT, - E_NOTICE => LogLevel::NOTICE, - E_CORE_ERROR => LogLevel::CRITICAL, - E_CORE_WARNING => LogLevel::WARNING, - E_COMPILE_ERROR => LogLevel::ALERT, - E_COMPILE_WARNING => LogLevel::WARNING, - E_USER_ERROR => LogLevel::ERROR, - E_USER_WARNING => LogLevel::WARNING, - E_USER_NOTICE => LogLevel::NOTICE, - E_STRICT => LogLevel::NOTICE, - E_RECOVERABLE_ERROR => LogLevel::ERROR, - E_DEPRECATED => LogLevel::NOTICE, - E_USER_DEPRECATED => LogLevel::NOTICE, - ); - } - - /** - * @private - */ - public function handleException(\Exception $e) - { - $this->logger->log( - $this->uncaughtExceptionLevel === null ? LogLevel::ERROR : $this->uncaughtExceptionLevel, - sprintf('Uncaught Exception %s: "%s" at %s line %s', get_class($e), $e->getMessage(), $e->getFile(), $e->getLine()), - array('exception' => $e) - ); - - if ($this->previousExceptionHandler) { - call_user_func($this->previousExceptionHandler, $e); - } - } - - /** - * @private - */ - public function handleError($code, $message, $file = '', $line = 0, $context = array()) - { - if (!(error_reporting() & $code)) { - return; - } - - $level = isset($this->errorLevelMap[$code]) ? $this->errorLevelMap[$code] : LogLevel::CRITICAL; - $this->logger->log($level, self::codeToString($code).': '.$message, array('code' => $code, 'message' => $message, 'file' => $file, 'line' => $line)); - - if ($this->previousErrorHandler === true) { - return false; - } elseif ($this->previousErrorHandler) { - return call_user_func($this->previousErrorHandler, $code, $message, $file, $line, $context); - } - } - - /** - * @private - */ - public function handleFatalError() - { - $this->reservedMemory = null; - - $lastError = error_get_last(); - if ($lastError && in_array($lastError['type'], self::$fatalErrors)) { - $this->logger->log( - $this->fatalLevel === null ? LogLevel::ALERT : $this->fatalLevel, - 'Fatal Error ('.self::codeToString($lastError['type']).'): '.$lastError['message'], - array('code' => $lastError['type'], 'message' => $lastError['message'], 'file' => $lastError['file'], 'line' => $lastError['line']) - ); - } - } - - private static function codeToString($code) - { - switch ($code) { - case E_ERROR: - return 'E_ERROR'; - case E_WARNING: - return 'E_WARNING'; - case E_PARSE: - return 'E_PARSE'; - case E_NOTICE: - return 'E_NOTICE'; - case E_CORE_ERROR: - return 'E_CORE_ERROR'; - case E_CORE_WARNING: - return 'E_CORE_WARNING'; - case E_COMPILE_ERROR: - return 'E_COMPILE_ERROR'; - case E_COMPILE_WARNING: - return 'E_COMPILE_WARNING'; - case E_USER_ERROR: - return 'E_USER_ERROR'; - case E_USER_WARNING: - return 'E_USER_WARNING'; - case E_USER_NOTICE: - return 'E_USER_NOTICE'; - case E_STRICT: - return 'E_STRICT'; - case E_RECOVERABLE_ERROR: - return 'E_RECOVERABLE_ERROR'; - case E_DEPRECATED: - return 'E_DEPRECATED'; - case E_USER_DEPRECATED: - return 'E_USER_DEPRECATED'; - } - - return 'Unknown PHP error'; - } -} diff --git a/lib/aws-sdk/Monolog/Formatter/ChromePHPFormatter.php b/lib/aws-sdk/Monolog/Formatter/ChromePHPFormatter.php deleted file mode 100644 index 56d3e27..0000000 --- a/lib/aws-sdk/Monolog/Formatter/ChromePHPFormatter.php +++ /dev/null @@ -1,79 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\Logger; - -/** - * Formats a log message according to the ChromePHP array format - * - * @author Christophe Coevoet - */ -class ChromePHPFormatter implements FormatterInterface -{ - /** - * Translates Monolog log levels to Wildfire levels. - */ - private $logLevels = array( - Logger::DEBUG => 'log', - Logger::INFO => 'info', - Logger::NOTICE => 'info', - Logger::WARNING => 'warn', - Logger::ERROR => 'error', - Logger::CRITICAL => 'error', - Logger::ALERT => 'error', - Logger::EMERGENCY => 'error', - ); - - /** - * {@inheritdoc} - */ - public function format(array $record) - { - // Retrieve the line and file if set and remove them from the formatted extra - $backtrace = 'unknown'; - if (isset($record['extra']['file']) && isset($record['extra']['line'])) { - $backtrace = $record['extra']['file'].' : '.$record['extra']['line']; - unset($record['extra']['file']); - unset($record['extra']['line']); - } - - $message = array('message' => $record['message']); - if ($record['context']) { - $message['context'] = $record['context']; - } - if ($record['extra']) { - $message['extra'] = $record['extra']; - } - if (count($message) === 1) { - $message = reset($message); - } - - return array( - $record['channel'], - $message, - $backtrace, - $this->logLevels[$record['level']], - ); - } - - public function formatBatch(array $records) - { - $formatted = array(); - - foreach ($records as $record) { - $formatted[] = $this->format($record); - } - - return $formatted; - } -} diff --git a/lib/aws-sdk/Monolog/Formatter/ElasticaFormatter.php b/lib/aws-sdk/Monolog/Formatter/ElasticaFormatter.php deleted file mode 100644 index b0b0cf0..0000000 --- a/lib/aws-sdk/Monolog/Formatter/ElasticaFormatter.php +++ /dev/null @@ -1,87 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Elastica\Document; - -/** - * Format a log message into an Elastica Document - * - * @author Jelle Vink - */ -class ElasticaFormatter extends NormalizerFormatter -{ - /** - * @var string Elastic search index name - */ - protected $index; - - /** - * @var string Elastic search document type - */ - protected $type; - - /** - * @param string $index Elastic Search index name - * @param string $type Elastic Search document type - */ - public function __construct($index, $type) - { - parent::__construct(\DateTime::ISO8601); - $this->index = $index; - $this->type = $type; - } - - /** - * {@inheritdoc} - */ - public function format(array $record) - { - $record = parent::format($record); - - return $this->getDocument($record); - } - - /** - * Getter index - * @return string - */ - public function getIndex() - { - return $this->index; - } - - /** - * Getter type - * @return string - */ - public function getType() - { - return $this->type; - } - - /** - * Convert a log message into an Elastica Document - * - * @param array $record Log message - * @return Document - */ - protected function getDocument($record) - { - $document = new Document(); - $document->setData($record); - $document->setType($this->type); - $document->setIndex($this->index); - - return $document; - } -} diff --git a/lib/aws-sdk/Monolog/Formatter/FlowdockFormatter.php b/lib/aws-sdk/Monolog/Formatter/FlowdockFormatter.php deleted file mode 100644 index af63d01..0000000 --- a/lib/aws-sdk/Monolog/Formatter/FlowdockFormatter.php +++ /dev/null @@ -1,104 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -/** - * formats the record to be used in the FlowdockHandler - * - * @author Dominik Liebler - */ -class FlowdockFormatter implements FormatterInterface -{ - /** - * @var string - */ - private $source; - - /** - * @var string - */ - private $sourceEmail; - - /** - * @param string $source - * @param string $sourceEmail - */ - public function __construct($source, $sourceEmail) - { - $this->source = $source; - $this->sourceEmail = $sourceEmail; - } - - /** - * {@inheritdoc} - */ - public function format(array $record) - { - $tags = array( - '#logs', - '#' . strtolower($record['level_name']), - '#' . $record['channel'], - ); - - foreach ($record['extra'] as $value) { - $tags[] = '#' . $value; - } - - $subject = sprintf( - 'in %s: %s - %s', - $this->source, - $record['level_name'], - $this->getShortMessage($record['message']) - ); - - $record['flowdock'] = array( - 'source' => $this->source, - 'from_address' => $this->sourceEmail, - 'subject' => $subject, - 'content' => $record['message'], - 'tags' => $tags, - 'project' => $this->source, - ); - - return $record; - } - - /** - * {@inheritdoc} - */ - public function formatBatch(array $records) - { - $formatted = array(); - - foreach ($records as $record) { - $formatted[] = $this->format($record); - } - - return $formatted; - } - - /** - * @param string $message - * - * @return string - */ - public function getShortMessage($message) - { - $maxLength = 45; - - if (strlen($message) > $maxLength) { - $message = substr($message, 0, $maxLength - 4) . ' ...'; - } - - return $message; - } -} diff --git a/lib/aws-sdk/Monolog/Formatter/FormatterInterface.php b/lib/aws-sdk/Monolog/Formatter/FormatterInterface.php deleted file mode 100644 index b5de751..0000000 --- a/lib/aws-sdk/Monolog/Formatter/FormatterInterface.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -/** - * Interface for formatters - * - * @author Jordi Boggiano - */ -interface FormatterInterface -{ - /** - * Formats a log record. - * - * @param array $record A record to format - * @return mixed The formatted record - */ - public function format(array $record); - - /** - * Formats a set of log records. - * - * @param array $records A set of records to format - * @return mixed The formatted set of records - */ - public function formatBatch(array $records); -} diff --git a/lib/aws-sdk/Monolog/Formatter/GelfMessageFormatter.php b/lib/aws-sdk/Monolog/Formatter/GelfMessageFormatter.php deleted file mode 100644 index 1e43175..0000000 --- a/lib/aws-sdk/Monolog/Formatter/GelfMessageFormatter.php +++ /dev/null @@ -1,111 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\Logger; -use Gelf\Message; - -/** - * Serializes a log message to GELF - * @see http://www.graylog2.org/about/gelf - * - * @author Matt Lehner - */ -class GelfMessageFormatter extends NormalizerFormatter -{ - /** - * @var string the name of the system for the Gelf log message - */ - protected $systemName; - - /** - * @var string a prefix for 'extra' fields from the Monolog record (optional) - */ - protected $extraPrefix; - - /** - * @var string a prefix for 'context' fields from the Monolog record (optional) - */ - protected $contextPrefix; - - /** - * Translates Monolog log levels to Graylog2 log priorities. - */ - private $logLevels = array( - Logger::DEBUG => 7, - Logger::INFO => 6, - Logger::NOTICE => 5, - Logger::WARNING => 4, - Logger::ERROR => 3, - Logger::CRITICAL => 2, - Logger::ALERT => 1, - Logger::EMERGENCY => 0, - ); - - public function __construct($systemName = null, $extraPrefix = null, $contextPrefix = 'ctxt_') - { - parent::__construct('U.u'); - - $this->systemName = $systemName ?: gethostname(); - - $this->extraPrefix = $extraPrefix; - $this->contextPrefix = $contextPrefix; - } - - /** - * {@inheritdoc} - */ - public function format(array $record) - { - $record = parent::format($record); - - if (!isset($record['datetime'], $record['message'], $record['level'])) { - throw new \InvalidArgumentException('The record should at least contain datetime, message and level keys, '.var_export($record, true).' given'); - } - - $message = new Message(); - $message - ->setTimestamp($record['datetime']) - ->setShortMessage((string) $record['message']) - ->setHost($this->systemName) - ->setLevel($this->logLevels[$record['level']]); - - if (isset($record['channel'])) { - $message->setFacility($record['channel']); - } - if (isset($record['extra']['line'])) { - $message->setLine($record['extra']['line']); - unset($record['extra']['line']); - } - if (isset($record['extra']['file'])) { - $message->setFile($record['extra']['file']); - unset($record['extra']['file']); - } - - foreach ($record['extra'] as $key => $val) { - $message->setAdditional($this->extraPrefix . $key, is_scalar($val) ? $val : $this->toJson($val)); - } - - foreach ($record['context'] as $key => $val) { - $message->setAdditional($this->contextPrefix . $key, is_scalar($val) ? $val : $this->toJson($val)); - } - - if (null === $message->getFile() && isset($record['context']['exception']['file'])) { - if (preg_match("/^(.+):([0-9]+)$/", $record['context']['exception']['file'], $matches)) { - $message->setFile($matches[1]); - $message->setLine($matches[2]); - } - } - - return $message; - } -} diff --git a/lib/aws-sdk/Monolog/Formatter/HtmlFormatter.php b/lib/aws-sdk/Monolog/Formatter/HtmlFormatter.php deleted file mode 100644 index 255d288..0000000 --- a/lib/aws-sdk/Monolog/Formatter/HtmlFormatter.php +++ /dev/null @@ -1,140 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\Logger; - -/** - * Formats incoming records into an HTML table - * - * This is especially useful for html email logging - * - * @author Tiago Brito - */ -class HtmlFormatter extends NormalizerFormatter -{ - /** - * Translates Monolog log levels to html color priorities. - */ - private $logLevels = array( - Logger::DEBUG => '#cccccc', - Logger::INFO => '#468847', - Logger::NOTICE => '#3a87ad', - Logger::WARNING => '#c09853', - Logger::ERROR => '#f0ad4e', - Logger::CRITICAL => '#FF7708', - Logger::ALERT => '#C12A19', - Logger::EMERGENCY => '#000000', - ); - - /** - * @param string $dateFormat The format of the timestamp: one supported by DateTime::format - */ - public function __construct($dateFormat = null) - { - parent::__construct($dateFormat); - } - - /** - * Creates an HTML table row - * - * @param string $th Row header content - * @param string $td Row standard cell content - * @param bool $escapeTd false if td content must not be html escaped - * @return string - */ - private function addRow($th, $td = ' ', $escapeTd = true) - { - $th = htmlspecialchars($th, ENT_NOQUOTES, 'UTF-8'); - if ($escapeTd) { - $td = '
'.htmlspecialchars($td, ENT_NOQUOTES, 'UTF-8').'
'; - } - - return "\n$th:\n".$td."\n"; - } - - /** - * Create a HTML h1 tag - * - * @param string $title Text to be in the h1 - * @param integer $level Error level - * @return string - */ - private function addTitle($title, $level) - { - $title = htmlspecialchars($title, ENT_NOQUOTES, 'UTF-8'); - - return '

'.$title.'

'; - } - /** - * Formats a log record. - * - * @param array $record A record to format - * @return mixed The formatted record - */ - public function format(array $record) - { - $output = $this->addTitle($record['level_name'], $record['level']); - $output .= ''; - - $output .= $this->addRow('Message', (string) $record['message']); - $output .= $this->addRow('Time', $record['datetime']->format($this->dateFormat)); - $output .= $this->addRow('Channel', $record['channel']); - if ($record['context']) { - $embeddedTable = '
'; - foreach ($record['context'] as $key => $value) { - $embeddedTable .= $this->addRow($key, $this->convertToString($value)); - } - $embeddedTable .= '
'; - $output .= $this->addRow('Context', $embeddedTable, false); - } - if ($record['extra']) { - $embeddedTable = ''; - foreach ($record['extra'] as $key => $value) { - $embeddedTable .= $this->addRow($key, $this->convertToString($value)); - } - $embeddedTable .= '
'; - $output .= $this->addRow('Extra', $embeddedTable, false); - } - - return $output.''; - } - - /** - * Formats a set of log records. - * - * @param array $records A set of records to format - * @return mixed The formatted set of records - */ - public function formatBatch(array $records) - { - $message = ''; - foreach ($records as $record) { - $message .= $this->format($record); - } - - return $message; - } - - protected function convertToString($data) - { - if (null === $data || is_scalar($data)) { - return (string) $data; - } - - $data = $this->normalize($data); - if (version_compare(PHP_VERSION, '5.4.0', '>=')) { - return json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); - } - - return str_replace('\\/', '/', json_encode($data)); - } -} diff --git a/lib/aws-sdk/Monolog/Formatter/JsonFormatter.php b/lib/aws-sdk/Monolog/Formatter/JsonFormatter.php deleted file mode 100644 index e5a1d2c..0000000 --- a/lib/aws-sdk/Monolog/Formatter/JsonFormatter.php +++ /dev/null @@ -1,116 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -/** - * Encodes whatever record data is passed to it as json - * - * This can be useful to log to databases or remote APIs - * - * @author Jordi Boggiano - */ -class JsonFormatter implements FormatterInterface -{ - const BATCH_MODE_JSON = 1; - const BATCH_MODE_NEWLINES = 2; - - protected $batchMode; - protected $appendNewline; - - /** - * @param int $batchMode - */ - public function __construct($batchMode = self::BATCH_MODE_JSON, $appendNewline = true) - { - $this->batchMode = $batchMode; - $this->appendNewline = $appendNewline; - } - - /** - * The batch mode option configures the formatting style for - * multiple records. By default, multiple records will be - * formatted as a JSON-encoded array. However, for - * compatibility with some API endpoints, alternative styles - * are available. - * - * @return int - */ - public function getBatchMode() - { - return $this->batchMode; - } - - /** - * True if newlines are appended to every formatted record - * - * @return bool - */ - public function isAppendingNewlines() - { - return $this->appendNewline; - } - - /** - * {@inheritdoc} - */ - public function format(array $record) - { - return json_encode($record) . ($this->appendNewline ? "\n" : ''); - } - - /** - * {@inheritdoc} - */ - public function formatBatch(array $records) - { - switch ($this->batchMode) { - case static::BATCH_MODE_NEWLINES: - return $this->formatBatchNewlines($records); - - case static::BATCH_MODE_JSON: - default: - return $this->formatBatchJson($records); - } - } - - /** - * Return a JSON-encoded array of records. - * - * @param array $records - * @return string - */ - protected function formatBatchJson(array $records) - { - return json_encode($records); - } - - /** - * Use new lines to separate records instead of a - * JSON-encoded array. - * - * @param array $records - * @return string - */ - protected function formatBatchNewlines(array $records) - { - $instance = $this; - - $oldNewline = $this->appendNewline; - $this->appendNewline = false; - array_walk($records, function (&$value, $key) use ($instance) { - $value = $instance->format($value); - }); - $this->appendNewline = $oldNewline; - - return implode("\n", $records); - } -} diff --git a/lib/aws-sdk/Monolog/Formatter/LineFormatter.php b/lib/aws-sdk/Monolog/Formatter/LineFormatter.php deleted file mode 100644 index 6983d1a..0000000 --- a/lib/aws-sdk/Monolog/Formatter/LineFormatter.php +++ /dev/null @@ -1,159 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Exception; - -/** - * Formats incoming records into a one-line string - * - * This is especially useful for logging to files - * - * @author Jordi Boggiano - * @author Christophe Coevoet - */ -class LineFormatter extends NormalizerFormatter -{ - const SIMPLE_FORMAT = "[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n"; - - protected $format; - protected $allowInlineLineBreaks; - protected $ignoreEmptyContextAndExtra; - protected $includeStacktraces; - - /** - * @param string $format The format of the message - * @param string $dateFormat The format of the timestamp: one supported by DateTime::format - * @param bool $allowInlineLineBreaks Whether to allow inline line breaks in log entries - * @param bool $ignoreEmptyContextAndExtra - */ - public function __construct($format = null, $dateFormat = null, $allowInlineLineBreaks = false, $ignoreEmptyContextAndExtra = false) - { - $this->format = $format ?: static::SIMPLE_FORMAT; - $this->allowInlineLineBreaks = $allowInlineLineBreaks; - $this->ignoreEmptyContextAndExtra = $ignoreEmptyContextAndExtra; - parent::__construct($dateFormat); - } - - public function includeStacktraces($include = true) - { - $this->includeStacktraces = $include; - if ($this->includeStacktraces) { - $this->allowInlineLineBreaks = true; - } - } - - public function allowInlineLineBreaks($allow = true) - { - $this->allowInlineLineBreaks = $allow; - } - - public function ignoreEmptyContextAndExtra($ignore = true) - { - $this->ignoreEmptyContextAndExtra = $ignore; - } - - /** - * {@inheritdoc} - */ - public function format(array $record) - { - $vars = parent::format($record); - - $output = $this->format; - - foreach ($vars['extra'] as $var => $val) { - if (false !== strpos($output, '%extra.'.$var.'%')) { - $output = str_replace('%extra.'.$var.'%', $this->stringify($val), $output); - unset($vars['extra'][$var]); - } - } - - if ($this->ignoreEmptyContextAndExtra) { - if (empty($vars['context'])) { - unset($vars['context']); - $output = str_replace('%context%', '', $output); - } - - if (empty($vars['extra'])) { - unset($vars['extra']); - $output = str_replace('%extra%', '', $output); - } - } - - foreach ($vars as $var => $val) { - if (false !== strpos($output, '%'.$var.'%')) { - $output = str_replace('%'.$var.'%', $this->stringify($val), $output); - } - } - - return $output; - } - - public function formatBatch(array $records) - { - $message = ''; - foreach ($records as $record) { - $message .= $this->format($record); - } - - return $message; - } - - public function stringify($value) - { - return $this->replaceNewlines($this->convertToString($value)); - } - - protected function normalizeException(Exception $e) - { - $previousText = ''; - if ($previous = $e->getPrevious()) { - do { - $previousText .= ', '.get_class($previous).'(code: '.$previous->getCode().'): '.$previous->getMessage().' at '.$previous->getFile().':'.$previous->getLine(); - } while ($previous = $previous->getPrevious()); - } - - $str = '[object] ('.get_class($e).'(code: '.$e->getCode().'): '.$e->getMessage().' at '.$e->getFile().':'.$e->getLine().$previousText.')'; - if ($this->includeStacktraces) { - $str .= "\n[stacktrace]\n".$e->getTraceAsString(); - } - - return $str; - } - - protected function convertToString($data) - { - if (null === $data || is_bool($data)) { - return var_export($data, true); - } - - if (is_scalar($data)) { - return (string) $data; - } - - if (version_compare(PHP_VERSION, '5.4.0', '>=')) { - return $this->toJson($data, true); - } - - return str_replace('\\/', '/', @json_encode($data)); - } - - protected function replaceNewlines($str) - { - if ($this->allowInlineLineBreaks) { - return $str; - } - - return strtr($str, array("\r\n" => ' ', "\r" => ' ', "\n" => ' ')); - } -} diff --git a/lib/aws-sdk/Monolog/Formatter/LogglyFormatter.php b/lib/aws-sdk/Monolog/Formatter/LogglyFormatter.php deleted file mode 100644 index f02bceb..0000000 --- a/lib/aws-sdk/Monolog/Formatter/LogglyFormatter.php +++ /dev/null @@ -1,47 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -/** - * Encodes message information into JSON in a format compatible with Loggly. - * - * @author Adam Pancutt - */ -class LogglyFormatter extends JsonFormatter -{ - /** - * Overrides the default batch mode to new lines for compatibility with the - * Loggly bulk API. - * - * @param integer $batchMode - */ - public function __construct($batchMode = self::BATCH_MODE_NEWLINES, $appendNewline = false) - { - parent::__construct($batchMode, $appendNewline); - } - - /** - * Appends the 'timestamp' parameter for indexing by Loggly. - * - * @see https://www.loggly.com/docs/automated-parsing/#json - * @see \Monolog\Formatter\JsonFormatter::format() - */ - public function format(array $record) - { - if (isset($record["datetime"]) && ($record["datetime"] instanceof \DateTime)) { - $record["timestamp"] = $record["datetime"]->format("Y-m-d\TH:i:s.uO"); - // TODO 2.0 unset the 'datetime' parameter, retained for BC - } - - return parent::format($record); - } -} diff --git a/lib/aws-sdk/Monolog/Formatter/LogstashFormatter.php b/lib/aws-sdk/Monolog/Formatter/LogstashFormatter.php deleted file mode 100644 index 7a7b3b3..0000000 --- a/lib/aws-sdk/Monolog/Formatter/LogstashFormatter.php +++ /dev/null @@ -1,165 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -/** - * Serializes a log message to Logstash Event Format - * - * @see http://logstash.net/ - * @see https://github.com/logstash/logstash/blob/master/lib/logstash/event.rb - * - * @author Tim Mower - */ -class LogstashFormatter extends NormalizerFormatter -{ - const V0 = 0; - const V1 = 1; - - /** - * @var string the name of the system for the Logstash log message, used to fill the @source field - */ - protected $systemName; - - /** - * @var string an application name for the Logstash log message, used to fill the @type field - */ - protected $applicationName; - - /** - * @var string a prefix for 'extra' fields from the Monolog record (optional) - */ - protected $extraPrefix; - - /** - * @var string a prefix for 'context' fields from the Monolog record (optional) - */ - protected $contextPrefix; - - /** - * @var integer logstash format version to use - */ - protected $version; - - /** - * @param string $applicationName the application that sends the data, used as the "type" field of logstash - * @param string $systemName the system/machine name, used as the "source" field of logstash, defaults to the hostname of the machine - * @param string $extraPrefix prefix for extra keys inside logstash "fields" - * @param string $contextPrefix prefix for context keys inside logstash "fields", defaults to ctxt_ - */ - public function __construct($applicationName, $systemName = null, $extraPrefix = null, $contextPrefix = 'ctxt_', $version = self::V0) - { - // logstash requires a ISO 8601 format date with optional millisecond precision. - parent::__construct('Y-m-d\TH:i:s.uP'); - - $this->systemName = $systemName ?: gethostname(); - $this->applicationName = $applicationName; - $this->extraPrefix = $extraPrefix; - $this->contextPrefix = $contextPrefix; - $this->version = $version; - } - - /** - * {@inheritdoc} - */ - public function format(array $record) - { - $record = parent::format($record); - - if ($this->version === self::V1) { - $message = $this->formatV1($record); - } else { - $message = $this->formatV0($record); - } - - return $this->toJson($message) . "\n"; - } - - protected function formatV0(array $record) - { - if (empty($record['datetime'])) { - $record['datetime'] = gmdate('c'); - } - $message = array( - '@timestamp' => $record['datetime'], - '@source' => $this->systemName, - '@fields' => array() - ); - if (isset($record['message'])) { - $message['@message'] = $record['message']; - } - if (isset($record['channel'])) { - $message['@tags'] = array($record['channel']); - $message['@fields']['channel'] = $record['channel']; - } - if (isset($record['level'])) { - $message['@fields']['level'] = $record['level']; - } - if ($this->applicationName) { - $message['@type'] = $this->applicationName; - } - if (isset($record['extra']['server'])) { - $message['@source_host'] = $record['extra']['server']; - } - if (isset($record['extra']['url'])) { - $message['@source_path'] = $record['extra']['url']; - } - if (!empty($record['extra'])) { - foreach ($record['extra'] as $key => $val) { - $message['@fields'][$this->extraPrefix . $key] = $val; - } - } - if (!empty($record['context'])) { - foreach ($record['context'] as $key => $val) { - $message['@fields'][$this->contextPrefix . $key] = $val; - } - } - - return $message; - } - - protected function formatV1(array $record) - { - if (empty($record['datetime'])) { - $record['datetime'] = gmdate('c'); - } - $message = array( - '@timestamp' => $record['datetime'], - '@version' => 1, - 'host' => $this->systemName, - ); - if (isset($record['message'])) { - $message['message'] = $record['message']; - } - if (isset($record['channel'])) { - $message['type'] = $record['channel']; - $message['channel'] = $record['channel']; - } - if (isset($record['level_name'])) { - $message['level'] = $record['level_name']; - } - if ($this->applicationName) { - $message['type'] = $this->applicationName; - } - if (!empty($record['extra'])) { - foreach ($record['extra'] as $key => $val) { - $message[$this->extraPrefix . $key] = $val; - } - } - if (!empty($record['context'])) { - foreach ($record['context'] as $key => $val) { - $message[$this->contextPrefix . $key] = $val; - } - } - - return $message; - } -} diff --git a/lib/aws-sdk/Monolog/Formatter/MongoDBFormatter.php b/lib/aws-sdk/Monolog/Formatter/MongoDBFormatter.php deleted file mode 100644 index eb067bb..0000000 --- a/lib/aws-sdk/Monolog/Formatter/MongoDBFormatter.php +++ /dev/null @@ -1,105 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -/** - * Formats a record for use with the MongoDBHandler. - * - * @author Florian Plattner - */ -class MongoDBFormatter implements FormatterInterface -{ - private $exceptionTraceAsString; - private $maxNestingLevel; - - /** - * @param int $maxNestingLevel 0 means infinite nesting, the $record itself is level 1, $record['context'] is 2 - * @param bool $exceptionTraceAsString set to false to log exception traces as a sub documents instead of strings - */ - public function __construct($maxNestingLevel = 3, $exceptionTraceAsString = true) - { - $this->maxNestingLevel = max($maxNestingLevel, 0); - $this->exceptionTraceAsString = (bool) $exceptionTraceAsString; - } - - /** - * {@inheritDoc} - */ - public function format(array $record) - { - return $this->formatArray($record); - } - - /** - * {@inheritDoc} - */ - public function formatBatch(array $records) - { - foreach ($records as $key => $record) { - $records[$key] = $this->format($record); - } - - return $records; - } - - protected function formatArray(array $record, $nestingLevel = 0) - { - if ($this->maxNestingLevel == 0 || $nestingLevel <= $this->maxNestingLevel) { - foreach ($record as $name => $value) { - if ($value instanceof \DateTime) { - $record[$name] = $this->formatDate($value, $nestingLevel + 1); - } elseif ($value instanceof \Exception) { - $record[$name] = $this->formatException($value, $nestingLevel + 1); - } elseif (is_array($value)) { - $record[$name] = $this->formatArray($value, $nestingLevel + 1); - } elseif (is_object($value)) { - $record[$name] = $this->formatObject($value, $nestingLevel + 1); - } - } - } else { - $record = '[...]'; - } - - return $record; - } - - protected function formatObject($value, $nestingLevel) - { - $objectVars = get_object_vars($value); - $objectVars['class'] = get_class($value); - - return $this->formatArray($objectVars, $nestingLevel); - } - - protected function formatException(\Exception $exception, $nestingLevel) - { - $formattedException = array( - 'class' => get_class($exception), - 'message' => $exception->getMessage(), - 'code' => $exception->getCode(), - 'file' => $exception->getFile() . ':' . $exception->getLine(), - ); - - if ($this->exceptionTraceAsString === true) { - $formattedException['trace'] = $exception->getTraceAsString(); - } else { - $formattedException['trace'] = $exception->getTrace(); - } - - return $this->formatArray($formattedException, $nestingLevel); - } - - protected function formatDate(\DateTime $value, $nestingLevel) - { - return new \MongoDate($value->getTimestamp()); - } -} diff --git a/lib/aws-sdk/Monolog/Formatter/NormalizerFormatter.php b/lib/aws-sdk/Monolog/Formatter/NormalizerFormatter.php deleted file mode 100644 index 654e790..0000000 --- a/lib/aws-sdk/Monolog/Formatter/NormalizerFormatter.php +++ /dev/null @@ -1,150 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Exception; - -/** - * Normalizes incoming records to remove objects/resources so it's easier to dump to various targets - * - * @author Jordi Boggiano - */ -class NormalizerFormatter implements FormatterInterface -{ - const SIMPLE_DATE = "Y-m-d H:i:s"; - - protected $dateFormat; - - /** - * @param string $dateFormat The format of the timestamp: one supported by DateTime::format - */ - public function __construct($dateFormat = null) - { - $this->dateFormat = $dateFormat ?: static::SIMPLE_DATE; - if (!function_exists('json_encode')) { - throw new \RuntimeException('PHP\'s json extension is required to use Monolog\'s NormalizerFormatter'); - } - } - - /** - * {@inheritdoc} - */ - public function format(array $record) - { - return $this->normalize($record); - } - - /** - * {@inheritdoc} - */ - public function formatBatch(array $records) - { - foreach ($records as $key => $record) { - $records[$key] = $this->format($record); - } - - return $records; - } - - protected function normalize($data) - { - if (null === $data || is_scalar($data)) { - if (is_float($data)) { - if (is_infinite($data)) { - return ($data > 0 ? '' : '-') . 'INF'; - } - if (is_nan($data)) { - return 'NaN'; - } - } - - return $data; - } - - if (is_array($data) || $data instanceof \Traversable) { - $normalized = array(); - - $count = 1; - foreach ($data as $key => $value) { - if ($count++ >= 1000) { - $normalized['...'] = 'Over 1000 items, aborting normalization'; - break; - } - $normalized[$key] = $this->normalize($value); - } - - return $normalized; - } - - if ($data instanceof \DateTime) { - return $data->format($this->dateFormat); - } - - if (is_object($data)) { - if ($data instanceof Exception) { - return $this->normalizeException($data); - } - - return sprintf("[object] (%s: %s)", get_class($data), $this->toJson($data, true)); - } - - if (is_resource($data)) { - return '[resource]'; - } - - return '[unknown('.gettype($data).')]'; - } - - protected function normalizeException(Exception $e) - { - $data = array( - 'class' => get_class($e), - 'message' => $e->getMessage(), - 'code' => $e->getCode(), - 'file' => $e->getFile().':'.$e->getLine(), - ); - - $trace = $e->getTrace(); - foreach ($trace as $frame) { - if (isset($frame['file'])) { - $data['trace'][] = $frame['file'].':'.$frame['line']; - } else { - // We should again normalize the frames, because it might contain invalid items - $data['trace'][] = $this->toJson($this->normalize($frame), true); - } - } - - if ($previous = $e->getPrevious()) { - $data['previous'] = $this->normalizeException($previous); - } - - return $data; - } - - protected function toJson($data, $ignoreErrors = false) - { - // suppress json_encode errors since it's twitchy with some inputs - if ($ignoreErrors) { - if (version_compare(PHP_VERSION, '5.4.0', '>=')) { - return @json_encode($data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); - } - - return @json_encode($data); - } - - if (version_compare(PHP_VERSION, '5.4.0', '>=')) { - return json_encode($data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); - } - - return json_encode($data); - } -} diff --git a/lib/aws-sdk/Monolog/Formatter/ScalarFormatter.php b/lib/aws-sdk/Monolog/Formatter/ScalarFormatter.php deleted file mode 100644 index 5d345d5..0000000 --- a/lib/aws-sdk/Monolog/Formatter/ScalarFormatter.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -/** - * Formats data into an associative array of scalar values. - * Objects and arrays will be JSON encoded. - * - * @author Andrew Lawson - */ -class ScalarFormatter extends NormalizerFormatter -{ - /** - * {@inheritdoc} - */ - public function format(array $record) - { - foreach ($record as $key => $value) { - $record[$key] = $this->normalizeValue($value); - } - - return $record; - } - - /** - * @param mixed $value - * @return mixed - */ - protected function normalizeValue($value) - { - $normalized = $this->normalize($value); - - if (is_array($normalized) || is_object($normalized)) { - return $this->toJson($normalized, true); - } - - return $normalized; - } -} diff --git a/lib/aws-sdk/Monolog/Formatter/WildfireFormatter.php b/lib/aws-sdk/Monolog/Formatter/WildfireFormatter.php deleted file mode 100644 index 654710a..0000000 --- a/lib/aws-sdk/Monolog/Formatter/WildfireFormatter.php +++ /dev/null @@ -1,113 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Formatter; - -use Monolog\Logger; - -/** - * Serializes a log message according to Wildfire's header requirements - * - * @author Eric Clemmons (@ericclemmons) - * @author Christophe Coevoet - * @author Kirill chEbba Chebunin - */ -class WildfireFormatter extends NormalizerFormatter -{ - const TABLE = 'table'; - - /** - * Translates Monolog log levels to Wildfire levels. - */ - private $logLevels = array( - Logger::DEBUG => 'LOG', - Logger::INFO => 'INFO', - Logger::NOTICE => 'INFO', - Logger::WARNING => 'WARN', - Logger::ERROR => 'ERROR', - Logger::CRITICAL => 'ERROR', - Logger::ALERT => 'ERROR', - Logger::EMERGENCY => 'ERROR', - ); - - /** - * {@inheritdoc} - */ - public function format(array $record) - { - // Retrieve the line and file if set and remove them from the formatted extra - $file = $line = ''; - if (isset($record['extra']['file'])) { - $file = $record['extra']['file']; - unset($record['extra']['file']); - } - if (isset($record['extra']['line'])) { - $line = $record['extra']['line']; - unset($record['extra']['line']); - } - - $record = $this->normalize($record); - $message = array('message' => $record['message']); - $handleError = false; - if ($record['context']) { - $message['context'] = $record['context']; - $handleError = true; - } - if ($record['extra']) { - $message['extra'] = $record['extra']; - $handleError = true; - } - if (count($message) === 1) { - $message = reset($message); - } - - if (isset($record['context'][self::TABLE])) { - $type = 'TABLE'; - $label = $record['channel'] .': '. $record['message']; - $message = $record['context'][self::TABLE]; - } else { - $type = $this->logLevels[$record['level']]; - $label = $record['channel']; - } - - // Create JSON object describing the appearance of the message in the console - $json = $this->toJson(array( - array( - 'Type' => $type, - 'File' => $file, - 'Line' => $line, - 'Label' => $label, - ), - $message, - ), $handleError); - - // The message itself is a serialization of the above JSON object + it's length - return sprintf( - '%s|%s|', - strlen($json), - $json - ); - } - - public function formatBatch(array $records) - { - throw new \BadMethodCallException('Batch formatting does not make sense for the WildfireFormatter'); - } - - protected function normalize($data) - { - if (is_object($data) && !$data instanceof \DateTime) { - return $data; - } - - return parent::normalize($data); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/AbstractHandler.php b/lib/aws-sdk/Monolog/Handler/AbstractHandler.php deleted file mode 100644 index 69ede49..0000000 --- a/lib/aws-sdk/Monolog/Handler/AbstractHandler.php +++ /dev/null @@ -1,184 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Monolog\Formatter\FormatterInterface; -use Monolog\Formatter\LineFormatter; - -/** - * Base Handler class providing the Handler structure - * - * @author Jordi Boggiano - */ -abstract class AbstractHandler implements HandlerInterface -{ - protected $level = Logger::DEBUG; - protected $bubble = true; - - /** - * @var FormatterInterface - */ - protected $formatter; - protected $processors = array(); - - /** - * @param integer $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct($level = Logger::DEBUG, $bubble = true) - { - $this->setLevel($level); - $this->bubble = $bubble; - } - - /** - * {@inheritdoc} - */ - public function isHandling(array $record) - { - return $record['level'] >= $this->level; - } - - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - foreach ($records as $record) { - $this->handle($record); - } - } - - /** - * Closes the handler. - * - * This will be called automatically when the object is destroyed - */ - public function close() - { - } - - /** - * {@inheritdoc} - */ - public function pushProcessor($callback) - { - if (!is_callable($callback)) { - throw new \InvalidArgumentException('Processors must be valid callables (callback or object with an __invoke method), '.var_export($callback, true).' given'); - } - array_unshift($this->processors, $callback); - - return $this; - } - - /** - * {@inheritdoc} - */ - public function popProcessor() - { - if (!$this->processors) { - throw new \LogicException('You tried to pop from an empty processor stack.'); - } - - return array_shift($this->processors); - } - - /** - * {@inheritdoc} - */ - public function setFormatter(FormatterInterface $formatter) - { - $this->formatter = $formatter; - - return $this; - } - - /** - * {@inheritdoc} - */ - public function getFormatter() - { - if (!$this->formatter) { - $this->formatter = $this->getDefaultFormatter(); - } - - return $this->formatter; - } - - /** - * Sets minimum logging level at which this handler will be triggered. - * - * @param integer $level - * @return self - */ - public function setLevel($level) - { - $this->level = Logger::toMonologLevel($level); - - return $this; - } - - /** - * Gets minimum logging level at which this handler will be triggered. - * - * @return integer - */ - public function getLevel() - { - return $this->level; - } - - /** - * Sets the bubbling behavior. - * - * @param Boolean $bubble true means that this handler allows bubbling. - * false means that bubbling is not permitted. - * @return self - */ - public function setBubble($bubble) - { - $this->bubble = $bubble; - - return $this; - } - - /** - * Gets the bubbling behavior. - * - * @return Boolean true means that this handler allows bubbling. - * false means that bubbling is not permitted. - */ - public function getBubble() - { - return $this->bubble; - } - - public function __destruct() - { - try { - $this->close(); - } catch (\Exception $e) { - // do nothing - } - } - - /** - * Gets the default formatter. - * - * @return FormatterInterface - */ - protected function getDefaultFormatter() - { - return new LineFormatter(); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/AbstractProcessingHandler.php b/lib/aws-sdk/Monolog/Handler/AbstractProcessingHandler.php deleted file mode 100644 index 6f18f72..0000000 --- a/lib/aws-sdk/Monolog/Handler/AbstractProcessingHandler.php +++ /dev/null @@ -1,66 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -/** - * Base Handler class providing the Handler structure - * - * Classes extending it should (in most cases) only implement write($record) - * - * @author Jordi Boggiano - * @author Christophe Coevoet - */ -abstract class AbstractProcessingHandler extends AbstractHandler -{ - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - if (!$this->isHandling($record)) { - return false; - } - - $record = $this->processRecord($record); - - $record['formatted'] = $this->getFormatter()->format($record); - - $this->write($record); - - return false === $this->bubble; - } - - /** - * Writes the record down to the log of the implementing handler - * - * @param array $record - * @return void - */ - abstract protected function write(array $record); - - /** - * Processes a record. - * - * @param array $record - * @return array - */ - protected function processRecord(array $record) - { - if ($this->processors) { - foreach ($this->processors as $processor) { - $record = call_user_func($processor, $record); - } - } - - return $record; - } -} diff --git a/lib/aws-sdk/Monolog/Handler/AbstractSyslogHandler.php b/lib/aws-sdk/Monolog/Handler/AbstractSyslogHandler.php deleted file mode 100644 index 3eb83bd..0000000 --- a/lib/aws-sdk/Monolog/Handler/AbstractSyslogHandler.php +++ /dev/null @@ -1,92 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Monolog\Formatter\LineFormatter; - -/** - * Common syslog functionality - */ -abstract class AbstractSyslogHandler extends AbstractProcessingHandler -{ - protected $facility; - - /** - * Translates Monolog log levels to syslog log priorities. - */ - protected $logLevels = array( - Logger::DEBUG => LOG_DEBUG, - Logger::INFO => LOG_INFO, - Logger::NOTICE => LOG_NOTICE, - Logger::WARNING => LOG_WARNING, - Logger::ERROR => LOG_ERR, - Logger::CRITICAL => LOG_CRIT, - Logger::ALERT => LOG_ALERT, - Logger::EMERGENCY => LOG_EMERG, - ); - - /** - * List of valid log facility names. - */ - protected $facilities = array( - 'auth' => LOG_AUTH, - 'authpriv' => LOG_AUTHPRIV, - 'cron' => LOG_CRON, - 'daemon' => LOG_DAEMON, - 'kern' => LOG_KERN, - 'lpr' => LOG_LPR, - 'mail' => LOG_MAIL, - 'news' => LOG_NEWS, - 'syslog' => LOG_SYSLOG, - 'user' => LOG_USER, - 'uucp' => LOG_UUCP, - ); - - /** - * @param mixed $facility - * @param integer $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct($facility = LOG_USER, $level = Logger::DEBUG, $bubble = true) - { - parent::__construct($level, $bubble); - - if (!defined('PHP_WINDOWS_VERSION_BUILD')) { - $this->facilities['local0'] = LOG_LOCAL0; - $this->facilities['local1'] = LOG_LOCAL1; - $this->facilities['local2'] = LOG_LOCAL2; - $this->facilities['local3'] = LOG_LOCAL3; - $this->facilities['local4'] = LOG_LOCAL4; - $this->facilities['local5'] = LOG_LOCAL5; - $this->facilities['local6'] = LOG_LOCAL6; - $this->facilities['local7'] = LOG_LOCAL7; - } - - // convert textual description of facility to syslog constant - if (array_key_exists(strtolower($facility), $this->facilities)) { - $facility = $this->facilities[strtolower($facility)]; - } elseif (!in_array($facility, array_values($this->facilities), true)) { - throw new \UnexpectedValueException('Unknown facility value "'.$facility.'" given'); - } - - $this->facility = $facility; - } - - /** - * {@inheritdoc} - */ - protected function getDefaultFormatter() - { - return new LineFormatter('%channel%.%level_name%: %message% %context% %extra%'); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/AmqpHandler.php b/lib/aws-sdk/Monolog/Handler/AmqpHandler.php deleted file mode 100644 index a28ba02..0000000 --- a/lib/aws-sdk/Monolog/Handler/AmqpHandler.php +++ /dev/null @@ -1,98 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Monolog\Formatter\JsonFormatter; -use PhpAmqpLib\Message\AMQPMessage; -use PhpAmqpLib\Channel\AMQPChannel; -use AMQPExchange; - -class AmqpHandler extends AbstractProcessingHandler -{ - /** - * @var AMQPExchange|AMQPChannel $exchange - */ - protected $exchange; - - /** - * @var string - */ - protected $exchangeName; - - /** - * @param AMQPExchange|AMQPChannel $exchange AMQPExchange (php AMQP ext) or PHP AMQP lib channel, ready for use - * @param string $exchangeName - * @param int $level - * @param bool $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct($exchange, $exchangeName = 'log', $level = Logger::DEBUG, $bubble = true) - { - if ($exchange instanceof AMQPExchange) { - $exchange->setName($exchangeName); - } elseif ($exchange instanceof AMQPChannel) { - $this->exchangeName = $exchangeName; - } else { - throw new \InvalidArgumentException('PhpAmqpLib\Channel\AMQPChannel or AMQPExchange instance required'); - } - $this->exchange = $exchange; - - parent::__construct($level, $bubble); - } - - /** - * {@inheritDoc} - */ - protected function write(array $record) - { - $data = $record["formatted"]; - - $routingKey = sprintf( - '%s.%s', - // TODO 2.0 remove substr call - substr($record['level_name'], 0, 4), - $record['channel'] - ); - - if ($this->exchange instanceof AMQPExchange) { - $this->exchange->publish( - $data, - strtolower($routingKey), - 0, - array( - 'delivery_mode' => 2, - 'Content-type' => 'application/json' - ) - ); - } else { - $this->exchange->basic_publish( - new AMQPMessage( - (string) $data, - array( - 'delivery_mode' => 2, - 'content_type' => 'application/json' - ) - ), - $this->exchangeName, - strtolower($routingKey) - ); - } - } - - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new JsonFormatter(JsonFormatter::BATCH_MODE_JSON, false); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/BrowserConsoleHandler.php b/lib/aws-sdk/Monolog/Handler/BrowserConsoleHandler.php deleted file mode 100644 index bee6903..0000000 --- a/lib/aws-sdk/Monolog/Handler/BrowserConsoleHandler.php +++ /dev/null @@ -1,184 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\LineFormatter; - -/** - * Handler sending logs to browser's javascript console with no browser extension required - * - * @author Olivier Poitrey - */ -class BrowserConsoleHandler extends AbstractProcessingHandler -{ - protected static $initialized = false; - protected static $records = array(); - - /** - * {@inheritDoc} - * - * Formatted output may contain some formatting markers to be transferred to `console.log` using the %c format. - * - * Example of formatted string: - * - * You can do [[blue text]]{color: blue} or [[green background]]{background-color: green; color: white} - * - */ - protected function getDefaultFormatter() - { - return new LineFormatter('[[%channel%]]{macro: autolabel} [[%level_name%]]{font-weight: bold} %message%'); - } - - /** - * {@inheritDoc} - */ - protected function write(array $record) - { - // Accumulate records - self::$records[] = $record; - - // Register shutdown handler if not already done - if (PHP_SAPI !== 'cli' && !self::$initialized) { - self::$initialized = true; - register_shutdown_function(array('Monolog\Handler\BrowserConsoleHandler', 'send')); - } - } - - /** - * Convert records to javascript console commands and send it to the browser. - * This method is automatically called on PHP shutdown if output is HTML. - */ - public static function send() - { - // Check content type - foreach (headers_list() as $header) { - if (stripos($header, 'content-type:') === 0) { - if (stripos($header, 'text/html') === false) { - // This handler only works with HTML outputs - return; - } - break; - } - } - - if (count(self::$records)) { - echo ''; - self::reset(); - } - } - - /** - * Forget all logged records - */ - public static function reset() - { - self::$records = array(); - } - - private static function generateScript() - { - $script = array(); - foreach (self::$records as $record) { - $context = self::dump('Context', $record['context']); - $extra = self::dump('Extra', $record['extra']); - - if (empty($context) && empty($extra)) { - $script[] = self::call_array('log', self::handleStyles($record['formatted'])); - } else { - $script = array_merge($script, - array(self::call_array('groupCollapsed', self::handleStyles($record['formatted']))), - $context, - $extra, - array(self::call('groupEnd')) - ); - } - } - - return "(function (c) {if (c && c.groupCollapsed) {\n" . implode("\n", $script) . "\n}})(console);"; - } - - private static function handleStyles($formatted) - { - $args = array(self::quote('font-weight: normal')); - $format = '%c' . $formatted; - preg_match_all('/\[\[(.*?)\]\]\{([^}]*)\}/s', $format, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER); - - foreach (array_reverse($matches) as $match) { - $args[] = self::quote(self::handleCustomStyles($match[2][0], $match[1][0])); - $args[] = '"font-weight: normal"'; - - $pos = $match[0][1]; - $format = substr($format, 0, $pos) . '%c' . $match[1][0] . '%c' . substr($format, $pos + strlen($match[0][0])); - } - - array_unshift($args, self::quote($format)); - - return $args; - } - - private static function handleCustomStyles($style, $string) - { - static $colors = array('blue', 'green', 'red', 'magenta', 'orange', 'black', 'grey'); - static $labels = array(); - - return preg_replace_callback('/macro\s*:(.*?)(?:;|$)/', function ($m) use ($string, &$colors, &$labels) { - if (trim($m[1]) === 'autolabel') { - // Format the string as a label with consistent auto assigned background color - if (!isset($labels[$string])) { - $labels[$string] = $colors[count($labels) % count($colors)]; - } - $color = $labels[$string]; - - return "background-color: $color; color: white; border-radius: 3px; padding: 0 2px 0 2px"; - } - - return $m[1]; - }, $style); - } - - private static function dump($title, array $dict) - { - $script = array(); - $dict = array_filter($dict); - if (empty($dict)) { - return $script; - } - $script[] = self::call('log', self::quote('%c%s'), self::quote('font-weight: bold'), self::quote($title)); - foreach ($dict as $key => $value) { - $value = json_encode($value); - if (empty($value)) { - $value = self::quote(''); - } - $script[] = self::call('log', self::quote('%s: %o'), self::quote($key), $value); - } - - return $script; - } - - private static function quote($arg) - { - return '"' . addcslashes($arg, "\"\n") . '"'; - } - - private static function call() - { - $args = func_get_args(); - $method = array_shift($args); - - return self::call_array($method, $args); - } - - private static function call_array($method, array $args) - { - return 'c.' . $method . '(' . implode(', ', $args) . ');'; - } -} diff --git a/lib/aws-sdk/Monolog/Handler/BufferHandler.php b/lib/aws-sdk/Monolog/Handler/BufferHandler.php deleted file mode 100644 index 6d8136f..0000000 --- a/lib/aws-sdk/Monolog/Handler/BufferHandler.php +++ /dev/null @@ -1,117 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Buffers all records until closing the handler and then pass them as batch. - * - * This is useful for a MailHandler to send only one mail per request instead of - * sending one per log message. - * - * @author Christophe Coevoet - */ -class BufferHandler extends AbstractHandler -{ - protected $handler; - protected $bufferSize = 0; - protected $bufferLimit; - protected $flushOnOverflow; - protected $buffer = array(); - protected $initialized = false; - - /** - * @param HandlerInterface $handler Handler. - * @param integer $bufferLimit How many entries should be buffered at most, beyond that the oldest items are removed from the buffer. - * @param integer $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - * @param Boolean $flushOnOverflow If true, the buffer is flushed when the max size has been reached, by default oldest entries are discarded - */ - public function __construct(HandlerInterface $handler, $bufferLimit = 0, $level = Logger::DEBUG, $bubble = true, $flushOnOverflow = false) - { - parent::__construct($level, $bubble); - $this->handler = $handler; - $this->bufferLimit = (int) $bufferLimit; - $this->flushOnOverflow = $flushOnOverflow; - } - - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - if ($record['level'] < $this->level) { - return false; - } - - if (!$this->initialized) { - // __destructor() doesn't get called on Fatal errors - register_shutdown_function(array($this, 'close')); - $this->initialized = true; - } - - if ($this->bufferLimit > 0 && $this->bufferSize === $this->bufferLimit) { - if ($this->flushOnOverflow) { - $this->flush(); - } else { - array_shift($this->buffer); - $this->bufferSize--; - } - } - - if ($this->processors) { - foreach ($this->processors as $processor) { - $record = call_user_func($processor, $record); - } - } - - $this->buffer[] = $record; - $this->bufferSize++; - - return false === $this->bubble; - } - - public function flush() - { - if ($this->bufferSize === 0) { - return; - } - - $this->handler->handleBatch($this->buffer); - $this->clear(); - } - - public function __destruct() - { - // suppress the parent behavior since we already have register_shutdown_function() - // to call close(), and the reference contained there will prevent this from being - // GC'd until the end of the request - } - - /** - * {@inheritdoc} - */ - public function close() - { - $this->flush(); - } - - /** - * Clears the buffer without flushing any messages down to the wrapped handler. - */ - public function clear() - { - $this->bufferSize = 0; - $this->buffer = array(); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/ChromePHPHandler.php b/lib/aws-sdk/Monolog/Handler/ChromePHPHandler.php deleted file mode 100644 index bc65934..0000000 --- a/lib/aws-sdk/Monolog/Handler/ChromePHPHandler.php +++ /dev/null @@ -1,204 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\ChromePHPFormatter; -use Monolog\Logger; - -/** - * Handler sending logs to the ChromePHP extension (http://www.chromephp.com/) - * - * @author Christophe Coevoet - */ -class ChromePHPHandler extends AbstractProcessingHandler -{ - /** - * Version of the extension - */ - const VERSION = '4.0'; - - /** - * Header name - */ - const HEADER_NAME = 'X-ChromeLogger-Data'; - - protected static $initialized = false; - - /** - * Tracks whether we sent too much data - * - * Chrome limits the headers to 256KB, so when we sent 240KB we stop sending - * - * @var Boolean - */ - protected static $overflowed = false; - - protected static $json = array( - 'version' => self::VERSION, - 'columns' => array('label', 'log', 'backtrace', 'type'), - 'rows' => array(), - ); - - protected static $sendHeaders = true; - - /** - * @param integer $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct($level = Logger::DEBUG, $bubble = true) - { - parent::__construct($level, $bubble); - if (!function_exists('json_encode')) { - throw new \RuntimeException('PHP\'s json extension is required to use Monolog\'s ChromePHPHandler'); - } - } - - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - $messages = array(); - - foreach ($records as $record) { - if ($record['level'] < $this->level) { - continue; - } - $messages[] = $this->processRecord($record); - } - - if (!empty($messages)) { - $messages = $this->getFormatter()->formatBatch($messages); - self::$json['rows'] = array_merge(self::$json['rows'], $messages); - $this->send(); - } - } - - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new ChromePHPFormatter(); - } - - /** - * Creates & sends header for a record - * - * @see sendHeader() - * @see send() - * @param array $record - */ - protected function write(array $record) - { - self::$json['rows'][] = $record['formatted']; - - $this->send(); - } - - /** - * Sends the log header - * - * @see sendHeader() - */ - protected function send() - { - if (self::$overflowed || !self::$sendHeaders) { - return; - } - - if (!self::$initialized) { - self::$initialized = true; - - self::$sendHeaders = $this->headersAccepted(); - if (!self::$sendHeaders) { - return; - } - - self::$json['request_uri'] = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; - } - - $json = @json_encode(self::$json); - $data = base64_encode(utf8_encode($json)); - if (strlen($data) > 240*1024) { - self::$overflowed = true; - - $record = array( - 'message' => 'Incomplete logs, chrome header size limit reached', - 'context' => array(), - 'level' => Logger::WARNING, - 'level_name' => Logger::getLevelName(Logger::WARNING), - 'channel' => 'monolog', - 'datetime' => new \DateTime(), - 'extra' => array(), - ); - self::$json['rows'][count(self::$json['rows']) - 1] = $this->getFormatter()->format($record); - $json = @json_encode(self::$json); - $data = base64_encode(utf8_encode($json)); - } - - if (trim($data) !== '') { - $this->sendHeader(self::HEADER_NAME, $data); - } - } - - /** - * Send header string to the client - * - * @param string $header - * @param string $content - */ - protected function sendHeader($header, $content) - { - if (!headers_sent() && self::$sendHeaders) { - header(sprintf('%s: %s', $header, $content)); - } - } - - /** - * Verifies if the headers are accepted by the current user agent - * - * @return Boolean - */ - protected function headersAccepted() - { - if (empty($_SERVER['HTTP_USER_AGENT'])) { - return false; - } - - return preg_match('{\bChrome/\d+[\.\d+]*\b}', $_SERVER['HTTP_USER_AGENT']); - } - - /** - * BC getter for the sendHeaders property that has been made static - */ - public function __get($property) - { - if ('sendHeaders' !== $property) { - throw new \InvalidArgumentException('Undefined property '.$property); - } - - return static::$sendHeaders; - } - - /** - * BC setter for the sendHeaders property that has been made static - */ - public function __set($property, $value) - { - if ('sendHeaders' !== $property) { - throw new \InvalidArgumentException('Undefined property '.$property); - } - - static::$sendHeaders = $value; - } -} diff --git a/lib/aws-sdk/Monolog/Handler/CouchDBHandler.php b/lib/aws-sdk/Monolog/Handler/CouchDBHandler.php deleted file mode 100644 index b3687c3..0000000 --- a/lib/aws-sdk/Monolog/Handler/CouchDBHandler.php +++ /dev/null @@ -1,72 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\JsonFormatter; -use Monolog\Logger; - -/** - * CouchDB handler - * - * @author Markus Bachmann - */ -class CouchDBHandler extends AbstractProcessingHandler -{ - private $options; - - public function __construct(array $options = array(), $level = Logger::DEBUG, $bubble = true) - { - $this->options = array_merge(array( - 'host' => 'localhost', - 'port' => 5984, - 'dbname' => 'logger', - 'username' => null, - 'password' => null, - ), $options); - - parent::__construct($level, $bubble); - } - - /** - * {@inheritDoc} - */ - protected function write(array $record) - { - $basicAuth = null; - if ($this->options['username']) { - $basicAuth = sprintf('%s:%s@', $this->options['username'], $this->options['password']); - } - - $url = 'http://'.$basicAuth.$this->options['host'].':'.$this->options['port'].'/'.$this->options['dbname']; - $context = stream_context_create(array( - 'http' => array( - 'method' => 'POST', - 'content' => $record['formatted'], - 'ignore_errors' => true, - 'max_redirects' => 0, - 'header' => 'Content-type: application/json', - ) - )); - - if (false === @file_get_contents($url, null, $context)) { - throw new \RuntimeException(sprintf('Could not connect to %s', $url)); - } - } - - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new JsonFormatter(JsonFormatter::BATCH_MODE_JSON, false); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/CubeHandler.php b/lib/aws-sdk/Monolog/Handler/CubeHandler.php deleted file mode 100644 index d968720..0000000 --- a/lib/aws-sdk/Monolog/Handler/CubeHandler.php +++ /dev/null @@ -1,145 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Logs to Cube. - * - * @link http://square.github.com/cube/ - * @author Wan Chen - */ -class CubeHandler extends AbstractProcessingHandler -{ - private $udpConnection = null; - private $httpConnection = null; - private $scheme = null; - private $host = null; - private $port = null; - private $acceptedSchemes = array('http', 'udp'); - - /** - * Create a Cube handler - * - * @throws UnexpectedValueException when given url is not a valid url. - * A valid url must consists of three parts : protocol://host:port - * Only valid protocol used by Cube are http and udp - */ - public function __construct($url, $level = Logger::DEBUG, $bubble = true) - { - $urlInfos = parse_url($url); - - if (!isset($urlInfos['scheme']) || !isset($urlInfos['host']) || !isset($urlInfos['port'])) { - throw new \UnexpectedValueException('URL "'.$url.'" is not valid'); - } - - if (!in_array($urlInfos['scheme'], $this->acceptedSchemes)) { - throw new \UnexpectedValueException( - 'Invalid protocol (' . $urlInfos['scheme'] . ').' - . ' Valid options are ' . implode(', ', $this->acceptedSchemes)); - } - - $this->scheme = $urlInfos['scheme']; - $this->host = $urlInfos['host']; - $this->port = $urlInfos['port']; - - parent::__construct($level, $bubble); - } - - /** - * Establish a connection to an UDP socket - * - * @throws LogicException when unable to connect to the socket - */ - protected function connectUdp() - { - if (!extension_loaded('sockets')) { - throw new MissingExtensionException('The sockets extension is required to use udp URLs with the CubeHandler'); - } - - $this->udpConnection = socket_create(AF_INET, SOCK_DGRAM, 0); - if (!$this->udpConnection) { - throw new \LogicException('Unable to create a socket'); - } - - if (!socket_connect($this->udpConnection, $this->host, $this->port)) { - throw new \LogicException('Unable to connect to the socket at ' . $this->host . ':' . $this->port); - } - } - - /** - * Establish a connection to a http server - */ - protected function connectHttp() - { - if (!extension_loaded('curl')) { - throw new \LogicException('The curl extension is needed to use http URLs with the CubeHandler'); - } - - $this->httpConnection = curl_init('http://'.$this->host.':'.$this->port.'/1.0/event/put'); - - if (!$this->httpConnection) { - throw new \LogicException('Unable to connect to ' . $this->host . ':' . $this->port); - } - - curl_setopt($this->httpConnection, CURLOPT_CUSTOMREQUEST, "POST"); - curl_setopt($this->httpConnection, CURLOPT_RETURNTRANSFER, true); - } - - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - $date = $record['datetime']; - - $data = array('time' => $date->format('Y-m-d\TH:i:s.uO')); - unset($record['datetime']); - - if (isset($record['context']['type'])) { - $data['type'] = $record['context']['type']; - unset($record['context']['type']); - } else { - $data['type'] = $record['channel']; - } - - $data['data'] = $record['context']; - $data['data']['level'] = $record['level']; - - $this->{'write'.$this->scheme}(json_encode($data)); - } - - private function writeUdp($data) - { - if (!$this->udpConnection) { - $this->connectUdp(); - } - - socket_send($this->udpConnection, $data, strlen($data), 0); - } - - private function writeHttp($data) - { - if (!$this->httpConnection) { - $this->connectHttp(); - } - - curl_setopt($this->httpConnection, CURLOPT_POSTFIELDS, '['.$data.']'); - curl_setopt($this->httpConnection, CURLOPT_HTTPHEADER, array( - 'Content-Type: application/json', - 'Content-Length: ' . strlen('['.$data.']')) - ); - - return curl_exec($this->httpConnection); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/DoctrineCouchDBHandler.php b/lib/aws-sdk/Monolog/Handler/DoctrineCouchDBHandler.php deleted file mode 100644 index b91ffec..0000000 --- a/lib/aws-sdk/Monolog/Handler/DoctrineCouchDBHandler.php +++ /dev/null @@ -1,45 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Monolog\Formatter\NormalizerFormatter; -use Doctrine\CouchDB\CouchDBClient; - -/** - * CouchDB handler for Doctrine CouchDB ODM - * - * @author Markus Bachmann - */ -class DoctrineCouchDBHandler extends AbstractProcessingHandler -{ - private $client; - - public function __construct(CouchDBClient $client, $level = Logger::DEBUG, $bubble = true) - { - $this->client = $client; - parent::__construct($level, $bubble); - } - - /** - * {@inheritDoc} - */ - protected function write(array $record) - { - $this->client->postDocument($record['formatted']); - } - - protected function getDefaultFormatter() - { - return new NormalizerFormatter; - } -} diff --git a/lib/aws-sdk/Monolog/Handler/DynamoDbHandler.php b/lib/aws-sdk/Monolog/Handler/DynamoDbHandler.php deleted file mode 100644 index e7f843c..0000000 --- a/lib/aws-sdk/Monolog/Handler/DynamoDbHandler.php +++ /dev/null @@ -1,89 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Aws\Common\Aws; -use Aws\DynamoDb\DynamoDbClient; -use Monolog\Formatter\ScalarFormatter; -use Monolog\Logger; - -/** - * Amazon DynamoDB handler (http://aws.amazon.com/dynamodb/) - * - * @link https://github.com/aws/aws-sdk-php/ - * @author Andrew Lawson - */ -class DynamoDbHandler extends AbstractProcessingHandler -{ - const DATE_FORMAT = 'Y-m-d\TH:i:s.uO'; - - /** - * @var DynamoDbClient - */ - protected $client; - - /** - * @var string - */ - protected $table; - - /** - * @param DynamoDbClient $client - * @param string $table - * @param integer $level - * @param boolean $bubble - */ - public function __construct(DynamoDbClient $client, $table, $level = Logger::DEBUG, $bubble = true) - { - if (!defined('Aws\Common\Aws::VERSION') || version_compare('3.0', Aws::VERSION, '<=')) { - throw new \RuntimeException('The DynamoDbHandler is only known to work with the AWS SDK 2.x releases'); - } - - $this->client = $client; - $this->table = $table; - - parent::__construct($level, $bubble); - } - - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - $filtered = $this->filterEmptyFields($record['formatted']); - $formatted = $this->client->formatAttributes($filtered); - - $this->client->putItem(array( - 'TableName' => $this->table, - 'Item' => $formatted - )); - } - - /** - * @param array $record - * @return array - */ - protected function filterEmptyFields(array $record) - { - return array_filter($record, function ($value) { - return !empty($value) || false === $value || 0 === $value; - }); - } - - /** - * {@inheritdoc} - */ - protected function getDefaultFormatter() - { - return new ScalarFormatter(self::DATE_FORMAT); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/ElasticSearchHandler.php b/lib/aws-sdk/Monolog/Handler/ElasticSearchHandler.php deleted file mode 100644 index 96e5d57..0000000 --- a/lib/aws-sdk/Monolog/Handler/ElasticSearchHandler.php +++ /dev/null @@ -1,128 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\FormatterInterface; -use Monolog\Formatter\ElasticaFormatter; -use Monolog\Logger; -use Elastica\Client; -use Elastica\Exception\ExceptionInterface; - -/** - * Elastic Search handler - * - * Usage example: - * - * $client = new \Elastica\Client(); - * $options = array( - * 'index' => 'elastic_index_name', - * 'type' => 'elastic_doc_type', - * ); - * $handler = new ElasticSearchHandler($client, $options); - * $log = new Logger('application'); - * $log->pushHandler($handler); - * - * @author Jelle Vink - */ -class ElasticSearchHandler extends AbstractProcessingHandler -{ - /** - * @var Client - */ - protected $client; - - /** - * @var array Handler config options - */ - protected $options = array(); - - /** - * @param Client $client Elastica Client object - * @param array $options Handler configuration - * @param integer $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct(Client $client, array $options = array(), $level = Logger::DEBUG, $bubble = true) - { - parent::__construct($level, $bubble); - $this->client = $client; - $this->options = array_merge( - array( - 'index' => 'monolog', // Elastic index name - 'type' => 'record', // Elastic document type - 'ignore_error' => false, // Suppress Elastica exceptions - ), - $options - ); - } - - /** - * {@inheritDoc} - */ - protected function write(array $record) - { - $this->bulkSend(array($record['formatted'])); - } - - /** - * {@inheritdoc} - */ - public function setFormatter(FormatterInterface $formatter) - { - if ($formatter instanceof ElasticaFormatter) { - return parent::setFormatter($formatter); - } - throw new \InvalidArgumentException('ElasticSearchHandler is only compatible with ElasticaFormatter'); - } - - /** - * Getter options - * @return array - */ - public function getOptions() - { - return $this->options; - } - - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new ElasticaFormatter($this->options['index'], $this->options['type']); - } - - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - $documents = $this->getFormatter()->formatBatch($records); - $this->bulkSend($documents); - } - - /** - * Use Elasticsearch bulk API to send list of documents - * @param array $documents - * @throws \RuntimeException - */ - protected function bulkSend(array $documents) - { - try { - $this->client->addDocuments($documents); - } catch (ExceptionInterface $e) { - if (!$this->options['ignore_error']) { - throw new \RuntimeException("Error sending messages to Elasticsearch", 0, $e); - } - } - } -} diff --git a/lib/aws-sdk/Monolog/Handler/ErrorLogHandler.php b/lib/aws-sdk/Monolog/Handler/ErrorLogHandler.php deleted file mode 100644 index d1e1ee6..0000000 --- a/lib/aws-sdk/Monolog/Handler/ErrorLogHandler.php +++ /dev/null @@ -1,82 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\LineFormatter; -use Monolog\Logger; - -/** - * Stores to PHP error_log() handler. - * - * @author Elan Ruusamäe - */ -class ErrorLogHandler extends AbstractProcessingHandler -{ - const OPERATING_SYSTEM = 0; - const SAPI = 4; - - protected $messageType; - protected $expandNewlines; - - /** - * @param integer $messageType Says where the error should go. - * @param integer $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - * @param Boolean $expandNewlines If set to true, newlines in the message will be expanded to be take multiple log entries - */ - public function __construct($messageType = self::OPERATING_SYSTEM, $level = Logger::DEBUG, $bubble = true, $expandNewlines = false) - { - parent::__construct($level, $bubble); - - if (false === in_array($messageType, self::getAvailableTypes())) { - $message = sprintf('The given message type "%s" is not supported', print_r($messageType, true)); - throw new \InvalidArgumentException($message); - } - - $this->messageType = $messageType; - $this->expandNewlines = $expandNewlines; - } - - /** - * @return array With all available types - */ - public static function getAvailableTypes() - { - return array( - self::OPERATING_SYSTEM, - self::SAPI, - ); - } - - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new LineFormatter('[%datetime%] %channel%.%level_name%: %message% %context% %extra%'); - } - - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - if ($this->expandNewlines) { - $lines = preg_split('{[\r\n]+}', (string) $record['formatted']); - foreach ($lines as $line) { - error_log($line, $this->messageType); - } - } else { - error_log((string) $record['formatted'], $this->messageType); - } - } -} diff --git a/lib/aws-sdk/Monolog/Handler/FilterHandler.php b/lib/aws-sdk/Monolog/Handler/FilterHandler.php deleted file mode 100644 index dad8227..0000000 --- a/lib/aws-sdk/Monolog/Handler/FilterHandler.php +++ /dev/null @@ -1,140 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Simple handler wrapper that filters records based on a list of levels - * - * It can be configured with an exact list of levels to allow, or a min/max level. - * - * @author Hennadiy Verkh - * @author Jordi Boggiano - */ -class FilterHandler extends AbstractHandler -{ - /** - * Handler or factory callable($record, $this) - * - * @var callable|\Monolog\Handler\HandlerInterface - */ - protected $handler; - - /** - * Minimum level for logs that are passes to handler - * - * @var int[] - */ - protected $acceptedLevels; - - /** - * Whether the messages that are handled can bubble up the stack or not - * - * @var Boolean - */ - protected $bubble; - - /** - * @param callable|HandlerInterface $handler Handler or factory callable($record, $this). - * @param int|array $minLevelOrList A list of levels to accept or a minimum level if maxLevel is provided - * @param int $maxLevel Maximum level to accept, only used if $minLevelOrList is not an array - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct($handler, $minLevelOrList = Logger::DEBUG, $maxLevel = Logger::EMERGENCY, $bubble = true) - { - $this->handler = $handler; - $this->bubble = $bubble; - $this->setAcceptedLevels($minLevelOrList, $maxLevel); - - if (!$this->handler instanceof HandlerInterface && !is_callable($this->handler)) { - throw new \RuntimeException("The given handler (".json_encode($this->handler).") is not a callable nor a Monolog\Handler\HandlerInterface object"); - } - } - - /** - * @return array - */ - public function getAcceptedLevels() - { - return array_flip($this->acceptedLevels); - } - - /** - * @param int|array $minLevelOrList A list of levels to accept or a minimum level if maxLevel is provided - * @param int $maxLevel Maximum level to accept, only used if $minLevelOrList is not an array - */ - public function setAcceptedLevels($minLevelOrList = Logger::DEBUG, $maxLevel = Logger::EMERGENCY) - { - if (is_array($minLevelOrList)) { - $acceptedLevels = array_map('Monolog\Logger::toMonologLevel', $minLevelOrList); - } else { - $minLevelOrList = Logger::toMonologLevel($minLevelOrList); - $maxLevel = Logger::toMonologLevel($maxLevel); - $acceptedLevels = array_values(array_filter(Logger::getLevels(), function ($level) use ($minLevelOrList, $maxLevel) { - return $level >= $minLevelOrList && $level <= $maxLevel; - })); - } - $this->acceptedLevels = array_flip($acceptedLevels); - } - - /** - * {@inheritdoc} - */ - public function isHandling(array $record) - { - return isset($this->acceptedLevels[$record['level']]); - } - - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - if (!$this->isHandling($record)) { - return false; - } - - // The same logic as in FingersCrossedHandler - if (!$this->handler instanceof HandlerInterface) { - $this->handler = call_user_func($this->handler, $record, $this); - if (!$this->handler instanceof HandlerInterface) { - throw new \RuntimeException("The factory callable should return a HandlerInterface"); - } - } - - if ($this->processors) { - foreach ($this->processors as $processor) { - $record = call_user_func($processor, $record); - } - } - - $this->handler->handle($record); - - return false === $this->bubble; - } - - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - $filtered = array(); - foreach ($records as $record) { - if ($this->isHandling($record)) { - $filtered[] = $record; - } - } - - $this->handler->handleBatch($filtered); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php b/lib/aws-sdk/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php deleted file mode 100644 index c3e42ef..0000000 --- a/lib/aws-sdk/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler\FingersCrossed; - -/** - * Interface for activation strategies for the FingersCrossedHandler. - * - * @author Johannes M. Schmitt - */ -interface ActivationStrategyInterface -{ - /** - * Returns whether the given record activates the handler. - * - * @param array $record - * @return Boolean - */ - public function isHandlerActivated(array $record); -} diff --git a/lib/aws-sdk/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php b/lib/aws-sdk/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php deleted file mode 100644 index e3b403f..0000000 --- a/lib/aws-sdk/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php +++ /dev/null @@ -1,59 +0,0 @@ - -* -* For the full copyright and license information, please view the LICENSE -* file that was distributed with this source code. -*/ - -namespace Monolog\Handler\FingersCrossed; - -use Monolog\Logger; - -/** - * Channel and Error level based monolog activation strategy. Allows to trigger activation - * based on level per channel. e.g. trigger activation on level 'ERROR' by default, except - * for records of the 'sql' channel; those should trigger activation on level 'WARN'. - * - * Example: - * - * - * $activationStrategy = new ChannelLevelActivationStrategy( - * Logger::CRITICAL, - * array( - * 'request' => Logger::ALERT, - * 'sensitive' => Logger::ERROR, - * ) - * ); - * $handler = new FingersCrossedHandler(new StreamHandler('php://stderr'), $activationStrategy); - * - * - * @author Mike Meessen - */ -class ChannelLevelActivationStrategy implements ActivationStrategyInterface -{ - private $defaultActionLevel; - private $channelToActionLevel; - - /** - * @param int $defaultActionLevel The default action level to be used if the record's category doesn't match any - * @param array $channelToActionLevel An array that maps channel names to action levels. - */ - public function __construct($defaultActionLevel, $channelToActionLevel = array()) - { - $this->defaultActionLevel = Logger::toMonologLevel($defaultActionLevel); - $this->channelToActionLevel = array_map('Monolog\Logger::toMonologLevel', $channelToActionLevel); - } - - public function isHandlerActivated(array $record) - { - if (isset($this->channelToActionLevel[$record['channel']])) { - return $record['level'] >= $this->channelToActionLevel[$record['channel']]; - } - - return $record['level'] >= $this->defaultActionLevel; - } -} diff --git a/lib/aws-sdk/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php b/lib/aws-sdk/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php deleted file mode 100644 index 6e63085..0000000 --- a/lib/aws-sdk/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler\FingersCrossed; - -use Monolog\Logger; - -/** - * Error level based activation strategy. - * - * @author Johannes M. Schmitt - */ -class ErrorLevelActivationStrategy implements ActivationStrategyInterface -{ - private $actionLevel; - - public function __construct($actionLevel) - { - $this->actionLevel = Logger::toMonologLevel($actionLevel); - } - - public function isHandlerActivated(array $record) - { - return $record['level'] >= $this->actionLevel; - } -} diff --git a/lib/aws-sdk/Monolog/Handler/FingersCrossedHandler.php b/lib/aws-sdk/Monolog/Handler/FingersCrossedHandler.php deleted file mode 100644 index a81c9e6..0000000 --- a/lib/aws-sdk/Monolog/Handler/FingersCrossedHandler.php +++ /dev/null @@ -1,150 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy; -use Monolog\Handler\FingersCrossed\ActivationStrategyInterface; -use Monolog\Logger; - -/** - * Buffers all records until a certain level is reached - * - * The advantage of this approach is that you don't get any clutter in your log files. - * Only requests which actually trigger an error (or whatever your actionLevel is) will be - * in the logs, but they will contain all records, not only those above the level threshold. - * - * You can find the various activation strategies in the - * Monolog\Handler\FingersCrossed\ namespace. - * - * @author Jordi Boggiano - */ -class FingersCrossedHandler extends AbstractHandler -{ - protected $handler; - protected $activationStrategy; - protected $buffering = true; - protected $bufferSize; - protected $buffer = array(); - protected $stopBuffering; - protected $passthruLevel; - - /** - * @param callable|HandlerInterface $handler Handler or factory callable($record, $fingersCrossedHandler). - * @param int|ActivationStrategyInterface $activationStrategy Strategy which determines when this handler takes action - * @param int $bufferSize How many entries should be buffered at most, beyond that the oldest items are removed from the buffer. - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - * @param Boolean $stopBuffering Whether the handler should stop buffering after being triggered (default true) - * @param int $passthruLevel Minimum level to always flush to handler on close, even if strategy not triggered - */ - public function __construct($handler, $activationStrategy = null, $bufferSize = 0, $bubble = true, $stopBuffering = true, $passthruLevel = null) - { - if (null === $activationStrategy) { - $activationStrategy = new ErrorLevelActivationStrategy(Logger::WARNING); - } - - // convert simple int activationStrategy to an object - if (!$activationStrategy instanceof ActivationStrategyInterface) { - $activationStrategy = new ErrorLevelActivationStrategy($activationStrategy); - } - - $this->handler = $handler; - $this->activationStrategy = $activationStrategy; - $this->bufferSize = $bufferSize; - $this->bubble = $bubble; - $this->stopBuffering = $stopBuffering; - $this->passthruLevel = $passthruLevel; - - if (!$this->handler instanceof HandlerInterface && !is_callable($this->handler)) { - throw new \RuntimeException("The given handler (".json_encode($this->handler).") is not a callable nor a Monolog\Handler\HandlerInterface object"); - } - } - - /** - * {@inheritdoc} - */ - public function isHandling(array $record) - { - return true; - } - - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - if ($this->processors) { - foreach ($this->processors as $processor) { - $record = call_user_func($processor, $record); - } - } - - if ($this->buffering) { - $this->buffer[] = $record; - if ($this->bufferSize > 0 && count($this->buffer) > $this->bufferSize) { - array_shift($this->buffer); - } - if ($this->activationStrategy->isHandlerActivated($record)) { - if ($this->stopBuffering) { - $this->buffering = false; - } - if (!$this->handler instanceof HandlerInterface) { - $this->handler = call_user_func($this->handler, $record, $this); - if (!$this->handler instanceof HandlerInterface) { - throw new \RuntimeException("The factory callable should return a HandlerInterface"); - } - } - $this->handler->handleBatch($this->buffer); - $this->buffer = array(); - } - } else { - $this->handler->handle($record); - } - - return false === $this->bubble; - } - - /** - * {@inheritdoc} - */ - public function close() - { - if (null !== $this->passthruLevel) { - $level = $this->passthruLevel; - $this->buffer = array_filter($this->buffer, function ($record) use ($level) { - return $record['level'] >= $level; - }); - if (count($this->buffer) > 0) { - $this->handler->handleBatch($this->buffer); - $this->buffer = array(); - } - } - } - - /** - * Resets the state of the handler. Stops forwarding records to the wrapped handler. - */ - public function reset() - { - $this->buffering = true; - } - - /** - * Clears the buffer without flushing any messages down to the wrapped handler. - * - * It also resets the handler to its initial buffering state. - */ - public function clear() - { - $this->buffer = array(); - $this->reset(); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/FirePHPHandler.php b/lib/aws-sdk/Monolog/Handler/FirePHPHandler.php deleted file mode 100644 index fee4795..0000000 --- a/lib/aws-sdk/Monolog/Handler/FirePHPHandler.php +++ /dev/null @@ -1,195 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\WildfireFormatter; - -/** - * Simple FirePHP Handler (http://www.firephp.org/), which uses the Wildfire protocol. - * - * @author Eric Clemmons (@ericclemmons) - */ -class FirePHPHandler extends AbstractProcessingHandler -{ - /** - * WildFire JSON header message format - */ - const PROTOCOL_URI = 'http://meta.wildfirehq.org/Protocol/JsonStream/0.2'; - - /** - * FirePHP structure for parsing messages & their presentation - */ - const STRUCTURE_URI = 'http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1'; - - /** - * Must reference a "known" plugin, otherwise headers won't display in FirePHP - */ - const PLUGIN_URI = 'http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/0.3'; - - /** - * Header prefix for Wildfire to recognize & parse headers - */ - const HEADER_PREFIX = 'X-Wf'; - - /** - * Whether or not Wildfire vendor-specific headers have been generated & sent yet - */ - protected static $initialized = false; - - /** - * Shared static message index between potentially multiple handlers - * @var int - */ - protected static $messageIndex = 1; - - protected static $sendHeaders = true; - - /** - * Base header creation function used by init headers & record headers - * - * @param array $meta Wildfire Plugin, Protocol & Structure Indexes - * @param string $message Log message - * @return array Complete header string ready for the client as key and message as value - */ - protected function createHeader(array $meta, $message) - { - $header = sprintf('%s-%s', self::HEADER_PREFIX, join('-', $meta)); - - return array($header => $message); - } - - /** - * Creates message header from record - * - * @see createHeader() - * @param array $record - * @return string - */ - protected function createRecordHeader(array $record) - { - // Wildfire is extensible to support multiple protocols & plugins in a single request, - // but we're not taking advantage of that (yet), so we're using "1" for simplicity's sake. - return $this->createHeader( - array(1, 1, 1, self::$messageIndex++), - $record['formatted'] - ); - } - - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new WildfireFormatter(); - } - - /** - * Wildfire initialization headers to enable message parsing - * - * @see createHeader() - * @see sendHeader() - * @return array - */ - protected function getInitHeaders() - { - // Initial payload consists of required headers for Wildfire - return array_merge( - $this->createHeader(array('Protocol', 1), self::PROTOCOL_URI), - $this->createHeader(array(1, 'Structure', 1), self::STRUCTURE_URI), - $this->createHeader(array(1, 'Plugin', 1), self::PLUGIN_URI) - ); - } - - /** - * Send header string to the client - * - * @param string $header - * @param string $content - */ - protected function sendHeader($header, $content) - { - if (!headers_sent() && self::$sendHeaders) { - header(sprintf('%s: %s', $header, $content)); - } - } - - /** - * Creates & sends header for a record, ensuring init headers have been sent prior - * - * @see sendHeader() - * @see sendInitHeaders() - * @param array $record - */ - protected function write(array $record) - { - if (!self::$sendHeaders) { - return; - } - - // WildFire-specific headers must be sent prior to any messages - if (!self::$initialized) { - self::$initialized = true; - - self::$sendHeaders = $this->headersAccepted(); - if (!self::$sendHeaders) { - return; - } - - foreach ($this->getInitHeaders() as $header => $content) { - $this->sendHeader($header, $content); - } - } - - $header = $this->createRecordHeader($record); - if (trim(current($header)) !== '') { - $this->sendHeader(key($header), current($header)); - } - } - - /** - * Verifies if the headers are accepted by the current user agent - * - * @return Boolean - */ - protected function headersAccepted() - { - if (!empty($_SERVER['HTTP_USER_AGENT']) && preg_match('{\bFirePHP/\d+\.\d+\b}', $_SERVER['HTTP_USER_AGENT'])) { - return true; - } - - return isset($_SERVER['HTTP_X_FIREPHP_VERSION']); - } - - /** - * BC getter for the sendHeaders property that has been made static - */ - public function __get($property) - { - if ('sendHeaders' !== $property) { - throw new \InvalidArgumentException('Undefined property '.$property); - } - - return static::$sendHeaders; - } - - /** - * BC setter for the sendHeaders property that has been made static - */ - public function __set($property, $value) - { - if ('sendHeaders' !== $property) { - throw new \InvalidArgumentException('Undefined property '.$property); - } - - static::$sendHeaders = $value; - } -} diff --git a/lib/aws-sdk/Monolog/Handler/FleepHookHandler.php b/lib/aws-sdk/Monolog/Handler/FleepHookHandler.php deleted file mode 100644 index 388692c..0000000 --- a/lib/aws-sdk/Monolog/Handler/FleepHookHandler.php +++ /dev/null @@ -1,126 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\LineFormatter; -use Monolog\Logger; - -/** - * Sends logs to Fleep.io using Webhook integrations - * - * You'll need a Fleep.io account to use this handler. - * - * @see https://fleep.io/integrations/webhooks/ Fleep Webhooks Documentation - * @author Ando Roots - */ -class FleepHookHandler extends SocketHandler -{ - const FLEEP_HOST = 'fleep.io'; - - const FLEEP_HOOK_URI = '/hook/'; - - /** - * @var string Webhook token (specifies the conversation where logs are sent) - */ - protected $token; - - /** - * Construct a new Fleep.io Handler. - * - * For instructions on how to create a new web hook in your conversations - * see https://fleep.io/integrations/webhooks/ - * - * @param string $token Webhook token - * @param bool|int $level The minimum logging level at which this handler will be triggered - * @param bool $bubble Whether the messages that are handled can bubble up the stack or not - * @throws MissingExtensionException - */ - public function __construct($token, $level = Logger::DEBUG, $bubble = true) - { - if (!extension_loaded('openssl')) { - throw new MissingExtensionException('The OpenSSL PHP extension is required to use the FleepHookHandler'); - } - - $this->token = $token; - - $connectionString = 'ssl://' . self::FLEEP_HOST . ':443'; - parent::__construct($connectionString, $level, $bubble); - } - - /** - * Returns the default formatter to use with this handler - * - * Overloaded to remove empty context and extra arrays from the end of the log message. - * - * @return LineFormatter - */ - protected function getDefaultFormatter() - { - return new LineFormatter(null, null, true, true); - } - - /** - * Handles a log record - * - * @param array $record - */ - public function write(array $record) - { - parent::write($record); - $this->closeSocket(); - } - - /** - * {@inheritdoc} - * - * @param array $record - * @return string - */ - protected function generateDataStream($record) - { - $content = $this->buildContent($record); - - return $this->buildHeader($content) . $content; - } - - /** - * Builds the header of the API Call - * - * @param string $content - * @return string - */ - private function buildHeader($content) - { - $header = "POST " . self::FLEEP_HOOK_URI . $this->token . " HTTP/1.1\r\n"; - $header .= "Host: " . self::FLEEP_HOST . "\r\n"; - $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; - $header .= "Content-Length: " . strlen($content) . "\r\n"; - $header .= "\r\n"; - - return $header; - } - - /** - * Builds the body of API call - * - * @param array $record - * @return string - */ - private function buildContent($record) - { - $dataArray = array( - 'message' => $record['formatted'] - ); - - return http_build_query($dataArray); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/FlowdockHandler.php b/lib/aws-sdk/Monolog/Handler/FlowdockHandler.php deleted file mode 100644 index 6eaaa9d..0000000 --- a/lib/aws-sdk/Monolog/Handler/FlowdockHandler.php +++ /dev/null @@ -1,103 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Sends notifications through the Flowdock push API - * - * This must be configured with a FlowdockFormatter instance via setFormatter() - * - * Notes: - * API token - Flowdock API token - * - * @author Dominik Liebler - * @see https://www.flowdock.com/api/push - */ -class FlowdockHandler extends SocketHandler -{ - /** - * @var string - */ - protected $apiToken; - - /** - * @param string $apiToken - * @param bool|int $level The minimum logging level at which this handler will be triggered - * @param bool $bubble Whether the messages that are handled can bubble up the stack or not - * - * @throws MissingExtensionException if OpenSSL is missing - */ - public function __construct($apiToken, $level = Logger::DEBUG, $bubble = true) - { - if (!extension_loaded('openssl')) { - throw new MissingExtensionException('The OpenSSL PHP extension is required to use the FlowdockHandler'); - } - - parent::__construct('ssl://api.flowdock.com:443', $level, $bubble); - $this->apiToken = $apiToken; - } - - /** - * {@inheritdoc} - * - * @param array $record - */ - protected function write(array $record) - { - parent::write($record); - - $this->closeSocket(); - } - - /** - * {@inheritdoc} - * - * @param array $record - * @return string - */ - protected function generateDataStream($record) - { - $content = $this->buildContent($record); - - return $this->buildHeader($content) . $content; - } - - /** - * Builds the body of API call - * - * @param array $record - * @return string - */ - private function buildContent($record) - { - return json_encode($record['formatted']['flowdock']); - } - - /** - * Builds the header of the API Call - * - * @param string $content - * @return string - */ - private function buildHeader($content) - { - $header = "POST /v1/messages/team_inbox/" . $this->apiToken . " HTTP/1.1\r\n"; - $header .= "Host: api.flowdock.com\r\n"; - $header .= "Content-Type: application/json\r\n"; - $header .= "Content-Length: " . strlen($content) . "\r\n"; - $header .= "\r\n"; - - return $header; - } -} diff --git a/lib/aws-sdk/Monolog/Handler/GelfHandler.php b/lib/aws-sdk/Monolog/Handler/GelfHandler.php deleted file mode 100644 index 790f636..0000000 --- a/lib/aws-sdk/Monolog/Handler/GelfHandler.php +++ /dev/null @@ -1,72 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Gelf\IMessagePublisher; -use Gelf\PublisherInterface; -use InvalidArgumentException; -use Monolog\Logger; -use Monolog\Formatter\GelfMessageFormatter; - -/** - * Handler to send messages to a Graylog2 (http://www.graylog2.org) server - * - * @author Matt Lehner - * @author Benjamin Zikarsky - */ -class GelfHandler extends AbstractProcessingHandler -{ - /** - * @var Publisher the publisher object that sends the message to the server - */ - protected $publisher; - - /** - * @param PublisherInterface|IMessagePublisher $publisher a publisher object - * @param integer $level The minimum logging level at which this handler will be triggered - * @param boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct($publisher, $level = Logger::DEBUG, $bubble = true) - { - parent::__construct($level, $bubble); - - if (!$publisher instanceof IMessagePublisher && !$publisher instanceof PublisherInterface) { - throw new InvalidArgumentException("Invalid publisher, expected a Gelf\IMessagePublisher or Gelf\PublisherInterface instance"); - } - - $this->publisher = $publisher; - } - - /** - * {@inheritdoc} - */ - public function close() - { - $this->publisher = null; - } - - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - $this->publisher->publish($record['formatted']); - } - - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new GelfMessageFormatter(); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/GroupHandler.php b/lib/aws-sdk/Monolog/Handler/GroupHandler.php deleted file mode 100644 index 99384d3..0000000 --- a/lib/aws-sdk/Monolog/Handler/GroupHandler.php +++ /dev/null @@ -1,80 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -/** - * Forwards records to multiple handlers - * - * @author Lenar Lõhmus - */ -class GroupHandler extends AbstractHandler -{ - protected $handlers; - - /** - * @param array $handlers Array of Handlers. - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct(array $handlers, $bubble = true) - { - foreach ($handlers as $handler) { - if (!$handler instanceof HandlerInterface) { - throw new \InvalidArgumentException('The first argument of the GroupHandler must be an array of HandlerInterface instances.'); - } - } - - $this->handlers = $handlers; - $this->bubble = $bubble; - } - - /** - * {@inheritdoc} - */ - public function isHandling(array $record) - { - foreach ($this->handlers as $handler) { - if ($handler->isHandling($record)) { - return true; - } - } - - return false; - } - - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - if ($this->processors) { - foreach ($this->processors as $processor) { - $record = call_user_func($processor, $record); - } - } - - foreach ($this->handlers as $handler) { - $handler->handle($record); - } - - return false === $this->bubble; - } - - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - foreach ($this->handlers as $handler) { - $handler->handleBatch($records); - } - } -} diff --git a/lib/aws-sdk/Monolog/Handler/HandlerInterface.php b/lib/aws-sdk/Monolog/Handler/HandlerInterface.php deleted file mode 100644 index d920c4b..0000000 --- a/lib/aws-sdk/Monolog/Handler/HandlerInterface.php +++ /dev/null @@ -1,90 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\FormatterInterface; - -/** - * Interface that all Monolog Handlers must implement - * - * @author Jordi Boggiano - */ -interface HandlerInterface -{ - /** - * Checks whether the given record will be handled by this handler. - * - * This is mostly done for performance reasons, to avoid calling processors for nothing. - * - * Handlers should still check the record levels within handle(), returning false in isHandling() - * is no guarantee that handle() will not be called, and isHandling() might not be called - * for a given record. - * - * @param array $record Partial log record containing only a level key - * - * @return Boolean - */ - public function isHandling(array $record); - - /** - * Handles a record. - * - * All records may be passed to this method, and the handler should discard - * those that it does not want to handle. - * - * The return value of this function controls the bubbling process of the handler stack. - * Unless the bubbling is interrupted (by returning true), the Logger class will keep on - * calling further handlers in the stack with a given log record. - * - * @param array $record The record to handle - * @return Boolean true means that this handler handled the record, and that bubbling is not permitted. - * false means the record was either not processed or that this handler allows bubbling. - */ - public function handle(array $record); - - /** - * Handles a set of records at once. - * - * @param array $records The records to handle (an array of record arrays) - */ - public function handleBatch(array $records); - - /** - * Adds a processor in the stack. - * - * @param callable $callback - * @return self - */ - public function pushProcessor($callback); - - /** - * Removes the processor on top of the stack and returns it. - * - * @return callable - */ - public function popProcessor(); - - /** - * Sets the formatter. - * - * @param FormatterInterface $formatter - * @return self - */ - public function setFormatter(FormatterInterface $formatter); - - /** - * Gets the formatter. - * - * @return FormatterInterface - */ - public function getFormatter(); -} diff --git a/lib/aws-sdk/Monolog/Handler/HipChatHandler.php b/lib/aws-sdk/Monolog/Handler/HipChatHandler.php deleted file mode 100644 index 185e86e..0000000 --- a/lib/aws-sdk/Monolog/Handler/HipChatHandler.php +++ /dev/null @@ -1,306 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Sends notifications through the hipchat api to a hipchat room - * - * Notes: - * API token - HipChat API token - * Room - HipChat Room Id or name, where messages are sent - * Name - Name used to send the message (from) - * notify - Should the message trigger a notification in the clients - * - * @author Rafael Dohms - * @see https://www.hipchat.com/docs/api - */ -class HipChatHandler extends SocketHandler -{ - /** - * The maximum allowed length for the name used in the "from" field. - */ - const MAXIMUM_NAME_LENGTH = 15; - - /** - * The maximum allowed length for the message. - */ - const MAXIMUM_MESSAGE_LENGTH = 9500; - - /** - * @var string - */ - private $token; - - /** - * @var string - */ - private $room; - - /** - * @var string - */ - private $name; - - /** - * @var bool - */ - private $notify; - - /** - * @var string - */ - private $format; - - /** - * @var string - */ - private $host; - - /** - * @param string $token HipChat API Token - * @param string $room The room that should be alerted of the message (Id or Name) - * @param string $name Name used in the "from" field - * @param bool $notify Trigger a notification in clients or not - * @param int $level The minimum logging level at which this handler will be triggered - * @param bool $bubble Whether the messages that are handled can bubble up the stack or not - * @param bool $useSSL Whether to connect via SSL. - * @param string $format The format of the messages (default to text, can be set to html if you have html in the messages) - * @param string $host The HipChat server hostname. - */ - public function __construct($token, $room, $name = 'Monolog', $notify = false, $level = Logger::CRITICAL, $bubble = true, $useSSL = true, $format = 'text', $host = 'api.hipchat.com') - { - if (!$this->validateStringLength($name, static::MAXIMUM_NAME_LENGTH)) { - throw new \InvalidArgumentException('The supplied name is too long. HipChat\'s v1 API supports names up to 15 UTF-8 characters.'); - } - - $connectionString = $useSSL ? 'ssl://'.$host.':443' : $host.':80'; - parent::__construct($connectionString, $level, $bubble); - - $this->token = $token; - $this->name = $name; - $this->notify = $notify; - $this->room = $room; - $this->format = $format; - $this->host = $host; - } - - /** - * {@inheritdoc} - * - * @param array $record - * @return string - */ - protected function generateDataStream($record) - { - $content = $this->buildContent($record); - - return $this->buildHeader($content) . $content; - } - - /** - * Builds the body of API call - * - * @param array $record - * @return string - */ - private function buildContent($record) - { - $dataArray = array( - 'from' => $this->name, - 'room_id' => $this->room, - 'notify' => $this->notify, - 'message' => $record['formatted'], - 'message_format' => $this->format, - 'color' => $this->getAlertColor($record['level']), - ); - - return http_build_query($dataArray); - } - - /** - * Builds the header of the API Call - * - * @param string $content - * @return string - */ - private function buildHeader($content) - { - $header = "POST /v1/rooms/message?format=json&auth_token=".$this->token." HTTP/1.1\r\n"; - $header .= "Host: {$this->host}\r\n"; - $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; - $header .= "Content-Length: " . strlen($content) . "\r\n"; - $header .= "\r\n"; - - return $header; - } - - /** - * Assigns a color to each level of log records. - * - * @param integer $level - * @return string - */ - protected function getAlertColor($level) - { - switch (true) { - case $level >= Logger::ERROR: - return 'red'; - case $level >= Logger::WARNING: - return 'yellow'; - case $level >= Logger::INFO: - return 'green'; - case $level == Logger::DEBUG: - return 'gray'; - default: - return 'yellow'; - } - } - - /** - * {@inheritdoc} - * - * @param array $record - */ - protected function write(array $record) - { - parent::write($record); - $this->closeSocket(); - } - - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - if (count($records) == 0) { - return true; - } - - $batchRecords = $this->combineRecords($records); - - $handled = false; - foreach ($batchRecords as $batchRecord) { - if ($this->isHandling($batchRecord)) { - $this->write($batchRecord); - $handled = true; - } - } - - if (!$handled) { - return false; - } - - return false === $this->bubble; - } - - /** - * Combines multiple records into one. Error level of the combined record - * will be the highest level from the given records. Datetime will be taken - * from the first record. - * - * @param $records - * @return array - */ - private function combineRecords($records) - { - $batchRecord = null; - $batchRecords = array(); - $messages = array(); - $formattedMessages = array(); - $level = 0; - $levelName = null; - $datetime = null; - - foreach ($records as $record) { - $record = $this->processRecord($record); - - if ($record['level'] > $level) { - $level = $record['level']; - $levelName = $record['level_name']; - } - - if (null === $datetime) { - $datetime = $record['datetime']; - } - - $messages[] = $record['message']; - $messageStr = implode(PHP_EOL, $messages); - $formattedMessages[] = $this->getFormatter()->format($record); - $formattedMessageStr = implode('', $formattedMessages); - - $batchRecord = array( - 'message' => $messageStr, - 'formatted' => $formattedMessageStr, - 'context' => array(), - 'extra' => array(), - ); - - if (!$this->validateStringLength($batchRecord['formatted'], static::MAXIMUM_MESSAGE_LENGTH)) { - // Pop the last message and implode the remaining messages - $lastMessage = array_pop($messages); - $lastFormattedMessage = array_pop($formattedMessages); - $batchRecord['message'] = implode(PHP_EOL, $messages); - $batchRecord['formatted'] = implode('', $formattedMessages); - - $batchRecords[] = $batchRecord; - $messages = array($lastMessage); - $formattedMessages = array($lastFormattedMessage); - - $batchRecord = null; - } - } - - if (null !== $batchRecord) { - $batchRecords[] = $batchRecord; - } - - // Set the max level and datetime for all records - foreach ($batchRecords as &$batchRecord) { - $batchRecord = array_merge( - $batchRecord, - array( - 'level' => $level, - 'level_name' => $levelName, - 'datetime' => $datetime - ) - ); - } - - return $batchRecords; - } - - /** - * Validates the length of a string. - * - * If the `mb_strlen()` function is available, it will use that, as HipChat - * allows UTF-8 characters. Otherwise, it will fall back to `strlen()`. - * - * Note that this might cause false failures in the specific case of using - * a valid name with less than 16 characters, but 16 or more bytes, on a - * system where `mb_strlen()` is unavailable. - * - * @param string $str - * @param int $length - * - * @return bool - */ - private function validateStringLength($str, $length) - { - if (function_exists('mb_strlen')) { - return (mb_strlen($str) <= $length); - } - - return (strlen($str) <= $length); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/LogEntriesHandler.php b/lib/aws-sdk/Monolog/Handler/LogEntriesHandler.php deleted file mode 100644 index bd56230..0000000 --- a/lib/aws-sdk/Monolog/Handler/LogEntriesHandler.php +++ /dev/null @@ -1,55 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * @author Robert Kaufmann III - */ -class LogEntriesHandler extends SocketHandler -{ - /** - * @var string - */ - protected $logToken; - - /** - * @param string $token Log token supplied by LogEntries - * @param boolean $useSSL Whether or not SSL encryption should be used. - * @param int $level The minimum logging level to trigger this handler - * @param boolean $bubble Whether or not messages that are handled should bubble up the stack. - * - * @throws MissingExtensionException If SSL encryption is set to true and OpenSSL is missing - */ - public function __construct($token, $useSSL = true, $level = Logger::DEBUG, $bubble = true) - { - if ($useSSL && !extension_loaded('openssl')) { - throw new MissingExtensionException('The OpenSSL PHP plugin is required to use SSL encrypted connection for LogEntriesHandler'); - } - - $endpoint = $useSSL ? 'ssl://data.logentries.com:443' : 'data.logentries.com:80'; - parent::__construct($endpoint, $level, $bubble); - $this->logToken = $token; - } - - /** - * {@inheritdoc} - * - * @param array $record - * @return string - */ - protected function generateDataStream($record) - { - return $this->logToken . ' ' . $record['formatted']; - } -} diff --git a/lib/aws-sdk/Monolog/Handler/LogglyHandler.php b/lib/aws-sdk/Monolog/Handler/LogglyHandler.php deleted file mode 100644 index efd94d3..0000000 --- a/lib/aws-sdk/Monolog/Handler/LogglyHandler.php +++ /dev/null @@ -1,98 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Monolog\Formatter\LogglyFormatter; - -/** - * Sends errors to Loggly. - * - * @author Przemek Sobstel - * @author Adam Pancutt - */ -class LogglyHandler extends AbstractProcessingHandler -{ - const HOST = 'logs-01.loggly.com'; - const ENDPOINT_SINGLE = 'inputs'; - const ENDPOINT_BATCH = 'bulk'; - - protected $token; - - protected $tag; - - public function __construct($token, $level = Logger::DEBUG, $bubble = true) - { - if (!extension_loaded('curl')) { - throw new \LogicException('The curl extension is needed to use the LogglyHandler'); - } - - $this->token = $token; - - parent::__construct($level, $bubble); - } - - public function setTag($tag) - { - $this->tag = $tag; - } - - public function addTag($tag) - { - $this->tag = (strlen($this->tag) > 0) ? $this->tag .','. $tag : $tag; - } - - protected function write(array $record) - { - $this->send($record["formatted"], self::ENDPOINT_SINGLE); - } - - public function handleBatch(array $records) - { - $level = $this->level; - - $records = array_filter($records, function ($record) use ($level) { - return ($record['level'] >= $level); - }); - - if ($records) { - $this->send($this->getFormatter()->formatBatch($records), self::ENDPOINT_BATCH); - } - } - - protected function send($data, $endpoint) - { - $url = sprintf("https://%s/%s/%s/", self::HOST, $endpoint, $this->token); - - $headers = array('Content-Type: application/json'); - - if ($this->tag) { - $headers[] = "X-LOGGLY-TAG: {$this->tag}"; - } - - $ch = curl_init(); - - curl_setopt($ch, CURLOPT_URL, $url); - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_POSTFIELDS, $data); - curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - - curl_exec($ch); - curl_close($ch); - } - - protected function getDefaultFormatter() - { - return new LogglyFormatter(); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/MailHandler.php b/lib/aws-sdk/Monolog/Handler/MailHandler.php deleted file mode 100644 index 50ed638..0000000 --- a/lib/aws-sdk/Monolog/Handler/MailHandler.php +++ /dev/null @@ -1,55 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -/** - * Base class for all mail handlers - * - * @author Gyula Sallai - */ -abstract class MailHandler extends AbstractProcessingHandler -{ - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - $messages = array(); - - foreach ($records as $record) { - if ($record['level'] < $this->level) { - continue; - } - $messages[] = $this->processRecord($record); - } - - if (!empty($messages)) { - $this->send((string) $this->getFormatter()->formatBatch($messages), $messages); - } - } - - /** - * Send a mail with the given content - * - * @param string $content formatted email body to be sent - * @param array $records the array of log records that formed this content - */ - abstract protected function send($content, array $records); - - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - $this->send((string) $record['formatted'], array($record)); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/MandrillHandler.php b/lib/aws-sdk/Monolog/Handler/MandrillHandler.php deleted file mode 100644 index 60a2901..0000000 --- a/lib/aws-sdk/Monolog/Handler/MandrillHandler.php +++ /dev/null @@ -1,69 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * MandrillHandler uses cURL to send the emails to the Mandrill API - * - * @author Adam Nicholson - */ -class MandrillHandler extends MailHandler -{ - protected $client; - protected $message; - - /** - * @param string $apiKey A valid Mandrill API key - * @param callable|\Swift_Message $message An example message for real messages, only the body will be replaced - * @param integer $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct($apiKey, $message, $level = Logger::ERROR, $bubble = true) - { - parent::__construct($level, $bubble); - - if (!$message instanceof \Swift_Message && is_callable($message)) { - $message = call_user_func($message); - } - if (!$message instanceof \Swift_Message) { - throw new \InvalidArgumentException('You must provide either a Swift_Message instance or a callable returning it'); - } - $this->message = $message; - $this->apiKey = $apiKey; - } - - /** - * {@inheritdoc} - */ - protected function send($content, array $records) - { - $message = clone $this->message; - $message->setBody($content); - $message->setDate(time()); - - $ch = curl_init(); - - curl_setopt($ch, CURLOPT_URL, 'https://mandrillapp.com/api/1.0/messages/send-raw.json'); - curl_setopt($ch, CURLOPT_POST, 1); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array( - 'key' => $this->apiKey, - 'raw_message' => (string) $message, - 'async' => false, - ))); - - curl_exec($ch); - curl_close($ch); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/MissingExtensionException.php b/lib/aws-sdk/Monolog/Handler/MissingExtensionException.php deleted file mode 100644 index 4724a7e..0000000 --- a/lib/aws-sdk/Monolog/Handler/MissingExtensionException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -/** - * Exception can be thrown if an extension for an handler is missing - * - * @author Christian Bergau - */ -class MissingExtensionException extends \Exception -{ -} diff --git a/lib/aws-sdk/Monolog/Handler/MongoDBHandler.php b/lib/aws-sdk/Monolog/Handler/MongoDBHandler.php deleted file mode 100644 index 6c431f2..0000000 --- a/lib/aws-sdk/Monolog/Handler/MongoDBHandler.php +++ /dev/null @@ -1,55 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Monolog\Formatter\NormalizerFormatter; - -/** - * Logs to a MongoDB database. - * - * usage example: - * - * $log = new Logger('application'); - * $mongodb = new MongoDBHandler(new \Mongo("mongodb://localhost:27017"), "logs", "prod"); - * $log->pushHandler($mongodb); - * - * @author Thomas Tourlourat - */ -class MongoDBHandler extends AbstractProcessingHandler -{ - protected $mongoCollection; - - public function __construct($mongo, $database, $collection, $level = Logger::DEBUG, $bubble = true) - { - if (!($mongo instanceof \MongoClient || $mongo instanceof \Mongo)) { - throw new \InvalidArgumentException('MongoClient or Mongo instance required'); - } - - $this->mongoCollection = $mongo->selectCollection($database, $collection); - - parent::__construct($level, $bubble); - } - - protected function write(array $record) - { - $this->mongoCollection->save($record["formatted"]); - } - - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new NormalizerFormatter(); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/NativeMailerHandler.php b/lib/aws-sdk/Monolog/Handler/NativeMailerHandler.php deleted file mode 100644 index 5118a0e..0000000 --- a/lib/aws-sdk/Monolog/Handler/NativeMailerHandler.php +++ /dev/null @@ -1,176 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * NativeMailerHandler uses the mail() function to send the emails - * - * @author Christophe Coevoet - * @author Mark Garrett - */ -class NativeMailerHandler extends MailHandler -{ - /** - * The email addresses to which the message will be sent - * @var array - */ - protected $to; - - /** - * The subject of the email - * @var string - */ - protected $subject; - - /** - * Optional headers for the message - * @var array - */ - protected $headers = array(); - - /** - * Optional parameters for the message - * @var array - */ - protected $parameters = array(); - - /** - * The wordwrap length for the message - * @var integer - */ - protected $maxColumnWidth; - - /** - * The Content-type for the message - * @var string - */ - protected $contentType = 'text/plain'; - - /** - * The encoding for the message - * @var string - */ - protected $encoding = 'utf-8'; - - /** - * @param string|array $to The receiver of the mail - * @param string $subject The subject of the mail - * @param string $from The sender of the mail - * @param integer $level The minimum logging level at which this handler will be triggered - * @param boolean $bubble Whether the messages that are handled can bubble up the stack or not - * @param int $maxColumnWidth The maximum column width that the message lines will have - */ - public function __construct($to, $subject, $from, $level = Logger::ERROR, $bubble = true, $maxColumnWidth = 70) - { - parent::__construct($level, $bubble); - $this->to = is_array($to) ? $to : array($to); - $this->subject = $subject; - $this->addHeader(sprintf('From: %s', $from)); - $this->maxColumnWidth = $maxColumnWidth; - } - - /** - * Add headers to the message - * - * @param string|array $headers Custom added headers - * @return self - */ - public function addHeader($headers) - { - foreach ((array) $headers as $header) { - if (strpos($header, "\n") !== false || strpos($header, "\r") !== false) { - throw new \InvalidArgumentException('Headers can not contain newline characters for security reasons'); - } - $this->headers[] = $header; - } - - return $this; - } - - /** - * Add parameters to the message - * - * @param string|array $parameters Custom added parameters - * @return self - */ - public function addParameter($parameters) - { - $this->parameters = array_merge($this->parameters, (array) $parameters); - - return $this; - } - - /** - * {@inheritdoc} - */ - protected function send($content, array $records) - { - $content = wordwrap($content, $this->maxColumnWidth); - $headers = ltrim(implode("\r\n", $this->headers) . "\r\n", "\r\n"); - $headers .= 'Content-type: ' . $this->getContentType() . '; charset=' . $this->getEncoding() . "\r\n"; - if ($this->getContentType() == 'text/html' && false === strpos($headers, 'MIME-Version:')) { - $headers .= 'MIME-Version: 1.0' . "\r\n"; - } - foreach ($this->to as $to) { - mail($to, $this->subject, $content, $headers, implode(' ', $this->parameters)); - } - } - - /** - * @return string $contentType - */ - public function getContentType() - { - return $this->contentType; - } - - /** - * @return string $encoding - */ - public function getEncoding() - { - return $this->encoding; - } - - /** - * @param string $contentType The content type of the email - Defaults to text/plain. Use text/html for HTML - * messages. - * @return self - */ - public function setContentType($contentType) - { - if (strpos($contentType, "\n") !== false || strpos($contentType, "\r") !== false) { - throw new \InvalidArgumentException('The content type can not contain newline characters to prevent email header injection'); - } - - $this->contentType = $contentType; - - return $this; - } - - /** - * @param string $encoding - * @return self - */ - public function setEncoding($encoding) - { - if (strpos($encoding, "\n") !== false || strpos($encoding, "\r") !== false) { - throw new \InvalidArgumentException('The encoding can not contain newline characters to prevent email header injection'); - } - - $this->encoding = $encoding; - - return $this; - } -} diff --git a/lib/aws-sdk/Monolog/Handler/NewRelicHandler.php b/lib/aws-sdk/Monolog/Handler/NewRelicHandler.php deleted file mode 100644 index 0c26794..0000000 --- a/lib/aws-sdk/Monolog/Handler/NewRelicHandler.php +++ /dev/null @@ -1,176 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Class to record a log on a NewRelic application. - * Enabling New Relic High Security mode may prevent capture of useful information. - * - * @see https://docs.newrelic.com/docs/agents/php-agent - * @see https://docs.newrelic.com/docs/accounts-partnerships/accounts/security/high-security - */ -class NewRelicHandler extends AbstractProcessingHandler -{ - /** - * Name of the New Relic application that will receive logs from this handler. - * - * @var string - */ - protected $appName; - - /** - * Name of the current transaction - * - * @var string - */ - protected $transactionName; - - /** - * Some context and extra data is passed into the handler as arrays of values. Do we send them as is - * (useful if we are using the API), or explode them for display on the NewRelic RPM website? - * - * @var boolean - */ - protected $explodeArrays; - - /** - * {@inheritDoc} - * - * @param string $appName - * @param boolean $explodeArrays - * @param string $transactionName - */ - public function __construct( - $level = Logger::ERROR, - $bubble = true, - $appName = null, - $explodeArrays = false, - $transactionName = null - ) { - parent::__construct($level, $bubble); - - $this->appName = $appName; - $this->explodeArrays = $explodeArrays; - $this->transactionName = $transactionName; - } - - /** - * {@inheritDoc} - */ - protected function write(array $record) - { - if (!$this->isNewRelicEnabled()) { - throw new MissingExtensionException('The newrelic PHP extension is required to use the NewRelicHandler'); - } - - if ($appName = $this->getAppName($record['context'])) { - $this->setNewRelicAppName($appName); - } - - if ($transactionName = $this->getTransactionName($record['context'])) { - $this->setNewRelicTransactionName($transactionName); - unset($record['context']['transaction_name']); - } - - if (isset($record['context']['exception']) && $record['context']['exception'] instanceof \Exception) { - newrelic_notice_error($record['message'], $record['context']['exception']); - unset($record['context']['exception']); - } else { - newrelic_notice_error($record['message']); - } - - foreach ($record['context'] as $key => $parameter) { - if (is_array($parameter) && $this->explodeArrays) { - foreach ($parameter as $paramKey => $paramValue) { - newrelic_add_custom_parameter('context_' . $key . '_' . $paramKey, $paramValue); - } - } else { - newrelic_add_custom_parameter('context_' . $key, $parameter); - } - } - - foreach ($record['extra'] as $key => $parameter) { - if (is_array($parameter) && $this->explodeArrays) { - foreach ($parameter as $paramKey => $paramValue) { - newrelic_add_custom_parameter('extra_' . $key . '_' . $paramKey, $paramValue); - } - } else { - newrelic_add_custom_parameter('extra_' . $key, $parameter); - } - } - } - - /** - * Checks whether the NewRelic extension is enabled in the system. - * - * @return bool - */ - protected function isNewRelicEnabled() - { - return extension_loaded('newrelic'); - } - - /** - * Returns the appname where this log should be sent. Each log can override the default appname, set in this - * handler's constructor, by providing the appname in it's context. - * - * @param array $context - * @return null|string - */ - protected function getAppName(array $context) - { - if (isset($context['appname'])) { - return $context['appname']; - } - - return $this->appName; - } - - /** - * Returns the name of the current transaction. Each log can override the default transaction name, set in this - * handler's constructor, by providing the transaction_name in it's context - * - * @param array $context - * - * @return null|string - */ - protected function getTransactionName(array $context) - { - if (isset($context['transaction_name'])) { - return $context['transaction_name']; - } - - return $this->transactionName; - } - - /** - * Sets the NewRelic application that should receive this log. - * - * @param string $appName - */ - protected function setNewRelicAppName($appName) - { - newrelic_set_appname($appName); - } - - /** - * Overwrites the name of the current transaction - * - * @param $transactionName - */ - protected function setNewRelicTransactionName($transactionName) - { - newrelic_name_transaction($transactionName); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/NullHandler.php b/lib/aws-sdk/Monolog/Handler/NullHandler.php deleted file mode 100644 index 3754e45..0000000 --- a/lib/aws-sdk/Monolog/Handler/NullHandler.php +++ /dev/null @@ -1,45 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Blackhole - * - * Any record it can handle will be thrown away. This can be used - * to put on top of an existing stack to override it temporarily. - * - * @author Jordi Boggiano - */ -class NullHandler extends AbstractHandler -{ - /** - * @param integer $level The minimum logging level at which this handler will be triggered - */ - public function __construct($level = Logger::DEBUG) - { - parent::__construct($level, false); - } - - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - if ($record['level'] < $this->level) { - return false; - } - - return true; - } -} diff --git a/lib/aws-sdk/Monolog/Handler/PsrHandler.php b/lib/aws-sdk/Monolog/Handler/PsrHandler.php deleted file mode 100644 index 1ae8584..0000000 --- a/lib/aws-sdk/Monolog/Handler/PsrHandler.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Psr\Log\LoggerInterface; - -/** - * Proxies log messages to an existing PSR-3 compliant logger. - * - * @author Michael Moussa - */ -class PsrHandler extends AbstractHandler -{ - /** - * PSR-3 compliant logger - * - * @var LoggerInterface - */ - protected $logger; - - /** - * @param LoggerInterface $logger The underlying PSR-3 compliant logger to which messages will be proxied - * @param int $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct(LoggerInterface $logger, $level = Logger::DEBUG, $bubble = true) - { - parent::__construct($level, $bubble); - - $this->logger = $logger; - } - - /** - * {@inheritDoc} - */ - public function handle(array $record) - { - if (!$this->isHandling($record)) { - return false; - } - - $this->logger->log(strtolower($record['level_name']), $record['message'], $record['context']); - - return false === $this->bubble; - } -} diff --git a/lib/aws-sdk/Monolog/Handler/PushoverHandler.php b/lib/aws-sdk/Monolog/Handler/PushoverHandler.php deleted file mode 100644 index cd2fcfa..0000000 --- a/lib/aws-sdk/Monolog/Handler/PushoverHandler.php +++ /dev/null @@ -1,172 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Sends notifications through the pushover api to mobile phones - * - * @author Sebastian Göttschkes - * @see https://www.pushover.net/api - */ -class PushoverHandler extends SocketHandler -{ - private $token; - private $users; - private $title; - private $user; - private $retry; - private $expire; - - private $highPriorityLevel; - private $emergencyLevel; - - /** - * All parameters that can be sent to Pushover - * @see https://pushover.net/api - * @var array - */ - private $parameterNames = array( - 'token' => true, - 'user' => true, - 'message' => true, - 'device' => true, - 'title' => true, - 'url' => true, - 'url_title' => true, - 'priority' => true, - 'timestamp' => true, - 'sound' => true, - 'retry' => true, - 'expire' => true, - 'callback' => true, - ); - - /** - * Sounds the api supports by default - * @see https://pushover.net/api#sounds - * @var array - */ - private $sounds = array( - 'pushover', 'bike', 'bugle', 'cashregister', 'classical', 'cosmic', 'falling', 'gamelan', 'incoming', - 'intermission', 'magic', 'mechanical', 'pianobar', 'siren', 'spacealarm', 'tugboat', 'alien', 'climb', - 'persistent', 'echo', 'updown', 'none', - ); - - /** - * @param string $token Pushover api token - * @param string|array $users Pushover user id or array of ids the message will be sent to - * @param string $title Title sent to the Pushover API - * @param integer $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - * @param Boolean $useSSL Whether to connect via SSL. Required when pushing messages to users that are not - * the pushover.net app owner. OpenSSL is required for this option. - * @param integer $highPriorityLevel The minimum logging level at which this handler will start - * sending "high priority" requests to the Pushover API - * @param integer $emergencyLevel The minimum logging level at which this handler will start - * sending "emergency" requests to the Pushover API - * @param integer $retry The retry parameter specifies how often (in seconds) the Pushover servers will send the same notification to the user. - * @param integer $expire The expire parameter specifies how many seconds your notification will continue to be retried for (every retry seconds). - */ - public function __construct($token, $users, $title = null, $level = Logger::CRITICAL, $bubble = true, $useSSL = true, $highPriorityLevel = Logger::CRITICAL, $emergencyLevel = Logger::EMERGENCY, $retry = 30, $expire = 25200) - { - $connectionString = $useSSL ? 'ssl://api.pushover.net:443' : 'api.pushover.net:80'; - parent::__construct($connectionString, $level, $bubble); - - $this->token = $token; - $this->users = (array) $users; - $this->title = $title ?: gethostname(); - $this->highPriorityLevel = Logger::toMonologLevel($highPriorityLevel); - $this->emergencyLevel = Logger::toMonologLevel($emergencyLevel); - $this->retry = $retry; - $this->expire = $expire; - } - - protected function generateDataStream($record) - { - $content = $this->buildContent($record); - - return $this->buildHeader($content) . $content; - } - - private function buildContent($record) - { - // Pushover has a limit of 512 characters on title and message combined. - $maxMessageLength = 512 - strlen($this->title); - $message = substr($record['message'], 0, $maxMessageLength); - $timestamp = $record['datetime']->getTimestamp(); - - $dataArray = array( - 'token' => $this->token, - 'user' => $this->user, - 'message' => $message, - 'title' => $this->title, - 'timestamp' => $timestamp - ); - - if (isset($record['level']) && $record['level'] >= $this->emergencyLevel) { - $dataArray['priority'] = 2; - $dataArray['retry'] = $this->retry; - $dataArray['expire'] = $this->expire; - } elseif (isset($record['level']) && $record['level'] >= $this->highPriorityLevel) { - $dataArray['priority'] = 1; - } - - // First determine the available parameters - $context = array_intersect_key($record['context'], $this->parameterNames); - $extra = array_intersect_key($record['extra'], $this->parameterNames); - - // Least important info should be merged with subsequent info - $dataArray = array_merge($extra, $context, $dataArray); - - // Only pass sounds that are supported by the API - if (isset($dataArray['sound']) && !in_array($dataArray['sound'], $this->sounds)) { - unset($dataArray['sound']); - } - - return http_build_query($dataArray); - } - - private function buildHeader($content) - { - $header = "POST /1/messages.json HTTP/1.1\r\n"; - $header .= "Host: api.pushover.net\r\n"; - $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; - $header .= "Content-Length: " . strlen($content) . "\r\n"; - $header .= "\r\n"; - - return $header; - } - - protected function write(array $record) - { - foreach ($this->users as $user) { - $this->user = $user; - - parent::write($record); - $this->closeSocket(); - } - - $this->user = null; - } - - public function setHighPriorityLevel($value) - { - $this->highPriorityLevel = $value; - } - - public function setEmergencyLevel($value) - { - $this->emergencyLevel = $value; - } -} diff --git a/lib/aws-sdk/Monolog/Handler/RavenHandler.php b/lib/aws-sdk/Monolog/Handler/RavenHandler.php deleted file mode 100644 index 69da8ca..0000000 --- a/lib/aws-sdk/Monolog/Handler/RavenHandler.php +++ /dev/null @@ -1,187 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\LineFormatter; -use Monolog\Formatter\FormatterInterface; -use Monolog\Logger; -use Raven_Client; - -/** - * Handler to send messages to a Sentry (https://github.com/getsentry/sentry) server - * using raven-php (https://github.com/getsentry/raven-php) - * - * @author Marc Abramowitz - */ -class RavenHandler extends AbstractProcessingHandler -{ - /** - * Translates Monolog log levels to Raven log levels. - */ - private $logLevels = array( - Logger::DEBUG => Raven_Client::DEBUG, - Logger::INFO => Raven_Client::INFO, - Logger::NOTICE => Raven_Client::INFO, - Logger::WARNING => Raven_Client::WARNING, - Logger::ERROR => Raven_Client::ERROR, - Logger::CRITICAL => Raven_Client::FATAL, - Logger::ALERT => Raven_Client::FATAL, - Logger::EMERGENCY => Raven_Client::FATAL, - ); - - /** - * @var Raven_Client the client object that sends the message to the server - */ - protected $ravenClient; - - /** - * @var LineFormatter The formatter to use for the logs generated via handleBatch() - */ - protected $batchFormatter; - - /** - * @param Raven_Client $ravenClient - * @param integer $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct(Raven_Client $ravenClient, $level = Logger::DEBUG, $bubble = true) - { - parent::__construct($level, $bubble); - - $this->ravenClient = $ravenClient; - } - - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - $level = $this->level; - - // filter records based on their level - $records = array_filter($records, function ($record) use ($level) { - return $record['level'] >= $level; - }); - - if (!$records) { - return; - } - - // the record with the highest severity is the "main" one - $record = array_reduce($records, function ($highest, $record) { - if ($record['level'] >= $highest['level']) { - return $record; - } - - return $highest; - }); - - // the other ones are added as a context item - $logs = array(); - foreach ($records as $r) { - $logs[] = $this->processRecord($r); - } - - if ($logs) { - $record['context']['logs'] = (string) $this->getBatchFormatter()->formatBatch($logs); - } - - $this->handle($record); - } - - /** - * Sets the formatter for the logs generated by handleBatch(). - * - * @param FormatterInterface $formatter - */ - public function setBatchFormatter(FormatterInterface $formatter) - { - $this->batchFormatter = $formatter; - } - - /** - * Gets the formatter for the logs generated by handleBatch(). - * - * @return FormatterInterface - */ - public function getBatchFormatter() - { - if (!$this->batchFormatter) { - $this->batchFormatter = $this->getDefaultBatchFormatter(); - } - - return $this->batchFormatter; - } - - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - // ensures user context is empty - $this->ravenClient->user_context(null); - $options = array(); - $options['level'] = $this->logLevels[$record['level']]; - $options['tags'] = array(); - if (!empty($record['extra']['tags'])) { - $options['tags'] = array_merge($options['tags'], $record['extra']['tags']); - unset($record['extra']['tags']); - } - if (!empty($record['context']['tags'])) { - $options['tags'] = array_merge($options['tags'], $record['context']['tags']); - unset($record['context']['tags']); - } - if (!empty($record['context']['logger'])) { - $options['logger'] = $record['context']['logger']; - unset($record['context']['logger']); - } else { - $options['logger'] = $record['channel']; - } - if (!empty($record['context'])) { - $options['extra']['context'] = $record['context']; - if (!empty($record['context']['user'])) { - $this->ravenClient->user_context($record['context']['user']); - unset($options['extra']['context']['user']); - } - } - if (!empty($record['extra'])) { - $options['extra']['extra'] = $record['extra']; - } - - if (isset($record['context']['exception']) && $record['context']['exception'] instanceof \Exception) { - $options['extra']['message'] = $record['formatted']; - $this->ravenClient->captureException($record['context']['exception'], $options); - - return; - } - - $this->ravenClient->captureMessage($record['formatted'], array(), $options); - } - - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new LineFormatter('[%channel%] %message%'); - } - - /** - * Gets the default formatter for the logs generated by handleBatch(). - * - * @return FormatterInterface - */ - protected function getDefaultBatchFormatter() - { - return new LineFormatter(); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/RedisHandler.php b/lib/aws-sdk/Monolog/Handler/RedisHandler.php deleted file mode 100644 index 3fc7f34..0000000 --- a/lib/aws-sdk/Monolog/Handler/RedisHandler.php +++ /dev/null @@ -1,58 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Monolog\Formatter\LineFormatter; - -/** - * Logs to a Redis key using rpush - * - * usage example: - * - * $log = new Logger('application'); - * $redis = new RedisHandler(new Predis\Client("tcp://localhost:6379"), "logs", "prod"); - * $log->pushHandler($redis); - * - * @author Thomas Tourlourat - */ -class RedisHandler extends AbstractProcessingHandler -{ - private $redisClient; - private $redisKey; - - # redis instance, key to use - public function __construct($redis, $key, $level = Logger::DEBUG, $bubble = true) - { - if (!(($redis instanceof \Predis\Client) || ($redis instanceof \Redis))) { - throw new \InvalidArgumentException('Predis\Client or Redis instance required'); - } - - $this->redisClient = $redis; - $this->redisKey = $key; - - parent::__construct($level, $bubble); - } - - protected function write(array $record) - { - $this->redisClient->rpush($this->redisKey, $record["formatted"]); - } - - /** - * {@inheritDoc} - */ - protected function getDefaultFormatter() - { - return new LineFormatter(); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/RollbarHandler.php b/lib/aws-sdk/Monolog/Handler/RollbarHandler.php deleted file mode 100644 index 81abf08..0000000 --- a/lib/aws-sdk/Monolog/Handler/RollbarHandler.php +++ /dev/null @@ -1,73 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use RollbarNotifier; -use Exception; -use Monolog\Logger; - -/** - * Sends errors to Rollbar - * - * @author Paul Statezny - */ -class RollbarHandler extends AbstractProcessingHandler -{ - /** - * Rollbar notifier - * - * @var RollbarNotifier - */ - protected $rollbarNotifier; - - /** - * @param RollbarNotifier $rollbarNotifier RollbarNotifier object constructed with valid token - * @param integer $level The minimum logging level at which this handler will be triggered - * @param boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct(RollbarNotifier $rollbarNotifier, $level = Logger::ERROR, $bubble = true) - { - $this->rollbarNotifier = $rollbarNotifier; - - parent::__construct($level, $bubble); - } - - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - if (isset($record['context']['exception']) && $record['context']['exception'] instanceof Exception) { - $this->rollbarNotifier->report_exception($record['context']['exception']); - } else { - $extraData = array( - 'level' => $record['level'], - 'channel' => $record['channel'], - 'datetime' => $record['datetime']->format('U'), - ); - - $this->rollbarNotifier->report_message( - $record['message'], - $record['level_name'], - array_merge($record['context'], $record['extra'], $extraData) - ); - } - } - - /** - * {@inheritdoc} - */ - public function close() - { - $this->rollbarNotifier->flush(); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/RotatingFileHandler.php b/lib/aws-sdk/Monolog/Handler/RotatingFileHandler.php deleted file mode 100644 index 4168c32..0000000 --- a/lib/aws-sdk/Monolog/Handler/RotatingFileHandler.php +++ /dev/null @@ -1,153 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Stores logs to files that are rotated every day and a limited number of files are kept. - * - * This rotation is only intended to be used as a workaround. Using logrotate to - * handle the rotation is strongly encouraged when you can use it. - * - * @author Christophe Coevoet - * @author Jordi Boggiano - */ -class RotatingFileHandler extends StreamHandler -{ - protected $filename; - protected $maxFiles; - protected $mustRotate; - protected $nextRotation; - protected $filenameFormat; - protected $dateFormat; - - /** - * @param string $filename - * @param integer $maxFiles The maximal amount of files to keep (0 means unlimited) - * @param integer $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - * @param int|null $filePermission Optional file permissions (default (0644) are only for owner read/write) - * @param Boolean $useLocking Try to lock log file before doing any writes - */ - public function __construct($filename, $maxFiles = 0, $level = Logger::DEBUG, $bubble = true, $filePermission = null, $useLocking = false) - { - $this->filename = $filename; - $this->maxFiles = (int) $maxFiles; - $this->nextRotation = new \DateTime('tomorrow'); - $this->filenameFormat = '{filename}-{date}'; - $this->dateFormat = 'Y-m-d'; - - parent::__construct($this->getTimedFilename(), $level, $bubble, $filePermission, $useLocking); - } - - /** - * {@inheritdoc} - */ - public function close() - { - parent::close(); - - if (true === $this->mustRotate) { - $this->rotate(); - } - } - - public function setFilenameFormat($filenameFormat, $dateFormat) - { - $this->filenameFormat = $filenameFormat; - $this->dateFormat = $dateFormat; - $this->url = $this->getTimedFilename(); - $this->close(); - } - - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - // on the first record written, if the log is new, we should rotate (once per day) - if (null === $this->mustRotate) { - $this->mustRotate = !file_exists($this->url); - } - - if ($this->nextRotation < $record['datetime']) { - $this->mustRotate = true; - $this->close(); - } - - parent::write($record); - } - - /** - * Rotates the files. - */ - protected function rotate() - { - // update filename - $this->url = $this->getTimedFilename(); - $this->nextRotation = new \DateTime('tomorrow'); - - // skip GC of old logs if files are unlimited - if (0 === $this->maxFiles) { - return; - } - - $logFiles = glob($this->getGlobPattern()); - if ($this->maxFiles >= count($logFiles)) { - // no files to remove - return; - } - - // Sorting the files by name to remove the older ones - usort($logFiles, function ($a, $b) { - return strcmp($b, $a); - }); - - foreach (array_slice($logFiles, $this->maxFiles) as $file) { - if (is_writable($file)) { - unlink($file); - } - } - } - - protected function getTimedFilename() - { - $fileInfo = pathinfo($this->filename); - $timedFilename = str_replace( - array('{filename}', '{date}'), - array($fileInfo['filename'], date($this->dateFormat)), - $fileInfo['dirname'] . '/' . $this->filenameFormat - ); - - if (!empty($fileInfo['extension'])) { - $timedFilename .= '.'.$fileInfo['extension']; - } - - return $timedFilename; - } - - protected function getGlobPattern() - { - $fileInfo = pathinfo($this->filename); - $glob = str_replace( - array('{filename}', '{date}'), - array($fileInfo['filename'], '*'), - $fileInfo['dirname'] . '/' . $this->filenameFormat - ); - if (!empty($fileInfo['extension'])) { - $glob .= '.'.$fileInfo['extension']; - } - - return $glob; - } -} diff --git a/lib/aws-sdk/Monolog/Handler/SamplingHandler.php b/lib/aws-sdk/Monolog/Handler/SamplingHandler.php deleted file mode 100644 index 9509ae3..0000000 --- a/lib/aws-sdk/Monolog/Handler/SamplingHandler.php +++ /dev/null @@ -1,82 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -/** - * Sampling handler - * - * A sampled event stream can be useful for logging high frequency events in - * a production environment where you only need an idea of what is happening - * and are not concerned with capturing every occurrence. Since the decision to - * handle or not handle a particular event is determined randomly, the - * resulting sampled log is not guaranteed to contain 1/N of the events that - * occurred in the application, but based on the Law of large numbers, it will - * tend to be close to this ratio with a large number of attempts. - * - * @author Bryan Davis - * @author Kunal Mehta - */ -class SamplingHandler extends AbstractHandler -{ - /** - * @var callable|HandlerInterface $handler - */ - protected $handler; - - /** - * @var int $factor - */ - protected $factor; - - /** - * @param callable|HandlerInterface $handler Handler or factory callable($record, $fingersCrossedHandler). - * @param int $factor Sample factor - */ - public function __construct($handler, $factor) - { - parent::__construct(); - $this->handler = $handler; - $this->factor = $factor; - - if (!$this->handler instanceof HandlerInterface && !is_callable($this->handler)) { - throw new \RuntimeException("The given handler (".json_encode($this->handler).") is not a callable nor a Monolog\Handler\HandlerInterface object"); - } - } - - public function isHandling(array $record) - { - return $this->handler->isHandling($record); - } - - public function handle(array $record) - { - if ($this->isHandling($record) && mt_rand(1, $this->factor) === 1) { - // The same logic as in FingersCrossedHandler - if (!$this->handler instanceof HandlerInterface) { - $this->handler = call_user_func($this->handler, $record, $this); - if (!$this->handler instanceof HandlerInterface) { - throw new \RuntimeException("The factory callable should return a HandlerInterface"); - } - } - - if ($this->processors) { - foreach ($this->processors as $processor) { - $record = call_user_func($processor, $record); - } - } - - $this->handler->handle($record); - } - - return false === $this->bubble; - } -} diff --git a/lib/aws-sdk/Monolog/Handler/SlackHandler.php b/lib/aws-sdk/Monolog/Handler/SlackHandler.php deleted file mode 100644 index 7328dee..0000000 --- a/lib/aws-sdk/Monolog/Handler/SlackHandler.php +++ /dev/null @@ -1,280 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Monolog\Formatter\LineFormatter; - -/** - * Sends notifications through Slack API - * - * @author Greg Kedzierski - * @see https://api.slack.com/ - */ -class SlackHandler extends SocketHandler -{ - /** - * Slack API token - * @var string - */ - private $token; - - /** - * Slack channel (encoded ID or name) - * @var string - */ - private $channel; - - /** - * Name of a bot - * @var string - */ - private $username; - - /** - * Emoji icon name - * @var string - */ - private $iconEmoji; - - /** - * Whether the message should be added to Slack as attachment (plain text otherwise) - * @var bool - */ - private $useAttachment; - - /** - * Whether the the context/extra messages added to Slack as attachments are in a short style - * @var bool - */ - private $useShortAttachment; - - /** - * Whether the attachment should include context and extra data - * @var bool - */ - private $includeContextAndExtra; - - /** - * @var LineFormatter - */ - private $lineFormatter; - - /** - * @param string $token Slack API token - * @param string $channel Slack channel (encoded ID or name) - * @param string $username Name of a bot - * @param bool $useAttachment Whether the message should be added to Slack as attachment (plain text otherwise) - * @param string|null $iconEmoji The emoji name to use (or null) - * @param int $level The minimum logging level at which this handler will be triggered - * @param bool $bubble Whether the messages that are handled can bubble up the stack or not - * @param bool $useShortAttachment Whether the the context/extra messages added to Slack as attachments are in a short style - * @param bool $includeContextAndExtra Whether the attachment should include context and extra data - */ - public function __construct($token, $channel, $username = 'Monolog', $useAttachment = true, $iconEmoji = null, $level = Logger::CRITICAL, $bubble = true, $useShortAttachment = false, $includeContextAndExtra = false) - { - if (!extension_loaded('openssl')) { - throw new MissingExtensionException('The OpenSSL PHP extension is required to use the SlackHandler'); - } - - parent::__construct('ssl://slack.com:443', $level, $bubble); - - $this->token = $token; - $this->channel = $channel; - $this->username = $username; - $this->iconEmoji = trim($iconEmoji, ':'); - $this->useAttachment = $useAttachment; - $this->useShortAttachment = $useShortAttachment; - $this->includeContextAndExtra = $includeContextAndExtra; - if ($this->includeContextAndExtra) { - $this->lineFormatter = new LineFormatter; - } - } - - /** - * {@inheritdoc} - * - * @param array $record - * @return string - */ - protected function generateDataStream($record) - { - $content = $this->buildContent($record); - - return $this->buildHeader($content) . $content; - } - - /** - * Builds the body of API call - * - * @param array $record - * @return string - */ - private function buildContent($record) - { - $dataArray = array( - 'token' => $this->token, - 'channel' => $this->channel, - 'username' => $this->username, - 'text' => '', - 'attachments' => array() - ); - - if ($this->useAttachment) { - $attachment = array( - 'fallback' => $record['message'], - 'color' => $this->getAttachmentColor($record['level']) - ); - - if ($this->useShortAttachment) { - $attachment['fields'] = array( - array( - 'title' => $record['level_name'], - 'value' => $record['message'], - 'short' => false - ) - ); - } else { - $attachment['fields'] = array( - array( - 'title' => 'Message', - 'value' => $record['message'], - 'short' => false - ), - array( - 'title' => 'Level', - 'value' => $record['level_name'], - 'short' => true - ) - ); - } - - if ($this->includeContextAndExtra) { - if (!empty($record['extra'])) { - if ($this->useShortAttachment) { - $attachment['fields'][] = array( - 'title' => "Extra", - 'value' => $this->stringify($record['extra']), - 'short' => $this->useShortAttachment - ); - } else { - // Add all extra fields as individual fields in attachment - foreach ($record['extra'] as $var => $val) { - $attachment['fields'][] = array( - 'title' => $var, - 'value' => $val, - 'short' => $this->useShortAttachment - ); - } - } - } - - if (!empty($record['context'])) { - if ($this->useShortAttachment) { - $attachment['fields'][] = array( - 'title' => "Context", - 'value' => $this->stringify($record['context']), - 'short' => $this->useShortAttachment - ); - } else { - // Add all context fields as individual fields in attachment - foreach ($record['context'] as $var => $val) { - $attachment['fields'][] = array( - 'title' => $var, - 'value' => $val, - 'short' => $this->useShortAttachment - ); - } - } - } - } - - $dataArray['attachments'] = json_encode(array($attachment)); - } else { - $dataArray['text'] = $record['message']; - } - - if ($this->iconEmoji) { - $dataArray['icon_emoji'] = ":{$this->iconEmoji}:"; - } - - return http_build_query($dataArray); - } - - /** - * Builds the header of the API Call - * - * @param string $content - * @return string - */ - private function buildHeader($content) - { - $header = "POST /api/chat.postMessage HTTP/1.1\r\n"; - $header .= "Host: slack.com\r\n"; - $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; - $header .= "Content-Length: " . strlen($content) . "\r\n"; - $header .= "\r\n"; - - return $header; - } - - /** - * {@inheritdoc} - * - * @param array $record - */ - protected function write(array $record) - { - parent::write($record); - $this->closeSocket(); - } - - /** - * Returned a Slack message attachment color associated with - * provided level. - * - * @param int $level - * @return string - */ - protected function getAttachmentColor($level) - { - switch (true) { - case $level >= Logger::ERROR: - return 'danger'; - case $level >= Logger::WARNING: - return 'warning'; - case $level >= Logger::INFO: - return 'good'; - default: - return '#e3e4e6'; - } - } - - /** - * Stringifies an array of key/value pairs to be used in attachment fields - * - * @param array $fields - * @access protected - * @return string - */ - protected function stringify($fields) - { - $string = ''; - foreach ($fields as $var => $val) { - $string .= $var.': '.$this->lineFormatter->stringify($val)." | "; - } - - $string = rtrim($string, " |"); - - return $string; - } -} diff --git a/lib/aws-sdk/Monolog/Handler/SocketHandler.php b/lib/aws-sdk/Monolog/Handler/SocketHandler.php deleted file mode 100644 index ee486f6..0000000 --- a/lib/aws-sdk/Monolog/Handler/SocketHandler.php +++ /dev/null @@ -1,284 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Stores to any socket - uses fsockopen() or pfsockopen(). - * - * @author Pablo de Leon Belloc - * @see http://php.net/manual/en/function.fsockopen.php - */ -class SocketHandler extends AbstractProcessingHandler -{ - private $connectionString; - private $connectionTimeout; - private $resource; - private $timeout = 0; - private $persistent = false; - private $errno; - private $errstr; - - /** - * @param string $connectionString Socket connection string - * @param integer $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct($connectionString, $level = Logger::DEBUG, $bubble = true) - { - parent::__construct($level, $bubble); - $this->connectionString = $connectionString; - $this->connectionTimeout = (float) ini_get('default_socket_timeout'); - } - - /** - * Connect (if necessary) and write to the socket - * - * @param array $record - * - * @throws \UnexpectedValueException - * @throws \RuntimeException - */ - protected function write(array $record) - { - $this->connectIfNotConnected(); - $data = $this->generateDataStream($record); - $this->writeToSocket($data); - } - - /** - * We will not close a PersistentSocket instance so it can be reused in other requests. - */ - public function close() - { - if (!$this->isPersistent()) { - $this->closeSocket(); - } - } - - /** - * Close socket, if open - */ - public function closeSocket() - { - if (is_resource($this->resource)) { - fclose($this->resource); - $this->resource = null; - } - } - - /** - * Set socket connection to nbe persistent. It only has effect before the connection is initiated. - * - * @param type $boolean - */ - public function setPersistent($boolean) - { - $this->persistent = (boolean) $boolean; - } - - /** - * Set connection timeout. Only has effect before we connect. - * - * @param float $seconds - * - * @see http://php.net/manual/en/function.fsockopen.php - */ - public function setConnectionTimeout($seconds) - { - $this->validateTimeout($seconds); - $this->connectionTimeout = (float) $seconds; - } - - /** - * Set write timeout. Only has effect before we connect. - * - * @param float $seconds - * - * @see http://php.net/manual/en/function.stream-set-timeout.php - */ - public function setTimeout($seconds) - { - $this->validateTimeout($seconds); - $this->timeout = (float) $seconds; - } - - /** - * Get current connection string - * - * @return string - */ - public function getConnectionString() - { - return $this->connectionString; - } - - /** - * Get persistent setting - * - * @return boolean - */ - public function isPersistent() - { - return $this->persistent; - } - - /** - * Get current connection timeout setting - * - * @return float - */ - public function getConnectionTimeout() - { - return $this->connectionTimeout; - } - - /** - * Get current in-transfer timeout - * - * @return float - */ - public function getTimeout() - { - return $this->timeout; - } - - /** - * Check to see if the socket is currently available. - * - * UDP might appear to be connected but might fail when writing. See http://php.net/fsockopen for details. - * - * @return boolean - */ - public function isConnected() - { - return is_resource($this->resource) - && !feof($this->resource); // on TCP - other party can close connection. - } - - /** - * Wrapper to allow mocking - */ - protected function pfsockopen() - { - return @pfsockopen($this->connectionString, -1, $this->errno, $this->errstr, $this->connectionTimeout); - } - - /** - * Wrapper to allow mocking - */ - protected function fsockopen() - { - return @fsockopen($this->connectionString, -1, $this->errno, $this->errstr, $this->connectionTimeout); - } - - /** - * Wrapper to allow mocking - * - * @see http://php.net/manual/en/function.stream-set-timeout.php - */ - protected function streamSetTimeout() - { - $seconds = floor($this->timeout); - $microseconds = round(($this->timeout - $seconds)*1e6); - - return stream_set_timeout($this->resource, $seconds, $microseconds); - } - - /** - * Wrapper to allow mocking - */ - protected function fwrite($data) - { - return @fwrite($this->resource, $data); - } - - /** - * Wrapper to allow mocking - */ - protected function streamGetMetadata() - { - return stream_get_meta_data($this->resource); - } - - private function validateTimeout($value) - { - $ok = filter_var($value, FILTER_VALIDATE_FLOAT); - if ($ok === false || $value < 0) { - throw new \InvalidArgumentException("Timeout must be 0 or a positive float (got $value)"); - } - } - - private function connectIfNotConnected() - { - if ($this->isConnected()) { - return; - } - $this->connect(); - } - - protected function generateDataStream($record) - { - return (string) $record['formatted']; - } - - private function connect() - { - $this->createSocketResource(); - $this->setSocketTimeout(); - } - - private function createSocketResource() - { - if ($this->isPersistent()) { - $resource = $this->pfsockopen(); - } else { - $resource = $this->fsockopen(); - } - if (!$resource) { - throw new \UnexpectedValueException("Failed connecting to $this->connectionString ($this->errno: $this->errstr)"); - } - $this->resource = $resource; - } - - private function setSocketTimeout() - { - if (!$this->streamSetTimeout()) { - throw new \UnexpectedValueException("Failed setting timeout with stream_set_timeout()"); - } - } - - private function writeToSocket($data) - { - $length = strlen($data); - $sent = 0; - while ($this->isConnected() && $sent < $length) { - if (0 == $sent) { - $chunk = $this->fwrite($data); - } else { - $chunk = $this->fwrite(substr($data, $sent)); - } - if ($chunk === false) { - throw new \RuntimeException("Could not write to socket"); - } - $sent += $chunk; - $socketInfo = $this->streamGetMetadata(); - if ($socketInfo['timed_out']) { - throw new \RuntimeException("Write timed-out"); - } - } - if (!$this->isConnected() && $sent < $length) { - throw new \RuntimeException("End-of-file reached, probably we got disconnected (sent $sent of $length)"); - } - } -} diff --git a/lib/aws-sdk/Monolog/Handler/StreamHandler.php b/lib/aws-sdk/Monolog/Handler/StreamHandler.php deleted file mode 100644 index 7965db7..0000000 --- a/lib/aws-sdk/Monolog/Handler/StreamHandler.php +++ /dev/null @@ -1,104 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Stores to any stream resource - * - * Can be used to store into php://stderr, remote and local files, etc. - * - * @author Jordi Boggiano - */ -class StreamHandler extends AbstractProcessingHandler -{ - protected $stream; - protected $url; - private $errorMessage; - protected $filePermission; - protected $useLocking; - - /** - * @param resource|string $stream - * @param integer $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - * @param int|null $filePermission Optional file permissions (default (0644) are only for owner read/write) - * @param Boolean $useLocking Try to lock log file before doing any writes - * - * @throws \InvalidArgumentException If stream is not a resource or string - */ - public function __construct($stream, $level = Logger::DEBUG, $bubble = true, $filePermission = null, $useLocking = false) - { - parent::__construct($level, $bubble); - if (is_resource($stream)) { - $this->stream = $stream; - } elseif (is_string($stream)) { - $this->url = $stream; - } else { - throw new \InvalidArgumentException('A stream must either be a resource or a string.'); - } - - $this->filePermission = $filePermission; - $this->useLocking = $useLocking; - } - - /** - * {@inheritdoc} - */ - public function close() - { - if (is_resource($this->stream)) { - fclose($this->stream); - } - $this->stream = null; - } - - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - if (!is_resource($this->stream)) { - if (!$this->url) { - throw new \LogicException('Missing stream url, the stream can not be opened. This may be caused by a premature call to close().'); - } - $this->errorMessage = null; - set_error_handler(array($this, 'customErrorHandler')); - $this->stream = fopen($this->url, 'a'); - if ($this->filePermission !== null) { - @chmod($this->url, $this->filePermission); - } - restore_error_handler(); - if (!is_resource($this->stream)) { - $this->stream = null; - throw new \UnexpectedValueException(sprintf('The stream or file "%s" could not be opened: '.$this->errorMessage, $this->url)); - } - } - - if ($this->useLocking) { - // ignoring errors here, there's not much we can do about them - flock($this->stream, LOCK_EX); - } - - fwrite($this->stream, (string) $record['formatted']); - - if ($this->useLocking) { - flock($this->stream, LOCK_UN); - } - } - - private function customErrorHandler($code, $msg) - { - $this->errorMessage = preg_replace('{^fopen\(.*?\): }', '', $msg); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/SwiftMailerHandler.php b/lib/aws-sdk/Monolog/Handler/SwiftMailerHandler.php deleted file mode 100644 index 003a1a2..0000000 --- a/lib/aws-sdk/Monolog/Handler/SwiftMailerHandler.php +++ /dev/null @@ -1,87 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * SwiftMailerHandler uses Swift_Mailer to send the emails - * - * @author Gyula Sallai - */ -class SwiftMailerHandler extends MailHandler -{ - protected $mailer; - private $messageTemplate; - - /** - * @param \Swift_Mailer $mailer The mailer to use - * @param callable|\Swift_Message $message An example message for real messages, only the body will be replaced - * @param integer $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct(\Swift_Mailer $mailer, $message, $level = Logger::ERROR, $bubble = true) - { - parent::__construct($level, $bubble); - - $this->mailer = $mailer; - $this->messageTemplate = $message; - } - - /** - * {@inheritdoc} - */ - protected function send($content, array $records) - { - $this->mailer->send($this->buildMessage($content, $records)); - } - - /** - * Creates instance of Swift_Message to be sent - * - * @param string $content formatted email body to be sent - * @param array $records Log records that formed the content - * @return \Swift_Message - */ - protected function buildMessage($content, array $records) - { - $message = null; - if ($this->messageTemplate instanceof \Swift_Message) { - $message = clone $this->messageTemplate; - } else if (is_callable($this->messageTemplate)) { - $message = call_user_func($this->messageTemplate, $content, $records); - } - - if (!$message instanceof \Swift_Message) { - throw new \InvalidArgumentException('Could not resolve message as instance of Swift_Message or a callable returning it'); - } - - $message->setBody($content); - $message->setDate(time()); - - return $message; - } - - /** - * BC getter, to be removed in 2.0 - */ - public function __get($name) - { - if ($name === 'message') { - trigger_error('SwiftMailerHandler->message is deprecated, use ->buildMessage() instead to retrieve the message', E_USER_DEPRECATED); - - return $this->buildMessage(null, array()); - } - - throw new \InvalidArgumentException('Invalid property '.$name); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/SyslogHandler.php b/lib/aws-sdk/Monolog/Handler/SyslogHandler.php deleted file mode 100644 index 47c73e1..0000000 --- a/lib/aws-sdk/Monolog/Handler/SyslogHandler.php +++ /dev/null @@ -1,67 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Logs to syslog service. - * - * usage example: - * - * $log = new Logger('application'); - * $syslog = new SyslogHandler('myfacility', 'local6'); - * $formatter = new LineFormatter("%channel%.%level_name%: %message% %extra%"); - * $syslog->setFormatter($formatter); - * $log->pushHandler($syslog); - * - * @author Sven Paulus - */ -class SyslogHandler extends AbstractSyslogHandler -{ - protected $ident; - protected $logopts; - - /** - * @param string $ident - * @param mixed $facility - * @param integer $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - * @param int $logopts Option flags for the openlog() call, defaults to LOG_PID - */ - public function __construct($ident, $facility = LOG_USER, $level = Logger::DEBUG, $bubble = true, $logopts = LOG_PID) - { - parent::__construct($facility, $level, $bubble); - - $this->ident = $ident; - $this->logopts = $logopts; - } - - /** - * {@inheritdoc} - */ - public function close() - { - closelog(); - } - - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - if (!openlog($this->ident, $this->logopts, $this->facility)) { - throw new \LogicException('Can\'t open syslog for ident "'.$this->ident.'" and facility "'.$this->facility.'"'); - } - syslog($this->logLevels[$record['level']], (string) $record['formatted']); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/SyslogUdp/UdpSocket.php b/lib/aws-sdk/Monolog/Handler/SyslogUdp/UdpSocket.php deleted file mode 100644 index dcf3f1f..0000000 --- a/lib/aws-sdk/Monolog/Handler/SyslogUdp/UdpSocket.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler\SyslogUdp; - -class UdpSocket -{ - const DATAGRAM_MAX_LENGTH = 65023; - - public function __construct($ip, $port = 514) - { - $this->ip = $ip; - $this->port = $port; - $this->socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); - } - - public function write($line, $header = "") - { - $this->send($this->assembleMessage($line, $header)); - } - - public function close() - { - socket_close($this->socket); - } - - protected function send($chunk) - { - socket_sendto($this->socket, $chunk, strlen($chunk), $flags = 0, $this->ip, $this->port); - } - - protected function assembleMessage($line, $header) - { - $chunkSize = self::DATAGRAM_MAX_LENGTH - strlen($header); - - return $header . substr($line, 0, $chunkSize); - } -} diff --git a/lib/aws-sdk/Monolog/Handler/SyslogUdpHandler.php b/lib/aws-sdk/Monolog/Handler/SyslogUdpHandler.php deleted file mode 100644 index aa047c0..0000000 --- a/lib/aws-sdk/Monolog/Handler/SyslogUdpHandler.php +++ /dev/null @@ -1,80 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; -use Monolog\Handler\SyslogUdp\UdpSocket; - -/** - * A Handler for logging to a remote syslogd server. - * - * @author Jesper Skovgaard Nielsen - */ -class SyslogUdpHandler extends AbstractSyslogHandler -{ - /** - * @param string $host - * @param int $port - * @param mixed $facility - * @param integer $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - */ - public function __construct($host, $port = 514, $facility = LOG_USER, $level = Logger::DEBUG, $bubble = true) - { - parent::__construct($facility, $level, $bubble); - - $this->socket = new UdpSocket($host, $port ?: 514); - } - - protected function write(array $record) - { - $lines = $this->splitMessageIntoLines($record['formatted']); - - $header = $this->makeCommonSyslogHeader($this->logLevels[$record['level']]); - - foreach ($lines as $line) { - $this->socket->write($line, $header); - } - } - - public function close() - { - $this->socket->close(); - } - - private function splitMessageIntoLines($message) - { - if (is_array($message)) { - $message = implode("\n", $message); - } - - return preg_split('/$\R?^/m', $message); - } - - /** - * Make common syslog header (see rfc5424) - */ - protected function makeCommonSyslogHeader($severity) - { - $priority = $severity + $this->facility; - - return "<$priority>1 "; - } - - /** - * Inject your own socket, mainly used for testing - */ - public function setSocket($socket) - { - $this->socket = $socket; - } -} diff --git a/lib/aws-sdk/Monolog/Handler/TestHandler.php b/lib/aws-sdk/Monolog/Handler/TestHandler.php deleted file mode 100644 index 085d9e1..0000000 --- a/lib/aws-sdk/Monolog/Handler/TestHandler.php +++ /dev/null @@ -1,140 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Logger; - -/** - * Used for testing purposes. - * - * It records all records and gives you access to them for verification. - * - * @author Jordi Boggiano - */ -class TestHandler extends AbstractProcessingHandler -{ - protected $records = array(); - protected $recordsByLevel = array(); - - public function getRecords() - { - return $this->records; - } - - public function hasEmergency($record) - { - return $this->hasRecord($record, Logger::EMERGENCY); - } - - public function hasAlert($record) - { - return $this->hasRecord($record, Logger::ALERT); - } - - public function hasCritical($record) - { - return $this->hasRecord($record, Logger::CRITICAL); - } - - public function hasError($record) - { - return $this->hasRecord($record, Logger::ERROR); - } - - public function hasWarning($record) - { - return $this->hasRecord($record, Logger::WARNING); - } - - public function hasNotice($record) - { - return $this->hasRecord($record, Logger::NOTICE); - } - - public function hasInfo($record) - { - return $this->hasRecord($record, Logger::INFO); - } - - public function hasDebug($record) - { - return $this->hasRecord($record, Logger::DEBUG); - } - - public function hasEmergencyRecords() - { - return isset($this->recordsByLevel[Logger::EMERGENCY]); - } - - public function hasAlertRecords() - { - return isset($this->recordsByLevel[Logger::ALERT]); - } - - public function hasCriticalRecords() - { - return isset($this->recordsByLevel[Logger::CRITICAL]); - } - - public function hasErrorRecords() - { - return isset($this->recordsByLevel[Logger::ERROR]); - } - - public function hasWarningRecords() - { - return isset($this->recordsByLevel[Logger::WARNING]); - } - - public function hasNoticeRecords() - { - return isset($this->recordsByLevel[Logger::NOTICE]); - } - - public function hasInfoRecords() - { - return isset($this->recordsByLevel[Logger::INFO]); - } - - public function hasDebugRecords() - { - return isset($this->recordsByLevel[Logger::DEBUG]); - } - - protected function hasRecord($record, $level) - { - if (!isset($this->recordsByLevel[$level])) { - return false; - } - - if (is_array($record)) { - $record = $record['message']; - } - - foreach ($this->recordsByLevel[$level] as $rec) { - if ($rec['message'] === $record) { - return true; - } - } - - return false; - } - - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - $this->recordsByLevel[$record['level']][] = $record; - $this->records[] = $record; - } -} diff --git a/lib/aws-sdk/Monolog/Handler/WhatFailureGroupHandler.php b/lib/aws-sdk/Monolog/Handler/WhatFailureGroupHandler.php deleted file mode 100644 index 05a8817..0000000 --- a/lib/aws-sdk/Monolog/Handler/WhatFailureGroupHandler.php +++ /dev/null @@ -1,57 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -/** - * Forwards records to multiple handlers suppressing failures of each handler - * and continuing through to give every handler a chance to succeed. - * - * @author Craig D'Amelio - */ -class WhatFailureGroupHandler extends GroupHandler -{ - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - if ($this->processors) { - foreach ($this->processors as $processor) { - $record = call_user_func($processor, $record); - } - } - - foreach ($this->handlers as $handler) { - try { - $handler->handle($record); - } catch (\Exception $e) { - // What failure? - } - } - - return false === $this->bubble; - } - - /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - foreach ($this->handlers as $handler) { - try { - $handler->handleBatch($records); - } catch (\Exception $e) { - // What failure? - } - } - } -} diff --git a/lib/aws-sdk/Monolog/Handler/ZendMonitorHandler.php b/lib/aws-sdk/Monolog/Handler/ZendMonitorHandler.php deleted file mode 100644 index f22cf21..0000000 --- a/lib/aws-sdk/Monolog/Handler/ZendMonitorHandler.php +++ /dev/null @@ -1,95 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Handler; - -use Monolog\Formatter\NormalizerFormatter; -use Monolog\Logger; - -/** - * Handler sending logs to Zend Monitor - * - * @author Christian Bergau - */ -class ZendMonitorHandler extends AbstractProcessingHandler -{ - /** - * Monolog level / ZendMonitor Custom Event priority map - * - * @var array - */ - protected $levelMap = array( - Logger::DEBUG => 1, - Logger::INFO => 2, - Logger::NOTICE => 3, - Logger::WARNING => 4, - Logger::ERROR => 5, - Logger::CRITICAL => 6, - Logger::ALERT => 7, - Logger::EMERGENCY => 0, - ); - - /** - * Construct - * - * @param int $level - * @param bool $bubble - * @throws MissingExtensionException - */ - public function __construct($level = Logger::DEBUG, $bubble = true) - { - if (!function_exists('zend_monitor_custom_event')) { - throw new MissingExtensionException('You must have Zend Server installed in order to use this handler'); - } - parent::__construct($level, $bubble); - } - - /** - * {@inheritdoc} - */ - protected function write(array $record) - { - $this->writeZendMonitorCustomEvent( - $this->levelMap[$record['level']], - $record['message'], - $record['formatted'] - ); - } - - /** - * Write a record to Zend Monitor - * - * @param int $level - * @param string $message - * @param array $formatted - */ - protected function writeZendMonitorCustomEvent($level, $message, $formatted) - { - zend_monitor_custom_event($level, $message, $formatted); - } - - /** - * {@inheritdoc} - */ - public function getDefaultFormatter() - { - return new NormalizerFormatter(); - } - - /** - * Get the level map - * - * @return array - */ - public function getLevelMap() - { - return $this->levelMap; - } -} diff --git a/lib/aws-sdk/Monolog/Logger.php b/lib/aws-sdk/Monolog/Logger.php deleted file mode 100644 index 4a38de7..0000000 --- a/lib/aws-sdk/Monolog/Logger.php +++ /dev/null @@ -1,615 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog; - -use Monolog\Handler\HandlerInterface; -use Monolog\Handler\StreamHandler; -use Psr\Log\LoggerInterface; -use Psr\Log\InvalidArgumentException; - -/** - * Monolog log channel - * - * It contains a stack of Handlers and a stack of Processors, - * and uses them to store records that are added to it. - * - * @author Jordi Boggiano - */ -class Logger implements LoggerInterface -{ - /** - * Detailed debug information - */ - const DEBUG = 100; - - /** - * Interesting events - * - * Examples: User logs in, SQL logs. - */ - const INFO = 200; - - /** - * Uncommon events - */ - const NOTICE = 250; - - /** - * Exceptional occurrences that are not errors - * - * Examples: Use of deprecated APIs, poor use of an API, - * undesirable things that are not necessarily wrong. - */ - const WARNING = 300; - - /** - * Runtime errors - */ - const ERROR = 400; - - /** - * Critical conditions - * - * Example: Application component unavailable, unexpected exception. - */ - const CRITICAL = 500; - - /** - * Action must be taken immediately - * - * Example: Entire website down, database unavailable, etc. - * This should trigger the SMS alerts and wake you up. - */ - const ALERT = 550; - - /** - * Urgent alert. - */ - const EMERGENCY = 600; - - /** - * Monolog API version - * - * This is only bumped when API breaks are done and should - * follow the major version of the library - * - * @var int - */ - const API = 1; - - /** - * Logging levels from syslog protocol defined in RFC 5424 - * - * @var array $levels Logging levels - */ - protected static $levels = array( - 100 => 'DEBUG', - 200 => 'INFO', - 250 => 'NOTICE', - 300 => 'WARNING', - 400 => 'ERROR', - 500 => 'CRITICAL', - 550 => 'ALERT', - 600 => 'EMERGENCY', - ); - - /** - * @var \DateTimeZone - */ - protected static $timezone; - - /** - * @var string - */ - protected $name; - - /** - * The handler stack - * - * @var HandlerInterface[] - */ - protected $handlers; - - /** - * Processors that will process all log records - * - * To process records of a single handler instead, add the processor on that specific handler - * - * @var callable[] - */ - protected $processors; - - /** - * @param string $name The logging channel - * @param HandlerInterface[] $handlers Optional stack of handlers, the first one in the array is called first, etc. - * @param callable[] $processors Optional array of processors - */ - public function __construct($name, array $handlers = array(), array $processors = array()) - { - $this->name = $name; - $this->handlers = $handlers; - $this->processors = $processors; - } - - /** - * @return string - */ - public function getName() - { - return $this->name; - } - - /** - * Pushes a handler on to the stack. - * - * @param HandlerInterface $handler - */ - public function pushHandler(HandlerInterface $handler) - { - array_unshift($this->handlers, $handler); - } - - /** - * Pops a handler from the stack - * - * @return HandlerInterface - */ - public function popHandler() - { - if (!$this->handlers) { - throw new \LogicException('You tried to pop from an empty handler stack.'); - } - - return array_shift($this->handlers); - } - - /** - * @return HandlerInterface[] - */ - public function getHandlers() - { - return $this->handlers; - } - - /** - * Adds a processor on to the stack. - * - * @param callable $callback - */ - public function pushProcessor($callback) - { - if (!is_callable($callback)) { - throw new \InvalidArgumentException('Processors must be valid callables (callback or object with an __invoke method), '.var_export($callback, true).' given'); - } - array_unshift($this->processors, $callback); - } - - /** - * Removes the processor on top of the stack and returns it. - * - * @return callable - */ - public function popProcessor() - { - if (!$this->processors) { - throw new \LogicException('You tried to pop from an empty processor stack.'); - } - - return array_shift($this->processors); - } - - /** - * @return callable[] - */ - public function getProcessors() - { - return $this->processors; - } - - /** - * Adds a log record. - * - * @param integer $level The logging level - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function addRecord($level, $message, array $context = array()) - { - if (!$this->handlers) { - $this->pushHandler(new StreamHandler('php://stderr', static::DEBUG)); - } - - $levelName = static::getLevelName($level); - - // check if any handler will handle this message so we can return early and save cycles - $handlerKey = null; - foreach ($this->handlers as $key => $handler) { - if ($handler->isHandling(array('level' => $level))) { - $handlerKey = $key; - break; - } - } - - if (null === $handlerKey) { - return false; - } - - if (!static::$timezone) { - static::$timezone = new \DateTimeZone(date_default_timezone_get() ?: 'UTC'); - } - - $record = array( - 'message' => (string) $message, - 'context' => $context, - 'level' => $level, - 'level_name' => $levelName, - 'channel' => $this->name, - 'datetime' => \DateTime::createFromFormat('U.u', sprintf('%.6F', microtime(true)), static::$timezone)->setTimezone(static::$timezone), - 'extra' => array(), - ); - - foreach ($this->processors as $processor) { - $record = call_user_func($processor, $record); - } - while (isset($this->handlers[$handlerKey]) && - false === $this->handlers[$handlerKey]->handle($record)) { - $handlerKey++; - } - - return true; - } - - /** - * Adds a log record at the DEBUG level. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function addDebug($message, array $context = array()) - { - return $this->addRecord(static::DEBUG, $message, $context); - } - - /** - * Adds a log record at the INFO level. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function addInfo($message, array $context = array()) - { - return $this->addRecord(static::INFO, $message, $context); - } - - /** - * Adds a log record at the NOTICE level. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function addNotice($message, array $context = array()) - { - return $this->addRecord(static::NOTICE, $message, $context); - } - - /** - * Adds a log record at the WARNING level. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function addWarning($message, array $context = array()) - { - return $this->addRecord(static::WARNING, $message, $context); - } - - /** - * Adds a log record at the ERROR level. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function addError($message, array $context = array()) - { - return $this->addRecord(static::ERROR, $message, $context); - } - - /** - * Adds a log record at the CRITICAL level. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function addCritical($message, array $context = array()) - { - return $this->addRecord(static::CRITICAL, $message, $context); - } - - /** - * Adds a log record at the ALERT level. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function addAlert($message, array $context = array()) - { - return $this->addRecord(static::ALERT, $message, $context); - } - - /** - * Adds a log record at the EMERGENCY level. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function addEmergency($message, array $context = array()) - { - return $this->addRecord(static::EMERGENCY, $message, $context); - } - - /** - * Gets all supported logging levels. - * - * @return array Assoc array with human-readable level names => level codes. - */ - public static function getLevels() - { - return array_flip(static::$levels); - } - - /** - * Gets the name of the logging level. - * - * @param integer $level - * @return string - */ - public static function getLevelName($level) - { - if (!isset(static::$levels[$level])) { - throw new InvalidArgumentException('Level "'.$level.'" is not defined, use one of: '.implode(', ', array_keys(static::$levels))); - } - - return static::$levels[$level]; - } - - /** - * Converts PSR-3 levels to Monolog ones if necessary - * - * @param string|int Level number (monolog) or name (PSR-3) - * @return int - */ - public static function toMonologLevel($level) - { - if (is_string($level) && defined(__CLASS__.'::'.strtoupper($level))) { - return constant(__CLASS__.'::'.strtoupper($level)); - } - - return $level; - } - - /** - * Checks whether the Logger has a handler that listens on the given level - * - * @param integer $level - * @return Boolean - */ - public function isHandling($level) - { - $record = array( - 'level' => $level, - ); - - foreach ($this->handlers as $handler) { - if ($handler->isHandling($record)) { - return true; - } - } - - return false; - } - - /** - * Adds a log record at an arbitrary level. - * - * This method allows for compatibility with common interfaces. - * - * @param mixed $level The log level - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function log($level, $message, array $context = array()) - { - if (is_string($level) && defined(__CLASS__.'::'.strtoupper($level))) { - $level = constant(__CLASS__.'::'.strtoupper($level)); - } - - return $this->addRecord($level, $message, $context); - } - - /** - * Adds a log record at the DEBUG level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function debug($message, array $context = array()) - { - return $this->addRecord(static::DEBUG, $message, $context); - } - - /** - * Adds a log record at the INFO level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function info($message, array $context = array()) - { - return $this->addRecord(static::INFO, $message, $context); - } - - /** - * Adds a log record at the NOTICE level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function notice($message, array $context = array()) - { - return $this->addRecord(static::NOTICE, $message, $context); - } - - /** - * Adds a log record at the WARNING level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function warn($message, array $context = array()) - { - return $this->addRecord(static::WARNING, $message, $context); - } - - /** - * Adds a log record at the WARNING level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function warning($message, array $context = array()) - { - return $this->addRecord(static::WARNING, $message, $context); - } - - /** - * Adds a log record at the ERROR level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function err($message, array $context = array()) - { - return $this->addRecord(static::ERROR, $message, $context); - } - - /** - * Adds a log record at the ERROR level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function error($message, array $context = array()) - { - return $this->addRecord(static::ERROR, $message, $context); - } - - /** - * Adds a log record at the CRITICAL level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function crit($message, array $context = array()) - { - return $this->addRecord(static::CRITICAL, $message, $context); - } - - /** - * Adds a log record at the CRITICAL level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function critical($message, array $context = array()) - { - return $this->addRecord(static::CRITICAL, $message, $context); - } - - /** - * Adds a log record at the ALERT level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function alert($message, array $context = array()) - { - return $this->addRecord(static::ALERT, $message, $context); - } - - /** - * Adds a log record at the EMERGENCY level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function emerg($message, array $context = array()) - { - return $this->addRecord(static::EMERGENCY, $message, $context); - } - - /** - * Adds a log record at the EMERGENCY level. - * - * This method allows for compatibility with common interfaces. - * - * @param string $message The log message - * @param array $context The log context - * @return Boolean Whether the record has been processed - */ - public function emergency($message, array $context = array()) - { - return $this->addRecord(static::EMERGENCY, $message, $context); - } -} diff --git a/lib/aws-sdk/Monolog/Processor/GitProcessor.php b/lib/aws-sdk/Monolog/Processor/GitProcessor.php deleted file mode 100644 index 1899400..0000000 --- a/lib/aws-sdk/Monolog/Processor/GitProcessor.php +++ /dev/null @@ -1,64 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\Logger; - -/** - * Injects Git branch and Git commit SHA in all records - * - * @author Nick Otter - * @author Jordi Boggiano - */ -class GitProcessor -{ - private $level; - private static $cache; - - public function __construct($level = Logger::DEBUG) - { - $this->level = Logger::toMonologLevel($level); - } - - /** - * @param array $record - * @return array - */ - public function __invoke(array $record) - { - // return if the level is not high enough - if ($record['level'] < $this->level) { - return $record; - } - - $record['extra']['git'] = self::getGitInfo(); - - return $record; - } - - private static function getGitInfo() - { - if (self::$cache) { - return self::$cache; - } - - $branches = `git branch -v --no-abbrev`; - if (preg_match('{^\* (.+?)\s+([a-f0-9]{40})(?:\s|$)}m', $branches, $matches)) { - return self::$cache = array( - 'branch' => $matches[1], - 'commit' => $matches[2], - ); - } - - return self::$cache = array(); - } -} diff --git a/lib/aws-sdk/Monolog/Processor/IntrospectionProcessor.php b/lib/aws-sdk/Monolog/Processor/IntrospectionProcessor.php deleted file mode 100644 index 294a295..0000000 --- a/lib/aws-sdk/Monolog/Processor/IntrospectionProcessor.php +++ /dev/null @@ -1,82 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -use Monolog\Logger; - -/** - * Injects line/file:class/function where the log message came from - * - * Warning: This only works if the handler processes the logs directly. - * If you put the processor on a handler that is behind a FingersCrossedHandler - * for example, the processor will only be called once the trigger level is reached, - * and all the log records will have the same file/line/.. data from the call that - * triggered the FingersCrossedHandler. - * - * @author Jordi Boggiano - */ -class IntrospectionProcessor -{ - private $level; - - private $skipClassesPartials; - - public function __construct($level = Logger::DEBUG, array $skipClassesPartials = array('Monolog\\')) - { - $this->level = Logger::toMonologLevel($level); - $this->skipClassesPartials = $skipClassesPartials; - } - - /** - * @param array $record - * @return array - */ - public function __invoke(array $record) - { - // return if the level is not high enough - if ($record['level'] < $this->level) { - return $record; - } - - $trace = debug_backtrace(); - - // skip first since it's always the current method - array_shift($trace); - // the call_user_func call is also skipped - array_shift($trace); - - $i = 0; - - while (isset($trace[$i]['class'])) { - foreach ($this->skipClassesPartials as $part) { - if (strpos($trace[$i]['class'], $part) !== false) { - $i++; - continue 2; - } - } - break; - } - - // we should have the call source now - $record['extra'] = array_merge( - $record['extra'], - array( - 'file' => isset($trace[$i-1]['file']) ? $trace[$i-1]['file'] : null, - 'line' => isset($trace[$i-1]['line']) ? $trace[$i-1]['line'] : null, - 'class' => isset($trace[$i]['class']) ? $trace[$i]['class'] : null, - 'function' => isset($trace[$i]['function']) ? $trace[$i]['function'] : null, - ) - ); - - return $record; - } -} diff --git a/lib/aws-sdk/Monolog/Processor/MemoryPeakUsageProcessor.php b/lib/aws-sdk/Monolog/Processor/MemoryPeakUsageProcessor.php deleted file mode 100644 index 552fd70..0000000 --- a/lib/aws-sdk/Monolog/Processor/MemoryPeakUsageProcessor.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -/** - * Injects memory_get_peak_usage in all records - * - * @see Monolog\Processor\MemoryProcessor::__construct() for options - * @author Rob Jensen - */ -class MemoryPeakUsageProcessor extends MemoryProcessor -{ - /** - * @param array $record - * @return array - */ - public function __invoke(array $record) - { - $bytes = memory_get_peak_usage($this->realUsage); - $formatted = $this->formatBytes($bytes); - - $record['extra'] = array_merge( - $record['extra'], - array( - 'memory_peak_usage' => $formatted, - ) - ); - - return $record; - } -} diff --git a/lib/aws-sdk/Monolog/Processor/MemoryProcessor.php b/lib/aws-sdk/Monolog/Processor/MemoryProcessor.php deleted file mode 100644 index 0820def..0000000 --- a/lib/aws-sdk/Monolog/Processor/MemoryProcessor.php +++ /dev/null @@ -1,63 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -/** - * Some methods that are common for all memory processors - * - * @author Rob Jensen - */ -abstract class MemoryProcessor -{ - /** - * @var boolean If true, get the real size of memory allocated from system. Else, only the memory used by emalloc() is reported. - */ - protected $realUsage; - - /** - * @var boolean If true, then format memory size to human readable string (MB, KB, B depending on size) - */ - protected $useFormatting; - - /** - * @param boolean $realUsage Set this to true to get the real size of memory allocated from system. - * @param boolean $useFormatting If true, then format memory size to human readable string (MB, KB, B depending on size) - */ - public function __construct($realUsage = true, $useFormatting = true) - { - $this->realUsage = (boolean) $realUsage; - $this->useFormatting = (boolean) $useFormatting; - } - - /** - * Formats bytes into a human readable string if $this->useFormatting is true, otherwise return $bytes as is - * - * @param int $bytes - * @return string|int Formatted string if $this->useFormatting is true, otherwise return $bytes as is - */ - protected function formatBytes($bytes) - { - $bytes = (int) $bytes; - - if (!$this->useFormatting) { - return $bytes; - } - - if ($bytes > 1024*1024) { - return round($bytes/1024/1024, 2).' MB'; - } elseif ($bytes > 1024) { - return round($bytes/1024, 2).' KB'; - } - - return $bytes . ' B'; - } -} diff --git a/lib/aws-sdk/Monolog/Processor/MemoryUsageProcessor.php b/lib/aws-sdk/Monolog/Processor/MemoryUsageProcessor.php deleted file mode 100644 index 0c4dd9a..0000000 --- a/lib/aws-sdk/Monolog/Processor/MemoryUsageProcessor.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -/** - * Injects memory_get_usage in all records - * - * @see Monolog\Processor\MemoryProcessor::__construct() for options - * @author Rob Jensen - */ -class MemoryUsageProcessor extends MemoryProcessor -{ - /** - * @param array $record - * @return array - */ - public function __invoke(array $record) - { - $bytes = memory_get_usage($this->realUsage); - $formatted = $this->formatBytes($bytes); - - $record['extra'] = array_merge( - $record['extra'], - array( - 'memory_usage' => $formatted, - ) - ); - - return $record; - } -} diff --git a/lib/aws-sdk/Monolog/Processor/ProcessIdProcessor.php b/lib/aws-sdk/Monolog/Processor/ProcessIdProcessor.php deleted file mode 100644 index 9d3f559..0000000 --- a/lib/aws-sdk/Monolog/Processor/ProcessIdProcessor.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -/** - * Adds value of getmypid into records - * - * @author Andreas Hörnicke - */ -class ProcessIdProcessor -{ - /** - * @param array $record - * @return array - */ - public function __invoke(array $record) - { - $record['extra']['process_id'] = getmypid(); - - return $record; - } -} diff --git a/lib/aws-sdk/Monolog/Processor/PsrLogMessageProcessor.php b/lib/aws-sdk/Monolog/Processor/PsrLogMessageProcessor.php deleted file mode 100644 index c2686ce..0000000 --- a/lib/aws-sdk/Monolog/Processor/PsrLogMessageProcessor.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -/** - * Processes a record's message according to PSR-3 rules - * - * It replaces {foo} with the value from $context['foo'] - * - * @author Jordi Boggiano - */ -class PsrLogMessageProcessor -{ - /** - * @param array $record - * @return array - */ - public function __invoke(array $record) - { - if (false === strpos($record['message'], '{')) { - return $record; - } - - $replacements = array(); - foreach ($record['context'] as $key => $val) { - if (is_null($val) || is_scalar($val) || (is_object($val) && method_exists($val, "__toString"))) { - $replacements['{'.$key.'}'] = $val; - } elseif (is_object($val)) { - $replacements['{'.$key.'}'] = '[object '.get_class($val).']'; - } else { - $replacements['{'.$key.'}'] = '['.gettype($val).']'; - } - } - - $record['message'] = strtr($record['message'], $replacements); - - return $record; - } -} diff --git a/lib/aws-sdk/Monolog/Processor/TagProcessor.php b/lib/aws-sdk/Monolog/Processor/TagProcessor.php deleted file mode 100644 index 2784cef..0000000 --- a/lib/aws-sdk/Monolog/Processor/TagProcessor.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -/** - * Adds a tags array into record - * - * @author Martijn Riemers - */ -class TagProcessor -{ - private $tags; - - public function __construct(array $tags = array()) - { - $this->tags = $tags; - } - - public function __invoke(array $record) - { - $record['extra']['tags'] = $this->tags; - - return $record; - } -} diff --git a/lib/aws-sdk/Monolog/Processor/UidProcessor.php b/lib/aws-sdk/Monolog/Processor/UidProcessor.php deleted file mode 100644 index 80270d0..0000000 --- a/lib/aws-sdk/Monolog/Processor/UidProcessor.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -/** - * Adds a unique identifier into records - * - * @author Simon Mönch - */ -class UidProcessor -{ - private $uid; - - public function __construct($length = 7) - { - if (!is_int($length) || $length > 32 || $length < 1) { - throw new \InvalidArgumentException('The uid length must be an integer between 1 and 32'); - } - - $this->uid = substr(hash('md5', uniqid('', true)), 0, $length); - } - - public function __invoke(array $record) - { - $record['extra']['uid'] = $this->uid; - - return $record; - } -} diff --git a/lib/aws-sdk/Monolog/Processor/WebProcessor.php b/lib/aws-sdk/Monolog/Processor/WebProcessor.php deleted file mode 100644 index 21f22a6..0000000 --- a/lib/aws-sdk/Monolog/Processor/WebProcessor.php +++ /dev/null @@ -1,105 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog\Processor; - -/** - * Injects url/method and remote IP of the current web request in all records - * - * @author Jordi Boggiano - */ -class WebProcessor -{ - /** - * @var array|\ArrayAccess - */ - protected $serverData; - - /** - * @var array - */ - protected $extraFields = array( - 'url' => 'REQUEST_URI', - 'ip' => 'REMOTE_ADDR', - 'http_method' => 'REQUEST_METHOD', - 'server' => 'SERVER_NAME', - 'referrer' => 'HTTP_REFERER', - ); - - /** - * @param array|\ArrayAccess $serverData Array or object w/ ArrayAccess that provides access to the $_SERVER data - * @param array|null $extraFields Extra field names to be added (all available by default) - */ - public function __construct($serverData = null, array $extraFields = null) - { - if (null === $serverData) { - $this->serverData = &$_SERVER; - } elseif (is_array($serverData) || $serverData instanceof \ArrayAccess) { - $this->serverData = $serverData; - } else { - throw new \UnexpectedValueException('$serverData must be an array or object implementing ArrayAccess.'); - } - - if (null !== $extraFields) { - foreach (array_keys($this->extraFields) as $fieldName) { - if (!in_array($fieldName, $extraFields)) { - unset($this->extraFields[$fieldName]); - } - } - } - } - - /** - * @param array $record - * @return array - */ - public function __invoke(array $record) - { - // skip processing if for some reason request data - // is not present (CLI or wonky SAPIs) - if (!isset($this->serverData['REQUEST_URI'])) { - return $record; - } - - $record['extra'] = $this->appendExtraFields($record['extra']); - - return $record; - } - - /** - * @param string $extraName - * @param string $serverName - * @return $this - */ - public function addExtraField($extraName, $serverName) - { - $this->extraFields[$extraName] = $serverName; - - return $this; - } - - /** - * @param array $extra - * @return array - */ - private function appendExtraFields(array $extra) - { - foreach ($this->extraFields as $extraName => $serverName) { - $extra[$extraName] = isset($this->serverData[$serverName]) ? $this->serverData[$serverName] : null; - } - - if (isset($this->serverData['UNIQUE_ID'])) { - $extra['unique_id'] = $this->serverData['UNIQUE_ID']; - } - - return $extra; - } -} diff --git a/lib/aws-sdk/Monolog/Registry.php b/lib/aws-sdk/Monolog/Registry.php deleted file mode 100644 index 923b774..0000000 --- a/lib/aws-sdk/Monolog/Registry.php +++ /dev/null @@ -1,134 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog; - -use InvalidArgumentException; - -/** - * Monolog log registry - * - * Allows to get `Logger` instances in the global scope - * via static method calls on this class. - * - * - * $application = new Monolog\Logger('application'); - * $api = new Monolog\Logger('api'); - * - * Monolog\Registry::addLogger($application); - * Monolog\Registry::addLogger($api); - * - * function testLogger() - * { - * Monolog\Registry::api()->addError('Sent to $api Logger instance'); - * Monolog\Registry::application()->addError('Sent to $application Logger instance'); - * } - * - * - * @author Tomas Tatarko - */ -class Registry -{ - /** - * List of all loggers in the registry (ba named indexes) - * - * @var Logger[] - */ - private static $loggers = array(); - - /** - * Adds new logging channel to the registry - * - * @param Logger $logger Instance of the logging channel - * @param string|null $name Name of the logging channel ($logger->getName() by default) - * @param boolean $overwrite Overwrite instance in the registry if the given name already exists? - * @throws \InvalidArgumentException If $overwrite set to false and named Logger instance already exists - */ - public static function addLogger(Logger $logger, $name = null, $overwrite = false) - { - $name = $name ?: $logger->getName(); - - if (isset(self::$loggers[$name]) && !$overwrite) { - throw new InvalidArgumentException('Logger with the given name already exists'); - } - - self::$loggers[$name] = $logger; - } - - /** - * Checks if such logging channel exists by name or instance - * - * @param string|Logger $logger Name or logger instance - */ - public static function hasLogger($logger) - { - if ($logger instanceof Logger) { - $index = array_search($logger, self::$loggers, true); - - return false !== $index; - } else { - return isset(self::$loggers[$logger]); - } - } - - /** - * Removes instance from registry by name or instance - * - * @param string|Logger $logger Name or logger instance - */ - public static function removeLogger($logger) - { - if ($logger instanceof Logger) { - if (false !== ($idx = array_search($logger, self::$loggers, true))) { - unset(self::$loggers[$idx]); - } - } else { - unset(self::$loggers[$logger]); - } - } - - /** - * Clears the registry - */ - public static function clear() - { - self::$loggers = array(); - } - - /** - * Gets Logger instance from the registry - * - * @param string $name Name of the requested Logger instance - * @return Logger Requested instance of Logger - * @throws \InvalidArgumentException If named Logger instance is not in the registry - */ - public static function getInstance($name) - { - if (!isset(self::$loggers[$name])) { - throw new InvalidArgumentException(sprintf('Requested "%s" logger instance is not in the registry', $name)); - } - - return self::$loggers[$name]; - } - - /** - * Gets Logger instance from the registry via static method call - * - * @param string $name Name of the requested Logger instance - * @param array $arguments Arguments passed to static method call - * @return Logger Requested instance of Logger - * @throws \InvalidArgumentException If named Logger instance is not in the registry - */ - public static function __callStatic($name, $arguments) - { - return self::getInstance($name); - } -} diff --git a/lib/aws-sdk/NOTICE.md b/lib/aws-sdk/NOTICE.md index 8485853..367fedc 100644 --- a/lib/aws-sdk/NOTICE.md +++ b/lib/aws-sdk/NOTICE.md @@ -2,7 +2,7 @@ -Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. +Copyright 2010-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ permissions and limitations under the License. -Copyright (c) 2011 Michael Dowling, https://github.com/mtdowling +Copyright (c) 2014 Michael Dowling, https://github.com/mtdowling Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -39,69 +39,21 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# Symfony +# jmespath.php - + -Copyright (c) 2004-2012 Fabien Potencier +Copyright (c) 2014 Michael Dowling, https://github.com/mtdowling Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -# Doctrine Common - - - -Copyright (c) 2006-2012 Doctrine Project - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -# Monolog - - - -Copyright (c) Jordi Boggiano - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, diff --git a/lib/aws-sdk/Psr/Http/Message/MessageInterface.php b/lib/aws-sdk/Psr/Http/Message/MessageInterface.php new file mode 100644 index 0000000..8f67a05 --- /dev/null +++ b/lib/aws-sdk/Psr/Http/Message/MessageInterface.php @@ -0,0 +1,187 @@ +getHeaders() as $name => $values) { + * echo $name . ": " . implode(", ", $values); + * } + * + * // Emit headers iteratively: + * foreach ($message->getHeaders() as $name => $values) { + * foreach ($values as $value) { + * header(sprintf('%s: %s', $name, $value), false); + * } + * } + * + * While header names are not case-sensitive, getHeaders() will preserve the + * exact case in which headers were originally specified. + * + * @return array Returns an associative array of the message's headers. Each + * key MUST be a header name, and each value MUST be an array of strings + * for that header. + */ + public function getHeaders(); + + /** + * Checks if a header exists by the given case-insensitive name. + * + * @param string $name Case-insensitive header field name. + * @return bool Returns true if any header names match the given header + * name using a case-insensitive string comparison. Returns false if + * no matching header name is found in the message. + */ + public function hasHeader($name); + + /** + * Retrieves a message header value by the given case-insensitive name. + * + * This method returns an array of all the header values of the given + * case-insensitive header name. + * + * If the header does not appear in the message, this method MUST return an + * empty array. + * + * @param string $name Case-insensitive header field name. + * @return string[] An array of string values as provided for the given + * header. If the header does not appear in the message, this method MUST + * return an empty array. + */ + public function getHeader($name); + + /** + * Retrieves a comma-separated string of the values for a single header. + * + * This method returns all of the header values of the given + * case-insensitive header name as a string concatenated together using + * a comma. + * + * NOTE: Not all header values may be appropriately represented using + * comma concatenation. For such headers, use getHeader() instead + * and supply your own delimiter when concatenating. + * + * If the header does not appear in the message, this method MUST return + * an empty string. + * + * @param string $name Case-insensitive header field name. + * @return string A string of values as provided for the given header + * concatenated together using a comma. If the header does not appear in + * the message, this method MUST return an empty string. + */ + public function getHeaderLine($name); + + /** + * Return an instance with the provided value replacing the specified header. + * + * While header names are case-insensitive, the casing of the header will + * be preserved by this function, and returned from getHeaders(). + * + * This method MUST be implemented in such a way as to retain the + * immutability of the message, and MUST return an instance that has the + * new and/or updated header and value. + * + * @param string $name Case-insensitive header field name. + * @param string|string[] $value Header value(s). + * @return self + * @throws \InvalidArgumentException for invalid header names or values. + */ + public function withHeader($name, $value); + + /** + * Return an instance with the specified header appended with the given value. + * + * Existing values for the specified header will be maintained. The new + * value(s) will be appended to the existing list. If the header did not + * exist previously, it will be added. + * + * This method MUST be implemented in such a way as to retain the + * immutability of the message, and MUST return an instance that has the + * new header and/or value. + * + * @param string $name Case-insensitive header field name to add. + * @param string|string[] $value Header value(s). + * @return self + * @throws \InvalidArgumentException for invalid header names or values. + */ + public function withAddedHeader($name, $value); + + /** + * Return an instance without the specified header. + * + * Header resolution MUST be done without case-sensitivity. + * + * This method MUST be implemented in such a way as to retain the + * immutability of the message, and MUST return an instance that removes + * the named header. + * + * @param string $name Case-insensitive header field name to remove. + * @return self + */ + public function withoutHeader($name); + + /** + * Gets the body of the message. + * + * @return StreamInterface Returns the body as a stream. + */ + public function getBody(); + + /** + * Return an instance with the specified message body. + * + * The body MUST be a StreamInterface object. + * + * This method MUST be implemented in such a way as to retain the + * immutability of the message, and MUST return a new instance that has the + * new body stream. + * + * @param StreamInterface $body Body. + * @return self + * @throws \InvalidArgumentException When the body is not valid. + */ + public function withBody(StreamInterface $body); +} diff --git a/lib/aws-sdk/Psr/Http/Message/RequestInterface.php b/lib/aws-sdk/Psr/Http/Message/RequestInterface.php new file mode 100644 index 0000000..75c802e --- /dev/null +++ b/lib/aws-sdk/Psr/Http/Message/RequestInterface.php @@ -0,0 +1,129 @@ +getQuery()` + * or from the `QUERY_STRING` server param. + * + * @return array + */ + public function getQueryParams(); + + /** + * Return an instance with the specified query string arguments. + * + * These values SHOULD remain immutable over the course of the incoming + * request. They MAY be injected during instantiation, such as from PHP's + * $_GET superglobal, or MAY be derived from some other value such as the + * URI. In cases where the arguments are parsed from the URI, the data + * MUST be compatible with what PHP's parse_str() would return for + * purposes of how duplicate query parameters are handled, and how nested + * sets are handled. + * + * Setting query string arguments MUST NOT change the URI stored by the + * request, nor the values in the server params. + * + * This method MUST be implemented in such a way as to retain the + * immutability of the message, and MUST return an instance that has the + * updated query string arguments. + * + * @param array $query Array of query string arguments, typically from + * $_GET. + * @return self + */ + public function withQueryParams(array $query); + + /** + * Retrieve normalized file upload data. + * + * This method returns upload metadata in a normalized tree, with each leaf + * an instance of Psr\Http\Message\UploadedFileInterface. + * + * These values MAY be prepared from $_FILES or the message body during + * instantiation, or MAY be injected via withUploadedFiles(). + * + * @return array An array tree of UploadedFileInterface instances; an empty + * array MUST be returned if no data is present. + */ + public function getUploadedFiles(); + + /** + * Create a new instance with the specified uploaded files. + * + * This method MUST be implemented in such a way as to retain the + * immutability of the message, and MUST return an instance that has the + * updated body parameters. + * + * @param array An array tree of UploadedFileInterface instances. + * @return self + * @throws \InvalidArgumentException if an invalid structure is provided. + */ + public function withUploadedFiles(array $uploadedFiles); + + /** + * Retrieve any parameters provided in the request body. + * + * If the request Content-Type is either application/x-www-form-urlencoded + * or multipart/form-data, and the request method is POST, this method MUST + * return the contents of $_POST. + * + * Otherwise, this method may return any results of deserializing + * the request body content; as parsing returns structured content, the + * potential types MUST be arrays or objects only. A null value indicates + * the absence of body content. + * + * @return null|array|object The deserialized body parameters, if any. + * These will typically be an array or object. + */ + public function getParsedBody(); + + /** + * Return an instance with the specified body parameters. + * + * These MAY be injected during instantiation. + * + * If the request Content-Type is either application/x-www-form-urlencoded + * or multipart/form-data, and the request method is POST, use this method + * ONLY to inject the contents of $_POST. + * + * The data IS NOT REQUIRED to come from $_POST, but MUST be the results of + * deserializing the request body content. Deserialization/parsing returns + * structured data, and, as such, this method ONLY accepts arrays or objects, + * or a null value if nothing was available to parse. + * + * As an example, if content negotiation determines that the request data + * is a JSON payload, this method could be used to create a request + * instance with the deserialized parameters. + * + * This method MUST be implemented in such a way as to retain the + * immutability of the message, and MUST return an instance that has the + * updated body parameters. + * + * @param null|array|object $data The deserialized body data. This will + * typically be in an array or object. + * @return self + * @throws \InvalidArgumentException if an unsupported argument type is + * provided. + */ + public function withParsedBody($data); + + /** + * Retrieve attributes derived from the request. + * + * The request "attributes" may be used to allow injection of any + * parameters derived from the request: e.g., the results of path + * match operations; the results of decrypting cookies; the results of + * deserializing non-form-encoded message bodies; etc. Attributes + * will be application and request specific, and CAN be mutable. + * + * @return array Attributes derived from the request. + */ + public function getAttributes(); + + /** + * Retrieve a single derived request attribute. + * + * Retrieves a single derived request attribute as described in + * getAttributes(). If the attribute has not been previously set, returns + * the default value as provided. + * + * This method obviates the need for a hasAttribute() method, as it allows + * specifying a default value to return if the attribute is not found. + * + * @see getAttributes() + * @param string $name The attribute name. + * @param mixed $default Default value to return if the attribute does not exist. + * @return mixed + */ + public function getAttribute($name, $default = null); + + /** + * Return an instance with the specified derived request attribute. + * + * This method allows setting a single derived request attribute as + * described in getAttributes(). + * + * This method MUST be implemented in such a way as to retain the + * immutability of the message, and MUST return an instance that has the + * updated attribute. + * + * @see getAttributes() + * @param string $name The attribute name. + * @param mixed $value The value of the attribute. + * @return self + */ + public function withAttribute($name, $value); + + /** + * Return an instance that removes the specified derived request attribute. + * + * This method allows removing a single derived request attribute as + * described in getAttributes(). + * + * This method MUST be implemented in such a way as to retain the + * immutability of the message, and MUST return an instance that removes + * the attribute. + * + * @see getAttributes() + * @param string $name The attribute name. + * @return self + */ + public function withoutAttribute($name); +} diff --git a/lib/aws-sdk/Psr/Http/Message/StreamInterface.php b/lib/aws-sdk/Psr/Http/Message/StreamInterface.php new file mode 100644 index 0000000..f68f391 --- /dev/null +++ b/lib/aws-sdk/Psr/Http/Message/StreamInterface.php @@ -0,0 +1,158 @@ + + * [user-info@]host[:port] + * + * + * If the port component is not set or is the standard port for the current + * scheme, it SHOULD NOT be included. + * + * @see https://tools.ietf.org/html/rfc3986#section-3.2 + * @return string The URI authority, in "[user-info@]host[:port]" format. + */ + public function getAuthority(); + + /** + * Retrieve the user information component of the URI. + * + * If no user information is present, this method MUST return an empty + * string. + * + * If a user is present in the URI, this will return that value; + * additionally, if the password is also present, it will be appended to the + * user value, with a colon (":") separating the values. + * + * The trailing "@" character is not part of the user information and MUST + * NOT be added. + * + * @return string The URI user information, in "username[:password]" format. + */ + public function getUserInfo(); + + /** + * Retrieve the host component of the URI. + * + * If no host is present, this method MUST return an empty string. + * + * The value returned MUST be normalized to lowercase, per RFC 3986 + * Section 3.2.2. + * + * @see http://tools.ietf.org/html/rfc3986#section-3.2.2 + * @return string The URI host. + */ + public function getHost(); + + /** + * Retrieve the port component of the URI. + * + * If a port is present, and it is non-standard for the current scheme, + * this method MUST return it as an integer. If the port is the standard port + * used with the current scheme, this method SHOULD return null. + * + * If no port is present, and no scheme is present, this method MUST return + * a null value. + * + * If no port is present, but a scheme is present, this method MAY return + * the standard port for that scheme, but SHOULD return null. + * + * @return null|int The URI port. + */ + public function getPort(); + + /** + * Retrieve the path component of the URI. + * + * The path can either be empty or absolute (starting with a slash) or + * rootless (not starting with a slash). Implementations MUST support all + * three syntaxes. + * + * Normally, the empty path "" and absolute path "/" are considered equal as + * defined in RFC 7230 Section 2.7.3. But this method MUST NOT automatically + * do this normalization because in contexts with a trimmed base path, e.g. + * the front controller, this difference becomes significant. It's the task + * of the user to handle both "" and "/". + * + * The value returned MUST be percent-encoded, but MUST NOT double-encode + * any characters. To determine what characters to encode, please refer to + * RFC 3986, Sections 2 and 3.3. + * + * As an example, if the value should include a slash ("/") not intended as + * delimiter between path segments, that value MUST be passed in encoded + * form (e.g., "%2F") to the instance. + * + * @see https://tools.ietf.org/html/rfc3986#section-2 + * @see https://tools.ietf.org/html/rfc3986#section-3.3 + * @return string The URI path. + */ + public function getPath(); + + /** + * Retrieve the query string of the URI. + * + * If no query string is present, this method MUST return an empty string. + * + * The leading "?" character is not part of the query and MUST NOT be + * added. + * + * The value returned MUST be percent-encoded, but MUST NOT double-encode + * any characters. To determine what characters to encode, please refer to + * RFC 3986, Sections 2 and 3.4. + * + * As an example, if a value in a key/value pair of the query string should + * include an ampersand ("&") not intended as a delimiter between values, + * that value MUST be passed in encoded form (e.g., "%26") to the instance. + * + * @see https://tools.ietf.org/html/rfc3986#section-2 + * @see https://tools.ietf.org/html/rfc3986#section-3.4 + * @return string The URI query string. + */ + public function getQuery(); + + /** + * Retrieve the fragment component of the URI. + * + * If no fragment is present, this method MUST return an empty string. + * + * The leading "#" character is not part of the fragment and MUST NOT be + * added. + * + * The value returned MUST be percent-encoded, but MUST NOT double-encode + * any characters. To determine what characters to encode, please refer to + * RFC 3986, Sections 2 and 3.5. + * + * @see https://tools.ietf.org/html/rfc3986#section-2 + * @see https://tools.ietf.org/html/rfc3986#section-3.5 + * @return string The URI fragment. + */ + public function getFragment(); + + /** + * Return an instance with the specified scheme. + * + * This method MUST retain the state of the current instance, and return + * an instance that contains the specified scheme. + * + * Implementations MUST support the schemes "http" and "https" case + * insensitively, and MAY accommodate other schemes if required. + * + * An empty scheme is equivalent to removing the scheme. + * + * @param string $scheme The scheme to use with the new instance. + * @return self A new instance with the specified scheme. + * @throws \InvalidArgumentException for invalid or unsupported schemes. + */ + public function withScheme($scheme); + + /** + * Return an instance with the specified user information. + * + * This method MUST retain the state of the current instance, and return + * an instance that contains the specified user information. + * + * Password is optional, but the user information MUST include the + * user; an empty string for the user is equivalent to removing user + * information. + * + * @param string $user The user name to use for authority. + * @param null|string $password The password associated with $user. + * @return self A new instance with the specified user information. + */ + public function withUserInfo($user, $password = null); + + /** + * Return an instance with the specified host. + * + * This method MUST retain the state of the current instance, and return + * an instance that contains the specified host. + * + * An empty host value is equivalent to removing the host. + * + * @param string $host The hostname to use with the new instance. + * @return self A new instance with the specified host. + * @throws \InvalidArgumentException for invalid hostnames. + */ + public function withHost($host); + + /** + * Return an instance with the specified port. + * + * This method MUST retain the state of the current instance, and return + * an instance that contains the specified port. + * + * Implementations MUST raise an exception for ports outside the + * established TCP and UDP port ranges. + * + * A null value provided for the port is equivalent to removing the port + * information. + * + * @param null|int $port The port to use with the new instance; a null value + * removes the port information. + * @return self A new instance with the specified port. + * @throws \InvalidArgumentException for invalid ports. + */ + public function withPort($port); + + /** + * Return an instance with the specified path. + * + * This method MUST retain the state of the current instance, and return + * an instance that contains the specified path. + * + * The path can either be empty or absolute (starting with a slash) or + * rootless (not starting with a slash). Implementations MUST support all + * three syntaxes. + * + * If the path is intended to be domain-relative rather than path relative then + * it must begin with a slash ("/"). Paths not starting with a slash ("/") + * are assumed to be relative to some base path known to the application or + * consumer. + * + * Users can provide both encoded and decoded path characters. + * Implementations ensure the correct encoding as outlined in getPath(). + * + * @param string $path The path to use with the new instance. + * @return self A new instance with the specified path. + * @throws \InvalidArgumentException for invalid paths. + */ + public function withPath($path); + + /** + * Return an instance with the specified query string. + * + * This method MUST retain the state of the current instance, and return + * an instance that contains the specified query string. + * + * Users can provide both encoded and decoded query characters. + * Implementations ensure the correct encoding as outlined in getQuery(). + * + * An empty query string value is equivalent to removing the query string. + * + * @param string $query The query string to use with the new instance. + * @return self A new instance with the specified query string. + * @throws \InvalidArgumentException for invalid query strings. + */ + public function withQuery($query); + + /** + * Return an instance with the specified URI fragment. + * + * This method MUST retain the state of the current instance, and return + * an instance that contains the specified URI fragment. + * + * Users can provide both encoded and decoded fragment characters. + * Implementations ensure the correct encoding as outlined in getFragment(). + * + * An empty fragment value is equivalent to removing the fragment. + * + * @param string $fragment The fragment to use with the new instance. + * @return self A new instance with the specified fragment. + */ + public function withFragment($fragment); + + /** + * Return the string representation as a URI reference. + * + * Depending on which components of the URI are present, the resulting + * string is either a full URI or relative reference according to RFC 3986, + * Section 4.1. The method concatenates the various components of the URI, + * using the appropriate delimiters: + * + * - If a scheme is present, it MUST be suffixed by ":". + * - If an authority is present, it MUST be prefixed by "//". + * - The path can be concatenated without delimiters. But there are two + * cases where the path has to be adjusted to make the URI reference + * valid as PHP does not allow to throw an exception in __toString(): + * - If the path is rootless and an authority is present, the path MUST + * be prefixed by "/". + * - If the path is starting with more than one "/" and no authority is + * present, the starting slashes MUST be reduced to one. + * - If a query is present, it MUST be prefixed by "?". + * - If a fragment is present, it MUST be prefixed by "#". + * + * @see http://tools.ietf.org/html/rfc3986#section-4.1 + * @return string + */ + public function __toString(); +} diff --git a/lib/aws-sdk/Psr/Log/AbstractLogger.php b/lib/aws-sdk/Psr/Log/AbstractLogger.php deleted file mode 100644 index 00f9034..0000000 --- a/lib/aws-sdk/Psr/Log/AbstractLogger.php +++ /dev/null @@ -1,120 +0,0 @@ -log(LogLevel::EMERGENCY, $message, $context); - } - - /** - * Action must be taken immediately. - * - * Example: Entire website down, database unavailable, etc. This should - * trigger the SMS alerts and wake you up. - * - * @param string $message - * @param array $context - * @return null - */ - public function alert($message, array $context = array()) - { - $this->log(LogLevel::ALERT, $message, $context); - } - - /** - * Critical conditions. - * - * Example: Application component unavailable, unexpected exception. - * - * @param string $message - * @param array $context - * @return null - */ - public function critical($message, array $context = array()) - { - $this->log(LogLevel::CRITICAL, $message, $context); - } - - /** - * Runtime errors that do not require immediate action but should typically - * be logged and monitored. - * - * @param string $message - * @param array $context - * @return null - */ - public function error($message, array $context = array()) - { - $this->log(LogLevel::ERROR, $message, $context); - } - - /** - * Exceptional occurrences that are not errors. - * - * Example: Use of deprecated APIs, poor use of an API, undesirable things - * that are not necessarily wrong. - * - * @param string $message - * @param array $context - * @return null - */ - public function warning($message, array $context = array()) - { - $this->log(LogLevel::WARNING, $message, $context); - } - - /** - * Normal but significant events. - * - * @param string $message - * @param array $context - * @return null - */ - public function notice($message, array $context = array()) - { - $this->log(LogLevel::NOTICE, $message, $context); - } - - /** - * Interesting events. - * - * Example: User logs in, SQL logs. - * - * @param string $message - * @param array $context - * @return null - */ - public function info($message, array $context = array()) - { - $this->log(LogLevel::INFO, $message, $context); - } - - /** - * Detailed debug information. - * - * @param string $message - * @param array $context - * @return null - */ - public function debug($message, array $context = array()) - { - $this->log(LogLevel::DEBUG, $message, $context); - } -} diff --git a/lib/aws-sdk/Psr/Log/InvalidArgumentException.php b/lib/aws-sdk/Psr/Log/InvalidArgumentException.php deleted file mode 100644 index 67f852d..0000000 --- a/lib/aws-sdk/Psr/Log/InvalidArgumentException.php +++ /dev/null @@ -1,7 +0,0 @@ -logger = $logger; - } -} diff --git a/lib/aws-sdk/Psr/Log/LoggerInterface.php b/lib/aws-sdk/Psr/Log/LoggerInterface.php deleted file mode 100644 index 476bb96..0000000 --- a/lib/aws-sdk/Psr/Log/LoggerInterface.php +++ /dev/null @@ -1,114 +0,0 @@ -log(LogLevel::EMERGENCY, $message, $context); - } - - /** - * Action must be taken immediately. - * - * Example: Entire website down, database unavailable, etc. This should - * trigger the SMS alerts and wake you up. - * - * @param string $message - * @param array $context - * @return null - */ - public function alert($message, array $context = array()) - { - $this->log(LogLevel::ALERT, $message, $context); - } - - /** - * Critical conditions. - * - * Example: Application component unavailable, unexpected exception. - * - * @param string $message - * @param array $context - * @return null - */ - public function critical($message, array $context = array()) - { - $this->log(LogLevel::CRITICAL, $message, $context); - } - - /** - * Runtime errors that do not require immediate action but should typically - * be logged and monitored. - * - * @param string $message - * @param array $context - * @return null - */ - public function error($message, array $context = array()) - { - $this->log(LogLevel::ERROR, $message, $context); - } - - /** - * Exceptional occurrences that are not errors. - * - * Example: Use of deprecated APIs, poor use of an API, undesirable things - * that are not necessarily wrong. - * - * @param string $message - * @param array $context - * @return null - */ - public function warning($message, array $context = array()) - { - $this->log(LogLevel::WARNING, $message, $context); - } - - /** - * Normal but significant events. - * - * @param string $message - * @param array $context - * @return null - */ - public function notice($message, array $context = array()) - { - $this->log(LogLevel::NOTICE, $message, $context); - } - - /** - * Interesting events. - * - * Example: User logs in, SQL logs. - * - * @param string $message - * @param array $context - * @return null - */ - public function info($message, array $context = array()) - { - $this->log(LogLevel::INFO, $message, $context); - } - - /** - * Detailed debug information. - * - * @param string $message - * @param array $context - * @return null - */ - public function debug($message, array $context = array()) - { - $this->log(LogLevel::DEBUG, $message, $context); - } - - /** - * Logs with an arbitrary level. - * - * @param mixed $level - * @param string $message - * @param array $context - * @return null - */ - abstract public function log($level, $message, array $context = array()); -} diff --git a/lib/aws-sdk/Psr/Log/NullLogger.php b/lib/aws-sdk/Psr/Log/NullLogger.php deleted file mode 100644 index 553a3c5..0000000 --- a/lib/aws-sdk/Psr/Log/NullLogger.php +++ /dev/null @@ -1,27 +0,0 @@ -logger) { }` - * blocks. - */ -class NullLogger extends AbstractLogger -{ - /** - * Logs with an arbitrary level. - * - * @param mixed $level - * @param string $message - * @param array $context - * @return null - */ - public function log($level, $message, array $context = array()) - { - // noop - } -} diff --git a/lib/aws-sdk/Psr/Log/Test/LoggerInterfaceTest.php b/lib/aws-sdk/Psr/Log/Test/LoggerInterfaceTest.php deleted file mode 100644 index a932815..0000000 --- a/lib/aws-sdk/Psr/Log/Test/LoggerInterfaceTest.php +++ /dev/null @@ -1,116 +0,0 @@ - " - * - * Example ->error('Foo') would yield "error Foo" - * - * @return string[] - */ - abstract function getLogs(); - - public function testImplements() - { - $this->assertInstanceOf('Psr\Log\LoggerInterface', $this->getLogger()); - } - - /** - * @dataProvider provideLevelsAndMessages - */ - public function testLogsAtAllLevels($level, $message) - { - $logger = $this->getLogger(); - $logger->{$level}($message, array('user' => 'Bob')); - $logger->log($level, $message, array('user' => 'Bob')); - - $expected = array( - $level.' message of level '.$level.' with context: Bob', - $level.' message of level '.$level.' with context: Bob', - ); - $this->assertEquals($expected, $this->getLogs()); - } - - public function provideLevelsAndMessages() - { - return array( - LogLevel::EMERGENCY => array(LogLevel::EMERGENCY, 'message of level emergency with context: {user}'), - LogLevel::ALERT => array(LogLevel::ALERT, 'message of level alert with context: {user}'), - LogLevel::CRITICAL => array(LogLevel::CRITICAL, 'message of level critical with context: {user}'), - LogLevel::ERROR => array(LogLevel::ERROR, 'message of level error with context: {user}'), - LogLevel::WARNING => array(LogLevel::WARNING, 'message of level warning with context: {user}'), - LogLevel::NOTICE => array(LogLevel::NOTICE, 'message of level notice with context: {user}'), - LogLevel::INFO => array(LogLevel::INFO, 'message of level info with context: {user}'), - LogLevel::DEBUG => array(LogLevel::DEBUG, 'message of level debug with context: {user}'), - ); - } - - /** - * @expectedException Psr\Log\InvalidArgumentException - */ - public function testThrowsOnInvalidLevel() - { - $logger = $this->getLogger(); - $logger->log('invalid level', 'Foo'); - } - - public function testContextReplacement() - { - $logger = $this->getLogger(); - $logger->info('{Message {nothing} {user} {foo.bar} a}', array('user' => 'Bob', 'foo.bar' => 'Bar')); - - $expected = array('info {Message {nothing} Bob Bar a}'); - $this->assertEquals($expected, $this->getLogs()); - } - - public function testObjectCastToString() - { - $dummy = $this->getMock('Psr\Log\Test\DummyTest', array('__toString')); - $dummy->expects($this->once()) - ->method('__toString') - ->will($this->returnValue('DUMMY')); - - $this->getLogger()->warning($dummy); - } - - public function testContextCanContainAnything() - { - $context = array( - 'bool' => true, - 'null' => null, - 'string' => 'Foo', - 'int' => 0, - 'float' => 0.5, - 'nested' => array('with object' => new DummyTest), - 'object' => new \DateTime, - 'resource' => fopen('php://memory', 'r'), - ); - - $this->getLogger()->warning('Crazy context data', $context); - } - - public function testContextExceptionKeyCanBeExceptionOrOtherValues() - { - $this->getLogger()->warning('Random message', array('exception' => 'oops')); - $this->getLogger()->critical('Uncaught Exception!', array('exception' => new \LogicException('Fail'))); - } -} - -class DummyTest -{ -} \ No newline at end of file diff --git a/lib/aws-sdk/README.md b/lib/aws-sdk/README.md index fa9539f..41fd3d8 100644 --- a/lib/aws-sdk/README.md +++ b/lib/aws-sdk/README.md @@ -4,45 +4,38 @@ [![Total Downloads](https://img.shields.io/packagist/dt/aws/aws-sdk-php.svg?style=flat)](https://packagist.org/packages/aws/aws-sdk-php) [![Build Status](https://img.shields.io/travis/aws/aws-sdk-php.svg?style=flat)](https://travis-ci.org/aws/aws-sdk-php) [![Apache 2 License](https://img.shields.io/packagist/l/aws/aws-sdk-php.svg?style=flat)](http://aws.amazon.com/apache-2-0/) -[![Code Climate](https://codeclimate.com/github/aws/aws-sdk-php/badges/gpa.svg)](https://codeclimate.com/github/aws/aws-sdk-php) [![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/aws/aws-sdk-php?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) -The **AWS SDK for PHP** enables PHP developers to use [Amazon Web Services][aws] -in their PHP code, and build robust applications and software using services -like Amazon S3, Amazon DynamoDB, Amazon Glacier, etc. You can get started in -minutes by [installing the SDK through Composer][docs-installation] or by -downloading a single zip or phar file from our [latest release][latest-release]. +The **AWS SDK for PHP** makes it easy for developers to access [Amazon Web +Services][aws] in their PHP code, and build robust applications and software +using services like Amazon S3, Amazon DynamoDB, Amazon Glacier, etc. You can +get started in minutes by [installing the SDK through Composer][docs-installation] +or by downloading a single zip or phar file from our [latest release][latest-release]. ## Resources -* [User Guide][docs-guide] – For in-depth getting started and usage information -* [API Docs][docs-api] – For operations, parameters, responses, and examples +* [User Guide][docs-guide] – For both getting started and in-depth SDK usage information +* [API Docs][docs-api] – For details about operations, parameters, and responses * [Blog][sdk-blog] – Tips & tricks, articles, and announcements * [Sample Project][sdk-sample] - A quick, sample project to help get you started * [Forum][sdk-forum] – Ask questions, get help, and give feedback -* [Issues][sdk-issues] – Report issues and submit pull requests +* [Issues][sdk-issues] – Report issues, submit pull requests, and get involved (see [Apache 2.0 License][sdk-license]) * [@awsforphp][sdk-twitter] – Follow us on Twitter -* [Building Apps with Version 3 of the AWS SDK for PHP](http://youtu.be/STrtR89f5Pc) video from AWS - re:Invent 2014 +* For Version 2 of the SDK: + * [User Guide][docs-guide-v2] + * [API Docs][docs-api-v2] ## Features * Provides easy-to-use HTTP clients for all supported AWS [services][docs-services], [regions][docs-rande], and authentication protocols. -* Is built for PHP 5.3.3+ and is compliant with [PSR-0], [PSR-1], and [PSR-2]. -* Is easy to install through [Composer][install-packagist], or by downloading - the phar or zip file of our [latest release][latest-release]. -* Is built on [Guzzle v3][guzzle], and utilizes many of its features, including - persistent connections, parallel requests, events and plugins - (via [Symfony2 EventDispatcher][symfony2-events]), service descriptions, - [over-the-wire logging][docs-wire-logging], caching, flexible batching, and - request retrying with truncated exponential backoff. -* Provides convenience features including easy response pagination via - [Iterators][docs-iterators], resource [Waiters][docs-waiters], and simple - [modelled responses][docs-models]. -* Allows you to [sync local directories to Amazon S3 buckets][docs-s3-sync]. +* Is built on [Guzzle][guzzle-docs], and utilizes many of its features, + including persistent connections, asynchronous requests, middlewares, etc. +* Provides convenience features including easy result pagination via + [Paginators][docs-paginators], [Waiters][docs-waiters], and simple + [Result objects][docs-results]. * Provides a [multipart uploader tool][docs-s3-multipart] for Amazon S3 and Amazon Glacier that can be paused and resumed. * Provides an [Amazon S3 Stream Wrapper][docs-streamwrapper], so that you can @@ -56,11 +49,11 @@ downloading a single zip or phar file from our [latest release][latest-release]. ## Getting Started 1. **Sign up for AWS** – Before you begin, you need to - [sign up for an AWS account][docs-signup] and retrieve your AWS credentials. + sign up for an AWS account and retrieve your [AWS credentials][docs-signup]. 1. **Minimum requirements** – To run the SDK, your system will need to meet the - [minimum requirements][docs-requirements], including having **PHP 5.3.3+** - compiled with the cURL extension and cURL 7.16.2+ compiled with OpenSSL and - zlib. + [minimum requirements][docs-requirements], including having **PHP >= 5.5** + compiled with the cURL extension and cURL 7.16.2+ compiled with a TLS + backend (e.g., NSS or OpenSSL). 1. **Install the SDK** – Using [Composer] is the recommended way to install the AWS SDK for PHP. The SDK is available via [Packagist] under the [`aws/aws-sdk-php`][install-packagist] package. Please see the @@ -70,65 +63,49 @@ downloading a single zip or phar file from our [latest release][latest-release]. 1. **Using the SDK** – The best way to become familiar with how to use the SDK is to read the [User Guide][docs-guide]. The [Getting Started Guide][docs-quickstart] will help you become familiar with - the basic concepts, and there are also specific guides for each of the - [supported services][docs-services]. + the basic concepts. -## Quick Example +## Quick Examples -### Upload a File to Amazon S3 +### Create an Amazon S3 client ```php 'latest', + 'region' => 'us-west-2' +]); +``` + +### Upload a file to Amazon S3 -// Upload a publicly accessible file. The file size, file type, and MD5 hash -// are automatically calculated by the SDK. +```php +putObject(array( + $s3->putObject([ 'Bucket' => 'my-bucket', 'Key' => 'my-object', 'Body' => fopen('/path/to/file', 'r'), 'ACL' => 'public-read', - )); -} catch (S3Exception $e) { - echo "There was an error uploading the file.\n"; -} -``` - -You can also use the even easier `upload()` method, which will automatically do -either single or multipart uploads, as needed. - -```php -try { - $resource = fopen('/path/to/file', 'r'); - $s3->upload('my-bucket', 'my-object', $resource, 'public-read'); -} catch (S3Exception $e) { + ]); +} catch (Aws\Exception\S3Exception $e) { echo "There was an error uploading the file.\n"; } ``` -### More Examples - -* [Get an object from Amazon S3 and save it to a file][example-s3-getobject] -* [Upload a large file to Amazon S3 in parts][example-s3-multipart] -* [Put an item in your Amazon DynamoDB table][example-dynamodb-putitem] -* [Send a message to your Amazon SQS queue][example-sqs-sendmessage] -* Please browse the [User Guide][docs-guide] and [API docs][docs-api] or check - out our [AWS SDK Development Blog][sdk-blog] for even more examples and - tutorials. - ### Related Projects * [AWS Service Provider for Laravel][mod-laravel] * [AWS SDK ZF2 Module][mod-zf2] * [AWS Service Provider for Silex][mod-silex] -* [Guzzle v3][guzzle-docs] – PHP HTTP client and framework +* [Guzzle Version 6][guzzle-docs] – PHP HTTP client and framework * Other [AWS SDKs & Tools][aws-tools] (e.g., js, cli, ruby, python, java, etc.) [sdk-website]: http://aws.amazon.com/sdkforphp @@ -140,45 +117,39 @@ try { [sdk-sample]: http://aws.amazon.com/developers/getting-started/php [install-packagist]: https://packagist.org/packages/aws/aws-sdk-php -[latest-release]: https://github.com/aws/aws-sdk-php/releases/latest +[latest-release]: https://github.com/aws/aws-sdk-php/releases -[docs-api]: http://docs.aws.amazon.com/aws-sdk-php/v2/api/index.html -[docs-guide]: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/index.html +[docs-api]: http://docs.aws.amazon.com/aws-sdk-php/v3/api/index.html +[docs-guide]: http://docs.aws.amazon.com/aws-sdk-php/v3/guide/index.html +[docs-api-v2]: http://docs.aws.amazon.com/aws-sdk-php/v2/api/index.html +[docs-guide-v2]: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/index.html [docs-contribution]: https://github.com/aws/aws-sdk-php/blob/master/CONTRIBUTING.md -[docs-performance]: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/performance.html -[docs-migration]: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/migration-guide.html -[docs-signup]: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/awssignup.html -[docs-requirements]: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/requirements.html -[docs-installation]: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/installation.html -[docs-quickstart]: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/quick-start.html -[docs-iterators]: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/quick-start.html#iterators -[docs-waiters]: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/feature-waiters.html -[docs-models]: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/feature-models.html -[docs-exceptions]: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/quick-start.html#error-handling -[docs-wire-logging]: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/faq.html#how-can-i-see-what-data-is-sent-over-the-wire -[docs-services]: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/index.html#supported-services -[docs-ddbsh]: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/feature-dynamodb-session-handler.html +[docs-migration]: http://docs.aws.amazon.com/aws-sdk-php/v3/guide/guide/migration.html +[docs-signup]: http://aws.amazon.com/developers/access-keys/ +[docs-requirements]: http://docs.aws.amazon.com/aws-sdk-php/v3/guide/getting-started/requirements.html +[docs-installation]: http://docs.aws.amazon.com/aws-sdk-php/v3/guide/getting-started/installation.html +[docs-quickstart]: http://docs.aws.amazon.com/aws-sdk-php/v3/guide/quick-start.html +[docs-paginators]: http://docs.aws.amazon.com/aws-sdk-php/v3/guide/guide/paginators.html +[docs-waiters]: http://docs.aws.amazon.com/aws-sdk-php/v3/guide/guide/waiters.html +[docs-results]: http://docs.aws.amazon.com/aws-sdk-php/v3/guide/getting-started/basic-usage.html#result-objects +[docs-exceptions]: http://docs.aws.amazon.com/aws-sdk-php/v3/guide/quick-start.html#error-handling +[docs-wire-logging]: http://docs.aws.amazon.com/aws-sdk-php/v3/guide/faq.html#how-can-i-see-what-data-is-sent-over-the-wire +[docs-ddbsh]: http://docs.aws.amazon.com/aws-sdk-php/v3/guide/service/dynamodb-session-handler.html [docs-rande]: http://docs.aws.amazon.com/general/latest/gr/rande.html -[docs-streamwrapper]: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-s3.html#amazon-s3-stream-wrapper -[docs-s3-sync]: http://blogs.aws.amazon.com/php/post/Tx2W9JAA7RXVOXA/Syncing-Data-with-Amazon-S3 -[docs-s3-multipart]: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-s3.html#uploading-large-files-using-multipart-uploads +[docs-streamwrapper]: http://docs.aws.amazon.com/aws-sdk-php/v3/guide/service/s3-stream-wrapper.html +[docs-s3-transfer]: http://docs.aws.amazon.com/aws-sdk-php/v3/guide/service/s3-transfer.html +[docs-s3-multipart]: http://docs.aws.amazon.com/aws-sdk-php/v3/guide/service/s3-multipart-upload.html [aws]: http://aws.amazon.com [aws-iam-credentials]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UsingIAM.html#UsingIAMrolesWithAmazonEC2Instances [aws-tools]: http://aws.amazon.com/tools -[guzzle]: https://github.com/guzzle/guzzle3 -[guzzle-docs]: https://guzzle3.readthedocs.org +[guzzle-docs]: http://guzzlephp.org [composer]: http://getcomposer.org [packagist]: http://packagist.org -[psr-0]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md +[psr-7]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-7-http-message.md +[psr-4]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader.md [psr-1]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md [psr-2]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md -[symfony2-events]: http://symfony.com/doc/2.3/components/event_dispatcher/introduction.html - -[example-sqs-sendmessage]: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-sqs.html#sending-messages -[example-s3-getobject]: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-s3.html#saving-objects-to-a-file -[example-s3-multipart]: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-s3.html#uploading-large-files-using-multipart-uploads -[example-dynamodb-putitem]: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-dynamodb.html#adding-items [mod-laravel]: https://github.com/aws/aws-sdk-php-laravel [mod-zf2]: https://github.com/aws/aws-sdk-php-zf2 diff --git a/lib/aws-sdk/Symfony/Component/EventDispatcher/ContainerAwareEventDispatcher.php b/lib/aws-sdk/Symfony/Component/EventDispatcher/ContainerAwareEventDispatcher.php deleted file mode 100644 index 76f0e38..0000000 --- a/lib/aws-sdk/Symfony/Component/EventDispatcher/ContainerAwareEventDispatcher.php +++ /dev/null @@ -1,202 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\EventDispatcher; - -use Symfony\Component\DependencyInjection\ContainerInterface; - -/** - * Lazily loads listeners and subscribers from the dependency injection - * container. - * - * @author Fabien Potencier - * @author Bernhard Schussek - * @author Jordan Alliot - */ -class ContainerAwareEventDispatcher extends EventDispatcher -{ - /** - * The container from where services are loaded. - * - * @var ContainerInterface - */ - private $container; - - /** - * The service IDs of the event listeners and subscribers. - * - * @var array - */ - private $listenerIds = array(); - - /** - * The services registered as listeners. - * - * @var array - */ - private $listeners = array(); - - /** - * Constructor. - * - * @param ContainerInterface $container A ContainerInterface instance - */ - public function __construct(ContainerInterface $container) - { - $this->container = $container; - } - - /** - * Adds a service as event listener. - * - * @param string $eventName Event for which the listener is added - * @param array $callback The service ID of the listener service & the method - * name that has to be called - * @param int $priority The higher this value, the earlier an event listener - * will be triggered in the chain. - * Defaults to 0. - * - * @throws \InvalidArgumentException - */ - public function addListenerService($eventName, $callback, $priority = 0) - { - if (!is_array($callback) || 2 !== count($callback)) { - throw new \InvalidArgumentException('Expected an array("service", "method") argument'); - } - - $this->listenerIds[$eventName][] = array($callback[0], $callback[1], $priority); - } - - public function removeListener($eventName, $listener) - { - $this->lazyLoad($eventName); - - if (isset($this->listenerIds[$eventName])) { - foreach ($this->listenerIds[$eventName] as $i => $args) { - list($serviceId, $method, $priority) = $args; - $key = $serviceId.'.'.$method; - if (isset($this->listeners[$eventName][$key]) && $listener === array($this->listeners[$eventName][$key], $method)) { - unset($this->listeners[$eventName][$key]); - if (empty($this->listeners[$eventName])) { - unset($this->listeners[$eventName]); - } - unset($this->listenerIds[$eventName][$i]); - if (empty($this->listenerIds[$eventName])) { - unset($this->listenerIds[$eventName]); - } - } - } - } - - parent::removeListener($eventName, $listener); - } - - /** - * @see EventDispatcherInterface::hasListeners() - */ - public function hasListeners($eventName = null) - { - if (null === $eventName) { - return (bool) count($this->listenerIds) || (bool) count($this->listeners); - } - - if (isset($this->listenerIds[$eventName])) { - return true; - } - - return parent::hasListeners($eventName); - } - - /** - * @see EventDispatcherInterface::getListeners() - */ - public function getListeners($eventName = null) - { - if (null === $eventName) { - foreach ($this->listenerIds as $serviceEventName => $args) { - $this->lazyLoad($serviceEventName); - } - } else { - $this->lazyLoad($eventName); - } - - return parent::getListeners($eventName); - } - - /** - * Adds a service as event subscriber. - * - * @param string $serviceId The service ID of the subscriber service - * @param string $class The service's class name (which must implement EventSubscriberInterface) - */ - public function addSubscriberService($serviceId, $class) - { - foreach ($class::getSubscribedEvents() as $eventName => $params) { - if (is_string($params)) { - $this->listenerIds[$eventName][] = array($serviceId, $params, 0); - } elseif (is_string($params[0])) { - $this->listenerIds[$eventName][] = array($serviceId, $params[0], isset($params[1]) ? $params[1] : 0); - } else { - foreach ($params as $listener) { - $this->listenerIds[$eventName][] = array($serviceId, $listener[0], isset($listener[1]) ? $listener[1] : 0); - } - } - } - } - - /** - * {@inheritdoc} - * - * Lazily loads listeners for this event from the dependency injection - * container. - * - * @throws \InvalidArgumentException if the service is not defined - */ - public function dispatch($eventName, Event $event = null) - { - $this->lazyLoad($eventName); - - return parent::dispatch($eventName, $event); - } - - public function getContainer() - { - return $this->container; - } - - /** - * Lazily loads listeners for this event from the dependency injection - * container. - * - * @param string $eventName The name of the event to dispatch. The name of - * the event is the name of the method that is - * invoked on listeners. - */ - protected function lazyLoad($eventName) - { - if (isset($this->listenerIds[$eventName])) { - foreach ($this->listenerIds[$eventName] as $args) { - list($serviceId, $method, $priority) = $args; - $listener = $this->container->get($serviceId); - - $key = $serviceId.'.'.$method; - if (!isset($this->listeners[$eventName][$key])) { - $this->addListener($eventName, array($listener, $method), $priority); - } elseif ($listener !== $this->listeners[$eventName][$key]) { - parent::removeListener($eventName, array($this->listeners[$eventName][$key], $method)); - $this->addListener($eventName, array($listener, $method), $priority); - } - - $this->listeners[$eventName][$key] = $listener; - } - } - } -} diff --git a/lib/aws-sdk/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php b/lib/aws-sdk/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php deleted file mode 100644 index 7653ccf..0000000 --- a/lib/aws-sdk/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php +++ /dev/null @@ -1,335 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\EventDispatcher\Debug; - -use Symfony\Component\EventDispatcher\EventDispatcherInterface; -use Symfony\Component\EventDispatcher\EventSubscriberInterface; -use Symfony\Component\EventDispatcher\Event; -use Symfony\Component\Stopwatch\Stopwatch; -use Psr\Log\LoggerInterface; - -/** - * Collects some data about event listeners. - * - * This event dispatcher delegates the dispatching to another one. - * - * @author Fabien Potencier - */ -class TraceableEventDispatcher implements TraceableEventDispatcherInterface -{ - protected $logger; - protected $stopwatch; - - private $called; - private $dispatcher; - private $wrappedListeners; - - /** - * Constructor. - * - * @param EventDispatcherInterface $dispatcher An EventDispatcherInterface instance - * @param Stopwatch $stopwatch A Stopwatch instance - * @param LoggerInterface $logger A LoggerInterface instance - */ - public function __construct(EventDispatcherInterface $dispatcher, Stopwatch $stopwatch, LoggerInterface $logger = null) - { - $this->dispatcher = $dispatcher; - $this->stopwatch = $stopwatch; - $this->logger = $logger; - $this->called = array(); - $this->wrappedListeners = array(); - } - - /** - * {@inheritdoc} - */ - public function addListener($eventName, $listener, $priority = 0) - { - $this->dispatcher->addListener($eventName, $listener, $priority); - } - - /** - * {@inheritdoc} - */ - public function addSubscriber(EventSubscriberInterface $subscriber) - { - $this->dispatcher->addSubscriber($subscriber); - } - - /** - * {@inheritdoc} - */ - public function removeListener($eventName, $listener) - { - if (isset($this->wrappedListeners[$eventName])) { - foreach ($this->wrappedListeners[$eventName] as $index => $wrappedListener) { - if ($wrappedListener->getWrappedListener() === $listener) { - $listener = $wrappedListener; - unset($this->wrappedListeners[$eventName][$index]); - break; - } - } - } - - return $this->dispatcher->removeListener($eventName, $listener); - } - - /** - * {@inheritdoc} - */ - public function removeSubscriber(EventSubscriberInterface $subscriber) - { - return $this->dispatcher->removeSubscriber($subscriber); - } - - /** - * {@inheritdoc} - */ - public function getListeners($eventName = null) - { - return $this->dispatcher->getListeners($eventName); - } - - /** - * {@inheritdoc} - */ - public function hasListeners($eventName = null) - { - return $this->dispatcher->hasListeners($eventName); - } - - /** - * {@inheritdoc} - */ - public function dispatch($eventName, Event $event = null) - { - if (null === $event) { - $event = new Event(); - } - - $this->preProcess($eventName); - $this->preDispatch($eventName, $event); - - $e = $this->stopwatch->start($eventName, 'section'); - - $this->dispatcher->dispatch($eventName, $event); - - if ($e->isStarted()) { - $e->stop(); - } - - $this->postDispatch($eventName, $event); - $this->postProcess($eventName); - - return $event; - } - - /** - * {@inheritdoc} - */ - public function getCalledListeners() - { - $called = array(); - foreach ($this->called as $eventName => $listeners) { - foreach ($listeners as $listener) { - $info = $this->getListenerInfo($listener->getWrappedListener(), $eventName); - $called[$eventName.'.'.$info['pretty']] = $info; - } - } - - return $called; - } - - /** - * {@inheritdoc} - */ - public function getNotCalledListeners() - { - try { - $allListeners = $this->getListeners(); - } catch (\Exception $e) { - if (null !== $this->logger) { - $this->logger->info('An exception was thrown while getting the uncalled listeners.', array('exception' => $e)); - } - - // unable to retrieve the uncalled listeners - return array(); - } - - $notCalled = array(); - foreach ($allListeners as $eventName => $listeners) { - foreach ($listeners as $listener) { - $called = false; - if (isset($this->called[$eventName])) { - foreach ($this->called[$eventName] as $l) { - if ($l->getWrappedListener() === $listener) { - $called = true; - - break; - } - } - } - - if (!$called) { - $info = $this->getListenerInfo($listener, $eventName); - $notCalled[$eventName.'.'.$info['pretty']] = $info; - } - } - } - - return $notCalled; - } - - /** - * Proxies all method calls to the original event dispatcher. - * - * @param string $method The method name - * @param array $arguments The method arguments - * - * @return mixed - */ - public function __call($method, $arguments) - { - return call_user_func_array(array($this->dispatcher, $method), $arguments); - } - - /** - * Called before dispatching the event. - * - * @param string $eventName The event name - * @param Event $event The event - */ - protected function preDispatch($eventName, Event $event) - { - } - - /** - * Called after dispatching the event. - * - * @param string $eventName The event name - * @param Event $event The event - */ - protected function postDispatch($eventName, Event $event) - { - } - - private function preProcess($eventName) - { - foreach ($this->dispatcher->getListeners($eventName) as $listener) { - $this->dispatcher->removeListener($eventName, $listener); - $info = $this->getListenerInfo($listener, $eventName); - $name = isset($info['class']) ? $info['class'] : $info['type']; - $wrappedListener = new WrappedListener($listener, $name, $this->stopwatch, $this); - $this->wrappedListeners[$eventName][] = $wrappedListener; - $this->dispatcher->addListener($eventName, $wrappedListener); - } - } - - private function postProcess($eventName) - { - unset($this->wrappedListeners[$eventName]); - $skipped = false; - foreach ($this->dispatcher->getListeners($eventName) as $listener) { - if (!$listener instanceof WrappedListener) { // #12845: a new listener was added during dispatch. - continue; - } - // Unwrap listener - $this->dispatcher->removeListener($eventName, $listener); - $this->dispatcher->addListener($eventName, $listener->getWrappedListener()); - - $info = $this->getListenerInfo($listener->getWrappedListener(), $eventName); - if ($listener->wasCalled()) { - if (null !== $this->logger) { - $this->logger->debug(sprintf('Notified event "%s" to listener "%s".', $eventName, $info['pretty'])); - } - - if (!isset($this->called[$eventName])) { - $this->called[$eventName] = new \SplObjectStorage(); - } - - $this->called[$eventName]->attach($listener); - } - - if (null !== $this->logger && $skipped) { - $this->logger->debug(sprintf('Listener "%s" was not called for event "%s".', $info['pretty'], $eventName)); - } - - if ($listener->stoppedPropagation()) { - if (null !== $this->logger) { - $this->logger->debug(sprintf('Listener "%s" stopped propagation of the event "%s".', $info['pretty'], $eventName)); - } - - $skipped = true; - } - } - } - - /** - * Returns information about the listener. - * - * @param object $listener The listener - * @param string $eventName The event name - * - * @return array Information about the listener - */ - private function getListenerInfo($listener, $eventName) - { - $info = array( - 'event' => $eventName, - ); - if ($listener instanceof \Closure) { - $info += array( - 'type' => 'Closure', - 'pretty' => 'closure', - ); - } elseif (is_string($listener)) { - try { - $r = new \ReflectionFunction($listener); - $file = $r->getFileName(); - $line = $r->getStartLine(); - } catch (\ReflectionException $e) { - $file = null; - $line = null; - } - $info += array( - 'type' => 'Function', - 'function' => $listener, - 'file' => $file, - 'line' => $line, - 'pretty' => $listener, - ); - } elseif (is_array($listener) || (is_object($listener) && is_callable($listener))) { - if (!is_array($listener)) { - $listener = array($listener, '__invoke'); - } - $class = is_object($listener[0]) ? get_class($listener[0]) : $listener[0]; - try { - $r = new \ReflectionMethod($class, $listener[1]); - $file = $r->getFileName(); - $line = $r->getStartLine(); - } catch (\ReflectionException $e) { - $file = null; - $line = null; - } - $info += array( - 'type' => 'Method', - 'class' => $class, - 'method' => $listener[1], - 'file' => $file, - 'line' => $line, - 'pretty' => $class.'::'.$listener[1], - ); - } - - return $info; - } -} diff --git a/lib/aws-sdk/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcherInterface.php b/lib/aws-sdk/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcherInterface.php deleted file mode 100644 index 5483e81..0000000 --- a/lib/aws-sdk/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcherInterface.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\EventDispatcher\Debug; - -use Symfony\Component\EventDispatcher\EventDispatcherInterface; - -/** - * @author Fabien Potencier - */ -interface TraceableEventDispatcherInterface extends EventDispatcherInterface -{ - /** - * Gets the called listeners. - * - * @return array An array of called listeners - */ - public function getCalledListeners(); - - /** - * Gets the not called listeners. - * - * @return array An array of not called listeners - */ - public function getNotCalledListeners(); -} diff --git a/lib/aws-sdk/Symfony/Component/EventDispatcher/Debug/WrappedListener.php b/lib/aws-sdk/Symfony/Component/EventDispatcher/Debug/WrappedListener.php deleted file mode 100644 index e16627d..0000000 --- a/lib/aws-sdk/Symfony/Component/EventDispatcher/Debug/WrappedListener.php +++ /dev/null @@ -1,71 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\EventDispatcher\Debug; - -use Symfony\Component\Stopwatch\Stopwatch; -use Symfony\Component\EventDispatcher\Event; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; - -/** - * @author Fabien Potencier - */ -class WrappedListener -{ - private $listener; - private $name; - private $called; - private $stoppedPropagation; - private $stopwatch; - private $dispatcher; - - public function __construct($listener, $name, Stopwatch $stopwatch, EventDispatcherInterface $dispatcher = null) - { - $this->listener = $listener; - $this->name = $name; - $this->stopwatch = $stopwatch; - $this->dispatcher = $dispatcher; - $this->called = false; - $this->stoppedPropagation = false; - } - - public function getWrappedListener() - { - return $this->listener; - } - - public function wasCalled() - { - return $this->called; - } - - public function stoppedPropagation() - { - return $this->stoppedPropagation; - } - - public function __invoke(Event $event, $eventName, EventDispatcherInterface $dispatcher) - { - $this->called = true; - - $e = $this->stopwatch->start($this->name, 'event_listener'); - - call_user_func($this->listener, $event, $eventName, $this->dispatcher ?: $dispatcher); - - if ($e->isStarted()) { - $e->stop(); - } - - if ($event->isPropagationStopped()) { - $this->stoppedPropagation = true; - } - } -} diff --git a/lib/aws-sdk/Symfony/Component/EventDispatcher/DependencyInjection/RegisterListenersPass.php b/lib/aws-sdk/Symfony/Component/EventDispatcher/DependencyInjection/RegisterListenersPass.php deleted file mode 100644 index 7e74a37..0000000 --- a/lib/aws-sdk/Symfony/Component/EventDispatcher/DependencyInjection/RegisterListenersPass.php +++ /dev/null @@ -1,110 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\EventDispatcher\DependencyInjection; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; - -/** - * Compiler pass to register tagged services for an event dispatcher. - */ -class RegisterListenersPass implements CompilerPassInterface -{ - /** - * @var string - */ - protected $dispatcherService; - - /** - * @var string - */ - protected $listenerTag; - - /** - * @var string - */ - protected $subscriberTag; - - /** - * Constructor. - * - * @param string $dispatcherService Service name of the event dispatcher in processed container - * @param string $listenerTag Tag name used for listener - * @param string $subscriberTag Tag name used for subscribers - */ - public function __construct($dispatcherService = 'event_dispatcher', $listenerTag = 'kernel.event_listener', $subscriberTag = 'kernel.event_subscriber') - { - $this->dispatcherService = $dispatcherService; - $this->listenerTag = $listenerTag; - $this->subscriberTag = $subscriberTag; - } - - public function process(ContainerBuilder $container) - { - if (!$container->hasDefinition($this->dispatcherService) && !$container->hasAlias($this->dispatcherService)) { - return; - } - - $definition = $container->findDefinition($this->dispatcherService); - - foreach ($container->findTaggedServiceIds($this->listenerTag) as $id => $events) { - $def = $container->getDefinition($id); - if (!$def->isPublic()) { - throw new \InvalidArgumentException(sprintf('The service "%s" must be public as event listeners are lazy-loaded.', $id)); - } - - if ($def->isAbstract()) { - throw new \InvalidArgumentException(sprintf('The service "%s" must not be abstract as event listeners are lazy-loaded.', $id)); - } - - foreach ($events as $event) { - $priority = isset($event['priority']) ? $event['priority'] : 0; - - if (!isset($event['event'])) { - throw new \InvalidArgumentException(sprintf('Service "%s" must define the "event" attribute on "%s" tags.', $id, $this->listenerTag)); - } - - if (!isset($event['method'])) { - $event['method'] = 'on'.preg_replace_callback(array( - '/(?<=\b)[a-z]/i', - '/[^a-z0-9]/i', - ), function ($matches) { return strtoupper($matches[0]); }, $event['event']); - $event['method'] = preg_replace('/[^a-z0-9]/i', '', $event['method']); - } - - $definition->addMethodCall('addListenerService', array($event['event'], array($id, $event['method']), $priority)); - } - } - - foreach ($container->findTaggedServiceIds($this->subscriberTag) as $id => $attributes) { - $def = $container->getDefinition($id); - if (!$def->isPublic()) { - throw new \InvalidArgumentException(sprintf('The service "%s" must be public as event subscribers are lazy-loaded.', $id)); - } - - if ($def->isAbstract()) { - throw new \InvalidArgumentException(sprintf('The service "%s" must not be abstract as event subscribers are lazy-loaded.', $id)); - } - - // We must assume that the class value has been correctly filled, even if the service is created by a factory - $class = $container->getParameterBag()->resolveValue($def->getClass()); - - $refClass = new \ReflectionClass($class); - $interface = 'Symfony\Component\EventDispatcher\EventSubscriberInterface'; - if (!$refClass->implementsInterface($interface)) { - throw new \InvalidArgumentException(sprintf('Service "%s" must implement interface "%s".', $id, $interface)); - } - - $definition->addMethodCall('addSubscriberService', array($id, $class)); - } - } -} diff --git a/lib/aws-sdk/Symfony/Component/EventDispatcher/Event.php b/lib/aws-sdk/Symfony/Component/EventDispatcher/Event.php deleted file mode 100644 index e411ca8..0000000 --- a/lib/aws-sdk/Symfony/Component/EventDispatcher/Event.php +++ /dev/null @@ -1,134 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\EventDispatcher; - -/** - * Event is the base class for classes containing event data. - * - * This class contains no event data. It is used by events that do not pass - * state information to an event handler when an event is raised. - * - * You can call the method stopPropagation() to abort the execution of - * further listeners in your event listener. - * - * @author Guilherme Blanco - * @author Jonathan Wage - * @author Roman Borschel - * @author Bernhard Schussek - * - * @api - */ -class Event -{ - /** - * @var bool Whether no further event listeners should be triggered - */ - private $propagationStopped = false; - - /** - * @var EventDispatcher Dispatcher that dispatched this event - */ - private $dispatcher; - - /** - * @var string This event's name - */ - private $name; - - /** - * Returns whether further event listeners should be triggered. - * - * @see Event::stopPropagation() - * - * @return bool Whether propagation was already stopped for this event. - * - * @api - */ - public function isPropagationStopped() - { - return $this->propagationStopped; - } - - /** - * Stops the propagation of the event to further event listeners. - * - * If multiple event listeners are connected to the same event, no - * further event listener will be triggered once any trigger calls - * stopPropagation(). - * - * @api - */ - public function stopPropagation() - { - $this->propagationStopped = true; - } - - /** - * Stores the EventDispatcher that dispatches this Event. - * - * @param EventDispatcherInterface $dispatcher - * - * @deprecated since version 2.4, to be removed in 3.0. The event dispatcher is passed to the listener call. - * - * @api - */ - public function setDispatcher(EventDispatcherInterface $dispatcher) - { - $this->dispatcher = $dispatcher; - } - - /** - * Returns the EventDispatcher that dispatches this Event. - * - * @return EventDispatcherInterface - * - * @deprecated since version 2.4, to be removed in 3.0. The event dispatcher is passed to the listener call. - * - * @api - */ - public function getDispatcher() - { - trigger_error('The '.__METHOD__.' method is deprecated since version 2.4 and will be removed in 3.0. The event dispatcher instance can be received in the listener call instead.', E_USER_DEPRECATED); - - return $this->dispatcher; - } - - /** - * Gets the event's name. - * - * @return string - * - * @deprecated since version 2.4, to be removed in 3.0. The event name is passed to the listener call. - * - * @api - */ - public function getName() - { - trigger_error('The '.__METHOD__.' method is deprecated since version 2.4 and will be removed in 3.0. The event name can be received in the listener call instead.', E_USER_DEPRECATED); - - return $this->name; - } - - /** - * Sets the event's name property. - * - * @param string $name The event name. - * - * @deprecated since version 2.4, to be removed in 3.0. The event name is passed to the listener call. - * - * @api - */ - public function setName($name) - { - $this->name = $name; - } -} diff --git a/lib/aws-sdk/Symfony/Component/EventDispatcher/EventDispatcher.php b/lib/aws-sdk/Symfony/Component/EventDispatcher/EventDispatcher.php deleted file mode 100644 index 46c1110..0000000 --- a/lib/aws-sdk/Symfony/Component/EventDispatcher/EventDispatcher.php +++ /dev/null @@ -1,185 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\EventDispatcher; - -/** - * The EventDispatcherInterface is the central point of Symfony's event listener system. - * - * Listeners are registered on the manager and events are dispatched through the - * manager. - * - * @author Guilherme Blanco - * @author Jonathan Wage - * @author Roman Borschel - * @author Bernhard Schussek - * @author Fabien Potencier - * @author Jordi Boggiano - * @author Jordan Alliot - * - * @api - */ -class EventDispatcher implements EventDispatcherInterface -{ - private $listeners = array(); - private $sorted = array(); - - /** - * @see EventDispatcherInterface::dispatch() - * - * @api - */ - public function dispatch($eventName, Event $event = null) - { - if (null === $event) { - $event = new Event(); - } - - $event->setDispatcher($this); - $event->setName($eventName); - - if (!isset($this->listeners[$eventName])) { - return $event; - } - - $this->doDispatch($this->getListeners($eventName), $eventName, $event); - - return $event; - } - - /** - * @see EventDispatcherInterface::getListeners() - */ - public function getListeners($eventName = null) - { - if (null !== $eventName) { - if (!isset($this->sorted[$eventName])) { - $this->sortListeners($eventName); - } - - return $this->sorted[$eventName]; - } - - foreach ($this->listeners as $eventName => $eventListeners) { - if (!isset($this->sorted[$eventName])) { - $this->sortListeners($eventName); - } - } - - return array_filter($this->sorted); - } - - /** - * @see EventDispatcherInterface::hasListeners() - */ - public function hasListeners($eventName = null) - { - return (bool) count($this->getListeners($eventName)); - } - - /** - * @see EventDispatcherInterface::addListener() - * - * @api - */ - public function addListener($eventName, $listener, $priority = 0) - { - $this->listeners[$eventName][$priority][] = $listener; - unset($this->sorted[$eventName]); - } - - /** - * @see EventDispatcherInterface::removeListener() - */ - public function removeListener($eventName, $listener) - { - if (!isset($this->listeners[$eventName])) { - return; - } - - foreach ($this->listeners[$eventName] as $priority => $listeners) { - if (false !== ($key = array_search($listener, $listeners, true))) { - unset($this->listeners[$eventName][$priority][$key], $this->sorted[$eventName]); - } - } - } - - /** - * @see EventDispatcherInterface::addSubscriber() - * - * @api - */ - public function addSubscriber(EventSubscriberInterface $subscriber) - { - foreach ($subscriber->getSubscribedEvents() as $eventName => $params) { - if (is_string($params)) { - $this->addListener($eventName, array($subscriber, $params)); - } elseif (is_string($params[0])) { - $this->addListener($eventName, array($subscriber, $params[0]), isset($params[1]) ? $params[1] : 0); - } else { - foreach ($params as $listener) { - $this->addListener($eventName, array($subscriber, $listener[0]), isset($listener[1]) ? $listener[1] : 0); - } - } - } - } - - /** - * @see EventDispatcherInterface::removeSubscriber() - */ - public function removeSubscriber(EventSubscriberInterface $subscriber) - { - foreach ($subscriber->getSubscribedEvents() as $eventName => $params) { - if (is_array($params) && is_array($params[0])) { - foreach ($params as $listener) { - $this->removeListener($eventName, array($subscriber, $listener[0])); - } - } else { - $this->removeListener($eventName, array($subscriber, is_string($params) ? $params : $params[0])); - } - } - } - - /** - * Triggers the listeners of an event. - * - * This method can be overridden to add functionality that is executed - * for each listener. - * - * @param callable[] $listeners The event listeners. - * @param string $eventName The name of the event to dispatch. - * @param Event $event The event object to pass to the event handlers/listeners. - */ - protected function doDispatch($listeners, $eventName, Event $event) - { - foreach ($listeners as $listener) { - call_user_func($listener, $event, $eventName, $this); - if ($event->isPropagationStopped()) { - break; - } - } - } - - /** - * Sorts the internal list of listeners for the given event by priority. - * - * @param string $eventName The name of the event. - */ - private function sortListeners($eventName) - { - $this->sorted[$eventName] = array(); - - if (isset($this->listeners[$eventName])) { - krsort($this->listeners[$eventName]); - $this->sorted[$eventName] = call_user_func_array('array_merge', $this->listeners[$eventName]); - } - } -} diff --git a/lib/aws-sdk/Symfony/Component/EventDispatcher/EventDispatcherInterface.php b/lib/aws-sdk/Symfony/Component/EventDispatcher/EventDispatcherInterface.php deleted file mode 100644 index 9d9fc4d..0000000 --- a/lib/aws-sdk/Symfony/Component/EventDispatcher/EventDispatcherInterface.php +++ /dev/null @@ -1,96 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\EventDispatcher; - -/** - * The EventDispatcherInterface is the central point of Symfony's event listener system. - * Listeners are registered on the manager and events are dispatched through the - * manager. - * - * @author Bernhard Schussek - * - * @api - */ -interface EventDispatcherInterface -{ - /** - * Dispatches an event to all registered listeners. - * - * @param string $eventName The name of the event to dispatch. The name of - * the event is the name of the method that is - * invoked on listeners. - * @param Event $event The event to pass to the event handlers/listeners. - * If not supplied, an empty Event instance is created. - * - * @return Event - * - * @api - */ - public function dispatch($eventName, Event $event = null); - - /** - * Adds an event listener that listens on the specified events. - * - * @param string $eventName The event to listen on - * @param callable $listener The listener - * @param int $priority The higher this value, the earlier an event - * listener will be triggered in the chain (defaults to 0) - * - * @api - */ - public function addListener($eventName, $listener, $priority = 0); - - /** - * Adds an event subscriber. - * - * The subscriber is asked for all the events he is - * interested in and added as a listener for these events. - * - * @param EventSubscriberInterface $subscriber The subscriber. - * - * @api - */ - public function addSubscriber(EventSubscriberInterface $subscriber); - - /** - * Removes an event listener from the specified events. - * - * @param string $eventName The event to remove a listener from - * @param callable $listener The listener to remove - */ - public function removeListener($eventName, $listener); - - /** - * Removes an event subscriber. - * - * @param EventSubscriberInterface $subscriber The subscriber - */ - public function removeSubscriber(EventSubscriberInterface $subscriber); - - /** - * Gets the listeners of a specific event or all listeners sorted by descending priority. - * - * @param string $eventName The name of the event - * - * @return array The event listeners for the specified event, or all event listeners by event name - */ - public function getListeners($eventName = null); - - /** - * Checks whether an event has any registered listeners. - * - * @param string $eventName The name of the event - * - * @return bool true if the specified event has any listeners, false otherwise - */ - public function hasListeners($eventName = null); -} diff --git a/lib/aws-sdk/Symfony/Component/EventDispatcher/EventSubscriberInterface.php b/lib/aws-sdk/Symfony/Component/EventDispatcher/EventSubscriberInterface.php deleted file mode 100644 index ff7e305..0000000 --- a/lib/aws-sdk/Symfony/Component/EventDispatcher/EventSubscriberInterface.php +++ /dev/null @@ -1,50 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\EventDispatcher; - -/** - * An EventSubscriber knows himself what events he is interested in. - * If an EventSubscriber is added to an EventDispatcherInterface, the manager invokes - * {@link getSubscribedEvents} and registers the subscriber as a listener for all - * returned events. - * - * @author Guilherme Blanco - * @author Jonathan Wage - * @author Roman Borschel - * @author Bernhard Schussek - * - * @api - */ -interface EventSubscriberInterface -{ - /** - * Returns an array of event names this subscriber wants to listen to. - * - * The array keys are event names and the value can be: - * - * * The method name to call (priority defaults to 0) - * * An array composed of the method name to call and the priority - * * An array of arrays composed of the method names to call and respective - * priorities, or 0 if unset - * - * For instance: - * - * * array('eventName' => 'methodName') - * * array('eventName' => array('methodName', $priority)) - * * array('eventName' => array(array('methodName1', $priority), array('methodName2')) - * - * @return array The event names to listen to - * - * @api - */ - public static function getSubscribedEvents(); -} diff --git a/lib/aws-sdk/Symfony/Component/EventDispatcher/GenericEvent.php b/lib/aws-sdk/Symfony/Component/EventDispatcher/GenericEvent.php deleted file mode 100644 index 6458180..0000000 --- a/lib/aws-sdk/Symfony/Component/EventDispatcher/GenericEvent.php +++ /dev/null @@ -1,186 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\EventDispatcher; - -/** - * Event encapsulation class. - * - * Encapsulates events thus decoupling the observer from the subject they encapsulate. - * - * @author Drak - */ -class GenericEvent extends Event implements \ArrayAccess, \IteratorAggregate -{ - /** - * Event subject. - * - * @var mixed usually object or callable - */ - protected $subject; - - /** - * Array of arguments. - * - * @var array - */ - protected $arguments; - - /** - * Encapsulate an event with $subject and $args. - * - * @param mixed $subject The subject of the event, usually an object. - * @param array $arguments Arguments to store in the event. - */ - public function __construct($subject = null, array $arguments = array()) - { - $this->subject = $subject; - $this->arguments = $arguments; - } - - /** - * Getter for subject property. - * - * @return mixed $subject The observer subject. - */ - public function getSubject() - { - return $this->subject; - } - - /** - * Get argument by key. - * - * @param string $key Key. - * - * @throws \InvalidArgumentException If key is not found. - * - * @return mixed Contents of array key. - */ - public function getArgument($key) - { - if ($this->hasArgument($key)) { - return $this->arguments[$key]; - } - - throw new \InvalidArgumentException(sprintf('Argument "%s" not found.', $key)); - } - - /** - * Add argument to event. - * - * @param string $key Argument name. - * @param mixed $value Value. - * - * @return GenericEvent - */ - public function setArgument($key, $value) - { - $this->arguments[$key] = $value; - - return $this; - } - - /** - * Getter for all arguments. - * - * @return array - */ - public function getArguments() - { - return $this->arguments; - } - - /** - * Set args property. - * - * @param array $args Arguments. - * - * @return GenericEvent - */ - public function setArguments(array $args = array()) - { - $this->arguments = $args; - - return $this; - } - - /** - * Has argument. - * - * @param string $key Key of arguments array. - * - * @return bool - */ - public function hasArgument($key) - { - return array_key_exists($key, $this->arguments); - } - - /** - * ArrayAccess for argument getter. - * - * @param string $key Array key. - * - * @throws \InvalidArgumentException If key does not exist in $this->args. - * - * @return mixed - */ - public function offsetGet($key) - { - return $this->getArgument($key); - } - - /** - * ArrayAccess for argument setter. - * - * @param string $key Array key to set. - * @param mixed $value Value. - */ - public function offsetSet($key, $value) - { - $this->setArgument($key, $value); - } - - /** - * ArrayAccess for unset argument. - * - * @param string $key Array key. - */ - public function offsetUnset($key) - { - if ($this->hasArgument($key)) { - unset($this->arguments[$key]); - } - } - - /** - * ArrayAccess has argument. - * - * @param string $key Array key. - * - * @return bool - */ - public function offsetExists($key) - { - return $this->hasArgument($key); - } - - /** - * IteratorAggregate for iterating over the object like an array. - * - * @return \ArrayIterator - */ - public function getIterator() - { - return new \ArrayIterator($this->arguments); - } -} diff --git a/lib/aws-sdk/Symfony/Component/EventDispatcher/ImmutableEventDispatcher.php b/lib/aws-sdk/Symfony/Component/EventDispatcher/ImmutableEventDispatcher.php deleted file mode 100644 index 7ef9ece..0000000 --- a/lib/aws-sdk/Symfony/Component/EventDispatcher/ImmutableEventDispatcher.php +++ /dev/null @@ -1,93 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\EventDispatcher; - -/** - * A read-only proxy for an event dispatcher. - * - * @author Bernhard Schussek - */ -class ImmutableEventDispatcher implements EventDispatcherInterface -{ - /** - * The proxied dispatcher. - * - * @var EventDispatcherInterface - */ - private $dispatcher; - - /** - * Creates an unmodifiable proxy for an event dispatcher. - * - * @param EventDispatcherInterface $dispatcher The proxied event dispatcher. - */ - public function __construct(EventDispatcherInterface $dispatcher) - { - $this->dispatcher = $dispatcher; - } - - /** - * {@inheritdoc} - */ - public function dispatch($eventName, Event $event = null) - { - return $this->dispatcher->dispatch($eventName, $event); - } - - /** - * {@inheritdoc} - */ - public function addListener($eventName, $listener, $priority = 0) - { - throw new \BadMethodCallException('Unmodifiable event dispatchers must not be modified.'); - } - - /** - * {@inheritdoc} - */ - public function addSubscriber(EventSubscriberInterface $subscriber) - { - throw new \BadMethodCallException('Unmodifiable event dispatchers must not be modified.'); - } - - /** - * {@inheritdoc} - */ - public function removeListener($eventName, $listener) - { - throw new \BadMethodCallException('Unmodifiable event dispatchers must not be modified.'); - } - - /** - * {@inheritdoc} - */ - public function removeSubscriber(EventSubscriberInterface $subscriber) - { - throw new \BadMethodCallException('Unmodifiable event dispatchers must not be modified.'); - } - - /** - * {@inheritdoc} - */ - public function getListeners($eventName = null) - { - return $this->dispatcher->getListeners($eventName); - } - - /** - * {@inheritdoc} - */ - public function hasListeners($eventName = null) - { - return $this->dispatcher->hasListeners($eventName); - } -} diff --git a/lib/aws-sdk/Symfony/Component/EventDispatcher/LICENSE b/lib/aws-sdk/Symfony/Component/EventDispatcher/LICENSE deleted file mode 100644 index 43028bc..0000000 --- a/lib/aws-sdk/Symfony/Component/EventDispatcher/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2004-2015 Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/AbstractEventDispatcherTest.php b/lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/AbstractEventDispatcherTest.php deleted file mode 100644 index 5ff5be8..0000000 --- a/lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/AbstractEventDispatcherTest.php +++ /dev/null @@ -1,385 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\EventDispatcher\Tests; - -use Symfony\Component\EventDispatcher\Event; -use Symfony\Component\EventDispatcher\EventSubscriberInterface; - -abstract class AbstractEventDispatcherTest extends \PHPUnit_Framework_TestCase -{ - /* Some pseudo events */ - const preFoo = 'pre.foo'; - const postFoo = 'post.foo'; - const preBar = 'pre.bar'; - const postBar = 'post.bar'; - - /** - * @var EventDispatcher - */ - private $dispatcher; - - private $listener; - - protected function setUp() - { - $this->dispatcher = $this->createEventDispatcher(); - $this->listener = new TestEventListener(); - } - - protected function tearDown() - { - $this->dispatcher = null; - $this->listener = null; - } - - abstract protected function createEventDispatcher(); - - public function testInitialState() - { - $this->assertEquals(array(), $this->dispatcher->getListeners()); - $this->assertFalse($this->dispatcher->hasListeners(self::preFoo)); - $this->assertFalse($this->dispatcher->hasListeners(self::postFoo)); - } - - public function testAddListener() - { - $this->dispatcher->addListener('pre.foo', array($this->listener, 'preFoo')); - $this->dispatcher->addListener('post.foo', array($this->listener, 'postFoo')); - $this->assertTrue($this->dispatcher->hasListeners(self::preFoo)); - $this->assertTrue($this->dispatcher->hasListeners(self::postFoo)); - $this->assertCount(1, $this->dispatcher->getListeners(self::preFoo)); - $this->assertCount(1, $this->dispatcher->getListeners(self::postFoo)); - $this->assertCount(2, $this->dispatcher->getListeners()); - } - - public function testGetListenersSortsByPriority() - { - $listener1 = new TestEventListener(); - $listener2 = new TestEventListener(); - $listener3 = new TestEventListener(); - $listener1->name = '1'; - $listener2->name = '2'; - $listener3->name = '3'; - - $this->dispatcher->addListener('pre.foo', array($listener1, 'preFoo'), -10); - $this->dispatcher->addListener('pre.foo', array($listener2, 'preFoo'), 10); - $this->dispatcher->addListener('pre.foo', array($listener3, 'preFoo')); - - $expected = array( - array($listener2, 'preFoo'), - array($listener3, 'preFoo'), - array($listener1, 'preFoo'), - ); - - $this->assertSame($expected, $this->dispatcher->getListeners('pre.foo')); - } - - public function testGetAllListenersSortsByPriority() - { - $listener1 = new TestEventListener(); - $listener2 = new TestEventListener(); - $listener3 = new TestEventListener(); - $listener4 = new TestEventListener(); - $listener5 = new TestEventListener(); - $listener6 = new TestEventListener(); - - $this->dispatcher->addListener('pre.foo', $listener1, -10); - $this->dispatcher->addListener('pre.foo', $listener2); - $this->dispatcher->addListener('pre.foo', $listener3, 10); - $this->dispatcher->addListener('post.foo', $listener4, -10); - $this->dispatcher->addListener('post.foo', $listener5); - $this->dispatcher->addListener('post.foo', $listener6, 10); - - $expected = array( - 'pre.foo' => array($listener3, $listener2, $listener1), - 'post.foo' => array($listener6, $listener5, $listener4), - ); - - $this->assertSame($expected, $this->dispatcher->getListeners()); - } - - public function testDispatch() - { - $this->dispatcher->addListener('pre.foo', array($this->listener, 'preFoo')); - $this->dispatcher->addListener('post.foo', array($this->listener, 'postFoo')); - $this->dispatcher->dispatch(self::preFoo); - $this->assertTrue($this->listener->preFooInvoked); - $this->assertFalse($this->listener->postFooInvoked); - $this->assertInstanceOf('Symfony\Component\EventDispatcher\Event', $this->dispatcher->dispatch('noevent')); - $this->assertInstanceOf('Symfony\Component\EventDispatcher\Event', $this->dispatcher->dispatch(self::preFoo)); - $event = new Event(); - $return = $this->dispatcher->dispatch(self::preFoo, $event); - $this->assertSame($event, $return); - } - - /** - * @group legacy - */ - public function testLegacyDispatch() - { - $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED); - - $event = new Event(); - $return = $this->dispatcher->dispatch(self::preFoo, $event); - $this->assertEquals('pre.foo', $event->getName()); - } - - public function testDispatchForClosure() - { - $invoked = 0; - $listener = function () use (&$invoked) { - $invoked++; - }; - $this->dispatcher->addListener('pre.foo', $listener); - $this->dispatcher->addListener('post.foo', $listener); - $this->dispatcher->dispatch(self::preFoo); - $this->assertEquals(1, $invoked); - } - - public function testStopEventPropagation() - { - $otherListener = new TestEventListener(); - - // postFoo() stops the propagation, so only one listener should - // be executed - // Manually set priority to enforce $this->listener to be called first - $this->dispatcher->addListener('post.foo', array($this->listener, 'postFoo'), 10); - $this->dispatcher->addListener('post.foo', array($otherListener, 'preFoo')); - $this->dispatcher->dispatch(self::postFoo); - $this->assertTrue($this->listener->postFooInvoked); - $this->assertFalse($otherListener->postFooInvoked); - } - - public function testDispatchByPriority() - { - $invoked = array(); - $listener1 = function () use (&$invoked) { - $invoked[] = '1'; - }; - $listener2 = function () use (&$invoked) { - $invoked[] = '2'; - }; - $listener3 = function () use (&$invoked) { - $invoked[] = '3'; - }; - $this->dispatcher->addListener('pre.foo', $listener1, -10); - $this->dispatcher->addListener('pre.foo', $listener2); - $this->dispatcher->addListener('pre.foo', $listener3, 10); - $this->dispatcher->dispatch(self::preFoo); - $this->assertEquals(array('3', '2', '1'), $invoked); - } - - public function testRemoveListener() - { - $this->dispatcher->addListener('pre.bar', $this->listener); - $this->assertTrue($this->dispatcher->hasListeners(self::preBar)); - $this->dispatcher->removeListener('pre.bar', $this->listener); - $this->assertFalse($this->dispatcher->hasListeners(self::preBar)); - $this->dispatcher->removeListener('notExists', $this->listener); - } - - public function testAddSubscriber() - { - $eventSubscriber = new TestEventSubscriber(); - $this->dispatcher->addSubscriber($eventSubscriber); - $this->assertTrue($this->dispatcher->hasListeners(self::preFoo)); - $this->assertTrue($this->dispatcher->hasListeners(self::postFoo)); - } - - public function testAddSubscriberWithPriorities() - { - $eventSubscriber = new TestEventSubscriber(); - $this->dispatcher->addSubscriber($eventSubscriber); - - $eventSubscriber = new TestEventSubscriberWithPriorities(); - $this->dispatcher->addSubscriber($eventSubscriber); - - $listeners = $this->dispatcher->getListeners('pre.foo'); - $this->assertTrue($this->dispatcher->hasListeners(self::preFoo)); - $this->assertCount(2, $listeners); - $this->assertInstanceOf('Symfony\Component\EventDispatcher\Tests\TestEventSubscriberWithPriorities', $listeners[0][0]); - } - - public function testAddSubscriberWithMultipleListeners() - { - $eventSubscriber = new TestEventSubscriberWithMultipleListeners(); - $this->dispatcher->addSubscriber($eventSubscriber); - - $listeners = $this->dispatcher->getListeners('pre.foo'); - $this->assertTrue($this->dispatcher->hasListeners(self::preFoo)); - $this->assertCount(2, $listeners); - $this->assertEquals('preFoo2', $listeners[0][1]); - } - - public function testRemoveSubscriber() - { - $eventSubscriber = new TestEventSubscriber(); - $this->dispatcher->addSubscriber($eventSubscriber); - $this->assertTrue($this->dispatcher->hasListeners(self::preFoo)); - $this->assertTrue($this->dispatcher->hasListeners(self::postFoo)); - $this->dispatcher->removeSubscriber($eventSubscriber); - $this->assertFalse($this->dispatcher->hasListeners(self::preFoo)); - $this->assertFalse($this->dispatcher->hasListeners(self::postFoo)); - } - - public function testRemoveSubscriberWithPriorities() - { - $eventSubscriber = new TestEventSubscriberWithPriorities(); - $this->dispatcher->addSubscriber($eventSubscriber); - $this->assertTrue($this->dispatcher->hasListeners(self::preFoo)); - $this->dispatcher->removeSubscriber($eventSubscriber); - $this->assertFalse($this->dispatcher->hasListeners(self::preFoo)); - } - - public function testRemoveSubscriberWithMultipleListeners() - { - $eventSubscriber = new TestEventSubscriberWithMultipleListeners(); - $this->dispatcher->addSubscriber($eventSubscriber); - $this->assertTrue($this->dispatcher->hasListeners(self::preFoo)); - $this->assertCount(2, $this->dispatcher->getListeners(self::preFoo)); - $this->dispatcher->removeSubscriber($eventSubscriber); - $this->assertFalse($this->dispatcher->hasListeners(self::preFoo)); - } - - /** - * @group legacy - */ - public function testLegacyEventReceivesTheDispatcherInstance() - { - $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED); - - $dispatcher = null; - $this->dispatcher->addListener('test', function ($event) use (&$dispatcher) { - $dispatcher = $event->getDispatcher(); - }); - $this->dispatcher->dispatch('test'); - $this->assertSame($this->dispatcher, $dispatcher); - } - - public function testEventReceivesTheDispatcherInstanceAsArgument() - { - $listener = new TestWithDispatcher(); - $this->dispatcher->addListener('test', array($listener, 'foo')); - $this->assertNull($listener->name); - $this->assertNull($listener->dispatcher); - $this->dispatcher->dispatch('test'); - $this->assertEquals('test', $listener->name); - $this->assertSame($this->dispatcher, $listener->dispatcher); - } - - /** - * @see https://bugs.php.net/bug.php?id=62976 - * - * This bug affects: - * - The PHP 5.3 branch for versions < 5.3.18 - * - The PHP 5.4 branch for versions < 5.4.8 - * - The PHP 5.5 branch is not affected - */ - public function testWorkaroundForPhpBug62976() - { - $dispatcher = $this->createEventDispatcher(); - $dispatcher->addListener('bug.62976', new CallableClass()); - $dispatcher->removeListener('bug.62976', function () {}); - $this->assertTrue($dispatcher->hasListeners('bug.62976')); - } - - public function testHasListenersWhenAddedCallbackListenerIsRemoved() - { - $listener = function () {}; - $this->dispatcher->addListener('foo', $listener); - $this->dispatcher->removeListener('foo', $listener); - $this->assertFalse($this->dispatcher->hasListeners()); - } - - public function testGetListenersWhenAddedCallbackListenerIsRemoved() - { - $listener = function () {}; - $this->dispatcher->addListener('foo', $listener); - $this->dispatcher->removeListener('foo', $listener); - $this->assertSame(array(), $this->dispatcher->getListeners()); - } - - public function testHasListenersWithoutEventsReturnsFalseAfterHasListenersWithEventHasBeenCalled() - { - $this->assertFalse($this->dispatcher->hasListeners('foo')); - $this->assertFalse($this->dispatcher->hasListeners()); - } -} - -class CallableClass -{ - public function __invoke() - { - } -} - -class TestEventListener -{ - public $preFooInvoked = false; - public $postFooInvoked = false; - - /* Listener methods */ - - public function preFoo(Event $e) - { - $this->preFooInvoked = true; - } - - public function postFoo(Event $e) - { - $this->postFooInvoked = true; - - $e->stopPropagation(); - } -} - -class TestWithDispatcher -{ - public $name; - public $dispatcher; - - public function foo(Event $e, $name, $dispatcher) - { - $this->name = $name; - $this->dispatcher = $dispatcher; - } -} - -class TestEventSubscriber implements EventSubscriberInterface -{ - public static function getSubscribedEvents() - { - return array('pre.foo' => 'preFoo', 'post.foo' => 'postFoo'); - } -} - -class TestEventSubscriberWithPriorities implements EventSubscriberInterface -{ - public static function getSubscribedEvents() - { - return array( - 'pre.foo' => array('preFoo', 10), - 'post.foo' => array('postFoo'), - ); - } -} - -class TestEventSubscriberWithMultipleListeners implements EventSubscriberInterface -{ - public static function getSubscribedEvents() - { - return array('pre.foo' => array( - array('preFoo1'), - array('preFoo2', 10), - )); - } -} diff --git a/lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/ContainerAwareEventDispatcherTest.php b/lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/ContainerAwareEventDispatcherTest.php deleted file mode 100644 index 6f2fbcb..0000000 --- a/lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/ContainerAwareEventDispatcherTest.php +++ /dev/null @@ -1,249 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\EventDispatcher\Tests; - -use Symfony\Component\DependencyInjection\Container; -use Symfony\Component\DependencyInjection\Scope; -use Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher; -use Symfony\Component\EventDispatcher\Event; -use Symfony\Component\EventDispatcher\EventSubscriberInterface; - -class ContainerAwareEventDispatcherTest extends AbstractEventDispatcherTest -{ - protected function createEventDispatcher() - { - $container = new Container(); - - return new ContainerAwareEventDispatcher($container); - } - - public function testAddAListenerService() - { - $event = new Event(); - - $service = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service'); - - $service - ->expects($this->once()) - ->method('onEvent') - ->with($event) - ; - - $container = new Container(); - $container->set('service.listener', $service); - - $dispatcher = new ContainerAwareEventDispatcher($container); - $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent')); - - $dispatcher->dispatch('onEvent', $event); - } - - public function testAddASubscriberService() - { - $event = new Event(); - - $service = $this->getMock('Symfony\Component\EventDispatcher\Tests\SubscriberService'); - - $service - ->expects($this->once()) - ->method('onEvent') - ->with($event) - ; - - $container = new Container(); - $container->set('service.subscriber', $service); - - $dispatcher = new ContainerAwareEventDispatcher($container); - $dispatcher->addSubscriberService('service.subscriber', 'Symfony\Component\EventDispatcher\Tests\SubscriberService'); - - $dispatcher->dispatch('onEvent', $event); - } - - public function testPreventDuplicateListenerService() - { - $event = new Event(); - - $service = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service'); - - $service - ->expects($this->once()) - ->method('onEvent') - ->with($event) - ; - - $container = new Container(); - $container->set('service.listener', $service); - - $dispatcher = new ContainerAwareEventDispatcher($container); - $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent'), 5); - $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent'), 10); - - $dispatcher->dispatch('onEvent', $event); - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testTriggerAListenerServiceOutOfScope() - { - $service = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service'); - - $scope = new Scope('scope'); - $container = new Container(); - $container->addScope($scope); - $container->enterScope('scope'); - - $container->set('service.listener', $service, 'scope'); - - $dispatcher = new ContainerAwareEventDispatcher($container); - $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent')); - - $container->leaveScope('scope'); - $dispatcher->dispatch('onEvent'); - } - - public function testReEnteringAScope() - { - $event = new Event(); - - $service1 = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service'); - - $service1 - ->expects($this->exactly(2)) - ->method('onEvent') - ->with($event) - ; - - $scope = new Scope('scope'); - $container = new Container(); - $container->addScope($scope); - $container->enterScope('scope'); - - $container->set('service.listener', $service1, 'scope'); - - $dispatcher = new ContainerAwareEventDispatcher($container); - $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent')); - $dispatcher->dispatch('onEvent', $event); - - $service2 = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service'); - - $service2 - ->expects($this->once()) - ->method('onEvent') - ->with($event) - ; - - $container->enterScope('scope'); - $container->set('service.listener', $service2, 'scope'); - - $dispatcher->dispatch('onEvent', $event); - - $container->leaveScope('scope'); - - $dispatcher->dispatch('onEvent'); - } - - public function testHasListenersOnLazyLoad() - { - $event = new Event(); - - $service = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service'); - - $container = new Container(); - $container->set('service.listener', $service); - - $dispatcher = new ContainerAwareEventDispatcher($container); - $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent')); - - $event->setDispatcher($dispatcher); - $event->setName('onEvent'); - - $service - ->expects($this->once()) - ->method('onEvent') - ->with($event) - ; - - $this->assertTrue($dispatcher->hasListeners()); - - if ($dispatcher->hasListeners('onEvent')) { - $dispatcher->dispatch('onEvent'); - } - } - - public function testGetListenersOnLazyLoad() - { - $service = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service'); - - $container = new Container(); - $container->set('service.listener', $service); - - $dispatcher = new ContainerAwareEventDispatcher($container); - $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent')); - - $listeners = $dispatcher->getListeners(); - - $this->assertTrue(isset($listeners['onEvent'])); - - $this->assertCount(1, $dispatcher->getListeners('onEvent')); - } - - public function testRemoveAfterDispatch() - { - $service = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service'); - - $container = new Container(); - $container->set('service.listener', $service); - - $dispatcher = new ContainerAwareEventDispatcher($container); - $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent')); - - $dispatcher->dispatch('onEvent', new Event()); - $dispatcher->removeListener('onEvent', array($container->get('service.listener'), 'onEvent')); - $this->assertFalse($dispatcher->hasListeners('onEvent')); - } - - public function testRemoveBeforeDispatch() - { - $service = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service'); - - $container = new Container(); - $container->set('service.listener', $service); - - $dispatcher = new ContainerAwareEventDispatcher($container); - $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent')); - - $dispatcher->removeListener('onEvent', array($container->get('service.listener'), 'onEvent')); - $this->assertFalse($dispatcher->hasListeners('onEvent')); - } -} - -class Service -{ - public function onEvent(Event $e) - { - } -} - -class SubscriberService implements EventSubscriberInterface -{ - public static function getSubscribedEvents() - { - return array( - 'onEvent' => array('onEvent'), - ); - } - - public function onEvent(Event $e) - { - } -} diff --git a/lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php b/lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php deleted file mode 100644 index 24e6002..0000000 --- a/lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php +++ /dev/null @@ -1,199 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\EventDispatcher\Tests\Debug; - -use Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; -use Symfony\Component\EventDispatcher\EventSubscriberInterface; -use Symfony\Component\EventDispatcher\EventDispatcher; -use Symfony\Component\EventDispatcher\Event; -use Symfony\Component\Stopwatch\Stopwatch; - -class TraceableEventDispatcherTest extends \PHPUnit_Framework_TestCase -{ - public function testAddRemoveListener() - { - $dispatcher = new EventDispatcher(); - $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch()); - - $tdispatcher->addListener('foo', $listener = function () {; }); - $listeners = $dispatcher->getListeners('foo'); - $this->assertCount(1, $listeners); - $this->assertSame($listener, $listeners[0]); - - $tdispatcher->removeListener('foo', $listener); - $this->assertCount(0, $dispatcher->getListeners('foo')); - } - - public function testGetListeners() - { - $dispatcher = new EventDispatcher(); - $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch()); - - $tdispatcher->addListener('foo', $listener = function () {; }); - $this->assertSame($dispatcher->getListeners('foo'), $tdispatcher->getListeners('foo')); - } - - public function testHasListeners() - { - $dispatcher = new EventDispatcher(); - $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch()); - - $this->assertFalse($dispatcher->hasListeners('foo')); - $this->assertFalse($tdispatcher->hasListeners('foo')); - - $tdispatcher->addListener('foo', $listener = function () {; }); - $this->assertTrue($dispatcher->hasListeners('foo')); - $this->assertTrue($tdispatcher->hasListeners('foo')); - } - - public function testAddRemoveSubscriber() - { - $dispatcher = new EventDispatcher(); - $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch()); - - $subscriber = new EventSubscriber(); - - $tdispatcher->addSubscriber($subscriber); - $listeners = $dispatcher->getListeners('foo'); - $this->assertCount(1, $listeners); - $this->assertSame(array($subscriber, 'call'), $listeners[0]); - - $tdispatcher->removeSubscriber($subscriber); - $this->assertCount(0, $dispatcher->getListeners('foo')); - } - - public function testGetCalledListeners() - { - $dispatcher = new EventDispatcher(); - $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch()); - $tdispatcher->addListener('foo', $listener = function () {; }); - - $this->assertEquals(array(), $tdispatcher->getCalledListeners()); - $this->assertEquals(array('foo.closure' => array('event' => 'foo', 'type' => 'Closure', 'pretty' => 'closure')), $tdispatcher->getNotCalledListeners()); - - $tdispatcher->dispatch('foo'); - - $this->assertEquals(array('foo.closure' => array('event' => 'foo', 'type' => 'Closure', 'pretty' => 'closure')), $tdispatcher->getCalledListeners()); - $this->assertEquals(array(), $tdispatcher->getNotCalledListeners()); - } - - public function testGetCalledListenersNested() - { - $tdispatcher = null; - $dispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch()); - $dispatcher->addListener('foo', function (Event $event, $eventName, $dispatcher) use (&$tdispatcher) { - $tdispatcher = $dispatcher; - $dispatcher->dispatch('bar'); - }); - $dispatcher->addListener('bar', function (Event $event) {}); - $dispatcher->dispatch('foo'); - $this->assertSame($dispatcher, $tdispatcher); - $this->assertCount(2, $dispatcher->getCalledListeners()); - } - - public function testLogger() - { - $logger = $this->getMock('Psr\Log\LoggerInterface'); - - $dispatcher = new EventDispatcher(); - $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch(), $logger); - $tdispatcher->addListener('foo', $listener1 = function () {; }); - $tdispatcher->addListener('foo', $listener2 = function () {; }); - - $logger->expects($this->at(0))->method('debug')->with("Notified event \"foo\" to listener \"closure\"."); - $logger->expects($this->at(1))->method('debug')->with("Notified event \"foo\" to listener \"closure\"."); - - $tdispatcher->dispatch('foo'); - } - - public function testLoggerWithStoppedEvent() - { - $logger = $this->getMock('Psr\Log\LoggerInterface'); - - $dispatcher = new EventDispatcher(); - $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch(), $logger); - $tdispatcher->addListener('foo', $listener1 = function (Event $event) { $event->stopPropagation(); }); - $tdispatcher->addListener('foo', $listener2 = function () {; }); - - $logger->expects($this->at(0))->method('debug')->with("Notified event \"foo\" to listener \"closure\"."); - $logger->expects($this->at(1))->method('debug')->with("Listener \"closure\" stopped propagation of the event \"foo\"."); - $logger->expects($this->at(2))->method('debug')->with("Listener \"closure\" was not called for event \"foo\"."); - - $tdispatcher->dispatch('foo'); - } - - public function testDispatchCallListeners() - { - $called = array(); - - $dispatcher = new EventDispatcher(); - $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch()); - $tdispatcher->addListener('foo', $listener1 = function () use (&$called) { $called[] = 'foo1'; }); - $tdispatcher->addListener('foo', $listener2 = function () use (&$called) { $called[] = 'foo2'; }); - - $tdispatcher->dispatch('foo'); - - $this->assertEquals(array('foo1', 'foo2'), $called); - } - - public function testDispatchNested() - { - $dispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch()); - $loop = 1; - $dispatcher->addListener('foo', $listener1 = function () use ($dispatcher, &$loop) { - ++$loop; - if (2 == $loop) { - $dispatcher->dispatch('foo'); - } - }); - - $dispatcher->dispatch('foo'); - } - - public function testDispatchReusedEventNested() - { - $nestedCall = false; - $dispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch()); - $dispatcher->addListener('foo', function (Event $e) use ($dispatcher) { - $dispatcher->dispatch('bar', $e); - }); - $dispatcher->addListener('bar', function (Event $e) use (&$nestedCall) { - $nestedCall = true; - }); - - $this->assertFalse($nestedCall); - $dispatcher->dispatch('foo'); - $this->assertTrue($nestedCall); - } - - public function testListenerCanRemoveItselfWhenExecuted() - { - $eventDispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch()); - $listener1 = function ($event, $eventName, EventDispatcherInterface $dispatcher) use (&$listener1) { - $dispatcher->removeListener('foo', $listener1); - }; - $eventDispatcher->addListener('foo', $listener1); - $eventDispatcher->addListener('foo', function () {}); - $eventDispatcher->dispatch('foo'); - - $this->assertCount(1, $eventDispatcher->getListeners('foo'), 'expected listener1 to be removed'); - } -} - -class EventSubscriber implements EventSubscriberInterface -{ - public static function getSubscribedEvents() - { - return array('foo' => 'call'); - } -} diff --git a/lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php b/lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php deleted file mode 100644 index 0fdd637..0000000 --- a/lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php +++ /dev/null @@ -1,200 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\EventDispatcher\Tests\DependencyInjection; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\EventDispatcher\DependencyInjection\RegisterListenersPass; - -class RegisterListenersPassTest extends \PHPUnit_Framework_TestCase -{ - /** - * Tests that event subscribers not implementing EventSubscriberInterface - * trigger an exception. - * - * @expectedException \InvalidArgumentException - */ - public function testEventSubscriberWithoutInterface() - { - // one service, not implementing any interface - $services = array( - 'my_event_subscriber' => array(0 => array()), - ); - - $definition = $this->getMock('Symfony\Component\DependencyInjection\Definition'); - $definition->expects($this->atLeastOnce()) - ->method('isPublic') - ->will($this->returnValue(true)); - $definition->expects($this->atLeastOnce()) - ->method('getClass') - ->will($this->returnValue('stdClass')); - - $builder = $this->getMock( - 'Symfony\Component\DependencyInjection\ContainerBuilder', - array('hasDefinition', 'findTaggedServiceIds', 'getDefinition') - ); - $builder->expects($this->any()) - ->method('hasDefinition') - ->will($this->returnValue(true)); - - // We don't test kernel.event_listener here - $builder->expects($this->atLeastOnce()) - ->method('findTaggedServiceIds') - ->will($this->onConsecutiveCalls(array(), $services)); - - $builder->expects($this->atLeastOnce()) - ->method('getDefinition') - ->will($this->returnValue($definition)); - - $registerListenersPass = new RegisterListenersPass(); - $registerListenersPass->process($builder); - } - - public function testValidEventSubscriber() - { - $services = array( - 'my_event_subscriber' => array(0 => array()), - ); - - $definition = $this->getMock('Symfony\Component\DependencyInjection\Definition'); - $definition->expects($this->atLeastOnce()) - ->method('isPublic') - ->will($this->returnValue(true)); - $definition->expects($this->atLeastOnce()) - ->method('getClass') - ->will($this->returnValue('Symfony\Component\EventDispatcher\Tests\DependencyInjection\SubscriberService')); - - $builder = $this->getMock( - 'Symfony\Component\DependencyInjection\ContainerBuilder', - array('hasDefinition', 'findTaggedServiceIds', 'getDefinition', 'findDefinition') - ); - $builder->expects($this->any()) - ->method('hasDefinition') - ->will($this->returnValue(true)); - - // We don't test kernel.event_listener here - $builder->expects($this->atLeastOnce()) - ->method('findTaggedServiceIds') - ->will($this->onConsecutiveCalls(array(), $services)); - - $builder->expects($this->atLeastOnce()) - ->method('getDefinition') - ->will($this->returnValue($definition)); - - $builder->expects($this->atLeastOnce()) - ->method('findDefinition') - ->will($this->returnValue($definition)); - - $registerListenersPass = new RegisterListenersPass(); - $registerListenersPass->process($builder); - } - - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage The service "foo" must be public as event listeners are lazy-loaded. - */ - public function testPrivateEventListener() - { - $container = new ContainerBuilder(); - $container->register('foo', 'stdClass')->setPublic(false)->addTag('kernel.event_listener', array()); - $container->register('event_dispatcher', 'stdClass'); - - $registerListenersPass = new RegisterListenersPass(); - $registerListenersPass->process($container); - } - - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage The service "foo" must be public as event subscribers are lazy-loaded. - */ - public function testPrivateEventSubscriber() - { - $container = new ContainerBuilder(); - $container->register('foo', 'stdClass')->setPublic(false)->addTag('kernel.event_subscriber', array()); - $container->register('event_dispatcher', 'stdClass'); - - $registerListenersPass = new RegisterListenersPass(); - $registerListenersPass->process($container); - } - - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage The service "foo" must not be abstract as event listeners are lazy-loaded. - */ - public function testAbstractEventListener() - { - $container = new ContainerBuilder(); - $container->register('foo', 'stdClass')->setAbstract(true)->addTag('kernel.event_listener', array()); - $container->register('event_dispatcher', 'stdClass'); - - $registerListenersPass = new RegisterListenersPass(); - $registerListenersPass->process($container); - } - - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage The service "foo" must not be abstract as event subscribers are lazy-loaded. - */ - public function testAbstractEventSubscriber() - { - $container = new ContainerBuilder(); - $container->register('foo', 'stdClass')->setAbstract(true)->addTag('kernel.event_subscriber', array()); - $container->register('event_dispatcher', 'stdClass'); - - $registerListenersPass = new RegisterListenersPass(); - $registerListenersPass->process($container); - } - - public function testEventSubscriberResolvableClassName() - { - $container = new ContainerBuilder(); - - $container->setParameter('subscriber.class', 'Symfony\Component\EventDispatcher\Tests\DependencyInjection\SubscriberService'); - $container->register('foo', '%subscriber.class%')->addTag('kernel.event_subscriber', array()); - $container->register('event_dispatcher', 'stdClass'); - - $registerListenersPass = new RegisterListenersPass(); - $registerListenersPass->process($container); - - $definition = $container->getDefinition('event_dispatcher'); - $expected_calls = array( - array( - 'addSubscriberService', - array( - 'foo', - 'Symfony\Component\EventDispatcher\Tests\DependencyInjection\SubscriberService', - ), - ), - ); - $this->assertSame($expected_calls, $definition->getMethodCalls()); - } - - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage You have requested a non-existent parameter "subscriber.class" - */ - public function testEventSubscriberUnresolvableClassName() - { - $container = new ContainerBuilder(); - $container->register('foo', '%subscriber.class%')->addTag('kernel.event_subscriber', array()); - $container->register('event_dispatcher', 'stdClass'); - - $registerListenersPass = new RegisterListenersPass(); - $registerListenersPass->process($container); - } -} - -class SubscriberService implements \Symfony\Component\EventDispatcher\EventSubscriberInterface -{ - public static function getSubscribedEvents() - { - } -} diff --git a/lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php b/lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php deleted file mode 100644 index 5faa5c8..0000000 --- a/lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php +++ /dev/null @@ -1,22 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\EventDispatcher\Tests; - -use Symfony\Component\EventDispatcher\EventDispatcher; - -class EventDispatcherTest extends AbstractEventDispatcherTest -{ - protected function createEventDispatcher() - { - return new EventDispatcher(); - } -} diff --git a/lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/EventTest.php b/lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/EventTest.php deleted file mode 100644 index 4bd2697..0000000 --- a/lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/EventTest.php +++ /dev/null @@ -1,100 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\EventDispatcher\Tests; - -use Symfony\Component\EventDispatcher\Event; -use Symfony\Component\EventDispatcher\EventDispatcher; - -/** - * Test class for Event. - */ -class EventTest extends \PHPUnit_Framework_TestCase -{ - /** - * @var \Symfony\Component\EventDispatcher\Event - */ - protected $event; - - /** - * @var \Symfony\Component\EventDispatcher\EventDispatcher - */ - protected $dispatcher; - - /** - * Sets up the fixture, for example, opens a network connection. - * This method is called before a test is executed. - */ - protected function setUp() - { - $this->event = new Event(); - $this->dispatcher = new EventDispatcher(); - } - - /** - * Tears down the fixture, for example, closes a network connection. - * This method is called after a test is executed. - */ - protected function tearDown() - { - $this->event = null; - $this->dispatcher = null; - } - - public function testIsPropagationStopped() - { - $this->assertFalse($this->event->isPropagationStopped()); - } - - public function testStopPropagationAndIsPropagationStopped() - { - $this->event->stopPropagation(); - $this->assertTrue($this->event->isPropagationStopped()); - } - - /** - * @group legacy - */ - public function testLegacySetDispatcher() - { - $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED); - $this->event->setDispatcher($this->dispatcher); - $this->assertSame($this->dispatcher, $this->event->getDispatcher()); - } - - /** - * @group legacy - */ - public function testLegacyGetDispatcher() - { - $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED); - $this->assertNull($this->event->getDispatcher()); - } - - /** - * @group legacy - */ - public function testLegacyGetName() - { - $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED); - $this->assertNull($this->event->getName()); - } - - /** - * @group legacy - */ - public function testLegacySetName() - { - $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED); - $this->event->setName('foo'); - $this->assertEquals('foo', $this->event->getName()); - } -} diff --git a/lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php b/lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php deleted file mode 100644 index aebd82d..0000000 --- a/lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php +++ /dev/null @@ -1,139 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\EventDispatcher\Tests; - -use Symfony\Component\EventDispatcher\GenericEvent; - -/** - * Test class for Event. - */ -class GenericEventTest extends \PHPUnit_Framework_TestCase -{ - /** - * @var GenericEvent - */ - private $event; - - private $subject; - - /** - * Prepares the environment before running a test. - */ - protected function setUp() - { - parent::setUp(); - - $this->subject = new \stdClass(); - $this->event = new GenericEvent($this->subject, array('name' => 'Event')); - } - - /** - * Cleans up the environment after running a test. - */ - protected function tearDown() - { - $this->subject = null; - $this->event = null; - - parent::tearDown(); - } - - public function testConstruct() - { - $this->assertEquals($this->event, new GenericEvent($this->subject, array('name' => 'Event'))); - } - - /** - * Tests Event->getArgs(). - */ - public function testGetArguments() - { - // test getting all - $this->assertSame(array('name' => 'Event'), $this->event->getArguments()); - } - - public function testSetArguments() - { - $result = $this->event->setArguments(array('foo' => 'bar')); - $this->assertAttributeSame(array('foo' => 'bar'), 'arguments', $this->event); - $this->assertSame($this->event, $result); - } - - public function testSetArgument() - { - $result = $this->event->setArgument('foo2', 'bar2'); - $this->assertAttributeSame(array('name' => 'Event', 'foo2' => 'bar2'), 'arguments', $this->event); - $this->assertEquals($this->event, $result); - } - - public function testGetArgument() - { - // test getting key - $this->assertEquals('Event', $this->event->getArgument('name')); - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testGetArgException() - { - $this->event->getArgument('nameNotExist'); - } - - public function testOffsetGet() - { - // test getting key - $this->assertEquals('Event', $this->event['name']); - - // test getting invalid arg - $this->setExpectedException('InvalidArgumentException'); - $this->assertFalse($this->event['nameNotExist']); - } - - public function testOffsetSet() - { - $this->event['foo2'] = 'bar2'; - $this->assertAttributeSame(array('name' => 'Event', 'foo2' => 'bar2'), 'arguments', $this->event); - } - - public function testOffsetUnset() - { - unset($this->event['name']); - $this->assertAttributeSame(array(), 'arguments', $this->event); - } - - public function testOffsetIsset() - { - $this->assertTrue(isset($this->event['name'])); - $this->assertFalse(isset($this->event['nameNotExist'])); - } - - public function testHasArgument() - { - $this->assertTrue($this->event->hasArgument('name')); - $this->assertFalse($this->event->hasArgument('nameNotExist')); - } - - public function testGetSubject() - { - $this->assertSame($this->subject, $this->event->getSubject()); - } - - public function testHasIterator() - { - $data = array(); - foreach ($this->event as $key => $value) { - $data[$key] = $value; - } - $this->assertEquals(array('name' => 'Event'), $data); - } -} diff --git a/lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/ImmutableEventDispatcherTest.php b/lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/ImmutableEventDispatcherTest.php deleted file mode 100644 index 80a7e43..0000000 --- a/lib/aws-sdk/Symfony/Component/EventDispatcher/Tests/ImmutableEventDispatcherTest.php +++ /dev/null @@ -1,105 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\EventDispatcher\Tests; - -use Symfony\Component\EventDispatcher\Event; -use Symfony\Component\EventDispatcher\ImmutableEventDispatcher; - -/** - * @author Bernhard Schussek - */ -class ImmutableEventDispatcherTest extends \PHPUnit_Framework_TestCase -{ - /** - * @var \PHPUnit_Framework_MockObject_MockObject - */ - private $innerDispatcher; - - /** - * @var ImmutableEventDispatcher - */ - private $dispatcher; - - protected function setUp() - { - $this->innerDispatcher = $this->getMock('Symfony\Component\EventDispatcher\EventDispatcherInterface'); - $this->dispatcher = new ImmutableEventDispatcher($this->innerDispatcher); - } - - public function testDispatchDelegates() - { - $event = new Event(); - - $this->innerDispatcher->expects($this->once()) - ->method('dispatch') - ->with('event', $event) - ->will($this->returnValue('result')); - - $this->assertSame('result', $this->dispatcher->dispatch('event', $event)); - } - - public function testGetListenersDelegates() - { - $this->innerDispatcher->expects($this->once()) - ->method('getListeners') - ->with('event') - ->will($this->returnValue('result')); - - $this->assertSame('result', $this->dispatcher->getListeners('event')); - } - - public function testHasListenersDelegates() - { - $this->innerDispatcher->expects($this->once()) - ->method('hasListeners') - ->with('event') - ->will($this->returnValue('result')); - - $this->assertSame('result', $this->dispatcher->hasListeners('event')); - } - - /** - * @expectedException \BadMethodCallException - */ - public function testAddListenerDisallowed() - { - $this->dispatcher->addListener('event', function () { return 'foo'; }); - } - - /** - * @expectedException \BadMethodCallException - */ - public function testAddSubscriberDisallowed() - { - $subscriber = $this->getMock('Symfony\Component\EventDispatcher\EventSubscriberInterface'); - - $this->dispatcher->addSubscriber($subscriber); - } - - /** - * @expectedException \BadMethodCallException - */ - public function testRemoveListenerDisallowed() - { - $this->dispatcher->removeListener('event', function () { return 'foo'; }); - } - - /** - * @expectedException \BadMethodCallException - */ - public function testRemoveSubscriberDisallowed() - { - $subscriber = $this->getMock('Symfony\Component\EventDispatcher\EventSubscriberInterface'); - - $this->dispatcher->removeSubscriber($subscriber); - } -} diff --git a/lib/aws-sdk/aws-autoloader.php b/lib/aws-sdk/aws-autoloader.php index 60d9ec6..28fe649 100644 --- a/lib/aws-sdk/aws-autoloader.php +++ b/lib/aws-sdk/aws-autoloader.php @@ -1,1347 +1,296 @@ __DIR__ . '/Aws/Api/AbstractModel.php', + 'Aws\Api\ApiProvider' => __DIR__ . '/Aws/Api/ApiProvider.php', + 'Aws\Api\DateTimeResult' => __DIR__ . '/Aws/Api/DateTimeResult.php', + 'Aws\Api\DocModel' => __DIR__ . '/Aws/Api/DocModel.php', + 'Aws\Api\ErrorParser\JsonParserTrait' => __DIR__ . '/Aws/Api/ErrorParser/JsonParserTrait.php', + 'Aws\Api\ErrorParser\JsonRpcErrorParser' => __DIR__ . '/Aws/Api/ErrorParser/JsonRpcErrorParser.php', + 'Aws\Api\ErrorParser\RestJsonErrorParser' => __DIR__ . '/Aws/Api/ErrorParser/RestJsonErrorParser.php', + 'Aws\Api\ErrorParser\XmlErrorParser' => __DIR__ . '/Aws/Api/ErrorParser/XmlErrorParser.php', + 'Aws\Api\ListShape' => __DIR__ . '/Aws/Api/ListShape.php', + 'Aws\Api\MapShape' => __DIR__ . '/Aws/Api/MapShape.php', + 'Aws\Api\Operation' => __DIR__ . '/Aws/Api/Operation.php', + 'Aws\Api\Parser\AbstractParser' => __DIR__ . '/Aws/Api/Parser/AbstractParser.php', + 'Aws\Api\Parser\AbstractRestParser' => __DIR__ . '/Aws/Api/Parser/AbstractRestParser.php', + 'Aws\Api\Parser\Crc32ValidatingParser' => __DIR__ . '/Aws/Api/Parser/Crc32ValidatingParser.php', + 'Aws\Api\Parser\JsonParser' => __DIR__ . '/Aws/Api/Parser/JsonParser.php', + 'Aws\Api\Parser\JsonRpcParser' => __DIR__ . '/Aws/Api/Parser/JsonRpcParser.php', + 'Aws\Api\Parser\QueryParser' => __DIR__ . '/Aws/Api/Parser/QueryParser.php', + 'Aws\Api\Parser\RestJsonParser' => __DIR__ . '/Aws/Api/Parser/RestJsonParser.php', + 'Aws\Api\Parser\RestXmlParser' => __DIR__ . '/Aws/Api/Parser/RestXmlParser.php', + 'Aws\Api\Parser\XmlParser' => __DIR__ . '/Aws/Api/Parser/XmlParser.php', + 'Aws\Api\Serializer\Ec2ParamBuilder' => __DIR__ . '/Aws/Api/Serializer/Ec2ParamBuilder.php', + 'Aws\Api\Serializer\JsonBody' => __DIR__ . '/Aws/Api/Serializer/JsonBody.php', + 'Aws\Api\Serializer\JsonRpcSerializer' => __DIR__ . '/Aws/Api/Serializer/JsonRpcSerializer.php', + 'Aws\Api\Serializer\QueryParamBuilder' => __DIR__ . '/Aws/Api/Serializer/QueryParamBuilder.php', + 'Aws\Api\Serializer\QuerySerializer' => __DIR__ . '/Aws/Api/Serializer/QuerySerializer.php', + 'Aws\Api\Serializer\RestJsonSerializer' => __DIR__ . '/Aws/Api/Serializer/RestJsonSerializer.php', + 'Aws\Api\Serializer\RestSerializer' => __DIR__ . '/Aws/Api/Serializer/RestSerializer.php', + 'Aws\Api\Serializer\RestXmlSerializer' => __DIR__ . '/Aws/Api/Serializer/RestXmlSerializer.php', + 'Aws\Api\Serializer\XmlBody' => __DIR__ . '/Aws/Api/Serializer/XmlBody.php', + 'Aws\Api\Service' => __DIR__ . '/Aws/Api/Service.php', + 'Aws\Api\Shape' => __DIR__ . '/Aws/Api/Shape.php', + 'Aws\Api\ShapeMap' => __DIR__ . '/Aws/Api/ShapeMap.php', + 'Aws\Api\StructureShape' => __DIR__ . '/Aws/Api/StructureShape.php', + 'Aws\Api\TimestampShape' => __DIR__ . '/Aws/Api/TimestampShape.php', + 'Aws\Api\Validator' => __DIR__ . '/Aws/Api/Validator.php', 'Aws\AutoScaling\AutoScalingClient' => __DIR__ . '/Aws/AutoScaling/AutoScalingClient.php', - 'Aws\AutoScaling\Enum\LifecycleState' => __DIR__ . '/Aws/AutoScaling/Enum/LifecycleState.php', - 'Aws\AutoScaling\Enum\ScalingActivityStatusCode' => __DIR__ . '/Aws/AutoScaling/Enum/ScalingActivityStatusCode.php', - 'Aws\AutoScaling\Exception\AlreadyExistsException' => __DIR__ . '/Aws/AutoScaling/Exception/AlreadyExistsException.php', 'Aws\AutoScaling\Exception\AutoScalingException' => __DIR__ . '/Aws/AutoScaling/Exception/AutoScalingException.php', - 'Aws\AutoScaling\Exception\InvalidNextTokenException' => __DIR__ . '/Aws/AutoScaling/Exception/InvalidNextTokenException.php', - 'Aws\AutoScaling\Exception\LimitExceededException' => __DIR__ . '/Aws/AutoScaling/Exception/LimitExceededException.php', - 'Aws\AutoScaling\Exception\ResourceInUseException' => __DIR__ . '/Aws/AutoScaling/Exception/ResourceInUseException.php', - 'Aws\AutoScaling\Exception\ScalingActivityInProgressException' => __DIR__ . '/Aws/AutoScaling/Exception/ScalingActivityInProgressException.php', - 'Aws\AutoScaling\Resources\autoscaling-2011-01-01' => __DIR__ . '/Aws/AutoScaling/Resources/autoscaling-2011-01-01.php', + 'Aws\AwsClient' => __DIR__ . '/Aws/AwsClient.php', + 'Aws\AwsClientInterface' => __DIR__ . '/Aws/AwsClientInterface.php', + 'Aws\CacheInterface' => __DIR__ . '/Aws/CacheInterface.php', + 'Aws\ClientResolver' => __DIR__ . '/Aws/ClientResolver.php', 'Aws\CloudFormation\CloudFormationClient' => __DIR__ . '/Aws/CloudFormation/CloudFormationClient.php', - 'Aws\CloudFormation\Enum\Capability' => __DIR__ . '/Aws/CloudFormation/Enum/Capability.php', - 'Aws\CloudFormation\Enum\OnFailure' => __DIR__ . '/Aws/CloudFormation/Enum/OnFailure.php', - 'Aws\CloudFormation\Enum\ResourceStatus' => __DIR__ . '/Aws/CloudFormation/Enum/ResourceStatus.php', - 'Aws\CloudFormation\Enum\StackStatus' => __DIR__ . '/Aws/CloudFormation/Enum/StackStatus.php', - 'Aws\CloudFormation\Exception\AlreadyExistsException' => __DIR__ . '/Aws/CloudFormation/Exception/AlreadyExistsException.php', 'Aws\CloudFormation\Exception\CloudFormationException' => __DIR__ . '/Aws/CloudFormation/Exception/CloudFormationException.php', - 'Aws\CloudFormation\Exception\InsufficientCapabilitiesException' => __DIR__ . '/Aws/CloudFormation/Exception/InsufficientCapabilitiesException.php', - 'Aws\CloudFormation\Exception\LimitExceededException' => __DIR__ . '/Aws/CloudFormation/Exception/LimitExceededException.php', - 'Aws\CloudFormation\Resources\cloudformation-2010-05-15' => __DIR__ . '/Aws/CloudFormation/Resources/cloudformation-2010-05-15.php', 'Aws\CloudFront\CloudFrontClient' => __DIR__ . '/Aws/CloudFront/CloudFrontClient.php', - 'Aws\CloudFront\CloudFrontSignature' => __DIR__ . '/Aws/CloudFront/CloudFrontSignature.php', - 'Aws\CloudFront\Enum\GeoRestrictionType' => __DIR__ . '/Aws/CloudFront/Enum/GeoRestrictionType.php', - 'Aws\CloudFront\Enum\ItemSelection' => __DIR__ . '/Aws/CloudFront/Enum/ItemSelection.php', - 'Aws\CloudFront\Enum\Method' => __DIR__ . '/Aws/CloudFront/Enum/Method.php', - 'Aws\CloudFront\Enum\OriginProtocolPolicy' => __DIR__ . '/Aws/CloudFront/Enum/OriginProtocolPolicy.php', - 'Aws\CloudFront\Enum\PriceClass' => __DIR__ . '/Aws/CloudFront/Enum/PriceClass.php', - 'Aws\CloudFront\Enum\SSLSupportMethod' => __DIR__ . '/Aws/CloudFront/Enum/SSLSupportMethod.php', - 'Aws\CloudFront\Enum\ViewerProtocolPolicy' => __DIR__ . '/Aws/CloudFront/Enum/ViewerProtocolPolicy.php', - 'Aws\CloudFront\Exception\AccessDeniedException' => __DIR__ . '/Aws/CloudFront/Exception/AccessDeniedException.php', - 'Aws\CloudFront\Exception\BatchTooLargeException' => __DIR__ . '/Aws/CloudFront/Exception/BatchTooLargeException.php', 'Aws\CloudFront\Exception\CloudFrontException' => __DIR__ . '/Aws/CloudFront/Exception/CloudFrontException.php', - 'Aws\CloudFront\Exception\CloudFrontOriginAccessIdentityAlreadyExistsException' => __DIR__ . '/Aws/CloudFront/Exception/CloudFrontOriginAccessIdentityAlreadyExistsException.php', - 'Aws\CloudFront\Exception\CloudFrontOriginAccessIdentityInUseException' => __DIR__ . '/Aws/CloudFront/Exception/CloudFrontOriginAccessIdentityInUseException.php', - 'Aws\CloudFront\Exception\CNAMEAlreadyExistsException' => __DIR__ . '/Aws/CloudFront/Exception/CNAMEAlreadyExistsException.php', - 'Aws\CloudFront\Exception\DistributionAlreadyExistsException' => __DIR__ . '/Aws/CloudFront/Exception/DistributionAlreadyExistsException.php', - 'Aws\CloudFront\Exception\DistributionNotDisabledException' => __DIR__ . '/Aws/CloudFront/Exception/DistributionNotDisabledException.php', - 'Aws\CloudFront\Exception\Exception' => __DIR__ . '/Aws/CloudFront/Exception/Exception.php', - 'Aws\CloudFront\Exception\IllegalUpdateException' => __DIR__ . '/Aws/CloudFront/Exception/IllegalUpdateException.php', - 'Aws\CloudFront\Exception\InconsistentQuantitiesException' => __DIR__ . '/Aws/CloudFront/Exception/InconsistentQuantitiesException.php', - 'Aws\CloudFront\Exception\InvalidArgumentException' => __DIR__ . '/Aws/CloudFront/Exception/InvalidArgumentException.php', - 'Aws\CloudFront\Exception\InvalidDefaultRootObjectException' => __DIR__ . '/Aws/CloudFront/Exception/InvalidDefaultRootObjectException.php', - 'Aws\CloudFront\Exception\InvalidErrorCodeException' => __DIR__ . '/Aws/CloudFront/Exception/InvalidErrorCodeException.php', - 'Aws\CloudFront\Exception\InvalidForwardCookiesException' => __DIR__ . '/Aws/CloudFront/Exception/InvalidForwardCookiesException.php', - 'Aws\CloudFront\Exception\InvalidGeoRestrictionParameterException' => __DIR__ . '/Aws/CloudFront/Exception/InvalidGeoRestrictionParameterException.php', - 'Aws\CloudFront\Exception\InvalidIfMatchVersionException' => __DIR__ . '/Aws/CloudFront/Exception/InvalidIfMatchVersionException.php', - 'Aws\CloudFront\Exception\InvalidLocationCodeException' => __DIR__ . '/Aws/CloudFront/Exception/InvalidLocationCodeException.php', - 'Aws\CloudFront\Exception\InvalidOriginAccessIdentityException' => __DIR__ . '/Aws/CloudFront/Exception/InvalidOriginAccessIdentityException.php', - 'Aws\CloudFront\Exception\InvalidOriginException' => __DIR__ . '/Aws/CloudFront/Exception/InvalidOriginException.php', - 'Aws\CloudFront\Exception\InvalidRelativePathException' => __DIR__ . '/Aws/CloudFront/Exception/InvalidRelativePathException.php', - 'Aws\CloudFront\Exception\InvalidRequiredProtocolException' => __DIR__ . '/Aws/CloudFront/Exception/InvalidRequiredProtocolException.php', - 'Aws\CloudFront\Exception\InvalidResponseCodeException' => __DIR__ . '/Aws/CloudFront/Exception/InvalidResponseCodeException.php', - 'Aws\CloudFront\Exception\InvalidViewerCertificateException' => __DIR__ . '/Aws/CloudFront/Exception/InvalidViewerCertificateException.php', - 'Aws\CloudFront\Exception\MissingBodyException' => __DIR__ . '/Aws/CloudFront/Exception/MissingBodyException.php', - 'Aws\CloudFront\Exception\NoSuchCloudFrontOriginAccessIdentityException' => __DIR__ . '/Aws/CloudFront/Exception/NoSuchCloudFrontOriginAccessIdentityException.php', - 'Aws\CloudFront\Exception\NoSuchDistributionException' => __DIR__ . '/Aws/CloudFront/Exception/NoSuchDistributionException.php', - 'Aws\CloudFront\Exception\NoSuchInvalidationException' => __DIR__ . '/Aws/CloudFront/Exception/NoSuchInvalidationException.php', - 'Aws\CloudFront\Exception\NoSuchOriginException' => __DIR__ . '/Aws/CloudFront/Exception/NoSuchOriginException.php', - 'Aws\CloudFront\Exception\NoSuchStreamingDistributionException' => __DIR__ . '/Aws/CloudFront/Exception/NoSuchStreamingDistributionException.php', - 'Aws\CloudFront\Exception\PreconditionFailedException' => __DIR__ . '/Aws/CloudFront/Exception/PreconditionFailedException.php', - 'Aws\CloudFront\Exception\StreamingDistributionAlreadyExistsException' => __DIR__ . '/Aws/CloudFront/Exception/StreamingDistributionAlreadyExistsException.php', - 'Aws\CloudFront\Exception\StreamingDistributionNotDisabledException' => __DIR__ . '/Aws/CloudFront/Exception/StreamingDistributionNotDisabledException.php', - 'Aws\CloudFront\Exception\TooManyCacheBehaviorsException' => __DIR__ . '/Aws/CloudFront/Exception/TooManyCacheBehaviorsException.php', - 'Aws\CloudFront\Exception\TooManyCertificatesException' => __DIR__ . '/Aws/CloudFront/Exception/TooManyCertificatesException.php', - 'Aws\CloudFront\Exception\TooManyCloudFrontOriginAccessIdentitiesException' => __DIR__ . '/Aws/CloudFront/Exception/TooManyCloudFrontOriginAccessIdentitiesException.php', - 'Aws\CloudFront\Exception\TooManyCookieNamesInWhiteListException' => __DIR__ . '/Aws/CloudFront/Exception/TooManyCookieNamesInWhiteListException.php', - 'Aws\CloudFront\Exception\TooManyDistributionCNAMEsException' => __DIR__ . '/Aws/CloudFront/Exception/TooManyDistributionCNAMEsException.php', - 'Aws\CloudFront\Exception\TooManyDistributionsException' => __DIR__ . '/Aws/CloudFront/Exception/TooManyDistributionsException.php', - 'Aws\CloudFront\Exception\TooManyInvalidationsInProgressException' => __DIR__ . '/Aws/CloudFront/Exception/TooManyInvalidationsInProgressException.php', - 'Aws\CloudFront\Exception\TooManyOriginsException' => __DIR__ . '/Aws/CloudFront/Exception/TooManyOriginsException.php', - 'Aws\CloudFront\Exception\TooManyStreamingDistributionCNAMEsException' => __DIR__ . '/Aws/CloudFront/Exception/TooManyStreamingDistributionCNAMEsException.php', - 'Aws\CloudFront\Exception\TooManyStreamingDistributionsException' => __DIR__ . '/Aws/CloudFront/Exception/TooManyStreamingDistributionsException.php', - 'Aws\CloudFront\Exception\TooManyTrustedSignersException' => __DIR__ . '/Aws/CloudFront/Exception/TooManyTrustedSignersException.php', - 'Aws\CloudFront\Exception\TrustedSignerDoesNotExistException' => __DIR__ . '/Aws/CloudFront/Exception/TrustedSignerDoesNotExistException.php', - 'Aws\CloudFront\Resources\cloudfront-2012-05-05' => __DIR__ . '/Aws/CloudFront/Resources/cloudfront-2012-05-05.php', - 'Aws\CloudFront\Resources\cloudfront-2014-11-06' => __DIR__ . '/Aws/CloudFront/Resources/cloudfront-2014-11-06.php', + 'Aws\CloudFront\UrlSigner' => __DIR__ . '/Aws/CloudFront/UrlSigner.php', 'Aws\CloudHsm\CloudHsmClient' => __DIR__ . '/Aws/CloudHsm/CloudHsmClient.php', 'Aws\CloudHsm\Exception\CloudHsmException' => __DIR__ . '/Aws/CloudHsm/Exception/CloudHsmException.php', - 'Aws\CloudHsm\Resources\cloudhsm-2014-05-30' => __DIR__ . '/Aws/CloudHsm/Resources/cloudhsm-2014-05-30.php', 'Aws\CloudSearch\CloudSearchClient' => __DIR__ . '/Aws/CloudSearch/CloudSearchClient.php', - 'Aws\CloudSearch\Enum\IndexFieldType' => __DIR__ . '/Aws/CloudSearch/Enum/IndexFieldType.php', - 'Aws\CloudSearch\Enum\OptionState' => __DIR__ . '/Aws/CloudSearch/Enum/OptionState.php', - 'Aws\CloudSearch\Enum\SearchInstanceType' => __DIR__ . '/Aws/CloudSearch/Enum/SearchInstanceType.php', - 'Aws\CloudSearch\Enum\SourceDataFunction' => __DIR__ . '/Aws/CloudSearch/Enum/SourceDataFunction.php', - 'Aws\CloudSearch\Exception\BaseException' => __DIR__ . '/Aws/CloudSearch/Exception/BaseException.php', 'Aws\CloudSearch\Exception\CloudSearchException' => __DIR__ . '/Aws/CloudSearch/Exception/CloudSearchException.php', - 'Aws\CloudSearch\Exception\InternalException' => __DIR__ . '/Aws/CloudSearch/Exception/InternalException.php', - 'Aws\CloudSearch\Exception\InvalidTypeException' => __DIR__ . '/Aws/CloudSearch/Exception/InvalidTypeException.php', - 'Aws\CloudSearch\Exception\LimitExceededException' => __DIR__ . '/Aws/CloudSearch/Exception/LimitExceededException.php', - 'Aws\CloudSearch\Exception\ResourceNotFoundException' => __DIR__ . '/Aws/CloudSearch/Exception/ResourceNotFoundException.php', - 'Aws\CloudSearch\Resources\cloudsearch-2011-02-01' => __DIR__ . '/Aws/CloudSearch/Resources/cloudsearch-2011-02-01.php', - 'Aws\CloudSearch\Resources\cloudsearch-2013-01-01' => __DIR__ . '/Aws/CloudSearch/Resources/cloudsearch-2013-01-01.php', 'Aws\CloudSearchDomain\CloudSearchDomainClient' => __DIR__ . '/Aws/CloudSearchDomain/CloudSearchDomainClient.php', - 'Aws\CloudSearchDomain\CloudSearchDomainClientBuilder' => __DIR__ . '/Aws/CloudSearchDomain/CloudSearchDomainClientBuilder.php', 'Aws\CloudSearchDomain\Exception\CloudSearchDomainException' => __DIR__ . '/Aws/CloudSearchDomain/Exception/CloudSearchDomainException.php', - 'Aws\CloudSearchDomain\Resources\cloudsearchdomain-2013-01-01' => __DIR__ . '/Aws/CloudSearchDomain/Resources/cloudsearchdomain-2013-01-01.php', 'Aws\CloudTrail\CloudTrailClient' => __DIR__ . '/Aws/CloudTrail/CloudTrailClient.php', 'Aws\CloudTrail\Exception\CloudTrailException' => __DIR__ . '/Aws/CloudTrail/Exception/CloudTrailException.php', - 'Aws\CloudTrail\Exception\InsufficientS3BucketPolicyException' => __DIR__ . '/Aws/CloudTrail/Exception/InsufficientS3BucketPolicyException.php', - 'Aws\CloudTrail\Exception\InsufficientSnsTopicPolicyException' => __DIR__ . '/Aws/CloudTrail/Exception/InsufficientSnsTopicPolicyException.php', - 'Aws\CloudTrail\Exception\InternalErrorException' => __DIR__ . '/Aws/CloudTrail/Exception/InternalErrorException.php', - 'Aws\CloudTrail\Exception\InvalidS3BucketNameException' => __DIR__ . '/Aws/CloudTrail/Exception/InvalidS3BucketNameException.php', - 'Aws\CloudTrail\Exception\InvalidS3PrefixException' => __DIR__ . '/Aws/CloudTrail/Exception/InvalidS3PrefixException.php', - 'Aws\CloudTrail\Exception\InvalidSnsTopicNameException' => __DIR__ . '/Aws/CloudTrail/Exception/InvalidSnsTopicNameException.php', - 'Aws\CloudTrail\Exception\InvalidTrailNameException' => __DIR__ . '/Aws/CloudTrail/Exception/InvalidTrailNameException.php', - 'Aws\CloudTrail\Exception\MaximumNumberOfTrailsExceededException' => __DIR__ . '/Aws/CloudTrail/Exception/MaximumNumberOfTrailsExceededException.php', - 'Aws\CloudTrail\Exception\S3BucketDoesNotExistException' => __DIR__ . '/Aws/CloudTrail/Exception/S3BucketDoesNotExistException.php', - 'Aws\CloudTrail\Exception\TrailAlreadyExistsException' => __DIR__ . '/Aws/CloudTrail/Exception/TrailAlreadyExistsException.php', - 'Aws\CloudTrail\Exception\TrailNotFoundException' => __DIR__ . '/Aws/CloudTrail/Exception/TrailNotFoundException.php', - 'Aws\CloudTrail\Exception\TrailNotProvidedException' => __DIR__ . '/Aws/CloudTrail/Exception/TrailNotProvidedException.php', 'Aws\CloudTrail\LogFileIterator' => __DIR__ . '/Aws/CloudTrail/LogFileIterator.php', 'Aws\CloudTrail\LogFileReader' => __DIR__ . '/Aws/CloudTrail/LogFileReader.php', 'Aws\CloudTrail\LogRecordIterator' => __DIR__ . '/Aws/CloudTrail/LogRecordIterator.php', - 'Aws\CloudTrail\Resources\cloudtrail-2013-11-01' => __DIR__ . '/Aws/CloudTrail/Resources/cloudtrail-2013-11-01.php', 'Aws\CloudWatch\CloudWatchClient' => __DIR__ . '/Aws/CloudWatch/CloudWatchClient.php', - 'Aws\CloudWatch\Enum\ComparisonOperator' => __DIR__ . '/Aws/CloudWatch/Enum/ComparisonOperator.php', - 'Aws\CloudWatch\Enum\HistoryItemType' => __DIR__ . '/Aws/CloudWatch/Enum/HistoryItemType.php', - 'Aws\CloudWatch\Enum\StateValue' => __DIR__ . '/Aws/CloudWatch/Enum/StateValue.php', - 'Aws\CloudWatch\Enum\Statistic' => __DIR__ . '/Aws/CloudWatch/Enum/Statistic.php', - 'Aws\CloudWatch\Enum\Unit' => __DIR__ . '/Aws/CloudWatch/Enum/Unit.php', 'Aws\CloudWatch\Exception\CloudWatchException' => __DIR__ . '/Aws/CloudWatch/Exception/CloudWatchException.php', - 'Aws\CloudWatch\Exception\InternalServiceException' => __DIR__ . '/Aws/CloudWatch/Exception/InternalServiceException.php', - 'Aws\CloudWatch\Exception\InvalidFormatException' => __DIR__ . '/Aws/CloudWatch/Exception/InvalidFormatException.php', - 'Aws\CloudWatch\Exception\InvalidNextTokenException' => __DIR__ . '/Aws/CloudWatch/Exception/InvalidNextTokenException.php', - 'Aws\CloudWatch\Exception\InvalidParameterCombinationException' => __DIR__ . '/Aws/CloudWatch/Exception/InvalidParameterCombinationException.php', - 'Aws\CloudWatch\Exception\InvalidParameterValueException' => __DIR__ . '/Aws/CloudWatch/Exception/InvalidParameterValueException.php', - 'Aws\CloudWatch\Exception\LimitExceededException' => __DIR__ . '/Aws/CloudWatch/Exception/LimitExceededException.php', - 'Aws\CloudWatch\Exception\MissingRequiredParameterException' => __DIR__ . '/Aws/CloudWatch/Exception/MissingRequiredParameterException.php', - 'Aws\CloudWatch\Exception\ResourceNotFoundException' => __DIR__ . '/Aws/CloudWatch/Exception/ResourceNotFoundException.php', - 'Aws\CloudWatch\Resources\cloudwatch-2010-08-01' => __DIR__ . '/Aws/CloudWatch/Resources/cloudwatch-2010-08-01.php', 'Aws\CloudWatchLogs\CloudWatchLogsClient' => __DIR__ . '/Aws/CloudWatchLogs/CloudWatchLogsClient.php', 'Aws\CloudWatchLogs\Exception\CloudWatchLogsException' => __DIR__ . '/Aws/CloudWatchLogs/Exception/CloudWatchLogsException.php', - 'Aws\CloudWatchLogs\Resources\cloudwatchlogs-2014-03-28' => __DIR__ . '/Aws/CloudWatchLogs/Resources/cloudwatchlogs-2014-03-28.php', 'Aws\CodeDeploy\CodeDeployClient' => __DIR__ . '/Aws/CodeDeploy/CodeDeployClient.php', 'Aws\CodeDeploy\Exception\CodeDeployException' => __DIR__ . '/Aws/CodeDeploy/Exception/CodeDeployException.php', - 'Aws\CodeDeploy\Resources\codedeploy-2014-10-06' => __DIR__ . '/Aws/CodeDeploy/Resources/codedeploy-2014-10-06.php', 'Aws\CognitoIdentity\CognitoIdentityClient' => __DIR__ . '/Aws/CognitoIdentity/CognitoIdentityClient.php', 'Aws\CognitoIdentity\Exception\CognitoIdentityException' => __DIR__ . '/Aws/CognitoIdentity/Exception/CognitoIdentityException.php', - 'Aws\CognitoIdentity\Resources\cognitoidentity-2014-06-30' => __DIR__ . '/Aws/CognitoIdentity/Resources/cognitoidentity-2014-06-30.php', 'Aws\CognitoSync\CognitoSyncClient' => __DIR__ . '/Aws/CognitoSync/CognitoSyncClient.php', 'Aws\CognitoSync\Exception\CognitoSyncException' => __DIR__ . '/Aws/CognitoSync/Exception/CognitoSyncException.php', - 'Aws\CognitoSync\Resources\cognitosync-2014-06-30' => __DIR__ . '/Aws/CognitoSync/Resources/cognitosync-2014-06-30.php', - 'Aws\Common\Aws' => __DIR__ . '/Aws/Common/Aws.php', - 'Aws\Common\Client\AbstractClient' => __DIR__ . '/Aws/Common/Client/AbstractClient.php', - 'Aws\Common\Client\AwsClientInterface' => __DIR__ . '/Aws/Common/Client/AwsClientInterface.php', - 'Aws\Common\Client\ClientBuilder' => __DIR__ . '/Aws/Common/Client/ClientBuilder.php', - 'Aws\Common\Client\DefaultClient' => __DIR__ . '/Aws/Common/Client/DefaultClient.php', - 'Aws\Common\Client\ExpiredCredentialsChecker' => __DIR__ . '/Aws/Common/Client/ExpiredCredentialsChecker.php', - 'Aws\Common\Client\ThrottlingErrorChecker' => __DIR__ . '/Aws/Common/Client/ThrottlingErrorChecker.php', - 'Aws\Common\Client\UploadBodyListener' => __DIR__ . '/Aws/Common/Client/UploadBodyListener.php', - 'Aws\Common\Client\UserAgentListener' => __DIR__ . '/Aws/Common/Client/UserAgentListener.php', - 'Aws\Common\Command\AwsQueryVisitor' => __DIR__ . '/Aws/Common/Command/AwsQueryVisitor.php', - 'Aws\Common\Command\JsonCommand' => __DIR__ . '/Aws/Common/Command/JsonCommand.php', - 'Aws\Common\Command\QueryCommand' => __DIR__ . '/Aws/Common/Command/QueryCommand.php', - 'Aws\Common\Command\XmlResponseLocationVisitor' => __DIR__ . '/Aws/Common/Command/XmlResponseLocationVisitor.php', - 'Aws\Common\Credentials\AbstractCredentialsDecorator' => __DIR__ . '/Aws/Common/Credentials/AbstractCredentialsDecorator.php', - 'Aws\Common\Credentials\AbstractRefreshableCredentials' => __DIR__ . '/Aws/Common/Credentials/AbstractRefreshableCredentials.php', - 'Aws\Common\Credentials\CacheableCredentials' => __DIR__ . '/Aws/Common/Credentials/CacheableCredentials.php', - 'Aws\Common\Credentials\Credentials' => __DIR__ . '/Aws/Common/Credentials/Credentials.php', - 'Aws\Common\Credentials\CredentialsInterface' => __DIR__ . '/Aws/Common/Credentials/CredentialsInterface.php', - 'Aws\Common\Credentials\NullCredentials' => __DIR__ . '/Aws/Common/Credentials/NullCredentials.php', - 'Aws\Common\Credentials\RefreshableInstanceProfileCredentials' => __DIR__ . '/Aws/Common/Credentials/RefreshableInstanceProfileCredentials.php', - 'Aws\Common\Enum\ClientOptions' => __DIR__ . '/Aws/Common/Enum/ClientOptions.php', - 'Aws\Common\Enum\DateFormat' => __DIR__ . '/Aws/Common/Enum/DateFormat.php', - 'Aws\Common\Enum\Region' => __DIR__ . '/Aws/Common/Enum/Region.php', - 'Aws\Common\Enum\Size' => __DIR__ . '/Aws/Common/Enum/Size.php', - 'Aws\Common\Enum\Time' => __DIR__ . '/Aws/Common/Enum/Time.php', - 'Aws\Common\Enum\UaString' => __DIR__ . '/Aws/Common/Enum/UaString.php', - 'Aws\Common\Enum' => __DIR__ . '/Aws/Common/Enum.php', - 'Aws\Common\Exception\AwsExceptionInterface' => __DIR__ . '/Aws/Common/Exception/AwsExceptionInterface.php', - 'Aws\Common\Exception\BadMethodCallException' => __DIR__ . '/Aws/Common/Exception/BadMethodCallException.php', - 'Aws\Common\Exception\DomainException' => __DIR__ . '/Aws/Common/Exception/DomainException.php', - 'Aws\Common\Exception\ExceptionFactoryInterface' => __DIR__ . '/Aws/Common/Exception/ExceptionFactoryInterface.php', - 'Aws\Common\Exception\ExceptionListener' => __DIR__ . '/Aws/Common/Exception/ExceptionListener.php', - 'Aws\Common\Exception\InstanceProfileCredentialsException' => __DIR__ . '/Aws/Common/Exception/InstanceProfileCredentialsException.php', - 'Aws\Common\Exception\InvalidArgumentException' => __DIR__ . '/Aws/Common/Exception/InvalidArgumentException.php', - 'Aws\Common\Exception\LogicException' => __DIR__ . '/Aws/Common/Exception/LogicException.php', - 'Aws\Common\Exception\MultipartUploadException' => __DIR__ . '/Aws/Common/Exception/MultipartUploadException.php', - 'Aws\Common\Exception\NamespaceExceptionFactory' => __DIR__ . '/Aws/Common/Exception/NamespaceExceptionFactory.php', - 'Aws\Common\Exception\OutOfBoundsException' => __DIR__ . '/Aws/Common/Exception/OutOfBoundsException.php', - 'Aws\Common\Exception\OverflowException' => __DIR__ . '/Aws/Common/Exception/OverflowException.php', - 'Aws\Common\Exception\Parser\AbstractJsonExceptionParser' => __DIR__ . '/Aws/Common/Exception/Parser/AbstractJsonExceptionParser.php', - 'Aws\Common\Exception\Parser\DefaultXmlExceptionParser' => __DIR__ . '/Aws/Common/Exception/Parser/DefaultXmlExceptionParser.php', - 'Aws\Common\Exception\Parser\ExceptionParserInterface' => __DIR__ . '/Aws/Common/Exception/Parser/ExceptionParserInterface.php', - 'Aws\Common\Exception\Parser\JsonQueryExceptionParser' => __DIR__ . '/Aws/Common/Exception/Parser/JsonQueryExceptionParser.php', - 'Aws\Common\Exception\Parser\JsonRestExceptionParser' => __DIR__ . '/Aws/Common/Exception/Parser/JsonRestExceptionParser.php', - 'Aws\Common\Exception\RequiredExtensionNotLoadedException' => __DIR__ . '/Aws/Common/Exception/RequiredExtensionNotLoadedException.php', - 'Aws\Common\Exception\RuntimeException' => __DIR__ . '/Aws/Common/Exception/RuntimeException.php', - 'Aws\Common\Exception\ServiceResponseException' => __DIR__ . '/Aws/Common/Exception/ServiceResponseException.php', - 'Aws\Common\Exception\TransferException' => __DIR__ . '/Aws/Common/Exception/TransferException.php', - 'Aws\Common\Exception\UnexpectedValueException' => __DIR__ . '/Aws/Common/Exception/UnexpectedValueException.php', - 'Aws\Common\Facade\facade-classes' => __DIR__ . '/Aws/Common/Facade/facade-classes.php', - 'Aws\Common\Facade\Facade' => __DIR__ . '/Aws/Common/Facade/Facade.php', - 'Aws\Common\Facade\FacadeInterface' => __DIR__ . '/Aws/Common/Facade/FacadeInterface.php', - 'Aws\Common\Hash\ChunkHash' => __DIR__ . '/Aws/Common/Hash/ChunkHash.php', - 'Aws\Common\Hash\ChunkHashInterface' => __DIR__ . '/Aws/Common/Hash/ChunkHashInterface.php', - 'Aws\Common\Hash\HashUtils' => __DIR__ . '/Aws/Common/Hash/HashUtils.php', - 'Aws\Common\Hash\TreeHash' => __DIR__ . '/Aws/Common/Hash/TreeHash.php', - 'Aws\Common\HostNameUtils' => __DIR__ . '/Aws/Common/HostNameUtils.php', - 'Aws\Common\InstanceMetadata\InstanceMetadataClient' => __DIR__ . '/Aws/Common/InstanceMetadata/InstanceMetadataClient.php', - 'Aws\Common\InstanceMetadata\Waiter\ServiceAvailable' => __DIR__ . '/Aws/Common/InstanceMetadata/Waiter/ServiceAvailable.php', - 'Aws\Common\Iterator\AwsResourceIterator' => __DIR__ . '/Aws/Common/Iterator/AwsResourceIterator.php', - 'Aws\Common\Iterator\AwsResourceIteratorFactory' => __DIR__ . '/Aws/Common/Iterator/AwsResourceIteratorFactory.php', - 'Aws\Common\Model\MultipartUpload\AbstractTransfer' => __DIR__ . '/Aws/Common/Model/MultipartUpload/AbstractTransfer.php', - 'Aws\Common\Model\MultipartUpload\AbstractTransferState' => __DIR__ . '/Aws/Common/Model/MultipartUpload/AbstractTransferState.php', - 'Aws\Common\Model\MultipartUpload\AbstractUploadBuilder' => __DIR__ . '/Aws/Common/Model/MultipartUpload/AbstractUploadBuilder.php', - 'Aws\Common\Model\MultipartUpload\AbstractUploadId' => __DIR__ . '/Aws/Common/Model/MultipartUpload/AbstractUploadId.php', - 'Aws\Common\Model\MultipartUpload\AbstractUploadPart' => __DIR__ . '/Aws/Common/Model/MultipartUpload/AbstractUploadPart.php', - 'Aws\Common\Model\MultipartUpload\TransferInterface' => __DIR__ . '/Aws/Common/Model/MultipartUpload/TransferInterface.php', - 'Aws\Common\Model\MultipartUpload\TransferStateInterface' => __DIR__ . '/Aws/Common/Model/MultipartUpload/TransferStateInterface.php', - 'Aws\Common\Model\MultipartUpload\UploadIdInterface' => __DIR__ . '/Aws/Common/Model/MultipartUpload/UploadIdInterface.php', - 'Aws\Common\Model\MultipartUpload\UploadPartInterface' => __DIR__ . '/Aws/Common/Model/MultipartUpload/UploadPartInterface.php', - 'Aws\Common\Resources\aws-config' => __DIR__ . '/Aws/Common/Resources/aws-config.php', - 'Aws\Common\Resources\public-endpoints' => __DIR__ . '/Aws/Common/Resources/public-endpoints.php', - 'Aws\Common\Resources\sdk1-config' => __DIR__ . '/Aws/Common/Resources/sdk1-config.php', - 'Aws\Common\RulesEndpointProvider' => __DIR__ . '/Aws/Common/RulesEndpointProvider.php', - 'Aws\Common\Signature\AbstractSignature' => __DIR__ . '/Aws/Common/Signature/AbstractSignature.php', - 'Aws\Common\Signature\EndpointSignatureInterface' => __DIR__ . '/Aws/Common/Signature/EndpointSignatureInterface.php', - 'Aws\Common\Signature\SignatureInterface' => __DIR__ . '/Aws/Common/Signature/SignatureInterface.php', - 'Aws\Common\Signature\SignatureListener' => __DIR__ . '/Aws/Common/Signature/SignatureListener.php', - 'Aws\Common\Signature\SignatureV2' => __DIR__ . '/Aws/Common/Signature/SignatureV2.php', - 'Aws\Common\Signature\SignatureV3Https' => __DIR__ . '/Aws/Common/Signature/SignatureV3Https.php', - 'Aws\Common\Signature\SignatureV4' => __DIR__ . '/Aws/Common/Signature/SignatureV4.php', - 'Aws\Common\Waiter\AbstractResourceWaiter' => __DIR__ . '/Aws/Common/Waiter/AbstractResourceWaiter.php', - 'Aws\Common\Waiter\AbstractWaiter' => __DIR__ . '/Aws/Common/Waiter/AbstractWaiter.php', - 'Aws\Common\Waiter\CallableWaiter' => __DIR__ . '/Aws/Common/Waiter/CallableWaiter.php', - 'Aws\Common\Waiter\CompositeWaiterFactory' => __DIR__ . '/Aws/Common/Waiter/CompositeWaiterFactory.php', - 'Aws\Common\Waiter\ConfigResourceWaiter' => __DIR__ . '/Aws/Common/Waiter/ConfigResourceWaiter.php', - 'Aws\Common\Waiter\ResourceWaiterInterface' => __DIR__ . '/Aws/Common/Waiter/ResourceWaiterInterface.php', - 'Aws\Common\Waiter\WaiterClassFactory' => __DIR__ . '/Aws/Common/Waiter/WaiterClassFactory.php', - 'Aws\Common\Waiter\WaiterConfig' => __DIR__ . '/Aws/Common/Waiter/WaiterConfig.php', - 'Aws\Common\Waiter\WaiterConfigFactory' => __DIR__ . '/Aws/Common/Waiter/WaiterConfigFactory.php', - 'Aws\Common\Waiter\WaiterFactoryInterface' => __DIR__ . '/Aws/Common/Waiter/WaiterFactoryInterface.php', - 'Aws\Common\Waiter\WaiterInterface' => __DIR__ . '/Aws/Common/Waiter/WaiterInterface.php', + 'Aws\Command' => __DIR__ . '/Aws/Command.php', + 'Aws\CommandInterface' => __DIR__ . '/Aws/CommandInterface.php', + 'Aws\CommandPool' => __DIR__ . '/Aws/CommandPool.php', 'Aws\ConfigService\ConfigServiceClient' => __DIR__ . '/Aws/ConfigService/ConfigServiceClient.php', 'Aws\ConfigService\Exception\ConfigServiceException' => __DIR__ . '/Aws/ConfigService/Exception/ConfigServiceException.php', - 'Aws\ConfigService\Resources\configservice-2014-11-12' => __DIR__ . '/Aws/ConfigService/Resources/configservice-2014-11-12.php', + 'Aws\Credentials\CredentialProvider' => __DIR__ . '/Aws/Credentials/CredentialProvider.php', + 'Aws\Credentials\Credentials' => __DIR__ . '/Aws/Credentials/Credentials.php', + 'Aws\Credentials\CredentialsInterface' => __DIR__ . '/Aws/Credentials/CredentialsInterface.php', + 'Aws\Credentials\InstanceProfileProvider' => __DIR__ . '/Aws/Credentials/InstanceProfileProvider.php', 'Aws\DataPipeline\DataPipelineClient' => __DIR__ . '/Aws/DataPipeline/DataPipelineClient.php', - 'Aws\DataPipeline\Enum\WorkStatus' => __DIR__ . '/Aws/DataPipeline/Enum/WorkStatus.php', 'Aws\DataPipeline\Exception\DataPipelineException' => __DIR__ . '/Aws/DataPipeline/Exception/DataPipelineException.php', - 'Aws\DataPipeline\Exception\InternalServiceErrorException' => __DIR__ . '/Aws/DataPipeline/Exception/InternalServiceErrorException.php', - 'Aws\DataPipeline\Exception\InvalidRequestException' => __DIR__ . '/Aws/DataPipeline/Exception/InvalidRequestException.php', - 'Aws\DataPipeline\Exception\PipelineDeletedException' => __DIR__ . '/Aws/DataPipeline/Exception/PipelineDeletedException.php', - 'Aws\DataPipeline\Exception\PipelineNotFoundException' => __DIR__ . '/Aws/DataPipeline/Exception/PipelineNotFoundException.php', - 'Aws\DataPipeline\Exception\TaskNotFoundException' => __DIR__ . '/Aws/DataPipeline/Exception/TaskNotFoundException.php', - 'Aws\DataPipeline\Resources\datapipeline-2012-10-29' => __DIR__ . '/Aws/DataPipeline/Resources/datapipeline-2012-10-29.php', 'Aws\DirectConnect\DirectConnectClient' => __DIR__ . '/Aws/DirectConnect/DirectConnectClient.php', - 'Aws\DirectConnect\Enum\ConnectionState' => __DIR__ . '/Aws/DirectConnect/Enum/ConnectionState.php', - 'Aws\DirectConnect\Enum\InterconnectState' => __DIR__ . '/Aws/DirectConnect/Enum/InterconnectState.php', - 'Aws\DirectConnect\Enum\StepState' => __DIR__ . '/Aws/DirectConnect/Enum/StepState.php', - 'Aws\DirectConnect\Enum\VirtualInterfaceState' => __DIR__ . '/Aws/DirectConnect/Enum/VirtualInterfaceState.php', - 'Aws\DirectConnect\Exception\DirectConnectClientException' => __DIR__ . '/Aws/DirectConnect/Exception/DirectConnectClientException.php', 'Aws\DirectConnect\Exception\DirectConnectException' => __DIR__ . '/Aws/DirectConnect/Exception/DirectConnectException.php', - 'Aws\DirectConnect\Exception\DirectConnectServerException' => __DIR__ . '/Aws/DirectConnect/Exception/DirectConnectServerException.php', - 'Aws\DirectConnect\Resources\directconnect-2012-10-25' => __DIR__ . '/Aws/DirectConnect/Resources/directconnect-2012-10-25.php', 'Aws\DirectoryService\DirectoryServiceClient' => __DIR__ . '/Aws/DirectoryService/DirectoryServiceClient.php', 'Aws\DirectoryService\Exception\DirectoryServiceException' => __DIR__ . '/Aws/DirectoryService/Exception/DirectoryServiceException.php', - 'Aws\DirectoryService\Resources\directoryservice-2015-04-16' => __DIR__ . '/Aws/DirectoryService/Resources/directoryservice-2015-04-16.php', - 'Aws\DynamoDb\Crc32ErrorChecker' => __DIR__ . '/Aws/DynamoDb/Crc32ErrorChecker.php', + 'Aws\DynamoDb\BinaryValue' => __DIR__ . '/Aws/DynamoDb/BinaryValue.php', 'Aws\DynamoDb\DynamoDbClient' => __DIR__ . '/Aws/DynamoDb/DynamoDbClient.php', - 'Aws\DynamoDb\DynamoDbCommand' => __DIR__ . '/Aws/DynamoDb/DynamoDbCommand.php', - 'Aws\DynamoDb\Enum\AttributeAction' => __DIR__ . '/Aws/DynamoDb/Enum/AttributeAction.php', - 'Aws\DynamoDb\Enum\AttributeType' => __DIR__ . '/Aws/DynamoDb/Enum/AttributeType.php', - 'Aws\DynamoDb\Enum\ComparisonOperator' => __DIR__ . '/Aws/DynamoDb/Enum/ComparisonOperator.php', - 'Aws\DynamoDb\Enum\IndexStatus' => __DIR__ . '/Aws/DynamoDb/Enum/IndexStatus.php', - 'Aws\DynamoDb\Enum\KeyType' => __DIR__ . '/Aws/DynamoDb/Enum/KeyType.php', - 'Aws\DynamoDb\Enum\ProjectionType' => __DIR__ . '/Aws/DynamoDb/Enum/ProjectionType.php', - 'Aws\DynamoDb\Enum\ReturnConsumedCapacity' => __DIR__ . '/Aws/DynamoDb/Enum/ReturnConsumedCapacity.php', - 'Aws\DynamoDb\Enum\ReturnItemCollectionMetrics' => __DIR__ . '/Aws/DynamoDb/Enum/ReturnItemCollectionMetrics.php', - 'Aws\DynamoDb\Enum\ReturnValue' => __DIR__ . '/Aws/DynamoDb/Enum/ReturnValue.php', - 'Aws\DynamoDb\Enum\ScalarAttributeType' => __DIR__ . '/Aws/DynamoDb/Enum/ScalarAttributeType.php', - 'Aws\DynamoDb\Enum\Select' => __DIR__ . '/Aws/DynamoDb/Enum/Select.php', - 'Aws\DynamoDb\Enum\TableStatus' => __DIR__ . '/Aws/DynamoDb/Enum/TableStatus.php', - 'Aws\DynamoDb\Enum\Type' => __DIR__ . '/Aws/DynamoDb/Enum/Type.php', - 'Aws\DynamoDb\Exception\AccessDeniedException' => __DIR__ . '/Aws/DynamoDb/Exception/AccessDeniedException.php', - 'Aws\DynamoDb\Exception\ConditionalCheckFailedException' => __DIR__ . '/Aws/DynamoDb/Exception/ConditionalCheckFailedException.php', 'Aws\DynamoDb\Exception\DynamoDbException' => __DIR__ . '/Aws/DynamoDb/Exception/DynamoDbException.php', - 'Aws\DynamoDb\Exception\IncompleteSignatureException' => __DIR__ . '/Aws/DynamoDb/Exception/IncompleteSignatureException.php', - 'Aws\DynamoDb\Exception\InternalFailureException' => __DIR__ . '/Aws/DynamoDb/Exception/InternalFailureException.php', - 'Aws\DynamoDb\Exception\InternalServerErrorException' => __DIR__ . '/Aws/DynamoDb/Exception/InternalServerErrorException.php', - 'Aws\DynamoDb\Exception\ItemCollectionSizeLimitExceededException' => __DIR__ . '/Aws/DynamoDb/Exception/ItemCollectionSizeLimitExceededException.php', - 'Aws\DynamoDb\Exception\LimitExceededException' => __DIR__ . '/Aws/DynamoDb/Exception/LimitExceededException.php', - 'Aws\DynamoDb\Exception\MissingAuthenticationTokenException' => __DIR__ . '/Aws/DynamoDb/Exception/MissingAuthenticationTokenException.php', - 'Aws\DynamoDb\Exception\ProvisionedThroughputExceededException' => __DIR__ . '/Aws/DynamoDb/Exception/ProvisionedThroughputExceededException.php', - 'Aws\DynamoDb\Exception\ResourceInUseException' => __DIR__ . '/Aws/DynamoDb/Exception/ResourceInUseException.php', - 'Aws\DynamoDb\Exception\ResourceNotFoundException' => __DIR__ . '/Aws/DynamoDb/Exception/ResourceNotFoundException.php', - 'Aws\DynamoDb\Exception\ServiceUnavailableException' => __DIR__ . '/Aws/DynamoDb/Exception/ServiceUnavailableException.php', - 'Aws\DynamoDb\Exception\ThrottlingException' => __DIR__ . '/Aws/DynamoDb/Exception/ThrottlingException.php', - 'Aws\DynamoDb\Exception\UnprocessedWriteRequestsException' => __DIR__ . '/Aws/DynamoDb/Exception/UnprocessedWriteRequestsException.php', - 'Aws\DynamoDb\Exception\UnrecognizedClientException' => __DIR__ . '/Aws/DynamoDb/Exception/UnrecognizedClientException.php', - 'Aws\DynamoDb\Exception\ValidationException' => __DIR__ . '/Aws/DynamoDb/Exception/ValidationException.php', - 'Aws\DynamoDb\Iterator\ItemIterator' => __DIR__ . '/Aws/DynamoDb/Iterator/ItemIterator.php', - 'Aws\DynamoDb\Iterator\ScanIterator' => __DIR__ . '/Aws/DynamoDb/Iterator/ScanIterator.php', + 'Aws\DynamoDb\LockingSessionConnection' => __DIR__ . '/Aws/DynamoDb/LockingSessionConnection.php', 'Aws\DynamoDb\Marshaler' => __DIR__ . '/Aws/DynamoDb/Marshaler.php', - 'Aws\DynamoDb\Model\Attribute' => __DIR__ . '/Aws/DynamoDb/Model/Attribute.php', - 'Aws\DynamoDb\Model\BatchRequest\AbstractWriteRequest' => __DIR__ . '/Aws/DynamoDb/Model/BatchRequest/AbstractWriteRequest.php', - 'Aws\DynamoDb\Model\BatchRequest\DeleteRequest' => __DIR__ . '/Aws/DynamoDb/Model/BatchRequest/DeleteRequest.php', - 'Aws\DynamoDb\Model\BatchRequest\PutRequest' => __DIR__ . '/Aws/DynamoDb/Model/BatchRequest/PutRequest.php', - 'Aws\DynamoDb\Model\BatchRequest\UnprocessedRequest' => __DIR__ . '/Aws/DynamoDb/Model/BatchRequest/UnprocessedRequest.php', - 'Aws\DynamoDb\Model\BatchRequest\WriteRequestBatch' => __DIR__ . '/Aws/DynamoDb/Model/BatchRequest/WriteRequestBatch.php', - 'Aws\DynamoDb\Model\BatchRequest\WriteRequestBatchTransfer' => __DIR__ . '/Aws/DynamoDb/Model/BatchRequest/WriteRequestBatchTransfer.php', - 'Aws\DynamoDb\Model\BatchRequest\WriteRequestInterface' => __DIR__ . '/Aws/DynamoDb/Model/BatchRequest/WriteRequestInterface.php', - 'Aws\DynamoDb\Model\Item' => __DIR__ . '/Aws/DynamoDb/Model/Item.php', - 'Aws\DynamoDb\Resources\dynamodb-2011-12-05' => __DIR__ . '/Aws/DynamoDb/Resources/dynamodb-2011-12-05.php', - 'Aws\DynamoDb\Resources\dynamodb-2012-08-10' => __DIR__ . '/Aws/DynamoDb/Resources/dynamodb-2012-08-10.php', - 'Aws\DynamoDb\Session\LockingStrategy\AbstractLockingStrategy' => __DIR__ . '/Aws/DynamoDb/Session/LockingStrategy/AbstractLockingStrategy.php', - 'Aws\DynamoDb\Session\LockingStrategy\LockingStrategyFactory' => __DIR__ . '/Aws/DynamoDb/Session/LockingStrategy/LockingStrategyFactory.php', - 'Aws\DynamoDb\Session\LockingStrategy\LockingStrategyFactoryInterface' => __DIR__ . '/Aws/DynamoDb/Session/LockingStrategy/LockingStrategyFactoryInterface.php', - 'Aws\DynamoDb\Session\LockingStrategy\LockingStrategyInterface' => __DIR__ . '/Aws/DynamoDb/Session/LockingStrategy/LockingStrategyInterface.php', - 'Aws\DynamoDb\Session\LockingStrategy\NullLockingStrategy' => __DIR__ . '/Aws/DynamoDb/Session/LockingStrategy/NullLockingStrategy.php', - 'Aws\DynamoDb\Session\LockingStrategy\PessimisticLockingStrategy' => __DIR__ . '/Aws/DynamoDb/Session/LockingStrategy/PessimisticLockingStrategy.php', - 'Aws\DynamoDb\Session\SessionHandler' => __DIR__ . '/Aws/DynamoDb/Session/SessionHandler.php', - 'Aws\DynamoDb\Session\SessionHandlerConfig' => __DIR__ . '/Aws/DynamoDb/Session/SessionHandlerConfig.php', - 'Aws\DynamoDb\Session\SessionHandlerInterface' => __DIR__ . '/Aws/DynamoDb/Session/SessionHandlerInterface.php', - 'Aws\Ec2\CopySnapshotListener' => __DIR__ . '/Aws/Ec2/CopySnapshotListener.php', + 'Aws\DynamoDb\NumberValue' => __DIR__ . '/Aws/DynamoDb/NumberValue.php', + 'Aws\DynamoDb\SessionConnectionInterface' => __DIR__ . '/Aws/DynamoDb/SessionConnectionInterface.php', + 'Aws\DynamoDb\SessionHandler' => __DIR__ . '/Aws/DynamoDb/SessionHandler.php', + 'Aws\DynamoDb\SetValue' => __DIR__ . '/Aws/DynamoDb/SetValue.php', + 'Aws\DynamoDb\StandardSessionConnection' => __DIR__ . '/Aws/DynamoDb/StandardSessionConnection.php', + 'Aws\DynamoDb\WriteRequestBatch' => __DIR__ . '/Aws/DynamoDb/WriteRequestBatch.php', + 'Aws\Ec2\CopySnapshotMiddleware' => __DIR__ . '/Aws/Ec2/CopySnapshotMiddleware.php', 'Aws\Ec2\Ec2Client' => __DIR__ . '/Aws/Ec2/Ec2Client.php', - 'Aws\Ec2\Enum\ContainerFormat' => __DIR__ . '/Aws/Ec2/Enum/ContainerFormat.php', - 'Aws\Ec2\Enum\DiskImageFormat' => __DIR__ . '/Aws/Ec2/Enum/DiskImageFormat.php', - 'Aws\Ec2\Enum\DomainType' => __DIR__ . '/Aws/Ec2/Enum/DomainType.php', - 'Aws\Ec2\Enum\ExportEnvironment' => __DIR__ . '/Aws/Ec2/Enum/ExportEnvironment.php', - 'Aws\Ec2\Enum\HypervisorType' => __DIR__ . '/Aws/Ec2/Enum/HypervisorType.php', - 'Aws\Ec2\Enum\ImageState' => __DIR__ . '/Aws/Ec2/Enum/ImageState.php', - 'Aws\Ec2\Enum\InstanceAttributeName' => __DIR__ . '/Aws/Ec2/Enum/InstanceAttributeName.php', - 'Aws\Ec2\Enum\InstanceStateName' => __DIR__ . '/Aws/Ec2/Enum/InstanceStateName.php', - 'Aws\Ec2\Enum\InstanceType' => __DIR__ . '/Aws/Ec2/Enum/InstanceType.php', - 'Aws\Ec2\Enum\PlacementGroupState' => __DIR__ . '/Aws/Ec2/Enum/PlacementGroupState.php', - 'Aws\Ec2\Enum\PlacementStrategy' => __DIR__ . '/Aws/Ec2/Enum/PlacementStrategy.php', - 'Aws\Ec2\Enum\ResourceType' => __DIR__ . '/Aws/Ec2/Enum/ResourceType.php', - 'Aws\Ec2\Enum\RouteOrigin' => __DIR__ . '/Aws/Ec2/Enum/RouteOrigin.php', - 'Aws\Ec2\Enum\RuleAction' => __DIR__ . '/Aws/Ec2/Enum/RuleAction.php', - 'Aws\Ec2\Enum\SnapshotAttributeName' => __DIR__ . '/Aws/Ec2/Enum/SnapshotAttributeName.php', - 'Aws\Ec2\Enum\SnapshotState' => __DIR__ . '/Aws/Ec2/Enum/SnapshotState.php', - 'Aws\Ec2\Enum\SpotInstanceType' => __DIR__ . '/Aws/Ec2/Enum/SpotInstanceType.php', - 'Aws\Ec2\Enum\VirtualizationType' => __DIR__ . '/Aws/Ec2/Enum/VirtualizationType.php', - 'Aws\Ec2\Enum\VolumeAttachmentState' => __DIR__ . '/Aws/Ec2/Enum/VolumeAttachmentState.php', - 'Aws\Ec2\Enum\VolumeAttributeName' => __DIR__ . '/Aws/Ec2/Enum/VolumeAttributeName.php', - 'Aws\Ec2\Enum\VolumeState' => __DIR__ . '/Aws/Ec2/Enum/VolumeState.php', - 'Aws\Ec2\Enum\VolumeType' => __DIR__ . '/Aws/Ec2/Enum/VolumeType.php', - 'Aws\Ec2\Enum\VpcAttributeName' => __DIR__ . '/Aws/Ec2/Enum/VpcAttributeName.php', 'Aws\Ec2\Exception\Ec2Exception' => __DIR__ . '/Aws/Ec2/Exception/Ec2Exception.php', - 'Aws\Ec2\Iterator\DescribeInstancesIterator' => __DIR__ . '/Aws/Ec2/Iterator/DescribeInstancesIterator.php', - 'Aws\Ec2\Resources\ec2-2015-04-15' => __DIR__ . '/Aws/Ec2/Resources/ec2-2015-04-15.php', 'Aws\Ecs\EcsClient' => __DIR__ . '/Aws/Ecs/EcsClient.php', 'Aws\Ecs\Exception\EcsException' => __DIR__ . '/Aws/Ecs/Exception/EcsException.php', - 'Aws\Ecs\Resources\ecs-2014-11-13' => __DIR__ . '/Aws/Ecs/Resources/ecs-2014-11-13.php', 'Aws\Efs\EfsClient' => __DIR__ . '/Aws/Efs/EfsClient.php', 'Aws\Efs\Exception\EfsException' => __DIR__ . '/Aws/Efs/Exception/EfsException.php', - 'Aws\Efs\Resources\elasticfilesystem-2015-02-01' => __DIR__ . '/Aws/Efs/Resources/elasticfilesystem-2015-02-01.php', 'Aws\ElastiCache\ElastiCacheClient' => __DIR__ . '/Aws/ElastiCache/ElastiCacheClient.php', - 'Aws\ElastiCache\Enum\SourceType' => __DIR__ . '/Aws/ElastiCache/Enum/SourceType.php', - 'Aws\ElastiCache\Exception\AuthorizationAlreadyExistsException' => __DIR__ . '/Aws/ElastiCache/Exception/AuthorizationAlreadyExistsException.php', - 'Aws\ElastiCache\Exception\AuthorizationNotFoundException' => __DIR__ . '/Aws/ElastiCache/Exception/AuthorizationNotFoundException.php', - 'Aws\ElastiCache\Exception\CacheClusterAlreadyExistsException' => __DIR__ . '/Aws/ElastiCache/Exception/CacheClusterAlreadyExistsException.php', - 'Aws\ElastiCache\Exception\CacheClusterNotFoundException' => __DIR__ . '/Aws/ElastiCache/Exception/CacheClusterNotFoundException.php', - 'Aws\ElastiCache\Exception\CacheParameterGroupAlreadyExistsException' => __DIR__ . '/Aws/ElastiCache/Exception/CacheParameterGroupAlreadyExistsException.php', - 'Aws\ElastiCache\Exception\CacheParameterGroupNotFoundException' => __DIR__ . '/Aws/ElastiCache/Exception/CacheParameterGroupNotFoundException.php', - 'Aws\ElastiCache\Exception\CacheParameterGroupQuotaExceededException' => __DIR__ . '/Aws/ElastiCache/Exception/CacheParameterGroupQuotaExceededException.php', - 'Aws\ElastiCache\Exception\CacheSecurityGroupAlreadyExistsException' => __DIR__ . '/Aws/ElastiCache/Exception/CacheSecurityGroupAlreadyExistsException.php', - 'Aws\ElastiCache\Exception\CacheSecurityGroupNotFoundException' => __DIR__ . '/Aws/ElastiCache/Exception/CacheSecurityGroupNotFoundException.php', - 'Aws\ElastiCache\Exception\CacheSecurityGroupQuotaExceededException' => __DIR__ . '/Aws/ElastiCache/Exception/CacheSecurityGroupQuotaExceededException.php', - 'Aws\ElastiCache\Exception\CacheSubnetGroupAlreadyExistsException' => __DIR__ . '/Aws/ElastiCache/Exception/CacheSubnetGroupAlreadyExistsException.php', - 'Aws\ElastiCache\Exception\CacheSubnetGroupInUseException' => __DIR__ . '/Aws/ElastiCache/Exception/CacheSubnetGroupInUseException.php', - 'Aws\ElastiCache\Exception\CacheSubnetGroupNotFoundException' => __DIR__ . '/Aws/ElastiCache/Exception/CacheSubnetGroupNotFoundException.php', - 'Aws\ElastiCache\Exception\CacheSubnetGroupQuotaExceededException' => __DIR__ . '/Aws/ElastiCache/Exception/CacheSubnetGroupQuotaExceededException.php', - 'Aws\ElastiCache\Exception\CacheSubnetQuotaExceededException' => __DIR__ . '/Aws/ElastiCache/Exception/CacheSubnetQuotaExceededException.php', - 'Aws\ElastiCache\Exception\ClusterQuotaForCustomerExceededException' => __DIR__ . '/Aws/ElastiCache/Exception/ClusterQuotaForCustomerExceededException.php', 'Aws\ElastiCache\Exception\ElastiCacheException' => __DIR__ . '/Aws/ElastiCache/Exception/ElastiCacheException.php', - 'Aws\ElastiCache\Exception\InsufficientCacheClusterCapacityException' => __DIR__ . '/Aws/ElastiCache/Exception/InsufficientCacheClusterCapacityException.php', - 'Aws\ElastiCache\Exception\InvalidCacheClusterStateException' => __DIR__ . '/Aws/ElastiCache/Exception/InvalidCacheClusterStateException.php', - 'Aws\ElastiCache\Exception\InvalidCacheParameterGroupStateException' => __DIR__ . '/Aws/ElastiCache/Exception/InvalidCacheParameterGroupStateException.php', - 'Aws\ElastiCache\Exception\InvalidCacheSecurityGroupStateException' => __DIR__ . '/Aws/ElastiCache/Exception/InvalidCacheSecurityGroupStateException.php', - 'Aws\ElastiCache\Exception\InvalidParameterCombinationException' => __DIR__ . '/Aws/ElastiCache/Exception/InvalidParameterCombinationException.php', - 'Aws\ElastiCache\Exception\InvalidParameterValueException' => __DIR__ . '/Aws/ElastiCache/Exception/InvalidParameterValueException.php', - 'Aws\ElastiCache\Exception\InvalidReplicationGroupStateException' => __DIR__ . '/Aws/ElastiCache/Exception/InvalidReplicationGroupStateException.php', - 'Aws\ElastiCache\Exception\InvalidSubnetException' => __DIR__ . '/Aws/ElastiCache/Exception/InvalidSubnetException.php', - 'Aws\ElastiCache\Exception\InvalidVPCNetworkStateException' => __DIR__ . '/Aws/ElastiCache/Exception/InvalidVPCNetworkStateException.php', - 'Aws\ElastiCache\Exception\NodeQuotaForClusterExceededException' => __DIR__ . '/Aws/ElastiCache/Exception/NodeQuotaForClusterExceededException.php', - 'Aws\ElastiCache\Exception\NodeQuotaForCustomerExceededException' => __DIR__ . '/Aws/ElastiCache/Exception/NodeQuotaForCustomerExceededException.php', - 'Aws\ElastiCache\Exception\ReplicationGroupAlreadyExistsException' => __DIR__ . '/Aws/ElastiCache/Exception/ReplicationGroupAlreadyExistsException.php', - 'Aws\ElastiCache\Exception\ReplicationGroupNotFoundException' => __DIR__ . '/Aws/ElastiCache/Exception/ReplicationGroupNotFoundException.php', - 'Aws\ElastiCache\Exception\ReservedCacheNodeAlreadyExistsException' => __DIR__ . '/Aws/ElastiCache/Exception/ReservedCacheNodeAlreadyExistsException.php', - 'Aws\ElastiCache\Exception\ReservedCacheNodeNotFoundException' => __DIR__ . '/Aws/ElastiCache/Exception/ReservedCacheNodeNotFoundException.php', - 'Aws\ElastiCache\Exception\ReservedCacheNodeQuotaExceededException' => __DIR__ . '/Aws/ElastiCache/Exception/ReservedCacheNodeQuotaExceededException.php', - 'Aws\ElastiCache\Exception\ReservedCacheNodesOfferingNotFoundException' => __DIR__ . '/Aws/ElastiCache/Exception/ReservedCacheNodesOfferingNotFoundException.php', - 'Aws\ElastiCache\Exception\SubnetInUseException' => __DIR__ . '/Aws/ElastiCache/Exception/SubnetInUseException.php', - 'Aws\ElastiCache\Resources\elasticache-2015-02-02' => __DIR__ . '/Aws/ElastiCache/Resources/elasticache-2015-02-02.php', 'Aws\ElasticBeanstalk\ElasticBeanstalkClient' => __DIR__ . '/Aws/ElasticBeanstalk/ElasticBeanstalkClient.php', - 'Aws\ElasticBeanstalk\Enum\ConfigurationDeploymentStatus' => __DIR__ . '/Aws/ElasticBeanstalk/Enum/ConfigurationDeploymentStatus.php', - 'Aws\ElasticBeanstalk\Enum\ConfigurationOptionValueType' => __DIR__ . '/Aws/ElasticBeanstalk/Enum/ConfigurationOptionValueType.php', - 'Aws\ElasticBeanstalk\Enum\EnvironmentHealth' => __DIR__ . '/Aws/ElasticBeanstalk/Enum/EnvironmentHealth.php', - 'Aws\ElasticBeanstalk\Enum\EnvironmentInfoType' => __DIR__ . '/Aws/ElasticBeanstalk/Enum/EnvironmentInfoType.php', - 'Aws\ElasticBeanstalk\Enum\EnvironmentStatus' => __DIR__ . '/Aws/ElasticBeanstalk/Enum/EnvironmentStatus.php', - 'Aws\ElasticBeanstalk\Enum\EventSeverity' => __DIR__ . '/Aws/ElasticBeanstalk/Enum/EventSeverity.php', - 'Aws\ElasticBeanstalk\Enum\ValidationSeverity' => __DIR__ . '/Aws/ElasticBeanstalk/Enum/ValidationSeverity.php', 'Aws\ElasticBeanstalk\Exception\ElasticBeanstalkException' => __DIR__ . '/Aws/ElasticBeanstalk/Exception/ElasticBeanstalkException.php', - 'Aws\ElasticBeanstalk\Exception\InsufficientPrivilegesException' => __DIR__ . '/Aws/ElasticBeanstalk/Exception/InsufficientPrivilegesException.php', - 'Aws\ElasticBeanstalk\Exception\OperationInProgressException' => __DIR__ . '/Aws/ElasticBeanstalk/Exception/OperationInProgressException.php', - 'Aws\ElasticBeanstalk\Exception\S3LocationNotInServiceRegionException' => __DIR__ . '/Aws/ElasticBeanstalk/Exception/S3LocationNotInServiceRegionException.php', - 'Aws\ElasticBeanstalk\Exception\S3SubscriptionRequiredException' => __DIR__ . '/Aws/ElasticBeanstalk/Exception/S3SubscriptionRequiredException.php', - 'Aws\ElasticBeanstalk\Exception\SourceBundleDeletionException' => __DIR__ . '/Aws/ElasticBeanstalk/Exception/SourceBundleDeletionException.php', - 'Aws\ElasticBeanstalk\Exception\TooManyApplicationsException' => __DIR__ . '/Aws/ElasticBeanstalk/Exception/TooManyApplicationsException.php', - 'Aws\ElasticBeanstalk\Exception\TooManyApplicationVersionsException' => __DIR__ . '/Aws/ElasticBeanstalk/Exception/TooManyApplicationVersionsException.php', - 'Aws\ElasticBeanstalk\Exception\TooManyBucketsException' => __DIR__ . '/Aws/ElasticBeanstalk/Exception/TooManyBucketsException.php', - 'Aws\ElasticBeanstalk\Exception\TooManyConfigurationTemplatesException' => __DIR__ . '/Aws/ElasticBeanstalk/Exception/TooManyConfigurationTemplatesException.php', - 'Aws\ElasticBeanstalk\Exception\TooManyEnvironmentsException' => __DIR__ . '/Aws/ElasticBeanstalk/Exception/TooManyEnvironmentsException.php', - 'Aws\ElasticBeanstalk\Resources\elasticbeanstalk-2010-12-01' => __DIR__ . '/Aws/ElasticBeanstalk/Resources/elasticbeanstalk-2010-12-01.php', 'Aws\ElasticLoadBalancing\ElasticLoadBalancingClient' => __DIR__ . '/Aws/ElasticLoadBalancing/ElasticLoadBalancingClient.php', - 'Aws\ElasticLoadBalancing\Exception\AccessPointNotFoundException' => __DIR__ . '/Aws/ElasticLoadBalancing/Exception/AccessPointNotFoundException.php', - 'Aws\ElasticLoadBalancing\Exception\CertificateNotFoundException' => __DIR__ . '/Aws/ElasticLoadBalancing/Exception/CertificateNotFoundException.php', - 'Aws\ElasticLoadBalancing\Exception\DuplicateAccessPointNameException' => __DIR__ . '/Aws/ElasticLoadBalancing/Exception/DuplicateAccessPointNameException.php', - 'Aws\ElasticLoadBalancing\Exception\DuplicateListenerException' => __DIR__ . '/Aws/ElasticLoadBalancing/Exception/DuplicateListenerException.php', - 'Aws\ElasticLoadBalancing\Exception\DuplicatePolicyNameException' => __DIR__ . '/Aws/ElasticLoadBalancing/Exception/DuplicatePolicyNameException.php', 'Aws\ElasticLoadBalancing\Exception\ElasticLoadBalancingException' => __DIR__ . '/Aws/ElasticLoadBalancing/Exception/ElasticLoadBalancingException.php', - 'Aws\ElasticLoadBalancing\Exception\InvalidConfigurationRequestException' => __DIR__ . '/Aws/ElasticLoadBalancing/Exception/InvalidConfigurationRequestException.php', - 'Aws\ElasticLoadBalancing\Exception\InvalidEndPointException' => __DIR__ . '/Aws/ElasticLoadBalancing/Exception/InvalidEndPointException.php', - 'Aws\ElasticLoadBalancing\Exception\InvalidSchemeException' => __DIR__ . '/Aws/ElasticLoadBalancing/Exception/InvalidSchemeException.php', - 'Aws\ElasticLoadBalancing\Exception\InvalidSecurityGroupException' => __DIR__ . '/Aws/ElasticLoadBalancing/Exception/InvalidSecurityGroupException.php', - 'Aws\ElasticLoadBalancing\Exception\InvalidSubnetException' => __DIR__ . '/Aws/ElasticLoadBalancing/Exception/InvalidSubnetException.php', - 'Aws\ElasticLoadBalancing\Exception\ListenerNotFoundException' => __DIR__ . '/Aws/ElasticLoadBalancing/Exception/ListenerNotFoundException.php', - 'Aws\ElasticLoadBalancing\Exception\LoadBalancerAttributeNotFoundException' => __DIR__ . '/Aws/ElasticLoadBalancing/Exception/LoadBalancerAttributeNotFoundException.php', - 'Aws\ElasticLoadBalancing\Exception\PolicyNotFoundException' => __DIR__ . '/Aws/ElasticLoadBalancing/Exception/PolicyNotFoundException.php', - 'Aws\ElasticLoadBalancing\Exception\PolicyTypeNotFoundException' => __DIR__ . '/Aws/ElasticLoadBalancing/Exception/PolicyTypeNotFoundException.php', - 'Aws\ElasticLoadBalancing\Exception\SubnetNotFoundException' => __DIR__ . '/Aws/ElasticLoadBalancing/Exception/SubnetNotFoundException.php', - 'Aws\ElasticLoadBalancing\Exception\TooManyAccessPointsException' => __DIR__ . '/Aws/ElasticLoadBalancing/Exception/TooManyAccessPointsException.php', - 'Aws\ElasticLoadBalancing\Exception\TooManyPoliciesException' => __DIR__ . '/Aws/ElasticLoadBalancing/Exception/TooManyPoliciesException.php', - 'Aws\ElasticLoadBalancing\Resources\elasticloadbalancing-2012-06-01' => __DIR__ . '/Aws/ElasticLoadBalancing/Resources/elasticloadbalancing-2012-06-01.php', 'Aws\ElasticTranscoder\ElasticTranscoderClient' => __DIR__ . '/Aws/ElasticTranscoder/ElasticTranscoderClient.php', - 'Aws\ElasticTranscoder\Exception\AccessDeniedException' => __DIR__ . '/Aws/ElasticTranscoder/Exception/AccessDeniedException.php', 'Aws\ElasticTranscoder\Exception\ElasticTranscoderException' => __DIR__ . '/Aws/ElasticTranscoder/Exception/ElasticTranscoderException.php', - 'Aws\ElasticTranscoder\Exception\IncompatibleVersionException' => __DIR__ . '/Aws/ElasticTranscoder/Exception/IncompatibleVersionException.php', - 'Aws\ElasticTranscoder\Exception\InternalServiceException' => __DIR__ . '/Aws/ElasticTranscoder/Exception/InternalServiceException.php', - 'Aws\ElasticTranscoder\Exception\LimitExceededException' => __DIR__ . '/Aws/ElasticTranscoder/Exception/LimitExceededException.php', - 'Aws\ElasticTranscoder\Exception\ResourceInUseException' => __DIR__ . '/Aws/ElasticTranscoder/Exception/ResourceInUseException.php', - 'Aws\ElasticTranscoder\Exception\ResourceNotFoundException' => __DIR__ . '/Aws/ElasticTranscoder/Exception/ResourceNotFoundException.php', - 'Aws\ElasticTranscoder\Exception\ValidationException' => __DIR__ . '/Aws/ElasticTranscoder/Exception/ValidationException.php', - 'Aws\ElasticTranscoder\Resources\elastictranscoder-2012-09-25' => __DIR__ . '/Aws/ElasticTranscoder/Resources/elastictranscoder-2012-09-25.php', 'Aws\Emr\EmrClient' => __DIR__ . '/Aws/Emr/EmrClient.php', - 'Aws\Emr\Enum\ActionOnFailure' => __DIR__ . '/Aws/Emr/Enum/ActionOnFailure.php', - 'Aws\Emr\Enum\ClusterState' => __DIR__ . '/Aws/Emr/Enum/ClusterState.php', - 'Aws\Emr\Enum\ClusterStateChangeReasonCode' => __DIR__ . '/Aws/Emr/Enum/ClusterStateChangeReasonCode.php', - 'Aws\Emr\Enum\InstanceGroupState' => __DIR__ . '/Aws/Emr/Enum/InstanceGroupState.php', - 'Aws\Emr\Enum\InstanceGroupStateChangeReasonCode' => __DIR__ . '/Aws/Emr/Enum/InstanceGroupStateChangeReasonCode.php', - 'Aws\Emr\Enum\InstanceGroupType' => __DIR__ . '/Aws/Emr/Enum/InstanceGroupType.php', - 'Aws\Emr\Enum\InstanceRoleType' => __DIR__ . '/Aws/Emr/Enum/InstanceRoleType.php', - 'Aws\Emr\Enum\InstanceState' => __DIR__ . '/Aws/Emr/Enum/InstanceState.php', - 'Aws\Emr\Enum\InstanceStateChangeReasonCode' => __DIR__ . '/Aws/Emr/Enum/InstanceStateChangeReasonCode.php', - 'Aws\Emr\Enum\JobFlowExecutionState' => __DIR__ . '/Aws/Emr/Enum/JobFlowExecutionState.php', - 'Aws\Emr\Enum\MarketType' => __DIR__ . '/Aws/Emr/Enum/MarketType.php', - 'Aws\Emr\Enum\StepExecutionState' => __DIR__ . '/Aws/Emr/Enum/StepExecutionState.php', - 'Aws\Emr\Enum\StepState' => __DIR__ . '/Aws/Emr/Enum/StepState.php', - 'Aws\Emr\Enum\StepStateChangeReasonCode' => __DIR__ . '/Aws/Emr/Enum/StepStateChangeReasonCode.php', 'Aws\Emr\Exception\EmrException' => __DIR__ . '/Aws/Emr/Exception/EmrException.php', - 'Aws\Emr\Exception\InternalServerErrorException' => __DIR__ . '/Aws/Emr/Exception/InternalServerErrorException.php', - 'Aws\Emr\Exception\InternalServerException' => __DIR__ . '/Aws/Emr/Exception/InternalServerException.php', - 'Aws\Emr\Exception\InvalidRequestException' => __DIR__ . '/Aws/Emr/Exception/InvalidRequestException.php', - 'Aws\Emr\Resources\emr-2009-03-31' => __DIR__ . '/Aws/Emr/Resources/emr-2009-03-31.php', - 'Aws\Glacier\Enum\Action' => __DIR__ . '/Aws/Glacier/Enum/Action.php', - 'Aws\Glacier\Enum\ActionCode' => __DIR__ . '/Aws/Glacier/Enum/ActionCode.php', - 'Aws\Glacier\Enum\StatusCode' => __DIR__ . '/Aws/Glacier/Enum/StatusCode.php', + 'Aws\Endpoint\EndpointProvider' => __DIR__ . '/Aws/Endpoint/EndpointProvider.php', + 'Aws\Endpoint\PatternEndpointProvider' => __DIR__ . '/Aws/Endpoint/PatternEndpointProvider.php', + 'Aws\Exception\AwsException' => __DIR__ . '/Aws/Exception/AwsException.php', + 'Aws\Exception\CouldNotCreateChecksumException' => __DIR__ . '/Aws/Exception/CouldNotCreateChecksumException.php', + 'Aws\Exception\CredentialsException' => __DIR__ . '/Aws/Exception/CredentialsException.php', + 'Aws\Exception\MultipartUploadException' => __DIR__ . '/Aws/Exception/MultipartUploadException.php', + 'Aws\Exception\UnresolvedApiException' => __DIR__ . '/Aws/Exception/UnresolvedApiException.php', + 'Aws\Exception\UnresolvedEndpointException' => __DIR__ . '/Aws/Exception/UnresolvedEndpointException.php', + 'Aws\Exception\UnresolvedSignatureException' => __DIR__ . '/Aws/Exception/UnresolvedSignatureException.php', + 'Aws\functions' => __DIR__ . '/Aws/functions.php', 'Aws\Glacier\Exception\GlacierException' => __DIR__ . '/Aws/Glacier/Exception/GlacierException.php', - 'Aws\Glacier\Exception\InvalidParameterValueException' => __DIR__ . '/Aws/Glacier/Exception/InvalidParameterValueException.php', - 'Aws\Glacier\Exception\LimitExceededException' => __DIR__ . '/Aws/Glacier/Exception/LimitExceededException.php', - 'Aws\Glacier\Exception\MissingParameterValueException' => __DIR__ . '/Aws/Glacier/Exception/MissingParameterValueException.php', - 'Aws\Glacier\Exception\RequestTimeoutException' => __DIR__ . '/Aws/Glacier/Exception/RequestTimeoutException.php', - 'Aws\Glacier\Exception\ResourceNotFoundException' => __DIR__ . '/Aws/Glacier/Exception/ResourceNotFoundException.php', - 'Aws\Glacier\Exception\ServiceUnavailableException' => __DIR__ . '/Aws/Glacier/Exception/ServiceUnavailableException.php', 'Aws\Glacier\GlacierClient' => __DIR__ . '/Aws/Glacier/GlacierClient.php', - 'Aws\Glacier\GlacierUploadListener' => __DIR__ . '/Aws/Glacier/GlacierUploadListener.php', - 'Aws\Glacier\Model\MultipartUpload\AbstractTransfer' => __DIR__ . '/Aws/Glacier/Model/MultipartUpload/AbstractTransfer.php', - 'Aws\Glacier\Model\MultipartUpload\ParallelTransfer' => __DIR__ . '/Aws/Glacier/Model/MultipartUpload/ParallelTransfer.php', - 'Aws\Glacier\Model\MultipartUpload\SerialTransfer' => __DIR__ . '/Aws/Glacier/Model/MultipartUpload/SerialTransfer.php', - 'Aws\Glacier\Model\MultipartUpload\TransferState' => __DIR__ . '/Aws/Glacier/Model/MultipartUpload/TransferState.php', - 'Aws\Glacier\Model\MultipartUpload\UploadBuilder' => __DIR__ . '/Aws/Glacier/Model/MultipartUpload/UploadBuilder.php', - 'Aws\Glacier\Model\MultipartUpload\UploadId' => __DIR__ . '/Aws/Glacier/Model/MultipartUpload/UploadId.php', - 'Aws\Glacier\Model\MultipartUpload\UploadPart' => __DIR__ . '/Aws/Glacier/Model/MultipartUpload/UploadPart.php', - 'Aws\Glacier\Model\MultipartUpload\UploadPartContext' => __DIR__ . '/Aws/Glacier/Model/MultipartUpload/UploadPartContext.php', - 'Aws\Glacier\Model\MultipartUpload\UploadPartGenerator' => __DIR__ . '/Aws/Glacier/Model/MultipartUpload/UploadPartGenerator.php', - 'Aws\Glacier\Resources\glacier-2012-06-01' => __DIR__ . '/Aws/Glacier/Resources/glacier-2012-06-01.php', - 'Aws\Iam\Enum\AssignmentStatusType' => __DIR__ . '/Aws/Iam/Enum/AssignmentStatusType.php', - 'Aws\Iam\Enum\StatusType' => __DIR__ . '/Aws/Iam/Enum/StatusType.php', - 'Aws\Iam\Exception\DeleteConflictException' => __DIR__ . '/Aws/Iam/Exception/DeleteConflictException.php', - 'Aws\Iam\Exception\DuplicateCertificateException' => __DIR__ . '/Aws/Iam/Exception/DuplicateCertificateException.php', - 'Aws\Iam\Exception\EntityAlreadyExistsException' => __DIR__ . '/Aws/Iam/Exception/EntityAlreadyExistsException.php', - 'Aws\Iam\Exception\EntityTemporarilyUnmodifiableException' => __DIR__ . '/Aws/Iam/Exception/EntityTemporarilyUnmodifiableException.php', + 'Aws\Glacier\MultipartUploader' => __DIR__ . '/Aws/Glacier/MultipartUploader.php', + 'Aws\Glacier\TreeHash' => __DIR__ . '/Aws/Glacier/TreeHash.php', + 'Aws\Handler\GuzzleV5\GuzzleHandler' => __DIR__ . '/Aws/Handler/GuzzleV5/GuzzleHandler.php', + 'Aws\Handler\GuzzleV5\GuzzleStream' => __DIR__ . '/Aws/Handler/GuzzleV5/GuzzleStream.php', + 'Aws\Handler\GuzzleV5\PsrStream' => __DIR__ . '/Aws/Handler/GuzzleV5/PsrStream.php', + 'Aws\Handler\GuzzleV6\GuzzleHandler' => __DIR__ . '/Aws/Handler/GuzzleV6/GuzzleHandler.php', + 'Aws\HandlerList' => __DIR__ . '/Aws/HandlerList.php', + 'Aws\HasDataTrait' => __DIR__ . '/Aws/HasDataTrait.php', + 'Aws\HashingStream' => __DIR__ . '/Aws/HashingStream.php', + 'Aws\HashInterface' => __DIR__ . '/Aws/HashInterface.php', + 'Aws\History' => __DIR__ . '/Aws/History.php', 'Aws\Iam\Exception\IamException' => __DIR__ . '/Aws/Iam/Exception/IamException.php', - 'Aws\Iam\Exception\InvalidAuthenticationCodeException' => __DIR__ . '/Aws/Iam/Exception/InvalidAuthenticationCodeException.php', - 'Aws\Iam\Exception\InvalidCertificateException' => __DIR__ . '/Aws/Iam/Exception/InvalidCertificateException.php', - 'Aws\Iam\Exception\InvalidInputException' => __DIR__ . '/Aws/Iam/Exception/InvalidInputException.php', - 'Aws\Iam\Exception\InvalidUserTypeException' => __DIR__ . '/Aws/Iam/Exception/InvalidUserTypeException.php', - 'Aws\Iam\Exception\KeyPairMismatchException' => __DIR__ . '/Aws/Iam/Exception/KeyPairMismatchException.php', - 'Aws\Iam\Exception\LimitExceededException' => __DIR__ . '/Aws/Iam/Exception/LimitExceededException.php', - 'Aws\Iam\Exception\MalformedCertificateException' => __DIR__ . '/Aws/Iam/Exception/MalformedCertificateException.php', - 'Aws\Iam\Exception\MalformedPolicyDocumentException' => __DIR__ . '/Aws/Iam/Exception/MalformedPolicyDocumentException.php', - 'Aws\Iam\Exception\NoSuchEntityException' => __DIR__ . '/Aws/Iam/Exception/NoSuchEntityException.php', - 'Aws\Iam\Exception\PasswordPolicyViolationException' => __DIR__ . '/Aws/Iam/Exception/PasswordPolicyViolationException.php', 'Aws\Iam\IamClient' => __DIR__ . '/Aws/Iam/IamClient.php', - 'Aws\Iam\Resources\iam-2010-05-08' => __DIR__ . '/Aws/Iam/Resources/iam-2010-05-08.php', - 'Aws\ImportExport\Enum\JobType' => __DIR__ . '/Aws/ImportExport/Enum/JobType.php', - 'Aws\ImportExport\Exception\BucketPermissionException' => __DIR__ . '/Aws/ImportExport/Exception/BucketPermissionException.php', - 'Aws\ImportExport\Exception\CanceledJobIdException' => __DIR__ . '/Aws/ImportExport/Exception/CanceledJobIdException.php', - 'Aws\ImportExport\Exception\ExpiredJobIdException' => __DIR__ . '/Aws/ImportExport/Exception/ExpiredJobIdException.php', - 'Aws\ImportExport\Exception\ImportExportException' => __DIR__ . '/Aws/ImportExport/Exception/ImportExportException.php', - 'Aws\ImportExport\Exception\InvalidAccessKeyIdException' => __DIR__ . '/Aws/ImportExport/Exception/InvalidAccessKeyIdException.php', - 'Aws\ImportExport\Exception\InvalidAddressException' => __DIR__ . '/Aws/ImportExport/Exception/InvalidAddressException.php', - 'Aws\ImportExport\Exception\InvalidCustomsException' => __DIR__ . '/Aws/ImportExport/Exception/InvalidCustomsException.php', - 'Aws\ImportExport\Exception\InvalidFileSystemException' => __DIR__ . '/Aws/ImportExport/Exception/InvalidFileSystemException.php', - 'Aws\ImportExport\Exception\InvalidJobIdException' => __DIR__ . '/Aws/ImportExport/Exception/InvalidJobIdException.php', - 'Aws\ImportExport\Exception\InvalidManifestFieldException' => __DIR__ . '/Aws/ImportExport/Exception/InvalidManifestFieldException.php', - 'Aws\ImportExport\Exception\InvalidParameterException' => __DIR__ . '/Aws/ImportExport/Exception/InvalidParameterException.php', - 'Aws\ImportExport\Exception\MalformedManifestException' => __DIR__ . '/Aws/ImportExport/Exception/MalformedManifestException.php', - 'Aws\ImportExport\Exception\MissingCustomsException' => __DIR__ . '/Aws/ImportExport/Exception/MissingCustomsException.php', - 'Aws\ImportExport\Exception\MissingManifestFieldException' => __DIR__ . '/Aws/ImportExport/Exception/MissingManifestFieldException.php', - 'Aws\ImportExport\Exception\MissingParameterException' => __DIR__ . '/Aws/ImportExport/Exception/MissingParameterException.php', - 'Aws\ImportExport\Exception\MultipleRegionsException' => __DIR__ . '/Aws/ImportExport/Exception/MultipleRegionsException.php', - 'Aws\ImportExport\Exception\NoSuchBucketException' => __DIR__ . '/Aws/ImportExport/Exception/NoSuchBucketException.php', - 'Aws\ImportExport\Exception\UnableToCancelJobIdException' => __DIR__ . '/Aws/ImportExport/Exception/UnableToCancelJobIdException.php', - 'Aws\ImportExport\ImportExportClient' => __DIR__ . '/Aws/ImportExport/ImportExportClient.php', - 'Aws\ImportExport\JobManifestListener' => __DIR__ . '/Aws/ImportExport/JobManifestListener.php', - 'Aws\ImportExport\Resources\importexport-2010-06-01' => __DIR__ . '/Aws/ImportExport/Resources/importexport-2010-06-01.php', - 'Aws\Kinesis\Enum\ShardIteratorType' => __DIR__ . '/Aws/Kinesis/Enum/ShardIteratorType.php', - 'Aws\Kinesis\Enum\StreamStatus' => __DIR__ . '/Aws/Kinesis/Enum/StreamStatus.php', - 'Aws\Kinesis\Exception\ExpiredIteratorException' => __DIR__ . '/Aws/Kinesis/Exception/ExpiredIteratorException.php', - 'Aws\Kinesis\Exception\InvalidArgumentException' => __DIR__ . '/Aws/Kinesis/Exception/InvalidArgumentException.php', + 'Aws\JsonCompiler' => __DIR__ . '/Aws/JsonCompiler.php', 'Aws\Kinesis\Exception\KinesisException' => __DIR__ . '/Aws/Kinesis/Exception/KinesisException.php', - 'Aws\Kinesis\Exception\LimitExceededException' => __DIR__ . '/Aws/Kinesis/Exception/LimitExceededException.php', - 'Aws\Kinesis\Exception\ProvisionedThroughputExceededException' => __DIR__ . '/Aws/Kinesis/Exception/ProvisionedThroughputExceededException.php', - 'Aws\Kinesis\Exception\ResourceInUseException' => __DIR__ . '/Aws/Kinesis/Exception/ResourceInUseException.php', - 'Aws\Kinesis\Exception\ResourceNotFoundException' => __DIR__ . '/Aws/Kinesis/Exception/ResourceNotFoundException.php', 'Aws\Kinesis\KinesisClient' => __DIR__ . '/Aws/Kinesis/KinesisClient.php', - 'Aws\Kinesis\Resources\kinesis-2013-12-02' => __DIR__ . '/Aws/Kinesis/Resources/kinesis-2013-12-02.php', 'Aws\Kms\Exception\KmsException' => __DIR__ . '/Aws/Kms/Exception/KmsException.php', 'Aws\Kms\KmsClient' => __DIR__ . '/Aws/Kms/KmsClient.php', - 'Aws\Kms\Resources\kms-2014-11-01' => __DIR__ . '/Aws/Kms/Resources/kms-2014-11-01.php', 'Aws\Lambda\Exception\LambdaException' => __DIR__ . '/Aws/Lambda/Exception/LambdaException.php', 'Aws\Lambda\LambdaClient' => __DIR__ . '/Aws/Lambda/LambdaClient.php', - 'Aws\Lambda\Resources\lambda-2014-11-11' => __DIR__ . '/Aws/Lambda/Resources/lambda-2014-11-11.php', - 'Aws\Lambda\Resources\lambda-2015-03-31' => __DIR__ . '/Aws/Lambda/Resources/lambda-2015-03-31.php', + 'Aws\LruArrayCache' => __DIR__ . '/Aws/LruArrayCache.php', 'Aws\MachineLearning\Exception\MachineLearningException' => __DIR__ . '/Aws/MachineLearning/Exception/MachineLearningException.php', 'Aws\MachineLearning\MachineLearningClient' => __DIR__ . '/Aws/MachineLearning/MachineLearningClient.php', - 'Aws\MachineLearning\PredictEndpointListener' => __DIR__ . '/Aws/MachineLearning/PredictEndpointListener.php', - 'Aws\MachineLearning\Resources\machinelearning-2014-12-12' => __DIR__ . '/Aws/MachineLearning/Resources/machinelearning-2014-12-12.php', - 'Aws\OpsWorks\Enum\AppType' => __DIR__ . '/Aws/OpsWorks/Enum/AppType.php', - 'Aws\OpsWorks\Enum\Architecture' => __DIR__ . '/Aws/OpsWorks/Enum/Architecture.php', - 'Aws\OpsWorks\Enum\AutoScalingType' => __DIR__ . '/Aws/OpsWorks/Enum/AutoScalingType.php', - 'Aws\OpsWorks\Enum\DeploymentCommandName' => __DIR__ . '/Aws/OpsWorks/Enum/DeploymentCommandName.php', - 'Aws\OpsWorks\Enum\LayerType' => __DIR__ . '/Aws/OpsWorks/Enum/LayerType.php', - 'Aws\OpsWorks\Enum\PermissionLevel' => __DIR__ . '/Aws/OpsWorks/Enum/PermissionLevel.php', - 'Aws\OpsWorks\Enum\RootDeviceType' => __DIR__ . '/Aws/OpsWorks/Enum/RootDeviceType.php', - 'Aws\OpsWorks\Enum\SourceType' => __DIR__ . '/Aws/OpsWorks/Enum/SourceType.php', + 'Aws\Middleware' => __DIR__ . '/Aws/Middleware.php', + 'Aws\MockHandler' => __DIR__ . '/Aws/MockHandler.php', + 'Aws\Multipart\AbstractUploader' => __DIR__ . '/Aws/Multipart/AbstractUploader.php', + 'Aws\Multipart\UploadState' => __DIR__ . '/Aws/Multipart/UploadState.php', 'Aws\OpsWorks\Exception\OpsWorksException' => __DIR__ . '/Aws/OpsWorks/Exception/OpsWorksException.php', - 'Aws\OpsWorks\Exception\ResourceNotFoundException' => __DIR__ . '/Aws/OpsWorks/Exception/ResourceNotFoundException.php', - 'Aws\OpsWorks\Exception\ValidationException' => __DIR__ . '/Aws/OpsWorks/Exception/ValidationException.php', 'Aws\OpsWorks\OpsWorksClient' => __DIR__ . '/Aws/OpsWorks/OpsWorksClient.php', - 'Aws\OpsWorks\Resources\opsworks-2013-02-18' => __DIR__ . '/Aws/OpsWorks/Resources/opsworks-2013-02-18.php', - 'Aws\Rds\Enum\ApplyMethod' => __DIR__ . '/Aws/Rds/Enum/ApplyMethod.php', - 'Aws\Rds\Enum\SourceType' => __DIR__ . '/Aws/Rds/Enum/SourceType.php', - 'Aws\Rds\Exception\AuthorizationAlreadyExistsException' => __DIR__ . '/Aws/Rds/Exception/AuthorizationAlreadyExistsException.php', - 'Aws\Rds\Exception\AuthorizationNotFoundException' => __DIR__ . '/Aws/Rds/Exception/AuthorizationNotFoundException.php', - 'Aws\Rds\Exception\AuthorizationQuotaExceededException' => __DIR__ . '/Aws/Rds/Exception/AuthorizationQuotaExceededException.php', - 'Aws\Rds\Exception\DBInstanceAlreadyExistsException' => __DIR__ . '/Aws/Rds/Exception/DBInstanceAlreadyExistsException.php', - 'Aws\Rds\Exception\DBInstanceNotFoundException' => __DIR__ . '/Aws/Rds/Exception/DBInstanceNotFoundException.php', - 'Aws\Rds\Exception\DBParameterGroupAlreadyExistsException' => __DIR__ . '/Aws/Rds/Exception/DBParameterGroupAlreadyExistsException.php', - 'Aws\Rds\Exception\DBParameterGroupNotFoundException' => __DIR__ . '/Aws/Rds/Exception/DBParameterGroupNotFoundException.php', - 'Aws\Rds\Exception\DBParameterGroupQuotaExceededException' => __DIR__ . '/Aws/Rds/Exception/DBParameterGroupQuotaExceededException.php', - 'Aws\Rds\Exception\DBSecurityGroupAlreadyExistsException' => __DIR__ . '/Aws/Rds/Exception/DBSecurityGroupAlreadyExistsException.php', - 'Aws\Rds\Exception\DBSecurityGroupNotFoundException' => __DIR__ . '/Aws/Rds/Exception/DBSecurityGroupNotFoundException.php', - 'Aws\Rds\Exception\DBSecurityGroupNotSupportedException' => __DIR__ . '/Aws/Rds/Exception/DBSecurityGroupNotSupportedException.php', - 'Aws\Rds\Exception\DBSecurityGroupQuotaExceededException' => __DIR__ . '/Aws/Rds/Exception/DBSecurityGroupQuotaExceededException.php', - 'Aws\Rds\Exception\DBSnapshotAlreadyExistsException' => __DIR__ . '/Aws/Rds/Exception/DBSnapshotAlreadyExistsException.php', - 'Aws\Rds\Exception\DBSnapshotNotFoundException' => __DIR__ . '/Aws/Rds/Exception/DBSnapshotNotFoundException.php', - 'Aws\Rds\Exception\DBSubnetGroupAlreadyExistsException' => __DIR__ . '/Aws/Rds/Exception/DBSubnetGroupAlreadyExistsException.php', - 'Aws\Rds\Exception\DBSubnetGroupDoesNotCoverEnoughAZsException' => __DIR__ . '/Aws/Rds/Exception/DBSubnetGroupDoesNotCoverEnoughAZsException.php', - 'Aws\Rds\Exception\DBSubnetGroupNotAllowedException' => __DIR__ . '/Aws/Rds/Exception/DBSubnetGroupNotAllowedException.php', - 'Aws\Rds\Exception\DBSubnetGroupNotFoundException' => __DIR__ . '/Aws/Rds/Exception/DBSubnetGroupNotFoundException.php', - 'Aws\Rds\Exception\DBSubnetGroupQuotaExceededException' => __DIR__ . '/Aws/Rds/Exception/DBSubnetGroupQuotaExceededException.php', - 'Aws\Rds\Exception\DBSubnetQuotaExceededException' => __DIR__ . '/Aws/Rds/Exception/DBSubnetQuotaExceededException.php', - 'Aws\Rds\Exception\DBUpgradeDependencyFailureException' => __DIR__ . '/Aws/Rds/Exception/DBUpgradeDependencyFailureException.php', - 'Aws\Rds\Exception\EventSubscriptionQuotaExceededException' => __DIR__ . '/Aws/Rds/Exception/EventSubscriptionQuotaExceededException.php', - 'Aws\Rds\Exception\InstanceQuotaExceededException' => __DIR__ . '/Aws/Rds/Exception/InstanceQuotaExceededException.php', - 'Aws\Rds\Exception\InsufficientDBInstanceCapacityException' => __DIR__ . '/Aws/Rds/Exception/InsufficientDBInstanceCapacityException.php', - 'Aws\Rds\Exception\InvalidDBInstanceStateException' => __DIR__ . '/Aws/Rds/Exception/InvalidDBInstanceStateException.php', - 'Aws\Rds\Exception\InvalidDBParameterGroupStateException' => __DIR__ . '/Aws/Rds/Exception/InvalidDBParameterGroupStateException.php', - 'Aws\Rds\Exception\InvalidDBSecurityGroupStateException' => __DIR__ . '/Aws/Rds/Exception/InvalidDBSecurityGroupStateException.php', - 'Aws\Rds\Exception\InvalidDBSnapshotStateException' => __DIR__ . '/Aws/Rds/Exception/InvalidDBSnapshotStateException.php', - 'Aws\Rds\Exception\InvalidDBSubnetGroupException' => __DIR__ . '/Aws/Rds/Exception/InvalidDBSubnetGroupException.php', - 'Aws\Rds\Exception\InvalidDBSubnetGroupStateException' => __DIR__ . '/Aws/Rds/Exception/InvalidDBSubnetGroupStateException.php', - 'Aws\Rds\Exception\InvalidDBSubnetStateException' => __DIR__ . '/Aws/Rds/Exception/InvalidDBSubnetStateException.php', - 'Aws\Rds\Exception\InvalidEventSubscriptionStateException' => __DIR__ . '/Aws/Rds/Exception/InvalidEventSubscriptionStateException.php', - 'Aws\Rds\Exception\InvalidOptionGroupStateException' => __DIR__ . '/Aws/Rds/Exception/InvalidOptionGroupStateException.php', - 'Aws\Rds\Exception\InvalidRestoreException' => __DIR__ . '/Aws/Rds/Exception/InvalidRestoreException.php', - 'Aws\Rds\Exception\InvalidSubnetException' => __DIR__ . '/Aws/Rds/Exception/InvalidSubnetException.php', - 'Aws\Rds\Exception\InvalidVPCNetworkStateException' => __DIR__ . '/Aws/Rds/Exception/InvalidVPCNetworkStateException.php', - 'Aws\Rds\Exception\OptionGroupAlreadyExistsException' => __DIR__ . '/Aws/Rds/Exception/OptionGroupAlreadyExistsException.php', - 'Aws\Rds\Exception\OptionGroupNotFoundException' => __DIR__ . '/Aws/Rds/Exception/OptionGroupNotFoundException.php', - 'Aws\Rds\Exception\OptionGroupQuotaExceededException' => __DIR__ . '/Aws/Rds/Exception/OptionGroupQuotaExceededException.php', - 'Aws\Rds\Exception\PointInTimeRestoreNotEnabledException' => __DIR__ . '/Aws/Rds/Exception/PointInTimeRestoreNotEnabledException.php', - 'Aws\Rds\Exception\ProvisionedIopsNotAvailableInAZException' => __DIR__ . '/Aws/Rds/Exception/ProvisionedIopsNotAvailableInAZException.php', + 'Aws\PhpHash' => __DIR__ . '/Aws/PhpHash.php', 'Aws\Rds\Exception\RdsException' => __DIR__ . '/Aws/Rds/Exception/RdsException.php', - 'Aws\Rds\Exception\ReservedDBInstanceAlreadyExistsException' => __DIR__ . '/Aws/Rds/Exception/ReservedDBInstanceAlreadyExistsException.php', - 'Aws\Rds\Exception\ReservedDBInstanceNotFoundException' => __DIR__ . '/Aws/Rds/Exception/ReservedDBInstanceNotFoundException.php', - 'Aws\Rds\Exception\ReservedDBInstanceQuotaExceededException' => __DIR__ . '/Aws/Rds/Exception/ReservedDBInstanceQuotaExceededException.php', - 'Aws\Rds\Exception\ReservedDBInstancesOfferingNotFoundException' => __DIR__ . '/Aws/Rds/Exception/ReservedDBInstancesOfferingNotFoundException.php', - 'Aws\Rds\Exception\SnapshotQuotaExceededException' => __DIR__ . '/Aws/Rds/Exception/SnapshotQuotaExceededException.php', - 'Aws\Rds\Exception\SNSInvalidTopicException' => __DIR__ . '/Aws/Rds/Exception/SNSInvalidTopicException.php', - 'Aws\Rds\Exception\SNSNoAuthorizationException' => __DIR__ . '/Aws/Rds/Exception/SNSNoAuthorizationException.php', - 'Aws\Rds\Exception\SNSTopicArnNotFoundException' => __DIR__ . '/Aws/Rds/Exception/SNSTopicArnNotFoundException.php', - 'Aws\Rds\Exception\SourceNotFoundException' => __DIR__ . '/Aws/Rds/Exception/SourceNotFoundException.php', - 'Aws\Rds\Exception\StorageQuotaExceededException' => __DIR__ . '/Aws/Rds/Exception/StorageQuotaExceededException.php', - 'Aws\Rds\Exception\SubnetAlreadyInUseException' => __DIR__ . '/Aws/Rds/Exception/SubnetAlreadyInUseException.php', - 'Aws\Rds\Exception\SubscriptionAlreadyExistException' => __DIR__ . '/Aws/Rds/Exception/SubscriptionAlreadyExistException.php', - 'Aws\Rds\Exception\SubscriptionCategoryNotFoundException' => __DIR__ . '/Aws/Rds/Exception/SubscriptionCategoryNotFoundException.php', - 'Aws\Rds\Exception\SubscriptionNotFoundException' => __DIR__ . '/Aws/Rds/Exception/SubscriptionNotFoundException.php', 'Aws\Rds\RdsClient' => __DIR__ . '/Aws/Rds/RdsClient.php', - 'Aws\Rds\Resources\rds-2014-10-31' => __DIR__ . '/Aws/Rds/Resources/rds-2014-10-31.php', - 'Aws\Redshift\Enum\SourceType' => __DIR__ . '/Aws/Redshift/Enum/SourceType.php', - 'Aws\Redshift\Exception\AccessToSnapshotDeniedException' => __DIR__ . '/Aws/Redshift/Exception/AccessToSnapshotDeniedException.php', - 'Aws\Redshift\Exception\AuthorizationAlreadyExistsException' => __DIR__ . '/Aws/Redshift/Exception/AuthorizationAlreadyExistsException.php', - 'Aws\Redshift\Exception\AuthorizationNotFoundException' => __DIR__ . '/Aws/Redshift/Exception/AuthorizationNotFoundException.php', - 'Aws\Redshift\Exception\AuthorizationQuotaExceededException' => __DIR__ . '/Aws/Redshift/Exception/AuthorizationQuotaExceededException.php', - 'Aws\Redshift\Exception\BucketNotFoundException' => __DIR__ . '/Aws/Redshift/Exception/BucketNotFoundException.php', - 'Aws\Redshift\Exception\ClusterAlreadyExistsException' => __DIR__ . '/Aws/Redshift/Exception/ClusterAlreadyExistsException.php', - 'Aws\Redshift\Exception\ClusterNotFoundException' => __DIR__ . '/Aws/Redshift/Exception/ClusterNotFoundException.php', - 'Aws\Redshift\Exception\ClusterParameterGroupAlreadyExistsException' => __DIR__ . '/Aws/Redshift/Exception/ClusterParameterGroupAlreadyExistsException.php', - 'Aws\Redshift\Exception\ClusterParameterGroupNotFoundException' => __DIR__ . '/Aws/Redshift/Exception/ClusterParameterGroupNotFoundException.php', - 'Aws\Redshift\Exception\ClusterParameterGroupQuotaExceededException' => __DIR__ . '/Aws/Redshift/Exception/ClusterParameterGroupQuotaExceededException.php', - 'Aws\Redshift\Exception\ClusterQuotaExceededException' => __DIR__ . '/Aws/Redshift/Exception/ClusterQuotaExceededException.php', - 'Aws\Redshift\Exception\ClusterSecurityGroupAlreadyExistsException' => __DIR__ . '/Aws/Redshift/Exception/ClusterSecurityGroupAlreadyExistsException.php', - 'Aws\Redshift\Exception\ClusterSecurityGroupNotFoundException' => __DIR__ . '/Aws/Redshift/Exception/ClusterSecurityGroupNotFoundException.php', - 'Aws\Redshift\Exception\ClusterSecurityGroupQuotaExceededException' => __DIR__ . '/Aws/Redshift/Exception/ClusterSecurityGroupQuotaExceededException.php', - 'Aws\Redshift\Exception\ClusterSnapshotAlreadyExistsException' => __DIR__ . '/Aws/Redshift/Exception/ClusterSnapshotAlreadyExistsException.php', - 'Aws\Redshift\Exception\ClusterSnapshotNotFoundException' => __DIR__ . '/Aws/Redshift/Exception/ClusterSnapshotNotFoundException.php', - 'Aws\Redshift\Exception\ClusterSnapshotQuotaExceededException' => __DIR__ . '/Aws/Redshift/Exception/ClusterSnapshotQuotaExceededException.php', - 'Aws\Redshift\Exception\ClusterSubnetGroupAlreadyExistsException' => __DIR__ . '/Aws/Redshift/Exception/ClusterSubnetGroupAlreadyExistsException.php', - 'Aws\Redshift\Exception\ClusterSubnetGroupNotFoundException' => __DIR__ . '/Aws/Redshift/Exception/ClusterSubnetGroupNotFoundException.php', - 'Aws\Redshift\Exception\ClusterSubnetGroupQuotaExceededException' => __DIR__ . '/Aws/Redshift/Exception/ClusterSubnetGroupQuotaExceededException.php', - 'Aws\Redshift\Exception\ClusterSubnetQuotaExceededException' => __DIR__ . '/Aws/Redshift/Exception/ClusterSubnetQuotaExceededException.php', - 'Aws\Redshift\Exception\CopyToRegionDisabledException' => __DIR__ . '/Aws/Redshift/Exception/CopyToRegionDisabledException.php', - 'Aws\Redshift\Exception\EventSubscriptionQuotaExceededException' => __DIR__ . '/Aws/Redshift/Exception/EventSubscriptionQuotaExceededException.php', - 'Aws\Redshift\Exception\HsmClientCertificateAlreadyExistsException' => __DIR__ . '/Aws/Redshift/Exception/HsmClientCertificateAlreadyExistsException.php', - 'Aws\Redshift\Exception\HsmClientCertificateNotFoundException' => __DIR__ . '/Aws/Redshift/Exception/HsmClientCertificateNotFoundException.php', - 'Aws\Redshift\Exception\HsmClientCertificateQuotaExceededException' => __DIR__ . '/Aws/Redshift/Exception/HsmClientCertificateQuotaExceededException.php', - 'Aws\Redshift\Exception\HsmConfigurationAlreadyExistsException' => __DIR__ . '/Aws/Redshift/Exception/HsmConfigurationAlreadyExistsException.php', - 'Aws\Redshift\Exception\HsmConfigurationNotFoundException' => __DIR__ . '/Aws/Redshift/Exception/HsmConfigurationNotFoundException.php', - 'Aws\Redshift\Exception\HsmConfigurationQuotaExceededException' => __DIR__ . '/Aws/Redshift/Exception/HsmConfigurationQuotaExceededException.php', - 'Aws\Redshift\Exception\IncompatibleOrderableOptionsException' => __DIR__ . '/Aws/Redshift/Exception/IncompatibleOrderableOptionsException.php', - 'Aws\Redshift\Exception\InsufficientClusterCapacityException' => __DIR__ . '/Aws/Redshift/Exception/InsufficientClusterCapacityException.php', - 'Aws\Redshift\Exception\InsufficientS3BucketPolicyFaultException' => __DIR__ . '/Aws/Redshift/Exception/InsufficientS3BucketPolicyFaultException.php', - 'Aws\Redshift\Exception\InvalidClusterParameterGroupStateException' => __DIR__ . '/Aws/Redshift/Exception/InvalidClusterParameterGroupStateException.php', - 'Aws\Redshift\Exception\InvalidClusterSecurityGroupStateException' => __DIR__ . '/Aws/Redshift/Exception/InvalidClusterSecurityGroupStateException.php', - 'Aws\Redshift\Exception\InvalidClusterSnapshotStateException' => __DIR__ . '/Aws/Redshift/Exception/InvalidClusterSnapshotStateException.php', - 'Aws\Redshift\Exception\InvalidClusterStateException' => __DIR__ . '/Aws/Redshift/Exception/InvalidClusterStateException.php', - 'Aws\Redshift\Exception\InvalidClusterSubnetGroupStateException' => __DIR__ . '/Aws/Redshift/Exception/InvalidClusterSubnetGroupStateException.php', - 'Aws\Redshift\Exception\InvalidClusterSubnetStateException' => __DIR__ . '/Aws/Redshift/Exception/InvalidClusterSubnetStateException.php', - 'Aws\Redshift\Exception\InvalidElasticIpException' => __DIR__ . '/Aws/Redshift/Exception/InvalidElasticIpException.php', - 'Aws\Redshift\Exception\InvalidHsmClientCertificateStateException' => __DIR__ . '/Aws/Redshift/Exception/InvalidHsmClientCertificateStateException.php', - 'Aws\Redshift\Exception\InvalidHsmConfigurationStateException' => __DIR__ . '/Aws/Redshift/Exception/InvalidHsmConfigurationStateException.php', - 'Aws\Redshift\Exception\InvalidRestoreException' => __DIR__ . '/Aws/Redshift/Exception/InvalidRestoreException.php', - 'Aws\Redshift\Exception\InvalidS3BucketNameFaultException' => __DIR__ . '/Aws/Redshift/Exception/InvalidS3BucketNameFaultException.php', - 'Aws\Redshift\Exception\InvalidS3KeyPrefixFaultException' => __DIR__ . '/Aws/Redshift/Exception/InvalidS3KeyPrefixFaultException.php', - 'Aws\Redshift\Exception\InvalidSubnetException' => __DIR__ . '/Aws/Redshift/Exception/InvalidSubnetException.php', - 'Aws\Redshift\Exception\InvalidVPCNetworkStateException' => __DIR__ . '/Aws/Redshift/Exception/InvalidVPCNetworkStateException.php', - 'Aws\Redshift\Exception\NumberOfNodesPerClusterLimitExceededException' => __DIR__ . '/Aws/Redshift/Exception/NumberOfNodesPerClusterLimitExceededException.php', - 'Aws\Redshift\Exception\NumberOfNodesQuotaExceededException' => __DIR__ . '/Aws/Redshift/Exception/NumberOfNodesQuotaExceededException.php', 'Aws\Redshift\Exception\RedshiftException' => __DIR__ . '/Aws/Redshift/Exception/RedshiftException.php', - 'Aws\Redshift\Exception\ReservedNodeAlreadyExistsException' => __DIR__ . '/Aws/Redshift/Exception/ReservedNodeAlreadyExistsException.php', - 'Aws\Redshift\Exception\ReservedNodeNotFoundException' => __DIR__ . '/Aws/Redshift/Exception/ReservedNodeNotFoundException.php', - 'Aws\Redshift\Exception\ReservedNodeOfferingNotFoundException' => __DIR__ . '/Aws/Redshift/Exception/ReservedNodeOfferingNotFoundException.php', - 'Aws\Redshift\Exception\ReservedNodeQuotaExceededException' => __DIR__ . '/Aws/Redshift/Exception/ReservedNodeQuotaExceededException.php', - 'Aws\Redshift\Exception\ResizeNotFoundException' => __DIR__ . '/Aws/Redshift/Exception/ResizeNotFoundException.php', - 'Aws\Redshift\Exception\SnapshotCopyAlreadyDisabledException' => __DIR__ . '/Aws/Redshift/Exception/SnapshotCopyAlreadyDisabledException.php', - 'Aws\Redshift\Exception\SnapshotCopyAlreadyEnabledException' => __DIR__ . '/Aws/Redshift/Exception/SnapshotCopyAlreadyEnabledException.php', - 'Aws\Redshift\Exception\SnapshotCopyDisabledException' => __DIR__ . '/Aws/Redshift/Exception/SnapshotCopyDisabledException.php', - 'Aws\Redshift\Exception\SNSInvalidTopicException' => __DIR__ . '/Aws/Redshift/Exception/SNSInvalidTopicException.php', - 'Aws\Redshift\Exception\SNSNoAuthorizationException' => __DIR__ . '/Aws/Redshift/Exception/SNSNoAuthorizationException.php', - 'Aws\Redshift\Exception\SNSTopicArnNotFoundException' => __DIR__ . '/Aws/Redshift/Exception/SNSTopicArnNotFoundException.php', - 'Aws\Redshift\Exception\SourceNotFoundException' => __DIR__ . '/Aws/Redshift/Exception/SourceNotFoundException.php', - 'Aws\Redshift\Exception\SubnetAlreadyInUseException' => __DIR__ . '/Aws/Redshift/Exception/SubnetAlreadyInUseException.php', - 'Aws\Redshift\Exception\SubscriptionAlreadyExistException' => __DIR__ . '/Aws/Redshift/Exception/SubscriptionAlreadyExistException.php', - 'Aws\Redshift\Exception\SubscriptionCategoryNotFoundException' => __DIR__ . '/Aws/Redshift/Exception/SubscriptionCategoryNotFoundException.php', - 'Aws\Redshift\Exception\SubscriptionEventIdNotFoundException' => __DIR__ . '/Aws/Redshift/Exception/SubscriptionEventIdNotFoundException.php', - 'Aws\Redshift\Exception\SubscriptionNotFoundException' => __DIR__ . '/Aws/Redshift/Exception/SubscriptionNotFoundException.php', - 'Aws\Redshift\Exception\SubscriptionSeverityNotFoundException' => __DIR__ . '/Aws/Redshift/Exception/SubscriptionSeverityNotFoundException.php', - 'Aws\Redshift\Exception\UnauthorizedOperationException' => __DIR__ . '/Aws/Redshift/Exception/UnauthorizedOperationException.php', - 'Aws\Redshift\Exception\UnknownSnapshotCopyRegionException' => __DIR__ . '/Aws/Redshift/Exception/UnknownSnapshotCopyRegionException.php', - 'Aws\Redshift\Exception\UnsupportedOptionException' => __DIR__ . '/Aws/Redshift/Exception/UnsupportedOptionException.php', 'Aws\Redshift\RedshiftClient' => __DIR__ . '/Aws/Redshift/RedshiftClient.php', - 'Aws\Redshift\Resources\redshift-2012-12-01' => __DIR__ . '/Aws/Redshift/Resources/redshift-2012-12-01.php', - 'Aws\Route53\Enum\Action' => __DIR__ . '/Aws/Route53/Enum/Action.php', - 'Aws\Route53\Enum\HealthCheckType' => __DIR__ . '/Aws/Route53/Enum/HealthCheckType.php', - 'Aws\Route53\Enum\RecordType' => __DIR__ . '/Aws/Route53/Enum/RecordType.php', - 'Aws\Route53\Enum\ResourceRecordSetFailover' => __DIR__ . '/Aws/Route53/Enum/ResourceRecordSetFailover.php', - 'Aws\Route53\Enum\Status' => __DIR__ . '/Aws/Route53/Enum/Status.php', - 'Aws\Route53\Exception\DelegationSetNotAvailableException' => __DIR__ . '/Aws/Route53/Exception/DelegationSetNotAvailableException.php', - 'Aws\Route53\Exception\HealthCheckAlreadyExistsException' => __DIR__ . '/Aws/Route53/Exception/HealthCheckAlreadyExistsException.php', - 'Aws\Route53\Exception\HealthCheckInUseException' => __DIR__ . '/Aws/Route53/Exception/HealthCheckInUseException.php', - 'Aws\Route53\Exception\HostedZoneAlreadyExistsException' => __DIR__ . '/Aws/Route53/Exception/HostedZoneAlreadyExistsException.php', - 'Aws\Route53\Exception\HostedZoneNotEmptyException' => __DIR__ . '/Aws/Route53/Exception/HostedZoneNotEmptyException.php', - 'Aws\Route53\Exception\IncompatibleVersionException' => __DIR__ . '/Aws/Route53/Exception/IncompatibleVersionException.php', - 'Aws\Route53\Exception\InvalidChangeBatchException' => __DIR__ . '/Aws/Route53/Exception/InvalidChangeBatchException.php', - 'Aws\Route53\Exception\InvalidDomainNameException' => __DIR__ . '/Aws/Route53/Exception/InvalidDomainNameException.php', - 'Aws\Route53\Exception\InvalidInputException' => __DIR__ . '/Aws/Route53/Exception/InvalidInputException.php', - 'Aws\Route53\Exception\NoSuchChangeException' => __DIR__ . '/Aws/Route53/Exception/NoSuchChangeException.php', - 'Aws\Route53\Exception\NoSuchHealthCheckException' => __DIR__ . '/Aws/Route53/Exception/NoSuchHealthCheckException.php', - 'Aws\Route53\Exception\NoSuchHostedZoneException' => __DIR__ . '/Aws/Route53/Exception/NoSuchHostedZoneException.php', - 'Aws\Route53\Exception\PriorRequestNotCompleteException' => __DIR__ . '/Aws/Route53/Exception/PriorRequestNotCompleteException.php', + 'Aws\Result' => __DIR__ . '/Aws/Result.php', + 'Aws\ResultInterface' => __DIR__ . '/Aws/ResultInterface.php', + 'Aws\ResultPaginator' => __DIR__ . '/Aws/ResultPaginator.php', + 'Aws\RetryMiddleware' => __DIR__ . '/Aws/RetryMiddleware.php', 'Aws\Route53\Exception\Route53Exception' => __DIR__ . '/Aws/Route53/Exception/Route53Exception.php', - 'Aws\Route53\Exception\TooManyHealthChecksException' => __DIR__ . '/Aws/Route53/Exception/TooManyHealthChecksException.php', - 'Aws\Route53\Exception\TooManyHostedZonesException' => __DIR__ . '/Aws/Route53/Exception/TooManyHostedZonesException.php', - 'Aws\Route53\Resources\route53-2013-04-01' => __DIR__ . '/Aws/Route53/Resources/route53-2013-04-01.php', 'Aws\Route53\Route53Client' => __DIR__ . '/Aws/Route53/Route53Client.php', 'Aws\Route53Domains\Exception\Route53DomainsException' => __DIR__ . '/Aws/Route53Domains/Exception/Route53DomainsException.php', - 'Aws\Route53Domains\Resources\route53domains-2014-05-15' => __DIR__ . '/Aws/Route53Domains/Resources/route53domains-2014-05-15.php', 'Aws\Route53Domains\Route53DomainsClient' => __DIR__ . '/Aws/Route53Domains/Route53DomainsClient.php', - 'Aws\S3\AcpListener' => __DIR__ . '/Aws/S3/AcpListener.php', - 'Aws\S3\BucketStyleListener' => __DIR__ . '/Aws/S3/BucketStyleListener.php', - 'Aws\S3\Command\S3Command' => __DIR__ . '/Aws/S3/Command/S3Command.php', - 'Aws\S3\Enum\CannedAcl' => __DIR__ . '/Aws/S3/Enum/CannedAcl.php', - 'Aws\S3\Enum\EncodingType' => __DIR__ . '/Aws/S3/Enum/EncodingType.php', - 'Aws\S3\Enum\Event' => __DIR__ . '/Aws/S3/Enum/Event.php', - 'Aws\S3\Enum\GranteeType' => __DIR__ . '/Aws/S3/Enum/GranteeType.php', - 'Aws\S3\Enum\Group' => __DIR__ . '/Aws/S3/Enum/Group.php', - 'Aws\S3\Enum\MetadataDirective' => __DIR__ . '/Aws/S3/Enum/MetadataDirective.php', - 'Aws\S3\Enum\MFADelete' => __DIR__ . '/Aws/S3/Enum/MFADelete.php', - 'Aws\S3\Enum\Payer' => __DIR__ . '/Aws/S3/Enum/Payer.php', - 'Aws\S3\Enum\Permission' => __DIR__ . '/Aws/S3/Enum/Permission.php', - 'Aws\S3\Enum\Protocol' => __DIR__ . '/Aws/S3/Enum/Protocol.php', - 'Aws\S3\Enum\ServerSideEncryption' => __DIR__ . '/Aws/S3/Enum/ServerSideEncryption.php', - 'Aws\S3\Enum\Status' => __DIR__ . '/Aws/S3/Enum/Status.php', - 'Aws\S3\Enum\Storage' => __DIR__ . '/Aws/S3/Enum/Storage.php', - 'Aws\S3\Enum\StorageClass' => __DIR__ . '/Aws/S3/Enum/StorageClass.php', - 'Aws\S3\Exception\AccessDeniedException' => __DIR__ . '/Aws/S3/Exception/AccessDeniedException.php', - 'Aws\S3\Exception\AccountProblemException' => __DIR__ . '/Aws/S3/Exception/AccountProblemException.php', - 'Aws\S3\Exception\AmbiguousGrantByEmailAddressException' => __DIR__ . '/Aws/S3/Exception/AmbiguousGrantByEmailAddressException.php', - 'Aws\S3\Exception\BadDigestException' => __DIR__ . '/Aws/S3/Exception/BadDigestException.php', - 'Aws\S3\Exception\BucketAlreadyExistsException' => __DIR__ . '/Aws/S3/Exception/BucketAlreadyExistsException.php', - 'Aws\S3\Exception\BucketAlreadyOwnedByYouException' => __DIR__ . '/Aws/S3/Exception/BucketAlreadyOwnedByYouException.php', - 'Aws\S3\Exception\BucketNotEmptyException' => __DIR__ . '/Aws/S3/Exception/BucketNotEmptyException.php', - 'Aws\S3\Exception\CredentialsNotSupportedException' => __DIR__ . '/Aws/S3/Exception/CredentialsNotSupportedException.php', - 'Aws\S3\Exception\CrossLocationLoggingProhibitedException' => __DIR__ . '/Aws/S3/Exception/CrossLocationLoggingProhibitedException.php', + 'Aws\S3\ApplyMd5Middleware' => __DIR__ . '/Aws/S3/ApplyMd5Middleware.php', + 'Aws\S3\BatchDelete' => __DIR__ . '/Aws/S3/BatchDelete.php', + 'Aws\S3\BucketEndpointMiddleware' => __DIR__ . '/Aws/S3/BucketEndpointMiddleware.php', 'Aws\S3\Exception\DeleteMultipleObjectsException' => __DIR__ . '/Aws/S3/Exception/DeleteMultipleObjectsException.php', - 'Aws\S3\Exception\EntityTooLargeException' => __DIR__ . '/Aws/S3/Exception/EntityTooLargeException.php', - 'Aws\S3\Exception\EntityTooSmallException' => __DIR__ . '/Aws/S3/Exception/EntityTooSmallException.php', - 'Aws\S3\Exception\ExpiredTokenException' => __DIR__ . '/Aws/S3/Exception/ExpiredTokenException.php', - 'Aws\S3\Exception\IllegalVersioningConfigurationException' => __DIR__ . '/Aws/S3/Exception/IllegalVersioningConfigurationException.php', - 'Aws\S3\Exception\IncompleteBodyException' => __DIR__ . '/Aws/S3/Exception/IncompleteBodyException.php', - 'Aws\S3\Exception\IncorrectNumberOfFilesInPostRequestException' => __DIR__ . '/Aws/S3/Exception/IncorrectNumberOfFilesInPostRequestException.php', - 'Aws\S3\Exception\InlineDataTooLargeException' => __DIR__ . '/Aws/S3/Exception/InlineDataTooLargeException.php', - 'Aws\S3\Exception\InternalErrorException' => __DIR__ . '/Aws/S3/Exception/InternalErrorException.php', - 'Aws\S3\Exception\InvalidAccessKeyIdException' => __DIR__ . '/Aws/S3/Exception/InvalidAccessKeyIdException.php', - 'Aws\S3\Exception\InvalidAddressingHeaderException' => __DIR__ . '/Aws/S3/Exception/InvalidAddressingHeaderException.php', - 'Aws\S3\Exception\InvalidArgumentException' => __DIR__ . '/Aws/S3/Exception/InvalidArgumentException.php', - 'Aws\S3\Exception\InvalidBucketNameException' => __DIR__ . '/Aws/S3/Exception/InvalidBucketNameException.php', - 'Aws\S3\Exception\InvalidBucketStateException' => __DIR__ . '/Aws/S3/Exception/InvalidBucketStateException.php', - 'Aws\S3\Exception\InvalidDigestException' => __DIR__ . '/Aws/S3/Exception/InvalidDigestException.php', - 'Aws\S3\Exception\InvalidLocationConstraintException' => __DIR__ . '/Aws/S3/Exception/InvalidLocationConstraintException.php', - 'Aws\S3\Exception\InvalidPartException' => __DIR__ . '/Aws/S3/Exception/InvalidPartException.php', - 'Aws\S3\Exception\InvalidPartOrderException' => __DIR__ . '/Aws/S3/Exception/InvalidPartOrderException.php', - 'Aws\S3\Exception\InvalidPayerException' => __DIR__ . '/Aws/S3/Exception/InvalidPayerException.php', - 'Aws\S3\Exception\InvalidPolicyDocumentException' => __DIR__ . '/Aws/S3/Exception/InvalidPolicyDocumentException.php', - 'Aws\S3\Exception\InvalidRangeException' => __DIR__ . '/Aws/S3/Exception/InvalidRangeException.php', - 'Aws\S3\Exception\InvalidRequestException' => __DIR__ . '/Aws/S3/Exception/InvalidRequestException.php', - 'Aws\S3\Exception\InvalidSecurityException' => __DIR__ . '/Aws/S3/Exception/InvalidSecurityException.php', - 'Aws\S3\Exception\InvalidSOAPRequestException' => __DIR__ . '/Aws/S3/Exception/InvalidSOAPRequestException.php', - 'Aws\S3\Exception\InvalidStorageClassException' => __DIR__ . '/Aws/S3/Exception/InvalidStorageClassException.php', - 'Aws\S3\Exception\InvalidTagErrorException' => __DIR__ . '/Aws/S3/Exception/InvalidTagErrorException.php', - 'Aws\S3\Exception\InvalidTargetBucketForLoggingException' => __DIR__ . '/Aws/S3/Exception/InvalidTargetBucketForLoggingException.php', - 'Aws\S3\Exception\InvalidTokenException' => __DIR__ . '/Aws/S3/Exception/InvalidTokenException.php', - 'Aws\S3\Exception\InvalidURIException' => __DIR__ . '/Aws/S3/Exception/InvalidURIException.php', - 'Aws\S3\Exception\KeyTooLongException' => __DIR__ . '/Aws/S3/Exception/KeyTooLongException.php', - 'Aws\S3\Exception\MalformedACLErrorException' => __DIR__ . '/Aws/S3/Exception/MalformedACLErrorException.php', - 'Aws\S3\Exception\MalformedPOSTRequestException' => __DIR__ . '/Aws/S3/Exception/MalformedPOSTRequestException.php', - 'Aws\S3\Exception\MalformedXMLException' => __DIR__ . '/Aws/S3/Exception/MalformedXMLException.php', - 'Aws\S3\Exception\MaxMessageLengthExceededException' => __DIR__ . '/Aws/S3/Exception/MaxMessageLengthExceededException.php', - 'Aws\S3\Exception\MaxPostPreDataLengthExceededErrorException' => __DIR__ . '/Aws/S3/Exception/MaxPostPreDataLengthExceededErrorException.php', - 'Aws\S3\Exception\MetadataTooLargeException' => __DIR__ . '/Aws/S3/Exception/MetadataTooLargeException.php', - 'Aws\S3\Exception\MethodNotAllowedException' => __DIR__ . '/Aws/S3/Exception/MethodNotAllowedException.php', - 'Aws\S3\Exception\MissingAttachmentException' => __DIR__ . '/Aws/S3/Exception/MissingAttachmentException.php', - 'Aws\S3\Exception\MissingContentLengthException' => __DIR__ . '/Aws/S3/Exception/MissingContentLengthException.php', - 'Aws\S3\Exception\MissingRequestBodyErrorException' => __DIR__ . '/Aws/S3/Exception/MissingRequestBodyErrorException.php', - 'Aws\S3\Exception\MissingSecurityElementException' => __DIR__ . '/Aws/S3/Exception/MissingSecurityElementException.php', - 'Aws\S3\Exception\MissingSecurityHeaderException' => __DIR__ . '/Aws/S3/Exception/MissingSecurityHeaderException.php', - 'Aws\S3\Exception\NoLoggingStatusForKeyException' => __DIR__ . '/Aws/S3/Exception/NoLoggingStatusForKeyException.php', - 'Aws\S3\Exception\NoSuchBucketException' => __DIR__ . '/Aws/S3/Exception/NoSuchBucketException.php', - 'Aws\S3\Exception\NoSuchBucketPolicyException' => __DIR__ . '/Aws/S3/Exception/NoSuchBucketPolicyException.php', - 'Aws\S3\Exception\NoSuchCORSConfigurationException' => __DIR__ . '/Aws/S3/Exception/NoSuchCORSConfigurationException.php', - 'Aws\S3\Exception\NoSuchKeyException' => __DIR__ . '/Aws/S3/Exception/NoSuchKeyException.php', - 'Aws\S3\Exception\NoSuchLifecycleConfigurationException' => __DIR__ . '/Aws/S3/Exception/NoSuchLifecycleConfigurationException.php', - 'Aws\S3\Exception\NoSuchTagSetException' => __DIR__ . '/Aws/S3/Exception/NoSuchTagSetException.php', - 'Aws\S3\Exception\NoSuchUploadException' => __DIR__ . '/Aws/S3/Exception/NoSuchUploadException.php', - 'Aws\S3\Exception\NoSuchVersionException' => __DIR__ . '/Aws/S3/Exception/NoSuchVersionException.php', - 'Aws\S3\Exception\NoSuchWebsiteConfigurationException' => __DIR__ . '/Aws/S3/Exception/NoSuchWebsiteConfigurationException.php', - 'Aws\S3\Exception\NotImplementedException' => __DIR__ . '/Aws/S3/Exception/NotImplementedException.php', - 'Aws\S3\Exception\NotSignedUpException' => __DIR__ . '/Aws/S3/Exception/NotSignedUpException.php', - 'Aws\S3\Exception\NotSuchBucketPolicyException' => __DIR__ . '/Aws/S3/Exception/NotSuchBucketPolicyException.php', - 'Aws\S3\Exception\ObjectAlreadyInActiveTierErrorException' => __DIR__ . '/Aws/S3/Exception/ObjectAlreadyInActiveTierErrorException.php', - 'Aws\S3\Exception\ObjectNotInActiveTierErrorException' => __DIR__ . '/Aws/S3/Exception/ObjectNotInActiveTierErrorException.php', - 'Aws\S3\Exception\OperationAbortedException' => __DIR__ . '/Aws/S3/Exception/OperationAbortedException.php', - 'Aws\S3\Exception\Parser\S3ExceptionParser' => __DIR__ . '/Aws/S3/Exception/Parser/S3ExceptionParser.php', 'Aws\S3\Exception\PermanentRedirectException' => __DIR__ . '/Aws/S3/Exception/PermanentRedirectException.php', - 'Aws\S3\Exception\PreconditionFailedException' => __DIR__ . '/Aws/S3/Exception/PreconditionFailedException.php', - 'Aws\S3\Exception\RedirectException' => __DIR__ . '/Aws/S3/Exception/RedirectException.php', - 'Aws\S3\Exception\RequestIsNotMultiPartContentException' => __DIR__ . '/Aws/S3/Exception/RequestIsNotMultiPartContentException.php', - 'Aws\S3\Exception\RequestTimeoutException' => __DIR__ . '/Aws/S3/Exception/RequestTimeoutException.php', - 'Aws\S3\Exception\RequestTimeTooSkewedException' => __DIR__ . '/Aws/S3/Exception/RequestTimeTooSkewedException.php', - 'Aws\S3\Exception\RequestTorrentOfBucketErrorException' => __DIR__ . '/Aws/S3/Exception/RequestTorrentOfBucketErrorException.php', 'Aws\S3\Exception\S3Exception' => __DIR__ . '/Aws/S3/Exception/S3Exception.php', - 'Aws\S3\Exception\ServiceUnavailableException' => __DIR__ . '/Aws/S3/Exception/ServiceUnavailableException.php', - 'Aws\S3\Exception\SignatureDoesNotMatchException' => __DIR__ . '/Aws/S3/Exception/SignatureDoesNotMatchException.php', - 'Aws\S3\Exception\SlowDownException' => __DIR__ . '/Aws/S3/Exception/SlowDownException.php', - 'Aws\S3\Exception\TemporaryRedirectException' => __DIR__ . '/Aws/S3/Exception/TemporaryRedirectException.php', - 'Aws\S3\Exception\TokenRefreshRequiredException' => __DIR__ . '/Aws/S3/Exception/TokenRefreshRequiredException.php', - 'Aws\S3\Exception\TooManyBucketsException' => __DIR__ . '/Aws/S3/Exception/TooManyBucketsException.php', - 'Aws\S3\Exception\UnexpectedContentException' => __DIR__ . '/Aws/S3/Exception/UnexpectedContentException.php', - 'Aws\S3\Exception\UnresolvableGrantByEmailAddressException' => __DIR__ . '/Aws/S3/Exception/UnresolvableGrantByEmailAddressException.php', - 'Aws\S3\Exception\UserKeyMustBeSpecifiedException' => __DIR__ . '/Aws/S3/Exception/UserKeyMustBeSpecifiedException.php', - 'Aws\S3\IncompleteMultipartUploadChecker' => __DIR__ . '/Aws/S3/IncompleteMultipartUploadChecker.php', - 'Aws\S3\Iterator\ListBucketsIterator' => __DIR__ . '/Aws/S3/Iterator/ListBucketsIterator.php', - 'Aws\S3\Iterator\ListMultipartUploadsIterator' => __DIR__ . '/Aws/S3/Iterator/ListMultipartUploadsIterator.php', - 'Aws\S3\Iterator\ListObjectsIterator' => __DIR__ . '/Aws/S3/Iterator/ListObjectsIterator.php', - 'Aws\S3\Iterator\ListObjectVersionsIterator' => __DIR__ . '/Aws/S3/Iterator/ListObjectVersionsIterator.php', - 'Aws\S3\Iterator\OpendirIterator' => __DIR__ . '/Aws/S3/Iterator/OpendirIterator.php', - 'Aws\S3\Model\Acp' => __DIR__ . '/Aws/S3/Model/Acp.php', - 'Aws\S3\Model\AcpBuilder' => __DIR__ . '/Aws/S3/Model/AcpBuilder.php', - 'Aws\S3\Model\ClearBucket' => __DIR__ . '/Aws/S3/Model/ClearBucket.php', - 'Aws\S3\Model\DeleteObjectsBatch' => __DIR__ . '/Aws/S3/Model/DeleteObjectsBatch.php', - 'Aws\S3\Model\DeleteObjectsTransfer' => __DIR__ . '/Aws/S3/Model/DeleteObjectsTransfer.php', - 'Aws\S3\Model\Grant' => __DIR__ . '/Aws/S3/Model/Grant.php', - 'Aws\S3\Model\Grantee' => __DIR__ . '/Aws/S3/Model/Grantee.php', - 'Aws\S3\Model\MultipartUpload\AbstractTransfer' => __DIR__ . '/Aws/S3/Model/MultipartUpload/AbstractTransfer.php', - 'Aws\S3\Model\MultipartUpload\ParallelTransfer' => __DIR__ . '/Aws/S3/Model/MultipartUpload/ParallelTransfer.php', - 'Aws\S3\Model\MultipartUpload\SerialTransfer' => __DIR__ . '/Aws/S3/Model/MultipartUpload/SerialTransfer.php', - 'Aws\S3\Model\MultipartUpload\TransferState' => __DIR__ . '/Aws/S3/Model/MultipartUpload/TransferState.php', - 'Aws\S3\Model\MultipartUpload\UploadBuilder' => __DIR__ . '/Aws/S3/Model/MultipartUpload/UploadBuilder.php', - 'Aws\S3\Model\MultipartUpload\UploadId' => __DIR__ . '/Aws/S3/Model/MultipartUpload/UploadId.php', - 'Aws\S3\Model\MultipartUpload\UploadPart' => __DIR__ . '/Aws/S3/Model/MultipartUpload/UploadPart.php', - 'Aws\S3\Model\PostObject' => __DIR__ . '/Aws/S3/Model/PostObject.php', - 'Aws\S3\Resources\s3-2006-03-01' => __DIR__ . '/Aws/S3/Resources/s3-2006-03-01.php', - 'Aws\S3\ResumableDownload' => __DIR__ . '/Aws/S3/ResumableDownload.php', + 'Aws\S3\GetBucketLocationParser' => __DIR__ . '/Aws/S3/GetBucketLocationParser.php', + 'Aws\S3\MultipartUploader' => __DIR__ . '/Aws/S3/MultipartUploader.php', + 'Aws\S3\PermanentRedirectMiddleware' => __DIR__ . '/Aws/S3/PermanentRedirectMiddleware.php', + 'Aws\S3\PostObject' => __DIR__ . '/Aws/S3/PostObject.php', + 'Aws\S3\PutObjectUrlMiddleware' => __DIR__ . '/Aws/S3/PutObjectUrlMiddleware.php', 'Aws\S3\S3Client' => __DIR__ . '/Aws/S3/S3Client.php', - 'Aws\S3\S3Md5Listener' => __DIR__ . '/Aws/S3/S3Md5Listener.php', - 'Aws\S3\S3Signature' => __DIR__ . '/Aws/S3/S3Signature.php', - 'Aws\S3\S3SignatureInterface' => __DIR__ . '/Aws/S3/S3SignatureInterface.php', - 'Aws\S3\S3SignatureV4' => __DIR__ . '/Aws/S3/S3SignatureV4.php', - 'Aws\S3\SocketTimeoutChecker' => __DIR__ . '/Aws/S3/SocketTimeoutChecker.php', - 'Aws\S3\SseCpkListener' => __DIR__ . '/Aws/S3/SseCpkListener.php', + 'Aws\S3\S3UriParser' => __DIR__ . '/Aws/S3/S3UriParser.php', + 'Aws\S3\SSECMiddleware' => __DIR__ . '/Aws/S3/SSECMiddleware.php', 'Aws\S3\StreamWrapper' => __DIR__ . '/Aws/S3/StreamWrapper.php', - 'Aws\S3\Sync\AbstractSync' => __DIR__ . '/Aws/S3/Sync/AbstractSync.php', - 'Aws\S3\Sync\AbstractSyncBuilder' => __DIR__ . '/Aws/S3/Sync/AbstractSyncBuilder.php', - 'Aws\S3\Sync\ChangedFilesIterator' => __DIR__ . '/Aws/S3/Sync/ChangedFilesIterator.php', - 'Aws\S3\Sync\DownloadSync' => __DIR__ . '/Aws/S3/Sync/DownloadSync.php', - 'Aws\S3\Sync\DownloadSyncBuilder' => __DIR__ . '/Aws/S3/Sync/DownloadSyncBuilder.php', - 'Aws\S3\Sync\FilenameConverterInterface' => __DIR__ . '/Aws/S3/Sync/FilenameConverterInterface.php', - 'Aws\S3\Sync\KeyConverter' => __DIR__ . '/Aws/S3/Sync/KeyConverter.php', - 'Aws\S3\Sync\UploadSync' => __DIR__ . '/Aws/S3/Sync/UploadSync.php', - 'Aws\S3\Sync\UploadSyncBuilder' => __DIR__ . '/Aws/S3/Sync/UploadSyncBuilder.php', - 'Aws\Ses\Enum\IdentityType' => __DIR__ . '/Aws/Ses/Enum/IdentityType.php', - 'Aws\Ses\Enum\MailboxSimulator' => __DIR__ . '/Aws/Ses/Enum/MailboxSimulator.php', - 'Aws\Ses\Enum\NotificationType' => __DIR__ . '/Aws/Ses/Enum/NotificationType.php', - 'Aws\Ses\Enum\VerificationStatus' => __DIR__ . '/Aws/Ses/Enum/VerificationStatus.php', - 'Aws\Ses\Exception\MessageRejectedException' => __DIR__ . '/Aws/Ses/Exception/MessageRejectedException.php', + 'Aws\S3\Transfer' => __DIR__ . '/Aws/S3/Transfer.php', + 'Aws\Sdk' => __DIR__ . '/Aws/Sdk.php', 'Aws\Ses\Exception\SesException' => __DIR__ . '/Aws/Ses/Exception/SesException.php', - 'Aws\Ses\Resources\ses-2010-12-01' => __DIR__ . '/Aws/Ses/Resources/ses-2010-12-01.php', 'Aws\Ses\SesClient' => __DIR__ . '/Aws/Ses/SesClient.php', - 'Aws\SimpleDb\Exception\AttributeDoesNotExistException' => __DIR__ . '/Aws/SimpleDb/Exception/AttributeDoesNotExistException.php', - 'Aws\SimpleDb\Exception\DuplicateItemNameException' => __DIR__ . '/Aws/SimpleDb/Exception/DuplicateItemNameException.php', - 'Aws\SimpleDb\Exception\InvalidNextTokenException' => __DIR__ . '/Aws/SimpleDb/Exception/InvalidNextTokenException.php', - 'Aws\SimpleDb\Exception\InvalidNumberPredicatesException' => __DIR__ . '/Aws/SimpleDb/Exception/InvalidNumberPredicatesException.php', - 'Aws\SimpleDb\Exception\InvalidNumberValueTestsException' => __DIR__ . '/Aws/SimpleDb/Exception/InvalidNumberValueTestsException.php', - 'Aws\SimpleDb\Exception\InvalidParameterValueException' => __DIR__ . '/Aws/SimpleDb/Exception/InvalidParameterValueException.php', - 'Aws\SimpleDb\Exception\InvalidQueryExpressionException' => __DIR__ . '/Aws/SimpleDb/Exception/InvalidQueryExpressionException.php', - 'Aws\SimpleDb\Exception\MissingParameterException' => __DIR__ . '/Aws/SimpleDb/Exception/MissingParameterException.php', - 'Aws\SimpleDb\Exception\NoSuchDomainException' => __DIR__ . '/Aws/SimpleDb/Exception/NoSuchDomainException.php', - 'Aws\SimpleDb\Exception\NumberDomainAttributesExceededException' => __DIR__ . '/Aws/SimpleDb/Exception/NumberDomainAttributesExceededException.php', - 'Aws\SimpleDb\Exception\NumberDomainBytesExceededException' => __DIR__ . '/Aws/SimpleDb/Exception/NumberDomainBytesExceededException.php', - 'Aws\SimpleDb\Exception\NumberDomainsExceededException' => __DIR__ . '/Aws/SimpleDb/Exception/NumberDomainsExceededException.php', - 'Aws\SimpleDb\Exception\NumberItemAttributesExceededException' => __DIR__ . '/Aws/SimpleDb/Exception/NumberItemAttributesExceededException.php', - 'Aws\SimpleDb\Exception\NumberSubmittedAttributesExceededException' => __DIR__ . '/Aws/SimpleDb/Exception/NumberSubmittedAttributesExceededException.php', - 'Aws\SimpleDb\Exception\NumberSubmittedItemsExceededException' => __DIR__ . '/Aws/SimpleDb/Exception/NumberSubmittedItemsExceededException.php', - 'Aws\SimpleDb\Exception\RequestTimeoutException' => __DIR__ . '/Aws/SimpleDb/Exception/RequestTimeoutException.php', - 'Aws\SimpleDb\Exception\SimpleDbException' => __DIR__ . '/Aws/SimpleDb/Exception/SimpleDbException.php', - 'Aws\SimpleDb\Exception\TooManyRequestedAttributesException' => __DIR__ . '/Aws/SimpleDb/Exception/TooManyRequestedAttributesException.php', - 'Aws\SimpleDb\Resources\simpledb-2009-04-15' => __DIR__ . '/Aws/SimpleDb/Resources/simpledb-2009-04-15.php', - 'Aws\SimpleDb\SimpleDbClient' => __DIR__ . '/Aws/SimpleDb/SimpleDbClient.php', - 'Aws\Sns\Exception\AuthorizationErrorException' => __DIR__ . '/Aws/Sns/Exception/AuthorizationErrorException.php', - 'Aws\Sns\Exception\EndpointDisabledException' => __DIR__ . '/Aws/Sns/Exception/EndpointDisabledException.php', - 'Aws\Sns\Exception\InternalErrorException' => __DIR__ . '/Aws/Sns/Exception/InternalErrorException.php', - 'Aws\Sns\Exception\InvalidParameterException' => __DIR__ . '/Aws/Sns/Exception/InvalidParameterException.php', - 'Aws\Sns\Exception\NotFoundException' => __DIR__ . '/Aws/Sns/Exception/NotFoundException.php', - 'Aws\Sns\Exception\PlatformApplicationDisabledException' => __DIR__ . '/Aws/Sns/Exception/PlatformApplicationDisabledException.php', + 'Aws\Signature\AnonymousSignature' => __DIR__ . '/Aws/Signature/AnonymousSignature.php', + 'Aws\Signature\S3SignatureV4' => __DIR__ . '/Aws/Signature/S3SignatureV4.php', + 'Aws\Signature\SignatureInterface' => __DIR__ . '/Aws/Signature/SignatureInterface.php', + 'Aws\Signature\SignatureProvider' => __DIR__ . '/Aws/Signature/SignatureProvider.php', + 'Aws\Signature\SignatureV4' => __DIR__ . '/Aws/Signature/SignatureV4.php', 'Aws\Sns\Exception\SnsException' => __DIR__ . '/Aws/Sns/Exception/SnsException.php', - 'Aws\Sns\Exception\SubscriptionLimitExceededException' => __DIR__ . '/Aws/Sns/Exception/SubscriptionLimitExceededException.php', - 'Aws\Sns\Exception\TopicLimitExceededException' => __DIR__ . '/Aws/Sns/Exception/TopicLimitExceededException.php', - 'Aws\Sns\MessageValidator\Exception\CannotGetPublicKeyFromCertificateException' => __DIR__ . '/Aws/Sns/MessageValidator/Exception/CannotGetPublicKeyFromCertificateException.php', - 'Aws\Sns\MessageValidator\Exception\CertificateFromUnrecognizedSourceException' => __DIR__ . '/Aws/Sns/MessageValidator/Exception/CertificateFromUnrecognizedSourceException.php', - 'Aws\Sns\MessageValidator\Exception\InvalidMessageSignatureException' => __DIR__ . '/Aws/Sns/MessageValidator/Exception/InvalidMessageSignatureException.php', - 'Aws\Sns\MessageValidator\Exception\SnsMessageValidatorException' => __DIR__ . '/Aws/Sns/MessageValidator/Exception/SnsMessageValidatorException.php', - 'Aws\Sns\MessageValidator\Message' => __DIR__ . '/Aws/Sns/MessageValidator/Message.php', - 'Aws\Sns\MessageValidator\MessageValidator' => __DIR__ . '/Aws/Sns/MessageValidator/MessageValidator.php', - 'Aws\Sns\Resources\sns-2010-03-31' => __DIR__ . '/Aws/Sns/Resources/sns-2010-03-31.php', 'Aws\Sns\SnsClient' => __DIR__ . '/Aws/Sns/SnsClient.php', - 'Aws\Sqs\Enum\MessageAttribute' => __DIR__ . '/Aws/Sqs/Enum/MessageAttribute.php', - 'Aws\Sqs\Enum\QueueAttribute' => __DIR__ . '/Aws/Sqs/Enum/QueueAttribute.php', 'Aws\Sqs\Exception\SqsException' => __DIR__ . '/Aws/Sqs/Exception/SqsException.php', - 'Aws\Sqs\Md5ValidatorListener' => __DIR__ . '/Aws/Sqs/Md5ValidatorListener.php', - 'Aws\Sqs\QueueUrlListener' => __DIR__ . '/Aws/Sqs/QueueUrlListener.php', - 'Aws\Sqs\Resources\sqs-2012-11-05' => __DIR__ . '/Aws/Sqs/Resources/sqs-2012-11-05.php', 'Aws\Sqs\SqsClient' => __DIR__ . '/Aws/Sqs/SqsClient.php', 'Aws\Ssm\Exception\SsmException' => __DIR__ . '/Aws/Ssm/Exception/SsmException.php', - 'Aws\Ssm\Resources\ssm-2014-11-06' => __DIR__ . '/Aws/Ssm/Resources/ssm-2014-11-06.php', 'Aws\Ssm\SsmClient' => __DIR__ . '/Aws/Ssm/SsmClient.php', - 'Aws\StorageGateway\Enum\BandwidthType' => __DIR__ . '/Aws/StorageGateway/Enum/BandwidthType.php', - 'Aws\StorageGateway\Enum\DiskAllocationType' => __DIR__ . '/Aws/StorageGateway/Enum/DiskAllocationType.php', - 'Aws\StorageGateway\Enum\ErrorCode' => __DIR__ . '/Aws/StorageGateway/Enum/ErrorCode.php', - 'Aws\StorageGateway\Enum\GatewayState' => __DIR__ . '/Aws/StorageGateway/Enum/GatewayState.php', - 'Aws\StorageGateway\Enum\GatewayTimezone' => __DIR__ . '/Aws/StorageGateway/Enum/GatewayTimezone.php', - 'Aws\StorageGateway\Enum\GatewayType' => __DIR__ . '/Aws/StorageGateway/Enum/GatewayType.php', - 'Aws\StorageGateway\Enum\VolumeStatus' => __DIR__ . '/Aws/StorageGateway/Enum/VolumeStatus.php', - 'Aws\StorageGateway\Enum\VolumeType' => __DIR__ . '/Aws/StorageGateway/Enum/VolumeType.php', - 'Aws\StorageGateway\Exception\InternalServerErrorException' => __DIR__ . '/Aws/StorageGateway/Exception/InternalServerErrorException.php', - 'Aws\StorageGateway\Exception\InvalidGatewayRequestException' => __DIR__ . '/Aws/StorageGateway/Exception/InvalidGatewayRequestException.php', 'Aws\StorageGateway\Exception\StorageGatewayException' => __DIR__ . '/Aws/StorageGateway/Exception/StorageGatewayException.php', - 'Aws\StorageGateway\Resources\storagegateway-2013-06-30' => __DIR__ . '/Aws/StorageGateway/Resources/storagegateway-2013-06-30.php', 'Aws\StorageGateway\StorageGatewayClient' => __DIR__ . '/Aws/StorageGateway/StorageGatewayClient.php', - 'Aws\Sts\Exception\ExpiredTokenException' => __DIR__ . '/Aws/Sts/Exception/ExpiredTokenException.php', - 'Aws\Sts\Exception\IDPCommunicationErrorException' => __DIR__ . '/Aws/Sts/Exception/IDPCommunicationErrorException.php', - 'Aws\Sts\Exception\IDPRejectedClaimException' => __DIR__ . '/Aws/Sts/Exception/IDPRejectedClaimException.php', - 'Aws\Sts\Exception\IncompleteSignatureException' => __DIR__ . '/Aws/Sts/Exception/IncompleteSignatureException.php', - 'Aws\Sts\Exception\InternalFailureException' => __DIR__ . '/Aws/Sts/Exception/InternalFailureException.php', - 'Aws\Sts\Exception\InvalidActionException' => __DIR__ . '/Aws/Sts/Exception/InvalidActionException.php', - 'Aws\Sts\Exception\InvalidAuthorizationMessageException' => __DIR__ . '/Aws/Sts/Exception/InvalidAuthorizationMessageException.php', - 'Aws\Sts\Exception\InvalidClientTokenIdException' => __DIR__ . '/Aws/Sts/Exception/InvalidClientTokenIdException.php', - 'Aws\Sts\Exception\InvalidIdentityTokenException' => __DIR__ . '/Aws/Sts/Exception/InvalidIdentityTokenException.php', - 'Aws\Sts\Exception\InvalidParameterCombinationException' => __DIR__ . '/Aws/Sts/Exception/InvalidParameterCombinationException.php', - 'Aws\Sts\Exception\InvalidParameterValueException' => __DIR__ . '/Aws/Sts/Exception/InvalidParameterValueException.php', - 'Aws\Sts\Exception\InvalidQueryParameterException' => __DIR__ . '/Aws/Sts/Exception/InvalidQueryParameterException.php', - 'Aws\Sts\Exception\MalformedPolicyDocumentException' => __DIR__ . '/Aws/Sts/Exception/MalformedPolicyDocumentException.php', - 'Aws\Sts\Exception\MalformedQueryStringException' => __DIR__ . '/Aws/Sts/Exception/MalformedQueryStringException.php', - 'Aws\Sts\Exception\MissingActionException' => __DIR__ . '/Aws/Sts/Exception/MissingActionException.php', - 'Aws\Sts\Exception\MissingAuthenticationTokenException' => __DIR__ . '/Aws/Sts/Exception/MissingAuthenticationTokenException.php', - 'Aws\Sts\Exception\MissingParameterException' => __DIR__ . '/Aws/Sts/Exception/MissingParameterException.php', - 'Aws\Sts\Exception\OptInRequiredException' => __DIR__ . '/Aws/Sts/Exception/OptInRequiredException.php', - 'Aws\Sts\Exception\PackedPolicyTooLargeException' => __DIR__ . '/Aws/Sts/Exception/PackedPolicyTooLargeException.php', - 'Aws\Sts\Exception\RequestExpiredException' => __DIR__ . '/Aws/Sts/Exception/RequestExpiredException.php', - 'Aws\Sts\Exception\ServiceUnavailableException' => __DIR__ . '/Aws/Sts/Exception/ServiceUnavailableException.php', 'Aws\Sts\Exception\StsException' => __DIR__ . '/Aws/Sts/Exception/StsException.php', - 'Aws\Sts\Exception\ThrottlingException' => __DIR__ . '/Aws/Sts/Exception/ThrottlingException.php', - 'Aws\Sts\Resources\sts-2011-06-15' => __DIR__ . '/Aws/Sts/Resources/sts-2011-06-15.php', 'Aws\Sts\StsClient' => __DIR__ . '/Aws/Sts/StsClient.php', - 'Aws\Support\Exception\CaseCreationLimitExceededException' => __DIR__ . '/Aws/Support/Exception/CaseCreationLimitExceededException.php', - 'Aws\Support\Exception\CaseIdNotFoundException' => __DIR__ . '/Aws/Support/Exception/CaseIdNotFoundException.php', - 'Aws\Support\Exception\InternalServerErrorException' => __DIR__ . '/Aws/Support/Exception/InternalServerErrorException.php', 'Aws\Support\Exception\SupportException' => __DIR__ . '/Aws/Support/Exception/SupportException.php', - 'Aws\Support\Resources\support-2013-04-15' => __DIR__ . '/Aws/Support/Resources/support-2013-04-15.php', 'Aws\Support\SupportClient' => __DIR__ . '/Aws/Support/SupportClient.php', - 'Aws\Swf\Enum\ActivityTaskTimeoutType' => __DIR__ . '/Aws/Swf/Enum/ActivityTaskTimeoutType.php', - 'Aws\Swf\Enum\ChildPolicy' => __DIR__ . '/Aws/Swf/Enum/ChildPolicy.php', - 'Aws\Swf\Enum\CloseStatus' => __DIR__ . '/Aws/Swf/Enum/CloseStatus.php', - 'Aws\Swf\Enum\DecisionTaskTimeoutType' => __DIR__ . '/Aws/Swf/Enum/DecisionTaskTimeoutType.php', - 'Aws\Swf\Enum\DecisionType' => __DIR__ . '/Aws/Swf/Enum/DecisionType.php', - 'Aws\Swf\Enum\EventType' => __DIR__ . '/Aws/Swf/Enum/EventType.php', - 'Aws\Swf\Enum\ExecutionStatus' => __DIR__ . '/Aws/Swf/Enum/ExecutionStatus.php', - 'Aws\Swf\Enum\RegistrationStatus' => __DIR__ . '/Aws/Swf/Enum/RegistrationStatus.php', - 'Aws\Swf\Enum\WorkflowExecutionTimeoutType' => __DIR__ . '/Aws/Swf/Enum/WorkflowExecutionTimeoutType.php', - 'Aws\Swf\Exception\DefaultUndefinedException' => __DIR__ . '/Aws/Swf/Exception/DefaultUndefinedException.php', - 'Aws\Swf\Exception\DomainAlreadyExistsException' => __DIR__ . '/Aws/Swf/Exception/DomainAlreadyExistsException.php', - 'Aws\Swf\Exception\DomainDeprecatedException' => __DIR__ . '/Aws/Swf/Exception/DomainDeprecatedException.php', - 'Aws\Swf\Exception\LimitExceededException' => __DIR__ . '/Aws/Swf/Exception/LimitExceededException.php', - 'Aws\Swf\Exception\OperationNotPermittedException' => __DIR__ . '/Aws/Swf/Exception/OperationNotPermittedException.php', 'Aws\Swf\Exception\SwfException' => __DIR__ . '/Aws/Swf/Exception/SwfException.php', - 'Aws\Swf\Exception\TypeAlreadyExistsException' => __DIR__ . '/Aws/Swf/Exception/TypeAlreadyExistsException.php', - 'Aws\Swf\Exception\TypeDeprecatedException' => __DIR__ . '/Aws/Swf/Exception/TypeDeprecatedException.php', - 'Aws\Swf\Exception\UnknownResourceException' => __DIR__ . '/Aws/Swf/Exception/UnknownResourceException.php', - 'Aws\Swf\Exception\WorkflowExecutionAlreadyStartedException' => __DIR__ . '/Aws/Swf/Exception/WorkflowExecutionAlreadyStartedException.php', - 'Aws\Swf\Resources\swf-2012-01-25' => __DIR__ . '/Aws/Swf/Resources/swf-2012-01-25.php', 'Aws\Swf\SwfClient' => __DIR__ . '/Aws/Swf/SwfClient.php', + 'Aws\TraceMiddleware' => __DIR__ . '/Aws/TraceMiddleware.php', + 'Aws\Waiter' => __DIR__ . '/Aws/Waiter.php', 'Aws\WorkSpaces\Exception\WorkSpacesException' => __DIR__ . '/Aws/WorkSpaces/Exception/WorkSpacesException.php', - 'Aws\WorkSpaces\Resources\workspaces-2015-04-08' => __DIR__ . '/Aws/WorkSpaces/Resources/workspaces-2015-04-08.php', 'Aws\WorkSpaces\WorkSpacesClient' => __DIR__ . '/Aws/WorkSpaces/WorkSpacesClient.php', - 'Doctrine\Common\Cache\ApcCache' => __DIR__ . '/Doctrine/Common/Cache/ApcCache.php', - 'Doctrine\Common\Cache\ArrayCache' => __DIR__ . '/Doctrine/Common/Cache/ArrayCache.php', - 'Doctrine\Common\Cache\Cache' => __DIR__ . '/Doctrine/Common/Cache/Cache.php', - 'Doctrine\Common\Cache\CacheProvider' => __DIR__ . '/Doctrine/Common/Cache/CacheProvider.php', - 'Doctrine\Common\Cache\ChainCache' => __DIR__ . '/Doctrine/Common/Cache/ChainCache.php', - 'Doctrine\Common\Cache\ClearableCache' => __DIR__ . '/Doctrine/Common/Cache/ClearableCache.php', - 'Doctrine\Common\Cache\CouchbaseCache' => __DIR__ . '/Doctrine/Common/Cache/CouchbaseCache.php', - 'Doctrine\Common\Cache\FileCache' => __DIR__ . '/Doctrine/Common/Cache/FileCache.php', - 'Doctrine\Common\Cache\FilesystemCache' => __DIR__ . '/Doctrine/Common/Cache/FilesystemCache.php', - 'Doctrine\Common\Cache\FlushableCache' => __DIR__ . '/Doctrine/Common/Cache/FlushableCache.php', - 'Doctrine\Common\Cache\MemcacheCache' => __DIR__ . '/Doctrine/Common/Cache/MemcacheCache.php', - 'Doctrine\Common\Cache\MemcachedCache' => __DIR__ . '/Doctrine/Common/Cache/MemcachedCache.php', - 'Doctrine\Common\Cache\MongoDBCache' => __DIR__ . '/Doctrine/Common/Cache/MongoDBCache.php', - 'Doctrine\Common\Cache\MultiGetCache' => __DIR__ . '/Doctrine/Common/Cache/MultiGetCache.php', - 'Doctrine\Common\Cache\PhpFileCache' => __DIR__ . '/Doctrine/Common/Cache/PhpFileCache.php', - 'Doctrine\Common\Cache\PredisCache' => __DIR__ . '/Doctrine/Common/Cache/PredisCache.php', - 'Doctrine\Common\Cache\RedisCache' => __DIR__ . '/Doctrine/Common/Cache/RedisCache.php', - 'Doctrine\Common\Cache\RiakCache' => __DIR__ . '/Doctrine/Common/Cache/RiakCache.php', - 'Doctrine\Common\Cache\SQLite3Cache' => __DIR__ . '/Doctrine/Common/Cache/SQLite3Cache.php', - 'Doctrine\Common\Cache\Version' => __DIR__ . '/Doctrine/Common/Cache/Version.php', - 'Doctrine\Common\Cache\VoidCache' => __DIR__ . '/Doctrine/Common/Cache/VoidCache.php', - 'Doctrine\Common\Cache\WinCacheCache' => __DIR__ . '/Doctrine/Common/Cache/WinCacheCache.php', - 'Doctrine\Common\Cache\XcacheCache' => __DIR__ . '/Doctrine/Common/Cache/XcacheCache.php', - 'Doctrine\Common\Cache\ZendDataCache' => __DIR__ . '/Doctrine/Common/Cache/ZendDataCache.php', - 'Guzzle\Batch\AbstractBatchDecorator' => __DIR__ . '/Guzzle/Batch/AbstractBatchDecorator.php', - 'Guzzle\Batch\Batch' => __DIR__ . '/Guzzle/Batch/Batch.php', - 'Guzzle\Batch\BatchBuilder' => __DIR__ . '/Guzzle/Batch/BatchBuilder.php', - 'Guzzle\Batch\BatchClosureDivisor' => __DIR__ . '/Guzzle/Batch/BatchClosureDivisor.php', - 'Guzzle\Batch\BatchClosureTransfer' => __DIR__ . '/Guzzle/Batch/BatchClosureTransfer.php', - 'Guzzle\Batch\BatchCommandTransfer' => __DIR__ . '/Guzzle/Batch/BatchCommandTransfer.php', - 'Guzzle\Batch\BatchDivisorInterface' => __DIR__ . '/Guzzle/Batch/BatchDivisorInterface.php', - 'Guzzle\Batch\BatchInterface' => __DIR__ . '/Guzzle/Batch/BatchInterface.php', - 'Guzzle\Batch\BatchRequestTransfer' => __DIR__ . '/Guzzle/Batch/BatchRequestTransfer.php', - 'Guzzle\Batch\BatchSizeDivisor' => __DIR__ . '/Guzzle/Batch/BatchSizeDivisor.php', - 'Guzzle\Batch\BatchTransferInterface' => __DIR__ . '/Guzzle/Batch/BatchTransferInterface.php', - 'Guzzle\Batch\Exception\BatchTransferException' => __DIR__ . '/Guzzle/Batch/Exception/BatchTransferException.php', - 'Guzzle\Batch\ExceptionBufferingBatch' => __DIR__ . '/Guzzle/Batch/ExceptionBufferingBatch.php', - 'Guzzle\Batch\FlushingBatch' => __DIR__ . '/Guzzle/Batch/FlushingBatch.php', - 'Guzzle\Batch\HistoryBatch' => __DIR__ . '/Guzzle/Batch/HistoryBatch.php', - 'Guzzle\Batch\NotifyingBatch' => __DIR__ . '/Guzzle/Batch/NotifyingBatch.php', - 'Guzzle\Cache\AbstractCacheAdapter' => __DIR__ . '/Guzzle/Cache/AbstractCacheAdapter.php', - 'Guzzle\Cache\CacheAdapterFactory' => __DIR__ . '/Guzzle/Cache/CacheAdapterFactory.php', - 'Guzzle\Cache\CacheAdapterInterface' => __DIR__ . '/Guzzle/Cache/CacheAdapterInterface.php', - 'Guzzle\Cache\ClosureCacheAdapter' => __DIR__ . '/Guzzle/Cache/ClosureCacheAdapter.php', - 'Guzzle\Cache\DoctrineCacheAdapter' => __DIR__ . '/Guzzle/Cache/DoctrineCacheAdapter.php', - 'Guzzle\Cache\NullCacheAdapter' => __DIR__ . '/Guzzle/Cache/NullCacheAdapter.php', - 'Guzzle\Cache\Zf1CacheAdapter' => __DIR__ . '/Guzzle/Cache/Zf1CacheAdapter.php', - 'Guzzle\Cache\Zf2CacheAdapter' => __DIR__ . '/Guzzle/Cache/Zf2CacheAdapter.php', - 'Guzzle\Common\AbstractHasDispatcher' => __DIR__ . '/Guzzle/Common/AbstractHasDispatcher.php', - 'Guzzle\Common\Collection' => __DIR__ . '/Guzzle/Common/Collection.php', - 'Guzzle\Common\Event' => __DIR__ . '/Guzzle/Common/Event.php', - 'Guzzle\Common\Exception\BadMethodCallException' => __DIR__ . '/Guzzle/Common/Exception/BadMethodCallException.php', - 'Guzzle\Common\Exception\ExceptionCollection' => __DIR__ . '/Guzzle/Common/Exception/ExceptionCollection.php', - 'Guzzle\Common\Exception\GuzzleException' => __DIR__ . '/Guzzle/Common/Exception/GuzzleException.php', - 'Guzzle\Common\Exception\InvalidArgumentException' => __DIR__ . '/Guzzle/Common/Exception/InvalidArgumentException.php', - 'Guzzle\Common\Exception\RuntimeException' => __DIR__ . '/Guzzle/Common/Exception/RuntimeException.php', - 'Guzzle\Common\Exception\UnexpectedValueException' => __DIR__ . '/Guzzle/Common/Exception/UnexpectedValueException.php', - 'Guzzle\Common\FromConfigInterface' => __DIR__ . '/Guzzle/Common/FromConfigInterface.php', - 'Guzzle\Common\HasDispatcherInterface' => __DIR__ . '/Guzzle/Common/HasDispatcherInterface.php', - 'Guzzle\Common\ToArrayInterface' => __DIR__ . '/Guzzle/Common/ToArrayInterface.php', - 'Guzzle\Common\Version' => __DIR__ . '/Guzzle/Common/Version.php', - 'Guzzle\Http\AbstractEntityBodyDecorator' => __DIR__ . '/Guzzle/Http/AbstractEntityBodyDecorator.php', - 'Guzzle\Http\CachingEntityBody' => __DIR__ . '/Guzzle/Http/CachingEntityBody.php', - 'Guzzle\Http\Client' => __DIR__ . '/Guzzle/Http/Client.php', - 'Guzzle\Http\ClientInterface' => __DIR__ . '/Guzzle/Http/ClientInterface.php', - 'Guzzle\Http\Curl\CurlHandle' => __DIR__ . '/Guzzle/Http/Curl/CurlHandle.php', - 'Guzzle\Http\Curl\CurlMulti' => __DIR__ . '/Guzzle/Http/Curl/CurlMulti.php', - 'Guzzle\Http\Curl\CurlMultiInterface' => __DIR__ . '/Guzzle/Http/Curl/CurlMultiInterface.php', - 'Guzzle\Http\Curl\CurlMultiProxy' => __DIR__ . '/Guzzle/Http/Curl/CurlMultiProxy.php', - 'Guzzle\Http\Curl\CurlVersion' => __DIR__ . '/Guzzle/Http/Curl/CurlVersion.php', - 'Guzzle\Http\Curl\RequestMediator' => __DIR__ . '/Guzzle/Http/Curl/RequestMediator.php', - 'Guzzle\Http\EntityBody' => __DIR__ . '/Guzzle/Http/EntityBody.php', - 'Guzzle\Http\EntityBodyInterface' => __DIR__ . '/Guzzle/Http/EntityBodyInterface.php', - 'Guzzle\Http\Exception\BadResponseException' => __DIR__ . '/Guzzle/Http/Exception/BadResponseException.php', - 'Guzzle\Http\Exception\ClientErrorResponseException' => __DIR__ . '/Guzzle/Http/Exception/ClientErrorResponseException.php', - 'Guzzle\Http\Exception\CouldNotRewindStreamException' => __DIR__ . '/Guzzle/Http/Exception/CouldNotRewindStreamException.php', - 'Guzzle\Http\Exception\CurlException' => __DIR__ . '/Guzzle/Http/Exception/CurlException.php', - 'Guzzle\Http\Exception\HttpException' => __DIR__ . '/Guzzle/Http/Exception/HttpException.php', - 'Guzzle\Http\Exception\MultiTransferException' => __DIR__ . '/Guzzle/Http/Exception/MultiTransferException.php', - 'Guzzle\Http\Exception\RequestException' => __DIR__ . '/Guzzle/Http/Exception/RequestException.php', - 'Guzzle\Http\Exception\ServerErrorResponseException' => __DIR__ . '/Guzzle/Http/Exception/ServerErrorResponseException.php', - 'Guzzle\Http\Exception\TooManyRedirectsException' => __DIR__ . '/Guzzle/Http/Exception/TooManyRedirectsException.php', - 'Guzzle\Http\IoEmittingEntityBody' => __DIR__ . '/Guzzle/Http/IoEmittingEntityBody.php', - 'Guzzle\Http\Message\AbstractMessage' => __DIR__ . '/Guzzle/Http/Message/AbstractMessage.php', - 'Guzzle\Http\Message\EntityEnclosingRequest' => __DIR__ . '/Guzzle/Http/Message/EntityEnclosingRequest.php', - 'Guzzle\Http\Message\EntityEnclosingRequestInterface' => __DIR__ . '/Guzzle/Http/Message/EntityEnclosingRequestInterface.php', - 'Guzzle\Http\Message\Header\CacheControl' => __DIR__ . '/Guzzle/Http/Message/Header/CacheControl.php', - 'Guzzle\Http\Message\Header\HeaderCollection' => __DIR__ . '/Guzzle/Http/Message/Header/HeaderCollection.php', - 'Guzzle\Http\Message\Header\HeaderFactory' => __DIR__ . '/Guzzle/Http/Message/Header/HeaderFactory.php', - 'Guzzle\Http\Message\Header\HeaderFactoryInterface' => __DIR__ . '/Guzzle/Http/Message/Header/HeaderFactoryInterface.php', - 'Guzzle\Http\Message\Header\HeaderInterface' => __DIR__ . '/Guzzle/Http/Message/Header/HeaderInterface.php', - 'Guzzle\Http\Message\Header\Link' => __DIR__ . '/Guzzle/Http/Message/Header/Link.php', - 'Guzzle\Http\Message\Header' => __DIR__ . '/Guzzle/Http/Message/Header.php', - 'Guzzle\Http\Message\MessageInterface' => __DIR__ . '/Guzzle/Http/Message/MessageInterface.php', - 'Guzzle\Http\Message\PostFile' => __DIR__ . '/Guzzle/Http/Message/PostFile.php', - 'Guzzle\Http\Message\PostFileInterface' => __DIR__ . '/Guzzle/Http/Message/PostFileInterface.php', - 'Guzzle\Http\Message\Request' => __DIR__ . '/Guzzle/Http/Message/Request.php', - 'Guzzle\Http\Message\RequestFactory' => __DIR__ . '/Guzzle/Http/Message/RequestFactory.php', - 'Guzzle\Http\Message\RequestFactoryInterface' => __DIR__ . '/Guzzle/Http/Message/RequestFactoryInterface.php', - 'Guzzle\Http\Message\RequestInterface' => __DIR__ . '/Guzzle/Http/Message/RequestInterface.php', - 'Guzzle\Http\Message\Response' => __DIR__ . '/Guzzle/Http/Message/Response.php', - 'Guzzle\Http\Mimetypes' => __DIR__ . '/Guzzle/Http/Mimetypes.php', - 'Guzzle\Http\QueryAggregator\CommaAggregator' => __DIR__ . '/Guzzle/Http/QueryAggregator/CommaAggregator.php', - 'Guzzle\Http\QueryAggregator\DuplicateAggregator' => __DIR__ . '/Guzzle/Http/QueryAggregator/DuplicateAggregator.php', - 'Guzzle\Http\QueryAggregator\PhpAggregator' => __DIR__ . '/Guzzle/Http/QueryAggregator/PhpAggregator.php', - 'Guzzle\Http\QueryAggregator\QueryAggregatorInterface' => __DIR__ . '/Guzzle/Http/QueryAggregator/QueryAggregatorInterface.php', - 'Guzzle\Http\QueryString' => __DIR__ . '/Guzzle/Http/QueryString.php', - 'Guzzle\Http\ReadLimitEntityBody' => __DIR__ . '/Guzzle/Http/ReadLimitEntityBody.php', - 'Guzzle\Http\RedirectPlugin' => __DIR__ . '/Guzzle/Http/RedirectPlugin.php', - 'Guzzle\Http\StaticClient' => __DIR__ . '/Guzzle/Http/StaticClient.php', - 'Guzzle\Http\Url' => __DIR__ . '/Guzzle/Http/Url.php', - 'Guzzle\Inflection\Inflector' => __DIR__ . '/Guzzle/Inflection/Inflector.php', - 'Guzzle\Inflection\InflectorInterface' => __DIR__ . '/Guzzle/Inflection/InflectorInterface.php', - 'Guzzle\Inflection\MemoizingInflector' => __DIR__ . '/Guzzle/Inflection/MemoizingInflector.php', - 'Guzzle\Inflection\PreComputedInflector' => __DIR__ . '/Guzzle/Inflection/PreComputedInflector.php', - 'Guzzle\Iterator\AppendIterator' => __DIR__ . '/Guzzle/Iterator/AppendIterator.php', - 'Guzzle\Iterator\ChunkedIterator' => __DIR__ . '/Guzzle/Iterator/ChunkedIterator.php', - 'Guzzle\Iterator\FilterIterator' => __DIR__ . '/Guzzle/Iterator/FilterIterator.php', - 'Guzzle\Iterator\MapIterator' => __DIR__ . '/Guzzle/Iterator/MapIterator.php', - 'Guzzle\Iterator\MethodProxyIterator' => __DIR__ . '/Guzzle/Iterator/MethodProxyIterator.php', - 'Guzzle\Log\AbstractLogAdapter' => __DIR__ . '/Guzzle/Log/AbstractLogAdapter.php', - 'Guzzle\Log\ArrayLogAdapter' => __DIR__ . '/Guzzle/Log/ArrayLogAdapter.php', - 'Guzzle\Log\ClosureLogAdapter' => __DIR__ . '/Guzzle/Log/ClosureLogAdapter.php', - 'Guzzle\Log\LogAdapterInterface' => __DIR__ . '/Guzzle/Log/LogAdapterInterface.php', - 'Guzzle\Log\MessageFormatter' => __DIR__ . '/Guzzle/Log/MessageFormatter.php', - 'Guzzle\Log\MonologLogAdapter' => __DIR__ . '/Guzzle/Log/MonologLogAdapter.php', - 'Guzzle\Log\PsrLogAdapter' => __DIR__ . '/Guzzle/Log/PsrLogAdapter.php', - 'Guzzle\Log\Zf1LogAdapter' => __DIR__ . '/Guzzle/Log/Zf1LogAdapter.php', - 'Guzzle\Log\Zf2LogAdapter' => __DIR__ . '/Guzzle/Log/Zf2LogAdapter.php', - 'Guzzle\Parser\Cookie\CookieParser' => __DIR__ . '/Guzzle/Parser/Cookie/CookieParser.php', - 'Guzzle\Parser\Cookie\CookieParserInterface' => __DIR__ . '/Guzzle/Parser/Cookie/CookieParserInterface.php', - 'Guzzle\Parser\Message\AbstractMessageParser' => __DIR__ . '/Guzzle/Parser/Message/AbstractMessageParser.php', - 'Guzzle\Parser\Message\MessageParser' => __DIR__ . '/Guzzle/Parser/Message/MessageParser.php', - 'Guzzle\Parser\Message\MessageParserInterface' => __DIR__ . '/Guzzle/Parser/Message/MessageParserInterface.php', - 'Guzzle\Parser\Message\PeclHttpMessageParser' => __DIR__ . '/Guzzle/Parser/Message/PeclHttpMessageParser.php', - 'Guzzle\Parser\ParserRegistry' => __DIR__ . '/Guzzle/Parser/ParserRegistry.php', - 'Guzzle\Parser\UriTemplate\PeclUriTemplate' => __DIR__ . '/Guzzle/Parser/UriTemplate/PeclUriTemplate.php', - 'Guzzle\Parser\UriTemplate\UriTemplate' => __DIR__ . '/Guzzle/Parser/UriTemplate/UriTemplate.php', - 'Guzzle\Parser\UriTemplate\UriTemplateInterface' => __DIR__ . '/Guzzle/Parser/UriTemplate/UriTemplateInterface.php', - 'Guzzle\Parser\Url\UrlParser' => __DIR__ . '/Guzzle/Parser/Url/UrlParser.php', - 'Guzzle\Parser\Url\UrlParserInterface' => __DIR__ . '/Guzzle/Parser/Url/UrlParserInterface.php', - 'Guzzle\Plugin\Async\AsyncPlugin' => __DIR__ . '/Guzzle/Plugin/Async/AsyncPlugin.php', - 'Guzzle\Plugin\Backoff\AbstractBackoffStrategy' => __DIR__ . '/Guzzle/Plugin/Backoff/AbstractBackoffStrategy.php', - 'Guzzle\Plugin\Backoff\AbstractErrorCodeBackoffStrategy' => __DIR__ . '/Guzzle/Plugin/Backoff/AbstractErrorCodeBackoffStrategy.php', - 'Guzzle\Plugin\Backoff\BackoffLogger' => __DIR__ . '/Guzzle/Plugin/Backoff/BackoffLogger.php', - 'Guzzle\Plugin\Backoff\BackoffPlugin' => __DIR__ . '/Guzzle/Plugin/Backoff/BackoffPlugin.php', - 'Guzzle\Plugin\Backoff\BackoffStrategyInterface' => __DIR__ . '/Guzzle/Plugin/Backoff/BackoffStrategyInterface.php', - 'Guzzle\Plugin\Backoff\CallbackBackoffStrategy' => __DIR__ . '/Guzzle/Plugin/Backoff/CallbackBackoffStrategy.php', - 'Guzzle\Plugin\Backoff\ConstantBackoffStrategy' => __DIR__ . '/Guzzle/Plugin/Backoff/ConstantBackoffStrategy.php', - 'Guzzle\Plugin\Backoff\CurlBackoffStrategy' => __DIR__ . '/Guzzle/Plugin/Backoff/CurlBackoffStrategy.php', - 'Guzzle\Plugin\Backoff\ExponentialBackoffStrategy' => __DIR__ . '/Guzzle/Plugin/Backoff/ExponentialBackoffStrategy.php', - 'Guzzle\Plugin\Backoff\HttpBackoffStrategy' => __DIR__ . '/Guzzle/Plugin/Backoff/HttpBackoffStrategy.php', - 'Guzzle\Plugin\Backoff\LinearBackoffStrategy' => __DIR__ . '/Guzzle/Plugin/Backoff/LinearBackoffStrategy.php', - 'Guzzle\Plugin\Backoff\ReasonPhraseBackoffStrategy' => __DIR__ . '/Guzzle/Plugin/Backoff/ReasonPhraseBackoffStrategy.php', - 'Guzzle\Plugin\Backoff\TruncatedBackoffStrategy' => __DIR__ . '/Guzzle/Plugin/Backoff/TruncatedBackoffStrategy.php', - 'Guzzle\Plugin\Cache\CacheKeyProviderInterface' => __DIR__ . '/Guzzle/Plugin/Cache/CacheKeyProviderInterface.php', - 'Guzzle\Plugin\Cache\CachePlugin' => __DIR__ . '/Guzzle/Plugin/Cache/CachePlugin.php', - 'Guzzle\Plugin\Cache\CacheStorageInterface' => __DIR__ . '/Guzzle/Plugin/Cache/CacheStorageInterface.php', - 'Guzzle\Plugin\Cache\CallbackCanCacheStrategy' => __DIR__ . '/Guzzle/Plugin/Cache/CallbackCanCacheStrategy.php', - 'Guzzle\Plugin\Cache\CanCacheStrategyInterface' => __DIR__ . '/Guzzle/Plugin/Cache/CanCacheStrategyInterface.php', - 'Guzzle\Plugin\Cache\DefaultCacheKeyProvider' => __DIR__ . '/Guzzle/Plugin/Cache/DefaultCacheKeyProvider.php', - 'Guzzle\Plugin\Cache\DefaultCacheStorage' => __DIR__ . '/Guzzle/Plugin/Cache/DefaultCacheStorage.php', - 'Guzzle\Plugin\Cache\DefaultCanCacheStrategy' => __DIR__ . '/Guzzle/Plugin/Cache/DefaultCanCacheStrategy.php', - 'Guzzle\Plugin\Cache\DefaultRevalidation' => __DIR__ . '/Guzzle/Plugin/Cache/DefaultRevalidation.php', - 'Guzzle\Plugin\Cache\DenyRevalidation' => __DIR__ . '/Guzzle/Plugin/Cache/DenyRevalidation.php', - 'Guzzle\Plugin\Cache\RevalidationInterface' => __DIR__ . '/Guzzle/Plugin/Cache/RevalidationInterface.php', - 'Guzzle\Plugin\Cache\SkipRevalidation' => __DIR__ . '/Guzzle/Plugin/Cache/SkipRevalidation.php', - 'Guzzle\Plugin\Cookie\Cookie' => __DIR__ . '/Guzzle/Plugin/Cookie/Cookie.php', - 'Guzzle\Plugin\Cookie\CookieJar\ArrayCookieJar' => __DIR__ . '/Guzzle/Plugin/Cookie/CookieJar/ArrayCookieJar.php', - 'Guzzle\Plugin\Cookie\CookieJar\CookieJarInterface' => __DIR__ . '/Guzzle/Plugin/Cookie/CookieJar/CookieJarInterface.php', - 'Guzzle\Plugin\Cookie\CookieJar\FileCookieJar' => __DIR__ . '/Guzzle/Plugin/Cookie/CookieJar/FileCookieJar.php', - 'Guzzle\Plugin\Cookie\CookiePlugin' => __DIR__ . '/Guzzle/Plugin/Cookie/CookiePlugin.php', - 'Guzzle\Plugin\Cookie\Exception\InvalidCookieException' => __DIR__ . '/Guzzle/Plugin/Cookie/Exception/InvalidCookieException.php', - 'Guzzle\Plugin\CurlAuth\CurlAuthPlugin' => __DIR__ . '/Guzzle/Plugin/CurlAuth/CurlAuthPlugin.php', - 'Guzzle\Plugin\ErrorResponse\ErrorResponseExceptionInterface' => __DIR__ . '/Guzzle/Plugin/ErrorResponse/ErrorResponseExceptionInterface.php', - 'Guzzle\Plugin\ErrorResponse\ErrorResponsePlugin' => __DIR__ . '/Guzzle/Plugin/ErrorResponse/ErrorResponsePlugin.php', - 'Guzzle\Plugin\ErrorResponse\Exception\ErrorResponseException' => __DIR__ . '/Guzzle/Plugin/ErrorResponse/Exception/ErrorResponseException.php', - 'Guzzle\Plugin\History\HistoryPlugin' => __DIR__ . '/Guzzle/Plugin/History/HistoryPlugin.php', - 'Guzzle\Plugin\Log\LogPlugin' => __DIR__ . '/Guzzle/Plugin/Log/LogPlugin.php', - 'Guzzle\Plugin\Md5\CommandContentMd5Plugin' => __DIR__ . '/Guzzle/Plugin/Md5/CommandContentMd5Plugin.php', - 'Guzzle\Plugin\Md5\Md5ValidatorPlugin' => __DIR__ . '/Guzzle/Plugin/Md5/Md5ValidatorPlugin.php', - 'Guzzle\Plugin\Mock\MockPlugin' => __DIR__ . '/Guzzle/Plugin/Mock/MockPlugin.php', - 'Guzzle\Plugin\Oauth\OauthPlugin' => __DIR__ . '/Guzzle/Plugin/Oauth/OauthPlugin.php', - 'Guzzle\Service\AbstractConfigLoader' => __DIR__ . '/Guzzle/Service/AbstractConfigLoader.php', - 'Guzzle\Service\Builder\ServiceBuilder' => __DIR__ . '/Guzzle/Service/Builder/ServiceBuilder.php', - 'Guzzle\Service\Builder\ServiceBuilderInterface' => __DIR__ . '/Guzzle/Service/Builder/ServiceBuilderInterface.php', - 'Guzzle\Service\Builder\ServiceBuilderLoader' => __DIR__ . '/Guzzle/Service/Builder/ServiceBuilderLoader.php', - 'Guzzle\Service\CachingConfigLoader' => __DIR__ . '/Guzzle/Service/CachingConfigLoader.php', - 'Guzzle\Service\Client' => __DIR__ . '/Guzzle/Service/Client.php', - 'Guzzle\Service\ClientInterface' => __DIR__ . '/Guzzle/Service/ClientInterface.php', - 'Guzzle\Service\Command\AbstractCommand' => __DIR__ . '/Guzzle/Service/Command/AbstractCommand.php', - 'Guzzle\Service\Command\ClosureCommand' => __DIR__ . '/Guzzle/Service/Command/ClosureCommand.php', - 'Guzzle\Service\Command\CommandInterface' => __DIR__ . '/Guzzle/Service/Command/CommandInterface.php', - 'Guzzle\Service\Command\CreateResponseClassEvent' => __DIR__ . '/Guzzle/Service/Command/CreateResponseClassEvent.php', - 'Guzzle\Service\Command\DefaultRequestSerializer' => __DIR__ . '/Guzzle/Service/Command/DefaultRequestSerializer.php', - 'Guzzle\Service\Command\DefaultResponseParser' => __DIR__ . '/Guzzle/Service/Command/DefaultResponseParser.php', - 'Guzzle\Service\Command\Factory\AliasFactory' => __DIR__ . '/Guzzle/Service/Command/Factory/AliasFactory.php', - 'Guzzle\Service\Command\Factory\CompositeFactory' => __DIR__ . '/Guzzle/Service/Command/Factory/CompositeFactory.php', - 'Guzzle\Service\Command\Factory\ConcreteClassFactory' => __DIR__ . '/Guzzle/Service/Command/Factory/ConcreteClassFactory.php', - 'Guzzle\Service\Command\Factory\FactoryInterface' => __DIR__ . '/Guzzle/Service/Command/Factory/FactoryInterface.php', - 'Guzzle\Service\Command\Factory\MapFactory' => __DIR__ . '/Guzzle/Service/Command/Factory/MapFactory.php', - 'Guzzle\Service\Command\Factory\ServiceDescriptionFactory' => __DIR__ . '/Guzzle/Service/Command/Factory/ServiceDescriptionFactory.php', - 'Guzzle\Service\Command\LocationVisitor\Request\AbstractRequestVisitor' => __DIR__ . '/Guzzle/Service/Command/LocationVisitor/Request/AbstractRequestVisitor.php', - 'Guzzle\Service\Command\LocationVisitor\Request\BodyVisitor' => __DIR__ . '/Guzzle/Service/Command/LocationVisitor/Request/BodyVisitor.php', - 'Guzzle\Service\Command\LocationVisitor\Request\HeaderVisitor' => __DIR__ . '/Guzzle/Service/Command/LocationVisitor/Request/HeaderVisitor.php', - 'Guzzle\Service\Command\LocationVisitor\Request\JsonVisitor' => __DIR__ . '/Guzzle/Service/Command/LocationVisitor/Request/JsonVisitor.php', - 'Guzzle\Service\Command\LocationVisitor\Request\PostFieldVisitor' => __DIR__ . '/Guzzle/Service/Command/LocationVisitor/Request/PostFieldVisitor.php', - 'Guzzle\Service\Command\LocationVisitor\Request\PostFileVisitor' => __DIR__ . '/Guzzle/Service/Command/LocationVisitor/Request/PostFileVisitor.php', - 'Guzzle\Service\Command\LocationVisitor\Request\QueryVisitor' => __DIR__ . '/Guzzle/Service/Command/LocationVisitor/Request/QueryVisitor.php', - 'Guzzle\Service\Command\LocationVisitor\Request\RequestVisitorInterface' => __DIR__ . '/Guzzle/Service/Command/LocationVisitor/Request/RequestVisitorInterface.php', - 'Guzzle\Service\Command\LocationVisitor\Request\ResponseBodyVisitor' => __DIR__ . '/Guzzle/Service/Command/LocationVisitor/Request/ResponseBodyVisitor.php', - 'Guzzle\Service\Command\LocationVisitor\Request\XmlVisitor' => __DIR__ . '/Guzzle/Service/Command/LocationVisitor/Request/XmlVisitor.php', - 'Guzzle\Service\Command\LocationVisitor\Response\AbstractResponseVisitor' => __DIR__ . '/Guzzle/Service/Command/LocationVisitor/Response/AbstractResponseVisitor.php', - 'Guzzle\Service\Command\LocationVisitor\Response\BodyVisitor' => __DIR__ . '/Guzzle/Service/Command/LocationVisitor/Response/BodyVisitor.php', - 'Guzzle\Service\Command\LocationVisitor\Response\HeaderVisitor' => __DIR__ . '/Guzzle/Service/Command/LocationVisitor/Response/HeaderVisitor.php', - 'Guzzle\Service\Command\LocationVisitor\Response\JsonVisitor' => __DIR__ . '/Guzzle/Service/Command/LocationVisitor/Response/JsonVisitor.php', - 'Guzzle\Service\Command\LocationVisitor\Response\ReasonPhraseVisitor' => __DIR__ . '/Guzzle/Service/Command/LocationVisitor/Response/ReasonPhraseVisitor.php', - 'Guzzle\Service\Command\LocationVisitor\Response\ResponseVisitorInterface' => __DIR__ . '/Guzzle/Service/Command/LocationVisitor/Response/ResponseVisitorInterface.php', - 'Guzzle\Service\Command\LocationVisitor\Response\StatusCodeVisitor' => __DIR__ . '/Guzzle/Service/Command/LocationVisitor/Response/StatusCodeVisitor.php', - 'Guzzle\Service\Command\LocationVisitor\Response\XmlVisitor' => __DIR__ . '/Guzzle/Service/Command/LocationVisitor/Response/XmlVisitor.php', - 'Guzzle\Service\Command\LocationVisitor\VisitorFlyweight' => __DIR__ . '/Guzzle/Service/Command/LocationVisitor/VisitorFlyweight.php', - 'Guzzle\Service\Command\OperationCommand' => __DIR__ . '/Guzzle/Service/Command/OperationCommand.php', - 'Guzzle\Service\Command\OperationResponseParser' => __DIR__ . '/Guzzle/Service/Command/OperationResponseParser.php', - 'Guzzle\Service\Command\RequestSerializerInterface' => __DIR__ . '/Guzzle/Service/Command/RequestSerializerInterface.php', - 'Guzzle\Service\Command\ResponseClassInterface' => __DIR__ . '/Guzzle/Service/Command/ResponseClassInterface.php', - 'Guzzle\Service\Command\ResponseParserInterface' => __DIR__ . '/Guzzle/Service/Command/ResponseParserInterface.php', - 'Guzzle\Service\ConfigLoaderInterface' => __DIR__ . '/Guzzle/Service/ConfigLoaderInterface.php', - 'Guzzle\Service\Description\Operation' => __DIR__ . '/Guzzle/Service/Description/Operation.php', - 'Guzzle\Service\Description\OperationInterface' => __DIR__ . '/Guzzle/Service/Description/OperationInterface.php', - 'Guzzle\Service\Description\Parameter' => __DIR__ . '/Guzzle/Service/Description/Parameter.php', - 'Guzzle\Service\Description\SchemaFormatter' => __DIR__ . '/Guzzle/Service/Description/SchemaFormatter.php', - 'Guzzle\Service\Description\SchemaValidator' => __DIR__ . '/Guzzle/Service/Description/SchemaValidator.php', - 'Guzzle\Service\Description\ServiceDescription' => __DIR__ . '/Guzzle/Service/Description/ServiceDescription.php', - 'Guzzle\Service\Description\ServiceDescriptionInterface' => __DIR__ . '/Guzzle/Service/Description/ServiceDescriptionInterface.php', - 'Guzzle\Service\Description\ServiceDescriptionLoader' => __DIR__ . '/Guzzle/Service/Description/ServiceDescriptionLoader.php', - 'Guzzle\Service\Description\ValidatorInterface' => __DIR__ . '/Guzzle/Service/Description/ValidatorInterface.php', - 'Guzzle\Service\Exception\CommandException' => __DIR__ . '/Guzzle/Service/Exception/CommandException.php', - 'Guzzle\Service\Exception\CommandTransferException' => __DIR__ . '/Guzzle/Service/Exception/CommandTransferException.php', - 'Guzzle\Service\Exception\DescriptionBuilderException' => __DIR__ . '/Guzzle/Service/Exception/DescriptionBuilderException.php', - 'Guzzle\Service\Exception\InconsistentClientTransferException' => __DIR__ . '/Guzzle/Service/Exception/InconsistentClientTransferException.php', - 'Guzzle\Service\Exception\ResponseClassException' => __DIR__ . '/Guzzle/Service/Exception/ResponseClassException.php', - 'Guzzle\Service\Exception\ServiceBuilderException' => __DIR__ . '/Guzzle/Service/Exception/ServiceBuilderException.php', - 'Guzzle\Service\Exception\ServiceNotFoundException' => __DIR__ . '/Guzzle/Service/Exception/ServiceNotFoundException.php', - 'Guzzle\Service\Exception\ValidationException' => __DIR__ . '/Guzzle/Service/Exception/ValidationException.php', - 'Guzzle\Service\Resource\AbstractResourceIteratorFactory' => __DIR__ . '/Guzzle/Service/Resource/AbstractResourceIteratorFactory.php', - 'Guzzle\Service\Resource\CompositeResourceIteratorFactory' => __DIR__ . '/Guzzle/Service/Resource/CompositeResourceIteratorFactory.php', - 'Guzzle\Service\Resource\MapResourceIteratorFactory' => __DIR__ . '/Guzzle/Service/Resource/MapResourceIteratorFactory.php', - 'Guzzle\Service\Resource\Model' => __DIR__ . '/Guzzle/Service/Resource/Model.php', - 'Guzzle\Service\Resource\ResourceIterator' => __DIR__ . '/Guzzle/Service/Resource/ResourceIterator.php', - 'Guzzle\Service\Resource\ResourceIteratorApplyBatched' => __DIR__ . '/Guzzle/Service/Resource/ResourceIteratorApplyBatched.php', - 'Guzzle\Service\Resource\ResourceIteratorClassFactory' => __DIR__ . '/Guzzle/Service/Resource/ResourceIteratorClassFactory.php', - 'Guzzle\Service\Resource\ResourceIteratorFactoryInterface' => __DIR__ . '/Guzzle/Service/Resource/ResourceIteratorFactoryInterface.php', - 'Guzzle\Service\Resource\ResourceIteratorInterface' => __DIR__ . '/Guzzle/Service/Resource/ResourceIteratorInterface.php', - 'Guzzle\Stream\PhpStreamRequestFactory' => __DIR__ . '/Guzzle/Stream/PhpStreamRequestFactory.php', - 'Guzzle\Stream\Stream' => __DIR__ . '/Guzzle/Stream/Stream.php', - 'Guzzle\Stream\StreamInterface' => __DIR__ . '/Guzzle/Stream/StreamInterface.php', - 'Guzzle\Stream\StreamRequestFactoryInterface' => __DIR__ . '/Guzzle/Stream/StreamRequestFactoryInterface.php', - 'Monolog\ErrorHandler' => __DIR__ . '/Monolog/ErrorHandler.php', - 'Monolog\Formatter\ChromePHPFormatter' => __DIR__ . '/Monolog/Formatter/ChromePHPFormatter.php', - 'Monolog\Formatter\ElasticaFormatter' => __DIR__ . '/Monolog/Formatter/ElasticaFormatter.php', - 'Monolog\Formatter\FlowdockFormatter' => __DIR__ . '/Monolog/Formatter/FlowdockFormatter.php', - 'Monolog\Formatter\FormatterInterface' => __DIR__ . '/Monolog/Formatter/FormatterInterface.php', - 'Monolog\Formatter\GelfMessageFormatter' => __DIR__ . '/Monolog/Formatter/GelfMessageFormatter.php', - 'Monolog\Formatter\HtmlFormatter' => __DIR__ . '/Monolog/Formatter/HtmlFormatter.php', - 'Monolog\Formatter\JsonFormatter' => __DIR__ . '/Monolog/Formatter/JsonFormatter.php', - 'Monolog\Formatter\LineFormatter' => __DIR__ . '/Monolog/Formatter/LineFormatter.php', - 'Monolog\Formatter\LogglyFormatter' => __DIR__ . '/Monolog/Formatter/LogglyFormatter.php', - 'Monolog\Formatter\LogstashFormatter' => __DIR__ . '/Monolog/Formatter/LogstashFormatter.php', - 'Monolog\Formatter\MongoDBFormatter' => __DIR__ . '/Monolog/Formatter/MongoDBFormatter.php', - 'Monolog\Formatter\NormalizerFormatter' => __DIR__ . '/Monolog/Formatter/NormalizerFormatter.php', - 'Monolog\Formatter\ScalarFormatter' => __DIR__ . '/Monolog/Formatter/ScalarFormatter.php', - 'Monolog\Formatter\WildfireFormatter' => __DIR__ . '/Monolog/Formatter/WildfireFormatter.php', - 'Monolog\Handler\AbstractHandler' => __DIR__ . '/Monolog/Handler/AbstractHandler.php', - 'Monolog\Handler\AbstractProcessingHandler' => __DIR__ . '/Monolog/Handler/AbstractProcessingHandler.php', - 'Monolog\Handler\AbstractSyslogHandler' => __DIR__ . '/Monolog/Handler/AbstractSyslogHandler.php', - 'Monolog\Handler\AmqpHandler' => __DIR__ . '/Monolog/Handler/AmqpHandler.php', - 'Monolog\Handler\BrowserConsoleHandler' => __DIR__ . '/Monolog/Handler/BrowserConsoleHandler.php', - 'Monolog\Handler\BufferHandler' => __DIR__ . '/Monolog/Handler/BufferHandler.php', - 'Monolog\Handler\ChromePHPHandler' => __DIR__ . '/Monolog/Handler/ChromePHPHandler.php', - 'Monolog\Handler\CouchDBHandler' => __DIR__ . '/Monolog/Handler/CouchDBHandler.php', - 'Monolog\Handler\CubeHandler' => __DIR__ . '/Monolog/Handler/CubeHandler.php', - 'Monolog\Handler\DoctrineCouchDBHandler' => __DIR__ . '/Monolog/Handler/DoctrineCouchDBHandler.php', - 'Monolog\Handler\DynamoDbHandler' => __DIR__ . '/Monolog/Handler/DynamoDbHandler.php', - 'Monolog\Handler\ElasticSearchHandler' => __DIR__ . '/Monolog/Handler/ElasticSearchHandler.php', - 'Monolog\Handler\ErrorLogHandler' => __DIR__ . '/Monolog/Handler/ErrorLogHandler.php', - 'Monolog\Handler\FilterHandler' => __DIR__ . '/Monolog/Handler/FilterHandler.php', - 'Monolog\Handler\FingersCrossed\ActivationStrategyInterface' => __DIR__ . '/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php', - 'Monolog\Handler\FingersCrossed\ChannelLevelActivationStrategy' => __DIR__ . '/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php', - 'Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy' => __DIR__ . '/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php', - 'Monolog\Handler\FingersCrossedHandler' => __DIR__ . '/Monolog/Handler/FingersCrossedHandler.php', - 'Monolog\Handler\FirePHPHandler' => __DIR__ . '/Monolog/Handler/FirePHPHandler.php', - 'Monolog\Handler\FleepHookHandler' => __DIR__ . '/Monolog/Handler/FleepHookHandler.php', - 'Monolog\Handler\FlowdockHandler' => __DIR__ . '/Monolog/Handler/FlowdockHandler.php', - 'Monolog\Handler\GelfHandler' => __DIR__ . '/Monolog/Handler/GelfHandler.php', - 'Monolog\Handler\GroupHandler' => __DIR__ . '/Monolog/Handler/GroupHandler.php', - 'Monolog\Handler\HandlerInterface' => __DIR__ . '/Monolog/Handler/HandlerInterface.php', - 'Monolog\Handler\HipChatHandler' => __DIR__ . '/Monolog/Handler/HipChatHandler.php', - 'Monolog\Handler\LogEntriesHandler' => __DIR__ . '/Monolog/Handler/LogEntriesHandler.php', - 'Monolog\Handler\LogglyHandler' => __DIR__ . '/Monolog/Handler/LogglyHandler.php', - 'Monolog\Handler\MailHandler' => __DIR__ . '/Monolog/Handler/MailHandler.php', - 'Monolog\Handler\MandrillHandler' => __DIR__ . '/Monolog/Handler/MandrillHandler.php', - 'Monolog\Handler\MissingExtensionException' => __DIR__ . '/Monolog/Handler/MissingExtensionException.php', - 'Monolog\Handler\MongoDBHandler' => __DIR__ . '/Monolog/Handler/MongoDBHandler.php', - 'Monolog\Handler\NativeMailerHandler' => __DIR__ . '/Monolog/Handler/NativeMailerHandler.php', - 'Monolog\Handler\NewRelicHandler' => __DIR__ . '/Monolog/Handler/NewRelicHandler.php', - 'Monolog\Handler\NullHandler' => __DIR__ . '/Monolog/Handler/NullHandler.php', - 'Monolog\Handler\PsrHandler' => __DIR__ . '/Monolog/Handler/PsrHandler.php', - 'Monolog\Handler\PushoverHandler' => __DIR__ . '/Monolog/Handler/PushoverHandler.php', - 'Monolog\Handler\RavenHandler' => __DIR__ . '/Monolog/Handler/RavenHandler.php', - 'Monolog\Handler\RedisHandler' => __DIR__ . '/Monolog/Handler/RedisHandler.php', - 'Monolog\Handler\RollbarHandler' => __DIR__ . '/Monolog/Handler/RollbarHandler.php', - 'Monolog\Handler\RotatingFileHandler' => __DIR__ . '/Monolog/Handler/RotatingFileHandler.php', - 'Monolog\Handler\SamplingHandler' => __DIR__ . '/Monolog/Handler/SamplingHandler.php', - 'Monolog\Handler\SlackHandler' => __DIR__ . '/Monolog/Handler/SlackHandler.php', - 'Monolog\Handler\SocketHandler' => __DIR__ . '/Monolog/Handler/SocketHandler.php', - 'Monolog\Handler\StreamHandler' => __DIR__ . '/Monolog/Handler/StreamHandler.php', - 'Monolog\Handler\SwiftMailerHandler' => __DIR__ . '/Monolog/Handler/SwiftMailerHandler.php', - 'Monolog\Handler\SyslogHandler' => __DIR__ . '/Monolog/Handler/SyslogHandler.php', - 'Monolog\Handler\SyslogUdp\UdpSocket' => __DIR__ . '/Monolog/Handler/SyslogUdp/UdpSocket.php', - 'Monolog\Handler\SyslogUdpHandler' => __DIR__ . '/Monolog/Handler/SyslogUdpHandler.php', - 'Monolog\Handler\TestHandler' => __DIR__ . '/Monolog/Handler/TestHandler.php', - 'Monolog\Handler\WhatFailureGroupHandler' => __DIR__ . '/Monolog/Handler/WhatFailureGroupHandler.php', - 'Monolog\Handler\ZendMonitorHandler' => __DIR__ . '/Monolog/Handler/ZendMonitorHandler.php', - 'Monolog\Logger' => __DIR__ . '/Monolog/Logger.php', - 'Monolog\Processor\GitProcessor' => __DIR__ . '/Monolog/Processor/GitProcessor.php', - 'Monolog\Processor\IntrospectionProcessor' => __DIR__ . '/Monolog/Processor/IntrospectionProcessor.php', - 'Monolog\Processor\MemoryPeakUsageProcessor' => __DIR__ . '/Monolog/Processor/MemoryPeakUsageProcessor.php', - 'Monolog\Processor\MemoryProcessor' => __DIR__ . '/Monolog/Processor/MemoryProcessor.php', - 'Monolog\Processor\MemoryUsageProcessor' => __DIR__ . '/Monolog/Processor/MemoryUsageProcessor.php', - 'Monolog\Processor\ProcessIdProcessor' => __DIR__ . '/Monolog/Processor/ProcessIdProcessor.php', - 'Monolog\Processor\PsrLogMessageProcessor' => __DIR__ . '/Monolog/Processor/PsrLogMessageProcessor.php', - 'Monolog\Processor\TagProcessor' => __DIR__ . '/Monolog/Processor/TagProcessor.php', - 'Monolog\Processor\UidProcessor' => __DIR__ . '/Monolog/Processor/UidProcessor.php', - 'Monolog\Processor\WebProcessor' => __DIR__ . '/Monolog/Processor/WebProcessor.php', - 'Monolog\Registry' => __DIR__ . '/Monolog/Registry.php', - 'Psr\Log\AbstractLogger' => __DIR__ . '/Psr/Log/AbstractLogger.php', - 'Psr\Log\InvalidArgumentException' => __DIR__ . '/Psr/Log/InvalidArgumentException.php', - 'Psr\Log\LoggerAwareInterface' => __DIR__ . '/Psr/Log/LoggerAwareInterface.php', - 'Psr\Log\LoggerAwareTrait' => __DIR__ . '/Psr/Log/LoggerAwareTrait.php', - 'Psr\Log\LoggerInterface' => __DIR__ . '/Psr/Log/LoggerInterface.php', - 'Psr\Log\LoggerTrait' => __DIR__ . '/Psr/Log/LoggerTrait.php', - 'Psr\Log\LogLevel' => __DIR__ . '/Psr/Log/LogLevel.php', - 'Psr\Log\NullLogger' => __DIR__ . '/Psr/Log/NullLogger.php', - 'Psr\Log\Test\LoggerInterfaceTest' => __DIR__ . '/Psr/Log/Test/LoggerInterfaceTest.php', - 'Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher' => __DIR__ . '/Symfony/Component/EventDispatcher/ContainerAwareEventDispatcher.php', - 'Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher' => __DIR__ . '/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php', - 'Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcherInterface' => __DIR__ . '/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcherInterface.php', - 'Symfony\Component\EventDispatcher\Debug\WrappedListener' => __DIR__ . '/Symfony/Component/EventDispatcher/Debug/WrappedListener.php', - 'Symfony\Component\EventDispatcher\DependencyInjection\RegisterListenersPass' => __DIR__ . '/Symfony/Component/EventDispatcher/DependencyInjection/RegisterListenersPass.php', - 'Symfony\Component\EventDispatcher\Event' => __DIR__ . '/Symfony/Component/EventDispatcher/Event.php', - 'Symfony\Component\EventDispatcher\EventDispatcher' => __DIR__ . '/Symfony/Component/EventDispatcher/EventDispatcher.php', - 'Symfony\Component\EventDispatcher\EventDispatcherInterface' => __DIR__ . '/Symfony/Component/EventDispatcher/EventDispatcherInterface.php', - 'Symfony\Component\EventDispatcher\EventSubscriberInterface' => __DIR__ . '/Symfony/Component/EventDispatcher/EventSubscriberInterface.php', - 'Symfony\Component\EventDispatcher\GenericEvent' => __DIR__ . '/Symfony/Component/EventDispatcher/GenericEvent.php', - 'Symfony\Component\EventDispatcher\ImmutableEventDispatcher' => __DIR__ . '/Symfony/Component/EventDispatcher/ImmutableEventDispatcher.php', - 'Symfony\Component\EventDispatcher\Tests\AbstractEventDispatcherTest' => __DIR__ . '/Symfony/Component/EventDispatcher/Tests/AbstractEventDispatcherTest.php', - 'Symfony\Component\EventDispatcher\Tests\ContainerAwareEventDispatcherTest' => __DIR__ . '/Symfony/Component/EventDispatcher/Tests/ContainerAwareEventDispatcherTest.php', - 'Symfony\Component\EventDispatcher\Tests\Debug\TraceableEventDispatcherTest' => __DIR__ . '/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php', - 'Symfony\Component\EventDispatcher\Tests\DependencyInjection\RegisterListenersPassTest' => __DIR__ . '/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php', - 'Symfony\Component\EventDispatcher\Tests\EventDispatcherTest' => __DIR__ . '/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php', - 'Symfony\Component\EventDispatcher\Tests\EventTest' => __DIR__ . '/Symfony/Component/EventDispatcher/Tests/EventTest.php', - 'Symfony\Component\EventDispatcher\Tests\GenericEventTest' => __DIR__ . '/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php', - 'Symfony\Component\EventDispatcher\Tests\ImmutableEventDispatcherTest' => __DIR__ . '/Symfony/Component/EventDispatcher/Tests/ImmutableEventDispatcherTest.php', + 'Aws\WrappedHttpHandler' => __DIR__ . '/Aws/WrappedHttpHandler.php', + 'GuzzleHttp\Client' => __DIR__ . '/GuzzleHttp/Client.php', + 'GuzzleHttp\ClientInterface' => __DIR__ . '/GuzzleHttp/ClientInterface.php', + 'GuzzleHttp\Cookie\CookieJar' => __DIR__ . '/GuzzleHttp/Cookie/CookieJar.php', + 'GuzzleHttp\Cookie\CookieJarInterface' => __DIR__ . '/GuzzleHttp/Cookie/CookieJarInterface.php', + 'GuzzleHttp\Cookie\FileCookieJar' => __DIR__ . '/GuzzleHttp/Cookie/FileCookieJar.php', + 'GuzzleHttp\Cookie\SessionCookieJar' => __DIR__ . '/GuzzleHttp/Cookie/SessionCookieJar.php', + 'GuzzleHttp\Cookie\SetCookie' => __DIR__ . '/GuzzleHttp/Cookie/SetCookie.php', + 'GuzzleHttp\Exception\BadResponseException' => __DIR__ . '/GuzzleHttp/Exception/BadResponseException.php', + 'GuzzleHttp\Exception\ClientException' => __DIR__ . '/GuzzleHttp/Exception/ClientException.php', + 'GuzzleHttp\Exception\ConnectException' => __DIR__ . '/GuzzleHttp/Exception/ConnectException.php', + 'GuzzleHttp\Exception\GuzzleException' => __DIR__ . '/GuzzleHttp/Exception/GuzzleException.php', + 'GuzzleHttp\Exception\RequestException' => __DIR__ . '/GuzzleHttp/Exception/RequestException.php', + 'GuzzleHttp\Exception\SeekException' => __DIR__ . '/GuzzleHttp/Exception/SeekException.php', + 'GuzzleHttp\Exception\ServerException' => __DIR__ . '/GuzzleHttp/Exception/ServerException.php', + 'GuzzleHttp\Exception\TooManyRedirectsException' => __DIR__ . '/GuzzleHttp/Exception/TooManyRedirectsException.php', + 'GuzzleHttp\Exception\TransferException' => __DIR__ . '/GuzzleHttp/Exception/TransferException.php', + 'GuzzleHttp\functions' => __DIR__ . '/GuzzleHttp/functions.php', + 'GuzzleHttp\Handler\CurlFactory' => __DIR__ . '/GuzzleHttp/Handler/CurlFactory.php', + 'GuzzleHttp\Handler\CurlFactoryInterface' => __DIR__ . '/GuzzleHttp/Handler/CurlFactoryInterface.php', + 'GuzzleHttp\Handler\CurlHandler' => __DIR__ . '/GuzzleHttp/Handler/CurlHandler.php', + 'GuzzleHttp\Handler\CurlMultiHandler' => __DIR__ . '/GuzzleHttp/Handler/CurlMultiHandler.php', + 'GuzzleHttp\Handler\EasyHandle' => __DIR__ . '/GuzzleHttp/Handler/EasyHandle.php', + 'GuzzleHttp\Handler\MockHandler' => __DIR__ . '/GuzzleHttp/Handler/MockHandler.php', + 'GuzzleHttp\Handler\Proxy' => __DIR__ . '/GuzzleHttp/Handler/Proxy.php', + 'GuzzleHttp\Handler\StreamHandler' => __DIR__ . '/GuzzleHttp/Handler/StreamHandler.php', + 'GuzzleHttp\HandlerStack' => __DIR__ . '/GuzzleHttp/HandlerStack.php', + 'GuzzleHttp\MessageFormatter' => __DIR__ . '/GuzzleHttp/MessageFormatter.php', + 'GuzzleHttp\Middleware' => __DIR__ . '/GuzzleHttp/Middleware.php', + 'GuzzleHttp\Pool' => __DIR__ . '/GuzzleHttp/Pool.php', + 'GuzzleHttp\PrepareBodyMiddleware' => __DIR__ . '/GuzzleHttp/PrepareBodyMiddleware.php', + 'GuzzleHttp\Promise\AggregateException' => __DIR__ . '/GuzzleHttp/Promise/AggregateException.php', + 'GuzzleHttp\Promise\CancellationException' => __DIR__ . '/GuzzleHttp/Promise/CancellationException.php', + 'GuzzleHttp\Promise\EachPromise' => __DIR__ . '/GuzzleHttp/Promise/EachPromise.php', + 'GuzzleHttp\Promise\FulfilledPromise' => __DIR__ . '/GuzzleHttp/Promise/FulfilledPromise.php', + 'GuzzleHttp\Promise\functions' => __DIR__ . '/GuzzleHttp/Promise/functions.php', + 'GuzzleHttp\Promise\Promise' => __DIR__ . '/GuzzleHttp/Promise/Promise.php', + 'GuzzleHttp\Promise\PromiseInterface' => __DIR__ . '/GuzzleHttp/Promise/PromiseInterface.php', + 'GuzzleHttp\Promise\PromisorInterface' => __DIR__ . '/GuzzleHttp/Promise/PromisorInterface.php', + 'GuzzleHttp\Promise\RejectedPromise' => __DIR__ . '/GuzzleHttp/Promise/RejectedPromise.php', + 'GuzzleHttp\Promise\RejectionException' => __DIR__ . '/GuzzleHttp/Promise/RejectionException.php', + 'GuzzleHttp\Promise\TaskQueue' => __DIR__ . '/GuzzleHttp/Promise/TaskQueue.php', + 'GuzzleHttp\Psr7\AppendStream' => __DIR__ . '/GuzzleHttp/Psr7/AppendStream.php', + 'GuzzleHttp\Psr7\BufferStream' => __DIR__ . '/GuzzleHttp/Psr7/BufferStream.php', + 'GuzzleHttp\Psr7\CachingStream' => __DIR__ . '/GuzzleHttp/Psr7/CachingStream.php', + 'GuzzleHttp\Psr7\DroppingStream' => __DIR__ . '/GuzzleHttp/Psr7/DroppingStream.php', + 'GuzzleHttp\Psr7\FnStream' => __DIR__ . '/GuzzleHttp/Psr7/FnStream.php', + 'GuzzleHttp\Psr7\functions' => __DIR__ . '/GuzzleHttp/Psr7/functions.php', + 'GuzzleHttp\Psr7\InflateStream' => __DIR__ . '/GuzzleHttp/Psr7/InflateStream.php', + 'GuzzleHttp\Psr7\LazyOpenStream' => __DIR__ . '/GuzzleHttp/Psr7/LazyOpenStream.php', + 'GuzzleHttp\Psr7\LimitStream' => __DIR__ . '/GuzzleHttp/Psr7/LimitStream.php', + 'GuzzleHttp\Psr7\MessageTrait' => __DIR__ . '/GuzzleHttp/Psr7/MessageTrait.php', + 'GuzzleHttp\Psr7\MultipartStream' => __DIR__ . '/GuzzleHttp/Psr7/MultipartStream.php', + 'GuzzleHttp\Psr7\NoSeekStream' => __DIR__ . '/GuzzleHttp/Psr7/NoSeekStream.php', + 'GuzzleHttp\Psr7\PumpStream' => __DIR__ . '/GuzzleHttp/Psr7/PumpStream.php', + 'GuzzleHttp\Psr7\Request' => __DIR__ . '/GuzzleHttp/Psr7/Request.php', + 'GuzzleHttp\Psr7\Response' => __DIR__ . '/GuzzleHttp/Psr7/Response.php', + 'GuzzleHttp\Psr7\Stream' => __DIR__ . '/GuzzleHttp/Psr7/Stream.php', + 'GuzzleHttp\Psr7\StreamDecoratorTrait' => __DIR__ . '/GuzzleHttp/Psr7/StreamDecoratorTrait.php', + 'GuzzleHttp\Psr7\StreamWrapper' => __DIR__ . '/GuzzleHttp/Psr7/StreamWrapper.php', + 'GuzzleHttp\Psr7\Uri' => __DIR__ . '/GuzzleHttp/Psr7/Uri.php', + 'GuzzleHttp\RedirectMiddleware' => __DIR__ . '/GuzzleHttp/RedirectMiddleware.php', + 'GuzzleHttp\RequestOptions' => __DIR__ . '/GuzzleHttp/RequestOptions.php', + 'GuzzleHttp\RetryMiddleware' => __DIR__ . '/GuzzleHttp/RetryMiddleware.php', + 'GuzzleHttp\UriTemplate' => __DIR__ . '/GuzzleHttp/UriTemplate.php', + 'JmesPath\AstRuntime' => __DIR__ . '/JmesPath/AstRuntime.php', + 'JmesPath\CompilerRuntime' => __DIR__ . '/JmesPath/CompilerRuntime.php', + 'JmesPath\DebugRuntime' => __DIR__ . '/JmesPath/DebugRuntime.php', + 'JmesPath\Env' => __DIR__ . '/JmesPath/Env.php', + 'JmesPath\FnDispatcher' => __DIR__ . '/JmesPath/FnDispatcher.php', + 'JmesPath\JmesPath' => __DIR__ . '/JmesPath/JmesPath.php', + 'JmesPath\Lexer' => __DIR__ . '/JmesPath/Lexer.php', + 'JmesPath\Parser' => __DIR__ . '/JmesPath/Parser.php', + 'JmesPath\SyntaxErrorException' => __DIR__ . '/JmesPath/SyntaxErrorException.php', + 'JmesPath\TreeCompiler' => __DIR__ . '/JmesPath/TreeCompiler.php', + 'JmesPath\TreeInterpreter' => __DIR__ . '/JmesPath/TreeInterpreter.php', + 'JmesPath\Utils' => __DIR__ . '/JmesPath/Utils.php', + 'Psr\Http\Message\MessageInterface' => __DIR__ . '/Psr/Http/Message/MessageInterface.php', + 'Psr\Http\Message\RequestInterface' => __DIR__ . '/Psr/Http/Message/RequestInterface.php', + 'Psr\Http\Message\ResponseInterface' => __DIR__ . '/Psr/Http/Message/ResponseInterface.php', + 'Psr\Http\Message\ServerRequestInterface' => __DIR__ . '/Psr/Http/Message/ServerRequestInterface.php', + 'Psr\Http\Message\StreamInterface' => __DIR__ . '/Psr/Http/Message/StreamInterface.php', + 'Psr\Http\Message\UploadedFileInterface' => __DIR__ . '/Psr/Http/Message/UploadedFileInterface.php', + 'Psr\Http\Message\UriInterface' => __DIR__ . '/Psr/Http/Message/UriInterface.php', ); spl_autoload_register(function ($class) use ($mapping) { @@ -1350,3 +299,8 @@ spl_autoload_register(function ($class) use ($mapping) { } }, true); +require __DIR__ . '/Aws/functions.php'; +require __DIR__ . '/GuzzleHttp/functions.php'; +require __DIR__ . '/GuzzleHttp/Psr7/functions.php'; +require __DIR__ . '/GuzzleHttp/Promise/functions.php'; +require __DIR__ . '/JmesPath/JmesPath.php'; -- GitLab